@wrongstack/webui 0.284.1 → 0.285.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.d.ts +2 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/assets/{AnalyticsDashboard-BBoAzpgL.js → AnalyticsDashboard-Bn2wIgV0.js} +1 -1
- package/dist/assets/{AutoPhaseView-D053zOhN.js → AutoPhaseView-DWp3yHpI.js} +1 -1
- package/dist/assets/{ChangesView-4X9cQM4r.js → ChangesView-C_r4kccO.js} +1 -1
- package/dist/assets/{CodeEditor-C8hiA7LI.js → CodeEditor-DSpqZ-mS.js} +1 -1
- package/dist/assets/{DebugDashboard-DBPKvghW.js → DebugDashboard-DWKLI7lR.js} +1 -1
- package/dist/assets/{DesignGalleryView-CzF24Ppi.js → DesignGalleryView-Bk3HH3al.js} +1 -1
- package/dist/assets/KanbanView-CJqlvsbc.js +1 -0
- package/dist/assets/{MailboxDetailView-CCtq-c8u.js → MailboxDetailView-BwWagFay.js} +1 -1
- package/dist/assets/OfficeMapPanel-QFPaXTZ9.js +4 -0
- package/dist/assets/{ProcessMonitor-pm8Ih7-q.js → ProcessMonitor-dUyYv3Z4.js} +1 -1
- package/dist/assets/{QueuePanel-Lv54tvvk.js → QueuePanel-BdwvWRuB.js} +1 -1
- package/dist/assets/{RefreshDebugView-0VzJJqhZ.js → RefreshDebugView-eZwtZXgZ.js} +1 -1
- package/dist/assets/{SddBoardView-Q-k1UjLv.js → SddBoardView-OtKwEtAp.js} +1 -1
- package/dist/assets/{SddFlowGraph-BaWwH9Zc.js → SddFlowGraph-MVMUCMEy.js} +1 -1
- package/dist/assets/{SddWizard-C4wdyhYe.js → SddWizard-c7g68RFx.js} +1 -1
- package/dist/assets/SessionsDashboard-pMXfRTwN.js +1 -0
- package/dist/assets/{SkillDetailView-B4U0AtHj.js → SkillDetailView-CcdIF-85.js} +1 -1
- package/dist/assets/{SpecsView-QssXs9kF.js → SpecsView-yunV-Xfj.js} +1 -1
- package/dist/assets/{TerminalPanel-CSDEzJNZ.js → TerminalPanel-BIYT1IB3.js} +1 -1
- package/dist/assets/common-D8_r1x8x.js +1 -0
- package/dist/assets/common-suUxW9sA.js +1 -0
- package/dist/assets/{i18n-CkkVJCs9.js → i18n-BMePmaPJ.js} +2 -2
- package/dist/assets/index-CbrHWxbT.css +1 -0
- package/dist/assets/index-CyTNJHe8.js +154 -0
- package/dist/assets/local-prefs-BBMxai9I.js +1 -0
- package/dist/assets/settings-CKNx8p9I.js +1 -0
- package/dist/assets/settings-D-SHf0yS.js +1 -0
- package/dist/assets/ui-store-ComQYc5F.js +1 -0
- package/dist/assets/{ws-client-lDxBz-7w.js → ws-client-CwL51TNh.js} +1 -1
- package/dist/components/AgentTranscript.d.ts +13 -0
- package/dist/components/AgentTranscript.d.ts.map +1 -0
- package/dist/components/AgentsMonitor.d.ts +26 -0
- package/dist/components/AgentsMonitor.d.ts.map +1 -0
- package/dist/components/AgentsPage/format.d.ts +23 -0
- package/dist/components/AgentsPage/format.d.ts.map +1 -0
- package/dist/components/AgentsPage.d.ts +49 -0
- package/dist/components/AgentsPage.d.ts.map +1 -0
- package/dist/components/AnalyticsDashboard.d.ts +2 -0
- package/dist/components/AnalyticsDashboard.d.ts.map +1 -0
- package/dist/components/AutoPhaseView.d.ts +15 -0
- package/dist/components/AutoPhaseView.d.ts.map +1 -0
- package/dist/components/AutonomyPicker.d.ts +21 -0
- package/dist/components/AutonomyPicker.d.ts.map +1 -0
- package/dist/components/BoardView.d.ts +14 -0
- package/dist/components/BoardView.d.ts.map +1 -0
- package/dist/components/ChangesView.d.ts +10 -0
- package/dist/components/ChangesView.d.ts.map +1 -0
- package/dist/components/ChatInput/code-detect.d.ts +20 -0
- package/dist/components/ChatInput/code-detect.d.ts.map +1 -0
- package/dist/components/ChatInput/file-mention-picker.d.ts +15 -0
- package/dist/components/ChatInput/file-mention-picker.d.ts.map +1 -0
- package/dist/components/ChatInput/queued-messages.d.ts +9 -0
- package/dist/components/ChatInput/queued-messages.d.ts.map +1 -0
- package/dist/components/ChatInput/slash-commands.d.ts +17 -0
- package/dist/components/ChatInput/slash-commands.d.ts.map +1 -0
- package/dist/components/ChatInput/slash-routing.d.ts +79 -0
- package/dist/components/ChatInput/slash-routing.d.ts.map +1 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts +29 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts.map +1 -0
- package/dist/components/ChatInput.d.ts +5 -0
- package/dist/components/ChatInput.d.ts.map +1 -0
- package/dist/components/ChatView/ThinkingBubble.d.ts +8 -0
- package/dist/components/ChatView/ThinkingBubble.d.ts.map +1 -0
- package/dist/components/ChatView/index.d.ts +2 -0
- package/dist/components/ChatView/index.d.ts.map +1 -0
- package/dist/components/ChatView/utils.d.ts +44 -0
- package/dist/components/ChatView/utils.d.ts.map +1 -0
- package/dist/components/ChatView.d.ts +2 -0
- package/dist/components/ChatView.d.ts.map +1 -0
- package/dist/components/CheckpointTimeline.d.ts +7 -0
- package/dist/components/CheckpointTimeline.d.ts.map +1 -0
- package/dist/components/CodeEditor.d.ts +3 -0
- package/dist/components/CodeEditor.d.ts.map +1 -0
- package/dist/components/CollabPanel.d.ts +28 -0
- package/dist/components/CollabPanel.d.ts.map +1 -0
- package/dist/components/CommandPalette/export-utils.d.ts +10 -0
- package/dist/components/CommandPalette/export-utils.d.ts.map +1 -0
- package/dist/components/CommandPalette/index.d.ts +2 -0
- package/dist/components/CommandPalette/index.d.ts.map +1 -0
- package/dist/components/CommandPalette.d.ts +3 -0
- package/dist/components/CommandPalette.d.ts.map +1 -0
- package/dist/components/ConfirmDialog.d.ts +2 -0
- package/dist/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmModal.d.ts +59 -0
- package/dist/components/ConfirmModal.d.ts.map +1 -0
- package/dist/components/ConnectionBanner.d.ts +13 -0
- package/dist/components/ConnectionBanner.d.ts.map +1 -0
- package/dist/components/ContextBar.d.ts +35 -0
- package/dist/components/ContextBar.d.ts.map +1 -0
- package/dist/components/ContextBreakdownModal.d.ts +7 -0
- package/dist/components/ContextBreakdownModal.d.ts.map +1 -0
- package/dist/components/ContextModePicker.d.ts +2 -0
- package/dist/components/ContextModePicker.d.ts.map +1 -0
- package/dist/components/CostChip.d.ts +12 -0
- package/dist/components/CostChip.d.ts.map +1 -0
- package/dist/components/DebugDashboard.d.ts +2 -0
- package/dist/components/DebugDashboard.d.ts.map +1 -0
- package/dist/components/DependencyGraph.d.ts +13 -0
- package/dist/components/DependencyGraph.d.ts.map +1 -0
- package/dist/components/DesignGalleryView.d.ts +14 -0
- package/dist/components/DesignGalleryView.d.ts.map +1 -0
- package/dist/components/DiffView.d.ts +33 -0
- package/dist/components/DiffView.d.ts.map +1 -0
- package/dist/components/ErrorBoundary.d.ts +40 -0
- package/dist/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/FallbackEditor.d.ts +15 -0
- package/dist/components/FallbackEditor.d.ts.map +1 -0
- package/dist/components/FileExplorer.d.ts +2 -0
- package/dist/components/FileExplorer.d.ts.map +1 -0
- package/dist/components/FilePicker.d.ts +16 -0
- package/dist/components/FilePicker.d.ts.map +1 -0
- package/dist/components/FileReferenceChip.d.ts +8 -0
- package/dist/components/FileReferenceChip.d.ts.map +1 -0
- package/dist/components/FleetMonitor.d.ts +27 -0
- package/dist/components/FleetMonitor.d.ts.map +1 -0
- package/dist/components/FleetPanel.d.ts +17 -0
- package/dist/components/FleetPanel.d.ts.map +1 -0
- package/dist/components/GoalPanel.d.ts +7 -0
- package/dist/components/GoalPanel.d.ts.map +1 -0
- package/dist/components/InspectorPanel.d.ts +14 -0
- package/dist/components/InspectorPanel.d.ts.map +1 -0
- package/dist/components/KanbanView.d.ts +4 -0
- package/dist/components/KanbanView.d.ts.map +1 -0
- package/dist/components/MailboxDetailView.d.ts +8 -0
- package/dist/components/MailboxDetailView.d.ts.map +1 -0
- package/dist/components/MailboxPanel.d.ts +4 -0
- package/dist/components/MailboxPanel.d.ts.map +1 -0
- package/dist/components/MessageBubble/CopyButton.d.ts +6 -0
- package/dist/components/MessageBubble/CopyButton.d.ts.map +1 -0
- package/dist/components/MessageBubble/ErrorBody.d.ts +4 -0
- package/dist/components/MessageBubble/ErrorBody.d.ts.map +1 -0
- package/dist/components/MessageBubble/StreamingMarkdown.d.ts +24 -0
- package/dist/components/MessageBubble/StreamingMarkdown.d.ts.map +1 -0
- package/dist/components/MessageBubble/ToolInputView.d.ts +4 -0
- package/dist/components/MessageBubble/ToolInputView.d.ts.map +1 -0
- package/dist/components/MessageBubble/index.d.ts +9 -0
- package/dist/components/MessageBubble/index.d.ts.map +1 -0
- package/dist/components/MessageBubble/utils.d.ts +17 -0
- package/dist/components/MessageBubble/utils.d.ts.map +1 -0
- package/dist/components/MessageBubble.d.ts +2 -0
- package/dist/components/MessageBubble.d.ts.map +1 -0
- package/dist/components/ModePicker.d.ts +9 -0
- package/dist/components/ModePicker.d.ts.map +1 -0
- package/dist/components/ModelPicker.d.ts +18 -0
- package/dist/components/ModelPicker.d.ts.map +1 -0
- package/dist/components/MonacoDiffView.d.ts +13 -0
- package/dist/components/MonacoDiffView.d.ts.map +1 -0
- package/dist/components/NextStepsBar.d.ts +39 -0
- package/dist/components/NextStepsBar.d.ts.map +1 -0
- package/dist/components/OfficeMapCanvas/resolve.d.ts +48 -0
- package/dist/components/OfficeMapCanvas/resolve.d.ts.map +1 -0
- package/dist/components/OfficeMapCanvas/utils.d.ts +57 -0
- package/dist/components/OfficeMapCanvas/utils.d.ts.map +1 -0
- package/dist/components/OfficeMapCanvas.d.ts +10 -0
- package/dist/components/OfficeMapCanvas.d.ts.map +1 -0
- package/dist/components/OfficeMapPanel.d.ts +6 -0
- package/dist/components/OfficeMapPanel.d.ts.map +1 -0
- package/dist/components/OfficeMapSettingsPanel.d.ts +10 -0
- package/dist/components/OfficeMapSettingsPanel.d.ts.map +1 -0
- package/dist/components/PhasePanel.d.ts +42 -0
- package/dist/components/PhasePanel.d.ts.map +1 -0
- package/dist/components/PlanPanel.d.ts +14 -0
- package/dist/components/PlanPanel.d.ts.map +1 -0
- package/dist/components/ProcessMonitor.d.ts +7 -0
- package/dist/components/ProcessMonitor.d.ts.map +1 -0
- package/dist/components/PromptLibraryModal.d.ts +7 -0
- package/dist/components/PromptLibraryModal.d.ts.map +1 -0
- package/dist/components/QueuePanel.d.ts +11 -0
- package/dist/components/QueuePanel.d.ts.map +1 -0
- package/dist/components/QuickModelSwitcher.d.ts +10 -0
- package/dist/components/QuickModelSwitcher.d.ts.map +1 -0
- package/dist/components/QuickModelSwitcher.filter.d.ts +33 -0
- package/dist/components/QuickModelSwitcher.filter.d.ts.map +1 -0
- package/dist/components/RefinePanel.d.ts +24 -0
- package/dist/components/RefinePanel.d.ts.map +1 -0
- package/dist/components/RefreshDebugView.d.ts +32 -0
- package/dist/components/RefreshDebugView.d.ts.map +1 -0
- package/dist/components/SddActivityFeed.d.ts +11 -0
- package/dist/components/SddActivityFeed.d.ts.map +1 -0
- package/dist/components/SddBoardView.d.ts +9 -0
- package/dist/components/SddBoardView.d.ts.map +1 -0
- package/dist/components/SddDestroyDialog.d.ts +16 -0
- package/dist/components/SddDestroyDialog.d.ts.map +1 -0
- package/dist/components/SddFlowGraph.d.ts +23 -0
- package/dist/components/SddFlowGraph.d.ts.map +1 -0
- package/dist/components/SddKanbanView.d.ts +12 -0
- package/dist/components/SddKanbanView.d.ts.map +1 -0
- package/dist/components/SddTaskDrawer.d.ts +28 -0
- package/dist/components/SddTaskDrawer.d.ts.map +1 -0
- package/dist/components/SddWizard.d.ts +10 -0
- package/dist/components/SddWizard.d.ts.map +1 -0
- package/dist/components/SearchOverlay.d.ts +12 -0
- package/dist/components/SearchOverlay.d.ts.map +1 -0
- package/dist/components/SendButton.d.ts +2 -0
- package/dist/components/SendButton.d.ts.map +1 -0
- package/dist/components/SessionWatchPanel.d.ts +17 -0
- package/dist/components/SessionWatchPanel.d.ts.map +1 -0
- package/dist/components/SessionsDashboard.d.ts +3 -0
- package/dist/components/SessionsDashboard.d.ts.map +1 -0
- package/dist/components/SettingsPanel/BrainSection.d.ts +3 -0
- package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts +19 -0
- package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts.map +1 -0
- package/dist/components/SettingsPanel/MCPSection.d.ts +27 -0
- package/dist/components/SettingsPanel/MCPSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ModelSection.d.ts +31 -0
- package/dist/components/SettingsPanel/ModelSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/OAuthLoginSection.d.ts +14 -0
- package/dist/components/SettingsPanel/OAuthLoginSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/PreferenceControls.d.ts +23 -0
- package/dist/components/SettingsPanel/PreferenceControls.d.ts.map +1 -0
- package/dist/components/SettingsPanel/PreferenceToggle.d.ts +25 -0
- package/dist/components/SettingsPanel/PreferenceToggle.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts +46 -0
- package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts +110 -0
- package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts +63 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ShadowSection.d.ts +3 -0
- package/dist/components/SettingsPanel/ShadowSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/ToolsSection.d.ts +12 -0
- package/dist/components/SettingsPanel/ToolsSection.d.ts.map +1 -0
- package/dist/components/SettingsPanel/index.d.ts +2 -0
- package/dist/components/SettingsPanel/index.d.ts.map +1 -0
- package/dist/components/SettingsPanel/local-presets.d.ts +31 -0
- package/dist/components/SettingsPanel/local-presets.d.ts.map +1 -0
- package/dist/components/SettingsPanel/official-servers.d.ts +30 -0
- package/dist/components/SettingsPanel/official-servers.d.ts.map +1 -0
- package/dist/components/SettingsPanel/settings-panel-reducers.d.ts +40 -0
- package/dist/components/SettingsPanel/settings-panel-reducers.d.ts.map +1 -0
- package/dist/components/SettingsPanel/undo-send-decision.d.ts +42 -0
- package/dist/components/SettingsPanel/undo-send-decision.d.ts.map +1 -0
- package/dist/components/SettingsPanel.d.ts +3 -0
- package/dist/components/SettingsPanel.d.ts.map +1 -0
- package/dist/components/SetupScreen.d.ts +2 -0
- package/dist/components/SetupScreen.d.ts.map +1 -0
- package/dist/components/ShortcutsOverlay.d.ts +2 -0
- package/dist/components/ShortcutsOverlay.d.ts.map +1 -0
- package/dist/components/SideEffectTimeline.d.ts +11 -0
- package/dist/components/SideEffectTimeline.d.ts.map +1 -0
- package/dist/components/SidePanel/AgentsPanel.d.ts +8 -0
- package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -0
- package/dist/components/SidePanel/ChangesPanel.d.ts +8 -0
- package/dist/components/SidePanel/ChangesPanel.d.ts.map +1 -0
- package/dist/components/SidePanel/DesignStudioPanel.d.ts +12 -0
- package/dist/components/SidePanel/DesignStudioPanel.d.ts.map +1 -0
- package/dist/components/SidePanel/HistoryPanel.d.ts +7 -0
- package/dist/components/SidePanel/HistoryPanel.d.ts.map +1 -0
- package/dist/components/SidePanel/SessionList.d.ts +24 -0
- package/dist/components/SidePanel/SessionList.d.ts.map +1 -0
- package/dist/components/SidePanel/SessionPanel.d.ts +10 -0
- package/dist/components/SidePanel/SessionPanel.d.ts.map +1 -0
- package/dist/components/SidePanel/SkillsList.d.ts +8 -0
- package/dist/components/SidePanel/SkillsList.d.ts.map +1 -0
- package/dist/components/SidePanel/WorktreesPanel.d.ts +8 -0
- package/dist/components/SidePanel/WorktreesPanel.d.ts.map +1 -0
- package/dist/components/SidePanel/index.d.ts +11 -0
- package/dist/components/SidePanel/index.d.ts.map +1 -0
- package/dist/components/SkillDetailView.d.ts +8 -0
- package/dist/components/SkillDetailView.d.ts.map +1 -0
- package/dist/components/SpecsView.d.ts +9 -0
- package/dist/components/SpecsView.d.ts.map +1 -0
- package/dist/components/TaskBoard.d.ts +20 -0
- package/dist/components/TaskBoard.d.ts.map +1 -0
- package/dist/components/TaskCard.d.ts +43 -0
- package/dist/components/TaskCard.d.ts.map +1 -0
- package/dist/components/TasksPanel.d.ts +14 -0
- package/dist/components/TasksPanel.d.ts.map +1 -0
- package/dist/components/TerminalPanel.d.ts +12 -0
- package/dist/components/TerminalPanel.d.ts.map +1 -0
- package/dist/components/ThemeProvider.d.ts +15 -0
- package/dist/components/ThemeProvider.d.ts.map +1 -0
- package/dist/components/Toaster.d.ts +40 -0
- package/dist/components/Toaster.d.ts.map +1 -0
- package/dist/components/TodosPanel.d.ts +14 -0
- package/dist/components/TodosPanel.d.ts.map +1 -0
- package/dist/components/ToolGroup.d.ts +18 -0
- package/dist/components/ToolGroup.d.ts.map +1 -0
- package/dist/components/ToolResult.d.ts +33 -0
- package/dist/components/ToolResult.d.ts.map +1 -0
- package/dist/components/WatchMessageBubble.d.ts +30 -0
- package/dist/components/WatchMessageBubble.d.ts.map +1 -0
- package/dist/components/WelcomeScreen.d.ts +2 -0
- package/dist/components/WelcomeScreen.d.ts.map +1 -0
- package/dist/components/WorkDashboard.d.ts +11 -0
- package/dist/components/WorkDashboard.d.ts.map +1 -0
- package/dist/components/WorkspaceDock.d.ts +16 -0
- package/dist/components/WorkspaceDock.d.ts.map +1 -0
- package/dist/components/WorktreeGraph.d.ts +21 -0
- package/dist/components/WorktreeGraph.d.ts.map +1 -0
- package/dist/components/WorktreeLanes.d.ts +11 -0
- package/dist/components/WorktreeLanes.d.ts.map +1 -0
- package/dist/components/WorktreeOrphans.d.ts +9 -0
- package/dist/components/WorktreeOrphans.d.ts.map +1 -0
- package/dist/components/activity-bar/index.d.ts +14 -0
- package/dist/components/activity-bar/index.d.ts.map +1 -0
- package/dist/components/activity-bar/nav.d.ts +17 -0
- package/dist/components/activity-bar/nav.d.ts.map +1 -0
- package/dist/components/dashboard-primitives.d.ts +22 -0
- package/dist/components/dashboard-primitives.d.ts.map +1 -0
- package/dist/components/index.d.ts +32 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/monaco-theme.d.ts +6 -0
- package/dist/components/monaco-theme.d.ts.map +1 -0
- package/dist/components/toaster-helpers.d.ts +34 -0
- package/dist/components/toaster-helpers.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/concurrency-gauge.d.ts +18 -0
- package/dist/components/ui/concurrency-gauge.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +29 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/event-timeline.d.ts +15 -0
- package/dist/components/ui/event-timeline.d.ts.map +1 -0
- package/dist/components/ui/index.d.ts +11 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts +32 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sparkline.d.ts +16 -0
- package/dist/components/ui/sparkline.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/use-ws-handlers.d.ts +24 -0
- package/dist/hooks/use-ws-handlers.d.ts.map +1 -0
- package/dist/hooks/useGitInfo.d.ts +4 -0
- package/dist/hooks/useGitInfo.d.ts.map +1 -0
- package/dist/hooks/useProviderModels.d.ts +15 -0
- package/dist/hooks/useProviderModels.d.ts.map +1 -0
- package/dist/hooks/useWebSocket.d.ts +85 -0
- package/dist/hooks/useWebSocket.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/chat-handlers.d.ts +21 -0
- package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/coordinator-handlers.d.ts +3 -0
- package/dist/hooks/ws-handlers/coordinator-handlers.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts +15 -0
- package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/fleet-handlers.d.ts +13 -0
- package/dist/hooks/ws-handlers/fleet-handlers.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/misc-handlers.d.ts +21 -0
- package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/session-handlers.d.ts +34 -0
- package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -0
- package/dist/hooks/ws-handlers.d.ts +24 -0
- package/dist/hooks/ws-handlers.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +12 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/languages.d.ts +40 -0
- package/dist/i18n/languages.d.ts.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +7 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.html +8 -8
- package/dist/index.js +2513 -2174
- package/dist/index.js.map +7 -1
- package/dist/lib/accent-colors.d.ts +136 -0
- package/dist/lib/accent-colors.d.ts.map +1 -0
- package/dist/lib/agent-status.d.ts +41 -0
- package/dist/lib/agent-status.d.ts.map +1 -0
- package/dist/lib/analytics.d.ts +36 -0
- package/dist/lib/analytics.d.ts.map +1 -0
- package/dist/lib/chime.d.ts +20 -0
- package/dist/lib/chime.d.ts.map +1 -0
- package/dist/lib/color.d.ts +15 -0
- package/dist/lib/color.d.ts.map +1 -0
- package/dist/lib/completion.d.ts +27 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/core-browser-shim.d.ts +22 -0
- package/dist/lib/core-browser-shim.d.ts.map +1 -0
- package/dist/lib/desktop-host.d.ts +24 -0
- package/dist/lib/desktop-host.d.ts.map +1 -0
- package/dist/lib/desktop-shell.d.ts +3 -0
- package/dist/lib/desktop-shell.d.ts.map +1 -0
- package/dist/lib/favicon.d.ts +21 -0
- package/dist/lib/favicon.d.ts.map +1 -0
- package/dist/lib/file-icons.d.ts +10 -0
- package/dist/lib/file-icons.d.ts.map +1 -0
- package/dist/lib/goal.d.ts +32 -0
- package/dist/lib/goal.d.ts.map +1 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/model-matrix-routes.d.ts +203 -0
- package/dist/lib/model-matrix-routes.d.ts.map +1 -0
- package/dist/lib/notify.d.ts +15 -0
- package/dist/lib/notify.d.ts.map +1 -0
- package/dist/lib/sdd-theme.d.ts +52 -0
- package/dist/lib/sdd-theme.d.ts.map +1 -0
- package/dist/lib/stream-coalescer.d.ts +46 -0
- package/dist/lib/stream-coalescer.d.ts.map +1 -0
- package/dist/lib/terminal-dock.d.ts +6 -0
- package/dist/lib/terminal-dock.d.ts.map +1 -0
- package/dist/lib/tool-icon.d.ts +19 -0
- package/dist/lib/tool-icon.d.ts.map +1 -0
- package/dist/lib/tool-summary.d.ts +2 -0
- package/dist/lib/tool-summary.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/view-navigation.d.ts +15 -0
- package/dist/lib/view-navigation.d.ts.map +1 -0
- package/dist/lib/ws-client-helpers.d.ts +46 -0
- package/dist/lib/ws-client-helpers.d.ts.map +1 -0
- package/dist/lib/ws-client-utils.d.ts +87 -0
- package/dist/lib/ws-client-utils.d.ts.map +1 -0
- package/dist/lib/ws-client.d.ts +235 -0
- package/dist/lib/ws-client.d.ts.map +1 -0
- package/dist/main.d.ts +8 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/stores/auto-submit-streak.d.ts +40 -0
- package/dist/stores/auto-submit-streak.d.ts.map +1 -0
- package/dist/stores/autophase-store.d.ts +50 -0
- package/dist/stores/autophase-store.d.ts.map +1 -0
- package/dist/stores/chat-store.d.ts +128 -0
- package/dist/stores/chat-store.d.ts.map +1 -0
- package/dist/stores/config-store.d.ts +67 -0
- package/dist/stores/config-store.d.ts.map +1 -0
- package/dist/stores/coordinator-monitor-store.d.ts +133 -0
- package/dist/stores/coordinator-monitor-store.d.ts.map +1 -0
- package/dist/stores/file-reference-store.d.ts +36 -0
- package/dist/stores/file-reference-store.d.ts.map +1 -0
- package/dist/stores/file-store.d.ts +40 -0
- package/dist/stores/file-store.d.ts.map +1 -0
- package/dist/stores/fleet-store.d.ts +29 -0
- package/dist/stores/fleet-store.d.ts.map +1 -0
- package/dist/stores/git-changes-store.d.ts +38 -0
- package/dist/stores/git-changes-store.d.ts.map +1 -0
- package/dist/stores/git-info-store.d.ts +18 -0
- package/dist/stores/git-info-store.d.ts.map +1 -0
- package/dist/stores/goal-store.d.ts +12 -0
- package/dist/stores/goal-store.d.ts.map +1 -0
- package/dist/stores/history-store.d.ts +15 -0
- package/dist/stores/history-store.d.ts.map +1 -0
- package/dist/stores/index.d.ts +36 -0
- package/dist/stores/index.d.ts.map +1 -0
- package/dist/stores/kanban-store.d.ts +22 -0
- package/dist/stores/kanban-store.d.ts.map +1 -0
- package/dist/stores/local-prefs.d.ts +117 -0
- package/dist/stores/local-prefs.d.ts.map +1 -0
- package/dist/stores/mailbox-store.d.ts +53 -0
- package/dist/stores/mailbox-store.d.ts.map +1 -0
- package/dist/stores/monitor-store.d.ts +116 -0
- package/dist/stores/monitor-store.d.ts.map +1 -0
- package/dist/stores/office-map-store.d.ts +47 -0
- package/dist/stores/office-map-store.d.ts.map +1 -0
- package/dist/stores/sdd-board-store.d.ts +88 -0
- package/dist/stores/sdd-board-store.d.ts.map +1 -0
- package/dist/stores/sdd-wizard-store.d.ts +64 -0
- package/dist/stores/sdd-wizard-store.d.ts.map +1 -0
- package/dist/stores/session-store.d.ts +125 -0
- package/dist/stores/session-store.d.ts.map +1 -0
- package/dist/stores/side-effect-store.d.ts +18 -0
- package/dist/stores/side-effect-store.d.ts.map +1 -0
- package/dist/stores/specs-store.d.ts +67 -0
- package/dist/stores/specs-store.d.ts.map +1 -0
- package/dist/stores/types.d.ts +240 -0
- package/dist/stores/types.d.ts.map +1 -0
- package/dist/stores/ui-store.d.ts +307 -0
- package/dist/stores/ui-store.d.ts.map +1 -0
- package/dist/stores/viz-store.d.ts +126 -0
- package/dist/stores/viz-store.d.ts.map +1 -0
- package/dist/stores/worktree-store.d.ts +47 -0
- package/dist/stores/worktree-store.d.ts.map +1 -0
- package/dist/types.d.ts +121 -118
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +7 -1
- package/package.json +12 -13
- package/dist/assets/KanbanView-DWBGErwm.js +0 -1
- package/dist/assets/OfficeMapPanel-BBKsytG0.js +0 -4
- package/dist/assets/SessionsDashboard-CveBdrQJ.js +0 -1
- package/dist/assets/common-B28qhvZh.js +0 -1
- package/dist/assets/common-CeTsF3jX.js +0 -1
- package/dist/assets/index-BqAVsSCe.js +0 -154
- package/dist/assets/index-DTFjO9oF.css +0 -1
- package/dist/assets/local-prefs-C1YdbI5g.js +0 -1
- package/dist/assets/settings-Os0ifjjB.js +0 -1
- package/dist/assets/settings-UGa_oSYC.js +0 -1
- package/dist/assets/ui-store-FTgDlcX2.js +0 -1
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { WSClientMessage, WSCompletionRequest, WSServerMessage } from '../types';
|
|
2
|
+
import { type EventHandler, type WsStatus } from './ws-client-utils';
|
|
3
|
+
export type { WsStatus };
|
|
4
|
+
export declare class WrongStackWebSocketClient {
|
|
5
|
+
private ws;
|
|
6
|
+
private url;
|
|
7
|
+
private handlers;
|
|
8
|
+
private reconnectAttempts;
|
|
9
|
+
private maxReconnectAttempts;
|
|
10
|
+
private reconnectDelay;
|
|
11
|
+
private shouldReconnect;
|
|
12
|
+
private reconnectTimer;
|
|
13
|
+
private connectPromise;
|
|
14
|
+
/** Monotonic generation counter. Each openSocket() call increments it;
|
|
15
|
+
* event handlers capture the generation at creation time and ignore
|
|
16
|
+
* events from older sockets (e.g. a timed-out socket that fires onopen
|
|
17
|
+
* late). */
|
|
18
|
+
private socketGeneration;
|
|
19
|
+
private messageQueue;
|
|
20
|
+
private static readonly MAX_QUEUED_MESSAGES;
|
|
21
|
+
private pendingConfirms;
|
|
22
|
+
private sessionId;
|
|
23
|
+
/** Stored last close reason / error message so the UI can show "what
|
|
24
|
+
* went wrong" while reconnecting instead of a generic spinner. */
|
|
25
|
+
private lastErrorText;
|
|
26
|
+
private statusListeners;
|
|
27
|
+
private currentStatus;
|
|
28
|
+
onStatus(fn: (s: WsStatus) => void): () => void;
|
|
29
|
+
get status(): WsStatus;
|
|
30
|
+
private setStatus;
|
|
31
|
+
constructor(url?: string);
|
|
32
|
+
private withSession;
|
|
33
|
+
/**
|
|
34
|
+
* Exchange a stored token for an HttpOnly auth cookie via `/ws-auth`.
|
|
35
|
+
* Called once before the first connect so subsequent reconnections can
|
|
36
|
+
* drop the `?token=` from the WS URL (C-2 fix — token-in-URL closes
|
|
37
|
+
* the C-598 query-string exposure class). No-op when the cookie is
|
|
38
|
+
* already set, when the server is on a loopback bind (no token
|
|
39
|
+
* required), or when no token is available yet.
|
|
40
|
+
*
|
|
41
|
+
* Failure is non-fatal only for local loopback or explicit public-WS URL
|
|
42
|
+
* flows. Normal remote browser clients need the cookie path so the token does
|
|
43
|
+
* not remain in the WebSocket URL.
|
|
44
|
+
*/
|
|
45
|
+
ensureAuthCookie(): Promise<void>;
|
|
46
|
+
connect(): Promise<void>;
|
|
47
|
+
private openSocket;
|
|
48
|
+
private attemptReconnect;
|
|
49
|
+
/** Force an immediate reconnect attempt, bypassing the backoff timer. */
|
|
50
|
+
retryNow(): void;
|
|
51
|
+
private flushMessageQueue;
|
|
52
|
+
private handleMessage;
|
|
53
|
+
private emit;
|
|
54
|
+
send(message: WSClientMessage): void;
|
|
55
|
+
/**
|
|
56
|
+
* Register a handler for a server message type. Two overloads:
|
|
57
|
+
* - `on('text_delta', (msg) => …)` — msg is narrowed to the matching union
|
|
58
|
+
* member, so `msg.payload` is statically typed. No cast needed.
|
|
59
|
+
* - `on(someString, handler)` — for runtime-computed type names; the
|
|
60
|
+
* handler receives the wider `WSServerMessage`. Backwards compatible.
|
|
61
|
+
*/
|
|
62
|
+
on<K extends WSServerMessage['type']>(eventType: K, handler: (msg: Extract<WSServerMessage, {
|
|
63
|
+
type: K;
|
|
64
|
+
}>) => void): () => void;
|
|
65
|
+
on(eventType: string, handler: EventHandler): () => void;
|
|
66
|
+
off<K extends WSServerMessage['type']>(eventType: K, handler: (msg: Extract<WSServerMessage, {
|
|
67
|
+
type: K;
|
|
68
|
+
}>) => void): void;
|
|
69
|
+
off(eventType: string, handler: EventHandler): void;
|
|
70
|
+
sendMessage(content: string, imageBase64?: string): string;
|
|
71
|
+
sendAbort(): void;
|
|
72
|
+
getGitInfo(): void;
|
|
73
|
+
/** Request the working-tree change set (file list for the Changes panel). */
|
|
74
|
+
getGitChanges(): void;
|
|
75
|
+
/** Request the before/after content for one changed file. */
|
|
76
|
+
getGitDiff(path: string): void;
|
|
77
|
+
sendConfirm(id: string, decision: 'yes' | 'no' | 'always' | 'deny'): void;
|
|
78
|
+
switchModel(provider: string, model: string): void;
|
|
79
|
+
newSession(): void;
|
|
80
|
+
listProviders(): void;
|
|
81
|
+
listProviderModels(providerId: string): void;
|
|
82
|
+
listSavedProviders(): void;
|
|
83
|
+
addKey(providerId: string, label: string, apiKey: string): void;
|
|
84
|
+
updateKey(providerId: string, label: string, apiKey: string): void;
|
|
85
|
+
deleteKey(providerId: string, label: string): void;
|
|
86
|
+
setActiveKey(providerId: string, label: string): void;
|
|
87
|
+
addProvider(id: string, family: string, baseUrl?: string | undefined, apiKey?: string): void;
|
|
88
|
+
removeProvider(providerId: string): void;
|
|
89
|
+
/** Begin a subscription sign-in; progress arrives as `auth.oauth.status`. */
|
|
90
|
+
startOAuth(kind: 'chatgpt' | 'claude' | 'copilot'): void;
|
|
91
|
+
/** Manual-paste fallback for loopback flows (port busy / remote browser). */
|
|
92
|
+
submitOAuthCode(kind: 'chatgpt' | 'claude' | 'copilot', input: string): void;
|
|
93
|
+
/** Cancel an in-flight subscription sign-in. */
|
|
94
|
+
cancelOAuth(kind: 'chatgpt' | 'claude' | 'copilot'): void;
|
|
95
|
+
/** Run a health probe against a saved provider's `/v1/models`. */
|
|
96
|
+
probeProvider(providerId: string, timeoutMs?: number): void;
|
|
97
|
+
/** Remove the saved model allowlist for a provider. */
|
|
98
|
+
clearProviderModels(providerId: string): void;
|
|
99
|
+
/** Restore a previously-cleared model allowlist (pairs with clear). */
|
|
100
|
+
undoProviderClear(providerId: string, previousModels: string[]): void;
|
|
101
|
+
/** Update a saved provider's wire config (family / baseUrl / envVars / models). */
|
|
102
|
+
updateProvider(payload: {
|
|
103
|
+
id: string;
|
|
104
|
+
family?: string | undefined;
|
|
105
|
+
baseUrl?: string | undefined;
|
|
106
|
+
envVars?: string[] | undefined;
|
|
107
|
+
models?: string[] | undefined;
|
|
108
|
+
}): void;
|
|
109
|
+
clearContext(): void;
|
|
110
|
+
compactContext(aggressive?: boolean): void;
|
|
111
|
+
repairContext(): void;
|
|
112
|
+
debugContext(): void;
|
|
113
|
+
listContextModes(): void;
|
|
114
|
+
switchContextMode(id: string): void;
|
|
115
|
+
createContextMode(mode: {
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
description: string;
|
|
119
|
+
thresholds: {
|
|
120
|
+
warn: number;
|
|
121
|
+
soft: number;
|
|
122
|
+
hard: number;
|
|
123
|
+
};
|
|
124
|
+
preserveK: number;
|
|
125
|
+
eliseThreshold: number;
|
|
126
|
+
}): void;
|
|
127
|
+
updateContextMode(id: string, patch: {
|
|
128
|
+
name?: string | undefined;
|
|
129
|
+
description?: string | undefined;
|
|
130
|
+
thresholds?: {
|
|
131
|
+
warn?: number | undefined;
|
|
132
|
+
soft?: number | undefined;
|
|
133
|
+
hard?: number | undefined;
|
|
134
|
+
} | undefined;
|
|
135
|
+
preserveK?: number | undefined;
|
|
136
|
+
eliseThreshold?: number | undefined;
|
|
137
|
+
}): void;
|
|
138
|
+
deleteContextMode(id: string): void;
|
|
139
|
+
switchAutonomy(mode: string): void;
|
|
140
|
+
updatePrefs(prefs: Record<string, unknown>): void;
|
|
141
|
+
getPrefs(): void;
|
|
142
|
+
listTools(): void;
|
|
143
|
+
listMemory(): void;
|
|
144
|
+
remember(text: string, scope?: 'project-agents' | 'project-memory' | 'user-memory'): void;
|
|
145
|
+
forget(text: string, scope?: 'project-agents' | 'project-memory' | 'user-memory'): void;
|
|
146
|
+
listMcpServers(): void;
|
|
147
|
+
addMcpServer(config: {
|
|
148
|
+
name: string;
|
|
149
|
+
transport: string;
|
|
150
|
+
description?: string;
|
|
151
|
+
enabled?: boolean;
|
|
152
|
+
command?: string;
|
|
153
|
+
args?: string[];
|
|
154
|
+
env?: Record<string, string>;
|
|
155
|
+
allowedTools?: string[];
|
|
156
|
+
url?: string;
|
|
157
|
+
headers?: Record<string, string>;
|
|
158
|
+
lazy?: boolean;
|
|
159
|
+
}): void;
|
|
160
|
+
removeMcpServer(name: string): void;
|
|
161
|
+
updateMcpServer(config: {
|
|
162
|
+
name: string;
|
|
163
|
+
transport?: string;
|
|
164
|
+
description?: string;
|
|
165
|
+
enabled?: boolean;
|
|
166
|
+
command?: string;
|
|
167
|
+
args?: string[];
|
|
168
|
+
env?: Record<string, string>;
|
|
169
|
+
allowedTools?: string[];
|
|
170
|
+
url?: string;
|
|
171
|
+
headers?: Record<string, string>;
|
|
172
|
+
lazy?: boolean;
|
|
173
|
+
}): void;
|
|
174
|
+
wakeMcpServer(name: string): void;
|
|
175
|
+
sleepMcpServer(name: string): void;
|
|
176
|
+
discoverMcpServer(name: string): void;
|
|
177
|
+
enableMcpServer(name: string): void;
|
|
178
|
+
disableMcpServer(name: string): void;
|
|
179
|
+
restartMcpServer(name: string): void;
|
|
180
|
+
listSkills(): void;
|
|
181
|
+
getSkillContent(name: string, source: string): void;
|
|
182
|
+
installSkill(ref: string, global?: boolean): void;
|
|
183
|
+
uninstallSkill(name: string, global?: boolean): void;
|
|
184
|
+
checkForUpdates(name?: string, global?: boolean): void;
|
|
185
|
+
createSkill(name: string, description: string, scope: 'project' | 'global'): void;
|
|
186
|
+
editSkill(name: string, body: string): void;
|
|
187
|
+
exportAllSkills(): void;
|
|
188
|
+
getDiag(): void;
|
|
189
|
+
getStats(): void;
|
|
190
|
+
saveSession(): void;
|
|
191
|
+
resumeSessionById(id: string): void;
|
|
192
|
+
listModes(): void;
|
|
193
|
+
switchMode(id: string): void;
|
|
194
|
+
listFiles(query?: string, limit?: number, path?: string): void;
|
|
195
|
+
requestCompletion(payload: WSCompletionRequest['payload']): void;
|
|
196
|
+
getTodos(): void;
|
|
197
|
+
clearTodos(): void;
|
|
198
|
+
removeTodo(idOrIndex: string | number): void;
|
|
199
|
+
updateTodoStatus(id: string, status: 'pending' | 'in_progress' | 'completed'): void;
|
|
200
|
+
getTasks(): void;
|
|
201
|
+
updateTaskStatus(id: string, status: string): void;
|
|
202
|
+
getPlan(): void;
|
|
203
|
+
updatePlanItem(target: string, status: 'open' | 'in_progress' | 'done'): void;
|
|
204
|
+
listSessions(limit?: number): void;
|
|
205
|
+
deleteSession(id: string): void;
|
|
206
|
+
renameSession(id: string, name: string): void;
|
|
207
|
+
setWorkingDir(path: string): void;
|
|
208
|
+
resumeSession(sessionId: string): void;
|
|
209
|
+
ping(): void;
|
|
210
|
+
refineModel(text: string): void;
|
|
211
|
+
disconnect(): void;
|
|
212
|
+
get isConnected(): boolean;
|
|
213
|
+
get currentSessionId(): string | null;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Default WS URL derived from the page's host.
|
|
217
|
+
*
|
|
218
|
+
* Subtle gotcha on Windows: when the page is loaded from `http://localhost:3456`,
|
|
219
|
+
* the browser resolves `localhost` *itself* and on Windows it tries IPv6 `[::1]`
|
|
220
|
+
* before IPv4 `127.0.0.1`. If the backend listens only on `127.0.0.1`, every
|
|
221
|
+
* connection attempt to `ws://localhost:3457` first hits the IPv6 socket
|
|
222
|
+
* (refused) and then either gives up or flaps — symptom: "ws disconnect hep".
|
|
223
|
+
*
|
|
224
|
+
* Fix: when the page is on a loopback host (`localhost` / `127.0.0.1` / `::1`),
|
|
225
|
+
* force the WS URL to use the literal IPv4 loopback address. That bypasses the
|
|
226
|
+
* DNS dance entirely. For any other hostname (LAN IP, custom WS_HOST override)
|
|
227
|
+
* we keep the page's hostname so things still "just work".
|
|
228
|
+
*
|
|
229
|
+
* The WS port is NOT hardcoded: the HTTP server stamps the live port into the
|
|
230
|
+
* served HTML as `<meta name="wrongstack-ws-port">` (see http-server.ts), so
|
|
231
|
+
* several WebUI instances can run on different PORT/WS_PORT pairs at once. We
|
|
232
|
+
* fall back to 3457 only when the tag is absent (e.g. the vite dev server).
|
|
233
|
+
*/
|
|
234
|
+
export declare function getWSClient(url?: string): WrongStackWebSocketClient;
|
|
235
|
+
//# sourceMappingURL=ws-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/lib/ws-client.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import '@fontsource-variable/ibm-plex-sans';
|
|
2
|
+
import '@fontsource/ibm-plex-mono/400.css';
|
|
3
|
+
import '@fontsource/ibm-plex-mono/500.css';
|
|
4
|
+
import '@fontsource/ibm-plex-mono/600.css';
|
|
5
|
+
import './i18n';
|
|
6
|
+
import './index.css';
|
|
7
|
+
import './syntax-highlight.css';
|
|
8
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.tsx"],"names":[],"mappings":"AAMA,OAAO,oCAAoC,CAAC;AAC5C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,CAAC;AAEhB,OAAO,aAAa,CAAC;AACrB,OAAO,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-submit streak tracking for YOLO+auto mode.
|
|
3
|
+
*
|
|
4
|
+
* Tracks how many consecutive automatic next-step submissions have occurred
|
|
5
|
+
* since the last manual user input. When the streak hits autoProceedMaxIterations,
|
|
6
|
+
* auto-submit pauses and a warning is shown — the autonomy mode stays on; only
|
|
7
|
+
* the automatic submission is paused until the user types something.
|
|
8
|
+
*
|
|
9
|
+
* Reset on:
|
|
10
|
+
* - Manual user input (any submit via ChatInput)
|
|
11
|
+
* - Autonomy mode change
|
|
12
|
+
*
|
|
13
|
+
* Increment on:
|
|
14
|
+
* - Every successful auto-submit (countdown fires and suggestion is sent)
|
|
15
|
+
*/
|
|
16
|
+
interface UseAutoSubmitStreak {
|
|
17
|
+
/** Current streak count */
|
|
18
|
+
streak: number;
|
|
19
|
+
/** Whether the cap warning has been shown */
|
|
20
|
+
capWarned: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Check if auto-submit is allowed right now (streak < cap).
|
|
23
|
+
* Call this BEFORE showing the countdown — returns false when the cap
|
|
24
|
+
* is already at the limit, so the countdown should not start.
|
|
25
|
+
*/
|
|
26
|
+
canAutoSubmit: () => boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Record a successful auto-submit. Increments the streak.
|
|
29
|
+
* Returns true if submitted, false if capped (caller should show warning).
|
|
30
|
+
*/
|
|
31
|
+
recordAutoSubmit: () => boolean;
|
|
32
|
+
/** Reset the streak to 0 — call on every manual user submit */
|
|
33
|
+
reset: () => void;
|
|
34
|
+
/** Reset the cap-warning flag — call when autonomy mode changes */
|
|
35
|
+
resetCapWarned: () => void;
|
|
36
|
+
}
|
|
37
|
+
/** Module-level streak — reset when the page hard-reloads (acceptable tradeoff) */
|
|
38
|
+
export declare function useAutoSubmitStreak(): UseAutoSubmitStreak;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=auto-submit-streak.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-submit-streak.d.ts","sourceRoot":"","sources":["../../src/stores/auto-submit-streak.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,UAAU,mBAAmB;IAC3B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,+DAA+D;IAC/D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,mEAAmE;IACnE,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAOD,mFAAmF;AACnF,wBAAgB,mBAAmB,IAAI,mBAAmB,CAmEzD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { PhaseItem } from '@/components/PhasePanel';
|
|
2
|
+
export type AutoPhaseStatus = 'idle' | 'running' | 'paused' | 'completed' | 'failed' | 'stopped';
|
|
3
|
+
/** A persisted kanban board (one AutoPhase graph JSON per board on disk). */
|
|
4
|
+
export interface AutoPhaseBoardSummary {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
updatedAt: number;
|
|
8
|
+
status: string;
|
|
9
|
+
}
|
|
10
|
+
interface AutoPhaseState {
|
|
11
|
+
phases: PhaseItem[];
|
|
12
|
+
activePhaseId: string | null;
|
|
13
|
+
overallPercent: number;
|
|
14
|
+
autonomous: boolean;
|
|
15
|
+
title: string | null;
|
|
16
|
+
/** Full operator prompt that started the run (title is only a short heading). */
|
|
17
|
+
goal: string | null;
|
|
18
|
+
status: AutoPhaseStatus;
|
|
19
|
+
lastEvent: string | null;
|
|
20
|
+
lastError: string | null;
|
|
21
|
+
/** All persisted boards for this project (from autophase.list). */
|
|
22
|
+
graphs: AutoPhaseBoardSummary[];
|
|
23
|
+
progress: {
|
|
24
|
+
totalPhases: number;
|
|
25
|
+
completed: number;
|
|
26
|
+
failed: number;
|
|
27
|
+
totalTasks: number;
|
|
28
|
+
completedTasks: number;
|
|
29
|
+
failedTasks: number;
|
|
30
|
+
} | null;
|
|
31
|
+
setState: (s: {
|
|
32
|
+
phases?: PhaseItem[] | undefined;
|
|
33
|
+
activePhaseId?: string | null | undefined;
|
|
34
|
+
overallPercent?: number | undefined;
|
|
35
|
+
autonomous?: boolean | undefined;
|
|
36
|
+
title?: string | null | undefined;
|
|
37
|
+
goal?: string | null | undefined;
|
|
38
|
+
status?: AutoPhaseStatus | undefined;
|
|
39
|
+
lastEvent?: string | null | undefined;
|
|
40
|
+
lastError?: string | null | undefined;
|
|
41
|
+
graphs?: AutoPhaseBoardSummary[] | undefined;
|
|
42
|
+
progress?: AutoPhaseState['progress'] | undefined;
|
|
43
|
+
}) => void;
|
|
44
|
+
clear: () => void;
|
|
45
|
+
/** Request state from server on mount. */
|
|
46
|
+
hydrateFromServer: (send: (msg: unknown) => void) => void;
|
|
47
|
+
}
|
|
48
|
+
export declare const useAutoPhaseStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AutoPhaseState>>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=autophase-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autophase-store.d.ts","sourceRoot":"","sources":["../../src/stores/autophase-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjG,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mEAAmE;IACnE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI,CAAC;IAET,QAAQ,EAAE,CAAC,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QAC1C,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACjC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;QACrC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACtC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACtC,MAAM,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;QAC7C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,0CAA0C;IAC1C,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,iBAAiB,6EAiD3B,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import type { ChatMessage } from './types.js';
|
|
2
|
+
/** Submit mode for a queued/typed message. Drives whether the message
|
|
3
|
+
* interrupts the running agent (`steer`), rides alongside without
|
|
4
|
+
* interrupting (`btw`), or is held for after the run completes (`queue`). */
|
|
5
|
+
export type QueueMode = 'btw' | 'steer' | 'queue';
|
|
6
|
+
/** One entry in the message queue — the text plus how it was added.
|
|
7
|
+
* `addedAt` powers the optional sort-by-newest toggle. */
|
|
8
|
+
export interface QueuedItem {
|
|
9
|
+
text: string;
|
|
10
|
+
mode: QueueMode;
|
|
11
|
+
addedAt: number;
|
|
12
|
+
}
|
|
13
|
+
interface ChatState {
|
|
14
|
+
messages: ChatMessage[];
|
|
15
|
+
currentAssistantMessageId: string | null;
|
|
16
|
+
currentToolId: string | null;
|
|
17
|
+
isLoading: boolean;
|
|
18
|
+
abortController: AbortController | null;
|
|
19
|
+
executions: Map<string, ToolExecution>;
|
|
20
|
+
toolMessageIdsByUseId: Map<string, string>;
|
|
21
|
+
/** Messages typed while the agent was running. Drained one-at-a-time
|
|
22
|
+
* after run.result lands so the user can stack up follow-ups without
|
|
23
|
+
* waiting for each turn to finish. Each item carries the submit mode
|
|
24
|
+
* so the queue panel can render the appropriate label. */
|
|
25
|
+
queue: QueuedItem[];
|
|
26
|
+
/** Snapshot taken at the start of the current run (first iteration.started
|
|
27
|
+
* after idle). Used by run.result to compute the per-turn summary —
|
|
28
|
+
* duration is now-at minus this `at`, cost delta is the difference
|
|
29
|
+
* between the session's current cost and the cost captured here. Null
|
|
30
|
+
* while idle. */
|
|
31
|
+
runStart: {
|
|
32
|
+
at: number;
|
|
33
|
+
cost: number;
|
|
34
|
+
} | null;
|
|
35
|
+
/** Transient extended-thinking buffer. Populated by provider.thinking_delta
|
|
36
|
+
* events and shown as a soft, ephemeral bubble below the chat tail while
|
|
37
|
+
* the model is reasoning. Cleared the moment the model produces user-
|
|
38
|
+
* facing output (text_delta) or starts a tool — and at provider.response /
|
|
39
|
+
* run.result. The archive buffer below is what eventually lands in
|
|
40
|
+
* `messages`; this live buffer is only for the temporary bubble. */
|
|
41
|
+
thinkingBuffer: string;
|
|
42
|
+
/** Wall-clock ms when the current thinking burst started, for the chip's
|
|
43
|
+
* elapsed timer. Reset alongside `thinkingBuffer`. */
|
|
44
|
+
thinkingStartedAt: number | null;
|
|
45
|
+
/** Full thinking text accumulated for the current iteration. Unlike the
|
|
46
|
+
* live chip buffer, this survives text/tool events until iteration end. */
|
|
47
|
+
thinkingLogBuffer: string;
|
|
48
|
+
/** Wall-clock ms when the archived thinking text for this iteration began. */
|
|
49
|
+
thinkingLogStartedAt: number | null;
|
|
50
|
+
/** Id of the session whose transcript is currently in `messages`. The
|
|
51
|
+
* verifier view compares this to the server-reported active session id
|
|
52
|
+
* on every `session.start` — a mismatch means the user switched sessions
|
|
53
|
+
* without an explicit clear, and we drop the local transcript rather
|
|
54
|
+
* than render it. Persisted alongside `messages` so the cross-session
|
|
55
|
+
* bleed check survives F5. */
|
|
56
|
+
boundSessionId: string | null;
|
|
57
|
+
addMessage: (msg: Omit<ChatMessage, 'id' | 'timestamp'> & {
|
|
58
|
+
timestamp?: number;
|
|
59
|
+
}) => string;
|
|
60
|
+
setMessages: (messages: ChatMessage[]) => void;
|
|
61
|
+
updateMessage: (id: string, updates: Partial<ChatMessage>) => void;
|
|
62
|
+
appendToMessage: (id: string, text: string) => void;
|
|
63
|
+
finalizeMessage: (id: string) => void;
|
|
64
|
+
setToolResult: (id: string, result: string, ok: boolean) => void;
|
|
65
|
+
appendToolProgress: (id: string, line: string) => void;
|
|
66
|
+
appendToolProgressLines: (id: string, lines: string[]) => void;
|
|
67
|
+
getToolMessageId: (toolUseId: string) => string | undefined;
|
|
68
|
+
setToolResultByUseId: (toolUseId: string, result: string, ok: boolean) => void;
|
|
69
|
+
appendToolProgressLinesByUseId: (toolUseId: string, lines: string[]) => void;
|
|
70
|
+
setLoading: (loading: boolean) => void;
|
|
71
|
+
setAbortController: (ctrl: AbortController | null) => void;
|
|
72
|
+
clearMessages: () => void;
|
|
73
|
+
/** Bind the current transcript to a session id. See boundSessionId above
|
|
74
|
+
* for why this is a separate action. */
|
|
75
|
+
setBoundSessionId: (id: string | null) => void;
|
|
76
|
+
setCurrentAssistantMessage: (id: string | null) => void;
|
|
77
|
+
setCurrentToolId: (id: string | null) => void;
|
|
78
|
+
truncateAfter: (id: string) => void;
|
|
79
|
+
addExecution: (exec: ToolExecution) => void;
|
|
80
|
+
updateExecution: (id: string, updates: Partial<ToolExecution>) => void;
|
|
81
|
+
enqueue: (text: string, mode?: QueueMode) => void;
|
|
82
|
+
dequeue: () => QueuedItem | null;
|
|
83
|
+
removeQueued: (idx: number) => void;
|
|
84
|
+
clearQueue: () => void;
|
|
85
|
+
setRunStart: (s: {
|
|
86
|
+
at: number;
|
|
87
|
+
cost: number;
|
|
88
|
+
} | null) => void;
|
|
89
|
+
appendThinking: (text: string) => void;
|
|
90
|
+
clearThinking: () => void;
|
|
91
|
+
flushThinkingLog: (iteration: number) => void;
|
|
92
|
+
clearThinkingLog: () => void;
|
|
93
|
+
}
|
|
94
|
+
interface ToolExecution {
|
|
95
|
+
id: string;
|
|
96
|
+
name: string;
|
|
97
|
+
input?: unknown | undefined;
|
|
98
|
+
output?: string | undefined;
|
|
99
|
+
durationMs?: number | undefined;
|
|
100
|
+
ok: boolean;
|
|
101
|
+
startedAt: number;
|
|
102
|
+
completedAt?: number | undefined;
|
|
103
|
+
}
|
|
104
|
+
export declare const useChatStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ChatState>, "persist" | "setState"> & {
|
|
105
|
+
setState(partial: ChatState | Partial<ChatState> | ((state: ChatState) => ChatState | Partial<ChatState>), replace?: false | undefined): unknown;
|
|
106
|
+
setState(state: ChatState | ((state: ChatState) => ChatState), replace: true): unknown;
|
|
107
|
+
persist: {
|
|
108
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ChatState, {
|
|
109
|
+
messages: ChatState['messages'];
|
|
110
|
+
queue: ChatState['queue'];
|
|
111
|
+
boundSessionId: string | null;
|
|
112
|
+
thinkingLogBuffer: string;
|
|
113
|
+
}, unknown>>) => void;
|
|
114
|
+
clearStorage: () => void;
|
|
115
|
+
rehydrate: () => Promise<void> | void;
|
|
116
|
+
hasHydrated: () => boolean;
|
|
117
|
+
onHydrate: (fn: (state: ChatState) => void) => () => void;
|
|
118
|
+
onFinishHydration: (fn: (state: ChatState) => void) => () => void;
|
|
119
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<ChatState, {
|
|
120
|
+
messages: ChatState['messages'];
|
|
121
|
+
queue: ChatState['queue'];
|
|
122
|
+
boundSessionId: string | null;
|
|
123
|
+
thinkingLogBuffer: string;
|
|
124
|
+
}, unknown>>;
|
|
125
|
+
};
|
|
126
|
+
}>;
|
|
127
|
+
export {};
|
|
128
|
+
//# sourceMappingURL=chat-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-store.d.ts","sourceRoot":"","sources":["../../src/stores/chat-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface ConfigState {
|
|
2
|
+
provider: string;
|
|
3
|
+
model: string;
|
|
4
|
+
baseUrl?: string | undefined;
|
|
5
|
+
apiKey?: string | undefined;
|
|
6
|
+
wsUrl: string;
|
|
7
|
+
wsConnected: boolean;
|
|
8
|
+
/** Fine-grained connection state from the WS client. Drives the topbar's
|
|
9
|
+
* reconnect indicator. */
|
|
10
|
+
wsStatus: {
|
|
11
|
+
state: 'connecting';
|
|
12
|
+
} | {
|
|
13
|
+
state: 'open';
|
|
14
|
+
} | {
|
|
15
|
+
state: 'closed';
|
|
16
|
+
error?: string | undefined;
|
|
17
|
+
} | {
|
|
18
|
+
state: 'reconnecting';
|
|
19
|
+
attempt: number;
|
|
20
|
+
nextRetryAt: number;
|
|
21
|
+
lastError?: string | undefined;
|
|
22
|
+
};
|
|
23
|
+
theme: 'light' | 'dark' | 'system';
|
|
24
|
+
autoConnect: boolean;
|
|
25
|
+
/** Play a soft synthesized chime when run.result lands with status=done.
|
|
26
|
+
* Off by default — opt-in via the Command Palette. Persisted so the
|
|
27
|
+
* preference survives reloads. Actual playback only fires after the
|
|
28
|
+
* user has interacted with the page (Web Audio autoplay policy). */
|
|
29
|
+
soundOnComplete: boolean;
|
|
30
|
+
setProvider: (provider: string) => void;
|
|
31
|
+
setModel: (model: string) => void;
|
|
32
|
+
setConfig: (config: Partial<Omit<ConfigState, 'setProvider' | 'setModel' | 'setConfig' | 'setTheme'>>) => void;
|
|
33
|
+
setTheme: (theme: 'light' | 'dark' | 'system') => void;
|
|
34
|
+
setWsConnected: (connected: boolean) => void;
|
|
35
|
+
setWsStatus: (s: ConfigState['wsStatus']) => void;
|
|
36
|
+
setSoundOnComplete: (on: boolean) => void;
|
|
37
|
+
}
|
|
38
|
+
export declare const useConfigStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ConfigState>, "persist" | "setState"> & {
|
|
39
|
+
setState(partial: ConfigState | Partial<ConfigState> | ((state: ConfigState) => ConfigState | Partial<ConfigState>), replace?: false | undefined): unknown;
|
|
40
|
+
setState(state: ConfigState | ((state: ConfigState) => ConfigState), replace: true): unknown;
|
|
41
|
+
persist: {
|
|
42
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ConfigState, {
|
|
43
|
+
provider: string;
|
|
44
|
+
model: string;
|
|
45
|
+
baseUrl: string | undefined;
|
|
46
|
+
apiKey: string | undefined;
|
|
47
|
+
theme: "dark" | "light" | "system";
|
|
48
|
+
autoConnect: boolean;
|
|
49
|
+
soundOnComplete: boolean;
|
|
50
|
+
}, unknown>>) => void;
|
|
51
|
+
clearStorage: () => void;
|
|
52
|
+
rehydrate: () => Promise<void> | void;
|
|
53
|
+
hasHydrated: () => boolean;
|
|
54
|
+
onHydrate: (fn: (state: ConfigState) => void) => () => void;
|
|
55
|
+
onFinishHydration: (fn: (state: ConfigState) => void) => () => void;
|
|
56
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<ConfigState, {
|
|
57
|
+
provider: string;
|
|
58
|
+
model: string;
|
|
59
|
+
baseUrl: string | undefined;
|
|
60
|
+
apiKey: string | undefined;
|
|
61
|
+
theme: "dark" | "light" | "system";
|
|
62
|
+
autoConnect: boolean;
|
|
63
|
+
soundOnComplete: boolean;
|
|
64
|
+
}, unknown>>;
|
|
65
|
+
};
|
|
66
|
+
}>;
|
|
67
|
+
//# sourceMappingURL=config-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/stores/config-store.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB;+BAC2B;IAC3B,QAAQ,EACJ;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,GACvB;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACjB;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAC/C;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpG,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB;;;yEAGqE;IACrE,eAAe,EAAE,OAAO,CAAC;IAEzB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,KACtF,IAAI,CAAC;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAClD,kBAAkB,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC1B,CAAC"}
|