@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 +4 -1
- package/dist/src/cli.js +19 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/reside.d.ts +150 -0
- package/dist/src/reside.js +380 -0
- package/dist/src/reside.js.map +1 -0
- package/dist/src/reside_backing.d.ts +64 -0
- package/dist/src/reside_backing.js +243 -0
- package/dist/src/reside_backing.js.map +1 -0
- package/dist/src/residency.d.ts +9 -5
- package/dist/src/residency.js +10 -10
- package/dist/src/residency.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
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.
|
|
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") {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -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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"}
|
package/dist/src/residency.d.ts
CHANGED
|
@@ -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
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
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
|
|
153
|
+
export { runReside } from "./reside.js";
|
package/dist/src/residency.js
CHANGED
|
@@ -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
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
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
|
|
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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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -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.
|
|
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
|
*
|
package/dist/src/version.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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",
|