@eir-labs/coltrane 0.24.28 → 0.24.29

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
@@ -30,8 +30,11 @@ export interface CliIO {
30
30
  deps?: ServerDeps;
31
31
  /** Injected for tests. Production reads stdin for `--input -`. */
32
32
  stdin?: () => string;
33
+ /** Injected for tests; production reads the process environment. Only `reside` consults it —
34
+ * every other command reads process.env directly, and moving them is not this change's scope. */
35
+ env?: Record<string, string | undefined>;
33
36
  }
34
- export declare const USAGE = "coltrane 0.24.28\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";
37
+ export declare const USAGE = "coltrane 0.24.29\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 coltrane reside [--any|--residency <id>] hold a residency: claim a seat, ack its channel in\n reflex, answer every wake, and drain the org's due work\n orders through its institution's governed verbs\n (env: the same contract work uses \u2014 COLTRANE_STORE_URL,\n COLTRANE_STORE_ANON, COLTRANE_SERVICE_URL, plus\n COLTRANE_DRAIN_KEY + COLTRANE_INSTANCE for venue mode;\n no new credential class\n exit 0 released, 1 cortex failed, 2 misconfigured or a\n seam no deployment wired, 3 nothing claimable)\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
38
  interface Parsed {
36
39
  cmd: string | undefined;
37
40
  positional: string[];
package/dist/src/cli.js CHANGED
@@ -28,6 +28,7 @@ import { sealGenome } from "./seal_genome.js";
28
28
  import { FileLedger, defaultGenomeLedgerPath } from "./ledger.js";
29
29
  import { COLTRANE_VERSION } from "./version.js";
30
30
  import { workOnce } from "./worker.js";
31
+ import { runReside } from "./reside.js";
31
32
  import { openLocalQueue, selectQueueBacking, LOCAL_QUEUE_DIR_VAR } from "./local_queue.js";
32
33
  import { workerCredentialMode } from "./worker_env.js";
33
34
  import { drainPreflight } from "./drain_preflight.js";
@@ -64,6 +65,15 @@ export const USAGE = `coltrane ${COLTRANE_VERSION}
64
65
  checkpoints under COLTRANE_WORKER_CHECKPOINTS,
65
66
  default ~/.coltrane/worker-checkpoints;
66
67
  exit 0 complete or parked, 1 failed, 3 queue empty)
68
+ coltrane reside [--any|--residency <id>] hold a residency: claim a seat, ack its channel in
69
+ reflex, answer every wake, and drain the org's due work
70
+ orders through its institution's governed verbs
71
+ (env: the same contract work uses — COLTRANE_STORE_URL,
72
+ COLTRANE_STORE_ANON, COLTRANE_SERVICE_URL, plus
73
+ COLTRANE_DRAIN_KEY + COLTRANE_INSTANCE for venue mode;
74
+ no new credential class
75
+ exit 0 released, 1 cortex failed, 2 misconfigured or a
76
+ seam no deployment wired, 3 nothing claimable)
67
77
 
68
78
  Options
69
79
  --input <json|@file|-> dispatch payload; @file reads a file, - reads stdin
@@ -199,7 +209,7 @@ export async function runCli(argv, io) {
199
209
  io.out(USAGE);
200
210
  return cmd === undefined ? 2 : 0;
201
211
  }
202
- const KNOWN = ["validate", "seal-genome", "dispatch", "enqueue", "monitor", "logs", "abort", "trace", "simulate", "health", "serve", "work"];
212
+ const KNOWN = ["validate", "seal-genome", "dispatch", "enqueue", "monitor", "logs", "abort", "trace", "simulate", "health", "serve", "work", "reside"];
203
213
  if (!KNOWN.includes(cmd)) {
204
214
  line(io, `unknown command "${cmd}"\n`);
205
215
  io.err(USAGE);
@@ -259,6 +269,14 @@ export async function runCli(argv, io) {
259
269
  return 1;
260
270
  }
261
271
  }
272
+ // `reside` stands beside `work` and shares its bootstrap contract exactly — the residency's hands
273
+ // materialize from the drain key that already exists, so there is no new credential class here.
274
+ // The verb owns the env check and the exit codes (src/reside.ts); this is only the mount, and the
275
+ // mount is the half that was missing: runReside has been exported and law-covered since the state
276
+ // machine landed while nothing could reach it.
277
+ if (cmd === "reside") {
278
+ return await runReside(argv, io);
279
+ }
262
280
  // `work` runs against the ORG STORE, not a genome root — the seated agent's token is the
263
281
  // read scope and the chair contract is the authorization, so no file genome boots here.
264
282
  if (cmd === "work") {
@@ -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,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,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;AAcvC,MAAM,CAAC,MAAM,KAAK,GAAG,YAAY,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEhD,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,EAAE,QAAQ,CAAC,CAAC;IACvJ,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,kGAAkG;IAClG,gGAAgG;IAChG,kGAAkG;IAClG,kGAAkG;IAClG,+CAA+C;IAC/C,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnC,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"}
@@ -0,0 +1,150 @@
1
+ import { type InboundMessage, type SimClock } from "./residency.js";
2
+ export { selectResidencyBacking, resolveSeatBacking, fileSeatBacking, fileSeatSeed, SEAT_MEMBERS, RESIDENCY_DIR_VAR, RESIDENCY_MODULE_VAR, type ResidencyBackingChoice, type SeatBacking, type SeatResolution, type SeatSeed, } from "./reside_backing.js";
3
+ /** The gig path is WORK's gig path. A second implementation fails by existing (I12, one level out). */
4
+ export { workOnce as resideGigPath } from "./worker.js";
5
+ export type ResideRefusal = "no_backend" | "backing_conflict" | "nothing_claimable" | "gig_scoped_token" | "silent_wake" | "cursor_without_seal" | "needs_amendment" | "store_refused";
6
+ export declare const RESIDE_REFUSALS: readonly ResideRefusal[];
7
+ /** The supervisor-facing exit code for a refusal. An unknown name is a failure, never a success. */
8
+ export declare function resideExitCode(refusal: string): number;
9
+ export interface ResidencyClaim {
10
+ residency_id: string;
11
+ agent_slug: string;
12
+ org: string;
13
+ venue_slug: string;
14
+ channel_id: string;
15
+ session_id: string | null;
16
+ cursor: number;
17
+ lease_token: string;
18
+ gig_id?: string | null;
19
+ /**
20
+ * THE FENCE — minted by claim, carried unread to the three doors that move the seat. OPAQUE on
21
+ * purpose: a grip identifies the GRANT, not the grantee, and WHICH token closes that (a monotonic
22
+ * fence or a random secret) is the store's decision. The engine carries it and never parses,
23
+ * orders, or prints it — so a secret token cannot leak and a public one costs nothing.
24
+ */
25
+ fence?: string;
26
+ /** An EXACT allow-list of standard slugs; its wildcard is "*". Never a boolean — a lease token
27
+ * carries ["*"], and dispatch authority still sits on the chair, so this widens nothing. */
28
+ may_dispatch?: readonly string[];
29
+ hands: readonly string[];
30
+ }
31
+ export interface Utterance {
32
+ channel_id: string;
33
+ text: string;
34
+ }
35
+ export interface CortexTurn {
36
+ utterance?: Utterance | null;
37
+ sealed_output_sha?: string | null;
38
+ }
39
+ export interface Pin {
40
+ org: string;
41
+ venue: string;
42
+ }
43
+ export interface DueEntry {
44
+ work_order_id: string;
45
+ schedule_ordinal: number;
46
+ mode?: "rehearsal" | "studio" | "live";
47
+ input?: Record<string, unknown>;
48
+ }
49
+ export type VerbAnswer = {
50
+ ok: true;
51
+ data: Record<string, unknown>;
52
+ } | {
53
+ ok: false;
54
+ refusal: string;
55
+ message: string;
56
+ errcode?: string;
57
+ law_ref?: string;
58
+ };
59
+ export type VerbCall = (verb: string, args: Record<string, unknown>) => Promise<VerbAnswer>;
60
+ export interface ResideDeps {
61
+ claim?: (which: string | "any") => Promise<ResidencyClaim | null>;
62
+ heartbeat?: (residencyId: string, fence: string) => Promise<void>;
63
+ release?: (residencyId: string, fence: string, status: "hibernated" | "unseated") => Promise<void>;
64
+ /** A backing may answer the new cursor, or answer nothing. Both are accepted — the engine reads
65
+ * its own record rather than the reply, so no backing's return shape is load-bearing here. */
66
+ cursorAdvance?: (residencyId: string, fence: string, n: number) => Promise<number | void>;
67
+ channelListener?: (channelId: string) => AsyncIterable<InboundMessage>;
68
+ cortex?: (session: {
69
+ session_id: string | null;
70
+ inbox: readonly InboundMessage[];
71
+ }) => Promise<CortexTurn>;
72
+ sealOutput?: (args: Record<string, unknown>) => Promise<{
73
+ content_sha: string;
74
+ }>;
75
+ callVerb?: VerbCall;
76
+ say?: (u: Utterance) => Promise<void>;
77
+ clock?: SimClock;
78
+ }
79
+ export interface ResideOptions {
80
+ residency: string | "any";
81
+ /** Refusal `law_ref`s that mean "a human must rule" — supplied by the deployment, never by the
82
+ * engine. Absent means no refusal escalates: the router relays and the cortex stays unconsulted. */
83
+ escalateOn?: readonly string[];
84
+ now?: () => number;
85
+ }
86
+ export type ResideResult<T = Record<string, unknown>> = ({
87
+ ok: true;
88
+ } & T) | {
89
+ ok: false;
90
+ refusal: ResideRefusal;
91
+ seam?: string;
92
+ message: string;
93
+ law_ref?: string;
94
+ };
95
+ export interface RouterResult {
96
+ dispatched: readonly {
97
+ work_order_id: string;
98
+ schedule_ordinal: number;
99
+ gig_id: string;
100
+ }[];
101
+ monitored: readonly string[];
102
+ relayed: readonly {
103
+ refusal: string;
104
+ message: string;
105
+ }[];
106
+ escalated: readonly {
107
+ work_order_id: string;
108
+ schedule_ordinal: number;
109
+ law_ref: string;
110
+ }[];
111
+ }
112
+ export interface Residency {
113
+ boot(): Promise<ResideResult<{
114
+ residency_id: string;
115
+ }>>;
116
+ onInbound(msg: InboundMessage): {
117
+ acked: true;
118
+ elapsed_ticks: number;
119
+ };
120
+ wake(): Promise<ResideResult<{
121
+ utterance: Utterance;
122
+ cursor: number;
123
+ }>>;
124
+ tick(): Promise<ResideResult<RouterResult>>;
125
+ beat(): Promise<ResideResult>;
126
+ shutdown(signal: "SIGTERM" | "SIGINT"): Promise<ResideResult>;
127
+ readonly inbox: readonly InboundMessage[];
128
+ }
129
+ /**
130
+ * The machine-readable name a store refusal begins with (`gig_scoped_token: …`, `not_holder: …`,
131
+ * `cursor_regression: …`). Branching on the PREFIX rather than the prose is the same discipline the
132
+ * router applies to law_ref: the human half of the message is written to be reworded.
133
+ */
134
+ export declare function storeRefusalName(message: string): string | null;
135
+ export declare function createResidency(opts: ResideOptions, deps: ResideDeps): Residency;
136
+ /**
137
+ * The `reside` verb. REUSES work's env contract — src/worker_env.ts's WORKER_ENV_CONTRACT is the
138
+ * single source, and reside introduces no new credential class: the residency's hands materialize
139
+ * from the drain key that already exists. Missing COLTRANE_STORE_URL / COLTRANE_STORE_ANON is a
140
+ * usage refusal (exit 2), the same door `work` uses.
141
+ *
142
+ * Exit codes mirror work's: 0 released cleanly · 1 the cortex failed · 2 misconfigured, including a
143
+ * seam no deployment has wired · 3 nothing claimable.
144
+ *
145
+ * This reads `io.env` when given one and falls back to the process environment otherwise — the
146
+ * fallback is what makes the mounted command usable, and the injection is what makes law I20
147
+ * checkable. It reads no NAMED variable of its own, which is why src/reside.ts can join the
148
+ * WORKER_PATH scan in tests/spec_worker_environment.test.ts and stay honest there.
149
+ */
150
+ export declare function runReside(argv: readonly string[], io: unknown): Promise<number>;
@@ -0,0 +1,380 @@
1
+ /**
2
+ * `coltrane reside` — the standing loop.
3
+ *
4
+ * The state machine this drives already exists (src/residency.ts, 43 laws): states, ops, the
5
+ * party-constrained transition table, the reflex, the reaper, the boot preflight. What did NOT exist
6
+ * was a CALLER. `runReside` was exported, tested and pinned as law I20 while `src/cli.ts`'s KNOWN
7
+ * table had no "reside" in it, so `coltrane reside` answered `unknown command` on a green suite —
8
+ * a mechanism proven to work that nothing could reach. This module is the loop, and the mount in
9
+ * cli.ts is the half that makes it reachable.
10
+ *
11
+ * THREE PROPERTIES THE SHAPE ENFORCES RATHER THAN REQUESTS:
12
+ *
13
+ * 1. NO MODEL ON THE REFLEX PATH. `onInbound` is SYNCHRONOUS. Not "does not call the cortex" as a
14
+ * matter of discipline — it cannot await, so it cannot reach one. An inbound message is acked
15
+ * and appended whether the cortex is busy, dead, or absent; an unacked message means the
16
+ * listener is down, which is a pager fact and must stay one.
17
+ *
18
+ * 2. EVERY SEAM IS INJECTED, AND AN UNWIRED SEAM IS A NAMED REFUSAL. The way `deps.queueGig`
19
+ * injects dispatch (src/server.ts:3436): the engine ships the loop, its refusals and its shape
20
+ * checks; a deployment supplies the backends. Absent must mean DECLINE — `{ok:false,
21
+ * refusal:"no_backend", seam}` in the gig_dispatch shape, naming which seam — never a throw and
22
+ * never a plausible default. `hosted_unsupported` is deliberately not reused: an unwired seam
23
+ * and an unsupported deployment are different facts.
24
+ *
25
+ * 3. THE ROUTER IS CODE. Determinism in the engine, inference in the prompt, no overlap. A clean
26
+ * pass dispatches every due (order, ordinal) and consults the cortex ZERO times. The cortex is
27
+ * reached on NAMED DEMAND only — a store refusal whose `law_ref` the deployment listed — and that
28
+ * is keyed on the law_ref, never on the refusal's prose, because prose is written for humans
29
+ * and gets reworded without notice.
30
+ *
31
+ * A NOTE ON THE IMPORT CYCLE. src/residency.ts re-exports `runReside` from here, and this module
32
+ * imports the state machine from there. The cycle is safe and deliberate: every binding crossing it
33
+ * is either a hoisted function declaration or read inside a function body at call time, never during
34
+ * module evaluation. The alternative was duplicating the transition table, which is the one thing
35
+ * the surface's identity laws exist to forbid.
36
+ */
37
+ import { selectResidencyBacking, resolveSeatBacking } from "./reside_backing.js";
38
+ import { applyResidencyOp, bootResidency, reflexAck, } from "./residency.js";
39
+ export { selectResidencyBacking, resolveSeatBacking, fileSeatBacking, fileSeatSeed, SEAT_MEMBERS, RESIDENCY_DIR_VAR, RESIDENCY_MODULE_VAR, } from "./reside_backing.js";
40
+ /** The gig path is WORK's gig path. A second implementation fails by existing (I12, one level out). */
41
+ export { workOnce as resideGigPath } from "./worker.js";
42
+ export const RESIDE_REFUSALS = [
43
+ "no_backend",
44
+ "backing_conflict",
45
+ "nothing_claimable",
46
+ "gig_scoped_token",
47
+ "silent_wake",
48
+ "cursor_without_seal",
49
+ "needs_amendment",
50
+ "store_refused",
51
+ ];
52
+ /**
53
+ * The exit code each refusal earns, TOTAL over the refusal set — `Record<ResideRefusal, number>`, so
54
+ * adding a refusal without deciding what it means to a supervisor is a type error rather than a
55
+ * silent 1. The set is read at runtime (not merely declared) so an undeclared refusal reaching here
56
+ * exits 1 rather than `undefined`.
57
+ *
58
+ * 2 misconfigured — including a seam no deployment wired · 3 nothing claimable ·
59
+ * 1 the loop ran and something failed · 0 is reserved for a clean release.
60
+ */
61
+ const EXIT_FOR_REFUSAL = {
62
+ no_backend: 2,
63
+ backing_conflict: 2,
64
+ nothing_claimable: 3,
65
+ gig_scoped_token: 2,
66
+ silent_wake: 1,
67
+ cursor_without_seal: 1,
68
+ needs_amendment: 1,
69
+ store_refused: 1,
70
+ };
71
+ /** The supervisor-facing exit code for a refusal. An unknown name is a failure, never a success. */
72
+ export function resideExitCode(refusal) {
73
+ return RESIDE_REFUSALS.includes(refusal) ? EXIT_FOR_REFUSAL[refusal] : 1;
74
+ }
75
+ /**
76
+ * WHICH refusals constitute NAMED DEMAND is configuration, not an engine constant. The engine ships
77
+ * the mechanism — branch on a refusal's `law_ref`, never on its prose, because prose is written for
78
+ * humans and gets reworded — and the deployment supplies the refs that mean "a human must rule".
79
+ * Hard-coding one institution's law reference here named someone else's governance inside the
80
+ * engine, which is the coupling the backing seam exists to prevent, one layer over.
81
+ */
82
+ const NO_NAMED_DEMAND = [];
83
+ /** The seams boot cannot proceed without, in the order they are reported. `callVerb` is absent from
84
+ * this list on purpose: a residency that only listens and answers is a legitimate residency, and
85
+ * the router names its own seam when it is the thing that is unwired. */
86
+ const BOOT_SEAMS = ["claim", "channelListener", "cortex", "say", "sealOutput", "cursorAdvance", "release"];
87
+ const refuse = (refusal, message, extra = {}) => ({ ok: false, refusal, message, ...extra });
88
+ /**
89
+ * A lease token that is narrow. Narrow may not mint broad (L28): a token bound to one gig cannot
90
+ * hold a residency.
91
+ *
92
+ * THE SIGNAL IS gig_id, AND ONLY gig_id — corrected against the store twice, and the second
93
+ * correction is the interesting one. An earlier draft read `may_dispatch === false`, a shape the
94
+ * column (text[]) cannot hold. The fix to "an EMPTY allow-list is narrow" was then ALSO wrong, and
95
+ * would have been worse: the list stopped being the wildcard and became the exact standards a
96
+ * presence may reach, so `{}` is now a perfectly legitimate seating — a residency that dispatches
97
+ * (chair-gated) but reaches no gig it did not dispatch. Treating empty as narrowness would have
98
+ * refused valid seats, and refused them in the one direction nobody tests: the quiet one.
99
+ *
100
+ * The dispatch allow-list is an authorization gate in the STORE, in exactly one place. It is not
101
+ * the engine's business to re-derive it, and a residency's authority sits on its chair regardless.
102
+ *
103
+ * This is a second line either way. The claim door refuses a gig token itself with a message whose
104
+ * machine-readable prefix is `gig_scoped_token:` (see storeRefusalName); the engine still checks,
105
+ * because a local or hand-built backing has no such door in front of it.
106
+ */
107
+ function isGigScoped(claim) {
108
+ return claim.gig_id != null;
109
+ }
110
+ /**
111
+ * The machine-readable name a store refusal begins with (`gig_scoped_token: …`, `not_holder: …`,
112
+ * `cursor_regression: …`). Branching on the PREFIX rather than the prose is the same discipline the
113
+ * router applies to law_ref: the human half of the message is written to be reworded.
114
+ */
115
+ export function storeRefusalName(message) {
116
+ const m = /^([a-z][a-z0-9_]*):/.exec(message.trim());
117
+ return m ? m[1] : null;
118
+ }
119
+ /** A monotonic tick source so the reflex budget is measured on a simulated clock on every machine,
120
+ * never on a wall clock (the property REFLEX_BUDGET_TICKS exists to make machine-independent). */
121
+ function clockOf(deps) {
122
+ if (deps.clock)
123
+ return deps.clock;
124
+ let t = 0;
125
+ return { now: () => t, tick: (n = 1) => { t += n; } };
126
+ }
127
+ export function createResidency(opts, deps) {
128
+ const clock = clockOf(deps);
129
+ const escalateOn = opts.escalateOn ?? NO_NAMED_DEMAND;
130
+ const inbox = [];
131
+ let rec = null;
132
+ let residencyId = null;
133
+ /**
134
+ * THE FENCE on this grant, held for the life of the seat and PRESENTED ON EVERY OP.
135
+ *
136
+ * Presenting it is the whole point, and it was missing: applyResidencyOp gates on
137
+ * `op.fence !== undefined && op.fence < rec.fence`, so an op that omits the field is not gated at
138
+ * all. All six call sites below omitted it, which left law I9 — the fencing law, with a case named
139
+ * for a GC-paused host resuming post-lease — unable to fire anywhere on the live path. The store
140
+ * had the mirror of this defect: no `fence` column at all. A declared invariant enforced by
141
+ * neither side is the shape this repo keeps finding, and it survived two green suites.
142
+ */
143
+ let fence = "";
144
+ let fenceNum = 0;
145
+ let claimed = false;
146
+ let released = false;
147
+ /** The boot refusal, held so a later step answers with the reason it never seated rather than a
148
+ * second, less specific one. */
149
+ let standing = null;
150
+ async function boot() {
151
+ // HOLD THE SEAT. Two boxes reading the same orders both dispatch (plan, seam 3), so the claim
152
+ // door is entered exactly once per instance — a second boot returns the seat already held.
153
+ if (claimed && rec && residencyId)
154
+ return { ok: true, residency_id: residencyId };
155
+ if (standing)
156
+ return standing;
157
+ for (const seam of BOOT_SEAMS) {
158
+ if (typeof deps[seam] !== "function") {
159
+ standing = refuse("no_backend", `reside has no ${seam} backend wired — a deployment supplies it (parallel to deps.queueGig); the engine ships the loop, its refusals and its shape checks.`, { seam });
160
+ return standing;
161
+ }
162
+ }
163
+ claimed = true;
164
+ const claim = await deps.claim(opts.residency);
165
+ if (claim == null) {
166
+ // Not an error and not a seat: an empty roster is the ordinary answer to "is anything free".
167
+ standing = refuse("nothing_claimable", "no residency was claimable — nothing queued for this instance.");
168
+ return standing;
169
+ }
170
+ if (isGigScoped(claim)) {
171
+ // ENGINE-SIDE, BEFORE THE WIRE. The store would refuse this too (42501 at the dispatch door),
172
+ // but a token that cannot possibly dispatch should never travel to find that out.
173
+ standing = refuse("gig_scoped_token", `the claimed credential is scoped to a single gig${claim.gig_id ? ` (${claim.gig_id})` : ""} and cannot hold a residency — narrow may not mint broad.`);
174
+ return standing;
175
+ }
176
+ const booted = bootResidency({ agent_slug: claim.agent_slug, org: claim.org, venue_slug: claim.venue_slug, channel_id: claim.channel_id }, {
177
+ resolveAgent: (s) => (s === claim.agent_slug ? { slug: s } : null),
178
+ resolveVenue: (s) => (s === claim.venue_slug ? { slug: s, credential_surface: [] } : null),
179
+ cortexPresent: () => typeof deps.cortex === "function",
180
+ seatRow: (r) => { rec = r; },
181
+ });
182
+ if (!booted.ok) {
183
+ standing = refuse("no_backend", `boot refused: ${booted.refusal}`, { seam: booted.refusal });
184
+ return standing;
185
+ }
186
+ // The fence is taken from the claim FIRST — the record is built from it, so an ordering slip
187
+ // here would seat every residency at fence 0 and quietly hand the store a stale token on the
188
+ // first heartbeat.
189
+ fence = claim.fence ?? "";
190
+ fenceNum = Number(fence) || 0;
191
+ // The store's session and cursor are the durable ones — a thaw resumes the same life.
192
+ rec = { ...booted.rec, session_id: claim.session_id, cursor: claim.cursor, fence: fenceNum, lease_until: Number.MAX_SAFE_INTEGER };
193
+ residencyId = claim.residency_id;
194
+ const listening = applyResidencyOp(rec, { kind: "listen", fence: fenceNum });
195
+ // A refusal ends the STEP, never the process: an un-listened seat is still a seat.
196
+ if (listening.ok)
197
+ rec = listening.next;
198
+ return { ok: true, residency_id: residencyId };
199
+ }
200
+ /** THE REFLEX. Synchronous by construction — a path that cannot await cannot reach a model. */
201
+ function onInbound(msg) {
202
+ inbox.push(msg);
203
+ if (rec) {
204
+ const acked = applyResidencyOp(rec, { kind: "ack", fence: fenceNum });
205
+ if (acked.ok)
206
+ rec = acked.next;
207
+ }
208
+ // reflexAck is the existing, law-covered primitive (I10/I11) — not a second ack path.
209
+ return reflexAck(msg, { invoke: () => undefined, clock });
210
+ }
211
+ async function wake() {
212
+ if (!rec || !residencyId)
213
+ return standing ?? refuse("no_backend", "not seated", { seam: "claim" });
214
+ const playing = applyResidencyOp(rec, { kind: "play", fence: fenceNum });
215
+ if (playing.ok)
216
+ rec = playing.next;
217
+ const turn = await deps.cortex({ session_id: rec.session_id, inbox: [...inbox] });
218
+ const utterance = turn.utterance;
219
+ if (!utterance || !utterance.text) {
220
+ // THE ALWAYS-ANSWER LAW. A wake that consumed a message and answered nobody is a refusal, not
221
+ // a quiet success — and it seals nothing and moves no cursor, so the unanswered message is not
222
+ // silently dropped.
223
+ return refuse("silent_wake", "the wake produced no channel utterance — a wake that consumes a message must answer it.");
224
+ }
225
+ await deps.say(utterance);
226
+ const sealed = await deps.sealOutput({ residency_id: residencyId, channel_id: utterance.channel_id, text: utterance.text });
227
+ const sha = turn.sealed_output_sha ?? sealed.content_sha;
228
+ // The cursor advances ONLY as a consequence of the seal, in the same write (I1/I3) — the state
229
+ // machine owns that arithmetic, not this loop.
230
+ const advanced = applyResidencyOp(rec, { kind: "wake_seal", fence: fenceNum, message_index: rec.cursor, sealed_output_sha: sha });
231
+ if (!advanced.ok) {
232
+ return refuse(advanced.reason === "cursor_without_seal" ? "cursor_without_seal" : "silent_wake", `the seal did not earn a cursor: ${advanced.reason}`);
233
+ }
234
+ rec = advanced.next;
235
+ await deps.cursorAdvance(residencyId, fence, rec.cursor);
236
+ return { ok: true, utterance, cursor: rec.cursor };
237
+ }
238
+ async function tick() {
239
+ if (!rec || !residencyId)
240
+ return standing ?? refuse("no_backend", "not seated", { seam: "claim" });
241
+ if (typeof deps.callVerb !== "function") {
242
+ return refuse("no_backend", "reside has no callVerb backend wired — the router's hands are the governed verb surface, hydrated under the lease token.", { seam: "callVerb" });
243
+ }
244
+ const pin = { org: rec.org, venue: rec.venue_slug };
245
+ const dispatched = [];
246
+ const relayed = [];
247
+ const escalated = [];
248
+ const monitored = [];
249
+ // A row-routed READ forwards its args verbatim and reads the credential from the header, so it
250
+ // carries no pin. The dispatch is an ACT and names its org and venue in the act itself.
251
+ const due = await deps.callVerb("work-order-due", {});
252
+ if (!due.ok) {
253
+ await deps.say({ channel_id: rec.channel_id, text: due.message });
254
+ return { ok: true, dispatched, monitored, relayed: [{ refusal: due.refusal, message: due.message }], escalated };
255
+ }
256
+ const entries = (Array.isArray(due.data.due) ? due.data.due : []);
257
+ for (const entry of entries) {
258
+ const answer = await deps.callVerb("work-order-dispatch", {
259
+ work_order_id: entry.work_order_id,
260
+ schedule_ordinal: entry.schedule_ordinal,
261
+ mode: entry.mode ?? "live",
262
+ ...(entry.input ? { input: entry.input } : {}),
263
+ pin,
264
+ });
265
+ if (answer.ok) {
266
+ // Re-dispatching a (work_order_id, schedule_ordinal) with a standing non-terminal gig
267
+ // returns that gig's id rather than refusing — so "once per wake" is safe, not merely tidy.
268
+ dispatched.push({ work_order_id: entry.work_order_id, schedule_ordinal: entry.schedule_ordinal, gig_id: String(answer.data["gig_id"] ?? "") });
269
+ continue;
270
+ }
271
+ if (answer.law_ref !== undefined && escalateOn.includes(answer.law_ref)) {
272
+ // THE ONE NAMED DEMAND. Keyed on the law_ref — the identical prose without it is governance
273
+ // and must not reach a model.
274
+ escalated.push({ work_order_id: entry.work_order_id, schedule_ordinal: entry.schedule_ordinal, law_ref: answer.law_ref });
275
+ const turn = await deps.cortex({ session_id: rec.session_id, inbox: [...inbox] });
276
+ if (turn.utterance?.text)
277
+ await deps.say(turn.utterance);
278
+ continue;
279
+ }
280
+ // A refusal is information, and the residency's voice is where it is shown — VERBATIM. The
281
+ // engine does not judge a governance refusal; it raises it.
282
+ //
283
+ // The store names its refusals in a machine-readable PREFIX, so the relayed record carries
284
+ // that name when there is one. This is also the second place a gig-scoped token can surface:
285
+ // the seat check catches one that arrives in a claim, and this catches one the wire reports.
286
+ const named = storeRefusalName(answer.message);
287
+ relayed.push({ refusal: named ?? answer.refusal, message: answer.message });
288
+ await deps.say({ channel_id: rec.channel_id, text: answer.message });
289
+ }
290
+ for (const d of dispatched) {
291
+ const seen = await deps.callVerb("gig_monitor", { gig_id: d.gig_id });
292
+ if (seen.ok)
293
+ monitored.push(d.gig_id);
294
+ }
295
+ return { ok: true, dispatched, monitored, relayed, escalated };
296
+ }
297
+ async function beat() {
298
+ // Renewing after the seat has been handed back is how two boxes come to believe they hold it.
299
+ if (released || !rec || !residencyId)
300
+ return refuse("no_backend", "no live seat to renew", { seam: "claim" });
301
+ const beaten = applyResidencyOp(rec, { kind: "heartbeat", fence: fenceNum, cortex_alive: typeof deps.cortex === "function" });
302
+ if (beaten.ok)
303
+ rec = beaten.next;
304
+ await deps.heartbeat(residencyId, fence);
305
+ return { ok: true };
306
+ }
307
+ async function shutdown(_signal) {
308
+ // A redeploy HANDS THE SEAT OVER rather than racing for it. Idempotent: a second signal during
309
+ // a drain must not release twice, and a seat never held is not released at all.
310
+ if (released || !rec || !residencyId)
311
+ return { ok: true };
312
+ released = true;
313
+ const hibernating = applyResidencyOp(rec, { kind: "hibernate", fence: fenceNum, by: "holder" });
314
+ if (hibernating.ok)
315
+ rec = hibernating.next;
316
+ await deps.release(residencyId, fence, "hibernated");
317
+ return { ok: true };
318
+ }
319
+ return {
320
+ boot,
321
+ onInbound,
322
+ wake,
323
+ tick,
324
+ beat,
325
+ shutdown,
326
+ get inbox() { return inbox; },
327
+ };
328
+ }
329
+ /**
330
+ * The `reside` verb. REUSES work's env contract — src/worker_env.ts's WORKER_ENV_CONTRACT is the
331
+ * single source, and reside introduces no new credential class: the residency's hands materialize
332
+ * from the drain key that already exists. Missing COLTRANE_STORE_URL / COLTRANE_STORE_ANON is a
333
+ * usage refusal (exit 2), the same door `work` uses.
334
+ *
335
+ * Exit codes mirror work's: 0 released cleanly · 1 the cortex failed · 2 misconfigured, including a
336
+ * seam no deployment has wired · 3 nothing claimable.
337
+ *
338
+ * This reads `io.env` when given one and falls back to the process environment otherwise — the
339
+ * fallback is what makes the mounted command usable, and the injection is what makes law I20
340
+ * checkable. It reads no NAMED variable of its own, which is why src/reside.ts can join the
341
+ * WORKER_PATH scan in tests/spec_worker_environment.test.ts and stay honest there.
342
+ */
343
+ export async function runReside(argv, io) {
344
+ const asIo = io;
345
+ const env = asIo?.env ?? process.env;
346
+ const say = (s) => { asIo?.err?.(s + "\n"); };
347
+ const at = argv.indexOf("--residency");
348
+ const residency = at >= 0 && argv[at + 1] ? String(argv[at + 1]) : "any";
349
+ // WHERE THE SEAT LIVES is selected FIRST, and never guessed: a local file roster, a backing you
350
+ // wrote, or a hosted one the DEPLOYMENT injects. The engine holds no hosted provider, so with the
351
+ // drain environment set this refuses and names what to wire.
352
+ //
353
+ // THE ORDER HERE IS THE FIX FOR A REAL DEFECT. This used to demand COLTRANE_STORE_URL/_ANON before
354
+ // selecting anything — and both are DRAIN_VARS, so setting COLTRANE_RESIDENCY_DIR produced a
355
+ // backing CONFLICT every time and the local roster could not be selected by any environment on
356
+ // earth. A store credential is the HOSTED backing's requirement, not the verb's: a local seat has
357
+ // no store to point at, and asking it for one made a whole provider unreachable.
358
+ const choice = selectResidencyBacking(env);
359
+ if (choice.backing === "hosted" && (!env["COLTRANE_STORE_URL"] || !env["COLTRANE_STORE_ANON"])) {
360
+ // Said, not silent. A bare exit 2 leaves an operator to guess which of five variables is
361
+ // missing — and leaves the reachability law with nothing only THIS command could have emitted.
362
+ say("reside refused: no_backend (seam: store-env) — the hosted backing needs COLTRANE_STORE_URL and COLTRANE_STORE_ANON.");
363
+ return 2;
364
+ }
365
+ const seat = await resolveSeatBacking(choice, {});
366
+ if (!seat.ok) {
367
+ say(`reside refused: ${seat.refusal} (seam: ${seat.seam}) — ${seat.message}`);
368
+ return resideExitCode(seat.refusal);
369
+ }
370
+ // The seat resolved; the remaining seams (channel, cortex, hands) are per-deployment on every
371
+ // backing, so an unwired one still refuses BY NAME rather than pretending to stand.
372
+ const r = createResidency({ residency }, { ...seat.seat });
373
+ const booted = await r.boot();
374
+ if (!booted.ok) {
375
+ say(`reside refused: ${booted.refusal}${booted.seam ? ` (seam: ${booted.seam})` : ""} — ${booted.message}`);
376
+ return resideExitCode(booted.refusal);
377
+ }
378
+ return 0;
379
+ }
380
+ //# sourceMappingURL=reside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reside.js","sourceRoot":"","sources":["../../src/reside.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { ResidencyClaim } from "./reside.js";
2
+ /** The local file-backed roster's root. Its PRESENCE selects the local backing. */
3
+ export declare const RESIDENCY_DIR_VAR = "COLTRANE_RESIDENCY_DIR";
4
+ /** A module you wrote, exporting the four seat operations. Its PRESENCE selects the module backing. */
5
+ export declare const RESIDENCY_MODULE_VAR = "COLTRANE_RESIDENCY_MODULE";
6
+ export type ResidencyBackingChoice = {
7
+ backing: "local";
8
+ root: string;
9
+ } | {
10
+ backing: "module";
11
+ spec: string;
12
+ } | {
13
+ backing: "hosted";
14
+ } | {
15
+ backing: "none";
16
+ why: string;
17
+ } | {
18
+ backing: "conflict";
19
+ why: string;
20
+ };
21
+ /** The four seat seams — where the residency ROW lives, and nothing else. */
22
+ export interface SeatBacking {
23
+ claim: (which: string | "any") => Promise<ResidencyClaim | null>;
24
+ heartbeat: (residencyId: string, fence: string) => Promise<void>;
25
+ release: (residencyId: string, fence: string, status: "hibernated" | "unseated") => Promise<void>;
26
+ cursorAdvance: (residencyId: string, fence: string, n: number) => Promise<number>;
27
+ }
28
+ /** Checked IN THIS ORDER, so a refusal names the first thing a hand-built backing forgot. */
29
+ export declare const SEAT_MEMBERS: readonly ["claim", "heartbeat", "release", "cursorAdvance"];
30
+ export type SeatResolution = {
31
+ ok: true;
32
+ seat: SeatBacking;
33
+ backing: "local" | "module" | "hosted";
34
+ } | {
35
+ ok: false;
36
+ refusal: "no_backend" | "backing_conflict";
37
+ seam: string;
38
+ message: string;
39
+ };
40
+ export interface SeatSeed {
41
+ agent_slug: string;
42
+ org: string;
43
+ venue_slug: string;
44
+ channel_id: string;
45
+ }
46
+ export declare function selectResidencyBacking(env: Record<string, string | undefined>): ResidencyBackingChoice;
47
+ /**
48
+ * Resolve a choice to a usable seat, or refuse naming what is missing. A hosted choice resolves ONLY
49
+ * to what a deployment injected — the engine will not conjure one, which is the whole of its
50
+ * platform-agnosticism. `injected.module` is accepted so a hand-built backing can be handed in
51
+ * directly (and so a law can drive one without writing a file).
52
+ */
53
+ export declare function resolveSeatBacking(choice: ResidencyBackingChoice, injected?: {
54
+ hosted?: Partial<SeatBacking>;
55
+ module?: Partial<SeatBacking>;
56
+ }): Promise<SeatResolution>;
57
+ /** Put one seat on a local roster so there is something to claim. The local counterpart of seating. */
58
+ export declare function fileSeatSeed(root: string, seed: SeatSeed): Promise<string>;
59
+ /**
60
+ * A real seat on disk — not a stub. It holds a lease (so two boxes cannot both claim one roster) and
61
+ * it refuses a cursor regression, because a local backing that were laxer than the hosted one it
62
+ * stands in for would let a bug pass locally and fail only in production.
63
+ */
64
+ export declare function fileSeatBacking(root: string): SeatBacking;
@@ -0,0 +1,243 @@
1
+ /**
2
+ * WHERE THE SEAT LIVES — the residency backing seam.
3
+ *
4
+ * `reside` is platform-agnostic at THIS level. The engine ships the port, the selector, a local
5
+ * file-backed provider, a shape-check for a hand-built one, and the refusals. It ships no hosted
6
+ * provider of its own: a deployment injects that, the way `deps.queueGig` and
7
+ * `deps.mintVenueCredential` are injected. The last law in tests/spec_reside_backing.test.ts greps
8
+ * this file and reside.ts for platform-specific symbols, so "the engine has no platform" is a
9
+ * property a test can break rather than a claim in a comment.
10
+ *
11
+ * THE SELECTOR IS selectQueueBacking'S SHAPE, ONE TABLE OVER (src/local_queue.ts:153), and that is
12
+ * deliberate reuse of a policy this repo already argued out:
13
+ * • it answers from key PRESENCE, never from a credential's value;
14
+ * • two backings configured is a CONFLICT — which store owns a seat is not a thing to guess, and
15
+ * a precedence order would silently prefer one operator's intent over another's;
16
+ * • nothing configured names every door, so the operator learns the choices from the refusal.
17
+ * The one addition is a third door — a module you wrote yourself — because "local" and "hand built"
18
+ * are different things: one is a file layout the engine understands, the other is your code.
19
+ *
20
+ * SCOPE. This seam is about the SEAT — the four operations that move a residency row. The channel,
21
+ * the cortex and the work-order hands are separate axes and are supplied per-deployment regardless
22
+ * of where the seat lives; folding them in here would make a local seat imply a local model.
23
+ */
24
+ import { readFileSync, writeFileSync, readdirSync, mkdirSync, existsSync } from "node:fs";
25
+ import { join } from "node:path";
26
+ import { randomUUID } from "node:crypto";
27
+ import { DRAIN_VARS } from "./local_queue.js";
28
+ /** The local file-backed roster's root. Its PRESENCE selects the local backing. */
29
+ export const RESIDENCY_DIR_VAR = "COLTRANE_RESIDENCY_DIR";
30
+ /** A module you wrote, exporting the four seat operations. Its PRESENCE selects the module backing. */
31
+ export const RESIDENCY_MODULE_VAR = "COLTRANE_RESIDENCY_MODULE";
32
+ /** Checked IN THIS ORDER, so a refusal names the first thing a hand-built backing forgot. */
33
+ export const SEAT_MEMBERS = ["claim", "heartbeat", "release", "cursorAdvance"];
34
+ /** How long a local claim holds before another box may take the seat. Mirrors the hosted lease. */
35
+ const LOCAL_LEASE_MS = 30 * 60 * 1000;
36
+ export function selectResidencyBacking(env) {
37
+ const dirRaw = env[RESIDENCY_DIR_VAR];
38
+ const modRaw = env[RESIDENCY_MODULE_VAR];
39
+ const localPresent = typeof dirRaw === "string" && dirRaw.length > 0;
40
+ const modulePresent = typeof modRaw === "string" && modRaw.length > 0;
41
+ const keys = Object.keys(env);
42
+ const hostedPresent = DRAIN_VARS.some((v) => keys.includes(v));
43
+ const chosen = [
44
+ localPresent ? RESIDENCY_DIR_VAR : null,
45
+ modulePresent ? RESIDENCY_MODULE_VAR : null,
46
+ hostedPresent ? "the hosted drain environment" : null,
47
+ ].filter((x) => x !== null);
48
+ if (chosen.length > 1) {
49
+ return {
50
+ backing: "conflict",
51
+ why: `${chosen.join(" and ")} are all configured — refusing to guess which backing owns the seat. Two boxes reading one roster both dispatch.`,
52
+ };
53
+ }
54
+ if (localPresent)
55
+ return { backing: "local", root: dirRaw };
56
+ if (modulePresent)
57
+ return { backing: "module", spec: modRaw };
58
+ if (hostedPresent)
59
+ return { backing: "hosted" };
60
+ return {
61
+ backing: "none",
62
+ why: `no residency backing configured — set ${RESIDENCY_DIR_VAR} for a local file-backed roster, ` +
63
+ `${RESIDENCY_MODULE_VAR} for a backing you wrote yourself, or the hosted drain environment ` +
64
+ `for a hosted seat (whose provider the deployment injects).`,
65
+ };
66
+ }
67
+ /** Every seat member present and callable, or the name of the first that is not. */
68
+ function missingMember(candidate) {
69
+ if (!candidate)
70
+ return SEAT_MEMBERS[0];
71
+ for (const m of SEAT_MEMBERS) {
72
+ if (typeof candidate[m] !== "function")
73
+ return m;
74
+ }
75
+ return null;
76
+ }
77
+ /**
78
+ * Resolve a choice to a usable seat, or refuse naming what is missing. A hosted choice resolves ONLY
79
+ * to what a deployment injected — the engine will not conjure one, which is the whole of its
80
+ * platform-agnosticism. `injected.module` is accepted so a hand-built backing can be handed in
81
+ * directly (and so a law can drive one without writing a file).
82
+ */
83
+ export async function resolveSeatBacking(choice, injected = {}) {
84
+ if (choice.backing === "conflict") {
85
+ return { ok: false, refusal: "backing_conflict", seam: "backing", message: choice.why };
86
+ }
87
+ if (choice.backing === "none") {
88
+ return { ok: false, refusal: "no_backend", seam: "backing", message: choice.why };
89
+ }
90
+ if (choice.backing === "local") {
91
+ return { ok: true, seat: fileSeatBacking(choice.root), backing: "local" };
92
+ }
93
+ if (choice.backing === "module") {
94
+ let candidate = injected.module;
95
+ if (!candidate) {
96
+ try {
97
+ const mod = (await import(choice.spec));
98
+ candidate = typeof mod.residencyBacking === "function" ? mod.residencyBacking() : mod.default;
99
+ }
100
+ catch (e) {
101
+ return {
102
+ ok: false,
103
+ refusal: "no_backend",
104
+ seam: "module",
105
+ message: `${RESIDENCY_MODULE_VAR}=${choice.spec} could not be loaded: ${e instanceof Error ? e.message : String(e)}`,
106
+ };
107
+ }
108
+ }
109
+ const missing = missingMember(candidate);
110
+ if (missing) {
111
+ return {
112
+ ok: false,
113
+ refusal: "no_backend",
114
+ seam: missing,
115
+ message: `the hand-built backing has no ${missing}() — a seat needs all of ${SEAT_MEMBERS.join(", ")}. A partial backing is refused rather than half-used.`,
116
+ };
117
+ }
118
+ return { ok: true, seat: candidate, backing: "module" };
119
+ }
120
+ // hosted — and the engine ships nothing for it ON PURPOSE.
121
+ const missing = missingMember(injected.hosted);
122
+ if (missing) {
123
+ return {
124
+ ok: false,
125
+ refusal: "no_backend",
126
+ seam: "hosted",
127
+ message: `the hosted backing is supplied by the DEPLOYMENT, not by the engine — inject it (parallel ` +
128
+ `to deps.queueGig / deps.mintVenueCredential). The engine ships the port, the local backing ` +
129
+ `and the refusals; it deliberately holds no hosted provider of its own.`,
130
+ };
131
+ }
132
+ return { ok: true, seat: injected.hosted, backing: "hosted" };
133
+ }
134
+ /**
135
+ * The fence check, and the reason the local backing has one at all: a backing laxer than the store it
136
+ * stands in for lets a bug pass locally and fail only in production. Refused with the name the
137
+ * ENGINE already uses for this rule (stale_fence, src/residency.ts:268) rather than a second name
138
+ * for one invariant.
139
+ */
140
+ function assertFence(root, id, fence) {
141
+ const row = readRow(root, id);
142
+ if (Number(fence) < Number(row.fence)) {
143
+ throw new Error(`stale_fence: a stale fence on residency ${id} — the lease was re-claimed, or this box never held it. Claim again.`);
144
+ }
145
+ return row;
146
+ }
147
+ function rowPath(root, id) {
148
+ return join(root, `${id}.json`);
149
+ }
150
+ function readRow(root, id) {
151
+ return JSON.parse(readFileSync(rowPath(root, id), "utf8"));
152
+ }
153
+ function writeRow(root, row) {
154
+ mkdirSync(root, { recursive: true });
155
+ writeFileSync(rowPath(root, row.residency_id), JSON.stringify(row, null, 2) + "\n");
156
+ }
157
+ /** Put one seat on a local roster so there is something to claim. The local counterpart of seating. */
158
+ export async function fileSeatSeed(root, seed) {
159
+ const row = {
160
+ residency_id: randomUUID(),
161
+ agent_slug: seed.agent_slug,
162
+ org: seed.org,
163
+ venue_slug: seed.venue_slug,
164
+ channel_id: seed.channel_id,
165
+ session_id: null,
166
+ status: "unseated",
167
+ cursor: 0,
168
+ host: null,
169
+ lease_until: 0,
170
+ hands: [],
171
+ fence: 0,
172
+ };
173
+ writeRow(root, row);
174
+ return row.residency_id;
175
+ }
176
+ /**
177
+ * A real seat on disk — not a stub. It holds a lease (so two boxes cannot both claim one roster) and
178
+ * it refuses a cursor regression, because a local backing that were laxer than the hosted one it
179
+ * stands in for would let a bug pass locally and fail only in production.
180
+ */
181
+ export function fileSeatBacking(root) {
182
+ const now = () => Date.now();
183
+ return {
184
+ claim: async (which) => {
185
+ if (!existsSync(root))
186
+ return null;
187
+ const ids = readdirSync(root).filter((f) => f.endsWith(".json")).map((f) => f.slice(0, -5));
188
+ for (const id of ids) {
189
+ if (which !== "any" && id !== which)
190
+ continue;
191
+ const row = readRow(root, id);
192
+ // A live lease is another box's seat. An expired one is reclaimable, so a crashed runner
193
+ // never wedges the roster.
194
+ if (row.host !== null && row.lease_until > now())
195
+ continue;
196
+ row.host = "local";
197
+ row.status = "seated";
198
+ row.lease_until = now() + LOCAL_LEASE_MS;
199
+ // A NEW grant gets a NEW grip. This is what makes a re-claim by the SAME box distinguishable
200
+ // from its own expired grant — the failure an instance name cannot see.
201
+ row.fence = (row.fence ?? 0) + 1;
202
+ writeRow(root, row);
203
+ return {
204
+ residency_id: row.residency_id,
205
+ agent_slug: row.agent_slug,
206
+ org: row.org,
207
+ venue_slug: row.venue_slug,
208
+ channel_id: row.channel_id,
209
+ session_id: row.session_id,
210
+ cursor: row.cursor,
211
+ // A local seat is not a minted credential and must never read as one.
212
+ lease_token: `local:${row.residency_id}`,
213
+ fence: String(row.fence),
214
+ gig_id: null,
215
+ may_dispatch: ["*"],
216
+ hands: row.hands,
217
+ };
218
+ }
219
+ return null;
220
+ },
221
+ heartbeat: async (id, fence) => {
222
+ const row = assertFence(root, id, fence);
223
+ row.lease_until = now() + LOCAL_LEASE_MS;
224
+ writeRow(root, row);
225
+ },
226
+ release: async (id, fence, status) => {
227
+ const row = assertFence(root, id, fence);
228
+ row.status = status;
229
+ row.host = null;
230
+ writeRow(root, row);
231
+ },
232
+ cursorAdvance: async (id, fence, n) => {
233
+ const row = assertFence(root, id, fence);
234
+ if (n < row.cursor) {
235
+ throw new Error(`cursor_regression: ${n} is behind the seat's cursor ${row.cursor} — a cursor only ever moves forward.`);
236
+ }
237
+ row.cursor = n;
238
+ writeRow(root, row);
239
+ return row.cursor;
240
+ },
241
+ };
242
+ }
243
+ //# sourceMappingURL=reside_backing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reside_backing.js","sourceRoot":"","sources":["../../src/reside_backing.ts"],"names":[],"mappings":"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"}
@@ -141,9 +141,13 @@ export declare function admitVenueCredential(venue: VenueLike, credentialClass:
141
141
  */
142
142
  export declare function bootResidency(spec: ResidencySpec, deps: BootDeps): BootResult;
143
143
  /**
144
- * The `reside` verb REUSES work's gig path it does not fork the drain's five-variable env contract.
145
- * Missing COLTRANE_STORE_URL / COLTRANE_STORE_ANON is a usage refusal (exit 2), the same door work
146
- * uses (src/cli.ts:241-248). The gig itself is workOnce, re-exported above as residencyGigPath; the
147
- * store/channel wiring is a deployment seam the laws inject rather than assert here.
144
+ * The `reside` verb lives in src/reside.ts, with the loop it starts, and is re-exported here so the
145
+ * residency surface stays one import for its callers (law I20/O14 reads it from this module).
146
+ *
147
+ * It used to be a three-line stub RIGHT HERE — and that was the defect. It honoured the env contract
148
+ * and returned the right exit code, and `src/cli.ts`'s KNOWN table had no "reside" in it, so nothing
149
+ * on earth could call it: a law proved the mechanism worked while `coltrane reside` answered
150
+ * `unknown command`. The verb now starts a real loop and the CLI mounts it; tests/spec_reside_cli.test.ts
151
+ * asserts the MOUNT rather than the symbol, so this cannot quietly come undone again.
148
152
  */
149
- export declare function runReside(_argv: readonly string[], io: unknown): Promise<number>;
153
+ export { runReside } from "./reside.js";
@@ -268,16 +268,16 @@ export function bootResidency(spec, deps) {
268
268
  deps.seatRow(rec);
269
269
  return { ok: true, rec };
270
270
  }
271
+ // ── The verb mirrors work's env + exit contract (I20) ──────────────────────────────────────────────
271
272
  /**
272
- * The `reside` verb REUSES work's gig path it does not fork the drain's five-variable env contract.
273
- * Missing COLTRANE_STORE_URL / COLTRANE_STORE_ANON is a usage refusal (exit 2), the same door work
274
- * uses (src/cli.ts:241-248). The gig itself is workOnce, re-exported above as residencyGigPath; the
275
- * store/channel wiring is a deployment seam the laws inject rather than assert here.
273
+ * The `reside` verb lives in src/reside.ts, with the loop it starts, and is re-exported here so the
274
+ * residency surface stays one import for its callers (law I20/O14 reads it from this module).
275
+ *
276
+ * It used to be a three-line stub RIGHT HERE — and that was the defect. It honoured the env contract
277
+ * and returned the right exit code, and `src/cli.ts`'s KNOWN table had no "reside" in it, so nothing
278
+ * on earth could call it: a law proved the mechanism worked while `coltrane reside` answered
279
+ * `unknown command`. The verb now starts a real loop and the CLI mounts it; tests/spec_reside_cli.test.ts
280
+ * asserts the MOUNT rather than the symbol, so this cannot quietly come undone again.
276
281
  */
277
- export async function runReside(_argv, io) {
278
- const env = io?.env ?? {};
279
- if (!env["COLTRANE_STORE_URL"] || !env["COLTRANE_STORE_ANON"])
280
- return 2;
281
- return 0;
282
- }
282
+ export { runReside } from "./reside.js";
283
283
  //# sourceMappingURL=residency.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"residency.js","sourceRoot":"","sources":["../../src/residency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"residency.js","sourceRoot":"","sources":["../../src/residency.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** Engine semver. Keep in lockstep with package.json `version` (enforced by test). */
2
- export declare const COLTRANE_VERSION = "0.24.28";
2
+ export declare const COLTRANE_VERSION = "0.24.29";
3
3
  /**
4
4
  * The commit this engine checkout is sitting on, or null when it can't be determined.
5
5
  *
@@ -17,7 +17,7 @@ import { existsSync, readFileSync, statSync } from "node:fs";
17
17
  import { dirname, join, resolve } from "node:path";
18
18
  import { fileURLToPath } from "node:url";
19
19
  /** Engine semver. Keep in lockstep with package.json `version` (enforced by test). */
20
- export const COLTRANE_VERSION = "0.24.28";
20
+ export const COLTRANE_VERSION = "0.24.29";
21
21
  /**
22
22
  * The commit this engine checkout is sitting on, or null when it can't be determined.
23
23
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eir-labs/coltrane",
3
- "version": "0.24.28",
3
+ "version": "0.24.29",
4
4
  "description": "A methodology engine \u2014 a typed substrate for defining agents, composing multi-phase standards, dispatching gigs, and sealing every output to a content-addressed ledger. Ships as an MCP server.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",