@wrongstack/webui 0.297.0 → 0.298.1
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/assets/AgentRosterView-C26RCdot.js +11 -0
- package/dist/assets/{AnalyticsDashboard-CkceglT6.js → AnalyticsDashboard-CEjjV3bX.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-CnfZC8x0.js +3 -0
- package/dist/assets/{ChangesView-DouwIaDk.js → ChangesView-D0BiTbs8.js} +1 -1
- package/dist/assets/ChronicleDashboard-BZ4XOcvf.js +1 -0
- package/dist/assets/CodeEditor-BlqaT56D.js +1 -0
- package/dist/assets/CodeMap-Bj5tjjW5.js +1 -0
- package/dist/assets/{CronJobsPanel-CAImDL8t.js → CronJobsPanel-F6nhZtfg.js} +1 -1
- package/dist/assets/DeadCodeScanPanel-C9sLNUUc.js +2 -0
- package/dist/assets/{DebugDashboard-DLNPZIEI.js → DebugDashboard-D8BLcLjI.js} +1 -1
- package/dist/assets/{DesignGalleryView-D0azMq2e.js → DesignGalleryView-B8mE5nGy.js} +1 -1
- package/dist/assets/GoalView-DIx7Zr4a.js +1 -0
- package/dist/assets/KanbanView-DshzDwq1.js +3 -0
- package/dist/assets/MailboxDetailView-BJXpXjtm.js +1 -0
- package/dist/assets/MemoryManager-B-S5oREO.js +1 -0
- package/dist/assets/{ModelPicker-CN-UD3lc.js → ModelPicker-CNHhT2SO.js} +1 -1
- package/dist/assets/OfficeMapPanel-CBN9uG80.js +4 -0
- package/dist/assets/{ProcessMonitor-ButM8C0T.js → ProcessMonitor-Cc8LsfTh.js} +1 -1
- package/dist/assets/QueuePanel-B0NXFwEt.js +1 -0
- package/dist/assets/{RefreshDebugView-DVvWsh9A.js → RefreshDebugView-DLst_piS.js} +1 -1
- package/dist/assets/SageTabs-NwMcr4Pq.js +2 -0
- package/dist/assets/SddHub-CpRHXmjm.js +2 -0
- package/dist/assets/SessionsDashboard-C5dXb0iJ.js +1 -0
- package/dist/assets/SetupScreen-B81fcNgP.js +1 -0
- package/dist/assets/SkillDetailView-BTvgE_MD.js +3 -0
- package/dist/assets/{SpecsView-BJs_okSx.js → SpecsView-DhuaZcOl.js} +1 -1
- package/dist/assets/TechStackView-BXmfl2qY.js +1 -0
- package/dist/assets/{TerminalPanel-W2V0X7b9.js → TerminalPanel-DjruTcb6.js} +1 -1
- package/dist/assets/{Toaster-CbcX_Cou.js → Toaster-BmyghnqJ.js} +1 -1
- package/dist/assets/{activity-CbbZyUMG.js → activity-Bo6DncWg.js} +1 -1
- package/dist/assets/{activity-C4z6-WoZ.js → activity-C34aPcFU.js} +1 -1
- package/dist/assets/{activity-B4Ngvkan.js → activity-CBdzUJQ_.js} +1 -1
- package/dist/assets/{activity-B8uejnae.js → activity-CLYyxeC6.js} +1 -1
- package/dist/assets/{activity-qoJ3grs0.js → activity-Cv_EIWjY.js} +1 -1
- package/dist/assets/{activity-B5MvPWYV.js → activity-Wr0_Gb8A.js} +1 -1
- package/dist/assets/{activity-D57y5l1T.js → activity-kCY0dGRC.js} +1 -1
- package/dist/assets/{button-uGqXvobk.js → button-BMECp1cg.js} +1 -1
- package/dist/assets/{chat-Du7n7HZ7.js → chat-CRmMDzCb.js} +1 -1
- package/dist/assets/{chat-VkTBQmmx.js → chat-CwnuX7tG.js} +1 -1
- package/dist/assets/{chat-BJzPxfyr.js → chat-DLn1hY01.js} +1 -1
- package/dist/assets/{chat-IRKmQ6we.js → chat-DSEq1Bdz.js} +1 -1
- package/dist/assets/{chat-C7ybebfi.js → chat-DxLD17ER.js} +1 -1
- package/dist/assets/{chat-BRBVFl4h.js → chat-DzPxYALH.js} +1 -1
- package/dist/assets/{chat-Bkom8vQo.js → chat-OunddzYy.js} +1 -1
- package/dist/assets/chat-store-B2CjP2Zl.js +17 -0
- package/dist/assets/{codemap-activity-store-DP3mCZu1.js → codemap-activity-store-Cz0_AHqt.js} +1 -1
- package/dist/assets/codemap-index-store-B-XLZpJu.js +1 -0
- package/dist/assets/common-BfVFjVhf.js +1 -0
- package/dist/assets/common-C5hY-d_0.js +1 -0
- package/dist/assets/{dialog-CT1PTjzK.js → dialog-BJef9ZZo.js} +1 -1
- package/dist/assets/{empty-state-CdyXy96A.js → empty-state-BGzRrNXI.js} +1 -1
- package/dist/assets/{i18n-1BkaqMgr.js → i18n-2wGPPdl_.js} +2 -2
- package/dist/assets/index-DeA8UyiB.css +1 -0
- package/dist/assets/index-x6-rLl5H.js +132 -0
- package/dist/assets/{input-B-VCX2sG.js → input-Bd10nfMj.js} +1 -1
- package/dist/assets/{mailbox-store-DVoNbOZr.js → mailbox-store-D3omLzBk.js} +1 -1
- package/dist/assets/markdown-sSmz-Ua_.js +44 -0
- package/dist/assets/progress-ring-BEULkQ1r.js +1 -0
- package/dist/assets/{roster-ws-DXm0krqH.js → roster-ws-BmV_3U6w.js} +1 -1
- package/dist/assets/session-store-ZMNU48xK.js +1 -0
- package/dist/assets/settings-BF0lRxlj.js +1 -0
- package/dist/assets/settings-CP6cwqHD.js +1 -0
- package/dist/assets/settings-D0rWEhMg.js +1 -0
- package/dist/assets/settings-DFCaP02p.js +1 -0
- package/dist/assets/settings-DHix1ZPL.js +1 -0
- package/dist/assets/{settings-DEmKlLmn.js → settings-eEzjNzsC.js} +1 -1
- package/dist/assets/settings-kp_aIgcX.js +1 -0
- package/dist/assets/{shared-jvJxtKc5.js → shared-CrX8iE-U.js} +1 -1
- package/dist/assets/stores-DyQOSkkD.js +7 -0
- package/dist/assets/ui-store-di6oY7cy.js +1 -0
- package/dist/assets/useWebSocket-BVFPigcY.js +28 -0
- package/dist/assets/{utils-CN2sfDVP.js → utils-CwJvjOcH.js} +1 -1
- package/dist/assets/{vendor-2VBBgNb5.js → vendor-BTTkQ9Tn.js} +28 -28
- package/dist/assets/{view-navigation-Cgy5xh9q.js → view-navigation-BMRzqGbq.js} +1 -1
- package/dist/assets/ws-client-B0-KwuTK.js +1 -0
- package/dist/components/ChatInput/refine-panel-host.d.ts +9 -1
- package/dist/components/DeadCodeScanPanel/DeadCodeScanPanel.d.ts +1 -3
- package/dist/components/MemoryManager/MemoryInjectorPanel.d.ts +19 -0
- package/dist/components/PanelSuspense.d.ts +8 -0
- package/dist/components/SettingsPanel/DisplaySection.d.ts +20 -0
- package/dist/components/SettingsPanel/PluginToggleList.d.ts +11 -1
- package/dist/components/ViewRouter.d.ts +12 -0
- package/dist/components/WorkbenchTopbar.d.ts +53 -0
- package/dist/components/codemap-model.d.ts +2 -0
- package/dist/hooks/useViewport.d.ts +38 -0
- package/dist/hooks/useWebSocket.d.ts +1 -0
- package/dist/hooks/ws-handlers/misc-handlers.d.ts +1 -0
- package/dist/index.html +25 -26
- package/dist/index.js +58857 -57378
- package/dist/lib/sage-block.d.ts +18 -23
- package/dist/lib/view-navigation.d.ts +1 -1
- package/dist/lib/ws-client.d.ts +16 -8
- package/dist/providers.json +10 -0
- package/dist/stores/chat-store.d.ts +36 -3
- package/dist/stores/config-store.d.ts +0 -2
- package/dist/stores/local-prefs.d.ts +22 -2
- package/dist/stores/session-store.d.ts +3 -0
- package/dist/stores/types.d.ts +2 -1
- package/dist/stores/ui-store.d.ts +8 -1
- package/dist/types/client-message.d.ts +1 -0
- package/dist/types/connections.d.ts +7 -1
- package/dist/types/server-message.d.ts +11 -0
- package/dist/types/system.d.ts +4 -0
- package/package.json +11 -9
- package/dist/App.d.ts.map +0 -1
- package/dist/assets/AgentRosterView-Cje2NBtU.js +0 -11
- package/dist/assets/AudienceMemoryPanel-DB-8ISNP.js +0 -3
- package/dist/assets/ChronicleDashboard-B4Khm6hu.js +0 -1
- package/dist/assets/CodeEditor-CrKbA5s8.js +0 -1
- package/dist/assets/CodeMap-Dz8yNlUe.js +0 -1
- package/dist/assets/DeadCodeScanPanel-C5ehBTQF.js +0 -2
- package/dist/assets/GoalView-gtQRK78W.js +0 -1
- package/dist/assets/KanbanView-BXKe19EI.js +0 -3
- package/dist/assets/LazyMarkdown-BGwFjYKr.js +0 -3
- package/dist/assets/MailboxDetailView-D4fXipos.js +0 -1
- package/dist/assets/MemoryManager-D_rquas9.js +0 -1
- package/dist/assets/OfficeMapPanel-CJFrTNmg.js +0 -4
- package/dist/assets/QueuePanel-C5oihwYM.js +0 -1
- package/dist/assets/SageTabs-C9vAgvCD.js +0 -2
- package/dist/assets/SddHub-D_nsWjuM.js +0 -2
- package/dist/assets/SessionsDashboard-DdwU3Ma5.js +0 -1
- package/dist/assets/SetupScreen-CQCfLdPI.js +0 -1
- package/dist/assets/SkillDetailView-mVxi-9jo.js +0 -3
- package/dist/assets/TechStackView-BZ4M7TYc.js +0 -1
- package/dist/assets/chat-store-CM1dMeuY.js +0 -17
- package/dist/assets/codemap-index-store-DyAe3ZYJ.js +0 -1
- package/dist/assets/common-D8_r1x8x.js +0 -1
- package/dist/assets/common-suUxW9sA.js +0 -1
- package/dist/assets/index-BPfIz78e.js +0 -131
- package/dist/assets/index-BlceaIyu.css +0 -1
- package/dist/assets/markdown-L6DLSM7f.js +0 -44
- package/dist/assets/progress-ring-CFOvGxw7.js +0 -1
- package/dist/assets/session-store-BsNYnfOc.js +0 -1
- package/dist/assets/settings-C5F2tQ7C.js +0 -1
- package/dist/assets/settings-Cdk8i_p6.js +0 -1
- package/dist/assets/settings-D6wFOw5n.js +0 -1
- package/dist/assets/settings-DCEOkxYE.js +0 -1
- package/dist/assets/settings-DsflqNn0.js +0 -1
- package/dist/assets/settings-skShEZ2B.js +0 -1
- package/dist/assets/stores-mpa0202y.js +0 -6
- package/dist/assets/ui-store-CS-njcmT.js +0 -1
- package/dist/assets/useWebSocket-Dh3aAFDE.js +0 -28
- package/dist/assets/ws-client-WVGn8ORh.js +0 -1
- package/dist/components/AgentOfficeDetails.d.ts.map +0 -1
- package/dist/components/AgentOfficeView/model.d.ts.map +0 -1
- package/dist/components/AgentOfficeView.d.ts.map +0 -1
- package/dist/components/AgentRosterCatalogTab.d.ts.map +0 -1
- package/dist/components/AgentRosterChrome.d.ts.map +0 -1
- package/dist/components/AgentRosterLiveTab.d.ts.map +0 -1
- package/dist/components/AgentRosterSelfLearningTab.d.ts.map +0 -1
- package/dist/components/AgentRosterView.d.ts.map +0 -1
- package/dist/components/AgentRuntimePolicyEditor.d.ts.map +0 -1
- package/dist/components/AgentTranscript.d.ts.map +0 -1
- package/dist/components/AgentsMonitor.d.ts.map +0 -1
- package/dist/components/AgentsPage/format.d.ts.map +0 -1
- package/dist/components/AgentsPage.d.ts.map +0 -1
- package/dist/components/AnalyticsDashboard.d.ts.map +0 -1
- package/dist/components/AudienceMemoryPanel.d.ts.map +0 -1
- package/dist/components/AutonomyPicker.d.ts.map +0 -1
- package/dist/components/AvailabilityCalendarEditor.d.ts.map +0 -1
- package/dist/components/BoardView.d.ts.map +0 -1
- package/dist/components/ChangesView.d.ts.map +0 -1
- package/dist/components/ChatInput/code-detect.d.ts.map +0 -1
- package/dist/components/ChatInput/draft-token-counter.d.ts.map +0 -1
- package/dist/components/ChatInput/file-mention-picker.d.ts.map +0 -1
- package/dist/components/ChatInput/image-attach-control.d.ts.map +0 -1
- package/dist/components/ChatInput/image-attachments.d.ts.map +0 -1
- package/dist/components/ChatInput/queued-messages.d.ts.map +0 -1
- package/dist/components/ChatInput/refine-panel-host.d.ts.map +0 -1
- package/dist/components/ChatInput/slash-commands.d.ts.map +0 -1
- package/dist/components/ChatInput/slash-popup.d.ts.map +0 -1
- package/dist/components/ChatInput/slash-routing.d.ts.map +0 -1
- package/dist/components/ChatInput/stop-controls.d.ts.map +0 -1
- package/dist/components/ChatInput/use-paste-drop.d.ts.map +0 -1
- package/dist/components/ChatInput.d.ts.map +0 -1
- package/dist/components/ChatView/ThinkingBubble.d.ts.map +0 -1
- package/dist/components/ChatView/index.d.ts.map +0 -1
- package/dist/components/ChatView/utils.d.ts.map +0 -1
- package/dist/components/ChatView.d.ts.map +0 -1
- package/dist/components/CheckpointTimeline.d.ts.map +0 -1
- package/dist/components/ChipMultiSelect.d.ts.map +0 -1
- package/dist/components/ChronicleDashboard.d.ts.map +0 -1
- package/dist/components/ChroniclePipelineStrip.d.ts.map +0 -1
- package/dist/components/CodeEditor.d.ts.map +0 -1
- package/dist/components/CodeMap.d.ts.map +0 -1
- package/dist/components/CodeMapActivityDrawer.d.ts.map +0 -1
- package/dist/components/CodeMapActivityHelpers.d.ts.map +0 -1
- package/dist/components/CodeMapActivityStreamPanel.d.ts.map +0 -1
- package/dist/components/CodeMapCanvasSurface.d.ts.map +0 -1
- package/dist/components/CodeMapCanvasToolbar.d.ts.map +0 -1
- package/dist/components/CodeMapConfig.d.ts.map +0 -1
- package/dist/components/CodeMapDirectoryTree.d.ts.map +0 -1
- package/dist/components/CodeMapFlowState.d.ts.map +0 -1
- package/dist/components/CodeMapHeader.d.ts.map +0 -1
- package/dist/components/CodeMapLiveOverlay.d.ts.map +0 -1
- package/dist/components/CodeMapRelationInspector.d.ts.map +0 -1
- package/dist/components/CodeMapRelations.d.ts.map +0 -1
- package/dist/components/CodeMapSearchResults.d.ts.map +0 -1
- package/dist/components/CodeMapSelectedNodeSummary.d.ts.map +0 -1
- package/dist/components/CodeMapTreeSidebar.d.ts.map +0 -1
- package/dist/components/CodeMapVisuals.d.ts.map +0 -1
- package/dist/components/CollabPanel.d.ts.map +0 -1
- package/dist/components/CommandPalette/export-utils.d.ts.map +0 -1
- package/dist/components/CommandPalette/index.d.ts.map +0 -1
- package/dist/components/CommandPalette.d.ts.map +0 -1
- package/dist/components/ConfirmDialog.d.ts.map +0 -1
- package/dist/components/ConfirmModal.d.ts.map +0 -1
- package/dist/components/ConnectionBanner.d.ts.map +0 -1
- package/dist/components/ContextBar.d.ts.map +0 -1
- package/dist/components/ContextBreakdownModal.d.ts.map +0 -1
- package/dist/components/ContextDashboard.d.ts.map +0 -1
- package/dist/components/ContextMemoryMonitor.d.ts.map +0 -1
- package/dist/components/ContextModePicker.d.ts.map +0 -1
- package/dist/components/CostChip.d.ts.map +0 -1
- package/dist/components/CronJobsPanel.d.ts.map +0 -1
- package/dist/components/CronTrigger.d.ts.map +0 -1
- package/dist/components/CustomRosterPanel.d.ts.map +0 -1
- package/dist/components/DeadCodeScanPanel/DeadCodeScanPanel.d.ts.map +0 -1
- package/dist/components/DebugDashboard.d.ts.map +0 -1
- package/dist/components/DependencyGraph.d.ts.map +0 -1
- package/dist/components/DesignGalleryView.d.ts.map +0 -1
- package/dist/components/DiffView.d.ts.map +0 -1
- package/dist/components/ErrorBoundary.d.ts.map +0 -1
- package/dist/components/FallbackEditor.d.ts.map +0 -1
- package/dist/components/FileActivityDrawer.d.ts.map +0 -1
- package/dist/components/FileExplorer.d.ts.map +0 -1
- package/dist/components/FilePicker.d.ts.map +0 -1
- package/dist/components/FileReferenceChip.d.ts.map +0 -1
- package/dist/components/FleetMonitor.d.ts.map +0 -1
- package/dist/components/FleetPanel.d.ts.map +0 -1
- package/dist/components/GoalPanel.d.ts.map +0 -1
- package/dist/components/GoalView.d.ts.map +0 -1
- package/dist/components/InspectorPanel.d.ts.map +0 -1
- package/dist/components/KanbanAgentRunPanel.d.ts.map +0 -1
- package/dist/components/KanbanBoardChrome.d.ts.map +0 -1
- package/dist/components/KanbanBoardSidebar.d.ts.map +0 -1
- package/dist/components/KanbanBoardState.d.ts.map +0 -1
- package/dist/components/KanbanBoundaryEditor.d.ts.map +0 -1
- package/dist/components/KanbanCleanerAlert.d.ts.map +0 -1
- package/dist/components/KanbanColumnView.d.ts.map +0 -1
- package/dist/components/KanbanDecompositionPanel.d.ts.map +0 -1
- package/dist/components/KanbanQueueHealthBar.d.ts.map +0 -1
- package/dist/components/KanbanRunControls.d.ts.map +0 -1
- package/dist/components/KanbanTaskActivityRecorder.d.ts.map +0 -1
- package/dist/components/KanbanTaskCompletionChecks.d.ts.map +0 -1
- package/dist/components/KanbanTaskFields.d.ts.map +0 -1
- package/dist/components/KanbanTaskInspector.d.ts.map +0 -1
- package/dist/components/KanbanTaskOptions.d.ts.map +0 -1
- package/dist/components/KanbanTaskTree.d.ts.map +0 -1
- package/dist/components/KanbanVerificationDashboard.d.ts.map +0 -1
- package/dist/components/KanbanView.d.ts.map +0 -1
- package/dist/components/KanbanViewModeTabs.d.ts.map +0 -1
- package/dist/components/MailboxDetailView.d.ts.map +0 -1
- package/dist/components/MailboxPanel.d.ts.map +0 -1
- package/dist/components/MemoryManager/DeleteMemoryDialog.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryDetail.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryDrawer.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryEditor.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryFilters.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryGraph.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts +0 -3
- package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryLifecycleTrace.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryList.d.ts.map +0 -1
- package/dist/components/MemoryManager/MemoryManagerEmpty.d.ts.map +0 -1
- package/dist/components/MemoryManager/SageTabs.d.ts.map +0 -1
- package/dist/components/MemoryManager/index.d.ts.map +0 -1
- package/dist/components/MemoryManager/selectors.d.ts.map +0 -1
- package/dist/components/MemoryManager/shared.d.ts.map +0 -1
- package/dist/components/MessageBubble/AttachmentGallery.d.ts.map +0 -1
- package/dist/components/MessageBubble/CopyButton.d.ts.map +0 -1
- package/dist/components/MessageBubble/ErrorBody.d.ts.map +0 -1
- package/dist/components/MessageBubble/LazyMarkdown.d.ts.map +0 -1
- package/dist/components/MessageBubble/StreamingMarkdown.d.ts.map +0 -1
- package/dist/components/MessageBubble/ToolInputView.d.ts.map +0 -1
- package/dist/components/MessageBubble/ToolLedgerCard.d.ts.map +0 -1
- package/dist/components/MessageBubble/index.d.ts.map +0 -1
- package/dist/components/MessageBubble/utils.d.ts.map +0 -1
- package/dist/components/MessageBubble.d.ts.map +0 -1
- package/dist/components/ModePicker.d.ts.map +0 -1
- package/dist/components/ModelPickDialog.d.ts.map +0 -1
- package/dist/components/ModelPicker.d.ts.map +0 -1
- package/dist/components/ModelSelectDialog.d.ts.map +0 -1
- package/dist/components/MonacoDiffView.d.ts.map +0 -1
- package/dist/components/NextStepsBar.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/CanvasPanels.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/Hud.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/Overlays.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/SelectedNodeDetailPanel.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/edges.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/nodes.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/resolve.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/use-recently-finished.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas/utils.d.ts.map +0 -1
- package/dist/components/OfficeMapCanvas.d.ts.map +0 -1
- package/dist/components/OfficeMapPanel.d.ts.map +0 -1
- package/dist/components/OfficeMapSettingsPanel.d.ts.map +0 -1
- package/dist/components/PhasePanel.d.ts.map +0 -1
- package/dist/components/PlanPanel.d.ts.map +0 -1
- package/dist/components/ProcessMonitor.d.ts.map +0 -1
- package/dist/components/PromptLibraryModal.d.ts.map +0 -1
- package/dist/components/ProviderWaitingRoom.d.ts.map +0 -1
- package/dist/components/QueuePanel.d.ts.map +0 -1
- package/dist/components/QuickModelSwitcher.d.ts.map +0 -1
- package/dist/components/QuickModelSwitcher.filter.d.ts.map +0 -1
- package/dist/components/RefinePanel.d.ts.map +0 -1
- package/dist/components/RefreshDebugView.d.ts.map +0 -1
- package/dist/components/SageMemoryCard.d.ts +0 -19
- package/dist/components/SageMemoryCard.d.ts.map +0 -1
- package/dist/components/SddActivityFeed.d.ts.map +0 -1
- package/dist/components/SddBoardView.d.ts.map +0 -1
- package/dist/components/SddDestroyDialog.d.ts.map +0 -1
- package/dist/components/SddFlowGraph.d.ts.map +0 -1
- package/dist/components/SddHub.d.ts.map +0 -1
- package/dist/components/SddKanbanView.d.ts.map +0 -1
- package/dist/components/SddTaskDrawer.d.ts.map +0 -1
- package/dist/components/SddWizard.d.ts.map +0 -1
- package/dist/components/SearchOverlay.d.ts.map +0 -1
- package/dist/components/SendButton.d.ts.map +0 -1
- package/dist/components/SessionWatchPanel.d.ts.map +0 -1
- package/dist/components/SessionsDashboard.d.ts.map +0 -1
- package/dist/components/SettingsPanel/BasicSettingsTabs.d.ts.map +0 -1
- package/dist/components/SettingsPanel/BrainSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ChimeraSettingsPanel.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ConnectionsHealthSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/FallbacksSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/FleetSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/IntegrationsSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/MCPSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ModelSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/OAuthLoginSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/PluginToggleList.d.ts.map +0 -1
- package/dist/components/SettingsPanel/PreferenceControls.d.ts.map +0 -1
- package/dist/components/SettingsPanel/PreferenceToggle.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ProviderSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/RoutingSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/SecuritySection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ShadowSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/ToolsSection.d.ts.map +0 -1
- package/dist/components/SettingsPanel/brain-section-options.d.ts.map +0 -1
- package/dist/components/SettingsPanel/index.d.ts.map +0 -1
- package/dist/components/SettingsPanel/local-presets.d.ts.map +0 -1
- package/dist/components/SettingsPanel/official-servers.d.ts.map +0 -1
- package/dist/components/SettingsPanel/settings-panel-reducers.d.ts.map +0 -1
- package/dist/components/SettingsPanel/undo-send-decision.d.ts.map +0 -1
- package/dist/components/SettingsPanel.d.ts.map +0 -1
- package/dist/components/SetupScreen/CustomProviderSection.d.ts.map +0 -1
- package/dist/components/SetupScreen/ModelEditor.d.ts.map +0 -1
- package/dist/components/SetupScreen/ProviderKeyCard.d.ts.map +0 -1
- package/dist/components/SetupScreen/key-operation.d.ts.map +0 -1
- package/dist/components/SetupScreen/popular-providers.d.ts.map +0 -1
- package/dist/components/SetupScreen/relative-time.d.ts.map +0 -1
- package/dist/components/SetupScreen/types.d.ts.map +0 -1
- package/dist/components/SetupScreen.d.ts.map +0 -1
- package/dist/components/ShortcutsOverlay.d.ts.map +0 -1
- package/dist/components/SideEffectTimeline.d.ts.map +0 -1
- package/dist/components/SidePanel/AgentsPanel.d.ts.map +0 -1
- package/dist/components/SidePanel/ChangesPanel.d.ts.map +0 -1
- package/dist/components/SidePanel/DesignStudioPanel.d.ts.map +0 -1
- package/dist/components/SidePanel/SessionList.d.ts.map +0 -1
- package/dist/components/SidePanel/SessionPanel.d.ts.map +0 -1
- package/dist/components/SidePanel/SkillsList.d.ts.map +0 -1
- package/dist/components/SidePanel/WorktreesPanel.d.ts.map +0 -1
- package/dist/components/SidePanel/index.d.ts.map +0 -1
- package/dist/components/SkillDetailView.d.ts.map +0 -1
- package/dist/components/SpecsView.d.ts.map +0 -1
- package/dist/components/TaskActivityTimeline.d.ts.map +0 -1
- package/dist/components/TaskBoard.d.ts.map +0 -1
- package/dist/components/TaskCard.d.ts.map +0 -1
- package/dist/components/TaskExecutionAttempts.d.ts.map +0 -1
- package/dist/components/TaskIntelligencePanel.d.ts.map +0 -1
- package/dist/components/TaskRiskPanel.d.ts.map +0 -1
- package/dist/components/TaskVerificationSection.d.ts.map +0 -1
- package/dist/components/TasksPanel.d.ts.map +0 -1
- package/dist/components/TechStackView/DependencyDetail.d.ts.map +0 -1
- package/dist/components/TechStackView/DependencyTable.d.ts.map +0 -1
- package/dist/components/TechStackView/FindingsPanel.d.ts.map +0 -1
- package/dist/components/TechStackView/TechStackToolbar.d.ts.map +0 -1
- package/dist/components/TechStackView/index.d.ts.map +0 -1
- package/dist/components/TechStackView/shared.d.ts.map +0 -1
- package/dist/components/TerminalPanel.d.ts.map +0 -1
- package/dist/components/ThemeProvider.d.ts.map +0 -1
- package/dist/components/Toaster.d.ts.map +0 -1
- package/dist/components/TodosPanel.d.ts.map +0 -1
- package/dist/components/ToolGroup.d.ts.map +0 -1
- package/dist/components/ToolResult.d.ts.map +0 -1
- package/dist/components/UpdateBanner.d.ts.map +0 -1
- package/dist/components/VerificationReportPanel.d.ts.map +0 -1
- package/dist/components/WatchMessageBubble.d.ts.map +0 -1
- package/dist/components/WelcomeScreen.d.ts.map +0 -1
- package/dist/components/WorkDashboard.d.ts.map +0 -1
- package/dist/components/WorkspaceDock.d.ts.map +0 -1
- package/dist/components/WorktreeGraph.d.ts.map +0 -1
- package/dist/components/WorktreeLanes.d.ts.map +0 -1
- package/dist/components/WorktreeOrphans.d.ts.map +0 -1
- package/dist/components/activity-bar/index.d.ts.map +0 -1
- package/dist/components/activity-bar/nav.d.ts.map +0 -1
- package/dist/components/agent-roster-data.d.ts.map +0 -1
- package/dist/components/agents/AgentDetailSection.d.ts.map +0 -1
- package/dist/components/agents/AgentRosterCard.d.ts.map +0 -1
- package/dist/components/agents/FleetSummaryBar.d.ts.map +0 -1
- package/dist/components/codemap-model.d.ts.map +0 -1
- package/dist/components/context-editor/ContextWindowEditor.d.ts.map +0 -1
- package/dist/components/dashboard-primitives.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/monaco-theme.d.ts.map +0 -1
- package/dist/components/toaster-helpers.d.ts.map +0 -1
- package/dist/components/ui/PickerCardList.d.ts.map +0 -1
- package/dist/components/ui/api-key-display.d.ts.map +0 -1
- package/dist/components/ui/badge.d.ts.map +0 -1
- package/dist/components/ui/button.d.ts.map +0 -1
- package/dist/components/ui/concurrency-gauge.d.ts.map +0 -1
- package/dist/components/ui/dialog.d.ts.map +0 -1
- package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
- package/dist/components/ui/empty-state.d.ts.map +0 -1
- package/dist/components/ui/event-timeline.d.ts.map +0 -1
- package/dist/components/ui/fleet-agent-row.d.ts.map +0 -1
- package/dist/components/ui/index.d.ts.map +0 -1
- package/dist/components/ui/input.d.ts.map +0 -1
- package/dist/components/ui/pagination.d.ts.map +0 -1
- package/dist/components/ui/progress-ring.d.ts.map +0 -1
- package/dist/components/ui/scroll-area.d.ts.map +0 -1
- package/dist/components/ui/sheet.d.ts.map +0 -1
- package/dist/components/ui/sparkline.d.ts.map +0 -1
- package/dist/components/ui/tabs.d.ts.map +0 -1
- package/dist/components/useAgentRosterData.d.ts.map +0 -1
- package/dist/components/useKanbanRegistrySessionIds.d.ts.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/use-ws-handlers.d.ts.map +0 -1
- package/dist/hooks/useDesktopBridge.d.ts.map +0 -1
- package/dist/hooks/useF5Resilience.d.ts.map +0 -1
- package/dist/hooks/useFieldKeyboardNav.d.ts.map +0 -1
- package/dist/hooks/useFleetPolling.d.ts.map +0 -1
- package/dist/hooks/useGitInfo.d.ts.map +0 -1
- package/dist/hooks/useGlobalKeyboardShortcuts.d.ts.map +0 -1
- package/dist/hooks/useHorizontalScroll.d.ts.map +0 -1
- package/dist/hooks/useKanbanMeta.d.ts.map +0 -1
- package/dist/hooks/useMemoryForFile.d.ts.map +0 -1
- package/dist/hooks/usePagination.d.ts.map +0 -1
- package/dist/hooks/useProviderModels.d.ts.map +0 -1
- package/dist/hooks/useScrollPosition.d.ts.map +0 -1
- package/dist/hooks/useWebSocket.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/coordinator-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/fleet-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/session-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers/techstack-handlers.d.ts.map +0 -1
- package/dist/hooks/ws-handlers.d.ts.map +0 -1
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/languages.d.ts.map +0 -1
- package/dist/index.css.map +0 -7
- package/dist/index.js.map +0 -7
- package/dist/lib/accent-colors.d.ts.map +0 -1
- package/dist/lib/agent-office.d.ts.map +0 -1
- package/dist/lib/agent-status.d.ts.map +0 -1
- package/dist/lib/chime.d.ts.map +0 -1
- package/dist/lib/color.d.ts.map +0 -1
- package/dist/lib/completion.d.ts.map +0 -1
- package/dist/lib/core-browser-shim.d.ts.map +0 -1
- package/dist/lib/default-prompt-pools.d.ts.map +0 -1
- package/dist/lib/desktop-host.d.ts.map +0 -1
- package/dist/lib/desktop-shell.d.ts.map +0 -1
- package/dist/lib/fallback-ref.d.ts.map +0 -1
- package/dist/lib/favicon.d.ts.map +0 -1
- package/dist/lib/file-icons.d.ts.map +0 -1
- package/dist/lib/goal.d.ts.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/kanban-cleaner.d.ts.map +0 -1
- package/dist/lib/kanban-metadata.d.ts.map +0 -1
- package/dist/lib/kanban-verification.d.ts.map +0 -1
- package/dist/lib/model-calendar.d.ts.map +0 -1
- package/dist/lib/model-matrix-routes.d.ts.map +0 -1
- package/dist/lib/notify.d.ts.map +0 -1
- package/dist/lib/plugin-enablement.d.ts.map +0 -1
- package/dist/lib/roster-ws.d.ts.map +0 -1
- package/dist/lib/sage-block.d.ts.map +0 -1
- package/dist/lib/sdd-theme.d.ts.map +0 -1
- package/dist/lib/stream-coalescer.d.ts.map +0 -1
- package/dist/lib/terminal-dock.d.ts.map +0 -1
- package/dist/lib/tool-icon.d.ts.map +0 -1
- package/dist/lib/tool-summary.d.ts.map +0 -1
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/view-navigation.d.ts.map +0 -1
- package/dist/lib/ws-client-actions.d.ts.map +0 -1
- package/dist/lib/ws-client-contracts.d.ts.map +0 -1
- package/dist/lib/ws-client-helpers.d.ts.map +0 -1
- package/dist/lib/ws-client-utils.d.ts.map +0 -1
- package/dist/lib/ws-client.d.ts.map +0 -1
- package/dist/main.d.ts.map +0 -1
- package/dist/protocol-compatibility.d.ts.map +0 -1
- package/dist/stores/auto-submit-streak.d.ts.map +0 -1
- package/dist/stores/chat-store.d.ts.map +0 -1
- package/dist/stores/codemap-activity-store.d.ts.map +0 -1
- package/dist/stores/codemap-index-store.d.ts.map +0 -1
- package/dist/stores/config-store.d.ts.map +0 -1
- package/dist/stores/context-editor-store.d.ts.map +0 -1
- package/dist/stores/coordinator-monitor-store.d.ts.map +0 -1
- package/dist/stores/cron-store.d.ts.map +0 -1
- package/dist/stores/file-reference-store.d.ts.map +0 -1
- package/dist/stores/file-store.d.ts.map +0 -1
- package/dist/stores/fleet-store.d.ts.map +0 -1
- package/dist/stores/git-changes-store.d.ts.map +0 -1
- package/dist/stores/git-info-store.d.ts.map +0 -1
- package/dist/stores/goal-assess-store.d.ts.map +0 -1
- package/dist/stores/goal-run-store.d.ts.map +0 -1
- package/dist/stores/goal-state-store.d.ts.map +0 -1
- package/dist/stores/goal-store.d.ts.map +0 -1
- package/dist/stores/history-store.d.ts.map +0 -1
- package/dist/stores/index.d.ts.map +0 -1
- package/dist/stores/kanban-store.d.ts.map +0 -1
- package/dist/stores/local-prefs.d.ts.map +0 -1
- package/dist/stores/mailbox-store.d.ts.map +0 -1
- package/dist/stores/memory-injector-store.d.ts.map +0 -1
- package/dist/stores/memory-lifecycle-store.d.ts.map +0 -1
- package/dist/stores/monitor-store.d.ts.map +0 -1
- package/dist/stores/office-map-store.d.ts.map +0 -1
- package/dist/stores/provider-status-store.d.ts.map +0 -1
- package/dist/stores/sdd-board-store.d.ts.map +0 -1
- package/dist/stores/sdd-wizard-store.d.ts.map +0 -1
- package/dist/stores/session-store.d.ts.map +0 -1
- package/dist/stores/side-effect-store.d.ts.map +0 -1
- package/dist/stores/specs-store.d.ts.map +0 -1
- package/dist/stores/techstack-store.d.ts.map +0 -1
- package/dist/stores/types.d.ts.map +0 -1
- package/dist/stores/ui-store.d.ts.map +0 -1
- package/dist/stores/viz-store.d.ts.map +0 -1
- package/dist/stores/worktree-store.d.ts.map +0 -1
- package/dist/types/brain.d.ts.map +0 -1
- package/dist/types/chronicle.d.ts.map +0 -1
- package/dist/types/client-message.d.ts.map +0 -1
- package/dist/types/collab.d.ts.map +0 -1
- package/dist/types/connections.d.ts.map +0 -1
- package/dist/types/goal-kanban-worktree.d.ts.map +0 -1
- package/dist/types/protocol-core.d.ts.map +0 -1
- package/dist/types/runtime.d.ts.map +0 -1
- package/dist/types/sage.d.ts.map +0 -1
- package/dist/types/server-message.d.ts.map +0 -1
- package/dist/types/skills-design.d.ts.map +0 -1
- package/dist/types/system.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Ayarlar`,t=`Configure every aspect of your agent workspace`,n={general:`Genel`,provider:`Sağlayıcı`,connection:`Bağlantılar`,agent:`Vekil`,execution:`Yürütme`,fallbacks:`Yedekler`,routing:`Yönlendirme`,fleet:`Filo`,integrations:`Entegrasyonlar`,chimera:`Chimera`,context:`Bağlam`,logs:`Günlükler`,security:`Güvenlik`,display:`Görünüm`,displayDesc:`Çalışma alanı görünümü, durum çipi, refine zamanlayıcıları ve araç/bellek enjeksiyonu anahtarları — TUI SettingsPicker ile aynı.`},r={heading:`Model`,loading:`Modeller yükleniyor...`,notFound:`Bu sağlayıcı için model bulunamadı. Katalog boş olabilir veya hâlâ yükleniyor olabilir.`,selectProviderFirst:`Önce bir sağlayıcı seçin`,context:`{{count}}k bağlam`},i={wsUrlLabel:`WebSocket Sunucu URL'si`,wsUrlPlaceholder:`ws://localhost:3456`,wsUrlHint:`Vekil WebSocket sunucusunun URL'si. Sunucu CLI ile birlikte çalışır.`,startingHeading:`WebSocket Sunucusunu Başlatma`,startingBody:`Geliştirme için repo kökünden ./dev.ps1 çalıştırın (isteğe bağlı olarak önce WS_HOST/WS_PORT ayarlayın). Aksi hâlde WebUI'yi CLI ile başlatın: wstack --webui.`,healthHeading:`Bağlantı sağlığı`,healthHint:`Proje servislerinin sahiplik, depolama, kuyruk, izleyici ve gecikme raporu.`,healthRefresh:`Yenile`,healthLoading:`Servisler denetleniyor…`,healthUnknown:`Sağlık bilinmiyor`,healthDisconnected:`WebUI WebSocket bağlantısı kesik.`,healthRestartRequired:`Bağlantı sağlık raporunu etkinleştirmek için backend'i bir kez yeniden başlatın.`,healthOptional:`İsteğe bağlı`,endpointInvalidBadge:`socket yolu çok uzun`,endpointInvalidRemedy:`IPC soket yolu bu platformun uzunluk sınırını aştığı için paylaşılan arka plan hizmeti başlatılamıyor. Sorgular daha yavaş bir işlem-yerel moduna düşüyor. Çözüm: daha kısa bir TMPDIR ayarlayın (ör. export TMPDIR=/tmp) ve WrongStack'i yeniden başlatın.`,healthCounts:`{{healthy}} sağlıklı · {{attention}} dikkat · {{sleeping}} uykuda`,healthOverall:{healthy:`Zorunlu servisler sağlıklı`,degraded:`Zorunlu servis zayıflamış`,error:`Zorunlu servis kullanılamıyor`},healthStatus:{healthy:`Sağlıklı`,degraded:`Zayıflamış`,offline:`Uykuda`,unavailable:`Kullanılamıyor`,error:`Hata`},services:{kanban:{label:`Kanban IPC`},mailbox:{label:`Mailbox IPC`}},serviceActionRestart:`Yeniden başlat {{label}}`},a={subscriptionHeading:`Abonelik girişi`,apiKeysHeading:`API anahtarı sağlayıcıları`,apiKeysBody:`Katalogdan bir sağlayıcı seçip API anahtarı ekleyin veya kayıtlı sağlayıcıları yönetin.`,tabCatalog:`Katalog`,tabSaved:`Kayıtlı ({{count}})`,searchPlaceholder:`{{count}} sağlayıcıda ara (ad / kimlik / aile)…`,loadingCatalog:`Katalog yükleniyor...`,noMatch:`"{{query}}" ile eşleşen sağlayıcı yok.`,configured:`Yapılandırıldı`,reachable:`Erişilebilir`,envVar:`ENV: {{var}}`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} model`,keyPlaceholder:`{{name}} API anahtarı`,orEnv:`Veya bunun yerine ortamda {{env}} ayarlayın.`,addApiKey:`API anahtarı ekle`,manageKeys:`API anahtarlarınızı ve sağlayıcı yapılandırmalarınızı yönetin`,addProvider:`Sağlayıcı Ekle`,addCustomHeading:`Özel Sağlayıcı Ekle`,localServers:`Yerel sunucular — doldurmak için tıklayın:`,providerIdPlaceholder:`Sağlayıcı kimliği (örn. my-llm-server)`,apiKeyOptionalPlaceholder:`API Anahtarı (isteğe bağlı)`,noSaved:`Henüz kayıtlı sağlayıcı yok`,noSavedHint:`Başlamak için bir sağlayıcı ekleyin`,apiKeysLabel:`API Anahtarları`,savedProviderCount_one:`{{count}} sağlayıcı`,savedProviderCount_other:`{{count}} sağlayıcı`,keyCount_one:`{{count}} anahtar yapılandırıldı`,keyCount_other:`{{count}} anahtar yapılandırıldı`,activeKeyCount_one:`{{count}} etkin anahtar`,activeKeyCount_other:`{{count}} etkin anahtar`,addKey:`Anahtar Ekle`,noKeys:`Yapılandırılmış anahtar yok`,active:`Etkin`,setActive:`Etkin Yap`,keyLabelPlaceholder:`Anahtar etiketi (örn. default, production)`,apiKeyPlaceholder:`API anahtarı`,saveKey:`Anahtarı Kaydet`,savedToast:`{{name}} için anahtar kaydedildi`},o={status:{connected:`Bağlandı`,connecting:`Bağlanıyor`,sleeping:`Uyuyor`,discovering:`Keşfediliyor`,error:`Hata`,stopped:`Durduruldu`,unknown:`Bilinmiyor`},disabled:`MCP sunucuları devre dışı.`,wakeTitle:`Sunucuyu uyandır`,sleepTitle:`Sunucuyu uyut`,discoverTitle:`Araçları keşfet`,editTitle:`Düzenle`,removeTitle:`Kaldır`,statusLabel:`Durum:`,enabledLabel:`Etkin:`,yes:`Evet`,no:`Hayır`,descriptionLabel:`Açıklama:`,pidLabel:`PID:`,errorLabel:`Hata:`,toolsLabel:`Araçlar ({{count}}):`,noTools:`Henüz araç keşfedilmedi`,serverNameRequired:`Sunucu adı zorunludur`,dialogTitleEdit:`MCP Sunucusunu Düzenle`,dialogTitleAdd:`MCP Sunucusu Ekle`,dialogTitleAddCustom:`Özel MCP Sunucusu Ekle`,fieldName:`Ad`,fieldNamePlaceholder:`örn., github, filesystem`,fieldTransport:`Aktarım`,fieldUrl:`URL`,fieldCommand:`Komut`,fieldCommandPlaceholder:`örn., npx`,fieldArgs:`Argümanlar`,fieldArgsHint:`(boşlukla ayrılmış)`,fieldArgsPlaceholder:`örn., -y @modelcontextprotocol/server-github`,fieldEnv:`Ortam değişkenleri`,fieldEnvHint:`(KEY=değer, satır başına bir tane)`,fieldDescription:`Açıklama`,fieldDescriptionPlaceholder:`Depo erişimi için GitHub MCP sunucusu`,enableServer:`Sunucuyu etkinleştir`,lazyConnect:`Tembel bağlan`,lazyConnectHint:`(ilk araç çağrısına kadar başlatma; boştayken otomatik uyur)`,saveChanges:`Değişiklikleri Kaydet`,addServer:`Sunucu Ekle`,requires:`Gerektirir: {{vars}}`,added:`Eklendi`,heading:`MCP Sunucuları`,summary:`{{connected}} bağlı · {{sleeping}} uyuyor · {{total}} toplam`,addCustom:`Özel Ekle`,tabRecommended:`Önerilen`,tabServers:`Sunucular`,tabAddCustom:`Özel Ekle`,recommendedBody:`Popüler MCP sunucularını tek tıkla ekleyin. Yapılandırmayı öndoldurmak için Ekle'ye tıklayın, sonra onaylayın. Kimlik bilgisi gerektiren sunucuların kullanımdan önce ortam değişkenleri ayarlanmalıdır.`,loadingServers:`Sunucular yükleniyor...`,noServers:`Yapılandırılmış MCP sunucusu yok`,noServersHint:`Popüler sunucular eklemek için Önerilen sekmesine, kendi sunucunuz için Özel Ekle'ye geçin.`,addCustomBody:`stdio, SSE veya HTTP aktarımıyla özel bir MCP sunucusu yapılandırın.`,addCustomBodyHint:`Popüler sunucular için bunun yerine Önerilen sekmesini kullanın — her şey sizin için önceden yapılandırılmıştır.`,removeConfirmTitle:`"{{name}}" sunucusu kaldırılsın mı?`,removeConfirmBody:`Bu, MCP sunucusunu yapılandırmanızdan kaldırır.`,toastAdded:`"{{name}}" sunucusu eklendi`,toastRemoved:`"{{name}}" sunucusu kaldırıldı`,toastDiscovered:`"{{name}}" sunucusundan {{count}} araç keşfedildi`,toastSleeping:`"{{name}}" sunucusu artık uyuyor`,toastConnected:`"{{name}}" sunucusu bağlandı`,toastReconnected:`"{{name}}" sunucusu yeniden bağlandı`,toastDisconnected:`"{{name}}" sunucusu bağlantısı koptu: {{reason}}`,toastError:`"{{name}}" sunucusu hatası: {{error}}`},s={title:`Kayıtlı izin listesi temizlensin mi?`,body_one:`Sabitlenen model {{provider}} için kaldırılacak. Model seçici models.dev kataloğuna geri dönecek.`,body_other:`{{count}} sabitlenen model {{provider}} için kaldırılacak. Model seçici models.dev kataloğuna geri dönecek.`,undoHint:`Onayladıktan sonra 8 saniye boyunca geri alabilirsiniz.`,keepTitle:`İzin listesini tut (Esc)`,clearTitle:`İzin listesini temizle (Enter)`,clear:`İzin listesini temizle`},c={termsWarning:`Bir API anahtarı yerine abonelikle oturum açın. Aboneliği resmi istemcisi dışında kullanmak sağlayıcının Şartlarını ihlal edebilir — hesabınız hız sınırına takılabilir veya yasaklanabilir. API anahtarı programatik kullanım için onaylı yoldur.`,signIn:`Oturum aç`,waitingBrowser:`Oturum açmanız bekleniyor…`,openSignIn:`Oturum açma sayfasını aç`,pasteLoopbackBusy:`Loopback portu meşgul — yönlendirme URL'sini yapıştırın`,pasteCantReach:`Tarayıcı bu sunucuya ulaşamıyor mu? Yönlendirme URL'sini yapıştırın`,submit:`Gönder`,enterCode:`Bu kodu doğrulama sayfasına girin:`,openVerification:`Doğrulama sayfasını aç`,waitingCode:`Yetkilendirme bekleniyor…`,exchanging:`Tokenlar değiştiriliyor…`,fetchingModels:`Modeller getiriliyor…`,signedIn:`Oturum açıldı.`,signedInToast:`Oturum açıldı — {{provider}}`,signInFailed:`Oturum açma başarısız`,accountCount_one:`{{count}} hesap kayıtlı`,accountCount_other:`{{count}} hesap kayıtlı`,active:`Aktif`,inactive:`Pasif`,retry:`Yeniden dene`,retryLogin:`Bu hesabı yeniden doğrula`,newAccount:`Yeni hesap`,aliasPlaceholder:`örn. {{default}}`},l={themeHeading:`Tema`,themeLight:`Açık`,themeDark:`Koyu`,themeSystem:`Sistem`,themeSystemHint:`Sistem, işletim sistemi düzeyindeki açık/koyu tercihinizi izler.`,preferencesHeading:`Tercihler`,compactDensity:`Sıkışık yoğunluk`,compactDensityHint:`Sohbet boyunca daha dar aralıklar.`,soundOnComplete:`Tamamlanınca ses çal`,soundOnCompleteHint:`Bir çalışma bitince hafif bir çan sesi çal.`,titleAnimation:`Başlık animasyonu`,titleAnimationHint:`CLI'da animasyonlu terminal başlığını göster.`,thinkingWordLabel:`Düşünme kelimesi (CLI/TUI)`,thinkingWordHint:`TUI durum çipinde gösterilen kelime. Tek kısa bir kelime.`,statuslineModeLabel:`Durum satırı modu (CLI/TUI)`,statuslineModeHint:`TUI durum satırının yoğunluğu.`,statuslineModeDetailed:`Ayrıntılı`,statuslineModeMinimum:`Asgari`,statuslineModeNoColor:`Renksiz`,animationStyleLabel:`Animasyon stili (CLI/TUI)`,animationStyleHint:`TUI çalışma durumu çipinin animasyonu.`,animationStyleRainbow:`Gökkuşağı`,animationStyleWave:`Dalga`,animationStylePulse:`Nabız`,animationStyleDots:`Noktalar`,animationStyleBreathe:`Nefes`,animationStyleCycle:`Döngü`,showThinkingLabel:`Düşünme kayıtlarını göster`,showThinkingHint:`Tamamlanan akıl yürütme bloklarını sohbet geçmişinde görüntüle.`,groupToolCallsLabel:`Araç çağrılarını grupla`,groupToolCallsHint:`Ardışık araç çağrılarını tek bir çipte topla.`,languageHeading:`Dil`,languageLabel:`Arayüz dili`,languageHint:`Yalnızca arayüz metnini değiştirir. Promptlar, beceriler ve model çıktısı etkilenmez.`,accentCyan:`Camgöbeği`,accentBlue:`Mavi`,accentEmerald:`Zümrüt`,accentViolet:`Mor`,accentRose:`Gül`,accentAmber:`Kehribar`},u={autonomyHeading:`Otonomi ve Davranış`,autonomyModeLabel:`Otonomi modu`,autonomyModeHint:`Ajanın turlar arasında ne kadar bağımsız ilerlediği.`,autonomyModeOff:`Kapalı — tam manuel kontrol`,autonomyModeSuggest:`Öner — sonraki adımları önerir`,autonomyModeAuto:`Otomatik — kısa onay gecikmesi`,autonomyModeEternal:`Sonsuz — hedef bitene kadar otonom`,autonomyModeEternalParallel:`Sonsuz Paralel — çok-ajanlı filo`,autoProceedDelayLabel:`Otomatik ilerleme gecikmesi`,autoProceedDelayHint:`Otomatik modda ajan otomatik ilerlemeden önceki milisaniye. 0 = anında.`,yoloLabel:`YOLO modu`,yoloHint:`Araç onay istemlerini atla — ajan sormadan çalışır.`,refineHeading:`İstem İyileştirme`,enableRefineLabel:`İyileştirmeyi etkinleştir`,enableRefineHint:`Göndermeden önce istemleri yeniden yazar — daha net talimatlar, daha iyi sonuçlar.`,refineDelayLabel:`İyileştirme gecikmesi`,refineDelayHint:`İyileştirilmiş istem otomatik gönderilmeden önceki geri sayım.`,refineLanguageLabel:`İyileştirme dili`,refineLanguageHint:`Dilinizi koruyun veya model için İngilizceye çevirin.`,refineLanguageOriginal:`Orijinal — dilinizi koruyun`,refineLanguageEnglish:`İngilizce — İngilizceye çevir`,refinerProviderLabel:`İyileştirici sağlayıcı`,refinerProviderHint:`Hedef iyileştirme için sağlayıcı. Yapılandırılmış sağlayıcılarınızdan seçin.`,refinerProviderDefault:`Oturum sağlayıcısı`,refinerModelLabel:`İyileştirici model`,refinerModelHint:`Hedef iyileştirme için model. Önce bir iyileştirici sağlayıcı seçilmelidir.`,refinerModelDefault:`Oturum modeli`,refinerProfileLabel:`İyileştirici yedek profili`,refinerProfileHint:`Hedef iyileştirme için adlandırılmış yedek profili. Sağlayıcı+modeli geçersiz kılar.`,refinerProfileDefault:`Yok — sağlayıcı+model veya oturum varsayılanlarını kullan`,reasoningHeading:`Akıl Yürütme ve Önbellek`,reasoningModeLabel:`Akıl yürütme modu`,reasoningModeHint:`Modelin genişletilmiş düşünmeyi nasıl kullandığını kontrol edin. Otomatik = sağlayıcı varsayılanı.`,reasoningModeAuto:`Otomatik — sağlayıcı varsayılanı`,reasoningModeOn:`Açık — düşünmeyi zorla`,reasoningModeOff:`Kapalı — düşünmeyi kapat`,reasoningEffortLabel:`Akıl yürütme çabası`,reasoningEffortHint:`Modelin düşünmeye harcadığı işlem gücü. Yalnızca model desteklediğinde gönderilir.`,reasoningEffortNone:`Yok`,reasoningEffortMinimal:`Minimal`,reasoningEffortLow:`Düşük`,reasoningEffortMedium:`Orta`,reasoningEffortHigh:`Yüksek`,reasoningEffortXhigh:`Çok Yüksek`,reasoningEffortMax:`Maks`,preserveThinkingLabel:`Düşünmeyi koru`,preserveThinkingHint:`Bağlam sürekliliği için akıl yürütme bloklarını turlar arasında tut.`,cacheTtlLabel:`Önbellek TTL`,cacheTtlHint:`İstem önbelleği yaşam süresi. 1h yazmada pahalıdır ama tekrarlanan okumalarda tasarruf sağlar (Anthropic).`,cacheTtlDefault:`Varsayılan — sağlayıcı varsayılanı`,cacheTtl5m:`5 dakika`,cacheTtl1h:`1 saat`,capsHint:`Mevcut modelin ne desteklediğini kontrol etmek için wstack models caps kullanın. Desteklenmeyen ayarlar istek başına sessizce atlanır.`,routingHeading:`Model Yönlendirme`,routingRouteKey:`Model rotası anahtarı`,routingPhasesGroup:`Aşamalar`,routingRolesGroup:`{{label}} rolleri`,routingCustomGroup:`Özel mevcut rotalar`,routingTargetAria:`Model rota hedefi`,routingTargetEmpty:`— Rotayı temizle —`,routingTargetProfilesGroup:`Yedek Profilleri`,routingTargetModelsGroup:`Modeller (sağlayıcı/model)`,routingSet:`Ayarla`,routingReasoningModeAria:`Yeni rota akıl yürütme modu`,routingReasoningEffortAria:`Yeni rota akıl yürütme çabası`,routingReasoningPreserveAria:`Yeni rota akıl yürütme koruması`,routingReasoningModeFor:`{{key}} için akıl yürütme modu`,routingReasoningEffortFor:`{{key}} için akıl yürütme çabası`,routingReasoningPreserveFor:`{{key}} için akıl yürütme koruması`,noRoutes:`Henüz model rotası yok.`,leaderModel:`lider model`},d={heading:`Yürütme`,maxIterationsLabel:`Çalışma başına maks iterasyon`,maxIterationsHint:`agent.run() başına LLM turu için sabit sınır.`,autoProceedMaxIterationsLabel:`Otomatik ilerleme maks iterasyon`,autoProceedMaxIterationsHint:`N iterasyondan sonra otomatik ilerlemeyi durdur. 0 = sınırsız.`,confirmExitLabel:`Çıkıştan önce onayla`,confirmExitHint:`İlk Ctrl+C işi iptal eder, ikincisi çıkışı onaylar.`,chimeLabel:`Tamamlanmada ses`,chimeHint:`Bir ajan çalışması bittiğinde terminal zili.`,breakerLabel:`Süreç devre kesici`,breakerHint:`Tekrarlanan hatalardan sonra bash/exec engellenir; tetiklenince kill/reset geri sayımı başlar.`,breakerTimeoutLabel:`Devre kesici kill/reset süresi`,breakerTimeoutHint:`Tetiklenince otomatik kill/reset öncesi gecikme. 0 = manuel kurtarma.`,availabilityHeading:`Provider/model availability calendar`,availabilityHint:`Prevent autonomous and overnight runs from using selected providers or models during recurring windows.`},f={heading:`Model Yedekleri`,body:`Aktif model hız sınırlarsa (429/529), 5xx hatası verirse veya takılırsa — kendi yeniden denemelerinden sonra — ajan bu zincirdeki bir sonraki modele geçer. Ayrıca SDD işçi alt-ajanları için varsayılan olarak kullanılır.`,autoFallbackLabel:`Otomatik yedek`,autoFallbackHint:`Yukarıdaki zincir boşsa, anahtarlı sağlayıcılarınızdan otomatik türet.`,favoritesOnlyLabel:`Sadece favoriler`,favoritesOnlyHint:`Otomatik yedek bir zincir türettiğinde, onu favori modellerinizle sınırlandır.`,profilesHeading:`Yedek Profilleri`,addProfile:`Ekle`,noProfiles:`Henüz adlandırılmış yedek profili yok.`,createDefault:`Aktif modelden varsayılan oluştur`,useChain:`Zinciri kullan`,setLeader:`Lideri ayarla`,profileEmpty:`Profil boş.`,favoritesHeading:`Favori Modeller`,favoritesEmpty:`Favoriler önce gösterilir ve otomatik yedeği kısıtlayabilir.`,addModelToProfile:`Profile modele ekle…`,addFavoriteModel:`Favori modele ekle…`,inactive:`devre dışı`},p={heading:`Filo ve Akış`,fleetChatVerbosityLabel:`Filo olaylarını akıt`,fleetChatVerbosityHint:`Filo panelinde canlı alt-ajan etkinliğini göster.`,maxConcurrentLabel:`Maks eşzamanlı alt-ajan`,maxConcurrentHint:`Aynı anda çalışabilecek maks alt-ajan sayısı.`,nextPredictionLabel:`Sonraki adım tahmini`,nextPredictionHint:`Bir tur tamamlandıktan sonra olası sonraki adımları tahmin et.`},m={hqHeading:`HQ İstemcisi`,hqPublishingLabel:`HQ yayınlama`,hqPublishingHint:`Bu WebUI/istemci oturumunu WrongStack HQ'ya yayınlayın. Aynı makine istemcileri yerel HQ kimlik doğrulamasını otomatik keşfedebilir; uzak istemciler aşağıdaki URL/tokenı kullanır.`,hqUrlLabel:`HQ URL`,hqUrlHint:`Aynı makine otomatik keşfi için boş bırakın.`,hqTokenLabel:`HQ istemci tokenı`,hqRawContentLabel:`Ham HQ içeriği`,hqRawContentHint:`HQ'ya sansürlenmiş önizlemeler yerine ham içerik önizlemeleri gönder.`,telegramHeading:`Telegram Bildirimleri`,telegramSessionEndLabel:`Oturum sonu`,telegramSessionEndHint:`Bir oturum bittiğinde özet gönder.`,telegramDelegateLabel:`Temsilci tamamlandı`,telegramDelegateHint:`Bir alt-ajan tamamlandığında insanlaştırılmış not gönder.`,telegramLongToolLabel:`Uzun süren araçlar`,telegramLongToolHint:`Bir araç {{ms}}ms aşarsa bildir. Devre dışı bırakmak için 0 ayarla.`,telegramChangesApply:`Değişiklikler hemen uygulanır.`,telegramNotConfigured:`Telegram yapılandırılmamış. Önce bir bot bağlamak için CLI'da /telegram-setup çalıştırın.`,heading:`Integrations`,disabledHint:`Bu bölümü kullanmak için Bağlam sekmesindeki ilgili özellik bayrağını etkinleştirin.`},h={chimeraDedicatedHeading:`Chimera — Post-session Code Review`,chimeraDedicatedHint:`Automated code quality review that runs after every agent session. Catches regressions, anti-patterns, and potential bugs.`,chimeraSectionEnabled:`Post-session review (Chimera)`,chimeraSectionEnabledHint:`Run a code review agent after every iteration.`,chimeraProviderLabel:`Chimera provider`,chimeraProviderHint:`Provider for the review agent. Select one from your configured providers.`,chimeraProviderSessionDefault:`Session default`,chimeraModelLabel:`Model`,chimeraModelSessionDefault:`Session default`,chimeraModelHint:`Model for the review agent. Requires a provider first.`,chimeraMaxFilesLabel:`Max files per review`,chimeraMaxFilesHint:`Maximum number of changed files included in a single review call.`,chimeraAutoFixLabel:`Auto-fix mode`,chimeraAutoFixHint:`Whether the review agent should automatically apply fixes for issues it finds.`,chimeraAutoFixOff:`Off — review only`,chimeraAutoFixAsk:`Ask — confirm before applying`,chimeraAutoFixAuto:`Auto — apply without confirmation`,chimeraPickModel:`Pick provider/model for Chimera`,chimeraPickModelHint:`Select a provider and model for post-session code review.`,autoReviewSectionEnabled:`Mid-session review (Auto-Review)`,autoReviewSectionEnabledHint:`Run a review agent mid-session on every file change.`,autoReviewFallbackProfileLabel:`Fallback profile`,autoReviewFallbackProfileHint:`Named fallback profile for the auto-review agent. Overrides provider+model.`,autoReviewFallbackProfileNone:`None — use provider+model or session defaults`,autoReviewFallbackModelsLabel:`Fallback models`,autoReviewFallbackModelsEmpty:`No fallback models configured`,autoReviewFallbackModelsHint:`Models the auto-review fallback chain resolves from the profile or the global chain.`,autoReviewModelLabel:`Model`,autoReviewModelHint:`Model for the auto-review agent. Requires a provider first.`,autoReviewDebounceLabel:`Debounce interval (ms)`,autoReviewDebounceHint:`Minimum gap between review triggers after a file change.`,autoReviewMaxFilesLabel:`Max files per batch`,autoReviewMaxFilesHint:`Files per auto-review call.`,autoReviewMaxConcurrentLabel:`Max concurrent reviews`,autoReviewMaxConcurrentHint:`Parallel review subagent cap.`,autoReviewCascadeLabel:`Cascade on`,autoReviewCascadeHint:`Follow-up agent threshold — spawns security-scanner and bug-hunter above this severity.`,autoReviewCascadeOff:`Off — no cascade`,autoReviewCascadeCritical:`Critical — only critical findings`,autoReviewCascadeHigh:`High — critical or high findings`,autoReviewPickModel:`Pick provider/model for Auto-Review`,autoReviewPickModelHint:`Select a provider and model, or a named fallback profile, for mid-session auto-review.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`},g={flagsHeading:`Özellik Bayrakları`,mcpLabel:`MCP sunucuları`,mcpHint:`Model Context Protocol entegrasyonlarını etkinleştir.`,pluginsLabel:`Eklentiler`,pluginsHint:`Kullanıcı tarafından yüklenen eklentileri yükle ve çalıştır.`,memoryLabel:`Bellek`,memoryHint:`Oturumlar arasında bilgileri kalıcı kıl ve hatırla.`,skillsLabel:`Beceriler`,skillsHint:`Alan özelinde beceri istemlerini yükle.`,modelsRegistryLabel:`Model kayıt defteri`,modelsRegistryHint:`Salayıcı keşfi için models.dev kataloğunu kullan.`,indexOnStartLabel:`Başlangıçta dizine ekle`,indexOnStartHint:`Oturum başlangıcında kod tabanı sembol dizinini oluştur.`,pluginsPerPluginHeading:`🔌 Per-Plugin Controls`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`,pluginChimera:`Chimera — post-session code review`,pluginSkills:`Skills — skill library & authoring`,pluginPrompts:`Prompts — prompt library & gen`,pluginCostTracker:`Cost Tracker — token & cost tracking`,pluginTelegram:`Telegram — notification bot`,pluginKnowledgeGraph:`Knowledge Graph — persistent facts`,pluginErrorLens:`Error Lens — failure diagnostics`,pluginTodoTracker:`Todo Tracker — persistent todos`,pluginSecretScanner:`Secret Scanner — credential detection`,pluginLintGate:`Lint Gate — lint before iteration`,pluginDiffSummary:`Diff Summary — compact diffs`,pluginDepGuard:`Dep Guard — dependency rules`,pluginTypeGate:`Type Gate — typecheck before iteration`,pluginInjectionShield:`Injection Shield — prompt injection`,pluginPromptFirewall:`Prompt Firewall — input filtering`,pluginTokenBudget:`Token Budget — token limits`,pluginLoopBreaker:`Loop Breaker — runaway detection`,heading:`Bağlam ve Hata Ayıklama`,autoCompactLabel:`Bağlamı otomatik sıkıştır`,autoCompactHint:`Sınırlara yakınken bağlam penceresini otomatik kırp.`,compactorStrategyLabel:`Sıkıştırma stratejisi`,compactorStrategyHint:`Bağlam çok büyüdüğünde nasıl sıkıştırılacağı.`,compactorStrategyHybrid:`Karma — hızlı kurallar (varsayılan)`,compactorStrategyIntelligent:`Akıllı — LLM özetleme`,compactorStrategySelective:`Seçici — LLM odaklı seçim`,contextModeLabel:`Bağlam modu`,contextModeHint:`Bağlam penceresi ilkesi — dengeli varsayılandır.`,contextModeBalanced:`Dengeli — normal bağlam kullanımı`,contextModeFrugal:`Tasarruflu — muhafazakar token kullanımı`,contextModeDeep:`Derin — karmaşık görevler için daha büyük bağlam`,tokenSavingLabel:`Token tasarrufu modu`,tokenSavingHint:`Token kullanımını ne kadar agresif azaltacağı.`,tokenSavingOff:`Kapalı — token tasarrufu yok`,tokenSavingMinimal:`Minimal — temel optimizasyon`,tokenSavingLight:`Hafif — orta derecede azaltma`,tokenSavingMedium:`Orta — önemli tasarruflar`,tokenSavingAggressive:`Agresif — maksimum sıkıştırma`},_={logLevelLabel:`Günlük seviyesi`,logLevelHint:`Sunucu tarafı günlükleme için minimum şiddet.`,logLevelDebug:`Hata ayıkla — her şey`,logLevelInfo:`Bilgi — normal akış`,logLevelWarn:`Uyarı — sadece sorunlar`,logLevelError:`Hata — sadece başarısızlıklar`,auditLevelLabel:`Denetim seviyesi`,auditLevelHint:`Oturum denetim günlükleri için ayrıntı seviyesi.`,auditLevelMinimal:`Minimal — sadece hatalar`,auditLevelStandard:`Standart — araç çağrıları + hatalar`,auditLevelFull:`Tam — her olay (büyük günlükler)`,fsAccessLabel:`Dosya sistemi erişimi`,fsAccessHint:`Dosya araçlarının kapsamı. Bir sonraki oturumda geçerli olur.`,fsAccessUnrestricted:`Sınırsız — herhangi bir yol`,fsAccessProject:`Proje — proje köküyle sınırlı`,debugStreamLabel:`Hata ayıklama akışı`,debugStreamHint:`Sağlayıcı hata ayıklaması için sunucu stderr çıkışına ham SSE hex dökümü.`,heading:`Logs & Debug`},v={heading:`Security & Monitoring`,brainHeading:`🧠 Brain — Decision Control`,brainHint:`Decision models, council, escalation and risk ceiling — applied live, saved to the global config.`,shadowHeading:`👁 Shadow Agent — Fleet Monitor`,shadowHint:`The Shadow Agent monitors all fleet agents, tracks their tasks, and detects anomalies.`,toolsHeading:`🔧 Tool Access Control`,toolsHint:`Enable or disable individual tools. Mutating tools are marked in amber.`,breakerHeading:`Process Circuit Breaker`,breakerHint:`Gate bash/exec after repeated failures; trips arm the kill/reset countdown.`},y={switchingTo:`{{provider}} / {{model}} modeline geçiliyor…`,switching:`Model değiştiriliyor…`,switchingToTarget:`{{target}} modeline geçiliyor…`,previousModel:`önceki model`,modelSwitchedNextRequest:`Model değiştirildi: {{from}} → {{to}}. Sonraki LLM isteğinde aktif olacak.`,modelSwitchedRunActive:`Model değiştirildi: {{from}} → {{to}}. Sonraki LLM isteğinde aktif olacak; mevcut çalışma devam eder ve yeniden başlatılmaz.`,fallbackExists:`"{{name}}" yedek profili zaten var`,selectProviderModelFirst:`Önce bir sağlayıcı ve model seçin`,defaultProfileCreated:`Varsayılan yedek profili oluşturuldu`,profileEmpty:`"{{name}}" yedek profili boş`,leaderSetFrom:`Lider {{name}} adından ayarlandı`,modelSwitchTimeout:`Model geçişi zaman aşamına uğradı. Lütfen tekrar deneyin.`},b={workbenchHeading:`Çalışma alanı görünümü`,workbenchHint:`Sohbet görünümünde çalışma alanı yüzeylerinin görünürlüğünü değiştirir.`,showModelReasoningLabel:`Model muhakemesini göster`,showModelReasoningHint:`Sohbet geçmişinde LLM muhakeme/düşünme bloklarını render eder (TUI uyumluluğu).`,showAgentSwarmPanelLabel:`Agent swarm paneli`,showAgentSwarmPanelHint:`Agent swarm (fleet + görev kuyruğu) panelinin nerede gösterileceğini kontrol eder.`,swarmPanelBottom:`Alt panel`,swarmPanelSidebar:`Sağ kenar çubuğu`,swarmPanelOff:`Kapalı`,titleAnimationLabel:`Başlık animasyonu`,titleAnimationHint:`Terminal/sekme başlığını çalışma durumuyla canlandırır (TUI uyumluluğu).`,statusChipHeading:`Durum çipi ve durum çubuğu`,statusChipHint:`TUI/CLI durum çubuğu ve çalışma çipi için görsel stil.`,thinkingWordLabel:`Düşünme kelimesi`,thinkingWordHint:`Ajan çalışırken TUI durum çipinde gösterilen tek kısa kelime.`,statuslineModeLabel:`Durum çubuğu modu`,statuslineModeHint:`TUI durum çubuğu yoğunluğu.`,statuslineModeMinimum:`Minimum`,statuslineModeDetailed:`Ayrıntılı`,statuslineModeNoColor:`Rensiz`,animationStyleLabel:`Animasyon stili`,animationStyleHint:`TUI çalışma çipinin animasyonu.`,animationStyleRainbow:`Gökkuşağı`,animationStyleWave:`Dalga`,animationStylePulse:`Nabız`,animationStyleDots:`Noktalar`,animationStyleBreathe:`Nefes`,animationStyleCycle:`Döngü`,refineHeading:`Refine geri sayımı ve diffler`,refineHint:`Refine öncesi bekleme süresini ve çoklu diff özet altbilgisi eşiğini yapılandırır.`,preRefineSecondsLabel:`Refine öncesi geri sayım`,preRefineSecondsHint:`Refiner başlamadan önceki bekleme süresi (saniye). 0 = geri sayımı atla ve hemen refine et.`,preRefineSecondsPresets:`Ön ayarlar: {{presets}} saniye (0 = kapalı).`,multiDiffSummaryLabel:`Çoklu diff özeti`,multiDiffSummaryHint:`Dosya başına blokların üzerinde toplu 'N dosya · +X -Y' altbilgisinin gösterilmesi için gereken minimum dosya sayısı.`,multiDiffSummaryPresets:`Ön ayarlar: {{presets}} (0 = kapalı).`,memoryHeading:`Read aracı ve SAGE bellek enjeksiyonu`,memoryHint:`Read aracının neleri içerdiğini ve SAGE bellek bloklarının araç sonuçlarında ne zaman görüneceğini değiştirir.`,readSymbolsLabel:`Sembolleri oku`,readSymbolsHint:`Açıkken, read aracı dosya içeriğinin yanı sıra kod tabanı dizin sembollerini de içerir.`,showSageMemoryInjectLabel:`SAGE Memory Inject göster`,showSageMemoryInjectHint:`Açıkken, SAGE bellek enjeksiyonu bloklarını araç sonuçlarında gösterir.`,sageMemoryInjectThresholdLabel:`SAGE Memory Inject eşiği`,sageMemoryInjectThresholdHint:`Enjekte edilen bir SAGE belleği için gereken minimum ilişki gücü (0.72–0.95).`,footnote:`Bu ayarlar TUI /settings seçiciyle aynıdır. Anahtarlar anında uygulanır; bazı alanlar oturum yeniden başlatması gerektirir.`},x={title:e,subtitle:t,tabs:n,model:r,connection:i,provider:a,mcp:o,allowlist:s,oauth:c,general:l,agent:u,execution:d,fallbacks:f,fleet:p,integrations:m,features:h,context:g,logs:_,security:v,toast:y,display:b};export{u as agent,s as allowlist,i as connection,g as context,x as default,b as display,d as execution,f as fallbacks,h as features,p as fleet,l as general,m as integrations,_ as logs,o as mcp,r as model,c as oauth,a as provider,v as security,t as subtitle,n as tabs,e as title,y as toast};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{et as e}from"./vendor-
|
|
1
|
+
import{et as e}from"./vendor-BTTkQ9Tn.js";import{t}from"./utils-CwJvjOcH.js";var n=e(),r=[`fact`,`decision`,`convention`,`preference`,`warning`,`anti_pattern`,`workflow`,`bug_root_cause`,`file_note`,`symbol_note`,`command_note`,`summary`],i=[`active`,`stale`,`superseded`,`contradicted`,`archived`,`deleted`],a=[`active`,`stale`,`superseded`,`contradicted`,`archived`],o=[`project`,`user`,`session`,`file`,`symbol`],s=[`file`,`directory`,`symbol`,`package`,`command`,`test`,`git`,`agent`],c={fact:`Fact`,decision:`Decision`,convention:`Convention`,preference:`Preference`,warning:`Warning`,anti_pattern:`Anti-pattern`,workflow:`Workflow`,bug_root_cause:`Root cause`,file_note:`File note`,symbol_note:`Symbol note`,command_note:`Command note`,summary:`Summary`};function l(e){let t=[];return e.roles?.length&&t.push(`roles: ${e.roles.join(`, `)}`),e.taskTypes?.length&&t.push(`tasks: ${e.taskTypes.join(`, `)}`),e.modes?.length&&t.push(`modes: ${e.modes.join(`, `)}`),t.join(` · `)}function u(){return{text:``,kind:`fact`,status:`active`,scope:`project`,tags:``,importance:.5,confidence:.8,freshness:1,anchors:[],audienceRoles:``,audienceTaskTypes:``,audienceModes:``,supersedes:``,contradicts:``}}function d(e){return{text:e.text,kind:e.kind,status:e.status,scope:e.scope,tags:e.tags.join(`, `),importance:e.importance,confidence:e.confidence,freshness:e.freshness,anchors:e.anchors.map(e=>({...e})),audienceRoles:(e.audience?.roles??[]).join(`, `),audienceTaskTypes:(e.audience?.taskTypes??[]).join(`, `),audienceModes:(e.audience?.modes??[]).join(`, `),supersedes:(e.supersedes??[]).join(`, `),contradicts:(e.contradicts??[]).join(`, `)}}function f(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function p(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function m(e){if(!e)return`Never`;let t=Date.parse(e);return Number.isFinite(t)?new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t):`Unknown`}function h(e){if(!e)return`never`;let t=Date.parse(e);if(!Number.isFinite(t))return`unknown`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));return n<60?`just now`:n<3600?`${Math.round(n/60)}m ago`:n<86400?`${Math.round(n/3600)}h ago`:n<604800?`${Math.round(n/86400)}d ago`:m(e)}function g(e){return e>=.85?`high`:e>=.55?`medium`:`low`}function _(e){switch(e){case`active`:return`border-success/35 bg-success/10 text-success`;case`stale`:return`border-warning/40 bg-warning/10 text-warning`;case`contradicted`:return`border-destructive/40 bg-destructive/10 text-destructive`;case`superseded`:return`border-warning/30 bg-warning/5 text-warning`;case`archived`:return`border-info/35 bg-info/10 text-info`;case`deleted`:return`border-border bg-muted text-muted-foreground`}}function v(e){return e===`warning`||e===`anti_pattern`||e===`bug_root_cause`?`text-destructive`:e===`decision`||e===`workflow`?`text-warning`:e===`convention`||e===`preference`?`text-success`:e===`file_note`||e===`symbol_note`||e===`command_note`?`text-info`:`text-foreground`}function y(e){return e.path??e.command??e.role??``}function b(e,t){return e.type===`command`?{type:e.type,command:t}:e.type===`agent`?{type:e.type,role:t}:{type:e.type,path:t,...e.type===`symbol`&&e.symbol?{symbol:e.symbol}:{}}}function x(e){let t=[];for(let n of e){let e=y(n).trim(),r=n.symbol?.trim();if(!(!e&&!r)){if(n.type===`command`){t.push({type:`command`,command:e});continue}if(n.type===`agent`){t.push({type:`agent`,role:e.toLowerCase()});continue}t.push({type:n.type,...e?{path:e}:{},...r?{symbol:r}:{}})}}return t}function S({status:e}){return(0,n.jsxs)(`span`,{className:t(`inline-flex items-center gap-1 border px-2 py-0.5 text-[10px] font-bold uppercase`,_(e)),children:[(0,n.jsx)(`span`,{className:`size-1.5 bg-current`,"aria-hidden":`true`}),e]})}function C({label:e,value:r,hint:i,tone:a=`default`}){return(0,n.jsxs)(`div`,{className:`border border-border/70 bg-card/55 px-3 py-2.5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.035)]`,children:[(0,n.jsx)(`p`,{className:`text-[9px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:e}),(0,n.jsxs)(`div`,{className:`mt-1 flex items-end justify-between gap-2`,children:[(0,n.jsx)(`p`,{className:t(`font-mono text-xl font-bold tabular-nums`,a===`success`?`text-success`:a===`warning`?`text-warning`:a===`info`?`text-info`:`text-foreground`),children:r}),(0,n.jsx)(`p`,{className:`truncate text-[9px] text-muted-foreground`,children:i})]})]})}function w({id:e,label:t,value:r,onChange:i}){return(0,n.jsxs)(`div`,{className:`border border-border/65 bg-background/35 p-3`,children:[(0,n.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,n.jsx)(`label`,{htmlFor:e,className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:t}),(0,n.jsxs)(`span`,{className:`font-mono text-xs font-bold tabular-nums text-info`,children:[Math.round(r*100),`% · `,g(r)]})]}),(0,n.jsx)(`input`,{id:e,type:`range`,min:`0`,max:`1`,step:`0.05`,value:r,onChange:e=>i(Number.parseFloat(e.target.value)),className:`mt-3 h-1.5 w-full cursor-pointer accent-[hsl(var(--info))]`})]})}export{x as _,o as a,b,w as c,d,u as f,p as g,v as h,r as i,S as l,m,a as n,i as o,l as p,c as r,C as s,s as t,y as u,h as v,f as y};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{i as e}from"./chat-store-B2CjP2Zl.js";import{_a as t,va as n}from"./vendor-BTTkQ9Tn.js";import"./ui-store-di6oY7cy.js";import{r,t as i}from"./ws-client-B0-KwuTK.js";import"./session-store-ZMNU48xK.js";import"./codemap-activity-store-Cz0_AHqt.js";import"./mailbox-store-D3omLzBk.js";var a=n()(t(e=>({provider:``,model:``,wsUrl:r(),wsConnected:!1,wsStatus:{state:`connecting`},theme:`system`,autoConnect:!0,soundOnComplete:!1,setProvider:t=>e({provider:t}),setModel:t=>e({model:t}),setConfig:t=>e(t),setTheme:t=>e({theme:t}),setWsConnected:t=>e({wsConnected:t}),setWsStatus:t=>e({wsStatus:t,wsConnected:t.state===`open`}),setSoundOnComplete:t=>e({soundOnComplete:t})}),{name:`wrongstack-config`,partialize:e=>({provider:e.provider,model:e.model,baseUrl:e.baseUrl,theme:e.theme,autoConnect:e.autoConnect,soundOnComplete:e.soundOnComplete}),merge:(e,t)=>{let{apiKey:n,...i}=e??{};return{...t,...i,wsUrl:r(),wsConnected:!1,wsStatus:{state:`connecting`}}}}));function o(e,t){return t>=100?`danger`:`warning`}function s(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var c=200,l=50,u=300,d=200,f=100;function p(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var ee=n()(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return p(n,d,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),p(r,d,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,l=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,u=l===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:l>=100?`danger`:l>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:u,message:s(t,n)},...e.events].slice(0,c),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+300*1e3}),p(i,f,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),p(i,u,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),p(i,u,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),p(r,u,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,s=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:o(n,s),used:r,limit:i,pct:s},...e.budgetAlerts].slice(0,l),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})})),m=n()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function h(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function g(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function _(e,t=20,n=2e3){let r=e.split(`
|
|
2
|
+
`),i=!1,a=e;return r.length>t&&(a=r.slice(0,t).join(`
|
|
3
|
+
`),i=!0),a.length>n&&(a=a.slice(0,n),i=!0),i&&(a=a.replace(/\s+$/,``)+`
|
|
4
|
+
…`),{text:a,truncated:i}}function te(e){return e.length===0?``:[`[File reference contract]`,`Before answering or modifying anything related to these references, use the available file-reading tools to read each complete project file:`,...e.map(e=>`- ${JSON.stringify(e)}`),`If a read is paginated or chunked, continue on the same path until EOF. Do not treat an inline preview as the complete file.`].join(`
|
|
5
|
+
`)}function ne(e,t){if(e.length===0)return``;let n=[],r=new Set;for(let i of e){if(i.kind===`file`){let e=t?.[i.path];if(e){let t=g(i.path),a=t?`\`\`\`${t}`:"```",o=_(e),s=o.truncated?`preview; complete read required`:`entire file`;n.push(`${a}\n// ${i.path} (${s})\n${o.text}\n\`\`\``),o.truncated&&r.add(i.path)}else n.push(`@${i.path}`),r.add(i.path);continue}let e=g(i.path),a=e?`\`\`\`${e}`:"```",o=`// ${i.path}:${i.startLine}-${i.endLine}`,s=_(i.kind===`snippet`?i.content:i.preview);n.push(`${a}\n${o}\n${s.text}\n\`\`\``),s.truncated&&r.add(i.path)}let i=te([...r]);return[...n,i].filter(Boolean).join(`
|
|
6
|
+
|
|
7
|
+
`)}var re=n()((e,t)=>({refs:[],addRef:n=>{let r=t();if(n.kind===`file`&&r.refs.find(e=>e.kind===`file`&&e.path===n.path))return;let i={...n,id:h()};e({refs:[...r.refs,i]})},removeRef:t=>{e(e=>({refs:e.refs.filter(e=>e.id!==t)}))},clearRefs:()=>e({refs:[]})})),ie=n()((e,t)=>({projectRoot:``,tree:[],openFiles:[],activeFilePath:null,treeLoading:!1,error:null,setTree:(t,n)=>e({projectRoot:t,tree:n,treeLoading:!1,error:null}),openFile:(n,r)=>{let i=t();if(i.openFiles.find(e=>e.path===n)){e({openFiles:i.openFiles.map(e=>e.path===n?{...e,content:r,dirty:!1,savedContent:r}:e),activeFilePath:n});return}e({openFiles:[...i.openFiles,{path:n,content:r,dirty:!1,savedContent:r}],activeFilePath:n})},closeFile:n=>{let r=t(),i=r.openFiles.findIndex(e=>e.path===n);if(i===-1)return;let a=[...r.openFiles];a.splice(i,1);let o=r.activeFilePath;r.activeFilePath===n&&(o=a.length===0?null:i<a.length?a[i].path:a[a.length-1].path),e({openFiles:a,activeFilePath:o})},setActiveFile:t=>e({activeFilePath:t}),updateContent:(t,n)=>{e(e=>({openFiles:e.openFiles.map(e=>e.path===t?{...e,content:n,dirty:n!==e.savedContent}:e)}))},markSaved:t=>{e(e=>({openFiles:e.openFiles.map(e=>e.path===t?{...e,dirty:!1,savedContent:e.content}:e)}))},setTreeLoading:t=>e({treeLoading:t}),setError:t=>e({error:t})}));function v(e){return e===`running`}function y(e,t){let n=+!v(e.status),r=+!v(t.status);return n===r?e.startedAt-t.startedAt:n-r}function ae(e){let t=0,n=0,r=0;for(let i of e)i.status===`running`?t++:i.status===`completed`?n++:(i.status===`failed`||i.status===`timeout`)&&r++;return{running:t,completed:n,failed:r,total:e.length}}var oe=85,se=70;function b(e){let t=Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0;return{clamped:t,severity:t>=oe?`high`:t>=se?`medium`:`low`}}function x(e){return e==null||!Number.isFinite(e)||e<0?`0`:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e))}function ce(e){if(e==null||!Number.isFinite(e)||e<=0)return`$0`;if(e<.01){let t=e.toFixed(5);return t===`0.00000`?`$0`:`$`+t.replace(/(\d)0+$/,`$1`).replace(/\.$/,``)}return`$`+e.toFixed(3)}function S(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m ${t%60}s`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d`}function le(e,t=Date.now()){let{clamped:n,severity:r}=b(e.ctxPct);return{ctxClamped:n,ctxSeverity:r,elapsed:!Number.isFinite(e.startedAt)||e.startedAt<=0?`—`:S(e.status===`running`?t-e.startedAt:(e.completedAt??t)-e.startedAt),cost:ce(e.costUsd),iterationCount:e.iteration,toolCount:e.toolCalls,tokensIn:x(e.tokensIn),tokensOut:x(e.tokensOut)}}var C=12,ue=20,de=500,w=[];function T(e,t,n){return{id:e,name:t?.trim()||e,sessionId:n,status:`running`,iteration:0,toolCalls:0,costUsd:0,ctxPct:0,ctxTokens:0,maxContext:0,extensions:0,startedAt:Date.now(),toolLog:[],sparklineBins:Array(C).fill(0)}}var E=0;function D(){return`tl_${Date.now()}_${++E}`}function O(e,t){return[t,...e].slice(0,ue)}function k(e){switch(e){case`text`:case`thinking`:case`tool_use`:case`tool_result`:case`error`:case`status`:case`system`:return e;default:return`status`}}function A(e,t){return e.subagentId!==t.subagentId||e.kind!==t.kind||e.iteration!==t.iteration||e.toolName!==t.toolName||e.toolOk!==t.toolOk?!1:e.kind===`text`||e.kind===`thinking`}function j(e,t){let n=e[e.length-1];return n&&A(n,t)?[...e.slice(0,-1),{...n,content:`${n.content}${t.content}`,ts:t.ts}].slice(-1e3):[...e,t].slice(-1e3)}function M(e){return[e[0]+1,...e.slice(0,C-1)]}function N(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}var P=n()((t,n)=>({agents:new Map,leaderId:void 0,fleetTokensIn:0,fleetTokensOut:0,fleetConcurrency:0,fleetConcurrencyMax:4,eventTimeline:[],agentTimeline:[],agentTranscripts:new Map,pushAgentTimelineEntry:e=>t(t=>{let n={id:`agent_tl_${Date.now()}_${Math.random().toString(36).slice(2,6)}`,...e,kind:k(e.kind)},r=new Map(t.agentTranscripts);return r.set(n.subagentId,j(r.get(n.subagentId)??[],n)),{agentTimeline:[n,...t.agentTimeline].slice(0,de),agentTranscripts:r}}),clear:()=>t({agents:new Map,leaderId:void 0,fleetTokensIn:0,fleetTokensOut:0,fleetConcurrency:0,eventTimeline:[],agentTimeline:[],agentTranscripts:new Map}),getAgentsBySession:e=>{let t=[];for(let r of n().agents.values())r.sessionId===e&&t.push(r);return t},getAgentTranscript:e=>n().agentTranscripts.get(e)??w,clearFinishedAgents:()=>t(e=>{let t=new Map(e.agents),n=new Set;for(let[e,r]of t)r.status!==`running`&&(t.delete(e),n.add(e));let r=new Map(e.agentTranscripts);for(let e of n)r.delete(e);return{agents:t,agentTranscripts:r,agentTimeline:e.agentTimeline.filter(e=>!n.has(e.subagentId)),eventTimeline:e.eventTimeline.filter(e=>!n.has(e.agentId)),leaderId:e.leaderId&&n.has(e.leaderId)?void 0:e.leaderId}}),applyEvent:n=>t(t=>{let r=new Map(t.agents),i=new Map(t.agentTranscripts),a=t.eventTimeline,o=t.leaderId,s=t.fleetTokensIn,c=t.fleetTokensOut;if(n.kind===`session_stopped`&&n.sessionId){let e=new Set;for(let[t,a]of r)a.sessionId===n.sessionId&&(r.delete(t),i.delete(t),e.add(t));return{agents:r,agentTranscripts:i,agentTimeline:t.agentTimeline.filter(t=>!e.has(t.subagentId)),leaderId:void 0,fleetTokensIn:0,fleetTokensOut:0}}if(n.kind===`removed`&&n.subagentId)return r.delete(n.subagentId),i.delete(n.subagentId),{agents:r,agentTranscripts:i,agentTimeline:t.agentTimeline.filter(e=>e.subagentId!==n.subagentId),eventTimeline:t.eventTimeline.filter(e=>e.agentId!==n.subagentId),leaderId:t.leaderId===n.subagentId?void 0:t.leaderId};if(n.kind===`leader_updated`&&n.subagentId){let e=t.leaderId;if(e&&e!==n.subagentId){let t=r.get(e);t&&r.set(e,{...t,isLeader:!1})}o=n.subagentId;let i=r.get(n.subagentId)??T(n.subagentId,n.name,n.sessionId);return r.set(n.subagentId,{...i,isLeader:!0,name:n.name?.trim()||i.name}),a=O(a,{id:D(),kind:`leader_updated`,agentId:n.subagentId,agentName:n.name??o,timestamp:Date.now(),message:`${n.name??n.subagentId} became leader`}),{agents:r,leaderId:o,eventTimeline:a}}if(!n.subagentId)return t;let l=r.get(n.subagentId)??T(n.subagentId,n.name,n.sessionId),u={...l},d=Date.now();switch(n.kind){case`spawned`:u.name=n.name?.trim()||u.name,u.provider=n.provider??u.provider,u.model=n.model??u.model,u.description=n.description??u.description,u.taskId=n.taskId??u.taskId,u.sessionId=n.sessionId??u.sessionId,u.status=`running`,u.sparklineBins=Array(C).fill(0),a=O(a,{id:D(),kind:`spawned`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} spawned`});break;case`task_started`:u.description=n.description??u.description,u.taskId=n.taskId??u.taskId,u.status=`running`,a=O(a,{id:D(),kind:`task_started`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} started: ${n.description??`new task`}`});break;case`tool_executed`:{let e=typeof n.ok!=`boolean`||n.ok,t=typeof n.durationMs==`number`?n.durationMs:0;u.lastTool=n.toolName??u.lastTool,u.toolCalls+=1,u.toolLog=[{name:n.toolName??`unknown`,ok:e,durationMs:t,at:d},...u.toolLog].slice(0,50),u.sparklineBins=M(u.sparklineBins),a=O(a,{id:D(),kind:`tool_executed`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} ${e?`✓`:`✗`} ${n.toolName??`tool`}`,value:t});break}case`iteration_summary`:u.iteration=n.iteration??u.iteration,typeof n.toolCalls==`number`&&(u.toolCalls=n.toolCalls),typeof n.costUsd==`number`&&(u.costUsd=n.costUsd),u.currentTool=n.currentTool??u.currentTool,typeof n.partialText==`string`&&n.partialText&&(u.partialText=n.partialText),u.sparklineBins=M(u.sparklineBins),a=O(a,{id:D(),kind:`iteration_summary`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} iter ${n.iteration??u.iteration} · ${n.currentTool?`${n.currentTool}`:``}`,value:n.costUsd});break;case`budget_warning`:{let e=n.budgetKind??`budget`,t=typeof n.used==`number`?n.used:0,r=typeof n.limit==`number`?n.limit:0;u.budgetWarning={kind:e,used:t,limit:r},a=O(a,{id:D(),kind:`budget_warning`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} hit ${e} budget ${t}/${r}`,value:t});break}case`budget_extended`:u.extensions=n.totalExtensions??u.extensions+1,u.budgetWarning=void 0,a=O(a,{id:D(),kind:`budget_extended`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} extended budget ⚡×${u.extensions}`});break;case`ctx_pct`:u.ctxPct=N(Math.round(Math.max(0,n.load??0)*100)),u.ctxTokens=n.tokens??u.ctxTokens,u.maxContext=n.maxContext??u.maxContext,u.ctxPct>=80&&!u.budgetWarning&&(u.budgetWarning=u.ctxPct>=100?{kind:`hard`,used:u.ctxPct,limit:100}:{kind:`soft`,used:u.ctxPct,limit:100}),typeof n.costUsd==`number`&&(u.costUsd=n.costUsd),typeof n.tokensIn==`number`&&(u.tokensIn=n.tokensIn,s=s-(l.tokensIn??0)+n.tokensIn),typeof n.tokensOut==`number`&&(u.tokensOut=n.tokensOut,c=c-(l.tokensOut??0)+n.tokensOut),a=O(a,{id:D(),kind:`ctx_pct`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} ctx ${u.ctxPct}%`,value:u.ctxPct});break;case`task_completed`:{u.status=n.status===`success`?`completed`:n.status??`completed`,typeof n.iterations==`number`&&(u.iteration=n.iterations),typeof n.toolCalls==`number`&&(u.toolCalls=n.toolCalls),u.error=n.error,u.currentTool=void 0,u.completedAt=d,u.failureReason=n.failureReason??u.failureReason,typeof n.finalText==`string`&&n.finalText&&(u.finalText=e(n.finalText));let t=n.status===`success`?`✓ completed`:n.status===`failed`?`✗ failed${n.failureReason?` (${n.failureReason})`:``}`:n.status===`timeout`?`⏱ timeout${n.failureReason?` (${n.failureReason})`:``}`:`stopped`;a=O(a,{id:D(),kind:`task_completed`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} ${t}`,value:u.costUsd});break}}return r.set(n.subagentId,u),{agents:r,leaderId:o,fleetTokensIn:s,fleetTokensOut:c,eventTimeline:a}})})),F=e=>{let t=0,n=0,r=0,i=0;for(let a of e.agents.values())a.status===`running`?t++:a.status===`completed`?n++:(a.status===`failed`||a.status===`timeout`)&&r++,Number.isFinite(a.costUsd)&&a.costUsd>0&&(i+=a.costUsd);return{running:t,completed:n,failed:r,total:e.agents.size,totalCost:i,tokensIn:e.fleetTokensIn,tokensOut:e.fleetTokensOut,concurrency:e.fleetConcurrency,concurrencyMax:e.fleetConcurrencyMax}},I=e=>{let t=Array.from(e.agents.values()),n=e.leaderId;return t.sort((e,t)=>e===t||e.id===t.id?0:e.id===n?-1:t.id===n?1:y(e,t)),t},L=e=>e.leaderId?e.agents.get(e.leaderId)?.name:void 0,R=n()(e=>({files:[],error:null,loadingList:!1,selectedPath:null,diff:null,loadingDiff:!1,setFiles:(t,n)=>e({files:t,error:n,loadingList:!1}),setListLoading:t=>e({loadingList:t}),select:t=>e({selectedPath:t,diff:null,loadingDiff:!!t}),setDiff:t=>e({diff:t,loadingDiff:!1}),setDiffLoading:t=>e({loadingDiff:t}),clear:()=>e({files:[],error:null,selectedPath:null,diff:null,loadingDiff:!1})})),z=n()(e=>({info:null,setInfo:t=>e({info:t}),clear:()=>e({info:null})})),B=n()((e,t)=>({result:null,loading:!1,currentSeq:0,setResult:t=>e(e=>t.reqSeq===e.currentSeq?{result:t,loading:!1}:{}),setLoading:()=>e({loading:!0,result:null}),clear:()=>e({result:null,loading:!1}),nextSeq:()=>{let n=t().currentSeq+1;return e({currentSeq:n}),n}})),V=n()(e=>({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null,setState:t=>e(e=>({phases:t.phases??e.phases,activePhaseId:t.activePhaseId===void 0?e.activePhaseId:t.activePhaseId,overallPercent:t.overallPercent??e.overallPercent,autonomous:t.autonomous??e.autonomous,title:t.title===void 0?e.title:t.title,goal:t.goal===void 0?e.goal:t.goal,status:t.status??e.status,multiBoard:t.multiBoard??e.multiBoard,lastEvent:t.lastEvent===void 0?e.lastEvent:t.lastEvent,lastError:t.lastError===void 0?e.lastError:t.lastError,graphs:t.graphs??e.graphs,progress:t.progress===void 0?e.progress:t.progress})),clear:()=>e({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null}),hydrateFromServer:e=>{e({type:`goal.list`}),e({type:`goal.state`})}}));function H(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!(typeof t.iteration!=`number`||!Number.isFinite(t.iteration)||t.task!==void 0&&typeof t.task!=`string`||t.status!==void 0&&typeof t.status!=`string`||t.progress!==void 0&&(typeof t.progress!=`number`||!Number.isFinite(t.progress))||t.progressNote!==void 0&&typeof t.progressNote!=`string`||t.timestamp!==void 0&&typeof t.timestamp!=`string`)}function fe(e){return!e||typeof e.goal!=`string`||!e.goal.trim()?null:{goal:e.goal,refinedGoal:typeof e.refinedGoal==`string`?e.refinedGoal:void 0,goalState:[`active`,`paused`,`completed`,`failed`,`abandoned`].includes(e.goalState)?e.goalState:`active`,iterations:typeof e.iterations==`number`?e.iterations:0,progress:typeof e.progress==`number`?e.progress:0,progressNote:typeof e.progressNote==`string`?e.progressNote:void 0,progressTrend:e.progressTrend===`accelerating`?`up`:e.progressTrend===`stalling`?`down`:e.progressTrend===`steady`?`stable`:void 0,deliverables:Array.isArray(e.deliverables)?e.deliverables.map((e,t)=>typeof e==`string`?{id:`d${t}`,text:e,status:/^\[[x✓]\]|✅|\(done\)/i.test(e)?`done`:`pending`}:e):void 0,journal:Array.isArray(e.journal)?e.journal.filter(H):void 0,lastTask:typeof e.lastTask==`string`?e.lastTask:void 0,lastStatus:typeof e.lastStatus==`string`?e.lastStatus:void 0}}var pe=n()(e=>({goal:null,setGoal:t=>e({goal:fe(t)}),clear:()=>e({goal:null}),appendJournalEntry:t=>e(e=>e.goal?{goal:{...e.goal,iterations:Math.max(e.goal.iterations,t.iteration),lastTask:t.task??e.goal.lastTask,lastStatus:t.status??e.goal.lastStatus,journal:[t,...e.goal.journal??[]].slice(0,200)}}:e),refresh:()=>{try{i()?.send?.({type:`goal-state.get`})}catch{}}})),me=n()(e=>({entries:[],loading:!1,error:null,setEntries:(t,n=null)=>e({entries:t,error:n,loading:!1}),setLoading:t=>e({loading:t}),removeEntry:t=>e(e=>({entries:e.entries.filter(e=>e.id!==t)})),updateEntryName:(t,n)=>e(e=>({entries:e.entries.map(e=>{if(e.id!==t)return e;let r=n.trim();if(!r){let{name:t,...n}=e;return n}return{...e,name:r}})})),clearHistory:()=>e({entries:[]})})),he=n()((e,t)=>({boards:[],boardTotal:0,activeBoardTotal:0,orphanedBoardTotal:0,activeBoardId:null,activeBoard:null,loading:!1,error:null,queueHealth:null,supervisorSnapshot:null,verificationActivity:{},setLoading:t=>e({loading:t}),setActiveBoardId:t=>e({activeBoardId:t,queueHealth:null,supervisorSnapshot:null}),setError:t=>e({error:t}),setQueueHealth:t=>e({queueHealth:t}),handleResult:(n,r)=>{if(!r.success){e({loading:!1,error:r.error??`Kanban request failed`});return}let i=r.data;if((n===`kanban.supervisor.status`||n===`kanban.supervisor.audit`)&&i){e({supervisorSnapshot:i,loading:!1,error:null});return}if(n===`kanban.health`&&r.data){e({queueHealth:r.data,loading:!1,error:null});return}if(n===`kanban.list`){let t=_e(i)?i:null,n=t?t.items:Array.isArray(i)?i:[];e({boards:n,boardTotal:t?.total??n.length,activeBoardTotal:t?.activeTotal??n.filter(e=>K(e)).length,orphanedBoardTotal:t?.orphanedTotal??n.filter(e=>!K(e)).length,loading:!1,error:null});return}if(n===`kanban.delete`){let n=t().activeBoardId,r=i,a=r?.removed===!0,o=r?.boardId??n;e(e=>({boards:a?e.boards.filter(e=>e.id!==o):e.boards,activeBoardId:a&&e.activeBoardId===o?null:e.activeBoardId,activeBoard:a&&e.activeBoard?.id===o?null:e.activeBoard,loading:!1,error:null}));return}if(n===`kanban.task.remove`){let t=i;e(e=>{let n=U(t?.board)?t.board:null;if(n&&e.activeBoardId===n.id)return{boards:J(e.boards,q(n)),activeBoard:n,loading:!1,error:null};let r=t?.boardId,i=t?.taskId,a=t?.removed===!0&&i&&e.activeBoard&&(!r||e.activeBoard.id===r)?{...e.activeBoard,tasks:e.activeBoard.tasks.filter(e=>e.id!==i)}:e.activeBoard;return{activeBoard:a,boards:a?J(e.boards,q(a)):e.boards,loading:!1,error:null}});return}if(n===`kanban.column.remove`){let t=i;if(U(t?.board)){let n=t.board;e(e=>({boards:J(e.boards,q(n)),activeBoard:e.activeBoardId===n.id?n:e.activeBoard,loading:!1,error:null}));return}}if(n===`kanban.task.verification_started`){let t=i;if(t?.boardId&&t.taskId){let n=`${t.boardId}:${t.taskId}`;e(e=>({verificationActivity:{...e.verificationActivity,[n]:{startedAt:Date.now()}},loading:!1,error:null}))}return}if(n===`kanban.task.verification_completed`&&G(i)){let t=`${i.boardId}:${i.task.id}`;e(e=>{let n={...e.verificationActivity};if(delete n[t],e.activeBoard&&e.activeBoard.id===i.boardId){let t=Y(e.activeBoard,i.task);return{verificationActivity:n,boards:J(e.boards,q(t)),activeBoard:t,loading:!1,error:null}}return{verificationActivity:n,loading:!1,error:null}});return}if(ge(i)){let t=i.board;e(e=>({boards:J(e.boards,q(t)),activeBoard:e.activeBoardId===t.id?t:e.activeBoard,loading:!1,error:null}));return}if(G(i)){e(e=>{if(e.activeBoard&&e.activeBoard.id===i.boardId){let t=Y(e.activeBoard,i.task);return{boards:J(e.boards,q(t)),activeBoard:t,loading:!1,error:null}}return{loading:!1,error:null}});return}if(U(i)){let t=q(i);if(n===`kanban.get`){e(e=>({boards:J(e.boards,t),activeBoard:e.activeBoardId===i.id?i:e.activeBoard,loading:!1,error:null}));return}e(e=>({boards:J(e.boards,t),activeBoardId:i.id,activeBoard:i,loading:!1,error:null}));return}if(W(i)){e(e=>({...e.activeBoard?(()=>{let t=Y(e.activeBoard,i);return{activeBoard:t,boards:J(e.boards,q(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}if(Array.isArray(i)&&i.every(ve)){e(e=>({...e.activeBoard?(()=>{let t={...e.activeBoard,columns:i};return{activeBoard:t,boards:J(e.boards,q(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}e({loading:!1,error:null})}}));function U(e){return!!e&&typeof e==`object`&&Array.isArray(e.columns)&&Array.isArray(e.tasks)}function W(e){return!!e&&typeof e==`object`&&typeof e.title==`string`}function G(e){return!!e&&typeof e==`object`&&typeof e.boardId==`string`&&W(e.task)}function ge(e){return!!e&&typeof e==`object`&&U(e.board)}function _e(e){return!!e&&typeof e==`object`&&Array.isArray(e.items)&&typeof e.total==`number`}function K(e){return e.presence?.some(e=>e.active)===!0}function ve(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function q(e){return{id:e.id,title:e.title,description:e.description,tags:e.tags,presence:e.presence,createdAt:e.createdAt,updatedAt:e.updatedAt,columnCount:e.columns.length,taskCount:e.tasks.length,completedTaskCount:e.tasks.filter(e=>e.status===`completed`).length}}function J(e,t){return[t,...e.filter(e=>e.id!==t.id)].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))}function Y(e,t){let n=e.tasks.some(e=>e.id===t.id)?e.tasks.map(e=>e.id===t.id?t:e):[...e.tasks,t];return{...e,tasks:n}}function ye(e){switch(e){case`tui`:return`tui`;case`cli`:case`repl`:return`repl`;case`webui`:return`webui`;default:return`webui`}}function be(e){let t={tui:0,webui:0,repl:0},n=0,r=0,i={toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0};for(let a of e){t[ye(a.clientType)]+=1;for(let e of a.agents)n+=1,(e.status===`running`||e.status===`streaming`)&&(r+=1),i.toolCalls+=e.toolCalls??0,i.costUsd+=e.costUsd??0,i.tokensIn+=e.tokensIn??0,i.tokensOut+=e.tokensOut??0}return{clientCounts:t,totalAgents:n,activeAgents:r,aggregate:i}}function xe(e){if(e!==void 0)return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function Se(e){return e.map(e=>({...e,agents:e.agents.map(e=>({...e,ctxPct:xe(e.ctxPct)}))}))}var X=0,Z=n()(e=>({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now(),setClientCounts:t=>e({clientCounts:t,lastUpdated:Date.now()}),setLiveSessions:t=>{let n=Se(t),r=Z.getState().liveSessions;if(r.length===n.length){let e=!0;for(let t=0;t<n.length;t++){let i=n[t],a=r[t];if(i.sessionId!==a.sessionId||i.status!==a.status||i.agentCount!==a.agentCount||i.startedAt!==a.startedAt||i.lastHeartbeatAt!==a.lastHeartbeatAt){e=!1;break}let o=i.agents??[],s=a.agents??[];if(o.length!==s.length){e=!1;break}for(let t=0;t<o.length;t++)if(o[t].id!==s[t].id||o[t].name!==s[t].name||o[t].status!==s[t].status||o[t].currentTool!==s[t].currentTool||o[t].iterations!==s[t].iterations||o[t].toolCalls!==s[t].toolCalls||o[t].ctxPct!==s[t].ctxPct||o[t].recentTools?.[0]?.id!==s[t].recentTools?.[0]?.id||o[t].recentMail?.[0]?.id!==s[t].recentMail?.[0]?.id||o[t].activity?.reads!==s[t].activity?.reads||o[t].activity?.writes!==s[t].activity?.writes||o[t].activity?.edits!==s[t].activity?.edits||o[t].activity?.terminalCalls!==s[t].activity?.terminalCalls||o[t].activity?.mailReceived!==s[t].activity?.mailReceived||o[t].activity?.mailSent!==s[t].activity?.mailSent||o[t].activity?.linesAdded!==s[t].activity?.linesAdded||o[t].activity?.linesRemoved!==s[t].activity?.linesRemoved){e=!1;break}if(!e)break}if(e)return}e({liveSessions:n,...be(n),lastUpdated:Date.now()})},addMailActivity:t=>e(e=>({mailActivity:[{...t,seq:t.seq??++X},...e.mailActivity].slice(0,50),lastUpdated:Date.now()})),setMailStats:(t,n,r)=>e({totalMessages:t,openMessages:n,unreadMessages:r,lastUpdated:Date.now()}),setAgentStats:(t,n)=>e({totalAgents:t,activeAgents:n,lastUpdated:Date.now()}),setCurrentSession:t=>e({currentSession:{...Z.getState().currentSession,...t},lastUpdated:Date.now()}),clear:()=>e({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now()})})),Ce=n()(t(e=>({viewMode:`office`,showHud:!0,showLegend:!0,showMinimap:!0,showControls:!0,animateEdges:!0,showFeed:!0,background:`dots`,setViewMode:t=>e({viewMode:t}),setShowHud:t=>e({showHud:t}),setShowLegend:t=>e({showLegend:t}),setShowMinimap:t=>e({showMinimap:t}),setShowControls:t=>e({showControls:t}),setAnimateEdges:t=>e({animateEdges:t}),setShowFeed:t=>e({showFeed:t}),setBackground:t=>e({background:t})}),{name:`wrongstack-officemap`})),Q=e=>`${e.providerId}\u0000${e.model}`,we=n(e=>({entries:{},summary:null,loading:!1,error:null,update:t=>e(e=>{let n={...e.entries},r=Q(t);return t.state===`healthy`?delete n[r]:n[r]={...n[r],...t},{entries:n}}),hydrate:t=>e({entries:Object.fromEntries(t.filter(e=>e.state!==`healthy`).map(e=>[Q(e),e]))}),applySnapshot:t=>{let n=t.statuses;if(!Array.isArray(n)){e({error:`Invalid snapshot from server`,loading:!1});return}let r={};for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.providerId==`string`?t.providerId:``,i=typeof t.model==`string`?t.model:``;if(!n||!i)continue;let a=t.state;a!==`healthy`&&a!==`degraded`&&a!==`blocked`||(r[`${n}\u0000${i}`]={providerId:n,model:i,state:a,reason:(typeof t.lastErrorKind==`string`?t.lastErrorKind:``)||a,updatedAt:typeof t.lastFailureAt==`number`?t.lastFailureAt:Date.now(),...typeof t.stateExpiresAt==`number`?{stateExpiresAt:t.stateExpiresAt}:{},...typeof t.consecutiveFailures==`number`?{consecutiveFailures:t.consecutiveFailures}:{},...typeof t.totalFailures==`number`?{totalFailures:t.totalFailures}:{},...typeof t.rateLimitHits==`number`?{rateLimitHits:t.rateLimitHits}:{},...typeof t.lastErrorMessage==`string`?{lastErrorMessage:t.lastErrorMessage}:{},...typeof t.lastErrorKind==`string`?{lastErrorKind:t.lastErrorKind}:{},...typeof t.lastErrorStatus==`number`?{lastErrorStatus:t.lastErrorStatus}:{},...Array.isArray(t.recentErrors)?{recentErrors:t.recentErrors.slice(0,20)}:{},...typeof t.lastSessionId==`string`?{lastSessionId:t.lastSessionId}:{},...typeof t.lastAgentId==`string`?{lastAgentId:t.lastAgentId}:{},...typeof t.lastFailureAt==`number`?{lastFailureAt:t.lastFailureAt}:{}})}let i=t;e({entries:r,summary:{totalPairs:typeof i.totalPairs==`number`?i.totalPairs:0,healthy:typeof i.healthy==`number`?i.healthy:0,degraded:typeof i.degraded==`number`?i.degraded:0,blocked:typeof i.blocked==`number`?i.blocked:0,totalFailures:typeof i.totalFailures==`number`?i.totalFailures:0,totalRateLimits:typeof i.totalRateLimits==`number`?i.totalRateLimits:0},error:null,loading:!1})},setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),removeEntry:(t,n)=>e(e=>{let r={...e.entries};return delete r[Q({providerId:t,model:n})],{entries:r}}),clear:()=>e({entries:{},summary:null,error:null})})),Te=n()(e=>({snapshot:null,boards:[],lifecycleResult:null,destroying:!1,setSnapshot:t=>e({snapshot:t}),setBoards:t=>e({boards:t}),setLifecycleResult:t=>e({lifecycleResult:t}),setDestroying:t=>e({destroying:t})})),Ee=n()(e=>({snapshot:null,agentText:``,error:null,startedRunId:null,setSnapshot:t=>{if(t.discarded||t.phase===`idle`&&!t.sessionId){e({snapshot:null,agentText:``,error:null});return}e({snapshot:t,error:null,...t.lastAgentText?{agentText:t.lastAgentText}:{}})},setAgentText:t=>e({agentText:t}),setError:t=>e({error:t}),setStartedRunId:t=>e({startedRunId:t}),reset:()=>e({snapshot:null,agentText:``,error:null,startedRunId:null})})),De=n(e=>({sideEffects:[],loading:!1,setSideEffects:t=>e({sideEffects:t,loading:!1}),setLoading:t=>e({loading:t}),clear:()=>e({sideEffects:[],loading:!1})})),Oe=n()(e=>({specs:[],detail:null,expandedSpecId:null,setSpecs:t=>e({specs:t}),setDetail:t=>e({detail:t}),setExpanded:t=>e({expandedSpecId:t,detail:null})})),ke=new Set([`idle`,`queued`,`discovering`,`inventorying`,`enriching`,`researching`,`synthesizing`,`completed`,`failed`,`cancelled`]);function Ae(e){return ke.has(e)?e:void 0}var $={snapshot:null,stale:!1,loading:!1,error:null,activeJob:null,lastWorkspaceId:null,reportId:null},je=n()(e=>({...$,setSnapshot:(t,n=!1)=>e(e=>({snapshot:t,stale:n,loading:!1,error:null,activeJob:e.activeJob?{...e.activeJob,status:`completed`,error:null}:null})),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),jobStarted:(t,n)=>e({activeJob:{id:t,kind:n,status:`queued`,progress:null,error:null},error:null,loading:!0}),jobProgress:(t,n)=>e(e=>{if(e.activeJob?.id!==t)return e;let r=Ae(n.phase);return r?{activeJob:{...e.activeJob,status:r,progress:n},loading:!0}:e}),jobFailed:(t,n)=>e(e=>e.activeJob?.id===t?{activeJob:{...e.activeJob,status:`failed`,error:n},error:n,loading:!1}:e),jobCancelled:t=>e(e=>({activeJob:e.activeJob?.id===t?{...e.activeJob,status:`cancelled`,error:null}:e.activeJob,loading:!1})),workspaceCompleted:t=>e({lastWorkspaceId:t}),reportReady:t=>e({reportId:t}),clear:()=>e($)})),Me=n()(e=>({worktrees:[],baseBranch:``,activity:[],orphans:[],canClean:!1,cleanResult:null,mergeResult:null,diffByDir:{},setSnapshot:(t,n)=>e({worktrees:t,baseBranch:n}),pushEvent:t=>e(e=>({activity:[...e.activity,t].slice(-40)})),setOrphans:(t,n,r)=>e({orphans:t,canClean:n,cleanBlockedReason:r}),setCleanResult:t=>e({cleanResult:t}),setMergeResult:t=>e({mergeResult:t}),setDiff:(t,n)=>e(e=>({diffByDir:{...e.diffByDir,[t]:n}}))}));export{m as A,le as C,ie as D,ae as E,a as M,ne as O,y as S,x as T,w as _,Ee as a,I as b,Ce as c,me as d,pe as f,R as g,z as h,De as i,ee as j,re as k,Z as l,B as m,je as n,Te as o,V as p,Oe as r,we as s,Me as t,he as u,F as v,S as w,P as x,L as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_a as e,va as t}from"./vendor-BTTkQ9Tn.js";var n=[`en`,`tr`,`de`,`fr`,`it`,`es`,`pt-BR`],r=[{code:`en`,name:`English`},{code:`tr`,name:`Türkçe`},{code:`de`,name:`Deutsch`},{code:`fr`,name:`Français`},{code:`it`,name:`Italiano`},{code:`es`,name:`Español`},{code:`pt-BR`,name:`Português (Brasil)`}],i=new Set(n);function a(){return typeof navigator>`u`||!navigator.language?`en`:s(navigator.language)}function o(e){return!e||typeof e!=`string`?a():s(e)}function s(e){let t=e.trim().toLowerCase();if(!t)return`en`;if(i.has(t))return t;let n=t.split(`-`)[0];return n&&i.has(n)?n:n===`pt`?`pt-BR`:`en`}var c={autonomy:`auto`,autonomyDelayMs:45e3,autoProceedMaxIterations:50,yolo:!0,maxIterations:500,chime:!1,confirmExit:!0,fleetChatVerbosity:`off`,nextPrediction:!1,fallbackModels:[],fallbackProfiles:{},favoriteModels:[],favoriteModelsOnly:!1,modelMatrix:{},fallbackAuto:!0,modelAvailabilitySchedule:[],featureMcp:!0,featurePlugins:!0,featureMemory:!0,featureSkills:!0,featureModelsRegistry:!0,indexOnStart:!0,contextAutoCompact:!0,contextStrategy:`hybrid`,contextMode:`balanced`,tokenSavingTier:`off`,maxConcurrent:10,titleAnimation:!0,logLevel:`info`,auditLevel:`standard`,enhanceEnabled:!0,enhanceDelayMs:6e4,enhanceCountdownMs:3e3,enhanceLanguage:`original`,refinerProvider:``,refinerModel:``,refinerFallbackProfile:``,thinkingWord:`thinking`,statuslineMode:`minimum`,animationStyle:`rainbow`,showThinkingLogs:!0,groupToolCalls:!0,showModelReasoning:!0,showAgentSwarmPanel:`bottom`,allowOutsideProjectRoot:!0,reasoningMode:`auto`,reasoningEffort:`high`,reasoningPreserve:!1,cacheTtl:`default`,breakerEnabled:!1,breakerAutoKillResetMs:6e4,fsAccess:`unrestricted`,debugStream:!1,hqEnabled:!1,hqUrl:``,hqToken:``,hqRawContent:!1,tgConfigured:!1,tgSessionEnd:!1,tgDelegate:!0,tgLongToolMs:3e4,uiLocale:a(),chimeraAutoFix:`off`,readSymbols:!1,showSageMemoryInject:!1,sageMemoryInjectThreshold:.85,preRefineSeconds:3,multiDiffSummaryThreshold:5,chimeraEnabled:!0,chimeraProvider:``,chimeraModel:``,chimeraMaxFiles:15,autoReviewEnabled:!1,autoReviewProvider:``,autoReviewModel:``,autoReviewFallbackProfile:``,autoReviewFallbackModels:[],autoReviewDebounceMs:15e3,autoReviewMaxFilesPerBatch:15,autoReviewMaxConcurrentReviews:2,autoReviewCascadeOn:`off`,pluginsEnabled:{}},l=t()(e(e=>({...c,set:t=>e(t),reset:()=>e(c)}),{name:`wrongstack-local-prefs`,version:14,migrate:(e,t)=>{let n=e??{};return t<12&&n.autoReviewDebounceMs===5e3&&(n.autoReviewDebounceMs=15e3),typeof n.fleetChatVerbosity!=`string`&&(n.streamFleet===!0?n.fleetChatVerbosity=`full`:(n.streamFleet,n.fleetChatVerbosity=`off`),delete n.streamFleet),n.fleetChatVerbosity!==`off`&&n.fleetChatVerbosity!==`full`&&(n.fleetChatVerbosity=`off`),[`hybrid`,`intelligent`,`selective`].includes(n.contextStrategy)||(n.contextStrategy=`hybrid`),n.auditLevel===`verbose`&&(n.auditLevel=`full`),[`minimal`,`standard`,`full`].includes(n.auditLevel)||(n.auditLevel=`standard`),typeof n.autoProceedMaxIterations!=`number`&&(n.autoProceedMaxIterations=50),(!n.fallbackProfiles||typeof n.fallbackProfiles!=`object`||Array.isArray(n.fallbackProfiles))&&(n.fallbackProfiles={}),Array.isArray(n.favoriteModels)||(n.favoriteModels=[]),typeof n.favoriteModelsOnly!=`boolean`&&(n.favoriteModelsOnly=!1),Array.isArray(n.modelAvailabilitySchedule)||(n.modelAvailabilitySchedule=[]),(!n.modelMatrix||typeof n.modelMatrix!=`object`||Array.isArray(n.modelMatrix))&&(n.modelMatrix={}),(typeof n.uiLocale!=`string`||!n.uiLocale)&&(n.uiLocale=a()),typeof n.breakerEnabled!=`boolean`&&(n.breakerEnabled=!1),typeof n.breakerAutoKillResetMs!=`number`&&(n.breakerAutoKillResetMs=6e4),n.fsAccess!==`unrestricted`&&n.fsAccess!==`project`&&(n.fsAccess=`unrestricted`),typeof n.debugStream!=`boolean`&&(n.debugStream=!1),typeof n.chimeraEnabled!=`boolean`&&(n.chimeraEnabled=!0),typeof n.chimeraProvider!=`string`&&(n.chimeraProvider=``),typeof n.chimeraModel!=`string`&&(n.chimeraModel=``),n.chimeraAutoFix!==`off`&&n.chimeraAutoFix!==`ask`&&n.chimeraAutoFix!==`auto`&&(n.chimeraAutoFix=`off`),(typeof n.chimeraMaxFiles!=`number`||!Number.isFinite(n.chimeraMaxFiles)||n.chimeraMaxFiles<1)&&(n.chimeraMaxFiles=15),typeof n.autoReviewEnabled!=`boolean`&&(n.autoReviewEnabled=!1),typeof n.autoReviewProvider!=`string`&&(n.autoReviewProvider=``),typeof n.autoReviewModel!=`string`&&(n.autoReviewModel=``),typeof n.autoReviewFallbackProfile!=`string`&&(n.autoReviewFallbackProfile=``),Array.isArray(n.autoReviewFallbackModels)||(n.autoReviewFallbackModels=[]),(typeof n.autoReviewDebounceMs!=`number`||!Number.isFinite(n.autoReviewDebounceMs)||n.autoReviewDebounceMs<0)&&(n.autoReviewDebounceMs=15e3),(typeof n.autoReviewMaxFilesPerBatch!=`number`||!Number.isFinite(n.autoReviewMaxFilesPerBatch)||n.autoReviewMaxFilesPerBatch<1)&&(n.autoReviewMaxFilesPerBatch=15),(typeof n.autoReviewMaxConcurrentReviews!=`number`||!Number.isFinite(n.autoReviewMaxConcurrentReviews)||n.autoReviewMaxConcurrentReviews<1)&&(n.autoReviewMaxConcurrentReviews=2),n.autoReviewCascadeOn!==`off`&&n.autoReviewCascadeOn!==`critical`&&n.autoReviewCascadeOn!==`high`&&(n.autoReviewCascadeOn=`off`),typeof n.showModelReasoning!=`boolean`&&(n.showModelReasoning=!0),typeof n.showAgentSwarmPanel==`boolean`?n.showAgentSwarmPanel=n.showAgentSwarmPanel?`bottom`:`off`:(typeof n.showAgentSwarmPanel!=`string`||![`bottom`,`sidebar`,`off`].includes(n.showAgentSwarmPanel))&&(n.showAgentSwarmPanel=`bottom`),typeof n.allowOutsideProjectRoot!=`boolean`&&(n.allowOutsideProjectRoot=!0),typeof n.readSymbols!=`boolean`&&(n.readSymbols=!1),typeof n.showSageMemoryInject!=`boolean`&&(n.showSageMemoryInject=!1),(typeof n.sageMemoryInjectThreshold!=`number`||!Number.isFinite(n.sageMemoryInjectThreshold)||n.sageMemoryInjectThreshold<0||n.sageMemoryInjectThreshold>1)&&(n.sageMemoryInjectThreshold=.85),(typeof n.preRefineSeconds!=`number`||!Number.isFinite(n.preRefineSeconds)||n.preRefineSeconds<0)&&(n.preRefineSeconds=3),(typeof n.multiDiffSummaryThreshold!=`number`||!Number.isFinite(n.multiDiffSummaryThreshold)||n.multiDiffSummaryThreshold<0)&&(n.multiDiffSummaryThreshold=5),n}})),u=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`,`worktrees`,`officemap`];function d(e){return u.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`officemap`?`officemap`:`chat`}var f=[`chat`,`settings`,`memory`,`roster`,`context`,`goal`,`kanban`,`sddhub`,`files`,`changes`,`sessions`,`setup`,`skill`,`officemap`,`mailbox`,`debug`,`design-gallery`,`refresh-debug`,`analytics`,`codemap`,`techstack`,`chronicle`,`deadcode`];function p(e){return f.includes(e)?e:`chat`}var m=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function h(e){return e==null||!m.includes(e)?null:e}var g=[`general`,`provider`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function _(e){return g.includes(e)?e:`general`}function v(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function y(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorFocusedAgentId:null,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null}}var b=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorFocusedAgentId:null,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,terminalOpen:!1,terminalCreateNonce:0,settingsActiveTab:`general`,scrollPositions:{},draftInput:``,sideContextBreakdownOpen:!1,selectedMailMessage:null,skillsState:{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0},selectActivity:t=>e({activeActivity:t}),toggleSidebar:()=>e(e=>({sidebarOpen:!e.sidebarOpen})),setSidebarOpen:t=>e({sidebarOpen:t}),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e({currentView:p(t)}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e({searchOpen:t,searchQuery:``,searchActiveMessageId:null}),setSearchQuery:t=>e({searchQuery:t}),setSearchActiveMessageId:t=>e({searchActiveMessageId:t}),requestScrollToMessage:t=>e(e=>({scrollTarget:{id:t,nonce:(e.scrollTarget?.nonce??0)+1}})),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e({modelSwitcherOpen:t}),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e({refinePanel:t}),setPromptLibraryOpen:t=>e({promptLibraryOpen:t}),requestPromptInsert:t=>e({promptInsertRequest:t,promptLibraryOpen:!1}),clearPromptInsert:()=>e({promptInsertRequest:null}),setDockSection:t=>e({dockSection:t,...t?{inspectorOpen:!1}:{}}),setWorkDashboardTab:t=>e({workDashboardTab:t}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t);return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:!n&&e.dockSection===t?null:e.dockSection}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e({dockCustomizeOpen:t}),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...t?{dockSection:null}:{}})),setInspectorOpen:t=>e({inspectorOpen:t,...t?{dockSection:null}:{}}),setInspectorTab:t=>e({inspectorTab:t}),setInspectorFocusedAgentId:t=>e({inspectorFocusedAgentId:t}),toggleInspector:()=>e(e=>({inspectorOpen:!e.inspectorOpen,...e.inspectorOpen?{}:{dockSection:null}})),setProcessMonitorOpen:t=>e({processMonitorOpen:t}),setQueuePanelOpen:t=>e({queuePanelOpen:t}),setCronJobsOpen:t=>e({cronJobsOpen:t}),setTerminalOpen:t=>e({terminalOpen:t}),toggleTerminal:()=>e(e=>({terminalOpen:!e.terminalOpen})),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:_(t)}),setScrollPosition:(t,n)=>e(e=>({scrollPositions:{...e.scrollPositions,[t]:n}})),setDraftInput:t=>e({draftInput:t}),setSideContextBreakdownOpen:t=>e({sideContextBreakdownOpen:t}),setSkillsState:t=>e({skillsState:t}),setSelectedMailMessage:t=>e({selectedMailMessage:t})}),{name:`wrongstack-ui`,version:5,migrate:(e,t)=>{let n=e??{};return n.activeActivity=d(n.activeActivity),typeof n.sidebarWidth==`number`&&(n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth))),t<2&&(delete n.fleetDrawerOpen,delete n.agentsDrawerOpen),`currentView`in n&&(n.currentView=p(n.currentView)),`dockSection`in n&&(n.dockSection=h(n.dockSection)),`settingsActiveTab`in n&&(n.settingsActiveTab=_(n.settingsActiveTab)),n},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=d(n.activeActivity),n.currentView=p(n.currentView),n.dockSection=h(n.dockSection),n.settingsActiveTab=_(n.settingsActiveTab),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),v()?{...n,...y({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions,draftInput:e.draftInput})}));function x(e={}){b.setState(y(e))}export{n as a,r as i,b as n,o,l as r,x as t};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,n,r,t as i}from"./chat-store-B2CjP2Zl.js";import{Sa as a,va as o,wa as s}from"./vendor-BTTkQ9Tn.js";import"./i18n-2wGPPdl_.js";import{n as c,r as l,t as u}from"./ui-store-di6oY7cy.js";import{a as d,c as f,i as p,l as m,o as h,s as g,t as _}from"./ws-client-B0-KwuTK.js";import{t as v}from"./session-store-ZMNU48xK.js";import{i as y,n as b}from"./codemap-activity-store-Cz0_AHqt.js";import{A as ee,D as x,M as S,a as C,d as te,f as ne,g as re,h as ie,i as ae,j as w,l as oe,m as se,n as T,o as E,p as D,r as ce,s as O,t as k,u as le,x as A}from"./stores-DyQOSkkD.js";import{r as j}from"./mailbox-store-D3omLzBk.js";import{n as ue,o as de}from"./view-navigation-BMRzqGbq.js";import{t as fe}from"./codemap-index-store-B-XLZpJu.js";import{n as M}from"./Toaster-BmyghnqJ.js";var N=e(s(),1);function pe(e,t){if(t)return!0;try{return new URLSearchParams(e).get(`shell`)===`desktop`}catch{return!1}}function P(){return typeof window>`u`?!1:pe(window.location.search,!!window.wrongstackDesktopHost)}function F(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function I(e,t=``){return typeof e==`string`?e:t}function L(e,t=0){return typeof e==`number`&&Number.isFinite(e)?e:t}function me(e){let t=F(e.payload);if(!t)return null;switch(e.type){case`provider.thinking_delta`:{let e=I(t.text);return e?{kind:`thinking-delta`,text:e}:null}case`provider.text_delta`:{let e=I(t.text);return e?{kind:`text-delta`,text:e,messageId:I(t.messageId)}:null}case`provider.response`:return{kind:`response`,content:t.content,stopReason:I(t.stopReason)};case`run.result`:return{kind:`run-result`,status:I(t.status),iterations:L(t.iterations,1),...typeof t.finalText==`string`?{finalText:t.finalText}:{}};case`error`:return{kind:`error`,message:I(t.message,`Run failed`)};default:return null}}function R(e){let t=F(e.payload);if(!t)return null;if(e.type===`tool.started`){let e=I(t.name,`tool`);return{kind:`started`,id:I(t.id,e),name:e,input:t.input,messageId:I(t.messageId)}}if(e.type===`tool.progress`){let e=F(t.event);return{kind:`progress`,id:I(t.id),name:I(t.name,`tool`),eventType:I(e?.type),text:I(e?.text).trim()}}return e.type===`tool.executed`?{kind:`executed`,id:I(t.id),name:I(t.name),ok:t.ok!==!1,durationMs:L(t.durationMs),...typeof t.output==`string`?{output:t.output}:{},...Array.isArray(t.sage)?{sage:t.sage.filter(e=>typeof e==`string`)}:{}}:null}function z(e){let t=F(e.payload);if(!t)return null;switch(e.type){case`fleet.concurrency_update`:return{kind:`concurrency`,active:L(t.fleetConcurrency),maximum:L(t.fleetConcurrencyMax)};case`client.status_update`:return{kind:`client-status`,status:t};case`sessions.status_update`:return{kind:`sessions`,sessions:Array.isArray(t.sessions)?t.sessions:[]};case`coordinator.stats`:return{kind:`coordinator`,agents:Array.isArray(t.subagentStatuses)?t.subagentStatuses.filter(e=>F(e)!==null):[]};default:return null}}function he(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
+
<rect width="64" height="64" fill="#121210" />
|
|
3
|
+
<path fill="#FD9F02" d="M5 27h10v10H5zM27 27h10v10H27zM38 27h10v10H38zM49 27h10v10H49z" />
|
|
4
|
+
<path fill="#FE2E5F" d="M16 32h10v10H16z" />
|
|
5
|
+
${e===`ready`?`<circle cx="50" cy="14" r="14" fill="#22c55e" stroke="#fff" stroke-width="3" />`:e===`error`?`<circle cx="50" cy="14" r="14" fill="#ef4444" stroke="#fff" stroke-width="3" />`:e===`running`?`<circle cx="50" cy="14" r="14" fill="#f59e0b" stroke="#fff" stroke-width="3" />`:e===`attention`?`<circle cx="50" cy="14" r="14" fill="#eab308" stroke="#fff" stroke-width="3"><animate attributeName="opacity" values="1;0.3;1" dur="1s" repeatCount="indefinite"/></circle>`:``}
|
|
6
|
+
</svg>`}function ge(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function _e(){if(typeof document>`u`)return null;let e=document.querySelector(`link[rel="icon"]`);return e||(e=document.createElement(`link`),e.rel=`icon`,e.type=`image/svg+xml`,document.head.appendChild(e)),e}var B=`idle`;function V(e){B=e;let t=_e();t&&(t.href=ge(he(e)))}var ve=!1;function ye(){ve||typeof document>`u`||(ve=!0,document.addEventListener(`visibilitychange`,()=>{!document.hidden&&(B===`ready`||B===`error`||B===`attention`)&&V(`idle`)}))}var be=2048,xe=2*1024*1024,Se=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),H=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function Ce(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function we(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function Te(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function Ee(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function De(e,t,n,r,i){let a=document.createElement(`canvas`);a.width=t,a.height=n;let o=a.getContext(`2d`);if(!o)throw new H(`canvas 2d context unavailable`,`decode_failed`);o.drawImage(e,0,0,t,n);let s=a.toDataURL(`image/webp`,i);return s.startsWith(`data:image/webp`)?s:r?a.toDataURL(`image/png`):a.toDataURL(`image/jpeg`,i)}var Oe=0;function ke(){return Oe+=1,`img_${Date.now()}_${Oe}`}async function Ae(e){let t=Se.has(e.type),n;try{n=await Ee(e)}catch{throw new H(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>be||e.size>xe)){let t=await Ce(e);return{id:ke(),dataUrl:t,mediaType:e.type,bytes:we(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,be/a),c=.85,l=De(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);we(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=De(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=we(l);if(u>4194304)throw new H(`Image "${e.name}" is too large after compression`,`too_large`);return{id:ke(),dataUrl:l,mediaType:Te(l),bytes:u,name:e.name||void 0,width:Math.max(1,Math.round(r*s)),height:Math.max(1,Math.round(i*s))}}function je(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var U=null;function Me(){if(typeof window>`u`)return null;if(U)return U;let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{U=new e}catch{return null}return U}function W(e,t,n){let r=Me();if(!r)return;let i=r.currentTime+t,a=r.createOscillator(),o=r.createGain();a.type=`sine`,a.frequency.value=e,o.gain.setValueAtTime(0,i),o.gain.linearRampToValueAtTime(.18,i+.01),o.gain.exponentialRampToValueAtTime(1e-4,i+n),a.connect(o).connect(r.destination),a.start(i),a.stop(i+n+.02)}function Ne(){W(659.25,0,.18),W(880,.12,.24)}function Pe(){W(523.25,0,.15),W(659.25,.1,.15),W(783.99,.2,.25)}var G=`default`;G=typeof window<`u`&&`Notification`in window?Notification.permission:`unsupported`;async function Fe(){if(G===`unsupported`||G===`granted`||G===`denied`)return G;try{let e=await Notification.requestPermission();return G=e,e}catch{return`denied`}}function Ie(e,t,n){if(!(typeof document>`u`||!document.hidden)&&G===`granted`)try{let r=new Notification(e,{body:t,icon:`/wrongstack.svg`,tag:n??`wrongstack-run`,requireInteraction:n===`wrongstack-confirm`});r.onclick=()=>{window.focus(),r.close()}}catch{}}var Le={"iteration.started":Re,"provider.text_delta":ze,"provider.thinking_delta":Be,"tool.started":Ve,"tool.progress":He,"tool.executed":Ue,"tool.confirm_needed":We,"run.result":Ge};function Re(e){if(!p(e))return;d(e);let t=e.payload;v.getState().setIteration({index:t.index,max:t.maxIterations??0}),i.getState().setLoading(!0),typeof document<`u`&&document.hidden&&V(`running`),i.getState().runStart===null&&i.getState().setRunStart({at:Date.now(),cost:v.getState().cost}),i.getState().setCurrentAssistantMessage(null)}function ze(e){if(!p(e))return;let t=me(e);if(t?.kind!==`text-delta`)return;m.flush(`__thinking__`),i.getState().clearThinking();let n=i.getState().currentAssistantMessageId;n||(n=i.getState().addMessage({role:`assistant`,content:``,streaming:!0}),i.getState().setCurrentAssistantMessage(n)),m.push(n,t.text,(e,t)=>i.getState().appendToMessage(e,t))}function Be(e){if(!p(e))return;let t=me(e);t?.kind===`thinking-delta`&&m.push(`__thinking__`,t.text,(e,t)=>i.getState().appendThinking(t))}function Ve(e){if(!p(e))return;d(e);let t=R(e);if(t?.kind!==`started`)return;let n=i.getState().getToolMessageId(t.id);if(n){i.getState().setCurrentToolId(n);return}m.flushAll(),i.getState().clearThinking();let r=i.getState().currentAssistantMessageId;r&&i.getState().finalizeMessage(r,{final:!1}),i.getState().setCurrentAssistantMessage(null);let a=i.getState().addMessage({role:`tool`,content:``,toolName:t.name,toolInput:t.input,toolUseId:t.id});i.getState().setCurrentToolId(a),i.getState().addExecution({id:t.id,name:t.name,input:t.input,ok:!0,startedAt:Date.now()})}function He(e){if(!p(e))return;let t=R(e);if(t?.kind!==`progress`)return;let n=t.text;if(!n)return;let r=i.getState().getToolMessageId(t.id);if(!r)return;let a=t.eventType===`warning`?`⚠ `:``;m.push(r,`${a}${n}\n`,(e,n)=>i.getState().appendToolProgressLinesByUseId(t.id,n.split(`
|
|
7
|
+
`).filter(e=>e.length>0)))}function Ue(e){if(!p(e))return;d(e);let t=R(e);if(t?.kind!==`executed`)return;let{currentToolId:n}=i.getState(),r=t.id?i.getState().getToolMessageId(t.id):n;r&&(m.drop(r),t.id?i.getState().setToolResultByUseId(t.id,t.output??``,t.ok):i.getState().setToolResult(r,t.output??``,t.ok),i.getState().updateMessage(r,{toolDurationMs:t.durationMs,...t.sage&&t.sage.length>0?{sageLines:t.sage}:{}})),t.id&&i.getState().updateExecution(t.id,{completedAt:Date.now(),durationMs:t.durationMs,output:t.output,ok:t.ok}),n&&r===n&&i.getState().setCurrentToolId(null)}function We(e){if(!p(e))return;let t=e.payload;if(l.getState().yolo===!0&&!t.boundaryReason){_(S.getState().wsUrl).sendConfirm(t.id,`yes`),c.getState().hideConfirm();return}c.getState().showConfirm({id:t.id,toolName:t.toolName,input:t.input,suggestedPattern:t.suggestedPattern,decisionSource:t.decisionSource,riskTier:t.riskTier,boundaryReason:t.boundaryReason});try{Pe()}catch{}Fe(),Ie(`${v.getState().projectName||`Agent`} needs approval`,`Tool "${t.toolName}" is waiting for your decision.`,`agent-confirm`),typeof document<`u`&&document.hidden&&V(`attention`)}function Ge(e){if(!p(e))return;let n=h(e,{status:`string`},{iterations:`number`,finalText:`string`,error:`object`});if(!n)return;let a=n.iterations??1;m.flushAll(),i.getState().flushThinkingLog(Math.max(1,a)),v.getState().setIteration(null),i.getState().setLoading(!1);let o=i.getState().currentAssistantMessageId,s=n.status===`done`?n.finalText?.trim():void 0;if(o){let e=i.getState().messages.find(e=>e.id===o);i.getState().updateMessage(o,{content:e?.content?.trim()?e.content:s??e?.content??``}),i.getState().finalizeMessage(o,{final:!0})}else if(s){let e=i.getState().runStart,t=r(s).stripped.trim(),n=i.getState().messages,a;for(let t=n.length-1;t>=0;t--){let r=n[t];if(r?.role===`assistant`&&(!e||r.timestamp>=e.at)){a=r;break}}let o=a?.content.trim();if(!(o!==void 0&&(o===s||o===t))){let e=i.getState().addMessage({role:`assistant`,content:s});i.getState().finalizeMessage(e,{final:!0})}}i.getState().setCurrentAssistantMessage(null),i.getState().clearThinking();let c=i.getState().runStart;if(c&&n.status===`done`){let e=i.getState().messages,n=-1,r=0;for(let i=e.length-1;i>=0;i--){let a=t(e[i]);if(a.role===`assistant`&&n===-1&&a.content&&(n=i),a.role===`tool`&&a.timestamp>=c.at&&(r+=1),a.role===`user`&&a.timestamp<=c.at)break}if(n!==-1){let t=v.getState().cost;i.getState().updateMessage(e[n]?.id,{runSummary:{iterations:a,tools:r,durationMs:Date.now()-c.at,costDelta:Math.max(0,t-c.cost)}})}}if(i.getState().setRunStart(null),n.status!==`done`&&n.error)i.getState().addMessage({role:`assistant`,content:`Error: ${n.error.message}`,isError:!0}),M.error(`Run ended: ${n.error.message}`),Ie(`${v.getState().projectName||`Agent`} run failed`,n.error.message),typeof document<`u`&&document.hidden&&V(`error`);else if(n.status===`done`){if(typeof document<`u`&&document.hidden&&(M.success(`Run completed in ${a} iteration${a===1?``:`s`}`),Ie(`${v.getState().projectName||`Agent`} run finished`,`Completed in ${a} iteration${a===1?``:`s`}.`),V(`ready`)),Fe(),S.getState().soundOnComplete)try{Ne()}catch{}typeof document<`u`&&document.dispatchEvent(new CustomEvent(`chat:next-step-countdown`))}let l=i.getState(),u=l.queue[0];if(!u)return;if(u.alreadyDispatched===!0){Ke(u);let e=l.dequeueDrainable();return e?qe(e):void 0}let d=l.dequeue();if(d)return qe(d)}function Ke(e){if(e.bubbleAdded===!0)return;let t=e.images??[];i.getState().addMessage({role:`user`,content:e.text,...t.length>0?{attachments:t.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),e.bubbleAdded=!0}function qe(e){let t=_(S.getState().wsUrl),n=e.images??[];if(i.getState().addMessage({role:`user`,content:e.text,...n.length>0?{attachments:n.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),e.mode===`btw`){e.alreadyDispatched!==!0&&t.sendMailboxMessage({type:`btw`,to:`leader`,subject:`btw from WebUI`,body:e.text,priority:`normal`,audience:`all`});return}i.getState().setLoading(!0),t.sendMessage(e.text,n.length>0?je(n):void 0)}var Je={"coordinator.status":e=>{let t=e.payload;w.getState().setCoordinatorStatus(t.status,t.mode),t.taskQueue&&w.getState().updateCoordinatorStats({total:t.subagentCount??0,running:0,idle:0,stopped:0,inFlight:t.taskQueue.running,pending:t.taskQueue.pending,completed:t.taskQueue.completed})},"coordinator.stats":e=>{let t=e.payload;w.getState().updateCoordinatorStats(t)},"budget.threshold_reached":e=>{let t=e.payload;w.getState().pushEvent(`budget.threshold_reached`,t,t.ts??Date.now(),t.subagentId,t.taskId),t.limit>0&&t.used/t.limit*100>=85&&w.getState().recordBudgetAlert(t.subagentId,t.kind,t.used,t.limit),w.getState().updateSubagentBudget(t.subagentId,{budgetUsage:{iterations:0,toolCalls:0,tokens:0,costUsd:0,elapsedMs:t.used??0}})},"budget.decision":e=>{let t=e.payload,n=t.extended?.timeoutMs??t.extended?.maxIterations??t.extended?.maxToolCalls;w.getState().recordBudgetDecision(t.subagentId,t.kind,t.decision,n),w.getState().pushEvent(`budget.decision`,{subagentId:t.subagentId,kind:t.kind,decision:t.decision,newLimit:n},Date.now(),t.subagentId)},"subagent.budget_extended":e=>{let t=e.payload;w.getState().recordBudgetExtended(t.subagentId,t.kind,t.extendedTo),w.getState().pushEvent(`subagent.budget_extended`,t,Date.now(),t.subagentId)},"consensus.vote_initiated":e=>{let t=e.payload;w.getState().pushConsensusVote(t.changeId,t.title,t.eligible),w.getState().pushEvent(`consensus.vote_initiated`,t,Date.now()),M.info(`Vote started: `+t.title)},"consensus.vote_cast":e=>{let t=e.payload,n=w.getState().consensusVotes.get(t.changeId)?.eligible.find(e=>e.agentId===t.voterId);w.getState().recordConsensusVote(t.changeId,t.voterId,n?.agentName??t.voterId,t.value),w.getState().pushEvent(`consensus.vote_cast`,t,Date.now(),t.voterId)},"consensus.vote_resolved":e=>{let t=e.payload;w.getState().resolveConsensusVote(t.changeId,t.result,t.approveCount,t.rejectCount),w.getState().pushEvent(`consensus.vote_resolved`,t,Date.now()),M.info(`Vote resolved: `+t.result+` (y`+t.approveCount+` n`+t.rejectCount+`)`)},"task.pending":e=>{let t=e.payload;w.getState().pushTaskPending(t.taskId,t.description,t.priority),w.getState().pushEvent(`task.pending`,t,Date.now())},"task.started":e=>{let t=e.payload;w.getState().startTask(t.taskId,t.subagentId),w.getState().pushEvent(`task.started`,t,Date.now(),t.subagentId)},"task.completed":e=>{let t=e.payload;w.getState().completeTask(t.taskId,t.status,t.durationMs),w.getState().pushEvent(`task.completed`,t,Date.now(),t.subagentId)},"task.failed":e=>{let t=e.payload;w.getState().failTask(t.taskId,t.error),w.getState().pushEvent(`task.failed`,{taskId:t.taskId,subagentId:t.subagentId,error:String(t.error).slice(0,120)},Date.now(),t.subagentId),M.error(`Task failed: `+String(t.error).slice(0,80))}};function K(){let e=_();e?.send?.({type:`mailbox.messages`,payload:{limit:30,incompleteOnly:!0}}),e?.send?.({type:`mailbox.agents`,payload:{}})}var q=null;function J(){q!==null&&clearTimeout(q),q=setTimeout(()=>{q=null,K()},300)}function Ye(e){let t=e.payload;if(t.error){x.getState().setError(t.error);return}x.getState().setTree(t.root,t.tree)}function Xe(e){let t=e.payload;if(t.error){x.getState().setError(t.error);return}x.getState().openFile(t.filePath,t.content)}function Ze(e){let t=e.payload;t.success?x.getState().markSaved(t.filePath):t.error&&x.getState().setError(`Save failed: ${t.error}`)}function Qe(e){let t=f(`mailbox.event`,e.payload);t&&(g.getState().pushEvent(t),g.getState().setActive(!0)),J()}function $e(e){let t=e.payload;t?.messages&&j.getState().setMessages(t.messages)}function et(e){let t=e.payload;t?.agents&&j.getState().setAgents(t.agents)}function tt(e){let t=f(`mailbox.received`,e.payload);t&&(g.getState().pushEvent(t),g.getState().setActive(!0)),J()}function nt(e){J()}function rt(e){j.getState().setMessages([]),K()}function it(e){J()}function at(e){let t=e.payload;t&&typeof t.totalRemoved==`number`&&j.getState().setLastCompaction({readByAllRemoved:t.readByAllRemoved??0,expiredRemoved:t.expiredRemoved??0,stalePurged:t.stalePurged??0,totalRemoved:t.totalRemoved,remaining:t.remaining??0}),J()}function ot(e){let t=e.payload;if(t?.success){J();return}M.error(`Mailbox action failed: ${t?.error??`unknown error`}`)}var st={"files.tree":Ye,"files.read":Xe,"files.written":Ze,"mailbox.event":Qe,"mailbox.messages":$e,"mailbox.agents":et,"mailbox.received":tt,"mailbox.agent_registered":nt,"mailbox.cleared":rt,"mailbox.purged":it,"mailbox.compacted":at,"mailbox.action_result":ot};function ct(e){let t=e.payload;k.getState().setSnapshot(t.worktrees??[],t.baseBranch??``)}function lt(e){let t=e.payload;k.getState().pushEvent(t)}function ut(e){let t=e.payload;k.getState().setOrphans(t.orphans??[],t.canClean??!1,t.reason)}function dt(e){let t=e.payload;k.getState().setCleanResult({...t,at:Date.now()})}function ft(e){let t=e.payload;k.getState().setMergeResult({...t,at:Date.now()})}function pt(e){let t=e.payload;k.getState().setDiff(t.dir,t.summary)}function mt(e){A.getState().applyEvent(e.payload);let t=f(`subagent.event`,e.payload);t&&(g.getState().pushEvent(t),g.getState().setActive(!0))}function ht(e){let t=z(e);t?.kind===`concurrency`&&A.setState({fleetConcurrency:t.active,fleetConcurrencyMax:t.maximum})}function gt(e){let t=z(e);if(t?.kind!==`client-status`)return;let n=t.status;oe.getState().setCurrentSession({clientType:n.clientType,clientId:n.clientId,agentCount:n.agentCount,model:n.model,mode:n.mode,toolCalls:n.toolCalls,inputTokens:n.inputTokens,outputTokens:n.outputTokens,cacheTokens:n.cacheTokens,costUsd:n.costUsd,timestamp:n.timestamp})}function _t(e){let t=z(e);if(t?.kind!==`sessions`)return;oe.getState().setLiveSessions(t.sessions);let n=Date.now();if(n-yt>=5e3&&(yt=n,K()),n-vt<1e3)return;vt=n;let r=f(`sessions.status_update`,e.payload);r&&(g.getState().pushEvent(r),g.getState().setActive(!0))}var vt=0,yt=0,bt={"worktree.state":ct,"worktree.event":lt,"worktree.orphans":ut,"worktree.cleanup_result":dt,"worktree.merge_result":ft,"worktree.diff_result":pt,"subagent.event":mt,"fleet.concurrency_update":ht,"client.status_update":gt,"sessions.status_update":_t};function xt(e,t){let n=e=>e.trim().replace(/\s+/g,` `).toLowerCase();return n(e)===n(t)}var St=50,Ct=200;function wt(e){return e.length<=300?e:`${e.slice(0,299)}…`}function Tt(e){return{...e,text:wt(e.text)}}function Et(e){let t=[];for(let n of Object.values(e))n.state===`exited`&&t.push(n);if(t.length<=Ct)return e;t.sort((e,t)=>(t.exitedAt??t.lastSeenAt).localeCompare(e.exitedAt??e.lastSeenAt));let n={...e};for(let e of t.slice(Ct))delete n[e.id];return n}var Y=o()(e=>({traces:[],contextMemories:{},transitions:[],pushTrace:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=t.injected.map(Tt),a=t.activated.map(Tt);for(let e of i){let i=n[e.id];n[e.id]={...e,state:i?.state===`active`?`active`:`injected`,trigger:t.trigger,enteredAt:i?.enteredAt??t.at,lastSeenAt:t.at};let a=`${t.at}_injected_${e.id}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e.id,action:`injected`,reason:`${t.trigger} · score ${e.score.toFixed(2)}`})}return{traces:[{...t,activated:a,injected:i},...e.traces.filter(e=>e.runId!==t.runId)].slice(0,St),contextMemories:Et(n),transitions:r.slice(0,100)}}),applyContextSnapshot:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=new Set(t.activeMemoryIds);for(let e of t.activeMemoryIds){let r=n[e];n[e]=r?{...r,state:`active`,lastSeenAt:t.at,exitedAt:void 0}:Dt(e,t.at,`active`)}for(let e of t.enteredMemoryIds){let n=`${t.at}_entered_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`entered`,reason:`present in provider request`})}for(let e of t.exitedMemoryIds){let i=n[e];i&&(n[e]={...i,state:`exited`,exitedAt:t.at});let a=`${t.at}_exited_${e}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e,action:`exited`,reason:`absent from provider request`})}for(let[e,a]of Object.entries(n))if((a.state===`injected`||a.state===`active`)&&!i.has(e)&&(n[e]={...a,state:`exited`,exitedAt:t.at},!t.exitedMemoryIds.includes(e))){let n=`${t.at}_exited_before_provider_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`exited`,reason:a.state===`injected`?`removed before provider request`:`absent from provider context snapshot`})}return{contextMemories:Et(n),transitions:r.slice(0,100)}}),resetContext:()=>e({contextMemories:{},transitions:[]}),clear:()=>e({traces:[],contextMemories:{},transitions:[]})}));function Dt(e,t,n){return{id:e,kind:`unknown`,text:`Memory details were not present in this UI process.`,score:0,relationStrength:0,anchors:[],tags:[],activationReasons:[],importance:0,confidence:0,freshness:0,persistence:`unknown`,state:n,trigger:`context snapshot`,enteredAt:t,lastSeenAt:t,isPlaceholder:!0}}var Ot=100,kt=new Set([`exited`,`superseded`,`archived`,`staled`,`contradicted`]);function At(e,t=new Date){let n=e.event,r=X(e.memoryId),i=X(e.at)??t.toISOString(),a={id:`${n}_${t.getTime()}_${Math.random().toString(36).slice(2,7)}`,at:i,event:n};if(n===`memory.accepted`&&r)return{...a,action:`entered`,memoryId:r,label:`${r} entered memory`,detail:Mt(e)};if(n===`memory.merged`&&r){let t=Array.isArray(e.mergedIds)?e.mergedIds.length:0;return{...a,action:`merged`,memoryId:r,label:`${r} merged`,detail:t>0?`${t} records folded in`:void 0}}if(n===`memory.recovered`&&r)return{...a,action:`recovered`,memoryId:r,label:`${r} recovered`,detail:X(e.reason)};if(n===`memory.deleted`&&r)return{...a,action:`exited`,memoryId:r,label:`${r} exited memory`,detail:Nt(e)};if(n===`memory.updated`&&r){let t=X(e.status)??`updated`;return{...a,action:t===`deleted`?`exited`:`updated`,memoryId:r,label:t===`deleted`?`${r} exited memory`:`${r} updated → ${t}`,detail:Mt(e)}}if(n===`memory.graph_edge_added`){let t=X(e.from),n=X(e.to);if(!t?.startsWith(`mem:`)||!n?.startsWith(`mem:`))return null;let r=X(e.relation)??`related_to`,i=Z(e.weight),o=Array.isArray(e.evidence)?e.evidence.filter(e=>typeof e==`string`):[];return{...a,action:`related`,memoryId:t.startsWith(`mem:`)?t.slice(4):void 0,label:`${Pt(t)} ↔ ${Pt(n)}`,detail:[r,i===void 0?void 0:`weight ${i.toFixed(2)}`,o.length>0?`why: ${o.join(`, `)}`:void 0].filter(Boolean).join(` · `)}}return n===`memory.relationships_rebuilt`?{...a,action:`related`,label:`Memory relationships rebuilt`,detail:`${Z(e.added)??0} added / ${Z(e.proposed)??0} proposed`}:n===`memory.superseded`&&r?{...a,action:`superseded`,memoryId:r,label:`${r} → superseded`,detail:X(e.reason)??Mt(e)}:n===`memory.archived`&&r?{...a,action:`archived`,memoryId:r,label:`${r} → archived`,detail:X(e.reason)}:n===`memory.staled`&&r?{...a,action:`staled`,memoryId:r,label:`${r} → staled`,detail:X(e.reason)??`anchor drift detected`}:n===`memory.contradicted`&&r?{...a,action:`contradicted`,memoryId:r,label:`${r} → contradicted`,detail:X(e.reason)??`conflicting evidence`}:null}var jt=o()(e=>({items:[],pushEvent:t=>e(e=>{let n=At(t);return n?{items:[n,...kt.has(n.action)?e.items.filter(e=>!(kt.has(e.action)&&e.memoryId===n.memoryId)):e.items].slice(0,Ot)}:e}),clear:()=>e({items:[]})}));function X(e){return typeof e==`string`&&e.length>0?e:void 0}function Z(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function Mt(e){let t=[X(e.kind),X(e.persistence)],n=Z(e.confidence),r=Z(e.freshness);return n!==void 0&&t.push(`confidence ${n.toFixed(2)}`),r!==void 0&&t.push(`freshness ${r.toFixed(2)}`),t.filter(Boolean).join(` · `)||void 0}function Nt(e){let t=X(e.reason),n=Z(e.removedEdges);return[t,n===void 0?void 0:`${n} edges removed`].filter(Boolean).join(` · `)||void 0}function Pt(e){let t=e.replace(/^mem:/,``);return t.length>26?`${t.slice(0,23)}…`:t}function Ft(e){if(!e||e.length===0)return;let t=e.map(e=>e.status);return t.some(e=>e===`failed`)?`failed`:t.every(e=>e===`completed`||e===`skipped`)?`completed`:t.some(e=>e===`paused`)?`paused`:`running`}function It(e){let t=e.payload,n=Array.isArray(t.phases)?t.phases:void 0,r=Ft(n);D.getState().setState({phases:n,activePhaseId:typeof t.activePhaseId==`string`?t.activePhaseId:void 0,overallPercent:typeof t.overallPercent==`number`?t.overallPercent:void 0,autonomous:typeof t.autonomous==`boolean`?t.autonomous:void 0,title:typeof t.title==`string`?t.title:void 0,goal:typeof t.goal==`string`?t.goal:void 0,status:r,multiBoard:t.multiBoard===!0,lastError:r===`failed`?D.getState().lastError:null})}function Lt(e){let t=e.payload,n={totalPhases:typeof t.totalPhases==`number`?t.totalPhases:0,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,totalTasks:typeof t.totalTasks==`number`?t.totalTasks:0,completedTasks:typeof t.completedTasks==`number`?t.completedTasks:0,failedTasks:typeof t.failedTasks==`number`?t.failedTasks:0};D.getState().setState({progress:n,overallPercent:typeof t.percentComplete==`number`?Math.round(t.percentComplete):void 0,status:n.failed>0||n.failedTasks>0?`failed`:`running`,lastEvent:`progress`})}function Q(e){let t=e.payload,n=typeof t.title==`string`&&t.title?t.title:`Goal`,r=typeof t.error==`string`&&t.error?t.error:void 0;if(e.type===`goal.paused`){D.getState().setState({status:`paused`,autonomous:!1,lastEvent:`paused`}),M.info(`Goal paused`);return}if(e.type===`goal.resumed`){D.getState().setState({status:`running`,autonomous:!0,lastEvent:`resumed`}),M.info(`Goal resumed`);return}if(e.type===`goal.stopped`){D.getState().setState({status:`stopped`,autonomous:!1,lastEvent:`stopped`}),M.warn(`Goal stopped`);return}if(e.type===`goal.cleared`){D.getState().clear();return}if(e.type===`goal.reverted`){let e=t.ok===!0,n=typeof t.reverted==`number`?t.reverted:0,r=typeof t.reason==`string`?t.reason:void 0;e?M.success(n>0?`Reverted ${n} commit${n===1?``:`s`}`:`Nothing to revert`):M.error(`Revert failed: ${r??`unknown error`}`),D.getState().setState({lastEvent:`reverted`});return}if(e.type===`goal.saved`){D.getState().setState({lastEvent:`saved`}),M.success(`Goal graph saved`);return}if(e.type===`goal.completed`){D.getState().setState({status:`completed`,autonomous:!1,overallPercent:100,lastEvent:`completed`,lastError:null}),M.success(`${n} completed`);return}if(e.type===`goal.failed`||e.type===`goal.error`){let e=r??(typeof t.message==`string`?t.message:`${n} failed`);D.getState().setState({status:`failed`,autonomous:!1,lastEvent:`failed`,lastError:e}),M.error(e)}}function Rt(e){let t=e.payload;D.getState().setState({lastEvent:`list`,graphs:Array.isArray(t.graphs)?t.graphs:[]})}function zt(e){let t=e.payload;ne.getState().setGoal(t)}function Bt(e){let t=e.payload;l.getState().set(t),t.yolo===!0&&c.getState().confirmInfo&&c.getState().hideConfirm()}function Vt(e){if(!p(e))return;let t=e.payload,n;if(t.decision.type===`answer`){let e=t.decision.rationale&&t.decision.rationale!==t.decision.text?`\n\n_${t.decision.rationale}_`:``;n=`🧠 ${t.decision.text??``}${e}`}else n=t.decision.type===`deny`?`🧠 Denied: ${t.decision.reason??``}`:`🧠 The Brain escalated this question back to you — it needs human judgement.`;i.getState().addMessage({role:`assistant`,content:n})}function Ht(e){if(!p(e))return;let t=e.payload;if(t.event===`brain.intervention`){let e=t.decision?.rationale??t.decision?.text??``,n=t.intervened?`🧠 **Brain intervention** — corrective guidance was sent to the agent.`:`🧠 **Brain check** — a distress signal was reviewed; no action needed.`;i.getState().addMessage({role:`assistant`,content:[n,t.request?.question??``,e?`_${e}_`:``].filter(Boolean).join(`
|
|
8
|
+
|
|
9
|
+
`)}),t.intervened&&M.info(`Brain intervened: agent steered`)}else t.event===`brain.decision_denied`&&M.warn(`Brain denied: ${t.decision?.reason??t.request?.question??`request`}`)}function Ut(e){if(!p(e))return;let t=e.payload;g.getState().pushEvent({id:`memory_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`memory:event`,timestamp:Date.now(),source:`sage`,target:`leader`,label:t.event.replace(/^memory\./,``),data:t,color:`#a78bfa`,flowGroup:`memory`}),t.event===`memory.injector_run`&&Y.getState().pushTrace(t),t.event===`memory.context_snapshot`&&Y.getState().applyContextSnapshot(t),jt.getState().pushEvent(t),t.event===`memory.staled`?M.warn(`Memory became stale: ${String(t.memoryId??``)}`):t.event===`memory.contradicted`?M.warn(`Memory contradicted: ${String(t.memoryId??``)}`):t.event===`memory.hygiene_completed`&&M.info(`SAGE hygiene completed`)}function Wt(e){let t=e.payload,n=typeof t.kind==`string`?t.kind:typeof t.event==`string`?t.event:`collab.event`;g.getState().pushEvent({id:`collab_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`collab:event`,timestamp:Date.now(),source:`collab`,target:typeof t.sessionId==`string`?t.sessionId:`session`,label:n,magnitude:1,data:t,raw:e.payload,color:`hsl(200, 70%, 55%)`,flowGroup:`collab`}),g.getState().setActive(!0)}function Gt(e){Wt(e);let t=e.payload;t?.phase===`consumed`?M.success(`Tool injection applied${t.toolName?` to ${t.toolName}`:``}`):M.info(`Collab tool injection queued`)}function Kt(e){let t=e.payload?.entry;if(!t)return;let n=typeof t.iteration==`number`?t.iteration:0,r=typeof t.task==`string`?t.task:void 0,i=typeof t.status==`string`?t.status:void 0,a=typeof t.at==`string`?t.at:new Date().toISOString();ne.getState().appendJournalEntry({iteration:n,task:r,status:i,timestamp:a}),g.getState().pushEvent({id:`eternal_${Date.now()}_${n}`,kind:`eternal:iteration`,timestamp:Date.now(),source:`eternal`,target:`goal`,label:r?`L${n}: ${r}`:`Eternal iteration ${n}`,magnitude:typeof t.costUsd==`number`?t.costUsd:1,data:t,raw:e.payload,color:i===`failure`?`hsl(0, 80%, 55%)`:`hsl(220, 80%, 60%)`,flowGroup:`eternal`}),g.getState().setActive(!0)}function qt(e){let t=e.payload;v.getState().setEnv({cwd:t.cwd,projectRoot:t.projectRoot,projectName:t.projectRoot.split(/[/\\]/).pop()||t.projectRoot}),x.getState().setTreeLoading(!0),_().send({type:`files.tree`,payload:{path:t.cwd}})}function Jt(e){let t=e.payload,n=c.getState().refinePanel,r=i.getState().pendingRefinement;if(!n&&r){i.getState().setRefining(!1);let e=r.text,n=r.images?.length?r.images.map((e,t)=>({id:`pr_${Date.now()}_${t}`,dataUrl:`data:${e.mime};base64,${e.data}`,mediaType:e.mime,bytes:Math.round(e.data.length*3/4)})):void 0,a=n&&n.length>0&&r.mode===`btw`?`queue`:r.mode??`queue`;if(t.error){i.getState().setPendingRefinement(null),i.getState().enqueue(e,a,n);return}let o=t.refined??``;if(!o||xt(o,e)){i.getState().setPendingRefinement(null),i.getState().enqueue(e,a,n);return}i.getState().setPendingRefinement(null),c.getState().setRefinePanel({original:e,refined:o,english:t.english||o,status:`ready`,mode:n&&n.length>0&&r.mode===`btw`?`queue`:r.mode,images:n,...t.refinedWith?{provider:t.refinedWith.provider,model:t.refinedWith.model}:{},error:void 0,errorKind:void 0,resolve:()=>{}});return}if(!n)return;if(t.error){if(t.errorKind===`timeout`&&!n.retried&&t.retryTimeoutMs){c.getState().setRefinePanel({...n,status:`refining`,retried:!0}),_().refineModel(n.original,{timeoutMs:t.retryTimeoutMs});return}c.getState().setRefinePanel({...n,status:`failed`,error:t.error,errorKind:t.errorKind,fallbackRef:t.fallbackRef});return}let a=n.original;if(xt(t.refined,a)){c.getState().setRefinePanel(null),i.getState().addMessage({role:`user`,content:a}),i.getState().setLoading(!0),_().sendMessage(a);return}c.getState().setRefinePanel({...n,status:`ready`,refined:t.refined,english:t.english,...t.refinedWith?{provider:t.refinedWith.provider,model:t.refinedWith.model}:{},error:void 0,errorKind:void 0})}function Yt(e){let t=e.payload;ie.getState().setInfo({...t,fetchedAt:Date.now()})}function Xt(e){let t=e.payload;re.getState().setFiles(t.files??[],t.error??null)}function Zt(e){let t=e.payload;re.getState().selectedPath===t.path&&re.getState().setDiff({path:t.path,oldText:t.oldText??``,newText:t.newText??``,binary:t.binary,tooLarge:t.tooLarge,error:t.error})}function Qt(e){let t=e.payload;ee.getState().setSnapshot({count:t.count,maxConcurrent:t.maxConcurrent,jobs:t.jobs??[]})}function $t(e){let t=e.payload;ee.getState().recordFired(t.name,t.ts)}function en(e){let t=e.payload;M.info(t.message??`🦂 Chimera report ready. No follow-up started; open the mailbox to inspect it.`,8e3)}var tn={"goal-state.updated":zt,"prefs.updated":Bt,"goal.state":It,"goal.progress":Lt,"goal.paused":Q,"goal.resumed":Q,"goal.stopped":Q,"goal.cleared":Q,"goal.reverted":Q,"goal.saved":Q,"goal.completed":Q,"goal.failed":Q,"goal.error":Q,"goal.list":Rt,"brain.answer":Vt,"brain.event":Ht,"memory.event":Ut,"collab.event":Wt,"collab.injection.granted":Gt,"eternal.iteration":Kt,"working_dir.changed":qt,"model.refine_result":Jt,"git.info":Yt,"git.changes":Xt,"git.diff":Zt,"cron.snapshot":Qt,"cron.job_fired":$t,"chimera.report_available":en};function nn(e){let t=e.payload;!t.jobId||!t.kind||T.getState().jobStarted(t.jobId,t.kind)}function rn(e){let t=e.payload;!t.jobId||!t.phase||!Number.isFinite(t.completed)||!Number.isFinite(t.total)||T.getState().jobProgress(t.jobId,{phase:t.phase,completed:t.completed??0,total:t.total??0})}function an(e){let t=e.payload;t.workspaceId&&T.getState().workspaceCompleted(t.workspaceId)}function on(e){let t=e.payload;t.snapshot&&T.getState().setSnapshot(t.snapshot,t.stale??!1)}function sn(e){let t=e.payload;t.reportId&&T.getState().reportReady(t.reportId)}function cn(e){let t=e.payload;t.jobId&&T.getState().jobFailed(t.jobId,t.error??`TechStack job failed`)}function ln(e){let t=e.payload;t.jobId&&T.getState().jobCancelled(t.jobId)}var un={"techstack.job.started":nn,"techstack.job.progress":rn,"techstack.workspace.completed":an,"techstack.snapshot.updated":on,"techstack.report.ready":sn,"techstack.job.failed":cn,"techstack.job.cancelled":ln};function dn(){let[e,t]=(0,N.useState)({isMobile:!1,isSmall:!1,width:0});return(0,N.useEffect)(()=>{if(typeof window>`u`)return;let e=window.matchMedia(`(max-width: 768px)`),n=window.matchMedia(`(max-width: 640px)`),r=()=>{t({isMobile:e.matches,isSmall:n.matches,width:window.innerWidth})};return r(),e.addEventListener(`change`,r),n.addEventListener(`change`,r),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}function fn(){return typeof window>`u`?!1:window.matchMedia(`(max-width: 768px)`).matches}function pn(e){if(typeof e!=`string`)return Date.now();let t=Date.parse(e);return Number.isFinite(t)?t:Date.now()}function mn(e){return`replay_${Date.now()}_${e}`}function hn(){return typeof window>`u`?!1:window.location.pathname===`/debug`||window.location.pathname===`/analytics`||window.location.pathname===`/refresh-debug`}function gn(e){return typeof e==`string`?e:JSON.stringify(e)}function _n(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`&&e.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
|
|
10
|
+
`):``}function vn(e){if(typeof e==`string`)return e.trim();if(!e||typeof e!=`object`||Array.isArray(e))return``;let t=e;for(let e of[`id`,`name`,`type`]){let n=t[e];if(typeof n==`string`&&n.trim())return n.trim()}return``}function yn(e,t=[]){let n=[],r=new Map,i=0,a=0,o=(e,t,r)=>{t&&n.push({id:mn(n.length),role:e,content:t,timestamp:r})},s=e=>{n.push({id:mn(n.length),role:`system`,content:e.text,timestamp:pn(e.ts),isError:e.level===`error`||void 0})},c=e=>{if(typeof e==`string`)for(;a<t.length&&t[a].ts<e;)s(t[a]),a+=1},l=(e,t)=>{let r=e.trim();r&&(i+=1,n.push({id:mn(n.length),role:`system`,content:``,timestamp:t,thinkingLog:{iteration:i,text:r,startedAt:t,durationMs:0,replayed:!0}}))};for(let t of e){if(c(t.ts),t.role!==`user`&&t.role!==`assistant`&&t.role!==`system`)continue;let e=t.role,i=pn(t.ts);if(typeof t.content==`string`){o(e,t.content,i);continue}if(!Array.isArray(t.content))continue;let a=``,s=[];for(let c of t.content){if(c.type===`thinking`&&typeof c.thinking==`string`){s.push(c.thinking);continue}if(c.type===`text`&&typeof c.text==`string`){a+=(a?`
|
|
11
|
+
`:``)+c.text;continue}if(c.type===`tool_use`){o(e,a,i),a=``;let t=String(c.id??``),s={id:mn(n.length),role:`tool`,content:``,toolName:String(c.name??`tool`),toolInput:c.input,toolUseId:t,timestamp:i};n.push(s),t&&r.set(t,s);continue}if(c.type===`tool_result`){let e=String(c.tool_use_id??``),t=r.get(e);t&&(t.toolResult=gn(c.content),t.isError=!!c.is_error)}}o(e,a,i),e===`assistant`&&s.length>0&&l(s.join(`
|
|
12
|
+
|
|
13
|
+
`),i)}for(;a<t.length;)s(t[a]),a+=1;return n}var bn=new Set;function xn(e,t=140){return e.length>t?`${e.slice(0,t-1)}…`:e}function Sn(){m.flush(`__thinking__`);let e=v.getState().iteration;i.getState().flushThinkingLog(Math.max(1,e?.index??1)),i.getState().clearThinking()}function Cn(e){let t=f(`session.start`,e.payload);t&&(g.getState().pushEvent(t),g.getState().setActive(!0));let n=e.payload,r=vn(n.provider),a=vn(n.model),o=v.getState().session?.id,s=!o||o!==n.sessionId||n.reset;if((n.appVersion||n.latestVersion)&&v.getState().setUpdateInfo({appVersion:String(n.appVersion??``),latestVersion:String(n.latestVersion??``),updateAvailable:!!n.updateAvailable}),Array.isArray(n.providerStatuses)&&O.getState().hydrate(n.providerStatuses.map(e=>({providerId:e.providerId,model:e.model,state:e.state,reason:e.lastErrorKind??e.state,updatedAt:e.lastFailureAt??Date.now(),stateExpiresAt:e.stateExpiresAt??void 0}))),n.needsSetup&&ue(`setup`),s?(Y.getState().clear(),v.getState().startSession({id:n.sessionId,startedAt:Date.now(),model:a,provider:r})):v.getState().setSession({id:n.sessionId,startedAt:v.getState().session?.startedAt??Date.now(),model:a,provider:r}),v.getState().setEnv({maxContext:n.maxContext,projectRoot:n.projectRoot??``,projectName:n.projectName,cwd:n.cwd,mode:n.mode,contextMode:n.contextMode,inputCost:n.inputCost,outputCost:n.outputCost,cacheReadCost:n.cacheReadCost}),S.getState().setConfig({provider:r,model:a}),s){!n.needsSetup&&P()&&!hn()&&u({sidebarOpen:!1}),m.dropAll(),i.getState().clearMessages(),i.getState().setBoundSessionId(n.sessionId),c.getState().setSearchActiveMessageId(null),i.getState().setLoading(!1),v.setState({todos:[]}),V(`ready`);let e=A.getState();if(n.clearedSessionId){let t=new Map;for(let[r,i]of e.agents)i.sessionId!==n.clearedSessionId&&t.set(r,i);A.setState({agents:t})}else e.clear();x.getState().setTreeLoading(!0),_().send({type:`files.tree`,payload:{path:v.getState().cwd}})}let l=n.replayMessages,d=n.replayMarkers??[];if(l&&l.length>0){let e=i.getState();(s||e.messages.length===0||e.boundSessionId!==n.sessionId||e.isLoading)&&(e.setMessages(yn(l,d)),e.setBoundSessionId(n.sessionId))}if(l){let e=n.replayUsage;if(e){let t=v.getState(),n=e.input??0,r=e.output??0,i=e.cacheRead??0,a=e.cacheWrite??0;v.setState({totalTokens:{input:n,output:r,cacheRead:i,cacheWrite:a},cost:(n*t.inputCost+r*t.outputCost+i*t.cacheReadCost)/1e6})}let t=n.lastInputTokens;typeof t==`number`&&t>0&&v.setState({lastInputTokens:t}),s&&!n.needsSetup&&(hn()||(P()?u({sidebarOpen:!1}):c.getState().currentView!==`chat`&&de(`chat`))),fn()&&c.getState().setSidebarOpen(!1)}}function wn(e){if(!p(e))return;let t=e.payload,n=e=>e.toLocaleString(),r=[...t.tools.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8),a=[...t.messages.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8);i.getState().addMessage({role:`assistant`,content:[`📊 **Context breakdown** (heuristic — 4 chars/token)`,``,`**Total estimate:** ${n(t.total)} tokens`,`• System prompt: ${n(t.systemPrompt)}`,`• Tool schemas: ${n(t.tools.total)} (${t.tools.count} tools)`,`• Messages: ${n(t.messages.total)} (${t.messages.count} messages)`,``,`**Top tool schemas:**`,...r.map(e=>` · ${e.name}: ${n(e.tokens)}`),``,`**Top messages:**`,...a.map(e=>` · #${e.index} ${e.role}: ${n(e.tokens)} — ${e.preview||`(empty)`}`)].join(`
|
|
14
|
+
`)})}function Tn(e){let t=e.payload;t.success?M.success(t.message):M.error(t.message),_(S.getState().wsUrl).listSavedProviders()}function En(e){let t=e.payload;if(!t.success||!t.provider||!t.model)return;S.getState().setProvider(t.provider),S.getState().setModel(t.model);let n=t.previousProvider&&t.previousModel?`${t.previousProvider} / ${t.previousModel}`:a.t(`settings:toast.previousModel`),r=`${t.provider} / ${t.model}`;i.getState().addMessage({role:`system`,content:a.t(t.runActive?`settings:toast.modelSwitchedRunActive`:`settings:toast.modelSwitchedNextRequest`,{from:n,to:r})})}function Dn(e){if(!p(e))return;d(e);let t=e.payload,n=t.reductions.length?t.reductions.map(e=>`${e.phase}: ${e.saved}`).join(`, `):`no-op`;t.repaired&&(n+=`; repaired ${t.repaired.removedToolUses?.length??0} tool_use, ${t.repaired.removedToolResults?.length??0} tool_result, ${t.repaired.removedMessages} empty messages`),i.getState().addMessage({role:`system`,content:`🗜️ Context compacted: ${t.before} → ${t.after} tokens (saved ~${t.saved}). ${n}`}),v.setState({lastInputTokens:t.after})}function On(e){if(!p(e))return;d(e);let t=e.payload,n,r;t.budget&&t.budget.availableInputTokens>0?(n=Math.min(100,Math.max(0,Math.round(t.budget.load*100))),r=`input budget`):(n=t.maxContext>0?Math.min(100,Math.max(0,Math.round(t.tokens/t.maxContext*100))):0,r=`context`),i.getState().addMessage({role:`assistant`,content:`Compaction failed at ${t.level} (${n}% ${r}): ${t.message}`,isError:t.fatal}),M.error(`Compaction failed: ${t.message}`)}function kn(e){if(!p(e))return;d(e);let t=e.payload,r=_n(t.content),a=t.usage,o=(a.input??0)+(a.cacheWrite??0)-(a.cacheRead??0);o>0&&v.setState({lastInputTokens:o}),v.getState().updateUsage(t.usage);let{inputCost:s,outputCost:c,cacheReadCost:l}=v.getState(),u=(t.usage.input*s+t.usage.output*c+(t.usage.cacheRead??0)*l)/1e6;u>0&&v.getState().addCost(u);let f=n(t.stopReason);f&&i.getState().setLoading(!1);let h=i.getState().currentAssistantMessageId;if(h){m.flush(h);let e=i.getState().messages.find(e=>e.id===h)?.content??``;r.trim()&&(e.trim()?r.startsWith(e)&&r.length>e.length&&i.getState().updateMessage(h,{content:r}):i.getState().updateMessage(h,{content:r})),i.getState().finalizeMessage(h,{final:f}),t.usage.output>0&&i.getState().updateMessage(h,{usage:t.usage})}else if(r.trim()){let e=i.getState().addMessage({role:`assistant`,content:r,usage:t.usage.output>0?t.usage:void 0});i.getState().finalizeMessage(e,{final:f})}i.getState().setCurrentAssistantMessage(null),m.flush(`__thinking__`),i.getState().clearThinking()}function An(e){if(!p(e))return;d(e);let t=e.payload;m.flush(`__thinking__`),i.getState().flushThinkingLog(t.index),i.getState().clearThinking();let n=v.getState().iteration;n&&v.getState().setIteration({index:t.index,max:n.max})}function jn(e){if(!p(e))return;let t=e.payload;i.getState().addMessage({role:`assistant`,content:`Iteration limit reached: ${t.currentIterations}/${t.currentLimit}.`,isError:!0}),M.warn(`Iteration limit reached (${t.currentIterations}/${t.currentLimit})`)}function Mn(e){if(!p(e))return;let t=e.payload,n=Math.max(0,Math.round(t.delayMs/100)/10);M.warn(`${t.providerId} retry ${t.attempt} after ${n}s (${t.status})`)}function Nn(e){if(!p(e))return;let t=e.payload;i.getState().addMessage({role:`assistant`,content:[`Provider error from \`${t.providerId}\` (${t.status}).`,t.description,t.retryable?`_Retryable; WrongStack may recover automatically._`:``].filter(Boolean).join(`
|
|
15
|
+
|
|
16
|
+
`),isError:!0}),M.error(`${t.providerId} provider error (${t.status})`)}function Pn(e){if(!p(e))return;let t=e.payload,n=`${t.from.providerId}/${t.from.model}`,r=`${t.to.providerId}/${t.to.model}`;i.getState().addMessage({role:`assistant`,content:`Provider fallback: \`${n}\` returned ${t.status}; switching to \`${r}\`${t.providerSwitched?` with provider change`:``}.`}),M.warn(`Fallback to ${r}`)}function Fn(e){let t=e.payload;O.getState().update({providerId:t.providerId,model:t.model,state:t.newState,reason:t.reason,updatedAt:t.timestamp,stateExpiresAt:t.stateExpiresAt});let n=`${t.providerId}/${t.model}`;t.newState===`blocked`&&t.oldState!==`blocked`?M.warn(`${n} entered the limit-reset waiting room`):t.newState===`healthy`&&t.oldState!==`healthy`&&M.success(`${n} recovered and rejoined model routing`)}function In(e){let t=e.payload;if(t&&typeof t==`object`&&`error`in t){O.getState().setError(`Provider status tracking not available`);return}O.getState().applySnapshot(t)}function Ln(e){if(!p(e))return;let t=e.payload;i.getState().addMessage({role:`assistant`,content:`Waiting room skipped \`${t.providerId}/${t.model}\`. ${t.lastError}`})}function Rn(e){if(!p(e))return;d(e);let t=e.payload;M.warn(`Provider stream event skipped: ${t.eventType}`),i.getState().addMessage({role:`assistant`,content:`Provider stream warning (${t.eventType}): ${t.message}`,isError:!0})}function zn(e){if(!p(e))return;d(e);let t=e.payload,n=t.tools||t.kind||`assistant response`;if(t.action===`steer`){M.info(`Possible repetition noticed for ${n}; changing approach.`);return}i.getState().addMessage({role:`assistant`,content:`Loop guard stopped the turn: ${n} made no progress ${t.repeatCount} time(s) (iteration ${t.iteration+1}).`,isError:!0}),M.warn(`Loop guard stopped the turn`)}function Bn(e){if(!p(e))return;d(e);let t=e.payload,n=xn(t.task,180);i.getState().addMessage({role:`assistant`,content:`Delegating to \`${t.target}\`: ${n}`}),A.getState().pushAgentTimelineEntry({subagentId:t.target,agentName:t.target,content:n,kind:`status`,iteration:0,ts:new Date().toISOString(),status:`delegating`})}function Vn(e){if(!p(e))return;d(e);let t=e.payload,n=Math.max(0,Math.round(t.durationMs/100)/10),r=typeof t.costUsd==`number`&&t.costUsd>0?` · $${t.costUsd.toFixed(4)}`:``,a=`${t.iterations} iteration(s), ${t.toolCalls} tool call(s), ${n}s${r}`;i.getState().addMessage({role:`assistant`,content:[`Delegate ${t.ok?`completed`:`failed`} for \`${t.target}\`${t.status?` (${t.status})`:``}.`,t.summary,a].join(`
|
|
17
|
+
`),isError:!t.ok}),A.getState().pushAgentTimelineEntry({subagentId:t.subagentId??t.target,agentName:t.target,content:t.summary,kind:t.ok?`status`:`error`,iteration:t.iterations,ts:new Date().toISOString(),status:t.status??(t.ok?`completed`:`failed`)}),t.ok||M.warn(`Delegate failed: ${t.target}`)}function Hn(e){if(!p(e))return;let t=e.payload,n=`${t.tool}: ${t.pattern}`;t.decision===`always`?M.success(`Always allowed ${n}`):M.warn(`Denied ${n}`)}function Un(e){if(!p(e))return;d(e);let t=e.payload,n=t.removedToolUses.length+t.removedToolResults.length+t.removedMessages,r=t.beforeMessages!==void 0&&t.afterMessages!==void 0?` Messages: ${t.beforeMessages} -> ${t.afterMessages}.`:``;i.getState().addMessage({role:`assistant`,content:`Context repaired: removed ${n} orphan protocol item(s).${r} tool_use ${t.removedToolUses.length}, tool_result ${t.removedToolResults.length}.`})}function Wn(e){if(!p(e))return;d(e);let t=e.payload;v.getState().setContextUsage(t.tokens,t.maxContext)}function Gn(e){if(!p(e))return;let t=e.payload;v.getState().setEnv({maxContext:t.maxContext})}function Kn(e){if(!p(e))return;let t=e.payload;v.getState().setContextUsage(t.used,t.limit);let n=t.limit>0?Math.round(t.used/t.limit*100):0;M.warn(`Token threshold reached (${n}%)`)}function qn(e){if(!p(e))return;let t=e.payload.model||`<unknown>`;bn.has(t)||(bn.add(t),M.warn(`Cost estimate unavailable for ${t}`))}function Jn(e){if(!p(e))return;let t=e.payload;i.getState().addMessage({role:`assistant`,content:`Session ${t.sessionId} is damaged: ${t.detail}`,isError:!0}),M.error(`Session damage detected`)}function Yn(e){if(!p(e))return;let t=e.payload;i.getState().addMessage({role:`assistant`,content:`Session rewound to prompt #${t.toPromptIndex}. Removed ${t.removedEvents} event(s); reverted ${t.revertedFiles.length} file(s).`}),M.info(`Session rewound`)}function Xn(e){if(!p(e))return;let t=e.payload;M.success(`Checkpoint #${t.promptIndex} written (${t.fileCount} file(s))`)}function Zn(e){if(!p(e))return;let t=e.payload;g.getState().pushEvent({id:`inflight_${Date.now()}`,kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:`In-flight: ${t.context}`,magnitude:1,data:t,raw:e.payload,flowGroup:`session`})}function Qn(e){p(e)&&e.payload.reason===`recovered`&&M.info(`Recovered previous in-flight operation`)}function $n(){S.getState().setWsConnected(!1),typeof document<`u`&&document.dispatchEvent(new CustomEvent(`chat:session-end`))}function er(e){if(!p(e))return;let t=e.payload;v.getState().setContextModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description,thresholds:e.thresholds,preserveK:e.preserveK,eliseThreshold:e.eliseThreshold,custom:e.custom}))),v.getState().setEnv({contextMode:t.activeId})}function tr(e){if(!p(e))return;let t=e.payload;v.getState().setEnv({contextMode:t.id})}function nr(e){let t=e.payload;te.getState().setEntries(t.sessions??[],t.error??null)}function rr(e){if(!p(e))return;let t=e.payload;Sn(),i.getState().addMessage({role:`assistant`,content:`[${t.phase}] ${t.message}`,isError:!0}),i.getState().setLoading(!1)}var ir={"context.debug":wn,"key.operation_result":Tn,"model.switch_result":En,"context.compacted":Dn,"compaction.failed":On,"provider.response":kn,"iteration.completed":An,"iteration.limit_reached":jn,"provider.retry":Mn,"provider.error":Nn,"provider.fallback":Pn,"provider.status_changed":Fn,"provider.active_blocked":Ln,"provider.stream_error":Rn,"tool.loop_detected":zn,"delegate.started":Bn,"delegate.completed":Vn,"trust.persisted":Hn,"context.repaired":Un,"ctx.pct":Wn,"ctx.max_context":Gn,"token.threshold":Kn,"token.cost_estimate_unavailable":qn,"session.end":$n,"session.damaged":Jn,"session.rewound":Yn,"checkpoint.written":Xn,"in_flight.started":Zn,"in_flight.ended":Qn,"context.modes.list":er,"context.mode.changed":tr,"sessions.list":nr,"provider.status.snapshot":In,error:rr};function ar(e){let t=e.payload;i.getState().addMessage({role:`assistant`,content:[`🛠️ **Registered tools** (${t.tools.length})`,``,...t.tools.map(e=>`• \`${e.name}\`${e.params.length?` (${e.params.join(`, `)})`:``} — ${e.description||`_no description_`}`)].join(`
|
|
18
|
+
`)})}function or(e){let t=e.payload,n=t.text?.trim();i.getState().addMessage({role:`assistant`,content:t.error?`Memory read failed: ${t.error}`:n?`🧠 **Memory** \n\n${n}`:`🧠 **Memory**
|
|
19
|
+
|
|
20
|
+
_empty — nothing remembered yet_`})}function sr(e){let t=e.payload,n=i.getState();if(!t.success){n.addMessage({role:`assistant`,content:`❌ **Config Doctor failed**\n\n${t.error??`Unknown config error.`}`,isError:!0});return}if(!t.changed){n.addMessage({role:`assistant`,content:`✅ **Config Doctor** — active profile config is healthy.\n\n\`${t.configPath}\``});return}let r=t.changes.slice(0,40),a=[t.applied?`✅ **Config Doctor** — repaired ${t.changes.length} field(s).`:`🩺 **Config Doctor** — found ${t.changes.length} repairable field(s).`,``,...r.map(e=>`- \`${e.path}\` — ${e.action===`added`?`missing default`:`invalid shape; default required`}`)];t.changes.length>r.length&&a.push(`- _…and ${t.changes.length-r.length} more_`),a.push(``,`Config: \`${t.configPath}\``),t.applied&&t.backupPath&&a.push(`Backup: \`${t.backupPath}\``),t.applied||a.push(``,"Run `/doctor fix` to apply these repairs."),n.addMessage({role:`assistant`,content:a.join(`
|
|
21
|
+
`)})}function cr(e){let t=e.payload;if(t.error){i.getState().addMessage({role:`assistant`,content:`❌ ${t.error}`});return}let n=t.memories??[],r=t.stats,a=[`## 🧠 SAGE`];if(r){let e=r.byStatus.active??0,t=r.byStatus.stale??0,n=r.byStatus.archived??0;a.push(`**Total:** ${r.total} · Active: ${e} · Stale: ${t} · Archived: ${n} · Graph edges: ${r.edges}`);let i=Object.entries(r.byKind).filter(([,e])=>e>0).map(([e,t])=>`${e}=${t}`).join(`, `);i&&a.push(`**Kinds:** ${i}`),a.push(``)}if(n.length===0)a.push(`_No entries to display._`);else{for(let e of n.slice(0,20)){let t=e.text.length>80?`${e.text.slice(0,78)}…`:e.text,n=e.tags.length>0?e.tags.map(e=>`\`${e}\``).join(` `):``,r=e.createdAt.slice(0,10);a.push(`- \`${e.id.slice(0,12)}…\` [${e.kind}|${e.status}] ${r} — ${t}${n?` ${n}`:``}`)}n.length>20&&a.push(`_…and ${n.length-20} more_`)}a.push(``),a.push("*Use `/memory` in the TUI or build a Memory Manager panel for full editing.*"),i.getState().addMessage({role:`assistant`,content:a.join(`
|
|
22
|
+
`)})}function lr(e){let t=e.payload;if(t.error){i.getState().addMessage({role:`assistant`,content:`❌ ${t.error}`});return}if(!t.memory){i.getState().addMessage({role:`assistant`,content:`❌ Memory not found.`});return}let n=t.memory,r=n.tags.length>0?n.tags.map(e=>`\`${e}\``).join(` `):`—`,a=n.anchors.length>0?n.anchors.map(e=>e.path??e.type).join(`, `):`—`,o=[`## 🧠 Memory: \`${n.id}\``,``,`**Text:** ${n.text}`,`**Kind:** \`${n.kind}\` · **Status:** \`${n.status}\``,`**Created:** ${n.createdAt.slice(0,10)} · **Updated:** ${n.updatedAt.slice(0,10)}`,`**Importance:** ${n.importance} · **Confidence:** ${n.confidence}`,`**Tags:** ${r}`,`**Anchors:** ${a}`];i.getState().addMessage({role:`assistant`,content:o.join(`
|
|
23
|
+
`)})}function ur(e){let t=e.payload;if(t.error){i.getState().addMessage({role:`assistant`,content:`❌ Update failed: ${t.error}`});return}if(t.memory){let e=String(t.memory.id??``);i.getState().addMessage({role:`assistant`,content:`✅ Memory \`${e}\` updated.`})}}function dr(e){let t=e.payload;if(t.error){i.getState().addMessage({role:`assistant`,content:`❌ Failed to create memory: ${t.error}`});return}if(t.memory){let e=String(t.memory.id??``);i.getState().addMessage({role:`assistant`,content:`✅ Memory \`${e}\` created.`})}}function fr(e){let t=e.payload,n=i.getState();if(t.error){n.addMessage({role:`assistant`,content:`❌ Recover failed: ${t.error}`});return}if(!t.memory)return;let r=String(t.memory.id??``);if(t.noop){let e=t.activeId??r;n.addMessage({role:`assistant`,content:`ℹ️ Nothing to recover — \`${e}\` is already the active version.`});return}n.addMessage({role:`assistant`,content:`✅ Memory \`${r}\` recovered.`})}function pr(e){let t=e.payload,n=i.getState();if(t.error){n.addMessage({role:`assistant`,content:`❌ Candidate resolve failed: ${t.error}`});return}if(!t.candidate)return;let r=t.resolvedAction===`reject`?`rejected`:`accepted`;n.addMessage({role:`assistant`,content:`✅ Candidate \`${t.candidate.id}\` ${r}.`})}function mr(e){let t=e.payload,n=i.getState();if(t.error){n.addMessage({role:`assistant`,content:`❌ Backfill failed: ${t.error}`});return}let r=`examined ${t.examined??0} · recoverable ${t.recoverable??0} · recovered ${t.recovered??0}`;n.addMessage({role:`assistant`,content:t.dryRun?`ℹ️ Backfill preview (dry-run) — ${r}. Re-run with apply to write.`:`✅ Backfill applied — ${r}.`})}function hr(e){let t=e.payload;if(!t.enabled){i.getState().addMessage({role:`assistant`,content:`🎯 **Skills**
|
|
24
|
+
|
|
25
|
+
_disabled (config.features.skills = false)_`});return}let n=[`🎯 **Skills** (${t.skills.length})`,``,...t.skills.length===0?[`_none registered_`]:t.skills.map(e=>`• \`${e.name}\`${e.version?` v${e.version}`:``} _(${e.source})_ — ${e.description||e.trigger||`_no description_`}`)];t.error&&n.push(``,`⚠ ${t.error}`),i.getState().addMessage({role:`assistant`,content:n.join(`
|
|
26
|
+
`)})}function gr(e){if(!p(e))return;let t=e.payload;v.getState().setDroppedTools((t.maxTools??0)>0?t.droppedTools??0:0),i.getState().addMessage({role:`assistant`,content:[`🩺 **Runtime diagnostics**`,``,`**Provider:** \`${t.provider}\` / \`${t.model}\``,`**Mode:** \`${t.mode}\``,`**Session:** \`${t.sessionId}\``,`**CWD:** \`${t.cwd}\``,``,`**Tools:** ${t.tools.count}`,`**Messages:** ${t.messages} · **Todos:** ${t.todos}`,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out${t.usage.cacheRead?` · ${t.usage.cacheRead.toLocaleString()} cache`:``}`,``,`**Features:** memory=${t.features.memory?`✓`:`✗`} · skills=${t.features.skills?`✓`:`✗`} · modelsRegistry=${t.features.modelsRegistry?`✓`:`✗`}`].join(`
|
|
27
|
+
`)})}function _r(e){if(!p(e))return;let t=e.payload,n=Math.floor(t.elapsedMs/1e3),r=n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m ${n%60}s`:`${Math.floor(n/3600)}h ${Math.floor(n%3600/60)}m`;i.getState().addMessage({role:`assistant`,content:[`📈 **Session stats**`,``,`**Session:** \`${t.sessionId}\``,`**Provider/Model:** \`${t.provider}\` / \`${t.model}\``,`**Elapsed:** ${r}`,``,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out`,...t.cache&&t.cache.readTokens>0?[`**Cache:** ${t.cache.readTokens.toLocaleString()} read · ${t.cache.writeTokens.toLocaleString()} write · hit ratio ${(t.cache.hitRatio*100).toFixed(1)}%`]:[],`**Cost:** ${t.cost.toFixed(4)}`,``,`**Messages:** ${t.messages} · **Files read:** ${t.readFiles} · **Tools available:** ${t.tools}`,...t.sideEffectCount?[`**Side effects:** ⚠ ${t.sideEffectCount}`]:[]].join(`
|
|
28
|
+
`)})}function vr(e){if(!p(e))return;let t=e.payload;v.getState().setTodos(t.todos??[])}function yr(e){let t=e.payload;v.getState().setModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description}))),v.getState().setEnv({mode:t.activeId})}function $(e){le.getState().handleResult(e.type,e.payload)}var br={...Le,...ir,...bt,...st,...tn,...Je,...un,"config.doctor.result":sr,"session.start":e=>{Cn(e),K()},"specs.list":e=>{let t=e.payload;ce.getState().setSpecs(t.specs??[])},"specs.detail":e=>{ce.getState().setDetail(e.payload)},"sdd.board.snapshot":e=>{E.getState().setSnapshot(e.payload)},"sdd.board.list":e=>{let t=e.payload;E.getState().setBoards(t.boards??[])},"sdd.board.lifecycle_result":e=>{let t=e.payload,n=E.getState();n.setLifecycleResult({...t,at:Date.now()}),n.setDestroying(!1),t.op===`destroy`&&t.ok&&C.getState().reset()},"sdd.spec.snapshot":e=>{C.getState().setSnapshot(e.payload)},"sdd.spec.agent_text":e=>{C.getState().setAgentText(e.payload.text??``)},"sdd.spec.error":e=>{C.getState().setError(e.payload.message??`Error`)},"sdd.run.started":e=>{C.getState().setStartedRunId(e.payload.runId??null)},"goal.assess.result":e=>{let t=e.payload;se.getState().setResult({realistic:t.realistic,durationClaimed:t.durationClaimed,explanation:t.explanation,recommendedDuration:t.recommendedDuration,concerns:t.concerns,parseFailed:t.parseFailed,parseError:t.parseError,reqSeq:t.reqSeq??0})},"kanban.list":$,"kanban.get":$,"kanban.health":$,"kanban.create":$,"kanban.duplicate":$,"kanban.update":$,"kanban.delete":$,"kanban.generate":$,"kanban.snapshot":$,"kanban.taskgraph.export":$,"kanban.taskgraph.sync":$,"kanban.task.ready":$,"kanban.task.add":$,"kanban.task.split":$,"kanban.task.merge":$,"kanban.task.update":$,"kanban.task.move":$,"kanban.task.copy":$,"kanban.task.transfer":$,"kanban.task.transition":$,"kanban.task.chain":$,"kanban.task.chain.get":$,"kanban.task.claim":$,"kanban.task.release":$,"kanban.task.metric.add":$,"kanban.task.metric.update":$,"kanban.task.check.add":$,"kanban.task.check.update":$,"kanban.task.note.add":$,"kanban.task.assign":$,"kanban.task.dispatch":$,"kanban.task.remove":$,"kanban.task.get":$,"kanban.column.add":$,"kanban.column.remove":$,"kanban.run.start":$,"kanban.supervisor.status":$,"kanban.supervisor.audit":$,"kanban.task.verify":$,"kanban.task.verification_started":$,"kanban.task.verification_completed":$,"kanban.decomposition.approve":$,"kanban.decomposition.reject":$,"kanban.decomposition.resolved":$,"kanban.decomposition.applied":$,"tools.list":ar,"memory.list":or,"memory.sage.list":cr,"memory.sage.get":lr,"memory.sage.update":ur,"memory.sage.remember":dr,"memory.sage.recover":fr,"memory.sage.candidateResolve":pr,"memory.sage.backfillRecoverable":mr,"skills.list":hr,"diag.get":gr,"stats.get":_r,side_effects:e=>{if(!p(e))return;let t=e.payload;ae.getState().setSideEffects(t.sideEffects??[])},"todos.updated":vr,"todos.cleared":e=>{p(e)&&v.getState().setTodos([])},"agent.timeline.message":e=>{if(!p(e))return;let t=e.payload;A.getState().pushAgentTimelineEntry({subagentId:t.subagentId,agentName:t.agentName,content:t.content,kind:t.kind,iteration:t.iteration,ts:t.ts,toolName:t.toolName,toolOk:t.toolOk,costUsd:t.costUsd})},"agent.status_changed":e=>{if(!p(e))return;let t=e.payload;A.getState().pushAgentTimelineEntry({subagentId:t.subagentId,agentName:t.agentName,content:t.summary??t.status,kind:`status`,iteration:0,ts:t.ts,status:t.status})},"tasks.updated":e=>{},"plan.updated":e=>{},"modes.list":yr,"session.checkpoints":e=>{},"process.list":e=>{},"projects.list":e=>{},"projects.added":e=>{},"projects.selected":e=>{},"tool.disabled":e=>{},"tool.enabled":e=>{},"provider.response":e=>{kn(e)},"tool.progress":e=>{He(e);let t=b(e),n=y.getState();for(let e of t)n.recordFileEvent(e)},"tool.started":e=>{Ve(e);let t=b(e);t.length>0&&y.getState().startActivities(t)},"tool.executed":e=>{Ue(e);let t=e.payload;t.id&&y.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.tool_started":e=>{d(e);let t=b(e);t.length>0&&y.getState().startActivities(t)},"codemap.tool_executed":e=>{d(e);let t=e.payload;t.id&&y.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.file_event":e=>{let t=b(e),n=y.getState();for(let e of t)n.recordFileEvent(e)},"codemap.index_updated":e=>{let t=e.payload;fe.getState().notifyIndexUpdated(t?.at)},"file.saved":e=>{let t=b(e);if(t.length>0){let e=y.getState();for(let n of t)e.recordFileEvent(n)}},"memory.event":e=>{Ut(e);let t=b(e);if(t.length>0){let e=y.getState();for(let n of t)e.recordActivity(n)}}};function xr(e){let t=[];for(let[n,r]of Object.entries(br))r&&t.push(e.on(n,t=>{e.consumeSuppressedChatEcho(n)||r(t)}));return()=>{for(let e of t)e()}}function Sr(){let{autoConnect:e,wsUrl:t}=S(),n=S(e=>e.setWsStatus);(0,N.useEffect)(()=>{if(!e)return;ye();let r=_(t),i=!1,a=r.onStatus(e=>{i||n(e)});r.connect().then(()=>{i||r.getPrefs()}).catch(e=>{i||console.warn(JSON.stringify({level:`warn`,event:`webui.ws_connection_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))});let o=xr(r);return()=>{i=!0,o(),a()}},[e,t,n])}function Cr(){let{wsUrl:e}=S(),t=_(e),n=(0,N.useCallback)((e,n)=>t.isConnected?t.sendMessage(e,n):null,[t]),r=(0,N.useCallback)(()=>t.sendAbort(),[t]),i=(0,N.useCallback)(e=>t.sendMailboxMessage(e),[t]),{hideConfirm:a}=c(),o=(0,N.useCallback)((e,n)=>{t.sendConfirm(e,n),a()},[t,a]),s=(0,N.useCallback)((e,n)=>t.switchModel(e,n),[t]),l=(0,N.useCallback)(()=>t.listProviders(),[t]),u=(0,N.useCallback)(e=>t.listProviderModels(e),[t]),d=(0,N.useCallback)(()=>t.listSavedProviders(),[t]),f=(0,N.useCallback)((e,n,r)=>t.addKey(e,n,r),[t]),p=(0,N.useCallback)((e,n,r)=>t.updateKey(e,n,r),[t]),m=(0,N.useCallback)((e,n)=>t.deleteKey(e,n),[t]),h=(0,N.useCallback)((e,n)=>t.setActiveKey(e,n),[t]),g=(0,N.useCallback)((e,n,r,i,a,o)=>t.addProvider(e,n,r,i,a,o),[t]),v=(0,N.useCallback)(e=>t.removeProvider(e),[t]),y=(0,N.useCallback)(e=>{te.getState().setLoading(!0),t.listSessions(e)},[t]),b=(0,N.useCallback)(e=>t.deleteSession(e),[t]),ee=(0,N.useCallback)((e,n)=>{te.getState().updateEntryName(e,n),t.renameSession(e,n)},[t]),x=(0,N.useCallback)(e=>t.resumeSessionById(e),[t]),C=(0,N.useCallback)(()=>t.saveSession(),[t]),ne=(0,N.useCallback)(e=>t.listTools(e),[t]),re=(0,N.useCallback)(e=>t.listMemory(e),[t]),ie=(0,N.useCallback)(e=>t.listSageMemories(e),[t]),ae=(0,N.useCallback)((e,n)=>t.listSageMemoriesPage(e,n),[t]),w=(0,N.useCallback)((e,n)=>t.getSage(e,n),[t]),oe=(0,N.useCallback)((e,n,r)=>t.getSageGraph(e,n,r),[t]),se=(0,N.useCallback)((e,n,r)=>t.updateSage(e,n,r),[t]),T=(0,N.useCallback)((e,n)=>t.deleteSage(e,n),[t]),E=(0,N.useCallback)((e,n)=>t.rememberSage(e,n),[t]),D=(0,N.useCallback)((e,n)=>t.findMemoriesForFile(e,n),[t]),ce=(0,N.useCallback)((e,n)=>t.recoverSage(e,n),[t]),O=(0,N.useCallback)((e,n)=>t.resolveMemoryCandidate(e,n),[t]),k=(0,N.useCallback)((e,n)=>t.backfillRecoverable(e,n),[t]),le=(0,N.useCallback)(e=>t.listSkills(e),[t]),A=(0,N.useCallback)(e=>t.getDiag(e),[t]),j=(0,N.useCallback)(e=>t.getStats(e),[t]),ue=(0,N.useCallback)(()=>t.getPlan(),[t]),de=(0,N.useCallback)(()=>t.listModes(),[t]),fe=(0,N.useCallback)(e=>t.switchMode(e),[t]),M=(0,N.useCallback)(()=>t.listContextModes(),[t]),pe=(0,N.useCallback)(e=>t.switchContextMode(e),[t]),P=(0,N.useCallback)(e=>t.createContextMode(e),[t]),F=(0,N.useCallback)((e,n)=>t.updateContextMode(e,n),[t]),I=(0,N.useCallback)(e=>t.deleteContextMode(e),[t]),L=(0,N.useCallback)(()=>t.repairContext(),[t]),me=(0,N.useCallback)((e,n)=>t.refineModel(e,n),[t]),R=(0,N.useCallback)(e=>t.switchAutonomy(e),[t]),z=(0,N.useCallback)(e=>t.updatePrefs(e),[t]);return{client:t,sendMessage:n,sendAbort:r,sendMailboxMessage:i,sendConfirm:o,switchModel:s,listProviders:l,listProviderModels:u,listSavedProviders:d,addKey:f,updateKey:p,deleteKey:m,setActiveKey:h,addProvider:g,removeProvider:v,listSessions:y,deleteSession:b,renameSession:ee,resumeSession:x,saveSession:C,listTools:ne,listMemory:re,listSageMemories:ie,listSageMemoriesPage:ae,getSage:w,getSageGraph:oe,updateSage:se,deleteSage:T,rememberSage:E,findMemoriesForFile:D,recoverSage:ce,resolveMemoryCandidate:O,backfillRecoverable:k,listSkills:le,getDiag:A,getStats:j,getPlan:ue,listModes:de,switchMode:fe,listContextModes:M,switchContextMode:pe,createContextMode:P,updateContextMode:F,deleteContextMode:I,repairContext:L,toggleGoalAutonomous:(0,N.useCallback)(e=>{t.send({type:`goal.toggleAutonomous`,payload:{autonomous:e}})},[t]),startGoal:(0,N.useCallback)((e,n,r=!0)=>{t.send({type:`goal.start`,payload:{title:e,phases:n,autonomous:r}})},[t]),pauseGoal:(0,N.useCallback)(()=>{t.send({type:`goal.pause`,payload:{}})},[t]),resumeGoal:(0,N.useCallback)(()=>{t.send({type:`goal.resume`,payload:{}})},[t]),stopGoal:(0,N.useCallback)(()=>{t.send({type:`goal.stop`,payload:{}})},[t]),selectGoal:(0,N.useCallback)(e=>{t.send({type:`goal.selectPhase`,payload:{phaseId:e}})},[t]),switchAutonomy:R,updatePrefs:z,refineModel:me}}export{Y as a,Ae as c,jt as i,je as l,Sr as n,Ne as o,dn as r,H as s,Cr as t,P as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ha as e,ma as t}from"./vendor-BTTkQ9Tn.js";function n(...n){return t(e(n))}function r(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}export{r as n,n as t};
|