@antelopejs/dms-ai 0.0.6 → 0.1.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 (214) hide show
  1. package/README.md +52 -2
  2. package/dist/routes/settings.d.ts +7 -0
  3. package/dist/routes/settings.js +2 -0
  4. package/dist/routes/settings.js.map +1 -1
  5. package/frontend-vue/app/components/SettingsView.vue +85 -3
  6. package/package.json +10 -1
  7. package/sidecar/chatbox/dist/assets/index-CEZ1NLp9.js +52 -0
  8. package/sidecar/chatbox/dist/assets/{index-pP_KOHIn.css → index-D_51Vqqk.css} +1 -1
  9. package/sidecar/chatbox/dist/index.html +2 -2
  10. package/sidecar/dist/agent/attachment-files.d.ts +5 -0
  11. package/sidecar/dist/agent/attachment-files.js +29 -0
  12. package/sidecar/dist/agent/attachment-files.js.map +1 -0
  13. package/sidecar/dist/agent/provider.d.ts +40 -0
  14. package/sidecar/dist/agent/provider.js +2 -0
  15. package/sidecar/dist/agent/provider.js.map +1 -0
  16. package/sidecar/dist/agent/{claude-runner.d.ts → runner.d.ts} +8 -11
  17. package/sidecar/dist/agent/runner.js +71 -0
  18. package/sidecar/dist/agent/runner.js.map +1 -0
  19. package/sidecar/dist/agent/session.d.ts +22 -0
  20. package/sidecar/dist/agent/{claude-session.js → session.js} +39 -47
  21. package/sidecar/dist/agent/session.js.map +1 -0
  22. package/sidecar/dist/agent/switching-runner.d.ts +6 -0
  23. package/sidecar/dist/agent/switching-runner.js +58 -0
  24. package/sidecar/dist/agent/switching-runner.js.map +1 -0
  25. package/sidecar/dist/constants/agent.d.ts +2 -12
  26. package/sidecar/dist/constants/agent.js +2 -11
  27. package/sidecar/dist/constants/agent.js.map +1 -1
  28. package/sidecar/dist/constants/claude.d.ts +10 -0
  29. package/sidecar/dist/constants/claude.js +10 -0
  30. package/sidecar/dist/constants/claude.js.map +1 -0
  31. package/sidecar/dist/constants/codex.d.ts +85 -0
  32. package/sidecar/dist/constants/codex.js +110 -0
  33. package/sidecar/dist/constants/codex.js.map +1 -0
  34. package/sidecar/dist/constants/http.d.ts +1 -0
  35. package/sidecar/dist/constants/http.js +1 -0
  36. package/sidecar/dist/constants/http.js.map +1 -1
  37. package/sidecar/dist/constants/mcp.d.ts +6 -0
  38. package/sidecar/dist/constants/mcp.js +11 -0
  39. package/sidecar/dist/constants/mcp.js.map +1 -1
  40. package/sidecar/dist/constants/paths.d.ts +5 -0
  41. package/sidecar/dist/constants/paths.js +5 -0
  42. package/sidecar/dist/constants/paths.js.map +1 -1
  43. package/sidecar/dist/constants/providers.d.ts +16 -0
  44. package/sidecar/dist/constants/providers.js +17 -0
  45. package/sidecar/dist/constants/providers.js.map +1 -0
  46. package/sidecar/dist/constants/settings.d.ts +1 -4
  47. package/sidecar/dist/constants/settings.js +2 -12
  48. package/sidecar/dist/constants/settings.js.map +1 -1
  49. package/sidecar/dist/constants/skills.d.ts +1 -0
  50. package/sidecar/dist/constants/skills.js +2 -0
  51. package/sidecar/dist/constants/skills.js.map +1 -0
  52. package/sidecar/dist/constants/timing.d.ts +1 -0
  53. package/sidecar/dist/constants/timing.js +1 -0
  54. package/sidecar/dist/constants/timing.js.map +1 -1
  55. package/sidecar/dist/constants/tool-lexicon.d.ts +7 -0
  56. package/sidecar/dist/constants/tool-lexicon.js +8 -0
  57. package/sidecar/dist/constants/tool-lexicon.js.map +1 -0
  58. package/sidecar/dist/index.js +28 -3
  59. package/sidecar/dist/index.js.map +1 -1
  60. package/sidecar/dist/mcp/define-tool.d.ts +23 -0
  61. package/sidecar/dist/mcp/define-tool.js +4 -0
  62. package/sidecar/dist/mcp/define-tool.js.map +1 -0
  63. package/sidecar/dist/mcp/http-binding.d.ts +9 -0
  64. package/sidecar/dist/mcp/http-binding.js +123 -0
  65. package/sidecar/dist/mcp/http-binding.js.map +1 -0
  66. package/sidecar/dist/mcp/sdk-binding.js +14 -0
  67. package/sidecar/dist/mcp/sdk-binding.js.map +1 -0
  68. package/sidecar/dist/mcp/tool-definitions.d.ts +3 -0
  69. package/sidecar/dist/mcp/{server.js → tool-definitions.js} +2 -11
  70. package/sidecar/dist/mcp/tool-definitions.js.map +1 -0
  71. package/sidecar/dist/mcp/tools/ask-user.d.ts +1 -1
  72. package/sidecar/dist/mcp/tools/ask-user.js +2 -2
  73. package/sidecar/dist/mcp/tools/ask-user.js.map +1 -1
  74. package/sidecar/dist/mcp/tools/builder.d.ts +19 -19
  75. package/sidecar/dist/mcp/tools/builder.js +26 -26
  76. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  77. package/sidecar/dist/mcp/tools/find-pages-using.d.ts +1 -1
  78. package/sidecar/dist/mcp/tools/find-pages-using.js +2 -2
  79. package/sidecar/dist/mcp/tools/find-pages-using.js.map +1 -1
  80. package/sidecar/dist/mcp/tools/get-current-page.d.ts +1 -1
  81. package/sidecar/dist/mcp/tools/get-current-page.js +2 -2
  82. package/sidecar/dist/mcp/tools/get-current-page.js.map +1 -1
  83. package/sidecar/dist/mcp/tools/list-pages.d.ts +1 -1
  84. package/sidecar/dist/mcp/tools/list-pages.js +2 -2
  85. package/sidecar/dist/mcp/tools/list-pages.js.map +1 -1
  86. package/sidecar/dist/mcp/tools/navigate-to-page.d.ts +1 -1
  87. package/sidecar/dist/mcp/tools/navigate-to-page.js +2 -2
  88. package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -1
  89. package/sidecar/dist/mcp/tools/query-logs.d.ts +1 -1
  90. package/sidecar/dist/mcp/tools/query-logs.js +2 -2
  91. package/sidecar/dist/mcp/tools/query-logs.js.map +1 -1
  92. package/sidecar/dist/mcp/tools/typecheck.d.ts +1 -1
  93. package/sidecar/dist/mcp/tools/typecheck.js +2 -2
  94. package/sidecar/dist/mcp/tools/typecheck.js.map +1 -1
  95. package/sidecar/dist/mcp/types.d.ts +6 -2
  96. package/sidecar/dist/protocol/events.d.ts +37 -0
  97. package/sidecar/dist/protocol/events.js +8 -0
  98. package/sidecar/dist/protocol/events.js.map +1 -1
  99. package/sidecar/dist/protocol/messages.d.ts +8 -0
  100. package/sidecar/dist/protocol/messages.js +2 -0
  101. package/sidecar/dist/protocol/messages.js.map +1 -1
  102. package/sidecar/dist/providers/claude/adapter.d.ts +5 -0
  103. package/sidecar/dist/{agent/sdk-adapter.js → providers/claude/adapter.js} +20 -1
  104. package/sidecar/dist/providers/claude/adapter.js.map +1 -0
  105. package/sidecar/dist/{agent → providers/claude}/attachments.d.ts +1 -1
  106. package/sidecar/dist/{agent → providers/claude}/attachments.js +3 -27
  107. package/sidecar/dist/providers/claude/attachments.js.map +1 -0
  108. package/sidecar/dist/providers/claude/config.d.ts +4 -0
  109. package/sidecar/dist/providers/claude/config.js +13 -0
  110. package/sidecar/dist/providers/claude/config.js.map +1 -0
  111. package/sidecar/dist/providers/claude/input-queue.js.map +1 -0
  112. package/sidecar/dist/providers/claude/module.d.ts +2 -0
  113. package/sidecar/dist/providers/claude/module.js +25 -0
  114. package/sidecar/dist/providers/claude/module.js.map +1 -0
  115. package/sidecar/dist/providers/claude/provider.d.ts +11 -0
  116. package/sidecar/dist/{agent/claude-runner.js → providers/claude/provider.js} +118 -96
  117. package/sidecar/dist/providers/claude/provider.js.map +1 -0
  118. package/sidecar/dist/{agent/resolve-claude-binary.js → providers/claude/resolve-binary.js} +3 -3
  119. package/sidecar/dist/{agent/resolve-claude-binary.js.map → providers/claude/resolve-binary.js.map} +1 -1
  120. package/sidecar/dist/providers/claude/sdk-loader.js +16 -0
  121. package/sidecar/dist/providers/claude/sdk-loader.js.map +1 -0
  122. package/sidecar/dist/providers/codex/adapter.d.ts +7 -0
  123. package/sidecar/dist/providers/codex/adapter.js +147 -0
  124. package/sidecar/dist/providers/codex/adapter.js.map +1 -0
  125. package/sidecar/dist/providers/codex/attachments.d.ts +7 -0
  126. package/sidecar/dist/providers/codex/attachments.js +73 -0
  127. package/sidecar/dist/providers/codex/attachments.js.map +1 -0
  128. package/sidecar/dist/providers/codex/client.d.ts +34 -0
  129. package/sidecar/dist/providers/codex/client.js +128 -0
  130. package/sidecar/dist/providers/codex/client.js.map +1 -0
  131. package/sidecar/dist/providers/codex/config.d.ts +34 -0
  132. package/sidecar/dist/providers/codex/config.js +111 -0
  133. package/sidecar/dist/providers/codex/config.js.map +1 -0
  134. package/sidecar/dist/providers/codex/event-stream.d.ts +8 -0
  135. package/sidecar/dist/providers/codex/event-stream.js +53 -0
  136. package/sidecar/dist/providers/codex/event-stream.js.map +1 -0
  137. package/sidecar/dist/providers/codex/module.d.ts +2 -0
  138. package/sidecar/dist/providers/codex/module.js +54 -0
  139. package/sidecar/dist/providers/codex/module.js.map +1 -0
  140. package/sidecar/dist/providers/codex/permissions.d.ts +21 -0
  141. package/sidecar/dist/providers/codex/permissions.js +77 -0
  142. package/sidecar/dist/providers/codex/permissions.js.map +1 -0
  143. package/sidecar/dist/providers/codex/process.d.ts +23 -0
  144. package/sidecar/dist/providers/codex/process.js +208 -0
  145. package/sidecar/dist/providers/codex/process.js.map +1 -0
  146. package/sidecar/dist/providers/codex/protocol/common.d.ts +59 -0
  147. package/sidecar/dist/providers/codex/protocol/common.js +2 -0
  148. package/sidecar/dist/providers/codex/protocol/common.js.map +1 -0
  149. package/sidecar/dist/providers/codex/protocol/index.d.ts +3 -0
  150. package/sidecar/dist/providers/codex/protocol/index.js +3 -0
  151. package/sidecar/dist/providers/codex/protocol/index.js.map +1 -0
  152. package/sidecar/dist/providers/codex/protocol/serde_json.d.ts +3 -0
  153. package/sidecar/dist/providers/codex/protocol/serde_json.js +2 -0
  154. package/sidecar/dist/providers/codex/protocol/serde_json.js.map +1 -0
  155. package/sidecar/dist/providers/codex/protocol/v2.d.ts +481 -0
  156. package/sidecar/dist/providers/codex/protocol/v2.js +2 -0
  157. package/sidecar/dist/providers/codex/protocol/v2.js.map +1 -0
  158. package/sidecar/dist/providers/codex/provider.d.ts +14 -0
  159. package/sidecar/dist/providers/codex/provider.js +225 -0
  160. package/sidecar/dist/providers/codex/provider.js.map +1 -0
  161. package/sidecar/dist/providers/codex/resolve-binary.d.ts +10 -0
  162. package/sidecar/dist/providers/codex/resolve-binary.js +80 -0
  163. package/sidecar/dist/providers/codex/resolve-binary.js.map +1 -0
  164. package/sidecar/dist/providers/codex/skills.d.ts +10 -0
  165. package/sidecar/dist/providers/codex/skills.js +42 -0
  166. package/sidecar/dist/providers/codex/skills.js.map +1 -0
  167. package/sidecar/dist/providers/registry.d.ts +7 -0
  168. package/sidecar/dist/providers/registry.js +31 -0
  169. package/sidecar/dist/providers/registry.js.map +1 -0
  170. package/sidecar/dist/providers/types.d.ts +25 -0
  171. package/sidecar/dist/providers/types.js +5 -0
  172. package/sidecar/dist/providers/types.js.map +1 -0
  173. package/sidecar/dist/server/http.d.ts +2 -0
  174. package/sidecar/dist/server/http.js +26 -12
  175. package/sidecar/dist/server/http.js.map +1 -1
  176. package/sidecar/dist/server/routing.d.ts +4 -4
  177. package/sidecar/dist/server/routing.js +7 -1
  178. package/sidecar/dist/server/routing.js.map +1 -1
  179. package/sidecar/dist/server/ws.d.ts +2 -0
  180. package/sidecar/dist/server/ws.js +40 -17
  181. package/sidecar/dist/server/ws.js.map +1 -1
  182. package/sidecar/dist/skills/build-catalog.d.ts +2 -0
  183. package/sidecar/dist/skills/build-catalog.js +12 -1
  184. package/sidecar/dist/skills/build-catalog.js.map +1 -1
  185. package/sidecar/dist/state/conversations.d.ts +3 -1
  186. package/sidecar/dist/state/conversations.js +20 -0
  187. package/sidecar/dist/state/conversations.js.map +1 -1
  188. package/sidecar/dist/state/safe-segment.d.ts +1 -0
  189. package/sidecar/dist/state/safe-segment.js +17 -0
  190. package/sidecar/dist/state/safe-segment.js.map +1 -0
  191. package/sidecar/dist/state/settings-store.js +7 -0
  192. package/sidecar/dist/state/settings-store.js.map +1 -1
  193. package/sidecar/dist/state/settings-types.d.ts +2 -0
  194. package/sidecar/dist/state/settings-types.js.map +1 -1
  195. package/sidecar/dist/state/types.d.ts +11 -0
  196. package/sidecar/dist/state/types.js +7 -0
  197. package/sidecar/dist/state/types.js.map +1 -1
  198. package/sidecar/package.json +3 -0
  199. package/sidecar/chatbox/dist/assets/index-Cy2BwTG0.js +0 -50
  200. package/sidecar/dist/agent/attachments.js.map +0 -1
  201. package/sidecar/dist/agent/claude-runner.js.map +0 -1
  202. package/sidecar/dist/agent/claude-session.d.ts +0 -18
  203. package/sidecar/dist/agent/claude-session.js.map +0 -1
  204. package/sidecar/dist/agent/input-queue.js.map +0 -1
  205. package/sidecar/dist/agent/sdk-adapter.d.ts +0 -3
  206. package/sidecar/dist/agent/sdk-adapter.js.map +0 -1
  207. package/sidecar/dist/agent/sdk-loader.js +0 -14
  208. package/sidecar/dist/agent/sdk-loader.js.map +0 -1
  209. package/sidecar/dist/mcp/server.js.map +0 -1
  210. /package/sidecar/dist/mcp/{server.d.ts → sdk-binding.d.ts} +0 -0
  211. /package/sidecar/dist/{agent → providers/claude}/input-queue.d.ts +0 -0
  212. /package/sidecar/dist/{agent → providers/claude}/input-queue.js +0 -0
  213. /package/sidecar/dist/{agent/resolve-claude-binary.d.ts → providers/claude/resolve-binary.d.ts} +0 -0
  214. /package/sidecar/dist/{agent → providers/claude}/sdk-loader.d.ts +0 -0
@@ -0,0 +1,225 @@
1
+ import os from "node:os";
2
+ import { createAgentSession } from "../../agent/session.js";
3
+ import { TURN_IDLE_TIMEOUT_MS } from "../../constants/agent.js";
4
+ import { CODEX_CLIENT_NAME, CODEX_CLIENT_TITLE, CODEX_CLIENT_VERSION, CODEX_HANDSHAKE_TIMEOUT_MS, CODEX_INITIALIZE_METHOD, CODEX_INITIALIZED_METHOD, CODEX_MAX_LIVE_SESSIONS, CODEX_MISSING_API_KEY_MESSAGE, CODEX_MISSING_CLI_MESSAGE, CODEX_SKILLS_CONFIG_WRITE_METHOD, CODEX_SKILLS_EXTRA_ROOTS_METHOD, CODEX_SKILLS_LIST_METHOD, CODEX_THREAD_START_METHOD, CODEX_TOKEN_USAGE_NOTIFICATION, CODEX_TURN_ABORTED_MESSAGE, CODEX_TURN_INTERRUPT_METHOD, CODEX_TURN_START_METHOD, CODEX_TURN_STARTED_NOTIFICATION, CODEX_VERSION_MISMATCH_MESSAGE, } from "../../constants/codex.js";
5
+ import { resolveSkillSources } from "../../skills/resolve-sources.js";
6
+ import { createCodexAdapter } from "./adapter.js";
7
+ import { buildCodexTurnInput } from "./attachments.js";
8
+ import { buildDenialReminder, buildDeveloperInstructions, buildTurnOverrides, resolveModePolicy, } from "./config.js";
9
+ import { createRunnerEventStream } from "./event-stream.js";
10
+ import { createCodexPermissionHandler } from "./permissions.js";
11
+ import { spawnCodexProcess } from "./process.js";
12
+ import { describeVersionMismatch, isCodexInstallationUsable, resolveCodexInstallation, } from "./resolve-binary.js";
13
+ import { buildSkillExtraRoots, selectSkillsToDisable } from "./skills.js";
14
+ const HANDSHAKE = {
15
+ timeoutMs: CODEX_HANDSHAKE_TIMEOUT_MS,
16
+ };
17
+ function clientInfo() {
18
+ return {
19
+ clientInfo: {
20
+ name: CODEX_CLIENT_NAME,
21
+ title: CODEX_CLIENT_TITLE,
22
+ version: CODEX_CLIENT_VERSION,
23
+ },
24
+ capabilities: null,
25
+ };
26
+ }
27
+ async function configureSkills(process, options, settings) {
28
+ const sources = resolveSkillSources(options.skillDirs ?? [], settings.allowLocalSkills, os.homedir());
29
+ const extraRoots = buildSkillExtraRoots(sources);
30
+ if (extraRoots.length > 0) {
31
+ await process.client.request(CODEX_SKILLS_EXTRA_ROOTS_METHOD, { extraRoots }, HANDSHAKE);
32
+ }
33
+ const listed = await process.client.request(CODEX_SKILLS_LIST_METHOD, {}, HANDSHAKE);
34
+ const disable = selectSkillsToDisable(listed.data, {
35
+ extraRoots,
36
+ allowLocalSkills: settings.allowLocalSkills,
37
+ });
38
+ for (const params of disable) {
39
+ await process.client.request(CODEX_SKILLS_CONFIG_WRITE_METHOD, params, HANDSHAKE);
40
+ }
41
+ }
42
+ async function startThread(process, ctx) {
43
+ const policy = resolveModePolicy(ctx.settings);
44
+ const started = await process.client.request(CODEX_THREAD_START_METHOD, {
45
+ cwd: ctx.hostProjectRoot,
46
+ sandbox: policy.sandbox,
47
+ approvalPolicy: policy.approvalPolicy,
48
+ developerInstructions: buildDeveloperInstructions(ctx.settings),
49
+ ephemeral: true,
50
+ }, HANDSHAKE);
51
+ return started.thread.id;
52
+ }
53
+ function withDenialReminder(backend, text) {
54
+ const reminder = buildDenialReminder(backend.live.settings, backend.denials());
55
+ return reminder === undefined ? text : `${text}\n\n${reminder}`;
56
+ }
57
+ async function submitTurn(backend, options, input) {
58
+ backend.resumeApprovals();
59
+ const overrides = buildTurnOverrides(backend.live.settings, {
60
+ hostProjectRoot: backend.hostProjectRoot,
61
+ moduleRoots: options.moduleRoots ?? [],
62
+ });
63
+ const payload = await buildCodexTurnInput(withDenialReminder(backend, input.text), input.attachments, {
64
+ hostProjectRoot: backend.hostProjectRoot,
65
+ conversationId: backend.conversationId,
66
+ });
67
+ await backend.process.client.request(CODEX_TURN_START_METHOD, {
68
+ threadId: backend.threadId,
69
+ input: payload,
70
+ ...overrides,
71
+ });
72
+ }
73
+ function interruptTurn(backend) {
74
+ if (backend.turnId === null)
75
+ return;
76
+ void backend.process.client
77
+ .request(CODEX_TURN_INTERRUPT_METHOD, {
78
+ threadId: backend.threadId,
79
+ turnId: backend.turnId,
80
+ })
81
+ .catch(() => {
82
+ });
83
+ }
84
+ function trackTurnId(backendRef, notification) {
85
+ if (notification.method !== CODEX_TURN_STARTED_NOTIFICATION)
86
+ return;
87
+ const params = notification.params;
88
+ if (backendRef.current === null)
89
+ return;
90
+ backendRef.current.turnId = params.turn.id;
91
+ }
92
+ function reportTokenUsage(ctx, notification) {
93
+ if (notification.method !== CODEX_TOKEN_USAGE_NOTIFICATION)
94
+ return;
95
+ if (ctx.onTokenUsage === undefined)
96
+ return;
97
+ const params = notification.params;
98
+ const last = params.tokenUsage.last;
99
+ ctx.onTokenUsage({
100
+ inputTokens: last.inputTokens,
101
+ outputTokens: last.outputTokens,
102
+ totalTokens: last.totalTokens,
103
+ });
104
+ }
105
+ function resolveTimeoutMs(options) {
106
+ return options.timeoutMs ?? TURN_IDLE_TIMEOUT_MS;
107
+ }
108
+ function assertUsableInstallation() {
109
+ const installation = resolveCodexInstallation();
110
+ if (installation === undefined) {
111
+ throw new Error(CODEX_MISSING_CLI_MESSAGE);
112
+ }
113
+ if (!isCodexInstallationUsable(installation)) {
114
+ throw new Error(`${CODEX_VERSION_MISMATCH_MESSAGE} ${describeVersionMismatch(installation)}`);
115
+ }
116
+ return installation;
117
+ }
118
+ async function createProviderSession(options, ctx, live) {
119
+ const installation = assertUsableInstallation();
120
+ const apiKey = options.getApiKey();
121
+ if (apiKey === undefined)
122
+ throw new Error(CODEX_MISSING_API_KEY_MESSAGE);
123
+ const stream = createRunnerEventStream();
124
+ const adapter = createCodexAdapter();
125
+ const backendRef = { current: null };
126
+ const permissions = createCodexPermissionHandler({
127
+ conversationId: ctx.conversationId,
128
+ permissionBus: ctx.permissionBus,
129
+ getSettings: () => backendRef.current?.live.settings ?? ctx.settings,
130
+ getChangedPaths: (itemId) => adapter.getChangedPaths(itemId),
131
+ onPermissionDecision: ctx.onPermissionDecision,
132
+ });
133
+ const mcpToken = await options.mcpHttpRegistry.register(options.createMcpDeps(ctx.conversationId));
134
+ const codexProcess = await spawnCodexProcess({
135
+ conversationId: ctx.conversationId,
136
+ stateDir: options.stateDir,
137
+ installation,
138
+ mcpUrl: options.getMcpUrl(),
139
+ mcpToken,
140
+ hostProjectRoot: ctx.hostProjectRoot,
141
+ apiKey,
142
+ handlers: {
143
+ onNotification: (notification) => {
144
+ trackTurnId(backendRef, notification);
145
+ reportTokenUsage(ctx, notification);
146
+ for (const event of adapter.handle(notification))
147
+ stream.push(event);
148
+ },
149
+ onServerRequest: (request) => permissions.handle(request),
150
+ },
151
+ });
152
+ await codexProcess.client.request(CODEX_INITIALIZE_METHOD, clientInfo(), HANDSHAKE);
153
+ codexProcess.client.notify(CODEX_INITIALIZED_METHOD, {});
154
+ await configureSkills(codexProcess, options, ctx.settings);
155
+ const threadId = await startThread(codexProcess, ctx);
156
+ const backend = {
157
+ process: codexProcess,
158
+ threadId,
159
+ turnId: null,
160
+ live: { settings: ctx.settings },
161
+ conversationId: ctx.conversationId,
162
+ hostProjectRoot: ctx.hostProjectRoot,
163
+ denials: () => permissions.consecutiveDenials(),
164
+ resumeApprovals: () => permissions.resume(),
165
+ };
166
+ backendRef.current = backend;
167
+ const abortController = new AbortController();
168
+ abortController.signal.addEventListener("abort", () => {
169
+ stream.fail(new Error(CODEX_TURN_ABORTED_MESSAGE));
170
+ });
171
+ const session = createAgentSession({
172
+ events: stream.iterator,
173
+ controls: {
174
+ submitTurn: (input) => submitTurn(backend, options, input),
175
+ interrupt: () => {
176
+ permissions.cancelPending();
177
+ interruptTurn(backend);
178
+ },
179
+ close: () => {
180
+ stream.end();
181
+ void options.mcpHttpRegistry.release(ctx.conversationId);
182
+ void codexProcess.dispose();
183
+ },
184
+ },
185
+ abortController,
186
+ onDisposed: () => {
187
+ live.delete(ctx.conversationId);
188
+ ctx.onDisposed();
189
+ },
190
+ });
191
+ const providerSession = {
192
+ runTurn: (input, settings) => {
193
+ backend.live.settings = settings;
194
+ return session.sendTurn(input, resolveTimeoutMs(options));
195
+ },
196
+ interrupt: () => session.interrupt(),
197
+ dispose: () => session.dispose(),
198
+ applySettings: (settings) => {
199
+ backend.live.settings = settings;
200
+ },
201
+ };
202
+ return providerSession;
203
+ }
204
+ function evictOverflow(live) {
205
+ while (live.size >= CODEX_MAX_LIVE_SESSIONS) {
206
+ const oldest = live.keys().next();
207
+ if (oldest.done === true)
208
+ return;
209
+ const session = live.get(oldest.value);
210
+ live.delete(oldest.value);
211
+ session?.dispose();
212
+ }
213
+ }
214
+ export function createCodexProvider(options) {
215
+ const live = new Map();
216
+ return {
217
+ createSession: async (ctx) => {
218
+ evictOverflow(live);
219
+ const session = await createProviderSession(options, ctx, live);
220
+ live.set(ctx.conversationId, session);
221
+ return session;
222
+ },
223
+ };
224
+ }
225
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/providers/codex/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface CodexInstallation {
2
+ binaryPath: string;
3
+ launchArgs: readonly string[];
4
+ pinnedVersion: string;
5
+ }
6
+ export declare function resolveCodexInstallation(): CodexInstallation | undefined;
7
+ export declare function readCodexBinaryVersion(installation: CodexInstallation): string | undefined;
8
+ export declare function isVersionGateWaived(): boolean;
9
+ export declare function isCodexInstallationUsable(installation: CodexInstallation): boolean;
10
+ export declare function describeVersionMismatch(installation: CodexInstallation): string;
@@ -0,0 +1,80 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import path from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { CODEX_BIN_DIR, CODEX_BINARY_NAME, CODEX_CLI_PACKAGE, CODEX_PLATFORM_PACKAGE_BY_TRIPLE, CODEX_TRIPLE_BY_HOST, CODEX_VENDOR_DIR, CODEX_VERSION_ARGUMENT, CODEX_VERSION_PATTERN, CODEX_VERSION_WAIVER_ENABLED, CODEX_VERSION_WAIVER_ENV, CODEX_WINDOWS_BINARY_NAME, MOCK_CODEX_BINARY_RELATIVE, MOCK_CODEX_FLAG_ENABLED, MOCK_CODEX_FLAG_ENV, MOCK_CODEX_VERSION, WINDOWS_PLATFORM, } from "../../constants/codex.js";
7
+ import { PROVIDER_INSTALLED_VERSION_TOKEN, PROVIDER_PINNED_VERSION_TOKEN, PROVIDER_UNAVAILABLE_REASONS, PROVIDER_UNKNOWN_VERSION, } from "../../constants/providers.js";
8
+ import { CODEX_PROTOCOL_VERSION } from "./protocol/index.js";
9
+ function hostTriple() {
10
+ return CODEX_TRIPLE_BY_HOST[`${process.platform}:${process.arch}`];
11
+ }
12
+ function binaryFileName() {
13
+ return process.platform === WINDOWS_PLATFORM
14
+ ? CODEX_WINDOWS_BINARY_NAME
15
+ : CODEX_BINARY_NAME;
16
+ }
17
+ function computeInstallation() {
18
+ const triple = hostTriple();
19
+ if (triple === undefined)
20
+ return undefined;
21
+ try {
22
+ const launcher = createRequire(import.meta.url).resolve(`${CODEX_CLI_PACKAGE}/package.json`);
23
+ const platformManifest = createRequire(launcher).resolve(`${CODEX_PLATFORM_PACKAGE_BY_TRIPLE[triple]}/package.json`);
24
+ const binaryPath = path.join(path.dirname(platformManifest), CODEX_VENDOR_DIR, triple, CODEX_BIN_DIR, binaryFileName());
25
+ if (!existsSync(binaryPath))
26
+ return undefined;
27
+ return {
28
+ binaryPath,
29
+ launchArgs: [],
30
+ pinnedVersion: CODEX_PROTOCOL_VERSION,
31
+ };
32
+ }
33
+ catch {
34
+ return undefined;
35
+ }
36
+ }
37
+ function mockInstallation() {
38
+ if (process.env[MOCK_CODEX_FLAG_ENV] !== MOCK_CODEX_FLAG_ENABLED) {
39
+ return undefined;
40
+ }
41
+ return {
42
+ binaryPath: process.execPath,
43
+ launchArgs: [
44
+ fileURLToPath(new URL(MOCK_CODEX_BINARY_RELATIVE, import.meta.url)),
45
+ ],
46
+ pinnedVersion: MOCK_CODEX_VERSION,
47
+ };
48
+ }
49
+ let cached = null;
50
+ export function resolveCodexInstallation() {
51
+ const mock = mockInstallation();
52
+ if (mock !== undefined)
53
+ return mock;
54
+ if (cached !== null)
55
+ return cached.value;
56
+ cached = { value: computeInstallation() };
57
+ return cached.value;
58
+ }
59
+ export function readCodexBinaryVersion(installation) {
60
+ try {
61
+ const reported = execFileSync(installation.binaryPath, [...installation.launchArgs, CODEX_VERSION_ARGUMENT], { encoding: "utf8", windowsHide: true }).trim();
62
+ return reported.match(CODEX_VERSION_PATTERN)?.[1];
63
+ }
64
+ catch {
65
+ return undefined;
66
+ }
67
+ }
68
+ export function isVersionGateWaived() {
69
+ return process.env[CODEX_VERSION_WAIVER_ENV] === CODEX_VERSION_WAIVER_ENABLED;
70
+ }
71
+ export function isCodexInstallationUsable(installation) {
72
+ if (isVersionGateWaived())
73
+ return true;
74
+ return readCodexBinaryVersion(installation) === installation.pinnedVersion;
75
+ }
76
+ export function describeVersionMismatch(installation) {
77
+ const installed = readCodexBinaryVersion(installation) ?? PROVIDER_UNKNOWN_VERSION;
78
+ return PROVIDER_UNAVAILABLE_REASONS.CODEX_VERSION_MISMATCH.replaceAll(PROVIDER_PINNED_VERSION_TOKEN, installation.pinnedVersion).replace(PROVIDER_INSTALLED_VERSION_TOKEN, installed);
79
+ }
80
+ //# sourceMappingURL=resolve-binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../../../src/providers/codex/resolve-binary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { SkillSource } from "../../skills/types.js";
2
+ import type { v2 } from "./protocol/index.js";
3
+ export interface SkillNeutralizationInput {
4
+ extraRoots: readonly string[];
5
+ allowLocalSkills: boolean;
6
+ }
7
+ export declare function buildSkillExtraRoots(sources: readonly SkillSource[]): string[];
8
+ export declare function collectListedSkills(entries: readonly v2.SkillsListEntry[]): v2.SkillMetadata[];
9
+ export declare function selectSkillsToDisable(entries: readonly v2.SkillsListEntry[], input: SkillNeutralizationInput): v2.SkillsConfigWriteParams[];
10
+ export declare function findMissingSkills(entries: readonly v2.SkillsListEntry[], requiredNames: readonly string[]): string[];
@@ -0,0 +1,42 @@
1
+ import path from "node:path";
2
+ import { CODEX_OWNED_SKILL_SCOPES } from "../../constants/codex.js";
3
+ export function buildSkillExtraRoots(sources) {
4
+ const seen = new Set();
5
+ for (const source of sources)
6
+ seen.add(path.resolve(source.dir));
7
+ return [...seen];
8
+ }
9
+ export function collectListedSkills(entries) {
10
+ return entries.flatMap((entry) => entry.skills);
11
+ }
12
+ function isUnderRoot(target, root) {
13
+ const relative = path.relative(root, target);
14
+ if (relative === "")
15
+ return true;
16
+ return !relative.startsWith("..") && !path.isAbsolute(relative);
17
+ }
18
+ function isContributedByUs(skill, extraRoots) {
19
+ const resolved = path.resolve(skill.path);
20
+ return extraRoots.some((root) => isUnderRoot(resolved, path.resolve(root)));
21
+ }
22
+ function mustDisable(skill, input) {
23
+ if (!skill.enabled)
24
+ return false;
25
+ if (isContributedByUs(skill, input.extraRoots))
26
+ return false;
27
+ if (CODEX_OWNED_SKILL_SCOPES.includes(skill.scope))
28
+ return true;
29
+ return !input.allowLocalSkills;
30
+ }
31
+ export function selectSkillsToDisable(entries, input) {
32
+ return collectListedSkills(entries)
33
+ .filter((skill) => mustDisable(skill, input))
34
+ .map((skill) => ({ path: skill.path, enabled: false }));
35
+ }
36
+ export function findMissingSkills(entries, requiredNames) {
37
+ const present = new Set(collectListedSkills(entries)
38
+ .filter((skill) => skill.enabled)
39
+ .map((skill) => skill.name));
40
+ return requiredNames.filter((name) => !present.has(name));
41
+ }
42
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/providers/codex/skills.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAapE,MAAM,UAAU,oBAAoB,CAClC,OAA+B;IAE/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsC;IAEtC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAuB,EACvB,UAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAClB,KAAuB,EACvB,KAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;AACjC,CAAC;AAQD,MAAM,UAAU,qBAAqB,CACnC,OAAsC,EACtC,KAA+B;IAE/B,OAAO,mBAAmB,CAAC,OAAO,CAAC;SAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAGD,MAAM,UAAU,iBAAiB,CAC/B,OAAsC,EACtC,aAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,mBAAmB,CAAC,OAAO,CAAC;SACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAC9B,CAAC;IACF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ProviderName } from "../state/types.js";
2
+ import type { ProviderAvailabilityMap, ProviderModule } from "./types.js";
3
+ export declare const PROVIDER_MODULES: Record<ProviderName, ProviderModule>;
4
+ export declare function getProviderAvailability(): ProviderAvailabilityMap;
5
+ export declare function isProviderAvailable(name: ProviderName): boolean;
6
+ export declare function providerUnavailableReason(name: ProviderName): string | undefined;
7
+ export declare function reapOrphanProviders(stateDir: string): Promise<void>;
@@ -0,0 +1,31 @@
1
+ import { PROVIDER_NAMES } from "../state/types.js";
2
+ import { claudeModule } from "./claude/module.js";
3
+ import { codexModule } from "./codex/module.js";
4
+ export const PROVIDER_MODULES = {
5
+ claude: claudeModule,
6
+ codex: codexModule,
7
+ };
8
+ export function getProviderAvailability() {
9
+ const entries = PROVIDER_NAMES.map((name) => [
10
+ name,
11
+ PROVIDER_MODULES[name].checkAvailability(),
12
+ ]);
13
+ return Object.fromEntries(entries);
14
+ }
15
+ export function isProviderAvailable(name) {
16
+ return PROVIDER_MODULES[name].checkAvailability().available;
17
+ }
18
+ export function providerUnavailableReason(name) {
19
+ return PROVIDER_MODULES[name].checkAvailability().reason;
20
+ }
21
+ export async function reapOrphanProviders(stateDir) {
22
+ const reaping = [];
23
+ for (const name of PROVIDER_NAMES) {
24
+ const module = PROVIDER_MODULES[name];
25
+ if (module.reapOrphans === undefined)
26
+ continue;
27
+ reaping.push(module.reapOrphans(stateDir));
28
+ }
29
+ await Promise.all(reaping);
30
+ }
31
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IACpE,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;CACnB,CAAC;AAGF,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI;QACJ,gBAAgB,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE;KAC3C,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAA4B,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAkB;IACpD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC;AAC9D,CAAC;AAGD,MAAM,UAAU,yBAAyB,CACvC,IAAkB;IAElB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;AAC3D,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,SAAS;QAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { AgentProvider, AgentProviderOptions } from "../agent/provider.js";
2
+ import type { McpHttpRegistry } from "../mcp/http-binding.js";
3
+ import type { AiMcpServerDeps } from "../mcp/types.js";
4
+ import type { ProviderName } from "../state/types.js";
5
+ export interface ProviderHostRuntime {
6
+ stateDir: string;
7
+ mcpHttpRegistry: McpHttpRegistry;
8
+ getMcpUrl: () => string;
9
+ }
10
+ export interface ProviderRuntime extends ProviderHostRuntime {
11
+ createMcpDeps: (conversationId: string) => AiMcpServerDeps;
12
+ }
13
+ export interface ProviderAvailability {
14
+ available: boolean;
15
+ reason?: string;
16
+ }
17
+ export type ProviderAvailabilityMap = Record<ProviderName, ProviderAvailability>;
18
+ export declare const AVAILABLE: ProviderAvailability;
19
+ export declare function unavailable(reason: string): ProviderAvailability;
20
+ export interface ProviderModule {
21
+ name: ProviderName;
22
+ create(options: AgentProviderOptions, runtime: ProviderRuntime): AgentProvider;
23
+ checkAvailability(): ProviderAvailability;
24
+ reapOrphans?(stateDir: string): Promise<void>;
25
+ }
@@ -0,0 +1,5 @@
1
+ export const AVAILABLE = { available: true };
2
+ export function unavailable(reason) {
3
+ return { available: false, reason };
4
+ }
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,SAAS,GAAyB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEnE,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type Server } from "node:http";
2
+ import type { McpHttpRegistry } from "../mcp/http-binding.js";
2
3
  import type { SkillSource } from "../skills/types.js";
3
4
  import type { ConversationStore } from "../state/conversations.js";
4
5
  import type { SettingsStore } from "../state/settings-store.js";
@@ -16,6 +17,7 @@ interface CreateHttpServerOptions {
16
17
  settingsStore?: SettingsStore;
17
18
  settingsApplier?: SettingsApplier;
18
19
  getSkillSources?: () => SkillSource[];
20
+ mcpHttpRegistry?: McpHttpRegistry;
19
21
  }
20
22
  interface CreateHttpServerResult {
21
23
  server: Server;
@@ -3,13 +3,15 @@ import { createServer, } from "node:http";
3
3
  import { extname, join, normalize, resolve, sep } from "node:path";
4
4
  import { getBuilderAvailable } from "../builder/capability.js";
5
5
  import { CONTENT_TYPE, HTTP_STATUS, MIME_BY_EXT } from "../constants/http.js";
6
+ import { MCP_HTTP_PATH } from "../constants/mcp.js";
6
7
  import { LOOPBACK_HOST } from "../constants/ports.js";
7
8
  import { buildActivity, buildKpi, buildSeries, buildTopSkills, } from "../metrics/aggregate.js";
8
9
  import { KPI_METRICS, } from "../metrics/types.js";
9
10
  import { AppSettingsSchema } from "../protocol/events.js";
11
+ import { getProviderAvailability } from "../providers/registry.js";
10
12
  import { buildSkillCatalog } from "../skills/build-catalog.js";
11
- import { readSidecarVersion } from "../state/sidecar-version.js";
12
13
  import { isClientAuthorized } from "./client-auth.js";
14
+ import { readSidecarVersion } from "../state/sidecar-version.js";
13
15
  const DEFAULT_BUILD_ID = "";
14
16
  function sendResponse(res, status, contentType, payload) {
15
17
  const body = typeof payload === "string" ? payload : JSON.stringify(payload);
@@ -93,11 +95,15 @@ const activityRoute = (_req, res, deps, params) => {
93
95
  const payload = buildActivity(deps.conversationStore.entries(), parseWindow(params), parseLimit(params, DEFAULT_ACTIVITY_LIMIT));
94
96
  sendResponse(res, HTTP_STATUS.OK, CONTENT_TYPE.JSON, payload);
95
97
  };
96
- const getSettingsRoute = (_req, res, deps) => {
97
- sendResponse(res, HTTP_STATUS.OK, CONTENT_TYPE.JSON, {
98
- ...deps.settingsStore.get(),
98
+ function buildSettingsPayload(settings) {
99
+ return {
100
+ ...settings,
99
101
  builderAvailable: getBuilderAvailable(),
100
- });
102
+ providers: getProviderAvailability(),
103
+ };
104
+ }
105
+ const getSettingsRoute = (_req, res, deps) => {
106
+ sendResponse(res, HTTP_STATUS.OK, CONTENT_TYPE.JSON, buildSettingsPayload(deps.settingsStore.get()));
101
107
  };
102
108
  const putSettingsRoute = async (req, res, deps) => {
103
109
  const body = await readBody(req);
@@ -115,11 +121,12 @@ const putSettingsRoute = async (req, res, deps) => {
115
121
  });
116
122
  return;
117
123
  }
118
- deps.settingsApplier.apply(result.data);
119
- sendResponse(res, HTTP_STATUS.OK, CONTENT_TYPE.JSON, {
124
+ const next = {
120
125
  ...result.data,
121
- builderAvailable: getBuilderAvailable(),
122
- });
126
+ provider: result.data.provider ?? deps.settingsStore.get().provider,
127
+ };
128
+ deps.settingsApplier.apply(next);
129
+ sendResponse(res, HTTP_STATUS.OK, CONTENT_TYPE.JSON, buildSettingsPayload(next));
123
130
  };
124
131
  const METRIC_ROUTES = {
125
132
  "GET /metrics/series": seriesRoute,
@@ -211,13 +218,19 @@ async function serveStatic(req, res, dir) {
211
218
  sendResponse(res, HTTP_STATUS.NOT_FOUND, CONTENT_TYPE.TEXT, "Not Found");
212
219
  }
213
220
  }
221
+ function buildRoutePath(req) {
222
+ const url = req.url ?? "/";
223
+ return url.split("?")[0] ?? "/";
224
+ }
214
225
  function buildRouteKey(req) {
215
226
  const method = req.method ?? "GET";
216
- const url = req.url ?? "/";
217
- const path = url.split("?")[0] ?? "/";
218
- return `${method} ${path}`;
227
+ return `${method} ${buildRoutePath(req)}`;
219
228
  }
220
229
  async function handleRequest(req, res, ctx) {
230
+ if (ctx.mcpHttpRegistry && buildRoutePath(req) === MCP_HTTP_PATH) {
231
+ await ctx.mcpHttpRegistry.handleRequest(req, res);
232
+ return;
233
+ }
221
234
  const key = buildRouteKey(req);
222
235
  const handler = ROUTES[key];
223
236
  if (handler !== undefined) {
@@ -243,6 +256,7 @@ export function createHttpServer(options) {
243
256
  settingsStore: options.settingsStore,
244
257
  settingsApplier: options.settingsApplier,
245
258
  getSkillSources: options.getSkillSources,
259
+ mcpHttpRegistry: options.mcpHttpRegistry,
246
260
  };
247
261
  const server = createServer((req, res) => {
248
262
  handleRequest(req, res, ctx).catch(() => sendResponse(res, HTTP_STATUS.SERVER_ERROR, CONTENT_TYPE.TEXT, "Server Error"));
@@ -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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"}