@tangle-network/agent-runtime 0.274.0 → 0.279.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.
Files changed (61) hide show
  1. package/dist/{activation-DiW4KBY-.d.ts → activation-B5NExoOz.d.ts} +137 -105
  2. package/dist/{activation-t5vg1Zyu.js → activation-BkUdrvqh.js} +2 -2
  3. package/dist/{activation-t5vg1Zyu.js.map → activation-BkUdrvqh.js.map} +1 -1
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{coordination-driver-B2GTcMvx.js → coordination-driver-BBL_OgRw.js} +95 -28
  7. package/dist/coordination-driver-BBL_OgRw.js.map +1 -0
  8. package/dist/{delegate-Bmt7uynp.js → delegate-CZc7B-Tl.js} +2 -2
  9. package/dist/{delegate-Bmt7uynp.js.map → delegate-CZc7B-Tl.js.map} +1 -1
  10. package/dist/durable.d.ts +2 -2
  11. package/dist/durable.js +2 -2
  12. package/dist/{graph-9khZscYU.js → graph-Ci8Ufs_f.js} +4 -4
  13. package/dist/{graph-9khZscYU.js.map → graph-Ci8Ufs_f.js.map} +1 -1
  14. package/dist/{improvement-cycle-oQFOTgLd.js → improvement-cycle-Bi43xCVa.js} +649 -213
  15. package/dist/improvement-cycle-Bi43xCVa.js.map +1 -0
  16. package/dist/{index-CjLtO4B3.d.ts → index-Dm8SHDGW.d.ts} +51 -17
  17. package/dist/index.d.ts +9 -9
  18. package/dist/index.js +55 -14
  19. package/dist/index.js.map +1 -1
  20. package/dist/intelligence.d.ts +3 -3
  21. package/dist/intelligence.js +3 -3
  22. package/dist/kernel.d.ts +4 -4
  23. package/dist/kernel.js +8 -8
  24. package/dist/{loop-runner-bin-C-rco77U.js → loop-runner-bin-C9FJshTP.js} +3 -3
  25. package/dist/{loop-runner-bin-C-rco77U.js.map → loop-runner-bin-C9FJshTP.js.map} +1 -1
  26. package/dist/{loop-runner-bin-Ceehl2oB.d.ts → loop-runner-bin-D6khQtoC.d.ts} +3 -3
  27. package/dist/loop-runner-bin.d.ts +1 -1
  28. package/dist/loop-runner-bin.js +1 -1
  29. package/dist/mcp/bin.js +3 -3
  30. package/dist/mcp/index.d.ts +5 -5
  31. package/dist/mcp/index.js +4 -4
  32. package/dist/{openai-tools-D8ZYHReZ.d.ts → openai-tools-H8QPhTVE.d.ts} +2 -2
  33. package/dist/platform.d.ts +91 -1
  34. package/dist/platform.js +162 -6
  35. package/dist/platform.js.map +1 -1
  36. package/dist/profiles.d.ts +2 -2
  37. package/dist/{provision-supervisor-Ds43T8XY.js → provision-supervisor-BvnihiyB.js} +3 -3
  38. package/dist/{provision-supervisor-Ds43T8XY.js.map → provision-supervisor-BvnihiyB.js.map} +1 -1
  39. package/dist/{runtime-CtrgIqQm.js → runtime-DsAHXig2.js} +73 -26
  40. package/dist/runtime-DsAHXig2.js.map +1 -0
  41. package/dist/{server-DnSzxChA.js → server-Dyc1zvug.js} +3 -3
  42. package/dist/{server-DnSzxChA.js.map → server-Dyc1zvug.js.map} +1 -1
  43. package/dist/{stream-agent-turn-C2rtL6P2.d.ts → stream-agent-turn-Bk79CnTw.d.ts} +2 -2
  44. package/dist/{structural-rollout-DN8CVdpp.js → structural-rollout-D-0X6lsU.js} +2 -2
  45. package/dist/{structural-rollout-DN8CVdpp.js.map → structural-rollout-D-0X6lsU.js.map} +1 -1
  46. package/dist/{substrate-DPIUXsZ5.d.ts → substrate-CHQ5GYnU.d.ts} +2 -2
  47. package/dist/{supervise-CFyAWebz.js → supervise-DBQdrp7H.js} +171 -13
  48. package/dist/supervise-DBQdrp7H.js.map +1 -0
  49. package/dist/{supervisor-C50SI_Ww.js → supervisor-DtlPj9me.js} +372 -77
  50. package/dist/supervisor-DtlPj9me.js.map +1 -0
  51. package/dist/testing.d.ts +2 -2
  52. package/dist/testing.js +60 -60
  53. package/dist/tui/index.d.ts +1 -1
  54. package/dist/tui/index.js +1 -1
  55. package/dist/{types-r7Fzum3M.d.ts → types-D56jQad-.d.ts} +92 -66
  56. package/package.json +10 -7
  57. package/dist/coordination-driver-B2GTcMvx.js.map +0 -1
  58. package/dist/improvement-cycle-oQFOTgLd.js.map +0 -1
  59. package/dist/runtime-CtrgIqQm.js.map +0 -1
  60. package/dist/supervise-CFyAWebz.js.map +0 -1
  61. package/dist/supervisor-C50SI_Ww.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Ai as readCommittedJsonLines, Bi as providerAttemptEvidence, E as failedItems, Ea as unmeteredSpend, En as isTerminalNodeStatus, It as FileResultBlobStore, Lt as FileSpawnJournal, M as withDriverExecutor, Pt as createRouterTranscript, Qi as detachedFrozen, Qt as workerTraceAnalysisStore, Rt as InMemoryResultBlobStore, Tn as isLiveNodeStatus, Zt as parseWorkerToolTraceArtifact, _ as CheckUnavailableError, at as scopeRetainedOwnerResourceReader, ba as promptCacheTokenClasses, c as runTree, gn as createInbox, ha as chargedTokens, i as bestDelivered, ja as withBudgetResources, ji as writeAllBytes, ka as addResourceSpend, ki as prepareJsonlAppend, kt as createExecutorRegistry, o as pickBestDelivered, qn as runBrainLoop, s as runFinalizer, tn as assertValidBudget, ur as errMessage, ut as resolveSpawnResourcePaths, wr as resolveRedactor, x as checkVerdictOf, xn as createPeerMailbox, z as meterRuntimeOwnedProviderAttempt, zt as InMemorySpawnJournal } from "./supervisor-C50SI_Ww.js";
1
+ import { $t as parseWorkerToolTraceArtifact, Ai as readCommittedJsonLines, Bi as providerAttemptEvidence, Bt as InMemoryResultBlobStore, Cn as createPeerMailbox, Dn as isLiveNodeStatus, E as failedItems, Ea as unmeteredSpend, Er as resolveRedactor, It as createRouterTranscript, M as withDriverExecutor, On as isTerminalNodeStatus, Qi as detachedFrozen, Rt as FileResultBlobStore, Vt as InMemorySpawnJournal, Yn as runBrainLoop, _ as CheckUnavailableError, ba as promptCacheTokenClasses, c as runTree, en as workerTraceAnalysisStore, fr as errMessage, ft as resolveSpawnResourcePaths, ha as chargedTokens, i as bestDelivered, ja as withBudgetResources, ji as writeAllBytes, jt as createExecutorRegistry, ka as addResourceSpend, ki as prepareJsonlAppend, o as pickBestDelivered, ot as scopeRetainedOwnerResourceReader, rn as assertValidBudget, s as runFinalizer, vn as createInbox, x as checkVerdictOf, z as meterRuntimeOwnedProviderAttempt, zt as FileSpawnJournal } from "./supervisor-DtlPj9me.js";
2
2
  import { f as RuntimeRunStateError, m as ValidationError } from "./errors-DodWX-cb.js";
3
3
  import { A as writeWorkerCancellation, M as writeWorkerSteerAcknowledgement, b as workerCancellationsDir, c as readWorkerCancelRequests, d as readWorkerSteerRequests, k as writeRunCancellation, l as readWorkerCancellation, o as readRunCancelRequest, r as claimWorkerSteerDelivery, s as readRunCancellation, u as readWorkerSteerAcknowledgement } from "./run-layout-vwd4SwX_.js";
4
4
  import { agentProfileSchema, canonicalCandidateDigest } from "@tangle-network/agent-interface";
@@ -1229,9 +1229,9 @@ function createCoordinationToolsForManager(opts, lifetime) {
1229
1229
  }
1230
1230
  return true;
1231
1231
  };
1232
- const drainSettlement = async () => {
1232
+ const drainSettlement = async (source = "next") => {
1233
1233
  if (!pendingSettlement) {
1234
- const settled = await opts.scope.next();
1234
+ const settled = await (source === "next" ? opts.scope.next() : opts.scope.nextResolved());
1235
1235
  if (!settled) return false;
1236
1236
  const worker = projectSettled(settled);
1237
1237
  const run = analystRuns.get(settled.handle.id);
@@ -1862,7 +1862,7 @@ function createCoordinationToolsForManager(opts, lifetime) {
1862
1862
  const tools = [
1863
1863
  {
1864
1864
  name: "spawn_worker",
1865
- description: "Start a worker the driver will drive. `profile` is the worker or another driver; `task` is what it should do. Reserves budget from the conserved pool and fails closed. Pass an optional `budget` (per-field) to give a hard sub-task more than the default — it merges over the per-worker default; the conserved pool is still the hard fence. When every worker slot is busy, or the pool cannot cover the budget until your running workers return what they hold, the worker is admitted with `status: \"queued\"` and starts on its own when a slot and its budget free — it is never refused for concurrency, so spawn all the work you want done and await_event for the results. A queued worker whose budget never frees settles down as budget-exhausted. Pass a `key` naming the assignment to make it run-once ACROSS restarts: a key that already completed returns the finished result (`resumed: \"completed\"` — no work re-runs, nothing is spent), a key whose prior attempt failed (`down`) spawns fresh and says so (`resumed: \"retried\"`), and a key the process died with IN FLIGHT retries under the same key when the executor provably died with the process (an inline worker — the same `resumed: \"retried\"`, naming the interruption). A key with no terminal receipt whose execution may still exist elsewhere (sandbox, CLI bridge, router) is refused (`error: \"in-doubt\"`) until its exact prior execution is recovered. A key still running is refused (`error: \"duplicate-key\"`). Returns `freeSlots`: how many MORE workers start at once (`null` = no slot bound), and `queued`: how many of your workers wait for a slot. Parallel workers finish the run sooner than one at a time." + (profileTable === void 0 ? "" : " This run has a profiles table: pass `profile` as one of the table's names to run that exact profile, or write a new profile under a name the table does not hold."),
1865
+ description: "Start a worker the driver will drive. `profile` is the worker or another driver; `task` is what it should do. Reserves budget from the conserved pool and fails closed. Pass an optional `budget` (per-field) to give a sub-task more or less than the default — it merges over the per-worker default; the conserved pool is still the hard fence. Each worker reserves its whole budget when it starts, so the pool divided by the per-worker budget is how many run at once: to run a wide team at once, give each worker less. When every worker slot is busy, or the pool cannot cover the budget until your running workers return what they hold, the worker is admitted with `status: \"queued\"` and starts on its own when a slot and its budget free — it is never refused for concurrency, so spawn all the work you want done and await_event for the results. A queued worker whose budget never frees settles down as budget-exhausted. Pass a `key` naming the assignment to make it run-once ACROSS restarts: a key that already completed returns the finished result (`resumed: \"completed\"` — no work re-runs, nothing is spent), a key whose prior attempt failed (`down`) spawns fresh and says so (`resumed: \"retried\"`), and a key the process died with IN FLIGHT retries under the same key when the executor provably died with the process (an inline worker — the same `resumed: \"retried\"`, naming the interruption). A key with no terminal receipt whose execution may still exist elsewhere (sandbox, CLI bridge, router) is refused (`error: \"in-doubt\"`) until its exact prior execution is recovered. A key still running is refused (`error: \"duplicate-key\"`). Returns `freeSlots`: how many MORE workers start at once (`null` = no slot bound), and `queued`: how many of your workers wait for a slot. Parallel workers finish the run sooner than one at a time." + (profileTable === void 0 ? "" : " This run has a profiles table: pass `profile` as one of the table's names to run that exact profile, or write a new profile under a name the table does not hold."),
1866
1866
  inputSchema: {
1867
1867
  type: "object",
1868
1868
  properties: {
@@ -2230,7 +2230,7 @@ function createCoordinationToolsForManager(opts, lifetime) {
2230
2230
  },
2231
2231
  {
2232
2232
  name: "await_event",
2233
- description: "Wait for and pull the next message a worker, sub-driver, or analyst sent up — the unified inbox. Read a settled artifact with the returned `outputRead` call; the receipt carries its reference, not its bytes. An event is one of: a settled worker output ('settled'), a question needing your answer ('question', from ask_parent / the worker's ask-user), or a trace-analyst finding ('finding', from analyze-on-settle). Pass kinds:['settled'] for just the next finished worker; omit `kinds` to also receive questions and findings. Returns { idle: true } when nothing is queued and no workers are live. If a worker is still running when the wait elapses, returns { pending: true, live: [...] } (the workers still in flight) instead of blocking indefinitely — call await_event again to keep waiting; the settlement is not lost. Every reply carries `freeSlots`: how many more workers you can start right now (`null` = uncapped). A settled worker frees its slot, so `freeSlots > 0` means capacity is sitting idle — spawn into it before waiting again. Each event carries `eventSeq`; pass the ones you have processed in `acknowledge` on a later call. An event delivered to a turn that ends in failure is named again when you are re-entered, until it is acknowledged.",
2233
+ description: "Wait for and pull the next message a worker, sub-driver, or analyst sent up — the unified inbox. Read a settled artifact with the returned `outputRead` call; the receipt carries its reference, not its bytes. An event is one of: a settled worker output ('settled'), a question needing your answer ('question', from ask_parent / the worker's ask-user), or a trace-analyst finding ('finding', from analyze-on-settle). Pass kinds:['settled'] for just the next finished worker; omit `kinds` to also receive questions and findings. Returns { idle: true } when nothing is queued and no workers are live. If a worker is still running when the wait elapses, returns { pending: true, live: [...] } (the workers still in flight) instead of blocking indefinitely — call await_event again to keep waiting; the settlement is not lost. Every reply carries `freeSlots`: how many more workers you can start right now (`null` = uncapped). A settled worker frees its slot, so `freeSlots > 0` means capacity is sitting idle — spawn into it before waiting again. Each event carries `eventSeq`; pass the ones you have processed in `acknowledge` on a later call. An event delivered to a turn that ends in failure is named again when you are re-entered, until it is acknowledged. Pass `max` above 1 to read a whole team at once: the reply is `{ events: [...] }` with the first event it waited for plus every other event already waiting, up to `max`, so a lead of hundreds of workers reads their receipts in a few turns instead of one each.",
2234
2234
  inputSchema: {
2235
2235
  type: "object",
2236
2236
  properties: {
@@ -2249,11 +2249,18 @@ function createCoordinationToolsForManager(opts, lifetime) {
2249
2249
  minimum: 0
2250
2250
  },
2251
2251
  description: "The eventSeq of each earlier event you have now processed."
2252
+ },
2253
+ max: {
2254
+ type: "integer",
2255
+ minimum: 1,
2256
+ description: "Most events to return in one reply. Omit or 1 for one event; above 1 returns `{ events }`."
2252
2257
  }
2253
2258
  }
2254
2259
  },
2255
2260
  handler: async (raw) => {
2256
2261
  const args = raw === void 0 ? {} : obj(raw);
2262
+ const max = args.max === void 0 ? 1 : args.max;
2263
+ if (typeof max !== "number" || !Number.isSafeInteger(max) || max < 1) throw new Error("coordination tools: \"max\" must be a positive integer");
2257
2264
  const k = args.kinds;
2258
2265
  const kinds = Array.isArray(k) ? k.filter(isAwaitableEventKind) : void 0;
2259
2266
  if (Array.isArray(args.acknowledge)) {
@@ -2271,26 +2278,64 @@ function createCoordinationToolsForManager(opts, lifetime) {
2271
2278
  eventSeq: record.seq
2272
2279
  };
2273
2280
  };
2274
- let ev = bus.pullRecord(kinds);
2275
- if (ev) return {
2276
- ...deliver(ev),
2277
- freeSlots: freeWorkerSlots()
2278
- };
2279
- const raced = await raceDrainWithTimeout(ensureDrain());
2280
- if (raced === void 0) return {
2281
- pending: true,
2282
- live: liveSnapshot(),
2283
- freeSlots: freeWorkerSlots()
2284
- };
2285
- ev = bus.pullRecord(kinds);
2286
- if (!ev) return {
2287
- idle: !raced.drained,
2288
- freeSlots: freeWorkerSlots()
2289
- };
2290
- return {
2291
- ...deliver(ev),
2292
- freeSlots: freeWorkerSlots()
2293
- };
2281
+ if (max > 1) {
2282
+ const fenceAt = awaitTimeoutMs > 0 ? Date.now() + awaitTimeoutMs / 2 : Infinity;
2283
+ if (!inFlightDrain) {
2284
+ inFlightDrain = (async () => {
2285
+ let drained = false;
2286
+ while (bus.pending(kinds) < max && Date.now() < fenceAt) {
2287
+ if (!await drainSettlement("nextResolved")) break;
2288
+ drained = true;
2289
+ }
2290
+ return drained;
2291
+ })().finally(() => {
2292
+ inFlightDrain = null;
2293
+ });
2294
+ await inFlightDrain;
2295
+ }
2296
+ const events = [];
2297
+ const takeQueued = () => {
2298
+ for (let next = bus.pullRecord(kinds); next; next = bus.pullRecord(kinds)) {
2299
+ events.push(deliver(next));
2300
+ if (events.length >= max) return;
2301
+ }
2302
+ };
2303
+ takeQueued();
2304
+ if (events.length === 0) {
2305
+ const first = await pullOne();
2306
+ if (!("eventSeq" in first)) return first;
2307
+ const { freeSlots: _slots, ...head } = first;
2308
+ events.push(head);
2309
+ takeQueued();
2310
+ }
2311
+ return {
2312
+ events,
2313
+ freeSlots: freeWorkerSlots()
2314
+ };
2315
+ }
2316
+ return pullOne();
2317
+ async function pullOne() {
2318
+ let ev = bus.pullRecord(kinds);
2319
+ if (ev) return {
2320
+ ...deliver(ev),
2321
+ freeSlots: freeWorkerSlots()
2322
+ };
2323
+ const raced = await raceDrainWithTimeout(ensureDrain());
2324
+ if (raced === void 0) return {
2325
+ pending: true,
2326
+ live: liveSnapshot(),
2327
+ freeSlots: freeWorkerSlots()
2328
+ };
2329
+ ev = bus.pullRecord(kinds);
2330
+ if (!ev) return {
2331
+ idle: !raced.drained,
2332
+ freeSlots: freeWorkerSlots()
2333
+ };
2334
+ return {
2335
+ ...deliver(ev),
2336
+ freeSlots: freeWorkerSlots()
2337
+ };
2338
+ }
2294
2339
  }
2295
2340
  },
2296
2341
  {
@@ -3733,6 +3778,25 @@ function poolStarved(scope, perWorker, preserveOwnerTurns = false) {
3733
3778
  const resourceStarved = Object.entries(b.resources ?? {}).some(([name, value]) => !value.known || value.remaining <= 0 || !preserveOwnerTurns && value.remaining < (perWorker.resources?.[name]?.limit ?? 0));
3734
3779
  return tokenStarved || iterationStarved || usdStarved || resourceStarved;
3735
3780
  }
3781
+ /** The number of driver turns a manager whose spend Runtime cannot measure may take when no
3782
+ * deadline or dollar cap bounds it. */
3783
+ const UNMETERED_DRIVER_TURNS = 16;
3784
+ /**
3785
+ * Safety guards for a manager's own turns when no deadline bounds them.
3786
+ *
3787
+ * `poolStarved` lets a manager keep taking turns while its workers run, because those workers hold
3788
+ * the pool its turns would otherwise be refused from. With no turn cap and no deadline, a manager
3789
+ * waiting on a worker that never settles would take a metered turn per `await_event` fence forever.
3790
+ * Money bounds that: a manager that has overdrawn its pool by as much again as the whole pool stops.
3791
+ * A brain that reports no usage cannot be bounded by money, so without a deadline or dollar cap it
3792
+ * keeps the historical 16-turn bound. A caller's explicit `maxTurns` or a deadline replaces both.
3793
+ */
3794
+ function ownTurnsUnbounded(scope, poolTokens, turns, maxTurns) {
3795
+ const b = scope.budget;
3796
+ if (maxTurns !== void 0 || b.deadlineMs > 0) return false;
3797
+ if (poolTokens > 0 && b.tokensLeft < -poolTokens) return true;
3798
+ return !b.tokensKnown && !b.usdCapped && turns > UNMETERED_DRIVER_TURNS;
3799
+ }
3736
3800
  /** The absolute wall-clock deadline (when the root set one) has passed. */
3737
3801
  function deadlinePassed(scope, now) {
3738
3802
  const b = scope.budget;
@@ -4121,7 +4185,7 @@ function driverAgent(opts) {
4121
4185
  reserved.add(t.name);
4122
4186
  }
4123
4187
  if (opts.maxTurns !== void 0 && opts.maxTurns < 0) throw new ValidationError("driverAgent: maxTurns must be >= 0 (0 lifts the turn cap; bounds become the conserved pool + deadline + abort)");
4124
- const maxTurns = opts.maxTurns ?? 16;
4188
+ const maxTurns = opts.maxTurns ?? 0;
4125
4189
  const now = opts.now ?? Date.now;
4126
4190
  const inbox = opts.inbox ?? createInbox();
4127
4191
  const transcript = opts.transcript ?? createRouterTranscript();
@@ -4222,6 +4286,8 @@ function driverAgent(opts) {
4222
4286
  });
4223
4287
  const system = typeof opts.systemPrompt === "function" ? opts.systemPrompt(task) : opts.systemPrompt;
4224
4288
  const tracker = opts.stopRule ? createProgressTracker({ now }) : void 0;
4289
+ const poolTokens = scope.budget.tokensLeft + scope.budget.reservedTokens;
4290
+ let driverTurns = 0;
4225
4291
  let progressStopReason;
4226
4292
  let driverTurn = 0;
4227
4293
  let driverCall = 0;
@@ -4355,6 +4421,7 @@ function driverAgent(opts) {
4355
4421
  maxTurns,
4356
4422
  hooks: {
4357
4423
  beforeTurn: async (_turn, messages) => {
4424
+ driverTurns += 1;
4358
4425
  await steerAcknowledger?.pass("turn");
4359
4426
  acknowledger?.pass("turn");
4360
4427
  const pending = inbox.drain();
@@ -4365,7 +4432,7 @@ function driverAgent(opts) {
4365
4432
  transcript.observe(messages);
4366
4433
  },
4367
4434
  stopBefore: () => {
4368
- if (coord.isStopped() || scope.signal.aborted || poolStarved(scope, opts.perWorker, opts.preserveOwnerTurns) || deadlinePassed(scope, now)) return true;
4435
+ if (coord.isStopped() || scope.signal.aborted || poolStarved(scope, opts.perWorker, opts.preserveOwnerTurns) || deadlinePassed(scope, now) || ownTurnsUnbounded(scope, poolTokens, driverTurns, opts.maxTurns)) return true;
4369
4436
  if (!opts.stopRule || !tracker) return false;
4370
4437
  const decision = progressStop(tracker, opts.stopRule, coord, scope, now, opts.stallAfterMs);
4371
4438
  if (!decision.stop) return false;
@@ -4496,4 +4563,4 @@ function safeJson(v) {
4496
4563
  //#endregion
4497
4564
  export { createCoordinationTools as A, applyRunCancellation as C, analystToolGroupNames as D, DEFAULT_AWAIT_EVENT_TIMEOUT_MS as E, questionEscalationTargets as F, createEventBus as I, defaultToolDetectors as L, downMessageRefusalReasons as M, normalizeAnalyzeOnSettle as N, canonicalFindingEvent as O, parseAuthoredAnalystDefinition as P, watchTrace as R, foldCoordinationRecords as S, ANALYST_DEFINITION_BOUNDS as T, renderAnytimeTable as _, allOf as a, withRunContext as b, createProgressTracker as c, progressStop as d, sampleFromSettled as f, plateauLength as g, bestSoFar as h, finalizeBestDelivered as i, createCoordinationToolsForManager as j, coordinationVerbNames as k, noProgressFor as l, areaUnderCurve as m, createSteerAcknowledger as n, allWorkersStalled as o, anytimeReport as p, driverAgent as r, anyOf as s, createCancelAcknowledger as t, plateau as u, createFileRunContext as v, watchRunCancellation as w, FileCoordinationLog as x, createInMemoryRunContext as y };
4498
4565
 
4499
- //# sourceMappingURL=coordination-driver-B2GTcMvx.js.map
4566
+ //# sourceMappingURL=coordination-driver-BBL_OgRw.js.map