@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
@@ -0,0 +1,47 @@
1
+ import type { BrainArbiter } from '@wrongstack/core/coordination';
2
+ import type { BrainAutoRisk, BrainRuntime } from '@wrongstack/core/execution';
3
+ import type { WebSocket } from 'ws';
4
+ import type { WSServerMessage } from './types.js';
5
+ /**
6
+ * PR 5b of Issue #30: Brain WebSocket handlers (`brain.status` /
7
+ * `brain.risk` / `brain.ask`).
8
+ *
9
+ * Extracted from the `runWebUI` switch. The former closure captures —
10
+ * `opts.brainSettings`, `opts.getBrainLog`, and the
11
+ * `opts.brain ?? container.resolve(TOKENS.BrainArbiter)` lookup — are now
12
+ * fields on `BrainHandlerContext`. The arbiter resolution is passed as a
13
+ * thunk so this module needn't know about the agent container or tokens.
14
+ */
15
+ /** A single Brain decision-log entry (newest last). */
16
+ export interface BrainLogEntry {
17
+ at: number;
18
+ kind: string;
19
+ question: string;
20
+ outcome: string;
21
+ }
22
+ export interface BrainTransportContext {
23
+ send: (ws: WebSocket, message: WSServerMessage) => void;
24
+ }
25
+ export interface BrainHandlerContext extends BrainTransportContext {
26
+ /** Shared autonomy ceiling — the SAME object `/brain` mutates. */
27
+ brainSettings: {
28
+ maxAutoRisk: BrainAutoRisk;
29
+ } | undefined;
30
+ /**
31
+ * Live-editable Brain config owner. Powers `brain.config.get/set` and
32
+ * enriches `brain.status`; risk-only hosts may leave it undefined.
33
+ */
34
+ brainRuntime?: BrainRuntime | undefined;
35
+ /** Read the host's rolling Brain decision log, or undefined when not wired. */
36
+ getBrainLog: (() => BrainLogEntry[]) | undefined;
37
+ /** Resolve the active Brain arbiter (host instance, else container-bound), or undefined. */
38
+ resolveArbiter: () => BrainArbiter | undefined;
39
+ /** Read the active session id for brain.ask requests. */
40
+ getSessionId?: (() => string | undefined) | undefined;
41
+ }
42
+ export declare function handleBrainStatus(ctx: BrainHandlerContext, ws: WebSocket): void;
43
+ export declare function handleBrainConfigGet(ctx: BrainHandlerContext, ws: WebSocket): void;
44
+ export declare function handleBrainConfigSet(ctx: BrainHandlerContext, ws: WebSocket, payload: unknown): Promise<void>;
45
+ export declare function handleBrainRisk(ctx: BrainHandlerContext, ws: WebSocket, level: string): void;
46
+ export declare function handleBrainAsk(ctx: BrainHandlerContext, ws: WebSocket, question: string | undefined): Promise<void>;
47
+ //# sourceMappingURL=brain-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-handlers.d.ts","sourceRoot":"","sources":["../../src/server/brain-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAoB,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;;GASG;AAEH,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,kEAAkE;IAClE,aAAa,EAAE;QAAE,WAAW,EAAE,aAAa,CAAA;KAAE,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,+EAA+E;IAC/E,WAAW,EAAE,CAAC,MAAM,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;IACjD,4FAA4F;IAC5F,cAAc,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/C,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACvD;AAWD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CAsB/E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CAclF;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAe5F;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
@@ -0,0 +1,14 @@
1
+ import { ChronicleMetricsStore, ChronicleQueryEngine } from '@wrongstack/core/chronicle';
2
+ import type { WebSocket } from 'ws';
3
+ import type { WSClientMessage, WSServerMessage } from './types.js';
4
+ export type ChronicleRouteEngine = Pick<ChronicleQueryEngine, 'query' | 'facet' | 'facets' | 'graph' | 'diagnostics'>;
5
+ export type ChronicleRouteMetrics = Pick<ChronicleMetricsStore, 'refresh' | 'summary' | 'providerDaily' | 'taskOutcomes' | 'fileLineage'>;
6
+ export interface ChronicleRouteContext {
7
+ getProjectRoot: () => string;
8
+ send: (ws: WebSocket, message: WSServerMessage) => void;
9
+ getEngine?: (() => Promise<ChronicleRouteEngine>) | undefined;
10
+ getMetrics?: (() => Promise<ChronicleRouteMetrics>) | undefined;
11
+ }
12
+ /** Canonical Chronicle query/facet/graph handler shared by every WebUI host. */
13
+ export declare function handleChronicleRoute(ctx: ChronicleRouteContext, ws: WebSocket, message: WSClientMessage): Promise<boolean>;
14
+ //# sourceMappingURL=chronicle-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chronicle-routes.d.ts","sourceRoot":"","sources":["../../src/server/chronicle-routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,qBAAqB,EAErB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,oBAAoB,EACpB,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CACvD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,qBAAqB,EACrB,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,CACzE,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,SAAS,CAAC;IAC9D,UAAU,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE;AAgFD,gFAAgF;AAChF,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,qBAAqB,EAC1B,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,OAAO,CAAC,CAsHlB"}
@@ -0,0 +1,26 @@
1
+ import { GlobalMailbox } from '@wrongstack/core/coordination';
2
+ import type { Config } from '@wrongstack/core/types';
3
+ import type { CreateHqPublisherOptions, HqPublisher } from '@wrongstack/core/hq';
4
+ import type { EventBus } from '@wrongstack/core/kernel';
5
+ export interface WebuiHqConnection {
6
+ getPublisher(): HqPublisher | undefined;
7
+ stop(): void;
8
+ }
9
+ export type WebuiHqConnectionOptions = Omit<CreateHqPublisherOptions, 'socketFactory'> & {
10
+ onConnect?: ((publisher: HqPublisher) => void) | undefined;
11
+ };
12
+ export interface WebuiClientPresenceDeps {
13
+ projectRoot: string | undefined;
14
+ appConfig: Config | undefined;
15
+ events: EventBus;
16
+ hqSessionId: string;
17
+ getSessionId: () => string;
18
+ startHqConnection: (options: WebuiHqConnectionOptions) => WebuiHqConnection;
19
+ createCommandHandler?: ((mailbox: GlobalMailbox) => NonNullable<CreateHqPublisherOptions['onCommand']>) | undefined;
20
+ }
21
+ export interface WebuiClientPresence {
22
+ register(): Promise<string | null>;
23
+ unregister(): void;
24
+ }
25
+ export declare function createWebuiClientPresence(deps: WebuiClientPresenceDeps): WebuiClientPresence;
26
+ //# sourceMappingURL=client-presence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-presence.d.ts","sourceRoot":"","sources":["../../src/server/client-presence.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EAEd,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EACV,wBAAwB,EAExB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,MAAM,WAAW,iBAAiB;IAChC,YAAY,IAAI,WAAW,GAAG,SAAS,CAAC;IACxC,IAAI,IAAI,IAAI,CAAC;CACd;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,EAAE,eAAe,CAAC,GAAG;IACvF,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,iBAAiB,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IAC5E,oBAAoB,CAAC,EACjB,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,WAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,GAChF,SAAS,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,UAAU,IAAI,IAAI,CAAC;CACpB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,CAsF5F"}
@@ -0,0 +1,8 @@
1
+ import type { WebSocket } from 'ws';
2
+ import type { WSClientMessage } from './types.js';
3
+ export interface ClientTransportRouteHandlers {
4
+ collaboration: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
5
+ terminal: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
6
+ }
7
+ export declare function handleClientTransportRoute(ws: WebSocket, msg: WSClientMessage, handlers: ClientTransportRouteHandlers): Promise<boolean>;
8
+ //# sourceMappingURL=client-transport-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-transport-routes.d.ts","sourceRoot":"","sources":["../../src/server/client-transport-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7E,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzE;AAED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,OAAO,CAAC,CAqBlB"}
@@ -1,4 +1,6 @@
1
- import type { Context, EventBus, IndexingConfig, Logger } from '@wrongstack/core';
1
+ import type { Context } from '@wrongstack/core/agent';
2
+ import type { EventBus } from '@wrongstack/core/kernel';
3
+ import type { IndexingConfig, Logger } from '@wrongstack/core/types';
2
4
  export interface WebUICodebaseIndexingDeps {
3
5
  config: {
4
6
  indexing?: IndexingConfig | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"codebase-indexing.d.ts","sourceRoot":"","sources":["../../src/server/codebase-indexing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAqBlF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;KAAE,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,yBAAyB,GAAG,qBAAqB,CAoHjG"}
1
+ {"version":3,"file":"codebase-indexing.d.ts","sourceRoot":"","sources":["../../src/server/codebase-indexing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAmBrE,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;KAAE,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,yBAAyB,GAAG,qBAAqB,CA8KjG"}
@@ -0,0 +1,14 @@
1
+ export interface CodemapCacheEntry {
2
+ version: string;
3
+ /** Pre-serialized JSON body — avoids re-stringify on cache hits. */
4
+ body: string;
5
+ }
6
+ /** Filesystem fingerprint of the index DB used as the cache generation key. */
7
+ export declare function indexDbVersion(projectRoot: string, indexDir?: string): string;
8
+ export declare function codemapCacheKey(projectRoot: string, indexDir: string | undefined, scope: string): string;
9
+ export declare function getCachedCodemapBody(key: string, version: string): string | undefined;
10
+ export declare function setCachedCodemapBody(key: string, version: string, body: string): void;
11
+ /** Test / process-shutdown helper. */
12
+ export declare function clearCodemapGraphCache(): void;
13
+ export declare function codemapGraphCacheSize(): number;
14
+ //# sourceMappingURL=codemap-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemap-cache.d.ts","sourceRoot":"","sources":["../../src/server/codemap-cache.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;CACd;AAID,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,IAAI,CAQN;AAED,sCAAsC;AACtC,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
@@ -2,9 +2,8 @@
2
2
  * CodeMap HTTP handlers — serve the dependency graph at three drill-down
3
3
  * levels (package → file → symbol) from the codebase index SQLite store.
4
4
  *
5
- * Each handler opens a short-lived `IndexStore`, queries the graph, and
6
- * returns JSON. The graph data feeds the React Flow `CodeMap` component
7
- * in the WebUI.
5
+ * Each handler queries via the graph services and returns JSON. Results are
6
+ * cached in-process and invalidated when `index.db` mtime/size changes.
8
7
  *
9
8
  * Endpoints:
10
9
  * GET /api/codemap/packages — package-level graph
@@ -1 +1 @@
1
- {"version":3,"file":"codemap-handlers.d.ts","sourceRoot":"","sources":["../../src/server/codemap-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAIvC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAOD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,kBAAkB,GACvB,IAAI,CAYN;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,GACV,IAAI,CAgBN;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,MAAM,GACX,IAAI,CAgBN"}
1
+ {"version":3,"file":"codemap-handlers.d.ts","sourceRoot":"","sources":["../../src/server/codemap-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAUvC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAmDD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,kBAAkB,GACvB,IAAI,CAON;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,GACV,IAAI,CAYN;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,MAAM,GACX,IAAI,CAYN"}
@@ -1 +1 @@
1
- {"version":3,"file":"codemap-telemetry.d.ts","sourceRoot":"","sources":["../../src/server/codemap-telemetry.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAmCD,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAiB,EAC1D,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,iBAAiB,CAOnB;AAYD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,GAChB,iBAAiB,EAAE,CAsCrB"}
1
+ {"version":3,"file":"codemap-telemetry.d.ts","sourceRoot":"","sources":["../../src/server/codemap-telemetry.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAoCD,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAiB,EAC1D,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,iBAAiB,CAOnB;AAYD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,GAChB,iBAAiB,EAAE,CAsCrB"}
@@ -1,5 +1,7 @@
1
1
  import type { WebSocket } from 'ws';
2
- import type { CollaborationBus, EventBus, Logger } from '@wrongstack/core';
2
+ import type { CollaborationBus } from '@wrongstack/core/coordination';
3
+ import type { EventBus } from '@wrongstack/core/kernel';
4
+ import type { Logger } from '@wrongstack/core/types';
3
5
  import type { AnnotationsStore, SessionReader } from '@wrongstack/core/storage';
4
6
  import type { CollabRole } from './types.js';
5
7
  export interface CollaborationHandlerOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"collaboration-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/collaboration-ws-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAyB,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IAChD;;;OAGG;IACH,aAAa,CAAC,EACV,CAAC,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,SAAS,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,GAC1G,SAAS,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,6BAA6B;IAQtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA9B1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAE9C,YACmB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM;IAC/B;;;;;;OAMG;IACc,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS;IACnD;;;;OAIG;IACc,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAC3D;;;;;OAKG;IACc,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,EAClC,OAAO,GAAE,2BAAgC,EAM3D;IAID,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAK7B;IAED,OAAO,IAAI,IAAI,CAId;IAID;;;;;OAKG;IACH,aAAa,CACX,EAAE,EAAE,SAAS,EACb,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,GACnD,OAAO,CA4CT;IAID,OAAO,CAAC,IAAI;IA2FZ,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,gBAAgB;IAwCxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;YASb,cAAc;YA4Ed,aAAa;IA0E3B,OAAO,CAAC,SAAS;IA6CjB,OAAO,CAAC,cAAc;IAgBtB;;;;;;;;;;;OAWG;YACW,aAAa;IAiC3B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,YAAY;YAMN,kBAAkB;YAiDlB,YAAY;YA0CZ,kBAAkB;IAgDhC;;;;;;OAMG;YACW,gBAAgB;IAuF9B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CAgCnC"}
1
+ {"version":3,"file":"collaboration-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/collaboration-ws-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,+BAA+B,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,YAAY,CAAC;AASpB,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IAChD;;;OAGG;IACH,aAAa,CAAC,EACV,CAAC,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,SAAS,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,GAC1G,SAAS,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,6BAA6B;IAQtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA9B1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAE9C,YACmB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM;IAC/B;;;;;;OAMG;IACc,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS;IACnD;;;;OAIG;IACc,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAC3D;;;;;OAKG;IACc,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,EAClC,OAAO,GAAE,2BAAgC,EAM3D;IAID,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAK7B;IAED,OAAO,IAAI,IAAI,CAId;IAID;;;;;OAKG;IACH,aAAa,CACX,EAAE,EAAE,SAAS,EACb,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,GACnD,OAAO,CA4CT;IAID,OAAO,CAAC,IAAI;IA2FZ,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,gBAAgB;IAwCxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;YASb,cAAc;YA4Ed,aAAa;IA0E3B,OAAO,CAAC,SAAS;IA6CjB,OAAO,CAAC,cAAc;IAgBtB;;;;;;;;;;;OAWG;YACW,aAAa;IAiC3B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,YAAY;YAMN,kBAAkB;YAiDlB,YAAY;YA0CZ,kBAAkB;IAgDhC;;;;;;OAMG;YACW,gBAAgB;IAuF9B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CAgCnC"}
@@ -6,7 +6,8 @@
6
6
  * existing codebase index when available.
7
7
  */
8
8
  import type { WebSocket } from 'ws';
9
- import type { Context, Provider, Tool } from '@wrongstack/core';
9
+ import type { Context } from '@wrongstack/core/agent';
10
+ import type { Provider, Tool } from '@wrongstack/core/types';
10
11
  export type CompletionItemKind = 'text' | 'method' | 'function' | 'constructor' | 'field' | 'variable' | 'class' | 'interface' | 'module' | 'property' | 'unit' | 'value' | 'enum' | 'keyword' | 'snippet' | 'file' | 'reference';
11
12
  export interface CompletionSuggestion {
12
13
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"completion-handlers.d.ts","sourceRoot":"","sources":["../../src/server/completion-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAW,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzE,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,QAAQ,GACR,UAAU,GACV,aAAa,GACb,OAAO,GACP,UAAU,GACV,OAAO,GACP,WAAW,GACX,QAAQ,GACR,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;CAC9C;AAgBD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,0BAA0B,KAChC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;AA+DrC,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA4Ef;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,GAAG,EAAE,OAAO,GACX,mBAAmB,GAAG,SAAS,CAkBjC"}
1
+ {"version":3,"file":"completion-handlers.d.ts","sourceRoot":"","sources":["../../src/server/completion-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAW,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAItE,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,QAAQ,GACR,UAAU,GACV,aAAa,GACb,OAAO,GACP,UAAU,GACV,OAAO,GACP,WAAW,GACX,QAAQ,GACR,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;CAC9C;AAgBD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,0BAA0B,KAChC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;AA+DrC,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA4Ef;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,GAAG,EAAE,OAAO,GACX,mBAAmB,GAAG,SAAS,CAkBjC"}
@@ -0,0 +1,7 @@
1
+ import type { WebSocket } from 'ws';
2
+ import type { WSClientMessage } from './types.js';
3
+ export interface CompletionRouteHandlers {
4
+ request: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
5
+ }
6
+ export declare function handleCompletionRoute(ws: WebSocket, msg: WSClientMessage, handlers: CompletionRouteHandlers): Promise<boolean>;
7
+ //# sourceMappingURL=completion-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-routes.d.ts","sourceRoot":"","sources":["../../src/server/completion-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxE;AAED,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,uBAAuB,GAChC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
@@ -0,0 +1,11 @@
1
+ import type { Config, SecretVault } from '@wrongstack/core/types';
2
+ import type { WebSocket } from 'ws';
3
+ export interface ConfigDoctorDeps {
4
+ profileConfigPath: string;
5
+ vault: SecretVault;
6
+ updateConfig: (mutate: (config: Record<string, unknown>) => void, errorLabel: string) => Promise<void>;
7
+ applyRuntimeConfig: (config: Config) => void;
8
+ }
9
+ /** Preview or apply canonical defaults to the active profile config. */
10
+ export declare function handleConfigDoctor(ws: WebSocket, apply: boolean, deps: ConfigDoctorDeps): Promise<void>;
11
+ //# sourceMappingURL=config-doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-doctor.d.ts","sourceRoot":"","sources":["../../src/server/config-doctor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGpC,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,CACZ,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACjD,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAoBD,wEAAwE;AACxE,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -1,55 +1,27 @@
1
- /**
2
- * WebSocket connection lifecycle for the standalone WebUI server.
3
- *
4
- * Phase 1b of the god-module split (issue: God-modules >1500 lines).
5
- * `startWebUI` in `./index.ts` previously inlined:
6
- * - per-connection message rate limiting (state + `checkRateLimit`)
7
- * - the `handleConnection` callback registered on both WS servers
8
- * - the F5-resilience replay (transcript + usage) shipped to every new
9
- * connection so a browser refresh rehydrates without an extra round-trip
10
- *
11
- * All of that moves here. The factory returns the `(ws) => void` handler
12
- * that `startWebUI` registers on `wssPrimary` / `wssSecondary`. Behaviour is
13
- * preserved verbatim — rate-limit windows, the 2 000-message replay cap, the
14
- * pending-confirm cleanup on close, and the error swallow on socket errors.
15
- */
16
- import type { Context, Message, Usage } from '@wrongstack/core';
17
- import type { DefaultTokenCounter } from '@wrongstack/core/infrastructure';
1
+ import type { Context } from '@wrongstack/core/agent';
2
+ import type { Message, SessionEvent, TokenCounter, Usage } from '@wrongstack/core/types';
18
3
  import type { WebSocket } from 'ws';
19
- import type { GoalWebSocketHandler } from './goal-ws-handler.js';
20
4
  import type { CollaborationWebSocketHandler } from './collaboration-ws-handler.js';
5
+ import type { GoalWebSocketHandler } from './goal-ws-handler.js';
6
+ import type { PendingConfirm } from './pending-confirms.js';
21
7
  import type { SddBoardWebSocketHandler } from './sdd-board-ws-handler.js';
22
8
  import type { SddWizardWebSocketHandler } from './sdd-wizard-ws-handler.js';
23
9
  import type { SpecsWebSocketHandler } from './specs-ws-handler.js';
24
10
  import type { TerminalWebSocketHandler } from './terminal-ws-handler.js';
25
- import type { WorktreeWebSocketHandler } from './worktree-ws-handler.js';
26
11
  import type { ConnectedClient, WSClientMessage } from './types.js';
27
- import { type PendingConfirm } from './pending-confirms.js';
28
- /** The session.start payload enriched with optional F5-replay fields. */
29
- type SessionStartEnriched = Record<string, unknown>;
12
+ import type { WorktreeWebSocketHandler } from './worktree-ws-handler.js';
30
13
  export interface ConnectionHandlerOptions {
31
- /** Live session id — re-read every connect (mutable across /new + resume). */
32
14
  getSessionId(): string;
33
- /** Builds the rich session.start payload (model, costs, cwd, …). */
34
- sessionStartPayload(): Promise<SessionStartEnriched>;
35
- /** Token counter — `total()` feeds the replayUsage block. */
36
- tokenCounter: DefaultTokenCounter;
37
- /** Agent context — fallback source for replay when the session log is unavailable. */
15
+ sessionStartPayload(): Promise<Record<string, unknown>>;
16
+ tokenCounter: TokenCounter;
38
17
  context: Context;
39
- /**
40
- * Load the visible chat replay for a reconnecting client. Prefer the
41
- * session log over `context.messages`: context is the model working set and
42
- * may have been compacted, while the session log is the UI transcript.
43
- */
44
18
  loadReplay?: (() => Promise<{
45
19
  messages: Message[];
20
+ events?: readonly SessionEvent[] | undefined;
46
21
  usage?: Usage | undefined;
47
22
  } | null>) | undefined;
48
- /** Live WS clients map (shared with the dispatcher + broadcaster). */
49
23
  clients: Map<WebSocket, ConnectedClient>;
50
- /** Pending permission confirmations — drained to 'no' on disconnect. */
51
24
  pendingConfirms: Map<string, PendingConfirm>;
52
- /** Per-feature WS handlers that register each new client for their feeds. */
53
25
  goalHandler: GoalWebSocketHandler;
54
26
  specsHandler: SpecsWebSocketHandler;
55
27
  sddBoardHandler: SddBoardWebSocketHandler;
@@ -57,16 +29,7 @@ export interface ConnectionHandlerOptions {
57
29
  worktreeHandler: WorktreeWebSocketHandler;
58
30
  collabHandler: CollaborationWebSocketHandler;
59
31
  terminalHandler: TerminalWebSocketHandler;
60
- /** The inbound message dispatcher (handles parsed WSClientMessage). */
61
32
  handleMessage: (ws: WebSocket, client: ConnectedClient, msg: WSClientMessage) => Promise<void>;
62
33
  }
63
- /**
64
- * Build the `(ws) => void` connection handler.
65
- *
66
- * Owns the rate-limit state + the per-process connection-id sequence so two
67
- * handlers built in the same process don't share buckets. Returns the handler
68
- * plus a `dispose` for tests; production registers it directly on the servers.
69
- */
70
- export declare function createConnectionHandler(opts: ConnectionHandlerOptions): (ws: WebSocket) => void;
71
- export {};
34
+ export declare function createConnectionHandler(options: ConnectionHandlerOptions): (ws: WebSocket) => void;
72
35
  //# sourceMappingURL=connection-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-handler.d.ts","sourceRoot":"","sources":["../../src/server/connection-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvF,yEAAyE;AACzE,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,YAAY,IAAI,MAAM,CAAC;IACvB,oEAAoE;IACpE,mBAAmB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrD,6DAA6D;IAC7D,YAAY,EAAE,mBAAmB,CAAC;IAClC,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACpG,sEAAsE;IACtE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,wEAAwE;IACxE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,6EAA6E;IAC7E,WAAW,EAAE,oBAAoB,CAAC;IAClC,YAAY,EAAE,qBAAqB,CAAC;IACpC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,aAAa,EAAE,6BAA6B,CAAC;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,uEAAuE;IACvE,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChG;AA2BD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAkNzB"}
1
+ {"version":3,"file":"connection-handler.d.ts","sourceRoot":"","sources":["../../src/server/connection-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAEnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE,MAAM,WAAW,wBAAwB;IACvC,YAAY,IAAI,MAAM,CAAC;IACvB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EACP,CAAC,MAAM,OAAO,CAAC;QACb,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;QAC7C,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;KAC3B,GAAG,IAAI,CAAC,CAAC,GACV,SAAS,CAAC;IACd,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAE,oBAAoB,CAAC;IAClC,YAAY,EAAE,qBAAqB,CAAC;IACpC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,aAAa,EAAE,6BAA6B,CAAC;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChG;AAID,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAsEzB"}
@@ -0,0 +1,43 @@
1
+ import type { WebSocket } from 'ws';
2
+ import type { PendingConfirm } from './pending-confirms.js';
3
+ type OutboundMessage = {
4
+ type: string;
5
+ payload: unknown;
6
+ };
7
+ type ProtocolIssue = {
8
+ code: string;
9
+ message: string;
10
+ };
11
+ type DecodeResult<Message> = {
12
+ ok: true;
13
+ message: Message;
14
+ } | {
15
+ ok: false;
16
+ issue: ProtocolIssue;
17
+ };
18
+ export interface ConnectionLifecycleOptions<Client, Request, Message> {
19
+ clients: Map<WebSocket, Client>;
20
+ pendingConfirms: Map<string, PendingConfirm>;
21
+ authenticate?: (ws: WebSocket, request: Request) => boolean | Promise<boolean>;
22
+ createClient: (ws: WebSocket, connectionId: string) => Client;
23
+ registerClient: (ws: WebSocket) => void;
24
+ unregisterClient?: (ws: WebSocket) => void;
25
+ onClose?: (ws: WebSocket, client: Client | undefined) => void;
26
+ decode: (raw: string) => DecodeResult<Message>;
27
+ dispatch: (ws: WebSocket, client: Client, message: Message) => Promise<void>;
28
+ send: (ws: WebSocket, message: OutboundMessage) => void;
29
+ sessionPayload: (payload: Record<string, unknown>) => Record<string, unknown>;
30
+ buildInitialPayload: () => Promise<Record<string, unknown>>;
31
+ rateLimitMax?: number;
32
+ rateLimitWindowMs?: number;
33
+ confirmDrainGraceMs?: number;
34
+ rateLimitMessage?: string;
35
+ log?: (level: 'warn' | 'error', event: string, error: unknown) => void;
36
+ }
37
+ /**
38
+ * Canonical WebSocket lifecycle: protection, auth, registration, protocol
39
+ * decode, rate limiting, initial replay, and disconnect cleanup.
40
+ */
41
+ export declare function createConnectionLifecycle<Client, Request, Message>(options: ConnectionLifecycleOptions<Client, Request, Message>): (ws: WebSocket, request: Request) => Promise<void>;
42
+ export {};
43
+ //# sourceMappingURL=connection-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-lifecycle.d.ts","sourceRoot":"","sources":["../../src/server/connection-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAC1D,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,KAAK,YAAY,CAAC,OAAO,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO;IAClE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9D,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9D,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAChE,OAAO,EAAE,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAC5D,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CA6GpD"}
@@ -0,0 +1,15 @@
1
+ import type { WebSocket } from 'ws';
2
+ import { type DesignContext } from './design-handlers.js';
3
+ import { type PromptsContext } from './prompts-handlers.js';
4
+ import { type SkillsContext } from './skills-handlers.js';
5
+ import type { WSClientMessage } from './types.js';
6
+ export interface ContentRouteContext {
7
+ getProjectRoot: () => string;
8
+ getSkillsContext: () => SkillsContext;
9
+ getPromptsContext: () => PromptsContext;
10
+ getDesignContext: () => DesignContext;
11
+ onFileWritten?: ((filePath: string) => void) | undefined;
12
+ }
13
+ /** Canonical file/skill/prompt/design routing shared by every WebUI host. */
14
+ export declare function handleContentRoute(ctx: ContentRouteContext, ws: WebSocket, message: WSClientMessage): Promise<boolean>;
15
+ //# sourceMappingURL=content-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-routes.d.ts","sourceRoot":"","sources":["../../src/server/content-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EACL,KAAK,aAAa,EASnB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAQL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EASL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1D;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,OAAO,CAAC,CAwFlB"}
@@ -0,0 +1,28 @@
1
+ import type { Agent } from '@wrongstack/core/agent';
2
+ import type { WebSocket } from 'ws';
3
+ import type { ConversationRouteHandlers } from './conversation-routes.js';
4
+ import type { PendingConfirm } from './pending-confirms.js';
5
+ type OutboundMessage = {
6
+ type: string;
7
+ payload: unknown;
8
+ };
9
+ export interface ConversationRunControl {
10
+ /** Return a controller when acquired, or undefined when this host is busy. */
11
+ begin(ws: WebSocket): AbortController | undefined;
12
+ end(ws: WebSocket, controller: AbortController): void;
13
+ abort(ws: WebSocket): void;
14
+ }
15
+ export interface ConversationOperationsContext {
16
+ getAgent: () => Agent;
17
+ getSessionId: () => string;
18
+ runControl: ConversationRunControl;
19
+ pendingConfirms: Map<string, PendingConfirm>;
20
+ send: (ws: WebSocket, message: OutboundMessage) => void;
21
+ notifyAbort: (ws: WebSocket, message: OutboundMessage) => void;
22
+ getMaxIterations?: () => number | undefined;
23
+ busyPhase?: string;
24
+ busyMessage?: string;
25
+ }
26
+ export declare function createConversationOperations(ctx: ConversationOperationsContext): ConversationRouteHandlers;
27
+ export {};
28
+ //# sourceMappingURL=conversation-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-operations.d.ts","sourceRoot":"","sources":["../../src/server/conversation-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAcpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI7E,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAAC;IAClD,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,EAAE,sBAAsB,CAAC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,6BAA6B,GACjC,yBAAyB,CAkI3B"}
@@ -0,0 +1,10 @@
1
+ import type { WebSocket } from 'ws';
2
+ import type { WSClientMessage } from './types.js';
3
+ export interface ConversationRouteHandlers {
4
+ userMessage: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
5
+ abort: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
6
+ ping: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
7
+ confirmTool: (ws: WebSocket, msg: WSClientMessage) => Promise<void> | void;
8
+ }
9
+ export declare function handleConversationRoute(ws: WebSocket, msg: WSClientMessage, handlers: ConversationRouteHandlers): Promise<boolean>;
10
+ //# sourceMappingURL=conversation-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-routes.d.ts","sourceRoot":"","sources":["../../src/server/conversation-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3E,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrE,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC5E;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,OAAO,CAAC,CAiBlB"}
@@ -2,7 +2,7 @@
2
2
  * Custom context modes — user-defined presets that are loaded from disk,
3
3
  * merged with the built-in modes, and managed via WebSocket CRUD handlers.
4
4
  *
5
- * Stored in: ~/.wrongstack/custom-context-modes.json
5
+ * Stored in: ~/.wrongstack/profiles/<name>/custom-context-modes.json
6
6
  * Format: { "modes": ContextWindowMode[] }
7
7
  */
8
8
  export interface CustomContextMode {
@@ -1 +1 @@
1
- {"version":3,"file":"custom-context-modes.d.ts","sourceRoot":"","sources":["../../src/server/custom-context-modes.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACtC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACjF,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACvG,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpE,IAAI,EAAE,MAAM,iBAAiB,EAAE,CAAC;CACjC;AAUD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAyH5E"}
1
+ {"version":3,"file":"custom-context-modes.d.ts","sourceRoot":"","sources":["../../src/server/custom-context-modes.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACtC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACjF,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACvG,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpE,IAAI,EAAE,MAAM,iBAAiB,EAAE,CAAC;CACjC;AAUD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAyH5E"}
@@ -31,6 +31,14 @@ export declare function handleDesignUse(ws: WebSocket, ctx: DesignContext, msg:
31
31
  export declare function handleDesignSet(ws: WebSocket, ctx: DesignContext, msg: {
32
32
  payload?: unknown;
33
33
  }): Promise<void>;
34
+ /** Resolve high-level knobs (radius/density/font/motion) into token overrides. */
35
+ export declare function handleDesignTune(ws: WebSocket, ctx: DesignContext, msg: {
36
+ payload?: unknown;
37
+ }): Promise<void>;
38
+ /** Switch to a different kit, dropping the prior kit's overrides. */
39
+ export declare function handleDesignSwap(ws: WebSocket, ctx: DesignContext, msg: {
40
+ payload?: unknown;
41
+ }): Promise<void>;
34
42
  /** Write the active kit's (override-applied) tokens to a real theme file. */
35
43
  export declare function handleDesignMaterialize(ws: WebSocket, ctx: DesignContext, msg: {
36
44
  payload?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"design-handlers.d.ts","sourceRoot":"","sources":["../../src/server/design-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAkBH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAcpC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3D;AA6CD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASvF;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,2EAA2E;AAC3E,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BzF"}
1
+ {"version":3,"file":"design-handlers.d.ts","sourceRoot":"","sources":["../../src/server/design-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqBH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAcpC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3D;AA6CD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASvF;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,kFAAkF;AAClF,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,qEAAqE;AACrE,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,2EAA2E;AAC3E,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"discover-mailbox-bridge.d.ts","sourceRoot":"","sources":["../../src/server/discover-mailbox-bridge.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAClF,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC5D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC7D,CAAC;IACF,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACxC;AAID;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD9F"}
1
+ {"version":3,"file":"discover-mailbox-bridge.d.ts","sourceRoot":"","sources":["../../src/server/discover-mailbox-bridge.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAClF,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC5D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC7D,CAAC;IACF,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACxC;AAID;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD9F"}