@namzu/sdk 20.3.0 → 21.0.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/CHANGELOG.md +321 -0
- package/dist/bridge/sse/mapper.d.ts +19 -0
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +9 -1
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/contracts/schemas.d.ts +10 -10
- package/dist/manager/run/persistence.d.ts +26 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +40 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/public-runtime.d.ts +5 -0
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +21 -0
- package/dist/public-runtime.js.map +1 -1
- package/dist/run/drain.d.ts +194 -0
- package/dist/run/drain.d.ts.map +1 -0
- package/dist/run/drain.js +228 -0
- package/dist/run/drain.js.map +1 -0
- package/dist/run/index.d.ts +2 -0
- package/dist/run/index.d.ts.map +1 -1
- package/dist/run/index.js +1 -0
- package/dist/run/index.js.map +1 -1
- package/dist/runtime/query/checkpoint.d.ts +27 -1
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +34 -4
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/events.d.ts +12 -0
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +61 -3
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/index.d.ts +57 -1
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +36 -0
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/resume-run.d.ts +34 -1
- package/dist/runtime/query/resume-run.d.ts.map +1 -1
- package/dist/runtime/query/resume-run.js +16 -3
- package/dist/runtime/query/resume-run.js.map +1 -1
- package/dist/store/index.d.ts +2 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +2 -2
- package/dist/store/index.js.map +1 -1
- package/dist/store/run/checkpoint-disk.d.ts +18 -2
- package/dist/store/run/checkpoint-disk.d.ts.map +1 -1
- package/dist/store/run/checkpoint-disk.js +50 -5
- package/dist/store/run/checkpoint-disk.js.map +1 -1
- package/dist/store/run/checkpoint-memory.d.ts +22 -2
- package/dist/store/run/checkpoint-memory.d.ts.map +1 -1
- package/dist/store/run/checkpoint-memory.js +99 -4
- package/dist/store/run/checkpoint-memory.js.map +1 -1
- package/dist/store/run/claim-disk.d.ts +130 -0
- package/dist/store/run/claim-disk.d.ts.map +1 -0
- package/dist/store/run/claim-disk.js +550 -0
- package/dist/store/run/claim-disk.js.map +1 -0
- package/dist/store/run/conformance.d.ts +159 -0
- package/dist/store/run/conformance.d.ts.map +1 -0
- package/dist/store/run/conformance.js +451 -0
- package/dist/store/run/conformance.js.map +1 -0
- package/dist/store/run/disk.d.ts +30 -2
- package/dist/store/run/disk.d.ts.map +1 -1
- package/dist/store/run/disk.js +101 -0
- package/dist/store/run/disk.js.map +1 -1
- package/dist/store/run/listing.d.ts +44 -1
- package/dist/store/run/listing.d.ts.map +1 -1
- package/dist/store/run/listing.js +92 -1
- package/dist/store/run/listing.js.map +1 -1
- package/dist/store/run/memory.d.ts +5 -4
- package/dist/store/run/memory.d.ts.map +1 -1
- package/dist/store/run/memory.js +30 -1
- package/dist/store/run/memory.js.map +1 -1
- package/dist/types/doctor/check.d.ts +28 -2
- package/dist/types/doctor/check.d.ts.map +1 -1
- package/dist/types/run/checkpoint-store.d.ts +178 -2
- package/dist/types/run/checkpoint-store.d.ts.map +1 -1
- package/dist/types/run/event-cursor.d.ts +90 -0
- package/dist/types/run/event-cursor.d.ts.map +1 -0
- package/dist/types/run/event-cursor.js +47 -0
- package/dist/types/run/event-cursor.js.map +1 -0
- package/dist/types/run/events.d.ts +71 -1
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/run/index.d.ts +1 -0
- package/dist/types/run/index.d.ts.map +1 -1
- package/dist/types/run/index.js +1 -0
- package/dist/types/run/index.js.map +1 -1
- package/dist/types/run/store.d.ts +41 -1
- package/dist/types/run/store.d.ts.map +1 -1
- package/package.json +6 -1
- package/src/bridge/sse/mapper.ts +28 -1
- package/src/manager/run/persistence.ts +43 -0
- package/src/public-runtime.ts +27 -0
- package/src/run/drain.ts +393 -0
- package/src/run/index.ts +3 -0
- package/src/runtime/query/checkpoint.ts +42 -5
- package/src/runtime/query/events.ts +68 -4
- package/src/runtime/query/index.ts +113 -1
- package/src/runtime/query/resume-run.ts +77 -12
- package/src/store/index.ts +5 -1
- package/src/store/run/checkpoint-disk.ts +70 -5
- package/src/store/run/checkpoint-memory.ts +118 -3
- package/src/store/run/claim-disk.ts +593 -0
- package/src/store/run/conformance.ts +705 -0
- package/src/store/run/disk.ts +106 -2
- package/src/store/run/listing.ts +116 -1
- package/src/store/run/memory.ts +35 -5
- package/src/types/doctor/check.ts +28 -2
- package/src/types/run/checkpoint-store.ts +189 -2
- package/src/types/run/event-cursor.ts +118 -0
- package/src/types/run/events.ts +80 -3
- package/src/types/run/index.ts +1 -0
- package/src/types/run/store.ts +43 -1
package/dist/store/run/disk.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CheckpointId, IterationCheckpoint } from '../../types/hitl/index.js';
|
|
2
|
-
import type { Run, RunEvent, RunStoreConfig } from '../../types/run/index.js';
|
|
3
|
-
import type { CompletedToolRecord, RunStore } from '../../types/run/store.js';
|
|
2
|
+
import type { PersistedRunEvent, Run, RunEvent, RunStoreConfig } from '../../types/run/index.js';
|
|
3
|
+
import type { CompletedToolRecord, ReadRunEventsOptions, RunStore } from '../../types/run/store.js';
|
|
4
4
|
/**
|
|
5
5
|
* One finished tool call, recovered from the transcript.
|
|
6
6
|
*
|
|
@@ -18,6 +18,7 @@ export declare class RunDiskStore implements RunStore {
|
|
|
18
18
|
private requireInit;
|
|
19
19
|
initRun(runId: string, parentRunId?: string): Promise<string>;
|
|
20
20
|
appendEvent(event: RunEvent): Promise<void>;
|
|
21
|
+
readEvents(options?: ReadRunEventsOptions): Promise<readonly PersistedRunEvent[]>;
|
|
21
22
|
/**
|
|
22
23
|
* Every tool call this run has already finished, keyed by `toolUseId`.
|
|
23
24
|
*
|
|
@@ -74,6 +75,33 @@ export declare class RunDiskStore implements RunStore {
|
|
|
74
75
|
}>>;
|
|
75
76
|
addToIndex(run: Run): Promise<void>;
|
|
76
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Every durable event under one run directory, oldest first.
|
|
80
|
+
*
|
|
81
|
+
* A free function for the same reason {@link readCheckpointsIn} is one: a
|
|
82
|
+
* caller catching up on a run this process never started would otherwise have
|
|
83
|
+
* to bind a {@link RunDiskStore} to read it, and binding one CREATES the
|
|
84
|
+
* directory. A read that mints an empty run directory then answers "no events"
|
|
85
|
+
* is indistinguishable from a run that genuinely has none.
|
|
86
|
+
*
|
|
87
|
+
* ## Unsequenced lines take their position
|
|
88
|
+
*
|
|
89
|
+
* A transcript written before events were numbered carries no `seq` at all.
|
|
90
|
+
* Numbering those lines by their 1-based position is what keeps their evidence
|
|
91
|
+
* reachable: a legacy run of five lines reads back as 1..5, seeds the emitter
|
|
92
|
+
* at 5, and its next event is 6 — continuous, and stable on every later read.
|
|
93
|
+
* Skipping them instead would erase a run's whole history from a catch-up, and
|
|
94
|
+
* synthesising nothing at all would put the emitter back at 1 on top of a log
|
|
95
|
+
* that already has five entries.
|
|
96
|
+
*
|
|
97
|
+
* A damaged line is skipped rather than refused, which is the one place this
|
|
98
|
+
* differs from the checkpoint reader next door, and deliberately: a checkpoint
|
|
99
|
+
* is read to RESUME from, so a damaged one must stop the resume, while the
|
|
100
|
+
* transcript is read to REPORT from, and dropping every event after a torn line
|
|
101
|
+
* would be a larger loss than the torn line itself. The position count still
|
|
102
|
+
* advances over it, so the numbering of the events after it is unchanged.
|
|
103
|
+
*/
|
|
104
|
+
export declare function readRunEventsIn(runDir: string, options?: ReadRunEventsOptions): Promise<readonly PersistedRunEvent[]>;
|
|
77
105
|
/**
|
|
78
106
|
* Every checkpoint stored under one run directory, ascending by `createdAt`.
|
|
79
107
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk.d.ts","sourceRoot":"","sources":["../../../src/store/run/disk.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"disk.d.ts","sourceRoot":"","sources":["../../../src/store/run/disk.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAenG;;;;;;GAMG;AACH,YAAY,EAAE,mBAAmB,EAAE,CAAA;AAEnC,qBAAa,YAAa,YAAW,QAAQ;IAC5C,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,SAAS,CAAmC;gBAExC,MAAM,EAAE,cAAc;IAKlC,OAAO,CAAC,WAAW;IAOb,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IAIvF;;;;;;;;;;;;;;OAcG;IACG,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IA0C/D,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrC,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASnD,SAAS,IAAI,MAAM,GAAG,IAAI;IAIpB,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D,cAAc,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAW/E,eAAe,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAIjD,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;;;;;;;;;;;;;;;;;;;;;OAsBG;WACU,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAC9C,KAAK,CAAC;QACL,EAAE,EAAE,MAAM,CAAA;QACV,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;KAChB,CAAC,CACF;IAWK,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CA8CzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAwCvC;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAiBtF"}
|
package/dist/store/run/disk.js
CHANGED
|
@@ -35,6 +35,7 @@ export class RunDiskStore {
|
|
|
35
35
|
this.runDir = join(this.baseDir, runId);
|
|
36
36
|
}
|
|
37
37
|
await mkdir(this.runDir, { recursive: true });
|
|
38
|
+
await healTornTranscript(this.runDir);
|
|
38
39
|
this.log.info(`Run directory created: ${this.runDir}`);
|
|
39
40
|
return this.runDir;
|
|
40
41
|
}
|
|
@@ -46,6 +47,9 @@ export class RunDiskStore {
|
|
|
46
47
|
})}\n`;
|
|
47
48
|
await appendFile(join(dir, 'transcript.jsonl'), line, 'utf-8');
|
|
48
49
|
}
|
|
50
|
+
async readEvents(options) {
|
|
51
|
+
return readRunEventsIn(this.requireInit(), options);
|
|
52
|
+
}
|
|
49
53
|
/**
|
|
50
54
|
* Every tool call this run has already finished, keyed by `toolUseId`.
|
|
51
55
|
*
|
|
@@ -261,6 +265,103 @@ export class RunDiskStore {
|
|
|
261
265
|
}
|
|
262
266
|
}
|
|
263
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Every durable event under one run directory, oldest first.
|
|
270
|
+
*
|
|
271
|
+
* A free function for the same reason {@link readCheckpointsIn} is one: a
|
|
272
|
+
* caller catching up on a run this process never started would otherwise have
|
|
273
|
+
* to bind a {@link RunDiskStore} to read it, and binding one CREATES the
|
|
274
|
+
* directory. A read that mints an empty run directory then answers "no events"
|
|
275
|
+
* is indistinguishable from a run that genuinely has none.
|
|
276
|
+
*
|
|
277
|
+
* ## Unsequenced lines take their position
|
|
278
|
+
*
|
|
279
|
+
* A transcript written before events were numbered carries no `seq` at all.
|
|
280
|
+
* Numbering those lines by their 1-based position is what keeps their evidence
|
|
281
|
+
* reachable: a legacy run of five lines reads back as 1..5, seeds the emitter
|
|
282
|
+
* at 5, and its next event is 6 — continuous, and stable on every later read.
|
|
283
|
+
* Skipping them instead would erase a run's whole history from a catch-up, and
|
|
284
|
+
* synthesising nothing at all would put the emitter back at 1 on top of a log
|
|
285
|
+
* that already has five entries.
|
|
286
|
+
*
|
|
287
|
+
* A damaged line is skipped rather than refused, which is the one place this
|
|
288
|
+
* differs from the checkpoint reader next door, and deliberately: a checkpoint
|
|
289
|
+
* is read to RESUME from, so a damaged one must stop the resume, while the
|
|
290
|
+
* transcript is read to REPORT from, and dropping every event after a torn line
|
|
291
|
+
* would be a larger loss than the torn line itself. The position count still
|
|
292
|
+
* advances over it, so the numbering of the events after it is unchanged.
|
|
293
|
+
*/
|
|
294
|
+
export async function readRunEventsIn(runDir, options) {
|
|
295
|
+
let raw;
|
|
296
|
+
try {
|
|
297
|
+
raw = await readFile(join(runDir, 'transcript.jsonl'), 'utf-8');
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
if (isFileNotFound(err))
|
|
301
|
+
return [];
|
|
302
|
+
throw err;
|
|
303
|
+
}
|
|
304
|
+
const sinceSeq = options?.sinceSeq ?? 0;
|
|
305
|
+
const events = [];
|
|
306
|
+
let position = 0;
|
|
307
|
+
for (const line of raw.split('\n')) {
|
|
308
|
+
if (line.length === 0)
|
|
309
|
+
continue;
|
|
310
|
+
position += 1;
|
|
311
|
+
let parsed;
|
|
312
|
+
try {
|
|
313
|
+
parsed = JSON.parse(line);
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
continue;
|
|
317
|
+
}
|
|
318
|
+
if (parsed === null || typeof parsed !== 'object' || typeof parsed.type !== 'string')
|
|
319
|
+
continue;
|
|
320
|
+
const seq = typeof parsed.seq === 'number' ? parsed.seq : position;
|
|
321
|
+
if (seq <= sinceSeq)
|
|
322
|
+
continue;
|
|
323
|
+
events.push({
|
|
324
|
+
...parsed,
|
|
325
|
+
seq,
|
|
326
|
+
// Stamped by `appendEvent` since long before it was declared. A line
|
|
327
|
+
// that predates even that gets the only honest answer available:
|
|
328
|
+
// zero, which sorts before every real moment and cannot be mistaken
|
|
329
|
+
// for one.
|
|
330
|
+
timestamp: typeof parsed.timestamp === 'number' ? parsed.timestamp : 0,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
return events;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Terminate a transcript whose last line was cut off mid-write.
|
|
337
|
+
*
|
|
338
|
+
* A process killed during `appendFile` leaves a fragment with no newline. The
|
|
339
|
+
* next append lands on the same line, so the fragment and a WHOLE, correct
|
|
340
|
+
* event merge into one unparsable line — and the reader skips it. The event was
|
|
341
|
+
* written, the emitter counted it as durable, and it is gone.
|
|
342
|
+
*
|
|
343
|
+
* Ending the fragment is enough. It stays unreadable and is skipped as it
|
|
344
|
+
* always was; everything appended after it survives, which is the difference
|
|
345
|
+
* between losing one event and losing one event plus the next.
|
|
346
|
+
*
|
|
347
|
+
* Called from `initRun`, which is the only moment the store knows nothing is
|
|
348
|
+
* mid-write.
|
|
349
|
+
*/
|
|
350
|
+
async function healTornTranscript(runDir) {
|
|
351
|
+
const path = join(runDir, 'transcript.jsonl');
|
|
352
|
+
let raw;
|
|
353
|
+
try {
|
|
354
|
+
raw = await readFile(path, 'utf-8');
|
|
355
|
+
}
|
|
356
|
+
catch (err) {
|
|
357
|
+
if (isFileNotFound(err))
|
|
358
|
+
return;
|
|
359
|
+
throw err;
|
|
360
|
+
}
|
|
361
|
+
if (raw.length === 0 || raw.endsWith('\n'))
|
|
362
|
+
return;
|
|
363
|
+
await appendFile(path, '\n', 'utf-8');
|
|
364
|
+
}
|
|
264
365
|
/**
|
|
265
366
|
* Every checkpoint stored under one run directory, ascending by `createdAt`.
|
|
266
367
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk.js","sourceRoot":"","sources":["../../../src/store/run/disk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAe,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;AAW9E,MAAM,OAAO,YAAY;IAChB,OAAO,CAAQ;IACf,MAAM,GAAkB,IAAI,CAAA;IAC5B,GAAG,CAAQ;IACX,SAAS,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAEpD,YAAY,MAAsB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;IACnF,CAAC;IAEO,WAAW;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAoB;QAChD,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAe;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAE9B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,GAAG,KAAK;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC,IAAI,CAAA;QAEN,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,kBAAkB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAA;QAExD,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACJ,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YACxE,MAAM,KAAK,CAAA;QACZ,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAC/B,IAAI,KAA8B,CAAA;YAClC,IAAI,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;YACpD,CAAC;YAAC,MAAM,CAAC;gBACR,0DAA0D;gBAC1D,6DAA6D;gBAC7D,6DAA6D;gBAC7D,2BAA2B;gBAC3B,SAAQ;YACT,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAAE,SAAQ;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC/B,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,SAAQ;YAE3E,kEAAkE;YAClE,oDAAoD;YACpD,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;gBACxB,SAAS;gBACT,QAAQ;gBACR,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC5D,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;aAC/B,CAAC,CAAA;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAQ;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAE9B,MAAM,IAAI,GAA4B;YACrC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;SACjC,CAAA;QAED,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAA;QAEpF,IAAI,GAAG,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;QACvD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;QAEpE,MAAM,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAQ;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACzC,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;QAC9C,OAAO,UAAU,CAAA;IAClB,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAA+B;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACtC,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACvC,+DAA+D;QAC/D,gEAAgE;QAChE,mEAAmE;QACnE,qEAAqE;QACrE,gEAAgE;QAChE,gEAAgE;QAChE,wCAAwC;QACxC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAA0B;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC9B,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,YAAY,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;YACzF,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,YAAY,OAAO,CAAC,CAAA;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;YACpC,MAAM,GAAG,CAAA;QACV,CAAC;IACF,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAA0B;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC9B,IAAI,CAAC;YACJ,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;QACpC,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAe;QASpC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAClD,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAA;YAClC,MAAM,GAAG,CAAA;QACV,CAAC;IACF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAQ;QACxB,IAAI,GAAG,CAAC,WAAW;YAAE,OAAM;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAA;QAC3B,IAAI,OAAoB,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;YACxC,OAAO,GAAG,CAAC,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACJ,MAAM,IAAI,CAAA;YAEV,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YAClD,IAAI,KAAK,GAA8B,EAAE,CAAA;YAEzC,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBAClD,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;oBAAE,MAAM,GAAG,CAAA;YACpC,CAAC;YAED,MAAM,KAAK,GAAG;gBACb,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO;gBAC7B,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS;gBACjC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAChC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,GAAG,CAAC,gBAAgB;gBAChC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW;aACvC,CAAA;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3D,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC;YAED,MAAM,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,EAAE,CAAA;QACZ,CAAC;IACF,CAAC;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACzC,IAAI,KAAe,CAAA;IACnB,IAAI,CAAC;QACJ,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QAClC,MAAM,GAAG,CAAA;IACV,CAAC;IAED,MAAM,WAAW,GAA0B,EAAE,CAAA;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAQ;QACrC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;QAC1D,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;AAC7D,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,KAAc;IAC9D,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED;;;;;;;;;GASG;AACH,qDAAqD;AACrD,SAAS,OAAO,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,MAAoC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAiD,CAAA;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,QAA+C,CAAA;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAiD,CAAA;IACtE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3C,OAAO,CACN,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CACxB,CAAA;AACF,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,IAAY;IACrD,MAAM,MAAM,GAAG,OAAO,CAAU,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,MAA6C,CAAA;IAE5D,IACC,MAAM,KAAK,IAAI;QACf,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;QAC7B,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC9B,CAAC;QACF,MAAM,IAAI,KAAK,CACd,oBAAoB,IAAI,uKAAuK,CAC/L,CAAA;IACF,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACd,oBAAoB,IAAI,+QAA+Q,CACvS,CAAA;IACF,CAAC;IAED,OAAO,MAA6B,CAAA;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAA;AACnG,CAAC"}
|
|
1
|
+
{"version":3,"file":"disk.js","sourceRoot":"","sources":["../../../src/store/run/disk.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* one store and not the other, and the whole point of a store contract is
|
|
8
8
|
* that a host can swap the backend without swapping the semantics.
|
|
9
9
|
*/
|
|
10
|
+
import { NamzuError } from '../../types/errors/index.js';
|
|
10
11
|
import type { IterationCheckpoint } from '../../types/hitl/index.js';
|
|
11
|
-
import type { CheckpointListingScope, CheckpointRunScope, CheckpointStore, DurableRunEntry, DurableRunPage, ListDurableRunsOptions, ParkSummary } from '../../types/run/checkpoint-store.js';
|
|
12
|
+
import type { CheckpointListingScope, CheckpointRunScope, CheckpointStore, ClaimFence, ClaimRunOptions, ClaimSummary, DurableRunEntry, DurableRunPage, ListDurableRunsOptions, ParkSummary, RunClaim } from '../../types/run/checkpoint-store.js';
|
|
12
13
|
/** Page size when the caller names none. */
|
|
13
14
|
export declare const DEFAULT_DURABLE_RUN_LIMIT = 100;
|
|
14
15
|
/**
|
|
@@ -72,4 +73,46 @@ export declare function paginateDurableRuns(entries: readonly DurableRunEntry[],
|
|
|
72
73
|
* silently never fires.
|
|
73
74
|
*/
|
|
74
75
|
export declare function listDurableRuns(store: CheckpointStore, scope: CheckpointListingScope, options?: ListDurableRunsOptions): Promise<DurableRunPage>;
|
|
76
|
+
/**
|
|
77
|
+
* Take working possession of a run, refusing when the store cannot arbitrate.
|
|
78
|
+
*
|
|
79
|
+
* The refusal is the entire safety property. `claimRun` is optional on the
|
|
80
|
+
* contract, and the natural way to reach an absent optional method is to skip
|
|
81
|
+
* it — which here means every worker proceeds, believing it holds a run
|
|
82
|
+
* nobody arbitrated. Two workers then restore the same checkpoint, both run
|
|
83
|
+
* the tools, and both write under one run id; half the work vanishes with no
|
|
84
|
+
* error anywhere.
|
|
85
|
+
*
|
|
86
|
+
* So a store with no claim support does not get "claimed by default". It gets
|
|
87
|
+
* an error naming the deployment shape it cannot support. A single-writer
|
|
88
|
+
* host never calls this and is unaffected.
|
|
89
|
+
*
|
|
90
|
+
* Returns `null` — not an error — when another holder has the run. That is
|
|
91
|
+
* the ordinary outcome of two readers on one queue, and a caller loops to the
|
|
92
|
+
* next run rather than handling a fault.
|
|
93
|
+
*/
|
|
94
|
+
export declare function claimRun(store: CheckpointStore, scope: CheckpointRunScope, options: ClaimRunOptions): Promise<RunClaim | null>;
|
|
95
|
+
/**
|
|
96
|
+
* Give a claim up early, refusing when the store cannot arbitrate.
|
|
97
|
+
*
|
|
98
|
+
* Refuses for the same reason as {@link claimRun}: a host that believes it is
|
|
99
|
+
* releasing a claim on a store that has none is a host that believes the
|
|
100
|
+
* whole mechanism is running.
|
|
101
|
+
*/
|
|
102
|
+
export declare function releaseRun(store: CheckpointStore, scope: CheckpointRunScope, fence: ClaimFence): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* The refusal a store raises when a write presents a superseded fence.
|
|
105
|
+
*
|
|
106
|
+
* Shared so both shipped stores say the same thing, and so a host writing its
|
|
107
|
+
* own backend raises something a caller can branch on rather than a message
|
|
108
|
+
* string. This is the moment a stalled worker learns it lost the run — the
|
|
109
|
+
* only moment it CAN learn, since from the inside a pause and a partition
|
|
110
|
+
* both look like time not passing.
|
|
111
|
+
*/
|
|
112
|
+
export declare function fencedOut(scope: CheckpointRunScope, presented: number, current: number): NamzuError;
|
|
113
|
+
/**
|
|
114
|
+
* Whether a recorded claim still holds at `now`, and the summary a listing
|
|
115
|
+
* reports for it.
|
|
116
|
+
*/
|
|
117
|
+
export declare function toClaimSummary(claim: RunClaim, now: number): ClaimSummary;
|
|
75
118
|
//# sourceMappingURL=listing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../../../src/store/run/listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../../../src/store/run/listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAmB,MAAM,2BAA2B,CAAA;AACrF,OAAO,KAAK,EACX,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EAEf,cAAc,EACd,sBAAsB,EAEtB,WAAW,EACX,QAAQ,EACR,MAAM,qCAAqC,CAAA;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQhG;AAmCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAC5B,WAAW,EAAE,SAAS,mBAAmB,EAAE,EAC3C,GAAG,EAAE,MAAM,GACT,WAAW,GAAG,SAAS,CAkBzB;AAQD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,SAAS,mBAAmB,EAAE,EAC3C,GAAG,EAAE,MAAM,GACT,eAAe,GAAG,IAAI,CAmCxB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,OAAO,CAAC,EAAE,sBAAsB,GAC9B,cAAc,CAwChB;AA6DD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACpC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,QAAQ,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiB1B;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACb,UAAU,CAOZ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAUzE"}
|
|
@@ -147,9 +147,16 @@ export function toDurableRunEntry(scope, checkpoints, now) {
|
|
|
147
147
|
*/
|
|
148
148
|
export function paginateDurableRuns(entries, options) {
|
|
149
149
|
const wanted = options?.park;
|
|
150
|
-
const
|
|
150
|
+
const byPark = wanted && wanted.length > 0
|
|
151
151
|
? entries.filter((e) => e.park !== undefined && wanted.includes(e.park.state))
|
|
152
152
|
: entries;
|
|
153
|
+
// An expired claim counts as unheld. That is what expiry means, and a
|
|
154
|
+
// queue reader that treated an expired claim as held would leave a dead
|
|
155
|
+
// worker's runs invisible forever — the exact failure a lease exists to
|
|
156
|
+
// prevent, reintroduced by the filter that reads it.
|
|
157
|
+
const filtered = options?.claimed === undefined
|
|
158
|
+
? byPark
|
|
159
|
+
: byPark.filter((e) => (e.claim !== undefined && !e.claim.expired) === options.claimed);
|
|
153
160
|
// Both orders sort on a key that cannot move under a paging caller — see
|
|
154
161
|
// the contract comment on `listDurableRuns`.
|
|
155
162
|
const orderBy = options?.orderBy ?? 'runId';
|
|
@@ -239,4 +246,88 @@ export async function listDurableRuns(store, scope, options) {
|
|
|
239
246
|
assertContiguousListingScope(scope, 'listDurableRuns');
|
|
240
247
|
return store.listDurableRuns(scope, options);
|
|
241
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Take working possession of a run, refusing when the store cannot arbitrate.
|
|
251
|
+
*
|
|
252
|
+
* The refusal is the entire safety property. `claimRun` is optional on the
|
|
253
|
+
* contract, and the natural way to reach an absent optional method is to skip
|
|
254
|
+
* it — which here means every worker proceeds, believing it holds a run
|
|
255
|
+
* nobody arbitrated. Two workers then restore the same checkpoint, both run
|
|
256
|
+
* the tools, and both write under one run id; half the work vanishes with no
|
|
257
|
+
* error anywhere.
|
|
258
|
+
*
|
|
259
|
+
* So a store with no claim support does not get "claimed by default". It gets
|
|
260
|
+
* an error naming the deployment shape it cannot support. A single-writer
|
|
261
|
+
* host never calls this and is unaffected.
|
|
262
|
+
*
|
|
263
|
+
* Returns `null` — not an error — when another holder has the run. That is
|
|
264
|
+
* the ordinary outcome of two readers on one queue, and a caller loops to the
|
|
265
|
+
* next run rather than handling a fault.
|
|
266
|
+
*/
|
|
267
|
+
export async function claimRun(store, scope, options) {
|
|
268
|
+
if (typeof store.claimRun !== 'function') {
|
|
269
|
+
throw new NamzuError({
|
|
270
|
+
code: 'capability_unavailable',
|
|
271
|
+
message: 'claimRun: the injected checkpoint store does not implement `claimRun`, so it cannot arbitrate between two workers taking the same run. Refusing rather than proceeding unclaimed — proceeding would let two workers restore one checkpoint, both execute its tools, and both write under one run id, which loses half the work and reports nothing. Supply a store that implements it, or run a single writer per run.',
|
|
272
|
+
details: { runId: scope.runId },
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
if (!Number.isFinite(options.ttlMs) || options.ttlMs <= 0) {
|
|
276
|
+
throw new NamzuError({
|
|
277
|
+
code: 'invalid_config',
|
|
278
|
+
message: `claimRun: ttlMs must be a positive number of milliseconds, got ${String(options.ttlMs)}. A lease that expires immediately is a lease every worker can take at once, which is the condition this call exists to prevent.`,
|
|
279
|
+
details: { runId: scope.runId, ttlMs: options.ttlMs },
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return store.claimRun(scope, options);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Give a claim up early, refusing when the store cannot arbitrate.
|
|
286
|
+
*
|
|
287
|
+
* Refuses for the same reason as {@link claimRun}: a host that believes it is
|
|
288
|
+
* releasing a claim on a store that has none is a host that believes the
|
|
289
|
+
* whole mechanism is running.
|
|
290
|
+
*/
|
|
291
|
+
export async function releaseRun(store, scope, fence) {
|
|
292
|
+
if (typeof store.releaseRun !== 'function') {
|
|
293
|
+
throw new NamzuError({
|
|
294
|
+
code: 'capability_unavailable',
|
|
295
|
+
message: 'releaseRun: the injected checkpoint store does not implement `releaseRun`. A release that silently does nothing would leave the run held until its lease expires while the caller believes it is back on the queue.',
|
|
296
|
+
details: { runId: scope.runId },
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
return store.releaseRun(scope, fence);
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* The refusal a store raises when a write presents a superseded fence.
|
|
303
|
+
*
|
|
304
|
+
* Shared so both shipped stores say the same thing, and so a host writing its
|
|
305
|
+
* own backend raises something a caller can branch on rather than a message
|
|
306
|
+
* string. This is the moment a stalled worker learns it lost the run — the
|
|
307
|
+
* only moment it CAN learn, since from the inside a pause and a partition
|
|
308
|
+
* both look like time not passing.
|
|
309
|
+
*/
|
|
310
|
+
export function fencedOut(scope, presented, current) {
|
|
311
|
+
return new NamzuError({
|
|
312
|
+
code: 'storage_error',
|
|
313
|
+
message: `writeCheckpoint: refusing a write for run ${scope.runId} fenced at ${presented} — the run is now claimed at ${current}. Another worker took this run over, so this process no longer holds it and its work is not the record. Stop the run rather than retrying: the claim is gone, not busy.`,
|
|
314
|
+
details: { runId: scope.runId, presentedFence: presented, currentFence: current },
|
|
315
|
+
retryable: false,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Whether a recorded claim still holds at `now`, and the summary a listing
|
|
320
|
+
* reports for it.
|
|
321
|
+
*/
|
|
322
|
+
export function toClaimSummary(claim, now) {
|
|
323
|
+
return {
|
|
324
|
+
holder: claim.holder,
|
|
325
|
+
fence: claim.fence,
|
|
326
|
+
expiresAt: claim.expiresAt,
|
|
327
|
+
// Judged here, once, against the store's clock. Left to the caller it
|
|
328
|
+
// would be judged against a different one, and a single page could
|
|
329
|
+
// then disagree with itself about which rows are available.
|
|
330
|
+
expired: now >= claim.expiresAt,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
242
333
|
//# sourceMappingURL=listing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing.js","sourceRoot":"","sources":["../../../src/store/run/listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"listing.js","sourceRoot":"","sources":["../../../src/store/run/listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAkBxD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;AAE5C;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA6B,EAAE,MAAc;IACzF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpE,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,GAAG,MAAM,mMAAmM;YACrN,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;SACjE,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AAED,gFAAgF;AAChF,SAAS,cAAc,CAAC,OAAwB,EAAE,GAAW;IAC5D,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAA;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,OAAwB,EAAE,GAAW;IACzD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAA;IACvD,OAAO,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAA;AAChE,CAAC;AAED,SAAS,aAAa,CACrB,EAAuB,EACvB,OAAwB,EACxB,GAAW;IAEX,OAAO;QACN,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;QAChC,YAAY,EAAE,EAAE,CAAC,EAAE;QACnB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAA;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAC5B,WAA2C,EAC3C,GAAW;IAEX,IAAI,IAA6B,CAAA;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAA;IACjB,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAE3C,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAA;QAC1B,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,IAAI,GAAG,QAAQ,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;YAC/E,IAAI,GAAG,OAAO,CAAA;YACd,QAAQ,GAAG,IAAI,CAAA;YACf,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,SAAS,GAA8B;IAC5C,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;CACd,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAChC,KAAyB,EACzB,WAA2C,EAC3C,GAAW;IAEX,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEzC,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAwB,CAAA;IAClD,yEAAyE;IACzE,kEAAkE;IAClE,sEAAsE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,YAAgC,CAAA;IACpC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;YAAE,MAAM,GAAG,EAAE,CAAA;QAChD,IACC,EAAE,CAAC,YAAY,KAAK,SAAS;YAC7B,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC,EAC7D,CAAC;YACF,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;QAC/B,CAAC;IACF,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IAE5C,OAAO;QACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,eAAe,EAAE,WAAW,CAAC,MAAM;QACnC,kBAAkB,EAAE,MAAM,CAAC,EAAE;QAC7B,kBAAkB,EAAE,MAAM,CAAC,SAAS;QACpC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzB,CAAA;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAClC,OAAmC,EACnC,OAAgC;IAEhC,MAAM,MAAM,GAAG,OAAO,EAAE,IAAI,CAAA;IAC5B,MAAM,MAAM,GACX,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,CAAC,CAAC,OAAO,CAAA;IAEX,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,qDAAqD;IACrD,MAAM,QAAQ,GACb,OAAO,EAAE,OAAO,KAAK,SAAS;QAC7B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAEzF,yEAAyE;IACzE,6CAA6C;IAC7C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAA;IAC3C,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC3C,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CACrD,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/F,MAAM,KAAK,GACV,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAChG,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,yBAAyB,CAAC,CAAC,CAAA;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAA;IAEtD,OAAO;QACN,OAAO,EAAE,IAAI;QACb,iEAAiE;QACjE,8DAA8D;QAC9D,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAoB,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;KACxF,CAAA;AACF,CAAC;AAcD,SAAS,OAAO,CAAC,KAAsB,EAAE,OAAwB;IAChE,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,YAAY,KAAK,SAAS;QACtC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,CAAU,EAAE,CAAU;IAC1C,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,GAAY;IACjC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,OAAwB;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;IAC7C,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,qBAAqB,MAAM,6JAA6J;YACjM,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SAC5B,CAAC,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,4BAA4B,MAAM,wGAAwG;YACnJ,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SAC5B,CAAC,CAAA;IACH,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,KAAsB,EACtB,KAA6B,EAC7B,OAAgC;IAEhC,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EACN,+VAA+V;YAChW,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;SACrC,CAAC,CAAA;IACH,CAAC;IACD,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;IACtD,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAsB,EACtB,KAAyB,EACzB,OAAwB;IAExB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EACN,wZAAwZ;YACzZ,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SAC/B,CAAC,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,kEAAkE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,kIAAkI;YAClO,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;SACrD,CAAC,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,KAAsB,EACtB,KAAyB,EACzB,KAAiB;IAEjB,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,UAAU,CAAC;YACpB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EACN,qNAAqN;YACtN,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SAC/B,CAAC,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACxB,KAAyB,EACzB,SAAiB,EACjB,OAAe;IAEf,OAAO,IAAI,UAAU,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,6CAA6C,KAAK,CAAC,KAAK,cAAc,SAAS,gCAAgC,OAAO,yKAAyK;QACxS,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE;QACjF,SAAS,EAAE,KAAK;KAChB,CAAC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAe,EAAE,GAAW;IAC1D,OAAO;QACN,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,sEAAsE;QACtE,mEAAmE;QACnE,4DAA4D;QAC5D,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC,SAAS;KAC/B,CAAA;AACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Run } from '../../types/run/entity.js';
|
|
2
|
-
import type { RunEvent } from '../../types/run/events.js';
|
|
3
|
-
import type { CompletedToolRecord, RunStore } from '../../types/run/store.js';
|
|
2
|
+
import type { PersistedRunEvent, RunEvent } from '../../types/run/events.js';
|
|
3
|
+
import type { CompletedToolRecord, ReadRunEventsOptions, RunStore } from '../../types/run/store.js';
|
|
4
4
|
/**
|
|
5
5
|
* Process-local {@link RunStore}: a run's evidence with no filesystem.
|
|
6
6
|
*
|
|
@@ -21,7 +21,7 @@ export declare class InMemoryRunStore implements RunStore {
|
|
|
21
21
|
private meta;
|
|
22
22
|
private messages;
|
|
23
23
|
private report;
|
|
24
|
-
private
|
|
24
|
+
private events;
|
|
25
25
|
initRun(runId: string, parentRunId?: string): Promise<string | null>;
|
|
26
26
|
private requireInit;
|
|
27
27
|
/** The run this store is bound to, and its parent when it has one. */
|
|
@@ -32,6 +32,7 @@ export declare class InMemoryRunStore implements RunStore {
|
|
|
32
32
|
writeRunMeta(run: Run): Promise<void>;
|
|
33
33
|
writeMessages(run: Run): Promise<void>;
|
|
34
34
|
appendEvent(event: RunEvent): Promise<void>;
|
|
35
|
+
readEvents(options?: ReadRunEventsOptions): Promise<readonly PersistedRunEvent[]>;
|
|
35
36
|
writeReport(content: string): Promise<string | null>;
|
|
36
37
|
readCompletedTools(): Promise<Map<string, CompletedToolRecord>>;
|
|
37
38
|
getRunDir(): string | null;
|
|
@@ -40,7 +41,7 @@ export declare class InMemoryRunStore implements RunStore {
|
|
|
40
41
|
meta: Run | null;
|
|
41
42
|
messages: Run['messages'];
|
|
42
43
|
report: string | null;
|
|
43
|
-
events: readonly
|
|
44
|
+
events: readonly PersistedRunEvent[];
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/store/run/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/store/run/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnG;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAiB,YAAW,QAAQ;IAChD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAA0B;IAElC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsB1E,OAAO,CAAC,WAAW;IAOnB,sEAAsE;IACtE,IAAI,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAI5D;IAEK,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IASrC,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IASjF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMpD,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAuBrE,SAAS,IAAI,MAAM,GAAG,IAAI;IAS1B,0EAA0E;IAC1E,QAAQ,IAAI;QACX,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;QAChB,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAA;KACpC;CAGD"}
|
package/dist/store/run/memory.js
CHANGED
|
@@ -20,6 +20,18 @@ export class InMemoryRunStore {
|
|
|
20
20
|
report = null;
|
|
21
21
|
events = [];
|
|
22
22
|
async initRun(runId, parentRunId) {
|
|
23
|
+
// Rebinding to a DIFFERENT run starts that run's evidence empty. The disk
|
|
24
|
+
// store gets this for free — a different id is a different directory —
|
|
25
|
+
// and this one has to say it, because one instance reused for a replay
|
|
26
|
+
// fork otherwise reports the origin run's events, its messages and its
|
|
27
|
+
// report as the new run's own. Evidence attributed to the wrong run is
|
|
28
|
+
// worse than none: it is wrong and it looks right.
|
|
29
|
+
if (this.runId !== null && this.runId !== runId) {
|
|
30
|
+
this.meta = null;
|
|
31
|
+
this.messages = [];
|
|
32
|
+
this.report = null;
|
|
33
|
+
this.events = [];
|
|
34
|
+
}
|
|
23
35
|
this.runId = runId;
|
|
24
36
|
this.parentRunId = parentRunId;
|
|
25
37
|
// No location, and that is the honest answer rather than a defect.
|
|
@@ -58,7 +70,24 @@ export class InMemoryRunStore {
|
|
|
58
70
|
// line — a parity test compares the two read-backs, and a timestamp
|
|
59
71
|
// present in one medium and absent in the other would make identical
|
|
60
72
|
// runs look different depending on where they were recorded.
|
|
61
|
-
|
|
73
|
+
//
|
|
74
|
+
// An unsequenced event takes its position in the log, which is the same
|
|
75
|
+
// rule the disk reader applies to a line written before events were
|
|
76
|
+
// numbered. Nothing in the kernel appends unsequenced today; the rule is
|
|
77
|
+
// here so the two backends cannot answer differently if something does.
|
|
78
|
+
this.events.push({
|
|
79
|
+
...event,
|
|
80
|
+
seq: event.seq ?? this.events.length + 1,
|
|
81
|
+
timestamp: Date.now(),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async readEvents(options) {
|
|
85
|
+
this.requireInit();
|
|
86
|
+
const sinceSeq = options?.sinceSeq ?? 0;
|
|
87
|
+
// Copied, not sliced by reference, for the same reason `writeRunMeta`
|
|
88
|
+
// clones: a caller holding the array must not be able to reach into the
|
|
89
|
+
// log through it.
|
|
90
|
+
return this.events.filter((event) => event.seq > sinceSeq).map((event) => ({ ...event }));
|
|
62
91
|
}
|
|
63
92
|
async writeReport(content) {
|
|
64
93
|
this.requireInit();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/store/run/memory.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IACpB,KAAK,GAAkB,IAAI,CAAA;IAC3B,WAAW,CAAoB;IAC/B,IAAI,GAAe,IAAI,CAAA;IACvB,QAAQ,GAAoB,EAAE,CAAA;IAC9B,MAAM,GAAkB,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/store/run/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* What a check concluded.
|
|
3
|
+
*
|
|
4
|
+
* `skipped` and `inconclusive` are the two ways a check produces no verdict,
|
|
5
|
+
* and they are separate because a caller acts on them differently.
|
|
6
|
+
*
|
|
7
|
+
* - `skipped` — the check LOOKED and there was nothing here to check: an
|
|
8
|
+
* optional package is not installed, a registry the check reads has no
|
|
9
|
+
* auto-discovery to read, nothing is configured yet. A permanent or
|
|
10
|
+
* by-design absence, and an ordinary state of a healthy machine.
|
|
11
|
+
* - `inconclusive` — the check DID NOT ANSWER: it timed out, it was aborted,
|
|
12
|
+
* the thing it reads threw. Nothing is known either way, and that is itself
|
|
13
|
+
* a gap in the report worth acting on.
|
|
14
|
+
*
|
|
15
|
+
* The word used to cover both, so `namzu doctor` could not tell "healthy" from
|
|
16
|
+
* "did not manage to look", and neither could anything reading its exit code.
|
|
17
|
+
*/
|
|
18
|
+
export type DoctorStatus = 'pass' | 'fail' | 'inconclusive' | 'warn' | 'skipped';
|
|
2
19
|
export type DoctorCategory = 'sandbox' | 'providers' | 'vault' | 'telemetry' | 'runtime' | 'plugins' | 'custom';
|
|
3
20
|
export interface DoctorCheckContext {
|
|
4
21
|
readonly cwd: string;
|
|
@@ -34,8 +51,17 @@ export interface DoctorReport {
|
|
|
34
51
|
readonly fail: number;
|
|
35
52
|
readonly inconclusive: number;
|
|
36
53
|
readonly warn: number;
|
|
54
|
+
readonly skipped: number;
|
|
55
|
+
/** Every other count sums to this. A reader may rely on that. */
|
|
37
56
|
readonly total: number;
|
|
38
57
|
};
|
|
39
|
-
|
|
58
|
+
/**
|
|
59
|
+
* `69` is sysexits `EX_UNAVAILABLE`, whose own definition ends "a catchall
|
|
60
|
+
* when something you wanted to do doesn't work, but you don't know why".
|
|
61
|
+
* That is `inconclusive`. It is not `2`, which this report already spends on
|
|
62
|
+
* "nothing was registered", and not `70`, which says the CLI is broken and
|
|
63
|
+
* is worth a bug report.
|
|
64
|
+
*/
|
|
65
|
+
readonly exit: 0 | 1 | 2 | 69 | 70;
|
|
40
66
|
}
|
|
41
67
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/types/doctor/check.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/types/doctor/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;AAEhF,MAAM,MAAM,cAAc,GACvB,SAAS,GACT,WAAW,GACX,OAAO,GACP,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAA;AAEX,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;CACtE;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,iEAAiE;QACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;IACD;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;CAClC"}
|