@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.
- package/LICENSE +201 -0
- package/README.md +85 -0
- package/agents/anticipation-mapper.json +34 -0
- package/agents/claim-amender.json +34 -0
- package/agents/claim-architect.json +34 -0
- package/agents/claim-rewriter.json +32 -0
- package/agents/delivery-finalizer.json +40 -0
- package/agents/diamond-cutter.json +33 -0
- package/agents/disclosure-analyst.json +26 -0
- package/agents/domain-explorer.json +37 -0
- package/agents/e2e-runner.json +34 -0
- package/agents/e2e-suite-judge.json +26 -0
- package/agents/event-clusterer.json +29 -0
- package/agents/novelty-searcher.json +40 -0
- package/agents/patent-browser-scout.json +49 -0
- package/agents/patent-examiner.json +36 -0
- package/agents/phase_agents/claim-rewriter.md +44 -0
- package/agents/phase_agents/delivery-finalizer.md +30 -0
- package/agents/phase_agents/diamond-cutter.md +47 -0
- package/agents/phase_agents/domain-explorer.md +27 -0
- package/agents/phase_agents/novelty-searcher.md +50 -0
- package/agents/phase_agents/problem-definer.md +32 -0
- package/agents/phase_agents/solution-developer.md +26 -0
- package/agents/phase_agents/verdict-judger.md +70 -0
- package/agents/players/audience-modeler.md +40 -0
- package/agents/players/chain-audit-keeper.md +41 -0
- package/agents/players/illumination-reviewer.md +42 -0
- package/agents/players/methodology-cadence-keeper.md +42 -0
- package/agents/players/substrate-edge-keeper.md +45 -0
- package/agents/prior-art-scout.json +45 -0
- package/agents/problem-definer.json +35 -0
- package/agents/seeds/steve_seed_a.json +12 -0
- package/agents/seeds/steve_seed_b.json +12 -0
- package/agents/seeds/steve_seed_c.json +12 -0
- package/agents/seeds/steve_seed_d.json +12 -0
- package/agents/sensor.json +22 -0
- package/agents/solution-developer.json +35 -0
- package/agents/source-walker.json +38 -0
- package/agents/spec-drafter.json +31 -0
- package/agents/sub_thread_soft_judge.json +26 -0
- package/agents/sub_thread_trace_sensor.json +22 -0
- package/agents/summarizer.json +25 -0
- package/agents/synthesis-writer.json +29 -0
- package/agents/triage-judge.json +39 -0
- package/agents/user_flow_judge.json +26 -0
- package/agents/user_flow_sensor.json +22 -0
- package/agents/verdict-judger.json +39 -0
- package/core_types/artifact.json +17 -0
- package/core_types/interpretation.json +16 -0
- package/core_types/judgment.json +16 -0
- package/core_types/plan.json +16 -0
- package/core_types/signal.json +16 -0
- package/core_types/verdict.json +27 -0
- package/dist/src/access_grant.d.ts +46 -0
- package/dist/src/access_grant.js +76 -0
- package/dist/src/access_grant.js.map +1 -0
- package/dist/src/acoustics.d.ts +9 -0
- package/dist/src/acoustics.js +65 -0
- package/dist/src/acoustics.js.map +1 -0
- package/dist/src/agent_profile.d.ts +36 -0
- package/dist/src/agent_profile.js +57 -0
- package/dist/src/agent_profile.js.map +1 -0
- package/dist/src/bifrost_invoker.d.ts +33 -0
- package/dist/src/bifrost_invoker.js +85 -0
- package/dist/src/bifrost_invoker.js.map +1 -0
- package/dist/src/canonical_core_types.d.ts +2 -0
- package/dist/src/canonical_core_types.js +111 -0
- package/dist/src/canonical_core_types.js.map +1 -0
- package/dist/src/canonical_form.d.ts +55 -0
- package/dist/src/canonical_form.js +93 -0
- package/dist/src/canonical_form.js.map +1 -0
- package/dist/src/charter.d.ts +37 -0
- package/dist/src/charter.js +86 -0
- package/dist/src/charter.js.map +1 -0
- package/dist/src/circle_of_fifths.d.ts +27 -0
- package/dist/src/circle_of_fifths.js +78 -0
- package/dist/src/circle_of_fifths.js.map +1 -0
- package/dist/src/claude_invoker.d.ts +102 -0
- package/dist/src/claude_invoker.js +760 -0
- package/dist/src/claude_invoker.js.map +1 -0
- package/dist/src/coltrane_profile.d.ts +87 -0
- package/dist/src/coltrane_profile.js +132 -0
- package/dist/src/coltrane_profile.js.map +1 -0
- package/dist/src/composition.d.ts +57 -0
- package/dist/src/composition.js +447 -0
- package/dist/src/composition.js.map +1 -0
- package/dist/src/core_types.d.ts +6 -0
- package/dist/src/core_types.js +25 -0
- package/dist/src/core_types.js.map +1 -0
- package/dist/src/document_factory.d.ts +89 -0
- package/dist/src/document_factory.js +176 -0
- package/dist/src/document_factory.js.map +1 -0
- package/dist/src/genome_schema.d.ts +512 -0
- package/dist/src/genome_schema.js +168 -0
- package/dist/src/genome_schema.js.map +1 -0
- package/dist/src/genome_writer.d.ts +67 -0
- package/dist/src/genome_writer.js +179 -0
- package/dist/src/genome_writer.js.map +1 -0
- package/dist/src/gig_song.d.ts +29 -0
- package/dist/src/gig_song.js +56 -0
- package/dist/src/gig_song.js.map +1 -0
- package/dist/src/gig_tracker.d.ts +54 -0
- package/dist/src/gig_tracker.js +109 -0
- package/dist/src/gig_tracker.js.map +1 -0
- package/dist/src/harmonic_validation.d.ts +11 -0
- package/dist/src/harmonic_validation.js +35 -0
- package/dist/src/harmonic_validation.js.map +1 -0
- package/dist/src/hooks.d.ts +27 -0
- package/dist/src/hooks.js +2 -0
- package/dist/src/hooks.js.map +1 -0
- package/dist/src/index.d.ts +36 -0
- package/dist/src/index.js +37 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/jsong.d.ts +47 -0
- package/dist/src/jsong.js +130 -0
- package/dist/src/jsong.js.map +1 -0
- package/dist/src/judges/user_flow_judge.d.ts +89 -0
- package/dist/src/judges/user_flow_judge.js +200 -0
- package/dist/src/judges/user_flow_judge.js.map +1 -0
- package/dist/src/learner.d.ts +37 -0
- package/dist/src/learner.js +30 -0
- package/dist/src/learner.js.map +1 -0
- package/dist/src/ledger.d.ts +225 -0
- package/dist/src/ledger.js +306 -0
- package/dist/src/ledger.js.map +1 -0
- package/dist/src/loader.d.ts +87 -0
- package/dist/src/loader.js +504 -0
- package/dist/src/loader.js.map +1 -0
- package/dist/src/mcp.d.ts +23 -0
- package/dist/src/mcp.js +125 -0
- package/dist/src/mcp.js.map +1 -0
- package/dist/src/modulation_path.d.ts +42 -0
- package/dist/src/modulation_path.js +60 -0
- package/dist/src/modulation_path.js.map +1 -0
- package/dist/src/output_validation.d.ts +19 -0
- package/dist/src/output_validation.js +51 -0
- package/dist/src/output_validation.js.map +1 -0
- package/dist/src/outputs.d.ts +125 -0
- package/dist/src/outputs.js +452 -0
- package/dist/src/outputs.js.map +1 -0
- package/dist/src/overtones.d.ts +42 -0
- package/dist/src/overtones.js +98 -0
- package/dist/src/overtones.js.map +1 -0
- package/dist/src/player_to_claude_code.d.ts +17 -0
- package/dist/src/player_to_claude_code.js +141 -0
- package/dist/src/player_to_claude_code.js.map +1 -0
- package/dist/src/playwright_cage.d.ts +28 -0
- package/dist/src/playwright_cage.js +47 -0
- package/dist/src/playwright_cage.js.map +1 -0
- package/dist/src/polyphony.d.ts +46 -0
- package/dist/src/polyphony.js +91 -0
- package/dist/src/polyphony.js.map +1 -0
- package/dist/src/portfolio.d.ts +52 -0
- package/dist/src/portfolio.js +186 -0
- package/dist/src/portfolio.js.map +1 -0
- package/dist/src/pricing.d.ts +23 -0
- package/dist/src/pricing.js +16 -0
- package/dist/src/pricing.js.map +1 -0
- package/dist/src/registry.d.ts +46 -0
- package/dist/src/registry.js +199 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/runtime.d.ts +304 -0
- package/dist/src/runtime.js +1099 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/server.d.ts +88 -0
- package/dist/src/server.js +1692 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/server_entry.d.ts +2 -0
- package/dist/src/server_entry.js +40 -0
- package/dist/src/server_entry.js.map +1 -0
- package/dist/src/server_relay.d.ts +82 -0
- package/dist/src/server_relay.js +341 -0
- package/dist/src/server_relay.js.map +1 -0
- package/dist/src/simulate.d.ts +60 -0
- package/dist/src/simulate.js +72 -0
- package/dist/src/simulate.js.map +1 -0
- package/dist/src/skill_runner.mjs +34 -0
- package/dist/src/skill_subprocess.d.ts +65 -0
- package/dist/src/skill_subprocess.js +132 -0
- package/dist/src/skill_subprocess.js.map +1 -0
- package/dist/src/skills.d.ts +85 -0
- package/dist/src/skills.js +258 -0
- package/dist/src/skills.js.map +1 -0
- package/dist/src/subthread_recorder.d.ts +68 -0
- package/dist/src/subthread_recorder.js +166 -0
- package/dist/src/subthread_recorder.js.map +1 -0
- package/dist/src/tensor_read.d.ts +38 -0
- package/dist/src/tensor_read.js +60 -0
- package/dist/src/tensor_read.js.map +1 -0
- package/dist/src/test_honest_broker.d.ts +34 -0
- package/dist/src/test_honest_broker.js +155 -0
- package/dist/src/test_honest_broker.js.map +1 -0
- package/dist/src/test_topology.d.ts +22 -0
- package/dist/src/test_topology.js +137 -0
- package/dist/src/test_topology.js.map +1 -0
- package/dist/src/tones.d.ts +20 -0
- package/dist/src/tones.js +81 -0
- package/dist/src/tones.js.map +1 -0
- package/dist/src/tool_providers.d.ts +45 -0
- package/dist/src/tool_providers.js +104 -0
- package/dist/src/tool_providers.js.map +1 -0
- package/dist/src/type_versioning.d.ts +23 -0
- package/dist/src/type_versioning.js +31 -0
- package/dist/src/type_versioning.js.map +1 -0
- package/dist/src/version.d.ts +28 -0
- package/dist/src/version.js +86 -0
- package/dist/src/version.js.map +1 -0
- package/domain_types/claim-draft.json +34 -0
- package/domain_types/coverage-report.json +31 -0
- package/domain_types/draft-agent-profile.json +31 -0
- package/domain_types/draft-domain-type.json +28 -0
- package/domain_types/draft-standard.json +46 -0
- package/domain_types/e2e-observation.json +32 -0
- package/domain_types/e2e-report.json +30 -0
- package/domain_types/e2e-target.json +26 -0
- package/domain_types/e2e-verdict.json +26 -0
- package/domain_types/examine-round-record.json +40 -0
- package/domain_types/examiner-rejection.json +28 -0
- package/domain_types/failure-modes.json +31 -0
- package/domain_types/invention-analysis.json +34 -0
- package/domain_types/invention-spec.json +34 -0
- package/domain_types/novelty-analysis.json +28 -0
- package/domain_types/novelty-verdict.json +35 -0
- package/domain_types/parsed-conversation-trace.json +38 -0
- package/domain_types/pattern-extraction.json +62 -0
- package/domain_types/prior-art-hit.json +50 -0
- package/domain_types/project-charter.json +71 -0
- package/domain_types/provisional-draft.json +34 -0
- package/domain_types/raw-note.json +19 -0
- package/domain_types/repo-survey.json +28 -0
- package/domain_types/seeding-verdict.json +70 -0
- package/domain_types/soft-verdict.json +55 -0
- package/domain_types/summary.json +19 -0
- package/domain_types/triage-verdict.json +59 -0
- package/domain_types/user-flow-transcript.json +43 -0
- package/domain_types/user-flow-verdict.json +60 -0
- package/domain_types/verdict-record.json +39 -0
- package/package.json +82 -0
- package/skills/citation-verify/fixtures/basic.json +14 -0
- package/skills/citation-verify/meta.json +10 -0
- package/skills/citation-verify/skill.mjs +26 -0
- package/skills/claim-element-decompose/fixtures/basic.json +11 -0
- package/skills/claim-element-decompose/meta.json +10 -0
- package/skills/claim-element-decompose/skill.mjs +14 -0
- package/skills/diamond-cutting-discipline/fixtures/basic.json +13 -0
- package/skills/diamond-cutting-discipline/meta.json +19 -0
- package/skills/diamond-cutting-discipline/skill.md +46 -0
- package/skills/element-mapping-matrix/fixtures/basic.json +13 -0
- package/skills/element-mapping-matrix/meta.json +10 -0
- package/skills/element-mapping-matrix/skill.mjs +20 -0
- package/skills/number-adder/fixtures/basic.json +9 -0
- package/skills/number-adder/meta.json +10 -0
- package/skills/number-adder/skill.mjs +12 -0
- package/skills/patent-fetch/fixtures/parse.json +18 -0
- package/skills/patent-fetch/meta.json +11 -0
- package/skills/patent-fetch/skill.mjs +34 -0
- package/skills/query-expand/fixtures/basic.json +14 -0
- package/skills/query-expand/meta.json +10 -0
- package/skills/query-expand/skill.mjs +29 -0
- package/skills/run-vitest-band/fixtures/basic.json +9 -0
- package/skills/run-vitest-band/meta.json +18 -0
- package/skills/run-vitest-band/skill.mjs +22 -0
- package/skills/statutory-checklist/fixtures/basic.json +16 -0
- package/skills/statutory-checklist/meta.json +10 -0
- package/skills/statutory-checklist/skill.mjs +25 -0
- package/skills/summarize-tight/fixtures/basic.json +13 -0
- package/skills/summarize-tight/meta.json +20 -0
- package/skills/summarize-tight/skill.md +1 -0
- package/skills/verdict-gate/fixtures/basic.json +9 -0
- package/skills/verdict-gate/meta.json +10 -0
- package/skills/verdict-gate/skill.mjs +82 -0
- package/standards/e2e-suite-v0.json +44 -0
- package/standards/patent-triage-v0.json +98 -0
- package/standards/patent-triage-v1.json +84 -0
- package/standards/seed-from-local-repos-v0.json +115 -0
- package/standards/sub_thread_invocation.json +50 -0
- package/standards/summarize.json +40 -0
- package/standards/synthesis-walk-v0.json +108 -0
- 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,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
|