// // AppUIState.swift // Zyquo Agent // // Author: Simon-Pierre Boucher // Mail: contact@spboucher.ai // // Cross-window UI signals: the app-level command set (⌘K palette, ⌘⇧A // audit log, template browser) publishes here and the views that own the // corresponding local state react. Counters are used for one-shot requests // so repeated invocations always fire onChange. // import Combine import Foundation @MainActor final class AppUIState: ObservableObject { /// ⌘K command palette visibility (overlay on the main window). @Published var showCommandPalette = false /// Template browser sheet visibility (empty state / palette / menu). @Published var showTemplateBrowser = false /// One-shot request: open the activity drawer on the Audit Log tab (⌘⇧A). @Published var auditLogRequest = 0 /// One-shot request: toggle the activity drawer (palette action). @Published var drawerToggleRequest = 0 /// One-shot request: toggle the plan panel (palette action). @Published var planToggleRequest = 0 func requestAuditLog() { auditLogRequest &+= 1 } func requestDrawerToggle() { drawerToggleRequest &+= 1 } func requestPlanToggle() { planToggleRequest &+= 1 } }