audit-tools 0.34.3 → 0.34.6
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 +1 -1
- package/dist/audit/cli/dispatch/hostFanoutGate.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostFanoutGate.js +6 -0
- package/dist/audit/cli/dispatch/hostFanoutGate.js.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.d.ts +6 -0
- package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.js +7 -8
- package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
- package/dist/audit/cli/dispatch.d.ts.map +1 -1
- package/dist/audit/cli/dispatch.js +6 -1
- package/dist/audit/cli/dispatch.js.map +1 -1
- package/dist/audit/cli/hybridDispatch.d.ts +13 -3
- package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
- package/dist/audit/cli/hybridDispatch.js +12 -6
- package/dist/audit/cli/hybridDispatch.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +40 -2
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +61 -6
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.d.ts +52 -0
- package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.js +224 -55
- package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
- package/dist/audit/cli/quotaCommand.d.ts.map +1 -1
- package/dist/audit/cli/quotaCommand.js +5 -2
- package/dist/audit/cli/quotaCommand.js.map +1 -1
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +13 -0
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +12 -0
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.d.ts +20 -8
- package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.js +215 -26
- package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts +6 -0
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +3 -0
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/orchestrator/state.d.ts +22 -0
- package/dist/audit/orchestrator/state.d.ts.map +1 -1
- package/dist/audit/orchestrator/state.js +16 -4
- package/dist/audit/orchestrator/state.js.map +1 -1
- package/dist/audit/types/externalAnalyzer.d.ts +6 -6
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +6 -0
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.js +6 -1
- package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts +34 -2
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/waveScheduling.js +18 -5
- package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +20 -5
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/shared/dispatch/admissionLoop.d.ts +15 -2
- package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -1
- package/dist/shared/dispatch/admissionLoop.js +21 -17
- package/dist/shared/dispatch/admissionLoop.js.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.d.ts +57 -1
- package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.js +89 -0
- package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
- package/dist/shared/index.d.ts +5 -4
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +4 -7
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/providers/identity.d.ts +18 -7
- package/dist/shared/providers/identity.d.ts.map +1 -1
- package/dist/shared/providers/identity.js +23 -8
- package/dist/shared/providers/identity.js.map +1 -1
- package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/providerConfirmation.js +36 -1
- package/dist/shared/providers/providerConfirmation.js.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.d.ts +359 -20
- package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.js +820 -43
- package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
- package/dist/shared/quota/apiPool.d.ts +45 -2
- package/dist/shared/quota/apiPool.d.ts.map +1 -1
- package/dist/shared/quota/apiPool.js +74 -7
- package/dist/shared/quota/apiPool.js.map +1 -1
- package/dist/shared/quota/hostPool.d.ts +8 -0
- package/dist/shared/quota/hostPool.d.ts.map +1 -1
- package/dist/shared/quota/hostPool.js +1 -0
- package/dist/shared/quota/hostPool.js.map +1 -1
- package/dist/shared/types/providerConfirmation.d.ts +55 -2
- package/dist/shared/types/providerConfirmation.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createReservationLedger, admissionPoolsFromSummaries, assembleDispatchQuota,
|
|
1
|
+
import { createReservationLedger, admissionPoolsFromSummaries, assembleDispatchQuota, buildObservedCapabilityFloorCapable, } from "audit-tools/shared";
|
|
2
2
|
import { buildHostPoolPreamble, buildSourcePools, dedupHostAndSourcePools, resolveHostProviderName, resolveHostDispatchProviderName, } from "audit-tools/shared";
|
|
3
3
|
import { computeDispatchCapacity, resolveHostActiveSubagentLimit, computeBackoffCooldownMs, summarizeDispatchCapacityPools, } from "../../quota/index.js";
|
|
4
4
|
export { resolveHostActiveSubagentLimit };
|
|
@@ -46,6 +46,7 @@ async function buildRemediateHostPools(input) {
|
|
|
46
46
|
hostContextTokens: input.hostContextTokens,
|
|
47
47
|
hostOutputTokens: input.hostOutputTokens,
|
|
48
48
|
roster: input.hostModels,
|
|
49
|
+
capabilityRanks: input.capabilityRanks,
|
|
49
50
|
...(input.env ? { env: input.env } : {}),
|
|
50
51
|
...(input.hostSession ? { hostSession: input.hostSession } : {}),
|
|
51
52
|
});
|
|
@@ -68,6 +69,7 @@ export async function scheduleWave(input) {
|
|
|
68
69
|
hostModels: input.hostModels,
|
|
69
70
|
hostModelId: input.hostModelId,
|
|
70
71
|
env: input.env,
|
|
72
|
+
capabilityRanks: input.capabilityRanks ?? null,
|
|
71
73
|
});
|
|
72
74
|
const capacity = computeDispatchCapacity({
|
|
73
75
|
pools: preamble.pools,
|
|
@@ -107,6 +109,7 @@ export async function buildConfirmedPools(input) {
|
|
|
107
109
|
hostOutputTokens: input.hostOutputTokens,
|
|
108
110
|
hostModels: input.hostModels,
|
|
109
111
|
hostModelId: input.hostModelId,
|
|
112
|
+
capabilityRanks: input.capabilityRanks,
|
|
110
113
|
...(input.env ? { env: input.env } : {}),
|
|
111
114
|
...(input.hostSession ? { hostSession: input.hostSession } : {}),
|
|
112
115
|
});
|
|
@@ -117,17 +120,20 @@ export async function buildConfirmedPools(input) {
|
|
|
117
120
|
// the IDENTICAL pool shapes — the spill topology can't drift. `primaryProviderName`
|
|
118
121
|
// is the ACTUAL configured backend so the unconditional primary fold builds the
|
|
119
122
|
// source for the real provider; remediate's draw admits command-shaped primaries.
|
|
120
|
-
const sourcePools = await buildSourcePools({
|
|
123
|
+
const { pools: sourcePools, zeroedByExclusion } = await buildSourcePools({
|
|
121
124
|
sessionConfig,
|
|
122
125
|
primaryProviderName: actualProviderName,
|
|
123
126
|
quotaSource,
|
|
124
127
|
quotaEntries,
|
|
125
128
|
commandWorkers: true,
|
|
126
129
|
excludedBackends: input.excludedBackends,
|
|
130
|
+
capabilityRanks: input.capabilityRanks,
|
|
127
131
|
});
|
|
128
132
|
// Headless: no host pool in the eligible set — the engine drives the source pools.
|
|
133
|
+
// This is the branch where a zeroing is FATAL rather than degrading (there is no
|
|
134
|
+
// host to fall back to), so the fact must survive the early return.
|
|
129
135
|
if (input.hostCanDispatch === false)
|
|
130
|
-
return sourcePools;
|
|
136
|
+
return { pools: sourcePools, zeroedByExclusion };
|
|
131
137
|
// D1 cross-class dedup: a folded source colliding with the host's pool identity
|
|
132
138
|
// (same provider+account — attended provider=codex=host) keeps exactly ONE pool.
|
|
133
139
|
const dedup = dedupHostAndSourcePools({
|
|
@@ -136,7 +142,7 @@ export async function buildConfirmedPools(input) {
|
|
|
136
142
|
// Remediate policy: command-shaped workers are engine-drivable here (H3).
|
|
137
143
|
commandWorkers: true,
|
|
138
144
|
});
|
|
139
|
-
return [...dedup.hostPools, ...dedup.sourcePools];
|
|
145
|
+
return { pools: [...dedup.hostPools, ...dedup.sourcePools], zeroedByExclusion };
|
|
140
146
|
}
|
|
141
147
|
export async function buildDispatchQuota(runId, phase, schedule, admissionPackets,
|
|
142
148
|
/**
|
|
@@ -179,7 +185,14 @@ dispatchBias) {
|
|
|
179
185
|
ledger: createReservationLedger(),
|
|
180
186
|
// F4 parity with audit's finalizeDispatchQuota: size-fit AND each packet's
|
|
181
187
|
// RELATIVE capability floor over this batch's pool set (fail-open on unknown).
|
|
182
|
-
|
|
188
|
+
// Parity now includes REPORTING the fail-open. This draw passed no reporter, so an
|
|
189
|
+
// unranked pool taking `deep` work was silent here while audit recorded it — and
|
|
190
|
+
// that asymmetry is why an unwired `capabilityRanks` upstream stayed invisible.
|
|
191
|
+
capable: buildObservedCapabilityFloorCapable(pools, (info) => {
|
|
192
|
+
process.stderr.write(`WARNING: capability fail-open — pool "${info.poolId}" has no capability evidence ` +
|
|
193
|
+
`and was admitted for a "${info.requiredTier}" packet (${info.packetId}). ` +
|
|
194
|
+
`Confirm a capability_order at Gate-0, or supply a rank source.\n`);
|
|
195
|
+
}),
|
|
183
196
|
...(dispatchBias != null ? { dispatchBias } : {}),
|
|
184
197
|
base: {
|
|
185
198
|
phase,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waveScheduling.js","sourceRoot":"","sources":["../../../../src/remediate/steps/dispatch/waveScheduling.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"waveScheduling.js","sourceRoot":"","sources":["../../../../src/remediate/steps/dispatch/waveScheduling.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/nextStep.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,KAAK,EAGV,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/nextStep.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { existsSync, statSync } from "node:fs";
|
|
|
3
3
|
import { mkdir, readFile, rename } from "node:fs/promises";
|
|
4
4
|
import { dirname, join, resolve } from "node:path";
|
|
5
5
|
import { StateStore } from "../state/store.js";
|
|
6
|
-
import { readConfirmedDispatchPolicy, resolveDispatchExclusion, readOptionalJsonFile, readValidatedRepoSessionIntent, stagedAndUntracked, writeJsonFile, writeTextFile, buildAuditDeliverablePair, formatValidationIssues, isRecord, withFsRetry, RunLogger, DISPATCH_PROMPT_HANDOFF_NOTE, renderHostScratchNote, hostScratchDir, renderQuotaCoverageNudge, renderTokenBudgetView, coerceJsonObjectArg, driveRolling, resolveLedgerBudgets, setQuotaStateDir, detectHostDispatchWall, admissionBlockedOnBudget, reconcileAdmissionLeasesFromQuotaFile, buildQuotaPausedTerminal, interpretFreeFormIntent, advance, decideFrictionTriage, buildFrictionTriageBlock, planHybridDispatch, readSettledPools, addSettledPool, isPoolSettlingOutcome, isInProcessWorkerProvider, sourceByPoolId, classifyProvider, selectDispatchDriver, renderDispatchDriverInstruction, HostSessionQuotaSource, quotaPoolKey, captureStepBoundaryFriction, captureCostDriftFriction, captureCreditExhaustionFriction, captureQuotaUnclassifiedFriction, captureModelUnavailableFriction, capturePacketTooLargeFriction, LENSES, SEVERITIES, resolveHostProviderName, resolveHostDispatchProviderName, resolveHostDispatchCapability as sharedResolveHostDispatchCapability, resolveAutonomousMode, resolveRollingEngineFlag, DEFAULT_CONTEXT_TOKENS } from "audit-tools/shared";
|
|
6
|
+
import { readConfirmedDispatchPolicy, readConfirmedCapabilityRanks, resolveDispatchExclusion, readOptionalJsonFile, readValidatedRepoSessionIntent, stagedAndUntracked, writeJsonFile, writeTextFile, buildAuditDeliverablePair, formatValidationIssues, isRecord, withFsRetry, RunLogger, DISPATCH_PROMPT_HANDOFF_NOTE, renderHostScratchNote, hostScratchDir, renderQuotaCoverageNudge, renderTokenBudgetView, coerceJsonObjectArg, driveRolling, resolveLedgerBudgets, setQuotaStateDir, detectHostDispatchWall, admissionBlockedOnBudget, reconcileAdmissionLeasesFromQuotaFile, buildQuotaPausedTerminal, interpretFreeFormIntent, advance, decideFrictionTriage, buildFrictionTriageBlock, planHybridDispatch, readSettledPools, addSettledPool, isPoolSettlingOutcome, isInProcessWorkerProvider, sourceByPoolId, classifyProvider, selectDispatchDriver, renderDispatchDriverInstruction, HostSessionQuotaSource, quotaPoolKey, captureStepBoundaryFriction, captureZeroCapacityFriction, captureCostDriftFriction, captureCreditExhaustionFriction, captureQuotaUnclassifiedFriction, captureModelUnavailableFriction, capturePacketTooLargeFriction, LENSES, SEVERITIES, resolveHostProviderName, resolveHostDispatchProviderName, resolveHostDispatchCapability as sharedResolveHostDispatchCapability, resolveAutonomousMode, resolveRollingEngineFlag, DEFAULT_CONTEXT_TOKENS } from "audit-tools/shared";
|
|
7
7
|
import { readRemediationAccessMemory, computeBlockContinuityScores } from "../state/accessMemory.js";
|
|
8
8
|
import { applyPlanPipeline, buildCoverageLedger } from "../phases/plan.js";
|
|
9
9
|
import { groundExtractedFindings } from "../phases/grounding.js";
|
|
@@ -654,21 +654,30 @@ export async function driveRollingImplementDispatch(options) {
|
|
|
654
654
|
});
|
|
655
655
|
// Confirmed pools: quota-derived concurrency, never the raw host flag (INV-QD-11).
|
|
656
656
|
// A partition-scoped caller supplies its coordinator's already-built set instead.
|
|
657
|
-
const
|
|
658
|
-
|
|
657
|
+
const builtPools = options.poolsOverride
|
|
658
|
+
? null
|
|
659
|
+
: await buildConfirmedPools({
|
|
659
660
|
sessionConfig: options.sessionConfig,
|
|
660
661
|
hostMaxConcurrent: options.waveOptions?.hostMaxConcurrent,
|
|
661
662
|
hostContextTokens: options.waveOptions?.hostContextTokens,
|
|
662
663
|
hostOutputTokens: options.waveOptions?.hostOutputTokens,
|
|
663
664
|
hostModels: options.waveOptions?.hostModels,
|
|
664
665
|
hostModelId: options.waveOptions?.hostModelId,
|
|
666
|
+
capabilityRanks: await readConfirmedCapabilityRanks(options.root),
|
|
665
667
|
hostSession,
|
|
666
668
|
// The operator's Gate-0 exclusions, applied as a set-difference over freshly
|
|
667
669
|
// gathered reach. Read here because this layer owns `root`; self-spawn-blocked is
|
|
668
670
|
// recomputed against THIS process's env rather than inherited from the auditor
|
|
669
671
|
// that wrote the confirmation.
|
|
670
672
|
excludedBackends: resolveDispatchExclusion(await readConfirmedDispatchPolicy(options.root)),
|
|
671
|
-
})
|
|
673
|
+
});
|
|
674
|
+
const confirmedPools = options.poolsOverride ?? builtPools.pools;
|
|
675
|
+
// The operator's own policy left this dispatch with no capacity at all. Loud, not
|
|
676
|
+
// silent — a `poolsOverride` caller supplied its own set, so there is no zeroing of
|
|
677
|
+
// OURS to report.
|
|
678
|
+
if (builtPools?.zeroedByExclusion) {
|
|
679
|
+
await captureZeroCapacityFriction(options.artifactsDir, options.runId, builtPools.zeroedByExclusion, "remediate-code");
|
|
680
|
+
}
|
|
672
681
|
// The live per-node worker: the configured provider, launched with the node's
|
|
673
682
|
// worktree-rooted prompt and cwd = its worktree. Tests inject `options.dispatchNode`
|
|
674
683
|
// to exercise the engine without spawning a real worker. A node on a source-backed
|
|
@@ -1210,13 +1219,14 @@ async function buildImplementDispatchStep(ctx) {
|
|
|
1210
1219
|
const hybridHostSession = new HostSessionQuotaSource({
|
|
1211
1220
|
providerModelKey: hybridHostSessionModelKey,
|
|
1212
1221
|
});
|
|
1213
|
-
const confirmedPools = await buildConfirmedPools({
|
|
1222
|
+
const { pools: confirmedPools, zeroedByExclusion } = await buildConfirmedPools({
|
|
1214
1223
|
sessionConfig: sessionConfigImpl ?? null,
|
|
1215
1224
|
hostMaxConcurrent: resolvedHostMaxConcurrent,
|
|
1216
1225
|
hostContextTokens: resolvedHostContextTokens,
|
|
1217
1226
|
hostOutputTokens: resolvedHostOutputTokens,
|
|
1218
1227
|
hostModels: resolvedHostModels,
|
|
1219
1228
|
hostModelId: resolvedHostModelId,
|
|
1229
|
+
capabilityRanks: await readConfirmedCapabilityRanks(root),
|
|
1220
1230
|
hostSession: hybridHostSession,
|
|
1221
1231
|
// Attendance IS pool-set membership: headless ⇒ no host pool in the set.
|
|
1222
1232
|
hostCanDispatch: canDispatchImpl,
|
|
@@ -1224,6 +1234,11 @@ async function buildImplementDispatchStep(ctx) {
|
|
|
1224
1234
|
// gathered reach; self-spawn-blocked recomputed against THIS process's env.
|
|
1225
1235
|
excludedBackends: resolveDispatchExclusion(await readConfirmedDispatchPolicy(root)),
|
|
1226
1236
|
});
|
|
1237
|
+
// Loud, not silent: on the headless branch below there is no host pool to fall
|
|
1238
|
+
// back to, so a policy-zeroed set means this dispatch does nothing at all.
|
|
1239
|
+
if (zeroedByExclusion) {
|
|
1240
|
+
await captureZeroCapacityFriction(artifactsDir, runId, zeroedByExclusion, "remediate-code");
|
|
1241
|
+
}
|
|
1227
1242
|
const backendPools = confirmedPools.filter(isInProcessPool);
|
|
1228
1243
|
if (!canDispatchImpl) {
|
|
1229
1244
|
// Headless: no host pool in the eligible set — when any dispatchable
|