@eir-labs/coltrane 0.24.30 → 0.24.31

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 (86) 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 +904 -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_subprocess.d.ts +1 -0
  66. package/dist/src/skill_subprocess.js +5 -0
  67. package/dist/src/skill_subprocess.js.map +1 -1
  68. package/dist/src/transcript_store.d.ts +14 -0
  69. package/dist/src/transcript_store.js +39 -0
  70. package/dist/src/transcript_store.js.map +1 -0
  71. package/dist/src/turn_loop.d.ts +173 -0
  72. package/dist/src/turn_loop.js +283 -0
  73. package/dist/src/turn_loop.js.map +1 -0
  74. package/dist/src/version.d.ts +1 -1
  75. package/dist/src/version.js +1 -1
  76. package/dist/src/worker.js +6 -0
  77. package/dist/src/worker.js.map +1 -1
  78. package/dist/src/worker_env.d.ts +4 -2
  79. package/dist/src/worker_env.js +42 -0
  80. package/dist/src/worker_env.js.map +1 -1
  81. package/domain_types/change-set.json +33 -22
  82. package/domain_types/red-spec.json +32 -23
  83. package/domain_types/seat-primer.json +65 -0
  84. package/package.json +1 -1
  85. package/standards/build-from-red-spec-v0.json +93 -0
  86. package/standards/draft-red-laws-v0.json +68 -0
@@ -73,7 +73,11 @@ export const Q = {
73
73
  domain_types: "coltrane_domain_types?select=slug,version,extends,domain,status,schema,required_fields",
74
74
  agents: "coltrane_agent_profiles?select=slug,version,status,primitives,input_types,output_types,domain," +
75
75
  "identity,method,constraints,depth_profile,permissions,behavioral_primitives,skill_slots,default_skills,carried_skills",
76
- standards: "coltrane_standards?select=slug,version,status,domain,phases,input_types,output_types",
76
+ // O5 — max_examine_rounds and reserve_pool ride back through the store, or the file genome and the
77
+ // store genome are two different standards (the drain would never amend and its pool would vanish).
78
+ // NOTE (out of scope, hosted): the hosted coltrane_standards table needs these two columns before
79
+ // this select reaches the hosted drain; that migration lives outside this repo.
80
+ standards: "coltrane_standards?select=slug,version,status,domain,phases,input_types,output_types,max_examine_rounds,reserve_pool",
77
81
  // Same gap venues had, one class over: no `version`, no `org_id`. coltrane_skills is
78
82
  // versioned, so skill_evolve minting v2 leaves v1 on the table — and the loader, seeing
79
83
  // two rows for one slug, threw "duplicate skill slug" and named the SLUG. A live skill
@@ -152,9 +156,7 @@ function agentDefFromRow(row) {
152
156
  return def;
153
157
  }
154
158
  const REQUIRED_CORE_SLUGS = ["Signal", "Interpretation", "Judgment", "Plan", "Artifact", "Verdict"];
155
- /** Reconstruct the loader's in-memory genome shape from store rows ONE reconstruction,
156
- * shared by every backing, so a JWT-loaded genome and a ctk-loaded genome cannot drift. */
157
- export function reconstructGenome(rows) {
159
+ export function reconstructGenome(rows, pin) {
158
160
  const { core_types: coreRows, domain_types: typeRows, agents: agentRows, standards: standardRows, skills: skillRows } = rows;
159
161
  const load_errors = [];
160
162
  // core types — engine-owned, immutable 6. No rows visible → seed the canonical set,
@@ -267,6 +269,13 @@ export function reconstructGenome(rows) {
267
269
  throw new Error(`missing required "slug" field`);
268
270
  if (standards.has(slug))
269
271
  throw new Error(`duplicate standard slug "${slug}"`);
272
+ // F2 — a malformed examine loop is a NAMED load error, never a loop silently disabled. A
273
+ // present max_examine_rounds must be a non-negative integer; the store row keeps it (O5).
274
+ const mer = r["max_examine_rounds"];
275
+ if (mer !== undefined && mer !== null && (typeof mer !== "number" || !Number.isInteger(mer) || mer < 0)) {
276
+ throw new Error(`field max_examine_rounds must be a non-negative integer, got ${JSON.stringify(mer)}`);
277
+ }
278
+ const rp = r["reserve_pool"];
270
279
  const phases = (r["phases"] ?? []);
271
280
  const chairAgentSlugs = [
272
281
  ...new Set(phases.flatMap((p) => (p.chairs ?? []).map((c) => c.agent_slug).filter((s) => !!s))),
@@ -287,6 +296,10 @@ export function reconstructGenome(rows) {
287
296
  // satisfies. Dropping it fails composition at every entry chair (found live).
288
297
  ...(Array.isArray(r["input_types"]) ? { input_types: r["input_types"] } : {}),
289
298
  ...(Array.isArray(r["output_types"]) ? { output_types: r["output_types"] } : {}),
299
+ // O5 — carry the examine loop and reserve pool through compose (loss-free `...def`
300
+ // spread) so the reconstructed standard keeps both. Absent leaves them unset.
301
+ ...(typeof mer === "number" ? { max_examine_rounds: mer } : {}),
302
+ ...(typeof rp === "number" ? { reserve_pool: rp } : {}),
290
303
  }));
291
304
  }
292
305
  catch (e) {
@@ -398,6 +411,24 @@ export function reconstructGenome(rows) {
398
411
  const st = r["status"];
399
412
  return st === undefined || st === null || st === "active";
400
413
  });
414
+ // WI-11 · A ROOM BELONGS TO AN ORG. The store keys venues (org_id, slug, version); this layer
415
+ // keyed them by slug alone, and the two layers disagreed about whether a venue name is unique.
416
+ // The store is right: `verifier-desk` in two orgs is two rooms, not a duplicate — both were
417
+ // opened deliberately, the later one by hand.
418
+ //
419
+ // So a pinned load scopes to the acting org FIRST, and another org's room simply is not this
420
+ // genome's room. What remains after scoping is a genuine same-org collision, and that still
421
+ // refuses below.
422
+ //
423
+ // The pin is a UUID because slugs are precisely what collides here; accepting one would move the
424
+ // ambiguity rather than close it. An unrecognisable pin scopes to nothing rather than silently
425
+ // loading everything — absent and malformed must both mean DECLINE, which is the PIN LAW's own
426
+ // rule ("ambient or defaulted context is a refusal condition") reaching this layer at last.
427
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
428
+ const actingOrg = pin?.acting_org_id;
429
+ const scopedVenueRows = actingOrg === undefined
430
+ ? liveVenueRows
431
+ : liveVenueRows.filter((r) => UUID.test(actingOrg) && r["org_id"] === actingOrg);
401
432
  // A2 · TWO ACTIVE ROWS CLAIMING ONE NAME IS AN AMBIGUITY, NOT A RACE. Previously the
402
433
  // second arrival threw "duplicate venue slug" and which room the genome held was a
403
434
  // function of row order — a fact nobody declared. There is no caller and no org context
@@ -405,7 +436,7 @@ export function reconstructGenome(rows) {
405
436
  // be a coin toss wearing a determinism costume. It refuses, naming every claimant, on the
406
437
  // precedent set for principals: attribution is a fact, not a coin toss.
407
438
  const bySlug = new Map();
408
- for (const r of liveVenueRows) {
439
+ for (const r of scopedVenueRows) {
409
440
  const k = typeof r["slug"] === "string" ? r["slug"] : "?";
410
441
  bySlug.set(k, [...(bySlug.get(k) ?? []), r]);
411
442
  }
@@ -417,7 +448,7 @@ export function reconstructGenome(rows) {
417
448
  load_errors.push({ kind: "venue", path: `postgrest:coltrane_venues/${k}`, slug: k, error: msg });
418
449
  }
419
450
  }
420
- for (const r of liveVenueRows) {
451
+ for (const r of scopedVenueRows) {
421
452
  const slug = typeof r["slug"] === "string" ? r["slug"] : null;
422
453
  const path = `postgrest:coltrane_venues/${slug ?? "?"}`;
423
454
  if (slug !== null && (bySlug.get(slug)?.length ?? 0) > 1)
@@ -498,7 +529,7 @@ export function postgrestGenomeStore(ctx) {
498
529
  restGet(ctx, Q.charts),
499
530
  restGet(ctx, Q.venues),
500
531
  ]);
501
- return reconstructGenome({ core_types, domain_types, agents, standards, skills, charts, venues });
532
+ return reconstructGenome({ core_types, domain_types, agents, standards, skills, charts, venues }, { acting_org_id: ctx.acting_org_id });
502
533
  },
503
534
  async upsert(cls, payload, org_slug) {
504
535
  const res = await fetch(`${ctx.baseUrl}/rest/v1/rpc/coltrane_genome_upsert`, {
@@ -529,6 +560,9 @@ export function postgrestGenomeStore(ctx) {
529
560
  * hash inside the store and returns the org's rows. Same reconstruction as every backing.
530
561
  * Read-only by design: an agent token does not author genome (authoring is a member act,
531
562
  * governed by the upsert RPC as auth.uid()). */
563
+ /** The agent-token backing. An agent token is issued per-agent within ONE org, so its acting org is
564
+ * known to whoever minted it — passed here rather than re-derived, because a second derivation is a
565
+ * second belief about who is acting. */
532
566
  export function rpcGenomeStore(ctx) {
533
567
  return {
534
568
  async load() {
@@ -555,6 +589,15 @@ export function rpcGenomeStore(ctx) {
555
589
  throw new GenomeLoadError(`genome load (agent token): ${message}`);
556
590
  }
557
591
  const rows = JSON.parse(text);
592
+ // THE ANSWER NAMES ITS OWN ORG. `coltrane_mcp_genome` authenticates a `ctk_`, and
593
+ // `coltrane_agent_token.org_id` is `uuid NOT NULL` with one row per key — so a token resolves
594
+ // to exactly one organization BY CONSTRUCTION. Nothing selects, so nothing can select wrong.
595
+ //
596
+ // This is what lets the drain pin itself. Its claim carries `acting_for` (an agent slug) and
597
+ // no org, and it does not need one: the genome answer it is already reading names the org,
598
+ // from the authoritative source. No third repo, no second resolution path, and the caller's
599
+ // explicit pin still wins when one was given.
600
+ const answeredOrg = typeof rows.org_id === "string" ? rows.org_id : undefined;
558
601
  return reconstructGenome({
559
602
  core_types: rows.core_types ?? [],
560
603
  domain_types: rows.domain_types ?? [],
@@ -563,7 +606,7 @@ export function rpcGenomeStore(ctx) {
563
606
  skills: rows.skills ?? [],
564
607
  charts: rows.charts ?? [],
565
608
  venues: rows.venues ?? [],
566
- });
609
+ }, { acting_org_id: ctx.acting_org_id ?? answeredOrg });
567
610
  },
568
611
  async upsert() {
569
612
  throw new Error("an agent token does not author genome — authoring is a member act through the governed upsert");
@@ -1 +1 @@
1
- {"version":3,"file":"genome_store.js","sourceRoot":"","sources":["../../src/genome_store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genome_store.js","sourceRoot":"","sources":["../../src/genome_store.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,11 @@ export * from "./gig_conformance.js";
29
29
  export * from "./chart.js";
30
30
  export * from "./claude_invoker.js";
31
31
  export * from "./bifrost_invoker.js";
32
+ export * from "./turn_loop.js";
33
+ export * from "./chat_completions_port.js";
34
+ export * from "./completions_invoker.js";
35
+ export * from "./reside_backing.js";
36
+ export * from "./reside.js";
32
37
  export * from "./circle_of_fifths.js";
33
38
  export * from "./modulation_path.js";
34
39
  export * from "./tensor_read.js";
package/dist/src/index.js CHANGED
@@ -29,6 +29,15 @@ export * from "./gig_conformance.js";
29
29
  export * from "./chart.js";
30
30
  export * from "./claude_invoker.js";
31
31
  export * from "./bifrost_invoker.js";
32
+ export * from "./turn_loop.js";
33
+ export * from "./chat_completions_port.js";
34
+ export * from "./completions_invoker.js";
35
+ // THE SEAM A DEPLOYMENT MUST IMPLEMENT HAS TO BE IMPORTABLE BY ONE. `resolveSeatBacking` and
36
+ // friends were reachable from inside src/ — which satisfied the orphan ratchet and left the only
37
+ // audience that has to satisfy the interface unable to name it. Reachable-within and
38
+ // importable-from-outside are different properties; the ratchet only ever asked the first.
39
+ export * from "./reside_backing.js";
40
+ export * from "./reside.js";
32
41
  export * from "./circle_of_fifths.js";
33
42
  export * from "./modulation_path.js";
34
43
  export * from "./tensor_read.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,8FAA8F;AAC9F,mGAAmG;AACnG,8FAA8F;AAC9F,oGAAoG;AACpG,+FAA+F;AAC/F,iFAAiF;AACjF,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,6FAA6F;AAC7F,iGAAiG;AACjG,qFAAqF;AACrF,2FAA2F;AAC3F,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,8FAA8F;AAC9F,mGAAmG;AACnG,8FAA8F;AAC9F,oGAAoG;AACpG,+FAA+F;AAC/F,iFAAiF;AACjF,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * ONE selector, for EVERY door.
3
+ *
4
+ * `coltrane dispatch` / MCP `gig_dispatch` (through `bootstrapServerDeps`) and `coltrane work` (the
5
+ * drain) each need a chair invoker, and until now they chose it in two different places — so only the
6
+ * drain could reach the cheap completions port, and only by code the dispatch door did not share.
7
+ * Two doors that pick their executor by separate logic are two doors that drift; this is the single
8
+ * place the choice is made, so a deployment that seats a cheap model at one door seats it at all.
9
+ *
10
+ * THE CHOICE IS BY PRESENCE, never by a guessed default. A completions base URL in the environment
11
+ * selects the completions port; its absence keeps whatever host-tool invoker the caller configured.
12
+ * The same policy shape `selectQueueBacking` and the drain's credential mode already use.
13
+ *
14
+ * THE ENGINE NAMES NO PROVIDER. No base URL, no model id, no vendor string lives here: the URL, the
15
+ * bearer key, the tier→model map and the price table all arrive through the `env` object the caller
16
+ * passes (the caller reads the process environment; this file reads only the object it is handed).
17
+ * The host-tool invoker's options arrive whole from the caller and are passed through UNTOUCHED —
18
+ * each door configures that path exactly as it did before, and this selector unifies only the choice,
19
+ * not the configuration.
20
+ */
21
+ import type { AgentInvoker } from "./runtime.js";
22
+ import type { Registry } from "./registry.js";
23
+ import type { PriceTable } from "./turn_loop.js";
24
+ import { type ClaudeInvokerOptions } from "./claude_invoker.js";
25
+ /**
26
+ * Load and VALIDATE a deployment's price table: served model id → USD per million tokens.
27
+ *
28
+ * The contract is fail-at-startup, not fail-quiet. An absent file is the caller's decision to run
29
+ * unpriced (this function is not called), but a file that is PRESENT and broken must stop the process
30
+ * rather than let a run settle as $0 — a silent zero is a wrong number, and a cheap run priced at
31
+ * nothing hides exactly the spend the table exists to report. Every refusal NAMES the file so an
32
+ * operator can find it: malformed JSON, a non-object root, an entry that is not an object, an entry
33
+ * missing `input` or `output`, or any rate that is non-finite or negative.
34
+ */
35
+ export declare function loadPriceTable(path: string): PriceTable;
36
+ /** The deployment variables the completions seat reads, ALL through the passed env object. */
37
+ type EnvLike = Record<string, string | undefined>;
38
+ export interface SelectChairInvokerOptions {
39
+ /** The registry the completions invoker resolves output-type schemas through. Each door passes its
40
+ * own; on the host-tool path the registry rides inside `claude` and this is unused. */
41
+ registry?: Registry | undefined;
42
+ /** The host-tool (Claude) invoker options THIS caller uses today, passed through UNCHANGED when no
43
+ * completions URL is configured. The selector never merges or unifies them across doors. */
44
+ claude: ClaudeInvokerOptions;
45
+ /** Injectable transport for the completions port (tests). Absent = the global fetch. */
46
+ fetchFn?: typeof fetch | undefined;
47
+ }
48
+ /**
49
+ * Choose the chair invoker for this door from the deployment environment.
50
+ *
51
+ * `COLTRANE_COMPLETIONS_URL` present → the completions port, wired from the deployment's variables:
52
+ * bearer key, the tier→model map, the per-chair timeout, and the validated price table when
53
+ * `COLTRANE_PRICES_FILE` is set. Absent → the caller's host-tool invoker, byte-for-byte its own
54
+ * options. A malformed price table throws HERE, so a caller that constructs deps at startup fails at
55
+ * startup with the file named.
56
+ */
57
+ export declare function selectChairInvoker(env: EnvLike, opts: SelectChairInvokerOptions): AgentInvoker;
58
+ export {};
@@ -0,0 +1,110 @@
1
+ import { makeClaudeInvoker } from "./claude_invoker.js";
2
+ import { makeCompletionsInvoker } from "./completions_invoker.js";
3
+ import { makeFileTranscriptStore } from "./transcript_store.js";
4
+ import { readFileSync } from "node:fs";
5
+ import { homedir } from "node:os";
6
+ import { join } from "node:path";
7
+ /**
8
+ * Load and VALIDATE a deployment's price table: served model id → USD per million tokens.
9
+ *
10
+ * The contract is fail-at-startup, not fail-quiet. An absent file is the caller's decision to run
11
+ * unpriced (this function is not called), but a file that is PRESENT and broken must stop the process
12
+ * rather than let a run settle as $0 — a silent zero is a wrong number, and a cheap run priced at
13
+ * nothing hides exactly the spend the table exists to report. Every refusal NAMES the file so an
14
+ * operator can find it: malformed JSON, a non-object root, an entry that is not an object, an entry
15
+ * missing `input` or `output`, or any rate that is non-finite or negative.
16
+ */
17
+ export function loadPriceTable(path) {
18
+ let raw;
19
+ try {
20
+ raw = readFileSync(path, "utf8");
21
+ }
22
+ catch (e) {
23
+ throw new Error(`could not read price table "${path}": ${e instanceof Error ? e.message : String(e)}`);
24
+ }
25
+ let parsed;
26
+ try {
27
+ parsed = JSON.parse(raw);
28
+ }
29
+ catch (e) {
30
+ throw new Error(`price table "${path}" is not valid JSON: ${e instanceof Error ? e.message : String(e)}`);
31
+ }
32
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
33
+ throw new Error(`price table "${path}" must be a JSON object of model id → { input, output, cache_read?, cache_write? }`);
34
+ }
35
+ const table = {};
36
+ for (const [model, entry] of Object.entries(parsed)) {
37
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
38
+ throw new Error(`price table "${path}" entry for "${model}" must be an object with input and output rates`);
39
+ }
40
+ const e = entry;
41
+ const price = { input: 0, output: 0 };
42
+ for (const key of ["input", "output", "cache_read", "cache_write"]) {
43
+ const v = e[key];
44
+ if (v === undefined) {
45
+ // input and output are the floor of a price; cache_read / cache_write are optional. A model
46
+ // that only ever reports uncached tokens is fully priced by { input, output } alone.
47
+ if (key === "input" || key === "output") {
48
+ throw new Error(`price table "${path}" entry for "${model}" is missing "${key}"`);
49
+ }
50
+ continue;
51
+ }
52
+ if (typeof v !== "number" || !Number.isFinite(v) || v < 0) {
53
+ throw new Error(`price table "${path}" entry for "${model}" has an invalid "${key}" (${String(v)}) — ` +
54
+ `prices are non-negative USD per million tokens`);
55
+ }
56
+ price[key] = v;
57
+ }
58
+ table[model] = price;
59
+ }
60
+ return table;
61
+ }
62
+ /**
63
+ * Choose the chair invoker for this door from the deployment environment.
64
+ *
65
+ * `COLTRANE_COMPLETIONS_URL` present → the completions port, wired from the deployment's variables:
66
+ * bearer key, the tier→model map, the per-chair timeout, and the validated price table when
67
+ * `COLTRANE_PRICES_FILE` is set. Absent → the caller's host-tool invoker, byte-for-byte its own
68
+ * options. A malformed price table throws HERE, so a caller that constructs deps at startup fails at
69
+ * startup with the file named.
70
+ */
71
+ export function selectChairInvoker(env, opts) {
72
+ const completionsUrl = env["COLTRANE_COMPLETIONS_URL"];
73
+ if (completionsUrl) {
74
+ // The tier→model map is deployment-defined; the engine names no model. An unmapped tier is a
75
+ // typed refusal at the chair (the completions invoker's `unresolved_tier`), not a silent default.
76
+ const tierMap = {};
77
+ const eco = env["COLTRANE_TIER_ECONOMY"];
78
+ const std = env["COLTRANE_TIER_STANDARD"];
79
+ const prem = env["COLTRANE_TIER_PREMIUM"];
80
+ if (eco)
81
+ tierMap["economy"] = eco;
82
+ if (std)
83
+ tierMap["standard"] = std;
84
+ if (prem)
85
+ tierMap["premium"] = prem;
86
+ const pricesFile = env["COLTRANE_PRICES_FILE"];
87
+ const timeoutRaw = env["COLTRANE_CHAIR_TIMEOUT_MS"];
88
+ // contract-completions-seat-transcript-v1 (O3) — a completions seat resumes across the door only if
89
+ // its conversation is kept somewhere. Wire the engine's file-backed store: COLTRANE_TRANSCRIPTS_DIR
90
+ // when set, else <COLTRANE_OUTPUTS_DIR or $HOME/.eir/coltrane_outputs>/transcripts — reading only
91
+ // the env object handed in, the same "the caller reads process.env, this file reads the object"
92
+ // discipline the rest of the selector keeps.
93
+ const transcriptsDir = env["COLTRANE_TRANSCRIPTS_DIR"] ??
94
+ join(env["COLTRANE_OUTPUTS_DIR"] ?? join(env["HOME"] ?? env["USERPROFILE"] ?? homedir(), ".eir/coltrane_outputs"), "transcripts");
95
+ return makeCompletionsInvoker({
96
+ baseUrl: completionsUrl,
97
+ apiKey: env["COLTRANE_COMPLETIONS_KEY"] ?? "",
98
+ ...(opts.registry ? { registry: opts.registry } : {}),
99
+ tierMap,
100
+ transcripts: makeFileTranscriptStore(transcriptsDir),
101
+ // A price table is loaded and validated ONLY when configured. Absent = spend is reported
102
+ // unpriced (never $0); malformed = loadPriceTable throws and the process refuses to start.
103
+ ...(pricesFile ? { prices: loadPriceTable(pricesFile) } : {}),
104
+ ...(opts.fetchFn ? { fetchFn: opts.fetchFn } : {}),
105
+ ...(timeoutRaw ? { timeoutMs: Number(timeoutRaw) } : {}),
106
+ });
107
+ }
108
+ return makeClaudeInvoker(opts.claude);
109
+ }
110
+ //# sourceMappingURL=invoker_selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoker_selection.js","sourceRoot":"","sources":["../../src/invoker_selection.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export interface GigUsage {
30
30
  * `genome_hash`/`run_fingerprint` exist ONLY on `kind:"gig"`, so there is nowhere to put a
31
31
  * sentinel on a promotion or an abort.
32
32
  */
33
- export type LedgerEntryKind = "gig" | "genome_mutation" | "governance";
33
+ export type LedgerEntryKind = "gig" | "genome_mutation" | "governance" | "chair_spend";
34
34
  export declare const LEDGER_SCHEMA_VERSION = 2;
35
35
  interface LedgerEntryBase {
36
36
  schema_version: typeof LEDGER_SCHEMA_VERSION;
@@ -93,6 +93,16 @@ export interface GigLedgerEntry extends LedgerEntryBase {
93
93
  genome_hash: string;
94
94
  run_fingerprint: string;
95
95
  usage?: GigUsage;
96
+ /**
97
+ * What the EARLIER attempt(s) of a RESUMED gig had spent, banked on the checkpoint this run
98
+ * restored from (contract-spend-survives-v1 O4). Kept BESIDE `usage`, never folded into it:
99
+ * `usage` is what THIS run's chairs settled, `prior_usage` is what the killed attempt settled,
100
+ * and adding them would erase the distinction (#235/#236). Absent on a cold (non-resumed) run.
101
+ * Typed `unknown` because it travels verbatim from the checkpoint's own `prior_usage: unknown`
102
+ * (src/reuse.ts) — the row records it faithfully rather than re-asserting a shape the checkpoint
103
+ * did not guarantee.
104
+ */
105
+ prior_usage?: unknown;
96
106
  }
97
107
  /** A definition entered the substrate. Identity is the canonical hash chain, NOT a run
98
108
  * fingerprint — src/genome_writer.ts used to copy `effective_hash` into both, which was a
@@ -124,7 +134,40 @@ export interface GovernanceLedgerEntry extends LedgerEntryBase {
124
134
  /** The payload. v1 dropped it entirely, leaving a durable trail of content-free UUIDs. */
125
135
  detail?: Record<string, unknown>;
126
136
  }
127
- export type LedgerEntry = GigLedgerEntry | GenomeMutationLedgerEntry | GovernanceLedgerEntry;
137
+ /**
138
+ * A single chair invocation SETTLED (contract-spend-survives-v1). One row per settled chair,
139
+ * appended the moment the invocation returns — BEFORE the next chair is invoked — so a process
140
+ * killed on a later chair leaves every earlier chair's captured spend durable. This is the fix
141
+ * for the loss the gig row alone could not prevent: the gig row is written ONCE, on the success
142
+ * path, so a gig that died on chair N lost the spend of chairs 1..N-1 (#235/#236, docs/specs/
143
+ * spend-survives.red-spec.md). For a completed gig these rows' captured cost reconciles to the
144
+ * gig row's `usage.total_cost_usd`; for a failed gig they survive though no gig row is ever sealed.
145
+ *
146
+ * Rides on the runtime/gigLedger side (SplitLedger routes it with `gig`), never the genome ledger —
147
+ * it is machine-local run accounting, not genome provenance.
148
+ */
149
+ export interface ChairSpendLedgerEntry extends LedgerEntryBase {
150
+ kind: "chair_spend";
151
+ /** The gig this chair ran under. Shared with the gig row so `query({gig_id})` reaches both. */
152
+ gig_id: string;
153
+ /** WHICH seat spent — the chair's role. */
154
+ role: string;
155
+ /** The phase the seat sat in. */
156
+ phase: string;
157
+ /** 1 on a first run; the amend re-invocation's round otherwise. Distinguishes a seat's repeated
158
+ * settlements across the examine⇄amend loop so two rows for one role are not conflated. */
159
+ round: number;
160
+ /**
161
+ * Whether this invocation reported a usable usage payload. `false` means the spend is UNKNOWN,
162
+ * not $0 (#235): an unattributed chair seals `captured:false` and carries NO `usage`, so it can
163
+ * never be summed as a $0 row and adds nothing to any reconciliation.
164
+ */
165
+ captured: boolean;
166
+ /** The chair's OWN settled spend. Present ONLY when `captured` — an uncaptured chair carries no
167
+ * cost field at all, which is what keeps "not captured" from masquerading as "$0.00". */
168
+ usage?: GigUsage;
169
+ }
170
+ export type LedgerEntry = GigLedgerEntry | GenomeMutationLedgerEntry | GovernanceLedgerEntry | ChairSpendLedgerEntry;
128
171
  export interface LedgerQuery {
129
172
  kind?: LedgerEntryKind;
130
173
  event?: string;
@@ -75,8 +75,8 @@ function rejectGigIdentity(row, kind) {
75
75
  export function validateEntry(entry) {
76
76
  const row = entry;
77
77
  const kind = row["kind"];
78
- if (kind !== "gig" && kind !== "genome_mutation" && kind !== "governance") {
79
- throw new LedgerError(`ledger entry requires kind ∈ {gig, genome_mutation, governance}; got ${JSON.stringify(kind)}`);
78
+ if (kind !== "gig" && kind !== "genome_mutation" && kind !== "governance" && kind !== "chair_spend") {
79
+ throw new LedgerError(`ledger entry requires kind ∈ {gig, genome_mutation, governance, chair_spend}; got ${JSON.stringify(kind)}`);
80
80
  }
81
81
  if (!isNonEmptyString(row["entry_id"]))
82
82
  throw new LedgerError("ledger entry requires entry_id");
@@ -95,6 +95,24 @@ export function validateEntry(entry) {
95
95
  requireHex(row, "run_fingerprint", "gig");
96
96
  return;
97
97
  }
98
+ if (kind === "chair_spend") {
99
+ // Per-chair settled-spend accounting, NOT a run: it names its gig and seat but carries no
100
+ // reproducibility identity, so the gig-identity rejection below applies to it too.
101
+ if (!isNonEmptyString(row["gig_id"]))
102
+ throw new LedgerError("chair_spend entry requires gig_id");
103
+ if (!isNonEmptyString(row["role"]))
104
+ throw new LedgerError("chair_spend entry requires role");
105
+ if (!isNonEmptyString(row["phase"]))
106
+ throw new LedgerError("chair_spend entry requires phase");
107
+ if (typeof row["round"] !== "number")
108
+ throw new LedgerError("chair_spend entry requires round (a number)");
109
+ if (typeof row["captured"] !== "boolean") {
110
+ throw new LedgerError("chair_spend entry requires captured (a boolean) — an unattributed chair is captured:false, " +
111
+ "never a $0 row (#235)");
112
+ }
113
+ rejectGigIdentity(row, "chair_spend");
114
+ return;
115
+ }
98
116
  if (!isNonEmptyString(row["event"]))
99
117
  throw new LedgerError(`${kind} entry requires event`);
100
118
  if (!isNonEmptyString(row["subject_slug"])) {
@@ -373,7 +391,9 @@ export class SplitLedger {
373
391
  query(filter = {}) {
374
392
  if (filter.kind === "genome_mutation")
375
393
  return this.genomeLedger.query(filter);
376
- if (filter.kind === "gig" || filter.kind === "governance")
394
+ // chair_spend rides with gig/governance on the runtime side (see append), so a kind-filtered
395
+ // read of it short-circuits to the gig ledger and never parses the genome file.
396
+ if (filter.kind === "gig" || filter.kind === "governance" || filter.kind === "chair_spend")
377
397
  return this.gigLedger.query(filter);
378
398
  return [...this.genomeLedger.query(filter), ...this.gigLedger.query(filter)];
379
399
  }