@cotal-ai/runtime 0.47.1 → 0.48.1

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.
Files changed (45) hide show
  1. package/dist/fork.d.ts.map +1 -1
  2. package/dist/fork.js +26 -12
  3. package/dist/fork.js.map +1 -1
  4. package/dist/inspect-compiled.d.ts +16 -0
  5. package/dist/inspect-compiled.d.ts.map +1 -0
  6. package/dist/inspect-compiled.js +39 -0
  7. package/dist/inspect-compiled.js.map +1 -0
  8. package/dist/mesh-handler.d.ts +12 -15
  9. package/dist/mesh-handler.d.ts.map +1 -1
  10. package/dist/mesh-handler.js +108 -39
  11. package/dist/mesh-handler.js.map +1 -1
  12. package/dist/migrate.d.ts.map +1 -1
  13. package/dist/migrate.js +23 -10
  14. package/dist/migrate.js.map +1 -1
  15. package/dist/run-command.d.ts.map +1 -1
  16. package/dist/run-command.js +47 -27
  17. package/dist/run-command.js.map +1 -1
  18. package/dist/run-driver.d.ts +1 -1
  19. package/dist/run-driver.d.ts.map +1 -1
  20. package/dist/run-driver.js +16 -40
  21. package/dist/run-driver.js.map +1 -1
  22. package/dist/run-effect-host.d.ts +13 -0
  23. package/dist/run-effect-host.d.ts.map +1 -0
  24. package/dist/run-effect-host.js +57 -0
  25. package/dist/run-effect-host.js.map +1 -0
  26. package/dist/run-host.d.ts.map +1 -1
  27. package/dist/run-host.js +14 -13
  28. package/dist/run-host.js.map +1 -1
  29. package/dist/run-pause-host.d.ts +23 -0
  30. package/dist/run-pause-host.d.ts.map +1 -0
  31. package/dist/run-pause-host.js +99 -0
  32. package/dist/run-pause-host.js.map +1 -0
  33. package/dist/run-record-host.d.ts +20 -0
  34. package/dist/run-record-host.d.ts.map +1 -0
  35. package/dist/run-record-host.js +76 -0
  36. package/dist/run-record-host.js.map +1 -0
  37. package/dist/run-scope-authority.d.ts +51 -0
  38. package/dist/run-scope-authority.d.ts.map +1 -0
  39. package/dist/run-scope-authority.js +193 -0
  40. package/dist/run-scope-authority.js.map +1 -0
  41. package/dist/run-wait-host.d.ts +22 -0
  42. package/dist/run-wait-host.d.ts.map +1 -0
  43. package/dist/run-wait-host.js +70 -0
  44. package/dist/run-wait-host.js.map +1 -0
  45. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
package/dist/fork.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createRunSpec, readRunRecord, recordRunProgram } from "@cotal-ai/core";
2
- import { Journal, JournalReadOnlyError, journalEntryKeyString, run as runProgram, RunDivergence, UnwalkableScope, ScopeBranchMissing, stepKeyString, } from "@cotal-ai/lang";
2
+ import { ENGINE_LANGUAGE_VERSION, Journal, JournalReadOnlyError, journalEntryKeyString, run as runProgram, RunDivergence, UnwalkableScope, ScopeBranchMissing, stepKeyString, } from "@cotal-ai/lang";
3
+ import { assertPlanningVersion, inspectCompiled } from "./inspect-compiled.js";
3
4
  /** The journal kinds that open a scope, i.e. whose entry can ENCLOSE a cut point. */
4
5
  const SCOPE_KINDS = new Set(["parallel", "race", "fanOut", "conclave"]);
5
6
  /** The walk reached the step the caller wants to cut at. Not an error: it is where the cut ENDS. */
@@ -61,6 +62,7 @@ class ForkFrontier extends Error {
61
62
  * code and the step, because that is what makes the next attempt a repair rather than a guess.
62
63
  */
63
64
  export async function planFork(req) {
65
+ assertPlanningVersion(req.pins);
64
66
  const refusals = [];
65
67
  if (req.newProgramHash !== undefined) {
66
68
  refusals.push({
@@ -97,17 +99,29 @@ export async function planFork(req) {
97
99
  });
98
100
  }
99
101
  let reached = false;
102
+ let inspectedOrphans;
100
103
  try {
101
- await runProgram(req.source, {
102
- runId: req.parent,
103
- handler: dryHandler(req.now),
104
- journal,
105
- // MIGRATION MODE. See the header: a resume's short-circuit would carry a settled scope's whole
106
- // subtree into the prefix, and the entries it swept in are precisely the ones after the cut.
107
- migration: true,
108
- pins: req.pins,
109
- ...(req.file !== undefined ? { file: req.file } : {}),
110
- });
104
+ if (req.pins.languageVersion === ENGINE_LANGUAGE_VERSION) {
105
+ const inspected = await inspectCompiled({
106
+ source: req.source, runId: req.parent, pins: req.pins, entries: req.entries,
107
+ cutAt: req.fromStepKey, ...(req.file !== undefined ? { file: req.file } : {}),
108
+ });
109
+ inspectedOrphans = inspected.orphans;
110
+ reached = inspected.reachedCut;
111
+ if (inspected.error !== undefined)
112
+ throw inspected.error;
113
+ }
114
+ else
115
+ await runProgram(req.source, {
116
+ runId: req.parent,
117
+ handler: dryHandler(req.now),
118
+ journal,
119
+ // MIGRATION MODE. See the header: a resume's short-circuit would carry a settled scope's whole
120
+ // subtree into the prefix, and the entries it swept in are precisely the ones after the cut.
121
+ migration: true,
122
+ pins: req.pins,
123
+ ...(req.file !== undefined ? { file: req.file } : {}),
124
+ });
111
125
  }
112
126
  catch (e) {
113
127
  const err = unwrapCut(e);
@@ -144,7 +158,7 @@ export async function planFork(req) {
144
158
  throw e;
145
159
  }
146
160
  }
147
- const orphaned = new Set(journal.orphans().map((e) => journalEntryKeyString(e)));
161
+ const orphaned = new Set((inspectedOrphans ?? journal.orphans()).map((e) => journalEntryKeyString(e)));
148
162
  // THE FRONTIER PROJECTION. A scope that ENCLOSES the cut point must not be copied as settled.
149
163
  //
150
164
  // The dry walk runs in migration mode, which descends into a recorded scope rather than
package/dist/fork.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type JournalEntry, type RunPins } from "@cotal-ai/lang";
2
+ export declare function assertPlanningVersion(pins: RunPins): void;
3
+ /** The worker receives recorded data only, with no effect handler or durable store. */
4
+ export declare function inspectCompiled(req: {
5
+ readonly source: string;
6
+ readonly runId: string;
7
+ readonly pins: RunPins;
8
+ readonly entries: readonly JournalEntry[];
9
+ readonly cutAt?: string;
10
+ readonly file?: string;
11
+ }): Promise<{
12
+ orphans: readonly JournalEntry[];
13
+ reachedCut: boolean;
14
+ error?: Error;
15
+ }>;
16
+ //# sourceMappingURL=inspect-compiled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-compiled.d.ts","sourceRoot":"","sources":["../src/inspect-compiled.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAGzD;AAED,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,GAAG,EAAE;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAqBpF"}
@@ -0,0 +1,39 @@
1
+ import { ENGINE_LANGUAGE_VERSION, WALKER_LANGUAGE_VERSION, RunDivergence, ScopeBranchMissing, UnwalkableScope, RuntimeFault, runInWorker, transform, } from "@cotal-ai/lang";
2
+ import { resolveWorkerEntry } from "./engine-host.js";
3
+ export function assertPlanningVersion(pins) {
4
+ if (pins.languageVersion !== WALKER_LANGUAGE_VERSION && pins.languageVersion !== ENGINE_LANGUAGE_VERSION)
5
+ throw new RuntimeFault("L5023", `planning does not support recorded language version ${pins.languageVersion}`);
6
+ }
7
+ /** The worker receives recorded data only, with no effect handler or durable store. */
8
+ export async function inspectCompiled(req) {
9
+ const { module } = transform(req.source, req.file !== undefined ? { file: req.file } : {});
10
+ const result = await runInWorker({ ...req, module, handler: "inspection" }, { entry: resolveWorkerEntry() }).done;
11
+ const snapshot = result.inspection;
12
+ if (snapshot === undefined)
13
+ throw new Error("compiled inspection returned no journal snapshot");
14
+ const exit = snapshot.exit;
15
+ const base = { orphans: snapshot.orphans, reachedCut: exit?.kind === "cut" };
16
+ if (exit === undefined || exit.kind === "cut" || exit.kind === "frontier")
17
+ return base;
18
+ let error;
19
+ switch (exit.kind) {
20
+ case "divergence":
21
+ error = new RunDivergence(exit.step, exit.recordedHash, exit.programHash);
22
+ break;
23
+ case "unwalkable":
24
+ error = new UnwalkableScope(exit.step, exit.why);
25
+ break;
26
+ case "missing-branch":
27
+ error = new ScopeBranchMissing(exit.step, exit.scope, exit.missing, exit.recorded, exit.source);
28
+ break;
29
+ case "error": {
30
+ error = new Error(exit.message);
31
+ error.name = exit.name;
32
+ if (exit.code !== undefined)
33
+ Object.assign(error, { code: exit.code });
34
+ break;
35
+ }
36
+ }
37
+ return { ...base, error };
38
+ }
39
+ //# sourceMappingURL=inspect-compiled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-compiled.js","sourceRoot":"","sources":["../src/inspect-compiled.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,SAAS,GAGV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB;QACtG,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,uDAAuD,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AACnH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAOrC;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IAClH,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;IAC7E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACvF,IAAI,KAAY,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YAAE,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM;QACpG,KAAK,YAAY;YAAE,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QAC3E,KAAK,gBAAgB;YAAE,KAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QAC9H,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -3,6 +3,14 @@ import type { NatsConnection } from "@nats-io/transport-node";
3
3
  import type { JetStreamClient, JetStreamManager } from "@nats-io/jetstream";
4
4
  import { type KV } from "@nats-io/kv";
5
5
  import { type AskRequest, type AgentHandleValue, type ChannelHandleValue, type ConclaveRequest, type WaitRequest, type CheckpointRaw, type CheckpointRequest, type EffectContext, type JournalEntry, type MonitorRequest, type NotifyRequest, type SleepRequest, type SpawnRequest, type TurnRequest, type TurnResultValue } from "@cotal-ai/lang";
6
+ import type { RunPauseHost } from "./run-pause-host.js";
7
+ import type { RunWaitHost } from "./run-wait-host.js";
8
+ import type { RunScopeAuthority } from "./run-scope-authority.js";
9
+ export interface RunMeshServices {
10
+ readonly pauses: RunPauseHost;
11
+ readonly waits: RunWaitHost;
12
+ readonly authority: RunScopeAuthority;
13
+ }
6
14
  /** Who this handler acts as, and where. All of it is the DRIVER's identity, not the program's. */
7
15
  export interface MeshHandlerBinding {
8
16
  readonly space: string;
@@ -85,7 +93,8 @@ export declare class MeshHandler {
85
93
  private readonly binding;
86
94
  private readonly watcher;
87
95
  private readonly clock;
88
- constructor(nc: NatsConnection, kv: KV, js: JetStreamClient, jsm: JetStreamManager, binding: MeshHandlerBinding, watcher: SettleWatcher, clock?: () => number);
96
+ private readonly services?;
97
+ constructor(nc: NatsConnection, kv: KV, js: JetStreamClient, jsm: JetStreamManager, binding: MeshHandlerBinding, watcher: SettleWatcher, clock?: () => number, services?: RunMeshServices | undefined);
89
98
  /**
90
99
  * The resolved manager service, memoized as a PROMISE so concurrent branches share one describe
91
100
  * round-trip — and dropped on failure, so a resolve that lost to a manager restart is retried by
@@ -152,6 +161,7 @@ export declare class MeshHandler {
152
161
  * its identity, its worktree and its turn history across the edit. Called by the driver on the
153
162
  * migrated run before the program runs; a map with no entry for a persona changes nothing.
154
163
  */
164
+ restoreMigratedSeats(entries: readonly JournalEntry[]): Promise<void>;
155
165
  adoptMigratedSeats(seats: ReadonlyMap<string, readonly JournalEntry[]>): void;
156
166
  /**
157
167
  * Rebuild the in-memory run memos an adopted run needs to keep performing `turn`: the roster
@@ -632,19 +642,7 @@ export declare class MeshHandler {
632
642
  /** Take this deadline's fire for as long as somebody is waiting on it. */
633
643
  private pumpFires;
634
644
  }
635
- /** The durable that holds one wait's position on a channel. Derived from the step's own request id,
636
- * which is why a resumed run finds the consumer its earlier attempt created rather than starting
637
- * again from "now" — and why nothing about the wait has to be remembered across a crash. */
638
- export declare function waitConsumerName(requestId: string): string;
639
- /**
640
- * The one definition of a wait's consumer, shared by the handler and by anything that has to
641
- * recreate it — so the name a resume looks for and the name a wait creates cannot drift apart.
642
- *
643
- * `deliver_policy: "new"` applies only to the FIRST create: an existing durable keeps its own
644
- * position, which is exactly what a resume needs, and events from before the program asked are not
645
- * this wait's to see.
646
- */
647
- export declare function waitConsumerConfig(space: string, requestId: string, channel: string): Record<string, unknown>;
645
+ export { waitConsumerName, waitConsumerConfig } from "@cotal-ai/core";
648
646
  /**
649
647
  * Read a spawn's `permits` as the budgets this host can enforce: `turns`, a positive integer of
650
648
  * turns the run may dispatch to the agent, and `wallClock`, a duration from the spawn after which
@@ -736,5 +734,4 @@ export declare class EpfSettleWatcher implements SettleWatcher {
736
734
  constructor(jsm: JetStreamManager, space: string, pollMs?: number);
737
735
  awaitSettle(ref: CheckpointRef): Promise<CheckpointSettleFact>;
738
736
  }
739
- export {};
740
737
  //# sourceMappingURL=mesh-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-handler.d.ts","sourceRoot":"","sources":["../src/mesh-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-handler.d.ts","sourceRoot":"","sources":["../src/mesh-handler.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,9 @@
17
17
  * again.
18
18
  */
19
19
  import { createHash } from "node:crypto";
20
- import { mintCheckpoint, heartbeatCheckpoint, resumeCheckpoint, readCheckpointSettle, readCheckpointAnswer, readCheckpointStatus, readCheckpointSpec, reconcileCheckpointSchedule, handleCheckpointFire, eptStreamName, eptSubject, chatStream, chatSubject, isConcreteChannel, assertSafePattern, assertValidChannel, presenceBucket, liveKvEntries, IncompleteKvScan, openMembersRegistry, openChannelRegistry, writeChannelConfig, readMember, commitMember, tombstoneMember, StaleMembershipWrite, runNoticeId, writeRunNotice, actionContext, invokeCommand, readGoalResult, readGoalStatus, resolveService, listRunNotices, markRunNoticeConsumed, listRunNoticesForRun, readRunRecord, writeRunStatus, EpEnvelopeError, } from "@cotal-ai/core";
20
+ import { mintCheckpoint, heartbeatCheckpoint, resumeCheckpoint, readCheckpointSettle, readCheckpointAnswer, readCheckpointStatus, readCheckpointSpec, reconcileCheckpointSchedule, handleCheckpointFire, eptStreamName, eptSubject, chatStream, waitConsumerName, waitConsumerConfig, isConcreteChannel, assertSafePattern, assertValidChannel, presenceBucket, principalKey, liveKvEntries, IncompleteKvScan, openMembersRegistry, openChannelRegistry, writeChannelConfig, readMember, commitMember, tombstoneMember, StaleMembershipWrite, runNoticeId, writeRunNotice, actionContext, invokeCommand, readGoalResult, readGoalStatus, resolveService, listRunNotices, listRunMigrations, markRunNoticeConsumed, listRunNoticesForRun, readRunRecord, writeRunStatus, EpEnvelopeError, } from "@cotal-ai/core";
21
21
  import { renderRunContext } from "./run-context.js";
22
+ import { migrationSeats } from "./migrate.js";
22
23
  import { Kvm } from "@nats-io/kv";
23
24
  import { parseDuration, Cancelled, EffectError, Journal, EffectRefused, askSchemaShape, conformsToAskSchema, journalEntryKeyString, stepKeyString, } from "@cotal-ai/lang";
24
25
  /**
@@ -56,7 +57,8 @@ export class MeshHandler {
56
57
  binding;
57
58
  watcher;
58
59
  clock;
59
- constructor(nc, kv, js, jsm, binding, watcher, clock = () => Date.now()) {
60
+ services;
61
+ constructor(nc, kv, js, jsm, binding, watcher, clock = () => Date.now(), services) {
60
62
  this.nc = nc;
61
63
  this.kv = kv;
62
64
  this.js = js;
@@ -64,6 +66,7 @@ export class MeshHandler {
64
66
  this.binding = binding;
65
67
  this.watcher = watcher;
66
68
  this.clock = clock;
69
+ this.services = services;
67
70
  }
68
71
  /**
69
72
  * The resolved manager service, memoized as a PROMISE so concurrent branches share one describe
@@ -163,8 +166,10 @@ export class MeshHandler {
163
166
  * cannot advance it.
164
167
  */
165
168
  async adopted(entries) {
166
- const folded = foldEntries(entries);
169
+ const folded = foldEntries(this.services ? await this.services.authority.journal() : entries);
167
170
  this.seedRunMemos(folded);
171
+ if (this.services)
172
+ return [...await this.services.pauses.rearm()];
168
173
  return await rearmOutstandingPauses({ kv: this.kv, js: this.js, jsm: this.jsm }, this.binding, folded);
169
174
  }
170
175
  /**
@@ -174,6 +179,18 @@ export class MeshHandler {
174
179
  * its identity, its worktree and its turn history across the edit. Called by the driver on the
175
180
  * migrated run before the program runs; a map with no entry for a persona changes nothing.
176
181
  */
182
+ async restoreMigratedSeats(entries) {
183
+ const source = this.services ? await this.services.authority.journal() : entries;
184
+ const kept = new Map();
185
+ for (const migration of await listRunMigrations(this.kv, this.binding.endpoint, this.binding.runId)) {
186
+ if (migration.applied === undefined)
187
+ continue;
188
+ for (const [persona, seats] of migrationSeats(source, migration.spec).adopt)
189
+ kept.set(persona, [...(kept.get(persona) ?? []), ...seats]);
190
+ }
191
+ if (kept.size > 0)
192
+ this.adoptMigratedSeats(kept);
193
+ }
177
194
  adoptMigratedSeats(seats) {
178
195
  for (const [persona, entries] of seats)
179
196
  this.adoptable.set(persona, [...(this.adoptable.get(persona) ?? []), ...entries]);
@@ -306,7 +323,8 @@ export class MeshHandler {
306
323
  * landed, and the flip to `issued: true` happens only after it returns.
307
324
  */
308
325
  async discharge(entries) {
309
- for (const e of entries) {
326
+ const owed = this.services ? await this.services.authority.cleanupEntries() : entries;
327
+ for (const e of owed) {
310
328
  if (e.requestId === undefined)
311
329
  continue;
312
330
  if (e.kind === "spawn") {
@@ -337,6 +355,10 @@ export class MeshHandler {
337
355
  await this.cancelTimer({ endpoint: this.binding.endpoint, token: current });
338
356
  if (e.kind === "wait") {
339
357
  await this.cancelTimer({ endpoint: this.binding.endpoint, token: derivedToken(e.requestId, "wait-timeout") });
358
+ if (this.services) {
359
+ await this.services.waits.close(e.requestId);
360
+ continue;
361
+ }
340
362
  try {
341
363
  await this.jsm.consumers.delete(chatStream(this.binding.space), waitConsumerName(e.requestId));
342
364
  }
@@ -456,6 +478,7 @@ export class MeshHandler {
456
478
  const plan = e.external;
457
479
  if (!isConclavePlan(plan))
458
480
  return;
481
+ assertConclaveOwnership(plan, e.requestId);
459
482
  await this.releaseConclave(plan);
460
483
  this.conclaves.delete(e.requestId);
461
484
  }
@@ -538,7 +561,7 @@ export class MeshHandler {
538
561
  // was accepted, so an answer found by token alone could be the loser's.
539
562
  const answer = settled.answerId === undefined
540
563
  ? undefined
541
- : await readCheckpointAnswer(this.kv, this.binding.endpoint, ref.token, settled.answerId);
564
+ : this.services ? await this.services.pauses.readAnswer(ref.token) : await readCheckpointAnswer(this.kv, this.binding.endpoint, ref.token, settled.answerId);
542
565
  if (answer === undefined)
543
566
  throw new CheckpointAnswerMissing(ref.token, settled.answerId);
544
567
  return {
@@ -576,6 +599,19 @@ export class MeshHandler {
576
599
  if (!isConcreteChannel(ev.channel)) {
577
600
  throw new Error(`wait() cannot await a wildcard channel ("${ev.channel}"); an await names one channel`);
578
601
  }
602
+ const waitBinding = {
603
+ ...ctx.resume,
604
+ waitChannel: ev.channel,
605
+ waitTimers: [
606
+ ...(ev.event === "idle" || req.timeout !== undefined ? [ctx.requestId] : []),
607
+ ...(ev.event === "idle" && req.timeout !== undefined ? [derivedToken(ctx.requestId, "wait-timeout")] : []),
608
+ ],
609
+ };
610
+ if (this.services) {
611
+ if (ctx.resume?.waitChannel !== undefined && ctx.resume.waitChannel !== ev.channel)
612
+ throw new Error(`wait ${ctx.requestId} recorded a different channel`);
613
+ await ctx.bind(waitBinding);
614
+ }
579
615
  // A recorded seq is a previous attempt's MATCH, taken before the crash. Return that message
580
616
  // rather than looking again: the consumer has already acked it, so looking again would wait for
581
617
  // a second event the program never asked for.
@@ -586,7 +622,7 @@ export class MeshHandler {
586
622
  // same reason the live match path does: this is the ending, it just happened last time.
587
623
  await this.cancelTimer({ endpoint: this.binding.endpoint, token: ctx.requestId });
588
624
  await this.cancelTimer({ endpoint: this.binding.endpoint, token: derivedToken(ctx.requestId, "wait-timeout") });
589
- return await this.messageAt(bound);
625
+ return await this.messageAt(bound, ctx.requestId);
590
626
  }
591
627
  const timeoutAt = req.timeout === undefined ? undefined : this.now() + parseDuration(req.timeout);
592
628
  const idleFor = ev.event === "idle" ? parseDuration(ev.duration) : undefined;
@@ -608,8 +644,11 @@ export class MeshHandler {
608
644
  await this.arm(outer, timeoutAt);
609
645
  const durable = waitConsumerName(ctx.requestId);
610
646
  const stream = chatStream(this.binding.space);
611
- await this.jsm.consumers.add(stream, waitConsumerConfig(this.binding.space, ctx.requestId, ev.channel));
612
- const consumer = await this.js.consumers.get(stream, durable);
647
+ if (this.services)
648
+ await this.services.waits.open(ctx.requestId, ev.channel);
649
+ else
650
+ await this.jsm.consumers.add(stream, waitConsumerConfig(this.binding.space, ctx.requestId, ev.channel));
651
+ const consumer = this.services ? undefined : await this.js.consumers.get(stream, durable);
613
652
  // Set on each of the three paths that END the wait, and read by the cleanup below. A THROW is
614
653
  // not one of them — see the note there.
615
654
  let over = false;
@@ -649,24 +688,30 @@ export class MeshHandler {
649
688
  over = true;
650
689
  return { channel: ev.channel, at: this.now() };
651
690
  }
652
- for await (const m of await consumer.fetch({ max_messages: 16, expires: WAIT_POLL_MS })) {
691
+ const batch = this.services
692
+ ? (await this.services.waits.fetch(ctx.requestId)).map((message) => ({
693
+ seq: message.sequence, data: message.data,
694
+ ack: () => this.services.waits.ack(ctx.requestId, message.receipt),
695
+ }))
696
+ : await consumer.fetch({ max_messages: 16, expires: WAIT_POLL_MS });
697
+ for await (const m of batch) {
653
698
  const msg = decodeMessage(m.data);
654
699
  if (idleFor !== undefined) {
655
700
  // ANY traffic resets an idle window, matched or not: "idle" is a fact about the
656
701
  // channel, not about the messages this program finds interesting.
657
- m.ack();
702
+ await m.ack();
658
703
  await this.push(primary, this.now() + idleFor);
659
704
  continue;
660
705
  }
661
706
  if (msg === undefined || !matchesEvent(msg, from, matcher)) {
662
- m.ack();
707
+ await m.ack();
663
708
  continue;
664
709
  }
665
710
  // BIND BEFORE ACK. The bind is durable; the ack is what makes the message unrecoverable.
666
711
  // In this order a crash in between redelivers it, and a crash after it is answered from
667
712
  // the recorded sequence — in the other order the match is simply lost.
668
- await ctx.bind({ chatSeq: m.seq });
669
- m.ack();
713
+ await ctx.bind(this.services ? { ...waitBinding, chatSeq: m.seq } : { chatSeq: m.seq });
714
+ await m.ack();
670
715
  if (primary !== undefined)
671
716
  await this.cancelTimer(primary);
672
717
  if (outer !== undefined)
@@ -687,7 +732,9 @@ export class MeshHandler {
687
732
  // Keeping the consumer costs one durable on an abandoned run, which is what a host crash
688
733
  // already costs; reaping on inactivity instead could delete a live wait's position while its
689
734
  // host was down.
690
- if (over) {
735
+ if (over && this.services)
736
+ await this.services.waits.close(ctx.requestId);
737
+ else if (over) {
691
738
  try {
692
739
  await this.jsm.consumers.delete(stream, durable);
693
740
  }
@@ -1356,7 +1403,7 @@ export class MeshHandler {
1356
1403
  }
1357
1404
  const answer = settled.answerId === undefined
1358
1405
  ? undefined
1359
- : await readCheckpointAnswer(this.kv, this.binding.endpoint, token, settled.answerId);
1406
+ : this.services ? await this.services.pauses.readAnswer(token) : await readCheckpointAnswer(this.kv, this.binding.endpoint, token, settled.answerId);
1360
1407
  if (answer === undefined)
1361
1408
  throw new CheckpointAnswerMissing(token, settled.answerId);
1362
1409
  if (conformsToAskSchema(answer.value, shape))
@@ -1552,6 +1599,7 @@ export class MeshHandler {
1552
1599
  plan = await this.planConclave(req, ctx);
1553
1600
  await ctx.bind({ ...plan });
1554
1601
  }
1602
+ assertConclaveOwnership(plan, ctx.requestId, req);
1555
1603
  await this.executeConclavePlan(plan);
1556
1604
  this.conclaves.set(ctx.requestId, plan);
1557
1605
  return { channel: plan.channel };
@@ -1571,6 +1619,7 @@ export class MeshHandler {
1571
1619
  const plan = this.conclaves.get(ctx.requestId) ?? (isConclavePlan(ctx.resume) ? ctx.resume : undefined);
1572
1620
  if (plan === undefined)
1573
1621
  throw new Error(`conclave close for "${ctx.requestId}" has no recorded plan: the open that owes this close bound none`);
1622
+ assertConclaveOwnership(plan, ctx.requestId);
1574
1623
  await this.releaseConclave(plan);
1575
1624
  this.conclaves.delete(ctx.requestId);
1576
1625
  return null;
@@ -1715,6 +1764,8 @@ export class MeshHandler {
1715
1764
  * raised rather than waited on.
1716
1765
  */
1717
1766
  async arm(ref, deadline) {
1767
+ if (this.services)
1768
+ return this.services.pauses.arm(ref.token, deadline);
1718
1769
  // Over already: an expiry or an answer landed while this host was away. Nothing to arm, and the
1719
1770
  // caller reads the fact next.
1720
1771
  if ((await readCheckpointSettle(this.jsm, this.binding.space, ref)) !== undefined)
@@ -1768,6 +1819,8 @@ export class MeshHandler {
1768
1819
  /** Push a live deadline out — the idle window restarting. The heartbeat CAS-advances the
1769
1820
  * generation before replacing the timer, so a fire from the old one no-ops rather than racing. */
1770
1821
  async push(ref, deadline) {
1822
+ if (this.services)
1823
+ return this.services.pauses.heartbeat(ref.token, deadline);
1771
1824
  await heartbeatCheckpoint(this.kv, this.js, this.jsm, this.binding.space, {
1772
1825
  ref,
1773
1826
  instanceId: this.binding.instanceId,
@@ -1792,6 +1845,8 @@ export class MeshHandler {
1792
1845
  * owner-behind clock skew, and over-emission is idempotent at the timer writer.
1793
1846
  */
1794
1847
  async takeFire(ref) {
1848
+ if (this.services)
1849
+ return this.services.pauses.takeFire(ref.token);
1795
1850
  const subject = eptSubject(this.binding.space, ref.endpoint, this.binding.instanceId, this.binding.epoch, ref.token, "fire");
1796
1851
  const fired = await this.jsm.streams
1797
1852
  .getMessage(eptStreamName(this.binding.space), { last_by_subj: subject })
@@ -1823,6 +1878,14 @@ export class MeshHandler {
1823
1878
  async expired(ref) {
1824
1879
  if (ref === undefined)
1825
1880
  return undefined;
1881
+ if (this.services) {
1882
+ const settled = await this.services.pauses.readSettle(ref.token);
1883
+ if (settled !== undefined)
1884
+ return settled;
1885
+ if (!(await this.services.pauses.takeFire(ref.token)))
1886
+ return undefined;
1887
+ return this.services.pauses.readSettle(ref.token);
1888
+ }
1826
1889
  const settled = await readCheckpointSettle(this.jsm, this.binding.space, ref);
1827
1890
  if (settled !== undefined)
1828
1891
  return settled;
@@ -1834,6 +1897,8 @@ export class MeshHandler {
1834
1897
  * A timer left armed would fire into a run that has moved on; claiming it is how the plane says
1835
1898
  * "this pause is over" without a second mechanism for cancellation. */
1836
1899
  async cancelTimer(ref) {
1900
+ if (this.services)
1901
+ return this.services.pauses.claim(ref.token);
1837
1902
  const st = await readCheckpointStatus(this.kv, ref);
1838
1903
  if (st?.value.state !== "waiting")
1839
1904
  return;
@@ -1866,7 +1931,13 @@ export class MeshHandler {
1866
1931
  }
1867
1932
  }
1868
1933
  /** The message at a recorded stream sequence — the re-bind path after a crash. */
1869
- async messageAt(seq) {
1934
+ async messageAt(seq, requestId) {
1935
+ if (this.services) {
1936
+ const message = decodeMessage(await this.services.waits.messageAt(requestId, seq));
1937
+ if (message === undefined)
1938
+ throw new Error(`wait ${requestId}'s recorded message does not decode`);
1939
+ return message;
1940
+ }
1870
1941
  const m = await this.jsm.streams.getMessage(chatStream(this.binding.space), { seq });
1871
1942
  if (m === null || m === undefined) {
1872
1943
  throw new Error(`the message this wait matched (sequence ${seq}) is no longer on the channel's stream; a recorded match cannot be re-read`);
@@ -1885,7 +1956,7 @@ export class MeshHandler {
1885
1956
  * already in the past.
1886
1957
  */
1887
1958
  async settle(ref, signal) {
1888
- const already = await readCheckpointSettle(this.jsm, this.binding.space, ref);
1959
+ const already = this.services ? await this.services.pauses.readSettle(ref.token) : await readCheckpointSettle(this.jsm, this.binding.space, ref);
1889
1960
  if (already !== undefined)
1890
1961
  return already;
1891
1962
  // The watcher waits for the FACT. For a pause with an answer the fact arrives because somebody
@@ -1942,28 +2013,7 @@ export class MeshHandler {
1942
2013
  }
1943
2014
  }
1944
2015
  }
1945
- /** The durable that holds one wait's position on a channel. Derived from the step's own request id,
1946
- * which is why a resumed run finds the consumer its earlier attempt created rather than starting
1947
- * again from "now" — and why nothing about the wait has to be remembered across a crash. */
1948
- export function waitConsumerName(requestId) {
1949
- return `wfw_${requestId}`;
1950
- }
1951
- /**
1952
- * The one definition of a wait's consumer, shared by the handler and by anything that has to
1953
- * recreate it — so the name a resume looks for and the name a wait creates cannot drift apart.
1954
- *
1955
- * `deliver_policy: "new"` applies only to the FIRST create: an existing durable keeps its own
1956
- * position, which is exactly what a resume needs, and events from before the program asked are not
1957
- * this wait's to see.
1958
- */
1959
- export function waitConsumerConfig(space, requestId, channel) {
1960
- return {
1961
- durable_name: waitConsumerName(requestId),
1962
- filter_subject: chatSubject(space, "*", "*", channel),
1963
- ack_policy: "explicit",
1964
- deliver_policy: "new",
1965
- };
1966
- }
2016
+ export { waitConsumerName, waitConsumerConfig } from "@cotal-ai/core";
1967
2017
  /** How long one poll of a wait's consumer blocks. The deadline itself is durable; this is only how
1968
2018
  * late its observation can be, and a shorter poll buys latency at the cost of fetch traffic. */
1969
2019
  const WAIT_POLL_MS = 2_000;
@@ -2126,6 +2176,25 @@ function spawnHandleOf(req, ext, fact, endpoint) {
2126
2176
  ...(typeof d.role === "string" ? { role: d.role } : {}),
2127
2177
  };
2128
2178
  }
2179
+ /** A recorded flag cannot turn a borrowed channel into a channel this step owns. */
2180
+ function assertConclaveOwnership(plan, requestId, req) {
2181
+ const derived = `conclave-${createHash("sha256").update(requestId).digest("hex").slice(0, 12)}`;
2182
+ if (plan.registered && plan.channel !== derived)
2183
+ throw new Error(`recorded conclave channel ${plan.channel} is not owned by step ${requestId}`);
2184
+ if (req !== undefined) {
2185
+ if (plan.channel !== (req.channel ?? derived) || plan.registered !== (req.channel === undefined))
2186
+ throw new Error(`recorded conclave channel does not match the requested channel for ${requestId}`);
2187
+ const members = new Set(req.members.map((member) => member.agent));
2188
+ if (plan.members.length !== members.size || plan.members.some((member) => !members.delete(member.agent)))
2189
+ throw new Error(`recorded conclave members do not match the request for ${requestId}`);
2190
+ }
2191
+ for (const member of plan.members) {
2192
+ const [owner, actor, ...extra] = member.principal.split(".");
2193
+ if (owner === undefined || actor === undefined || extra.length !== 0 || principalKey(owner, actor).key !== member.principal
2194
+ || parseAgentHandle(member.agent).uid !== member.uid || !Number.isSafeInteger(member.generation) || member.generation < 1)
2195
+ throw new Error(`recorded conclave member identity is malformed for ${requestId}`);
2196
+ }
2197
+ }
2129
2198
  /** Whether a recorded external is a conclave plan. A journal is bytes from an earlier process, so
2130
2199
  * the shape is checked rather than trusted — a malformed external reads as "nothing was bound". */
2131
2200
  function isConclavePlan(v) {