@eir-labs/coltrane 0.24.30 → 0.24.32

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 (87) hide show
  1. package/agents/change-verifier.json +4 -2
  2. package/agents/deploy-scout.json +2 -2
  3. package/agents/red-law-reviewer.json +54 -0
  4. package/agents/red-spec-attester.json +53 -0
  5. package/agents/red-spec-builder.json +56 -0
  6. package/agents/red-spec-drafter.json +1 -1
  7. package/agents/spec-reviewer.json +1 -1
  8. package/dist/src/chart.js +4 -0
  9. package/dist/src/chart.js.map +1 -1
  10. package/dist/src/chat_completions_port.d.ts +41 -0
  11. package/dist/src/chat_completions_port.js +221 -0
  12. package/dist/src/chat_completions_port.js.map +1 -0
  13. package/dist/src/claude_invoker.d.ts +18 -0
  14. package/dist/src/claude_invoker.js +771 -22
  15. package/dist/src/claude_invoker.js.map +1 -1
  16. package/dist/src/cli.d.ts +1 -1
  17. package/dist/src/cli.js +49 -8
  18. package/dist/src/cli.js.map +1 -1
  19. package/dist/src/completions_invoker.d.ts +79 -0
  20. package/dist/src/completions_invoker.js +220 -0
  21. package/dist/src/completions_invoker.js.map +1 -0
  22. package/dist/src/composition.d.ts +13 -0
  23. package/dist/src/composition.js +16 -0
  24. package/dist/src/composition.js.map +1 -1
  25. package/dist/src/genome_schema.d.ts +200 -0
  26. package/dist/src/genome_schema.js +37 -0
  27. package/dist/src/genome_schema.js.map +1 -1
  28. package/dist/src/genome_store.d.ts +30 -2
  29. package/dist/src/genome_store.js +51 -8
  30. package/dist/src/genome_store.js.map +1 -1
  31. package/dist/src/index.d.ts +5 -0
  32. package/dist/src/index.js +9 -0
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/invoker_selection.d.ts +58 -0
  35. package/dist/src/invoker_selection.js +110 -0
  36. package/dist/src/invoker_selection.js.map +1 -0
  37. package/dist/src/ledger.d.ts +45 -2
  38. package/dist/src/ledger.js +23 -3
  39. package/dist/src/ledger.js.map +1 -1
  40. package/dist/src/mcp.js +2 -2
  41. package/dist/src/mcp.js.map +1 -1
  42. package/dist/src/outputs.d.ts +24 -0
  43. package/dist/src/outputs.js +1 -0
  44. package/dist/src/outputs.js.map +1 -1
  45. package/dist/src/registry.js +16 -0
  46. package/dist/src/registry.js.map +1 -1
  47. package/dist/src/repo_index.d.ts +13 -0
  48. package/dist/src/repo_index.js +90 -10
  49. package/dist/src/repo_index.js.map +1 -1
  50. package/dist/src/reside_backing.d.ts +3 -2
  51. package/dist/src/reside_backing.js +8 -2
  52. package/dist/src/reside_backing.js.map +1 -1
  53. package/dist/src/reuse.d.ts +8 -0
  54. package/dist/src/reuse.js.map +1 -1
  55. package/dist/src/run_deps.d.ts +10 -10
  56. package/dist/src/run_deps.js +25 -15
  57. package/dist/src/run_deps.js.map +1 -1
  58. package/dist/src/runtime.d.ts +205 -109
  59. package/dist/src/runtime.js +908 -145
  60. package/dist/src/runtime.js.map +1 -1
  61. package/dist/src/server.js +148 -45
  62. package/dist/src/server.js.map +1 -1
  63. package/dist/src/server_relay.js +28 -0
  64. package/dist/src/server_relay.js.map +1 -1
  65. package/dist/src/skill_runner.mjs +9 -2
  66. package/dist/src/skill_subprocess.d.ts +20 -1
  67. package/dist/src/skill_subprocess.js +11 -4
  68. package/dist/src/skill_subprocess.js.map +1 -1
  69. package/dist/src/transcript_store.d.ts +14 -0
  70. package/dist/src/transcript_store.js +39 -0
  71. package/dist/src/transcript_store.js.map +1 -0
  72. package/dist/src/turn_loop.d.ts +173 -0
  73. package/dist/src/turn_loop.js +283 -0
  74. package/dist/src/turn_loop.js.map +1 -0
  75. package/dist/src/version.d.ts +1 -1
  76. package/dist/src/version.js +1 -1
  77. package/dist/src/worker.js +6 -0
  78. package/dist/src/worker.js.map +1 -1
  79. package/dist/src/worker_env.d.ts +4 -2
  80. package/dist/src/worker_env.js +42 -0
  81. package/dist/src/worker_env.js.map +1 -1
  82. package/domain_types/change-set.json +33 -22
  83. package/domain_types/red-spec.json +32 -23
  84. package/domain_types/seat-primer.json +65 -0
  85. package/package.json +1 -1
  86. package/standards/build-from-red-spec-v0.json +93 -0
  87. package/standards/draft-red-laws-v0.json +68 -0
@@ -0,0 +1,220 @@
1
+ import { ENGINE_MCP_SERVER, isHostBuiltin, mcpServerOf, toolBaseName } from "./tool_providers.js";
2
+ import { venueEffectiveTools } from "./chart.js";
3
+ import { buildPrompt, extractJson, extractOptionsForChair, promptSchemaFor, sessionUuidFor, } from "./claude_invoker.js";
4
+ // The provider-neutral loop and the chat-completions wire it runs on. The invoker no longer carries
5
+ // a loop of its own: it hands `runTurn` a port and a tool source and reads back typed stops. The
6
+ // tool-name encoding lives in the port now (the one place that speaks the wire) and is re-exported
7
+ // here UNCHANGED so the existing completions-invoker laws keep their import path (Laws 4 & 12 import
8
+ // encodeToolName/fromFunctionName/toFunctionDef from this module).
9
+ import { runTurn } from "./turn_loop.js";
10
+ import { encodeToolName, fromFunctionName, makeChatCompletionsPort, toFunctionDef, } from "./chat_completions_port.js";
11
+ export { encodeToolName, fromFunctionName, toFunctionDef };
12
+ /** One model invocation's wall-clock bound — a completion plus its tool turns, not a whole chair. */
13
+ export const DEFAULT_COMPLETIONS_TIMEOUT_MS = 120_000;
14
+ /** How many tool round-trips one chair may take before the loop refuses to keep paying. */
15
+ export const DEFAULT_MAX_TOOL_ROUNDS = 8;
16
+ export const COMPLETIONS_REFUSALS = [
17
+ "host_tool_denied",
18
+ "no_tool_source",
19
+ "transport_failed",
20
+ "unresolved_tier",
21
+ "round_limit",
22
+ "timeout",
23
+ "aborted",
24
+ "context_limit",
25
+ "tool_name_collision",
26
+ ];
27
+ const refuse = (refusal, message) => ({
28
+ ok: false,
29
+ refusal,
30
+ message,
31
+ });
32
+ // ── The invoker ──────────────────────────────────────────────────────────────────────────────────
33
+ /** A bare in-house grant `x` addresses the engine server's tool `mcp__coltrane__x` (#204); an
34
+ * already-namespaced grant (`mcp__<server>__<tool>`, including a `*` prefix) is kept verbatim. This
35
+ * is the SAME bridge resolveAgentGrants applies internally — sharing the one constant keeps the
36
+ * bare-slug/namespaced-surface split (#204) from drifting without dragging a provider registry into
37
+ * this invoker's options. */
38
+ function mapGrant(grant) {
39
+ return mcpServerOf(grant) ? grant : `mcp__${ENGINE_MCP_SERVER}__${toolBaseName(grant)}`;
40
+ }
41
+ export function makeCompletionsInvoker(opts) {
42
+ const port = makeChatCompletionsPort({
43
+ baseUrl: opts.baseUrl,
44
+ apiKey: opts.apiKey,
45
+ ...(opts.fetchFn ? { fetchFn: opts.fetchFn } : {}),
46
+ });
47
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_COMPLETIONS_TIMEOUT_MS;
48
+ return async (ctx) => {
49
+ const grants = ctx.agent.allowed_tools ?? [];
50
+ // (1) HOST BUILTINS ARE REFUSED BY NAME, before anything is spent. Naming the tool is the
51
+ // difference between a usable refusal and a shrug — and refusing before the wire means a
52
+ // misconfigured chair costs nothing to discover.
53
+ const host = grants.filter((g) => isHostBuiltin(g));
54
+ if (host.length > 0) {
55
+ return refuse("host_tool_denied", `agent "${ctx.agent.slug}" grants host builtin(s) [${host.join(", ")}], which this invoker ` +
56
+ `does not carry — its hands are MCP tools only, which arrive governed by the server that ` +
57
+ `serves them. Run this chair on the host-tool invoker, or narrow its grants.`);
58
+ }
59
+ // (2) Grants with no source to satisfy them: a chair advertising tools it cannot reach would
60
+ // confabulate. Absent must mean DECLINE.
61
+ if (grants.length > 0 && !opts.tools) {
62
+ return refuse("no_tool_source", `agent "${ctx.agent.slug}" grants [${grants.join(", ")}] but no MCP tool source is wired — ` +
63
+ `a deployment supplies it. Refusing rather than running the chair without its hands.`);
64
+ }
65
+ // (3) The tier must resolve to a concrete model. Guessing one spends real money against a
66
+ // model nobody chose.
67
+ const tier = ctx.agent.model_tier;
68
+ const model = tier ? opts.tierMap?.[tier] : undefined;
69
+ if (!model) {
70
+ return refuse("unresolved_tier", `no model configured for tier "${String(tier ?? "(none)")}" — the tier map is supplied by the ` +
71
+ `deployment, and an unmapped tier is a misconfiguration, not a default.`);
72
+ }
73
+ const types = ctx.output_types?.length ? ctx.output_types : ctx.agent.output_types;
74
+ const single = types.length === 1 ? promptSchemaFor(opts.registry, types[0]) : undefined;
75
+ const many = types.length > 1
76
+ ? Object.fromEntries(types.map((t) => [t, promptSchemaFor(opts.registry, t)]))
77
+ : undefined;
78
+ // THE OFFERED SET. The chair's grants — narrowed by the room when the chair sits in one (the SAME
79
+ // venueEffectiveTools oracle claude_invoker uses, never a re-inlined intersection) — mapped so a
80
+ // bare in-house grant addresses the engine server's tool. Those mapped grants ARE the loop's allow
81
+ // list, whichever server serves the tool: a grant is the chair's ceiling, and a tool the source
82
+ // lists but the chair never named is not authorization to offer it. The loop offers exactly
83
+ // `listed ∩ allow`, re-sent byte-identical every round, and refuses any call outside it before it
84
+ // reaches source.
85
+ const chairGrants = ctx.venue ? venueEffectiveTools(ctx.agent, ctx.venue) : grants;
86
+ const allow = chairGrants.map(mapGrant);
87
+ // THE ROUND CAP. Chair budget, then the agent's own cap, then the invoker default, then the
88
+ // engine default — the turn-budget contract's order. `ctx.turn_budget === 0` is a deliberate hard
89
+ // floor and does NOT fall through (0 is not nullish).
90
+ const maxRounds = ctx.turn_budget ?? ctx.agent.max_tool_calls ?? opts.maxToolRounds ?? DEFAULT_MAX_TOOL_ROUNDS;
91
+ // contract-completions-seat-transcript-v1 — the seat's conversation lives in a store keyed by its
92
+ // (gig_id, role) session id, the SAME id the Claude door resumes under. A MAKER amend (`resume`,
93
+ // and NOT `resume_keep_prompt` — a re-verify keeps the full cold prompt, out of scope) resumes that
94
+ // saved transcript; everything else — a first invocation, a re-verify — seeds exactly the full
95
+ // prompt buildPrompt returns and never reads the store (I2's "only a resume reads" half).
96
+ const store = opts.transcripts;
97
+ const sid = sessionUuidFor(ctx.gig_id, ctx.role);
98
+ const isMakerAmend = ctx.resume === true && ctx.resume_keep_prompt !== true;
99
+ const loaded = isMakerAmend && store && sid ? store.load(sid) : undefined;
100
+ let seed;
101
+ if (isMakerAmend && loaded && loaded.length > 0) {
102
+ // O2 / I1 — re-send the saved transcript UNCHANGED as the prefix (a provider prefix cache can
103
+ // serve it), then EXACTLY ONE new user message: the trimmed amend prompt buildPrompt returns on a
104
+ // resume (its one new thing is the failing verdict). Append-only over the prior round.
105
+ seed = [...loaded, { role: "user", content: buildPrompt(ctx, single, many) }];
106
+ }
107
+ else if (isMakerAmend) {
108
+ // F1 — a maker amend with no saved transcript (no store wired, or nothing under this id) has no
109
+ // conversation to resume. Seed the FULL cold prompt (buildPrompt with resume OFF: identity,
110
+ // method, gig input) — NEVER the resume-only prompt that claims a conversation the seat does not
111
+ // hold — and emit the SAME `resume_fallback` event the Claude invoker does, which the runtime
112
+ // folds into chair_complete.resume_fallback. The chair does not fail for this.
113
+ seed = [{ role: "user", content: buildPrompt({ ...ctx, resume: false }, single, many) }];
114
+ ctx.onEvent?.({
115
+ type: "resume_fallback",
116
+ raw: {
117
+ agent: ctx.agent.slug,
118
+ session_id: sid,
119
+ resumed: false,
120
+ reason: "no saved transcript for this session — re-seeding cold with the full prompt rather than " +
121
+ "the resume-only prompt, which would claim a conversation that is not held",
122
+ },
123
+ });
124
+ }
125
+ else {
126
+ seed = [{ role: "user", content: buildPrompt(ctx, single, many) }];
127
+ }
128
+ const result = await runTurn(seed, {
129
+ port,
130
+ model,
131
+ ...(opts.tools ? { tools: opts.tools } : {}),
132
+ allow,
133
+ max_rounds: maxRounds,
134
+ timeout_ms: timeoutMs,
135
+ // contract-tool-wire-name-collision-v1 (O2) — hand the loop the SAME encoding the port speaks, so
136
+ // it refuses an offered set two of whose tools collapse to one wire name before any model call.
137
+ wire_name: encodeToolName,
138
+ // #seat-effort (O4) — carry the resolved effort onto the model request. The runtime set it on
139
+ // the ctx (resolveEffort); the provider wire mapping is a lower layer, out of scope.
140
+ ...(ctx.effort ? { effort: ctx.effort } : {}),
141
+ // contract-seat-context-ceiling-v1 (O3) — hand the resolved ceiling to runTurn, which stops
142
+ // `context_limit` the round its measured context crosses it. Absent ⇒ nothing passed, so the turn
143
+ // runs uncapped exactly as today (I1).
144
+ ...(ctx.max_context_tokens !== undefined ? { max_context_tokens: ctx.max_context_tokens } : {}),
145
+ ...(ctx.signal ? { signal: ctx.signal } : {}),
146
+ ...(opts.prices ? { prices: opts.prices } : {}),
147
+ ...(opts.maxTokens !== undefined ? { max_tokens: opts.maxTokens } : {}),
148
+ });
149
+ // O1 — save the seat's transcript under its (gig_id, role) session id AFTER the turn, whatever the
150
+ // stop, so a later maker amend resumes the conversation it actually had. runTurn.messages is the
151
+ // seed plus everything appended this turn (a new array). No store or no session id ⇒ nothing saved.
152
+ if (store && sid)
153
+ store.save(sid, result.messages);
154
+ // Settle what RAN, whatever the stop. The full prompt (uncached input + cache reads + cache
155
+ // writes) preserves GigUsage.input_tokens' "whole prompt" meaning — reporting the uncached part
156
+ // alone would silently narrow the field, unseen by any fixture that caches nothing. Cost is
157
+ // emitted ONLY when every round was priced; a round the transport left unpriced or unreported is
158
+ // never folded in as $0 (#235). The per-model breakdown is keyed by the model the transport
159
+ // NAMED as serving the round, never the configured tier.
160
+ const totalInput = result.totals.input_tokens + result.totals.cache_read_tokens + result.totals.cache_write_tokens;
161
+ const totalOutput = result.totals.output_tokens;
162
+ const byModel = {};
163
+ for (const r of result.rounds) {
164
+ if (r.model === undefined || r.usage === undefined)
165
+ continue;
166
+ const slot = (byModel[r.model] ??= { inputTokens: 0, outputTokens: 0, costUSD: 0 });
167
+ slot.inputTokens +=
168
+ (r.usage.input_tokens ?? 0) + (r.usage.cache_read_tokens ?? 0) + (r.usage.cache_write_tokens ?? 0);
169
+ slot.outputTokens += r.usage.output_tokens ?? 0;
170
+ slot.costUSD += r.cost_usd ?? 0;
171
+ }
172
+ const everyRoundPriced = result.rounds.length > 0 && result.rounds.every((r) => r.cost_usd !== undefined);
173
+ if (totalInput > 0 || totalOutput > 0) {
174
+ ctx.onEvent?.({
175
+ type: "result",
176
+ raw: {
177
+ usage: { input_tokens: totalInput, output_tokens: totalOutput },
178
+ ...(everyRoundPriced ? { total_cost_usd: result.totals.cost_usd } : {}),
179
+ ...(Object.keys(byModel).length > 0 ? { modelUsage: byModel } : {}),
180
+ },
181
+ });
182
+ }
183
+ // A typed stop is a NAMED refusal, never a throw and never a parse of empty content. The runtime
184
+ // reads `{ok:false, refusal, message}` and fails the chair with the reason, so running out of
185
+ // rounds no longer falls through to "the model produced no answer".
186
+ if (result.stop === "round_limit") {
187
+ return refuse("round_limit", `chair "${ctx.agent.slug}" ran ${result.totals.rounds} model round(s) — its turn budget of ` +
188
+ `${maxRounds} — without answering. Raise the chair's turn_budget or the agent's ` +
189
+ `max_tool_calls, or narrow the work.`);
190
+ }
191
+ if (result.stop === "timeout") {
192
+ return refuse("timeout", `a model call exceeded the ${timeoutMs}ms per-call timeout.`);
193
+ }
194
+ if (result.stop === "aborted") {
195
+ return refuse("aborted", `the invocation was aborted by its caller before the chair answered.`);
196
+ }
197
+ if (result.stop === "transport_failed") {
198
+ return refuse("transport_failed", `the completions endpoint failed: ${result.error ?? "no reason reported"}`);
199
+ }
200
+ // contract-tool-wire-name-collision-v1 (O2) — the offered set held two tools indistinguishable on
201
+ // the wire. A TYPED refusal naming the colliding tools, caught before any model call, never an
202
+ // insertion-order winner and never a sealed partial.
203
+ if (result.stop === "tool_name_collision") {
204
+ return refuse("tool_name_collision", `chair "${ctx.agent.slug}" was offered tools that collide on the wire: ` +
205
+ `${result.error ?? "two tools encode to one wire name"}. Two tools that map to one wire ` +
206
+ `name cannot be told apart; refusing rather than running whichever won the reverse map.`);
207
+ }
208
+ // contract-seat-context-ceiling-v1 (O4) — a context_limit stop is a TYPED refusal that names the
209
+ // context tokens reached (the loop's peak) and the declared ceiling; it NEVER falls through to
210
+ // extractJson, so no partial answer is sealed as complete.
211
+ if (result.stop === "context_limit") {
212
+ return refuse("context_limit", `chair "${ctx.agent.slug}" crossed its context ceiling: reached ` +
213
+ `${result.totals.peak_context_tokens} context token(s) against a ceiling of ` +
214
+ `${ctx.max_context_tokens}. No partial answer is sealed; raise the seat's ` +
215
+ `max_context_tokens or narrow the work.`);
216
+ }
217
+ return extractJson(result.text, extractOptionsForChair(types, single));
218
+ };
219
+ }
220
+ //# sourceMappingURL=completions_invoker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions_invoker.js","sourceRoot":"","sources":["../../src/completions_invoker.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,19 @@ export interface Chair {
58
58
  /** The per-chair ceiling on draws from the gig reserve pool (mirrors `ChairSchema.turn_reserve`).
59
59
  * A chair never draws more than this even when the pool is larger. */
60
60
  turn_reserve?: number;
61
+ /** contract-seat-primer-v1 — a PRIME chair reads an `area` once and seals a `seat-primer`
62
+ * (mirrors `ChairSchema.prime`). Mutually exclusive with `fork_from`. */
63
+ prime?: {
64
+ area: string;
65
+ };
66
+ /** contract-seat-primer-v1 — a FORK chair warm-starts from the most recent `seat-primer` its
67
+ * agent sealed for `fork_from.primer` (an area slug; mirrors `ChairSchema.fork_from`).
68
+ * contract-rolling-seat-primer-v1 (O4) — `max_context_tokens` is a context ceiling: a primer whose
69
+ * recorded `context_tokens` exceeds it is REPLACED (cold run), never forked. Absent → fork any size. */
70
+ fork_from?: {
71
+ primer: string;
72
+ max_context_tokens?: number;
73
+ };
61
74
  }
62
75
  export interface PhaseDef {
63
76
  name: string;
@@ -147,6 +147,22 @@ export function composeStandard(def) {
147
147
  throw new CompositionError(`standard ${def.slug}: duplicate role "${ch.role}" across phases (also in ${seenRoles.get(ch.role)})`);
148
148
  }
149
149
  seenRoles.set(ch.role, ph.name);
150
+ // contract-rolling-seat-primer-v1 (O1) — a chair MAY declare both prime and fork_from when they
151
+ // name the SAME area: a build primes the area and forks the prior primer OF THAT area (the rolling
152
+ // primer itself). Refuse ONLY a chair whose primed area DIFFERS from the area it forks — a
153
+ // warm-start from a reading of the wrong area — naming the chair AND both areas so the author sees
154
+ // exactly which two disagree. (This rewrites contract-seat-primer-v1's F3, which refused ALL
155
+ // prime+fork chairs.) The fork_from slug check below is unchanged.
156
+ if (ch.prime && ch.fork_from && ch.prime.area !== ch.fork_from.primer) {
157
+ throw new CompositionError(`standard ${def.slug}: chair "${ch.role}" primes area "${ch.prime.area}" but forks a primer of ` +
158
+ `a DIFFERENT area "${ch.fork_from.primer}" — a seat that primes and forks must name the SAME ` +
159
+ `area (a build primes an area and forks the prior primer OF THAT area). Make prime.area and ` +
160
+ `fork_from.primer the same slug, or drop one.`);
161
+ }
162
+ if (ch.fork_from && !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(ch.fork_from.primer)) {
163
+ throw new CompositionError(`standard ${def.slug}: chair "${ch.role}" fork_from area "${ch.fork_from.primer}" is not a ` +
164
+ `lowercase-hyphen slug — a primer area is a slug like "amend-loop". Fix the fork_from field.`);
165
+ }
150
166
  // A skill-backed chair (skill_slug set, no agent_slug) runs the skill's deterministic
151
167
  // code half instead of an agent — skip the agent/required-skills checks for it. The
152
168
  // type-flow (input/output_contract) below still applies.
@@ -1 +1 @@
1
- {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/composition.ts"],"names":[],"mappings":"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"}