@eir-labs/coltrane 0.5.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +23 -0
  2. package/agents/bill.json +59 -0
  3. package/agents/deploy-agent.json +68 -0
  4. package/agents/deploy-scout.json +40 -0
  5. package/agents/john.json +42 -0
  6. package/agents/miles.json +44 -0
  7. package/charts/software-delivery-v1.json +9 -0
  8. package/charts/software-delivery-v2.json +39 -0
  9. package/dist/src/bifrost_invoker.js +5 -3
  10. package/dist/src/bifrost_invoker.js.map +1 -1
  11. package/dist/src/canonical_form.d.ts +23 -0
  12. package/dist/src/canonical_form.js +53 -0
  13. package/dist/src/canonical_form.js.map +1 -1
  14. package/dist/src/chart.d.ts +254 -0
  15. package/dist/src/chart.js +897 -0
  16. package/dist/src/chart.js.map +1 -0
  17. package/dist/src/claude_invoker.d.ts +20 -3
  18. package/dist/src/claude_invoker.js +30 -5
  19. package/dist/src/claude_invoker.js.map +1 -1
  20. package/dist/src/cli.d.ts +19 -4
  21. package/dist/src/cli.js +132 -9
  22. package/dist/src/cli.js.map +1 -1
  23. package/dist/src/composition.d.ts +24 -0
  24. package/dist/src/composition.js +50 -5
  25. package/dist/src/composition.js.map +1 -1
  26. package/dist/src/conduct_daemon.d.ts +59 -0
  27. package/dist/src/conduct_daemon.js +178 -0
  28. package/dist/src/conduct_daemon.js.map +1 -0
  29. package/dist/src/genome_schema.d.ts +1476 -146
  30. package/dist/src/genome_schema.js +438 -32
  31. package/dist/src/genome_schema.js.map +1 -1
  32. package/dist/src/genome_store.d.ts +79 -0
  33. package/dist/src/genome_store.js +503 -0
  34. package/dist/src/genome_store.js.map +1 -0
  35. package/dist/src/gig_tracker.d.ts +11 -1
  36. package/dist/src/gig_tracker.js +5 -0
  37. package/dist/src/gig_tracker.js.map +1 -1
  38. package/dist/src/hosted_tools.d.ts +23 -0
  39. package/dist/src/hosted_tools.js +170 -0
  40. package/dist/src/hosted_tools.js.map +1 -0
  41. package/dist/src/index.d.ts +4 -0
  42. package/dist/src/index.js +4 -0
  43. package/dist/src/index.js.map +1 -1
  44. package/dist/src/ledger.d.ts +22 -0
  45. package/dist/src/ledger.js +4 -0
  46. package/dist/src/ledger.js.map +1 -1
  47. package/dist/src/loader.d.ts +9 -1
  48. package/dist/src/loader.js +105 -5
  49. package/dist/src/loader.js.map +1 -1
  50. package/dist/src/mcp.js +52 -5
  51. package/dist/src/mcp.js.map +1 -1
  52. package/dist/src/output_mirror.d.ts +70 -0
  53. package/dist/src/output_mirror.js +381 -0
  54. package/dist/src/output_mirror.js.map +1 -0
  55. package/dist/src/outputs.d.ts +77 -1
  56. package/dist/src/outputs.js +179 -37
  57. package/dist/src/outputs.js.map +1 -1
  58. package/dist/src/play_worker.d.ts +24 -0
  59. package/dist/src/play_worker.js +49 -0
  60. package/dist/src/play_worker.js.map +1 -0
  61. package/dist/src/registry.d.ts +2 -0
  62. package/dist/src/registry.js +63 -33
  63. package/dist/src/registry.js.map +1 -1
  64. package/dist/src/reuse.d.ts +56 -0
  65. package/dist/src/reuse.js +0 -0
  66. package/dist/src/reuse.js.map +1 -1
  67. package/dist/src/runtime.d.ts +91 -2
  68. package/dist/src/runtime.js +236 -18
  69. package/dist/src/runtime.js.map +1 -1
  70. package/dist/src/seal_drill.d.ts +32 -0
  71. package/dist/src/seal_drill.js +138 -0
  72. package/dist/src/seal_drill.js.map +1 -0
  73. package/dist/src/server.d.ts +39 -1
  74. package/dist/src/server.js +760 -68
  75. package/dist/src/server.js.map +1 -1
  76. package/dist/src/skill_subprocess.js +12 -4
  77. package/dist/src/skill_subprocess.js.map +1 -1
  78. package/dist/src/supabase_genome.d.ts +28 -0
  79. package/dist/src/supabase_genome.js +49 -0
  80. package/dist/src/supabase_genome.js.map +1 -0
  81. package/dist/src/tool_surface.d.ts +5 -0
  82. package/dist/src/tool_surface.js +15 -0
  83. package/dist/src/tool_surface.js.map +1 -0
  84. package/dist/src/version.d.ts +1 -1
  85. package/dist/src/version.js +1 -1
  86. package/dist/src/worker.d.ts +182 -0
  87. package/dist/src/worker.js +609 -0
  88. package/dist/src/worker.js.map +1 -0
  89. package/domain_types/branch-state.json +21 -0
  90. package/domain_types/change-context.json +39 -0
  91. package/domain_types/change-decision.json +36 -0
  92. package/domain_types/change-plan.json +47 -0
  93. package/domain_types/change-request.json +24 -0
  94. package/domain_types/change-set.json +46 -0
  95. package/domain_types/change-verdict.json +26 -0
  96. package/domain_types/deploy-verdict.json +23 -0
  97. package/domain_types/design-brief.json +37 -0
  98. package/domain_types/design-concept.json +36 -0
  99. package/domain_types/design-definition.json +37 -0
  100. package/domain_types/design-question.json +23 -0
  101. package/domain_types/design-verdict.json +27 -0
  102. package/domain_types/preview-deployment.json +32 -0
  103. package/institutions/quartet.json +344 -0
  104. package/package.json +21 -3
  105. package/skills/vercel-api/fixtures/error.json +10 -0
  106. package/skills/vercel-api/fixtures/ready.json +10 -0
  107. package/skills/vercel-api/fixtures/unsettled.json +10 -0
  108. package/skills/vercel-api/meta.json +10 -0
  109. package/skills/vercel-api/skill.mjs +63 -0
  110. package/standards/preview-deploy-v1.json +89 -0
  111. package/standards/product-design-v1.json +122 -0
  112. package/standards/promote-v1.json +41 -0
  113. package/standards/software-change-v1.json +147 -0
  114. package/venues/ci-deploy-room-v1.json +28 -0
  115. package/venues/empty-room-v1.json +19 -0
@@ -25,6 +25,45 @@ export const REF_RELATIONS = [
25
25
  "triggers",
26
26
  "contains",
27
27
  ];
28
+ // ═══════════════════════════════════════════════════════════════════════════════════════════════
29
+ // The performance family — how a gig id says which performance it belongs to
30
+ // ═══════════════════════════════════════════════════════════════════════════════════════════════
31
+ //
32
+ // A gig is a performance of many standards (src/chart.ts). Movement gig ids are LINKED, not
33
+ // shared: a real arrangement runs movement M of performance G under `G.m.M`, so one movement's
34
+ // checkpoint, header and ledger row cannot be another's. The chart's own gate approvals seal
35
+ // under the bare root `G`.
36
+ //
37
+ // These three functions are the ONE owner of that scheme. `chart.ts` mints ids through
38
+ // `composeMovementGigId`; this store reads them back through `performanceRoot` /
39
+ // `movementOfGigId` to decide whether two records belong to the same performance. They live at
40
+ // this layer, not in `chart.ts`, because the dependency has to point downward — the store cannot
41
+ // import the arranger, and a second copy of the separator is exactly the drift that would let
42
+ // the two disagree about what one performance is.
43
+ /** The infix that separates a performance root from a movement id. Carries dots on BOTH sides so
44
+ * it cannot occur in a bare uuid, and `.m` alone cannot be mistaken for it. */
45
+ export const MOVEMENT_ID_INFIX = ".m.";
46
+ /** A movement's gig id, from the performance's id and the movement's. */
47
+ export function composeMovementGigId(gig_id, movement_id) {
48
+ return `${gig_id}${MOVEMENT_ID_INFIX}${movement_id}`;
49
+ }
50
+ /**
51
+ * The performance a gig id belongs to. A plain gig id is its own root.
52
+ *
53
+ * Split at the FIRST infix, not the last: `composeChart`'s R1 admits `[A-Za-z0-9._-]+` for a
54
+ * movement_id, so a movement may itself contain `.m.` — and only a first-occurrence split puts
55
+ * two siblings of one performance under the same root.
56
+ */
57
+ export function performanceRoot(gig_id) {
58
+ const at = gig_id.indexOf(MOVEMENT_ID_INFIX);
59
+ return at < 0 ? gig_id : gig_id.slice(0, at);
60
+ }
61
+ /** Which movement a gig id names, or undefined when it names none (a plain gig, or a
62
+ * degenerate chart, whose one movement runs under the performance's own id). */
63
+ export function movementOfGigId(gig_id) {
64
+ const at = gig_id.indexOf(MOVEMENT_ID_INFIX);
65
+ return at < 0 ? undefined : gig_id.slice(at + MOVEMENT_ID_INFIX.length);
66
+ }
28
67
  export class OutputStoreError extends Error {
29
68
  }
30
69
  // Default disk-persistence root, matching chain_keeper.py's ~/.eir/<chain>/ shape.
@@ -85,11 +124,15 @@ export function createOutputStore(registry, options) {
85
124
  const outputs = new Map();
86
125
  const edges = [];
87
126
  const persistDir = options?.persistDir;
127
+ const mirror = options?.mirror;
88
128
  const outputsDir = persistDir ? path.join(persistDir, "outputs") : undefined;
89
129
  const refsDir = persistDir ? path.join(persistDir, "refs") : undefined;
90
- // Track which gig_ids we've hydrated so a single gig file is read at most once.
130
+ // Track which gig_ids we've hydrated so a single gig file is PARSED at most once (a file this
131
+ // process wrote is marked hydrated at write() and never read back).
91
132
  const hydratedGigs = new Set();
92
- let fullyHydrated = false;
133
+ // Orphan refs files already pulled in — so the defensive refs scan reads each file at most once
134
+ // while still picking up NEW files a peer process appends.
135
+ const hydratedRefFiles = new Set();
93
136
  const fileScans = new Map();
94
137
  const unmoved = (file, st) => {
95
138
  const prev = fileScans.get(file);
@@ -241,6 +284,7 @@ export function createOutputStore(registry, options) {
241
284
  }
242
285
  if (refsDir) {
243
286
  const refsFile = path.join(refsDir, `${gig_id}.jsonl`);
287
+ hydratedRefFiles.add(refsFile); // this gig's refs are covered — the orphan scan can skip it
244
288
  for (const ref of readRows(refsFile)) {
245
289
  if (!edges.some((e) => e.id === ref.id))
246
290
  edges.push(ref);
@@ -248,16 +292,24 @@ export function createOutputStore(registry, options) {
248
292
  }
249
293
  }
250
294
  function hydrateAll() {
251
- if (!outputsDir || fullyHydrated)
295
+ if (!outputsDir)
252
296
  return;
253
- fullyHydrated = true;
297
+ // RE-SCAN the directory every call. The old `fullyHydrated` latch cached the first scan for
298
+ // the process's life, so a long-lived MCP server NEVER saw a gig sealed by a separate CLI
299
+ // process after startup — `output_query`/`output_trace` returned empty for a payload file
300
+ // that sat right there on disk. The scan is a `readdir` (cheap); `hydrateGig` skips any gig
301
+ // already PARSED, so the per-call cost is one directory listing, not a full re-read.
254
302
  for (const file of listJsonl(outputsDir)) {
255
303
  const base = path.basename(file, ".jsonl");
256
304
  hydrateGig(base);
257
305
  }
258
- // Also pull in any orphan refs files (defensive — addRef writes by from_gig_id).
306
+ // Also pull in any orphan refs files (defensive — addRef writes by from_gig_id). Each file is
307
+ // read at most once, but a NEW file a peer appends is still picked up on a later call.
259
308
  if (refsDir) {
260
309
  for (const file of listJsonl(refsDir)) {
310
+ if (hydratedRefFiles.has(file))
311
+ continue;
312
+ hydratedRefFiles.add(file);
261
313
  for (const ref of readRows(file)) {
262
314
  if (!edges.some((e) => e.id === ref.id))
263
315
  edges.push(ref);
@@ -315,6 +367,20 @@ export function createOutputStore(registry, options) {
315
367
  hydratedGigs.add(rec.gig_id);
316
368
  appendJsonl(path.join(outputsDir, `${rec.gig_id}.jsonl`), rec);
317
369
  }
370
+ // Two-tier mirror: a compact Tier-1 metadata row + a content-addressed Tier-2 payload
371
+ // artifact (+ credential-gated remote drain). This is what MCP retrieval traverses, and it
372
+ // is where a CLI-sealed gig becomes reliably readable. A mirror failure must not fail a
373
+ // finished seal, so it is best-effort.
374
+ if (mirror) {
375
+ try {
376
+ mirror.persist(rec);
377
+ }
378
+ catch (e) {
379
+ if (process.env["COLTRANE_DRAIN_DEBUG"]) {
380
+ console.warn(`[outputs] mirror.persist failed: ${e instanceof Error ? e.message : String(e)}`);
381
+ }
382
+ }
383
+ }
318
384
  return rec;
319
385
  },
320
386
  get(id) {
@@ -360,43 +426,118 @@ export function createOutputStore(registry, options) {
360
426
  return [...edges];
361
427
  },
362
428
  trace(id, opts) {
363
- // Walk backward: a node's parents are its input_refs plus the targets of
364
- // its derived_from/refines edges. Returns every reachable ancestor (the
365
- // provenance closure), cycle-safe.
366
- hydrateAll();
429
+ // Walk the provenance graph from the seed, cycle-safe, seed excluded.
367
430
  //
368
- // max_depth: hard cap on hop count from the seed. depth=0 → no walk
369
- // (returns []); depth=1 → only direct parents; etc.
431
+ // UPSTREAM: a node's parents are its `input_refs` plus the targets of its
432
+ // derived_from/refines edges.
433
+ // DOWNSTREAM: a node's children are the records naming it in their `input_refs`. The
434
+ // reverse-edge set is deliberately NOT walked here: the runtime stamps a derived_from edge
435
+ // for every `input_refs` entry it seals, so the reverse of `input_refs` already covers
436
+ // every engine-produced descendant, and widening it would change what an existing
437
+ // downstream answer contains for reasons that have nothing to do with movements.
370
438
  //
371
- // gig_id scope: the walk only follows into nodes that share the seed's
372
- // gig_id. Cross-gig ancestors are not surfaced.
439
+ // max_depth: hard cap on hop count from the seed. depth=0 → no walk (returns []);
440
+ // depth=1 only the immediate neighbours; etc.
441
+ //
442
+ // SCOPE — the PERFORMANCE. The walk follows an edge into any gig of the seed's performance
443
+ // (`performanceRoot`), which is what makes the chain across a chart's movement boundary
444
+ // visible instead of merely intact; it refuses an edge into an unrelated gig, which is the
445
+ // cross-gig leak PR #85 closed. Both ends of the rule matter: the old single-gig scope
446
+ // reported a movement's fragment as if it were the whole chain, and no scope at all would
447
+ // let a hand-authored reference drag another performance into this one's audit.
448
+ hydrateAll();
373
449
  const maxDepth = opts?.max_depth;
450
+ const direction = opts?.direction ?? "upstream";
374
451
  const seed = outputs.get(id);
375
452
  const seedGigId = seed?.gig_id;
376
- const seen = new Set();
453
+ const family = seedGigId === undefined ? undefined : performanceRoot(seedGigId);
454
+ const inFamily = (rec) => family === undefined || performanceRoot(rec.gig_id) === family;
455
+ /** The record, wearing the labels it has earned — and NOTHING when it has earned none, so a
456
+ * plain gig's trace hands back the store's own rows exactly as it always did. */
457
+ const label = (rec) => {
458
+ const movement = movementOfGigId(rec.gig_id);
459
+ const crossed = seedGigId !== undefined && rec.gig_id !== seedGigId;
460
+ if (movement === undefined && !crossed)
461
+ return rec;
462
+ return {
463
+ ...rec,
464
+ ...(movement !== undefined ? { movement, performance_gig_id: performanceRoot(rec.gig_id) } : {}),
465
+ ...(crossed ? { crossed: true } : {}),
466
+ };
467
+ };
468
+ /** A reference we cannot resolve, named. Its sha is the referrer's engine-stamped
469
+ * `input_shas` entry — the one fact about the absent record that IS known. */
470
+ const hole = (missingId, referenced_by) => {
471
+ const from = outputs.get(referenced_by);
472
+ const at = from ? from.input_refs.indexOf(missingId) : -1;
473
+ return {
474
+ id: missingId,
475
+ content_sha: (at >= 0 ? from.input_shas[at] : undefined) ?? "",
476
+ missing: true,
477
+ referenced_by,
478
+ };
479
+ };
480
+ /** Emitted already (the seed counts as emitted, so it is never its own ancestor or
481
+ * descendant) — the dedup `direction: "both"` needs across its two walks. */
482
+ const emitted = new Set([id]);
377
483
  const order = [];
378
- const stack = [{ id, depth: 0 }];
379
- while (stack.length) {
380
- const { id: cur, depth } = stack.pop();
381
- if (seen.has(cur))
382
- continue;
383
- seen.add(cur);
384
- const rec = outputs.get(cur);
385
- if (!rec)
386
- continue;
387
- if (cur !== id) {
388
- if (seedGigId !== undefined && rec.gig_id !== seedGigId)
484
+ if (direction !== "downstream") {
485
+ // `walked` is the CYCLE guard and is separate from `emitted` on purpose: a provenance
486
+ // cycle leads back to the seed, and a guard that treated the seed as unvisited would
487
+ // expand it forever.
488
+ const walked = new Set();
489
+ // `from` is the record that named this id, so an unresolvable one can say where the hole
490
+ // is. The seed has no referrer, so a seed this store does not hold walks to nothing —
491
+ // unchanged, and correct: nobody asserted the seed exists except the caller.
492
+ const stack = [{ id, depth: 0 }];
493
+ while (stack.length) {
494
+ const { id: cur, depth, from } = stack.pop();
495
+ if (walked.has(cur))
389
496
  continue;
390
- order.push(rec);
497
+ walked.add(cur);
498
+ const rec = outputs.get(cur);
499
+ if (!rec) {
500
+ if (from !== undefined)
501
+ order.push(hole(cur, from));
502
+ continue;
503
+ }
504
+ if (cur !== id) {
505
+ if (!inFamily(rec))
506
+ continue;
507
+ emitted.add(cur);
508
+ order.push(label(rec));
509
+ }
510
+ if (maxDepth !== undefined && depth >= maxDepth)
511
+ continue;
512
+ for (const p of rec.input_refs)
513
+ stack.push({ id: p, depth: depth + 1, from: cur });
514
+ for (const e of edges) {
515
+ if (e.from_output_id === cur && (e.relation === "derived_from" || e.relation === "refines")) {
516
+ stack.push({ id: e.to_output_id, depth: depth + 1, from: cur });
517
+ }
518
+ }
391
519
  }
392
- if (maxDepth !== undefined && depth >= maxDepth)
393
- continue;
394
- for (const p of rec.input_refs)
395
- stack.push({ id: p, depth: depth + 1 });
396
- for (const e of edges) {
397
- if (e.from_output_id === cur && (e.relation === "derived_from" || e.relation === "refines")) {
398
- stack.push({ id: e.to_output_id, depth: depth + 1 });
520
+ }
521
+ if (direction !== "upstream") {
522
+ // Breadth-first over the frontier. A descendant cannot be a hole: this direction
523
+ // DISCOVERS children by reading records the store holds, so an absent record is not a
524
+ // reference anyone made it is simply not here to be found.
525
+ const all = [...outputs.values()];
526
+ let frontier = new Set([id]);
527
+ for (let depth = 0; frontier.size > 0 && (maxDepth === undefined || depth < maxDepth); depth++) {
528
+ const next = new Set();
529
+ for (const o of all) {
530
+ if (emitted.has(o.id))
531
+ continue;
532
+ if (!o.input_refs.some((r) => frontier.has(r)))
533
+ continue;
534
+ if (!inFamily(o))
535
+ continue;
536
+ emitted.add(o.id);
537
+ order.push(label(o));
538
+ next.add(o.id);
399
539
  }
540
+ frontier = next;
400
541
  }
401
542
  }
402
543
  return order;
@@ -452,10 +593,11 @@ export function createOutputStore(registry, options) {
452
593
  // gig a process ran was exempt from the corruption scan for that process's life —
453
594
  // precisely the torn-append-from-a-crash case #248 exists to catch. The old code
454
595
  // answered `{ok:true, scanned:0}` for a directory full of its own output.
455
- // • `hydrateAll` short-circuits on `fullyHydrated`, so the SECOND system_health
456
- // re-asserted the first one's answer no matter what had happened on disk since.
457
- // CLAUDE.md tells operators to run system_health first thing in a session, which
458
- // pins that snapshot at the earliest possible moment.
596
+ // • `hydrateGig` skips a gig it has already PARSED, so a torn append to a gig this
597
+ // process already read would not be re-read by the reads themselves. (The old
598
+ // `fullyHydrated` latch made this worse it cached the WHOLE first scan for the
599
+ // process's life; that latch is gone, but per-gig parse-skipping remains, so an
600
+ // honest damage report still cannot rely on read side effects.)
459
601
  //
460
602
  // A damage report has to describe the bytes now, not the bytes we happened to have
461
603
  // cached. `scanFile` re-reads a file whose (size, mtime) has moved since we last looked
@@ -1 +1 @@
1
- {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../src/outputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../src/outputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare const GIG_BRANCH_RE: RegExp;
2
+ export declare function gigBranchName(queueId: string): string;
3
+ export declare function assertGigBranchLaw(branch: string): void;
4
+ export declare function defaultStagesDir(root?: string): string;
5
+ export interface GitDeps {
6
+ run(bin: string, args: readonly string[]): string;
7
+ }
8
+ export declare function stageGig(opts: {
9
+ repo_url: string;
10
+ queue_id: string;
11
+ stage_dir: string;
12
+ operator_tree?: string;
13
+ }, deps?: GitDeps): {
14
+ stage_dir: string;
15
+ branch: string;
16
+ repo_url: string;
17
+ };
18
+ export declare function publishGig(opts: {
19
+ stage_dir: string;
20
+ branch: string;
21
+ }, deps?: GitDeps): {
22
+ pushed: true;
23
+ branch: string;
24
+ };
@@ -0,0 +1,49 @@
1
+ import * as path from "node:path";
2
+ import { execFileSync } from "node:child_process";
3
+ export const GIG_BRANCH_RE = /^gig\/[a-z0-9]{8}$/;
4
+ export function gigBranchName(queueId) {
5
+ const id8 = queueId.toLowerCase().slice(0, 8);
6
+ if (!/^[a-z0-9]{8}$/.test(id8)) {
7
+ throw new Error(`gigBranchName: queue id must yield 8 [a-z0-9] chars, got "${id8}"`);
8
+ }
9
+ return `gig/${id8}`;
10
+ }
11
+ export function assertGigBranchLaw(branch) {
12
+ if (!GIG_BRANCH_RE.test(branch)) {
13
+ throw new Error(`assertGigBranchLaw: branch "${branch}" violates the gig branch law (must match ${GIG_BRANCH_RE})`);
14
+ }
15
+ }
16
+ export function defaultStagesDir(root) {
17
+ const override = process.env["COLTRANE_STAGES_DIR"];
18
+ if (override && override.length > 0)
19
+ return override;
20
+ if (root)
21
+ return path.join(root, ".coltrane", "stages");
22
+ const home = process.env["HOME"] ?? process.env["USERPROFILE"] ?? ".";
23
+ return path.join(home, ".eir", "coltrane_stages");
24
+ }
25
+ const defaultDeps = {
26
+ run(bin, args) {
27
+ return execFileSync(bin, args, { encoding: "utf8" });
28
+ },
29
+ };
30
+ export function stageGig(opts, deps = defaultDeps) {
31
+ const branch = gigBranchName(opts.queue_id);
32
+ const stageAbs = path.resolve(opts.stage_dir);
33
+ const operatorTree = path.resolve(opts.operator_tree ?? process.cwd());
34
+ // Fail closed: stage must not be or overlap with the operator working tree
35
+ if (stageAbs === operatorTree ||
36
+ stageAbs.startsWith(operatorTree + path.sep) ||
37
+ operatorTree.startsWith(stageAbs + path.sep)) {
38
+ throw new Error(`stageGig: stage must be a fresh clone, not the operator working tree (stage="${stageAbs}", operator="${operatorTree}")`);
39
+ }
40
+ deps.run("git", ["clone", "--depth", "1", opts.repo_url, stageAbs]);
41
+ deps.run("git", ["-C", stageAbs, "checkout", "-b", branch]);
42
+ return { stage_dir: stageAbs, branch, repo_url: opts.repo_url };
43
+ }
44
+ export function publishGig(opts, deps = defaultDeps) {
45
+ assertGigBranchLaw(opts.branch);
46
+ deps.run("git", ["-C", opts.stage_dir, "push", "-u", "origin", opts.branch]);
47
+ return { pushed: true, branch: opts.branch };
48
+ }
49
+ //# sourceMappingURL=play_worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"play_worker.js","sourceRoot":"","sources":["../../src/play_worker.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export interface Registry {
36
36
  resolveType(query: ResolveQuery): ResolveResult;
37
37
  validate(output: OutputToValidate): RegistryValidationResult;
38
38
  listTypes(): DomainType[];
39
+ effectiveSchema(slug: string): Record<string, unknown> | undefined;
39
40
  replaceTypes(defs: readonly DomainType[]): {
40
41
  added: string[];
41
42
  modified: string[];
@@ -54,6 +55,7 @@ export declare function domainTypeDefect(def: {
54
55
  slug: string;
55
56
  extends: string;
56
57
  schema?: unknown;
58
+ required_fields?: readonly string[];
57
59
  }): string | null;
58
60
  export declare function createRegistry(initial?: DomainType[]): Registry;
59
61
  export declare function loadRegistry(genome: LoadedGenome): Registry;
@@ -127,6 +127,27 @@ export function domainTypeDefect(def) {
127
127
  }
128
128
  }
129
129
  }
130
+ // 2026-08-08 — a required field declared NOWHERE. The seal enforces
131
+ // union(schema.required, required_fields) (#229), but a field in that union that is
132
+ // neither an own property nor a core-inherited property is invisible to every producer:
133
+ // the prompt cannot describe it, so the first symptom is a terminal-chair seal abort —
134
+ // the exact failure mode of three consecutive live gigs. Refuse it at authoring time,
135
+ // where the author can still see the typo. Core-inherited names (Signal.source,
136
+ // Interpretation.claims, …) are DECLARED — the merged schema carries them — so
137
+ // requiring them is legal and common; only a name with no declaration anywhere is dead.
138
+ const ownPropNames = Object.keys((def.schema?.properties) ?? {});
139
+ const corePropNames = Object.keys(CORE_SCHEMA_PROPS[def.extends] ?? {});
140
+ const declaredNames = new Set([...ownPropNames, ...corePropNames]);
141
+ const requiredUnion = [
142
+ ...new Set([
143
+ ...((def.schema?.required) ?? []),
144
+ ...(def.required_fields ?? []),
145
+ ]),
146
+ ];
147
+ const undeclared = requiredUnion.filter((f) => !declaredNames.has(f));
148
+ if (undeclared.length > 0) {
149
+ return `requires ${undeclared.map((f) => `"${f}"`).join(", ")} but declares no such propert${undeclared.length === 1 ? "y" : "ies"} — neither an own schema property nor a property inherited from ${def.extends}. A required field with no declaration is invisible to every producer and enforced at the seal anyway; the first symptom is a terminal-chair abort. Declare the field or drop the requirement`;
150
+ }
130
151
  return null;
131
152
  }
132
153
  export function createRegistry(initial = []) {
@@ -156,6 +177,33 @@ export function createRegistry(initial = []) {
156
177
  const action = best >= 80 ? "use" : best >= 50 ? "extend" : "create";
157
178
  return { score: best, action, candidates };
158
179
  }
180
+ // THE effective schema — the one object both the seal (validate) and the producer
181
+ // prompt (effectiveSchema → promptSchemaFor) read. Inherit the base core type's
182
+ // properties, then let the subtype overload + extend (#227: the core's substance
183
+ // floor is additionally forced at the seal boundary, see output_validation.ts).
184
+ // #200 — honor the type's declared additionalProperties (closed-by-default).
185
+ // #229 — `required` is the UNION of schema.required and required_fields: two authoring
186
+ // conventions exist in the genome, and precedence would silently void one of them.
187
+ // 2026-08-08 — this construction was previously inlined in validate() only, while the
188
+ // prompt rendered the RAW authored schema; a field required here but undeclared there
189
+ // was invisible to every producer and enforced anyway (three live chair failures).
190
+ function effective(dt) {
191
+ const baseProps = CORE_SCHEMA_PROPS[dt.extends] ?? {};
192
+ const ownProps = dt.schema.properties ?? {};
193
+ const additionalProperties = dt.schema.additionalProperties ?? false;
194
+ const declaredRequired = [
195
+ ...new Set([
196
+ ...((dt.schema.required) ?? []),
197
+ ...dt.required_fields,
198
+ ]),
199
+ ];
200
+ return {
201
+ type: "object",
202
+ properties: { ...baseProps, ...ownProps },
203
+ required: declaredRequired,
204
+ additionalProperties,
205
+ };
206
+ }
159
207
  return {
160
208
  registerType(def) {
161
209
  if (!isCoreType(def.extends)) {
@@ -236,39 +284,11 @@ export function createRegistry(initial = []) {
236
284
  // subtype's OWN declared contract; `required` below stays the subtype's own because
237
285
  // the core's floor is already enforced unconditionally one layer out — not because
238
286
  // base fields are optional.
239
- const baseProps = CORE_SCHEMA_PROPS[dt.extends] ?? {};
240
- const ownProps = dt.schema.properties ?? {};
241
- // #200 honor the type's declared additionalProperties. Closed-by-default
242
- // stays the discipline (undeclared false), but a type that opts into open
243
- // extension with `additionalProperties: true` accepts agent-added contextual
244
- // fields at seal instead of aborting the terminal chair.
245
- const additionalProperties = dt.schema.additionalProperties ?? false;
246
- // #229 — a type's required fields may be declared in EITHER place, and both are
247
- // honored. Two authoring conventions exist in the genome and nothing reconciles
248
- // them: most types populate `required_fields` and leave `schema.required` empty;
249
- // the hand-authored seeding/bootstrap types do the reverse. Reading only
250
- // `required_fields` (as this did) silently discarded the declaration of every type
251
- // in the second group, so `{}` sealed as a well-formed instance of a type declaring
252
- // 3-6 required fields.
253
- //
254
- // UNION, not precedence. `type_extend` (src/server.ts:609) resolves the same
255
- // ambiguity as `schema.required ?? required_fields`, but precedence is the wrong
256
- // rule at seal time: it makes one declaration silently void the other. No type in
257
- // the genome populates both today, so the two rules are indistinguishable on
258
- // current data — which is exactly why the safer rule should be the one that gets
259
- // frozen in. Everything an author wrote down is enforced.
260
- const declaredRequired = [
261
- ...new Set([
262
- ...((dt.schema.required) ?? []),
263
- ...dt.required_fields,
264
- ]),
265
- ];
266
- const schema = {
267
- type: "object",
268
- properties: { ...baseProps, ...ownProps },
269
- required: declaredRequired,
270
- additionalProperties,
271
- };
287
+ // One construction for producer and seal — `effective()` below. The #200/#229
288
+ // reasoning (additionalProperties honored; required = UNION of both declaration
289
+ // styles) lives on that function now; validate() and effectiveSchema() must never
290
+ // fork it (2026-08-08 producer/enforcer unification).
291
+ const schema = effective(dt);
272
292
  const validateFn = ajv.compile(schema);
273
293
  const ok = validateFn(output.data);
274
294
  // Preserve instancePath + keyword in the error projection so operators see
@@ -296,6 +316,16 @@ export function createRegistry(initial = []) {
296
316
  listTypes() {
297
317
  return [...types.values()];
298
318
  },
319
+ effectiveSchema(slug) {
320
+ // Mirrors validate()'s freeform stances: no slug / bare core / unknown → no
321
+ // domain schema to show (the substance floor still binds at the seal, #227).
322
+ if (!slug || isCoreType(slug))
323
+ return undefined;
324
+ const dt = types.get(slug);
325
+ if (!dt)
326
+ return undefined;
327
+ return effective(dt);
328
+ },
299
329
  };
300
330
  }
301
331
  export function loadRegistry(genome) {