audit-tools 0.34.27 → 0.34.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/audit/cli/dispatchAttempted.d.ts +0 -2
  2. package/dist/audit/cli/dispatchAttempted.d.ts.map +1 -1
  3. package/dist/audit/cli/dispatchAttempted.js +1 -1
  4. package/dist/audit/cli/dispatchAttempted.js.map +1 -1
  5. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  6. package/dist/audit/cli/mergeAndIngestCommand.js +42 -20
  7. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  8. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  9. package/dist/audit/cli/nextStepCommand.js +24 -1
  10. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  11. package/dist/audit/cli/providerConfirmationStep.d.ts +13 -0
  12. package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
  13. package/dist/audit/cli/providerConfirmationStep.js +24 -0
  14. package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
  15. package/dist/audit/quota/index.d.ts +0 -4
  16. package/dist/audit/quota/index.d.ts.map +1 -1
  17. package/dist/audit/quota/index.js +1 -3
  18. package/dist/audit/quota/index.js.map +1 -1
  19. package/dist/remediate/index.d.ts.map +1 -1
  20. package/dist/remediate/index.js +26 -7
  21. package/dist/remediate/index.js.map +1 -1
  22. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  23. package/dist/remediate/steps/dispatch/acceptNode.js +18 -9
  24. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  25. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
  26. package/dist/remediate/steps/dispatch/marshal.js +24 -9
  27. package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
  28. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  29. package/dist/remediate/steps/nextStep.js +53 -4
  30. package/dist/remediate/steps/nextStep.js.map +1 -1
  31. package/dist/remediate/steps/rollingSession.d.ts +43 -5
  32. package/dist/remediate/steps/rollingSession.d.ts.map +1 -1
  33. package/dist/remediate/steps/rollingSession.js +121 -42
  34. package/dist/remediate/steps/rollingSession.js.map +1 -1
  35. package/dist/shared/dispatch/coordinator.d.ts +19 -0
  36. package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
  37. package/dist/shared/dispatch/coordinator.js +34 -0
  38. package/dist/shared/dispatch/coordinator.js.map +1 -1
  39. package/dist/shared/dispatch/hybridDispatch.d.ts +10 -0
  40. package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
  41. package/dist/shared/dispatch/hybridDispatch.js +1 -1
  42. package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
  43. package/dist/shared/dispatch/rollingDispatch.d.ts +14 -0
  44. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  45. package/dist/shared/dispatch/rollingDispatch.js +44 -3
  46. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  47. package/dist/shared/providers/proxyCatalog.d.ts.map +1 -1
  48. package/dist/shared/providers/proxyCatalog.js +32 -7
  49. package/dist/shared/providers/proxyCatalog.js.map +1 -1
  50. package/docs/audit-pkg/development.md +1 -2
  51. package/package.json +6 -3
  52. package/dist/audit/quota/headerExtraction.d.ts +0 -9
  53. package/dist/audit/quota/headerExtraction.d.ts.map +0 -1
  54. package/dist/audit/quota/headerExtraction.js +0 -148
  55. package/dist/audit/quota/headerExtraction.js.map +0 -1
  56. package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.d.ts +0 -7
  57. package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.d.ts.map +0 -1
  58. package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.js +0 -27
  59. package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.js.map +0 -1
  60. package/dist/audit/quota/headerExtractors/genericHeaderExtractor.d.ts +0 -10
  61. package/dist/audit/quota/headerExtractors/genericHeaderExtractor.d.ts.map +0 -1
  62. package/dist/audit/quota/headerExtractors/genericHeaderExtractor.js +0 -8
  63. package/dist/audit/quota/headerExtractors/genericHeaderExtractor.js.map +0 -1
  64. package/dist/audit/quota/headerExtractors/index.d.ts +0 -6
  65. package/dist/audit/quota/headerExtractors/index.d.ts.map +0 -1
  66. package/dist/audit/quota/headerExtractors/index.js +0 -11
  67. package/dist/audit/quota/headerExtractors/index.js.map +0 -1
@@ -55,6 +55,19 @@ export interface RollingSession {
55
55
  * sessions persisted before this field default to empty.
56
56
  */
57
57
  accept_failed?: string[];
58
+ /**
59
+ * Block ids whose accept rejected on the STRAY-WORKTREE guard: the node's result
60
+ * claimed a resolved edit but its designated worktree has no commits beyond base,
61
+ * so nothing was ever committed. Terminal for this session's counts, but a class
62
+ * of its own rather than a member of `accept_failed` — a failed accept quarantines
63
+ * real commits under a durable ref and is re-drivable with `reverify-node`, whereas
64
+ * a stray has NO ref by construction, so that directive would return
65
+ * `no_quarantine`. Folding the two would turn a hard stop into a confidently-wrong
66
+ * instruction. Recorded BEFORE the guard's throw so `terminal` counts the node and
67
+ * `inFlight` cannot stay pinned ≥1 (a permanent hang, not a timed stall).
68
+ * Optional: sessions persisted before this field default to empty.
69
+ */
70
+ accept_stray?: string[];
58
71
  /**
59
72
  * Owner token minted by the shared `ClaimRegistry` for each dispatched node,
60
73
  * keyed by block id. Persisted so a later `accept-node` invocation (a separate
@@ -73,8 +86,9 @@ export interface RollingSession {
73
86
  * finalizer over every driver's accept outcomes). Absent/empty in the common
74
87
  * single-driver case, so `total` stays `frontier.length`. Invariant:
75
88
  * `dispatched ∩ contested = ∅` — a contested node is never dispatched by this
76
- * session (the completion math relies on this: `accepted`/`accept_failed` are
77
- * subsets of `dispatched`, so `in_flight` can never go negative).
89
+ * session (the completion math relies on this: `accepted`, `accept_failed` and
90
+ * `accept_stray` are pairwise disjoint subsets of `dispatched`, so `in_flight`
91
+ * can never go negative).
78
92
  */
79
93
  contested?: string[];
80
94
  }
@@ -83,11 +97,15 @@ export type RollingDirective = {
83
97
  in_flight: number;
84
98
  accepted: number;
85
99
  accept_failed: string[];
100
+ /** Stray-worktree rejections — terminal, but NOT `reverify-node`-recoverable. */
101
+ accept_stray: string[];
86
102
  total: number;
87
103
  } | {
88
104
  kind: "done";
89
105
  accepted: number;
90
106
  accept_failed: string[];
107
+ /** Stray-worktree rejections — terminal, but NOT `reverify-node`-recoverable. */
108
+ accept_stray: string[];
91
109
  total: number;
92
110
  };
93
111
  /**
@@ -158,15 +176,35 @@ export declare function prepareHostRollingDispatch(options: DispatchOptions, run
158
176
  strandedBlockIds: string[];
159
177
  };
160
178
  }>;
179
+ /**
180
+ * Thrown when a node's accept trips the stray-worktree guard. The rejection stays
181
+ * LOUD (it is an error, and the CLI exits non-zero on it), but it CARRIES the
182
+ * directive the call would otherwise have returned.
183
+ *
184
+ * Without that, a stray in a ONE-node grant delivered no directive at all: the
185
+ * session was correctly persisted terminal, but the only call that could surface
186
+ * it had thrown, so the host had nothing to read and stalled anyway — the hang
187
+ * this whole path exists to remove, merely relocated. Attaching the directive is
188
+ * the tool-side fix; the alternative was a prompt line telling the host to call
189
+ * `accept-node` a second time, which is exactly the "host must remember" shape the
190
+ * project forbids.
191
+ */
192
+ export declare class StrayWorktreeRejection extends Error {
193
+ /** The directive this call would have returned had it not rejected. */
194
+ readonly directive: RollingDirective;
195
+ constructor(message: string,
196
+ /** The directive this call would have returned had it not rejected. */
197
+ directive: RollingDirective);
198
+ }
161
199
  /**
162
200
  * The `accept-node` per-completion callback. Runs the shared accept lifecycle for
163
201
  * the finished node, then JIT-dispatches the next undispatched frontier node (if
164
202
  * any). Lock-guarded so concurrent completions don't race the session's
165
203
  * read-modify-write (which would double-dispatch or lose an acceptance).
166
204
  * Idempotent on a re-run for the same node (skips the lifecycle if the node already
167
- * reached a terminal accept — accepted OR accept_failed; a failed node's re-run
168
- * surfaces the recorded failure in the directive rather than re-running or silently
169
- * reading as accepted).
205
+ * reached ANY terminal accept — accepted, accept_failed, or accept_stray; such a
206
+ * re-run surfaces the recorded outcome in the directive rather than re-running the
207
+ * lifecycle or silently reading as accepted).
170
208
  */
171
209
  export declare function advanceHostRolling(opts: {
172
210
  root: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rollingSession.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/rollingSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollingSession.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/rollingSession.ts"],"names":[],"mappings":"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"}
@@ -242,7 +242,16 @@ export async function prepareHostRollingDispatch(options, runId, waveOptions, hy
242
242
  .map((i) => i.block_id);
243
243
  if (cooldownWall.atWall && cooldownWall.reason === "cooldown" && strandedBlockIds.length > 0) {
244
244
  return {
245
- session: { run_id: runId, frontier: [], dispatched: [], accepted: [], accept_failed: [], claims: {}, contested: [] },
245
+ session: {
246
+ run_id: runId,
247
+ frontier: [],
248
+ dispatched: [],
249
+ accepted: [],
250
+ accept_failed: [],
251
+ accept_stray: [],
252
+ claims: {},
253
+ contested: [],
254
+ },
246
255
  initial: [],
247
256
  planPath: join(dir, "dispatch-plan.json"),
248
257
  quotaPath,
@@ -290,6 +299,7 @@ export async function prepareHostRollingDispatch(options, runId, waveOptions, hy
290
299
  dispatched: initialNodes.map((n) => n.block_id),
291
300
  accepted: [],
292
301
  accept_failed: [],
302
+ accept_stray: [],
293
303
  claims,
294
304
  contested,
295
305
  };
@@ -304,15 +314,88 @@ export async function prepareHostRollingDispatch(options, runId, waveOptions, hy
304
314
  quotaPath,
305
315
  };
306
316
  }
317
+ /**
318
+ * This session's completion state, derived from the persisted terminal sets.
319
+ *
320
+ * No per-completion JIT refill: the whole granted set already has worktrees
321
+ * (worktrees == granted set — admission bounded it to the live budget at grant
322
+ * time). The pending remainder is re-granted at the NEXT next-step. So each
323
+ * `accept-node` only runs the finished node's lifecycle, then reports wait/done.
324
+ * The completion target is the granted set minus the nodes a peer driver owns —
325
+ * empty `contested` (the common single-driver case) gives the full granted set.
326
+ *
327
+ * Every accept outcome is terminal for this math: a FAILED node is no longer in
328
+ * flight (its recovery runs out-of-band via `reverify-node`), so it must not hold
329
+ * the directive at `wait` forever; a STRAY is terminal for a harder reason —
330
+ * nothing was ever committed, so there is nothing to re-drive at all. All three
331
+ * terminal sets are pairwise disjoint and are subsets of `dispatched`, which is
332
+ * what makes `in_flight` unable to go negative.
333
+ *
334
+ * Derived in ONE place because the stray path needs the same directive it would
335
+ * have returned, to carry on its rejection (see {@link StrayWorktreeRejection}).
336
+ */
337
+ function rollingDirective(session) {
338
+ const acceptFailed = session.accept_failed ?? [];
339
+ const acceptStray = session.accept_stray ?? [];
340
+ const ownTotal = session.frontier.length - (session.contested ?? []).length;
341
+ const terminal = session.accepted.length + acceptFailed.length + acceptStray.length;
342
+ const inFlight = session.dispatched.length - terminal;
343
+ // Done when every node this session is responsible for reached a terminal accept
344
+ // AND nothing is still in flight — a contested node held by a peer driver does not
345
+ // keep this session waiting forever (the peer accepts it; the run-level
346
+ // `mergeImplementResults` is the finalizer over both drivers' outcomes, and it
347
+ // reconciles the grant's reservation-ledger leases so budget frees for the next
348
+ // grant).
349
+ if (terminal >= ownTotal && inFlight <= 0) {
350
+ return {
351
+ kind: "done",
352
+ accepted: session.accepted.length,
353
+ accept_failed: [...acceptFailed],
354
+ accept_stray: [...acceptStray],
355
+ total: ownTotal,
356
+ };
357
+ }
358
+ return {
359
+ kind: "wait",
360
+ in_flight: inFlight,
361
+ accepted: session.accepted.length,
362
+ accept_failed: [...acceptFailed],
363
+ accept_stray: [...acceptStray],
364
+ total: ownTotal,
365
+ };
366
+ }
367
+ /**
368
+ * Thrown when a node's accept trips the stray-worktree guard. The rejection stays
369
+ * LOUD (it is an error, and the CLI exits non-zero on it), but it CARRIES the
370
+ * directive the call would otherwise have returned.
371
+ *
372
+ * Without that, a stray in a ONE-node grant delivered no directive at all: the
373
+ * session was correctly persisted terminal, but the only call that could surface
374
+ * it had thrown, so the host had nothing to read and stalled anyway — the hang
375
+ * this whole path exists to remove, merely relocated. Attaching the directive is
376
+ * the tool-side fix; the alternative was a prompt line telling the host to call
377
+ * `accept-node` a second time, which is exactly the "host must remember" shape the
378
+ * project forbids.
379
+ */
380
+ export class StrayWorktreeRejection extends Error {
381
+ directive;
382
+ constructor(message,
383
+ /** The directive this call would have returned had it not rejected. */
384
+ directive) {
385
+ super(message);
386
+ this.directive = directive;
387
+ this.name = "StrayWorktreeRejection";
388
+ }
389
+ }
307
390
  /**
308
391
  * The `accept-node` per-completion callback. Runs the shared accept lifecycle for
309
392
  * the finished node, then JIT-dispatches the next undispatched frontier node (if
310
393
  * any). Lock-guarded so concurrent completions don't race the session's
311
394
  * read-modify-write (which would double-dispatch or lose an acceptance).
312
395
  * Idempotent on a re-run for the same node (skips the lifecycle if the node already
313
- * reached a terminal accept — accepted OR accept_failed; a failed node's re-run
314
- * surfaces the recorded failure in the directive rather than re-running or silently
315
- * reading as accepted).
396
+ * reached ANY terminal accept — accepted, accept_failed, or accept_stray; such a
397
+ * re-run surfaces the recorded outcome in the directive rather than re-running the
398
+ * lifecycle or silently reading as accepted).
316
399
  */
317
400
  export async function advanceHostRolling(opts) {
318
401
  return withFileLock(sessionLockPath(opts.artifactsDir, opts.runId), async () => {
@@ -327,11 +410,13 @@ export async function advanceHostRolling(opts) {
327
410
  // Sessions persisted before claim-wiring lack `claims` — default to empty so
328
411
  // the read-modify-write is forward-only (never throws on an older session).
329
412
  session.claims ??= {};
330
- // Local const so the array stays narrowed across the awaits below.
413
+ // Local consts so the arrays stay narrowed across the awaits below.
331
414
  const acceptFailed = (session.accept_failed ??= []);
415
+ const acceptStray = (session.accept_stray ??= []);
332
416
  const registry = nodeClaimRegistry(opts.artifactsDir, opts.runId);
333
417
  if (!session.accepted.includes(opts.blockId) &&
334
- !acceptFailed.includes(opts.blockId)) {
418
+ !acceptFailed.includes(opts.blockId) &&
419
+ !acceptStray.includes(opts.blockId)) {
335
420
  // Contested-node fail-closed guard (OD3 layer 2, D-66/67 slice-1 §5b):
336
421
  // `prepareHostRollingDispatch` never writes `session.claims[block_id]` for a
337
422
  // CONTESTED node (a peer driver already holds its live claim) — this session
@@ -387,9 +472,36 @@ export async function advanceHostRolling(opts) {
387
472
  // disk even though this accept-node call itself rejects.
388
473
  await recordNodeAcceptOutcome(opts.artifactsDir, opts.runId, opts.blockId, accept);
389
474
  if (accept.strayWorktreeSuspected) {
390
- throw new Error(accept.diagnostic ??
475
+ // A stray IS terminal — the node will never be accepted by this session — so
476
+ // it must be counted and unclaimed BEFORE the guard throws. Leaving the throw
477
+ // above this block (the pre-fix shape) skipped `writeSessionFile` entirely, so
478
+ // `terminal` never counted the node, `inFlight` stayed pinned ≥1, and the run
479
+ // hung permanently rather than stalling for a lease window.
480
+ //
481
+ // The ORDER below is load-bearing and easy to get backwards:
482
+ // 1. sidecar (already written above, and it must stay FIRST) — `marshal.ts`
483
+ // derives `acceptHardFailed` from it, so a null sidecar leaves that gate
484
+ // inert and a never-landed node's self-reported `resolved` is trusted
485
+ // through merge. `acceptReconcile` cannot repair that: it only fixes
486
+ // blocks that DO have landed git evidence, which a stray lacks by
487
+ // construction.
488
+ // 2. mark terminal → 3. drop the token from the persisted map →
489
+ // 4. persist → 5. release the claim → 6. throw last.
490
+ // Persist-then-release is the right way round: a persist failure leaves claim
491
+ // and session both intact (the pre-fix behaviour, still valid inside the 30s
492
+ // `STALE_LOCK_MS` window), whereas a release failure leaves the session
493
+ // terminal with the token already dropped — nothing reads a stale token and
494
+ // the orphaned registry entry ages out on its own.
495
+ acceptStray.push(opts.blockId);
496
+ session.contested ??= [];
497
+ if (ownerToken)
498
+ delete session.claims[opts.blockId];
499
+ await writeSessionFile(opts.artifactsDir, opts.runId, session);
500
+ if (ownerToken)
501
+ await registry.release(opts.blockId, ownerToken);
502
+ throw new StrayWorktreeRejection(accept.diagnostic ??
391
503
  `node ${opts.blockId}: stray worktree suspected — its result claims a ` +
392
- `resolved edit but the designated worktree has no commits beyond base.`);
504
+ `resolved edit but the designated worktree has no commits beyond base.`, rollingDirective(session));
393
505
  }
394
506
  if (accept.outcome === "success") {
395
507
  session.accepted.push(opts.blockId);
@@ -412,41 +524,8 @@ export async function advanceHostRolling(opts) {
412
524
  }
413
525
  }
414
526
  session.contested ??= [];
415
- // No per-completion JIT refill: the whole granted set already has worktrees
416
- // (worktrees == granted set — admission bounded it to the live budget at grant
417
- // time). The pending remainder is re-granted at the NEXT next-step. So each
418
- // `accept-node` only runs the finished node's lifecycle, then reports wait/done.
419
- // This session's completion target is the granted set minus the nodes a peer
420
- // driver owns. Empty `contested` (the common single-driver case) → the full
421
- // granted set, so the counts are unchanged.
422
- const ownTotal = session.frontier.length - session.contested.length;
423
- // Both accept outcomes are terminal for THIS session's completion math — a
424
- // failed node is no longer in flight (its recovery runs out-of-band via
425
- // `reverify-node`), so it must not hold the directive at `wait` forever.
426
- const terminal = session.accepted.length + acceptFailed.length;
427
- const inFlight = session.dispatched.length - terminal;
428
527
  await writeSessionFile(opts.artifactsDir, opts.runId, session);
429
- // Done when every node this session is responsible for has been accepted AND
430
- // nothing is still in flight — a contested node held by a peer driver does not
431
- // keep this session waiting forever (the peer accepts it; the run-level
432
- // `mergeImplementResults` is the finalizer over both drivers' outcomes, and it
433
- // reconciles the grant's reservation-ledger leases so budget frees for the next
434
- // grant).
435
- if (terminal >= ownTotal && inFlight <= 0) {
436
- return {
437
- kind: "done",
438
- accepted: session.accepted.length,
439
- accept_failed: [...acceptFailed],
440
- total: ownTotal,
441
- };
442
- }
443
- return {
444
- kind: "wait",
445
- in_flight: inFlight,
446
- accepted: session.accepted.length,
447
- accept_failed: [...acceptFailed],
448
- total: ownTotal,
449
- };
528
+ return rollingDirective(session);
450
529
  });
451
530
  }
452
531
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rollingSession.js","sourceRoot":"","sources":["../../../src/remediate/steps/rollingSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollingSession.js","sourceRoot":"","sources":["../../../src/remediate/steps/rollingSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,sBAAsB,EAAyB,MAAM,oBAAoB,CAAC;AACjL,iFAAiF;AACjF,kFAAkF;AAClF,oEAAoE;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAyB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,GAEtB,MAAM,eAAe,CAAC;AAwHvB,SAAS,YAAY,CAAC,YAAoB,EAAE,KAAa;IACvD,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC;AACD,SAAS,WAAW,CAAC,YAAoB,EAAE,KAAa;IACtD,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACzE,CAAC;AACD,SAAS,eAAe,CAAC,YAAoB,EAAE,KAAa;IAC1D,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACzE,CAAC;AACD;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAC7B,YAAoB,EACpB,KAAa,EACb,OAAuB;IAEvB,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;IACpD,MAAM,aAAa,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,YAAoB,EAAE,KAAa;IACvE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACrE,CAAC;AACD,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,YAAoB,EAAE,KAAa;IACnE,OAAO,IAAI,aAAa,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB,EAAE,KAAa;IACtE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;AAC9E,CAAC;AACD;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAG,eAAe,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAU,EAAE,IAAY;IAChE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;QAC/D,GAAG,EAAE,EAAE;QACP,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;QAC7D,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,2EAA2E;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE;QAChF,GAAG,EAAE,EAAE;QACP,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,OAAe,EACf,KAAa,EACb,aAAuB;IAEvB,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,IAAI,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2DAA2D,OAAO,cAAc;YAC9E,4FAA4F,CAC/F,CAAC;QACF,OAAO;IACT,CAAC;IACD,gFAAgF;IAChF,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,2CAA2C;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,yBAAyB,CACtC,YAAoB,EACpB,KAAa,EACb,OAAe;IAEf,IAAI,CAAC;QACH,OAAO,qBAAqB,CAAC,MAAM,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAGD;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAC/B,YAAoB,EACpB,KAAa;IAEb,IAAI,cAAkE,CAAC;IACvE,IAAI,CAAC;QACH,cAAc,GAAG,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,MAAM,CAAC;QACP,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC1B,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAwB,UAAU,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,+EAA+E;IAC/E,iFAAiF;IACjF,iFAAiF;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,oBAAoB,CACpE;QACC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC;IACZ,mFAAmF;IACnF,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC5E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAwB,EACxB,KAAa,EACb,WAAwE,EACxE,MAcC;IAgBD,MAAM,IAAI,GACR,MAAM,EAAE,IAAI;QACZ,CAAC,MAAM,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;YACzD,GAAG,WAAW;YACd,qEAAqE;YACrE,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAC,CAAC;IACN,gFAAgF;IAChF,kFAAkF;IAClF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAA2B,SAAS,CAAC,CAAC;IAC9E,kFAAkF;IAClF,8EAA8E;IAC9E,oFAAoF;IACpF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAEvE,8EAA8E;IAC9E,oFAAoF;IACpF,mFAAmF;IACnF,sFAAsF;IACtF,sFAAsF;IACtF,+EAA+E;IAC/E,qCAAqC;IACrC,EAAE;IACF,0EAA0E;IAC1E,qFAAqF;IACrF,qFAAqF;IACrF,kFAAkF;IAClF,kFAAkF;IAClF,kFAAkF;IAClF,+CAA+C;IAC/C,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC1C,YAAY,EAAE,UAAU,CAAC,IAAI;QAC7B,aAAa,EAAE,KAAK,EAAE,cAAc,IAAI,IAAI;QAC5C,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;KAChB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK;SAChC,MAAM,CAAC,CAAC,CAAC,EAAgD,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1B,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7F,OAAO;YACL,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,EAAE;gBACjB,YAAY,EAAE,EAAE;gBAChB,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,EAAE;aACd;YACD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC;YACzC,SAAS;YACT,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAA0B,IAAI,CAAC,KAAK;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAgD,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7D,mFAAmF;SAClF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAElG,kFAAkF;IAClF,qFAAqF;IACrF,iFAAiF;IACjF,qFAAqF;IACrF,oFAAoF;IACpF,mFAAmF;IACnF,qFAAqF;IACrF,kFAAkF;IAClF,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qDAAqD;gBACpF,SAAS;YACX,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;QAC3B,CAAC;QACD,8EAA8E;QAC9E,sEAAsE;QACtE,kBAAkB,CAChB,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC3C,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,KAAK;QACb,QAAQ;QACR,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/C,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,MAAM;QACN,SAAS;KACV,CAAC;IACF,MAAM,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE7D,OAAO;QACL,OAAO;QACP,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,CAAC;YACJ,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC7D,CAAC,CAAC;QACH,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC;QACzC,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,gBAAgB,CAAC,OAAuB;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;IACtD,iFAAiF;IACjF,mFAAmF;IACnF,wEAAwE;IACxE,+EAA+E;IAC/E,gFAAgF;IAChF,UAAU;IACV,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YACjC,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC;YAChC,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC;YAC9B,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QACjC,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC;QAChC,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC;QAC9B,KAAK,EAAE,QAAQ;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAIpC;IAHX,YACE,OAAe;IACf,uEAAuE;IAC9D,SAA2B;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,cAAS,GAAT,SAAS,CAAkB;QAGpC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAKxC;IACC,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,OAAO,2CAA2C,IAAI,CAAC,KAAK,EAAE,CAC7E,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,4EAA4E;QAC5E,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;QACtB,oEAAoE;QACpE,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAElE,IACE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EACnC,CAAC;YACD,uEAAuE;YACvE,6EAA6E;YAC7E,6EAA6E;YAC7E,4EAA4E;YAC5E,+EAA+E;YAC/E,8EAA8E;YAC9E,4EAA4E;YAC5E,0EAA0E;YAC1E,0EAA0E;YAC1E,kEAAkE;YAClE,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,OAAO,wBAAwB,IAAI,CAAC,KAAK,qBAAqB;oBAC1E,2EAA2E;oBAC3E,0DAA0D,CAC7D,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,kFAAkF;YAClF,+EAA+E;YAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;gBAC/D,MAAM,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;gBACxD,aAAa;gBACb,+EAA+E;gBAC/E,gFAAgF;gBAChF,gEAAgE;gBAChE,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpF,KAAK;gBACL,4EAA4E;gBAC5E,4EAA4E;gBAC5E,0EAA0E;gBAC1E,+EAA+E;gBAC/E,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,IAAI,EAAE;gBAC5F,8EAA8E;gBAC9E,8CAA8C;gBAC9C,cAAc,EAAE,UAAU;gBAC1B,yEAAyE;gBACzE,sEAAsE;gBACtE,0EAA0E;gBAC1E,gEAAgE;gBAChE,GAAG,CAAC,UAAU;oBACZ,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;oBAC/D,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,sFAAsF;YACtF,mFAAmF;YACnF,kFAAkF;YAClF,yDAAyD;YACzD,MAAM,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnF,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBAClC,6EAA6E;gBAC7E,8EAA8E;gBAC9E,+EAA+E;gBAC/E,8EAA8E;gBAC9E,4DAA4D;gBAC5D,EAAE;gBACF,6DAA6D;gBAC7D,8EAA8E;gBAC9E,8EAA8E;gBAC9E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,uEAAuE;gBACvE,qBAAqB;gBACrB,kEAAkE;gBAClE,uDAAuD;gBACvD,8EAA8E;gBAC9E,6EAA6E;gBAC7E,wEAAwE;gBACxE,4EAA4E;gBAC5E,mDAAmD;gBACnD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;gBACzB,IAAI,UAAU;oBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC/D,IAAI,UAAU;oBAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACjE,MAAM,IAAI,sBAAsB,CAC9B,MAAM,CAAC,UAAU;oBACf,QAAQ,IAAI,CAAC,OAAO,mDAAmD;wBACrE,uEAAuE,EAC3E,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,yEAAyE;gBACzE,sEAAsE;gBACtE,4EAA4E;gBAC5E,yEAAyE;gBACzE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YACD,uEAAuE;YACvE,6EAA6E;YAC7E,8EAA8E;YAC9E,+EAA+E;YAC/E,kEAAkE;YAClE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACjD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;QAEzB,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAgDD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAwB,EACxB,KAAa,EACb,OAAe;IAEf,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE1C,gFAAgF;IAChF,qCAAqC;IACrC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,GAAG,WAAW,CAAC,EAAE;QAC1F,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7D,CAAC;IAED,gFAAgF;IAChF,kFAAkF;IAClF,mFAAmF;IACnF,kBAAkB,CAChB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,yBAAyB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAC9D,CAAC;IAEF,mFAAmF;IACnF,qFAAqF;IACrF,iFAAiF;IACjF,0EAA0E;IAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE;QAC5E,GAAG,EAAE,EAAE;QACP,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5F,sFAAsF;QACtF,eAAe,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,OAAO;YACjB,GAAG;YACH,UAAU,EACR,8BAA8B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,qCAAqC;gBACrF,yEAAyE,MAAM,EAAE;SACpF,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,gFAAgF;IAChF,uEAAuE;IACvE,MAAM,KAAK,GAAG,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACtC,IAAI;QACJ,KAAK;QACL,OAAO;QACP,YAAY,EAAE,EAAE;QAChB,MAAM;QACN,aAAa,EAAE,SAAS;QACxB,kFAAkF;QAClF,kFAAkF;QAClF,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/E,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,WAAW,IAAI,EAAE;QACvF,kFAAkF;QAClF,+EAA+E;QAC/E,+EAA+E;KAChF,CAAC,CAAC;IACH,MAAM,uBAAuB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtF,iFAAiF;QACjF,8EAA8E;QAC9E,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,iFAAiF;QACjF,kFAAkF;QAClF,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,OAAO;YACjB,GAAG;YACH,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,uFAAuF;IACvF,uEAAuE;IACvE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IACxF,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnD,UAAU;QACV,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,SAAS;KACxD,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,OAAO;QACjB,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,MAAM,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC"}
@@ -117,6 +117,12 @@ export declare class HybridSpillCoordinator {
117
117
  private readonly claimRegistry;
118
118
  private readonly readSettled;
119
119
  private readonly onSettle?;
120
+ /**
121
+ * Node ids from the MOST RECENT {@link planAssignments} that fit no active pool.
122
+ * Read back via {@link unplaceableNodeIds}; a post-plan consult, exactly like
123
+ * {@link terminalStatus}.
124
+ */
125
+ private lastUnplaceableNodeIds;
120
126
  constructor(opts: HybridSpillCoordinatorOptions);
121
127
  /** The pools NOT in the current shared settled set, in preference order. */
122
128
  private activePools;
@@ -158,6 +164,19 @@ export declare class HybridSpillCoordinator {
158
164
  * release only on a terminal accept outcome.
159
165
  */
160
166
  release(assignment: NodeAssignment): Promise<void>;
167
+ /**
168
+ * Node ids the last {@link planAssignments} could place on NO active pool —
169
+ * their size exceeds every pool's declared context cap. Sorted, and empty until
170
+ * a plan has run.
171
+ *
172
+ * A caller reading an empty partition needs this to tell a structural refusal
173
+ * ("nothing fits — pause and name the real cause") from the two benign empties
174
+ * it otherwise looks identical to: capacity full this cycle, or a peer driver
175
+ * holding the claims. Both of those re-offer next cycle; an unplaceable node
176
+ * never will, so folding it into them merges a node that was never allowed to
177
+ * run and terminal-blocks it.
178
+ */
179
+ unplaceableNodeIds(): string[];
161
180
  /**
162
181
  * The single pause-authorization check. Returns `all_pools_exhausted` — carrying
163
182
  * a `PartialCompletionTerminal` over `strandedIds` — ONLY when every confirmed
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAMpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,8EAA8E;IAC9E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAEzE,8DAA8D;AAC9D,MAAM,WAAW,6BAA6B;IAC5C,kEAAkE;IAClE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,WAAW,EAAE,MAAM,mBAAmB,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAiBD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA2C;gBAEzD,IAAI,EAAE,6BAA6B;IAQ/C,4EAA4E;IAC5E,OAAO,CAAC,WAAW;IAKnB;;;;;;;;;;;;;;;;;;OAkBG;IACG,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyFvE;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;;;OAMG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,yBAAyB;CASjE"}
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAMpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,8EAA8E;IAC9E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAEzE,8DAA8D;AAC9D,MAAM,WAAW,6BAA6B;IAC5C,kEAAkE;IAClE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,WAAW,EAAE,MAAM,mBAAmB,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAiBD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA2C;IACrE;;;;OAIG;IACH,OAAO,CAAC,sBAAsB,CAAgB;gBAElC,IAAI,EAAE,6BAA6B;IAQ/C,4EAA4E;IAC5E,OAAO,CAAC,WAAW;IAKnB;;;;;;;;;;;;;;;;;;OAkBG;IACG,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsGvE;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;;;;;;;;OAWG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;;;;OAMG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,yBAAyB;CASjE"}
@@ -64,6 +64,12 @@ export class HybridSpillCoordinator {
64
64
  claimRegistry;
65
65
  readSettled;
66
66
  onSettle;
67
+ /**
68
+ * Node ids from the MOST RECENT {@link planAssignments} that fit no active pool.
69
+ * Read back via {@link unplaceableNodeIds}; a post-plan consult, exactly like
70
+ * {@link terminalStatus}.
71
+ */
72
+ lastUnplaceableNodeIds = [];
67
73
  constructor(opts) {
68
74
  this.pools = opts.pools;
69
75
  this.sessionConfig = opts.sessionConfig;
@@ -97,6 +103,11 @@ export class HybridSpillCoordinator {
97
103
  */
98
104
  async planAssignments(nodes) {
99
105
  const active = this.activePools();
106
+ // Reset per plan: unplaceability is a fact about THIS pass's pool set, and a
107
+ // stale carry-over would pause a run whose operator has since freed a pool.
108
+ // With no active pools nothing is "unplaceable" — that is the all-exhausted
109
+ // case `terminalStatus` owns, and reporting a fit mismatch would misdirect.
110
+ this.lastUnplaceableNodeIds = [];
100
111
  if (active.length === 0 || nodes.length === 0)
101
112
  return [];
102
113
  // Largest-node-first so the capacity split and the claim walk agree with
@@ -161,6 +172,14 @@ export class HybridSpillCoordinator {
161
172
  // structured line per plan so the caller/operator can see exactly which
162
173
  // nodes are unplaceable and why.
163
174
  const neverFits = unassigned.filter((n) => active.every((p) => !nodeContextFits(n, p)));
175
+ // Surface the same fact to the CALLER, not just to stderr (spec F1 shipped the
176
+ // observability half only). A caller that sees an empty partition cannot
177
+ // otherwise tell "every node is unplaceable" from "capacity is full this cycle"
178
+ // or "a peer driver holds them" — and those want opposite handling: the first
179
+ // is a structural refusal to pause on, the other two are re-offered next cycle.
180
+ // Recorded here rather than recomputed by the caller so the fit predicate
181
+ // (`nodeContextFits`) stays single-sourced and predicate + report cannot drift.
182
+ this.lastUnplaceableNodeIds = neverFits.map((n) => n.id).sort();
164
183
  if (neverFits.length > 0) {
165
184
  try {
166
185
  process.stderr.write(JSON.stringify({
@@ -202,6 +221,21 @@ export class HybridSpillCoordinator {
202
221
  async release(assignment) {
203
222
  await this.claimRegistry.release(assignment.nodeId, assignment.ownerToken);
204
223
  }
224
+ /**
225
+ * Node ids the last {@link planAssignments} could place on NO active pool —
226
+ * their size exceeds every pool's declared context cap. Sorted, and empty until
227
+ * a plan has run.
228
+ *
229
+ * A caller reading an empty partition needs this to tell a structural refusal
230
+ * ("nothing fits — pause and name the real cause") from the two benign empties
231
+ * it otherwise looks identical to: capacity full this cycle, or a peer driver
232
+ * holding the claims. Both of those re-offer next cycle; an unplaceable node
233
+ * never will, so folding it into them merges a node that was never allowed to
234
+ * run and terminal-blocks it.
235
+ */
236
+ unplaceableNodeIds() {
237
+ return [...this.lastUnplaceableNodeIds];
238
+ }
205
239
  /**
206
240
  * The single pause-authorization check. Returns `all_pools_exhausted` — carrying
207
241
  * a `PartialCompletionTerminal` over `strandedIds` — ONLY when every confirmed
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/shared/dispatch/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/shared/dispatch/coordinator.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,16 @@ export interface HybridDispatchPartition {
31
31
  inProcess: NodeAssignment[];
32
32
  /** Nodes handed to the conversation host's driver (its own pool). */
33
33
  host: NodeAssignment[];
34
+ /**
35
+ * Node ids that fit NO active pool this pass (size vs. every declared context
36
+ * cap). These appear in NEITHER partition, and unlike the other reasons a node
37
+ * goes unassigned — capacity full, or a peer driver holding the claim — they
38
+ * will not become placeable by being re-offered next cycle. A caller that folds
39
+ * an all-unplaceable frontier into "nothing to do" merges nodes that were never
40
+ * allowed to run; treat a non-empty set with both partitions empty as a
41
+ * structural refusal to PAUSE on, naming the fit mismatch as the cause.
42
+ */
43
+ unplaceable: string[];
34
44
  /**
35
45
  * The live coordinator, so the caller can `release` claims on terminal accept,
36
46
  * `settlePool` an exhausted pool, and consult `terminalStatus` for the sole
@@ -1 +1 @@
1
- {"version":3,"file":"hybridDispatch.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/hybridDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,qEAAqE;IACrE,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB;;;;OAIG;IACH,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,gFAAgF;IAChF,WAAW,EAAE,MAAM,mBAAmB,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAerG"}
1
+ {"version":3,"file":"hybridDispatch.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/hybridDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,qEAAqE;IACrE,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,gFAAgF;IAChF,WAAW,EAAE,MAAM,mBAAmB,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAerG"}
@@ -55,6 +55,6 @@ export async function planHybridDispatch(input) {
55
55
  for (const a of assignments) {
56
56
  (input.isInProcess(a) ? inProcess : host).push(a);
57
57
  }
58
- return { inProcess, host, coordinator };
58
+ return { inProcess, host, unplaceable: coordinator.unplaceableNodeIds(), coordinator };
59
59
  }
60
60
  //# sourceMappingURL=hybridDispatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hybridDispatch.js","sourceRoot":"","sources":["../../../src/shared/dispatch/hybridDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,sBAAsB,EAA0C,MAAM,kBAAkB,CAAC;AAqClG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAA0B;IACjE,MAAM,WAAW,GAAG,IAAI,sBAAsB,CAAC;QAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"hybridDispatch.js","sourceRoot":"","sources":["../../../src/shared/dispatch/hybridDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,sBAAsB,EAA0C,MAAM,kBAAkB,CAAC;AA+ClG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAA0B;IACjE,MAAM,WAAW,GAAG,IAAI,sBAAsB,CAAC;QAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,CAAC;AACzF,CAAC"}
@@ -238,6 +238,20 @@ export interface RollingDispatchState<TPacket> {
238
238
  * 2026-07-23).
239
239
  */
240
240
  wallStrandEarliestResetAtMs: number | null;
241
+ /**
242
+ * Stranded packet ids whose blockers were ALL structural fit/capability
243
+ * failures (`context_cap` / `oversized_for_pool` / `below_capability_floor`) —
244
+ * the packet fits NO confirmed pool, as opposed to the pools having died.
245
+ *
246
+ * Classification is captured AT STRAND TIME, never re-derived in
247
+ * `getTerminal`: the pool set and the packet's 413 skip-set both move on, so a
248
+ * later re-read would misattribute the cause. A wholly-structural strand is a
249
+ * fit mismatch the operator clears by freeing a larger pool or splitting the
250
+ * work — so `getTerminal` renders it as the RESUMABLE `no_capable_pool` pause
251
+ * rather than the non-retryable `empty_pool` terminal, whose "the provider
252
+ * pool was exhausted" message sends the operator to quota when nothing was.
253
+ */
254
+ structuralStrandIds: Set<string>;
241
255
  /**
242
256
  * Pool ids demoted by reactive cost verification: a pool DECLARED free
243
257
  * (`declaredCostPerMtok === 0`) that reported a positive cost on a completion, so