@wrongstack/webui-server 0.293.0 → 0.295.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +19499 -14317
  4. package/dist/index.js.map +4 -4
  5. package/dist/protocol/client-conversation.d.ts +3 -0
  6. package/dist/protocol/client-conversation.d.ts.map +1 -0
  7. package/dist/protocol/client-integrations.d.ts +3 -0
  8. package/dist/protocol/client-integrations.d.ts.map +1 -0
  9. package/dist/protocol/client-operations.d.ts +3 -0
  10. package/dist/protocol/client-operations.d.ts.map +1 -0
  11. package/dist/protocol/client-workspace.d.ts +3 -0
  12. package/dist/protocol/client-workspace.d.ts.map +1 -0
  13. package/dist/protocol/connection-fsm.d.ts +39 -0
  14. package/dist/protocol/connection-fsm.d.ts.map +1 -0
  15. package/dist/protocol/decoder.d.ts +6 -0
  16. package/dist/protocol/decoder.d.ts.map +1 -0
  17. package/dist/protocol/index.d.ts +8 -0
  18. package/dist/protocol/index.d.ts.map +1 -0
  19. package/dist/protocol/index.js +874 -0
  20. package/dist/protocol/index.js.map +7 -0
  21. package/dist/protocol/projections.d.ts +113 -0
  22. package/dist/protocol/projections.d.ts.map +1 -0
  23. package/dist/protocol/registry.d.ts +6 -0
  24. package/dist/protocol/registry.d.ts.map +1 -0
  25. package/dist/protocol/replay-payload.d.ts +41 -0
  26. package/dist/protocol/replay-payload.d.ts.map +1 -0
  27. package/dist/protocol/server-conversation.d.ts +3 -0
  28. package/dist/protocol/server-conversation.d.ts.map +1 -0
  29. package/dist/protocol/server-integrations.d.ts +3 -0
  30. package/dist/protocol/server-integrations.d.ts.map +1 -0
  31. package/dist/protocol/server-operations.d.ts +4 -0
  32. package/dist/protocol/server-operations.d.ts.map +1 -0
  33. package/dist/protocol/server-workspace.d.ts +3 -0
  34. package/dist/protocol/server-workspace.d.ts.map +1 -0
  35. package/dist/protocol/types.d.ts +24 -0
  36. package/dist/protocol/types.d.ts.map +1 -0
  37. package/dist/protocol/version.d.ts +20 -0
  38. package/dist/protocol/version.d.ts.map +1 -0
  39. package/dist/server/agent-roster-handlers.d.ts +31 -0
  40. package/dist/server/agent-roster-handlers.d.ts.map +1 -0
  41. package/dist/server/agent-roster-routes.d.ts +8 -0
  42. package/dist/server/agent-roster-routes.d.ts.map +1 -0
  43. package/dist/server/autonomy-routes.d.ts +9 -0
  44. package/dist/server/autonomy-routes.d.ts.map +1 -0
  45. package/dist/server/backend-services.d.ts +19 -6
  46. package/dist/server/backend-services.d.ts.map +1 -1
  47. package/dist/server/boot.d.ts +4 -1
  48. package/dist/server/boot.d.ts.map +1 -1
  49. package/dist/server/brain-handlers.d.ts +47 -0
  50. package/dist/server/brain-handlers.d.ts.map +1 -0
  51. package/dist/server/chronicle-routes.d.ts +14 -0
  52. package/dist/server/chronicle-routes.d.ts.map +1 -0
  53. package/dist/server/client-presence.d.ts +26 -0
  54. package/dist/server/client-presence.d.ts.map +1 -0
  55. package/dist/server/client-transport-routes.d.ts +8 -0
  56. package/dist/server/client-transport-routes.d.ts.map +1 -0
  57. package/dist/server/codebase-indexing.d.ts +3 -1
  58. package/dist/server/codebase-indexing.d.ts.map +1 -1
  59. package/dist/server/codemap-cache.d.ts +14 -0
  60. package/dist/server/codemap-cache.d.ts.map +1 -0
  61. package/dist/server/codemap-handlers.d.ts +2 -3
  62. package/dist/server/codemap-handlers.d.ts.map +1 -1
  63. package/dist/server/codemap-telemetry.d.ts.map +1 -1
  64. package/dist/server/collaboration-ws-handler.d.ts +3 -1
  65. package/dist/server/collaboration-ws-handler.d.ts.map +1 -1
  66. package/dist/server/completion-handlers.d.ts +2 -1
  67. package/dist/server/completion-handlers.d.ts.map +1 -1
  68. package/dist/server/completion-routes.d.ts +7 -0
  69. package/dist/server/completion-routes.d.ts.map +1 -0
  70. package/dist/server/config-doctor.d.ts +11 -0
  71. package/dist/server/config-doctor.d.ts.map +1 -0
  72. package/dist/server/connection-handler.d.ts +9 -46
  73. package/dist/server/connection-handler.d.ts.map +1 -1
  74. package/dist/server/connection-lifecycle.d.ts +43 -0
  75. package/dist/server/connection-lifecycle.d.ts.map +1 -0
  76. package/dist/server/content-routes.d.ts +15 -0
  77. package/dist/server/content-routes.d.ts.map +1 -0
  78. package/dist/server/conversation-operations.d.ts +28 -0
  79. package/dist/server/conversation-operations.d.ts.map +1 -0
  80. package/dist/server/conversation-routes.d.ts +10 -0
  81. package/dist/server/conversation-routes.d.ts.map +1 -0
  82. package/dist/server/custom-context-modes.d.ts +1 -1
  83. package/dist/server/custom-context-modes.d.ts.map +1 -1
  84. package/dist/server/design-handlers.d.ts +8 -0
  85. package/dist/server/design-handlers.d.ts.map +1 -1
  86. package/dist/server/discover-mailbox-bridge.d.ts.map +1 -1
  87. package/dist/server/embedded-host-adapters.d.ts +96 -0
  88. package/dist/server/embedded-host-adapters.d.ts.map +1 -0
  89. package/dist/server/embedded-lifecycle.d.ts +113 -0
  90. package/dist/server/embedded-lifecycle.d.ts.map +1 -0
  91. package/dist/server/embedded-message-router.d.ts +64 -0
  92. package/dist/server/embedded-message-router.d.ts.map +1 -0
  93. package/dist/server/entry.js +17227 -14052
  94. package/dist/server/entry.js.map +4 -4
  95. package/dist/server/eternal-iteration-broadcast.d.ts +1 -1
  96. package/dist/server/eternal-iteration-broadcast.d.ts.map +1 -1
  97. package/dist/server/file-handlers.d.ts.map +1 -1
  98. package/dist/server/frontend-static-serve.d.ts +133 -0
  99. package/dist/server/frontend-static-serve.d.ts.map +1 -0
  100. package/dist/server/git-process.d.ts +4 -0
  101. package/dist/server/git-process.d.ts.map +1 -0
  102. package/dist/server/goal-snapshot-routes.d.ts +7 -0
  103. package/dist/server/goal-snapshot-routes.d.ts.map +1 -0
  104. package/dist/server/goal-ws-handler.d.ts +3 -1
  105. package/dist/server/goal-ws-handler.d.ts.map +1 -1
  106. package/dist/server/handlers/worklist-handlers.d.ts +14 -20
  107. package/dist/server/handlers/worklist-handlers.d.ts.map +1 -1
  108. package/dist/server/handlers.js +150 -121
  109. package/dist/server/handlers.js.map +3 -3
  110. package/dist/server/host-routes.d.ts +7 -0
  111. package/dist/server/host-routes.d.ts.map +1 -0
  112. package/dist/server/http-server/analytics-handler.d.ts +2 -0
  113. package/dist/server/http-server/analytics-handler.d.ts.map +1 -1
  114. package/dist/server/http-server/api-handlers.d.ts.map +1 -1
  115. package/dist/server/http-server.d.ts +20 -23
  116. package/dist/server/http-server.d.ts.map +1 -1
  117. package/dist/server/index.d.ts +57 -22
  118. package/dist/server/index.d.ts.map +1 -1
  119. package/dist/server/instance-registry.d.ts +1 -3
  120. package/dist/server/instance-registry.d.ts.map +1 -1
  121. package/dist/server/introspection-routes.d.ts +19 -0
  122. package/dist/server/introspection-routes.d.ts.map +1 -0
  123. package/dist/server/kanban-board-watcher.d.ts +19 -0
  124. package/dist/server/kanban-board-watcher.d.ts.map +1 -0
  125. package/dist/server/kanban-dispatch.d.ts +42 -0
  126. package/dist/server/kanban-dispatch.d.ts.map +1 -0
  127. package/dist/server/kanban-host-routes.d.ts +10 -0
  128. package/dist/server/kanban-host-routes.d.ts.map +1 -0
  129. package/dist/server/kanban-routes.d.ts +13 -3
  130. package/dist/server/kanban-routes.d.ts.map +1 -1
  131. package/dist/server/kanban-run-mirror.d.ts +76 -0
  132. package/dist/server/kanban-run-mirror.d.ts.map +1 -0
  133. package/dist/server/kanban-supervisor.d.ts +47 -0
  134. package/dist/server/kanban-supervisor.d.ts.map +1 -0
  135. package/dist/server/mailbox-handlers.d.ts +12 -4
  136. package/dist/server/mailbox-handlers.d.ts.map +1 -1
  137. package/dist/server/mailbox-routes.d.ts +8 -0
  138. package/dist/server/mailbox-routes.d.ts.map +1 -1
  139. package/dist/server/mcp-handlers.d.ts +4 -0
  140. package/dist/server/mcp-handlers.d.ts.map +1 -1
  141. package/dist/server/memory-handlers.d.ts +54 -46
  142. package/dist/server/memory-handlers.d.ts.map +1 -1
  143. package/dist/server/memory-routes.d.ts +11 -0
  144. package/dist/server/memory-routes.d.ts.map +1 -0
  145. package/dist/server/message-dispatcher.d.ts +3 -4
  146. package/dist/server/message-dispatcher.d.ts.map +1 -1
  147. package/dist/server/mode-handlers.d.ts +6 -15
  148. package/dist/server/mode-handlers.d.ts.map +1 -1
  149. package/dist/server/mode-operations.d.ts +24 -0
  150. package/dist/server/mode-operations.d.ts.map +1 -0
  151. package/dist/server/mode-routes.d.ts +2 -0
  152. package/dist/server/mode-routes.d.ts.map +1 -1
  153. package/dist/server/model-auto-discovery.d.ts +1 -1
  154. package/dist/server/model-auto-discovery.d.ts.map +1 -1
  155. package/dist/server/model-catalog.d.ts +1 -1
  156. package/dist/server/model-catalog.d.ts.map +1 -1
  157. package/dist/server/model-operations.d.ts +29 -0
  158. package/dist/server/model-operations.d.ts.map +1 -0
  159. package/dist/server/network-info.d.ts +50 -0
  160. package/dist/server/network-info.d.ts.map +1 -0
  161. package/dist/server/path-containment.d.ts.map +1 -1
  162. package/dist/server/port-utils.d.ts +18 -25
  163. package/dist/server/port-utils.d.ts.map +1 -1
  164. package/dist/server/pre-context-services.d.ts +32 -5
  165. package/dist/server/pre-context-services.d.ts.map +1 -1
  166. package/dist/server/pref-helpers.d.ts +1 -3
  167. package/dist/server/pref-helpers.d.ts.map +1 -1
  168. package/dist/server/prefs-handlers.d.ts +22 -0
  169. package/dist/server/prefs-handlers.d.ts.map +1 -0
  170. package/dist/server/prefs-routes.d.ts +5 -0
  171. package/dist/server/prefs-routes.d.ts.map +1 -1
  172. package/dist/server/privileged-actions.d.ts +16 -0
  173. package/dist/server/privileged-actions.d.ts.map +1 -0
  174. package/dist/server/process-handlers.d.ts +8 -6
  175. package/dist/server/process-handlers.d.ts.map +1 -1
  176. package/dist/server/process-routes.d.ts +9 -0
  177. package/dist/server/process-routes.d.ts.map +1 -0
  178. package/dist/server/project-handlers.d.ts +25 -33
  179. package/dist/server/project-handlers.d.ts.map +1 -1
  180. package/dist/server/projects-manifest.d.ts +8 -0
  181. package/dist/server/projects-manifest.d.ts.map +1 -1
  182. package/dist/server/prompts-handlers.d.ts +2 -1
  183. package/dist/server/prompts-handlers.d.ts.map +1 -1
  184. package/dist/server/provider-config-io.d.ts +2 -2
  185. package/dist/server/provider-config-io.d.ts.map +1 -1
  186. package/dist/server/provider-config-standalone.d.ts +5 -3
  187. package/dist/server/provider-config-standalone.d.ts.map +1 -1
  188. package/dist/server/provider-handlers.d.ts +63 -6
  189. package/dist/server/provider-handlers.d.ts.map +1 -1
  190. package/dist/server/provider-keys.d.ts +1 -1
  191. package/dist/server/provider-keys.d.ts.map +1 -1
  192. package/dist/server/provider-routes.d.ts +28 -2
  193. package/dist/server/provider-routes.d.ts.map +1 -1
  194. package/dist/server/provider-store.d.ts +5 -4
  195. package/dist/server/provider-store.d.ts.map +1 -1
  196. package/dist/server/route-family-dispatcher.d.ts +71 -0
  197. package/dist/server/route-family-dispatcher.d.ts.map +1 -0
  198. package/dist/server/routes.d.ts +17 -7
  199. package/dist/server/routes.d.ts.map +1 -1
  200. package/dist/server/sdd-board-ws-handler.d.ts +5 -1
  201. package/dist/server/sdd-board-ws-handler.d.ts.map +1 -1
  202. package/dist/server/sdd-wizard-wiring.d.ts +14 -3
  203. package/dist/server/sdd-wizard-wiring.d.ts.map +1 -1
  204. package/dist/server/sdd-wizard-ws-handler.d.ts.map +1 -1
  205. package/dist/server/server-runtime.d.ts +16 -12
  206. package/dist/server/server-runtime.d.ts.map +1 -1
  207. package/dist/server/session-handlers.d.ts +30 -11
  208. package/dist/server/session-handlers.d.ts.map +1 -1
  209. package/dist/server/session-history.d.ts +1 -1
  210. package/dist/server/session-history.d.ts.map +1 -1
  211. package/dist/server/setup-event-projection.d.ts +10 -0
  212. package/dist/server/setup-event-projection.d.ts.map +1 -0
  213. package/dist/server/setup-events-watcher.d.ts +13 -0
  214. package/dist/server/setup-events-watcher.d.ts.map +1 -0
  215. package/dist/server/setup-events.d.ts +11 -21
  216. package/dist/server/setup-events.d.ts.map +1 -1
  217. package/dist/server/setup-screen.d.ts +2 -1
  218. package/dist/server/setup-screen.d.ts.map +1 -1
  219. package/dist/server/shell-open.d.ts +26 -2
  220. package/dist/server/shell-open.d.ts.map +1 -1
  221. package/dist/server/skills-handlers.d.ts +2 -2
  222. package/dist/server/skills-handlers.d.ts.map +1 -1
  223. package/dist/server/specs-ws-handler.d.ts.map +1 -1
  224. package/dist/server/standalone-session-identity.d.ts +3 -2
  225. package/dist/server/standalone-session-identity.d.ts.map +1 -1
  226. package/dist/server/start-webui.d.ts +9 -1
  227. package/dist/server/start-webui.d.ts.map +1 -1
  228. package/dist/server/stream-coalescer.d.ts +49 -0
  229. package/dist/server/stream-coalescer.d.ts.map +1 -0
  230. package/dist/server/techstack-handlers.d.ts +12 -2
  231. package/dist/server/techstack-handlers.d.ts.map +1 -1
  232. package/dist/server/terminal-ws-handler.d.ts +5 -3
  233. package/dist/server/terminal-ws-handler.d.ts.map +1 -1
  234. package/dist/server/types.d.ts +10 -3
  235. package/dist/server/types.d.ts.map +1 -1
  236. package/dist/server/worklist-routes.d.ts +21 -0
  237. package/dist/server/worklist-routes.d.ts.map +1 -0
  238. package/dist/server/worktree-routes.d.ts +10 -0
  239. package/dist/server/worktree-routes.d.ts.map +1 -0
  240. package/dist/server/worktree-ws-handler.d.ts +2 -1
  241. package/dist/server/worktree-ws-handler.d.ts.map +1 -1
  242. package/dist/server/ws-auth.d.ts.map +1 -1
  243. package/dist/server/ws-payload-validation.d.ts +11 -0
  244. package/dist/server/ws-payload-validation.d.ts.map +1 -1
  245. package/dist/server/ws-utils.d.ts +8 -0
  246. package/dist/server/ws-utils.d.ts.map +1 -1
  247. package/package.json +14 -10
@@ -1,5 +1,5 @@
1
+ import type { EventBus } from '@wrongstack/core/kernel';
1
2
  import type { WebSocket } from 'ws';
2
- import type { EventBus } from '@wrongstack/core';
3
3
  interface SddBoardWSMessage {
4
4
  type: string;
5
5
  payload?: Record<string, unknown>;
@@ -32,8 +32,10 @@ export declare class SddBoardWebSocketHandler {
32
32
  private readonly store;
33
33
  private readonly clients;
34
34
  private readonly lifecycle?;
35
+ private readonly diskPollingEnabled;
35
36
  private latest;
36
37
  private poll;
38
+ private pollInFlight;
37
39
  private unsub;
38
40
  constructor(boardsDir: string, events?: EventBus, lifecycle?: SddBoardLifecycleDeps);
39
41
  addClient(ws: WebSocket): void;
@@ -47,6 +49,8 @@ export declare class SddBoardWebSocketHandler {
47
49
  private applyLifecycle;
48
50
  dispose(): void;
49
51
  private pollLatest;
52
+ private startPolling;
53
+ private stopPolling;
50
54
  private sendCurrent;
51
55
  private broadcastCurrent;
52
56
  private loadLatestFromDisk;
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-board-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/sdd-board-ws-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAajD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AA+BD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAoC;IAC/D,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,IAAI,CAA+C;IAC3D,OAAO,CAAC,KAAK,CAA6B;IAE1C,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,qBAAqB,EAelF;IAED,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAO7B;IAEK,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzD;IAED;;;;;OAKG;YACW,cAAc;IAmC5B,OAAO,IAAI,IAAI,CAKd;YAIa,UAAU;YAaV,WAAW;YAKX,gBAAgB;YAKhB,kBAAkB;IAKhC,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"sdd-board-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/sdd-board-ws-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAOxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAQpC,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AA+BD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,IAAI,CAA+C;IAC3D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAA6B;IAE1C,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,qBAAqB,EAalF;IAED,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAqB7B;IAEK,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzD;IAED;;;;;OAKG;YACW,cAAc;IAmC5B,OAAO,IAAI,IAAI,CAId;YAIa,UAAU;IAuBxB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;YAML,WAAW;YAKX,gBAAgB;YAKhB,kBAAkB;IAKhC,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,IAAI;CAGb"}
@@ -1,4 +1,8 @@
1
- import { type Agent, type AgentFactory, type BrainArbiter, type EventBus, type TaskGraph, TaskTracker } from '@wrongstack/core';
1
+ import type { AgentFactory, BrainArbiter } from '@wrongstack/core/coordination';
2
+ import type { Agent } from '@wrongstack/core/agent';
3
+ import { TaskTracker } from '@wrongstack/core/tasking';
4
+ import type { EventBus } from '@wrongstack/core/kernel';
5
+ import type { TaskGraph } from '@wrongstack/core/types';
2
6
  import { type SddRunHandle, SddRunRegistry } from '@wrongstack/sdd';
3
7
  import type { SddWizardDeps } from './sdd-wizard-ws-handler.js';
4
8
  /** Config knobs shared by the wizard start and the launch-from-board start. */
@@ -9,6 +13,12 @@ export interface StartSddRunFromGraphConfig {
9
13
  fallbackModels?: string[] | undefined;
10
14
  /** Per-run git-worktree isolation. Omit → env default (WRONGSTACK_SDD_WORKTREES). */
11
15
  worktrees?: boolean | undefined;
16
+ /**
17
+ * Planning-time proactive decomposition of `needs_decomposition` leaves
18
+ * before the run starts. Omit → env default (WRONGSTACK_SDD_PLAN_DECOMPOSE,
19
+ * off unless set to '1'). Requires deps.runIsolatedTurn.
20
+ */
21
+ planDecompose?: boolean | undefined;
12
22
  }
13
23
  export interface StartSddRunFromGraphDeps {
14
24
  agent: Agent;
@@ -27,9 +37,10 @@ export interface StartSddRunFromGraphDeps {
27
37
  * TaskTracker from the graph (when none is supplied), sets up worktree isolation,
28
38
  * the completion-gate verifier and the Brain failure supervisor, then defers to
29
39
  * `startSddRun` (which owns the projector + cross-process control drain, so the
30
- * run is steerable from any surface). Returns the run handle.
40
+ * run is steerable from any surface). Resolves to the run handle after the
41
+ * non-blocking git worktree capability probe completes.
31
42
  */
32
- export declare function startSddRunFromGraph(graph: TaskGraph, deps: StartSddRunFromGraphDeps, config?: StartSddRunFromGraphConfig, tracker?: TaskTracker): SddRunHandle;
43
+ export declare function startSddRunFromGraph(graph: TaskGraph, deps: StartSddRunFromGraphDeps, config?: StartSddRunFromGraphConfig, tracker?: TaskTracker): Promise<SddRunHandle>;
33
44
  export interface SddWizardWiringOptions {
34
45
  /** Leader agent — seeds the run's default factory + project context. */
35
46
  agent: Agent;
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-wizard-wiring.d.ts","sourceRoot":"","sources":["../../src/server/sdd-wizard-wiring.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,WAAW,EAGZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAKL,KAAK,YAAY,EAEjB,cAAc,EAKf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,oFAAoF;IACpF,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACnF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,wBAAwB,EAC9B,MAAM,GAAE,0BAA+B,EACvC,OAAO,CAAC,EAAE,WAAW,GACpB,YAAY,CAoEd;AAED,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,KAAK,EAAE,KAAK,CAAC;IACb,4EAA4E;IAC5E,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,eAAe,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAqBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,aAAa,CAwF9E"}
1
+ {"version":3,"file":"sdd-wizard-wiring.d.ts","sourceRoot":"","sources":["../../src/server/sdd-wizard-wiring.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAEL,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EASL,KAAK,YAAY,EAEjB,cAAc,EAKf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,oFAAoF;IACpF,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACnF;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,wBAAwB,EAC9B,MAAM,GAAE,0BAA+B,EACvC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC,CAoGvB;AAED,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,KAAK,EAAE,KAAK,CAAC;IACb,4EAA4E;IAC5E,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,eAAe,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAqBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,aAAa,CAwF9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-wizard-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/sdd-wizard-ws-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,iBAAiB,CAAC;AAOhF,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAaD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,UAAU,EAAE,MAAM,kBAAkB,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,EAAE,CACR,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE;QACJ,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACtC,oEAAoE;QACpE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACjC,KACE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,yBAAyB;IAQxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,MAAM,CAAmC;IACjD,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAAM;IAC3B,4EAA4E;IAC5E,OAAO,CAAC,IAAI,CAAS;IAErB,YAA6B,IAAI,EAAE,aAAa,EAAI;IAEpD,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAO7B;IAEK,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCrD;YAIa,OAAO;YAcP,SAAS;YAYT,SAAS;YAWT,UAAU;IA2BxB,kFAAkF;YACpE,OAAO;IAcrB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"sdd-wizard-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/sdd-wizard-ws-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,iBAAiB,CAAC;AAQhF,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAaD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,UAAU,EAAE,MAAM,kBAAkB,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,EAAE,CACR,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE;QACJ,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACtC,oEAAoE;QACpE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACjC,KACE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,yBAAyB;IAQxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,MAAM,CAAmC;IACjD,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAAM;IAC3B,4EAA4E;IAC5E,OAAO,CAAC,IAAI,CAAS;IAErB,YAA6B,IAAI,EAAE,aAAa,EAAI;IAEpD,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAO7B;IAEK,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCrD;YAIa,OAAO;YAcP,SAAS;YAYT,SAAS;YAWT,UAAU;IA2BxB,kFAAkF;YACpE,OAAO;IAcrB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,IAAI;CAGb"}
@@ -1,23 +1,22 @@
1
- import type { Config, ModelsRegistry } from '@wrongstack/core';
1
+ import type { Config, ModelsRegistry } from '@wrongstack/core/types';
2
2
  import { WebSocketServer, type WebSocket } from 'ws';
3
3
  import { setupEvents, type FileWatcherMetrics } from './setup-events.js';
4
4
  import type { ConnectedClient } from './types.js';
5
5
  interface ResolvedPorts {
6
6
  wsHost: string;
7
- wsPort: number;
8
7
  httpPort: number;
9
8
  publicUrl: string | undefined;
10
9
  publicWsUrl: string | undefined;
11
10
  requireToken: boolean;
12
11
  }
13
12
  /**
14
- * Resolve bind host, HTTP/WS ports, public URLs, and the token-required flag
15
- * from CLI opts + env vars. Auto-advances past taken ports unless
16
- * `WEBUI_STRICT_PORT` is set.
13
+ * Resolve bind host, HTTP port, public URLs, and the token-required flag
14
+ * from CLI opts + env vars. The WS server shares the HTTP port (single
15
+ * port design), so only one port is resolved. Auto-advances past taken
16
+ * ports unless `WEBUI_STRICT_PORT` is set.
17
17
  */
18
18
  export declare function resolvePorts(opts: {
19
19
  surface?: 'webui' | 'simpleui' | undefined;
20
- wsPort?: number | undefined;
21
20
  wsHost?: string | undefined;
22
21
  httpPort?: number | undefined;
23
22
  webuiPort?: number | undefined;
@@ -54,6 +53,8 @@ export declare function createSessionStartPayload(g: SessionStartPayloadGetters)
54
53
  cwd: string;
55
54
  mode: string;
56
55
  contextMode: string;
56
+ protocolVersion: number;
57
+ protocolCapabilities: string[];
57
58
  needsSetup?: boolean | undefined;
58
59
  }>;
59
60
  interface WsServerResult {
@@ -63,16 +64,19 @@ interface WsServerResult {
63
64
  clients: Map<WebSocket, ConnectedClient>;
64
65
  }
65
66
  /**
66
- * Create the primary (+ optional IPv6 secondary) WebSocket servers with
67
- * CSWSH token auth. Returns the servers + the shared clients map.
67
+ * Attach a WebSocket server to an HTTP server (shared-port design).
68
+ * Creates the primary WS server attached to the given HTTP server.
69
+ * IPv6 loopback coverage is provided by the HTTP server's dual-stack
70
+ * listen (see start-webui.ts); no separate WS secondary is created.
71
+ * Returns the WS server, the resolved auth token, and the clients map.
68
72
  */
69
- export declare function createWsServers(ports: ResolvedPorts, accessToken: string | undefined): WsServerResult;
73
+ export declare function createWsServers(httpServer: import('node:http').Server, ports: ResolvedPorts, accessToken: string | undefined): WsServerResult;
70
74
  /**
71
75
  * Wire setupEvents (the once-only event→WS-broadcast bridge) behind a
72
76
  * listening-callback guard, and attach WS server error handlers. Returns
73
77
  * the dispose + fleet-broadcast functions.
74
78
  */
75
- export declare function armEvents(wssPrimary: WebSocketServer, wssSecondary: WebSocketServer | null, wsHost: string, wsPort: number, setupInput: Parameters<typeof setupEvents>[0], watcherMetrics: FileWatcherMetrics): {
79
+ export declare function armEvents(wssPrimary: WebSocketServer, wssSecondary: WebSocketServer | null, wsHost: string, httpPort: number, setupInput: Parameters<typeof setupEvents>[0], watcherMetrics: FileWatcherMetrics): {
76
80
  arm: (label: string) => void;
77
81
  getDispose: () => (() => void) | null;
78
82
  getFleetBroadcast: () => (() => Promise<void>) | null;
@@ -80,7 +84,6 @@ export declare function armEvents(wssPrimary: WebSocketServer, wssSecondary: Web
80
84
  export declare function startHttpServer(opts: {
81
85
  wsHost: string;
82
86
  httpPort: number;
83
- wsPort: number;
84
87
  wsToken: string;
85
88
  publicWsUrl: string | undefined;
86
89
  publicUrl: string | undefined;
@@ -94,9 +97,10 @@ export declare function startHttpServer(opts: {
94
97
  onTechStackEvent?: ((event: import('./techstack-handlers.js').TechStackEvent) => void) | undefined;
95
98
  /** Live provider access for TechStack's LLM research stage. */
96
99
  getLlm?: (() => {
97
- provider: import('@wrongstack/core').Provider;
100
+ provider: import('@wrongstack/core/types').Provider;
98
101
  model: string;
99
102
  } | undefined) | undefined;
103
+ executePackageOperation?: import('./techstack-handlers.js').TechStackHandlerDeps['executePackageOperation'];
100
104
  distDir?: string | undefined;
101
105
  }): import('node:http').Server;
102
106
  interface ShutdownDeps {
@@ -1 +1 @@
1
- {"version":3,"file":"server-runtime.d.ts","sourceRoot":"","sources":["../../src/server/server-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-runtime.d.ts","sourceRoot":"","sources":["../../src/server/server-runtime.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,19 @@
9
9
  * as getters/setters so this stays a pure function of its context. Handler
10
10
  * bodies are a verbatim lift — only dependency references changed.
11
11
  */
12
- import { type Context, type createStrategyCompactor, type SessionStore, type ToolRegistry } from '@wrongstack/core';
13
- import type { DefaultTokenCounter } from '@wrongstack/core/infrastructure';
12
+ import type { createStrategyCompactor } from '@wrongstack/core/execution';
13
+ import type { Context } from '@wrongstack/core/agent';
14
+ import type { SessionStore, TokenCounter } from '@wrongstack/core/types';
15
+ import type { ToolRegistry } from '@wrongstack/core/registry';
14
16
  import type { WebSocket } from 'ws';
15
17
  import type { CustomModeStore } from './custom-context-modes.js';
16
18
  import type { SessionRouteHandlers } from './session-routes.js';
17
19
  import type { ConnectedClient } from './types.js';
18
20
  type Session = Awaited<ReturnType<SessionStore['create']>>;
21
+ type OutboundMessage = {
22
+ type: string;
23
+ payload: unknown;
24
+ };
19
25
  type SessionStartPayload = {
20
26
  sessionId: string;
21
27
  model: string;
@@ -35,22 +41,35 @@ export interface SessionHandlersContext {
35
41
  provider: string;
36
42
  model: string;
37
43
  };
38
- clients: Map<WebSocket, ConnectedClient>;
44
+ getConfig?: () => {
45
+ provider: string;
46
+ model: string;
47
+ };
48
+ clients?: Map<WebSocket, ConnectedClient>;
49
+ /** Host-neutral transport adapters. Standalone callers may keep using `clients`. */
50
+ sendMessage?: (ws: WebSocket, message: OutboundMessage) => void;
51
+ broadcastMessage?: (message: OutboundMessage) => void;
39
52
  context: Context;
40
- toolRegistry: ToolRegistry;
41
- compactor: ReturnType<typeof createStrategyCompactor>;
42
- customModeStore: CustomModeStore;
43
- tokenCounter: DefaultTokenCounter;
53
+ toolRegistry?: Pick<ToolRegistry, 'list'>;
54
+ listTools?: () => ReturnType<ToolRegistry['list']>;
55
+ compactor?: ReturnType<typeof createStrategyCompactor>;
56
+ getCompactor?: () => ReturnType<typeof createStrategyCompactor> | undefined;
57
+ customModeStore?: CustomModeStore;
58
+ getCustomModeStore?: () => CustomModeStore | Promise<CustomModeStore>;
59
+ tokenCounter: TokenCounter;
44
60
  /** Live reads of the mutable startWebUI bindings. */
45
61
  getProjectRoot: () => string;
46
62
  getSession: () => Session;
47
63
  getSessionStore: () => SessionStore;
48
- sessionsDir: string;
64
+ /** Hosts without a wired durable store may keep session.new as an in-memory reset. */
65
+ canSwapSessions?: () => boolean;
66
+ sessionsDir?: string;
67
+ getSessionsDir?: () => string;
49
68
  /** Mutations of the startWebUI bindings. */
50
69
  setSession: (s: Session) => void;
51
- setSessionStartedAt: (t: number) => void;
52
- onSessionSwapped: (sessionId: string) => Promise<void>;
53
- sessionStartPayload: () => Promise<SessionStartPayload>;
70
+ setSessionStartedAt?: (t: number) => void;
71
+ onSessionSwapped?: (sessionId: string) => void | Promise<void>;
72
+ sessionStartPayload: (overrides?: Record<string, unknown>) => Promise<SessionStartPayload>;
54
73
  }
55
74
  export declare function createSessionHandlers(ctx: SessionHandlersContext): SessionRouteHandlers;
56
75
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"session-handlers.d.ts","sourceRoot":"","sources":["../../src/server/session-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAK5B,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASlD,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE3D,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACtD,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,qDAAqD;IACrD,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,mBAAmB,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,GAAG,oBAAoB,CAybvF"}
1
+ {"version":3,"file":"session-handlers.d.ts","sourceRoot":"","sources":["../../src/server/session-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SessionSummary } from '@wrongstack/core';
1
+ import type { SessionSummary } from '@wrongstack/core/types';
2
2
  /**
3
3
  * Stable WebSocket projection for the WebUI history surfaces.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../../src/server/session-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,MAAM,GACvB,uBAAuB,CAmBzB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,cAAc,EAAE,EAC3B,gBAAgB,EAAE,MAAM,GACvB,uBAAuB,EAAE,CAE3B"}
1
+ {"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../../src/server/session-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,MAAM,GACvB,uBAAuB,CAmBzB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,cAAc,EAAE,EAC3B,gBAAgB,EAAE,MAAM,GACvB,uBAAuB,EAAE,CAE3B"}
@@ -0,0 +1,10 @@
1
+ /** Host ports for sensitive and high-volume EventBus projections. */
2
+ export interface SetupEventProjection {
3
+ scrubObject?: ((value: unknown) => unknown) | undefined;
4
+ queueTextDelta?: ((text: string, sessionId?: string) => void) | undefined;
5
+ queueThinkingDelta?: ((text: string, sessionId?: string) => void) | undefined;
6
+ queueToolProgress?: ((payload: Record<string, unknown>) => void) | undefined;
7
+ flushThinkingDelta?: (() => void) | undefined;
8
+ flushAllStreamBuffers?: (() => void) | undefined;
9
+ }
10
+ //# sourceMappingURL=setup-event-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-event-projection.d.ts","sourceRoot":"","sources":["../../src/server/setup-event-projection.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACxD,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1E,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9E,iBAAiB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,kBAAkB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9C,qBAAqB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAClD"}
@@ -0,0 +1,13 @@
1
+ export interface FileWatcherMetrics {
2
+ fileChangesDetected: number;
3
+ filesProcessed: number;
4
+ broadcastsSent: number;
5
+ debounceResets: number;
6
+ totalDebounceDelayMs: number;
7
+ activeProjects: number;
8
+ averageDebounceDelayMs: number;
9
+ watcherActive: boolean;
10
+ }
11
+ export declare function statusProjectHashFromWatchFilename(projectsDir: string, filename: string | Buffer): string | null;
12
+ export declare function shouldLogWatcherStats(): boolean;
13
+ //# sourceMappingURL=setup-events-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-events-watcher.d.ts","sourceRoot":"","sources":["../../src/server/setup-events-watcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,MAAM,GACxB,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C"}
@@ -1,21 +1,13 @@
1
- import type { Context, EventBus, SessionEventBridge, WstackPaths } from '@wrongstack/core';
1
+ import type { Context } from '@wrongstack/core/agent';
2
+ import type { EventBus } from '@wrongstack/core/kernel';
3
+ import type { SessionEventBridge } from '@wrongstack/core/storage';
4
+ import type { WstackPaths } from '@wrongstack/core/utils';
2
5
  import type { WebSocket } from 'ws';
3
6
  import type { PendingConfirm } from './pending-confirms.js';
7
+ import type { SetupEventProjection } from './setup-event-projection.js';
8
+ import { type FileWatcherMetrics } from './setup-events-watcher.js';
4
9
  import type { ConnectedClient, WSServerMessage } from './types.js';
5
- /** Metrics for the file watcher that watches status.json files. */
6
- export interface FileWatcherMetrics {
7
- /** Number of status.json filesystem events detected after filename filtering. */
8
- fileChangesDetected: number;
9
- filesProcessed: number;
10
- broadcastsSent: number;
11
- debounceResets: number;
12
- totalDebounceDelayMs: number;
13
- activeProjects: number;
14
- /** Average debounce delay in ms across all broadcasts. */
15
- averageDebounceDelayMs: number;
16
- /** Whether the file watcher is currently active. */
17
- watcherActive: boolean;
18
- }
10
+ export type { FileWatcherMetrics } from './setup-events-watcher.js';
19
11
  export interface SetupEventsDeps {
20
12
  events: EventBus;
21
13
  broadcast: (clients: Map<WebSocket, ConnectedClient>, msg: WSServerMessage) => void;
@@ -38,11 +30,7 @@ export interface SetupEventsDeps {
38
30
  sessionBridge?: SessionEventBridge | undefined;
39
31
  /** Optional wpaths for writing status.json file. */
40
32
  wpaths?: WstackPaths | undefined;
41
- /**
42
- * Optional object to populate with file watcher metrics.
43
- * When provided, the setupEvents function will populate this object
44
- * with real-time metrics from the file watcher.
45
- */
33
+ /** Optional live file-watcher metrics sink. */
46
34
  watcherMetrics?: FileWatcherMetrics | undefined;
47
35
  /**
48
36
  * Receives the internal `broadcastSessions` fn so the HTTP layer can trigger
@@ -50,8 +38,10 @@ export interface SetupEventsDeps {
50
38
  * from a TUI/REPL), instead of waiting on the registry file-watch/poll.
51
39
  */
52
40
  onFleetBroadcaster?: ((fn: () => Promise<void>) => void) | undefined;
41
+ /** Optional high-volume/sensitive event adapter used by embedded hosts. */
42
+ projection?: SetupEventProjection | undefined;
53
43
  }
54
- export declare function statusProjectHashFromWatchFilename(projectsDir: string, filename: string | Buffer): string | null;
44
+ export { statusProjectHashFromWatchFilename } from './setup-events-watcher.js';
55
45
  /**
56
46
  * Wire kernel events to WS broadcasts and (when wpaths/globalConfigPath are
57
47
  * given) start the status-file watcher and session-poll interval.
@@ -1 +1 @@
1
- {"version":3,"file":"setup-events.d.ts","sourceRoot":"","sources":["../../src/server/setup-events.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EAGR,kBAAkB,EAClB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oDAAoD;IACpD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IACpF,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAChD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACtE;AAED,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,MAAM,GACxB,MAAM,GAAG,IAAI,CAOf;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,IAAI,CAi1C7D"}
1
+ {"version":3,"file":"setup-events.d.ts","sourceRoot":"","sources":["../../src/server/setup-events.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IACpF,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAChD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,2EAA2E;IAC3E,UAAU,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC/C;AAED,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,IAAI,CA22C7D"}
@@ -11,7 +11,8 @@
11
11
  * `needsSetup` flag, and the stub provider's exact shape are preserved
12
12
  * verbatim. The function throws on the same failures the inline code did.
13
13
  */
14
- import type { Provider, ProviderRegistry } from '@wrongstack/core';
14
+ import type { ProviderRegistry } from '@wrongstack/core/registry';
15
+ import type { Provider } from '@wrongstack/core/types';
15
16
  import type { Config } from '@wrongstack/core/types';
16
17
  export interface ResolveSetupProviderOptions {
17
18
  config: Config;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-screen.d.ts","sourceRoot":"","sources":["../../src/server/setup-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAkB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAuCrD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,2BAA2B,GAChC,qBAAqB,CAkDvB"}
1
+ {"version":3,"file":"setup-screen.d.ts","sourceRoot":"","sources":["../../src/server/setup-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,wBAAwB,CAAC;AAGvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAuCrD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,2BAA2B,GAChC,qBAAqB,CAkDvB"}
@@ -1,12 +1,36 @@
1
- import type { Logger } from '@wrongstack/core';
1
+ import type { Logger } from '@wrongstack/core/types';
2
2
  export type ShellOpenTarget = 'terminal' | 'file-manager';
3
3
  export interface ShellOpenRequest {
4
4
  path: string;
5
5
  target: ShellOpenTarget;
6
6
  }
7
+ /**
8
+ * Normalize a raw wire-format target value to a valid `ShellOpenTarget`.
9
+ *
10
+ * Maps `'terminal'` → `'terminal'`, everything else (including `'file'`,
11
+ * `'file-manager'`, `undefined`, unknown strings) → `'file-manager'`.
12
+ *
13
+ * This reconciles the legacy wire format (`target: 'file'`) which the
14
+ * payload validators may still accept, with the handler contract
15
+ * (`'terminal' | 'file-manager'`), and ensures consistent behavior
16
+ * across both the standalone and embedded WebUI routers.
17
+ */
18
+ export declare function normalizeShellOpenTarget(target: string | undefined): ShellOpenTarget;
19
+ /**
20
+ * Optional security options for `handleShellOpen`.
21
+ *
22
+ * `projectRoot`, when provided, confines the resolved path to the project
23
+ * directory — the OS file manager / terminal will never be launched at a
24
+ * location outside the project. This is defense-in-depth: the TrustBoundary
25
+ * authorization may use a permissive compatibility policy, so the path
26
+ * containment must be enforced at the executor as well.
27
+ */
28
+ export interface ShellOpenOptions {
29
+ projectRoot?: string;
30
+ }
7
31
  export interface ShellOpenResult {
8
32
  success: boolean;
9
33
  message: string;
10
34
  }
11
- export declare function handleShellOpen(req: ShellOpenRequest, logger: Logger): Promise<ShellOpenResult>;
35
+ export declare function handleShellOpen(req: ShellOpenRequest, logger: Logger, options?: ShellOpenOptions): Promise<ShellOpenResult>;
12
36
  //# sourceMappingURL=shell-open.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-open.d.ts","sourceRoot":"","sources":["../../src/server/shell-open.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAyD1B"}
1
+ {"version":3,"file":"shell-open.d.ts","sourceRoot":"","sources":["../../src/server/shell-open.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,eAAe,CAEjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CA4E1B"}
@@ -18,7 +18,7 @@
18
18
  * `projectRoot` → `ctx.*`, local `send`/`errMessage` → imported helpers).
19
19
  */
20
20
  import type { WebSocket } from 'ws';
21
- import type { SkillLoader } from '@wrongstack/core';
21
+ import type { SkillLoader } from '@wrongstack/core/types';
22
22
  import type { SkillInstaller } from '@wrongstack/core/skills';
23
23
  export interface SkillsContext {
24
24
  /** Backs skills.list/content/edit/export. Absent ⇒ feature disabled. */
@@ -29,7 +29,7 @@ export interface SkillsContext {
29
29
  projectRoot: string;
30
30
  /** Project skills directory, normally `<project>/.wrongstack/skills`. */
31
31
  projectSkillsDir?: string | undefined;
32
- /** User-global skills directory, normally `~/.wrongstack/skills`. */
32
+ /** Profile skills directory, normally `~/.wrongstack/profiles/<name>/skills`. */
33
33
  globalSkillsDir?: string | undefined;
34
34
  }
35
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"skills-handlers.d.ts","sourceRoot":"","sources":["../../src/server/skills-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,0EAA0E;IAC1E,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAID;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDvF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CA0Ff;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzF"}
1
+ {"version":3,"file":"skills-handlers.d.ts","sourceRoot":"","sources":["../../src/server/skills-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK9D,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,0EAA0E;IAC1E,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAID;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDvF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CA0Ff;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"specs-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/specs-ws-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAcpC,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAgBD;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,OAAO,CAAuB;IAEtC,YAAY,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAGlD;IAED,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAM7B;IAEK,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBtD;YAIa,SAAS;YAiBT,aAAa;YAIb,QAAQ;YAMR,eAAe;YAUf,gBAAgB;IAM9B,OAAO,CAAC,WAAW;YAuEL,gBAAgB;IAkB9B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"specs-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/specs-ws-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAWpC,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAgBD;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,OAAO,CAAuB;IAEtC,YAAY,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAGlD;IAED,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAM7B;IAEK,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBtD;YAIa,SAAS;YAiBT,aAAa;YAIb,QAAQ;YAMR,eAAe;YAUf,gBAAgB;IAM9B,OAAO,CAAC,WAAW;YAuEL,gBAAgB;IAkB9B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,IAAI;CAGb"}
@@ -1,5 +1,6 @@
1
- import type { Config, EventBus, Logger, SessionRegistry, SessionStore } from '@wrongstack/core';
2
- import { AgentStatusTracker } from '@wrongstack/core';
1
+ import type { EventBus } from '@wrongstack/core/kernel';
2
+ import type { Config, Logger, SessionStore } from '@wrongstack/core/types';
3
+ import { AgentStatusTracker, type SessionRegistry } from '@wrongstack/core/storage';
3
4
  export interface StandaloneSessionIdentityPaths {
4
5
  globalRoot: string;
5
6
  projectRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-session-identity.d.ts","sourceRoot":"","sources":["../../src/server/standalone-session-identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EACL,kBAAkB,EAInB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,8BAA8B,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,wCAAwC,CAC5D,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,kCAAkC,CAAC,CAqL7C"}
1
+ {"version":3,"file":"standalone-session-identity.d.ts","sourceRoot":"","sources":["../../src/server/standalone-session-identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAIlB,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,8BAA8B,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,wCAAwC,CAC5D,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,kCAAkC,CAAC,CAqL7C"}
@@ -1,6 +1,14 @@
1
+ /**
2
+ * Standalone WebUI server entry point.
3
+ *
4
+ * Phase 1d of the god-module split: `startWebUI` moved here from
5
+ * `./index.ts` so that `index.ts` is a pure re-export barrel.
6
+ * This module owns the full server lifecycle: port resolution, boot,
7
+ * service construction (Phase 1c), route/dispatcher/connection wiring
8
+ * (Phase 1b/1a), WS + HTTP server creation, and graceful shutdown.
9
+ */
1
10
  import type { WebUIOptions } from './types.js';
2
11
  export declare function startWebUI(opts?: WebUIOptions & {
3
- wsPort?: number | undefined;
4
12
  wsHost?: string | undefined;
5
13
  httpPort?: number | undefined;
6
14
  accessToken?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"start-webui.d.ts","sourceRoot":"","sources":["../../src/server/start-webui.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAsB,UAAU,CAC9B,IAAI,GAAE,YAAY,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvB,GACL,OAAO,CAAC,IAAI,CAAC,CAskBf;AAED;;;;;;;;;;;;;;;;GAgBG"}
1
+ {"version":3,"file":"start-webui.d.ts","sourceRoot":"","sources":["../../src/server/start-webui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyDH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,wBAAsB,UAAU,CAC9B,IAAI,GAAE,YAAY,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvB,GACL,OAAO,CAAC,IAAI,CAAC,CA2xBf;AAED;;;;;;;;;;;;;;;;GAgBG"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Server-side stream coalescing for WebUI hosts.
3
+ *
4
+ * Coalesces high-volume live events (provider text/thinking deltas, tool
5
+ * progress) before they hit every connected browser tab. The frontend also
6
+ * coalesces per animation frame, but without this layer long streams still
7
+ * create one WebSocket message per provider token/tool progress event.
8
+ *
9
+ * PR 9 of Issue #30: extracted from `webui-server.ts`.
10
+ */
11
+ export interface StreamCoalescerDeps {
12
+ /** Send a message to every connected client (webui-server's `broadcast`). */
13
+ broadcast: (msg: {
14
+ type: string;
15
+ payload: unknown;
16
+ }) => void;
17
+ /** Stamp a payload with the live session id (webui-server's `sessionPayload`). */
18
+ sessionPayload: <T extends Record<string, unknown>>(payload: T) => T & {
19
+ sessionId: string;
20
+ };
21
+ }
22
+ export interface ToolProgressPayload {
23
+ sessionId?: string | undefined;
24
+ traceId?: string | undefined;
25
+ agentId?: string | undefined;
26
+ agentName?: string | undefined;
27
+ id: string;
28
+ name: string;
29
+ event: {
30
+ type?: string | undefined;
31
+ text?: string | undefined;
32
+ data?: Record<string, unknown> | undefined;
33
+ path?: string | undefined;
34
+ operation?: 'write' | 'edit' | 'delete' | 'rename' | undefined;
35
+ line?: number | undefined;
36
+ endLine?: number | undefined;
37
+ };
38
+ }
39
+ export interface StreamCoalescer {
40
+ queueTextDelta(text: string, sessionId?: string | undefined): void;
41
+ queueThinkingDelta(text: string, sessionId?: string | undefined): void;
42
+ queueToolProgress(payload: ToolProgressPayload): void;
43
+ /** Flush a pending thinking buffer (text deltas interleave with thinking). */
44
+ flushThinkingDelta(): void;
45
+ /** Flush every pending buffer — call at iteration boundaries and shutdown. */
46
+ flushAllStreamBuffers(): void;
47
+ }
48
+ export declare function createStreamCoalescer(deps: StreamCoalescerDeps): StreamCoalescer;
49
+ //# sourceMappingURL=stream-coalescer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-coalescer.d.ts","sourceRoot":"","sources":["../../src/server/stream-coalescer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,SAAS,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7D,kFAAkF;IAClF,cAAc,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9F;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;QAC3C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACvE,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtD,8EAA8E;IAC9E,kBAAkB,IAAI,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,qBAAqB,IAAI,IAAI,CAAC;CAC/B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CA2JhF"}