diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.d b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.d index f61cef6..2f64f01 100644 --- a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.d +++ b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.d @@ -1 +1 @@ -/Volumes/Developer/Applications/PegasusMonitor/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.o : /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/PegasusMonitorApp.swift /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/ServerMonitor.swift /Volumes/Developer/Applications/PegasusMonitor/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/DerivedSources/GeneratedAssetSymbols.swift /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/SettingsView.swift /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/MonitorMenuView.swift /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/XPC.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/SwiftUI.framework/Modules/SwiftUI.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ImageIO.framework/Modules/ImageIO.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreMedia.framework/Modules/CoreMedia.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreData.framework/Modules/CoreData.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ColorSync.framework/Modules/ColorSync.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/simd.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/CoreImage.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreTransferable.framework/Modules/CoreTransferable.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/SwiftUICore.framework/Modules/SwiftUICore.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/QuartzCore.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/OSLog.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Dispatch.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Spatial.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Metal.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/System.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Modules/Foundation.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Observation.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Synchronization.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/DataDetection.framework/Modules/DataDetection.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreVideo.framework/Modules/CoreVideo.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/CoreAudio.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Modules/CoreGraphics.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Symbols.framework/Modules/Symbols.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/os.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/UniformTypeIdentifiers.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/IOKit.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Modules/AppKit.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/DeveloperToolsSupport.framework/Modules/DeveloperToolsSupport.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreText.framework/Modules/CoreText.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Accessibility.framework/Modules/Accessibility.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinFoundation1.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinFoundation2.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinFoundation3.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/netinet6.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_C.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/ObjectiveC.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_POSIX.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinBasic.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/xpc.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/uuid.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/device.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/libDER/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/simd/module.modulemap /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/clang/include/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/OpenGL.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ImageIO.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreData.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ColorSync.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/IOSurface.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreImage.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/QuartzCore.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CFNetwork.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Metal.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/DiskArbitration.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreVideo.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreAudio.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreServices.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ApplicationServices.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Symbols.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/IOKit.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreText.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Security.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_Mach_machine.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_machine.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/mach_debug.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_Mach.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/launch.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/dispatch.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/bank.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/libkern.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/ncurses.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/os.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/cups.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_sys.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/net.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/netinet.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_DarwinFoundation2.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/XPC.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ObjectiveC.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreData.framework/Headers/CoreData.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/Dispatch.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Headers/CoreAudioTypes.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UserNotifications.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/UniformTypeIdentifiers.framework/Headers/UniformTypeIdentifiers.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/Security.apinotes +/Volumes/Developer/Applications/PegasusMonitor/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.o : /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/PegasusMonitorApp.swift /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/ServerMonitor.swift /Volumes/Developer/Applications/PegasusMonitor/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/DerivedSources/GeneratedAssetSymbols.swift /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/SettingsView.swift /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor/MonitorMenuView.swift /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_DarwinFoundation1.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_DarwinFoundation2.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_DarwinFoundation3.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/XPC.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/ObjectiveC.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/SwiftUI.framework/Modules/SwiftUI.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ImageIO.framework/Modules/ImageIO.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreMedia.framework/Modules/CoreMedia.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreData.framework/Modules/CoreData.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ColorSync.framework/Modules/ColorSync.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/simd.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/CoreImage.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreTransferable.framework/Modules/CoreTransferable.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Combine.framework/Modules/Combine.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/SwiftUICore.framework/Modules/SwiftUICore.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/QuartzCore.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_StringProcessing.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/OSLog.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Dispatch.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Spatial.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Metal.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/System.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Darwin.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Modules/Foundation.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/CoreFoundation.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Observation.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Synchronization.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/DataDetection.framework/Modules/DataDetection.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreVideo.framework/Modules/CoreVideo.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/CoreAudio.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Modules/CoreGraphics.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Symbols.framework/Modules/Symbols.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/os.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/UniformTypeIdentifiers.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_Builtin_float.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/IOKit.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Modules/AppKit.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/DeveloperToolsSupport.framework/Modules/DeveloperToolsSupport.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreText.framework/Modules/CoreText.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/lib/swift/_Concurrency.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Accessibility.framework/Modules/Accessibility.swiftmodule/arm64e-apple-macos.swiftinterface /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinFoundation1.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinFoundation2.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinFoundation3.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/netinet6.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_C.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/ObjectiveC.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_POSIX.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/DarwinBasic.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/xpc.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/uuid.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/device.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/libDER/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/simd/module.modulemap /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/clang/include/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/OpenGL.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ImageIO.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreData.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ColorSync.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/IOSurface.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreImage.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/QuartzCore.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CFNetwork.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Metal.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/DiskArbitration.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreVideo.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreAudio.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreServices.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/ApplicationServices.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Symbols.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/IOKit.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/CoreText.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Security.framework/Modules/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_Mach_machine.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_machine.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/mach_debug.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_Mach.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/launch.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/dispatch.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/bank.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/libkern.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/ncurses.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/os.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/cups.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/Darwin_sys.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/net.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/usr/include/netinet.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_DarwinFoundation2.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/XPC.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ObjectiveC.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreData.framework/Headers/CoreData.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/Dispatch.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Headers/CoreAudioTypes.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/UserNotifications.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/UniformTypeIdentifiers.framework/Headers/UniformTypeIdentifiers.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/Security.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.o b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.o index ef385a3..8455866 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.o and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.o differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.stringsdata b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.stringsdata index 269a003..16b790b 100644 --- a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.stringsdata +++ b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.stringsdata @@ -7,7 +7,7 @@ "key": "ALL SERVERS: %lld OK · %lld WARN · %lld FAIL", "location": { "startingColumn": 18, - "startingLine": 139 + "startingLine": 289 } }, { @@ -15,7 +15,7 @@ "key": "%lld offline", "location": { "startingColumn": 26, - "startingLine": 17 + "startingLine": 38 } }, { @@ -23,7 +23,7 @@ "key": "PEGASUS MONITOR", "location": { "startingColumn": 27, - "startingLine": 11 + "startingLine": 32 } }, { @@ -31,7 +31,7 @@ "key": "SERVERS", "location": { "startingColumn": 22, - "startingLine": 22 + "startingLine": 43 } }, { @@ -39,7 +39,7 @@ "key": "Switch Server", "location": { "startingColumn": 27, - "startingLine": 41 + "startingLine": 62 } }, { @@ -47,7 +47,7 @@ "key": "%lld OK", "location": { "startingColumn": 46, - "startingLine": 64 + "startingLine": 85 } }, { @@ -55,7 +55,31 @@ "key": "Up %@", "location": { "startingColumn": 50, - "startingLine": 66 + "startingLine": 87 + } + }, + { + "comment": "", + "key": "Show Details", + "location": { + "startingColumn": 36, + "startingLine": 97 + } + }, + { + "comment": "", + "key": "Copy Error Details", + "location": { + "startingColumn": 36, + "startingLine": 135 + } + }, + { + "comment": "", + "key": "Refresh Server", + "location": { + "startingColumn": 36, + "startingLine": 154 } }, { @@ -63,7 +87,7 @@ "key": "SERVICES", "location": { "startingColumn": 38, - "startingLine": 101 + "startingLine": 187 } }, { @@ -71,7 +95,7 @@ "key": "HEALTH GROUPS", "location": { "startingColumn": 38, - "startingLine": 117 + "startingLine": 217 } }, { @@ -79,7 +103,7 @@ "key": "Uptime", "location": { "startingColumn": 38, - "startingLine": 92 + "startingLine": 178 } }, { @@ -87,7 +111,39 @@ "key": "REQUIRED", "location": { "startingColumn": 50, - "startingLine": 110 + "startingLine": 196 + } + }, + { + "comment": "", + "key": "Show Details", + "location": { + "startingColumn": 48, + "startingLine": 203 + } + }, + { + "comment": "", + "key": "Copy Details", + "location": { + "startingColumn": 48, + "startingLine": 211 + } + }, + { + "comment": "", + "key": "Show Details", + "location": { + "startingColumn": 44, + "startingLine": 232 + } + }, + { + "comment": "", + "key": "Copy Details", + "location": { + "startingColumn": 44, + "startingLine": 270 } }, { @@ -95,7 +151,7 @@ "key": "Refresh All", "location": { "startingColumn": 24, - "startingLine": 147 + "startingLine": 297 } }, { @@ -103,7 +159,7 @@ "key": "Diagnostics", "location": { "startingColumn": 24, - "startingLine": 149 + "startingLine": 299 } }, { @@ -111,7 +167,7 @@ "key": "Settings", "location": { "startingColumn": 24, - "startingLine": 150 + "startingLine": 300 } }, { @@ -119,7 +175,7 @@ "key": "Quit", "location": { "startingColumn": 24, - "startingLine": 151 + "startingLine": 301 } }, { @@ -127,7 +183,7 @@ "key": "%@ — Diagnostics", "location": { "startingColumn": 18, - "startingLine": 161 + "startingLine": 317 } }, { @@ -135,7 +191,39 @@ "key": "Select a server in the menu bar to change this report.", "location": { "startingColumn": 18, - "startingLine": 162 + "startingLine": 318 + } + }, + { + "comment": "", + "key": "Show Details", + "location": { + "startingColumn": 36, + "startingLine": 332 + } + }, + { + "comment": "", + "key": "Copy Details", + "location": { + "startingColumn": 36, + "startingLine": 344 + } + }, + { + "comment": "", + "key": "Copy Details", + "location": { + "startingColumn": 24, + "startingLine": 418 + } + }, + { + "comment": "", + "key": "Close", + "location": { + "startingColumn": 24, + "startingLine": 428 } } ] diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.swiftdeps b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.swiftdeps index d21aac2..83626a4 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.swiftdeps and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/MonitorMenuView.swiftdeps differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor-primary.priors b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor-primary.priors index 353a5a0..4db3795 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor-primary.priors and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor-primary.priors differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftmodule b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftmodule index 0bf6545..cd9b296 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftmodule and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftmodule differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftsourceinfo b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftsourceinfo index bc6bedf..2896e04 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftsourceinfo and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitor.swiftsourceinfo differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.o b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.o index 4555cc7..0801df9 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.o and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.o differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.swiftdeps b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.swiftdeps index 5bd379e..f0187a7 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.swiftdeps and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/PegasusMonitor.build/Release/PegasusMonitor.build/Objects-normal/arm64/PegasusMonitorApp.swiftdeps differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/build.db b/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/build.db index 5f8c2d2..55607d3 100644 Binary files a/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/build.db and b/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/build.db differ diff --git a/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/prior-build-descriptions.txt b/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/prior-build-descriptions.txt index c266d01..9e4eefe 100644 --- a/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/prior-build-descriptions.txt +++ b/.build/ReleaseDerivedData/Build/Intermediates.noindex/XCBuildData/prior-build-descriptions.txt @@ -8,3 +8,4 @@ ae0397526b5e3c6e8848cdfd6a483288 7e38a5d8e664e612ef350f00745dc212 0339bfa5899b58e708b1bdc579f1e095 fc9e0d46560e0e3f6c4e552bd51875d2 +aa90f81d02489c13e5c788a9f2cc7c59 diff --git a/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.app/Contents/MacOS/PegasusMonitor b/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.app/Contents/MacOS/PegasusMonitor index bba2826..ddb76c4 100755 Binary files a/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.app/Contents/MacOS/PegasusMonitor and b/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.app/Contents/MacOS/PegasusMonitor differ diff --git a/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo b/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo index bc6bedf..2896e04 100644 Binary files a/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo and b/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo differ diff --git a/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/arm64-apple-macos.swiftmodule b/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/arm64-apple-macos.swiftmodule index 0bf6545..cd9b296 100644 Binary files a/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/arm64-apple-macos.swiftmodule and b/.build/ReleaseDerivedData/Build/Products/Release/PegasusMonitor.swiftmodule/arm64-apple-macos.swiftmodule differ diff --git a/.build/ReleaseDerivedData/Logs/Build/LogStoreManifest.plist b/.build/ReleaseDerivedData/Logs/Build/LogStoreManifest.plist index 4b8ce2f..32ddcf9 100644 --- a/.build/ReleaseDerivedData/Logs/Build/LogStoreManifest.plist +++ b/.build/ReleaseDerivedData/Logs/Build/LogStoreManifest.plist @@ -6,6 +6,48 @@ 13 logs + 17BB5E1E-C7B0-4A22-A2E4-7B3343B7C0A0 + + className + IDECommandLineBuildLog + documentTypeString + <nil> + domainType + Xcode.IDEActivityLogDomainType.BuildLog + fileName + 17BB5E1E-C7B0-4A22-A2E4-7B3343B7C0A0.xcactivitylog + hasPrimaryLog + + primaryObservable + + highLevelStatus + S + totalNumberOfAnalyzerIssues + 0 + totalNumberOfErrors + 0 + totalNumberOfTestFailures + 0 + totalNumberOfWarnings + 0 + + schemeIdentifier-containerName + PegasusMonitor project + schemeIdentifier-schemeName + PegasusMonitor + schemeIdentifier-sharedScheme + 1 + signature + Building project PegasusMonitor with scheme PegasusMonitor and configuration Release + timeStartedRecording + 814350397.61442196 + timeStoppedRecording + 814350402.64668095 + title + Building project PegasusMonitor with scheme PegasusMonitor and configuration Release + uniqueIdentifier + 17BB5E1E-C7B0-4A22-A2E4-7B3343B7C0A0 + B61B7A1E-4BB1-405D-9BB7-4318215BFC0D className @@ -48,48 +90,6 @@ uniqueIdentifier B61B7A1E-4BB1-405D-9BB7-4318215BFC0D - FEA45B81-12F7-48C7-BB4F-0CA06A4FC9A8 - - className - IDECommandLineBuildLog - documentTypeString - <nil> - domainType - Xcode.IDEActivityLogDomainType.BuildLog - fileName - FEA45B81-12F7-48C7-BB4F-0CA06A4FC9A8.xcactivitylog - hasPrimaryLog - - primaryObservable - - highLevelStatus - W - totalNumberOfAnalyzerIssues - 0 - totalNumberOfErrors - 0 - totalNumberOfTestFailures - 0 - totalNumberOfWarnings - 2 - - schemeIdentifier-containerName - PegasusMonitor project - schemeIdentifier-schemeName - PegasusMonitor - schemeIdentifier-sharedScheme - 1 - signature - Building project PegasusMonitor with scheme PegasusMonitor and configuration Release - timeStartedRecording - 814283652.52319503 - timeStoppedRecording - 814283659.16746604 - title - Building project PegasusMonitor with scheme PegasusMonitor and configuration Release - uniqueIdentifier - FEA45B81-12F7-48C7-BB4F-0CA06A4FC9A8 - diff --git a/.build/ReleaseDerivedData/ModuleCache.noindex/Session.modulevalidation b/.build/ReleaseDerivedData/ModuleCache.noindex/Session.modulevalidation index 15a55bc..357c476 100644 --- a/.build/ReleaseDerivedData/ModuleCache.noindex/Session.modulevalidation +++ b/.build/ReleaseDerivedData/ModuleCache.noindex/Session.modulevalidation @@ -1 +1 @@ -1792592179.2212691: Module build session file for module cache at Path(str: "/Volumes/Developer/Applications/PegasusMonitor/.build/ReleaseDerivedData/ModuleCache.noindex") +1792657599.394216: Module build session file for module cache at Path(str: "/Volumes/Developer/Applications/PegasusMonitor/.build/ReleaseDerivedData/ModuleCache.noindex") diff --git a/.build/ReleaseDerivedData/SDKStatCaches.noindex/macosx27.0-26A425-e829b21a6f8c9b70876ba0858053c0447231f6df4def33e022ae2eb8f782df1a.sdkstatcache b/.build/ReleaseDerivedData/SDKStatCaches.noindex/macosx27.0-26A425-e829b21a6f8c9b70876ba0858053c0447231f6df4def33e022ae2eb8f782df1a.sdkstatcache index dd0e88a..623a48e 100644 Binary files a/.build/ReleaseDerivedData/SDKStatCaches.noindex/macosx27.0-26A425-e829b21a6f8c9b70876ba0858053c0447231f6df4def33e022ae2eb8f782df1a.sdkstatcache and b/.build/ReleaseDerivedData/SDKStatCaches.noindex/macosx27.0-26A425-e829b21a6f8c9b70876ba0858053c0447231f6df4def33e022ae2eb8f782df1a.sdkstatcache differ diff --git a/.build/ReleaseDerivedData/info.plist b/.build/ReleaseDerivedData/info.plist index 078447b..a4a092b 100644 --- a/.build/ReleaseDerivedData/info.plist +++ b/.build/ReleaseDerivedData/info.plist @@ -3,7 +3,7 @@ LastAccessedDate - 2026-10-21T14:16:17Z + 2026-10-22T08:26:37Z WorkspacePath /Volumes/Developer/Applications/PegasusMonitor/PegasusMonitor.xcodeproj diff --git a/PegasusMonitor/MonitorMenuView.swift b/PegasusMonitor/MonitorMenuView.swift index 6c4149c..d55a8b8 100644 --- a/PegasusMonitor/MonitorMenuView.swift +++ b/PegasusMonitor/MonitorMenuView.swift @@ -3,6 +3,27 @@ import SwiftUI struct MonitorMenuView: View { @ObservedObject var monitor: ServerMonitor @Environment(\.openWindow) private var openWindow + @State private var detailItem: MonitorDetailItem? + + private func showDetails( + title: String, + status: String, + details: String + ) { + detailItem = MonitorDetailItem( + title: title, + status: status, + details: details + ) + } + + private func copyDetails(_ details: String) { + NSPasteboard.general.clearContents() + NSPasteboard.general.setString( + details, + forType: .string + ) + } var body: some View { VStack(alignment: .leading, spacing: 0) { @@ -70,7 +91,72 @@ struct MonitorMenuView: View { if server.id == monitor.selectedID { Image(systemName: "checkmark") } }.padding(.horizontal, 14).padding(.vertical, 8) .contentShape(Rectangle()) - }.buttonStyle(.plain) + } + .buttonStyle(.plain) + .contextMenu { + Button("Show Details") { + let result = monitor.results[server.id] + let report = result?.report + + let failures = report?.checks.filter { + $0.status != .ok + } ?? [] + + let checkDetails = failures.map { + "\($0.section) / \($0.name) [\($0.status.title)]\\n\($0.detail)" + }.joined(separator: "\\n\\n") + + let missingGroups = report?.groups + .filter { $0.status != .ok } + .map { + "\($0.name): \($0.missing.joined(separator: ", "))" + } + .joined(separator: "\\n") ?? "" + + let details = [ + "Server: \(server.name)", + "Host: \(server.host)", + "Status: \(result?.status.title ?? "Unknown")", + result?.error ?? "", + missingGroups, + checkDetails, + report?.diagnostics ?? "" + ] + .filter { !$0.isEmpty } + .joined(separator: "\\n\\n") + + showDetails( + title: server.name, + status: result?.status.title ?? "Unknown", + details: details + ) + } + + Button("Copy Error Details") { + let result = monitor.results[server.id] + let failures = result?.report?.checks + .filter { $0.status != .ok } + .map { + "\($0.name): \($0.detail)" + } + .joined(separator: "\\n") ?? "" + + copyDetails( + result?.error + ?? (failures.isEmpty + ? "No errors reported." + : failures) + ) + } + + Divider() + + Button("Refresh Server") { + Task { + await monitor.refresh(id: server.id) + } + } + } } } } @@ -112,6 +198,20 @@ struct MonitorMenuView: View { Text(service.title).font(.caption).foregroundStyle(.secondary) } .padding(.horizontal, 14).padding(.vertical, 5) + .contentShape(Rectangle()) + .contextMenu { + Button("Show Details") { + showDetails( + title: service.name, + status: service.title, + details: service.detail + ) + } + + Button("Copy Details") { + copyDetails(service.detail) + } + } } Divider() Text("HEALTH GROUPS") @@ -124,7 +224,57 @@ struct MonitorMenuView: View { Spacer() Label(group.status.title, systemImage: group.status.symbol) .foregroundStyle(group.status.color).font(.caption) - }.padding(.horizontal, 14).padding(.vertical, 8) + } + .padding(.horizontal, 14) + .padding(.vertical, 8) + .contentShape(Rectangle()) + .contextMenu { + Button("Show Details") { + let related = report.checks.filter { + group.missing.contains($0.name) + || ( + $0.status != .ok + && $0.section == group.name + ) + } + + let messages = related.map { + "\($0.name): \($0.detail)" + }.joined(separator: "\\n\\n") + + let missing = group.missing.isEmpty + ? "" + : "Missing: " + + group.missing.joined(separator: ", ") + + let details = [ + "Group: \(group.name)", + "Status: \(group.status.title)", + missing, + messages.isEmpty + ? (group.status == .ok + ? "All required checks passed." + : "No matching individual check details were returned.") + : messages + ] + .filter { !$0.isEmpty } + .joined(separator: "\\n\\n") + + showDetails( + title: group.name, + status: group.status.title, + details: details + ) + } + + Button("Copy Details") { + copyDetails( + "\(group.name): \(group.status.title)\\n" + + group.missing.joined(separator: "\\n") + ) + } + } + Divider().padding(.leading, 14) } } else { @@ -150,12 +300,18 @@ struct MonitorMenuView: View { Button("Settings") { openWindow(id: "monitor-settings") } Button("Quit") { NSApp.terminate(nil) } }.buttonStyle(.borderless).padding(14) - }.frame(width: 410) + } + .frame(width: 410) + .sheet(item: $detailItem) { item in + MonitorDetailSheet(item: item) + } } } struct DiagnosticsView: View { @ObservedObject var monitor: ServerMonitor + @State private var detailItem: MonitorDetailItem? + var body: some View { VStack(alignment: .leading, spacing: 12) { Text("\(monitor.selected?.name ?? "Server") — Diagnostics").font(.title2.bold()) @@ -171,9 +327,133 @@ struct DiagnosticsView: View { } Spacer() } + .contentShape(Rectangle()) + .contextMenu { + Button("Show Details") { + detailItem = MonitorDetailItem( + title: check.name, + status: check.status.title, + details: """ + Section: \(check.section) + + \(check.detail) + """ + ) + } + + Button("Copy Details") { + NSPasteboard.general.clearContents() + NSPasteboard.general.setString( + check.detail, + forType: .string + ) + } + } } } }.textSelection(.enabled) - }.padding(20).frame(minWidth: 650, minHeight: 450) + } + .padding(20) + .frame(minWidth: 650, minHeight: 450) + .sheet(item: $detailItem) { item in + MonitorDetailSheet(item: item) + } + } +} + + +// MARK: - Monitoring Details + +struct MonitorDetailItem: Identifiable { + let id = UUID() + let title: String + let status: String + let details: String +} + +struct MonitorDetailSheet: View { + let item: MonitorDetailItem + + @Environment(\.dismiss) private var dismiss + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + HStack { + Image(systemName: icon) + .font(.title2) + .foregroundStyle(statusColor) + + VStack(alignment: .leading, spacing: 4) { + Text(item.title) + .font(.title2.bold()) + + Text(item.status) + .foregroundStyle(statusColor) + } + + Spacer() + } + + Divider() + + ScrollView { + Text(item.details.isEmpty + ? "No additional diagnostic information available." + : item.details) + .font(.system( + size: 12, + design: .monospaced + )) + .frame( + maxWidth: .infinity, + alignment: .leading + ) + .textSelection(.enabled) + .padding(12) + } + .background(.quaternary.opacity(0.3)) + .clipShape(RoundedRectangle(cornerRadius: 8)) + + HStack { + Button("Copy Details") { + NSPasteboard.general.clearContents() + NSPasteboard.general.setString( + item.details, + forType: .string + ) + } + + Spacer() + + Button("Close") { + dismiss() + } + .keyboardShortcut(.defaultAction) + } + } + .padding(20) + .frame(minWidth: 540, minHeight: 350) + } + + private var icon: String { + switch item.status.lowercased() { + case "critical", "failed": + return "xmark.circle.fill" + case "warning", "stopped": + return "exclamationmark.triangle.fill" + default: + return "checkmark.circle.fill" + } + } + + private var statusColor: Color { + switch item.status.lowercased() { + case "critical", "failed": + return .red + case "warning", "stopped": + return .orange + default: + return .green + } } } diff --git a/server/pegasus-health-json b/server/pegasus-health-json index 748c8db..ec6089f 100644 --- a/server/pegasus-health-json +++ b/server/pegasus-health-json @@ -49,6 +49,25 @@ def output(): match = re.match(r'^\[(OK\s*|WARN|FAIL)\]\s+(.+?)(?:\s+—\s+(.*))?$', line) if match: checks.append({'name': match[2].strip(), 'status': match[1].strip().lower(), 'detail': (match[3] or '').strip(), 'section': section}) + # Noncritical firmware metadata failures are warnings. + # Other failed systemd units remain critical. + for item in checks: + if item['name'] != 'Failed systemd units': + continue + if item['status'] != 'fail': + continue + + failed_units = re.findall( + r'([A-Za-z0-9@_.:-]+\\.service)\\s+loaded\\s+failed\\s+failed', + item['detail'] + ) + + if failed_units and all( + unit == 'fwupd-refresh.service' + for unit in failed_units + ): + item['status'] = 'warn' + lookup = {c['name']: c['status'] for c in checks} groups = [] for title, names in GROUPS: @@ -62,7 +81,12 @@ def output(): groups.append({'name':label, 'status':state, 'missing':[n for n in relevant if n not in lookup]}) counts_match = re.search(r'SUMMARY:\s*(\d+) OK\s*\|\s*(\d+) WARN\s*\|\s*(\d+) FAIL', plain) counts = dict(zip(('ok','warn','fail'), (int(x) for x in counts_match.groups()))) if counts_match else {'ok':0,'warn':0,'fail':1} - if not checks: + if checks: + counts = { + state: sum(c['status'] == state for c in checks) + for state in ('ok', 'warn', 'fail') + } + else: counts['fail'] = max(1, counts['fail']) overall = 'fail' if counts['fail'] or any(g['status']=='fail' for g in groups) else 'warn' if counts['warn'] or any(g['status']=='warn' for g in groups) else 'ok' print(json.dumps({'schema':1, 'host':'pegasus', 'uptimeSeconds':system_uptime_seconds(), 'generatedAt':datetime.datetime.now(datetime.timezone.utc).isoformat(), 'overall':overall, 'counts':counts,'groups':groups,'checks':checks, 'diagnostics':plain[-24000:], 'commandExitCode':p.returncode}, ensure_ascii=False)) diff --git a/server/remote-health-json b/server/remote-health-json index 8363527..a15a64b 100755 --- a/server/remote-health-json +++ b/server/remote-health-json @@ -62,7 +62,26 @@ for directory in ('/', '/backup'): systemctl = run(['systemctl', '--failed', '--no-legend', '--plain']) if systemctl is not None: failed = [line for line in systemctl.stdout.splitlines() if line.strip()] - check('Services', 'Failed systemd units', 'fail' if failed else 'ok', + # Firmware metadata refresh is noncritical. + # Any other failed systemd unit remains critical. + optional_units = {'fwupd-refresh.service'} + + failed_names = [ + line.split()[0].lstrip('●') + for line in failed + if line.split() + ] + + if not failed: + severity = 'ok' + elif failed_names and all( + unit in optional_units for unit in failed_names + ): + severity = 'warn' + else: + severity = 'fail' + + check('Services', 'Failed systemd units', severity, ', '.join(failed[:5]) if failed else 'None') if shutil.which('docker'): diff --git a/server/remote-health-json-legacy b/server/remote-health-json-legacy new file mode 100755 index 0000000..54bdaf5 --- /dev/null +++ b/server/remote-health-json-legacy @@ -0,0 +1,311 @@ +#!/usr/bin/env python +import os +import sys +import time +import socket +import commands + +def command(args): + try: + quoted = [] + for arg in args: + value = str(arg) + quoted.append("'" + value.replace("'", "'\\''") + "'") + + cmd = " ".join(quoted) + return commands.getoutput(cmd).strip() + except: + return "" + +def escape(value): + value = str(value) + return value.replace("\\", "\\\\").replace('"', '\\"').replace("\n", "\\n").replace("\r", "\\r") + +def string(value): + return '"' + escape(value) + '"' + +def status(name, state, detail): + return '{"name":%s,"state":%s,"detail":%s}' % ( + string(name), string(state), string(detail) + ) + +def check(section, name, state, detail): + return '{"section":%s,"name":%s,"status":%s,"detail":%s}' % ( + string(section), string(name), string(state), string(detail) + ) + +def group(name, state): + return '{"name":%s,"status":%s,"missing":[]}' % ( + string(name), string(state) + ) + +def read_file(path): + try: + f = open(path) + data = f.read() + f.close() + return data + except: + return "" + +def process_running(name): + output = command(["ps", "ax"]) + return name in output + +hostname = socket.gethostname() + +# CPU +try: + load = float(read_file("/proc/loadavg").split()[0]) +except: + load = 0.0 + +try: + cpu_count = len([ + x for x in read_file("/proc/cpuinfo").splitlines() + if x.startswith("processor") + ]) + if cpu_count < 1: + cpu_count = 1 +except: + cpu_count = 1 + +cpu_state = "ok" +if load > cpu_count * 2: + cpu_state = "fail" +elif load > cpu_count: + cpu_state = "warn" + +# Memory +mem = {} +for line in read_file("/proc/meminfo").splitlines(): + parts = line.replace(":", "").split() + if len(parts) >= 2: + try: + mem[parts[0]] = int(parts[1]) + except: + pass + +total = mem.get("MemTotal", 1) +free = ( + mem.get("MemFree", 0) + + mem.get("Buffers", 0) + + mem.get("Cached", 0) +) + +memory_percent = int(100 * (total - free) / total) + +memory_state = "ok" +if memory_percent >= 95: + memory_state = "fail" +elif memory_percent >= 85: + memory_state = "warn" + +# Disk +disk_percent = 0 +disk_state = "ok" + +try: + st = os.statvfs("/") + disk_percent = int( + 100 * (st.f_blocks - st.f_bavail) / st.f_blocks + ) +except: + pass + +if disk_percent >= 95: + disk_state = "fail" +elif disk_percent >= 85: + disk_state = "warn" + + +# Notes data partition +notes_disk_state = "ok" +notes_disk_percent = 0 +notes_disk_detail = "Not checked" + +try: + mounts = open("/proc/mounts").read() + mounted = 0 + + for line in mounts.splitlines(): + parts = line.split() + if len(parts) >= 2 and parts[1] == "/local/notesdata": + mounted = 1 + break + + if not mounted: + notes_disk_state = "fail" + notes_disk_detail = "/local/notesdata is not mounted" + else: + st = os.statvfs("/local/notesdata") + + if st.f_blocks > 0: + notes_disk_percent = int( + 100 * (st.f_blocks - st.f_bavail) / st.f_blocks + ) + + notes_disk_detail = "%d%% used" % notes_disk_percent + + if notes_disk_percent >= 95: + notes_disk_state = "fail" + elif notes_disk_percent >= 85: + notes_disk_state = "warn" + else: + notes_disk_state = "fail" + notes_disk_detail = "Filesystem size unavailable" + +except: + notes_disk_state = "fail" + notes_disk_detail = "Cannot read Notes data filesystem" + +# Uptime +try: + uptime = int(float(read_file("/proc/uptime").split()[0])) +except: + uptime = 0 + +checks = [ + check( + "System", + "CPU load", + cpu_state, + "1m load %.2f; %d CPUs" % (load, cpu_count) + ), + check( + "System", + "Memory", + memory_state, + "%d%% used" % memory_percent + ), + check( + "Storage", + "Disk /", + disk_state, + "%d%% used" % disk_percent + ), + check( + "Storage", + "Notes data disk", + notes_disk_state, + notes_disk_detail + ) +] + +# Legacy SysV services +services = [] + +service_names = [ + ("ssh", "sshd"), + ("apache2", "apache2"), + ("nginx", "nginx"), + ("mysql", "mysqld"), + ("postgresql", "postgres"), + ("redis-server", "redis-server"), + ("domino", "server") +] + +for service_name, process_name in service_names: + init_script = "/etc/init.d/" + service_name + + if not os.path.exists(init_script): + services.append( + status(service_name, "not_installed", "SysV service not found") + ) + continue + + running = process_running(process_name) + + if running: + service_state = "running" + else: + service_state = "stopped" + + services.append( + status( + service_name, + service_state, + "SysV process check" + ) + ) + +# Domino is a required service on Europa. +domino_state = "ok" +domino_detail = "Domino process running" + +if not process_running("server"): + domino_state = "fail" + domino_detail = "Domino server process not running" + +checks.append( + check( + "Services", + "Domino", + domino_state, + domino_detail + ) +) + +states = [ + cpu_state, + memory_state, + disk_state, + notes_disk_state, + domino_state +] + +overall = "ok" +if "fail" in states: + overall = "fail" +elif "warn" in states: + overall = "warn" + +ok_count = states.count("ok") +warn_count = states.count("warn") +fail_count = states.count("fail") + +if cpu_state == "fail" or memory_state == "fail": + system_state = "fail" +elif cpu_state == "warn" or memory_state == "warn": + system_state = "warn" +else: + system_state = "ok" + +if disk_state == "fail" or notes_disk_state == "fail": + storage_state = "fail" +elif disk_state == "warn" or notes_disk_state == "warn": + storage_state = "warn" +else: + storage_state = "ok" + +groups = [ + group("System", system_state), + group("Storage", storage_state), + group("Services", domino_state) +] + +output = """{ +"schema":1, +"host":%s, +"generatedAt":%s, +"overall":%s, +"counts":{"ok":%d,"warn":%d,"fail":%d}, +"groups":[%s], +"checks":[%s], +"diagnostics":null, +"services":[%s], +"uptimeSeconds":%d +}""" % ( + string(hostname), + string(time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())), + string(overall), + ok_count, + warn_count, + fail_count, + ",".join(groups), + ",".join(checks), + ",".join(services), + uptime +) + +print output