audit-tools 0.32.42 → 0.32.44
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/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.js +21 -1
- package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
- package/dist/audit/cli/scoreTokensCommand.d.ts +18 -0
- package/dist/audit/cli/scoreTokensCommand.d.ts.map +1 -0
- package/dist/audit/cli/scoreTokensCommand.js +130 -0
- package/dist/audit/cli/scoreTokensCommand.js.map +1 -0
- package/dist/audit/cli.d.ts.map +1 -1
- package/dist/audit/cli.js +5 -1
- package/dist/audit/cli.js.map +1 -1
- package/dist/audit/io/tokenUsageLedger.d.ts +57 -0
- package/dist/audit/io/tokenUsageLedger.d.ts.map +1 -0
- package/dist/audit/io/tokenUsageLedger.js +52 -0
- package/dist/audit/io/tokenUsageLedger.js.map +1 -0
- package/dist/audit/reporting/scoreTokens.d.ts +112 -0
- package/dist/audit/reporting/scoreTokens.d.ts.map +1 -0
- package/dist/audit/reporting/scoreTokens.js +195 -0
- package/dist/audit/reporting/scoreTokens.js.map +1 -0
- package/dist/remediate/contractPipeline/counterexampleFingerprint.d.ts +27 -0
- package/dist/remediate/contractPipeline/counterexampleFingerprint.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/counterexampleFingerprint.js +37 -0
- package/dist/remediate/contractPipeline/counterexampleFingerprint.js.map +1 -0
- package/dist/remediate/index.d.ts +34 -0
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +92 -26
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts +30 -0
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +87 -1
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +35 -4
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.d.ts +30 -0
- package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.js +71 -1
- package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
- package/dist/remediate/steps/gateCommands.d.ts +17 -0
- package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
- package/dist/remediate/steps/gateCommands.js +19 -0
- package/dist/remediate/steps/gateCommands.js.map +1 -1
- package/dist/remediate/steps/leanFastPath.d.ts +0 -31
- package/dist/remediate/steps/leanFastPath.d.ts.map +1 -1
- package/dist/remediate/steps/leanFastPath.js +27 -127
- package/dist/remediate/steps/leanFastPath.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +37 -24
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/rollingSession.d.ts.map +1 -1
- package/dist/remediate/steps/rollingSession.js +21 -4
- package/dist/remediate/steps/rollingSession.js.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +15 -26
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/contractPipeline.d.ts +1 -1
- package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipeline.js +1 -1
- package/dist/remediate/validation/contractPipeline.js.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts +52 -0
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.js +61 -0
- package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.d.ts +15 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/loopCorePaths.d.ts +12 -0
- package/dist/shared/loopCorePaths.d.ts.map +1 -0
- package/dist/shared/loopCorePaths.js +67 -0
- package/dist/shared/loopCorePaths.js.map +1 -0
- package/dist/shared/providers/openAiCompatibleProvider.d.ts +29 -0
- package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.js +60 -0
- package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -1
- package/dist/shared/providers/types.d.ts +19 -0
- package/dist/shared/providers/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/wrapper/audit-code-wrapper-lib.mjs +15 -39
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* score-tokens — the COST counterpart to the A-2 quality oracle (`score-audit`).
|
|
3
|
+
*
|
|
4
|
+
* `scoreTokens` is a PURE function of a run's recorded token-usage ledger
|
|
5
|
+
* (`token-usage.jsonl`, appended post-hoc at packet-completion time by
|
|
6
|
+
* `appendTokenUsageLine` — see `src/audit/io/tokenUsageLedger.ts`). It reports
|
|
7
|
+
* real per-step input/output tokens and prefix cache-hit ratio, exactly what the
|
|
8
|
+
* provider reported on a COMPLETED response — never a metered/token-counting API
|
|
9
|
+
* call and never `estimateTokensFromBytes` (that estimator is for PLANNING only).
|
|
10
|
+
*
|
|
11
|
+
* No-silent-scoring (mirrors score-audit's `unmatched[]` discipline): a step
|
|
12
|
+
* whose usage is entirely unreported (the agentic-CLI providers — claude-code /
|
|
13
|
+
* codex / opencode — spawn an external process with no structured usage) is
|
|
14
|
+
* counted in `totals.unmeasured_steps` and excluded from the token/cache-hit
|
|
15
|
+
* aggregates — NEVER folded in as a silent 0.
|
|
16
|
+
*
|
|
17
|
+
* Pure module: no IO, no clock (the ledger's wall-clock timestamp is read but
|
|
18
|
+
* never used to influence the verdict), no model identity — the same (entries,
|
|
19
|
+
* prefixHashes) always yields a byte-identical scorecard, order-independent.
|
|
20
|
+
*/
|
|
21
|
+
import { createHash } from "node:crypto";
|
|
22
|
+
function ratio(numerator, denominator) {
|
|
23
|
+
return denominator === 0 ? null : numerator / denominator;
|
|
24
|
+
}
|
|
25
|
+
/** True iff at least one of the four usage legs was reported (not null/undefined). */
|
|
26
|
+
function isMeasured(entry) {
|
|
27
|
+
return (entry.input_tokens != null ||
|
|
28
|
+
entry.output_tokens != null ||
|
|
29
|
+
entry.cache_read_tokens != null ||
|
|
30
|
+
entry.cache_creation_tokens != null);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Score a run's recorded token-usage ledger — the pure score-tokens oracle.
|
|
34
|
+
*
|
|
35
|
+
* `prefixHashes` is an OPTIONAL caller-supplied map of `packet_id ->
|
|
36
|
+
* fixed-prefix hash` (see {@link packetPromptPrefixHash}), computed by the
|
|
37
|
+
* caller from the run's recorded packet prompts. Omit it when wiring real
|
|
38
|
+
* prompt hashes end-to-end is not available — `prefix_stability` then defaults
|
|
39
|
+
* to `{ stable: true, diverging_packet_ids: [] }` (no signal, not a false
|
|
40
|
+
* failure).
|
|
41
|
+
*/
|
|
42
|
+
export function scoreTokens(runId, entries, prefixHashes) {
|
|
43
|
+
// Deterministic (sorted by packet_id) iteration so the scorecard is
|
|
44
|
+
// byte-identical regardless of input order.
|
|
45
|
+
const sorted = [...entries].sort((a, b) => a.packet_id.localeCompare(b.packet_id));
|
|
46
|
+
const steps = [];
|
|
47
|
+
let totalInput = 0;
|
|
48
|
+
let totalOutput = 0;
|
|
49
|
+
let measuredSteps = 0;
|
|
50
|
+
let unmeasuredSteps = 0;
|
|
51
|
+
let cacheHitReadSum = 0;
|
|
52
|
+
let cacheHitDenomSum = 0;
|
|
53
|
+
let cacheHitQualifyingSteps = 0;
|
|
54
|
+
const providerCoverage = new Map();
|
|
55
|
+
for (const entry of sorted) {
|
|
56
|
+
const poolKey = entry.pool_id ?? "unknown";
|
|
57
|
+
const measured = isMeasured(entry);
|
|
58
|
+
if (measured) {
|
|
59
|
+
measuredSteps += 1;
|
|
60
|
+
totalInput += entry.input_tokens ?? 0;
|
|
61
|
+
totalOutput += entry.output_tokens ?? 0;
|
|
62
|
+
// A pool is "measured" the moment ANY of its steps reported usage.
|
|
63
|
+
providerCoverage.set(poolKey, "measured");
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
unmeasuredSteps += 1;
|
|
67
|
+
// Never downgrade a pool already proven "measured" by an earlier step.
|
|
68
|
+
if (providerCoverage.get(poolKey) !== "measured") {
|
|
69
|
+
providerCoverage.set(poolKey, "unmeasured");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// cache_hit_ratio requires BOTH legs measured (a lone cache_read with no
|
|
73
|
+
// input denominator, or vice versa, is not a ratio — surfaced as null).
|
|
74
|
+
const cacheRead = entry.cache_read_tokens;
|
|
75
|
+
const input = entry.input_tokens;
|
|
76
|
+
let cacheHitRatio = null;
|
|
77
|
+
if (cacheRead != null && input != null) {
|
|
78
|
+
cacheHitRatio = ratio(cacheRead, cacheRead + input);
|
|
79
|
+
if (cacheHitRatio !== null) {
|
|
80
|
+
cacheHitReadSum += cacheRead;
|
|
81
|
+
cacheHitDenomSum += cacheRead + input;
|
|
82
|
+
cacheHitQualifyingSteps += 1;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
steps.push({
|
|
86
|
+
packet_id: entry.packet_id,
|
|
87
|
+
pool_id: entry.pool_id ?? null,
|
|
88
|
+
lens: entry.lens ?? null,
|
|
89
|
+
input_tokens: entry.input_tokens ?? null,
|
|
90
|
+
output_tokens: entry.output_tokens ?? null,
|
|
91
|
+
cache_read_tokens: entry.cache_read_tokens ?? null,
|
|
92
|
+
cache_hit_ratio: cacheHitRatio,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
schema_version: "score-tokens-scorecard/v1",
|
|
97
|
+
run_id: runId,
|
|
98
|
+
steps,
|
|
99
|
+
totals: {
|
|
100
|
+
input_tokens: totalInput,
|
|
101
|
+
output_tokens: totalOutput,
|
|
102
|
+
measured_steps: measuredSteps,
|
|
103
|
+
unmeasured_steps: unmeasuredSteps,
|
|
104
|
+
},
|
|
105
|
+
cache_hit_ratio_overall: cacheHitQualifyingSteps > 0 ? ratio(cacheHitReadSum, cacheHitDenomSum) : null,
|
|
106
|
+
prefix_stability: computePrefixStability(prefixHashes),
|
|
107
|
+
provider_coverage: Object.fromEntries([...providerCoverage.entries()].sort(([a], [b]) => a.localeCompare(b))),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Derive `prefix_stability` from an optional `packet_id -> fixed-prefix hash`
|
|
112
|
+
* map. Absent/empty input defaults to "stable" (no structural signal available,
|
|
113
|
+
* not a false failure). Otherwise every packet must share the FIRST (by sorted
|
|
114
|
+
* packet_id) hash; any divergence is surfaced, never silently averaged away.
|
|
115
|
+
*/
|
|
116
|
+
function computePrefixStability(prefixHashes) {
|
|
117
|
+
const entries = prefixHashes ? Object.entries(prefixHashes) : [];
|
|
118
|
+
if (entries.length === 0)
|
|
119
|
+
return { stable: true, diverging_packet_ids: [] };
|
|
120
|
+
const sortedEntries = [...entries].sort(([a], [b]) => a.localeCompare(b));
|
|
121
|
+
const referenceHash = sortedEntries[0][1];
|
|
122
|
+
const diverging = sortedEntries
|
|
123
|
+
.filter(([, hash]) => hash !== referenceHash)
|
|
124
|
+
.map(([packetId]) => packetId)
|
|
125
|
+
.sort();
|
|
126
|
+
return { stable: diverging.length === 0, diverging_packet_ids: diverging };
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The structural, provider-independent prefix-stability boundary: hash of the
|
|
130
|
+
* FIXED prefix of a packet's rendered prompt — everything BEFORE the volatile
|
|
131
|
+
* `## Packet` section (the same boundary
|
|
132
|
+
* `tests/audit/dispatch-helpers.test.mjs` pins for prompt-caching:
|
|
133
|
+
* `prompt.slice(0, prompt.indexOf("## Packet"))`). Two packets in the same run
|
|
134
|
+
* whose fixed prefix hashes to the SAME value are byte-identical up to that
|
|
135
|
+
* point — the structural precondition for a provider's prefix cache to hit,
|
|
136
|
+
* independent of whether the provider actually reports a cache-hit ratio.
|
|
137
|
+
*
|
|
138
|
+
* A prompt with no `## Packet` marker hashes its entirety (defensive — never
|
|
139
|
+
* throws on an unexpected prompt shape).
|
|
140
|
+
*/
|
|
141
|
+
export function packetPromptPrefixHash(prompt) {
|
|
142
|
+
const markerIdx = prompt.indexOf("## Packet");
|
|
143
|
+
const prefix = markerIdx >= 0 ? prompt.slice(0, markerIdx) : prompt;
|
|
144
|
+
return createHash("sha256").update(prefix, "utf8").digest("hex");
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The SOLE gate predicate: did the overall cache-hit ratio REGRESS (drop)
|
|
148
|
+
* against a baseline? Mirrors score-audit's `hallucinationRegressed` mechanism
|
|
149
|
+
* exactly, direction-flipped (higher cache-hit ratio is BETTER, so a regression
|
|
150
|
+
* is a DECREASE, not an increase).
|
|
151
|
+
*
|
|
152
|
+
* - With no baseline, nothing has regressed.
|
|
153
|
+
* - A `null` current ratio (no measured cache-eligible steps this run) cannot
|
|
154
|
+
* regress.
|
|
155
|
+
* - A `null` baseline ratio is treated as 0 (the floor a ratio can't drop
|
|
156
|
+
* below), so a null baseline never triggers a regression.
|
|
157
|
+
*
|
|
158
|
+
* Token totals are tracked (`totals`) but never gate — track-don't-gate, same
|
|
159
|
+
* policy as score-audit's precision/recall.
|
|
160
|
+
*/
|
|
161
|
+
export function cacheHitRatioRegressed(current, baseline, epsilon = 1e-9) {
|
|
162
|
+
if (!baseline)
|
|
163
|
+
return false;
|
|
164
|
+
const currentRatio = current.cache_hit_ratio_overall;
|
|
165
|
+
if (currentRatio === null)
|
|
166
|
+
return false;
|
|
167
|
+
const baselineRatio = baseline.cache_hit_ratio_overall ?? 0;
|
|
168
|
+
return currentRatio < baselineRatio - epsilon;
|
|
169
|
+
}
|
|
170
|
+
/** A compact, deterministic human summary of a {@link TokenScorecard}. */
|
|
171
|
+
export function renderTokenScorecardMarkdown(scorecard) {
|
|
172
|
+
const pct = (value) => value === null ? "n/a" : `${(value * 100).toFixed(1)}%`;
|
|
173
|
+
const t = scorecard.totals;
|
|
174
|
+
const lines = [
|
|
175
|
+
`# Token scorecard — ${scorecard.run_id}`,
|
|
176
|
+
"",
|
|
177
|
+
`- Steps: ${t.measured_steps + t.unmeasured_steps} (measured ${t.measured_steps}, unmeasured ${t.unmeasured_steps})`,
|
|
178
|
+
`- Input tokens (measured only): ${t.input_tokens}`,
|
|
179
|
+
`- Output tokens (measured only): ${t.output_tokens}`,
|
|
180
|
+
`- Cache-hit ratio (gated): ${pct(scorecard.cache_hit_ratio_overall)}`,
|
|
181
|
+
`- Prefix stability: ${scorecard.prefix_stability.stable ? "stable" : "DIVERGING"}` +
|
|
182
|
+
(scorecard.prefix_stability.diverging_packet_ids.length > 0
|
|
183
|
+
? ` (${scorecard.prefix_stability.diverging_packet_ids.join(", ")})`
|
|
184
|
+
: ""),
|
|
185
|
+
];
|
|
186
|
+
const coverageEntries = Object.entries(scorecard.provider_coverage);
|
|
187
|
+
if (coverageEntries.length > 0) {
|
|
188
|
+
lines.push("", "## Provider coverage");
|
|
189
|
+
for (const [poolId, status] of coverageEntries) {
|
|
190
|
+
lines.push(`- \`${poolId}\`: ${status}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return lines.join("\n") + "\n";
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=scoreTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoreTokens.js","sourceRoot":"","sources":["../../../src/audit/reporting/scoreTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqDzC,SAAS,KAAK,CAAC,SAAiB,EAAE,WAAmB;IACnD,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC;AAC5D,CAAC;AAED,sFAAsF;AACtF,SAAS,UAAU,CAAC,KAAsB;IACxC,OAAO,CACL,KAAK,CAAC,YAAY,IAAI,IAAI;QAC1B,KAAK,CAAC,aAAa,IAAI,IAAI;QAC3B,KAAK,CAAC,iBAAiB,IAAI,IAAI;QAC/B,KAAK,CAAC,qBAAqB,IAAI,IAAI,CACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,OAA0B,EAC1B,YAAqC;IAErC,oEAAoE;IACpE,4CAA4C;IAC5C,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnF,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEtE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,IAAI,CAAC,CAAC;YACnB,UAAU,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACtC,WAAW,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;YACxC,mEAAmE;YACnE,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,eAAe,IAAI,CAAC,CAAC;YACrB,uEAAuE;YACvE,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;gBACjD,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;QACjC,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACvC,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;YACpD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,eAAe,IAAI,SAAS,CAAC;gBAC7B,gBAAgB,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtC,uBAAuB,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;YACxC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI;YAC1C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI;YAClD,eAAe,EAAE,aAAa;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,cAAc,EAAE,2BAA2B;QAC3C,MAAM,EAAE,KAAK;QACb,KAAK;QACL,MAAM,EAAE;YACN,YAAY,EAAE,UAAU;YACxB,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,aAAa;YAC7B,gBAAgB,EAAE,eAAe;SAClC;QACD,uBAAuB,EACrB,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/E,gBAAgB,EAAE,sBAAsB,CAAC,YAAY,CAAC;QACtD,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACvE;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,YAAgD;IAEhD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAE5E,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,aAAa;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;SAC7B,IAAI,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAuB,EACvB,QAA2C,EAC3C,OAAO,GAAG,IAAI;IAEd,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACrD,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,uBAAuB,IAAI,CAAC,CAAC;IAC5D,OAAO,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC;AAChD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,4BAA4B,CAAC,SAAyB;IACpE,MAAM,GAAG,GAAG,CAAC,KAAoB,EAAU,EAAE,CAC3C,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG;QACZ,uBAAuB,SAAS,CAAC,MAAM,EAAE;QACzC,EAAE;QACF,YAAY,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,cAAc,CAAC,CAAC,cAAc,gBAAgB,CAAC,CAAC,gBAAgB,GAAG;QACpH,mCAAmC,CAAC,CAAC,YAAY,EAAE;QACnD,oCAAoC,CAAC,CAAC,aAAa,EAAE;QACrD,8BAA8B,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE;QACtE,uBAAuB,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;YACjF,CAAC,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;gBACzD,CAAC,CAAC,KAAK,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACpE,CAAC,CAAC,EAAE,CAAC;KACV,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,OAAO,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content fingerprint for a counterexample.
|
|
3
|
+
*
|
|
4
|
+
* The judge↔repair convergence gate ({@link evaluateJudgeGate} in
|
|
5
|
+
* `../steps/contractPipeline.js`) must detect genuine re-occurrence of the
|
|
6
|
+
* same unrepaired defect across independent adversarial rounds. The
|
|
7
|
+
* reviewer-supplied counterexample `id` is free text (see
|
|
8
|
+
* `Counterexample.id` in `audit-tools/shared`'s obligations types) and is NOT
|
|
9
|
+
* a stable cross-round identity: two independent critic rounds each commonly
|
|
10
|
+
* label their genuinely-distinct top counterexample "CE-001" (the prompt
|
|
11
|
+
* schema's own example value). Keying convergence on the raw id string then
|
|
12
|
+
* misreads "two different CEs that happen to share a label" as "the same CE
|
|
13
|
+
* re-accepted after a repair" and falsely escalates a stall while a real new
|
|
14
|
+
* defect is being correctly repaired.
|
|
15
|
+
*
|
|
16
|
+
* This fingerprint keys on CONTENT instead: the tool-constrained
|
|
17
|
+
* `violated_obligation_ids` vocabulary (sorted, normalized) paired with the
|
|
18
|
+
* normalized `claim` prose, falling back to the normalized claim alone when
|
|
19
|
+
* no obligations are cited. Mirrors the derivation style of
|
|
20
|
+
* `src/shared/findingIdentitySignature.ts` (tiered stable fields, aggressive
|
|
21
|
+
* title normalization, truncated content hash) rather than introducing a
|
|
22
|
+
* second identity convention.
|
|
23
|
+
*/
|
|
24
|
+
import { type Counterexample } from "audit-tools/shared";
|
|
25
|
+
/** Deterministic, content-derived identity for a counterexample. */
|
|
26
|
+
export declare function counterexampleFingerprint(ce: Counterexample): string;
|
|
27
|
+
//# sourceMappingURL=counterexampleFingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counterexampleFingerprint.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/counterexampleFingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEtF,oEAAoE;AACpE,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAWpE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content fingerprint for a counterexample.
|
|
3
|
+
*
|
|
4
|
+
* The judge↔repair convergence gate ({@link evaluateJudgeGate} in
|
|
5
|
+
* `../steps/contractPipeline.js`) must detect genuine re-occurrence of the
|
|
6
|
+
* same unrepaired defect across independent adversarial rounds. The
|
|
7
|
+
* reviewer-supplied counterexample `id` is free text (see
|
|
8
|
+
* `Counterexample.id` in `audit-tools/shared`'s obligations types) and is NOT
|
|
9
|
+
* a stable cross-round identity: two independent critic rounds each commonly
|
|
10
|
+
* label their genuinely-distinct top counterexample "CE-001" (the prompt
|
|
11
|
+
* schema's own example value). Keying convergence on the raw id string then
|
|
12
|
+
* misreads "two different CEs that happen to share a label" as "the same CE
|
|
13
|
+
* re-accepted after a repair" and falsely escalates a stall while a real new
|
|
14
|
+
* defect is being correctly repaired.
|
|
15
|
+
*
|
|
16
|
+
* This fingerprint keys on CONTENT instead: the tool-constrained
|
|
17
|
+
* `violated_obligation_ids` vocabulary (sorted, normalized) paired with the
|
|
18
|
+
* normalized `claim` prose, falling back to the normalized claim alone when
|
|
19
|
+
* no obligations are cited. Mirrors the derivation style of
|
|
20
|
+
* `src/shared/findingIdentitySignature.ts` (tiered stable fields, aggressive
|
|
21
|
+
* title normalization, truncated content hash) rather than introducing a
|
|
22
|
+
* second identity convention.
|
|
23
|
+
*/
|
|
24
|
+
import { hashContent, normalizeTitle } from "audit-tools/shared";
|
|
25
|
+
/** Deterministic, content-derived identity for a counterexample. */
|
|
26
|
+
export function counterexampleFingerprint(ce) {
|
|
27
|
+
const obligations = (ce.violated_obligation_ids ?? [])
|
|
28
|
+
.map((id) => id.trim().toLowerCase())
|
|
29
|
+
.filter((id) => id.length > 0)
|
|
30
|
+
.sort();
|
|
31
|
+
const claim = normalizeTitle(ce.claim);
|
|
32
|
+
const key = obligations.length > 0
|
|
33
|
+
? `obligations|${obligations.join(",")}|${claim}`
|
|
34
|
+
: `claim|${claim}`;
|
|
35
|
+
return hashContent(key, { length: 8 });
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=counterexampleFingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counterexampleFingerprint.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/counterexampleFingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAEtF,oEAAoE;AACpE,MAAM,UAAU,yBAAyB,CAAC,EAAkB;IAC1D,MAAM,WAAW,GAAG,CAAC,EAAE,CAAC,uBAAuB,IAAI,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACpC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7B,IAAI,EAAE,CAAC;IACV,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GACP,WAAW,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,eAAe,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;QACjD,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC;IACvB,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { runCommand } from "./utils/commands.js";
|
|
3
|
+
import { type ContractPipelineArtifactName } from "./contractPipeline/artifactStore.js";
|
|
4
|
+
import type { ValidationIssue } from "audit-tools/shared";
|
|
3
5
|
declare const program: Command;
|
|
6
|
+
export interface ValidateArtifactActionResult {
|
|
7
|
+
status: "ok" | "error";
|
|
8
|
+
name?: ContractPipelineArtifactName;
|
|
9
|
+
issue_count?: number;
|
|
10
|
+
issues?: ValidationIssue[];
|
|
11
|
+
message?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The `validate-artifact --name X` self-check's full logic, exported so tests
|
|
15
|
+
* can call it directly (no dist build / subprocess race). Returns the JSON body
|
|
16
|
+
* + exit code the CLI action prints/exits with, without doing either itself.
|
|
17
|
+
*
|
|
18
|
+
* Beyond the per-artifact structural validator, this ALSO loads the on-disk
|
|
19
|
+
* sibling contract-pipeline artifacts (under `<artifactsDir>/intake/contract/`)
|
|
20
|
+
* and runs the SAME cross-artifact gates the plural `validate-artifacts` sweep
|
|
21
|
+
* and `next-step` enforce (evaluateContractPipelineCrossGates — single-sourced
|
|
22
|
+
* in validation/contractPipelineGates.ts), substituting the in-flight `name`
|
|
23
|
+
* payload for its on-disk version so the in-flight edit always wins over a
|
|
24
|
+
* stale/absent sibling. Without this, a shape-valid artifact missing its
|
|
25
|
+
* cross-artifact obligations (e.g. a test_validator_plan missing its CE-006
|
|
26
|
+
* scoped negative) could self-validate "ok" here and only fail later at
|
|
27
|
+
* next-step — the exact authoring round-trip this closes.
|
|
28
|
+
*/
|
|
29
|
+
export declare function runValidateArtifactAction(options: {
|
|
30
|
+
name: string;
|
|
31
|
+
file?: string;
|
|
32
|
+
root: string;
|
|
33
|
+
artifactsDir: string;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
result: ValidateArtifactActionResult;
|
|
36
|
+
exitCode: number;
|
|
37
|
+
}>;
|
|
4
38
|
export { program };
|
|
5
39
|
/**
|
|
6
40
|
* Parse argv through the program after normalizing the `=value` form of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EAML,KAAK,4BAA4B,EAClC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAyD1D,QAAA,MAAM,OAAO,SAAgB,CAAC;AAoP9B,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,4BAA4B,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,4BAA4B,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAuFtE;AAiCD,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAEjD;AAUD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAuBR;AAYD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IACJ,GAAG,CAAC,EAAE,OAAO,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GACL,MAAM,CAcR;AA4FD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,EACxC,OAAO,SAAY,EACnB,IAAI,SAAgB,GACnB,IAAI,CA4EN"}
|
package/dist/remediate/index.js
CHANGED
|
@@ -9,9 +9,10 @@ import { decideNextStep } from "./steps/nextStep.js";
|
|
|
9
9
|
import { mergeImplementResults, prepareImplementDispatch, } from "./steps/dispatch.js";
|
|
10
10
|
import { advanceHostRolling, reverifyQuarantinedNode } from "./steps/rollingSession.js";
|
|
11
11
|
import { validateArtifacts } from "./validation/artifacts.js";
|
|
12
|
-
import { CONTRACT_PIPELINE_VALIDATORS } from "./validation/contractPipeline.js";
|
|
13
|
-
import { CP_ARTIFACT_NAMES, isEnvelope, stampToolCreatedAt, } from "./contractPipeline/artifactStore.js";
|
|
14
|
-
import {
|
|
12
|
+
import { CONTRACT_PIPELINE_VALIDATORS, evaluateContractPipelineCrossGates, } from "./validation/contractPipeline.js";
|
|
13
|
+
import { CP_ARTIFACT_NAMES, isEnvelope, stampToolCreatedAt, readContractArtifact, envelopePayload, } from "./contractPipeline/artifactStore.js";
|
|
14
|
+
import { intakePaths } from "./intake.js";
|
|
15
|
+
import { setQuotaStateDir, parseHostModelRoster, PROVIDER_NAMES, remediationArtifactsDir, resolveRepoRoot, mergeOpenCodeAgentPermissionRule, mergeOpenCodeGlobalPermissionRule, migrateOpenCodeGlobalExternalDirectory, withoutOpenCodeWildcard, readOptionalJsonFile, } from "audit-tools/shared";
|
|
15
16
|
// src/remediate/index.ts (source) or dist/remediate/index.js (built) → three
|
|
16
17
|
// dirnames up is the package root, holding package.json + skills/ + opencode.json.
|
|
17
18
|
const pkgRoot = dirname(dirname(dirname(fileURLToPath(import.meta.url))));
|
|
@@ -184,20 +185,33 @@ program
|
|
|
184
185
|
console.log(JSON.stringify(result, null, 2));
|
|
185
186
|
process.exit(result.status === "ok" ? 0 : 1);
|
|
186
187
|
});
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
188
|
+
/**
|
|
189
|
+
* The `validate-artifact --name X` self-check's full logic, exported so tests
|
|
190
|
+
* can call it directly (no dist build / subprocess race). Returns the JSON body
|
|
191
|
+
* + exit code the CLI action prints/exits with, without doing either itself.
|
|
192
|
+
*
|
|
193
|
+
* Beyond the per-artifact structural validator, this ALSO loads the on-disk
|
|
194
|
+
* sibling contract-pipeline artifacts (under `<artifactsDir>/intake/contract/`)
|
|
195
|
+
* and runs the SAME cross-artifact gates the plural `validate-artifacts` sweep
|
|
196
|
+
* and `next-step` enforce (evaluateContractPipelineCrossGates — single-sourced
|
|
197
|
+
* in validation/contractPipelineGates.ts), substituting the in-flight `name`
|
|
198
|
+
* payload for its on-disk version so the in-flight edit always wins over a
|
|
199
|
+
* stale/absent sibling. Without this, a shape-valid artifact missing its
|
|
200
|
+
* cross-artifact obligations (e.g. a test_validator_plan missing its CE-006
|
|
201
|
+
* scoped negative) could self-validate "ok" here and only fail later at
|
|
202
|
+
* next-step — the exact authoring round-trip this closes.
|
|
203
|
+
*/
|
|
204
|
+
export async function runValidateArtifactAction(options) {
|
|
193
205
|
const name = options.name;
|
|
194
206
|
const validator = CONTRACT_PIPELINE_VALIDATORS[name];
|
|
195
207
|
if (!validator) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
208
|
+
return {
|
|
209
|
+
result: {
|
|
210
|
+
status: "error",
|
|
211
|
+
message: `Unknown contract-pipeline artifact "${options.name}". Valid names: ${CP_ARTIFACT_NAMES.join(", ")}.`,
|
|
212
|
+
},
|
|
213
|
+
exitCode: 2,
|
|
214
|
+
};
|
|
201
215
|
}
|
|
202
216
|
let raw;
|
|
203
217
|
try {
|
|
@@ -206,16 +220,20 @@ program
|
|
|
206
220
|
: readFileSync(0, "utf8");
|
|
207
221
|
}
|
|
208
222
|
catch (err) {
|
|
209
|
-
|
|
210
|
-
|
|
223
|
+
return {
|
|
224
|
+
result: { status: "error", message: `Could not read artifact input: ${err.message}` },
|
|
225
|
+
exitCode: 2,
|
|
226
|
+
};
|
|
211
227
|
}
|
|
212
228
|
let parsed;
|
|
213
229
|
try {
|
|
214
230
|
parsed = JSON.parse(raw);
|
|
215
231
|
}
|
|
216
232
|
catch (err) {
|
|
217
|
-
|
|
218
|
-
|
|
233
|
+
return {
|
|
234
|
+
result: { status: "error", message: `Artifact is not valid JSON: ${err.message}` },
|
|
235
|
+
exitCode: 2,
|
|
236
|
+
};
|
|
219
237
|
}
|
|
220
238
|
// Unwrap a stored content-hash envelope so the bare payload is validated
|
|
221
239
|
// against its contract; a plain payload validates as-is. Uses the canonical
|
|
@@ -224,15 +242,63 @@ program
|
|
|
224
242
|
// Stamp the tool-owned `created_at` (host has no clock) so the self-check
|
|
225
243
|
// matches ingest: a host payload without a timestamp is valid here too (B4).
|
|
226
244
|
const payload = stampToolCreatedAt(unwrapped, new Date().toISOString());
|
|
227
|
-
const
|
|
245
|
+
const structuralIssues = validator(payload, name);
|
|
246
|
+
const root = resolve(options.root);
|
|
247
|
+
const artifactsDir = resolveArtifactsDirOption(options.root, options.artifactsDir);
|
|
248
|
+
let crossGateIssues;
|
|
249
|
+
try {
|
|
250
|
+
const payloads = new Map();
|
|
251
|
+
for (const siblingName of CP_ARTIFACT_NAMES) {
|
|
252
|
+
const siblingPayload = envelopePayload(await readContractArtifact(artifactsDir, siblingName));
|
|
253
|
+
if (siblingPayload !== undefined)
|
|
254
|
+
payloads.set(siblingName, siblingPayload);
|
|
255
|
+
}
|
|
256
|
+
// The in-flight payload ALWAYS wins over any stale/absent on-disk copy of
|
|
257
|
+
// the SAME artifact — this is the write-time self-check for `name`, so its
|
|
258
|
+
// in-flight content is what must be gated, not a possibly-stale sibling file.
|
|
259
|
+
payloads.set(name, payload);
|
|
260
|
+
const findingEnumeration = await readOptionalJsonFile(intakePaths(artifactsDir).findingEnumeration);
|
|
261
|
+
crossGateIssues = evaluateContractPipelineCrossGates({
|
|
262
|
+
payloads,
|
|
263
|
+
findingEnumeration,
|
|
264
|
+
root,
|
|
265
|
+
}).flat();
|
|
266
|
+
}
|
|
267
|
+
catch (err) {
|
|
268
|
+
// readContractArtifact / readOptionalJsonFile throw on a corrupt (malformed-
|
|
269
|
+
// JSON) sibling envelope — mirror the same JSON-parse-error shape/exit code
|
|
270
|
+
// the primary --file parse error above uses.
|
|
271
|
+
return {
|
|
272
|
+
result: {
|
|
273
|
+
status: "error",
|
|
274
|
+
message: `Could not load a sibling contract-pipeline artifact: ${err.message}`,
|
|
275
|
+
},
|
|
276
|
+
exitCode: 2,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
const issues = [...structuralIssues, ...crossGateIssues];
|
|
228
280
|
const errors = issues.filter((issue) => issue.severity === "error");
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
281
|
+
return {
|
|
282
|
+
result: {
|
|
283
|
+
status: errors.length === 0 ? "ok" : "error",
|
|
284
|
+
name,
|
|
285
|
+
issue_count: issues.length,
|
|
286
|
+
issues,
|
|
287
|
+
},
|
|
288
|
+
exitCode: errors.length === 0 ? 0 : 1,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
program
|
|
292
|
+
.command("validate-artifact")
|
|
293
|
+
.description("Validate a single contract-pipeline artifact payload against its contract (write-time self-check)")
|
|
294
|
+
.requiredOption("--name <name>", "Contract-pipeline artifact name (e.g. obligation_ledger, test_validator_plan)")
|
|
295
|
+
.option("--file <path>", "Path to the artifact JSON file (defaults to stdin)")
|
|
296
|
+
.option("--root <path>", "Repository root", ".")
|
|
297
|
+
.option("--artifacts-dir <path>", "Artifacts directory", ".audit-tools/remediation")
|
|
298
|
+
.action(async (options) => {
|
|
299
|
+
const { result, exitCode } = await runValidateArtifactAction(options);
|
|
300
|
+
console.log(JSON.stringify(result, null, 2));
|
|
301
|
+
process.exit(exitCode);
|
|
236
302
|
});
|
|
237
303
|
program
|
|
238
304
|
.command("validate")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,kBAAkB,GAEnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EAEd,uBAAuB,EACvB,eAAe,EACf,gCAAgC,EAChC,iCAAiC,EACjC,sCAAsC,EACtC,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,6EAA6E;AAC7E,mFAAmF;AACnF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CACxC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC7B,CAAC;AAEzB,6EAA6E;AAC7E,iFAAiF;AACjF,2CAA2C;AAC3C,IAAI,aAAa,GAMb,EAAE,CAAC;AACP,IAAI,CAAC;IACH,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnF,CAAC;AAAC,MAAM,CAAC;IACP,iEAAiE;AACnE,CAAC;AACD;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,KAAa;IAC5C,IAAK,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAqB,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,mCAAmC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAChF,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,CAAC;AAChF,MAAM,kCAAkC,GACtC,qBAAqB,CAAC,IAAI,IAAI,EAAE,CAAC;AACnC,MAAM,kCAAkC,GACtC,qBAAqB,CAAC,IAAI,IAAI,EAAE,CAAC;AAEnC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,qCAAqC,CAAC;KAClD,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,CAC3B;IACD,8EAA8E;IAC9E,8EAA8E;IAC9E,oEAAoE;IACpE,4EAA4E;IAC5E,yEAAyE;KACxE,MAAM,CACL,gBAAgB,EAChB,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,CAAC,KAAa,EAAE,QAA8B,EAAE,EAAE,CAChD,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAClC,EAAc,CACf;KACA,MAAM,CACL,wBAAwB,EACxB,sIAAsI,CACvI;IACD,8EAA8E;IAC9E,4EAA4E;IAC5E,kEAAkE;IAClE,wCAAwC;KACvC,MAAM,CACL,+BAA+B,EAC/B,0DAA0D,CAC3D;KACA,MAAM,CACL,kCAAkC,EAClC,kEAAkE,CACnE;KACA,MAAM,CACL,2BAA2B,EAC3B,2DAA2D,CAC5D;KACA,MAAM,CACL,2BAA2B,EAC3B,kEAAkE,CACnE;KACA,MAAM,CACL,0BAA0B,EAC1B,oEAAoE,CACrE;KACA,MAAM,CACL,sBAAsB,EACtB,oHAAoH,CACrH;KACA,MAAM,CACL,sBAAsB,EACtB,uEAAuE,CACxE;KACA,MAAM,CACL,wBAAwB,EACxB,8IAA8I,EAC9I,uBAAuB,CACxB;KACA,MAAM,CACL,oBAAoB,EACpB,sEAAsE,CACvE;KACA,MAAM,CACL,gBAAgB,EAChB,iEAAiE,CAClE;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,GAAG,yBAAyB,CAC5C,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,YAAY,CACrB,CAAC;IACF,8DAA8D;IAC9D,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,CAC9C,cAAc,CAAC;QACb,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY;QACZ,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC1C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,SAAS;YACtD,CAAC,CAAC,SAAS;QACb,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC1C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,SAAS;YACtD,CAAC,CAAC,SAAS;QACb,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YACxC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,SAAS;YACrD,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,OAAO,CAAC,UAAU;YAC5B,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;YAC1C,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;QAC7C,YAAY,EAAE,OAAO,CAAC,YAAwC;QAC9D,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI;QACjD,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;KAC1C,CAAC,CACH,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,4BAA4B,CAAC;KACrC,WAAW,CAAC,4DAA4D,CAAC;KACzE,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,CAC3B;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,CAC9C,wBAAwB,CACtB;QACE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;KAC5E,EACD,OAAO,CAAC,KAAK,CACd,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,kDAAkD,CAAC;KAC/D,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,CAC3B;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACvC;QACE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;KAC5E,EACD,OAAO,CAAC,KAAK,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CACV,gHAAgH,CACjH;KACA,cAAc,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;KAC3E,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,CAC3B;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,CACnD,kBAAkB,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;QAC3E,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,EAAE;KACpB,CAAC,CACH,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CACV,0KAA0K,CAC3K;KACA,cAAc,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KACpE,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,CAC3B;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,CAChD,uBAAuB,CACrB;QACE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;KAC5E,EACD,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,EAAE,CACX,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC/C,MAAM,CACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,CAC3B;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CACtB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CACV,mGAAmG,CACpG;KACA,cAAc,CACb,eAAe,EACf,+EAA+E,CAChF;KACA,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAoC,CAAC;IAC1D,MAAM,SAAS,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,uCAAuC,OAAO,CAAC,IAAI,mBAAmB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC/G,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,OAAO,CAAC,IAAI;YAChB,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAC7C,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAmC,GAAa,CAAC,OAAO,EAAE,EAAE,EACxF,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,+BAAgC,GAAa,CAAC,OAAO,EAAE,EAAE,EACrF,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,yEAAyE;IACzE,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;QACE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QAC5C,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,MAAM;KACP,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEL,6EAA6E;AAC7E,2CAA2C;AAC3C,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,qFAAqF;AACrF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACrD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,kBAAkB;AAElB;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAc,EAAE,IAAY;IACnE,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;IAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,IAAI,KAAK,KAAK,GAAG,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,KAAK,KAAK,GAAG,IAAI,QAAQ;YAAE,OAAO,OAAO,CAAC;QAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,gBAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,cAAc,EAAE,CAAC;QACvC,yEAAyE;QACzE,qDAAqD;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,mEAAmE;YACnE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kCAAkC,MAAM,iCAAiC,cAAc,IAAI;YACzF,iFAAiF,CACpF,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAI,EAAoB;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,YAAoB;IAEpB,OAAO,YAAY,KAAK,0BAA0B;QAChD,CAAC,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAII,EAAE;IAEN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;QAC7C,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,sEAAsE;AACtE,2EAA2E;AAC3E,SAAS,mCAAmC,CAAC,QAAkB;IAC7D,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjD,OAAO;QACL,GAAG,kBAAkB;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gCAAgC,CACpC,kBAAkB,CAAC,IAAI,EACvB,kCAAkC,EAClC,uBAAuB,CAAC,kCAAkC,CAAC,CAC5D;QACD,IAAI,EAAE,gCAAgC,CACpC,kBAAkB,CAAC,IAAI,EACvB,kCAAkC,EAClC,uBAAuB,CAAC,kCAAkC,CAAC,CAC5D;KACF,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,yEAAyE;AACzE,4EAA4E;AAC5E,+EAA+E;AAC/E,SAAS,oCAAoC,CAAC,QAAkB;IAC9D,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAA4B;QACtC,GAAG,kBAAkB;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gCAAgC,CACpC,kBAAkB,CAAC,IAAI,EACvB,kCAAkC,EAClC,uBAAuB,CAAC,kCAAkC,CAAC,CAC5D;QACD,IAAI,EAAE,iCAAiC,CACrC,kBAAkB,CAAC,IAAI,EACvB,kCAAkC,EAClC,uBAAuB,CAAC,kCAAkC,CAAC,CAC5D;KACF,CAAC;IACF,MAAM,iBAAiB,GAAG,sCAAsC,CAC9D,kBAAkB,CAAC,kBAAkB,CACtC,CAAC;IACF,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAkB,EAAE,OAAO,GAAG,OAAO,EAAE;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG;QACb,GAAG,MAAM;QACT,OAAO,EAAE;YACP,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE;gBAChC,WAAW,EAAE,qCAAqC;gBAClD,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,KAAK;aACf;SACF;QACD,UAAU,EAAE,oCAAoC,CAAC,MAAM,CAAC,UAAU,CAAC;QACnE,KAAK,EAAE;YACL,GAAG,KAAK;YACR,UAAU,EAAE;gBACV,GAAG,kBAAkB;gBACrB,WAAW,EACT,2EAA2E;gBAC7E,UAAU,EAAE,mCAAmC,CAAC,kBAAkB,CAAC,UAAU,CAAC;aAC/E;SACF;KACF,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAChE,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1E,OAAO,GAAG,MAAM,+BAA+B,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,MAA6B,OAAO,CAAC,GAAG,EACxC,OAAO,GAAG,OAAO,EAAE,EACnB,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IAEpB,MAAM,YAAY,GAAG,IAAI,CACvB,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CACzB,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,aAAa,CACd,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG;QACf;YACE,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,CAAC;YAC/D,OAAO,EAAE,MAAM;SAChB;QACD;YACE,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC;YACrE,OAAO,EAAE,KAAK;SACf;QACD;YACE,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,IAAI,CACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,0BAA0B,CAC3B;YACD,OAAO,EAAE,MAAM;SAChB;QACD,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;YAC5B,CAAC,CAAC;gBACE;oBACE,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,IAAI,CACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,aAAa,CACd;oBACD,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC;iBACtC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,mBAAmB,MAAM,WAAW,OAAO,CAAC,KAAK,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,2BAA2B,CACzC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAC9C,OAAO,CACR,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAE9C,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACnG,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,mBAAmB,iBAAiB,yBAAyB,oBAAoB,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
* - Re-assessable as the run produces evidence (escalate-on-evidence), and the
|
|
22
22
|
* re-assessment may only RAISE the tier, never lower it.
|
|
23
23
|
*/
|
|
24
|
+
import type { Finding } from "audit-tools/shared";
|
|
24
25
|
export declare const INTAKE_RISK_SIGNAL_SCHEMA_VERSION: "remediate-code-intake-risk-signal/v1alpha1";
|
|
25
26
|
/**
|
|
26
27
|
* Ordered risk tiers. The two dials map onto this:
|
|
@@ -165,6 +166,35 @@ export interface DecompositionEvidenceInput {
|
|
|
165
166
|
* deterministic; the {@link escalateRiskSignal} combinator enforces raise-only.
|
|
166
167
|
*/
|
|
167
168
|
export declare function decompositionRiskEvidence(input: DecompositionEvidenceInput): RiskEscalationEvidence | undefined;
|
|
169
|
+
/**
|
|
170
|
+
* Max findings a `low`-tier (lean) run will take — "a handful". Above this, the
|
|
171
|
+
* coordination risk of the batch warrants at least `medium` (the full pipeline).
|
|
172
|
+
*/
|
|
173
|
+
export declare const MAX_FAST_PATH_FINDINGS = 5;
|
|
174
|
+
/**
|
|
175
|
+
* Max DISTINCT affected files across the approved set for a `low`-tier run. A small
|
|
176
|
+
* footprint is the primary structural proxy for "no broad cross-module ripple".
|
|
177
|
+
* (Aligned with the intake breadth threshold `DEFAULT_MEDIUM_FILE_COUNT = 6`, so >5
|
|
178
|
+
* files is `medium` by both the intake signal and this finding-level check.)
|
|
179
|
+
*/
|
|
180
|
+
export declare const MAX_FAST_PATH_FILES = 5;
|
|
181
|
+
/** Distinct affected-file paths across a finding set. */
|
|
182
|
+
export declare function distinctAffectedFiles(findings: Finding[]): string[];
|
|
183
|
+
/**
|
|
184
|
+
* Derive escalate-on-evidence from the APPROVED finding set's finding-level quality /
|
|
185
|
+
* coupling signals — the dimension the intake path/breadth/intent signal does not
|
|
186
|
+
* capture. Any signal that carries design-level doubt raises the tier so the run leaves
|
|
187
|
+
* the `low` (lean) tier for the full contract pipeline:
|
|
188
|
+
* - a `systemic` finding, or an `architecture`-lens finding ⇒ `high` (design-level);
|
|
189
|
+
* - an ungrounded finding, a below-high-confidence finding, a finding coupled to
|
|
190
|
+
* related findings (seam risk), more than {@link MAX_FAST_PATH_FINDINGS} findings,
|
|
191
|
+
* or more than {@link MAX_FAST_PATH_FILES} distinct affected files ⇒ `medium`.
|
|
192
|
+
* Returns undefined when the set is a clean handful of grounded, high-confidence,
|
|
193
|
+
* localized, non-coupled fixes (the tier stays `low` ⇒ lean). Pure + deterministic;
|
|
194
|
+
* the {@link escalateRiskSignal} combinator enforces raise-only. Mirrors
|
|
195
|
+
* {@link decompositionRiskEvidence}'s shape — evidence, never a direct tier write.
|
|
196
|
+
*/
|
|
197
|
+
export declare function findingRiskEvidence(findings: Finding[]): RiskEscalationEvidence | undefined;
|
|
168
198
|
/** Read the persisted intake risk signal, or undefined when none is recorded. */
|
|
169
199
|
export declare function readIntakeRiskSignal(artifactsDir: string): Promise<IntakeRiskSignal | undefined>;
|
|
170
200
|
/** Persist (overwrite) the intake risk signal. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskSignal.d.ts","sourceRoot":"","sources":["../../src/remediate/riskSignal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"riskSignal.d.ts","sourceRoot":"","sources":["../../src/remediate/riskSignal.ts"],"names":[],"mappings":"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"}
|