@cotal-ai/core 0.45.0 → 0.47.0
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/connector.d.ts +11 -0
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js +11 -0
- package/dist/connector.js.map +1 -1
- package/dist/endpoint-binding.d.ts +5 -0
- package/dist/endpoint-binding.d.ts.map +1 -1
- package/dist/endpoint-binding.js +9 -7
- package/dist/endpoint-binding.js.map +1 -1
- package/dist/endpoint-grants.d.ts +13 -0
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +27 -1
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-records.d.ts.map +1 -1
- package/dist/endpoint-records.js +17 -0
- package/dist/endpoint-records.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/kv-scan.d.ts +25 -0
- package/dist/kv-scan.d.ts.map +1 -1
- package/dist/kv-scan.js +62 -0
- package/dist/kv-scan.js.map +1 -1
- package/dist/provision.d.ts +12 -1
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +29 -1
- package/dist/provision.js.map +1 -1
- package/dist/run-driver-grants.d.ts +65 -0
- package/dist/run-driver-grants.d.ts.map +1 -0
- package/dist/run-driver-grants.js +156 -0
- package/dist/run-driver-grants.js.map +1 -0
- package/dist/run-host.d.ts +202 -0
- package/dist/run-host.d.ts.map +1 -0
- package/dist/run-host.js +16 -0
- package/dist/run-host.js.map +1 -0
- package/dist/run-migration.d.ts.map +1 -1
- package/dist/run-migration.js +5 -4
- package/dist/run-migration.js.map +1 -1
- package/dist/run-notice.d.ts.map +1 -1
- package/dist/run-notice.js +9 -4
- package/dist/run-notice.js.map +1 -1
- package/dist/run-program.d.ts +39 -0
- package/dist/run-program.d.ts.map +1 -0
- package/dist/run-program.js +53 -0
- package/dist/run-program.js.map +1 -0
- package/dist/runtime.d.ts +18 -0
- package/dist/runtime.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The RUN HOST contract (SPEC 14.3): what a daemon that hosts workflow runs asks of the language
|
|
3
|
+
* runtime, as an {@link Extension} of kind `"run-host"`.
|
|
4
|
+
*
|
|
5
|
+
* The manager hosts a run's driver, and `@cotal-ai/runtime` is the driver; `implementations/*`
|
|
6
|
+
* never import each other, so the seam between them is this contract, registered by the runtime
|
|
7
|
+
* on import and resolved by the manager by name, the same way a `RuntimeProvider` reaches the
|
|
8
|
+
* manager. Everything here is expressed in core terms: planes over one broker connection, the
|
|
9
|
+
* lease a takeover holds, the rows a listing and a journal view render. Nothing about the
|
|
10
|
+
* language itself (its entries, its errors) crosses this boundary typed; a validation refusal is
|
|
11
|
+
* carried as the runtime's own JSON, opaque to the host, and handed to the caller verbatim.
|
|
12
|
+
*/
|
|
13
|
+
import type { NatsConnection } from "@nats-io/transport-node";
|
|
14
|
+
import type { JetStreamClient, JetStreamManager } from "@nats-io/jetstream";
|
|
15
|
+
import type { KV } from "@nats-io/kv";
|
|
16
|
+
import type { Extension } from "./registry.js";
|
|
17
|
+
import type { RunSpecValue, RunStatusValue } from "./run-record.js";
|
|
18
|
+
/** The kind every run host registers under. */
|
|
19
|
+
export declare const RUN_HOST_KIND = "run-host";
|
|
20
|
+
/** The one language this tree ships a host for. */
|
|
21
|
+
export declare const COTAL_LANG_RUN_HOST = "cotal-lang";
|
|
22
|
+
/** The `error.details[].kind` a hosting daemon's validation refusal carries one language problem
|
|
23
|
+
* under (SPEC 13.3 extension detail): the record is the validator's own `LangErrorJson`. */
|
|
24
|
+
export declare const LANG_PROBLEM_DETAIL_KIND = "ai.cotal.lang.problem";
|
|
25
|
+
/** How long a hosting daemon waits for a launched drive's status record before answering a
|
|
26
|
+
* start or resume. A client's invoke deadline for those two commands MUST exceed this, or the
|
|
27
|
+
* daemon's "still launching" refusal can never reach the caller (it would time out first and
|
|
28
|
+
* read as no manager answering). */
|
|
29
|
+
export declare const RUN_ACTIVATION_WAIT_MS = 15000;
|
|
30
|
+
/** The invoke deadline a `run-start` / `run-resume` client uses: the activation wait plus the
|
|
31
|
+
* round trips around it. */
|
|
32
|
+
export declare const RUN_LAUNCH_DEADLINE_MS: number;
|
|
33
|
+
/** The planes a drive, an answer or a read rides: ONE broker connection and what hangs off it.
|
|
34
|
+
* The host that opens the connection knows whose credential it carries; the run host does not. */
|
|
35
|
+
export interface RunHostPlanes {
|
|
36
|
+
readonly nc: NatsConnection;
|
|
37
|
+
readonly js: JetStreamClient;
|
|
38
|
+
readonly jsm: JetStreamManager;
|
|
39
|
+
readonly kv: KV;
|
|
40
|
+
readonly space: string;
|
|
41
|
+
}
|
|
42
|
+
/** What one drive attempt holds (SPEC 14.4). `takeoverId` names the replay durable the attempt's
|
|
43
|
+
* credential was minted for, which is why it arrives with the lease rather than being chosen by
|
|
44
|
+
* the driver. */
|
|
45
|
+
export interface RunHostLease {
|
|
46
|
+
readonly holder: string;
|
|
47
|
+
readonly epoch: number;
|
|
48
|
+
readonly fencingToken: number;
|
|
49
|
+
readonly takeoverId: string;
|
|
50
|
+
}
|
|
51
|
+
export interface RunHostDriveRequest {
|
|
52
|
+
/** `new` starts a run that has never been driven; `existing` takes a recorded run over. */
|
|
53
|
+
readonly mode: "new" | "existing";
|
|
54
|
+
readonly endpoint: string;
|
|
55
|
+
readonly runId: string;
|
|
56
|
+
readonly source: string;
|
|
57
|
+
readonly file?: string;
|
|
58
|
+
readonly lease: RunHostLease;
|
|
59
|
+
/** The process holding the run, as a checkpoint's holder-bound resume will name it. */
|
|
60
|
+
readonly holder: {
|
|
61
|
+
readonly id: string;
|
|
62
|
+
readonly lifecycleUid: string;
|
|
63
|
+
};
|
|
64
|
+
/** The driving instance and epoch: the coordinates its timer schedules are addressed by. */
|
|
65
|
+
readonly instanceId: string;
|
|
66
|
+
readonly epoch: number;
|
|
67
|
+
readonly defaultCheckpointTimeout: string;
|
|
68
|
+
/** The most bytes a settled result may take, from the connection's own `max_payload`. */
|
|
69
|
+
readonly resultBytes?: number;
|
|
70
|
+
}
|
|
71
|
+
/** How a drive attempt ended. `released` is the driver saying the run is not its to continue (a
|
|
72
|
+
* takeover won, a step was refused on this host, the host asked it to stop, the run was never
|
|
73
|
+
* resumable); `failed` is the program's own failure. Both leave the journal where it is; a later
|
|
74
|
+
* attempt resumes from there. */
|
|
75
|
+
export type RunHostOutcome = {
|
|
76
|
+
readonly status: "completed";
|
|
77
|
+
readonly steps: number;
|
|
78
|
+
readonly value?: unknown;
|
|
79
|
+
} | {
|
|
80
|
+
readonly status: "released";
|
|
81
|
+
readonly reason: {
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly message: string;
|
|
84
|
+
};
|
|
85
|
+
} | {
|
|
86
|
+
readonly status: "failed";
|
|
87
|
+
readonly error: {
|
|
88
|
+
readonly name: string;
|
|
89
|
+
readonly message: string;
|
|
90
|
+
readonly code?: string;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/** A drive in flight. `release` asks the driver to stop at its next effect boundary and record the
|
|
94
|
+
* run `released` for the host's reason, never the program's; a drive parked inside a long pause
|
|
95
|
+
* reaches no boundary until the pause settles, so a host that must stop sooner closes the
|
|
96
|
+
* connection under it and the journal is the recovery. */
|
|
97
|
+
export interface RunHostDrive {
|
|
98
|
+
readonly done: Promise<RunHostOutcome>;
|
|
99
|
+
release(reason: string): void;
|
|
100
|
+
}
|
|
101
|
+
/** The READ half of an answer: which pause, addressed by its step. */
|
|
102
|
+
export interface RunHostLocateRequest {
|
|
103
|
+
readonly endpoint: string;
|
|
104
|
+
readonly runId: string;
|
|
105
|
+
/** The takeover id the journal replay of this call is named by: the one the caller's credential
|
|
106
|
+
* was minted for, so the replay durable the resolver creates is the row the caller holds. */
|
|
107
|
+
readonly takeoverId: string;
|
|
108
|
+
/** The step's canonical key string, as `journal` renders it. */
|
|
109
|
+
readonly stepKey: string;
|
|
110
|
+
}
|
|
111
|
+
/** An open pause, located: its token and the holder that armed it. What a hosting daemon mints
|
|
112
|
+
* the answering credential for, so the answer's writes are pinned to this one pause. */
|
|
113
|
+
export interface RunHostOpenPause {
|
|
114
|
+
readonly token: string;
|
|
115
|
+
readonly holder: {
|
|
116
|
+
readonly id: string;
|
|
117
|
+
readonly lifecycleUid: string;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** The WRITE half of an answer: the located pause and what to file on it. */
|
|
121
|
+
export interface RunHostAnswerRequest {
|
|
122
|
+
readonly endpoint: string;
|
|
123
|
+
readonly open: RunHostOpenPause;
|
|
124
|
+
/** The answerer as the host's authorization knows them (SPEC 14.5): derived by the host from
|
|
125
|
+
* the caller's authenticated principal, never taken from the request body. */
|
|
126
|
+
readonly by: string;
|
|
127
|
+
readonly value?: unknown;
|
|
128
|
+
readonly artifact?: string;
|
|
129
|
+
readonly now: number;
|
|
130
|
+
}
|
|
131
|
+
/** One row of `cotal run ps`. Absent status means a spec with no status yet. */
|
|
132
|
+
export interface RunListRow {
|
|
133
|
+
readonly runId: string;
|
|
134
|
+
readonly endpoint: string;
|
|
135
|
+
readonly state?: RunStatusValue["state"];
|
|
136
|
+
readonly holder?: string;
|
|
137
|
+
readonly epoch?: number;
|
|
138
|
+
readonly journalHigh?: number;
|
|
139
|
+
readonly forkedFrom?: {
|
|
140
|
+
readonly run: string;
|
|
141
|
+
readonly step: string;
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/** One row of a run's journal view. */
|
|
145
|
+
export type RunJournalRow = {
|
|
146
|
+
readonly n: number;
|
|
147
|
+
readonly kind: "activation";
|
|
148
|
+
readonly holder: string;
|
|
149
|
+
readonly epoch: number;
|
|
150
|
+
readonly replayedTo: number;
|
|
151
|
+
} | {
|
|
152
|
+
readonly n: number;
|
|
153
|
+
readonly kind: "step";
|
|
154
|
+
readonly step: string;
|
|
155
|
+
readonly state: "pending" | "settled";
|
|
156
|
+
/** `pending`, or the settled status with its error code when there is one. */
|
|
157
|
+
readonly outcome: string;
|
|
158
|
+
/** What an open pause asks, present only while it is open. */
|
|
159
|
+
readonly asks?: string;
|
|
160
|
+
readonly addressee?: string;
|
|
161
|
+
};
|
|
162
|
+
export interface RunStatusView {
|
|
163
|
+
readonly runId: string;
|
|
164
|
+
readonly endpoint: string;
|
|
165
|
+
readonly spec: RunSpecValue;
|
|
166
|
+
readonly status?: RunStatusValue;
|
|
167
|
+
readonly journal: RunJournalRow[];
|
|
168
|
+
}
|
|
169
|
+
export type RunValidation = {
|
|
170
|
+
readonly ok: true;
|
|
171
|
+
}
|
|
172
|
+
/** The runtime's own error records, one per problem, opaque here and handed on verbatim. */
|
|
173
|
+
| {
|
|
174
|
+
readonly ok: false;
|
|
175
|
+
readonly errors: readonly Record<string, unknown>[];
|
|
176
|
+
};
|
|
177
|
+
export interface RunHost extends Extension {
|
|
178
|
+
readonly kind: typeof RUN_HOST_KIND;
|
|
179
|
+
readonly name: string;
|
|
180
|
+
/** Parse and validate a program with no broker. A refusal carries every problem found. */
|
|
181
|
+
validate(source: string, file?: string): RunValidation;
|
|
182
|
+
/** Drive a run over `planes`. Returns as soon as the drive is launched; `done` settles when the
|
|
183
|
+
* run completes, is released, or fails, and never rejects. */
|
|
184
|
+
drive(planes: RunHostPlanes, req: RunHostDriveRequest): RunHostDrive;
|
|
185
|
+
/** Find the open checkpoint, or open `ask` attempt, at a step: a read, nothing written. */
|
|
186
|
+
locate(planes: RunHostPlanes, req: RunHostLocateRequest): Promise<RunHostOpenPause>;
|
|
187
|
+
/** Answer a located pause through the driver's own door. A host that pins credentials mints
|
|
188
|
+
* the answering one for `req.open.token` and opens fresh planes under it for this call. */
|
|
189
|
+
answer(planes: RunHostPlanes, req: RunHostAnswerRequest): Promise<unknown>;
|
|
190
|
+
/** The run's record plus its journal view, or undefined when no run record exists. The replay
|
|
191
|
+
* rides a durable named by `takeoverId`, the one the caller's credential row pins. */
|
|
192
|
+
status(planes: RunHostPlanes, req: {
|
|
193
|
+
readonly endpoint: string;
|
|
194
|
+
readonly runId: string;
|
|
195
|
+
readonly takeoverId: string;
|
|
196
|
+
}): Promise<RunStatusView | undefined>;
|
|
197
|
+
/** Every run recorded on `endpoint`, or on every endpoint when none is named. */
|
|
198
|
+
list(planes: RunHostPlanes, req: {
|
|
199
|
+
readonly endpoint?: string;
|
|
200
|
+
}): Promise<RunListRow[]>;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=run-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-host.d.ts","sourceRoot":"","sources":["../src/run-host.ts"],"names":[],"mappings":"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"}
|
package/dist/run-host.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** The kind every run host registers under. */
|
|
2
|
+
export const RUN_HOST_KIND = "run-host";
|
|
3
|
+
/** The one language this tree ships a host for. */
|
|
4
|
+
export const COTAL_LANG_RUN_HOST = "cotal-lang";
|
|
5
|
+
/** The `error.details[].kind` a hosting daemon's validation refusal carries one language problem
|
|
6
|
+
* under (SPEC 13.3 extension detail): the record is the validator's own `LangErrorJson`. */
|
|
7
|
+
export const LANG_PROBLEM_DETAIL_KIND = "ai.cotal.lang.problem";
|
|
8
|
+
/** How long a hosting daemon waits for a launched drive's status record before answering a
|
|
9
|
+
* start or resume. A client's invoke deadline for those two commands MUST exceed this, or the
|
|
10
|
+
* daemon's "still launching" refusal can never reach the caller (it would time out first and
|
|
11
|
+
* read as no manager answering). */
|
|
12
|
+
export const RUN_ACTIVATION_WAIT_MS = 15_000;
|
|
13
|
+
/** The invoke deadline a `run-start` / `run-resume` client uses: the activation wait plus the
|
|
14
|
+
* round trips around it. */
|
|
15
|
+
export const RUN_LAUNCH_DEADLINE_MS = RUN_ACTIVATION_WAIT_MS + 10_000;
|
|
16
|
+
//# sourceMappingURL=run-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-host.js","sourceRoot":"","sources":["../src/run-host.ts"],"names":[],"mappings":"AAkBA,+CAA+C;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAChD;6FAC6F;AAC7F,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAChE;;;qCAGqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C;6BAC6B;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,GAAG,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-migration.d.ts","sourceRoot":"","sources":["../src/run-migration.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run-migration.d.ts","sourceRoot":"","sources":["../src/run-migration.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AActC,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAAG,MAAM,CAE/E;AAkDD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAgB5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,oGAAoG;AACpG,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcvC;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkB7B;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
package/dist/run-migration.js
CHANGED
|
@@ -24,6 +24,7 @@ import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
|
24
24
|
import { assertIdToken } from "./endpoint-subjects.js";
|
|
25
25
|
import { RECORD_KINDS, createRecordEntry, readRecord, recordSpecKey, recordStatusKey, assertStatusValue, } from "./endpoint-records.js";
|
|
26
26
|
import { canonicalJson } from "./canonical.js";
|
|
27
|
+
import { walkKvEntries } from "./kv-scan.js";
|
|
27
28
|
const SPEC_KEYS = ["v", "run", "fromHash", "toHash", "at", "consumedThrough", "orphans", "overrides", "actor"];
|
|
28
29
|
const STATUS_KEYS = ["v", "appliedAt", "by", "observedSpecRevision"];
|
|
29
30
|
function qualifiers(endpoint, runId, migrationId) {
|
|
@@ -142,11 +143,11 @@ export async function listRunMigrations(kv, endpoint, runId) {
|
|
|
142
143
|
const prefix = recordSpecKey(RECORD_KINDS.migration, qualifiers(endpoint, runId, "m")).slice(0, -"m.spec".length);
|
|
143
144
|
// ONE wildcard token: only the migration id varies under this prefix, and a KV filter's `*`
|
|
144
145
|
// matches exactly one token — one too few matches a key shape that does not exist and silently
|
|
145
|
-
// returns nothing.
|
|
146
|
-
|
|
146
|
+
// returns nothing. A CONSUMER-FREE walk, because the run driver that lists its own migrations
|
|
147
|
+
// holds no consumer verb on the records authority stream (SPEC 14.6, §13.9).
|
|
147
148
|
const ids = [];
|
|
148
|
-
for
|
|
149
|
-
const parts = key.split(".");
|
|
149
|
+
for (const e of await walkKvEntries(kv, `${prefix}*.spec`)) {
|
|
150
|
+
const parts = e.key.split(".");
|
|
150
151
|
ids.push(parts[parts.length - 2]);
|
|
151
152
|
}
|
|
152
153
|
const found = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-migration.js","sourceRoot":"","sources":["../src/run-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-migration.js","sourceRoot":"","sources":["../src/run-migration.ts"],"names":[],"mappings":"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"}
|
package/dist/run-notice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-notice.d.ts","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run-notice.d.ts","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AActC;oEACoE;AACpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAeD,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExE;AA6CD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiB5C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAED,iGAAiG;AACjG,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEpC;AAkBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,EAAE,CAAC,CAK1B;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAK1B;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
package/dist/run-notice.js
CHANGED
|
@@ -23,6 +23,7 @@ import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
|
23
23
|
import { assertIdToken } from "./endpoint-subjects.js";
|
|
24
24
|
import { RECORD_KINDS, createRecordEntry, readRecord, recordSpecKey, recordStatusKey, assertStatusValue, } from "./endpoint-records.js";
|
|
25
25
|
import { canonicalJson } from "./canonical.js";
|
|
26
|
+
import { walkKvEntries } from "./kv-scan.js";
|
|
26
27
|
const SPEC_KEYS = ["v", "run", "step", "addressee", "fact", "at"];
|
|
27
28
|
const STATUS_KEYS = ["v", "consumedAt", "by", "observedSpecRevision"];
|
|
28
29
|
function qualifiers(endpoint, runId, addresseeId, noticeId) {
|
|
@@ -165,16 +166,20 @@ export async function listRunNoticesForRun(kv, endpoint, runId) {
|
|
|
165
166
|
// single wildcard here would match a key shape that does not exist and return nothing at all.
|
|
166
167
|
return await scan(kv, `${prefix}*.*.spec`);
|
|
167
168
|
}
|
|
168
|
-
/** Read every notice a KV key filter matches. The filter is the caller's: `*` is one token.
|
|
169
|
+
/** Read every notice a KV key filter matches. The filter is the caller's: `*` is one token.
|
|
170
|
+
*
|
|
171
|
+
* A CONSUMER-FREE walk, not `kv.keys()`. The records bucket is a §13.9 authority stream whose
|
|
172
|
+
* consumer surface is an exact audited list, and the run driver that reads its own notices holds
|
|
173
|
+
* no consumer verb on it (SPEC 14.6). `walkKvEntries` rides the leader-served `STREAM.MSG.GET` the
|
|
174
|
+
* driver already holds for every point read, and a run's notices are a bounded family. */
|
|
169
175
|
async function scan(kv, filter) {
|
|
170
176
|
const found = [];
|
|
171
|
-
const seen = await kv.keys(filter);
|
|
172
177
|
const qs = [];
|
|
173
|
-
for
|
|
178
|
+
for (const e of await walkKvEntries(kv, filter)) {
|
|
174
179
|
// The key is `notice.<endpoint>.<runId>.<addresseeId>.<noticeId>.spec` and every qualifier is
|
|
175
180
|
// an id token, so the four the read wants are the four before `spec`. Taken from the KEY and
|
|
176
181
|
// not re-derived: an enumeration holds the addressee's digest, never the name it came from.
|
|
177
|
-
const parts = key.split(".");
|
|
182
|
+
const parts = e.key.split(".");
|
|
178
183
|
qs.push(parts.slice(parts.length - 5, parts.length - 1));
|
|
179
184
|
}
|
|
180
185
|
for (const q of qs) {
|
package/dist/run-notice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-notice.js","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-notice.js","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA8B7C,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAClE,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAEtE,SAAS,UAAU,CAAC,QAAgB,EAAE,KAAa,EAAE,WAAmB,EAAE,QAAgB;IACxF,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;kGACkG;AAClG,SAAS,QAAQ,CAAC,SAAiB;IACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,oEAAoE,CAAC,CAAC;IACzH,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,SAAiB;IAC9D,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,GAAY,EAAE,GAAW;IAC1C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/D,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,mDAAmD,CAAC,CAAC;IAC1G,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,+BAA+B,CAAC,8BAA8B,CAAC,CAAC;IACvH,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;WACnE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;WAC3D,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;QACtE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,+CAA+C,CAAC,CAAC;IACtG,MAAM,IAAI,GAAG,CAAC,CAAC,IAA2C,CAAC;IAC3D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;WACrF,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QACxE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,2DAA2D,CAAC,CAAC;IAClH,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,IAAI,EAAE,IAAgC;QACtC,EAAE,EAAE,CAAC,CAAC,EAAE;KACT,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAY,EAAE,GAAW;IAC5C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/D,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,mDAAmD,CAAC,CAAC;IACjH,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,+BAA+B,CAAC,8BAA8B,CAAC,CAAC;IAC9H,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;WACvG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;QAChD,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,+CAA+C,CAAC,CAAC;IAC7G,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,oBAAoB,EAAE,CAAC,CAAC,oBAA8B;KACvD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAM,EACN,QAAgB,EAChB,QAAgB,EAChB,KAAyB;IAEzB,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvG,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YAAE,MAAM,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK;YAC3C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,+DAA+D,CAAC,CAAC;QACtH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpF,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC;YAChD,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,4JAA4J,CAAC,CAAC;QACnN,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AASD,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAM,EACN,QAAgB,EAChB,KAAa,EACb,SAAiB,EACjB,QAAgB;IAEhB,OAAO,MAAM,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnH,CAAC;AAED,oGAAoG;AACpG,KAAK,UAAU,gBAAgB,CAAC,EAAM,EAAE,CAAW,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;QAClC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAM,EACN,QAAgB,EAChB,KAAa,EACb,SAAiB;IAEjB,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5H,oFAAoF;IACpF,OAAO,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAM,EACN,QAAgB,EAChB,KAAa;IAEb,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtH,iGAAiG;IACjG,8FAA8F;IAC9F,OAAO,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;2FAK2F;AAC3F,KAAK,UAAU,IAAI,CAAC,EAAM,EAAE,MAAc;IACxC,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,EAAE,GAAe,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QAChD,8FAA8F;QAC9F,6FAA6F;QAC7F,4FAA4F;QAC5F,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAW,CAAC,CAAC;QACrE,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAM,EACN,QAAgB,EAChB,KAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,EAAU,EACV,EAAU;IAEV,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAK,SAAS;QACtB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,yBAAyB,OAAO,8CAA8C,CAAC,CAAC;IACnI,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAC9B,CAAC,EAAE,CAAU;QACb,UAAU,EAAE,EAAE;QACd,EAAE;QACF,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;KAC3C,CAAC,CAAC;IACH,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The RUN PROGRAM record: the source a run was started from, beside its spec.
|
|
3
|
+
*
|
|
4
|
+
* A run used to store no source, so every `resume` and every takeover had to be handed the same
|
|
5
|
+
* file again, and a daemon that hosts drivers had nowhere to read it from after a restart. The
|
|
6
|
+
* source is written here by the driver that pins the run, create-only, and read back by whoever
|
|
7
|
+
* drives the run next. A resume handed DIFFERENT source is a fork (SPEC 14.5); the recorded source
|
|
8
|
+
* is what that comparison is made against, and the hash the language pins each step to is derived
|
|
9
|
+
* from the same bytes.
|
|
10
|
+
*
|
|
11
|
+
* Atomic and create-only: what a run was started from is one fact, decided once. It carries no hash
|
|
12
|
+
* of its own on purpose: the language owns `programHashOf`, core does not depend on the language,
|
|
13
|
+
* and a second hash function here would be a different answer wearing the same name.
|
|
14
|
+
*/
|
|
15
|
+
import type { KV } from "@nats-io/kv";
|
|
16
|
+
export interface RunProgramValue {
|
|
17
|
+
readonly v: 1;
|
|
18
|
+
readonly run: string;
|
|
19
|
+
/** The program, verbatim. */
|
|
20
|
+
readonly source: string;
|
|
21
|
+
/** The file name the source came from, when it came from one. Diagnostic only. */
|
|
22
|
+
readonly file?: string;
|
|
23
|
+
readonly at: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Record a run's source, create-only.
|
|
27
|
+
*
|
|
28
|
+
* A retry with the SAME source is this driver's own earlier attempt and succeeds. A different source
|
|
29
|
+
* under a run that already has one is refused: a run is started from one program, and moving it onto
|
|
30
|
+
* another is a migration, which files its own record.
|
|
31
|
+
*/
|
|
32
|
+
export declare function recordRunProgram(kv: KV, endpoint: string, value: RunProgramValue): Promise<{
|
|
33
|
+
key: string;
|
|
34
|
+
created: boolean;
|
|
35
|
+
}>;
|
|
36
|
+
/** The source a run was started from. `undefined` = none recorded (a run started before this
|
|
37
|
+
* record existed, or one whose start crashed between the activation and the pin). */
|
|
38
|
+
export declare function readRunProgram(kv: KV, endpoint: string, runId: string): Promise<RunProgramValue | undefined>;
|
|
39
|
+
//# sourceMappingURL=run-program.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-program.d.ts","sourceRoot":"","sources":["../src/run-program.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAItC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAsBD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAc5C;AAED;sFACsF;AACtF,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAIlH"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
2
|
+
import { RECORD_KINDS, createRecordEntry, readAtomicRecord, recordAtomicKey } from "./endpoint-records.js";
|
|
3
|
+
function parseProgram(raw, key) {
|
|
4
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
5
|
+
throw new EpEnvelopeError("internal", `run program ${key} is not an object; garbled state never authorizes`);
|
|
6
|
+
const o = raw;
|
|
7
|
+
for (const k of Object.keys(o))
|
|
8
|
+
if (!["v", "run", "source", "file", "at"].includes(k))
|
|
9
|
+
throw new EpEnvelopeError("internal", `run program ${key} carries the unknown field "${k}"; record schemas are closed`);
|
|
10
|
+
if (o.v !== 1 || typeof o.run !== "string" || typeof o.source !== "string"
|
|
11
|
+
|| typeof o.at !== "number" || !Number.isSafeInteger(o.at) || o.at < 0
|
|
12
|
+
|| (o.file !== undefined && typeof o.file !== "string"))
|
|
13
|
+
throw new EpEnvelopeError("internal", `run program ${key} is malformed; garbled state never authorizes`);
|
|
14
|
+
return {
|
|
15
|
+
v: 1,
|
|
16
|
+
run: o.run,
|
|
17
|
+
source: o.source,
|
|
18
|
+
...(o.file !== undefined ? { file: o.file } : {}),
|
|
19
|
+
at: o.at,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Record a run's source, create-only.
|
|
24
|
+
*
|
|
25
|
+
* A retry with the SAME source is this driver's own earlier attempt and succeeds. A different source
|
|
26
|
+
* under a run that already has one is refused: a run is started from one program, and moving it onto
|
|
27
|
+
* another is a migration, which files its own record.
|
|
28
|
+
*/
|
|
29
|
+
export async function recordRunProgram(kv, endpoint, value) {
|
|
30
|
+
const key = recordAtomicKey(RECORD_KINDS.program, [endpoint, value.run]);
|
|
31
|
+
try {
|
|
32
|
+
await createRecordEntry(kv, key, value);
|
|
33
|
+
return { key, created: true };
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
if (!(e instanceof EpEnvelopeError && e.code === "conflict"))
|
|
37
|
+
throw e;
|
|
38
|
+
const existing = await readRunProgram(kv, endpoint, value.run);
|
|
39
|
+
if (existing === undefined)
|
|
40
|
+
throw new EpEnvelopeError("internal", `run program ${key} lost its create CAS but is not readable; reconcile the store`);
|
|
41
|
+
if (existing.source !== value.source)
|
|
42
|
+
throw new EpEnvelopeError("conflict", `run ${value.run} already records a different program; a run is started from one source, and moving it onto another is a migration`);
|
|
43
|
+
return { key, created: false };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** The source a run was started from. `undefined` = none recorded (a run started before this
|
|
47
|
+
* record existed, or one whose start crashed between the activation and the pin). */
|
|
48
|
+
export async function readRunProgram(kv, endpoint, runId) {
|
|
49
|
+
const key = recordAtomicKey(RECORD_KINDS.program, [endpoint, runId]);
|
|
50
|
+
const read = await readAtomicRecord(kv, RECORD_KINDS.program, [endpoint, runId]);
|
|
51
|
+
return read === undefined ? undefined : parseProgram(read.value, key);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=run-program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-program.js","sourceRoot":"","sources":["../src/run-program.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -3,6 +3,15 @@ import type { LaunchSpec } from "./connector.js";
|
|
|
3
3
|
/** Which backend a manager spawns through. Open-ended: `pty` ships with the manager; every other
|
|
4
4
|
* name is contributed by a {@link RuntimeProvider}. */
|
|
5
5
|
export type RuntimeKind = string;
|
|
6
|
+
/**
|
|
7
|
+
* A runtime-owned durable handle reference. Its contents are intentionally opaque to the manager
|
|
8
|
+
* and to the mesh protocol: a runtime may use a local socket name, a provider resource id, or
|
|
9
|
+
* another private capability to identify a handle it can adopt.
|
|
10
|
+
*/
|
|
11
|
+
export interface RuntimeReference {
|
|
12
|
+
readonly kind: RuntimeKind;
|
|
13
|
+
readonly id: string;
|
|
14
|
+
}
|
|
6
15
|
/** A live attach onto a running agent's terminal — the stream `cotal attach`
|
|
7
16
|
* (and, later, the browser console) consumes. PTY frames flow here directly,
|
|
8
17
|
* never over the mesh. */
|
|
@@ -27,6 +36,8 @@ export interface AttachSession {
|
|
|
27
36
|
export interface AgentHandle {
|
|
28
37
|
readonly name: string;
|
|
29
38
|
readonly kind: RuntimeKind;
|
|
39
|
+
/** A local durable reference for a runtime that can later adopt this handle. */
|
|
40
|
+
readonly reference?: RuntimeReference;
|
|
30
41
|
/** OS pid of the spawned child, when the backend owns a real process (pty/host); absent for
|
|
31
42
|
* backends that don't (tmux/cmux attach to an externally-owned process). */
|
|
32
43
|
readonly pid?: number;
|
|
@@ -74,6 +85,13 @@ export interface AgentHandle {
|
|
|
74
85
|
export interface Runtime {
|
|
75
86
|
readonly kind: RuntimeKind;
|
|
76
87
|
spawn(name: string, spec: LaunchSpec, cwd: string): AgentHandle;
|
|
88
|
+
/**
|
|
89
|
+
* Reattach this runtime to a handle it created previously. This is a local runtime operation,
|
|
90
|
+
* not a mesh operation. OPTIONAL, and absent means REFUSE, never spawn a replacement: a runtime
|
|
91
|
+
* without durable custody omits it, and the caller must throw naming that runtime. A silent skip
|
|
92
|
+
* here would drop custody on the floor.
|
|
93
|
+
*/
|
|
94
|
+
adopt?(reference: RuntimeReference): AgentHandle;
|
|
77
95
|
}
|
|
78
96
|
/**
|
|
79
97
|
* A bridge that contributes one runtime backend — an {@link Extension} of kind
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;wDACwD;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;2BAE2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;yGAEqG;IACrG,OAAO,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAChD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACnC,yCAAyC;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kCAAkC;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;2DAC2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;iFAC6E;IAC7E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,SAAS,GAAG,QAAQ,CAAC;IAC/B;;uCAEmC;IACnC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C;2GACuG;IACvG,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAS,IAAI,IAAI,CAAC;IAClB;;;;;;;;;6DASyD;IACzD,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;;;;0CAQsC;IACtC,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5D;mCAC+B;IAC/B,MAAM,IAAI,aAAa,CAAC;CACzB;AAED;+DAC+D;AAC/D,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;wDACwD;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;2BAE2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;yGAEqG;IACrG,OAAO,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAChD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACnC,yCAAyC;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kCAAkC;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;2DAC2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC;iFAC6E;IAC7E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,SAAS,GAAG,QAAQ,CAAC;IAC/B;;uCAEmC;IACnC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C;2GACuG;IACvG,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAS,IAAI,IAAI,CAAC;IAClB;;;;;;;;;6DASyD;IACzD,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;;;;0CAQsC;IACtC,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5D;mCAC+B;IAC/B,MAAM,IAAI,aAAa,CAAC;CACzB;AAED;+DAC+D;AAC/D,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IAChE;;;;;OAKG;IACH,KAAK,CAAC,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,kFAAkF;IAClF,SAAS,IAAI,OAAO,CAAC;IACrB;kEAC8D;IAC9D,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;CAC5C"}
|
package/package.json
CHANGED