@antelopejs/dms-ai 0.1.3 → 0.1.5

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 (245) hide show
  1. package/README.md +48 -29
  2. package/dist/channels/bridge.d.ts +2 -8
  3. package/dist/channels/bridge.js +26 -42
  4. package/dist/channels/bridge.js.map +1 -1
  5. package/dist/channels/channel-service.d.ts +2 -2
  6. package/dist/channels/channel-service.js +12 -31
  7. package/dist/channels/channel-service.js.map +1 -1
  8. package/dist/channels/registry.d.ts +2 -2
  9. package/dist/channels/registry.js +7 -7
  10. package/dist/channels/registry.js.map +1 -1
  11. package/dist/config.d.ts +1 -0
  12. package/dist/config.js +8 -1
  13. package/dist/config.js.map +1 -1
  14. package/dist/constants/channels.d.ts +5 -10
  15. package/dist/constants/channels.js +6 -10
  16. package/dist/constants/channels.js.map +1 -1
  17. package/dist/constants/sidecar.d.ts +2 -1
  18. package/dist/constants/sidecar.js +3 -2
  19. package/dist/constants/sidecar.js.map +1 -1
  20. package/dist/index.js +8 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/lifecycle/build-id.d.ts +1 -0
  23. package/dist/lifecycle/build-id.js +32 -0
  24. package/dist/lifecycle/build-id.js.map +1 -0
  25. package/dist/lifecycle/sidecar-socket.d.ts +1 -1
  26. package/dist/lifecycle/sidecar-socket.js +2 -2
  27. package/dist/lifecycle/sidecar-socket.js.map +1 -1
  28. package/dist/lifecycle/spawn-sidecar.d.ts +0 -1
  29. package/dist/lifecycle/spawn-sidecar.js +5 -27
  30. package/dist/lifecycle/spawn-sidecar.js.map +1 -1
  31. package/dist/pages/settings/page.js.map +1 -1
  32. package/dist/routes/channels.d.ts +3 -3
  33. package/dist/routes/channels.js +11 -12
  34. package/dist/routes/channels.js.map +1 -1
  35. package/dist/routes/index.d.ts +0 -1
  36. package/dist/routes/index.js +0 -1
  37. package/dist/routes/index.js.map +1 -1
  38. package/frontend-vue/.prettierignore +3 -0
  39. package/frontend-vue/.prettierrc +10 -0
  40. package/frontend-vue/app/chat/components/ChatView.vue +582 -0
  41. package/frontend-vue/app/chat/components/ComposerInput.vue +742 -0
  42. package/frontend-vue/app/chat/components/ConnectionBanner.vue +105 -0
  43. package/frontend-vue/app/chat/components/ConversationDrawer.vue +266 -0
  44. package/frontend-vue/app/chat/components/MarkdownContent.vue +196 -0
  45. package/frontend-vue/app/chat/components/MessageList.vue +474 -0
  46. package/frontend-vue/app/chat/components/PermissionRequests.vue +323 -0
  47. package/frontend-vue/app/chat/components/QuestionPrompt.vue +275 -0
  48. package/frontend-vue/app/chat/components/QueuedMessages.vue +109 -0
  49. package/frontend-vue/app/chat/components/TodoList.vue +291 -0
  50. package/frontend-vue/app/chat/components/ToolCallEntry.vue +218 -0
  51. package/frontend-vue/app/chat/components/ToolCluster.vue +282 -0
  52. package/frontend-vue/app/chat/composables/useChatChannel.ts +116 -0
  53. package/frontend-vue/app/chat/composables/useConversation.ts +838 -0
  54. package/frontend-vue/app/chat/composables/useConversationId.ts +34 -0
  55. package/frontend-vue/app/chat/composables/useConversationList.ts +56 -0
  56. package/frontend-vue/app/chat/composables/usePermissionQueue.ts +59 -0
  57. package/frontend-vue/app/chat/composables/useQuestionQueue.ts +50 -0
  58. package/frontend-vue/app/chat/composables/useRunClock.ts +28 -0
  59. package/frontend-vue/app/chat/composables/useSettings.ts +67 -0
  60. package/frontend-vue/app/chat/constants/attachments.ts +16 -0
  61. package/frontend-vue/app/chat/constants/connection-banner.ts +7 -0
  62. package/frontend-vue/app/chat/constants/conversation-drawer.ts +13 -0
  63. package/frontend-vue/app/chat/constants/conversation.ts +75 -0
  64. package/frontend-vue/app/chat/constants/permissions.ts +50 -0
  65. package/frontend-vue/app/chat/constants/protocol.ts +48 -0
  66. package/frontend-vue/app/chat/constants/run-status.ts +50 -0
  67. package/frontend-vue/app/chat/constants/settings.ts +60 -0
  68. package/frontend-vue/app/chat/types/conversation.ts +87 -0
  69. package/frontend-vue/app/chat/types/permission.ts +7 -0
  70. package/frontend-vue/app/chat/types/question.ts +17 -0
  71. package/frontend-vue/app/chat/types/settings.ts +27 -0
  72. package/frontend-vue/app/chat/utils/attachments.ts +62 -0
  73. package/frontend-vue/app/chat/utils/format.ts +14 -0
  74. package/frontend-vue/app/chat/utils/ids.ts +34 -0
  75. package/frontend-vue/app/chat/utils/markdown.ts +188 -0
  76. package/frontend-vue/app/chat/utils/run-status.ts +90 -0
  77. package/frontend-vue/app/chat/utils/todos.ts +64 -0
  78. package/frontend-vue/app/chat/utils/tool-summary.ts +53 -0
  79. package/frontend-vue/app/components/ActivityView.vue +34 -34
  80. package/frontend-vue/app/components/ChatPanel.vue +276 -0
  81. package/frontend-vue/app/components/SettingsView.vue +127 -130
  82. package/frontend-vue/app/components/SkillsView.vue +55 -53
  83. package/frontend-vue/app/plugins/ai.client.ts +145 -129
  84. package/frontend-vue/app/runtime/assistant-session.ts +21 -0
  85. package/frontend-vue/app/runtime/backoff.ts +11 -14
  86. package/frontend-vue/app/runtime/channel-client.ts +130 -141
  87. package/frontend-vue/app/runtime/chat-transport.ts +25 -55
  88. package/frontend-vue/app/runtime/constants.ts +70 -60
  89. package/frontend-vue/app/runtime/current-page.ts +49 -15
  90. package/frontend-vue/app/runtime/event-stream.ts +35 -35
  91. package/frontend-vue/app/runtime/frame-router.ts +30 -0
  92. package/frontend-vue/app/runtime/header-action.ts +18 -18
  93. package/frontend-vue/app/runtime/host-commands.ts +57 -56
  94. package/frontend-vue/app/runtime/listeners.ts +31 -0
  95. package/frontend-vue/app/runtime/navigation-complete.ts +7 -7
  96. package/frontend-vue/app/runtime/overlay-prefs.ts +36 -36
  97. package/frontend-vue/app/runtime/panel-state.ts +88 -0
  98. package/frontend-vue/app/runtime/session-gate.ts +8 -8
  99. package/frontend-vue/app/runtime/shortcuts.ts +12 -12
  100. package/frontend-vue/app/runtime/sidecar-status.ts +61 -61
  101. package/frontend-vue/app/runtime/typed-message.ts +11 -0
  102. package/frontend-vue/dms.frontend.ts +12 -12
  103. package/frontend-vue/eslint.config.mjs +13 -13
  104. package/frontend-vue/package.json +11 -4
  105. package/frontend-vue/pnpm-lock.yaml +298 -96
  106. package/frontend-vue/tests/backoff.test.ts +26 -30
  107. package/frontend-vue/tests/channel-client.test.ts +187 -188
  108. package/frontend-vue/tests/chat/markdown.test.ts +271 -0
  109. package/frontend-vue/tests/chat/useChatChannel.test.ts +124 -0
  110. package/frontend-vue/tests/chat/useConversation.test.ts +283 -0
  111. package/frontend-vue/tests/chat-panel.test.ts +354 -0
  112. package/frontend-vue/tests/chat-transport.test.ts +84 -57
  113. package/frontend-vue/tests/host-commands.test.ts +126 -87
  114. package/frontend-vue/tests/navigation.test.ts +65 -34
  115. package/frontend-vue/tests/overlay-prefs.test.ts +49 -49
  116. package/frontend-vue/tests/panel-state.test.ts +58 -0
  117. package/frontend-vue/tests/session-gate.test.ts +33 -33
  118. package/frontend-vue/tests/sidecar-guest.test.ts +46 -46
  119. package/frontend-vue/tests/sidecar-status.test.ts +29 -29
  120. package/frontend-vue/tsconfig.chat.json +16 -0
  121. package/frontend-vue/vitest.config.ts +6 -4
  122. package/package.json +5 -5
  123. package/sidecar/dist/agent/effective-mode.d.ts +2 -2
  124. package/sidecar/dist/agent/effective-mode.js +1 -1
  125. package/sidecar/dist/agent/effective-mode.js.map +1 -1
  126. package/sidecar/dist/agent/host-context.js +7 -9
  127. package/sidecar/dist/agent/host-context.js.map +1 -1
  128. package/sidecar/dist/agent/permission-bus.d.ts +1 -1
  129. package/sidecar/dist/agent/permission-bus.js +2 -2
  130. package/sidecar/dist/agent/permission-bus.js.map +1 -1
  131. package/sidecar/dist/agent/provider.d.ts +2 -2
  132. package/sidecar/dist/agent/question-bus.d.ts +1 -1
  133. package/sidecar/dist/agent/question-bus.js +2 -2
  134. package/sidecar/dist/agent/question-bus.js.map +1 -1
  135. package/sidecar/dist/agent/runner.d.ts +2 -2
  136. package/sidecar/dist/agent/runner.js +24 -8
  137. package/sidecar/dist/agent/runner.js.map +1 -1
  138. package/sidecar/dist/agent/session.d.ts +2 -2
  139. package/sidecar/dist/agent/session.js +49 -9
  140. package/sidecar/dist/agent/session.js.map +1 -1
  141. package/sidecar/dist/agent/switching-runner.js +10 -5
  142. package/sidecar/dist/agent/switching-runner.js.map +1 -1
  143. package/sidecar/dist/agent/turn-end-reasons.d.ts +2 -0
  144. package/sidecar/dist/agent/turn-end-reasons.js +6 -1
  145. package/sidecar/dist/agent/turn-end-reasons.js.map +1 -1
  146. package/sidecar/dist/constants/agent.d.ts +4 -1
  147. package/sidecar/dist/constants/agent.js +4 -1
  148. package/sidecar/dist/constants/agent.js.map +1 -1
  149. package/sidecar/dist/constants/cli.d.ts +0 -1
  150. package/sidecar/dist/constants/cli.js +0 -1
  151. package/sidecar/dist/constants/cli.js.map +1 -1
  152. package/sidecar/dist/constants/codex.d.ts +5 -2
  153. package/sidecar/dist/constants/codex.js +5 -2
  154. package/sidecar/dist/constants/codex.js.map +1 -1
  155. package/sidecar/dist/constants/http.d.ts +0 -9
  156. package/sidecar/dist/constants/http.js +0 -19
  157. package/sidecar/dist/constants/http.js.map +1 -1
  158. package/sidecar/dist/constants/mcp.d.ts +1 -1
  159. package/sidecar/dist/constants/mcp.js +1 -1
  160. package/sidecar/dist/constants/mcp.js.map +1 -1
  161. package/sidecar/dist/constants/paths.d.ts +0 -1
  162. package/sidecar/dist/constants/paths.js +0 -1
  163. package/sidecar/dist/constants/paths.js.map +1 -1
  164. package/sidecar/dist/constants/ws.d.ts +3 -4
  165. package/sidecar/dist/constants/ws.js +3 -4
  166. package/sidecar/dist/constants/ws.js.map +1 -1
  167. package/sidecar/dist/index.d.ts +0 -1
  168. package/sidecar/dist/index.js +6 -10
  169. package/sidecar/dist/index.js.map +1 -1
  170. package/sidecar/dist/mcp/tools/find-pages-using.js +5 -10
  171. package/sidecar/dist/mcp/tools/find-pages-using.js.map +1 -1
  172. package/sidecar/dist/mcp/types.d.ts +1 -1
  173. package/sidecar/dist/pages/page-filepath.d.ts +4 -0
  174. package/sidecar/dist/pages/page-filepath.js +28 -0
  175. package/sidecar/dist/pages/page-filepath.js.map +1 -0
  176. package/sidecar/dist/prompts/agent.d.ts +1 -1
  177. package/sidecar/dist/prompts/agent.js +1 -1
  178. package/sidecar/dist/prompts/agent.js.map +1 -1
  179. package/sidecar/dist/protocol/events.js +2 -2
  180. package/sidecar/dist/protocol/events.js.map +1 -1
  181. package/sidecar/dist/protocol/messages.d.ts +4 -15
  182. package/sidecar/dist/protocol/messages.js +4 -11
  183. package/sidecar/dist/protocol/messages.js.map +1 -1
  184. package/sidecar/dist/providers/claude/config.d.ts +2 -2
  185. package/sidecar/dist/providers/claude/config.js +2 -2
  186. package/sidecar/dist/providers/claude/config.js.map +1 -1
  187. package/sidecar/dist/providers/claude/provider.js +1 -1
  188. package/sidecar/dist/providers/claude/provider.js.map +1 -1
  189. package/sidecar/dist/providers/codex/config.d.ts +3 -2
  190. package/sidecar/dist/providers/codex/config.js +3 -3
  191. package/sidecar/dist/providers/codex/config.js.map +1 -1
  192. package/sidecar/dist/providers/codex/process.js +107 -74
  193. package/sidecar/dist/providers/codex/process.js.map +1 -1
  194. package/sidecar/dist/providers/codex/provider.js +68 -31
  195. package/sidecar/dist/providers/codex/provider.js.map +1 -1
  196. package/sidecar/dist/providers/codex/skills.d.ts +1 -0
  197. package/sidecar/dist/providers/codex/skills.js +4 -1
  198. package/sidecar/dist/providers/codex/skills.js.map +1 -1
  199. package/sidecar/dist/providers/codex/stop.d.ts +4 -0
  200. package/sidecar/dist/providers/codex/stop.js +71 -0
  201. package/sidecar/dist/providers/codex/stop.js.map +1 -0
  202. package/sidecar/dist/server/{iframe-socket-registry.d.ts → chat-socket-registry.d.ts} +3 -2
  203. package/sidecar/dist/server/{iframe-socket-registry.js → chat-socket-registry.js} +4 -3
  204. package/sidecar/dist/server/chat-socket-registry.js.map +1 -0
  205. package/sidecar/dist/server/client-auth.js +2 -14
  206. package/sidecar/dist/server/client-auth.js.map +1 -1
  207. package/sidecar/dist/server/host-command-router.d.ts +5 -0
  208. package/sidecar/dist/server/host-command-router.js +4 -0
  209. package/sidecar/dist/server/host-command-router.js.map +1 -0
  210. package/sidecar/dist/server/host-socket-registry.d.ts +1 -1
  211. package/sidecar/dist/server/host-socket-registry.js +16 -13
  212. package/sidecar/dist/server/host-socket-registry.js.map +1 -1
  213. package/sidecar/dist/server/http.d.ts +0 -1
  214. package/sidecar/dist/server/http.js +1 -44
  215. package/sidecar/dist/server/http.js.map +1 -1
  216. package/sidecar/dist/server/routing.d.ts +5 -6
  217. package/sidecar/dist/server/routing.js +18 -28
  218. package/sidecar/dist/server/routing.js.map +1 -1
  219. package/sidecar/dist/server/ws.d.ts +2 -2
  220. package/sidecar/dist/server/ws.js +41 -39
  221. package/sidecar/dist/server/ws.js.map +1 -1
  222. package/sidecar/dist/state/host-state.d.ts +10 -2
  223. package/sidecar/dist/state/host-state.js +13 -3
  224. package/sidecar/dist/state/host-state.js.map +1 -1
  225. package/sidecar/dist/state/settings-store.js +2 -2
  226. package/sidecar/dist/state/settings-store.js.map +1 -1
  227. package/sidecar/dist/state/settings-types.d.ts +3 -3
  228. package/sidecar/dist/state/settings-types.js +1 -1
  229. package/sidecar/dist/state/settings-types.js.map +1 -1
  230. package/sidecar/package.json +3 -5
  231. package/dist/chatbox/passthrough.d.ts +0 -3
  232. package/dist/chatbox/passthrough.js +0 -53
  233. package/dist/chatbox/passthrough.js.map +0 -1
  234. package/dist/constants/chatbox.d.ts +0 -10
  235. package/dist/constants/chatbox.js +0 -35
  236. package/dist/constants/chatbox.js.map +0 -1
  237. package/dist/routes/chatbox.d.ts +0 -7
  238. package/dist/routes/chatbox.js +0 -47
  239. package/dist/routes/chatbox.js.map +0 -1
  240. package/frontend-vue/app/runtime/overlay.ts +0 -400
  241. package/frontend-vue/app/runtime/theme-bridge.ts +0 -189
  242. package/sidecar/chatbox/dist/assets/index-C8u7mkHn.css +0 -1
  243. package/sidecar/chatbox/dist/assets/index-tdZvY7ee.js +0 -52
  244. package/sidecar/chatbox/dist/index.html +0 -13
  245. package/sidecar/dist/server/iframe-socket-registry.js.map +0 -1
@@ -0,0 +1,71 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { CODEX_KILL_GRACE_MS, CODEX_PID_TOKEN, CODEX_TERMINATE_GRACE_MS, WINDOWS_PLATFORM, WINDOWS_TREE_KILL, } from "../../constants/codex.js";
4
+ const execFileAsync = promisify(execFile);
5
+ async function terminateWindows(pid) {
6
+ const [command, ...args] = WINDOWS_TREE_KILL;
7
+ await execFileAsync(command, args.map((arg) => arg.replace(CODEX_PID_TOKEN, String(pid))), { windowsHide: true }).catch(() => undefined);
8
+ }
9
+ function sendSignal(pid, signal) {
10
+ try {
11
+ process.kill(pid, signal);
12
+ }
13
+ catch {
14
+ }
15
+ }
16
+ function signalGroup(pid, signal) {
17
+ try {
18
+ process.kill(-pid, signal);
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ function signalTree(pid, signal) {
26
+ if (signalGroup(pid, signal))
27
+ return;
28
+ sendSignal(pid, signal);
29
+ }
30
+ function sweepGroup(pid) {
31
+ signalGroup(pid, "SIGKILL");
32
+ }
33
+ const POSIX_STOP_STEPS = [
34
+ {
35
+ send: (pid) => signalTree(pid, "SIGTERM"),
36
+ waitMs: CODEX_TERMINATE_GRACE_MS,
37
+ },
38
+ { send: (pid) => signalTree(pid, "SIGKILL"), waitMs: CODEX_KILL_GRACE_MS },
39
+ ];
40
+ const WINDOWS_STOP_STEPS = [
41
+ { send: terminateWindows, waitMs: CODEX_KILL_GRACE_MS },
42
+ ];
43
+ const POSIX_STOP_PLAN = {
44
+ steps: POSIX_STOP_STEPS,
45
+ sweep: sweepGroup,
46
+ };
47
+ const WINDOWS_STOP_PLAN = {
48
+ steps: WINDOWS_STOP_STEPS,
49
+ sweep: () => { },
50
+ };
51
+ export function isWindowsHost() {
52
+ return process.platform === WINDOWS_PLATFORM;
53
+ }
54
+ function platformStopPlan() {
55
+ return isWindowsHost() ? WINDOWS_STOP_PLAN : POSIX_STOP_PLAN;
56
+ }
57
+ export function sweepProcessTree(pid) {
58
+ platformStopPlan().sweep(pid);
59
+ }
60
+ export async function runStopSteps(pid, stoppedWithin) {
61
+ const plan = platformStopPlan();
62
+ for (const step of plan.steps) {
63
+ await step.send(pid);
64
+ if (!(await stoppedWithin(step.waitMs)))
65
+ continue;
66
+ plan.sweep(pid);
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/providers/codex/stop.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import type { WebSocket } from "ws";
2
2
  import type { AnyServerEventType } from "../protocol/events.js";
3
- export interface IframeSocketRegistry {
3
+ export interface ChatSocketRegistry {
4
4
  set: (conversationId: string, socket: WebSocket) => void;
5
5
  clear: (socket: WebSocket) => void;
6
6
  send: (conversationId: string, event: AnyServerEventType) => void;
7
7
  broadcast: (event: AnyServerEventType) => void;
8
8
  has: (conversationId: string) => boolean;
9
+ socketOf: (conversationId: string) => WebSocket | undefined;
9
10
  }
10
- export declare function createIframeSocketRegistry(): IframeSocketRegistry;
11
+ export declare function createChatSocketRegistry(): ChatSocketRegistry;
@@ -5,7 +5,7 @@ function trySend(socket, event) {
5
5
  }
6
6
  catch (err) {
7
7
  const message = err instanceof Error ? err.message : String(err);
8
- console.warn(`${WS_LOG_PREFIX} sendToIframe failed: ${message}`);
8
+ console.warn(`${WS_LOG_PREFIX} sendToChat failed: ${message}`);
9
9
  }
10
10
  }
11
11
  function removeSocket(state, socket) {
@@ -44,7 +44,7 @@ function buildBroadcast(state) {
44
44
  }
45
45
  };
46
46
  }
47
- export function createIframeSocketRegistry() {
47
+ export function createChatSocketRegistry() {
48
48
  const state = { byConversation: new Map() };
49
49
  return {
50
50
  set: buildSet(state),
@@ -52,6 +52,7 @@ export function createIframeSocketRegistry() {
52
52
  send: buildSend(state),
53
53
  broadcast: buildBroadcast(state),
54
54
  has: (conversationId) => state.byConversation.has(conversationId),
55
+ socketOf: (conversationId) => state.byConversation.get(conversationId),
55
56
  };
56
57
  }
57
- //# sourceMappingURL=iframe-socket-registry.js.map
58
+ //# sourceMappingURL=chat-socket-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-socket-registry.js","sourceRoot":"","sources":["../../src/server/chat-socket-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgBnD,SAAS,OAAO,CAAC,MAAiB,EAAE,KAAyB;IAC3D,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB,EAAE,MAAiB;IAC3D,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACjD,IAAI,OAAO,KAAK,MAAM;YAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,CAAC,cAAsB,EAAE,MAAiB,EAAQ,EAAE;QAKzD,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAoB;IACtC,OAAO,CAAC,MAAiB,EAAQ,EAAE;QACjC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAoB;IACrC,OAAO,CAAC,cAAsB,EAAE,KAAyB,EAAQ,EAAE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB;IAC1C,OAAO,CAAC,KAAyB,EAAQ,EAAE;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAkB,EAAE,cAAc,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC3D,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;QACtB,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC;QAChC,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;QACjE,QAAQ,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -1,24 +1,12 @@
1
1
  import { timingSafeEqual } from "node:crypto";
2
2
  const BEARER_PREFIX = "Bearer ";
3
- const PROTOCOL_PREFIX = "dms-ai.";
4
3
  export function isClientAuthorized(req, expected) {
5
4
  if (!expected)
6
5
  return false;
7
6
  const authorization = req.headers.authorization;
8
- const protocols = req.headers["sec-websocket-protocol"];
9
- const bearer = authorization?.startsWith(BEARER_PREFIX)
10
- ? authorization.slice(BEARER_PREFIX.length)
11
- : undefined;
12
- const protocol = typeof protocols === "string"
13
- ? protocols
14
- .split(",")
15
- .map((value) => value.trim())
16
- .find((value) => value.startsWith(PROTOCOL_PREFIX))
17
- : undefined;
18
- const provided = bearer ?? protocol?.slice(PROTOCOL_PREFIX.length);
19
- if (!provided)
7
+ if (!authorization?.startsWith(BEARER_PREFIX))
20
8
  return false;
21
- const actual = Buffer.from(provided);
9
+ const actual = Buffer.from(authorization.slice(BEARER_PREFIX.length));
22
10
  const target = Buffer.from(expected);
23
11
  return actual.length === target.length && timingSafeEqual(actual, target);
24
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client-auth.js","sourceRoot":"","sources":["../../src/server/client-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,eAAe,GAAG,SAAS,CAAC;AAGlC,MAAM,UAAU,kBAAkB,CAChC,GAAoB,EACpB,QAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAChD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC;QACrD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GACZ,OAAO,SAAS,KAAK,QAAQ;QAC3B,CAAC,CAAC,SAAS;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"client-auth.js","sourceRoot":"","sources":["../../src/server/client-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,aAAa,GAAG,SAAS,CAAC;AAMhC,MAAM,UAAU,kBAAkB,CAChC,GAAoB,EACpB,QAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAChD,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AnyServerEventType } from "../protocol/events.js";
2
+ import type { HostSocketRegistry } from "./host-socket-registry.js";
3
+ import type { ChatSocketRegistry } from "./chat-socket-registry.js";
4
+ export type HostCommandSender = (event: AnyServerEventType) => void;
5
+ export declare function createHostCommandRouter(hosts: HostSocketRegistry, chats: ChatSocketRegistry): (conversationId: string) => HostCommandSender;
@@ -0,0 +1,4 @@
1
+ export function createHostCommandRouter(hosts, chats) {
2
+ return (conversationId) => (event) => hosts.send(event, chats.socketOf(conversationId));
3
+ }
4
+ //# sourceMappingURL=host-command-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-command-router.js","sourceRoot":"","sources":["../../src/server/host-command-router.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,KAAyB;IAEzB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CACnC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -3,7 +3,7 @@ import type { AnyServerEventType } from "../protocol/events.js";
3
3
  export interface HostSocketRegistry {
4
4
  set: (socket: WebSocket) => void;
5
5
  clear: (socket: WebSocket) => void;
6
- send: (event: AnyServerEventType) => void;
6
+ send: (event: AnyServerEventType, preferred?: WebSocket) => void;
7
7
  has: () => boolean;
8
8
  }
9
9
  export declare function createHostSocketRegistry(): HostSocketRegistry;
@@ -8,22 +8,25 @@ function trySend(socket, event) {
8
8
  console.warn(`${WS_LOG_PREFIX} sendToHost failed: ${message}`);
9
9
  }
10
10
  }
11
+ function removeSocket(state, socket) {
12
+ state.sockets = state.sockets.filter((current) => current !== socket);
13
+ }
11
14
  function buildSet(state) {
12
15
  return (socket) => {
13
- state.socket = socket;
16
+ removeSocket(state, socket);
17
+ state.sockets.push(socket);
14
18
  };
15
19
  }
16
- function buildClear(state) {
17
- return (socket) => {
18
- if (state.socket !== socket)
19
- return;
20
- state.socket = null;
21
- };
20
+ function pickSocket(state, preferred) {
21
+ if (preferred !== undefined && state.sockets.includes(preferred)) {
22
+ return preferred;
23
+ }
24
+ return state.sockets.at(-1);
22
25
  }
23
26
  function buildSend(state) {
24
- return (event) => {
25
- const socket = state.socket;
26
- if (socket === null) {
27
+ return (event, preferred) => {
28
+ const socket = pickSocket(state, preferred);
29
+ if (socket === undefined) {
27
30
  console.warn(`${WS_LOG_PREFIX} sendToHost: no host connected`);
28
31
  return;
29
32
  }
@@ -31,12 +34,12 @@ function buildSend(state) {
31
34
  };
32
35
  }
33
36
  export function createHostSocketRegistry() {
34
- const state = { socket: null };
37
+ const state = { sockets: [] };
35
38
  return {
36
39
  set: buildSet(state),
37
- clear: buildClear(state),
40
+ clear: (socket) => removeSocket(state, socket),
38
41
  send: buildSend(state),
39
- has: () => state.socket !== null,
42
+ has: () => state.sockets.length > 0,
40
43
  };
41
44
  }
42
45
  //# sourceMappingURL=host-socket-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-socket-registry.js","sourceRoot":"","sources":["../../src/server/host-socket-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAcnD,SAAS,OAAO,CAAC,MAAiB,EAAE,KAAyB;IAC3D,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,CAAC,MAAiB,EAAQ,EAAE;QACjC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAoB;IACtC,OAAO,CAAC,MAAiB,EAAQ,EAAE;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACpC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAoB;IACrC,OAAO,CAAC,KAAyB,EAAQ,EAAE;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,gCAAgC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9C,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"host-socket-registry.js","sourceRoot":"","sources":["../../src/server/host-socket-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAcnD,SAAS,OAAO,CAAC,MAAiB,EAAE,KAAyB;IAC3D,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB,EAAE,MAAiB;IAC3D,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,CAAC,MAAiB,EAAQ,EAAE;QACjC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,KAAoB,EACpB,SAAgC;IAEhC,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,KAAoB;IACrC,OAAO,CAAC,KAAyB,EAAE,SAAqB,EAAQ,EAAE;QAChE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,gCAAgC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC7C,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;QAC9C,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;KACpC,CAAC;AACJ,CAAC"}
@@ -9,7 +9,6 @@ export interface SettingsApplier {
9
9
  }
10
10
  interface CreateHttpServerOptions {
11
11
  clientToken: string;
12
- chatboxDistDir: string;
13
12
  port: number;
14
13
  buildId?: string;
15
14
  onHealthCheck?: () => void;
@@ -1,8 +1,6 @@
1
- import { readFile, stat } from "node:fs/promises";
2
1
  import { createServer, } from "node:http";
3
- import { extname, join, normalize, resolve, sep } from "node:path";
4
2
  import { getBuilderAvailable } from "../builder/capability.js";
5
- import { CONTENT_TYPE, HTTP_STATUS, MIME_BY_EXT } from "../constants/http.js";
3
+ import { CONTENT_TYPE, HTTP_STATUS } from "../constants/http.js";
6
4
  import { MCP_HTTP_PATH } from "../constants/mcp.js";
7
5
  import { LOOPBACK_HOST } from "../constants/ports.js";
8
6
  import { buildActivity, buildKpi, buildSeries, buildTopSkills, } from "../metrics/aggregate.js";
@@ -182,42 +180,6 @@ async function handleApiRoute(req, res, ctx) {
182
180
  await route(req, res, deps, params);
183
181
  return true;
184
182
  }
185
- function resolveSafePath(dir, urlPath) {
186
- const cleaned = urlPath.split("?")[0]?.split("#")[0] ?? "/";
187
- const decoded = decodeURIComponent(cleaned);
188
- const relative = decoded === "/" ? "index.html" : decoded.replace(/^\/+/, "");
189
- const target = normalize(join(dir, relative));
190
- const root = resolve(dir);
191
- const isInside = target === root || target.startsWith(root + sep);
192
- if (!isInside)
193
- return null;
194
- return target;
195
- }
196
- async function serveStatic(req, res, dir) {
197
- const url = req.url ?? "/";
198
- const filePath = resolveSafePath(dir, url);
199
- if (filePath === null) {
200
- sendResponse(res, HTTP_STATUS.NOT_FOUND, CONTENT_TYPE.TEXT, "Not Found");
201
- return;
202
- }
203
- try {
204
- const info = await stat(filePath);
205
- if (!info.isFile()) {
206
- sendResponse(res, HTTP_STATUS.NOT_FOUND, CONTENT_TYPE.TEXT, "Not Found");
207
- return;
208
- }
209
- const mime = MIME_BY_EXT[extname(filePath).toLowerCase()] ?? CONTENT_TYPE.OCTET;
210
- const data = await readFile(filePath);
211
- res.writeHead(HTTP_STATUS.OK, {
212
- "Content-Type": mime,
213
- "Content-Length": data.byteLength.toString(),
214
- });
215
- res.end(data);
216
- }
217
- catch {
218
- sendResponse(res, HTTP_STATUS.NOT_FOUND, CONTENT_TYPE.TEXT, "Not Found");
219
- }
220
- }
221
183
  function buildRoutePath(req) {
222
184
  const url = req.url ?? "/";
223
185
  return url.split("?")[0] ?? "/";
@@ -240,16 +202,11 @@ async function handleRequest(req, res, ctx) {
240
202
  if (await handleApiRoute(req, res, ctx)) {
241
203
  return;
242
204
  }
243
- if ((req.method ?? "GET") === "GET") {
244
- await serveStatic(req, res, ctx.chatboxDistDir);
245
- return;
246
- }
247
205
  sendResponse(res, HTTP_STATUS.NOT_FOUND, CONTENT_TYPE.TEXT, "Not Found");
248
206
  }
249
207
  export function createHttpServer(options) {
250
208
  const ctx = {
251
209
  clientToken: options.clientToken,
252
- chatboxDistDir: options.chatboxDistDir,
253
210
  buildId: options.buildId ?? DEFAULT_BUILD_ID,
254
211
  onHealthCheck: options.onHealthCheck,
255
212
  conversationStore: options.conversationStore,
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,11 @@ import type { SettingsStore } from "../state/settings-store.js";
11
11
  import type { AppSettings } from "../state/settings-types.js";
12
12
  import type { HostSocketRegistry } from "./host-socket-registry.js";
13
13
  import type { IdleShutdownController } from "./idle-shutdown.js";
14
- import type { IframeSocketRegistry } from "./iframe-socket-registry.js";
14
+ import type { ChatSocketRegistry } from "./chat-socket-registry.js";
15
15
  import type { LiveTurnStore } from "./live-turns.js";
16
16
  import type { NavigationCompleter } from "./navigation-completer.js";
17
17
  import type { PendingQueueStore } from "./pending-queue.js";
18
18
  export interface ConnectionContext {
19
- path: string;
20
19
  hostProjectRoot: string;
21
20
  runner: AgentRunner;
22
21
  conversationStore: ConversationStore;
@@ -28,7 +27,7 @@ export interface ConnectionContext {
28
27
  moduleRoots: string[];
29
28
  hostState: HostState;
30
29
  hostSocketRegistry: HostSocketRegistry;
31
- iframeSocketRegistry: IframeSocketRegistry;
30
+ chatSocketRegistry: ChatSocketRegistry;
32
31
  navigationCompleter: NavigationCompleter;
33
32
  liveTurns: LiveTurnStore;
34
33
  pendingQueue: PendingQueueStore;
@@ -40,7 +39,7 @@ export interface RoutingConfig {
40
39
  createMcpServer: (conversationId: string) => AiMcpServer;
41
40
  hostState: HostState;
42
41
  hostSocketRegistry: HostSocketRegistry;
43
- iframeSocketRegistry: IframeSocketRegistry;
42
+ chatSocketRegistry: ChatSocketRegistry;
44
43
  permissionBus: PermissionBus;
45
44
  questionBus: QuestionBus;
46
45
  editTracker: EditTracker;
@@ -57,8 +56,8 @@ export interface SettingsApplyDeps {
57
56
  settingsStore: SettingsStore;
58
57
  permissionBus: PermissionBus;
59
58
  runner: AgentRunner;
60
- iframeSocketRegistry: IframeSocketRegistry;
59
+ chatSocketRegistry: ChatSocketRegistry;
61
60
  }
62
61
  export declare function applySettings(deps: SettingsApplyDeps, next: AppSettings): void;
63
62
  export declare function dispatchMessage(socket: WebSocket, raw: string, ctx: ConnectionContext): void;
64
- export declare function buildConnectionContext(_socket: WebSocket, path: string, config: RoutingConfig): ConnectionContext;
63
+ export declare function buildConnectionContext(config: RoutingConfig): ConnectionContext;
@@ -1,6 +1,6 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { EDIT_TOOL_NAMES, extractEditedFilePath, } from "../agent/edit-tracker.js";
3
- import { effectiveChatboxMode } from "../agent/effective-mode.js";
3
+ import { effectiveChatMode } from "../agent/effective-mode.js";
4
4
  import { buildToolSummary } from "../agent/tool-summary.js";
5
5
  import { getBuilderAvailable } from "../builder/capability.js";
6
6
  import { PERMISSION_DECISIONS, } from "../constants/permissions.js";
@@ -21,7 +21,7 @@ function buildSnapshotEvent(conversationId, messages) {
21
21
  };
22
22
  }
23
23
  function sendSnapshotIfKnown(socket, ctx, msg) {
24
- if (msg.role !== ROLE.IFRAME)
24
+ if (msg.role !== ROLE.CHAT)
25
25
  return;
26
26
  sendSettings(socket, ctx);
27
27
  if (msg.conversationId === undefined)
@@ -87,19 +87,19 @@ function registerHostSocketIfHost(socket, msg, ctx) {
87
87
  return;
88
88
  ctx.hostSocketRegistry.set(socket);
89
89
  }
90
- function registerIframeSocketIfIframe(socket, msg, ctx) {
91
- if (msg.role !== ROLE.IFRAME)
90
+ function registerChatSocketIfChat(socket, msg, ctx) {
91
+ if (msg.role !== ROLE.CHAT)
92
92
  return;
93
93
  if (msg.conversationId === undefined)
94
94
  return;
95
- ctx.iframeSocketRegistry.set(msg.conversationId, socket);
95
+ ctx.chatSocketRegistry.set(msg.conversationId, socket);
96
96
  }
97
97
  function handleHello(socket, msg, ctx) {
98
98
  if (msg.type !== MESSAGE_TYPES.HELLO)
99
99
  return;
100
- console.log(`${WS_LOG_PREFIX} hello role=${msg.role} path=${ctx.path}`);
100
+ console.log(`${WS_LOG_PREFIX} hello role=${msg.role}`);
101
101
  registerHostSocketIfHost(socket, msg, ctx);
102
- registerIframeSocketIfIframe(socket, msg, ctx);
102
+ registerChatSocketIfChat(socket, msg, ctx);
103
103
  sendSnapshotIfKnown(socket, ctx, msg);
104
104
  }
105
105
  function handleEcho(socket, msg) {
@@ -199,7 +199,7 @@ function dispatchTurnEvent(ctx, conversationId, ev) {
199
199
  else {
200
200
  ctx.liveTurns.append(conversationId, wireEvent);
201
201
  }
202
- ctx.iframeSocketRegistry.send(conversationId, wireEvent);
202
+ ctx.chatSocketRegistry.send(conversationId, wireEvent);
203
203
  }
204
204
  function persistUserMessageContent(ctx, conversationId, content) {
205
205
  ctx.conversationStore.appendMessage(conversationId, {
@@ -265,7 +265,7 @@ async function streamTurn(ctx, conversationId, content, attachments) {
265
265
  ctx.conversationStore.markProvider(conversationId, ctx.settingsStore.get().provider);
266
266
  const progress = startTurnProgress({
267
267
  conversationId,
268
- send: (event) => ctx.iframeSocketRegistry.send(conversationId, event),
268
+ send: (event) => ctx.chatSocketRegistry.send(conversationId, event),
269
269
  });
270
270
  try {
271
271
  const stream = ctx.runner.start(content, buildRunnerContext(ctx, conversationId, attachments));
@@ -335,7 +335,7 @@ function sendUserEcho(ctx, conversationId, item) {
335
335
  attachments: toStoredAttachmentMeta(item.attachments ?? []),
336
336
  timestampMs: Date.now(),
337
337
  };
338
- ctx.iframeSocketRegistry.send(conversationId, event);
338
+ ctx.chatSocketRegistry.send(conversationId, event);
339
339
  }
340
340
  function broadcastQueueState(ctx, conversationId) {
341
341
  const event = {
@@ -343,7 +343,7 @@ function broadcastQueueState(ctx, conversationId) {
343
343
  conversationId,
344
344
  items: ctx.pendingQueue.get(conversationId),
345
345
  };
346
- ctx.iframeSocketRegistry.send(conversationId, event);
346
+ ctx.chatSocketRegistry.send(conversationId, event);
347
347
  }
348
348
  async function drainConversation(ctx, conversationId) {
349
349
  for (;;) {
@@ -440,10 +440,10 @@ function handleInterruptTurn(_socket, msg, ctx) {
440
440
  ctx.questionBus.cancelConversation(msg.conversationId);
441
441
  ctx.runner.interruptSession(msg.conversationId);
442
442
  }
443
- function handleHostStateUpdate(_socket, msg, ctx) {
443
+ async function handleHostStateUpdate(_socket, msg, ctx) {
444
444
  if (msg.type !== MESSAGE_TYPES.HOST_STATE_UPDATE)
445
445
  return;
446
- ctx.hostState.setCurrentPage(msg.currentPage);
446
+ await ctx.hostState.setCurrentPage(msg.currentPage);
447
447
  }
448
448
  function handleHostNavigationComplete(_socket, msg, ctx) {
449
449
  if (msg.type !== MESSAGE_TYPES.HOST_NAVIGATION_COMPLETE)
@@ -478,9 +478,9 @@ function handleDeleteConversation(socket, msg, ctx) {
478
478
  }
479
479
  export function applySettings(deps, next) {
480
480
  deps.settingsStore.set(next);
481
- deps.permissionBus.setAutoApprove(effectiveChatboxMode(next) === "auto");
481
+ deps.permissionBus.setAutoApprove(effectiveChatMode(next) === "auto");
482
482
  deps.runner.applySettings(next);
483
- deps.iframeSocketRegistry.broadcast({
483
+ deps.chatSocketRegistry.broadcast({
484
484
  type: EVENT_TYPES.SETTINGS_UPDATE,
485
485
  settings: next,
486
486
  builderAvailable: getBuilderAvailable(),
@@ -498,14 +498,6 @@ function handleSetSettings(_socket, msg, ctx) {
498
498
  allowLocalSkills: msg.allowLocalSkills,
499
499
  });
500
500
  }
501
- function handleRequestHostNavigate(_socket, msg, ctx) {
502
- if (msg.type !== MESSAGE_TYPES.REQUEST_HOST_NAVIGATE)
503
- return;
504
- ctx.hostSocketRegistry.send({
505
- type: EVENT_TYPES.HOST_COMMAND_NAVIGATE,
506
- path: msg.path,
507
- });
508
- }
509
501
  const MESSAGE_HANDLERS = {
510
502
  [MESSAGE_TYPES.HELLO]: handleHello,
511
503
  [MESSAGE_TYPES.ECHO]: handleEcho,
@@ -518,7 +510,6 @@ const MESSAGE_HANDLERS = {
518
510
  [MESSAGE_TYPES.LIST_CONVERSATIONS]: handleListConversations,
519
511
  [MESSAGE_TYPES.DELETE_CONVERSATION]: handleDeleteConversation,
520
512
  [MESSAGE_TYPES.SET_SETTINGS]: handleSetSettings,
521
- [MESSAGE_TYPES.REQUEST_HOST_NAVIGATE]: handleRequestHostNavigate,
522
513
  [MESSAGE_TYPES.QUEUE_ENQUEUE]: handleQueueEnqueue,
523
514
  [MESSAGE_TYPES.QUEUE_CANCEL]: handleQueueCancel,
524
515
  };
@@ -537,7 +528,7 @@ function parseMessage(raw) {
537
528
  export function dispatchMessage(socket, raw, ctx) {
538
529
  const msg = parseMessage(raw);
539
530
  if (msg === null) {
540
- console.warn(`${WS_LOG_PREFIX} invalid message on ${ctx.path}`);
531
+ console.warn(`${WS_LOG_PREFIX} invalid message`);
541
532
  return;
542
533
  }
543
534
  const handler = MESSAGE_HANDLERS[msg.type];
@@ -571,9 +562,8 @@ function sendQuestionRequest(socket, event) {
571
562
  const wireEvent = buildAskQuestionEvent(event);
572
563
  socket.send(JSON.stringify(wireEvent));
573
564
  }
574
- export function buildConnectionContext(_socket, path, config) {
565
+ export function buildConnectionContext(config) {
575
566
  return {
576
- path,
577
567
  hostProjectRoot: config.hostProjectRoot,
578
568
  runner: config.runner,
579
569
  conversationStore: config.conversationStore,
@@ -585,7 +575,7 @@ export function buildConnectionContext(_socket, path, config) {
585
575
  moduleRoots: config.moduleRoots,
586
576
  hostState: config.hostState,
587
577
  hostSocketRegistry: config.hostSocketRegistry,
588
- iframeSocketRegistry: config.iframeSocketRegistry,
578
+ chatSocketRegistry: config.chatSocketRegistry,
589
579
  navigationCompleter: config.navigationCompleter,
590
580
  liveTurns: config.liveTurns,
591
581
  pendingQueue: config.pendingQueue,