@wrongstack/webui 0.319.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AgentRosterView-B_J6SvVF.js +12 -0
- package/dist/assets/AnalyticsDashboard-BgZiiiDb.js +1 -0
- package/dist/assets/AudienceMemoryPanel-CPuksIMN.js +3 -0
- package/dist/assets/ChangesView-CmZeNwbw.js +1 -0
- package/dist/assets/ChimeraReviewsView-CpfSkgQ2.js +1 -0
- package/dist/assets/ChronicleDashboard-B6lhZGjz.js +1 -0
- package/dist/assets/CodeEditor-Daz1yqjF.js +2 -0
- package/dist/assets/CodeMap-D-H9FNUJ.js +1 -0
- package/dist/assets/ConfirmModal-CjsZbvo3.js +1 -0
- package/dist/assets/CronJobsPanel-DGKW_zwc.js +1 -0
- package/dist/assets/{DeadCodeScanPanel-DooqnEMF.js → DeadCodeScanPanel-Cn5bSfLv.js} +1 -1
- package/dist/assets/DebugDashboard-Uh9QLbEk.js +1 -0
- package/dist/assets/DesignGalleryView-Da1QtI5b.js +1 -0
- package/dist/assets/GoalView-BgVxzzzS.js +1 -0
- package/dist/assets/KanbanView-_JvZKFyI.js +3 -0
- package/dist/assets/MailboxDetailView-26bVSSbU.js +1 -0
- package/dist/assets/MemoryDrawer-C5sEdVvj.js +1 -0
- package/dist/assets/MemoryManager-BqWzNt8w.js +1 -0
- package/dist/assets/ModelPicker-DqRzzv5J.js +1 -0
- package/dist/assets/ProcessMonitor-ygFLD5zk.js +1 -0
- package/dist/assets/PromptJournalView-B65KxlYi.js +1 -0
- package/dist/assets/QueuePanel-CJlIV0pX.js +1 -0
- package/dist/assets/RefreshDebugView-CNovrSAn.js +1 -0
- package/dist/assets/RequirementIntakeView-BnrQSVE_.js +1 -0
- package/dist/assets/SageTabs-CJqOqiY7.js +2 -0
- package/dist/assets/SddFlowGraph-CNOyn5N9.js +1 -0
- package/dist/assets/SddHub-mFjsa_Zl.js +2 -0
- package/dist/assets/SessionInspectView-MEmxIEzB.js +1 -0
- package/dist/assets/SessionList-DmcQJmzw.js +1 -0
- package/dist/assets/SessionsDashboard-BCYViJlx.js +1 -0
- package/dist/assets/SetupScreen-BwnSJt7v.js +1 -0
- package/dist/assets/SkillDetailView-ebz2dRUQ.js +3 -0
- package/dist/assets/TechStackView-DESDpUDA.js +2 -0
- package/dist/assets/TerminalPanel-BiWnldbB.js +1 -0
- package/dist/assets/{activity-C7dkJqBU.js → activity-87Kr1xrI.js} +2 -2
- package/dist/assets/{activity-D1rp3dH9.js → activity-CCW2-qSA.js} +2 -2
- package/dist/assets/activity-CXLMCm4J.js +10 -0
- package/dist/assets/{activity-BU6MNvBJ.js → activity-CmzV075e.js} +2 -2
- package/dist/assets/{activity-C_18AaRY.js → activity-D2D6_ljD.js} +2 -2
- package/dist/assets/{activity-CpnSsE22.js → activity-Dt348P4m.js} +2 -2
- package/dist/assets/{activity-hTPcI4q1.js → activity-FxWZooaS.js} +2 -2
- package/dist/assets/button-rqi3MczV.js +1 -0
- package/dist/assets/chat-store-BcfvHUUj.js +1 -0
- package/dist/assets/{codemap-activity-store-Br4b57a0.js → codemap-activity-store-CWi-Yd9Z.js} +1 -1
- package/dist/assets/codemap-index-store-3M7F08K_.js +1 -0
- package/dist/assets/dialog-xJxaQi60.js +1 -0
- package/dist/assets/empty-state-BxilAuC3.js +1 -0
- package/dist/assets/i18n-DBqM1FUM.js +2 -0
- package/dist/assets/index-TDhvFXb0.js +144 -0
- package/dist/assets/input-ClZR-odw.js +1 -0
- package/dist/assets/{mailbox-store-B9DIvRgo.js → mailbox-store-yydAVjyj.js} +1 -1
- package/dist/assets/{markdown-Kp5uSgOw.js → markdown-BP6Z3HKc.js} +24 -24
- package/dist/assets/{monaco-BCqJp2xW.js → monaco-_kWjHrlo.js} +204 -204
- package/dist/assets/{monaco-theme-CR1QvFi2.js → monaco-theme-Dmx6JuoU.js} +1 -1
- package/dist/assets/react-core-BNmTiJ-I.js +9 -0
- package/dist/assets/{roster-ws-BQUI8QuW.js → roster-ws-n_N7K9tX.js} +1 -1
- package/dist/assets/{settings-BGvRM3vJ.js → settings-B1vpPbTt.js} +1 -1
- package/dist/assets/{settings-D-LlBmzO.js → settings-BZnHCnGT.js} +1 -1
- package/dist/assets/{settings-1o1gooaL.js → settings-BcB2BIE2.js} +1 -1
- package/dist/assets/{settings-Cy_xp4Jt.js → settings-D9AQ5wLT2.js} +1 -1
- package/dist/assets/{settings-BV8EFmpH.js → settings-DiVpBZQ2.js} +1 -1
- package/dist/assets/{settings-nWMBX3xS.js → settings-DwbEJvxt.js} +1 -1
- package/dist/assets/settings-WuyKla3E.js +1 -0
- package/dist/assets/setup-B-xPcuTH.js +1 -0
- package/dist/assets/setup-B9oerXTs.js +1 -0
- package/dist/assets/setup-BWlr07i_.js +1 -0
- package/dist/assets/setup-CQ4-lz5u.js +1 -0
- package/dist/assets/setup-Cmq_aIjv.js +1 -0
- package/dist/assets/setup-DK5JTuqw.js +1 -0
- package/dist/assets/setup-qooXjj4V.js +1 -0
- package/dist/assets/shared-D8dubdNH.js +1 -0
- package/dist/assets/stores-Cfei1ViB.js +7 -0
- package/dist/assets/ui-store-CLXDcLPI.js +1 -0
- package/dist/assets/useWebSocket-AYEcpb1U.js +27 -0
- package/dist/assets/{utils-DQ9Exx8j.js → utils-BpBOwXlT.js} +1 -1
- package/dist/assets/vector-memory-panel-BwPPCCbh.js +1 -0
- package/dist/assets/{vendor-BMdWcCR4.css → vendor-BShi5_Dg.css} +1 -1
- package/dist/assets/vendor-BshlG0z-.js +125 -0
- package/dist/assets/view-navigation-CvWJeGMc.js +1 -0
- package/dist/assets/vite-preload-Czpn1I53.js +1 -0
- package/dist/assets/ws-client-C_IqS0t4.js +22 -0
- package/dist/assets/xyflow-BNn76cbK.js +7 -0
- package/dist/assets/xyflow-DLioOiRN.css +1 -0
- package/dist/components/AgentOfficeView/AgentLane.d.ts +10 -0
- package/dist/components/AgentOfficeView/BreakRoom.d.ts +10 -0
- package/dist/components/AgentOfficeView/ClientOfficeHeader.d.ts +6 -0
- package/dist/components/AgentOfficeView/OfficeBriefing.d.ts +8 -0
- package/dist/components/AgentOfficeView/parcels.d.ts +27 -0
- package/dist/components/AgentOfficeView.d.ts +2 -10
- package/dist/components/ChatInput/chat-input-bars.d.ts +30 -0
- package/dist/components/ChatInput/session-draft.d.ts +46 -0
- package/dist/components/ChatInput/use-chat-keydown.d.ts +21 -0
- package/dist/components/ChatInput/use-chat-submit.d.ts +40 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts +1 -1
- package/dist/components/ChatInput/use-speech-recognition.d.ts +1 -1
- package/dist/components/ChatInput.d.ts +3 -3
- package/dist/components/DependencyGraph.d.ts +1 -1
- package/dist/components/DiffView.d.ts +1 -1
- package/dist/components/FileActivityDrawer/ContextTab.d.ts +21 -0
- package/dist/components/FileActivityDrawer/LogsTab.d.ts +13 -0
- package/dist/components/FileActivityDrawer/OverviewTab.d.ts +14 -0
- package/dist/components/FileActivityDrawer/SkeletonTab.d.ts +5 -0
- package/dist/components/FileActivityDrawer/types.d.ts +58 -0
- package/dist/components/FileActivityDrawer.d.ts +1 -40
- package/dist/components/MainViewSlot.d.ts +16 -0
- package/dist/components/MemoryManager/DeleteMemoryDialog.d.ts +3 -2
- package/dist/components/MessageBubble/ToolLedgerCard.d.ts +1 -1
- package/dist/components/SettingsPanel/brain-section-options.d.ts +6 -0
- package/dist/components/SetupScreen/CustomProviderSection.d.ts +1 -1
- package/dist/components/ViewRouter.d.ts +12 -4
- package/dist/components/agents/AgentRosterCard.d.ts +1 -1
- package/dist/components/context-editor/ContextWindowEditor.d.ts +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +1 -1
- package/dist/components/vector-memory-panel/index.d.ts +1 -1
- package/dist/components/view-registry.d.ts +73 -0
- package/dist/hooks/useServerMessage.d.ts +71 -0
- package/dist/hooks/ws-handlers/session-context-handlers.d.ts +20 -0
- package/dist/index.css +788 -788
- package/dist/index.html +25 -25
- package/dist/index.js +48077 -45298
- package/dist/lib/platform.d.ts +40 -0
- package/dist/lib/view-navigation.d.ts +27 -2
- package/dist/lib/ws-client-auth.d.ts +17 -0
- package/dist/lib/ws-client-connection.d.ts +26 -0
- package/dist/lib/ws-client-contracts.d.ts +10 -0
- package/dist/lib/ws-client-echo.d.ts +46 -0
- package/dist/lib/ws-client-queue.d.ts +18 -0
- package/dist/lib/ws-client-session-methods.d.ts +54 -0
- package/dist/lib/ws-client-swap.d.ts +53 -0
- package/dist/lib/ws-client.d.ts +40 -71
- package/dist/manifest.json +1 -1
- package/dist/stores/context-editor-store.d.ts +1 -1
- package/dist/stores/council-log-store.d.ts +6 -0
- package/dist/stores/index.d.ts +2 -2
- package/dist/stores/session-tab-store.d.ts +8 -0
- package/dist/stores/types.d.ts +10 -1
- package/dist/stores/ui-store-chrome.d.ts +12 -0
- package/dist/stores/ui-store-persist.d.ts +4 -0
- package/dist/stores/ui-store-types.d.ts +379 -0
- package/dist/stores/ui-store.d.ts +7 -467
- package/dist/stores/viz-graph-helpers.d.ts +18 -0
- package/dist/stores/viz-pipeline.d.ts +7 -0
- package/dist/stores/viz-store.d.ts +3 -123
- package/dist/stores/viz-types.d.ts +124 -0
- package/dist/types/brain.d.ts +3 -0
- package/dist/types/client-message.d.ts +8 -0
- package/dist/types/runtime.d.ts +7 -0
- package/dist/types/sage.d.ts +7 -0
- package/dist/types/server-message-chimera.d.ts +161 -0
- package/dist/types/server-message-files.d.ts +195 -0
- package/dist/types/server-message-fleet.d.ts +148 -0
- package/dist/types/server-message-mcp.d.ts +199 -0
- package/dist/types/server-message-system.d.ts +399 -0
- package/dist/types/server-message.d.ts +12 -1098
- package/dist/types/skills-design.d.ts +7 -0
- package/dist/types/system.d.ts +16 -0
- package/package.json +9 -9
- package/dist/assets/AgentRosterView-BVpIFQwi.js +0 -9
- package/dist/assets/AnalyticsDashboard-nqlWJi6M.js +0 -1
- package/dist/assets/AudienceMemoryPanel-BT6C4Jkw.js +0 -3
- package/dist/assets/ChangesView-CN7NWDeV.js +0 -1
- package/dist/assets/ChimeraReviewsView-BNQE5kRx.js +0 -1
- package/dist/assets/ChronicleDashboard-BWMkG_hu.js +0 -1
- package/dist/assets/CodeEditor-DZ2k-Mz5.js +0 -2
- package/dist/assets/CodeMap-CLOuNLqN.js +0 -1
- package/dist/assets/ConfirmModal-B6BGiiN8.js +0 -1
- package/dist/assets/CronJobsPanel-CsMIoWVQ.js +0 -1
- package/dist/assets/DebugDashboard-C0tmxxV8.js +0 -1
- package/dist/assets/DesignGalleryView-lc-XRmVG.js +0 -1
- package/dist/assets/GoalView-BuYUc4OB.js +0 -1
- package/dist/assets/KanbanView-DQK6adut.js +0 -3
- package/dist/assets/MailboxDetailView-CBV3-Hf2.js +0 -1
- package/dist/assets/MemoryDrawer-rPf-1Ulk.js +0 -1
- package/dist/assets/MemoryManager-B_ZJhOqq.js +0 -1
- package/dist/assets/ModelPicker-CLs0qQgg.js +0 -1
- package/dist/assets/OfficeMapPanel-DnbdkXL1.js +0 -4
- package/dist/assets/ProcessMonitor-CHNNqCk9.js +0 -1
- package/dist/assets/PromptJournalView-Biu4DknM.js +0 -1
- package/dist/assets/QueuePanel-CzTXq6j4.js +0 -1
- package/dist/assets/RefreshDebugView-d9iU3sFX.js +0 -1
- package/dist/assets/RequirementIntakeView-g9dzUTVw.js +0 -1
- package/dist/assets/SageTabs-Bw6PDwy3.js +0 -2
- package/dist/assets/SddFlowGraph-Bj_Aqq5B.js +0 -1
- package/dist/assets/SddHub-Cdow0Exb.js +0 -2
- package/dist/assets/SessionInspectView-je_xLISf.js +0 -1
- package/dist/assets/SessionList-4y1uuB-y.js +0 -1
- package/dist/assets/SessionsDashboard-DkaNF5lx.js +0 -1
- package/dist/assets/SetupScreen-DWzbXvmU.js +0 -1
- package/dist/assets/SkillDetailView-Bjq8GkDB.js +0 -3
- package/dist/assets/SpecsView-ok8HZ8ws.js +0 -1
- package/dist/assets/TechStackView-CQ9AdoBa.js +0 -2
- package/dist/assets/TerminalPanel-cbM6oQWQ.js +0 -1
- package/dist/assets/activity-CtTKsSX6.js +0 -10
- package/dist/assets/button-DNyYztcH.js +0 -1
- package/dist/assets/chat-store-oW_-zcJP.js +0 -1
- package/dist/assets/codemap-index-store-tSmlp7Uz.js +0 -1
- package/dist/assets/dialog-BTHxOi5z.js +0 -1
- package/dist/assets/empty-state-DBQN80mK.js +0 -1
- package/dist/assets/i18n-D06uU1PM.js +0 -2
- package/dist/assets/index-Cwjer17r.js +0 -144
- package/dist/assets/input-CTGeYzNe.js +0 -1
- package/dist/assets/settings-Ci_RMpCQ.js +0 -1
- package/dist/assets/setup-B0D9CK3-.js +0 -1
- package/dist/assets/setup-B58YVaGU.js +0 -1
- package/dist/assets/setup-C2H9Uv0Q.js +0 -1
- package/dist/assets/setup-CzM4dkkU.js +0 -1
- package/dist/assets/setup-Di56FlHP.js +0 -1
- package/dist/assets/setup-Dwt58Mpz.js +0 -1
- package/dist/assets/setup-DznVdlJy.js +0 -1
- package/dist/assets/shared-CLfD85oZ.js +0 -1
- package/dist/assets/stores-C7Vvce-6.js +0 -7
- package/dist/assets/ui-store-Dm7ujR9u.js +0 -1
- package/dist/assets/useWebSocket-9lfOsI_r.js +0 -27
- package/dist/assets/vector-memory-panel-B4bQhdHe.js +0 -1
- package/dist/assets/vendor-enc0q-Va.js +0 -139
- package/dist/assets/view-navigation-wOKaM_Rf.js +0 -1
- package/dist/assets/ws-client-DtTZLD8e.js +0 -22
- /package/dist/assets/{OfficeMapPanel-Ce7myLNH.css → AgentRosterView-Ce7myLNH.css} +0 -0
|
@@ -1,482 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
* 'worktrees' and 'officemap' were retired from the ActivityBar: worktree
|
|
7
|
-
* lanes now live as a tab inside the Changes panel, the fleet map as a tab
|
|
8
|
-
* inside the Agent Roster view. */
|
|
9
|
-
export declare function coerceActivity(value: unknown): Activity;
|
|
10
|
-
/** All valid currentView values. Kept in sync with the union on UIState. */
|
|
11
|
-
declare const VIEWS: readonly ['chat', 'settings', 'memory', 'roster', 'context', 'goal', 'kanban', 'sddhub', 'files', 'changes', 'sessions', 'session-inspect', 'setup', 'skill', 'mailbox', 'debug', 'design-gallery', 'refresh-debug', 'analytics', 'codemap', 'techstack', 'chronicle', 'intake', 'deadcode', 'prompts', 'chimera'];
|
|
12
|
-
type View = (typeof VIEWS)[number];
|
|
13
|
-
/** Single source of truth for the secondary panel width bounds. */
|
|
14
|
-
export declare const SIDEBAR_MIN_WIDTH = 240;
|
|
15
|
-
export declare const SIDEBAR_MAX_WIDTH = 560;
|
|
16
|
-
export declare const SIDEBAR_DEFAULT_WIDTH = 304;
|
|
17
|
-
/** Sections of the WorkspaceDock strip above the chat transcript. */
|
|
18
|
-
export type DockSection = 'goal' | 'goal-state' | 'fleet' | 'work' | 'worktrees' | 'collab';
|
|
19
|
-
export type WorkDashboardTab = 'todos' | 'tasks' | 'plan';
|
|
20
|
-
/**
|
|
21
|
-
* Tabs of the global right inspector drawer.
|
|
22
|
-
*
|
|
23
|
-
* `council` is the live Brain council panel log — the most expensive Brain
|
|
24
|
-
* tier (one provider call per seat) and, until it got a tab, the only one with
|
|
25
|
-
* no observable surface at all.
|
|
26
|
-
*/
|
|
27
|
-
export type InspectorTab = 'fleet' | 'agents' | 'sideEffects' | 'council';
|
|
28
|
-
export type InspectorTarget = {
|
|
29
|
-
kind: 'fleet';
|
|
30
|
-
tab?: InspectorTab | undefined;
|
|
31
|
-
} | {
|
|
32
|
-
kind: 'agent';
|
|
33
|
-
agentId: string;
|
|
34
|
-
} | {
|
|
35
|
-
kind: 'sideEffects';
|
|
36
|
-
} | {
|
|
37
|
-
kind: 'council';
|
|
38
|
-
} | {
|
|
39
|
-
kind: 'task';
|
|
40
|
-
taskId: string;
|
|
41
|
-
boardId?: string | undefined;
|
|
42
|
-
title?: string | undefined;
|
|
43
|
-
};
|
|
44
|
-
interface SessionChromeState {
|
|
45
|
-
sidebarOpen: boolean;
|
|
46
|
-
activeActivity: Activity;
|
|
47
|
-
currentView: View;
|
|
48
|
-
inspectSessionId: string | null;
|
|
49
|
-
searchOpen: boolean;
|
|
50
|
-
searchQuery: string;
|
|
51
|
-
searchActiveMessageId: string | null;
|
|
52
|
-
scrollTarget: UIState['scrollTarget'];
|
|
53
|
-
modelSwitcherOpen: boolean;
|
|
54
|
-
promptLibraryOpen: boolean;
|
|
55
|
-
promptInsertRequest: string | null;
|
|
56
|
-
refinePanel: UIState['refinePanel'];
|
|
57
|
-
draftInput: string;
|
|
58
|
-
draftImages: ImageAttachment[];
|
|
59
|
-
processMonitorOpen: boolean;
|
|
60
|
-
queuePanelOpen: boolean;
|
|
61
|
-
cronJobsOpen: boolean;
|
|
62
|
-
sideContextBreakdownOpen: boolean;
|
|
63
|
-
terminalOpen: boolean;
|
|
64
|
-
dockSection: DockSection | null;
|
|
65
|
-
workDashboardTab: WorkDashboardTab;
|
|
66
|
-
inspectorOpen: boolean;
|
|
67
|
-
inspectorTab: InspectorTab;
|
|
68
|
-
inspectorTarget: InspectorTarget | null;
|
|
69
|
-
inspectorFocusedAgentId: string | null;
|
|
70
|
-
agentRosterActiveTab: 'live' | 'officemap' | 'catalog' | 'learning' | 'memory' | 'customize';
|
|
71
|
-
changesPanelTab: 'changes' | 'worktrees';
|
|
72
|
-
dockCustomizeOpen: boolean;
|
|
73
|
-
skillsState: UIState['skillsState'];
|
|
74
|
-
selectedMailMessage: MailboxMessage | null;
|
|
75
|
-
scrollPositions: Record<string, number>;
|
|
76
|
-
chatSwitcherOpen: boolean;
|
|
77
|
-
chatCheckpointOpen: boolean;
|
|
78
|
-
chatMemoryPanelOpen: boolean;
|
|
79
|
-
chatContextBreakdownOpen: boolean;
|
|
80
|
-
chatContextEditorOpen: boolean;
|
|
81
|
-
chatToolStatsOpen: boolean;
|
|
82
|
-
chatInputCollapsed: boolean;
|
|
83
|
-
}
|
|
84
|
-
interface UIState {
|
|
85
|
-
sidebarOpen: boolean;
|
|
86
|
-
/** Which activity icon is selected in the ActivityBar — controls secondary panel content. */
|
|
87
|
-
activeActivity: Activity;
|
|
88
|
-
settingsOpen: boolean;
|
|
89
|
-
currentView: View;
|
|
90
|
-
showConfirmDialog: boolean;
|
|
91
|
-
confirmInfo: {
|
|
92
|
-
id: string;
|
|
93
|
-
toolName: string;
|
|
94
|
-
input: unknown;
|
|
95
|
-
suggestedPattern: string;
|
|
96
|
-
decisionSource?: string | undefined;
|
|
97
|
-
riskTier?: 'safe' | 'standard' | 'destructive' | undefined;
|
|
98
|
-
boundaryReason?: string | undefined;
|
|
99
|
-
} | null;
|
|
100
|
-
paletteOpen: boolean;
|
|
101
|
-
shortcutsOpen: boolean;
|
|
102
|
-
searchOpen: boolean;
|
|
103
|
-
searchQuery: string;
|
|
104
|
-
searchActiveMessageId: string | null;
|
|
105
|
-
/** Imperative "scroll the virtualized chat list to this message" request.
|
|
106
|
-
* The chat list is virtualized, so an off-screen message has no DOM node to
|
|
107
|
-
* scrollIntoView — SearchOverlay sets this and ChatView consumes it by
|
|
108
|
-
* mapping the id to a VList row index and calling scrollToIndex. The nonce
|
|
109
|
-
* lets the same id be re-requested (e.g. Enter on the same hit). */
|
|
110
|
-
scrollTarget: {
|
|
111
|
-
id: string;
|
|
112
|
-
nonce: number;
|
|
113
|
-
} | null;
|
|
114
|
-
promptHistory: string[];
|
|
115
|
-
sidebarWidth: number;
|
|
116
|
-
pinnedIds: string[];
|
|
117
|
-
compactMode: boolean;
|
|
118
|
-
modelSwitcherOpen: boolean;
|
|
119
|
-
favoriteSessionIds: string[];
|
|
120
|
-
sessionNicknames: Record<string, string>;
|
|
121
|
-
fileExplorerWidth: number;
|
|
122
|
-
/** When true, free-text prompts are run through the prompt refiner before sending. */
|
|
123
|
-
refineEnabled: boolean;
|
|
124
|
-
/** WorkspaceDock section shown in the right inspector. Null = no dock detail open. */
|
|
125
|
-
dockSection: DockSection | null;
|
|
126
|
-
/** Active tab in the Work dock section. Mirrors TUI F5/F6 panel jumps. */
|
|
127
|
-
workDashboardTab: WorkDashboardTab;
|
|
128
|
-
/** Which session the global dock/work projection currently describes. */
|
|
129
|
-
chromeSessionId: string | null;
|
|
130
|
-
/** Per-session screen projection, parked when switching tabs. */
|
|
131
|
-
chromeBySession: Record<string, SessionChromeState>;
|
|
132
|
-
/** Dock chips the user has explicitly hidden via the customization menu.
|
|
133
|
-
* Empty = all chips visible (subject to each chip's own data condition).
|
|
134
|
-
* Mirrors the TUI's F12 status-line chip picker. */
|
|
135
|
-
hiddenChips: DockSection[];
|
|
136
|
-
/** Controlled open state for the dock chip customization menu. */
|
|
137
|
-
dockCustomizeOpen: boolean;
|
|
138
|
-
/** @deprecated Compatibility field; Fleet now opens in the global inspector. */
|
|
139
|
-
fleetMonitorOpen: boolean;
|
|
140
|
-
/** @deprecated Compatibility field; Agents now opens in the global inspector. */
|
|
141
|
-
agentsMonitorOpen: boolean;
|
|
142
|
-
/** Global right inspector drawer open (non-modal overlay on desktop). */
|
|
143
|
-
inspectorOpen: boolean;
|
|
144
|
-
/** Active tab inside the global right inspector drawer. */
|
|
145
|
-
inspectorTab: InspectorTab;
|
|
146
|
-
/** Target routing descriptor for the universal inspector drawer. */
|
|
147
|
-
inspectorTarget: InspectorTarget | null;
|
|
148
|
-
/** Agent ID to focus when opening the inspector on the agents tab. Cleared on read. */
|
|
149
|
-
inspectorFocusedAgentId: string | null;
|
|
150
|
-
/** Subagent whose full transcript currently replaces the main chat pane
|
|
151
|
-
* (agent tabs above the transcript). Null = leader chat. Transient — never
|
|
152
|
-
* persisted; ChatView auto-clears it when the focused agent leaves the
|
|
153
|
-
* fleet roster (removed, cleared, session stop). */
|
|
154
|
-
subagentChatFocusId: string | null;
|
|
155
|
-
/** Which session the flat `subagentChatFocusId` describes. */
|
|
156
|
-
subagentChatFocusSessionId: string | null;
|
|
157
|
-
/** Process Monitor overlay — triggered by /kill slash command. */
|
|
158
|
-
processMonitorOpen: boolean;
|
|
159
|
-
/** Queue Panel overlay — triggered by /queue slash command. */
|
|
160
|
-
queuePanelOpen: boolean;
|
|
161
|
-
/** Cron Jobs overlay — triggered by /cron slash command. */
|
|
162
|
-
cronJobsOpen: boolean;
|
|
163
|
-
/** Session ID currently being inspected (session-inspect view). */
|
|
164
|
-
inspectSessionId: string | null;
|
|
165
|
-
/** Integrated terminal bottom-dock — toggled by Ctrl+` or /terminal. */
|
|
166
|
-
terminalOpen: boolean;
|
|
167
|
-
/** Monotonic signal consumed by TerminalPanel to create another PTY tab. */
|
|
168
|
-
terminalCreateNonce: number;
|
|
169
|
-
agentRosterActiveTab: 'live' | 'officemap' | 'catalog' | 'learning' | 'memory' | 'customize';
|
|
170
|
-
setAgentRosterActiveTab: (tab: 'live' | 'officemap' | 'catalog' | 'learning' | 'memory' | 'customize') => void;
|
|
171
|
-
/** Active tab inside the Changes side panel. Worktree lanes moved from the
|
|
172
|
-
* ActivityBar into this panel (kept in the store so shortcuts, slash
|
|
173
|
-
* commands and the desktop bridge can deep-link to the Worktrees tab). */
|
|
174
|
-
changesPanelTab: 'changes' | 'worktrees';
|
|
175
|
-
setChangesPanelTab: (tab: 'changes' | 'worktrees') => void;
|
|
176
|
-
/** Persisted Settings panel scroll position and active category tab so the user
|
|
177
|
-
* returns to the exact location after navigating away and back. */
|
|
178
|
-
settingsActiveTab: string;
|
|
179
|
-
/** Generic per-view scroll positions — keyed by view name, restored on remount. */
|
|
180
|
-
scrollPositions: Record<string, number>;
|
|
181
|
-
/** In-memory chat input draft — survives view navigation (e.g. Settings → Chat) but
|
|
182
|
-
* is intentionally NOT persisted to localStorage, so it does not reappear on a
|
|
183
|
-
* fresh page load or when starting a new session. */
|
|
184
|
-
draftInput: string;
|
|
185
|
-
/** Pending image attachments mirroring the input draft (see draftInput):
|
|
186
|
-
* survives view navigation into a subagent transcript, never persisted,
|
|
187
|
-
* cleared on submit via clearPendingImages → setDraftImages([]). */
|
|
188
|
-
draftImages: ImageAttachment[];
|
|
189
|
-
setDraftInput: (text: string) => void;
|
|
190
|
-
setDraftImages: (images: ImageAttachment[]) => void;
|
|
191
|
-
setProcessMonitorOpen: (open: boolean) => void;
|
|
192
|
-
setQueuePanelOpen: (open: boolean) => void;
|
|
193
|
-
setCronJobsOpen: (open: boolean) => void;
|
|
194
|
-
setInspectSession: (id: string) => void;
|
|
195
|
-
clearInspectSession: () => void;
|
|
196
|
-
setTerminalOpen: (open: boolean) => void;
|
|
197
|
-
toggleTerminal: () => void;
|
|
198
|
-
requestTerminalCreate: () => void;
|
|
199
|
-
setSettingsActiveTab: (tab: string) => void;
|
|
200
|
-
setScrollPosition: (view: string, scrollTop: number) => void;
|
|
201
|
-
/** Context breakdown modal (triggered from side-panel session panel). */
|
|
202
|
-
sideContextBreakdownOpen: boolean;
|
|
203
|
-
setSideContextBreakdownOpen: (open: boolean) => void;
|
|
204
|
-
chatSwitcherOpen: boolean;
|
|
205
|
-
chatCheckpointOpen: boolean;
|
|
206
|
-
chatMemoryPanelOpen: boolean;
|
|
207
|
-
chatContextBreakdownOpen: boolean;
|
|
208
|
-
chatContextEditorOpen: boolean;
|
|
209
|
-
chatToolStatsOpen: boolean;
|
|
210
|
-
chatInputCollapsed: boolean;
|
|
211
|
-
setChatSwitcherOpen: (open: boolean) => void;
|
|
212
|
-
setChatCheckpointOpen: (open: boolean) => void;
|
|
213
|
-
setChatMemoryPanelOpen: (open: boolean) => void;
|
|
214
|
-
setChatContextBreakdownOpen: (open: boolean) => void;
|
|
215
|
-
setChatContextEditorOpen: (open: boolean) => void;
|
|
216
|
-
setChatToolStatsOpen: (open: boolean) => void;
|
|
217
|
-
setChatInputCollapsed: (collapsed: boolean) => void;
|
|
218
|
-
/** Skills panel breadcrumb state — persisted so history survives panel switches. */
|
|
219
|
-
skillsState: {
|
|
220
|
-
/** The skill currently shown in the detail pane. */
|
|
221
|
-
selectedSkill: {
|
|
222
|
-
name: string;
|
|
223
|
-
description: string;
|
|
224
|
-
version: string;
|
|
225
|
-
source: string;
|
|
226
|
-
sourceUrl: string;
|
|
227
|
-
ref: string;
|
|
228
|
-
path: string;
|
|
229
|
-
trigger: string;
|
|
230
|
-
scope: string[];
|
|
231
|
-
} | null;
|
|
232
|
-
/** Ordered history of skills navigated to via related links. */
|
|
233
|
-
navHistory: {
|
|
234
|
-
name: string;
|
|
235
|
-
description: string;
|
|
236
|
-
version: string;
|
|
237
|
-
source: string;
|
|
238
|
-
sourceUrl: string;
|
|
239
|
-
ref: string;
|
|
240
|
-
path: string;
|
|
241
|
-
trigger: string;
|
|
242
|
-
scope: string[];
|
|
243
|
-
}[];
|
|
244
|
-
/** Current position in navHistory. */
|
|
245
|
-
historyIndex: number;
|
|
246
|
-
/** Whether the detail pane is open (controls list highlight vs. detail view). */
|
|
247
|
-
detailOpen: boolean;
|
|
248
|
-
/** Last known commit refs per skill name — compared against live refs to detect updates. */
|
|
249
|
-
knownRefs: Record<string, string>;
|
|
250
|
-
/** Number of installed skills with a newer ref available than knownRefs. */
|
|
251
|
-
updateAvailableCount: number;
|
|
252
|
-
};
|
|
253
|
-
setSkillsState: (state: UIState['skillsState']) => void;
|
|
254
|
-
/** The mailbox message currently shown in the main-area detail view. */
|
|
255
|
-
selectedMailMessage: MailboxMessage | null;
|
|
256
|
-
setSelectedMailMessage: (msg: MailboxMessage | null) => void;
|
|
257
|
-
/** Active prompt-refinement panel. Set while RefinePanel is shown. Null when no refinement is pending. */
|
|
258
|
-
refinePanel: {
|
|
259
|
-
original: string;
|
|
260
|
-
refined: string;
|
|
261
|
-
english: string;
|
|
262
|
-
resolve: (decision: 'refined' | 'english' | 'original' | 'edit') => void;
|
|
263
|
-
/**
|
|
264
|
-
* Lifecycle of the refine round-trip:
|
|
265
|
-
* - 'countdown': 3-2-1 grace period before refining starts; user can
|
|
266
|
-
* send the original as-is to skip refinement entirely.
|
|
267
|
-
* - 'refining': request in flight (first attempt or an extended retry);
|
|
268
|
-
* - 'ready': a usable refinement arrived (comparison UI shown);
|
|
269
|
-
* - 'failed': the attempt failed and the recovery UI is shown.
|
|
270
|
-
* Absent → treated as 'refining' (back-compat with the placeholder check).
|
|
271
|
-
*/
|
|
272
|
-
status?: 'countdown' | 'refining' | 'ready' | 'failed' | undefined;
|
|
273
|
-
/** Human-readable failure reason (status === 'failed'). */
|
|
274
|
-
error?: string | undefined;
|
|
275
|
-
/** Machine-readable failure class driving the recovery options. */
|
|
276
|
-
errorKind?: 'timeout' | 'empty' | 'provider_error' | undefined;
|
|
277
|
-
/** One-key "retry with another model" offer (provider/model), if the server resolved one. */
|
|
278
|
-
fallbackRef?: string | undefined;
|
|
279
|
-
/** True once the automatic timeout retry has been spent (so we don't loop). */
|
|
280
|
-
retried?: boolean | undefined;
|
|
281
|
-
/** Apply a model-context boundary atomically when the approved prompt is sent. */
|
|
282
|
-
freshContext?: boolean | undefined;
|
|
283
|
-
/** Provider id of the model running the refinement (e.g. "openai"). */
|
|
284
|
-
provider?: string | undefined;
|
|
285
|
-
/** Model name running the refinement (e.g. "gpt-4o"). */
|
|
286
|
-
model?: string | undefined;
|
|
287
|
-
/** Submit behavior to preserve across the refinement approval round-trip. */
|
|
288
|
-
mode?: QueueMode | undefined;
|
|
289
|
-
/** Image attachments from the original submit, preserved so the approval
|
|
290
|
-
* enqueue path can forward them (mirrors the error/no-op paths in
|
|
291
|
-
* misc-handlers that pass refImages to enqueue). */
|
|
292
|
-
images?: QueuedItem['images'];
|
|
293
|
-
/**
|
|
294
|
-
* The tab this refinement belongs to.
|
|
295
|
-
*
|
|
296
|
-
* The panel is a single global surface sitting above one shared composer,
|
|
297
|
-
* but the text in it was typed in ONE tab. Approving it — or letting the
|
|
298
|
-
* countdown expire — sends through the foreground facade, so with four
|
|
299
|
-
* tabs open an unstamped panel could deliver tab 1's prompt into tab 2's
|
|
300
|
-
* session, without the user touching anything. ChatInput takes the panel
|
|
301
|
-
* down when the foreground leaves the tab that opened it.
|
|
302
|
-
*/
|
|
303
|
-
sessionId?: string | undefined;
|
|
304
|
-
} | null;
|
|
305
|
-
/** Prompt library modal (browse/search/insert prompts) open state. */
|
|
306
|
-
promptLibraryOpen: boolean;
|
|
307
|
-
setPromptLibraryOpen: (open: boolean) => void;
|
|
308
|
-
/** Text the prompt library wants pushed into the chat input. ChatInput consumes + clears it. */
|
|
309
|
-
promptInsertRequest: string | null;
|
|
310
|
-
requestPromptInsert: (text: string) => void;
|
|
311
|
-
clearPromptInsert: () => void;
|
|
312
|
-
/** Select an activity. If clicking the already-active icon, closes the sidebar. */
|
|
313
|
-
selectActivity: (activity: Activity) => void;
|
|
314
|
-
toggleSidebar: () => void;
|
|
315
|
-
setSidebarOpen: (open: boolean) => void;
|
|
316
|
-
setSettingsOpen: (open: boolean) => void;
|
|
317
|
-
setCurrentView: (view: UIState['currentView']) => void;
|
|
318
|
-
showConfirm: (info: UIState['confirmInfo']) => void;
|
|
319
|
-
hideConfirm: () => void;
|
|
320
|
-
setPaletteOpen: (open: boolean) => void;
|
|
321
|
-
setShortcutsOpen: (open: boolean) => void;
|
|
322
|
-
setSearchOpen: (open: boolean) => void;
|
|
323
|
-
setSearchQuery: (q: string) => void;
|
|
324
|
-
setSearchActiveMessageId: (id: string | null) => void;
|
|
325
|
-
requestScrollToMessage: (id: string) => void;
|
|
326
|
-
pushPrompt: (text: string) => void;
|
|
327
|
-
setSidebarWidth: (px: number) => void;
|
|
328
|
-
togglePin: (id: string) => void;
|
|
329
|
-
unpinAll: () => void;
|
|
330
|
-
toggleCompactMode: () => void;
|
|
331
|
-
setModelSwitcherOpen: (open: boolean) => void;
|
|
332
|
-
toggleFavoriteSession: (id: string) => void;
|
|
333
|
-
setSessionNickname: (id: string, nickname: string) => void;
|
|
334
|
-
setFileExplorerWidth: (px: number) => void;
|
|
335
|
-
toggleRefineEnabled: () => void;
|
|
336
|
-
setRefinePanel: (panel: UIState['refinePanel']) => void;
|
|
337
|
-
setDockSection: (section: DockSection | null) => void;
|
|
338
|
-
setWorkDashboardTab: (tab: WorkDashboardTab) => void;
|
|
339
|
-
bindSessionChrome: (sessionId: string | null) => void;
|
|
340
|
-
/** Click-a-chip semantics: same section again collapses the dock. */
|
|
341
|
-
toggleDockSection: (section: DockSection) => void;
|
|
342
|
-
/** Show/hide a dock chip from the customization menu. */
|
|
343
|
-
toggleChipHidden: (section: DockSection) => void;
|
|
344
|
-
/** Make a dock chip visible without toggling it off when it is already visible. */
|
|
345
|
-
showDockChip: (section: DockSection) => void;
|
|
346
|
-
setDockCustomizeOpen: (open: boolean) => void;
|
|
347
|
-
setFleetMonitorOpen: (open: boolean) => void;
|
|
348
|
-
setAgentsMonitorOpen: (open: boolean) => void;
|
|
349
|
-
setInspectorOpen: (open: boolean) => void;
|
|
350
|
-
setInspectorTab: (tab: InspectorTab) => void;
|
|
351
|
-
openInspectorTarget: (target: InspectorTarget) => void;
|
|
352
|
-
closeInspector: () => void;
|
|
353
|
-
setInspectorFocusedAgentId: (id: string | null) => void;
|
|
354
|
-
setSubagentChatFocus: (id: string | null, sessionId?: string | null) => void;
|
|
355
|
-
/** Forget a closed tab's subagent focus so a reused id cannot inherit it. */
|
|
356
|
-
forgetSession: (sessionId: string) => void;
|
|
357
|
-
toggleInspector: () => void;
|
|
358
|
-
}
|
|
1
|
+
export type { Activity, View, DockSection, WorkDashboardTab, InspectorTab, InspectorTarget, SessionChromeState, UIState, } from "./ui-store-types.js";
|
|
2
|
+
export { ACTIVITIES, coerceActivity, VIEWS, coerceView, DOCK_SECTIONS, coerceDockSection, SETTINGS_TABS, coerceSettingsTab, SIDEBAR_MIN_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_DEFAULT_WIDTH, } from "./ui-store-types.js";
|
|
3
|
+
export { isDesktopShellStorageContext, homeNavigationStatePatch, defaultSkillsState, defaultSessionChrome, readSessionChrome, parkChrome, } from "./ui-store-chrome.js";
|
|
4
|
+
export { uiPersistOptions } from "./ui-store-persist.js";
|
|
5
|
+
import type { UIState } from "./ui-store-types.js";
|
|
359
6
|
export declare const useUIStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<UIState>, "persist" | "setState"> & {
|
|
360
7
|
setState(partial: Partial<UIState> | UIState | ((state: UIState) => Partial<UIState> | UIState), replace?: false | undefined): unknown;
|
|
361
8
|
setState(state: UIState | ((state: UIState) => UIState), replace: true): unknown;
|
|
362
9
|
persist: {
|
|
363
|
-
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<UIState,
|
|
364
|
-
sidebarOpen: boolean;
|
|
365
|
-
activeActivity: Activity;
|
|
366
|
-
sidebarWidth: number;
|
|
367
|
-
promptHistory: string[];
|
|
368
|
-
pinnedIds: string[];
|
|
369
|
-
compactMode: boolean;
|
|
370
|
-
favoriteSessionIds: string[];
|
|
371
|
-
sessionNicknames: Record<string, string>;
|
|
372
|
-
fileExplorerWidth: number;
|
|
373
|
-
refineEnabled: boolean;
|
|
374
|
-
hiddenChips: DockSection[];
|
|
375
|
-
workDashboardTab: WorkDashboardTab;
|
|
376
|
-
inspectorOpen: boolean;
|
|
377
|
-
inspectorTab: InspectorTab;
|
|
378
|
-
skillsState: {
|
|
379
|
-
/** The skill currently shown in the detail pane. */
|
|
380
|
-
selectedSkill: {
|
|
381
|
-
name: string;
|
|
382
|
-
description: string;
|
|
383
|
-
version: string;
|
|
384
|
-
source: string;
|
|
385
|
-
sourceUrl: string;
|
|
386
|
-
ref: string;
|
|
387
|
-
path: string;
|
|
388
|
-
trigger: string;
|
|
389
|
-
scope: string[];
|
|
390
|
-
} | null;
|
|
391
|
-
/** Ordered history of skills navigated to via related links. */
|
|
392
|
-
navHistory: {
|
|
393
|
-
name: string;
|
|
394
|
-
description: string;
|
|
395
|
-
version: string;
|
|
396
|
-
source: string;
|
|
397
|
-
sourceUrl: string;
|
|
398
|
-
ref: string;
|
|
399
|
-
path: string;
|
|
400
|
-
trigger: string;
|
|
401
|
-
scope: string[];
|
|
402
|
-
}[];
|
|
403
|
-
/** Current position in navHistory. */
|
|
404
|
-
historyIndex: number;
|
|
405
|
-
/** Whether the detail pane is open (controls list highlight vs. detail view). */
|
|
406
|
-
detailOpen: boolean;
|
|
407
|
-
/** Last known commit refs per skill name — compared against live refs to detect updates. */
|
|
408
|
-
knownRefs: Record<string, string>;
|
|
409
|
-
/** Number of installed skills with a newer ref available than knownRefs. */
|
|
410
|
-
updateAvailableCount: number;
|
|
411
|
-
};
|
|
412
|
-
currentView: "analytics" | "changes" | "chat" | "chimera" | "chronicle" | "codemap" | "context" | "deadcode" | "debug" | "design-gallery" | "files" | "goal" | "intake" | "kanban" | "mailbox" | "memory" | "prompts" | "refresh-debug" | "roster" | "sddhub" | "session-inspect" | "sessions" | "settings" | "setup" | "skill" | "techstack";
|
|
413
|
-
dockSection: DockSection | null;
|
|
414
|
-
settingsActiveTab: string;
|
|
415
|
-
scrollPositions: Record<string, number>;
|
|
416
|
-
}, unknown>>) => void;
|
|
10
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<UIState, UIState, unknown>>) => void;
|
|
417
11
|
clearStorage: () => void;
|
|
418
12
|
rehydrate: () => Promise<void> | void;
|
|
419
13
|
hasHydrated: () => boolean;
|
|
420
14
|
onHydrate: (fn: (state: UIState) => void) => () => void;
|
|
421
15
|
onFinishHydration: (fn: (state: UIState) => void) => () => void;
|
|
422
|
-
getOptions: () => Partial<import("zustand/middleware").PersistOptions<UIState,
|
|
423
|
-
sidebarOpen: boolean;
|
|
424
|
-
activeActivity: Activity;
|
|
425
|
-
sidebarWidth: number;
|
|
426
|
-
promptHistory: string[];
|
|
427
|
-
pinnedIds: string[];
|
|
428
|
-
compactMode: boolean;
|
|
429
|
-
favoriteSessionIds: string[];
|
|
430
|
-
sessionNicknames: Record<string, string>;
|
|
431
|
-
fileExplorerWidth: number;
|
|
432
|
-
refineEnabled: boolean;
|
|
433
|
-
hiddenChips: DockSection[];
|
|
434
|
-
workDashboardTab: WorkDashboardTab;
|
|
435
|
-
inspectorOpen: boolean;
|
|
436
|
-
inspectorTab: InspectorTab;
|
|
437
|
-
skillsState: {
|
|
438
|
-
/** The skill currently shown in the detail pane. */
|
|
439
|
-
selectedSkill: {
|
|
440
|
-
name: string;
|
|
441
|
-
description: string;
|
|
442
|
-
version: string;
|
|
443
|
-
source: string;
|
|
444
|
-
sourceUrl: string;
|
|
445
|
-
ref: string;
|
|
446
|
-
path: string;
|
|
447
|
-
trigger: string;
|
|
448
|
-
scope: string[];
|
|
449
|
-
} | null;
|
|
450
|
-
/** Ordered history of skills navigated to via related links. */
|
|
451
|
-
navHistory: {
|
|
452
|
-
name: string;
|
|
453
|
-
description: string;
|
|
454
|
-
version: string;
|
|
455
|
-
source: string;
|
|
456
|
-
sourceUrl: string;
|
|
457
|
-
ref: string;
|
|
458
|
-
path: string;
|
|
459
|
-
trigger: string;
|
|
460
|
-
scope: string[];
|
|
461
|
-
}[];
|
|
462
|
-
/** Current position in navHistory. */
|
|
463
|
-
historyIndex: number;
|
|
464
|
-
/** Whether the detail pane is open (controls list highlight vs. detail view). */
|
|
465
|
-
detailOpen: boolean;
|
|
466
|
-
/** Last known commit refs per skill name — compared against live refs to detect updates. */
|
|
467
|
-
knownRefs: Record<string, string>;
|
|
468
|
-
/** Number of installed skills with a newer ref available than knownRefs. */
|
|
469
|
-
updateAvailableCount: number;
|
|
470
|
-
};
|
|
471
|
-
currentView: "analytics" | "changes" | "chat" | "chimera" | "chronicle" | "codemap" | "context" | "deadcode" | "debug" | "design-gallery" | "files" | "goal" | "intake" | "kanban" | "mailbox" | "memory" | "prompts" | "refresh-debug" | "roster" | "sddhub" | "session-inspect" | "sessions" | "settings" | "setup" | "skill" | "techstack";
|
|
472
|
-
dockSection: DockSection | null;
|
|
473
|
-
settingsActiveTab: string;
|
|
474
|
-
scrollPositions: Record<string, number>;
|
|
475
|
-
}, unknown>>;
|
|
16
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<UIState, UIState, unknown>>;
|
|
476
17
|
};
|
|
477
18
|
}>;
|
|
478
19
|
export declare function resetUiNavigationToHome(options?: {
|
|
479
20
|
sidebarOpen?: boolean | undefined;
|
|
480
21
|
}): void;
|
|
481
|
-
export {};
|
|
482
22
|
//# sourceMappingURL=ui-store.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type VizEdge, type VizEvent, type VizEventKind, type VizNode, type VizState } from './viz-types.js';
|
|
2
|
+
export declare const MAX_VIZ_NODES = 400;
|
|
3
|
+
export declare const MAX_VIZ_EDGES = 1200;
|
|
4
|
+
export declare const VOLATILE_REFRESH_MS = 250;
|
|
5
|
+
export declare function nextId(): string;
|
|
6
|
+
export declare function contextPctFromLoad(load: unknown): number;
|
|
7
|
+
/** Map an event's source/kind to a VizNode kind. */
|
|
8
|
+
export declare function inferKind(event: VizEvent, isTarget?: boolean): VizNode['kind'];
|
|
9
|
+
/** Map an event kind to a node status. */
|
|
10
|
+
export declare function inferStatus(kind: VizEventKind): VizNode['status'];
|
|
11
|
+
export declare function presenceFresh(lastStamp: number, now: number): boolean;
|
|
12
|
+
export declare function capByRecency<V>(map: Map<string, V>, max: number, recency: (v: V) => number): Map<string, V>;
|
|
13
|
+
export declare function shallowEqual(a: Record<string, unknown> | null | undefined, b: Record<string, unknown> | null | undefined): boolean;
|
|
14
|
+
export declare function applyEventToGraph(state: VizState, event: VizEvent, now: number): {
|
|
15
|
+
nodes: Map<string, VizNode>;
|
|
16
|
+
edges: Map<string, VizEdge>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=viz-graph-helpers.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type VizEvent } from './viz-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Event pipeline helper: converts raw WS messages into VizEvents.
|
|
4
|
+
* Called from ws-handlers to feed the AgentFlow visualization stream.
|
|
5
|
+
*/
|
|
6
|
+
export declare function wsToVizEvent(wsType: string, payload: Record<string, unknown>): VizEvent | null;
|
|
7
|
+
//# sourceMappingURL=viz-pipeline.d.ts.map
|
|
@@ -5,128 +5,8 @@
|
|
|
5
5
|
* provider calls, agent spawns, tool executions, mailbox messages, etc.
|
|
6
6
|
* Every event is typed with a `vizKind` for the renderer to pattern-match on.
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
id: string;
|
|
12
|
-
kind: VizEventKind;
|
|
13
|
-
timestamp: number;
|
|
14
|
-
/** Source node id (e.g. provider id, agent id, tool name) */
|
|
15
|
-
source: string;
|
|
16
|
-
/** Target node id (optional — e.g. provider for tool calls) */
|
|
17
|
-
target?: string | undefined;
|
|
18
|
-
/** Display label */
|
|
19
|
-
label: string;
|
|
20
|
-
/** Numeric magnitude (tokens, cost, duration) for size/color mapping */
|
|
21
|
-
magnitude?: number | undefined;
|
|
22
|
-
/** Extra structured payload for the renderer */
|
|
23
|
-
data?: Record<string, unknown> | undefined;
|
|
24
|
-
/** The raw WS payload for drill-down in detail panels */
|
|
25
|
-
raw?: unknown;
|
|
26
|
-
/** Grouping key for the flow (e.g. 'iteration:3', 'agent:leader') */
|
|
27
|
-
flowGroup?: string | undefined;
|
|
28
|
-
/** Color hint for the renderer */
|
|
29
|
-
color?: string | undefined;
|
|
30
|
-
}
|
|
31
|
-
/** Active connection between two nodes in the flow graph. */
|
|
32
|
-
export interface VizEdge {
|
|
33
|
-
id: string;
|
|
34
|
-
source: string;
|
|
35
|
-
target: string;
|
|
36
|
-
kind: VizEventKind;
|
|
37
|
-
label: string;
|
|
38
|
-
/** Flow intensity 0–1 for animation speed/opacity */
|
|
39
|
-
intensity: number;
|
|
40
|
-
/** Color for the edge */
|
|
41
|
-
color: string;
|
|
42
|
-
/** When this edge was last active */
|
|
43
|
-
lastActiveAt: number;
|
|
44
|
-
/** Cumulative magnitude (tokens, calls, etc.) */
|
|
45
|
-
totalMagnitude: number;
|
|
46
|
-
}
|
|
47
|
-
/** Node in the flow graph — represents a live entity. */
|
|
48
|
-
export interface VizNode {
|
|
49
|
-
id: string;
|
|
50
|
-
kind: 'provider' | 'agent' | 'tool' | 'mailbox' | 'session' | 'system' | 'error' | 'coordinator';
|
|
51
|
-
label: string;
|
|
52
|
-
sublabel?: string | undefined;
|
|
53
|
-
status: 'idle' | 'active' | 'streaming' | 'completed' | 'error';
|
|
54
|
-
/** 0–1 activity level for glow/pulse */
|
|
55
|
-
activity: number;
|
|
56
|
-
/** Color theme */
|
|
57
|
-
color: string;
|
|
58
|
-
/** Provider/model info */
|
|
59
|
-
provider?: string | undefined;
|
|
60
|
-
model?: string | undefined;
|
|
61
|
-
/** For agents: stats */
|
|
62
|
-
iterations?: number | undefined;
|
|
63
|
-
toolCalls?: number | undefined;
|
|
64
|
-
costUsd?: number | undefined;
|
|
65
|
-
ctxPct?: number | undefined;
|
|
66
|
-
ctxTokens?: number | undefined;
|
|
67
|
-
maxContext?: number | undefined;
|
|
68
|
-
/** For agents: current tool name */
|
|
69
|
-
currentTool?: string | undefined;
|
|
70
|
-
/** For agents: session id */
|
|
71
|
-
sessionId?: string | undefined;
|
|
72
|
-
/** Magnitude for sizing */
|
|
73
|
-
magnitude?: number | undefined;
|
|
74
|
-
/** When this node was last updated */
|
|
75
|
-
lastSeenAt: number;
|
|
76
|
-
/** Position hints for the layout engine */
|
|
77
|
-
positionHint?: {
|
|
78
|
-
zone: 'left' | 'center' | 'right' | 'top' | 'bottom';
|
|
79
|
-
order: number;
|
|
80
|
-
} | undefined;
|
|
81
|
-
}
|
|
82
|
-
interface VizState {
|
|
83
|
-
/** Ring buffer of recent events — newest first. */
|
|
84
|
-
events: VizEvent[];
|
|
85
|
-
/**
|
|
86
|
-
* Tool-only archive for slower UI surfaces such as Agent Office.
|
|
87
|
-
* Keeping it separate prevents chat/provider traffic from evicting a
|
|
88
|
-
* read/write action before a person has had time to see it.
|
|
89
|
-
*/
|
|
90
|
-
toolEvents: VizEvent[];
|
|
91
|
-
/** Live nodes in the flow graph. */
|
|
92
|
-
nodes: Map<string, VizNode>;
|
|
93
|
-
/** Active edges between nodes. */
|
|
94
|
-
edges: Map<string, VizEdge>;
|
|
95
|
-
/** Whether the visualization is actively running. */
|
|
96
|
-
isActive: boolean;
|
|
97
|
-
/** Max events to keep in the ring buffer. */
|
|
98
|
-
maxEvents: number;
|
|
99
|
-
/** Counters for the HUD */
|
|
100
|
-
counters: {
|
|
101
|
-
totalTokens: number;
|
|
102
|
-
totalCost: number;
|
|
103
|
-
totalToolCalls: number;
|
|
104
|
-
activeAgents: number;
|
|
105
|
-
completedTasks: number;
|
|
106
|
-
errors: number;
|
|
107
|
-
mailboxMessages: number;
|
|
108
|
-
};
|
|
109
|
-
pushEvent: (event: VizEvent) => void;
|
|
110
|
-
upsertNode: (node: Partial<VizNode> & {
|
|
111
|
-
id: string;
|
|
112
|
-
kind: VizNode['kind'];
|
|
113
|
-
label: string;
|
|
114
|
-
}) => void;
|
|
115
|
-
removeNode: (id: string) => void;
|
|
116
|
-
upsertEdge: (edge: Partial<VizEdge> & {
|
|
117
|
-
id: string;
|
|
118
|
-
source: string;
|
|
119
|
-
target: string;
|
|
120
|
-
kind: VizEdge['kind'];
|
|
121
|
-
label: string;
|
|
122
|
-
}) => void;
|
|
123
|
-
removeEdge: (id: string) => void;
|
|
124
|
-
clear: () => void;
|
|
125
|
-
setActive: (active: boolean) => void;
|
|
126
|
-
decayActivity: () => void;
|
|
127
|
-
prunesStale: (olderThan: number) => void;
|
|
128
|
-
}
|
|
8
|
+
import { type VizState } from './viz-types.js';
|
|
9
|
+
export { wsToVizEvent } from './viz-pipeline.js';
|
|
10
|
+
export * from './viz-types.js';
|
|
129
11
|
export declare const useVizStore: import("zustand").UseBoundStore<import("zustand").StoreApi<VizState>>;
|
|
130
|
-
export declare function wsToVizEvent(wsType: string, payload: Record<string, unknown>): VizEvent | null;
|
|
131
|
-
export {};
|
|
132
12
|
//# sourceMappingURL=viz-store.d.ts.map
|