audit-tools 0.32.7 → 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.
- package/LICENSE +15 -0
- package/README.md +2 -0
- package/dist/audit/cli/dispatch/quotaPool.d.ts +20 -2
- package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.js +38 -7
- package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
- package/dist/audit/cli/dispatch/tierRouting.d.ts +4 -1
- package/dist/audit/cli/dispatch/tierRouting.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/tierRouting.js +7 -4
- package/dist/audit/cli/dispatch/tierRouting.js.map +1 -1
- package/dist/audit/cli/dispatch/types.d.ts +9 -4
- package/dist/audit/cli/dispatch/types.d.ts.map +1 -1
- package/dist/audit/cli/dispatch.d.ts +7 -0
- package/dist/audit/cli/dispatch.d.ts.map +1 -1
- package/dist/audit/cli/dispatch.js +24 -12
- package/dist/audit/cli/dispatch.js.map +1 -1
- package/dist/audit/cli/mergeAndIngestCommand.d.ts +0 -9
- package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
- package/dist/audit/cli/mergeAndIngestCommand.js +29 -1
- package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
- package/dist/audit/cli/prompts.d.ts.map +1 -1
- package/dist/audit/cli/prompts.js +4 -2
- package/dist/audit/cli/prompts.js.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.js +3 -0
- package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.js +10 -6
- package/dist/audit/cli/semanticReviewStep.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +20 -10
- package/dist/audit/cli/steps.d.ts.map +1 -1
- package/dist/audit/cli/steps.js +4 -2
- package/dist/audit/cli/steps.js.map +1 -1
- package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/planningExecutors.js +1 -0
- package/dist/audit/orchestrator/planningExecutors.js.map +1 -1
- package/dist/audit/orchestrator/rollingDispatch.d.ts +7 -6
- package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
- package/dist/audit/orchestrator/rollingDispatch.js +37 -19
- package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
- package/dist/audit/quota/index.d.ts +137 -8
- package/dist/audit/quota/index.d.ts.map +1 -1
- package/dist/audit/quota/index.js +9 -8
- package/dist/audit/quota/index.js.map +1 -1
- package/dist/remediate/contractPipeline/derive.d.ts +20 -0
- package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/derive.js +91 -0
- package/dist/remediate/contractPipeline/derive.js.map +1 -1
- package/dist/remediate/dispatch/ownershipRegistry.d.ts +2 -22
- package/dist/remediate/dispatch/ownershipRegistry.d.ts.map +1 -1
- package/dist/remediate/dispatch/ownershipRegistry.js +7 -45
- package/dist/remediate/dispatch/ownershipRegistry.js.map +1 -1
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +17 -1
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +3 -2
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts +6 -3
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +6 -3
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +1 -2
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +80 -106
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch.d.ts +22 -1
- package/dist/remediate/steps/dispatch.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch.js +108 -5
- package/dist/remediate/steps/dispatch.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +89 -116
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/rollingSession.d.ts +82 -17
- package/dist/remediate/steps/rollingSession.d.ts.map +1 -1
- package/dist/remediate/steps/rollingSession.js +157 -58
- package/dist/remediate/steps/rollingSession.js.map +1 -1
- package/dist/remediate/steps/types.d.ts +12 -4
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js +1 -1
- package/dist/shared/dispatch/admissionLoop.d.ts +245 -0
- package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -0
- package/dist/shared/dispatch/admissionLoop.js +204 -0
- package/dist/shared/dispatch/admissionLoop.js.map +1 -0
- package/dist/{remediate → shared}/dispatch/ownershipScheduler.d.ts +23 -2
- package/dist/shared/dispatch/ownershipScheduler.d.ts.map +1 -0
- package/dist/{remediate → shared}/dispatch/ownershipScheduler.js +34 -6
- package/dist/shared/dispatch/ownershipScheduler.js.map +1 -0
- package/dist/shared/dispatch/pathIdentity.d.ts +26 -0
- package/dist/shared/dispatch/pathIdentity.d.ts.map +1 -0
- package/dist/shared/dispatch/pathIdentity.js +49 -0
- package/dist/shared/dispatch/pathIdentity.js.map +1 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts +37 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.js +117 -18
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
- package/dist/shared/dispatch/unifiedRolling.d.ts +131 -0
- package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -0
- package/dist/shared/dispatch/unifiedRolling.js +161 -0
- package/dist/shared/dispatch/unifiedRolling.js.map +1 -0
- package/dist/shared/friction/stepBoundaryCapture.d.ts +4 -1
- package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
- package/dist/shared/index.d.ts +12 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +18 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/quota/packetCost.d.ts +29 -0
- package/dist/shared/quota/packetCost.d.ts.map +1 -0
- package/dist/shared/quota/packetCost.js +51 -0
- package/dist/shared/quota/packetCost.js.map +1 -0
- package/dist/shared/quota/reservationLedger.d.ts +100 -0
- package/dist/shared/quota/reservationLedger.d.ts.map +1 -0
- package/dist/shared/quota/reservationLedger.js +224 -0
- package/dist/shared/quota/reservationLedger.js.map +1 -0
- package/dist/shared/quota/state.d.ts +20 -0
- package/dist/shared/quota/state.d.ts.map +1 -1
- package/dist/shared/quota/state.js +50 -0
- package/dist/shared/quota/state.js.map +1 -1
- package/dist/shared/quota/types.d.ts +11 -0
- package/dist/shared/quota/types.d.ts.map +1 -1
- package/dist/shared/quota/types.js.map +1 -1
- package/docs/audit-pkg/contracts.md +3 -1
- package/docs/audit-pkg/development.md +5 -4
- package/docs/audit-pkg/release.md +2 -3
- package/package.json +3 -1
- package/dist/remediate/dispatch/ownershipScheduler.d.ts.map +0 -1
- package/dist/remediate/dispatch/ownershipScheduler.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import { isAbsolute, resolve, sep } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Whether the host filesystem is case-insensitive for path identity. win32 and
|
|
5
|
+
* darwin default to case-insensitive volumes; linux is case-sensitive. Used so
|
|
6
|
+
* `src/A.ts` and `src/a.ts` collide on a Windows/macOS volume (one physical
|
|
7
|
+
* file) but stay distinct on Linux — INV-SOO-09 canonical physical-file identity.
|
|
8
|
+
*/
|
|
9
|
+
const CASE_INSENSITIVE_FS = process.platform === "win32" || process.platform === "darwin";
|
|
10
|
+
/**
|
|
11
|
+
* The single-sourced path canonicalization for ownership identity (INV-SOO-09).
|
|
12
|
+
*
|
|
13
|
+
* Resolves a path to a stable physical-file key: absolute (against `root` when
|
|
14
|
+
* supplied, else cwd), `..`/`.`-collapsed (via `resolve`), separators normalized
|
|
15
|
+
* to `/`, and case-folded on a case-insensitive filesystem. All spellings of one
|
|
16
|
+
* file therefore collide, closing the rel/abs/case/`..` mismatch (CE-004).
|
|
17
|
+
*
|
|
18
|
+
* Symlink identity is a RECORDED RESIDUAL, not silently treated as disjoint
|
|
19
|
+
* (INV-SOO-09 / fail-3): when `resolveSymlinks` is set and the path exists, the
|
|
20
|
+
* realpath is folded in so `link.ts → x.ts` collides; when realpath is
|
|
21
|
+
* unavailable (path absent, or FS symlink resolution out of scope) the lexical
|
|
22
|
+
* canonical key is used and the unresolved case degrades to the downstream merge
|
|
23
|
+
* guard rather than being asserted disjoint here.
|
|
24
|
+
*
|
|
25
|
+
* This is the ONLY normalization scheme for ownership identity — callers must
|
|
26
|
+
* not introduce a second one (failure-mode: path-identity mismatch). It lives in
|
|
27
|
+
* `audit-tools/shared` so BOTH orchestrators' ownership scheduling resolves file
|
|
28
|
+
* identity identically (a remediate write-scope and an audit read-scope key the
|
|
29
|
+
* same file the same way).
|
|
30
|
+
*/
|
|
31
|
+
export function canonicalizeFilePath(path, opts = {}) {
|
|
32
|
+
const { root, resolveSymlinks = false } = opts;
|
|
33
|
+
let abs = isAbsolute(path)
|
|
34
|
+
? resolve(path)
|
|
35
|
+
: resolve(root ?? process.cwd(), path);
|
|
36
|
+
if (resolveSymlinks) {
|
|
37
|
+
try {
|
|
38
|
+
abs = realpathSync(abs);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Symlink/realpath unavailable (path absent or FS resolution out of scope):
|
|
42
|
+
// keep the lexical key — the unresolved symlink case is a recorded residual
|
|
43
|
+
// handled by the downstream merge guard, never asserted disjoint here.
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const slashed = abs.split(sep).join("/");
|
|
47
|
+
return CASE_INSENSITIVE_FS ? slashed.toLowerCase() : slashed;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=pathIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathIdentity.js","sourceRoot":"","sources":["../../../src/shared/dispatch/pathIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErD;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,OAAqD,EAAE;IAEvD,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC/C,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;YAC5E,4EAA4E;YAC5E,uEAAuE;QACzE,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/D,CAAC"}
|
|
@@ -34,6 +34,7 @@ import type { SessionConfig } from "../types/sessionConfig.js";
|
|
|
34
34
|
import type { CapacityPool, PartialCompletionTerminal } from "../quota/capacity.js";
|
|
35
35
|
import type { QuotaStateEntry } from "../quota/types.js";
|
|
36
36
|
import type { WorkerOutputChannel } from "../quota/errorParsing.js";
|
|
37
|
+
import type { ReservationLedger } from "../quota/reservationLedger.js";
|
|
37
38
|
/** A dispatchable unit of work. TPacket is opaque to the engine. */
|
|
38
39
|
export interface RollingDispatchPacket<TPacket> {
|
|
39
40
|
/** Stable, unique identifier for this packet within a run. */
|
|
@@ -98,6 +99,14 @@ export interface InFlightEntry<TPacket> {
|
|
|
98
99
|
startedAt: number;
|
|
99
100
|
estimatedTokens: number;
|
|
100
101
|
promise: Promise<RollingDispatchResult<TPacket>>;
|
|
102
|
+
/**
|
|
103
|
+
* Reservation-ledger lease held for this in-flight packet (spec admission model).
|
|
104
|
+
* Set only when a `reservationLedger` was configured; reconciled (freed) in
|
|
105
|
+
* `handleResult` when the packet completes. `resourceKey` is the pool id the lease
|
|
106
|
+
* was taken against, needed to reconcile. Null/undefined when no ledger is wired.
|
|
107
|
+
*/
|
|
108
|
+
leaseId?: string | null;
|
|
109
|
+
resourceKey?: string;
|
|
101
110
|
}
|
|
102
111
|
/** Mutable state of the rolling dispatcher. */
|
|
103
112
|
export interface RollingDispatchState<TPacket> {
|
|
@@ -168,6 +177,34 @@ export interface RollingDispatchConfig<TPacket> {
|
|
|
168
177
|
* leave the source unfed (no escalation can ever fire).
|
|
169
178
|
*/
|
|
170
179
|
recordRateLimit?: (packet: RollingDispatchPacket<TPacket>, result: RollingDispatchResult<TPacket>) => void;
|
|
180
|
+
/**
|
|
181
|
+
* Shared token-reservation ledger (spec/audit/dispatch-admission-control.md, the
|
|
182
|
+
* proactive admission layer). When supplied, every dispatched packet LEASES its
|
|
183
|
+
* output-envelope cost against the account-keyed ledger BEFORE dispatch and
|
|
184
|
+
* reconciles the lease on completion — so two co-located dispatch loops pointed at
|
|
185
|
+
* the SAME ledger file (same `provider#account/model` meter) each see the other's
|
|
186
|
+
* outstanding reservations and cannot both optimistically assume the full budget.
|
|
187
|
+
* The resourceKey is the pool id (`pool.id` is already `provider#account/model`).
|
|
188
|
+
* Omit to leave the in-process `InFlightTokenTracker` as the sole accounting
|
|
189
|
+
* (behaviour identical to before this field existed). The reactive 429/backoff
|
|
190
|
+
* floor still catches any residual under-reservation regardless.
|
|
191
|
+
*/
|
|
192
|
+
reservationLedger?: ReservationLedger;
|
|
193
|
+
/**
|
|
194
|
+
* Live remaining token budget for a pool's resourceKey (its `pool.id`). Consulted
|
|
195
|
+
* only when `reservationLedger` is set — it is the budget the ledger admits
|
|
196
|
+
* against (`budget - Σ outstanding_leases >= cost`). Return a non-finite value
|
|
197
|
+
* (the default) for an optimistic/unbounded budget, in which case the ledger only
|
|
198
|
+
* prevents co-located double-counting and never gates on an absolute token ceiling.
|
|
199
|
+
*/
|
|
200
|
+
resolvePoolBudget?: (poolId: string) => number;
|
|
201
|
+
/**
|
|
202
|
+
* Output-token envelope (spec Resolved decision 1) added to a packet's INPUT
|
|
203
|
+
* `estimatedTokens` to form the reservation cost. Consulted only when
|
|
204
|
+
* `reservationLedger` is set. Default 0 → the lease reserves the input estimate
|
|
205
|
+
* alone; the reactive floor still catches output under-reservation.
|
|
206
|
+
*/
|
|
207
|
+
resolveOutputReservation?: (packet: RollingDispatchPacket<TPacket>, poolId: string) => number;
|
|
171
208
|
}
|
|
172
209
|
/** Options for tuning the dispatcher (intentionally minimal per INV-S05). */
|
|
173
210
|
export interface RollingDispatchOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollingDispatch.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/rollingDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,mBAAmB,CAAC;AAanF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"rollingDispatch.d.ts","sourceRoot":"","sources":["../../../src/shared/dispatch/rollingDispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH,OAAO,EACL,YAAY,EAEZ,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA4LzC,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACd,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE1D,gBAAgB,CAAC,MAAc,EAAE,MAAc;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,MAAc;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CACnC,MAAsC;IAEtC,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CAAC,IAAkB;IAC5C,6EAA6E;IAC7E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAC1B,IAAkB,EAClB,QAAsB;IAEtB,IAAI,QAAQ,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC;IAC7D,OAAO,YAAY,IAAI,IAAI,IAAI,YAAY,GAAG,uBAAuB,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAsC,EACtC,cAA8B,EAC9B,eAAqC,EACrC,iBAAkD,EAClD,aAA4B,EAC5B,mBAAwC,IAAI,GAAG,EAAE,EACjD,oBAAiD,IAAI,GAAG,EAAE,EAC1D,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,UAAU,IAAI,GAAG,CAAC;IAEzC,+EAA+E;IAC/E,gFAAgF;IAChF,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE;QAC9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,OAAO,IAAI,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC;IAC1C,CAAC,CAAC;IAEF,sFAAsF;IACtF,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,eAAe,GAAG,CAAC,IAAkB,EAAgB,EAAE;QAC3D,+EAA+E;QAC/E,+EAA+E;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QACnF,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO,YAAY,CAAC;YAClB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,oBAAoB,EAAE,CAAC;YACvB,mBAAmB,EAAE,CAAC,MAAM,CAAC,eAAe,GAAG,cAAc,CAAC;YAC9D,eAAe;YACf,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;YAC/C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI;SACtD,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpF,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,oBAAoB;IACpB,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;IAC5D,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC;YACE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SACpE;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAsC,EACtC,UAAkC,EAAE;IAEpC,MAAM,EACJ,cAAc,EACd,aAAa,EACb,cAAc,EACd,QAAQ,EACR,aAAa,GAAG,iCAAiC,EACjD,iBAAiB,EACjB,eAAe,GAChB,GAAG,MAAM,CAAC;IAEX,MAAM,KAAK,GAAkC;QAC3C,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACnD,MAAM,UAAU,GAAqC,EAAE,CAAC;IACxD,kEAAkE;IAClE,MAAM,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IAavD,MAAM,cAAc,GAA+B,IAAI,GAAG,EAAE,CAAC;IAE7D,SAAS,YAAY,CAAC,IAA8B;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,EAAE,mBAAmB,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC;QACtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,cAAc,CAAC,MAAc;QACpC,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACzD,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE;YACzB,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC;YAC9B,mBAAmB,EAAE,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,QAAQ,CAAC,mBAAmB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,MAAM,IAAI,IAAI;gBAAE,SAAS;YAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;gBAAE,SAAS,CAAC,gCAAgC;YAC/E,IAAI,CAAC;gBACH,MAAM,6BAA6B,CACjC,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,CAAC,mBAAmB,CAC7B,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5E,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,eAAe,GAAe,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC9D,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAEhC,KAAK,UAAU,yBAAyB;QACtC,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,eAAe,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;gBACtC,eAAe,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC;YACD,oBAAoB,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,SAAS,sBAAsB;QAC7B,wDAAwD;QACxD,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,SAAS,iBAAiB,CACxB,MAAsC,EACtC,IAAkB;QAElB,6BAA6B;QAC7B,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1E,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QACtE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAkC,EAAE,CAAC,CAAC;YACpH,MAAM;YACN,OAAO,EAAE,OAAgB;YACzB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAA2B;YACpC,MAAM;YACN,MAAM;YACN,YAAY,EAAE,IAAI;YAClB,SAAS;YACT,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO;SACR,CAAC;QAEF,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,MAAsC;QAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAExD,uEAAuE;QACvE,iEAAiE;QACjE,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtE,eAAe,CAAC,GAAG,CACjB,YAAY,CAAC,MAAM,EACnB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC;QAEF,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEhC,uEAAuE;QACvE,0EAA0E;QAC1E,uEAAuE;QACvE,iFAAiF;QACjF,8EAA8E;QAC9E,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;YAC3D,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc;gBACpD,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;oBACtC,CAAC,CAAC,SAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,iBAAiB,CACrB,gBAAgB,EAChB;gBACE,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,eAAe;gBACjC,OAAO,EAAE,YAAY;aACtB,EACD,aAAa,CACd,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,sCAAsC;QACtC,MAAM,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEzD,oBAAoB,GAAG,IAAI,CAAC;QAE5B,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,oEAAoE;QACpE,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACtC,qEAAqE;YACrE,2EAA2E;YAC3E,mEAAmE;YACnE,4EAA4E;YAC5E,4EAA4E;YAC5E,0EAA0E;YAC1E,oEAAoE;YACpE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;YACzC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,SAAS,GACb,SAAS,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC1D,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,uEAAuE;gBACvE,4DAA4D;gBAC5D,MAAM,CAAC,SAAS,GAAG;oBACjB,GAAG,MAAM,CAAC,SAAU;oBACpB,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;iBAC5C,CAAC;gBACF,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC/D,mEAAmE;gBACnE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CACzB,YAAY,CAAC,MAAM,EACnB,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;YACD,sEAAsE;YACtE,8EAA8E;YAC9E,4EAA4E;YAC5E,gEAAgE;YAChE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,0EAA0E;YAC1E,0EAA0E;YAC1E,2EAA2E;YAC3E,qEAAqE;YACrE,mEAAmE;YACnE,uEAAuE;YACvE,IAAI,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;wBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC5B,IAAI,EAAE,mDAAmD;wBACzD,SAAS,EAAE,MAAM,CAAC,EAAE;wBACpB,iBAAiB,EAAE,YAAY,CAAC,MAAM;qBACvC,CAAC,GAAG,IAAI,CACV,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,wCAAwC;gBAC1C,CAAC;gBACD,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,8DAA8D;YAC9D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9F,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YACD,mEAAmE;YACnE,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;oBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,IAAI,EAAE,uCAAuC;oBAC7C,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,iBAAiB,EAAE,YAAY,CAAC,MAAM;iBACvC,CAAC,GAAG,IAAI,CACV,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;YACD,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,OAAO,CAAC,OAAyC;QACxD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/D,2BAA2B;gBAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACnD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,SAAS,iBAAiB;QACxB,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACH,SAAS,kBAAkB,CAAC,GAAW;QACrC,OAAO,cAAc,CAAC,KAAK,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CACzD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS,qBAAqB,CAAC,GAAW;QACxC,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,IAAI,OAAO,IAAI,GAAG;gBAAE,SAAS;YAC7B,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,GAAG,QAAQ;gBAAE,QAAQ,GAAG,OAAO,CAAC;QACjE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,SAAS,aAAa;QACpB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,UAAU,GAAG;QAChB,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChE,2DAA2D;YAC3D,MAAM,yBAAyB,EAAE,CAAC;YAElC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;YAE9C,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,wEAAwE;gBACxE,6CAA6C;gBAC7C,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,cAAc,EACd,eAAe,EACf,eAAe,CAAC,OAAO,EACvB,aAAa,EACb,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,iBAAiB,EACvB,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;gBAEF,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS;gBAE5B,2CAA2C;gBAC3C,IACE,OAAO,CAAC,oBAAoB,KAAK,SAAS;oBAC1C,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,oBAAoB,EACvE,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAChC,UAAU,EAAE,CAAC;YACf,CAAC;YAED,sEAAsE;YACtE,6CAA6C;YAC7C,yEAAyE;YACzE,0EAA0E;YAC1E,4EAA4E;YAC5E,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnF,sEAAsE;gBACtE,yEAAyE;gBACzE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,yEAAyE;gBACzE,wDAAwD;gBACxD,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;oBACnC,aAAa,EAAE,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;YAED,+DAA+D;YAC/D,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,yEAAyE;YACzE,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;gBACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC9B,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7D,gDAAgD;QAClD,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,SAAS,QAAQ;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,WAAW;QAClB,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,8EAA8E;QAC9E,+EAA+E;QAC/E,6EAA6E;QAC7E,wEAAwE;QACxE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,OAAO,wBAAwB,CAC7B,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,EACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,sBAAsB,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACjD,CAAC"}
|
|
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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"}
|