@eir-labs/coltrane 0.4.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 (279) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +85 -0
  3. package/agents/anticipation-mapper.json +34 -0
  4. package/agents/claim-amender.json +34 -0
  5. package/agents/claim-architect.json +34 -0
  6. package/agents/claim-rewriter.json +32 -0
  7. package/agents/delivery-finalizer.json +40 -0
  8. package/agents/diamond-cutter.json +33 -0
  9. package/agents/disclosure-analyst.json +26 -0
  10. package/agents/domain-explorer.json +37 -0
  11. package/agents/e2e-runner.json +34 -0
  12. package/agents/e2e-suite-judge.json +26 -0
  13. package/agents/event-clusterer.json +29 -0
  14. package/agents/novelty-searcher.json +40 -0
  15. package/agents/patent-browser-scout.json +49 -0
  16. package/agents/patent-examiner.json +36 -0
  17. package/agents/phase_agents/claim-rewriter.md +44 -0
  18. package/agents/phase_agents/delivery-finalizer.md +30 -0
  19. package/agents/phase_agents/diamond-cutter.md +47 -0
  20. package/agents/phase_agents/domain-explorer.md +27 -0
  21. package/agents/phase_agents/novelty-searcher.md +50 -0
  22. package/agents/phase_agents/problem-definer.md +32 -0
  23. package/agents/phase_agents/solution-developer.md +26 -0
  24. package/agents/phase_agents/verdict-judger.md +70 -0
  25. package/agents/players/audience-modeler.md +40 -0
  26. package/agents/players/chain-audit-keeper.md +41 -0
  27. package/agents/players/illumination-reviewer.md +42 -0
  28. package/agents/players/methodology-cadence-keeper.md +42 -0
  29. package/agents/players/substrate-edge-keeper.md +45 -0
  30. package/agents/prior-art-scout.json +45 -0
  31. package/agents/problem-definer.json +35 -0
  32. package/agents/seeds/steve_seed_a.json +12 -0
  33. package/agents/seeds/steve_seed_b.json +12 -0
  34. package/agents/seeds/steve_seed_c.json +12 -0
  35. package/agents/seeds/steve_seed_d.json +12 -0
  36. package/agents/sensor.json +22 -0
  37. package/agents/solution-developer.json +35 -0
  38. package/agents/source-walker.json +38 -0
  39. package/agents/spec-drafter.json +31 -0
  40. package/agents/sub_thread_soft_judge.json +26 -0
  41. package/agents/sub_thread_trace_sensor.json +22 -0
  42. package/agents/summarizer.json +25 -0
  43. package/agents/synthesis-writer.json +29 -0
  44. package/agents/triage-judge.json +39 -0
  45. package/agents/user_flow_judge.json +26 -0
  46. package/agents/user_flow_sensor.json +22 -0
  47. package/agents/verdict-judger.json +39 -0
  48. package/core_types/artifact.json +17 -0
  49. package/core_types/interpretation.json +16 -0
  50. package/core_types/judgment.json +16 -0
  51. package/core_types/plan.json +16 -0
  52. package/core_types/signal.json +16 -0
  53. package/core_types/verdict.json +27 -0
  54. package/dist/src/access_grant.d.ts +46 -0
  55. package/dist/src/access_grant.js +76 -0
  56. package/dist/src/access_grant.js.map +1 -0
  57. package/dist/src/acoustics.d.ts +9 -0
  58. package/dist/src/acoustics.js +65 -0
  59. package/dist/src/acoustics.js.map +1 -0
  60. package/dist/src/agent_profile.d.ts +36 -0
  61. package/dist/src/agent_profile.js +57 -0
  62. package/dist/src/agent_profile.js.map +1 -0
  63. package/dist/src/bifrost_invoker.d.ts +33 -0
  64. package/dist/src/bifrost_invoker.js +85 -0
  65. package/dist/src/bifrost_invoker.js.map +1 -0
  66. package/dist/src/canonical_core_types.d.ts +2 -0
  67. package/dist/src/canonical_core_types.js +111 -0
  68. package/dist/src/canonical_core_types.js.map +1 -0
  69. package/dist/src/canonical_form.d.ts +55 -0
  70. package/dist/src/canonical_form.js +93 -0
  71. package/dist/src/canonical_form.js.map +1 -0
  72. package/dist/src/charter.d.ts +37 -0
  73. package/dist/src/charter.js +86 -0
  74. package/dist/src/charter.js.map +1 -0
  75. package/dist/src/circle_of_fifths.d.ts +27 -0
  76. package/dist/src/circle_of_fifths.js +78 -0
  77. package/dist/src/circle_of_fifths.js.map +1 -0
  78. package/dist/src/claude_invoker.d.ts +102 -0
  79. package/dist/src/claude_invoker.js +760 -0
  80. package/dist/src/claude_invoker.js.map +1 -0
  81. package/dist/src/coltrane_profile.d.ts +87 -0
  82. package/dist/src/coltrane_profile.js +132 -0
  83. package/dist/src/coltrane_profile.js.map +1 -0
  84. package/dist/src/composition.d.ts +57 -0
  85. package/dist/src/composition.js +447 -0
  86. package/dist/src/composition.js.map +1 -0
  87. package/dist/src/core_types.d.ts +6 -0
  88. package/dist/src/core_types.js +25 -0
  89. package/dist/src/core_types.js.map +1 -0
  90. package/dist/src/document_factory.d.ts +89 -0
  91. package/dist/src/document_factory.js +176 -0
  92. package/dist/src/document_factory.js.map +1 -0
  93. package/dist/src/genome_schema.d.ts +512 -0
  94. package/dist/src/genome_schema.js +168 -0
  95. package/dist/src/genome_schema.js.map +1 -0
  96. package/dist/src/genome_writer.d.ts +67 -0
  97. package/dist/src/genome_writer.js +179 -0
  98. package/dist/src/genome_writer.js.map +1 -0
  99. package/dist/src/gig_song.d.ts +29 -0
  100. package/dist/src/gig_song.js +56 -0
  101. package/dist/src/gig_song.js.map +1 -0
  102. package/dist/src/gig_tracker.d.ts +54 -0
  103. package/dist/src/gig_tracker.js +109 -0
  104. package/dist/src/gig_tracker.js.map +1 -0
  105. package/dist/src/harmonic_validation.d.ts +11 -0
  106. package/dist/src/harmonic_validation.js +35 -0
  107. package/dist/src/harmonic_validation.js.map +1 -0
  108. package/dist/src/hooks.d.ts +27 -0
  109. package/dist/src/hooks.js +2 -0
  110. package/dist/src/hooks.js.map +1 -0
  111. package/dist/src/index.d.ts +36 -0
  112. package/dist/src/index.js +37 -0
  113. package/dist/src/index.js.map +1 -0
  114. package/dist/src/jsong.d.ts +47 -0
  115. package/dist/src/jsong.js +130 -0
  116. package/dist/src/jsong.js.map +1 -0
  117. package/dist/src/judges/user_flow_judge.d.ts +89 -0
  118. package/dist/src/judges/user_flow_judge.js +200 -0
  119. package/dist/src/judges/user_flow_judge.js.map +1 -0
  120. package/dist/src/learner.d.ts +37 -0
  121. package/dist/src/learner.js +30 -0
  122. package/dist/src/learner.js.map +1 -0
  123. package/dist/src/ledger.d.ts +225 -0
  124. package/dist/src/ledger.js +306 -0
  125. package/dist/src/ledger.js.map +1 -0
  126. package/dist/src/loader.d.ts +87 -0
  127. package/dist/src/loader.js +504 -0
  128. package/dist/src/loader.js.map +1 -0
  129. package/dist/src/mcp.d.ts +23 -0
  130. package/dist/src/mcp.js +125 -0
  131. package/dist/src/mcp.js.map +1 -0
  132. package/dist/src/modulation_path.d.ts +42 -0
  133. package/dist/src/modulation_path.js +60 -0
  134. package/dist/src/modulation_path.js.map +1 -0
  135. package/dist/src/output_validation.d.ts +19 -0
  136. package/dist/src/output_validation.js +51 -0
  137. package/dist/src/output_validation.js.map +1 -0
  138. package/dist/src/outputs.d.ts +125 -0
  139. package/dist/src/outputs.js +452 -0
  140. package/dist/src/outputs.js.map +1 -0
  141. package/dist/src/overtones.d.ts +42 -0
  142. package/dist/src/overtones.js +98 -0
  143. package/dist/src/overtones.js.map +1 -0
  144. package/dist/src/player_to_claude_code.d.ts +17 -0
  145. package/dist/src/player_to_claude_code.js +141 -0
  146. package/dist/src/player_to_claude_code.js.map +1 -0
  147. package/dist/src/playwright_cage.d.ts +28 -0
  148. package/dist/src/playwright_cage.js +47 -0
  149. package/dist/src/playwright_cage.js.map +1 -0
  150. package/dist/src/polyphony.d.ts +46 -0
  151. package/dist/src/polyphony.js +91 -0
  152. package/dist/src/polyphony.js.map +1 -0
  153. package/dist/src/portfolio.d.ts +52 -0
  154. package/dist/src/portfolio.js +186 -0
  155. package/dist/src/portfolio.js.map +1 -0
  156. package/dist/src/pricing.d.ts +23 -0
  157. package/dist/src/pricing.js +16 -0
  158. package/dist/src/pricing.js.map +1 -0
  159. package/dist/src/registry.d.ts +46 -0
  160. package/dist/src/registry.js +199 -0
  161. package/dist/src/registry.js.map +1 -0
  162. package/dist/src/runtime.d.ts +304 -0
  163. package/dist/src/runtime.js +1099 -0
  164. package/dist/src/runtime.js.map +1 -0
  165. package/dist/src/server.d.ts +88 -0
  166. package/dist/src/server.js +1692 -0
  167. package/dist/src/server.js.map +1 -0
  168. package/dist/src/server_entry.d.ts +2 -0
  169. package/dist/src/server_entry.js +40 -0
  170. package/dist/src/server_entry.js.map +1 -0
  171. package/dist/src/server_relay.d.ts +82 -0
  172. package/dist/src/server_relay.js +341 -0
  173. package/dist/src/server_relay.js.map +1 -0
  174. package/dist/src/simulate.d.ts +60 -0
  175. package/dist/src/simulate.js +72 -0
  176. package/dist/src/simulate.js.map +1 -0
  177. package/dist/src/skill_runner.mjs +34 -0
  178. package/dist/src/skill_subprocess.d.ts +65 -0
  179. package/dist/src/skill_subprocess.js +132 -0
  180. package/dist/src/skill_subprocess.js.map +1 -0
  181. package/dist/src/skills.d.ts +85 -0
  182. package/dist/src/skills.js +258 -0
  183. package/dist/src/skills.js.map +1 -0
  184. package/dist/src/subthread_recorder.d.ts +68 -0
  185. package/dist/src/subthread_recorder.js +166 -0
  186. package/dist/src/subthread_recorder.js.map +1 -0
  187. package/dist/src/tensor_read.d.ts +38 -0
  188. package/dist/src/tensor_read.js +60 -0
  189. package/dist/src/tensor_read.js.map +1 -0
  190. package/dist/src/test_honest_broker.d.ts +34 -0
  191. package/dist/src/test_honest_broker.js +155 -0
  192. package/dist/src/test_honest_broker.js.map +1 -0
  193. package/dist/src/test_topology.d.ts +22 -0
  194. package/dist/src/test_topology.js +137 -0
  195. package/dist/src/test_topology.js.map +1 -0
  196. package/dist/src/tones.d.ts +20 -0
  197. package/dist/src/tones.js +81 -0
  198. package/dist/src/tones.js.map +1 -0
  199. package/dist/src/tool_providers.d.ts +45 -0
  200. package/dist/src/tool_providers.js +104 -0
  201. package/dist/src/tool_providers.js.map +1 -0
  202. package/dist/src/type_versioning.d.ts +23 -0
  203. package/dist/src/type_versioning.js +31 -0
  204. package/dist/src/type_versioning.js.map +1 -0
  205. package/dist/src/version.d.ts +28 -0
  206. package/dist/src/version.js +86 -0
  207. package/dist/src/version.js.map +1 -0
  208. package/domain_types/claim-draft.json +34 -0
  209. package/domain_types/coverage-report.json +31 -0
  210. package/domain_types/draft-agent-profile.json +31 -0
  211. package/domain_types/draft-domain-type.json +28 -0
  212. package/domain_types/draft-standard.json +46 -0
  213. package/domain_types/e2e-observation.json +32 -0
  214. package/domain_types/e2e-report.json +30 -0
  215. package/domain_types/e2e-target.json +26 -0
  216. package/domain_types/e2e-verdict.json +26 -0
  217. package/domain_types/examine-round-record.json +40 -0
  218. package/domain_types/examiner-rejection.json +28 -0
  219. package/domain_types/failure-modes.json +31 -0
  220. package/domain_types/invention-analysis.json +34 -0
  221. package/domain_types/invention-spec.json +34 -0
  222. package/domain_types/novelty-analysis.json +28 -0
  223. package/domain_types/novelty-verdict.json +35 -0
  224. package/domain_types/parsed-conversation-trace.json +38 -0
  225. package/domain_types/pattern-extraction.json +62 -0
  226. package/domain_types/prior-art-hit.json +50 -0
  227. package/domain_types/project-charter.json +71 -0
  228. package/domain_types/provisional-draft.json +34 -0
  229. package/domain_types/raw-note.json +19 -0
  230. package/domain_types/repo-survey.json +28 -0
  231. package/domain_types/seeding-verdict.json +70 -0
  232. package/domain_types/soft-verdict.json +55 -0
  233. package/domain_types/summary.json +19 -0
  234. package/domain_types/triage-verdict.json +59 -0
  235. package/domain_types/user-flow-transcript.json +43 -0
  236. package/domain_types/user-flow-verdict.json +60 -0
  237. package/domain_types/verdict-record.json +39 -0
  238. package/package.json +82 -0
  239. package/skills/citation-verify/fixtures/basic.json +14 -0
  240. package/skills/citation-verify/meta.json +10 -0
  241. package/skills/citation-verify/skill.mjs +26 -0
  242. package/skills/claim-element-decompose/fixtures/basic.json +11 -0
  243. package/skills/claim-element-decompose/meta.json +10 -0
  244. package/skills/claim-element-decompose/skill.mjs +14 -0
  245. package/skills/diamond-cutting-discipline/fixtures/basic.json +13 -0
  246. package/skills/diamond-cutting-discipline/meta.json +19 -0
  247. package/skills/diamond-cutting-discipline/skill.md +46 -0
  248. package/skills/element-mapping-matrix/fixtures/basic.json +13 -0
  249. package/skills/element-mapping-matrix/meta.json +10 -0
  250. package/skills/element-mapping-matrix/skill.mjs +20 -0
  251. package/skills/number-adder/fixtures/basic.json +9 -0
  252. package/skills/number-adder/meta.json +10 -0
  253. package/skills/number-adder/skill.mjs +12 -0
  254. package/skills/patent-fetch/fixtures/parse.json +18 -0
  255. package/skills/patent-fetch/meta.json +11 -0
  256. package/skills/patent-fetch/skill.mjs +34 -0
  257. package/skills/query-expand/fixtures/basic.json +14 -0
  258. package/skills/query-expand/meta.json +10 -0
  259. package/skills/query-expand/skill.mjs +29 -0
  260. package/skills/run-vitest-band/fixtures/basic.json +9 -0
  261. package/skills/run-vitest-band/meta.json +18 -0
  262. package/skills/run-vitest-band/skill.mjs +22 -0
  263. package/skills/statutory-checklist/fixtures/basic.json +16 -0
  264. package/skills/statutory-checklist/meta.json +10 -0
  265. package/skills/statutory-checklist/skill.mjs +25 -0
  266. package/skills/summarize-tight/fixtures/basic.json +13 -0
  267. package/skills/summarize-tight/meta.json +20 -0
  268. package/skills/summarize-tight/skill.md +1 -0
  269. package/skills/verdict-gate/fixtures/basic.json +9 -0
  270. package/skills/verdict-gate/meta.json +10 -0
  271. package/skills/verdict-gate/skill.mjs +82 -0
  272. package/standards/e2e-suite-v0.json +44 -0
  273. package/standards/patent-triage-v0.json +98 -0
  274. package/standards/patent-triage-v1.json +84 -0
  275. package/standards/seed-from-local-repos-v0.json +115 -0
  276. package/standards/sub_thread_invocation.json +50 -0
  277. package/standards/summarize.json +40 -0
  278. package/standards/synthesis-walk-v0.json +108 -0
  279. package/standards/user_flow_correctness.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ // Production stdio entry for the Coltrane MCP server.
3
+ //
4
+ // Two modes, branched on `COLTRANE_SERVER_DIRECT`:
5
+ //
6
+ // • **relay mode (default)** — spawn `src/server_relay.ts` which holds the
7
+ // parent stdio pipe to the MCP client forever and runs the actual server
8
+ // as a child it can hot-restart in place. Picks up new bytes after
9
+ // `npm run build` without ending the client conversation. See
10
+ // `docs/mcp_hot_reload.md`.
11
+ //
12
+ // • **direct mode** (`COLTRANE_SERVER_DIRECT=1`) — run the server itself,
13
+ // connecting stdin/stdout straight to `StdioServerTransport`. Used by the
14
+ // relay to spawn its child, and by any caller that wants the legacy
15
+ // single-process behavior (e.g. e2e harness, debug scripts).
16
+ //
17
+ // `src/server.ts` is a library module: it *exports* runStdioServer() but
18
+ // never calls it, so `node dist/src/server.js` loads definitions and exits
19
+ // without connecting a transport. This file is the executable boot.
20
+ import { fileURLToPath } from "node:url";
21
+ const DIRECT = process.env.COLTRANE_SERVER_DIRECT === "1";
22
+ if (DIRECT) {
23
+ const { runStdioServer } = await import("./server.js");
24
+ runStdioServer().catch((e) => {
25
+ console.error("coltrane MCP server failed to start:", e);
26
+ process.exit(1);
27
+ });
28
+ }
29
+ else {
30
+ const { runRelay } = await import("./server_relay.js");
31
+ // Spawn the same script as the child, with COLTRANE_SERVER_DIRECT=1 so it
32
+ // takes the other branch. Using `import.meta.url` ensures we re-launch the
33
+ // exact same compiled entry path (works from `dist/` after build).
34
+ const entryPath = fileURLToPath(import.meta.url);
35
+ runRelay({ entryPath }).catch((e) => {
36
+ console.error("coltrane MCP relay failed to start:", e);
37
+ process.exit(1);
38
+ });
39
+ }
40
+ //# sourceMappingURL=server_entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_entry.js","sourceRoot":"","sources":["../../src/server_entry.ts"],"names":[],"mappings":";AACA,sDAAsD;AACtD,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,kEAAkE;AAClE,gCAAgC;AAChC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,iEAAiE;AACjE,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,oEAAoE;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAC;AAE1D,IAAI,MAAM,EAAE,CAAC;IACX,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACvD,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,82 @@
1
+ interface JsonRpcMessage {
2
+ jsonrpc?: "2.0";
3
+ id?: number | string | null;
4
+ method?: string;
5
+ params?: {
6
+ name?: string;
7
+ [k: string]: unknown;
8
+ };
9
+ result?: unknown;
10
+ error?: unknown;
11
+ }
12
+ /**
13
+ * Decide whether a parsed JSON-RPC message is a `tools/call` for
14
+ * `server_restart`. Returns the call's id so the relay can reply with the
15
+ * matching id when the restart completes.
16
+ */
17
+ export declare function matchServerRestart(msg: JsonRpcMessage): string | number | null | undefined;
18
+ /**
19
+ * Decide whether a parsed JSON-RPC message is a *response* to a `tools/list`
20
+ * request. The relay augments this response by appending `server_restart` to
21
+ * the list so MCP clients can discover the relay-handled tool.
22
+ */
23
+ export declare function isToolsListResponse(msg: JsonRpcMessage): boolean;
24
+ /**
25
+ * In-place augment a `tools/list` response so it carries an extra entry for
26
+ * `server_restart`. Returns the mutated message for convenience.
27
+ */
28
+ export declare function augmentToolsList(msg: JsonRpcMessage): JsonRpcMessage;
29
+ /**
30
+ * Build the JSON-RPC response the relay returns when it has finished
31
+ * restarting the child.
32
+ */
33
+ export declare function buildRestartResponse(id: string | number | null): JsonRpcMessage;
34
+ /**
35
+ * Build the JSON-RPC ERROR the relay returns when a restart did NOT produce a serving child.
36
+ *
37
+ * The bug this closes (#260): `restartChild` could not fail. Its handshake-replay safety
38
+ * timer resolved the SAME promise the real handshake did, so "the new child never answered"
39
+ * and "the new child is serving" both ended in `buildRestartResponse` — the relay told the
40
+ * client "New child process is up and serving" over a corpse. Every subsequent tools/call was
41
+ * then written into a dead pipe and never answered: an UNBOUNDED hang, surfacing as whatever
42
+ * client-side timeout ran out first. An error response is recoverable; a hang is not.
43
+ */
44
+ export declare function buildRestartError(id: string | number | null, reason: string): JsonRpcMessage;
45
+ /**
46
+ * Build the JSON-RPC ERROR for a request that arrived when no child is alive to answer it.
47
+ * Without this the relay writes the request into a dead child's stdin, where it is silently
48
+ * discarded and the caller waits forever.
49
+ */
50
+ export declare function buildNoChildError(id: string | number | null, method: string): JsonRpcMessage;
51
+ /** How long a fresh child gets to answer the replayed `initialize` before the restart FAILS. */
52
+ export declare const HANDSHAKE_REPLAY_TIMEOUT_MS = 10000;
53
+ /** The outcome of one child swap. `ok: false` must reach the client — see buildRestartError. */
54
+ export type RestartOutcome = {
55
+ ok: true;
56
+ } | {
57
+ ok: false;
58
+ reason: string;
59
+ };
60
+ /** Parse the `initialize` request's id from a captured raw line (null if unparseable). */
61
+ export declare function initRequestId(line: string | null): string | number | null | undefined;
62
+ /**
63
+ * Run the relay. Spawns the child, wires stdio, intercepts server_restart.
64
+ * Never returns under normal operation.
65
+ *
66
+ * The MCP handshake survives a child swap: the client `initialize`d once (against the FIRST
67
+ * child) and believes the session is live, so after a restart it sends `tools/call` straight
68
+ * to a fresh child that never received `initialize`. An uninitialized MCP server holds the
69
+ * call forever → the client hangs. So the relay CAPTURES the client's `initialize` request +
70
+ * `notifications/initialized`, and REPLAYS them to every new child before un-gating it —
71
+ * swallowing the replay's duplicate `initialize` response so the client never sees it twice.
72
+ *
73
+ * And a swap CAN fail — the new child is spawned from `dist/`, which the relay exists to let
74
+ * you rewrite underneath it, so "the fresh bytes don't boot" is a first-class outcome, not an
75
+ * impossibility. Every path out of this function answers the client: a failed swap returns a
76
+ * JSON-RPC error, and any later request that arrives with no live child is answered with one
77
+ * too. The relay never leaves a caller waiting on a process that is gone (#260).
78
+ */
79
+ export declare function runRelay(opts: {
80
+ entryPath: string;
81
+ }): Promise<void>;
82
+ export {};
@@ -0,0 +1,341 @@
1
+ // Parent-relay process for the Coltrane MCP server.
2
+ //
3
+ // The problem this solves: when Claude Code spawns the Coltrane server as an
4
+ // MCP child via stdio, it holds the pipe to that specific PID. Rebuilding
5
+ // `src/` produces new bytes in `dist/`, but the running PID is still executing
6
+ // the old bytes. Restarting the PID picks up the new bytes — and severs the
7
+ // stdio pipe Claude Code is holding, which ends the MCP connection for that
8
+ // conversation.
9
+ //
10
+ // The fix: a stdio-proxy parent that holds the pipe to Claude Code forever
11
+ // and spawns the actual Coltrane server as a *child*. To pick up new bytes,
12
+ // the relay kills the child and re-spawns it; the parent-side pipe never
13
+ // moves, so Claude Code's connection survives.
14
+ //
15
+ // Wire shape:
16
+ // Claude Code ──stdio──> relay (this file) ──stdio──> child server
17
+ // │
18
+ // │ intercepts tools/call server_restart
19
+ // │ (handles locally; kills+respawns child)
20
+ // │
21
+ // └─ augments tools/list responses with
22
+ // server_restart entry
23
+ //
24
+ // The relay is invoked via `src/server_entry.ts` when COLTRANE_SERVER_DIRECT
25
+ // is unset. Setting COLTRANE_SERVER_DIRECT=1 runs the server directly (no
26
+ // relay) — the relay uses this to spawn its child.
27
+ import { spawn } from "node:child_process";
28
+ import { createInterface } from "node:readline";
29
+ const SERVER_RESTART_TOOL = {
30
+ name: "server_restart",
31
+ description: "Restart the Coltrane MCP server child process in place. Picks up new bytes after npm run build without ending the Claude Code conversation. Returns when the new child is up.",
32
+ inputSchema: {
33
+ type: "object",
34
+ properties: {},
35
+ additionalProperties: false,
36
+ },
37
+ };
38
+ /**
39
+ * Spawn the actual Coltrane server as a child of this process, with the
40
+ * direct-mode env flag set so `server_entry.ts` runs the server (not the
41
+ * relay) inside it.
42
+ */
43
+ function spawnChild(entryPath) {
44
+ return spawn(process.execPath, [entryPath], {
45
+ stdio: ["pipe", "pipe", "inherit"],
46
+ env: { ...process.env, COLTRANE_SERVER_DIRECT: "1" },
47
+ });
48
+ }
49
+ /**
50
+ * Decide whether a parsed JSON-RPC message is a `tools/call` for
51
+ * `server_restart`. Returns the call's id so the relay can reply with the
52
+ * matching id when the restart completes.
53
+ */
54
+ export function matchServerRestart(msg) {
55
+ if (msg.method !== "tools/call")
56
+ return undefined;
57
+ if (msg.params?.name !== "server_restart")
58
+ return undefined;
59
+ return msg.id ?? null;
60
+ }
61
+ /**
62
+ * Decide whether a parsed JSON-RPC message is a *response* to a `tools/list`
63
+ * request. The relay augments this response by appending `server_restart` to
64
+ * the list so MCP clients can discover the relay-handled tool.
65
+ */
66
+ export function isToolsListResponse(msg) {
67
+ if (msg.method !== undefined)
68
+ return false; // responses have no method
69
+ const result = msg.result;
70
+ return Array.isArray(result?.tools);
71
+ }
72
+ /**
73
+ * In-place augment a `tools/list` response so it carries an extra entry for
74
+ * `server_restart`. Returns the mutated message for convenience.
75
+ */
76
+ export function augmentToolsList(msg) {
77
+ const result = msg.result;
78
+ // Don't double-insert if the child already advertises it.
79
+ const existing = result.tools.some((t) => t.name === SERVER_RESTART_TOOL.name);
80
+ if (!existing)
81
+ result.tools.push(SERVER_RESTART_TOOL);
82
+ return msg;
83
+ }
84
+ /**
85
+ * Build the JSON-RPC response the relay returns when it has finished
86
+ * restarting the child.
87
+ */
88
+ export function buildRestartResponse(id) {
89
+ return {
90
+ jsonrpc: "2.0",
91
+ id,
92
+ result: {
93
+ content: [
94
+ {
95
+ type: "text",
96
+ text: "Coltrane MCP server restarted. New child process is up and serving.",
97
+ },
98
+ ],
99
+ },
100
+ };
101
+ }
102
+ /** JSON-RPC implementation-defined server error (the -32000..-32099 reserved band). */
103
+ const RELAY_ERROR_CODE = -32001;
104
+ /**
105
+ * Build the JSON-RPC ERROR the relay returns when a restart did NOT produce a serving child.
106
+ *
107
+ * The bug this closes (#260): `restartChild` could not fail. Its handshake-replay safety
108
+ * timer resolved the SAME promise the real handshake did, so "the new child never answered"
109
+ * and "the new child is serving" both ended in `buildRestartResponse` — the relay told the
110
+ * client "New child process is up and serving" over a corpse. Every subsequent tools/call was
111
+ * then written into a dead pipe and never answered: an UNBOUNDED hang, surfacing as whatever
112
+ * client-side timeout ran out first. An error response is recoverable; a hang is not.
113
+ */
114
+ export function buildRestartError(id, reason) {
115
+ return {
116
+ jsonrpc: "2.0",
117
+ id,
118
+ error: {
119
+ code: RELAY_ERROR_CODE,
120
+ message: `Coltrane MCP server restart FAILED — ${reason}. The previous child was already ` +
121
+ "stopped, so this server is now serving nothing. Check the relay's stderr, rebuild " +
122
+ "(`npm run build`), and restart the MCP client.",
123
+ },
124
+ };
125
+ }
126
+ /**
127
+ * Build the JSON-RPC ERROR for a request that arrived when no child is alive to answer it.
128
+ * Without this the relay writes the request into a dead child's stdin, where it is silently
129
+ * discarded and the caller waits forever.
130
+ */
131
+ export function buildNoChildError(id, method) {
132
+ return {
133
+ jsonrpc: "2.0",
134
+ id,
135
+ error: {
136
+ code: RELAY_ERROR_CODE,
137
+ message: `Coltrane MCP relay has no live server child — "${method}" cannot be answered. ` +
138
+ "The child exited (see the relay's stderr for its exit code). Rebuild " +
139
+ "(`npm run build`) and restart the MCP client.",
140
+ },
141
+ };
142
+ }
143
+ /** How long a fresh child gets to answer the replayed `initialize` before the restart FAILS. */
144
+ export const HANDSHAKE_REPLAY_TIMEOUT_MS = 10_000;
145
+ /** Parse the `initialize` request's id from a captured raw line (null if unparseable). */
146
+ export function initRequestId(line) {
147
+ if (!line)
148
+ return undefined;
149
+ try {
150
+ return JSON.parse(line).id ?? null;
151
+ }
152
+ catch {
153
+ return undefined;
154
+ }
155
+ }
156
+ /**
157
+ * Run the relay. Spawns the child, wires stdio, intercepts server_restart.
158
+ * Never returns under normal operation.
159
+ *
160
+ * The MCP handshake survives a child swap: the client `initialize`d once (against the FIRST
161
+ * child) and believes the session is live, so after a restart it sends `tools/call` straight
162
+ * to a fresh child that never received `initialize`. An uninitialized MCP server holds the
163
+ * call forever → the client hangs. So the relay CAPTURES the client's `initialize` request +
164
+ * `notifications/initialized`, and REPLAYS them to every new child before un-gating it —
165
+ * swallowing the replay's duplicate `initialize` response so the client never sees it twice.
166
+ *
167
+ * And a swap CAN fail — the new child is spawned from `dist/`, which the relay exists to let
168
+ * you rewrite underneath it, so "the fresh bytes don't boot" is a first-class outcome, not an
169
+ * impossibility. Every path out of this function answers the client: a failed swap returns a
170
+ * JSON-RPC error, and any later request that arrives with no live child is answered with one
171
+ * too. The relay never leaves a caller waiting on a process that is gone (#260).
172
+ */
173
+ export async function runRelay(opts) {
174
+ let child = spawnChild(opts.entryPath);
175
+ // Captured client handshake, replayed to each new child after a restart.
176
+ let storedInit = null;
177
+ let storedInitialized = null;
178
+ // During a replay, the new child's `initialize` response carries the original request id;
179
+ // the client already got one from the prior child, so the forwarder must swallow this dup.
180
+ let replayInitId = undefined;
181
+ let onInitReplayed = null;
182
+ const forwardChildToParent = (c) => {
183
+ // A write into a child that has already exited raises EPIPE as an 'error' event; unhandled,
184
+ // that takes the whole relay down and severs the client pipe the relay exists to protect.
185
+ c.stdin.on("error", (e) => {
186
+ process.stderr.write(`[coltrane-relay] child stdin error: ${e.message}\n`);
187
+ });
188
+ const rl = createInterface({ input: c.stdout });
189
+ rl.on("line", (line) => {
190
+ let msg = null;
191
+ try {
192
+ msg = JSON.parse(line);
193
+ }
194
+ catch {
195
+ process.stdout.write(line + "\n");
196
+ return;
197
+ }
198
+ // Swallow the replayed-handshake `initialize` response (a response = no method, and its
199
+ // id matches the captured initialize). Then send `notifications/initialized` so the new
200
+ // child reaches serving state, and signal the restart to complete.
201
+ if (msg && replayInitId !== undefined && msg.method === undefined && msg.id === replayInitId) {
202
+ if (storedInitialized)
203
+ c.stdin.write(storedInitialized + "\n");
204
+ replayInitId = undefined;
205
+ const done = onInitReplayed;
206
+ onInitReplayed = null;
207
+ done?.();
208
+ return; // never forward the duplicate to the client
209
+ }
210
+ if (msg && isToolsListResponse(msg)) {
211
+ augmentToolsList(msg);
212
+ process.stdout.write(JSON.stringify(msg) + "\n");
213
+ return;
214
+ }
215
+ // Pass through verbatim. Re-serializing would lose unknown fields.
216
+ process.stdout.write(line + "\n");
217
+ });
218
+ c.on("exit", (code) => {
219
+ process.stderr.write(`[coltrane-relay] child server exited code=${code ?? "null"}\n`);
220
+ });
221
+ };
222
+ forwardChildToParent(child);
223
+ const restartChild = async () => {
224
+ if (child.exitCode === null && child.signalCode === null) {
225
+ child.kill("SIGTERM");
226
+ // Give it 2s to exit cleanly; otherwise SIGKILL.
227
+ await Promise.race([
228
+ new Promise((res) => child.once("exit", () => res())),
229
+ new Promise((res) => setTimeout(() => {
230
+ if (child.exitCode === null && child.signalCode === null)
231
+ child.kill("SIGKILL");
232
+ res();
233
+ }, 2000)),
234
+ ]);
235
+ }
236
+ child = spawnChild(opts.entryPath);
237
+ forwardChildToParent(child);
238
+ // The client never initialized, so there is no handshake to replay and nothing to wait on.
239
+ if (!storedInit)
240
+ return { ok: true };
241
+ // Replay the captured handshake so the new child reaches serving state BEFORE the relay
242
+ // tells the client the restart is done. Without this the next tools/call hangs forever.
243
+ //
244
+ // #260 — and the three ways this can END are three DIFFERENT answers, not one. Previously
245
+ // the safety timer called the same `resolve()` the real handshake did, so a child that
246
+ // died on boot (stale/half-written `dist/`, a missing module, a bad genome) produced
247
+ // "restarted, up and serving" 10s later and then hung every call after it. Failure has to
248
+ // be reportable or it is indistinguishable from success.
249
+ const fresh = child;
250
+ return await new Promise((resolve) => {
251
+ let settled = false;
252
+ const finish = (outcome) => {
253
+ if (settled)
254
+ return;
255
+ settled = true;
256
+ clearTimeout(timer);
257
+ fresh.off("exit", onFreshExit);
258
+ replayInitId = undefined;
259
+ onInitReplayed = null;
260
+ resolve(outcome);
261
+ };
262
+ // Fail FAST on a dead child — waiting out the full safety timeout for a process we
263
+ // already know is gone only delays the diagnosis.
264
+ const onFreshExit = (code, signal) => {
265
+ finish({
266
+ ok: false,
267
+ reason: `the new child exited (code=${code ?? "null"}, signal=${signal ?? "null"}) ` +
268
+ "before completing the MCP handshake",
269
+ });
270
+ };
271
+ const timer = setTimeout(() => {
272
+ finish({
273
+ ok: false,
274
+ reason: `the new child did not answer the replayed MCP initialize within ${HANDSHAKE_REPLAY_TIMEOUT_MS}ms`,
275
+ });
276
+ }, HANDSHAKE_REPLAY_TIMEOUT_MS);
277
+ onInitReplayed = () => { finish({ ok: true }); };
278
+ replayInitId = initRequestId(storedInit);
279
+ fresh.once("exit", onFreshExit);
280
+ fresh.stdin.write(storedInit + "\n");
281
+ });
282
+ };
283
+ /** Is there a child that can actually receive a message right now? */
284
+ const childAlive = () => child.exitCode === null && child.signalCode === null && child.stdin.writable;
285
+ /**
286
+ * Forward one client line to the child — or, when no child is alive to receive it, ANSWER
287
+ * it. A request written into a dead pipe is silently discarded and the caller waits forever;
288
+ * that unbounded wait is the failure mode this converts into a visible JSON-RPC error.
289
+ */
290
+ const forwardToChild = (line, msg) => {
291
+ if (childAlive()) {
292
+ child.stdin.write(line + "\n");
293
+ return;
294
+ }
295
+ // A request carries an id (a notification does not) — only a request has a caller waiting.
296
+ if (msg?.method !== undefined && msg.id !== undefined) {
297
+ process.stdout.write(JSON.stringify(buildNoChildError(msg.id, msg.method)) + "\n");
298
+ return;
299
+ }
300
+ process.stderr.write("[coltrane-relay] dropped a message: no live server child\n");
301
+ };
302
+ const parentIn = createInterface({ input: process.stdin });
303
+ parentIn.on("line", (line) => {
304
+ let msg = null;
305
+ try {
306
+ msg = JSON.parse(line);
307
+ }
308
+ catch {
309
+ forwardToChild(line, null);
310
+ return;
311
+ }
312
+ if (msg) {
313
+ // Capture the handshake as it passes through (still forwarded to the first child).
314
+ if (msg.method === "initialize")
315
+ storedInit = line;
316
+ else if (msg.method === "notifications/initialized")
317
+ storedInitialized = line;
318
+ const restartId = matchServerRestart(msg);
319
+ if (restartId !== undefined) {
320
+ // Handle locally. Reply only after the new child is up AND re-initialized, so the
321
+ // client's next tool call lands on a serving child rather than hanging — and reply
322
+ // with an ERROR when it did not, so a failed swap is diagnosable instead of silent.
323
+ void restartChild().then((outcome) => {
324
+ const reply = outcome.ok
325
+ ? buildRestartResponse(restartId)
326
+ : buildRestartError(restartId, outcome.reason);
327
+ if (!outcome.ok)
328
+ process.stderr.write(`[coltrane-relay] restart failed: ${outcome.reason}\n`);
329
+ process.stdout.write(JSON.stringify(reply) + "\n");
330
+ });
331
+ return;
332
+ }
333
+ }
334
+ forwardToChild(line, msg);
335
+ });
336
+ // Keep the process alive while the child is up.
337
+ await new Promise(() => {
338
+ /* never resolves; the relay runs forever */
339
+ });
340
+ }
341
+ //# sourceMappingURL=server_relay.js.map