@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.
- package/README.md +23 -0
- package/agents/bill.json +59 -0
- package/agents/deploy-agent.json +68 -0
- package/agents/deploy-scout.json +40 -0
- package/agents/john.json +42 -0
- package/agents/miles.json +44 -0
- package/charts/software-delivery-v1.json +9 -0
- package/charts/software-delivery-v2.json +39 -0
- package/dist/src/bifrost_invoker.js +5 -3
- package/dist/src/bifrost_invoker.js.map +1 -1
- package/dist/src/canonical_form.d.ts +23 -0
- package/dist/src/canonical_form.js +53 -0
- package/dist/src/canonical_form.js.map +1 -1
- package/dist/src/chart.d.ts +254 -0
- package/dist/src/chart.js +897 -0
- package/dist/src/chart.js.map +1 -0
- package/dist/src/claude_invoker.d.ts +20 -3
- package/dist/src/claude_invoker.js +30 -5
- package/dist/src/claude_invoker.js.map +1 -1
- package/dist/src/cli.d.ts +19 -4
- package/dist/src/cli.js +132 -9
- package/dist/src/cli.js.map +1 -1
- package/dist/src/composition.d.ts +24 -0
- package/dist/src/composition.js +50 -5
- package/dist/src/composition.js.map +1 -1
- package/dist/src/conduct_daemon.d.ts +59 -0
- package/dist/src/conduct_daemon.js +178 -0
- package/dist/src/conduct_daemon.js.map +1 -0
- package/dist/src/genome_schema.d.ts +1476 -146
- package/dist/src/genome_schema.js +438 -32
- package/dist/src/genome_schema.js.map +1 -1
- package/dist/src/genome_store.d.ts +79 -0
- package/dist/src/genome_store.js +503 -0
- package/dist/src/genome_store.js.map +1 -0
- package/dist/src/gig_tracker.d.ts +11 -1
- package/dist/src/gig_tracker.js +5 -0
- package/dist/src/gig_tracker.js.map +1 -1
- package/dist/src/hosted_tools.d.ts +23 -0
- package/dist/src/hosted_tools.js +170 -0
- package/dist/src/hosted_tools.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/ledger.d.ts +22 -0
- package/dist/src/ledger.js +4 -0
- package/dist/src/ledger.js.map +1 -1
- package/dist/src/loader.d.ts +9 -1
- package/dist/src/loader.js +105 -5
- package/dist/src/loader.js.map +1 -1
- package/dist/src/mcp.js +52 -5
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/output_mirror.d.ts +70 -0
- package/dist/src/output_mirror.js +381 -0
- package/dist/src/output_mirror.js.map +1 -0
- package/dist/src/outputs.d.ts +77 -1
- package/dist/src/outputs.js +179 -37
- package/dist/src/outputs.js.map +1 -1
- package/dist/src/play_worker.d.ts +24 -0
- package/dist/src/play_worker.js +49 -0
- package/dist/src/play_worker.js.map +1 -0
- package/dist/src/registry.d.ts +2 -0
- package/dist/src/registry.js +63 -33
- package/dist/src/registry.js.map +1 -1
- package/dist/src/reuse.d.ts +56 -0
- package/dist/src/reuse.js +0 -0
- package/dist/src/reuse.js.map +1 -1
- package/dist/src/runtime.d.ts +91 -2
- package/dist/src/runtime.js +236 -18
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/seal_drill.d.ts +32 -0
- package/dist/src/seal_drill.js +138 -0
- package/dist/src/seal_drill.js.map +1 -0
- package/dist/src/server.d.ts +39 -1
- package/dist/src/server.js +760 -68
- package/dist/src/server.js.map +1 -1
- package/dist/src/skill_subprocess.js +12 -4
- package/dist/src/skill_subprocess.js.map +1 -1
- package/dist/src/supabase_genome.d.ts +28 -0
- package/dist/src/supabase_genome.js +49 -0
- package/dist/src/supabase_genome.js.map +1 -0
- package/dist/src/tool_surface.d.ts +5 -0
- package/dist/src/tool_surface.js +15 -0
- package/dist/src/tool_surface.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/worker.d.ts +182 -0
- package/dist/src/worker.js +609 -0
- package/dist/src/worker.js.map +1 -0
- package/domain_types/branch-state.json +21 -0
- package/domain_types/change-context.json +39 -0
- package/domain_types/change-decision.json +36 -0
- package/domain_types/change-plan.json +47 -0
- package/domain_types/change-request.json +24 -0
- package/domain_types/change-set.json +46 -0
- package/domain_types/change-verdict.json +26 -0
- package/domain_types/deploy-verdict.json +23 -0
- package/domain_types/design-brief.json +37 -0
- package/domain_types/design-concept.json +36 -0
- package/domain_types/design-definition.json +37 -0
- package/domain_types/design-question.json +23 -0
- package/domain_types/design-verdict.json +27 -0
- package/domain_types/preview-deployment.json +32 -0
- package/institutions/quartet.json +344 -0
- package/package.json +21 -3
- package/skills/vercel-api/fixtures/error.json +10 -0
- package/skills/vercel-api/fixtures/ready.json +10 -0
- package/skills/vercel-api/fixtures/unsettled.json +10 -0
- package/skills/vercel-api/meta.json +10 -0
- package/skills/vercel-api/skill.mjs +63 -0
- package/standards/preview-deploy-v1.json +89 -0
- package/standards/product-design-v1.json +122 -0
- package/standards/promote-v1.json +41 -0
- package/standards/software-change-v1.json +147 -0
- package/venues/ci-deploy-room-v1.json +28 -0
- package/venues/empty-room-v1.json +19 -0
package/dist/src/outputs.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
295
|
+
if (!outputsDir)
|
|
252
296
|
return;
|
|
253
|
-
fullyHydrated
|
|
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
|
|
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
|
-
//
|
|
369
|
-
//
|
|
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
|
-
//
|
|
372
|
-
//
|
|
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
|
|
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
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
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
|
-
|
|
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
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
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
|
-
// • `
|
|
456
|
-
//
|
|
457
|
-
//
|
|
458
|
-
//
|
|
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
|
package/dist/src/outputs.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAW,oBAAoB,CAAC;AAE1D,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,6DAA6D,GAAG,GAAG,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,GAAG,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,6CAA6C,aAAa,GAAG,CACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;IACtE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACpD,CAAC;AAMD,MAAM,WAAW,GAAY;IAC3B,GAAG,CAAC,GAAW,EAAE,IAAuB;QACtC,OAAO,YAAY,CAAC,GAAG,EAAE,IAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,QAAQ,CACtB,IAKC,EACD,OAAgB,WAAW;IAE3B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,2EAA2E;IAC3E,IACE,QAAQ,KAAK,YAAY;QACzB,QAAQ,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5C,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,gFAAgF,QAAQ,gBAAgB,YAAY,IAAI,CACzH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAA2C,EAC3C,OAAgB,WAAW;IAE3B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/C,CAAC"}
|
package/dist/src/registry.d.ts
CHANGED
|
@@ -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;
|
package/dist/src/registry.js
CHANGED
|
@@ -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
|
-
|
|
240
|
-
|
|
241
|
-
//
|
|
242
|
-
//
|
|
243
|
-
|
|
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) {
|