@nodetool-ai/websocket 0.8.2 → 0.8.3

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 (316) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/chat-turn-registry.d.ts +2 -1
  3. package/dist/chat-turn-registry.d.ts.map +1 -1
  4. package/dist/chat-turn-registry.js +8 -1
  5. package/dist/chat-turn-registry.js.map +1 -1
  6. package/dist/collection-api.d.ts.map +1 -1
  7. package/dist/collection-api.js +3 -5
  8. package/dist/collection-api.js.map +1 -1
  9. package/dist/custom-providers.d.ts.map +1 -1
  10. package/dist/custom-providers.js +6 -1
  11. package/dist/custom-providers.js.map +1 -1
  12. package/dist/example-workflows.d.ts.map +1 -1
  13. package/dist/example-workflows.js +6 -0
  14. package/dist/example-workflows.js.map +1 -1
  15. package/dist/fake-runtime.d.ts +41 -6
  16. package/dist/fake-runtime.d.ts.map +1 -1
  17. package/dist/fake-runtime.js +207 -13
  18. package/dist/fake-runtime.js.map +1 -1
  19. package/dist/file-api.d.ts.map +1 -1
  20. package/dist/file-api.js +6 -8
  21. package/dist/file-api.js.map +1 -1
  22. package/dist/generation-recovery.d.ts.map +1 -1
  23. package/dist/generation-recovery.js +7 -4
  24. package/dist/generation-recovery.js.map +1 -1
  25. package/dist/headless-job-runner.d.ts.map +1 -1
  26. package/dist/headless-job-runner.js +5 -1
  27. package/dist/headless-job-runner.js.map +1 -1
  28. package/dist/http-api.d.ts +3 -1
  29. package/dist/http-api.d.ts.map +1 -1
  30. package/dist/http-api.js +51 -9
  31. package/dist/http-api.js.map +1 -1
  32. package/dist/http-body-schemas.d.ts +2 -0
  33. package/dist/http-body-schemas.d.ts.map +1 -1
  34. package/dist/http-body-schemas.js +8 -1
  35. package/dist/http-body-schemas.js.map +1 -1
  36. package/dist/lib/admin.d.ts +7 -0
  37. package/dist/lib/admin.d.ts.map +1 -0
  38. package/dist/lib/admin.js +20 -0
  39. package/dist/lib/admin.js.map +1 -0
  40. package/dist/lib/app-instances-service.d.ts +35 -0
  41. package/dist/lib/app-instances-service.d.ts.map +1 -1
  42. package/dist/lib/app-instances-service.js +3 -4
  43. package/dist/lib/app-instances-service.js.map +1 -1
  44. package/dist/lib/app-project-export.d.ts +12 -0
  45. package/dist/lib/app-project-export.d.ts.map +1 -0
  46. package/dist/lib/app-project-export.js +42 -0
  47. package/dist/lib/app-project-export.js.map +1 -0
  48. package/dist/lib/applications-service.d.ts.map +1 -1
  49. package/dist/lib/applications-service.js +7 -2
  50. package/dist/lib/applications-service.js.map +1 -1
  51. package/dist/lib/asset-export.d.ts +6 -2
  52. package/dist/lib/asset-export.d.ts.map +1 -1
  53. package/dist/lib/asset-export.js +15 -7
  54. package/dist/lib/asset-export.js.map +1 -1
  55. package/dist/lib/asset-response.d.ts.map +1 -1
  56. package/dist/lib/asset-response.js +1 -0
  57. package/dist/lib/asset-response.js.map +1 -1
  58. package/dist/lib/cloud-profile.d.ts +10 -0
  59. package/dist/lib/cloud-profile.d.ts.map +1 -0
  60. package/dist/lib/cloud-profile.js +13 -0
  61. package/dist/lib/cloud-profile.js.map +1 -0
  62. package/dist/lib/http-user-id.d.ts +2 -0
  63. package/dist/lib/http-user-id.d.ts.map +1 -0
  64. package/dist/lib/http-user-id.js +4 -0
  65. package/dist/lib/http-user-id.js.map +1 -0
  66. package/dist/lib/json-body.d.ts +11 -0
  67. package/dist/lib/json-body.d.ts.map +1 -0
  68. package/dist/lib/json-body.js +13 -0
  69. package/dist/lib/json-body.js.map +1 -0
  70. package/dist/lib/public-routes.d.ts +15 -0
  71. package/dist/lib/public-routes.d.ts.map +1 -1
  72. package/dist/lib/public-routes.js +27 -0
  73. package/dist/lib/public-routes.js.map +1 -1
  74. package/dist/lib/public-workflow-share.d.ts +12 -1
  75. package/dist/lib/public-workflow-share.d.ts.map +1 -1
  76. package/dist/lib/public-workflow-share.js +45 -2
  77. package/dist/lib/public-workflow-share.js.map +1 -1
  78. package/dist/lib/python-metadata-roots.d.ts +27 -0
  79. package/dist/lib/python-metadata-roots.d.ts.map +1 -0
  80. package/dist/lib/python-metadata-roots.js +92 -0
  81. package/dist/lib/python-metadata-roots.js.map +1 -0
  82. package/dist/lib/runtime-detection.d.ts +1 -1
  83. package/dist/lib/runtime-detection.d.ts.map +1 -1
  84. package/dist/lib/runtime-detection.js +2 -1
  85. package/dist/lib/runtime-detection.js.map +1 -1
  86. package/dist/lib/server-auth-token.d.ts +18 -0
  87. package/dist/lib/server-auth-token.d.ts.map +1 -0
  88. package/dist/lib/server-auth-token.js +28 -0
  89. package/dist/lib/server-auth-token.js.map +1 -0
  90. package/dist/lib/timeline-bundle.d.ts +11 -0
  91. package/dist/lib/timeline-bundle.d.ts.map +1 -1
  92. package/dist/lib/timeline-bundle.js +22 -6
  93. package/dist/lib/timeline-bundle.js.map +1 -1
  94. package/dist/lib/timeline-media-export.d.ts +18 -0
  95. package/dist/lib/timeline-media-export.d.ts.map +1 -0
  96. package/dist/lib/timeline-media-export.js +66 -0
  97. package/dist/lib/timeline-media-export.js.map +1 -0
  98. package/dist/lib/timeline-premiere-import.d.ts +24 -0
  99. package/dist/lib/timeline-premiere-import.d.ts.map +1 -0
  100. package/dist/lib/timeline-premiere-import.js +102 -0
  101. package/dist/lib/timeline-premiere-import.js.map +1 -0
  102. package/dist/lib/timeline-premiere.d.ts +38 -0
  103. package/dist/lib/timeline-premiere.d.ts.map +1 -0
  104. package/dist/lib/timeline-premiere.js +87 -0
  105. package/dist/lib/timeline-premiere.js.map +1 -0
  106. package/dist/mcp-agent-tools.d.ts.map +1 -1
  107. package/dist/mcp-agent-tools.js +2 -0
  108. package/dist/mcp-agent-tools.js.map +1 -1
  109. package/dist/mcp-server.d.ts +7 -0
  110. package/dist/mcp-server.d.ts.map +1 -1
  111. package/dist/mcp-server.js +163 -16
  112. package/dist/mcp-server.js.map +1 -1
  113. package/dist/mcp-skill-prompts.d.ts +23 -0
  114. package/dist/mcp-skill-prompts.d.ts.map +1 -0
  115. package/dist/mcp-skill-prompts.js +91 -0
  116. package/dist/mcp-skill-prompts.js.map +1 -0
  117. package/dist/mcp-tool-deps.d.ts.map +1 -1
  118. package/dist/mcp-tool-deps.js +8 -1
  119. package/dist/mcp-tool-deps.js.map +1 -1
  120. package/dist/models-api.d.ts.map +1 -1
  121. package/dist/models-api.js +6 -2
  122. package/dist/models-api.js.map +1 -1
  123. package/dist/oauth-api.d.ts.map +1 -1
  124. package/dist/oauth-api.js +45 -23
  125. package/dist/oauth-api.js.map +1 -1
  126. package/dist/openai-api.d.ts.map +1 -1
  127. package/dist/openai-api.js +10 -2
  128. package/dist/openai-api.js.map +1 -1
  129. package/dist/plugins/websocket.d.ts.map +1 -1
  130. package/dist/plugins/websocket.js +7 -2
  131. package/dist/plugins/websocket.js.map +1 -1
  132. package/dist/routes/applications.d.ts +1 -0
  133. package/dist/routes/applications.d.ts.map +1 -1
  134. package/dist/routes/applications.js +24 -0
  135. package/dist/routes/applications.js.map +1 -1
  136. package/dist/routes/assets.d.ts.map +1 -1
  137. package/dist/routes/assets.js +31 -41
  138. package/dist/routes/assets.js.map +1 -1
  139. package/dist/routes/config.d.ts.map +1 -1
  140. package/dist/routes/config.js +6 -0
  141. package/dist/routes/config.js.map +1 -1
  142. package/dist/routes/documents.d.ts.map +1 -1
  143. package/dist/routes/documents.js +24 -0
  144. package/dist/routes/documents.js.map +1 -1
  145. package/dist/routes/fal-pricing-estimate.d.ts.map +1 -1
  146. package/dist/routes/fal-pricing-estimate.js +2 -0
  147. package/dist/routes/fal-pricing-estimate.js.map +1 -1
  148. package/dist/routes/files.d.ts.map +1 -1
  149. package/dist/routes/files.js +2 -0
  150. package/dist/routes/files.js.map +1 -1
  151. package/dist/routes/games.d.ts +38 -0
  152. package/dist/routes/games.d.ts.map +1 -0
  153. package/dist/routes/games.js +158 -0
  154. package/dist/routes/games.js.map +1 -0
  155. package/dist/routes/integrations.d.ts.map +1 -1
  156. package/dist/routes/integrations.js +22 -26
  157. package/dist/routes/integrations.js.map +1 -1
  158. package/dist/routes/js-scripts.d.ts +1 -1
  159. package/dist/routes/js-scripts.d.ts.map +1 -1
  160. package/dist/routes/js-scripts.js +1 -1
  161. package/dist/routes/js-scripts.js.map +1 -1
  162. package/dist/routes/nodes.d.ts.map +1 -1
  163. package/dist/routes/nodes.js +2 -0
  164. package/dist/routes/nodes.js.map +1 -1
  165. package/dist/routes/storage.d.ts.map +1 -1
  166. package/dist/routes/storage.js +2 -0
  167. package/dist/routes/storage.js.map +1 -1
  168. package/dist/routes/storyboards.d.ts.map +1 -1
  169. package/dist/routes/storyboards.js +6 -3
  170. package/dist/routes/storyboards.js.map +1 -1
  171. package/dist/routes/timelines.d.ts +8 -4
  172. package/dist/routes/timelines.d.ts.map +1 -1
  173. package/dist/routes/timelines.js +209 -16
  174. package/dist/routes/timelines.js.map +1 -1
  175. package/dist/screenshot-docs-seed.d.ts +24 -0
  176. package/dist/screenshot-docs-seed.d.ts.map +1 -0
  177. package/dist/screenshot-docs-seed.js +414 -0
  178. package/dist/screenshot-docs-seed.js.map +1 -0
  179. package/dist/screenshot-projects.d.ts.map +1 -1
  180. package/dist/screenshot-projects.js +9 -9
  181. package/dist/screenshot-projects.js.map +1 -1
  182. package/dist/screenshot-server.js +111 -16
  183. package/dist/screenshot-server.js.map +1 -1
  184. package/dist/server.js +87 -90
  185. package/dist/server.js.map +1 -1
  186. package/dist/session/chat-turn.d.ts +10 -0
  187. package/dist/session/chat-turn.d.ts.map +1 -1
  188. package/dist/session/chat-turn.js +68 -10
  189. package/dist/session/chat-turn.js.map +1 -1
  190. package/dist/session/commands.d.ts +14 -0
  191. package/dist/session/commands.d.ts.map +1 -1
  192. package/dist/session/commands.js +113 -14
  193. package/dist/session/commands.js.map +1 -1
  194. package/dist/session/inference.d.ts +25 -2
  195. package/dist/session/inference.d.ts.map +1 -1
  196. package/dist/session/inference.js +86 -8
  197. package/dist/session/inference.js.map +1 -1
  198. package/dist/session/job-execution.d.ts +0 -1
  199. package/dist/session/job-execution.d.ts.map +1 -1
  200. package/dist/session/job-execution.js +34 -37
  201. package/dist/session/job-execution.js.map +1 -1
  202. package/dist/storage-api.d.ts +0 -4
  203. package/dist/storage-api.d.ts.map +1 -1
  204. package/dist/storage-api.js +3 -26
  205. package/dist/storage-api.js.map +1 -1
  206. package/dist/test-ui-server.d.ts +11 -0
  207. package/dist/test-ui-server.d.ts.map +1 -1
  208. package/dist/test-ui-server.js +63 -3
  209. package/dist/test-ui-server.js.map +1 -1
  210. package/dist/triggers/dispatcher.d.ts.map +1 -1
  211. package/dist/triggers/dispatcher.js +24 -4
  212. package/dist/triggers/dispatcher.js.map +1 -1
  213. package/dist/triggers/file-watch.d.ts.map +1 -1
  214. package/dist/triggers/file-watch.js +35 -19
  215. package/dist/triggers/file-watch.js.map +1 -1
  216. package/dist/triggers/scheduler.d.ts.map +1 -1
  217. package/dist/triggers/scheduler.js +7 -5
  218. package/dist/triggers/scheduler.js.map +1 -1
  219. package/dist/trpc/error-formatter.d.ts.map +1 -1
  220. package/dist/trpc/error-formatter.js +2 -1
  221. package/dist/trpc/error-formatter.js.map +1 -1
  222. package/dist/trpc/routers/app-instances.d.ts +63 -0
  223. package/dist/trpc/routers/app-instances.d.ts.map +1 -1
  224. package/dist/trpc/routers/app-runs.d.ts +28 -0
  225. package/dist/trpc/routers/app-runs.d.ts.map +1 -1
  226. package/dist/trpc/routers/applications.d.ts +7 -0
  227. package/dist/trpc/routers/applications.d.ts.map +1 -1
  228. package/dist/trpc/routers/assets.d.ts +8 -0
  229. package/dist/trpc/routers/assets.d.ts.map +1 -1
  230. package/dist/trpc/routers/assets.js +16 -5
  231. package/dist/trpc/routers/assets.js.map +1 -1
  232. package/dist/trpc/routers/collections.d.ts.map +1 -1
  233. package/dist/trpc/routers/collections.js +16 -10
  234. package/dist/trpc/routers/collections.js.map +1 -1
  235. package/dist/trpc/routers/credits.d.ts.map +1 -1
  236. package/dist/trpc/routers/credits.js +11 -1
  237. package/dist/trpc/routers/credits.js.map +1 -1
  238. package/dist/trpc/routers/extension.d.ts +1 -1
  239. package/dist/trpc/routers/extension.d.ts.map +1 -1
  240. package/dist/trpc/routers/extension.js +8 -4
  241. package/dist/trpc/routers/extension.js.map +1 -1
  242. package/dist/trpc/routers/gameDraftHistory.d.ts +1 -2
  243. package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -1
  244. package/dist/trpc/routers/gameDraftHistory.js +1 -1
  245. package/dist/trpc/routers/gameDraftHistory.js.map +1 -1
  246. package/dist/trpc/routers/games.d.ts +40822 -5154
  247. package/dist/trpc/routers/games.d.ts.map +1 -1
  248. package/dist/trpc/routers/games.js +317 -140
  249. package/dist/trpc/routers/games.js.map +1 -1
  250. package/dist/trpc/routers/jobs.d.ts +7 -0
  251. package/dist/trpc/routers/jobs.d.ts.map +1 -1
  252. package/dist/trpc/routers/jobs.js +5 -3
  253. package/dist/trpc/routers/jobs.js.map +1 -1
  254. package/dist/trpc/routers/js-scripts.d.ts.map +1 -1
  255. package/dist/trpc/routers/js-scripts.js +18 -2
  256. package/dist/trpc/routers/js-scripts.js.map +1 -1
  257. package/dist/trpc/routers/messages.d.ts +10 -0
  258. package/dist/trpc/routers/messages.d.ts.map +1 -1
  259. package/dist/trpc/routers/messages.js +16 -2
  260. package/dist/trpc/routers/messages.js.map +1 -1
  261. package/dist/trpc/routers/models.d.ts.map +1 -1
  262. package/dist/trpc/routers/models.js +20 -30
  263. package/dist/trpc/routers/models.js.map +1 -1
  264. package/dist/trpc/routers/packs.d.ts.map +1 -1
  265. package/dist/trpc/routers/packs.js +18 -4
  266. package/dist/trpc/routers/packs.js.map +1 -1
  267. package/dist/trpc/routers/projects.d.ts +66 -2
  268. package/dist/trpc/routers/projects.d.ts.map +1 -1
  269. package/dist/trpc/routers/projects.js +19 -2
  270. package/dist/trpc/routers/projects.js.map +1 -1
  271. package/dist/trpc/routers/settings.d.ts.map +1 -1
  272. package/dist/trpc/routers/settings.js +30 -5
  273. package/dist/trpc/routers/settings.js.map +1 -1
  274. package/dist/trpc/routers/sketch.d.ts +30 -0
  275. package/dist/trpc/routers/sketch.d.ts.map +1 -1
  276. package/dist/trpc/routers/sketch.js +2 -2
  277. package/dist/trpc/routers/sketch.js.map +1 -1
  278. package/dist/trpc/routers/storyboards.d.ts +171 -1
  279. package/dist/trpc/routers/storyboards.d.ts.map +1 -1
  280. package/dist/trpc/routers/storyboards.js +8 -5
  281. package/dist/trpc/routers/storyboards.js.map +1 -1
  282. package/dist/trpc/routers/threads.d.ts.map +1 -1
  283. package/dist/trpc/routers/threads.js +8 -2
  284. package/dist/trpc/routers/threads.js.map +1 -1
  285. package/dist/trpc/routers/timeline.d.ts +15 -0
  286. package/dist/trpc/routers/timeline.d.ts.map +1 -1
  287. package/dist/trpc/routers/timeline.js +15 -2
  288. package/dist/trpc/routers/timeline.js.map +1 -1
  289. package/dist/trpc/routers/triggers.d.ts.map +1 -1
  290. package/dist/trpc/routers/triggers.js +18 -3
  291. package/dist/trpc/routers/triggers.js.map +1 -1
  292. package/dist/trpc/routers/users.d.ts +3 -2
  293. package/dist/trpc/routers/users.d.ts.map +1 -1
  294. package/dist/trpc/routers/users.js +25 -27
  295. package/dist/trpc/routers/users.js.map +1 -1
  296. package/dist/trpc/routers/worker.d.ts.map +1 -1
  297. package/dist/trpc/routers/worker.js +37 -14
  298. package/dist/trpc/routers/worker.js.map +1 -1
  299. package/dist/trpc/routers/workflows.d.ts +146 -0
  300. package/dist/trpc/routers/workflows.d.ts.map +1 -1
  301. package/dist/trpc/routers/workflows.js +52 -13
  302. package/dist/trpc/routers/workflows.js.map +1 -1
  303. package/dist/trpc/sandbox-coverage.d.ts.map +1 -1
  304. package/dist/trpc/sandbox-coverage.js +29 -0
  305. package/dist/trpc/sandbox-coverage.js.map +1 -1
  306. package/dist/websocket-client-session.d.ts +2 -2
  307. package/dist/websocket-client-session.d.ts.map +1 -1
  308. package/dist/websocket-client-session.js +9 -3
  309. package/dist/websocket-client-session.js.map +1 -1
  310. package/dist/worker-settings-env.d.ts +23 -0
  311. package/dist/worker-settings-env.d.ts.map +1 -0
  312. package/dist/worker-settings-env.js +47 -0
  313. package/dist/worker-settings-env.js.map +1 -0
  314. package/dist/workflow-interface-service.d.ts +7 -0
  315. package/dist/workflow-interface-service.d.ts.map +1 -1
  316. package/package.json +44 -42
@@ -7,9 +7,11 @@
7
7
  */
8
8
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
9
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
10
- import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
10
+ import { StreamableHTTPClientTransport, StreamableHTTPError } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
11
11
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
12
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
13
+ import { ErrorCode, isInitializedNotification, isInitializeRequest, isJSONRPCRequest, isJSONRPCResultResponse } from "@modelcontextprotocol/sdk/types.js";
14
+ import { Agent as UndiciAgent } from "undici";
13
15
  import { MCP_GUEST_CONTRACT } from "@nodetool-ai/agents";
14
16
  import { createLogger } from "@nodetool-ai/config";
15
17
  import { registerAgentMcpTools } from "./mcp-agent-tools.js";
@@ -70,33 +72,152 @@ export async function forwardMcpStdioToLocalServer(url = getLocalMcpServerUrl(),
70
72
  }
71
73
  await probe.close();
72
74
  }
73
- const http = new StreamableHTTPClientTransport(endpoint);
74
- http.onmessage = (message) => {
75
- if ("result" in message && "protocolVersion" in message.result) {
76
- const version = message.result.protocolVersion;
77
- if (typeof version === "string")
78
- http.setProtocolVersion(version);
75
+ // The client's own handshake, kept so a replacement session can replay it.
76
+ let initializeRequest;
77
+ let initializedNotification;
78
+ // While a replacement session replays `initialize`, its response belongs to
79
+ // the forwarder, not to the client, which already received one.
80
+ let replayResponse;
81
+ const openTransport = () => {
82
+ const transport = new StreamableHTTPClientTransport(endpoint, {
83
+ fetch: fetchWithoutTimeouts
84
+ });
85
+ transport.onmessage = (message) => {
86
+ if (isJSONRPCResultResponse(message) && "protocolVersion" in message.result) {
87
+ const version = message.result.protocolVersion;
88
+ if (typeof version === "string")
89
+ transport.setProtocolVersion(version);
90
+ }
91
+ if (replayResponse?.transport === transport &&
92
+ "id" in message &&
93
+ message.id === replayResponse.id) {
94
+ replayResponse.resolve();
95
+ return;
96
+ }
97
+ void stdio.send(message);
98
+ };
99
+ transport.onerror = (error) => {
100
+ log.warn("Local MCP HTTP transport failed", { error: error.message });
101
+ };
102
+ return transport;
103
+ };
104
+ const replayHandshake = async (transport) => {
105
+ if (!initializeRequest) {
106
+ throw new Error("The client never initialized the MCP session");
107
+ }
108
+ const request = initializeRequest;
109
+ let timer;
110
+ try {
111
+ await Promise.race([
112
+ new Promise((resolve, reject) => {
113
+ replayResponse = { transport, id: request.id, resolve };
114
+ transport.send(request).catch(reject);
115
+ }),
116
+ new Promise((_, reject) => {
117
+ timer = setTimeout(() => reject(new Error("Replaying the MCP handshake timed out")), MCP_FORWARDER_HANDSHAKE_TIMEOUT_MS);
118
+ })
119
+ ]);
120
+ }
121
+ finally {
122
+ clearTimeout(timer);
123
+ replayResponse = undefined;
124
+ }
125
+ if (initializedNotification) {
126
+ await transport.send(initializedNotification);
79
127
  }
80
- void stdio.send(message);
81
128
  };
82
- http.onerror = (error) => {
83
- log.warn("Local MCP HTTP transport failed", { error: error.message });
129
+ let http = openTransport();
130
+ let reconnection;
131
+ // One replacement session for every request that failed on the same one.
132
+ // A restarting server refuses connections for a few seconds, so retry those.
133
+ const reconnect = (failed) => {
134
+ if (http !== failed)
135
+ return reconnection ?? Promise.resolve();
136
+ reconnection ??= (async () => {
137
+ void failed.close().catch(() => undefined);
138
+ const deadline = Date.now() + MCP_FORWARDER_RECONNECT_WINDOW_MS;
139
+ for (;;) {
140
+ const next = openTransport();
141
+ try {
142
+ await next.start();
143
+ await replayHandshake(next);
144
+ http = next;
145
+ log.info("Reopened the local MCP session");
146
+ return;
147
+ }
148
+ catch (error) {
149
+ await next.close().catch(() => undefined);
150
+ if (classifyForwardFailure(error) !== "unreachable" ||
151
+ Date.now() >= deadline) {
152
+ throw error;
153
+ }
154
+ await new Promise((resolve) => setTimeout(resolve, MCP_FORWARDER_RECONNECT_DELAY_MS));
155
+ }
156
+ }
157
+ })().finally(() => {
158
+ reconnection = undefined;
159
+ });
160
+ return reconnection;
161
+ };
162
+ // A request is resent only when the server provably never ran it: its
163
+ // session was gone (404) or nothing accepted the connection. A connection
164
+ // that drops mid-call may have run the tool already, so that request fails.
165
+ const forward = async (message) => {
166
+ await reconnection?.catch(() => undefined);
167
+ const transport = http;
168
+ try {
169
+ await transport.send(message);
170
+ }
171
+ catch (error) {
172
+ if (!initializeRequest ||
173
+ isInitializeRequest(message) ||
174
+ classifyForwardFailure(error) === "other") {
175
+ throw error;
176
+ }
177
+ log.info("Local MCP session lost; reconnecting", {
178
+ error: error instanceof Error ? error.message : String(error)
179
+ });
180
+ await reconnect(transport);
181
+ await http.send(message);
182
+ }
84
183
  };
85
184
  let initialization = Promise.resolve();
86
185
  stdio.onmessage = (message) => {
87
- const send = initialization.then(() => http.send(message));
88
- if ("method" in message && message.method === "initialize") {
186
+ if (isInitializeRequest(message)) {
187
+ initializeRequest = message;
188
+ }
189
+ else if (isInitializedNotification(message)) {
190
+ initializedNotification = message;
191
+ }
192
+ const send = initialization.then(() => forward(message));
193
+ if (isInitializeRequest(message)) {
89
194
  initialization = send;
90
195
  }
91
196
  void send.catch((error) => {
92
- log.warn("Forwarding MCP request failed", {
93
- error: error instanceof Error ? error.message : String(error)
94
- });
95
- void stdio.close();
197
+ const reason = error instanceof Error ? error.message : String(error);
198
+ log.warn("Forwarding MCP request failed", { error: reason });
199
+ // Without a session there is nothing to keep open.
200
+ if (isInitializeRequest(message)) {
201
+ void stdio.close();
202
+ return;
203
+ }
204
+ // Fail this one request and keep stdio open: the next request
205
+ // reconnects once the local server is back.
206
+ if (isJSONRPCRequest(message)) {
207
+ void stdio.send({
208
+ jsonrpc: "2.0",
209
+ id: message.id,
210
+ error: {
211
+ code: ErrorCode.ConnectionClosed,
212
+ message: `NodeTool server request failed: ${reason}`
213
+ }
214
+ });
215
+ }
96
216
  });
97
217
  };
98
218
  stdio.onclose = () => {
99
219
  void (async () => {
220
+ await reconnection?.catch(() => undefined);
100
221
  if (http.sessionId) {
101
222
  await http.terminateSession().catch(() => undefined);
102
223
  }
@@ -107,6 +228,32 @@ export async function forwardMcpStdioToLocalServer(url = getLocalMcpServerUrl(),
107
228
  await stdio.start();
108
229
  return true;
109
230
  }
231
+ /** Time a restarted local server gets to accept connections again. */
232
+ export const MCP_FORWARDER_RECONNECT_WINDOW_MS = 30_000;
233
+ const MCP_FORWARDER_RECONNECT_DELAY_MS = 500;
234
+ const MCP_FORWARDER_HANDSHAKE_TIMEOUT_MS = 10_000;
235
+ /**
236
+ * The mount answers with JSON (`enableJsonResponse`), so response headers
237
+ * arrive only when the tool finishes. undici's default 300 s headers timeout
238
+ * would fail every call longer than five minutes.
239
+ */
240
+ const noTimeoutDispatcher = new UndiciAgent({ headersTimeout: 0, bodyTimeout: 0 });
241
+ const fetchWithoutTimeouts = (url, init) => fetch(url, { ...init, dispatcher: noTimeoutDispatcher });
242
+ /**
243
+ * "session-lost" and "unreachable" mean the server never ran the request;
244
+ * "other" covers everything else, including a connection dropped mid-call.
245
+ */
246
+ export function classifyForwardFailure(error) {
247
+ if (error instanceof StreamableHTTPError && error.code === 404) {
248
+ return "session-lost";
249
+ }
250
+ for (let current = error; current instanceof Error; current = current.cause) {
251
+ if (current.code === "ECONNREFUSED") {
252
+ return "unreachable";
253
+ }
254
+ }
255
+ return "other";
256
+ }
110
257
  /**
111
258
  * How long an HTTP session may sit idle before it is closed. Every session
112
259
  * holds a transport, an `McpServer`, and that session's whole tool registry,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Every skill the session's user can load, published as an MCP prompt.
3
+ *
4
+ * MCP has no system prompt, so the skill catalog the chat turn carries never
5
+ * reaches an MCP client, and a skill was only discoverable by writing an
6
+ * `execute_code` action that imports `list_skills`. A prompt is the MCP shape
7
+ * for "saved instructions the user picks": clients list them, and Claude Code
8
+ * offers each one as a slash command.
9
+ *
10
+ * Shipped skills are registered synchronously, so they are there before the
11
+ * client's first `prompts/list`. The user's own rows need the database, so they
12
+ * arrive a moment later and the SDK announces them with `list_changed`. A body
13
+ * is read when the prompt is requested, never cached, so an edited skill is
14
+ * served as it is now. Resolution matches `load_skill`: the user's row first,
15
+ * then the shipped skill.
16
+ */
17
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
18
+ /**
19
+ * Register one prompt per skill. Returns when the user's rows are registered;
20
+ * the shipped skills are registered before it returns its promise.
21
+ */
22
+ export declare function registerSkillPrompts(server: McpServer, userId: string, reservedNames: ReadonlySet<string>): Promise<void>;
23
+ //# sourceMappingURL=mcp-skill-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-skill-prompts.d.ts","sourceRoot":"","sources":["../src/mcp-skill-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAwCjD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Every skill the session's user can load, published as an MCP prompt.
3
+ *
4
+ * MCP has no system prompt, so the skill catalog the chat turn carries never
5
+ * reaches an MCP client, and a skill was only discoverable by writing an
6
+ * `execute_code` action that imports `list_skills`. A prompt is the MCP shape
7
+ * for "saved instructions the user picks": clients list them, and Claude Code
8
+ * offers each one as a slash command.
9
+ *
10
+ * Shipped skills are registered synchronously, so they are there before the
11
+ * client's first `prompts/list`. The user's own rows need the database, so they
12
+ * arrive a moment later and the SDK announces them with `list_changed`. A body
13
+ * is read when the prompt is requested, never cached, so an edited skill is
14
+ * served as it is now. Resolution matches `load_skill`: the user's row first,
15
+ * then the shipped skill.
16
+ */
17
+ import { z } from "zod";
18
+ import { findSystemSkill, loadSystemSkills } from "@nodetool-ai/agents";
19
+ import { Skill } from "@nodetool-ai/models";
20
+ import { createLogger } from "@nodetool-ai/config";
21
+ const log = createLogger("nodetool.websocket.mcp-skill-prompts");
22
+ const argsSchema = {
23
+ request: z
24
+ .string()
25
+ .optional()
26
+ .describe("What to do with this skill. Optional.")
27
+ };
28
+ async function resolveSkill(userId, name) {
29
+ const row = await Skill.findByName(userId, name);
30
+ if (row)
31
+ return { name: row.name, content: row.content };
32
+ const shipped = findSystemSkill(name);
33
+ return shipped ? { name: shipped.name, content: shipped.content } : null;
34
+ }
35
+ function skillPromptText(name, content, request) {
36
+ const lines = [
37
+ `Follow the NodeTool skill "${name}" below. Act through the NodeTool MCP tools.`
38
+ ];
39
+ const task = request?.trim();
40
+ if (task)
41
+ lines.push("", `Request: ${task}`);
42
+ lines.push("", content.trim());
43
+ return lines.join("\n");
44
+ }
45
+ /**
46
+ * Register one prompt per skill. Returns when the user's rows are registered;
47
+ * the shipped skills are registered before it returns its promise.
48
+ */
49
+ export function registerSkillPrompts(server, userId, reservedNames) {
50
+ const registered = new Map();
51
+ const register = (name, description) => {
52
+ if (reservedNames.has(name) || registered.has(name))
53
+ return;
54
+ const prompt = server.registerPrompt(name, { description, argsSchema }, async ({ request }) => {
55
+ const skill = await resolveSkill(userId, name);
56
+ if (!skill)
57
+ throw new Error(`No skill named "${name}".`);
58
+ return {
59
+ messages: [
60
+ {
61
+ role: "user",
62
+ content: {
63
+ type: "text",
64
+ text: skillPromptText(skill.name, skill.content, request)
65
+ }
66
+ }
67
+ ]
68
+ };
69
+ });
70
+ registered.set(name, prompt);
71
+ };
72
+ for (const skill of loadSystemSkills()) {
73
+ register(skill.name, skill.description);
74
+ }
75
+ return Skill.listByUser(userId).then((rows) => {
76
+ for (const row of rows) {
77
+ // A user row that holds a shipped name wins, as in `list_skills`.
78
+ const shadowed = registered.get(row.name);
79
+ if (shadowed)
80
+ shadowed.update({ description: row.description });
81
+ else
82
+ register(row.name, row.description);
83
+ }
84
+ }, (error) => {
85
+ log.warn("Could not list the user's skills for MCP prompts", {
86
+ userId,
87
+ error: error instanceof Error ? error.message : String(error)
88
+ });
89
+ });
90
+ }
91
+ //# sourceMappingURL=mcp-skill-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-skill-prompts.js","sourceRoot":"","sources":["../src/mcp-skill-prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tool-deps.d.ts","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAiBvB,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,cAAmB,GAC3B,sBAAsB,CAiBxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,cAAmB,GAC3B,IAAI,CACL,qBAAqB,EACnB,UAAU,GACV,WAAW,GACX,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,oBAAoB,CACvB,CAoBA"}
1
+ {"version":3,"file":"mcp-tool-deps.d.ts","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAiBvB,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,cAAmB,GAC3B,sBAAsB,CAwBxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,cAAmB,GAC3B,IAAI,CACL,qBAAqB,EACnB,UAAU,GACV,WAAW,GACX,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,oBAAoB,CACvB,CAoBA"}
@@ -35,7 +35,14 @@ export function createExampleWorkflowCatalog(options = {}) {
35
35
  : all;
36
36
  return limit === undefined ? filtered : filtered.slice(0, limit);
37
37
  },
38
- get: async (packageName, exampleName) => loadExampleGraph(packageName || defaultExamplePackageName(options) || "nodetool-base", exampleName, options) ?? null
38
+ // The name is agent input, and `loadExampleGraph` joins it onto the
39
+ // examples directory as a path, so a separator would let `../` read any
40
+ // JSON file this process can reach. No shipped example is named that way.
41
+ get: async (packageName, exampleName) => {
42
+ if (/[\\/]/.test(exampleName))
43
+ return null;
44
+ return (loadExampleGraph(packageName || defaultExamplePackageName(options) || "nodetool-base", exampleName, options) ?? null);
45
+ }
39
46
  };
40
47
  }
41
48
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tool-deps.js","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tool-deps.js","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"models-api.d.ts","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAkCnB;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,YAAY,EAAE,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,qBAAqC,GAC9C,YAAY,EAAE,CA+BhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,qBAAqC,GAC9C,MAAM,EAAE,CAeV;AAMD,uFAAuF;AACvF,UAAU,cAAc;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,GAAG,EAAE,oBAAoB,EACzB,SAAS,GAAE,MAEY,EACvB,MAAM,GAAE,MAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAoGf"}
1
+ {"version":3,"file":"models-api.d.ts","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAkCnB;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,YAAY,EAAE,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,qBAAqC,GAC9C,YAAY,EAAE,CA+BhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,qBAAqC,GAC9C,MAAM,EAAE,CAeV;AAMD,uFAAuF;AACvF,UAAU,cAAc;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,GAAG,EAAE,oBAAoB,EACzB,SAAS,GAAE,MAEY,EACvB,MAAM,GAAE,MAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAwGf"}
@@ -1,6 +1,6 @@
1
1
  import { getSecret as getStoredSecret } from "@nodetool-ai/models";
2
2
  import { listRegisteredProviderIds, PythonProvider, registerProvider } from "@nodetool-ai/runtime";
3
- import { resolveWorkerHfToken } from "@nodetool-ai/huggingface";
3
+ import { ALWAYS_IGNORE_PATTERNS, resolveWorkerHfToken } from "@nodetool-ai/huggingface";
4
4
  import { modelRankings, rankedForTask } from "@nodetool-ai/model-pricing";
5
5
  /**
6
6
  * Register Python-only providers (HuggingFace Local, MLX) discovered
@@ -207,7 +207,11 @@ export async function relayWorkerDownload(socket, bridge, workerManager, msg, re
207
207
  repo_id: repoId,
208
208
  path: msg.path ?? null,
209
209
  allow_patterns: msg.allow_patterns ?? null,
210
- ignore_patterns: msg.ignore_patterns ?? null,
210
+ // A whole-repo worker download skips the framework exports a
211
+ // server-side download skips, so both fetch the same files.
212
+ ignore_patterns: msg.path
213
+ ? (msg.ignore_patterns ?? null)
214
+ : [...(msg.ignore_patterns ?? []), ...ALWAYS_IGNORE_PATTERNS],
211
215
  model_type: msg.model_type ?? null,
212
216
  token
213
217
  }, onProgress, requestId);
@@ -1 +1 @@
1
- {"version":3,"file":"models-api.js","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models-api.js","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-api.d.ts","sourceRoot":"","sources":["../src/oauth-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmEH,wBAAgB,gBAAgB;;;EAM/B;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,6BAAoC,CAAC;AAoxBjE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB;YAEnB,MAAM;kBAAgB,MAAM;eAAa,MAAM;EACxD,CAAC;AAWJ;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAwBA;AAgBD,0EAA0E;AAC1E,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpE;AA4QD,kEAAkE;AAClE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM5D;AAgPD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,MAAM,GACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAyD1B"}
1
+ {"version":3,"file":"oauth-api.d.ts","sourceRoot":"","sources":["../src/oauth-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoEH,wBAAgB,gBAAgB;;;EAM/B;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,6BAAoC,CAAC;AAoxBjE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB;YAEnB,MAAM;kBAAgB,MAAM;eAAa,MAAM;EACxD,CAAC;AAWJ;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAwBA;AAgBD,0EAA0E;AAC1E,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpE;AA2RD,kEAAkE;AAClE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM5D;AAkQD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,MAAM,GACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAyD1B"}
package/dist/oauth-api.js CHANGED
@@ -10,6 +10,7 @@ import { createLogger, isAuthEnforced, isGoogleWorkspaceEnabled } from "@nodetoo
10
10
  import { OAuthCredential, storeGoogleCredential, deleteGoogleCredentials, GOOGLE_CREDENTIAL_PROVIDER } from "@nodetool-ai/models";
11
11
  import { OAuthClient, LocalCallbackServer, ClaudeCodeLogin, extractChatGptAccountId, CODEX_OAUTH_CLIENT_ID, CODEX_CALLBACK_PORT, CODEX_CALLBACK_PATH, DEFAULT_CODEX_OAUTH_CONFIG } from "@nodetool-ai/runtime/oauth";
12
12
  import { clearProviderCache } from "@nodetool-ai/runtime";
13
+ import { isAdmin } from "./lib/admin.js";
13
14
  import { isFiniteNumber, isNonEmptyString, isString } from "./lib/wire-values.js";
14
15
  const logger = createLogger("nodetool.websocket.oauth");
15
16
  // ── Constants ────────────────────────────────────────────────────────
@@ -941,6 +942,15 @@ async function handleOpenAIDisconnect(request, getUserId) {
941
942
  // shared server (`isAuthEnforced()`) or when asked with `?manual=true`.
942
943
  //
943
944
  // The UI reflects success by polling `/api/oauth/claude/tokens`.
945
+ // The login is process-wide: every user's Claude Agent SDK traffic runs on it.
946
+ // So only an admin may start, finish or remove it, or read its plan details.
947
+ // Other users see only whether the server is connected.
948
+ /** Answers 403 unless the caller is an admin. */
949
+ async function refuseUnlessAdmin(getUserId) {
950
+ if (await isAdmin(getUserId()))
951
+ return null;
952
+ return errorResponse(403, "Only an admin can change this server's Claude login.");
953
+ }
944
954
  /** The single in-flight login, so a re-click supersedes a stale listener. */
945
955
  let activeClaudeLogin = null;
946
956
  /** Abort and tear down any in-flight Claude login. Idempotent. */
@@ -952,9 +962,12 @@ export async function closeActiveClaudeLogin() {
952
962
  active.abort.abort();
953
963
  await active.pending.cancel().catch(() => { });
954
964
  }
955
- async function handleClaudeStart(request) {
965
+ async function handleClaudeStart(request, getUserId) {
956
966
  if (request.method !== "GET")
957
967
  return errorResponse(405, "Method not allowed");
968
+ const refused = await refuseUnlessAdmin(getUserId);
969
+ if (refused)
970
+ return refused;
958
971
  const url = new URL(request.url);
959
972
  const loginMethod = url.searchParams.get("login_method") === "console" ? "console" : "claude-ai";
960
973
  // A shared server's users browse from their own machines, where the loopback
@@ -997,9 +1010,12 @@ async function handleClaudeStart(request) {
997
1010
  });
998
1011
  }
999
1012
  /** Complete a started login from the `code#state` the console displayed. */
1000
- async function handleClaudeComplete(request) {
1013
+ async function handleClaudeComplete(request, getUserId) {
1001
1014
  if (request.method !== "POST")
1002
1015
  return errorResponse(405, "Method not allowed");
1016
+ const refused = await refuseUnlessAdmin(getUserId);
1017
+ if (refused)
1018
+ return refused;
1003
1019
  const active = activeClaudeLogin;
1004
1020
  if (!active) {
1005
1021
  return errorResponse(400, "No Claude login in progress. Start one and try again.");
@@ -1032,29 +1048,35 @@ async function handleClaudeComplete(request) {
1032
1048
  * Connection status, shaped like the other providers' `tokens` responses so the
1033
1049
  * shared `useOAuthConnection` hook works unchanged. There is at most one login.
1034
1050
  */
1035
- async function handleClaudeTokens() {
1051
+ async function handleClaudeTokens(getUserId) {
1036
1052
  const status = await new ClaudeCodeLogin().status();
1053
+ if (!status.connected)
1054
+ return jsonResponse({ tokens: [] });
1055
+ const token = {
1056
+ provider: "claude",
1057
+ scope: status.scopes.join(" "),
1058
+ expires_at: status.expiresAt != null ? new Date(status.expiresAt).toISOString() : null,
1059
+ expired: status.expired
1060
+ };
1061
+ if (!(await isAdmin(getUserId())))
1062
+ return jsonResponse({ tokens: [token] });
1037
1063
  return jsonResponse({
1038
- tokens: status.connected
1039
- ? [
1040
- {
1041
- provider: "claude",
1042
- scope: status.scopes.join(" "),
1043
- expires_at: status.expiresAt != null
1044
- ? new Date(status.expiresAt).toISOString()
1045
- : null,
1046
- expired: status.expired,
1047
- subscription_type: status.subscriptionType,
1048
- rate_limit_tier: status.rateLimitTier,
1049
- credentials_path: status.credentialsPath
1050
- }
1051
- ]
1052
- : []
1064
+ tokens: [
1065
+ {
1066
+ ...token,
1067
+ subscription_type: status.subscriptionType,
1068
+ rate_limit_tier: status.rateLimitTier,
1069
+ credentials_path: status.credentialsPath
1070
+ }
1071
+ ]
1053
1072
  });
1054
1073
  }
1055
- async function handleClaudeDisconnect(request) {
1074
+ async function handleClaudeDisconnect(request, getUserId) {
1056
1075
  if (request.method !== "POST")
1057
1076
  return errorResponse(405, "Method not allowed");
1077
+ const refused = await refuseUnlessAdmin(getUserId);
1078
+ if (refused)
1079
+ return refused;
1058
1080
  await closeActiveClaudeLogin();
1059
1081
  const removed = await new ClaudeCodeLogin().logout();
1060
1082
  return jsonResponse({ success: true, removed: removed ? 1 : 0 });
@@ -1179,13 +1201,13 @@ export async function handleOAuthRequest(request, pathname, getUserId) {
1179
1201
  return handleOpenAIDisconnect(request, getUserId);
1180
1202
  // Claude subscription (Claude Agent SDK credentials)
1181
1203
  case "/api/oauth/claude/start":
1182
- return handleClaudeStart(request);
1204
+ return handleClaudeStart(request, getUserId);
1183
1205
  case "/api/oauth/claude/complete":
1184
- return handleClaudeComplete(request);
1206
+ return handleClaudeComplete(request, getUserId);
1185
1207
  case "/api/oauth/claude/tokens":
1186
- return handleClaudeTokens();
1208
+ return handleClaudeTokens(getUserId);
1187
1209
  case "/api/oauth/claude/disconnect":
1188
- return handleClaudeDisconnect(request);
1210
+ return handleClaudeDisconnect(request, getUserId);
1189
1211
  // Google Workspace (token comes from the Supabase Google login)
1190
1212
  case "/api/oauth/google/session":
1191
1213
  return handleGoogleSession(request, getUserId);