audit-tools 0.32.8 → 0.32.9

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 (99) hide show
  1. package/dist/audit/cli/dispatch/quotaPool.d.ts +20 -2
  2. package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
  3. package/dist/audit/cli/dispatch/quotaPool.js +38 -7
  4. package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
  5. package/dist/audit/cli/dispatch/tierRouting.d.ts +4 -1
  6. package/dist/audit/cli/dispatch/tierRouting.d.ts.map +1 -1
  7. package/dist/audit/cli/dispatch/tierRouting.js +7 -4
  8. package/dist/audit/cli/dispatch/tierRouting.js.map +1 -1
  9. package/dist/audit/cli/dispatch/types.d.ts +9 -4
  10. package/dist/audit/cli/dispatch/types.d.ts.map +1 -1
  11. package/dist/audit/cli/dispatch.d.ts +7 -0
  12. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  13. package/dist/audit/cli/dispatch.js +24 -12
  14. package/dist/audit/cli/dispatch.js.map +1 -1
  15. package/dist/audit/cli/mergeAndIngestCommand.d.ts +0 -9
  16. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  17. package/dist/audit/cli/mergeAndIngestCommand.js +29 -1
  18. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  19. package/dist/audit/cli/prompts.d.ts.map +1 -1
  20. package/dist/audit/cli/prompts.js +4 -2
  21. package/dist/audit/cli/prompts.js.map +1 -1
  22. package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
  23. package/dist/audit/cli/rollingAuditDispatch.js +3 -0
  24. package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
  25. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  26. package/dist/audit/cli/semanticReviewStep.js +10 -6
  27. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  28. package/dist/audit/cli/steps.d.ts +20 -10
  29. package/dist/audit/cli/steps.d.ts.map +1 -1
  30. package/dist/audit/cli/steps.js +4 -2
  31. package/dist/audit/cli/steps.js.map +1 -1
  32. package/dist/audit/orchestrator/rollingDispatch.d.ts +7 -6
  33. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  34. package/dist/audit/orchestrator/rollingDispatch.js +37 -19
  35. package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
  36. package/dist/audit/quota/index.d.ts +137 -8
  37. package/dist/audit/quota/index.d.ts.map +1 -1
  38. package/dist/audit/quota/index.js +9 -8
  39. package/dist/audit/quota/index.js.map +1 -1
  40. package/dist/remediate/dispatch/ownershipRegistry.d.ts +2 -22
  41. package/dist/remediate/dispatch/ownershipRegistry.d.ts.map +1 -1
  42. package/dist/remediate/dispatch/ownershipRegistry.js +7 -45
  43. package/dist/remediate/dispatch/ownershipRegistry.js.map +1 -1
  44. package/dist/remediate/steps/dispatch.d.ts +22 -1
  45. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  46. package/dist/remediate/steps/dispatch.js +89 -5
  47. package/dist/remediate/steps/dispatch.js.map +1 -1
  48. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  49. package/dist/remediate/steps/nextStep.js +89 -116
  50. package/dist/remediate/steps/nextStep.js.map +1 -1
  51. package/dist/remediate/steps/rollingSession.d.ts +15 -17
  52. package/dist/remediate/steps/rollingSession.d.ts.map +1 -1
  53. package/dist/remediate/steps/rollingSession.js +33 -57
  54. package/dist/remediate/steps/rollingSession.js.map +1 -1
  55. package/dist/remediate/steps/types.d.ts +12 -4
  56. package/dist/remediate/steps/types.d.ts.map +1 -1
  57. package/dist/remediate/steps/types.js +1 -1
  58. package/dist/shared/dispatch/admissionLoop.d.ts +245 -0
  59. package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -0
  60. package/dist/shared/dispatch/admissionLoop.js +204 -0
  61. package/dist/shared/dispatch/admissionLoop.js.map +1 -0
  62. package/dist/{remediate → shared}/dispatch/ownershipScheduler.d.ts +23 -2
  63. package/dist/shared/dispatch/ownershipScheduler.d.ts.map +1 -0
  64. package/dist/{remediate → shared}/dispatch/ownershipScheduler.js +34 -6
  65. package/dist/shared/dispatch/ownershipScheduler.js.map +1 -0
  66. package/dist/shared/dispatch/pathIdentity.d.ts +26 -0
  67. package/dist/shared/dispatch/pathIdentity.d.ts.map +1 -0
  68. package/dist/shared/dispatch/pathIdentity.js +49 -0
  69. package/dist/shared/dispatch/pathIdentity.js.map +1 -0
  70. package/dist/shared/dispatch/rollingDispatch.d.ts +37 -0
  71. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  72. package/dist/shared/dispatch/rollingDispatch.js +117 -18
  73. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  74. package/dist/shared/dispatch/unifiedRolling.d.ts +131 -0
  75. package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -0
  76. package/dist/shared/dispatch/unifiedRolling.js +161 -0
  77. package/dist/shared/dispatch/unifiedRolling.js.map +1 -0
  78. package/dist/shared/index.d.ts +12 -1
  79. package/dist/shared/index.d.ts.map +1 -1
  80. package/dist/shared/index.js +18 -1
  81. package/dist/shared/index.js.map +1 -1
  82. package/dist/shared/quota/packetCost.d.ts +29 -0
  83. package/dist/shared/quota/packetCost.d.ts.map +1 -0
  84. package/dist/shared/quota/packetCost.js +51 -0
  85. package/dist/shared/quota/packetCost.js.map +1 -0
  86. package/dist/shared/quota/reservationLedger.d.ts +100 -0
  87. package/dist/shared/quota/reservationLedger.d.ts.map +1 -0
  88. package/dist/shared/quota/reservationLedger.js +224 -0
  89. package/dist/shared/quota/reservationLedger.js.map +1 -0
  90. package/dist/shared/quota/state.d.ts +20 -0
  91. package/dist/shared/quota/state.d.ts.map +1 -1
  92. package/dist/shared/quota/state.js +50 -0
  93. package/dist/shared/quota/state.js.map +1 -1
  94. package/dist/shared/quota/types.d.ts +11 -0
  95. package/dist/shared/quota/types.d.ts.map +1 -1
  96. package/dist/shared/quota/types.js.map +1 -1
  97. package/package.json +1 -1
  98. package/dist/remediate/dispatch/ownershipScheduler.d.ts.map +0 -1
  99. package/dist/remediate/dispatch/ownershipScheduler.js.map +0 -1
@@ -200,7 +200,7 @@ export function selectProvider(packet, confirmedPools, inFlightTracker, quotaSta
200
200
  * separate concurrency cap unless `options.maxConcurrentPerPool` is set.
201
201
  */
202
202
  export function createRollingDispatcher(config, options = {}) {
203
- const { confirmedPools, sessionConfig, dispatchPacket, onResult, halfLifeHours = DEFAULT_EMPIRICAL_HALF_LIFE_HOURS, isPacketEscalated, recordRateLimit, } = config;
203
+ const { confirmedPools, sessionConfig, dispatchPacket, onResult, halfLifeHours = DEFAULT_EMPIRICAL_HALF_LIFE_HOURS, isPacketEscalated, recordRateLimit, reservationLedger, resolvePoolBudget, resolveOutputReservation: resolveOutputReservationFn, } = config;
204
204
  const state = {
205
205
  pendingQueue: [],
206
206
  inFlight: new Map(),
@@ -291,7 +291,7 @@ export function createRollingDispatcher(config, options = {}) {
291
291
  // Return pending queue items not yet in flight (by id).
292
292
  return state.pendingQueue.filter((p) => !state.inFlight.has(p.id) && !state.completedIds.has(p.id));
293
293
  }
294
- function dispatchOnePacket(packet, slot) {
294
+ function dispatchOnePacket(packet, slot, lease) {
295
295
  // Remove from pending queue.
296
296
  state.pendingQueue = state.pendingQueue.filter((p) => p.id !== packet.id);
297
297
  ensureBaseline(slot.poolId);
@@ -311,9 +311,53 @@ export function createRollingDispatcher(config, options = {}) {
311
311
  startedAt,
312
312
  estimatedTokens: packet.estimatedTokens,
313
313
  promise,
314
+ leaseId: lease?.leaseId ?? null,
315
+ resourceKey: lease?.resourceKey,
314
316
  };
315
317
  state.inFlight.set(packet.id, entry);
316
318
  }
319
+ /**
320
+ * Admission gate over the shared reservation ledger (proactive admission layer,
321
+ * spec/audit/dispatch-admission-control.md). Reserves the packet's output-envelope
322
+ * cost against `slot.poolId`'s live budget BEFORE dispatch, atomically under the
323
+ * ledger lock so a co-located peer's in-flight leases are visible and optimism is
324
+ * bounded by ONE budget.
325
+ *
326
+ * Returns a discriminated result:
327
+ * - `no_ledger` — no ledger configured; dispatch unconditionally (behaviour
328
+ * identical to before the ledger existed).
329
+ * - `admitted` — carry the lease on the in-flight entry; reconciled on completion.
330
+ * - `blocked` — budget minus everyone's outstanding leases cannot cover this
331
+ * packet. `outstandingBefore` is the sum of OTHERS' (and this loop's own)
332
+ * live leases the ledger saw: `0` means nothing anywhere holds budget, so the
333
+ * single packet's cost exceeds the WHOLE budget and no completion will ever
334
+ * free room — the caller's liveness backstop force-admits it (the reactive 429
335
+ * floor still catches the overshoot). A non-zero value means a lease is
336
+ * outstanding and will free budget, so the caller waits instead of forcing.
337
+ *
338
+ * `forceUnbounded` overrides the pool budget with +Infinity so the backstop admit
339
+ * always succeeds.
340
+ */
341
+ async function admitAgainstLedger(packet, slot, forceUnbounded) {
342
+ if (!reservationLedger)
343
+ return { status: "no_ledger" };
344
+ const resourceKey = slot.poolId;
345
+ const outputReservation = resolveOutputReservationFn?.(packet, slot.poolId) ?? 0;
346
+ const cost = Math.max(0, packet.estimatedTokens) + Math.max(0, outputReservation);
347
+ const budget = forceUnbounded
348
+ ? Number.POSITIVE_INFINITY
349
+ : resolvePoolBudget?.(slot.poolId) ?? Number.POSITIVE_INFINITY;
350
+ const decision = await reservationLedger.admit({
351
+ resourceKey,
352
+ cost,
353
+ budget,
354
+ poolId: slot.poolId,
355
+ });
356
+ if (decision.admitted && decision.leaseId !== null) {
357
+ return { status: "admitted", lease: { leaseId: decision.leaseId, resourceKey } };
358
+ }
359
+ return { status: "blocked", outstandingBefore: decision.outstandingBefore };
360
+ }
317
361
  async function handleResult(packetId, result) {
318
362
  const entry = state.inFlight.get(packetId);
319
363
  if (!entry)
@@ -323,6 +367,20 @@ export function createRollingDispatcher(config, options = {}) {
323
367
  // outcome so headroom reflects the freed slot on the next pass).
324
368
  inFlightTracker.recordCompleted(providerSlot.poolId, estimatedTokens);
325
369
  inFlightPerPool.set(providerSlot.poolId, Math.max(0, (inFlightPerPool.get(providerSlot.poolId) ?? 1) - 1));
370
+ // Reconcile the reservation lease (success OR failure — the request is no
371
+ // longer in flight either way), returning its reserved budget to the shared
372
+ // ledger so a co-located peer (or the next pass) can admit against it. The
373
+ // real token cost surfaces in the provider's next quota snapshot; the ledger's
374
+ // job is only to stop reserving it. Best-effort: a ledger failure must never
375
+ // abort dispatch.
376
+ if (reservationLedger && entry.leaseId && entry.resourceKey) {
377
+ try {
378
+ await reservationLedger.reconcile(entry.resourceKey, entry.leaseId);
379
+ }
380
+ catch {
381
+ // Non-fatal: the lease's TTL expiry reclaims it if reconcile ever fails.
382
+ }
383
+ }
326
384
  state.inFlight.delete(packetId);
327
385
  // Record quota outcome. 'error' is a distinct quota outcome (non-quota
328
386
  // failure — no cooldown, only failure weight); 'rate_limited' applies the
@@ -485,26 +543,67 @@ export function createRollingDispatcher(config, options = {}) {
485
543
  }
486
544
  state.pendingQueue = [];
487
545
  }
546
+ /**
547
+ * One dispatch pass: select a pool for each dispatchable packet, gate it through
548
+ * the reservation ledger (when configured), and dispatch the admitted ones.
549
+ * Returns how many were dispatched.
550
+ *
551
+ * Liveness backstop: a packet the ledger BLOCKS with `outstandingBefore === 0`
552
+ * has a cost exceeding the WHOLE pool budget while nothing anywhere holds a lease
553
+ * to ever free room — the FIRST such packet per pass is admitted unbounded so the
554
+ * run can never deadlock on a single over-budget packet (the reactive 429 floor
555
+ * still catches the overshoot). A block with outstanding leases (`> 0`) means a
556
+ * co-located peer or an in-flight packet will free budget, so it waits instead —
557
+ * this is what stops two co-located loops from both force-admitting into overshoot.
558
+ */
559
+ async function dispatchPass() {
560
+ let dispatched = 0;
561
+ let forcedUsed = false;
562
+ for (const packet of getDispatchablePackets()) {
563
+ // selectProvider skips pools in exhaustedPoolIds, so a re-queued packet
564
+ // re-routes to a surviving pool (INV-QD-07).
565
+ const slot = selectProvider(packet, confirmedPools, inFlightTracker, quotaStateCache.entries, sessionConfig, state.exhaustedPoolIds, state.pausedPoolResetAt, Date.now());
566
+ if (slot === null)
567
+ continue;
568
+ // Apply optional maxConcurrentPerPool cap.
569
+ if (options.maxConcurrentPerPool !== undefined &&
570
+ (inFlightPerPool.get(slot.poolId) ?? 0) >= options.maxConcurrentPerPool) {
571
+ continue;
572
+ }
573
+ // Reservation-ledger admission (proactive layer).
574
+ const admission = await admitAgainstLedger(packet, slot, false);
575
+ let lease = null;
576
+ if (admission.status === "admitted") {
577
+ lease = admission.lease;
578
+ }
579
+ else if (admission.status === "blocked") {
580
+ if (admission.outstandingBefore === 0 && !forcedUsed && dispatched === 0) {
581
+ // Single packet exceeds the whole budget with nothing holding a lease →
582
+ // force it unbounded so the run can't deadlock. Only the first per pass.
583
+ const forced = await admitAgainstLedger(packet, slot, true);
584
+ if (forced.status === "admitted") {
585
+ lease = forced.lease;
586
+ forcedUsed = true;
587
+ }
588
+ else {
589
+ continue;
590
+ }
591
+ }
592
+ else {
593
+ continue; // leave pending; a later pass admits once a lease frees.
594
+ }
595
+ }
596
+ // status === "no_ledger" falls through with lease === null (dispatch as before).
597
+ dispatchOnePacket(packet, slot, lease);
598
+ dispatched++;
599
+ }
600
+ return dispatched;
601
+ }
488
602
  async function run() {
489
603
  while (state.pendingQueue.length > 0 || state.inFlight.size > 0) {
490
604
  // Dispatch pass: fill quota headroom with pending packets.
491
605
  await refreshQuotaStateIfNeeded();
492
- let dispatched = 0;
493
- const dispatchable = getDispatchablePackets();
494
- for (const packet of dispatchable) {
495
- // selectProvider skips pools in exhaustedPoolIds, so a re-queued packet
496
- // re-routes to a surviving pool (INV-QD-07).
497
- const slot = selectProvider(packet, confirmedPools, inFlightTracker, quotaStateCache.entries, sessionConfig, state.exhaustedPoolIds, state.pausedPoolResetAt, Date.now());
498
- if (slot === null)
499
- continue;
500
- // Apply optional maxConcurrentPerPool cap.
501
- if (options.maxConcurrentPerPool !== undefined &&
502
- (inFlightPerPool.get(slot.poolId) ?? 0) >= options.maxConcurrentPerPool) {
503
- continue;
504
- }
505
- dispatchOnePacket(packet, slot);
506
- dispatched++;
507
- }
606
+ const dispatched = await dispatchPass();
508
607
  // If nothing is in flight and nothing was dispatched but pending work
509
608
  // remains, decide whether to wait or strand:
510
609
  // - All pools exhausted → waiting cannot help; strand the remainder and
@@ -1 +1 @@
1
- {"version":3,"file":"rollingDispatch.js","sourceRoot":"","sources":["../../../src/shared/dispatch/rollingDispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollingDispatch.js","sourceRoot":"","sources":["../../../src/shared/dispatch/rollingDispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Unified in-process rolling driver — the ONE loop both orchestrators drive above
3
+ * the shared `createRollingDispatcher` packet engine.
4
+ *
5
+ * Both audit and remediate previously kept their own driver wrapping the engine:
6
+ * audit's `runRollingDispatch` (a flat single-dispatcher pass + DC-4 livelock/exhaust
7
+ * terminal) and remediate's `driveRollingDispatch` (dependency-level loop, per-level
8
+ * file-ownership sub-waves, rebuild-between-levels). The DUPLICATED part — iterate the
9
+ * levels, split each into disjoint sub-waves, run a dispatcher per sub-wave, collect the
10
+ * results / merged partial-terminal / exhausted-pool set — is unified here. What stays
11
+ * per-orchestrator is the TERMINAL / result-routing layer (audit → coverage/synthesis +
12
+ * DC-4 `exhausted_pool_ids` resume; remediate → accept-node/triage/close + quota_paused
13
+ * merge): those callers adapt this driver's raw result into their own shape.
14
+ *
15
+ * Audit is the READ-ONLY DEGENERATE CASE: it passes a single level of read-only nodes,
16
+ * which `ownershipSubWaves` collapses into one maximal parallel sub-wave (one dispatcher
17
+ * over all packets), so the level/sub-wave machinery no-ops and behaviour matches the old
18
+ * flat pass. See spec + the three-case disjointness model in `ownershipScheduler.ts`.
19
+ */
20
+ import type { SessionConfig } from "../types/sessionConfig.js";
21
+ import type { CapacityPool, PartialCompletionTerminal } from "../quota/capacity.js";
22
+ import type { ReservationLedger } from "../quota/reservationLedger.js";
23
+ import { type RollingDispatchPacket, type RollingDispatchResult } from "./rollingDispatch.js";
24
+ import { type OwnershipSchedulerNode } from "./ownershipScheduler.js";
25
+ /**
26
+ * Resolve the reservation-ledger admission config for an in-process rolling run.
27
+ * Mirrors the audit host path's admission-pool derivation (`finalizeDispatchQuota`):
28
+ * `computeDispatchCapacity` turns each pool's live quota snapshot + learned slope into a
29
+ * `remaining_token_budget` (a real number where a metered provider reports usage; null
30
+ * where there is no absolute ceiling) and the pool's output window for the envelope.
31
+ *
32
+ * The ledger is wired ONLY when at least one pool has a FINITE absolute budget. On the
33
+ * claude-code host the quota is percent-only and the tokens-per-percent slope never
34
+ * converges, so every budget is null (no absolute ceiling to protect) and the reactive
35
+ * 429 floor is the safety (per spec) — there the ledger stays UNWIRED, adding no
36
+ * per-dispatch lock overhead and no co-located coordination that couldn't gate on
37
+ * anything anyway. A metered provider that reports usage gets the full ledger:
38
+ * reserve-before-dispatch under lock (co-located double-count prevention) + budget
39
+ * gating. See spec/audit/dispatch-admission-control.md.
40
+ */
41
+ export declare function resolveLedgerBudgets(input: {
42
+ pools: CapacityPool[];
43
+ sessionConfig: SessionConfig;
44
+ /** Estimated input tokens per pending packet (sizes the capacity computation). */
45
+ pendingItemTokens: number[];
46
+ }): {
47
+ reservationLedger?: ReservationLedger;
48
+ resolvePoolBudget: (poolId: string) => number;
49
+ resolveOutputReservation: (poolId: string) => number;
50
+ };
51
+ /** Configuration for {@link driveRolling}. */
52
+ export interface UnifiedRollingConfig<TItem, TPayload> {
53
+ /**
54
+ * Ordered dependency levels; each level is a list of schedulable items. A single
55
+ * level with no inter-level boundary (audit) is the degenerate one-level case.
56
+ */
57
+ levels: TItem[][];
58
+ confirmedPools: CapacityPool[];
59
+ sessionConfig: SessionConfig;
60
+ /**
61
+ * Project an item to the ownership-scheduler node used to split the level into
62
+ * file-disjoint sub-waves. Read-only items (`read_only: true`) collapse into one
63
+ * maximal parallel sub-wave; empty `write_paths` is gated conservatively.
64
+ */
65
+ toNode: (item: TItem) => OwnershipSchedulerNode;
66
+ /** Project an item to the dispatchable packet the engine drives. */
67
+ toPacket: (item: TItem) => RollingDispatchPacket<TPayload>;
68
+ /** Per-packet dispatch (host subagent / provider worker). Must resolve, never reject. */
69
+ dispatchPacket: (packet: RollingDispatchPacket<TPayload>, slot: {
70
+ providerName: string;
71
+ hostModel: string | null;
72
+ poolId: string;
73
+ }) => Promise<RollingDispatchResult<TPayload>>;
74
+ /** Repo root for canonical path identity (INV-SOO-09). Defaults to cwd. */
75
+ root?: string;
76
+ /**
77
+ * Rebuild the upstream surface BETWEEN dependency levels (remediate: the shared
78
+ * `audit-tools/shared` rebuild). Invoked at most once per inter-level boundary and
79
+ * never concurrently with itself (single-flight, CE-001). Omit when there is no
80
+ * inter-level surface to rebuild (audit).
81
+ */
82
+ rebuildBetweenLevels?: () => Promise<void>;
83
+ /** Observe each result as it completes (progress emission, caller bookkeeping). */
84
+ onResult?: (result: RollingDispatchResult<TPayload>) => void;
85
+ /** Engine escalation hooks (host-session rate-limit accrual + strand-not-requeue read). */
86
+ recordRateLimit?: (packet: RollingDispatchPacket<TPayload>, result: RollingDispatchResult<TPayload>) => void;
87
+ isPacketEscalated?: (packetId: string) => boolean;
88
+ /**
89
+ * Shared reservation ledger for cross-process/account in-flight accounting (admission
90
+ * control). Forwarded to the engine, which admits + leases per-packet. Omit to leave
91
+ * the ledger path inert (behaviour identical to no ledger).
92
+ */
93
+ reservationLedger?: ReservationLedger;
94
+ resolvePoolBudget?: (poolId: string) => number;
95
+ resolveOutputReservation?: (packet: RollingDispatchPacket<TPayload>, poolId: string) => number;
96
+ }
97
+ /** Per-level results from {@link driveRolling}. */
98
+ export interface UnifiedRollingLevelResult<TPayload> {
99
+ /** The level's node ids, in canonical (block_id) order. */
100
+ nodeIds: string[];
101
+ results: RollingDispatchResult<TPayload>[];
102
+ }
103
+ /** Raw result of a unified rolling run — callers adapt this into their own terminal shape. */
104
+ export interface UnifiedRollingResult<TPayload> {
105
+ /** Per-level results, in level order. */
106
+ levels: UnifiedRollingLevelResult<TPayload>[];
107
+ /** Every result across all levels/sub-waves, in completion order. */
108
+ allResults: RollingDispatchResult<TPayload>[];
109
+ /** Inter-level shared rebuilds performed (== levels.length - 1 when >1 level). */
110
+ rebuilds: number;
111
+ /**
112
+ * The engine's partial-completion terminal merged across every sub-wave (quota_paused
113
+ * preferred over empty_pool; earliest reset kept; stranded ids unioned). Absent when
114
+ * every packet completed. Remediate consumes this; audit derives its own livelock
115
+ * terminal from the pending set instead.
116
+ */
117
+ terminal?: PartialCompletionTerminal;
118
+ /**
119
+ * Union of pool ids the engine dropped into its exhausted set across sub-waves — the
120
+ * DC-4 settled-exclusion seed the audit resume path carries. Empty on a clean run.
121
+ */
122
+ exhaustedPoolIds: string[];
123
+ }
124
+ /**
125
+ * Drive a rolling dispatch run over `levels`, splitting each level into file-ownership
126
+ * disjoint sub-waves and running a dispatcher per sub-wave, rebuilding the upstream
127
+ * surface between levels. Returns the raw materials (per-level results, flat results,
128
+ * merged terminal, exhausted-pool union) for a caller to map into its terminal shape.
129
+ */
130
+ export declare function driveRolling<TItem, TPayload>(config: UnifiedRollingConfig<TItem, TPayload>): Promise<UnifiedRollingResult<TPayload>>;
131
+ //# sourceMappingURL=unifiedRolling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unifiedRolling.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/unifiedRolling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Unified in-process rolling driver — the ONE loop both orchestrators drive above
3
+ * the shared `createRollingDispatcher` packet engine.
4
+ *
5
+ * Both audit and remediate previously kept their own driver wrapping the engine:
6
+ * audit's `runRollingDispatch` (a flat single-dispatcher pass + DC-4 livelock/exhaust
7
+ * terminal) and remediate's `driveRollingDispatch` (dependency-level loop, per-level
8
+ * file-ownership sub-waves, rebuild-between-levels). The DUPLICATED part — iterate the
9
+ * levels, split each into disjoint sub-waves, run a dispatcher per sub-wave, collect the
10
+ * results / merged partial-terminal / exhausted-pool set — is unified here. What stays
11
+ * per-orchestrator is the TERMINAL / result-routing layer (audit → coverage/synthesis +
12
+ * DC-4 `exhausted_pool_ids` resume; remediate → accept-node/triage/close + quota_paused
13
+ * merge): those callers adapt this driver's raw result into their own shape.
14
+ *
15
+ * Audit is the READ-ONLY DEGENERATE CASE: it passes a single level of read-only nodes,
16
+ * which `ownershipSubWaves` collapses into one maximal parallel sub-wave (one dispatcher
17
+ * over all packets), so the level/sub-wave machinery no-ops and behaviour matches the old
18
+ * flat pass. See spec + the three-case disjointness model in `ownershipScheduler.ts`.
19
+ */
20
+ import { computeDispatchCapacity } from "../quota/capacity.js";
21
+ import { createReservationLedger } from "../quota/reservationLedger.js";
22
+ import { createRollingDispatcher, } from "./rollingDispatch.js";
23
+ import { ownershipSubWaves } from "./ownershipScheduler.js";
24
+ /**
25
+ * Fold a newly-observed partial-completion terminal into the run's aggregate across
26
+ * sub-waves. Prefers `quota_paused` (retryable) over `empty_pool`; among quota_paused
27
+ * terminals keeps the EARLIEST `earliest_reset_at`; always unions the stranded ids so no
28
+ * stranded node is lost across waves.
29
+ */
30
+ function mergePartialTerminals(prior, next) {
31
+ if (!next)
32
+ return prior;
33
+ if (!prior)
34
+ return next;
35
+ const strandedIds = [...new Set([...prior.stranded_ids, ...next.stranded_ids])];
36
+ const priorPaused = prior.reason === "quota_paused";
37
+ const nextPaused = next.reason === "quota_paused";
38
+ if (priorPaused || nextPaused) {
39
+ const resets = [prior.earliest_reset_at, next.earliest_reset_at].filter((r) => typeof r === "string");
40
+ const earliest = resets.length > 0 ? resets.sort()[0] : undefined;
41
+ return {
42
+ reason: "quota_paused",
43
+ stranded_ids: strandedIds,
44
+ ...(earliest ? { earliest_reset_at: earliest } : {}),
45
+ };
46
+ }
47
+ return { reason: prior.reason, stranded_ids: strandedIds };
48
+ }
49
+ /**
50
+ * Resolve the reservation-ledger admission config for an in-process rolling run.
51
+ * Mirrors the audit host path's admission-pool derivation (`finalizeDispatchQuota`):
52
+ * `computeDispatchCapacity` turns each pool's live quota snapshot + learned slope into a
53
+ * `remaining_token_budget` (a real number where a metered provider reports usage; null
54
+ * where there is no absolute ceiling) and the pool's output window for the envelope.
55
+ *
56
+ * The ledger is wired ONLY when at least one pool has a FINITE absolute budget. On the
57
+ * claude-code host the quota is percent-only and the tokens-per-percent slope never
58
+ * converges, so every budget is null (no absolute ceiling to protect) and the reactive
59
+ * 429 floor is the safety (per spec) — there the ledger stays UNWIRED, adding no
60
+ * per-dispatch lock overhead and no co-located coordination that couldn't gate on
61
+ * anything anyway. A metered provider that reports usage gets the full ledger:
62
+ * reserve-before-dispatch under lock (co-located double-count prevention) + budget
63
+ * gating. See spec/audit/dispatch-admission-control.md.
64
+ */
65
+ export function resolveLedgerBudgets(input) {
66
+ const capacity = computeDispatchCapacity({
67
+ pools: input.pools,
68
+ sessionConfig: input.sessionConfig,
69
+ pendingItemTokens: input.pendingItemTokens,
70
+ });
71
+ const budgetByPool = new Map();
72
+ const outputByPool = new Map();
73
+ let hasFiniteBudget = false;
74
+ for (const alloc of capacity.pools) {
75
+ const budget = alloc.schedule.remaining_token_budget;
76
+ if (typeof budget === "number" && Number.isFinite(budget))
77
+ hasFiniteBudget = true;
78
+ budgetByPool.set(alloc.pool_id, budget);
79
+ outputByPool.set(alloc.pool_id, alloc.schedule.resolved_limits.output_tokens);
80
+ }
81
+ return {
82
+ // Only lease when an absolute budget exists to protect (metered provider). No finite
83
+ // budget (claude-code percent-only) ⇒ ledger omitted; the reactive 429 floor is the
84
+ // safety and dispatch stays lock-overhead-free / fully parallel.
85
+ ...(hasFiniteBudget ? { reservationLedger: createReservationLedger() } : {}),
86
+ // null/undefined ⇒ +Inf (no absolute ceiling); a real 0 stays 0 (exhausted).
87
+ resolvePoolBudget: (poolId) => budgetByPool.get(poolId) ?? Number.POSITIVE_INFINITY,
88
+ resolveOutputReservation: (poolId) => outputByPool.get(poolId) ?? 0,
89
+ };
90
+ }
91
+ /**
92
+ * Drive a rolling dispatch run over `levels`, splitting each level into file-ownership
93
+ * disjoint sub-waves and running a dispatcher per sub-wave, rebuilding the upstream
94
+ * surface between levels. Returns the raw materials (per-level results, flat results,
95
+ * merged terminal, exhausted-pool union) for a caller to map into its terminal shape.
96
+ */
97
+ export async function driveRolling(config) {
98
+ const out = {
99
+ levels: [],
100
+ allResults: [],
101
+ rebuilds: 0,
102
+ exhaustedPoolIds: [],
103
+ };
104
+ const exhausted = new Set();
105
+ let terminal;
106
+ let rebuildInFlight = false; // single-flight guard (CE-001)
107
+ for (let levelIndex = 0; levelIndex < config.levels.length; levelIndex++) {
108
+ // Interpose the shared rebuild BEFORE every level after the first. Guarded so it can
109
+ // never run twice or concurrently for the same boundary.
110
+ if (levelIndex > 0 && config.rebuildBetweenLevels) {
111
+ if (rebuildInFlight) {
112
+ throw new Error("driveRolling: shared rebuild already in flight — single-flight invariant violated (CE-001).");
113
+ }
114
+ rebuildInFlight = true;
115
+ try {
116
+ await config.rebuildBetweenLevels();
117
+ out.rebuilds += 1;
118
+ }
119
+ finally {
120
+ rebuildInFlight = false;
121
+ }
122
+ }
123
+ const level = config.levels[levelIndex];
124
+ const nodes = level.map((item) => config.toNode(item));
125
+ const itemByNodeId = new Map();
126
+ nodes.forEach((node, i) => itemByNodeId.set(node.block_id, level[i]));
127
+ // File-ownership-disjoint admission (INV-SOO): maximal disjoint sub-waves, ordered by
128
+ // a deterministic block_id tie-break (INV-SOO-08). Read-only nodes collapse into one.
129
+ const subWaves = ownershipSubWaves(nodes, config.root);
130
+ const levelResults = [];
131
+ for (const wave of subWaves) {
132
+ const packets = wave.map((node) => config.toPacket(itemByNodeId.get(node.block_id)));
133
+ const dispatcher = createRollingDispatcher({
134
+ confirmedPools: config.confirmedPools,
135
+ sessionConfig: config.sessionConfig,
136
+ dispatchPacket: config.dispatchPacket,
137
+ ...(config.recordRateLimit ? { recordRateLimit: config.recordRateLimit } : {}),
138
+ ...(config.isPacketEscalated ? { isPacketEscalated: config.isPacketEscalated } : {}),
139
+ ...(config.reservationLedger ? { reservationLedger: config.reservationLedger } : {}),
140
+ ...(config.resolvePoolBudget ? { resolvePoolBudget: config.resolvePoolBudget } : {}),
141
+ ...(config.resolveOutputReservation
142
+ ? { resolveOutputReservation: config.resolveOutputReservation }
143
+ : {}),
144
+ onResult: (result) => {
145
+ out.allResults.push(result);
146
+ config.onResult?.(result);
147
+ },
148
+ });
149
+ dispatcher.enqueue(packets);
150
+ levelResults.push(...(await dispatcher.run()));
151
+ terminal = mergePartialTerminals(terminal, dispatcher.getTerminal());
152
+ for (const poolId of dispatcher.getState().exhaustedPoolIds)
153
+ exhausted.add(poolId);
154
+ }
155
+ out.levels.push({ nodeIds: nodes.map((n) => n.block_id), results: levelResults });
156
+ }
157
+ out.terminal = terminal;
158
+ out.exhaustedPoolIds = [...exhausted];
159
+ return out;
160
+ }
161
+ //# sourceMappingURL=unifiedRolling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unifiedRolling.js","sourceRoot":"","sources":["../../../src/shared/dispatch/unifiedRolling.ts"],"names":[],"mappings":"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"}
@@ -117,7 +117,7 @@ export type { QuotaSource, QuotaUsageSnapshot, QuotaWindow, QuotaProbeResult, Qu
117
117
  export { QuotaUsageSnapshotSchema, QuotaWindowSchema, probeQuotaSource } from "./quota/quotaSource.js";
118
118
  export { resolveLimits, hostClassFor, resolveHostModel, } from "./quota/limits.js";
119
119
  export type { ProviderType, LimitResolutionResult, ResolveLimitsOptions, ResolveHostModelOptions, } from "./quota/limits.js";
120
- export { setQuotaStateDir, getQuotaStatePath, readQuotaState, writeQuotaState, computeMaxSafeConcurrency, recordWaveOutcome, clearBucketFailureEvidence, foldTokensPerPctObservation, recordTokensPerPctObservation, decayWeight, applyDecayToEntry, computeBackoffCooldownMs, computeBackoffFailureWeight, computeRampUpConcurrency, BASE_COOLDOWN_MS, MAX_COOLDOWN_MS, MAX_BUCKET_LEVEL, } from "./quota/state.js";
120
+ export { setQuotaStateDir, getQuotaStatePath, readQuotaState, writeQuotaState, computeMaxSafeConcurrency, recordWaveOutcome, clearBucketFailureEvidence, foldTokensPerPctObservation, recordTokensPerPctObservation, foldOutputRatioObservation, recordOutputRatioObservation, OUTPUT_RATIO_EWMA_ALPHA, decayWeight, applyDecayToEntry, computeBackoffCooldownMs, computeBackoffFailureWeight, computeRampUpConcurrency, BASE_COOLDOWN_MS, MAX_COOLDOWN_MS, MAX_BUCKET_LEVEL, } from "./quota/state.js";
121
121
  export { detectRateLimitError, detectRateLimitFromChannel, computeCooldownUntil, DEFAULT_COOLDOWN_MS, } from "./quota/errorParsing.js";
122
122
  export type { WorkerOutputChannel } from "./quota/errorParsing.js";
123
123
  export { HostSessionQuotaSource, HOST_SESSION_QUOTA_SOURCE_NAME, DEFAULT_MAX_CONSECUTIVE_RE_LIMITS, } from "./quota/hostSessionQuotaSource.js";
@@ -130,6 +130,10 @@ export type { RateLimitDetectionResult } from "./quota/errorParsing.js";
130
130
  export { acquireLock, releaseLock, withFileLock, FileLockTimeoutError, STALE_LOCK_MS, } from "./quota/fileLock.js";
131
131
  export type { ClaimRecord, ClaimResult } from "./quota/claimRegistry.js";
132
132
  export { ClaimRegistry } from "./quota/claimRegistry.js";
133
+ export type { ReservationLease, AdmitDecision, AdmitInput, } from "./quota/reservationLedger.js";
134
+ export { ReservationLedger, getReservationLedgerPath, createReservationLedger, } from "./quota/reservationLedger.js";
135
+ export type { OutputReservationInput, PacketCost, } from "./quota/packetCost.js";
136
+ export { resolveOutputReservation, estimatePacketCost, } from "./quota/packetCost.js";
133
137
  export type { ClaimBackoffOptions, ClaimHeartbeatOptions, } from "./quota/claimLease.js";
134
138
  export { claimWithBackoff, withClaimHeartbeat, DEFAULT_CLAIM_BACKOFF_MS, } from "./quota/claimLease.js";
135
139
  export { runSlidingWindow } from "./quota/slidingWindow.js";
@@ -181,6 +185,13 @@ export { LIVELOCK_PAUSE_LIMIT, filterNewProviders, checkLivelockGuard, advancePa
181
185
  export { DISPATCH_TIER_RANK, DISPATCH_TIER_ORDER, DISPATCH_TIER_RANK_FALLBACK, tierRank, compareTier, mostCapableTier, } from "./dispatch/tierRank.js";
182
186
  export type { RollingDispatchPacket, RollingDispatchResult, ProviderSlot, InFlightEntry, RollingDispatchState, RollingDispatchConfig, RollingDispatchOptions, RollingDispatcher, } from "./dispatch/rollingDispatch.js";
183
187
  export { InFlightTokenTracker, scorePacketComplexity, selectProvider, createRollingDispatcher, } from "./dispatch/rollingDispatch.js";
188
+ export { admitBatch, computeDispatchAdmission, AdmissionGrantSchema, AdmissionExplainSchema, DispatchAdmissionSchema, } from "./dispatch/admissionLoop.js";
189
+ export type { AdmissionCandidate, AdmissionPool, AdmissionGrant, AdmissionExplain, DispatchAdmission, AdmitBatchResult, AdmitBatchInput, } from "./dispatch/admissionLoop.js";
190
+ export { canonicalizeFilePath } from "./dispatch/pathIdentity.js";
191
+ export { ownershipSubWaves, canonicalScopeKeys, } from "./dispatch/ownershipScheduler.js";
192
+ export type { OwnershipSchedulerNode } from "./dispatch/ownershipScheduler.js";
193
+ export { driveRolling, resolveLedgerBudgets } from "./dispatch/unifiedRolling.js";
194
+ export type { UnifiedRollingConfig, UnifiedRollingLevelResult, UnifiedRollingResult, } from "./dispatch/unifiedRolling.js";
184
195
  export type { FrontierNode, NodeAssignment, CoordinatorTerminalStatus, HybridSpillCoordinatorOptions, } from "./dispatch/coordinator.js";
185
196
  export { HybridSpillCoordinator } from "./dispatch/coordinator.js";
186
197
  export { planHybridDispatch } from "./dispatch/hybridDispatch.js";