@wrongstack/webui 1.0.24 → 1.0.27
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-BJ-1SQOm.js +12 -0
- package/dist/assets/{AnalyticsDashboard-DgqJODVI.js → AnalyticsDashboard-FYrD8BFQ.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-BghMZicW.js +3 -0
- package/dist/assets/ChangesView-B3uQtZGR.js +3 -0
- package/dist/assets/ChimeraReviewsView-CBRbTHGM.js +1 -0
- package/dist/assets/ChronicleDashboard-B1E-_u64.js +1 -0
- package/dist/assets/CodeEditor-CbcWuMGV.js +2 -0
- package/dist/assets/CodeMap-WOfveRTG.js +1 -0
- package/dist/assets/{CronJobsPanel-GTK038V9.js → CronJobsPanel-DOFA5WVq.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-DX4OEuyp.js → DeadCodeScanPanel-4ToPZX7e.js} +1 -1
- package/dist/assets/{DebugDashboard-CKp3sa_k.js → DebugDashboard-DAsNHSpG.js} +1 -1
- package/dist/assets/{DesignGalleryView-DVUTYaP6.js → DesignGalleryView-Dd5YnKhs.js} +1 -1
- package/dist/assets/GoalView-BaDGAXuQ.js +1 -0
- package/dist/assets/KanbanView-CG8bVhpR.js +3 -0
- package/dist/assets/{MailboxDetailView-CylnzTVc.js → MailboxDetailView-COxz-eEJ.js} +1 -1
- package/dist/assets/{MemoryDrawer-DJ0Y98Z8.js → MemoryDrawer-4lDXuHCi.js} +1 -1
- package/dist/assets/MemoryManager-DQlnpch1.js +1 -0
- package/dist/assets/{ProcessMonitor-BnQ3vJtn.js → ProcessMonitor-BUjfYqG3.js} +1 -1
- package/dist/assets/PromptJournalView-o2dmPrwg.js +1 -0
- package/dist/assets/ProviderTestView-5wNbI46L.js +1 -0
- package/dist/assets/QueuePanel-DP9D99DX.js +1 -0
- package/dist/assets/{RefreshDebugView-s6MyGpPq.js → RefreshDebugView-CB7_a_TI.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-CWi_Zo3F.js → RepositoryHistoryView-C_zpYLY6.js} +2 -2
- package/dist/assets/RequirementIntakeView-CahKEHJn.js +1 -0
- package/dist/assets/{SageTabs-D6eTg3ix.js → SageTabs-5Z2PR11S.js} +2 -2
- package/dist/assets/{SddFlowGraph-B-ptkFX6.js → SddFlowGraph-DSoWnlIt.js} +1 -1
- package/dist/assets/SddHub-0q2EpwYz.js +2 -0
- package/dist/assets/{SessionInspectView-NSpj5WEN.js → SessionInspectView-CbDFR_tP.js} +1 -1
- package/dist/assets/SessionList-DhQK7JnP.js +1 -0
- package/dist/assets/{SessionsDashboard-mF4PzdKY.js → SessionsDashboard-DNLDczSd.js} +1 -1
- package/dist/assets/SetupScreen-C-hpHQQ9.js +1 -0
- package/dist/assets/{SkillDetailView-B9BFyB1i.js → SkillDetailView-Bir-Kdm4.js} +3 -3
- package/dist/assets/TechStackView-CJ3Abnwg.js +2 -0
- package/dist/assets/TerminalPanel-8WHNTeQK.js +1 -0
- package/dist/assets/activity-B9WjS_Cz.js +10 -0
- package/dist/assets/activity-BB7AHL0U.js +10 -0
- package/dist/assets/activity-Bd0XmdqX.js +10 -0
- package/dist/assets/activity-BvmJte2K.js +10 -0
- package/dist/assets/activity-DOEbDWqw.js +10 -0
- package/dist/assets/activity-beTxIN7V.js +10 -0
- package/dist/assets/activity-t-0KDhv5.js +10 -0
- package/dist/assets/{button-BbeB5Qm8.js → button-UuKTnoM-.js} +1 -1
- package/dist/assets/chat-9GLubejR.js +1 -0
- package/dist/assets/chat-B50ssTLh.js +1 -0
- package/dist/assets/chat-CDioiM1L.js +1 -0
- package/dist/assets/chat-Cll_3gXD.js +1 -0
- package/dist/assets/chat-Cqhc6jQa.js +1 -0
- package/dist/assets/chat-DN1MggWt.js +1 -0
- package/dist/assets/chat-fyvZyUZM.js +1 -0
- package/dist/assets/chat-store-BMwP_sS0.js +1 -0
- package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
- package/dist/assets/{common-DvjdaRhB.js → common-2kj0c3pG.js} +1 -1
- package/dist/assets/{common-D0QL7rwb.js → common-BAvh8XBp.js} +1 -1
- package/dist/assets/{common-opV6EoLd.js → common-CKwGvEQD.js} +1 -1
- package/dist/assets/{common-DJRPtYAt.js → common-CUd7l34J.js} +1 -1
- package/dist/assets/{common-BtyQBZBN.js → common-DmS4Wp1i.js} +1 -1
- package/dist/assets/common-PC103akE.js +1 -0
- package/dist/assets/{common-Bjl7V12m.js → common-zatZ4s-Z.js} +1 -1
- package/dist/assets/config-store-Cb4iyhGv.js +21 -0
- package/dist/assets/{dialog-b-Ai37sa.js → dialog-BDUaV5gY.js} +1 -1
- package/dist/assets/{empty-state-pfuS5znr.js → empty-state-BzoEa04Q.js} +1 -1
- package/dist/assets/{fonts-DRGbd-AM.js → fonts-C303yVU_.js} +2 -2
- package/dist/assets/i18n-CzTjKT4L.js +3 -0
- package/dist/assets/index-Ci22AODp.js +182 -0
- package/dist/assets/index-DfU9PQg8.css +1 -0
- package/dist/assets/{input-BA6D2L3K.js → input-DMnC2O7-.js} +1 -1
- package/dist/assets/{mailbox-store-ZQO_Rv6E.js → mailbox-store-DyOOYbni.js} +1 -1
- package/dist/assets/{roster-ws-Cv_PHlEV.js → roster-ws-D-DCMdrg.js} +1 -1
- package/dist/assets/settings-7W0ofid0.js +1 -0
- package/dist/assets/settings-BAArGYGW.js +1 -0
- package/dist/assets/settings-Btyr_M2v.js +1 -0
- package/dist/assets/settings-BwL_DVmc.js +1 -0
- package/dist/assets/settings-C7ybAkyi.js +1 -0
- package/dist/assets/settings-CgtL8eYb.js +1 -0
- package/dist/assets/settings-D57Fd8Z8.js +1 -0
- package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
- package/dist/assets/stores-Svlibwo5.js +7 -0
- package/dist/assets/toasts-3tM1krOo.js +1 -0
- package/dist/assets/toasts-BrHW33qA.js +1 -0
- package/dist/assets/toasts-Buww129h.js +1 -0
- package/dist/assets/toasts-CSN9Fy47.js +1 -0
- package/dist/assets/toasts-DOoYxbHd.js +1 -0
- package/dist/assets/toasts-DkDnbhs_.js +1 -0
- package/dist/assets/toasts-Jo4VH13n.js +1 -0
- package/dist/assets/ui-store-DI0iusYZ.js +1 -0
- package/dist/assets/{utils-CKsqCaP8.js → utils-B21Devim.js} +1 -1
- package/dist/assets/{vector-memory-panel-YWv6xcza.js → vector-memory-panel-DnX-ODHC.js} +1 -1
- package/dist/assets/{vendor-V3ydTHqN.js → vendor-BfBvt432.js} +28 -28
- package/dist/assets/{view-navigation-CpIPxhZp.js → view-navigation-Cvrp_uJm.js} +1 -1
- package/dist/components/BrowserLivePane.d.ts +2 -0
- package/dist/components/ChangesView.d.ts +3 -1
- package/dist/components/ChatInput/chat-input-bars.d.ts +1 -1
- package/dist/components/ChatInput/image-attachments.d.ts +19 -2
- package/dist/components/ChatInput/slash-routing.d.ts +18 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts +3 -0
- package/dist/components/ChatInput/use-prompt-queue-view.d.ts +13 -0
- package/dist/components/ChatView/BackgroundShellStrip.d.ts +16 -0
- package/dist/components/ChatView/TerminalStrip.d.ts +8 -0
- package/dist/components/CodeMap.d.ts +0 -12
- package/dist/components/GoalPanel.d.ts +2 -1
- package/dist/components/ImageDiffView.d.ts +12 -0
- package/dist/components/KanbanTaskExecution.d.ts +64 -0
- package/dist/components/KanbanTaskInspector.d.ts +1 -1
- package/dist/components/MessageBubble/AttachmentGallery.d.ts +1 -1
- package/dist/components/MessageBubble/FailedRunContinue.d.ts +7 -3
- package/dist/components/MessageBubble/GeneratedImagePreview.d.ts +10 -0
- package/dist/components/SessionTabBar/summaries.d.ts +4 -0
- package/dist/components/SettingsPanel/LimitsSection.d.ts +7 -0
- package/dist/components/SettingsPanel/MCPSection.d.ts +1 -37
- package/dist/components/SettingsPanel/MCPServerCards.d.ts +67 -0
- package/dist/components/SettingsPanel/MCPServerDialog.d.ts +11 -0
- package/dist/components/SettingsPanel/PreferenceControls.d.ts +8 -0
- package/dist/components/SettingsPanel/ProviderSavedProfiles.d.ts +50 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -79
- package/dist/components/SettingsPanel/SettingsNavigation.d.ts +12 -0
- package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -2
- package/dist/components/SettingsPanel/provider-section-types.d.ts +79 -0
- package/dist/components/SidePanel/SessionList.d.ts +1 -34
- package/dist/components/SidePanel/session-history.d.ts +61 -0
- package/dist/components/SystemPromptPresetEditor.d.ts +9 -0
- package/dist/components/TechStackView/AnalyzeControls.d.ts +25 -0
- package/dist/components/TechStackView/RemediationTab.d.ts +20 -0
- package/dist/components/TechStackView/TrendsTab.d.ts +17 -0
- package/dist/components/TerminalPanel.d.ts +8 -1
- package/dist/components/WorkspaceDock.d.ts +2 -2
- package/dist/components/review/ReviewDiff.d.ts +21 -0
- package/dist/components/review/ReviewTray.d.ts +15 -0
- package/dist/components/review/review-diff-model.d.ts +31 -0
- package/dist/components/use-code-map-flow.d.ts +25 -0
- package/dist/components/use-office-map-canvas.d.ts +1 -1
- package/dist/components/use-office-map-topology.d.ts +31 -0
- package/dist/hooks/use-live-browser.d.ts +7 -0
- package/dist/hooks/useWebSocket.d.ts +1 -2
- package/dist/hooks/ws-handlers/chat-handlers.d.ts +12 -0
- package/dist/hooks/ws-handlers/goal-handlers.d.ts +2 -0
- package/dist/hooks/ws-handlers/mcp-status-handlers.d.ts +6 -0
- package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
- package/dist/hooks/ws-handlers/techstack-handlers.d.ts +7 -0
- package/dist/index.css +3013 -3013
- package/dist/index.html +19 -19
- package/dist/index.js +53010 -47407
- package/dist/lib/compact-file-tree.d.ts +30 -0
- package/dist/lib/project-image.d.ts +26 -0
- package/dist/lib/provider-warm.d.ts +3 -0
- package/dist/lib/ws-client-session-methods.d.ts +2 -0
- package/dist/lib/ws-client.d.ts +3 -0
- package/dist/stores/chat-lane-data.d.ts +153 -0
- package/dist/stores/chat-lanes.d.ts +3 -174
- package/dist/stores/chat-queue-helpers.d.ts +9 -0
- package/dist/stores/chat-store-types.d.ts +3 -0
- package/dist/stores/chat-store.d.ts +1 -1
- package/dist/stores/context-editor-store.d.ts +1 -1
- package/dist/stores/fleet-transcript.d.ts +14 -0
- package/dist/stores/git-changes-store.d.ts +3 -0
- package/dist/stores/goal-run-store.d.ts +8 -0
- package/dist/stores/goal-state-store.d.ts +3 -0
- package/dist/stores/goal-store.d.ts +9 -11
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/local-prefs-defaults.d.ts +341 -0
- package/dist/stores/local-prefs.d.ts +2 -318
- package/dist/stores/notification-store.d.ts +9 -0
- package/dist/stores/provider-quota-store.d.ts +5 -0
- package/dist/stores/review-store.d.ts +54 -0
- package/dist/stores/session-activity.d.ts +33 -0
- package/dist/stores/session-tab-store.d.ts +1 -46
- package/dist/stores/techstack-store.d.ts +140 -1
- package/dist/stores/terminal-strip-store.d.ts +26 -0
- package/dist/stores/types.d.ts +5 -0
- package/dist/stores/ui-store-chrome.d.ts +1 -1
- package/dist/stores/ui-store-persist.d.ts +2 -2
- package/dist/stores/ui-store-types.d.ts +3 -3
- package/dist/stores/ui-store.d.ts +5 -5
- package/dist/types/brain.d.ts +4 -2
- package/dist/types/client-message.d.ts +122 -14
- package/dist/types/jev.d.ts +2 -0
- package/dist/types/prompt-queue.d.ts +55 -0
- package/dist/types/protocol-core.d.ts +4 -216
- package/dist/types/runtime.d.ts +3 -38
- package/dist/types/server-message-files.d.ts +22 -0
- package/dist/types/server-message-mcp.d.ts +32 -0
- package/dist/types/server-message-system.d.ts +121 -0
- package/dist/types/server-message.d.ts +4 -3
- package/dist/types/system.d.ts +2 -24
- package/package.json +11 -9
- package/dist/assets/AgentRosterView-Dq8Xa0WK.js +0 -12
- package/dist/assets/AudienceMemoryPanel-BVGdDVTT.js +0 -3
- package/dist/assets/ChangesView-BVyLENBb.js +0 -1
- package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +0 -1
- package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +0 -1
- package/dist/assets/CodeEditor-k3z3M0NG.js +0 -2
- package/dist/assets/CodeMap-CvHNQZEF.js +0 -1
- package/dist/assets/GoalView-D8G8e8YG.js +0 -1
- package/dist/assets/KanbanView-BMXGDqGo.js +0 -3
- package/dist/assets/MemoryManager-DfcsYPUB.js +0 -1
- package/dist/assets/PromptJournalView-D7k8Yh5a.js +0 -1
- package/dist/assets/ProviderTestView-DSd6kkWT.js +0 -1
- package/dist/assets/QueuePanel-79KiyZWD.js +0 -1
- package/dist/assets/RequirementIntakeView-D_Ea20fx.js +0 -1
- package/dist/assets/SddHub-CSVfLGpr.js +0 -2
- package/dist/assets/SessionList-BYRCs1AK.js +0 -1
- package/dist/assets/SetupScreen-BUZeJSZi.js +0 -1
- package/dist/assets/TechStackView-CXJilX0M.js +0 -2
- package/dist/assets/TerminalPanel-CAXevSAa.js +0 -1
- package/dist/assets/activity-B3wutYIE.js +0 -10
- package/dist/assets/activity-Be03cc7g.js +0 -10
- package/dist/assets/activity-CiYZ3y4e.js +0 -10
- package/dist/assets/activity-CmIA2MhR.js +0 -10
- package/dist/assets/activity-Cp5GhldB.js +0 -10
- package/dist/assets/activity-DFCf7l5d.js +0 -10
- package/dist/assets/activity-EbNUY7Ci.js +0 -10
- package/dist/assets/chat-6dE2AJNN.js +0 -1
- package/dist/assets/chat-B3AJmhGD.js +0 -1
- package/dist/assets/chat-BHsbpaVt.js +0 -1
- package/dist/assets/chat-BITJe8-v.js +0 -1
- package/dist/assets/chat-U-Jjb8_k.js +0 -1
- package/dist/assets/chat-_Xp5fDnj.js +0 -1
- package/dist/assets/chat-mSbSzPl5.js +0 -1
- package/dist/assets/chat-store-C7InoWAO.js +0 -1
- package/dist/assets/common-DPPTV3yw.js +0 -1
- package/dist/assets/config-store-BbL0WxLE.js +0 -21
- package/dist/assets/i18n-Dv97urcO.js +0 -3
- package/dist/assets/index-CON0Nbm4.css +0 -1
- package/dist/assets/index-DX6tHUzs.js +0 -177
- package/dist/assets/settings-BCvuzOJ6.js +0 -1
- package/dist/assets/settings-DMPKd-4K.js +0 -1
- package/dist/assets/settings-DxQ2452f.js +0 -1
- package/dist/assets/settings-Dz3StaVx.js +0 -1
- package/dist/assets/settings-EBW1mlXc.js +0 -1
- package/dist/assets/settings-Er2LHp9d.js +0 -1
- package/dist/assets/settings-EzznCDaX.js +0 -1
- package/dist/assets/stores-DXn5tdr7.js +0 -7
- package/dist/assets/toasts-BsmyGP95.js +0 -1
- package/dist/assets/toasts-CgXHu8ZB.js +0 -1
- package/dist/assets/toasts-DZ6HdKgG.js +0 -1
- package/dist/assets/toasts-DizCJjAR.js +0 -1
- package/dist/assets/toasts-NC2MT4uN.js +0 -1
- package/dist/assets/toasts-bPl097de.js +0 -1
- package/dist/assets/toasts-tCVo15mP.js +0 -1
- package/dist/assets/ui-store-DxDwFHNK.js +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BrainConfigPatchWire } from './brain.js';
|
|
2
2
|
import type { ChronicleFacet, ChronicleMetricsView, ChronicleQuery } from './chronicle.js';
|
|
3
3
|
import type { WSCollabAnnotate, WSCollabGrantControl, WSCollabInjectTool, WSCollabJoin, WSCollabLeave, WSCollabRequestPause, WSCollabResolve, WSCollabResume } from './collab.js';
|
|
4
|
+
import type { WSPromptQueueClientMessage } from './prompt-queue.js';
|
|
4
5
|
import type { SessionScopedPayload, WSUserMessage } from './protocol-core.js';
|
|
5
6
|
import type { ContextEditorMessage, ContextEditorRemoval, WSModelSwitch, WSToolConfirmResult, WSUserInputSubmit } from './runtime.js';
|
|
6
7
|
import type { SageAnchor, SageScope, SageStatus, WSMemorySageForFileRequest } from './sage.js';
|
|
@@ -25,7 +26,12 @@ export interface ProviderCustomModelWire {
|
|
|
25
26
|
*/
|
|
26
27
|
modelsDev?: Record<string, unknown> | undefined;
|
|
27
28
|
}
|
|
28
|
-
export type WSClientMessageCore = WSUserMessage |
|
|
29
|
+
export type WSClientMessageCore = WSUserMessage | WSPromptQueueClientMessage
|
|
30
|
+
/** The user is typing; open the provider connection (`session.provider-warm`). */
|
|
31
|
+
| {
|
|
32
|
+
type: 'composer.warm';
|
|
33
|
+
payload: SessionScopedPayload;
|
|
34
|
+
} | {
|
|
29
35
|
type: 'topic.advice';
|
|
30
36
|
payload: SessionScopedPayload & {
|
|
31
37
|
requestId: string;
|
|
@@ -100,7 +106,9 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
100
106
|
payload: Record<string, never>;
|
|
101
107
|
} | {
|
|
102
108
|
type: 'goal.resume';
|
|
103
|
-
payload:
|
|
109
|
+
payload: {
|
|
110
|
+
graphId?: string | undefined;
|
|
111
|
+
};
|
|
104
112
|
} | {
|
|
105
113
|
type: 'goal.stop';
|
|
106
114
|
payload: Record<string, never>;
|
|
@@ -113,9 +121,6 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
113
121
|
} | {
|
|
114
122
|
type: 'goal.status';
|
|
115
123
|
payload?: Record<string, never>;
|
|
116
|
-
} | {
|
|
117
|
-
type: 'goal.state';
|
|
118
|
-
payload?: Record<string, never>;
|
|
119
124
|
} | {
|
|
120
125
|
type: 'goal.save';
|
|
121
126
|
payload?: Record<string, never>;
|
|
@@ -125,12 +130,9 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
125
130
|
} | {
|
|
126
131
|
type: 'goal.load';
|
|
127
132
|
payload: {
|
|
128
|
-
graphId
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
type: 'goal.toggleAutonomous';
|
|
132
|
-
payload: {
|
|
133
|
-
autonomous?: boolean | undefined;
|
|
133
|
+
graphId?: string | undefined;
|
|
134
|
+
query?: string | undefined;
|
|
135
|
+
resume?: boolean | undefined;
|
|
134
136
|
};
|
|
135
137
|
} | {
|
|
136
138
|
type: 'goal.selectPhase';
|
|
@@ -351,7 +353,7 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
351
353
|
worktrees?: boolean | undefined;
|
|
352
354
|
/** Split non-atomic tasks before dispatch (planning-time decompose). */
|
|
353
355
|
planDecompose?: boolean | undefined;
|
|
354
|
-
};
|
|
356
|
+
} & SessionScopedPayload;
|
|
355
357
|
} | {
|
|
356
358
|
type: 'sdd.run.from_graph';
|
|
357
359
|
payload: {
|
|
@@ -362,7 +364,7 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
362
364
|
fallbackModels?: string[] | undefined;
|
|
363
365
|
worktrees?: boolean | undefined;
|
|
364
366
|
planDecompose?: boolean | undefined;
|
|
365
|
-
};
|
|
367
|
+
} & SessionScopedPayload;
|
|
366
368
|
} | {
|
|
367
369
|
type: 'sdd.run.from_spec';
|
|
368
370
|
payload: {
|
|
@@ -373,7 +375,7 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
373
375
|
fallbackModels?: string[] | undefined;
|
|
374
376
|
worktrees?: boolean | undefined;
|
|
375
377
|
planDecompose?: boolean | undefined;
|
|
376
|
-
};
|
|
378
|
+
} & SessionScopedPayload;
|
|
377
379
|
} | {
|
|
378
380
|
type: 'abort';
|
|
379
381
|
payload: SessionScopedPayload;
|
|
@@ -444,6 +446,13 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
444
446
|
* what a live lane already has.
|
|
445
447
|
*/
|
|
446
448
|
replayFor?: string[];
|
|
449
|
+
/**
|
|
450
|
+
* Reconnect catch-up: the last numbered frame (`seq`) this page applied
|
|
451
|
+
* per tab, valid for the server process that issued `eventEpoch`. The
|
|
452
|
+
* server sends back the frames after it, then `session.frames_resumed`.
|
|
453
|
+
*/
|
|
454
|
+
cursors?: Record<string, number>;
|
|
455
|
+
eventEpoch?: string;
|
|
447
456
|
} & SessionScopedPayload;
|
|
448
457
|
} | {
|
|
449
458
|
type: 'context.clear';
|
|
@@ -939,6 +948,11 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
939
948
|
payload: {
|
|
940
949
|
filePath: string;
|
|
941
950
|
} & SessionScopedPayload;
|
|
951
|
+
} | {
|
|
952
|
+
type: 'files.image';
|
|
953
|
+
payload: {
|
|
954
|
+
filePath: string;
|
|
955
|
+
} & SessionScopedPayload;
|
|
942
956
|
} | {
|
|
943
957
|
type: 'files.skeleton';
|
|
944
958
|
payload: {
|
|
@@ -1022,6 +1036,23 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1022
1036
|
} | {
|
|
1023
1037
|
type: 'process.list';
|
|
1024
1038
|
payload?: SessionScopedPayload;
|
|
1039
|
+
} | {
|
|
1040
|
+
type: 'process.output';
|
|
1041
|
+
payload: {
|
|
1042
|
+
pid: number;
|
|
1043
|
+
lines?: number;
|
|
1044
|
+
} & SessionScopedPayload;
|
|
1045
|
+
} | {
|
|
1046
|
+
type: 'browser.live.list';
|
|
1047
|
+
payload?: SessionScopedPayload;
|
|
1048
|
+
} | {
|
|
1049
|
+
type: 'browser.live.watch';
|
|
1050
|
+
payload: {
|
|
1051
|
+
id: string;
|
|
1052
|
+
} & SessionScopedPayload;
|
|
1053
|
+
} | {
|
|
1054
|
+
type: 'browser.live.unwatch';
|
|
1055
|
+
payload?: SessionScopedPayload;
|
|
1025
1056
|
} | {
|
|
1026
1057
|
type: 'process.kill';
|
|
1027
1058
|
payload: {
|
|
@@ -1086,6 +1117,23 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1086
1117
|
type: 'goal.get';
|
|
1087
1118
|
} | {
|
|
1088
1119
|
type: 'goal-state.get';
|
|
1120
|
+
} | {
|
|
1121
|
+
type: 'goal-state.set';
|
|
1122
|
+
payload: {
|
|
1123
|
+
goal: string;
|
|
1124
|
+
} & SessionScopedPayload;
|
|
1125
|
+
} | {
|
|
1126
|
+
type: 'goal-state.refine';
|
|
1127
|
+
payload?: SessionScopedPayload;
|
|
1128
|
+
} | {
|
|
1129
|
+
type: 'goal-state.pause';
|
|
1130
|
+
payload?: Record<string, never>;
|
|
1131
|
+
} | {
|
|
1132
|
+
type: 'goal-state.resume';
|
|
1133
|
+
payload?: Record<string, never>;
|
|
1134
|
+
} | {
|
|
1135
|
+
type: 'goal-state.clear';
|
|
1136
|
+
payload?: Record<string, never>;
|
|
1089
1137
|
} | {
|
|
1090
1138
|
type: 'autonomy.switch';
|
|
1091
1139
|
payload: {
|
|
@@ -1100,6 +1148,49 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1100
1148
|
} | {
|
|
1101
1149
|
type: 'system_prompt.get';
|
|
1102
1150
|
payload?: SessionScopedPayload;
|
|
1151
|
+
} | {
|
|
1152
|
+
type: 'system_prompt.presets.get';
|
|
1153
|
+
payload?: SessionScopedPayload;
|
|
1154
|
+
} | {
|
|
1155
|
+
type: 'system_prompt.presets.create';
|
|
1156
|
+
payload: {
|
|
1157
|
+
name: string;
|
|
1158
|
+
baseVariant: 'lite' | 'default' | 'pro';
|
|
1159
|
+
};
|
|
1160
|
+
} | {
|
|
1161
|
+
type: 'system_prompt.presets.save';
|
|
1162
|
+
payload: {
|
|
1163
|
+
id: string;
|
|
1164
|
+
revision: number;
|
|
1165
|
+
name: string;
|
|
1166
|
+
text: string;
|
|
1167
|
+
reviewedCurrentSource?: boolean;
|
|
1168
|
+
};
|
|
1169
|
+
} | {
|
|
1170
|
+
type: 'system_prompt.presets.activate';
|
|
1171
|
+
payload: {
|
|
1172
|
+
baseVariant: 'lite' | 'default' | 'pro';
|
|
1173
|
+
id?: string;
|
|
1174
|
+
sessionId?: string;
|
|
1175
|
+
scope: 'profile' | 'project';
|
|
1176
|
+
};
|
|
1177
|
+
} | {
|
|
1178
|
+
type: 'system_prompt.presets.delete';
|
|
1179
|
+
payload: {
|
|
1180
|
+
id: string;
|
|
1181
|
+
};
|
|
1182
|
+
} | {
|
|
1183
|
+
type: 'system_prompt.presets.validate';
|
|
1184
|
+
payload: {
|
|
1185
|
+
text: string;
|
|
1186
|
+
};
|
|
1187
|
+
} | {
|
|
1188
|
+
type: 'system_prompt.presets.preview';
|
|
1189
|
+
payload: {
|
|
1190
|
+
text: string;
|
|
1191
|
+
sessionId?: string;
|
|
1192
|
+
requestId: number;
|
|
1193
|
+
};
|
|
1103
1194
|
} | {
|
|
1104
1195
|
type: 'projects.list';
|
|
1105
1196
|
} | {
|
|
@@ -1392,6 +1483,23 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1392
1483
|
prompt: string;
|
|
1393
1484
|
arguments?: Record<string, string>;
|
|
1394
1485
|
};
|
|
1486
|
+
} | {
|
|
1487
|
+
type: 'mcp.auth.status';
|
|
1488
|
+
payload: {
|
|
1489
|
+
name: string;
|
|
1490
|
+
};
|
|
1491
|
+
} | {
|
|
1492
|
+
type: 'mcp.auth.login';
|
|
1493
|
+
payload: {
|
|
1494
|
+
name: string;
|
|
1495
|
+
clientId?: string;
|
|
1496
|
+
scopes?: string[];
|
|
1497
|
+
};
|
|
1498
|
+
} | {
|
|
1499
|
+
type: 'mcp.auth.logout';
|
|
1500
|
+
payload: {
|
|
1501
|
+
name: string;
|
|
1502
|
+
};
|
|
1395
1503
|
} | {
|
|
1396
1504
|
type: 'terminal.create';
|
|
1397
1505
|
payload: {
|
package/dist/types/jev.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export interface JevSettings {
|
|
|
7
7
|
requestTimeoutMs: number;
|
|
8
8
|
keySource: string;
|
|
9
9
|
features: Record<string, boolean>;
|
|
10
|
+
/** Full request/response recording in the log file. Never sent to this view. */
|
|
11
|
+
logContent?: boolean;
|
|
10
12
|
contextStrategy?: 'hybrid' | 'intelligent' | 'selective';
|
|
11
13
|
recallTurnContext?: boolean;
|
|
12
14
|
readiness?: Record<string, {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { SessionScopedPayload, WSUserMessageImage } from './protocol-core.js';
|
|
2
|
+
/**
|
|
3
|
+
* The host-owned prompt queue (`session.prompt-queue` capability): prompts
|
|
4
|
+
* queued for a session live on the server, which runs them one after another
|
|
5
|
+
* as the session's turns end — whether or not this page is still open.
|
|
6
|
+
*/
|
|
7
|
+
/** One queued prompt as the server lists it (image bytes stay on the server). */
|
|
8
|
+
export interface WSQueuedPromptView {
|
|
9
|
+
id: string;
|
|
10
|
+
text: string;
|
|
11
|
+
addedAt: number;
|
|
12
|
+
imageCount: number;
|
|
13
|
+
}
|
|
14
|
+
export type WSPromptQueueClientMessage = {
|
|
15
|
+
type: 'queue.add';
|
|
16
|
+
payload: SessionScopedPayload & {
|
|
17
|
+
text: string;
|
|
18
|
+
images?: WSUserMessageImage[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
} | {
|
|
21
|
+
type: 'queue.remove';
|
|
22
|
+
payload: SessionScopedPayload & {
|
|
23
|
+
id: string;
|
|
24
|
+
};
|
|
25
|
+
} | {
|
|
26
|
+
type: 'queue.clear';
|
|
27
|
+
payload?: SessionScopedPayload;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'queue.get';
|
|
30
|
+
payload?: SessionScopedPayload;
|
|
31
|
+
};
|
|
32
|
+
/** The session's whole queue, after every change. */
|
|
33
|
+
export interface WSQueueState {
|
|
34
|
+
type: 'queue.state';
|
|
35
|
+
payload: SessionScopedPayload & {
|
|
36
|
+
items: WSQueuedPromptView[];
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** A queued prompt just started its turn: render it as the user's message. */
|
|
40
|
+
export interface WSQueueDrained {
|
|
41
|
+
type: 'queue.drained';
|
|
42
|
+
payload: SessionScopedPayload & {
|
|
43
|
+
item: {
|
|
44
|
+
id: string;
|
|
45
|
+
text: string;
|
|
46
|
+
addedAt: number;
|
|
47
|
+
images?: Array<{
|
|
48
|
+
data: string;
|
|
49
|
+
mediaType?: string | undefined;
|
|
50
|
+
name?: string | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=prompt-queue.d.ts.map
|
|
@@ -1,155 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
sessionId: string;
|
|
6
|
-
/** Original session start timestamp; resume must not reset uptime. */
|
|
7
|
-
startedAt?: string | undefined;
|
|
8
|
-
model: string;
|
|
9
|
-
provider: string;
|
|
10
|
-
maxContext?: number | undefined;
|
|
11
|
-
projectName?: string | undefined;
|
|
12
|
-
cwd?: string | undefined;
|
|
13
|
-
mode?: string | undefined;
|
|
14
|
-
contextMode?: string | undefined;
|
|
15
|
-
inputCost?: number | undefined;
|
|
16
|
-
outputCost?: number | undefined;
|
|
17
|
-
cacheReadCost?: number | undefined;
|
|
18
|
-
reset?: boolean | undefined;
|
|
19
|
-
replayMessages?: Array<{
|
|
20
|
-
role: string | undefined;
|
|
21
|
-
content: unknown;
|
|
22
|
-
ts?: string | undefined;
|
|
23
|
-
}>;
|
|
24
|
-
/** Audit markers (compaction, mode/skill switches, subagent lifecycle,
|
|
25
|
-
* provider retries, truncation) projected server-side. Replayed alongside
|
|
26
|
-
* the conversation so a reconnect shows what the live stream showed. */
|
|
27
|
-
replayMarkers?: SessionMarker[] | undefined;
|
|
28
|
-
/** Per-tool timing/output metadata projected from `tool_call_end`, so a
|
|
29
|
-
* replayed tool card shows the same duration and size chips it showed
|
|
30
|
-
* live. */
|
|
31
|
-
replayToolMeta?: SessionToolMeta[] | undefined;
|
|
32
|
-
replayUsage?: Usage | undefined;
|
|
33
|
-
/** True when no provider+model is configured yet — show the setup screen. */
|
|
34
|
-
needsSetup?: boolean | undefined;
|
|
35
|
-
/** Feature negotiation prevents a newer WebUI from sending messages to an older backend. */
|
|
36
|
-
protocolCapabilities?: string[] | undefined;
|
|
37
|
-
/** Effort levels the ACTIVE model advertises (models.dev reasoningConfig).
|
|
38
|
-
* Absent when the model has no explicit effort list — the UI then shows
|
|
39
|
-
* the full canonical set, matching the resolver's conservative gate. */
|
|
40
|
-
reasoningEffortLevels?: string[] | undefined;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export interface WSSessionEnd {
|
|
44
|
-
type: 'session.end';
|
|
45
|
-
payload: {
|
|
46
|
-
sessionId: string;
|
|
47
|
-
usage: Usage;
|
|
48
|
-
totalCost: number;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
export interface SessionScopedPayload {
|
|
52
|
-
sessionId?: string | undefined;
|
|
53
|
-
}
|
|
54
|
-
/** One image attached to a user message. `data` is bare base64 (no data-URL
|
|
55
|
-
* prefix); `mediaType` travels separately. */
|
|
56
|
-
export interface WSUserMessageImage {
|
|
57
|
-
data: string;
|
|
58
|
-
mediaType: string;
|
|
59
|
-
/** Original filename when the image came from a picker or drop. */
|
|
60
|
-
name?: string;
|
|
61
|
-
}
|
|
62
|
-
export interface WSUserMessage {
|
|
63
|
-
type: 'user_message';
|
|
64
|
-
payload: SessionScopedPayload & {
|
|
65
|
-
id: string;
|
|
66
|
-
content: string;
|
|
67
|
-
timestamp: number;
|
|
68
|
-
/** Atomically replace only the provider-bound conversation before this run. */
|
|
69
|
-
freshContext?: boolean | undefined;
|
|
70
|
-
/** Images attached in the composer (paste / drop / file picker). The
|
|
71
|
-
* server converts these to canonical ImageBlocks ahead of the text. */
|
|
72
|
-
images?: WSUserMessageImage[];
|
|
73
|
-
/** @deprecated Legacy single-image field (a full data-URL). Servers
|
|
74
|
-
* still accept it; new clients send `images` instead. */
|
|
75
|
-
imageBase64?: string;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export interface WSTextDelta {
|
|
79
|
-
type: 'provider.text_delta';
|
|
80
|
-
payload: SessionScopedPayload & {
|
|
81
|
-
text: string;
|
|
82
|
-
messageId: string;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
export interface WSThinkingDelta {
|
|
86
|
-
type: 'provider.thinking_delta';
|
|
87
|
-
payload: SessionScopedPayload & {
|
|
88
|
-
text: string;
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
export interface WSCodeMapFileTarget {
|
|
92
|
-
filePath: string;
|
|
93
|
-
operation: 'read' | 'write' | 'edit' | 'delete' | 'search';
|
|
94
|
-
line?: number | undefined;
|
|
95
|
-
endLine?: number | undefined;
|
|
96
|
-
}
|
|
97
|
-
export interface WSToolUseStart {
|
|
98
|
-
type: 'tool.started';
|
|
99
|
-
payload: SessionScopedPayload & {
|
|
100
|
-
id: string;
|
|
101
|
-
name: string;
|
|
102
|
-
traceId?: string | undefined;
|
|
103
|
-
agentId?: string | undefined;
|
|
104
|
-
agentName?: string | undefined;
|
|
105
|
-
input?: unknown | undefined;
|
|
106
|
-
fileTargets?: WSCodeMapFileTarget[] | undefined;
|
|
107
|
-
messageId: string;
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
export interface WSToolProgress {
|
|
111
|
-
type: 'tool.progress';
|
|
112
|
-
payload: SessionScopedPayload & {
|
|
113
|
-
name: string;
|
|
114
|
-
id: string;
|
|
115
|
-
traceId?: string | undefined;
|
|
116
|
-
agentId?: string | undefined;
|
|
117
|
-
agentName?: string | undefined;
|
|
118
|
-
event: {
|
|
119
|
-
type: 'log' | 'warning' | 'metric' | 'file_changed' | 'partial_output';
|
|
120
|
-
text?: string | undefined;
|
|
121
|
-
data?: Record<string, unknown>;
|
|
122
|
-
path?: string | undefined;
|
|
123
|
-
operation?: 'write' | 'edit' | 'delete' | 'rename' | undefined;
|
|
124
|
-
line?: number | undefined;
|
|
125
|
-
endLine?: number | undefined;
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
export interface WSToolExecuted {
|
|
130
|
-
type: 'tool.executed';
|
|
131
|
-
payload: SessionScopedPayload & {
|
|
132
|
-
id: string;
|
|
133
|
-
name: string;
|
|
134
|
-
traceId?: string | undefined;
|
|
135
|
-
agentId?: string | undefined;
|
|
136
|
-
agentName?: string | undefined;
|
|
137
|
-
durationMs: number;
|
|
138
|
-
ok: boolean;
|
|
139
|
-
input?: unknown | undefined;
|
|
140
|
-
fileTargets?: WSCodeMapFileTarget[] | undefined;
|
|
141
|
-
output?: string | undefined;
|
|
142
|
-
/**
|
|
143
|
-
* SAGE Memory Injector block (`--- SAGE: … ---` header first, then one line
|
|
144
|
-
* per memory) split off `output` by the backend before its preview cap.
|
|
145
|
-
* Rendered as a memory card — never appended back onto the tool body.
|
|
146
|
-
*/
|
|
147
|
-
sage?: string[] | undefined;
|
|
148
|
-
outputBytes?: number | undefined;
|
|
149
|
-
outputTokens?: number | undefined;
|
|
150
|
-
outputLines?: number | undefined;
|
|
151
|
-
};
|
|
152
|
-
}
|
|
1
|
+
import type { Usage } from '@wrongstack/core/types';
|
|
2
|
+
import type { SessionScopedPayload, WSCodeMapFileTarget } from '@wrongstack/webui-protocol';
|
|
3
|
+
/** Moved to webui-protocol (conversation-core.ts), the single source the SDK shares. */
|
|
4
|
+
export type { SessionScopedPayload, WSCodeMapFileTarget, WSIterationCompleted, WSIterationStarted, WSProviderError, WSProviderRetry, WSRunResult, WSSessionEnd, WSSessionFramesResumed, WSSessionRunState, WSSessionStart, WSTextDelta, WSThinkingDelta, WSToolExecuted, WSToolProgress, WSToolUseStart, WSUserMessage, WSUserMessageImage, } from '@wrongstack/webui-protocol';
|
|
153
5
|
/** Subagent tool lifecycle dedicated to CodeMap; intentionally does not create chat bubbles. */
|
|
154
6
|
export interface WSCodeMapToolStarted {
|
|
155
7
|
type: 'codemap.tool_started';
|
|
@@ -183,20 +35,6 @@ export interface WSCodeMapToolExecuted {
|
|
|
183
35
|
fileTargets?: WSCodeMapFileTarget[] | undefined;
|
|
184
36
|
};
|
|
185
37
|
}
|
|
186
|
-
export interface WSIterationStarted {
|
|
187
|
-
type: 'iteration.started';
|
|
188
|
-
payload: SessionScopedPayload & {
|
|
189
|
-
index: number;
|
|
190
|
-
maxIterations?: number | undefined;
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
export interface WSIterationCompleted {
|
|
194
|
-
type: 'iteration.completed';
|
|
195
|
-
payload: SessionScopedPayload & {
|
|
196
|
-
index: number;
|
|
197
|
-
totalIterations: number;
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
38
|
export interface WSIterationLimitReached {
|
|
201
39
|
type: 'iteration.limit_reached';
|
|
202
40
|
payload: SessionScopedPayload & {
|
|
@@ -213,25 +51,6 @@ export interface WSProviderResponse {
|
|
|
213
51
|
messageId: string;
|
|
214
52
|
};
|
|
215
53
|
}
|
|
216
|
-
export interface WSProviderRetry {
|
|
217
|
-
type: 'provider.retry';
|
|
218
|
-
payload: SessionScopedPayload & {
|
|
219
|
-
providerId: string;
|
|
220
|
-
attempt: number;
|
|
221
|
-
delayMs: number;
|
|
222
|
-
status: number;
|
|
223
|
-
description: string;
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
export interface WSProviderError {
|
|
227
|
-
type: 'provider.error';
|
|
228
|
-
payload: SessionScopedPayload & {
|
|
229
|
-
providerId: string;
|
|
230
|
-
status: number;
|
|
231
|
-
description: string;
|
|
232
|
-
retryable: boolean;
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
54
|
export interface WSProviderFallback {
|
|
236
55
|
type: 'provider.fallback';
|
|
237
56
|
payload: SessionScopedPayload & {
|
|
@@ -344,21 +163,6 @@ export interface WSProviderStreamError {
|
|
|
344
163
|
message: string;
|
|
345
164
|
};
|
|
346
165
|
}
|
|
347
|
-
/**
|
|
348
|
-
* Whether one session's run is live, answered per declared tab.
|
|
349
|
-
*
|
|
350
|
-
* A reconnect is the hole this closes. `run.result` is what clears a lane's
|
|
351
|
-
* spinner, and it is broadcast once — a tab whose run finished while the
|
|
352
|
-
* socket was down never hears it, so it spins forever, counts as busy, refuses
|
|
353
|
-
* to be recycled and asks to abort a run that ended long ago. Only the tab in
|
|
354
|
-
* front gets a `session.start` on reconnect; this answers for all four.
|
|
355
|
-
*/
|
|
356
|
-
export interface WSSessionRunState {
|
|
357
|
-
type: 'session.run_state';
|
|
358
|
-
payload: SessionScopedPayload & {
|
|
359
|
-
isRunning: boolean;
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
166
|
export interface WSSessionResumeProgress {
|
|
363
167
|
type: 'session.resume_progress';
|
|
364
168
|
payload: SessionScopedPayload & {
|
|
@@ -367,20 +171,4 @@ export interface WSSessionResumeProgress {
|
|
|
367
171
|
totalBytes: number;
|
|
368
172
|
};
|
|
369
173
|
}
|
|
370
|
-
export interface WSRunResult {
|
|
371
|
-
type: 'run.result';
|
|
372
|
-
payload: SessionScopedPayload & {
|
|
373
|
-
/** Id of the user_message that initiated this run. */
|
|
374
|
-
requestId?: string | undefined;
|
|
375
|
-
status: 'done' | 'failed' | 'max_iterations' | 'aborted';
|
|
376
|
-
iterations: number;
|
|
377
|
-
finalText?: string | undefined;
|
|
378
|
-
error?: {
|
|
379
|
-
code: string;
|
|
380
|
-
message: string;
|
|
381
|
-
recoverable: boolean;
|
|
382
|
-
};
|
|
383
|
-
};
|
|
384
|
-
}
|
|
385
|
-
export {};
|
|
386
174
|
//# sourceMappingURL=protocol-core.d.ts.map
|
package/dist/types/runtime.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { UserInputRequest, UserInputResponse } from '@wrongstack/core/types';
|
|
2
2
|
import type { SessionScopedPayload } from './protocol-core.js';
|
|
3
|
+
/** Moved to webui-protocol (conversation-core.ts), the single source the SDK shares. */
|
|
4
|
+
export type { WSError, WSToolConfirmNeeded, WSToolConfirmResolved, WSToolConfirmResult, } from '@wrongstack/webui-protocol';
|
|
3
5
|
export interface WSUserInputRequested {
|
|
4
6
|
type: 'user.input_requested';
|
|
5
7
|
payload: SessionScopedPayload & {
|
|
@@ -11,7 +13,7 @@ export interface WSUserInputResolved {
|
|
|
11
13
|
payload: SessionScopedPayload & {
|
|
12
14
|
requestId: string;
|
|
13
15
|
response: UserInputResponse;
|
|
14
|
-
source: 'user' | 'abort';
|
|
16
|
+
source: 'user' | 'abort' | 'unattended';
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
export interface WSUserInputSubmit {
|
|
@@ -31,43 +33,6 @@ export interface WSSessionStats {
|
|
|
31
33
|
duration: number;
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
|
-
export interface WSError {
|
|
35
|
-
type: 'error';
|
|
36
|
-
payload: SessionScopedPayload & {
|
|
37
|
-
phase: string;
|
|
38
|
-
message: string;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export interface WSToolConfirmNeeded {
|
|
42
|
-
type: 'tool.confirm_needed';
|
|
43
|
-
payload: SessionScopedPayload & {
|
|
44
|
-
id: string;
|
|
45
|
-
toolName: string;
|
|
46
|
-
input: unknown;
|
|
47
|
-
suggestedPattern: string;
|
|
48
|
-
decisionSource?: string | undefined;
|
|
49
|
-
riskTier?: 'safe' | 'standard' | 'destructive' | undefined;
|
|
50
|
-
boundaryReason?: string | undefined;
|
|
51
|
-
deadlineAt?: number | undefined;
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
export interface WSToolConfirmResolved {
|
|
55
|
-
type: 'tool.confirm_resolved';
|
|
56
|
-
payload: SessionScopedPayload & {
|
|
57
|
-
id: string;
|
|
58
|
-
toolName: string;
|
|
59
|
-
decision: 'yes' | 'no' | 'always' | 'always-exact' | 'always-command' | 'always-tool' | 'deny' | 'abort';
|
|
60
|
-
source: 'brain_timeout' | 'abort';
|
|
61
|
-
rationale?: string | undefined;
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
export interface WSToolConfirmResult {
|
|
65
|
-
type: 'tool.confirm_result';
|
|
66
|
-
payload: SessionScopedPayload & {
|
|
67
|
-
id: string;
|
|
68
|
-
decision: 'yes' | 'no' | 'always' | 'always-exact' | 'always-command' | 'always-tool' | 'deny';
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
36
|
export interface WSTrustPersisted {
|
|
72
37
|
type: 'trust.persisted';
|
|
73
38
|
payload: SessionScopedPayload & {
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { SessionScopedPayload } from './protocol-core.js';
|
|
2
|
+
/** Both sides of a changed image; a side is absent when the file was added or deleted. */
|
|
3
|
+
export interface GitImageDiff {
|
|
4
|
+
old?: string | undefined;
|
|
5
|
+
new?: string | undefined;
|
|
6
|
+
oldBytes?: number | undefined;
|
|
7
|
+
newBytes?: number | undefined;
|
|
8
|
+
}
|
|
2
9
|
export type WSFilesGitServerMessage = {
|
|
3
10
|
type: 'codebase.index.server.shutdown_result';
|
|
4
11
|
payload: {
|
|
@@ -27,6 +34,19 @@ export type WSFilesGitServerMessage = {
|
|
|
27
34
|
error?: string | undefined;
|
|
28
35
|
sessionId?: string | undefined;
|
|
29
36
|
};
|
|
37
|
+
} | {
|
|
38
|
+
/** A project image as a data URL (see `lib/project-image.ts`). */
|
|
39
|
+
type: 'files.image';
|
|
40
|
+
payload: {
|
|
41
|
+
filePath: string;
|
|
42
|
+
dataUrl?: string | undefined;
|
|
43
|
+
bytes?: number | undefined;
|
|
44
|
+
/** The bytes are not a raster image the browser should show. */
|
|
45
|
+
notImage?: boolean | undefined;
|
|
46
|
+
tooLarge?: boolean | undefined;
|
|
47
|
+
error?: string | undefined;
|
|
48
|
+
sessionId?: string | undefined;
|
|
49
|
+
};
|
|
30
50
|
} | {
|
|
31
51
|
type: 'files.skeleton_result';
|
|
32
52
|
payload: {
|
|
@@ -188,6 +208,8 @@ export type WSFilesGitServerMessage = {
|
|
|
188
208
|
binary?: boolean | undefined;
|
|
189
209
|
tooLarge?: boolean | undefined;
|
|
190
210
|
error?: string | undefined;
|
|
211
|
+
/** A changed image: HEAD and working-tree versions as data URLs. */
|
|
212
|
+
image?: GitImageDiff | undefined;
|
|
191
213
|
};
|
|
192
214
|
} | {
|
|
193
215
|
type: 'projects.list';
|
|
@@ -122,9 +122,11 @@ export type WSMcpServerMessage = {
|
|
|
122
122
|
};
|
|
123
123
|
} | {
|
|
124
124
|
type: 'mcp.server.disconnected';
|
|
125
|
+
/** `terminal`: connect/reconnect exhausted; only `/mcp restart` brings it back. */
|
|
125
126
|
payload: {
|
|
126
127
|
name: string;
|
|
127
128
|
reason: string;
|
|
129
|
+
terminal?: boolean | undefined;
|
|
128
130
|
};
|
|
129
131
|
} | {
|
|
130
132
|
type: 'mcp.server.error';
|
|
@@ -138,6 +140,36 @@ export type WSMcpServerMessage = {
|
|
|
138
140
|
success: boolean;
|
|
139
141
|
message: string;
|
|
140
142
|
};
|
|
143
|
+
} | {
|
|
144
|
+
type: 'mcp.auth.status';
|
|
145
|
+
payload: {
|
|
146
|
+
serverName: string;
|
|
147
|
+
resource: string;
|
|
148
|
+
state: 'not_authorized' | 'pending' | 'authorized' | 'expired';
|
|
149
|
+
expiresAt?: number;
|
|
150
|
+
scopes: string[];
|
|
151
|
+
canRefresh: boolean;
|
|
152
|
+
};
|
|
153
|
+
} | {
|
|
154
|
+
type: 'mcp.auth.pending';
|
|
155
|
+
payload: {
|
|
156
|
+
name: string;
|
|
157
|
+
authorizationUrl: string;
|
|
158
|
+
redirectUri: string;
|
|
159
|
+
scopes: string[];
|
|
160
|
+
expiresAt: number;
|
|
161
|
+
clientIdSource: 'explicit' | 'stored' | 'registered';
|
|
162
|
+
};
|
|
163
|
+
} | {
|
|
164
|
+
type: 'mcp.server.auth_state';
|
|
165
|
+
payload: {
|
|
166
|
+
name: string;
|
|
167
|
+
state: 'authorized' | 'refreshed' | 'reauth_required' | 'removed' | 'failed';
|
|
168
|
+
resource: string;
|
|
169
|
+
expiresAt?: number;
|
|
170
|
+
scopes?: string[];
|
|
171
|
+
message?: string;
|
|
172
|
+
};
|
|
141
173
|
} | {
|
|
142
174
|
type: 'mcp.resources';
|
|
143
175
|
payload: {
|