@wrongstack/webui-server 0.292.1 → 0.295.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +18753 -14274
  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 +7 -0
  18. package/dist/protocol/index.d.ts.map +1 -0
  19. package/dist/protocol/index.js +842 -0
  20. package/dist/protocol/index.js.map +7 -0
  21. package/dist/protocol/projections.d.ts +111 -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/server-conversation.d.ts +3 -0
  26. package/dist/protocol/server-conversation.d.ts.map +1 -0
  27. package/dist/protocol/server-integrations.d.ts +3 -0
  28. package/dist/protocol/server-integrations.d.ts.map +1 -0
  29. package/dist/protocol/server-operations.d.ts +4 -0
  30. package/dist/protocol/server-operations.d.ts.map +1 -0
  31. package/dist/protocol/server-workspace.d.ts +3 -0
  32. package/dist/protocol/server-workspace.d.ts.map +1 -0
  33. package/dist/protocol/types.d.ts +24 -0
  34. package/dist/protocol/types.d.ts.map +1 -0
  35. package/dist/protocol/version.d.ts +20 -0
  36. package/dist/protocol/version.d.ts.map +1 -0
  37. package/dist/server/agent-roster-handlers.d.ts +27 -0
  38. package/dist/server/agent-roster-handlers.d.ts.map +1 -0
  39. package/dist/server/agent-roster-routes.d.ts +8 -0
  40. package/dist/server/agent-roster-routes.d.ts.map +1 -0
  41. package/dist/server/autonomy-routes.d.ts +9 -0
  42. package/dist/server/autonomy-routes.d.ts.map +1 -0
  43. package/dist/server/backend-services.d.ts +19 -6
  44. package/dist/server/backend-services.d.ts.map +1 -1
  45. package/dist/server/boot.d.ts +4 -1
  46. package/dist/server/boot.d.ts.map +1 -1
  47. package/dist/server/brain-handlers.d.ts +47 -0
  48. package/dist/server/brain-handlers.d.ts.map +1 -0
  49. package/dist/server/chronicle-routes.d.ts +12 -0
  50. package/dist/server/chronicle-routes.d.ts.map +1 -0
  51. package/dist/server/client-presence.d.ts +26 -0
  52. package/dist/server/client-presence.d.ts.map +1 -0
  53. package/dist/server/client-transport-routes.d.ts +8 -0
  54. package/dist/server/client-transport-routes.d.ts.map +1 -0
  55. package/dist/server/codebase-indexing.d.ts +3 -1
  56. package/dist/server/codebase-indexing.d.ts.map +1 -1
  57. package/dist/server/codemap-telemetry.d.ts.map +1 -1
  58. package/dist/server/collaboration-ws-handler.d.ts +3 -1
  59. package/dist/server/collaboration-ws-handler.d.ts.map +1 -1
  60. package/dist/server/completion-handlers.d.ts +2 -1
  61. package/dist/server/completion-handlers.d.ts.map +1 -1
  62. package/dist/server/completion-routes.d.ts +7 -0
  63. package/dist/server/completion-routes.d.ts.map +1 -0
  64. package/dist/server/config-doctor.d.ts +11 -0
  65. package/dist/server/config-doctor.d.ts.map +1 -0
  66. package/dist/server/connection-handler.d.ts +8 -46
  67. package/dist/server/connection-handler.d.ts.map +1 -1
  68. package/dist/server/connection-lifecycle.d.ts +43 -0
  69. package/dist/server/connection-lifecycle.d.ts.map +1 -0
  70. package/dist/server/content-routes.d.ts +15 -0
  71. package/dist/server/content-routes.d.ts.map +1 -0
  72. package/dist/server/conversation-operations.d.ts +28 -0
  73. package/dist/server/conversation-operations.d.ts.map +1 -0
  74. package/dist/server/conversation-routes.d.ts +10 -0
  75. package/dist/server/conversation-routes.d.ts.map +1 -0
  76. package/dist/server/custom-context-modes.d.ts +1 -1
  77. package/dist/server/custom-context-modes.d.ts.map +1 -1
  78. package/dist/server/design-handlers.d.ts +8 -0
  79. package/dist/server/design-handlers.d.ts.map +1 -1
  80. package/dist/server/discover-mailbox-bridge.d.ts.map +1 -1
  81. package/dist/server/embedded-host-adapters.d.ts +96 -0
  82. package/dist/server/embedded-host-adapters.d.ts.map +1 -0
  83. package/dist/server/embedded-lifecycle.d.ts +113 -0
  84. package/dist/server/embedded-lifecycle.d.ts.map +1 -0
  85. package/dist/server/embedded-message-router.d.ts +64 -0
  86. package/dist/server/embedded-message-router.d.ts.map +1 -0
  87. package/dist/server/entry.js +16641 -14023
  88. package/dist/server/entry.js.map +4 -4
  89. package/dist/server/eternal-iteration-broadcast.d.ts +1 -1
  90. package/dist/server/eternal-iteration-broadcast.d.ts.map +1 -1
  91. package/dist/server/file-handlers.d.ts.map +1 -1
  92. package/dist/server/frontend-static-serve.d.ts +133 -0
  93. package/dist/server/frontend-static-serve.d.ts.map +1 -0
  94. package/dist/server/git-process.d.ts +4 -0
  95. package/dist/server/git-process.d.ts.map +1 -0
  96. package/dist/server/goal-snapshot-routes.d.ts +7 -0
  97. package/dist/server/goal-snapshot-routes.d.ts.map +1 -0
  98. package/dist/server/goal-ws-handler.d.ts +3 -1
  99. package/dist/server/goal-ws-handler.d.ts.map +1 -1
  100. package/dist/server/handlers/worklist-handlers.d.ts +14 -20
  101. package/dist/server/handlers/worklist-handlers.d.ts.map +1 -1
  102. package/dist/server/handlers.js +150 -121
  103. package/dist/server/handlers.js.map +3 -3
  104. package/dist/server/host-routes.d.ts +7 -0
  105. package/dist/server/host-routes.d.ts.map +1 -0
  106. package/dist/server/http-server/analytics-handler.d.ts +2 -0
  107. package/dist/server/http-server/analytics-handler.d.ts.map +1 -1
  108. package/dist/server/http-server/api-handlers.d.ts.map +1 -1
  109. package/dist/server/http-server.d.ts +20 -23
  110. package/dist/server/http-server.d.ts.map +1 -1
  111. package/dist/server/index.d.ts +55 -22
  112. package/dist/server/index.d.ts.map +1 -1
  113. package/dist/server/instance-registry.d.ts +1 -3
  114. package/dist/server/instance-registry.d.ts.map +1 -1
  115. package/dist/server/introspection-routes.d.ts +19 -0
  116. package/dist/server/introspection-routes.d.ts.map +1 -0
  117. package/dist/server/kanban-dispatch.d.ts +41 -0
  118. package/dist/server/kanban-dispatch.d.ts.map +1 -0
  119. package/dist/server/kanban-host-routes.d.ts +10 -0
  120. package/dist/server/kanban-host-routes.d.ts.map +1 -0
  121. package/dist/server/kanban-routes.d.ts +5 -3
  122. package/dist/server/kanban-routes.d.ts.map +1 -1
  123. package/dist/server/kanban-run-mirror.d.ts +76 -0
  124. package/dist/server/kanban-run-mirror.d.ts.map +1 -0
  125. package/dist/server/kanban-supervisor.d.ts +47 -0
  126. package/dist/server/kanban-supervisor.d.ts.map +1 -0
  127. package/dist/server/mailbox-handlers.d.ts +12 -4
  128. package/dist/server/mailbox-handlers.d.ts.map +1 -1
  129. package/dist/server/mailbox-routes.d.ts +8 -0
  130. package/dist/server/mailbox-routes.d.ts.map +1 -1
  131. package/dist/server/mcp-handlers.d.ts +4 -0
  132. package/dist/server/mcp-handlers.d.ts.map +1 -1
  133. package/dist/server/memory-handlers.d.ts +54 -46
  134. package/dist/server/memory-handlers.d.ts.map +1 -1
  135. package/dist/server/memory-routes.d.ts +11 -0
  136. package/dist/server/memory-routes.d.ts.map +1 -0
  137. package/dist/server/message-dispatcher.d.ts +3 -4
  138. package/dist/server/message-dispatcher.d.ts.map +1 -1
  139. package/dist/server/mode-handlers.d.ts +6 -15
  140. package/dist/server/mode-handlers.d.ts.map +1 -1
  141. package/dist/server/mode-operations.d.ts +24 -0
  142. package/dist/server/mode-operations.d.ts.map +1 -0
  143. package/dist/server/mode-routes.d.ts +2 -0
  144. package/dist/server/mode-routes.d.ts.map +1 -1
  145. package/dist/server/model-auto-discovery.d.ts +1 -1
  146. package/dist/server/model-auto-discovery.d.ts.map +1 -1
  147. package/dist/server/model-catalog.d.ts +1 -1
  148. package/dist/server/model-catalog.d.ts.map +1 -1
  149. package/dist/server/model-operations.d.ts +29 -0
  150. package/dist/server/model-operations.d.ts.map +1 -0
  151. package/dist/server/path-containment.d.ts.map +1 -1
  152. package/dist/server/port-utils.d.ts +18 -25
  153. package/dist/server/port-utils.d.ts.map +1 -1
  154. package/dist/server/pre-context-services.d.ts +32 -5
  155. package/dist/server/pre-context-services.d.ts.map +1 -1
  156. package/dist/server/pref-helpers.d.ts +2 -4
  157. package/dist/server/pref-helpers.d.ts.map +1 -1
  158. package/dist/server/prefs-handlers.d.ts +22 -0
  159. package/dist/server/prefs-handlers.d.ts.map +1 -0
  160. package/dist/server/prefs-routes.d.ts +5 -0
  161. package/dist/server/prefs-routes.d.ts.map +1 -1
  162. package/dist/server/privileged-actions.d.ts +16 -0
  163. package/dist/server/privileged-actions.d.ts.map +1 -0
  164. package/dist/server/process-handlers.d.ts +8 -6
  165. package/dist/server/process-handlers.d.ts.map +1 -1
  166. package/dist/server/process-routes.d.ts +9 -0
  167. package/dist/server/process-routes.d.ts.map +1 -0
  168. package/dist/server/project-handlers.d.ts +25 -33
  169. package/dist/server/project-handlers.d.ts.map +1 -1
  170. package/dist/server/projects-manifest.d.ts +8 -0
  171. package/dist/server/projects-manifest.d.ts.map +1 -1
  172. package/dist/server/prompts-handlers.d.ts +2 -1
  173. package/dist/server/prompts-handlers.d.ts.map +1 -1
  174. package/dist/server/provider-config-io.d.ts +2 -2
  175. package/dist/server/provider-config-io.d.ts.map +1 -1
  176. package/dist/server/provider-config-standalone.d.ts +5 -3
  177. package/dist/server/provider-config-standalone.d.ts.map +1 -1
  178. package/dist/server/provider-handlers.d.ts +63 -6
  179. package/dist/server/provider-handlers.d.ts.map +1 -1
  180. package/dist/server/provider-keys.d.ts +1 -1
  181. package/dist/server/provider-keys.d.ts.map +1 -1
  182. package/dist/server/provider-routes.d.ts +28 -2
  183. package/dist/server/provider-routes.d.ts.map +1 -1
  184. package/dist/server/provider-store.d.ts +5 -4
  185. package/dist/server/provider-store.d.ts.map +1 -1
  186. package/dist/server/route-family-dispatcher.d.ts +71 -0
  187. package/dist/server/route-family-dispatcher.d.ts.map +1 -0
  188. package/dist/server/routes.d.ts +17 -7
  189. package/dist/server/routes.d.ts.map +1 -1
  190. package/dist/server/sdd-board-ws-handler.d.ts +5 -1
  191. package/dist/server/sdd-board-ws-handler.d.ts.map +1 -1
  192. package/dist/server/sdd-wizard-wiring.d.ts +8 -3
  193. package/dist/server/sdd-wizard-wiring.d.ts.map +1 -1
  194. package/dist/server/sdd-wizard-ws-handler.d.ts.map +1 -1
  195. package/dist/server/server-runtime.d.ts +16 -12
  196. package/dist/server/server-runtime.d.ts.map +1 -1
  197. package/dist/server/session-handlers.d.ts +30 -11
  198. package/dist/server/session-handlers.d.ts.map +1 -1
  199. package/dist/server/session-history.d.ts +1 -1
  200. package/dist/server/session-history.d.ts.map +1 -1
  201. package/dist/server/setup-event-projection.d.ts +10 -0
  202. package/dist/server/setup-event-projection.d.ts.map +1 -0
  203. package/dist/server/setup-events-watcher.d.ts +13 -0
  204. package/dist/server/setup-events-watcher.d.ts.map +1 -0
  205. package/dist/server/setup-events.d.ts +11 -21
  206. package/dist/server/setup-events.d.ts.map +1 -1
  207. package/dist/server/setup-screen.d.ts +2 -1
  208. package/dist/server/setup-screen.d.ts.map +1 -1
  209. package/dist/server/shell-open.d.ts +26 -2
  210. package/dist/server/shell-open.d.ts.map +1 -1
  211. package/dist/server/skills-handlers.d.ts +2 -2
  212. package/dist/server/skills-handlers.d.ts.map +1 -1
  213. package/dist/server/specs-ws-handler.d.ts.map +1 -1
  214. package/dist/server/standalone-session-identity.d.ts +3 -2
  215. package/dist/server/standalone-session-identity.d.ts.map +1 -1
  216. package/dist/server/start-webui.d.ts +9 -1
  217. package/dist/server/start-webui.d.ts.map +1 -1
  218. package/dist/server/stream-coalescer.d.ts +49 -0
  219. package/dist/server/stream-coalescer.d.ts.map +1 -0
  220. package/dist/server/techstack-handlers.d.ts +12 -2
  221. package/dist/server/techstack-handlers.d.ts.map +1 -1
  222. package/dist/server/terminal-ws-handler.d.ts +5 -3
  223. package/dist/server/terminal-ws-handler.d.ts.map +1 -1
  224. package/dist/server/types.d.ts +10 -3
  225. package/dist/server/types.d.ts.map +1 -1
  226. package/dist/server/worklist-routes.d.ts +21 -0
  227. package/dist/server/worklist-routes.d.ts.map +1 -0
  228. package/dist/server/worktree-routes.d.ts +10 -0
  229. package/dist/server/worktree-routes.d.ts.map +1 -0
  230. package/dist/server/worktree-ws-handler.d.ts +2 -1
  231. package/dist/server/worktree-ws-handler.d.ts.map +1 -1
  232. package/dist/server/ws-payload-validation.d.ts +11 -0
  233. package/dist/server/ws-payload-validation.d.ts.map +1 -1
  234. package/dist/server/ws-utils.d.ts +8 -0
  235. package/dist/server/ws-utils.d.ts.map +1 -1
  236. package/package.json +14 -10
@@ -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;AAE1D,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,CA02C7D"}
@@ -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;AAwDH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/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,CA6uBf;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"}
@@ -13,8 +13,8 @@
13
13
  * @see docs/specs/techstack-sdd.md §4.2
14
14
  */
15
15
  import type * as http from 'node:http';
16
- import type { Provider } from '@wrongstack/core';
17
- import type { Snapshot, TechStackEngine, TechStackStore } from '@wrongstack/techstack';
16
+ import type { Provider } from '@wrongstack/core/types';
17
+ import type { PackageOperation, Snapshot, TechStackEngine, TechStackStore } from '@wrongstack/techstack';
18
18
  export interface TechStackHandlerDeps {
19
19
  /** Project ID used to look up the snapshot. */
20
20
  projectId: string;
@@ -41,6 +41,10 @@ export interface TechStackHandlerDeps {
41
41
  provider: Provider;
42
42
  model: string;
43
43
  } | undefined) | undefined;
44
+ /** Normal permission-governed bridge to the language_package tool. */
45
+ executePackageOperation?: ((operation: PackageOperation, workspace?: string) => Promise<{
46
+ readonly detail?: string;
47
+ } | void>) | undefined;
44
48
  }
45
49
  export type TechStackEvent = {
46
50
  type: 'techstack.job.started';
@@ -98,4 +102,10 @@ export declare function handleTechStackDependencyResearch(res: http.ServerRespon
98
102
  export declare function handleTechStackJobStatus(res: http.ServerResponse, deps: TechStackHandlerDeps, jobId: string): void;
99
103
  /** GET /api/techstack/reports/:id?format=md|json */
100
104
  export declare function handleTechStackReport(res: http.ServerResponse, deps: TechStackHandlerDeps, reportId: string, format: 'md' | 'json'): void;
105
+ /** GET /api/techstack/trends */
106
+ export declare function handleTechStackTrends(res: http.ServerResponse, deps: TechStackHandlerDeps): Promise<void>;
107
+ /** GET /api/techstack/remediation */
108
+ export declare function handleTechStackRemediationPlan(res: http.ServerResponse, deps: TechStackHandlerDeps): Promise<void>;
109
+ /** POST /api/techstack/remediation/apply */
110
+ export declare function handleTechStackRemediationApply(req: http.IncomingMessage, res: http.ServerResponse, deps: TechStackHandlerDeps): Promise<void>;
101
111
  //# sourceMappingURL=techstack-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"techstack-handlers.d.ts","sourceRoot":"","sources":["../../src/server/techstack-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"techstack-handlers.d.ts","sourceRoot":"","sources":["../../src/server/techstack-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { Logger } from '@wrongstack/core';
1
+ import type { Logger } from '@wrongstack/core/types';
2
+ import { type TrustBoundary } from '@wrongstack/core/security';
2
3
  import type { WebSocket } from 'ws';
3
4
  /** Loose inbound shape — matches the server's internal WSClientMessage. */
4
5
  type IncomingMessage = {
@@ -48,16 +49,17 @@ export declare class TerminalWebSocketHandler {
48
49
  private readonly logger;
49
50
  private readonly loadNodePty;
50
51
  private readonly killProcessTree;
52
+ private readonly trustBoundary;
51
53
  /** ws → (terminalId → pty). */
52
54
  private readonly sessions;
53
55
  constructor(
54
56
  /** Resolves the cwd new terminals open in — tracks the live working dir. */
55
- getCwd: () => string, logger: Logger, loadNodePty?: LoadNodePty, killProcessTree?: KillProcessTree);
57
+ getCwd: () => string, logger: Logger, loadNodePty?: LoadNodePty, killProcessTree?: KillProcessTree, trustBoundary?: TrustBoundary);
56
58
  addClient(ws: WebSocket): void;
57
59
  /** Kill every pty owned by every client (server shutdown). */
58
60
  dispose(): void;
59
61
  /** True if this message was a terminal.* message (handled here). */
60
- handleMessage(ws: WebSocket, msg: IncomingMessage): boolean;
62
+ handleMessage(ws: WebSocket, msg: IncomingMessage): Promise<boolean>;
61
63
  private create;
62
64
  private input;
63
65
  private resize;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/terminal-ws-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGpC,2EAA2E;AAC3E,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC3D,KAAK,OAAO,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACjE,UAAU,UAAU;IAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC;CAC/C;AACD,UAAU,UAAU;IAClB,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QACxC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACpC,GACA,UAAU,CAAC;CACf;AACD,KAAK,WAAW,GAAG,MAAM,UAAU,GAAG,IAAI,CAAC;AAC3C,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAS7C,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAwB;IAKjC,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IARlC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAE1E;IACE,4EAA4E;IAC3D,MAAM,EAAE,MAAM,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,WAAgC,EAC7C,eAAe,GAAE,eAAwC,EACxE;IAEJ,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAI7B;IAED,8DAA8D;IAC9D,OAAO,IAAI,IAAI,CAEd;IAED,oEAAoE;IACpE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAmB1D;IAID,OAAO,CAAC,MAAM;IA6Dd,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,IAAI;CAOb"}
1
+ {"version":3,"file":"terminal-ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/terminal-ws-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAKpC,2EAA2E;AAC3E,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC3D,KAAK,OAAO,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACjE,UAAU,UAAU;IAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC;CAC/C;AACD,UAAU,UAAU;IAClB,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QACxC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACpC,GACA,UAAU,CAAC;CACf;AACD,KAAK,WAAW,GAAG,MAAM,UAAU,GAAG,IAAI,CAAC;AAC3C,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAW7C,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAwB;IAKjC,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAThC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAE1E;IACE,4EAA4E;IAC3D,MAAM,EAAE,MAAM,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,WAAgC,EAC7C,eAAe,GAAE,eAAwC,EACzD,aAAa,GAAE,aAAkD,EAChF;IAEJ,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAI7B;IAED,8DAA8D;IAC9D,OAAO,IAAI,IAAI,CAEd;IAED,oEAAoE;IAC9D,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBzE;YAIa,MAAM;IAqFpB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,IAAI;CAOb"}