@nodetool-ai/websocket 0.8.1 → 0.8.2

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 (284) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/collection-api.d.ts.map +1 -1
  3. package/dist/collection-api.js +41 -4
  4. package/dist/collection-api.js.map +1 -1
  5. package/dist/error-traces.d.ts +56 -0
  6. package/dist/error-traces.d.ts.map +1 -0
  7. package/dist/error-traces.js +179 -0
  8. package/dist/error-traces.js.map +1 -0
  9. package/dist/fake-runtime.d.ts.map +1 -1
  10. package/dist/fake-runtime.js +40 -3
  11. package/dist/fake-runtime.js.map +1 -1
  12. package/dist/generation-recovery.d.ts.map +1 -1
  13. package/dist/generation-recovery.js +26 -4
  14. package/dist/generation-recovery.js.map +1 -1
  15. package/dist/http-api.d.ts.map +1 -1
  16. package/dist/http-api.js +15 -0
  17. package/dist/http-api.js.map +1 -1
  18. package/dist/index.d.ts +0 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +0 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/interrupted-jobs.d.ts +14 -0
  23. package/dist/interrupted-jobs.d.ts.map +1 -0
  24. package/dist/interrupted-jobs.js +28 -0
  25. package/dist/interrupted-jobs.js.map +1 -0
  26. package/dist/lib/app-debug-service.js +1 -1
  27. package/dist/lib/app-debug-service.js.map +1 -1
  28. package/dist/lib/app-instances-service.d.ts +1284 -0
  29. package/dist/lib/app-instances-service.d.ts.map +1 -0
  30. package/dist/lib/app-instances-service.js +378 -0
  31. package/dist/lib/app-instances-service.js.map +1 -0
  32. package/dist/lib/app-run-cancellation.d.ts +4 -0
  33. package/dist/lib/app-run-cancellation.d.ts.map +1 -0
  34. package/dist/lib/app-run-cancellation.js +28 -0
  35. package/dist/lib/app-run-cancellation.js.map +1 -0
  36. package/dist/lib/applications-service.d.ts +182 -1
  37. package/dist/lib/applications-service.d.ts.map +1 -1
  38. package/dist/lib/applications-service.js +20 -4
  39. package/dist/lib/applications-service.js.map +1 -1
  40. package/dist/lib/asset-paths.d.ts +7 -11
  41. package/dist/lib/asset-paths.d.ts.map +1 -1
  42. package/dist/lib/asset-paths.js +8 -56
  43. package/dist/lib/asset-paths.js.map +1 -1
  44. package/dist/lib/asset-response.d.ts.map +1 -1
  45. package/dist/lib/asset-response.js +2 -1
  46. package/dist/lib/asset-response.js.map +1 -1
  47. package/dist/lib/audio-peaks.d.ts.map +1 -1
  48. package/dist/lib/audio-peaks.js +5 -1
  49. package/dist/lib/audio-peaks.js.map +1 -1
  50. package/dist/lib/bridge.d.ts.map +1 -1
  51. package/dist/lib/bridge.js.map +1 -1
  52. package/dist/lib/document-model-interfaces.d.ts.map +1 -1
  53. package/dist/lib/document-model-interfaces.js +9 -8
  54. package/dist/lib/document-model-interfaces.js.map +1 -1
  55. package/dist/lib/example-apps.d.ts +9 -0
  56. package/dist/lib/example-apps.d.ts.map +1 -1
  57. package/dist/lib/example-apps.js +61 -14
  58. package/dist/lib/example-apps.js.map +1 -1
  59. package/dist/lib/http-tracing.d.ts +12 -0
  60. package/dist/lib/http-tracing.d.ts.map +1 -0
  61. package/dist/lib/http-tracing.js +81 -0
  62. package/dist/lib/http-tracing.js.map +1 -0
  63. package/dist/lib/media.d.ts +1 -6
  64. package/dist/lib/media.d.ts.map +1 -1
  65. package/dist/lib/media.js +8 -44
  66. package/dist/lib/media.js.map +1 -1
  67. package/dist/lib/public-routes.d.ts +7 -0
  68. package/dist/lib/public-routes.d.ts.map +1 -1
  69. package/dist/lib/public-routes.js +14 -0
  70. package/dist/lib/public-routes.js.map +1 -1
  71. package/dist/lib/public-workflow-share.d.ts +20 -0
  72. package/dist/lib/public-workflow-share.d.ts.map +1 -0
  73. package/dist/lib/public-workflow-share.js +45 -0
  74. package/dist/lib/public-workflow-share.js.map +1 -0
  75. package/dist/lib/run-trace-live-delivery.d.ts +25 -0
  76. package/dist/lib/run-trace-live-delivery.d.ts.map +1 -0
  77. package/dist/lib/run-trace-live-delivery.js +91 -0
  78. package/dist/lib/run-trace-live-delivery.js.map +1 -0
  79. package/dist/lib/test-ui-run-routes.d.ts +8 -0
  80. package/dist/lib/test-ui-run-routes.d.ts.map +1 -0
  81. package/dist/lib/test-ui-run-routes.js +42 -0
  82. package/dist/lib/test-ui-run-routes.js.map +1 -0
  83. package/dist/lib/thumbnail.d.ts.map +1 -1
  84. package/dist/lib/thumbnail.js +12 -9
  85. package/dist/lib/thumbnail.js.map +1 -1
  86. package/dist/lib/timeline-bundle.d.ts +148 -16
  87. package/dist/lib/timeline-bundle.d.ts.map +1 -1
  88. package/dist/lib/timeline-bundle.js +12 -0
  89. package/dist/lib/timeline-bundle.js.map +1 -1
  90. package/dist/lib/video-proxy.d.ts.map +1 -1
  91. package/dist/lib/video-proxy.js +3 -2
  92. package/dist/lib/video-proxy.js.map +1 -1
  93. package/dist/lib/workflow-service.d.ts.map +1 -1
  94. package/dist/lib/workflow-service.js +4 -1
  95. package/dist/lib/workflow-service.js.map +1 -1
  96. package/dist/mcp-agent-tools.d.ts.map +1 -1
  97. package/dist/mcp-agent-tools.js +93 -162
  98. package/dist/mcp-agent-tools.js.map +1 -1
  99. package/dist/mcp-client-config.d.ts +64 -0
  100. package/dist/mcp-client-config.d.ts.map +1 -0
  101. package/dist/mcp-client-config.js +353 -0
  102. package/dist/mcp-client-config.js.map +1 -0
  103. package/dist/models-api.d.ts +10 -0
  104. package/dist/models-api.d.ts.map +1 -1
  105. package/dist/models-api.js +23 -0
  106. package/dist/models-api.js.map +1 -1
  107. package/dist/node-registry-setup.d.ts +1 -1
  108. package/dist/node-registry-setup.d.ts.map +1 -1
  109. package/dist/node-registry-setup.js +21 -114
  110. package/dist/node-registry-setup.js.map +1 -1
  111. package/dist/plugins/websocket.d.ts.map +1 -1
  112. package/dist/plugins/websocket.js +20 -57
  113. package/dist/plugins/websocket.js.map +1 -1
  114. package/dist/python-bridge-gate.d.ts +28 -0
  115. package/dist/python-bridge-gate.d.ts.map +1 -0
  116. package/dist/python-bridge-gate.js +36 -0
  117. package/dist/python-bridge-gate.js.map +1 -0
  118. package/dist/routes/app-runs.d.ts +4 -0
  119. package/dist/routes/app-runs.d.ts.map +1 -0
  120. package/dist/routes/app-runs.js +173 -0
  121. package/dist/routes/app-runs.js.map +1 -0
  122. package/dist/routes/js-scripts.d.ts +9 -3
  123. package/dist/routes/js-scripts.d.ts.map +1 -1
  124. package/dist/routes/js-scripts.js +450 -68
  125. package/dist/routes/js-scripts.js.map +1 -1
  126. package/dist/routes/nodes.d.ts.map +1 -1
  127. package/dist/routes/nodes.js +32 -1
  128. package/dist/routes/nodes.js.map +1 -1
  129. package/dist/routes/public-shared-workflows.d.ts +16 -0
  130. package/dist/routes/public-shared-workflows.d.ts.map +1 -0
  131. package/dist/routes/public-shared-workflows.js +55 -0
  132. package/dist/routes/public-shared-workflows.js.map +1 -0
  133. package/dist/routes/run-spans.d.ts +4 -0
  134. package/dist/routes/run-spans.d.ts.map +1 -0
  135. package/dist/routes/run-spans.js +53 -0
  136. package/dist/routes/run-spans.js.map +1 -0
  137. package/dist/routes/timeline-fonts.d.ts +22 -0
  138. package/dist/routes/timeline-fonts.d.ts.map +1 -1
  139. package/dist/routes/timeline-fonts.js +138 -7
  140. package/dist/routes/timeline-fonts.js.map +1 -1
  141. package/dist/screenshot-server.js +4 -5
  142. package/dist/screenshot-server.js.map +1 -1
  143. package/dist/sdk/sdk-model-download-service.d.ts.map +1 -1
  144. package/dist/sdk/sdk-model-download-service.js +5 -2
  145. package/dist/sdk/sdk-model-download-service.js.map +1 -1
  146. package/dist/server.js +86 -19
  147. package/dist/server.js.map +1 -1
  148. package/dist/session/app-run-fold.d.ts +7 -0
  149. package/dist/session/app-run-fold.d.ts.map +1 -0
  150. package/dist/session/app-run-fold.js +45 -0
  151. package/dist/session/app-run-fold.js.map +1 -0
  152. package/dist/session/chat-prompt.d.ts.map +1 -1
  153. package/dist/session/chat-prompt.js +37 -15
  154. package/dist/session/chat-prompt.js.map +1 -1
  155. package/dist/session/chat-turn.d.ts +1 -0
  156. package/dist/session/chat-turn.d.ts.map +1 -1
  157. package/dist/session/chat-turn.js +203 -107
  158. package/dist/session/chat-turn.js.map +1 -1
  159. package/dist/session/commands.d.ts.map +1 -1
  160. package/dist/session/commands.js +6 -0
  161. package/dist/session/commands.js.map +1 -1
  162. package/dist/session/inference.d.ts +5 -0
  163. package/dist/session/inference.d.ts.map +1 -1
  164. package/dist/session/inference.js +80 -9
  165. package/dist/session/inference.js.map +1 -1
  166. package/dist/session/job-execution.d.ts +7 -0
  167. package/dist/session/job-execution.d.ts.map +1 -1
  168. package/dist/session/job-execution.js +297 -7
  169. package/dist/session/job-execution.js.map +1 -1
  170. package/dist/session/model-interfaces.d.ts +2 -1
  171. package/dist/session/model-interfaces.d.ts.map +1 -1
  172. package/dist/session/model-interfaces.js +1 -0
  173. package/dist/session/model-interfaces.js.map +1 -1
  174. package/dist/storage-retention.d.ts +5 -0
  175. package/dist/storage-retention.d.ts.map +1 -1
  176. package/dist/storage-retention.js +22 -1
  177. package/dist/storage-retention.js.map +1 -1
  178. package/dist/test-ui-server.d.ts.map +1 -1
  179. package/dist/test-ui-server.js +21 -3
  180. package/dist/test-ui-server.js.map +1 -1
  181. package/dist/timeline-generation-recovery.d.ts +4 -0
  182. package/dist/timeline-generation-recovery.d.ts.map +1 -0
  183. package/dist/timeline-generation-recovery.js +72 -0
  184. package/dist/timeline-generation-recovery.js.map +1 -0
  185. package/dist/triggers/dispatcher.js +2 -2
  186. package/dist/triggers/dispatcher.js.map +1 -1
  187. package/dist/triggers/stores.js +8 -8
  188. package/dist/triggers/stores.js.map +1 -1
  189. package/dist/triggers/webhook-route.js +2 -2
  190. package/dist/triggers/webhook-route.js.map +1 -1
  191. package/dist/trpc/error-logging.d.ts +10 -0
  192. package/dist/trpc/error-logging.d.ts.map +1 -1
  193. package/dist/trpc/error-logging.js +21 -0
  194. package/dist/trpc/error-logging.js.map +1 -1
  195. package/dist/trpc/router.d.ts +100 -31028
  196. package/dist/trpc/router.d.ts.map +1 -1
  197. package/dist/trpc/router.js +12 -3
  198. package/dist/trpc/router.js.map +1 -1
  199. package/dist/trpc/routers/app-instances.d.ts +2269 -0
  200. package/dist/trpc/routers/app-instances.d.ts.map +1 -0
  201. package/dist/trpc/routers/app-instances.js +52 -0
  202. package/dist/trpc/routers/app-instances.js.map +1 -0
  203. package/dist/trpc/routers/app-runs.d.ts +1092 -0
  204. package/dist/trpc/routers/app-runs.d.ts.map +1 -0
  205. package/dist/trpc/routers/app-runs.js +28 -0
  206. package/dist/trpc/routers/app-runs.js.map +1 -0
  207. package/dist/trpc/routers/applications.d.ts +1095 -0
  208. package/dist/trpc/routers/applications.d.ts.map +1 -1
  209. package/dist/trpc/routers/applications.js +5 -2
  210. package/dist/trpc/routers/applications.js.map +1 -1
  211. package/dist/trpc/routers/assets.d.ts +10 -0
  212. package/dist/trpc/routers/assets.d.ts.map +1 -1
  213. package/dist/trpc/routers/assets.js +4 -0
  214. package/dist/trpc/routers/assets.js.map +1 -1
  215. package/dist/trpc/routers/bug-reports.d.ts +33 -0
  216. package/dist/trpc/routers/bug-reports.d.ts.map +1 -0
  217. package/dist/trpc/routers/bug-reports.js +69 -0
  218. package/dist/trpc/routers/bug-reports.js.map +1 -0
  219. package/dist/trpc/routers/documents.d.ts.map +1 -1
  220. package/dist/trpc/routers/documents.js +8 -2
  221. package/dist/trpc/routers/documents.js.map +1 -1
  222. package/dist/trpc/routers/error-traces.d.ts +132 -0
  223. package/dist/trpc/routers/error-traces.d.ts.map +1 -0
  224. package/dist/trpc/routers/error-traces.js +118 -0
  225. package/dist/trpc/routers/error-traces.js.map +1 -0
  226. package/dist/trpc/routers/extension.d.ts +3 -3
  227. package/dist/trpc/routers/extension.js +6 -6
  228. package/dist/trpc/routers/extension.js.map +1 -1
  229. package/dist/trpc/routers/gameDraftHistory.d.ts +8 -0
  230. package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -0
  231. package/dist/trpc/routers/gameDraftHistory.js +40 -0
  232. package/dist/trpc/routers/gameDraftHistory.js.map +1 -0
  233. package/dist/trpc/routers/games.d.ts +23691 -4799
  234. package/dist/trpc/routers/games.d.ts.map +1 -1
  235. package/dist/trpc/routers/games.js +301 -83
  236. package/dist/trpc/routers/games.js.map +1 -1
  237. package/dist/trpc/routers/jobs.d.ts +35 -0
  238. package/dist/trpc/routers/jobs.d.ts.map +1 -1
  239. package/dist/trpc/routers/jobs.js +84 -1
  240. package/dist/trpc/routers/jobs.js.map +1 -1
  241. package/dist/trpc/routers/mcp-config.d.ts +3 -1
  242. package/dist/trpc/routers/mcp-config.d.ts.map +1 -1
  243. package/dist/trpc/routers/mcp-config.js +46 -208
  244. package/dist/trpc/routers/mcp-config.js.map +1 -1
  245. package/dist/trpc/routers/models.d.ts +130 -0
  246. package/dist/trpc/routers/models.d.ts.map +1 -1
  247. package/dist/trpc/routers/models.js +99 -31
  248. package/dist/trpc/routers/models.js.map +1 -1
  249. package/dist/trpc/routers/runs.d.ts +472 -0
  250. package/dist/trpc/routers/runs.d.ts.map +1 -0
  251. package/dist/trpc/routers/runs.js +40 -0
  252. package/dist/trpc/routers/runs.js.map +1 -0
  253. package/dist/trpc/routers/settings.d.ts +3 -0
  254. package/dist/trpc/routers/settings.d.ts.map +1 -1
  255. package/dist/trpc/routers/settings.js +2 -0
  256. package/dist/trpc/routers/settings.js.map +1 -1
  257. package/dist/trpc/routers/sketch.d.ts +14 -0
  258. package/dist/trpc/routers/sketch.d.ts.map +1 -1
  259. package/dist/trpc/routers/storyboards.d.ts +732 -0
  260. package/dist/trpc/routers/storyboards.d.ts.map +1 -1
  261. package/dist/trpc/routers/timeline.d.ts +632 -63
  262. package/dist/trpc/routers/timeline.d.ts.map +1 -1
  263. package/dist/trpc/routers/timeline.js +178 -2
  264. package/dist/trpc/routers/timeline.js.map +1 -1
  265. package/dist/trpc/routers/worker.d.ts +10 -9
  266. package/dist/trpc/routers/worker.d.ts.map +1 -1
  267. package/dist/trpc/routers/worker.js +3 -2
  268. package/dist/trpc/routers/worker.js.map +1 -1
  269. package/dist/trpc/routers/workflows.d.ts +56 -3
  270. package/dist/trpc/routers/workflows.d.ts.map +1 -1
  271. package/dist/trpc/routers/workflows.js +23 -2
  272. package/dist/trpc/routers/workflows.js.map +1 -1
  273. package/dist/trpc/sandbox-coverage.d.ts.map +1 -1
  274. package/dist/trpc/sandbox-coverage.js +90 -0
  275. package/dist/trpc/sandbox-coverage.js.map +1 -1
  276. package/dist/websocket-client-session.d.ts +2 -0
  277. package/dist/websocket-client-session.d.ts.map +1 -1
  278. package/dist/websocket-client-session.js +14 -0
  279. package/dist/websocket-client-session.js.map +1 -1
  280. package/package.json +56 -41
  281. package/dist/extension-cdp-bridge.d.ts +0 -85
  282. package/dist/extension-cdp-bridge.d.ts.map +0 -1
  283. package/dist/extension-cdp-bridge.js +0 -163
  284. package/dist/extension-cdp-bridge.js.map +0 -1
@@ -10,233 +10,71 @@
10
10
  * consistent for clients; the production guard is applied inside each
11
11
  * procedure.
12
12
  */
13
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
14
- import { join } from "node:path";
15
13
  import { homedir } from "node:os";
16
14
  import { ApiErrorCode } from "../../error-codes.js";
17
15
  import { router } from "../index.js";
18
16
  import { protectedProcedure } from "../middleware.js";
19
17
  import { throwApiError } from "../error-formatter.js";
20
- import { mcpTarget, statusOutput, installInput, installOutput, uninstallInput, uninstallOutput } from "@nodetool-ai/protocol/api-schemas/mcp-config.js";
21
- const ALL_TARGETS = ["claude", "codex", "opencode"];
22
- const TARGET_LABELS = {
23
- claude: "Claude Code",
24
- codex: "Codex",
25
- opencode: "OpenCode"
26
- };
27
- const NODETOOL_MCP_BEGIN = "# BEGIN NODETOOL MCP";
28
- const NODETOOL_MCP_END = "# END NODETOOL MCP";
18
+ import { getLocalMcpServerUrl } from "../../mcp-server.js";
19
+ import { MCP_CLIENT_IDS, MCP_CLIENT_LABELS, describeLaunch, hasNodetoolCli, mcpClientConfigPath, readMcpClientEntry, removeMcpClientEntry, stdioLaunch, writeMcpClientEntry } from "../../mcp-client-config.js";
20
+ import { statusOutput, installInput, installOutput, uninstallInput, uninstallOutput } from "@nodetool-ai/protocol/api-schemas/mcp-config.js";
29
21
  /** Guard: MCP config is disabled in production. */
30
22
  function requireNonProduction() {
31
23
  if (process.env["NODETOOL_ENV"] === "production") {
32
24
  throwApiError(ApiErrorCode.SERVICE_UNAVAILABLE, "MCP configuration is not available in production");
33
25
  }
34
26
  }
35
- function defaultMcpUrl() {
36
- const port = Number(process.env["PORT"] ?? 7777);
37
- const tlsEnabled = Boolean(process.env["TLS_CERT"] && process.env["TLS_KEY"]);
38
- return `${tlsEnabled ? "https" : "http"}://127.0.0.1:${port}/mcp`;
27
+ /**
28
+ * A stdio entry works whether or not this server runs, so it wins when the
29
+ * `nodetool` CLI is installed. Without the CLI, the client reaches this
30
+ * server over HTTP, which works while the server runs.
31
+ */
32
+ function defaultLaunch(url) {
33
+ if (url)
34
+ return { transport: "http", url };
35
+ if (hasNodetoolCli())
36
+ return stdioLaunch({ npx: false });
37
+ return { transport: "http", url: getLocalMcpServerUrl() };
39
38
  }
40
39
  function getStatus(target) {
41
40
  const home = homedir();
42
41
  const base = {
43
42
  target,
44
- label: TARGET_LABELS[target],
43
+ label: MCP_CLIENT_LABELS[target],
45
44
  installed: false,
46
45
  url: null,
47
- configPath: null
46
+ command: null,
47
+ configPath: mcpClientConfigPath(target, home)
48
48
  };
49
- switch (target) {
50
- case "claude": {
51
- const p = join(home, ".claude.json");
52
- base.configPath = p;
53
- if (existsSync(p)) {
54
- try {
55
- const config = JSON.parse(readFileSync(p, "utf8"));
56
- const srv = config?.projects?.[home]?.mcpServers?.nodetool;
57
- if (srv) {
58
- base.installed = true;
59
- base.url = srv.url ?? null;
60
- }
61
- }
62
- catch {
63
- /* ignore parse errors */
64
- }
65
- }
66
- break;
67
- }
68
- case "codex": {
69
- const p = join(home, ".codex", "config.toml");
70
- base.configPath = p;
71
- if (existsSync(p)) {
72
- try {
73
- const content = readFileSync(p, "utf8");
74
- const m = /# BEGIN NODETOOL MCP[\s\S]*?url\s*=\s*"([^"]*)"/.exec(content);
75
- if (m) {
76
- base.installed = true;
77
- base.url = m[1] ?? null;
78
- }
79
- }
80
- catch {
81
- /* ignore */
82
- }
83
- }
84
- break;
85
- }
86
- case "opencode": {
87
- const p = join(home, ".config", "opencode", "opencode.json");
88
- base.configPath = p;
89
- if (existsSync(p)) {
90
- try {
91
- const config = JSON.parse(readFileSync(p, "utf8"));
92
- if (config?.mcp?.nodetool) {
93
- base.installed = true;
94
- base.url = config.mcp.nodetool.url ?? null;
95
- }
96
- }
97
- catch {
98
- /* ignore */
99
- }
100
- }
101
- break;
102
- }
103
- }
104
- return base;
105
- }
106
- function installTarget(target, mcpUrl) {
107
- const home = homedir();
108
- switch (target) {
109
- case "claude": {
110
- const p = join(home, ".claude.json");
111
- let config = {};
112
- if (existsSync(p)) {
113
- config = JSON.parse(readFileSync(p, "utf8"));
114
- }
115
- const projects = (config["projects"] ?? {});
116
- const global = projects[home] ?? {};
117
- const servers = (global["mcpServers"] ?? {});
118
- servers["nodetool"] = { type: "http", url: mcpUrl };
119
- global["mcpServers"] = servers;
120
- projects[home] = global;
121
- config["projects"] = projects;
122
- writeFileSync(p, JSON.stringify(config, null, 2) + "\n");
123
- return p;
124
- }
125
- case "codex": {
126
- const dir = join(home, ".codex");
127
- const p = join(dir, "config.toml");
128
- mkdirSync(dir, { recursive: true });
129
- const block = [
130
- NODETOOL_MCP_BEGIN,
131
- "[mcp_servers.nodetool]",
132
- // TOML-escape the url. Interpolating it raw let a value with a quote or
133
- // newline terminate the string early and inject arbitrary TOML tables
134
- // (e.g. an extra [mcp_servers.evil] with a command). JSON string
135
- // escaping is a valid TOML basic string.
136
- `url = ${JSON.stringify(mcpUrl)}`,
137
- "startup_timeout_sec = 20",
138
- "tool_timeout_sec = 60",
139
- "enabled = true",
140
- "required = true",
141
- NODETOOL_MCP_END
142
- ].join("\n");
143
- let content = "";
144
- if (existsSync(p)) {
145
- content = readFileSync(p, "utf8");
146
- const re = new RegExp(`${NODETOOL_MCP_BEGIN}[\\s\\S]*?${NODETOOL_MCP_END}\\n?`);
147
- content = re.test(content)
148
- ? content.replace(re, block + "\n")
149
- : content.trimEnd() + "\n\n" + block + "\n";
150
- }
151
- else {
152
- content = block + "\n";
153
- }
154
- writeFileSync(p, content);
155
- return p;
156
- }
157
- case "opencode": {
158
- const dir = join(home, ".config", "opencode");
159
- const p = join(dir, "opencode.json");
160
- mkdirSync(dir, { recursive: true });
161
- let config = {};
162
- if (existsSync(p)) {
163
- config = JSON.parse(readFileSync(p, "utf8"));
164
- }
165
- const mcp = (config["mcp"] ?? {});
166
- mcp["nodetool"] = { type: "remote", url: mcpUrl };
167
- config["mcp"] = mcp;
168
- writeFileSync(p, JSON.stringify(config, null, 2) + "\n");
169
- return p;
170
- }
49
+ let launch = null;
50
+ try {
51
+ launch = readMcpClientEntry(target, home);
171
52
  }
172
- }
173
- function uninstallTarget(target) {
174
- const home = homedir();
175
- switch (target) {
176
- case "claude": {
177
- const p = join(home, ".claude.json");
178
- if (!existsSync(p))
179
- return false;
180
- try {
181
- const config = JSON.parse(readFileSync(p, "utf8"));
182
- const servers = config?.projects?.[home]?.mcpServers;
183
- if (!servers || !("nodetool" in servers))
184
- return false;
185
- delete servers["nodetool"];
186
- writeFileSync(p, JSON.stringify(config, null, 2) + "\n");
187
- return true;
188
- }
189
- catch {
190
- return false;
191
- }
192
- }
193
- case "codex": {
194
- const p = join(home, ".codex", "config.toml");
195
- if (!existsSync(p))
196
- return false;
197
- try {
198
- let content = readFileSync(p, "utf8");
199
- const re = /# BEGIN NODETOOL MCP[\s\S]*?# END NODETOOL MCP\n?/;
200
- if (!re.test(content))
201
- return false;
202
- content = content.replace(re, "").trimEnd() + "\n";
203
- writeFileSync(p, content);
204
- return true;
205
- }
206
- catch {
207
- return false;
208
- }
209
- }
210
- case "opencode": {
211
- const p = join(home, ".config", "opencode", "opencode.json");
212
- if (!existsSync(p))
213
- return false;
214
- try {
215
- const config = JSON.parse(readFileSync(p, "utf8"));
216
- if (!config?.mcp?.nodetool)
217
- return false;
218
- delete config.mcp.nodetool;
219
- writeFileSync(p, JSON.stringify(config, null, 2) + "\n");
220
- return true;
221
- }
222
- catch {
223
- return false;
224
- }
225
- }
53
+ catch {
54
+ // An unreadable config reads as "not installed". Install reports the error.
226
55
  }
56
+ if (!launch)
57
+ return base;
58
+ return {
59
+ ...base,
60
+ installed: true,
61
+ url: launch.transport === "http" ? launch.url : null,
62
+ command: launch.transport === "stdio" ? describeLaunch(launch) : null
63
+ };
227
64
  }
228
- /** Filter an unknown input.targets array down to the valid McpTarget enum. */
65
+ /** Empty or missing `targets` means every client. */
229
66
  function resolveTargets(raw) {
230
- if (!raw || raw.length === 0)
231
- return ALL_TARGETS;
232
- // Zod already validated against the enum, but keep the guard for clarity.
233
- return raw.filter((t) => mcpTarget.safeParse(t).success);
67
+ return raw && raw.length > 0 ? [...raw] : [...MCP_CLIENT_IDS];
234
68
  }
235
69
  export const mcpConfigRouter = router({
236
70
  status: protectedProcedure.output(statusOutput).query(() => {
237
71
  requireNonProduction();
238
- const statuses = ALL_TARGETS.map(getStatus);
239
- return { targets: statuses, defaultUrl: defaultMcpUrl() };
72
+ const launch = defaultLaunch(undefined);
73
+ return {
74
+ targets: MCP_CLIENT_IDS.map(getStatus),
75
+ defaultUrl: getLocalMcpServerUrl(),
76
+ defaultLaunch: describeLaunch(launch)
77
+ };
240
78
  }),
241
79
  install: protectedProcedure
242
80
  .input(installInput)
@@ -244,13 +82,13 @@ export const mcpConfigRouter = router({
244
82
  .mutation(({ input }) => {
245
83
  requireNonProduction();
246
84
  const targets = resolveTargets(input.targets);
247
- const mcpUrl = input.url ?? defaultMcpUrl();
85
+ const launch = defaultLaunch(input.url);
248
86
  const results = targets.map((t) => {
249
87
  try {
250
- const configPath = installTarget(t, mcpUrl);
88
+ const configPath = writeMcpClientEntry(t, launch, homedir());
251
89
  return {
252
90
  target: t,
253
- label: TARGET_LABELS[t],
91
+ label: MCP_CLIENT_LABELS[t],
254
92
  success: true,
255
93
  configPath
256
94
  };
@@ -258,13 +96,13 @@ export const mcpConfigRouter = router({
258
96
  catch (e) {
259
97
  return {
260
98
  target: t,
261
- label: TARGET_LABELS[t],
99
+ label: MCP_CLIENT_LABELS[t],
262
100
  success: false,
263
101
  error: String(e)
264
102
  };
265
103
  }
266
104
  });
267
- return { results, url: mcpUrl };
105
+ return { results, launch: describeLaunch(launch) };
268
106
  }),
269
107
  uninstall: protectedProcedure
270
108
  .input(uninstallInput)
@@ -274,13 +112,13 @@ export const mcpConfigRouter = router({
274
112
  const targets = resolveTargets(input.targets);
275
113
  const results = targets.map((t) => {
276
114
  try {
277
- const removed = uninstallTarget(t);
278
- return { target: t, label: TARGET_LABELS[t], removed };
115
+ const removed = removeMcpClientEntry(t, homedir());
116
+ return { target: t, label: MCP_CLIENT_LABELS[t], removed };
279
117
  }
280
118
  catch (e) {
281
119
  return {
282
120
  target: t,
283
- label: TARGET_LABELS[t],
121
+ label: MCP_CLIENT_LABELS[t],
284
122
  removed: false,
285
123
  error: String(e)
286
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/trpc/routers/mcp-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/trpc/routers/mcp-config.ts"],"names":[],"mappings":"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"}