@wrongstack/webui 1.0.24 → 1.0.26

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.
Files changed (219) hide show
  1. package/dist/assets/AgentRosterView-udJ14GYq.js +12 -0
  2. package/dist/assets/{AnalyticsDashboard-DgqJODVI.js → AnalyticsDashboard-DwF-0cUA.js} +1 -1
  3. package/dist/assets/AudienceMemoryPanel-DpBGeZv_.js +3 -0
  4. package/dist/assets/ChangesView-BfM0T_aS.js +3 -0
  5. package/dist/assets/ChimeraReviewsView-Q_5C4DU1.js +1 -0
  6. package/dist/assets/ChronicleDashboard-D6LnZzhy.js +1 -0
  7. package/dist/assets/CodeEditor-DonrWH9u.js +2 -0
  8. package/dist/assets/CodeMap-Dxtc378S.js +1 -0
  9. package/dist/assets/{CronJobsPanel-GTK038V9.js → CronJobsPanel-Cn2PQO_p.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-DX4OEuyp.js → DeadCodeScanPanel-Mc5py-kJ.js} +1 -1
  11. package/dist/assets/{DebugDashboard-CKp3sa_k.js → DebugDashboard-D0LRcT4J.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-DVUTYaP6.js → DesignGalleryView-DAD-wRUc.js} +1 -1
  13. package/dist/assets/GoalView-CqeSw0tK.js +1 -0
  14. package/dist/assets/KanbanView-V-bkFftp.js +3 -0
  15. package/dist/assets/{MailboxDetailView-CylnzTVc.js → MailboxDetailView-CTEjap3r.js} +1 -1
  16. package/dist/assets/{MemoryDrawer-DJ0Y98Z8.js → MemoryDrawer-RCduY0FV.js} +1 -1
  17. package/dist/assets/MemoryManager-B-p6-Bic.js +1 -0
  18. package/dist/assets/{ProcessMonitor-BnQ3vJtn.js → ProcessMonitor-B9tpPo4r.js} +1 -1
  19. package/dist/assets/PromptJournalView-DVNqlac9.js +1 -0
  20. package/dist/assets/ProviderTestView-mmfpnAbZ.js +1 -0
  21. package/dist/assets/QueuePanel-BB9qozjm.js +1 -0
  22. package/dist/assets/{RefreshDebugView-s6MyGpPq.js → RefreshDebugView-CCCWzq29.js} +1 -1
  23. package/dist/assets/{RepositoryHistoryView-CWi_Zo3F.js → RepositoryHistoryView-RQVRkkUU.js} +2 -2
  24. package/dist/assets/RequirementIntakeView-D_JRhgzW.js +1 -0
  25. package/dist/assets/{SageTabs-D6eTg3ix.js → SageTabs--k2hQTvl.js} +2 -2
  26. package/dist/assets/{SddFlowGraph-B-ptkFX6.js → SddFlowGraph-DKrrRXKy.js} +1 -1
  27. package/dist/assets/SddHub-B5XO56oY.js +2 -0
  28. package/dist/assets/{SessionInspectView-NSpj5WEN.js → SessionInspectView-j3VJwXNi.js} +1 -1
  29. package/dist/assets/SessionList-CCVHBseu.js +1 -0
  30. package/dist/assets/{SessionsDashboard-mF4PzdKY.js → SessionsDashboard-DsM7sXQw.js} +1 -1
  31. package/dist/assets/SetupScreen-DeuR8Y8S.js +1 -0
  32. package/dist/assets/{SkillDetailView-B9BFyB1i.js → SkillDetailView-BeZyGIpW.js} +3 -3
  33. package/dist/assets/TechStackView-CpSMRQE0.js +2 -0
  34. package/dist/assets/TerminalPanel-BVJ5w-5R.js +1 -0
  35. package/dist/assets/activity-BS2aW_NN.js +10 -0
  36. package/dist/assets/activity-CR2KFruY.js +10 -0
  37. package/dist/assets/activity-Cd0qM2Hx.js +10 -0
  38. package/dist/assets/activity-DyXRoY2s.js +10 -0
  39. package/dist/assets/activity-bBAOetvE.js +10 -0
  40. package/dist/assets/activity-fI3Jy_jD.js +10 -0
  41. package/dist/assets/activity-t6fUmVjo.js +10 -0
  42. package/dist/assets/{button-BbeB5Qm8.js → button-UuKTnoM-.js} +1 -1
  43. package/dist/assets/chat-9GLubejR.js +1 -0
  44. package/dist/assets/chat-B50ssTLh.js +1 -0
  45. package/dist/assets/chat-CDioiM1L.js +1 -0
  46. package/dist/assets/chat-Cll_3gXD.js +1 -0
  47. package/dist/assets/chat-Cqhc6jQa.js +1 -0
  48. package/dist/assets/chat-DN1MggWt.js +1 -0
  49. package/dist/assets/chat-fyvZyUZM.js +1 -0
  50. package/dist/assets/chat-store-uzGtJfDz.js +1 -0
  51. package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
  52. package/dist/assets/config-store-P5_updTQ.js +21 -0
  53. package/dist/assets/{dialog-b-Ai37sa.js → dialog-BDUaV5gY.js} +1 -1
  54. package/dist/assets/{empty-state-pfuS5znr.js → empty-state-BzoEa04Q.js} +1 -1
  55. package/dist/assets/{fonts-DRGbd-AM.js → fonts-C303yVU_.js} +2 -2
  56. package/dist/assets/i18n-t7rIS4DB.js +3 -0
  57. package/dist/assets/index-B4ELbNoz.js +181 -0
  58. package/dist/assets/index-qdrakcnP.css +1 -0
  59. package/dist/assets/{input-BA6D2L3K.js → input-DMnC2O7-.js} +1 -1
  60. package/dist/assets/{mailbox-store-ZQO_Rv6E.js → mailbox-store-DyOOYbni.js} +1 -1
  61. package/dist/assets/{roster-ws-Cv_PHlEV.js → roster-ws-szSqUkqP.js} +1 -1
  62. package/dist/assets/settings-BMHZcBqe.js +1 -0
  63. package/dist/assets/settings-BQ5J8WXE.js +1 -0
  64. package/dist/assets/settings-BfNJfO4z.js +1 -0
  65. package/dist/assets/settings-ClDQ01ie.js +1 -0
  66. package/dist/assets/settings-DD31lC4f.js +1 -0
  67. package/dist/assets/settings-Da3EIcna.js +1 -0
  68. package/dist/assets/settings-Dl_QM2QZ.js +1 -0
  69. package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
  70. package/dist/assets/stores-Cx52UOxM.js +7 -0
  71. package/dist/assets/toasts-3tM1krOo.js +1 -0
  72. package/dist/assets/toasts-BrHW33qA.js +1 -0
  73. package/dist/assets/toasts-Buww129h.js +1 -0
  74. package/dist/assets/toasts-CSN9Fy47.js +1 -0
  75. package/dist/assets/toasts-DOoYxbHd.js +1 -0
  76. package/dist/assets/toasts-DkDnbhs_.js +1 -0
  77. package/dist/assets/toasts-Jo4VH13n.js +1 -0
  78. package/dist/assets/ui-store-DI0iusYZ.js +1 -0
  79. package/dist/assets/{utils-CKsqCaP8.js → utils-B21Devim.js} +1 -1
  80. package/dist/assets/{vector-memory-panel-YWv6xcza.js → vector-memory-panel-DnX-ODHC.js} +1 -1
  81. package/dist/assets/{vendor-V3ydTHqN.js → vendor-BfBvt432.js} +28 -28
  82. package/dist/assets/{view-navigation-CpIPxhZp.js → view-navigation-Cvrp_uJm.js} +1 -1
  83. package/dist/components/BrowserLivePane.d.ts +2 -0
  84. package/dist/components/ChangesView.d.ts +3 -1
  85. package/dist/components/ChatInput/chat-input-bars.d.ts +1 -1
  86. package/dist/components/ChatInput/image-attachments.d.ts +19 -2
  87. package/dist/components/ChatInput/slash-routing.d.ts +18 -0
  88. package/dist/components/ChatInput/use-paste-drop.d.ts +3 -0
  89. package/dist/components/ChatInput/use-prompt-queue-view.d.ts +13 -0
  90. package/dist/components/ChatView/BackgroundShellStrip.d.ts +16 -0
  91. package/dist/components/ChatView/TerminalStrip.d.ts +8 -0
  92. package/dist/components/CodeMap.d.ts +0 -12
  93. package/dist/components/GoalPanel.d.ts +2 -1
  94. package/dist/components/ImageDiffView.d.ts +12 -0
  95. package/dist/components/KanbanTaskExecution.d.ts +64 -0
  96. package/dist/components/KanbanTaskInspector.d.ts +1 -1
  97. package/dist/components/MessageBubble/AttachmentGallery.d.ts +1 -1
  98. package/dist/components/MessageBubble/GeneratedImagePreview.d.ts +10 -0
  99. package/dist/components/SessionTabBar/summaries.d.ts +4 -0
  100. package/dist/components/SettingsPanel/LimitsSection.d.ts +7 -0
  101. package/dist/components/SettingsPanel/MCPSection.d.ts +1 -37
  102. package/dist/components/SettingsPanel/MCPServerCards.d.ts +67 -0
  103. package/dist/components/SettingsPanel/MCPServerDialog.d.ts +11 -0
  104. package/dist/components/SettingsPanel/PreferenceControls.d.ts +8 -0
  105. package/dist/components/SettingsPanel/ProviderSavedProfiles.d.ts +50 -0
  106. package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -79
  107. package/dist/components/SettingsPanel/SettingsNavigation.d.ts +12 -0
  108. package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -2
  109. package/dist/components/SettingsPanel/provider-section-types.d.ts +79 -0
  110. package/dist/components/SidePanel/SessionList.d.ts +1 -34
  111. package/dist/components/SidePanel/session-history.d.ts +61 -0
  112. package/dist/components/SystemPromptPresetEditor.d.ts +9 -0
  113. package/dist/components/TerminalPanel.d.ts +8 -1
  114. package/dist/components/WorkspaceDock.d.ts +2 -2
  115. package/dist/components/review/ReviewDiff.d.ts +21 -0
  116. package/dist/components/review/ReviewTray.d.ts +15 -0
  117. package/dist/components/review/review-diff-model.d.ts +31 -0
  118. package/dist/components/use-code-map-flow.d.ts +25 -0
  119. package/dist/components/use-office-map-canvas.d.ts +1 -1
  120. package/dist/components/use-office-map-topology.d.ts +31 -0
  121. package/dist/hooks/use-live-browser.d.ts +7 -0
  122. package/dist/hooks/useWebSocket.d.ts +1 -2
  123. package/dist/hooks/ws-handlers/goal-handlers.d.ts +2 -0
  124. package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
  125. package/dist/index.css +3013 -3013
  126. package/dist/index.html +18 -18
  127. package/dist/index.js +97375 -92924
  128. package/dist/lib/compact-file-tree.d.ts +30 -0
  129. package/dist/lib/project-image.d.ts +26 -0
  130. package/dist/lib/provider-warm.d.ts +3 -0
  131. package/dist/lib/ws-client-session-methods.d.ts +2 -0
  132. package/dist/lib/ws-client.d.ts +3 -0
  133. package/dist/stores/chat-lane-data.d.ts +153 -0
  134. package/dist/stores/chat-lanes.d.ts +3 -174
  135. package/dist/stores/chat-queue-helpers.d.ts +9 -0
  136. package/dist/stores/chat-store-types.d.ts +3 -0
  137. package/dist/stores/chat-store.d.ts +1 -1
  138. package/dist/stores/context-editor-store.d.ts +1 -1
  139. package/dist/stores/fleet-transcript.d.ts +14 -0
  140. package/dist/stores/git-changes-store.d.ts +3 -0
  141. package/dist/stores/goal-run-store.d.ts +8 -0
  142. package/dist/stores/goal-state-store.d.ts +3 -0
  143. package/dist/stores/goal-store.d.ts +9 -11
  144. package/dist/stores/local-prefs-defaults.d.ts +340 -0
  145. package/dist/stores/local-prefs.d.ts +2 -318
  146. package/dist/stores/notification-store.d.ts +9 -0
  147. package/dist/stores/review-store.d.ts +54 -0
  148. package/dist/stores/session-activity.d.ts +33 -0
  149. package/dist/stores/session-tab-store.d.ts +1 -46
  150. package/dist/stores/terminal-strip-store.d.ts +26 -0
  151. package/dist/stores/ui-store-chrome.d.ts +1 -1
  152. package/dist/stores/ui-store-persist.d.ts +2 -2
  153. package/dist/stores/ui-store-types.d.ts +3 -3
  154. package/dist/stores/ui-store.d.ts +5 -5
  155. package/dist/types/brain.d.ts +4 -2
  156. package/dist/types/client-message.d.ts +119 -11
  157. package/dist/types/prompt-queue.d.ts +55 -0
  158. package/dist/types/protocol-core.d.ts +4 -216
  159. package/dist/types/runtime.d.ts +3 -38
  160. package/dist/types/server-message-files.d.ts +22 -0
  161. package/dist/types/server-message-mcp.d.ts +30 -0
  162. package/dist/types/server-message-system.d.ts +110 -0
  163. package/dist/types/server-message.d.ts +4 -3
  164. package/dist/types/system.d.ts +2 -24
  165. package/package.json +10 -9
  166. package/dist/assets/AgentRosterView-Dq8Xa0WK.js +0 -12
  167. package/dist/assets/AudienceMemoryPanel-BVGdDVTT.js +0 -3
  168. package/dist/assets/ChangesView-BVyLENBb.js +0 -1
  169. package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +0 -1
  170. package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +0 -1
  171. package/dist/assets/CodeEditor-k3z3M0NG.js +0 -2
  172. package/dist/assets/CodeMap-CvHNQZEF.js +0 -1
  173. package/dist/assets/GoalView-D8G8e8YG.js +0 -1
  174. package/dist/assets/KanbanView-BMXGDqGo.js +0 -3
  175. package/dist/assets/MemoryManager-DfcsYPUB.js +0 -1
  176. package/dist/assets/PromptJournalView-D7k8Yh5a.js +0 -1
  177. package/dist/assets/ProviderTestView-DSd6kkWT.js +0 -1
  178. package/dist/assets/QueuePanel-79KiyZWD.js +0 -1
  179. package/dist/assets/RequirementIntakeView-D_Ea20fx.js +0 -1
  180. package/dist/assets/SddHub-CSVfLGpr.js +0 -2
  181. package/dist/assets/SessionList-BYRCs1AK.js +0 -1
  182. package/dist/assets/SetupScreen-BUZeJSZi.js +0 -1
  183. package/dist/assets/TechStackView-CXJilX0M.js +0 -2
  184. package/dist/assets/TerminalPanel-CAXevSAa.js +0 -1
  185. package/dist/assets/activity-B3wutYIE.js +0 -10
  186. package/dist/assets/activity-Be03cc7g.js +0 -10
  187. package/dist/assets/activity-CiYZ3y4e.js +0 -10
  188. package/dist/assets/activity-CmIA2MhR.js +0 -10
  189. package/dist/assets/activity-Cp5GhldB.js +0 -10
  190. package/dist/assets/activity-DFCf7l5d.js +0 -10
  191. package/dist/assets/activity-EbNUY7Ci.js +0 -10
  192. package/dist/assets/chat-6dE2AJNN.js +0 -1
  193. package/dist/assets/chat-B3AJmhGD.js +0 -1
  194. package/dist/assets/chat-BHsbpaVt.js +0 -1
  195. package/dist/assets/chat-BITJe8-v.js +0 -1
  196. package/dist/assets/chat-U-Jjb8_k.js +0 -1
  197. package/dist/assets/chat-_Xp5fDnj.js +0 -1
  198. package/dist/assets/chat-mSbSzPl5.js +0 -1
  199. package/dist/assets/chat-store-C7InoWAO.js +0 -1
  200. package/dist/assets/config-store-BbL0WxLE.js +0 -21
  201. package/dist/assets/i18n-Dv97urcO.js +0 -3
  202. package/dist/assets/index-CON0Nbm4.css +0 -1
  203. package/dist/assets/index-DX6tHUzs.js +0 -177
  204. package/dist/assets/settings-BCvuzOJ6.js +0 -1
  205. package/dist/assets/settings-DMPKd-4K.js +0 -1
  206. package/dist/assets/settings-DxQ2452f.js +0 -1
  207. package/dist/assets/settings-Dz3StaVx.js +0 -1
  208. package/dist/assets/settings-EBW1mlXc.js +0 -1
  209. package/dist/assets/settings-Er2LHp9d.js +0 -1
  210. package/dist/assets/settings-EzznCDaX.js +0 -1
  211. package/dist/assets/stores-DXn5tdr7.js +0 -7
  212. package/dist/assets/toasts-BsmyGP95.js +0 -1
  213. package/dist/assets/toasts-CgXHu8ZB.js +0 -1
  214. package/dist/assets/toasts-DZ6HdKgG.js +0 -1
  215. package/dist/assets/toasts-DizCJjAR.js +0 -1
  216. package/dist/assets/toasts-NC2MT4uN.js +0 -1
  217. package/dist/assets/toasts-bPl097de.js +0 -1
  218. package/dist/assets/toasts-tCVo15mP.js +0 -1
  219. package/dist/assets/ui-store-DxDwFHNK.js +0 -1
@@ -1,155 +1,7 @@
1
- import type { SessionMarker, SessionToolMeta, Usage } from '@wrongstack/core/types';
2
- export interface WSSessionStart {
3
- type: 'session.start';
4
- payload: {
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
@@ -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';
@@ -138,6 +138,36 @@ export type WSMcpServerMessage = {
138
138
  success: boolean;
139
139
  message: string;
140
140
  };
141
+ } | {
142
+ type: 'mcp.auth.status';
143
+ payload: {
144
+ serverName: string;
145
+ resource: string;
146
+ state: 'not_authorized' | 'pending' | 'authorized' | 'expired';
147
+ expiresAt?: number;
148
+ scopes: string[];
149
+ canRefresh: boolean;
150
+ };
151
+ } | {
152
+ type: 'mcp.auth.pending';
153
+ payload: {
154
+ name: string;
155
+ authorizationUrl: string;
156
+ redirectUri: string;
157
+ scopes: string[];
158
+ expiresAt: number;
159
+ clientIdSource: 'explicit' | 'stored' | 'registered';
160
+ };
161
+ } | {
162
+ type: 'mcp.server.auth_state';
163
+ payload: {
164
+ name: string;
165
+ state: 'authorized' | 'refreshed' | 'reauth_required' | 'removed' | 'failed';
166
+ resource: string;
167
+ expiresAt?: number;
168
+ scopes?: string[];
169
+ message?: string;
170
+ };
141
171
  } | {
142
172
  type: 'mcp.resources';
143
173
  payload: {
@@ -73,12 +73,54 @@ export type WSSystemMiscServerMessage = {
73
73
  } | {
74
74
  type: 'goal-state.updated';
75
75
  payload: Record<string, unknown> | null;
76
+ } | {
77
+ type: 'goal-state.refining';
78
+ payload: {
79
+ missionId: string;
80
+ active: boolean;
81
+ };
82
+ } | {
83
+ type: 'goal-state.error';
84
+ payload: {
85
+ message: string;
86
+ };
76
87
  } | {
77
88
  type: 'prefs.updated';
78
89
  payload: Record<string, unknown>;
79
90
  } | {
80
91
  type: 'system_prompt.info';
81
92
  payload: WSSystemPromptInfo;
93
+ } | {
94
+ type: 'system_prompt.presets';
95
+ payload: {
96
+ presets?: WSSystemPromptPreset[];
97
+ active?: Partial<Record<'lite' | 'default' | 'pro', string>>;
98
+ projectActive?: Partial<Record<'lite' | 'default' | 'pro', string>>;
99
+ selectedId?: string;
100
+ error?: string;
101
+ };
102
+ } | {
103
+ type: 'system_prompt.preset_validation';
104
+ payload: {
105
+ issues: Array<{
106
+ severity: 'error' | 'warning';
107
+ line: number;
108
+ message: string;
109
+ }>;
110
+ };
111
+ } | {
112
+ type: 'system_prompt.preset_preview';
113
+ payload: {
114
+ rendered: string;
115
+ toolNames: string[];
116
+ tier: string;
117
+ requestId: number;
118
+ issues: Array<{
119
+ severity: 'error' | 'warning';
120
+ line: number;
121
+ message: string;
122
+ }>;
123
+ };
82
124
  } | {
83
125
  type: 'techstack.job.started';
84
126
  payload: {
@@ -198,9 +240,66 @@ export type WSSystemMiscServerMessage = {
198
240
  status: 'running' | 'exited' | 'killed';
199
241
  protected?: boolean | undefined;
200
242
  background?: boolean | undefined;
243
+ /** A background shell whose output `process.output` can read. */
244
+ hasOutput?: boolean | undefined;
201
245
  sessionId?: string | undefined;
202
246
  }>;
203
247
  };
248
+ } | {
249
+ type: 'process.output';
250
+ payload: {
251
+ pid: number;
252
+ /** Last lines of the process's output log. */
253
+ lines: string[];
254
+ /** The process has exited (or was never tracked). */
255
+ gone?: boolean | undefined;
256
+ sessionId?: string | undefined;
257
+ };
258
+ } | {
259
+ type: 'browser.live.list';
260
+ payload: {
261
+ sessions: Array<{
262
+ id: string;
263
+ ownerId: string;
264
+ url: string;
265
+ title: string;
266
+ createdAt: string;
267
+ lastUsedAt: string;
268
+ }>;
269
+ sessionId?: string | undefined;
270
+ };
271
+ } | {
272
+ type: 'browser.live.frame';
273
+ /** One screencast frame, a base64 JPEG. */
274
+ payload: {
275
+ id: string;
276
+ data: string;
277
+ width: number;
278
+ height: number;
279
+ sessionId?: string;
280
+ };
281
+ } | {
282
+ type: 'browser.live.details';
283
+ payload: {
284
+ id: string;
285
+ url?: string | undefined;
286
+ title?: string | undefined;
287
+ console?: Array<{
288
+ level: string;
289
+ text: string;
290
+ at: string;
291
+ }> | undefined;
292
+ network?: Array<{
293
+ method: string;
294
+ url: string;
295
+ status?: number;
296
+ failed?: boolean;
297
+ at: string;
298
+ }> | undefined;
299
+ /** The browser session has closed. */
300
+ gone?: boolean | undefined;
301
+ sessionId?: string | undefined;
302
+ };
204
303
  } | {
205
304
  type: 'brain.status';
206
305
  payload: {
@@ -400,4 +499,15 @@ export interface WSSystemPromptInfo {
400
499
  variants: WSSystemPromptVariantInfo[];
401
500
  error?: string | undefined;
402
501
  }
502
+ export interface WSSystemPromptPreset {
503
+ id: string;
504
+ name: string;
505
+ baseVariant: 'lite' | 'default' | 'pro';
506
+ baseHash: string;
507
+ baseText: string;
508
+ currentBaseText: string;
509
+ text: string;
510
+ revision: number;
511
+ sourceChanged: boolean;
512
+ }
403
513
  //# sourceMappingURL=server-message-system.d.ts.map
@@ -2,7 +2,8 @@ import type { ChronicleFacet, ChronicleFacetValue, ChronicleGraphResult, Chronic
2
2
  import type { WSCollabAnnotationAdded, WSCollabAnnotationResolved, WSCollabEvent, WSCollabInjectionGranted, WSCollabParticipantJoined, WSCollabParticipantLeft, WSCollabPauseGranted, WSCollabPauseReleased, WSCollabState } from './collab.js';
3
3
  import type { AutoHealStatusEvent, ConnectionsHealthReport, ServiceActionResult } from './connections.js';
4
4
  import type { WSAgentStatusChanged, WSAgentTimelineMessage, WSEternalIteration, WSGoalAssessResult, WSGoalLifecycle, WSGoalList, WSGoalProgress, WSGoalState, WSKanbanResult, WSKanbanTaskActivity, WSModesList, WSWorktreeCleanupResult, WSWorktreeDiffResult, WSWorktreeEvent, WSWorktreeMergeResult, WSWorktreeOrphans, WSWorktreeState } from './goal-kanban-worktree.js';
5
- import type { WSCodeMapToolExecuted, WSCodeMapToolStarted, WSIterationCompleted, WSIterationLimitReached, WSIterationStarted, WSProviderActiveBlocked, WSProviderAuditHistory, WSProviderError, WSProviderFallback, WSProviderFallbackPending, WSProviderQuota, WSProviderResponse, WSProviderRetry, WSProviderStatusChanged, WSProviderStatusSnapshot, WSProviderStreamError, WSRunResult, WSSessionEnd, WSSessionResumeProgress, WSSessionRunState, WSSessionStart, WSTextDelta, WSThinkingDelta, WSToolExecuted, WSToolProgress, WSToolUseStart } from './protocol-core.js';
5
+ import type { WSQueueDrained, WSQueueState } from './prompt-queue.js';
6
+ import type { WSCodeMapToolExecuted, WSCodeMapToolStarted, WSIterationCompleted, WSIterationLimitReached, WSIterationStarted, WSProviderActiveBlocked, WSProviderAuditHistory, WSProviderError, WSProviderFallback, WSProviderFallbackPending, WSProviderQuota, WSProviderResponse, WSProviderRetry, WSProviderStatusChanged, WSProviderStatusSnapshot, WSProviderStreamError, WSRunResult, WSSessionEnd, WSSessionFramesResumed, WSSessionResumeProgress, WSSessionRunState, WSSessionStart, WSTextDelta, WSThinkingDelta, WSToolExecuted, WSToolProgress, WSToolUseStart } from './protocol-core.js';
6
7
  import type { WSCompactionFailed, WSContextCompacted, WSContextDebug, WSContextEditorApplied, WSContextEditorSnapshot, WSContextEditorValidation, WSContextMaxContext, WSContextModeChanged, WSContextModesList, WSContextPct, WSContextRepaired, WSDelegateCompleted, WSDelegateStarted, WSDelegationAutoWakeStarted, WSDelegationAutoWakeSuppressed, WSDelegationDeliveryPending, WSError, WSMemoryList, WSSessionStats, WSTokenCostEstimateUnavailable, WSTokenThreshold, WSToolConfirmNeeded, WSToolConfirmResolved, WSToolLoopDetected, WSToolsList, WSTopicAdviceResult, WSTrustPersisted, WSUserInputRequested, WSUserInputResolved } from './runtime.js';
7
8
  import type { WSMemorySageBackfillRecoverable, WSMemorySageCandidateResolve, WSMemorySageDelete, WSMemorySageForFile, WSMemorySageGet, WSMemorySageGraph, WSMemorySageList, WSMemorySageListCandidates, WSMemorySageListPage, WSMemorySageRecover, WSMemorySageRemember, WSMemorySageSearchBreakdown, WSMemorySageUpdate } from './sage.js';
8
9
  import type { WSChimeraServerMessage } from './server-message-chimera.js';
@@ -12,7 +13,7 @@ import type { WSMcpServerMessage } from './server-message-mcp.js';
12
13
  import type { WSSystemMiscServerMessage } from './server-message-system.js';
13
14
  import type { WSDesignList, WSDesignMaterialize, WSDesignSet, WSDesignState, WSDesignSwap, WSDesignTune, WSDesignUse, WSDesignVerify, WSSkillContent, WSSkillsCreated, WSSkillsEdited, WSSkillsExported, WSSkillsInstalled, WSSkillsList, WSSkillsUninstalled, WSSkillsUpdated } from './skills-design.js';
14
15
  import type { WSAuthOAuthProviders, WSAuthOAuthStatus, WSCatalogModelSearchResult, WSCompletionResult, WSDiagGet, WSFilesList, WSKeyOperationResult, WSModelSwitchResult, WSProviderCatalog, WSProviderModels, WSProviderModelTestComplete, WSProviderModelTestResult, WSProviderModelTestStarted, WSProviderProbe, WSSavedProviders, WSSessionInspect, WSSessionsList, WSSideEffects, WSStatsGet, WSTodosCleared, WSTodosUpdated } from './system.js';
15
- export type WSServerMessage = WSSessionStart | WSSessionEnd | WSTextDelta | WSThinkingDelta | WSToolUseStart | WSToolProgress | WSToolExecuted | WSCodeMapToolStarted | WSCodeMapToolExecuted | WSIterationStarted | WSIterationCompleted | WSIterationLimitReached | WSProviderResponse | WSProviderRetry | WSProviderAuditHistory | WSProviderError | WSProviderFallback | WSProviderFallbackPending | WSProviderStatusChanged | WSProviderQuota | WSProviderStatusSnapshot | WSProviderActiveBlocked | WSProviderStreamError | WSRunResult | WSSessionRunState | WSSessionResumeProgress | WSSessionStats | WSError | WSToolConfirmNeeded | WSToolConfirmResolved | WSUserInputRequested | WSUserInputResolved | WSTrustPersisted | WSToolLoopDetected | WSDelegateStarted | WSDelegateCompleted | WSDelegationDeliveryPending | WSDelegationAutoWakeStarted | WSDelegationAutoWakeSuppressed | WSContextDebug | WSContextCompacted | WSCompactionFailed | WSContextRepaired | WSContextEditorSnapshot | WSContextEditorValidation | WSContextEditorApplied | WSContextPct | WSTopicAdviceResult | WSContextMaxContext | WSTokenThreshold | WSTokenCostEstimateUnavailable | WSContextModesList | WSContextModeChanged | WSToolsList | WSMemoryList | WSMemorySageList | WSMemorySageListPage | WSMemorySageListCandidates | WSMemorySageGet | WSMemorySageGraph | WSMemorySageSearchBreakdown | WSMemorySageUpdate | WSMemorySageRemember | WSMemorySageDelete | WSMemorySageRecover | WSMemorySageCandidateResolve | WSMemorySageBackfillRecoverable | WSMemorySageForFile | WSSkillsList | WSSkillContent | WSDesignList | WSDesignUse | WSDesignState | WSDesignSet | WSDesignTune | WSDesignSwap | WSDesignMaterialize | WSDesignVerify | WSSkillsInstalled | WSSkillsUninstalled | WSSkillsUpdated | WSSkillsCreated | WSSkillsEdited | WSSkillsExported | WSDiagGet | WSStatsGet | {
16
+ export type WSServerMessage = WSQueueState | WSQueueDrained | WSSessionStart | WSSessionEnd | WSTextDelta | WSThinkingDelta | WSToolUseStart | WSToolProgress | WSToolExecuted | WSCodeMapToolStarted | WSCodeMapToolExecuted | WSIterationStarted | WSIterationCompleted | WSIterationLimitReached | WSProviderResponse | WSProviderRetry | WSProviderAuditHistory | WSProviderError | WSProviderFallback | WSProviderFallbackPending | WSProviderStatusChanged | WSProviderQuota | WSProviderStatusSnapshot | WSProviderActiveBlocked | WSProviderStreamError | WSRunResult | WSSessionFramesResumed | WSSessionRunState | WSSessionResumeProgress | WSSessionStats | WSError | WSToolConfirmNeeded | WSToolConfirmResolved | WSUserInputRequested | WSUserInputResolved | WSTrustPersisted | WSToolLoopDetected | WSDelegateStarted | WSDelegateCompleted | WSDelegationDeliveryPending | WSDelegationAutoWakeStarted | WSDelegationAutoWakeSuppressed | WSContextDebug | WSContextCompacted | WSCompactionFailed | WSContextRepaired | WSContextEditorSnapshot | WSContextEditorValidation | WSContextEditorApplied | WSContextPct | WSTopicAdviceResult | WSContextMaxContext | WSTokenThreshold | WSTokenCostEstimateUnavailable | WSContextModesList | WSContextModeChanged | WSToolsList | WSMemoryList | WSMemorySageList | WSMemorySageListPage | WSMemorySageListCandidates | WSMemorySageGet | WSMemorySageGraph | WSMemorySageSearchBreakdown | WSMemorySageUpdate | WSMemorySageRemember | WSMemorySageDelete | WSMemorySageRecover | WSMemorySageCandidateResolve | WSMemorySageBackfillRecoverable | WSMemorySageForFile | WSSkillsList | WSSkillContent | WSDesignList | WSDesignUse | WSDesignState | WSDesignSet | WSDesignTune | WSDesignSwap | WSDesignMaterialize | WSDesignVerify | WSSkillsInstalled | WSSkillsUninstalled | WSSkillsUpdated | WSSkillsCreated | WSSkillsEdited | WSSkillsExported | WSDiagGet | WSStatsGet | {
16
17
  type: 'connections.health_result';
17
18
  payload: ConnectionsHealthReport;
18
19
  } | {
@@ -64,7 +65,7 @@ export type WSServerMessage = WSSessionStart | WSSessionEnd | WSTextDelta | WSTh
64
65
  };
65
66
  } | WSSessionsList | WSSessionInspect | WSProviderCatalog | WSCatalogModelSearchResult | WSProviderModels | WSProviderModelTestStarted | WSProviderModelTestResult | WSProviderModelTestComplete | WSSavedProviders | WSProviderProbe | WSKeyOperationResult | WSModelSwitchResult | WSAuthOAuthStatus | WSAuthOAuthProviders | WSFilesList | WSFilesGitServerMessage | WSCompletionResult | WSTodosUpdated | WSTodosCleared | WSModesList | WSGoalState | WSGoalProgress | WSGoalLifecycle | WSGoalList | WSGoalAssessResult | WSEternalIteration | WSAgentTimelineMessage | WSAgentStatusChanged | WSKanbanResult | WSKanbanTaskActivity | WSWorktreeState | WSWorktreeEvent | WSWorktreeOrphans | WSWorktreeCleanupResult | WSWorktreeMergeResult | WSWorktreeDiffResult | WSCollabState | WSCollabParticipantJoined | WSCollabParticipantLeft | WSCollabEvent | WSCollabAnnotationAdded | WSCollabAnnotationResolved | WSCollabPauseGranted | WSCollabPauseReleased | WSCollabInjectionGranted | WSSideEffects | WSMcpServerMessage | WSChimeraServerMessage | WSFleetServerMessage | WSSystemMiscServerMessage;
66
67
  export type { WSChimeraServerMessage } from './server-message-chimera.js';
67
- export type { WSFilesGitServerMessage } from './server-message-files.js';
68
+ export type { GitImageDiff, WSFilesGitServerMessage } from './server-message-files.js';
68
69
  export type { WSFleetServerMessage } from './server-message-fleet.js';
69
70
  export type { WSMcpServerMessage } from './server-message-mcp.js';
70
71
  export type { WSPromptJournalEntry, WSPromptsJournalPayload, WSSystemMiscServerMessage, WSSystemPromptInfo, WSSystemPromptVariantInfo, } from './server-message-system.js';
@@ -1,5 +1,7 @@
1
1
  import type { ModelProvenance } 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 { WSSessionsList, } from '@wrongstack/webui-protocol';
3
5
  export interface WSDiagGet {
4
6
  type: 'diag.get';
5
7
  payload: SessionScopedPayload & {
@@ -80,30 +82,6 @@ export interface WSSideEffects {
80
82
  }>;
81
83
  };
82
84
  }
83
- export interface WSSessionsList {
84
- type: 'sessions.list';
85
- payload: {
86
- sessions: Array<{
87
- id: string;
88
- title: string;
89
- name?: string | undefined;
90
- startedAt: string;
91
- endedAt?: string | undefined;
92
- model: string;
93
- provider: string;
94
- tokenTotal: number;
95
- iterationCount?: number | undefined;
96
- toolCallCount?: number | undefined;
97
- toolErrorCount?: number | undefined;
98
- fileChangeCount?: number | undefined;
99
- toolBreakdown?: Record<string, number> | undefined;
100
- compactionCount?: number | undefined;
101
- outcome?: 'completed' | 'error' | 'timeout' | 'aborted' | undefined;
102
- isCurrent: boolean;
103
- }>;
104
- error?: string | undefined;
105
- };
106
- }
107
85
  export interface WSSessionInspect {
108
86
  type: 'session.inspect';
109
87
  payload: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/webui",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "license": "MIT",
5
5
  "description": "Browser-based WebUI for WrongStack — React + Vite frontend. The WebSocket backend lives in the separate @wrongstack/webui-server package (extracted in PR #018b to remove the CLI -> @wrongstack/webui/server cross-package edge).",
6
6
  "keywords": [
@@ -87,12 +87,12 @@
87
87
  "@radix-ui/react-tabs": "^1.1.21",
88
88
  "@tanstack/react-virtual": "^3.14.12",
89
89
  "@uiw/react-textarea-code-editor": "^3.1.1",
90
- "@wrongstack/core": "1.0.24",
91
- "@wrongstack/kanban": "1.0.24",
92
- "@wrongstack/plugins": "1.0.24",
93
- "@wrongstack/providers": "1.0.24",
94
- "@wrongstack/tools": "1.0.24",
95
- "@wrongstack/webui-protocol": "1.0.24",
90
+ "@wrongstack/core": "1.0.26",
91
+ "@wrongstack/kanban": "1.0.26",
92
+ "@wrongstack/plugins": "1.0.26",
93
+ "@wrongstack/providers": "1.0.26",
94
+ "@wrongstack/tools": "1.0.26",
95
+ "@wrongstack/webui-protocol": "1.0.26",
96
96
  "@xterm/addon-fit": "^0.11.0",
97
97
  "@xterm/xterm": "^6.0.0",
98
98
  "@xyflow/react": "^12.11.6",
@@ -128,8 +128,8 @@
128
128
  "@types/ws": "^8.18.1",
129
129
  "@vitejs/plugin-react": "^6.1.1",
130
130
  "@vitest/coverage-v8": "^5.0.0",
131
- "@wrongstack/sdd": "1.0.24",
132
- "@wrongstack/webui-server": "1.0.24",
131
+ "@wrongstack/sdd": "1.0.26",
132
+ "@wrongstack/webui-server": "1.0.26",
133
133
  "jsdom": "^30.0.1",
134
134
  "tailwindcss": "^4.3.3",
135
135
  "typescript": "^7.0.2",
@@ -142,6 +142,7 @@
142
142
  "typecheck": "tsc --noEmit",
143
143
  "test": "vitest run",
144
144
  "test:user-input-browser": "node tests/user-input-browser-smoke.mjs",
145
+ "test:page-scroll-browser": "node tests/page-scroll-browser-smoke.mjs",
145
146
  "test:watch": "vitest",
146
147
  "test:coverage": "node ../../scripts/coverage-lock.mjs node ../../scripts/run-vitest-coverage.mjs run --coverage"
147
148
  }