@eir-labs/coltrane 0.24.12 → 0.24.14

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/dist/src/cli.d.ts CHANGED
@@ -31,7 +31,7 @@ export interface CliIO {
31
31
  /** Injected for tests. Production reads stdin for `--input -`. */
32
32
  stdin?: () => string;
33
33
  }
34
- export declare const USAGE = "coltrane 0.24.12\n\n coltrane validate load the genome; exit non-zero on load errors\n coltrane dispatch <standard> run a standard\n coltrane monitor <gig-id> report a gig's progress\n coltrane logs <gig-id> per-chair logs for a gig\n coltrane abort <gig-id> stop a running gig\n coltrane trace <output-id> walk an output's provenance\n coltrane simulate <standard> cost/shape a standard without running it\n coltrane health engine + store health\n coltrane serve run the MCP server on stdio\n coltrane enqueue <standard> queue a gig on the LOCAL file queue (no store, no key)\n (env: COLTRANE_QUEUE_DIR \u2014 its absence is the whole\n difference between local and hosted)\n coltrane work claim one queued gig from the org store and run it\n coltrane work --check report whether this box's drain environment is configured\n and exit without claiming (0 ready, 1 not ready)\n (env: COLTRANE_STORE_URL, COLTRANE_STORE_ANON,\n COLTRANE_AGENT_TOKEN; results drain via\n COLTRANE_DRAIN_URL + COLTRANE_DRAIN_KEY;\n checkpoints under COLTRANE_WORKER_CHECKPOINTS,\n default ~/.coltrane/worker-checkpoints;\n exit 0 complete or parked, 1 failed, 3 queue empty)\n\nOptions\n --input <json|@file|-> dispatch payload; @file reads a file, - reads stdin\n --depth <skim|standard|deep> tighten the per-chair turn cap\n --budget <dollars> per-gig ceiling; the run stops when it is gone\n --reuse allow chair-level reuse of prior sealed outputs\n --resume <gig-id> continue a gig that died mid-pipeline\n --approve <role>=<json|@file> a human chair's verdict; repeat once per chair\n --as <name> who is approving; sealed as the verdict's author\n --wait block until the run finishes\n --follow poll until the gig reaches a terminal state\n --direction <upstream|downstream|both> for trace\n --json print the raw result to stdout\n --genome <path> genome root (default: $COLTRANE_GENOME or cwd)\n --help, --version\n\nA dispatch that reaches a chair a HUMAN holds parks: it names the waiting chair and exits 0,\nbecause a gig waiting on a person is not a failed gig. Approve it on the resume \u2014\n\n coltrane dispatch <standard> --resume <gig> \\\n --approve approve=@verdict.json --as eugene\n\n--input is NOT required on an approve-only resume: when every remaining chair is human the\ncheckpoint's recorded payload stands and the omission inherits it. If you DO pass --input it is\nchecked against the checkpoint, and a disagreement still refuses the resume.\n";
34
+ export declare const USAGE = "coltrane 0.24.14\n\n coltrane validate load the genome; exit non-zero on load errors OR on an\n orphan \u2014 a standards/|domain_types/|agents/ file with no\n genome_mutation seal in the tracked genome ledger\n coltrane seal-genome [<genome_dir>] bulk-seal a pre-sealing genome: append a genome_mutation\n seal for every standards/|domain_types/|agents/ file not yet\n sealed, via the blessed sealDefinition path. Content is\n byte-unchanged; a second run seals nothing already sealed.\n (default genome_dir: cwd)\n coltrane dispatch <standard> run a standard\n coltrane monitor <gig-id> report a gig's progress\n coltrane logs <gig-id> per-chair logs for a gig\n coltrane abort <gig-id> stop a running gig\n coltrane trace <output-id> walk an output's provenance\n coltrane simulate <standard> cost/shape a standard without running it\n coltrane health engine + store health\n coltrane serve run the MCP server on stdio\n coltrane enqueue <standard> queue a gig on the LOCAL file queue (no store, no key)\n (env: COLTRANE_QUEUE_DIR \u2014 its absence is the whole\n difference between local and hosted)\n coltrane work claim one queued gig from the org store and run it\n coltrane work --check report whether this box's drain environment is configured\n and exit without claiming (0 ready, 1 not ready)\n (env: COLTRANE_STORE_URL, COLTRANE_STORE_ANON,\n COLTRANE_AGENT_TOKEN; results drain via\n COLTRANE_DRAIN_URL + COLTRANE_DRAIN_KEY;\n checkpoints under COLTRANE_WORKER_CHECKPOINTS,\n default ~/.coltrane/worker-checkpoints;\n exit 0 complete or parked, 1 failed, 3 queue empty)\n\nOptions\n --input <json|@file|-> dispatch payload; @file reads a file, - reads stdin\n --depth <skim|standard|deep> tighten the per-chair turn cap\n --budget <dollars> per-gig ceiling; the run stops when it is gone\n --reuse allow chair-level reuse of prior sealed outputs\n --resume <gig-id> continue a gig that died mid-pipeline\n --approve <role>=<json|@file> a human chair's verdict; repeat once per chair\n --as <name> who is approving; sealed as the verdict's author\n --wait block until the run finishes\n --follow poll until the gig reaches a terminal state\n --direction <upstream|downstream|both> for trace\n --json print the raw result to stdout\n --genome <path> genome root (default: $COLTRANE_GENOME or cwd)\n --help, --version\n\nA dispatch that reaches a chair a HUMAN holds parks: it names the waiting chair and exits 0,\nbecause a gig waiting on a person is not a failed gig. Approve it on the resume \u2014\n\n coltrane dispatch <standard> --resume <gig> \\\n --approve approve=@verdict.json --as eugene\n\n--input is NOT required on an approve-only resume: when every remaining chair is human the\ncheckpoint's recorded payload stands and the omission inherits it. If you DO pass --input it is\nchecked against the checkpoint, and a disagreement still refuses the resume.\n";
35
35
  interface Parsed {
36
36
  cmd: string | undefined;
37
37
  positional: string[];
package/dist/src/cli.js CHANGED
@@ -23,6 +23,9 @@
23
23
  * - `--json` prints the tool's `data` verbatim; without it, a short human summary.
24
24
  */
25
25
  import { dispatchTool, bootstrapServerDeps } from "./server.js";
26
+ import { detectGenomeOrphans } from "./genome_writer.js";
27
+ import { sealGenome } from "./seal_genome.js";
28
+ import { FileLedger, defaultGenomeLedgerPath } from "./ledger.js";
26
29
  import { COLTRANE_VERSION } from "./version.js";
27
30
  import { workOnce } from "./worker.js";
28
31
  import { openLocalQueue, selectQueueBacking, LOCAL_QUEUE_DIR_VAR } from "./local_queue.js";
@@ -33,7 +36,14 @@ import { dockerComposeRealizer } from "./venue_realizer.js";
33
36
  import { readFileSync } from "node:fs";
34
37
  export const USAGE = `coltrane ${COLTRANE_VERSION}
35
38
 
36
- coltrane validate load the genome; exit non-zero on load errors
39
+ coltrane validate load the genome; exit non-zero on load errors OR on an
40
+ orphan — a standards/|domain_types/|agents/ file with no
41
+ genome_mutation seal in the tracked genome ledger
42
+ coltrane seal-genome [<genome_dir>] bulk-seal a pre-sealing genome: append a genome_mutation
43
+ seal for every standards/|domain_types/|agents/ file not yet
44
+ sealed, via the blessed sealDefinition path. Content is
45
+ byte-unchanged; a second run seals nothing already sealed.
46
+ (default genome_dir: cwd)
37
47
  coltrane dispatch <standard> run a standard
38
48
  coltrane monitor <gig-id> report a gig's progress
39
49
  coltrane logs <gig-id> per-chair logs for a gig
@@ -189,7 +199,7 @@ export async function runCli(argv, io) {
189
199
  io.out(USAGE);
190
200
  return cmd === undefined ? 2 : 0;
191
201
  }
192
- const KNOWN = ["validate", "dispatch", "enqueue", "monitor", "logs", "abort", "trace", "simulate", "health", "serve", "work"];
202
+ const KNOWN = ["validate", "seal-genome", "dispatch", "enqueue", "monitor", "logs", "abort", "trace", "simulate", "health", "serve", "work"];
193
203
  if (!KNOWN.includes(cmd)) {
194
204
  line(io, `unknown command "${cmd}"\n`);
195
205
  io.err(USAGE);
@@ -330,6 +340,30 @@ export async function runCli(argv, io) {
330
340
  (res.error ? ` — ${res.error}` : ""));
331
341
  return code;
332
342
  }
343
+ // `seal-genome` is the bulk-migration door (WO-F07 Article I). It needs ONLY the genome ledger
344
+ // and the genome dir — not bootstrapServerDeps, which would load every definition and couple the
345
+ // command to server init for no benefit. It reuses sealDefinition (the blessed write path), so it
346
+ // never reimplements sealing; it only iterates it. Exit 0 when every file is sealed-or-skipped,
347
+ // exit 1 if any file errored — a partial seal leaves detectGenomeOrphans non-empty, so exit 0
348
+ // would falsely signal a fully-sealed genome (matching the validate exit-code contract).
349
+ if (cmd === "seal-genome") {
350
+ const genome_dir = positional[0] ?? process.cwd();
351
+ let report;
352
+ try {
353
+ report = sealGenome(genome_dir, new FileLedger(defaultGenomeLedgerPath(genome_dir)));
354
+ }
355
+ catch (e) {
356
+ line(io, `seal-genome failed: ${e instanceof Error ? e.message : String(e)}`);
357
+ return 1;
358
+ }
359
+ for (const { path, error } of report.errors)
360
+ line(io, `error ${path}: ${error}`);
361
+ if (emitJson(io, json, report))
362
+ return report.errors.length === 0 ? 0 : 1;
363
+ line(io, `sealed ${report.sealed.length}, skipped ${report.skipped.length}` +
364
+ (report.errors.length ? `, ${report.errors.length} error(s)` : ""));
365
+ return report.errors.length === 0 ? 0 : 1;
366
+ }
333
367
  // Booting loads the genome and constructs the invoker, so it happens only after the command
334
368
  // is known to be real — `--help` and a typo must not pay for it or fail inside it.
335
369
  let deps;
@@ -347,27 +381,51 @@ export async function runCli(argv, io) {
347
381
  const r = await call("genome_reload", {});
348
382
  const data = r.data;
349
383
  const errs = data?.load_errors ?? [];
384
+ // WO-F06 — the orphan invariant, folded into the CI gate so it ships wherever a genome repo
385
+ // already runs `coltrane validate`, with no per-repo .github/ wiring. Every genome file under
386
+ // standards/ | domain_types/ | agents/ must carry a genome_mutation seal in the git-tracked
387
+ // genome ledger; a file with none is an orphan — "no identity, outside the substrate"
388
+ // (src/genome_writer.ts:1-6). deps.ledger reads the genome ledger (defaultGenomeLedgerPath),
389
+ // so the seals CI sees are exactly the ones the repo shipped.
390
+ //
391
+ // Enforced ONLY when the genome ledger actually holds seals. A genome that ships no ledger at
392
+ // all predates sealing and has nothing to enforce against — failing it would break every bare,
393
+ // unsealed fixture and every pre-WO-F06 genome, which is not this gate's job. deps.genome_dir
394
+ // is absent in hosted/bare-deps mode, where there are no genome files on disk to scan.
395
+ let orphans = [];
396
+ if (deps.genome_dir) {
397
+ const seals = deps.ledger.query({ kind: "genome_mutation" });
398
+ if (seals.length > 0)
399
+ orphans = detectGenomeOrphans(deps.genome_dir, deps.ledger);
400
+ }
350
401
  if (emitJson(io, json, r.data))
351
- return errs.length === 0 ? 0 : 1;
352
- if (errs.length === 0) {
353
- // `changes` is {added|modified|removed} -> {class -> slug[]}, so a count means summing
354
- // the leaf arrays. Reporting a bare `undefined` here would be its own small dishonesty.
355
- const c = data?.changes;
356
- const counts = c
357
- ? Object.entries(c)
358
- .map(([k, byClass]) => [k, Object.values(byClass ?? {}).reduce((n, a2) => n + (a2?.length ?? 0), 0)])
359
- .filter(([, n]) => n > 0)
360
- .map(([k, n]) => `${n} ${k}`)
361
- .join(", ")
362
- : "";
363
- io.out(`genome ok${counts ? ` — ${counts}` : ", no changes"}\n`);
364
- return 0;
402
+ return errs.length === 0 && orphans.length === 0 ? 0 : 1;
403
+ // Non-zero exit is the whole feature: this is what a CI job branches on. Load errors first —
404
+ // a genome that will not load is a harder failure than one that loads with an unsealed file.
405
+ if (errs.length > 0) {
406
+ line(io, `genome has ${errs.length} load error(s):`);
407
+ for (const e of errs)
408
+ line(io, ` ${typeof e === "string" ? e : JSON.stringify(e)}`);
409
+ return 1;
365
410
  }
366
- // Non-zero exit is the whole feature: this is what a CI job branches on.
367
- line(io, `genome has ${errs.length} load error(s):`);
368
- for (const e of errs)
369
- line(io, ` ${typeof e === "string" ? e : JSON.stringify(e)}`);
370
- return 1;
411
+ if (orphans.length > 0) {
412
+ line(io, `genome has ${orphans.length} orphan(s) — a genome file with no ledger seal has no identity:`);
413
+ for (const o of orphans)
414
+ line(io, ` ${o}`);
415
+ return 1;
416
+ }
417
+ // `changes` is {added|modified|removed} -> {class -> slug[]}, so a count means summing
418
+ // the leaf arrays. Reporting a bare `undefined` here would be its own small dishonesty.
419
+ const c = data?.changes;
420
+ const counts = c
421
+ ? Object.entries(c)
422
+ .map(([k, byClass]) => [k, Object.values(byClass ?? {}).reduce((n, a2) => n + (a2?.length ?? 0), 0)])
423
+ .filter(([, n]) => n > 0)
424
+ .map(([k, n]) => `${n} ${k}`)
425
+ .join(", ")
426
+ : "";
427
+ io.out(`genome ok${counts ? ` — ${counts}` : ", no changes"}\n`);
428
+ return 0;
371
429
  }
372
430
  case "dispatch": {
373
431
  const standard = positional[0];
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAoC,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWvC,MAAM,CAAC,MAAM,KAAK,GAAG,YAAY,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDhD,CAAC;AAQF,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,KAAK,GAAgD,EAAE,CAAC;IAC9D;oGACgG;IAChG,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,KAAa,EAAQ,EAAE;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,wFAAwF;QACxF,0FAA0F;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxE,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,IAAwB,EAAE,EAAS,EAAE,KAAK,GAAG,SAAS;IAC9E,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,IAA6C,EAC7C,EAAS;IAET,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC;IAChF,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,+CAA+C,CAAC,GAAG,EAAE,CAAC;QACnF,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,KAAK,EAAE,aAAa,IAAI,8DAA8D,EAAE,CAAC;QACpG,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC;AAED,+FAA+F;AAC/F,uFAAuF;AACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEjF,SAAS,IAAI,CAAC,EAAS,EAAE,CAAS,IAAU,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAE/D,4FAA4F;AAC5F,SAAS,QAAQ,CAAC,EAAS,EAAE,QAAiB,EAAE,IAAa;IAC3D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAuB,EAAE,EAAS;IAC7D,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IAEhE,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACpE,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAE9G,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7I,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,EAAE,oBAAoB,GAAG,KAAK,CAAC,CAAC;QACvC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,oEAAoE;QACpE,IAAI,CAAC,EAAE,EAAE,6CAA6C,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,iGAAiG;IACjG,iGAAiG;IACjG,kGAAkG;IAClG,4DAA4D;IAC5D,EAAE;IACF,kGAAkG;IAClG,iGAAiG;IACjG,4FAA4F;IAC5F,oEAAoE;IACpE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QACvE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,EAAE,kFAAkF;gBACzF,wEAAwE,mBAAmB,GAAG,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,EAAE,8CAA8C,mBAAmB,gCAAgC,CAAC,CAAC;YAC5G,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3F,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QACjD,MAAM,OAAO,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QACvF,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,wFAAwF;IACxF,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,8FAA8F;QAC9F,6FAA6F;QAC7F,6FAA6F;QAC7F,8FAA8F;QAC9F,8FAA8F;QAC9F,mFAAmF;QACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,kFAAkF;gBAClF,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU;gBAAE,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,4FAA4F;YAC5F,8FAA8F;YAC9F,qEAAqE;YACrE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnD,+FAA+F;QAC/F,8FAA8F;QAC9F,4FAA4F;QAC5F,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,EAAE,EAAE,wDAAwD,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB;YACE,OAAO;YACP,OAAO;YACP,kFAAkF;YAClF,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACzD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,EACD;YACE,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CACvB,iBAAiB,CAAC;gBAChB,QAAQ;gBACR,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBACpC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtH,CAAC;YACJ,2FAA2F;YAC3F,6FAA6F;YAC7F,6FAA6F;YAC7F,6FAA6F;YAC7F,4FAA4F;YAC5F,4FAA4F;YAC5F,8FAA8F;YAC9F,gEAAgE;YAChE,aAAa,EAAE,qBAAqB,EAAE;YACtC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SACxB,CACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,EAAE,4DAA4D,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,2FAA2F;QAC3F,qFAAqF;QACrF,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE;YACtB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,aAAa,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+FAA+F;IAC/F,iGAAiG;IACjG,kGAAkG;IAClG,gGAAgG;IAChG,8FAA8F;IAC9F,yFAAyF;IACzF,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,IAAI,MAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,EAAE,EAAE,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,EAAE,EAAE,UAAU,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAClF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,EAAE,EAAE,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACzE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,4FAA4F;IAC5F,mFAAmF;IACnF,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,mBAAmB,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,EAAE,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAuB,EAAE,CACtF,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjC,QAAQ,GAAG,EAAE,CAAC;QACZ,4EAA4E;QAC5E,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAoF,CAAC;YACpG,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;YAErC,4FAA4F;YAC5F,8FAA8F;YAC9F,4FAA4F;YAC5F,sFAAsF;YACtF,6FAA6F;YAC7F,8DAA8D;YAC9D,EAAE;YACF,8FAA8F;YAC9F,+FAA+F;YAC/F,8FAA8F;YAC9F,uFAAuF;YACvF,IAAI,OAAO,GAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzF,6FAA6F;YAC7F,6FAA6F;YAC7F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,EAAE,EAAE,cAAc,IAAI,CAAC,MAAM,iBAAiB,CAAC,CAAC;gBACrD,KAAK,MAAM,CAAC,IAAI,IAAI;oBAAE,IAAI,CAAC,EAAE,EAAE,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,EAAE,EAAE,cAAc,OAAO,CAAC,MAAM,iEAAiE,CAAC,CAAC;gBACxG,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,CAAC;YACX,CAAC;YACD,uFAAuF;YACvF,wFAAwF;YACxF,MAAM,CAAC,GAAG,IAAI,EAAE,OAAgE,CAAC;YACjF,MAAM,MAAM,GAAG,CAAC;gBACd,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAU,CAAC;qBAC7G,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;qBACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;qBAC5B,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,CAAC;YACP,EAAE,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACxE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7F,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAErD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAE7D,MAAM,IAAI,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACtF,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjF,sFAAsF;YACtF,2FAA2F;YAC3F,4FAA4F;YAC5F,8FAA8F;YAC9F,0CAA0C;YAC1C,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;YACzE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAChD,IAAI,SAAS,CAAC,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YACzD,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACvE,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC;oBAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAC5G,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACpF,MAAM,CAAC,GAAG,CAAC,CAAC,IAGX,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE;gBAAE,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YAEzC,mFAAmF;YACnF,qCAAqC;YACrC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YACxB,iFAAiF;YACjF,wFAAwF;YACxF,mFAAmF;YACnF,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gBACrC,IAAI,CAAC,EAAE,EAAE,mBAAmB;oBAC1B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxF,kDAAkD,CAAC,CAAC,MAAM,yCAAyC,CAAC,CAAC;gBACvG,OAAO,CAAC,CAAC,CAAC,uCAAuC;YACnD,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC,QAAoG,CAAC;gBACjH,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,YAAY,IAAI,CAAC,mBAAmB;oBAC3D,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxF,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;YACxC,SAAS,CAAC;gBACR,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;oBAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBACnF,MAAM,CAAC,GAAG,CAAC,CAAC,IAA6E,CAAC;gBAC1F,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;wBAAE,OAAO,CAAC,CAAC;oBACzC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,MAAM,CAAC,CAAC,eAAe,IAAI,CAAC,oBAAoB;wBAC7E,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC7D,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACnC,+DAA+D;oBAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;wBAAE,OAAO,OAAO,CAAC;oBAC/C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;oBACxB,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,MAAM,CAAC,CAAC,eAAe,IAAI,CAAC,WAAW;oBACtE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACxD,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACtD,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAChF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACzC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACzD,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACtD,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1E,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACjF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAqE,CAAC;YAClF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC,CAAC;YACrC,0FAA0F;YAC1F,yEAAyE;YACzE,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBAAE,IAAI,CAAC,EAAE,EAAE,0FAA0F,CAAC,CAAC;YAClI,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAC5D,MAAM,IAAI,GAA4B,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YACxD,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACnF,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACjF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,CAAC,IAA+F,CAAC;YAC5G,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;gBACrC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACxE,MAAM,IAAI,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;YAClE,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACpF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAuE,CAAC;YACpF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,WAAW;gBAC1C,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1E,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAClF,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,CAAC,IAGX,CAAC;YACF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,uBAAuB,CAAC,CAAC;YACvG,sFAAsF;YACtF,IAAI,CAAC,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,CAAC,qBAAqB;gBAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC;YAC7F,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -7,9 +7,11 @@ import { type Ledger } from "./ledger.js";
7
7
  * an existing slug is recoverable, not just provably-changed.
8
8
  *
9
9
  * When <subdir>/<slug>.json already exists with DIFFERENT bytes, the old bytes are
10
- * snapshotted to .coltrane/history/<subdir>/<slug>/<oldContentHash>.json (gitignored,
11
- * local) before the overwrite. Identical bytes no snapshot (idempotent no-op).
12
- * Returns the prior content hash when an overwrite displaced real content.
10
+ * snapshotted to genome/history/<subdir>/<slug>/<oldContentHash>.json before the overwrite
11
+ * (WO-F06: a git-TRACKED sibling of genome/ledger.jsonl, so a fresh clone carries prior
12
+ * versions instead of losing them to the gitignored .coltrane/). Identical bytes → no
13
+ * snapshot (idempotent no-op). Returns the prior content hash when an overwrite displaced
14
+ * real content.
13
15
  */
14
16
  export declare function writeGenomeFileVersioned(genome_dir: string, subdir: string, slug: string, jsonText: string): {
15
17
  overwritten: boolean;
@@ -65,3 +67,25 @@ export declare function sealSkillPackage(def: Record<string, unknown> & {
65
67
  dependency_hash: string;
66
68
  effective_hash: string;
67
69
  };
70
+ /** The genome subdirectories whose files each carry a substrate identity — a flat `<slug>.json`
71
+ * whose slug must match a `genome_mutation` seal. `skills/` is deliberately excluded: a skill is a
72
+ * PACKAGE directory (`skills/<slug>/meta.json …`, see sealSkillPackage), not a flat file, so it
73
+ * needs a different scan and is reserved for a follow-up (WO-F06 non-goal). */
74
+ export declare const ORPHAN_SCAN_SUBDIRS: readonly ["standards", "domain_types", "agents"];
75
+ /**
76
+ * The orphan detector (WO-F06). Correlate every genome file under `standards/`, `domain_types/`,
77
+ * `agents/` with the `kind:"genome_mutation"` seals in the (git-tracked) genome ledger, and return
78
+ * the files that have NONE — the orphans this module's header calls "outside the substrate": a
79
+ * hand-edited file with no ledger entry has no identity.
80
+ *
81
+ * A file's slug is its basename without `.json`. It is considered sealed when some seal's
82
+ * `subject_slug` equals that slug, OR equals that slug carrying a version tag (`<slug>@v2` — the
83
+ * identity `type_extend`/`agent_evolve` record while still materialising `<slug>.json`, so the
84
+ * versioned seal must not read as leaving the base file an orphan). Returns genome-relative paths
85
+ * (`standards/orphan.json`) so a caller can name the offending file to CI.
86
+ *
87
+ * PURE over its two inputs: it makes no decision about WHETHER orphans should fail a run — that
88
+ * policy (only enforced once the genome ledger actually holds seals) lives at the `coltrane validate`
89
+ * call site, so this stays a reusable "which files lack a seal" query.
90
+ */
91
+ export declare function detectGenomeOrphans(genome_dir: string, ledger: Ledger): string[];
@@ -4,7 +4,7 @@
4
4
  // genome_dir is given) write the content-addressed file AND append a ledger entry keyed
5
5
  // standard_slug="agent_define", genome_hash=effective_hash. A hand-edited file with no
6
6
  // such ledger entry is an orphan — no identity, outside the substrate.
7
- import { writeFileSync, mkdirSync, existsSync, readFileSync } from "node:fs";
7
+ import { writeFileSync, mkdirSync, existsSync, readFileSync, readdirSync } from "node:fs";
8
8
  import { writeFileAtomic } from "./fs_atomic.js";
9
9
  import { join } from "node:path";
10
10
  import { randomUUID } from "node:crypto";
@@ -18,9 +18,11 @@ import { LEDGER_SCHEMA_VERSION } from "./ledger.js";
18
18
  * an existing slug is recoverable, not just provably-changed.
19
19
  *
20
20
  * When <subdir>/<slug>.json already exists with DIFFERENT bytes, the old bytes are
21
- * snapshotted to .coltrane/history/<subdir>/<slug>/<oldContentHash>.json (gitignored,
22
- * local) before the overwrite. Identical bytes no snapshot (idempotent no-op).
23
- * Returns the prior content hash when an overwrite displaced real content.
21
+ * snapshotted to genome/history/<subdir>/<slug>/<oldContentHash>.json before the overwrite
22
+ * (WO-F06: a git-TRACKED sibling of genome/ledger.jsonl, so a fresh clone carries prior
23
+ * versions instead of losing them to the gitignored .coltrane/). Identical bytes → no
24
+ * snapshot (idempotent no-op). Returns the prior content hash when an overwrite displaced
25
+ * real content.
24
26
  */
25
27
  export function writeGenomeFileVersioned(genome_dir, subdir, slug, jsonText) {
26
28
  const dir = join(genome_dir, subdir);
@@ -31,7 +33,7 @@ export function writeGenomeFileVersioned(genome_dir, subdir, slug, jsonText) {
31
33
  const oldBytes = readFileSync(path, "utf-8");
32
34
  if (oldBytes !== jsonText) {
33
35
  const prior = sha256Hex(oldBytes);
34
- const histDir = join(genome_dir, ".coltrane", "history", subdir, slug);
36
+ const histDir = join(genome_dir, "genome", "history", subdir, slug);
35
37
  mkdirSync(histDir, { recursive: true });
36
38
  // History first, and atomically: this is the only copy of the bytes about to be replaced.
37
39
  writeFileAtomic(join(histDir, `${prior}.json`), oldBytes);
@@ -197,4 +199,48 @@ export function sealSkillPackage(def, ledger, genome_dir) {
197
199
  }
198
200
  return { content_hash, dependency_hash, effective_hash };
199
201
  }
202
+ /** The genome subdirectories whose files each carry a substrate identity — a flat `<slug>.json`
203
+ * whose slug must match a `genome_mutation` seal. `skills/` is deliberately excluded: a skill is a
204
+ * PACKAGE directory (`skills/<slug>/meta.json …`, see sealSkillPackage), not a flat file, so it
205
+ * needs a different scan and is reserved for a follow-up (WO-F06 non-goal). */
206
+ export const ORPHAN_SCAN_SUBDIRS = ["standards", "domain_types", "agents"];
207
+ /**
208
+ * The orphan detector (WO-F06). Correlate every genome file under `standards/`, `domain_types/`,
209
+ * `agents/` with the `kind:"genome_mutation"` seals in the (git-tracked) genome ledger, and return
210
+ * the files that have NONE — the orphans this module's header calls "outside the substrate": a
211
+ * hand-edited file with no ledger entry has no identity.
212
+ *
213
+ * A file's slug is its basename without `.json`. It is considered sealed when some seal's
214
+ * `subject_slug` equals that slug, OR equals that slug carrying a version tag (`<slug>@v2` — the
215
+ * identity `type_extend`/`agent_evolve` record while still materialising `<slug>.json`, so the
216
+ * versioned seal must not read as leaving the base file an orphan). Returns genome-relative paths
217
+ * (`standards/orphan.json`) so a caller can name the offending file to CI.
218
+ *
219
+ * PURE over its two inputs: it makes no decision about WHETHER orphans should fail a run — that
220
+ * policy (only enforced once the genome ledger actually holds seals) lives at the `coltrane validate`
221
+ * call site, so this stays a reusable "which files lack a seal" query.
222
+ */
223
+ export function detectGenomeOrphans(genome_dir, ledger) {
224
+ const sealed = new Set();
225
+ for (const e of ledger.query({ kind: "genome_mutation" })) {
226
+ const slug = e.subject_slug;
227
+ // Fold `<slug>@v<n>` back to `<slug>`: the versioned identity seals the same flat file.
228
+ if (typeof slug === "string")
229
+ sealed.add(slug.split("@")[0]);
230
+ }
231
+ const orphans = [];
232
+ for (const subdir of ORPHAN_SCAN_SUBDIRS) {
233
+ const dir = join(genome_dir, subdir);
234
+ if (!existsSync(dir))
235
+ continue;
236
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
237
+ if (!entry.isFile() || !entry.name.endsWith(".json"))
238
+ continue;
239
+ const slug = entry.name.slice(0, -".json".length);
240
+ if (!sealed.has(slug))
241
+ orphans.push(`${subdir}/${entry.name}`);
242
+ }
243
+ }
244
+ return orphans;
245
+ }
200
246
  //# sourceMappingURL=genome_writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genome_writer.js","sourceRoot":"","sources":["../../src/genome_writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genome_writer.js","sourceRoot":"","sources":["../../src/genome_writer.ts"],"names":[],"mappings":"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"}
@@ -200,6 +200,22 @@ export declare const isGovernance: (e: LedgerEntry) => e is GovernanceLedgerEntr
200
200
  * `.gitignore` already carries `.coltrane/`.
201
201
  */
202
202
  export declare function defaultLedgerPath(root?: string): string;
203
+ /**
204
+ * Resolve the GENOME ledger file — where `kind:"genome_mutation"` seals live. `COLTRANE_GENOME_LEDGER_PATH`
205
+ * wins; otherwise `<root>/genome/ledger.jsonl`.
206
+ *
207
+ * Deliberately OUTSIDE `.coltrane/` (WO-F06). `.gitignore` excludes all of `.coltrane/`, so a genome
208
+ * repo that kept its seals there shipped every `standards/`, `domain_types/`, `agents/` file WITHOUT
209
+ * the seal that gives it identity — on a fresh clone every genome object was an orphan by the engine's
210
+ * own invariant (`src/genome_writer.ts:1-6`). `genome/ledger.jsonl` is a git-TRACKED sibling of the
211
+ * genome files, so provenance travels WITH the repo and no `.gitignore` edit is required.
212
+ *
213
+ * A SEPARATE override from `COLTRANE_LEDGER_PATH` (which governs the gig ledger, and only it): the two
214
+ * ledgers are now distinct stores with distinct lifecycles — one ships, one is machine-local — so a
215
+ * caller relocating one must not drag the other with it. `defaultLedgerPath` is unchanged and its
216
+ * override is untouched.
217
+ */
218
+ export declare function defaultGenomeLedgerPath(root?: string): string;
203
219
  /**
204
220
  * THE shared validator. Both implementations call this; the duplicated guard triplet it
205
221
  * replaces (v1 `src/ledger.ts:56-58` and `:102-104`) is how the MemoryLedger/FileLedger
@@ -247,4 +263,49 @@ export declare class MemoryLedger implements Ledger {
247
263
  * `path` is empty because there is no file — not because we failed to find one. */
248
264
  integrity(): LedgerIntegrityReport;
249
265
  }
266
+ /**
267
+ * Two backing ledgers behind ONE `Ledger` handle, routed by `entry.kind` (WO-F06).
268
+ *
269
+ * kind:"genome_mutation" → genomeLedger (git-TRACKED `genome/ledger.jsonl`; ships with the repo)
270
+ * kind:"gig" | "governance" → gigLedger (gitignored `.coltrane/ledger.jsonl`; machine-local)
271
+ *
272
+ * WHY a wrapper rather than threading two ledgers to every append site, or a `kind` parameter on
273
+ * `Ledger.append`: `append` is reached from ~a dozen seal and seal-adjacent sites across
274
+ * `src/genome_writer.ts` and `src/server.ts`, several of them un-audited. A per-call-site split has
275
+ * unbounded blast radius, and a `kind` parameter would break the interface contract for every caller.
276
+ * This confines the routing decision to the ONE fact that already discriminates the entry — its own
277
+ * `kind` — and leaves the interface, every append() caller, and every reader untouched.
278
+ *
279
+ * `governance` rides with `gig` deliberately: WO-F06 tracks only `genome_mutation`, and keeping
280
+ * governance on the runtime side preserves the invariant "only genome_mutation travels with the
281
+ * genome" and keeps governance rows out of the orphan-detector's seal source. Reversible if
282
+ * governance provenance is later required to ship.
283
+ *
284
+ * Reads UNION both sources so `genome_reload` and every existing consumer still see one ledger. A
285
+ * kind-filtered read short-circuits to the single side that can hold that kind, so a gig query never
286
+ * parses the genome file (and vice versa) — the union is paid for only by an unfiltered read.
287
+ */
288
+ export declare class SplitLedger implements Ledger {
289
+ private readonly genomeLedger;
290
+ private readonly gigLedger;
291
+ constructor(genomeLedger: Ledger, gigLedger: Ledger);
292
+ append(entry: LedgerEntry): void;
293
+ query(filter: GigOnlyQuery): GigLedgerEntry[];
294
+ query(filter: LedgerQuery & {
295
+ kind: "genome_mutation";
296
+ }): GenomeMutationLedgerEntry[];
297
+ query(filter: LedgerQuery & {
298
+ kind: "governance";
299
+ }): GovernanceLedgerEntry[];
300
+ query(filter?: LedgerQuery): LedgerEntry[];
301
+ count(filter?: LedgerQuery): number;
302
+ /** Whole only if BOTH backing files are whole; the report unions their entry counts and any torn
303
+ * lines, so an operator asking one handle "is my audit trail intact" learns the truth about the
304
+ * split store, not half of it. `path`, by its `LedgerIntegrityReport.path: string` contract
305
+ * (see interface above), is a SINGLE ledger path and reports the gig ledger's — the report lands
306
+ * verbatim in an MCP system_health response an operator reads, and a joined string is not a path.
307
+ * The genome ledger's path is deliberately NOT concatenated in; a caller needing it reads the
308
+ * genome-side handle directly rather than parsing it back out of this field. */
309
+ integrity(): LedgerIntegrityReport;
310
+ }
250
311
  export {};
@@ -26,6 +26,27 @@ export function defaultLedgerPath(root) {
26
26
  return override;
27
27
  return join(root ?? process.cwd(), ".coltrane", "ledger.jsonl");
28
28
  }
29
+ /**
30
+ * Resolve the GENOME ledger file — where `kind:"genome_mutation"` seals live. `COLTRANE_GENOME_LEDGER_PATH`
31
+ * wins; otherwise `<root>/genome/ledger.jsonl`.
32
+ *
33
+ * Deliberately OUTSIDE `.coltrane/` (WO-F06). `.gitignore` excludes all of `.coltrane/`, so a genome
34
+ * repo that kept its seals there shipped every `standards/`, `domain_types/`, `agents/` file WITHOUT
35
+ * the seal that gives it identity — on a fresh clone every genome object was an orphan by the engine's
36
+ * own invariant (`src/genome_writer.ts:1-6`). `genome/ledger.jsonl` is a git-TRACKED sibling of the
37
+ * genome files, so provenance travels WITH the repo and no `.gitignore` edit is required.
38
+ *
39
+ * A SEPARATE override from `COLTRANE_LEDGER_PATH` (which governs the gig ledger, and only it): the two
40
+ * ledgers are now distinct stores with distinct lifecycles — one ships, one is machine-local — so a
41
+ * caller relocating one must not drag the other with it. `defaultLedgerPath` is unchanged and its
42
+ * override is untouched.
43
+ */
44
+ export function defaultGenomeLedgerPath(root) {
45
+ const override = process.env["COLTRANE_GENOME_LEDGER_PATH"];
46
+ if (override && override.length > 0)
47
+ return override;
48
+ return join(root ?? process.cwd(), "genome", "ledger.jsonl");
49
+ }
29
50
  function isNonEmptyString(v) {
30
51
  return typeof v === "string" && v.length > 0;
31
52
  }
@@ -307,4 +328,74 @@ export class MemoryLedger {
307
328
  return { ok: true, path: "", entries: this.entries.length, corrupt: [] };
308
329
  }
309
330
  }
331
+ /**
332
+ * Two backing ledgers behind ONE `Ledger` handle, routed by `entry.kind` (WO-F06).
333
+ *
334
+ * kind:"genome_mutation" → genomeLedger (git-TRACKED `genome/ledger.jsonl`; ships with the repo)
335
+ * kind:"gig" | "governance" → gigLedger (gitignored `.coltrane/ledger.jsonl`; machine-local)
336
+ *
337
+ * WHY a wrapper rather than threading two ledgers to every append site, or a `kind` parameter on
338
+ * `Ledger.append`: `append` is reached from ~a dozen seal and seal-adjacent sites across
339
+ * `src/genome_writer.ts` and `src/server.ts`, several of them un-audited. A per-call-site split has
340
+ * unbounded blast radius, and a `kind` parameter would break the interface contract for every caller.
341
+ * This confines the routing decision to the ONE fact that already discriminates the entry — its own
342
+ * `kind` — and leaves the interface, every append() caller, and every reader untouched.
343
+ *
344
+ * `governance` rides with `gig` deliberately: WO-F06 tracks only `genome_mutation`, and keeping
345
+ * governance on the runtime side preserves the invariant "only genome_mutation travels with the
346
+ * genome" and keeps governance rows out of the orphan-detector's seal source. Reversible if
347
+ * governance provenance is later required to ship.
348
+ *
349
+ * Reads UNION both sources so `genome_reload` and every existing consumer still see one ledger. A
350
+ * kind-filtered read short-circuits to the single side that can hold that kind, so a gig query never
351
+ * parses the genome file (and vice versa) — the union is paid for only by an unfiltered read.
352
+ */
353
+ export class SplitLedger {
354
+ genomeLedger;
355
+ gigLedger;
356
+ constructor(genomeLedger, gigLedger) {
357
+ this.genomeLedger = genomeLedger;
358
+ this.gigLedger = gigLedger;
359
+ // Bound like its siblings: `deps.ledger` is a service handle that gets passed around and
360
+ // destructured, never used as a prototype (see the FileLedger constructor note).
361
+ this.append = this.append.bind(this);
362
+ this.query = this.query.bind(this);
363
+ this.count = this.count.bind(this);
364
+ this.integrity = this.integrity.bind(this);
365
+ }
366
+ append(entry) {
367
+ // Validation still happens in each backing ledger's append(); routing is the only decision here.
368
+ if (entry.kind === "genome_mutation")
369
+ this.genomeLedger.append(entry);
370
+ else
371
+ this.gigLedger.append(entry);
372
+ }
373
+ query(filter = {}) {
374
+ if (filter.kind === "genome_mutation")
375
+ return this.genomeLedger.query(filter);
376
+ if (filter.kind === "gig" || filter.kind === "governance")
377
+ return this.gigLedger.query(filter);
378
+ return [...this.genomeLedger.query(filter), ...this.gigLedger.query(filter)];
379
+ }
380
+ count(filter = {}) {
381
+ return this.query(filter).length;
382
+ }
383
+ /** Whole only if BOTH backing files are whole; the report unions their entry counts and any torn
384
+ * lines, so an operator asking one handle "is my audit trail intact" learns the truth about the
385
+ * split store, not half of it. `path`, by its `LedgerIntegrityReport.path: string` contract
386
+ * (see interface above), is a SINGLE ledger path and reports the gig ledger's — the report lands
387
+ * verbatim in an MCP system_health response an operator reads, and a joined string is not a path.
388
+ * The genome ledger's path is deliberately NOT concatenated in; a caller needing it reads the
389
+ * genome-side handle directly rather than parsing it back out of this field. */
390
+ integrity() {
391
+ const g = this.genomeLedger.integrity();
392
+ const r = this.gigLedger.integrity();
393
+ return {
394
+ ok: g.ok && r.ok,
395
+ path: r.path,
396
+ entries: g.entries + r.entries,
397
+ corrupt: [...g.corrupt, ...r.corrupt],
398
+ };
399
+ }
400
+ }
310
401
  //# sourceMappingURL=ledger.js.map