audit-tools 0.32.23 → 0.32.28
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/conceptualDispatch.d.ts +11 -0
- package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
- package/dist/audit/cli/conceptualDispatch.js +31 -1
- package/dist/audit/cli/conceptualDispatch.js.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/quotaPool.js +7 -1
- package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +27 -0
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +55 -17
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/contracts/workerSchemas.d.ts +4 -4
- package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
- package/dist/audit/orchestrator/advance.d.ts +18 -19
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +32 -40
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +0 -17
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/hostInputPause.d.ts +69 -0
- package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -0
- package/dist/audit/orchestrator/hostInputPause.js +90 -0
- package/dist/audit/orchestrator/hostInputPause.js.map +1 -0
- package/dist/audit/quota/index.d.ts +29 -24
- package/dist/audit/quota/index.d.ts.map +1 -1
- package/dist/audit/types.d.ts +2 -2
- package/dist/remediate/contractPipeline/artifactStore.d.ts +27 -0
- package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/artifactStore.js +34 -0
- package/dist/remediate/contractPipeline/artifactStore.js.map +1 -1
- package/dist/remediate/contractPipeline/changeClassification.d.ts +9 -3
- package/dist/remediate/contractPipeline/changeClassification.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/changeClassification.js +25 -6
- package/dist/remediate/contractPipeline/changeClassification.js.map +1 -1
- package/dist/remediate/contractPipeline/derive.d.ts +42 -0
- package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/derive.js +108 -0
- package/dist/remediate/contractPipeline/derive.js.map +1 -1
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +9 -1
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/intake.d.ts +10 -0
- package/dist/remediate/intake.d.ts.map +1 -1
- package/dist/remediate/intake.js +20 -1
- package/dist/remediate/intake.js.map +1 -1
- package/dist/remediate/phases/grounding.d.ts +7 -4
- package/dist/remediate/phases/grounding.d.ts.map +1 -1
- package/dist/remediate/phases/grounding.js +52 -8
- package/dist/remediate/phases/grounding.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts +1 -0
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +2 -2
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.d.ts +25 -0
- package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.js +65 -7
- package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
- package/dist/remediate/steps/dispatch/common.d.ts +11 -0
- package/dist/remediate/steps/dispatch/common.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/common.js +16 -0
- package/dist/remediate/steps/dispatch/common.js.map +1 -1
- package/dist/remediate/steps/dispatch/implementPrompt.d.ts +13 -0
- package/dist/remediate/steps/dispatch/implementPrompt.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/implementPrompt.js +33 -7
- package/dist/remediate/steps/dispatch/implementPrompt.js.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.js +77 -9
- package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
- package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/waveScheduling.js +3 -1
- package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
- package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +55 -16
- package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js +119 -16
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -1
- package/dist/remediate/steps/dispatch.d.ts +2 -2
- package/dist/remediate/steps/dispatch.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch.js +2 -2
- 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 +12 -1
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +38 -1
- 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 +15 -0
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.js +168 -2
- package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
- package/dist/shared/dispatch/admissionLoop.d.ts +12 -12
- package/dist/shared/dispatch/costRank.d.ts +17 -1
- package/dist/shared/dispatch/costRank.d.ts.map +1 -1
- package/dist/shared/dispatch/costRank.js +8 -4
- package/dist/shared/dispatch/costRank.js.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.js +16 -3
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
- package/dist/shared/friction/captureFrictionEvent.d.ts +13 -0
- package/dist/shared/friction/captureFrictionEvent.d.ts.map +1 -1
- package/dist/shared/friction/captureFrictionEvent.js.map +1 -1
- package/dist/shared/friction/frictionRecord.d.ts +55 -1
- package/dist/shared/friction/frictionRecord.d.ts.map +1 -1
- package/dist/shared/friction/frictionRecord.js +40 -0
- package/dist/shared/friction/frictionRecord.js.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.d.ts +14 -0
- package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
- package/dist/shared/friction/stepBoundaryCapture.js +47 -0
- package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
- package/dist/shared/friction/triage.d.ts +94 -14
- package/dist/shared/friction/triage.d.ts.map +1 -1
- package/dist/shared/friction/triage.js +0 -0
- package/dist/shared/friction/triage.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.d.ts +8 -0
- package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.js +100 -28
- package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -1
- package/dist/shared/quota/apiPool.d.ts.map +1 -1
- package/dist/shared/quota/apiPool.js +19 -0
- package/dist/shared/quota/apiPool.js.map +1 -1
- package/dist/shared/quota/capacity.d.ts +31 -4
- package/dist/shared/quota/capacity.d.ts.map +1 -1
- package/dist/shared/quota/capacity.js +8 -0
- package/dist/shared/quota/capacity.js.map +1 -1
- package/dist/shared/quota/modelStatics.d.ts +15 -7
- package/dist/shared/quota/modelStatics.d.ts.map +1 -1
- package/dist/shared/quota/modelStatics.js +60 -13
- package/dist/shared/quota/modelStatics.js.map +1 -1
- package/dist/shared/quota/quotaSource.d.ts +2 -2
- package/dist/shared/types/sessionConfig.d.ts +10 -0
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.js.map +1 -1
- package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/designFindingGrounding.js +9 -3
- package/dist/shared/validation/designFindingGrounding.js.map +1 -1
- package/dist/shared/validation/findingGrounding.d.ts +40 -0
- package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/findingGrounding.js +83 -0
- package/dist/shared/validation/findingGrounding.js.map +1 -1
- package/opencode.json +34 -22
- package/package.json +2 -2
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
// with `npm run update-models` (scripts/shared/update-models.mjs).
|
|
14
14
|
import { readFileSync } from "node:fs";
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
16
|
+
// Reserved top-level key carrying the optional per-provider index. A model id can
|
|
17
|
+
// never collide with it: models.dev ids never begin with the double underscore.
|
|
18
|
+
const BY_PROVIDER_KEY = "__by_provider";
|
|
16
19
|
// Path to the vendored snapshot, resolved relative to the compiled module. At
|
|
17
20
|
// runtime this module lives at dist/shared/quota/modelStatics.js and the asset
|
|
18
21
|
// is copied to dist/shared/data/ by the build (see scripts/shared/copy-data-assets.mjs).
|
|
@@ -26,7 +29,25 @@ function loadTable() {
|
|
|
26
29
|
try {
|
|
27
30
|
const raw = readFileSync(fileURLToPath(SNAPSHOT_URL), "utf-8");
|
|
28
31
|
const parsed = JSON.parse(raw);
|
|
29
|
-
|
|
32
|
+
if (!parsed || typeof parsed !== "object") {
|
|
33
|
+
cache = null;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Split the reserved `__by_provider` index off the flat default map. Every
|
|
37
|
+
// remaining top-level key is a model-id → statics default entry.
|
|
38
|
+
const byProviderRaw = parsed[BY_PROVIDER_KEY];
|
|
39
|
+
const byProvider = byProviderRaw && typeof byProviderRaw === "object"
|
|
40
|
+
? byProviderRaw
|
|
41
|
+
: {};
|
|
42
|
+
const defaultTable = {};
|
|
43
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
44
|
+
if (key === BY_PROVIDER_KEY)
|
|
45
|
+
continue;
|
|
46
|
+
if (value && typeof value === "object")
|
|
47
|
+
defaultTable[key] = value;
|
|
48
|
+
}
|
|
49
|
+
cache = { default: defaultTable, byProvider };
|
|
50
|
+
}
|
|
30
51
|
}
|
|
31
52
|
catch {
|
|
32
53
|
cache = null;
|
|
@@ -38,19 +59,13 @@ export function resetModelStaticsCache() {
|
|
|
38
59
|
cache = undefined;
|
|
39
60
|
}
|
|
40
61
|
/**
|
|
41
|
-
* Look up
|
|
42
|
-
*
|
|
43
|
-
* `<
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* Returns `undefined` for an unknown id or an unavailable dataset.
|
|
62
|
+
* Look up a model id in one statics table. Tries an exact match first, then
|
|
63
|
+
* case-insensitive, then — for route-prefixed ids like `<vendor>/<id>` or
|
|
64
|
+
* `<router>:<vendor>/<id>` — the segment after the last `/` or `:` route
|
|
65
|
+
* separator. Model ids legitimately contain dots (e.g. a minor version like
|
|
66
|
+
* `-4.1`), so dots are NEVER treated as a namespace separator.
|
|
47
67
|
*/
|
|
48
|
-
|
|
49
|
-
if (!modelId || typeof modelId !== "string")
|
|
50
|
-
return undefined;
|
|
51
|
-
const table = loadTable();
|
|
52
|
-
if (!table)
|
|
53
|
-
return undefined;
|
|
68
|
+
function lookupInTable(table, modelId) {
|
|
54
69
|
if (Object.prototype.hasOwnProperty.call(table, modelId))
|
|
55
70
|
return table[modelId];
|
|
56
71
|
const lower = modelId.toLowerCase();
|
|
@@ -67,4 +82,36 @@ export function resolveModelStatics(modelId) {
|
|
|
67
82
|
}
|
|
68
83
|
return undefined;
|
|
69
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Look up the vendored static metadata for a model id, optionally scoped to a
|
|
87
|
+
* provider.
|
|
88
|
+
*
|
|
89
|
+
* With no `provider`, resolves the DEFAULT entry — on a cross-provider model-id
|
|
90
|
+
* collision that is the cheapest/native price, not the arbitrary first-sorted
|
|
91
|
+
* provider — so an operator who doesn't name a backend never over-prices a model.
|
|
92
|
+
*
|
|
93
|
+
* With a `provider`, prefers that provider's own statics from the per-provider
|
|
94
|
+
* index; falls back to the default entry when the snapshot has no provider-scoped
|
|
95
|
+
* record (single-provider snapshot, or a model only one provider carries), so
|
|
96
|
+
* provider scoping never resolves to *less* than the model-only lookup.
|
|
97
|
+
*
|
|
98
|
+
* `model_id` stays opaque — no vendor/window is inferred from its text. Returns
|
|
99
|
+
* `undefined` for an unknown id or an unavailable dataset.
|
|
100
|
+
*/
|
|
101
|
+
export function resolveModelStatics(modelId, provider) {
|
|
102
|
+
if (!modelId || typeof modelId !== "string")
|
|
103
|
+
return undefined;
|
|
104
|
+
const snapshot = loadTable();
|
|
105
|
+
if (!snapshot)
|
|
106
|
+
return undefined;
|
|
107
|
+
if (provider && typeof provider === "string") {
|
|
108
|
+
const providerTable = snapshot.byProvider[provider];
|
|
109
|
+
if (providerTable) {
|
|
110
|
+
const hit = lookupInTable(providerTable, modelId);
|
|
111
|
+
if (hit !== undefined)
|
|
112
|
+
return hit;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return lookupInTable(snapshot.default, modelId);
|
|
116
|
+
}
|
|
70
117
|
//# sourceMappingURL=modelStatics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelStatics.js","sourceRoot":"","sources":["../../../src/shared/quota/modelStatics.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,iCAAiC;AACjC,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,mEAAmE;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"modelStatics.js","sourceRoot":"","sources":["../../../src/shared/quota/modelStatics.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,11 +56,11 @@ export declare const QuotaUsageSnapshotSchema: z.ZodObject<{
|
|
|
56
56
|
}>, "many">>;
|
|
57
57
|
}, "strict", z.ZodTypeAny, {
|
|
58
58
|
source: string;
|
|
59
|
+
captured_at: string;
|
|
59
60
|
remaining_pct: number | null;
|
|
60
61
|
reset_at: string | null;
|
|
61
62
|
tokens_remaining: number | null;
|
|
62
63
|
requests_remaining: number | null;
|
|
63
|
-
captured_at: string;
|
|
64
64
|
windows?: {
|
|
65
65
|
label: string;
|
|
66
66
|
remaining_pct: number | null;
|
|
@@ -69,11 +69,11 @@ export declare const QuotaUsageSnapshotSchema: z.ZodObject<{
|
|
|
69
69
|
}[] | undefined;
|
|
70
70
|
}, {
|
|
71
71
|
source: string;
|
|
72
|
+
captured_at: string;
|
|
72
73
|
remaining_pct: number | null;
|
|
73
74
|
reset_at: string | null;
|
|
74
75
|
tokens_remaining: number | null;
|
|
75
76
|
requests_remaining: number | null;
|
|
76
|
-
captured_at: string;
|
|
77
77
|
windows?: {
|
|
78
78
|
label: string;
|
|
79
79
|
remaining_pct: number | null;
|
|
@@ -229,6 +229,16 @@ export interface QuotaModelLimits {
|
|
|
229
229
|
requests_per_minute?: number;
|
|
230
230
|
input_tokens_per_minute?: number;
|
|
231
231
|
output_tokens_per_minute?: number;
|
|
232
|
+
/**
|
|
233
|
+
* Hard cap on simultaneously in-flight requests to this source's endpoint — the
|
|
234
|
+
* endpoint-declared max-concurrency (e.g. a NIM worker's `N/M` local request
|
|
235
|
+
* limit). Enforced by COUNT of in-flight requests, independent of the token
|
|
236
|
+
* budget: an optimistic (unmetered) source with no token snapshot would
|
|
237
|
+
* otherwise dispatch every ready packet at once and overrun the endpoint. Flows
|
|
238
|
+
* to `CapacityPool.concurrencyCap` → the rolling engine's per-pool in-flight
|
|
239
|
+
* ceiling and the host-path `AdmissionPool.declaredCap`. Omit for no cap.
|
|
240
|
+
*/
|
|
241
|
+
max_concurrent?: number;
|
|
232
242
|
}
|
|
233
243
|
export interface QuotaConfig {
|
|
234
244
|
enabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,OAAO;IACP,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;CACL,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA6D;IAE7D,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,aAAa,CAAC;IACxE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAK7C;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AAoHjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qBAAqB,EAAE,qBAAqB;IAC5C,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,mBAAmB;IACnB,OAAO;IACP,UAAU;IACV,kBAAkB;IAClB,qBAAqB;CACb,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,OAAO;IACP,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;CACL,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA6D;IAE7D,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,aAAa,CAAC;IACxE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAK7C;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AAoHjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qBAAqB,EAAE,qBAAqB;IAC5C,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,mBAAmB;IACnB,OAAO;IACP,UAAU;IACV,kBAAkB;IAClB,qBAAqB;CACb,CAAC;AAiMX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,WAAW;IACX,WAAW;IACX,MAAM;IACN,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"designFindingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"designFindingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQrE;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,gBAAgB,CA0BlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GAC5D,OAAO,EAAE,CAQX"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
// Repo-relative path normalizer
|
|
2
|
-
|
|
1
|
+
// Repo-relative path normalizer + bare-basename resolver are single-sourced in
|
|
2
|
+
// shared (drift-plan P7 / INV-B3-2).
|
|
3
|
+
import { normalizeRepoPath, resolveBasenameToTrackedPath, } from "./findingGrounding.js";
|
|
3
4
|
/**
|
|
4
5
|
* Ground a single design finding against the set of real repository paths. The
|
|
5
6
|
* verdict is the tool's check, never the model's word: a finding survives as
|
|
@@ -15,7 +16,12 @@ export function groundDesignFinding(finding, knownPaths) {
|
|
|
15
16
|
reason: "cites no component (affected_files is empty)",
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
// A cited path grounds by exact membership (full repo-relative or dotfile-dir
|
|
20
|
+
// path — INV-B3-1) OR, for a bare basename, by uniquely resolving to one
|
|
21
|
+
// tracked full path (INV-B3-2). An ambiguous (>1-match) basename does not
|
|
22
|
+
// ground — the resolver returns undefined there.
|
|
23
|
+
const real = cited.filter((p) => knownPaths.has(p) ||
|
|
24
|
+
resolveBasenameToTrackedPath(p, knownPaths) !== undefined);
|
|
19
25
|
if (real.length === 0) {
|
|
20
26
|
return {
|
|
21
27
|
status: "ungrounded",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"designFindingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAmBA,
|
|
1
|
+
{"version":3,"file":"designFindingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAmBA,+EAA+E;AAC/E,qCAAqC;AACrC,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,UAA+B;IAE/B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,8CAA8C;SACvD,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,yEAAyE;IACzE,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,4BAA4B,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,SAAS,CAC5D,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,mDAAmD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAmB,EACnB,YAA6D;IAE7D,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,OAAO;QACV,SAAS,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;KAC/C,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -9,8 +9,48 @@ export declare function normalizeForMatch(text: string): string;
|
|
|
9
9
|
* grounding and any other consumer that matches a cited `affected_files` path
|
|
10
10
|
* against a repo manifest. (Quote-and-verify resolves a cited path against the
|
|
11
11
|
* filesystem instead, so it does not lowercase — see `verifyFindingGrounding`.)
|
|
12
|
+
*
|
|
13
|
+
* INV-B3-1: strips a leading `./` ONLY — it must NEVER strip the leading dot of a
|
|
14
|
+
* dotfile-directory segment (`.claude/…`, `.github/…`). The regex is anchored to
|
|
15
|
+
* `./` (dot-SLASH); do not broaden it to `/^\.\/?/` or similar, or every
|
|
16
|
+
* dotfile-dir citation silently un-grounds (it would no longer match its
|
|
17
|
+
* `git ls-files` form by exact membership).
|
|
12
18
|
*/
|
|
13
19
|
export declare function normalizeRepoPath(p: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* True when `p` is a bare basename — a single path segment with no separator
|
|
22
|
+
* (`advance.ts`), as opposed to a nested repo-relative path (`src/x/advance.ts`)
|
|
23
|
+
* or a dotfile-dir path (`.claude/hooks/x.mjs`). A bare basename is the one shape
|
|
24
|
+
* that cannot be resolved by a naive `root/<name>` join when the real file is
|
|
25
|
+
* nested, so it is the shape {@link resolveBasenameToTrackedPath} rescues.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isBareBasename(p: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* INV-B3-2: resolve a bare basename (`advance.ts`) to its UNIQUE tracked full
|
|
30
|
+
* path in the known-path corpus (`src/audit/orchestrator/advance.ts`). Returns
|
|
31
|
+
* the single matching corpus entry when exactly one tracked path has that
|
|
32
|
+
* basename; `undefined` when zero OR more-than-one path matches — an ambiguous
|
|
33
|
+
* basename stays a checkable signal, never a silent false-pass.
|
|
34
|
+
*
|
|
35
|
+
* Corpus-agnostic and case-insensitive on the basename: it works whether the
|
|
36
|
+
* caller's corpus is `normalizeRepoPath`-lowercased (the M-B3 gate) or
|
|
37
|
+
* case-preserving (the fs-resolving remediate consumers), and returns the corpus
|
|
38
|
+
* entry as-is so a case-preserving caller gets a real on-disk path back. Single
|
|
39
|
+
* source (drift-plan convention) — the gate, both orchestrators, and
|
|
40
|
+
* `groundDesignFinding` all resolve basenames through this one authority.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveBasenameToTrackedPath(basename: string, knownPaths: ReadonlySet<string>): string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Case-preserving corpus of the tracked working-tree paths at `root`, via
|
|
45
|
+
* `git ls-files` (forward-slashed, trimmed). This is the sibling of the M-B3
|
|
46
|
+
* gate's `enumerateRepoTreePaths` (which `normalizeRepoPath`-lowercases for
|
|
47
|
+
* membership matching): the remediate consumers that resolve a basename and then
|
|
48
|
+
* read the file off disk (line counting) need the REAL on-disk case, so this one
|
|
49
|
+
* does not lowercase. Degrades to an empty set when git is missing / not a repo
|
|
50
|
+
* (callers then fall back to their existing `existsSync` check — monotonic, never
|
|
51
|
+
* a regression). OS-agnostic: `shell: false`, forward-slash output.
|
|
52
|
+
*/
|
|
53
|
+
export declare function enumerateTrackedFilePaths(root: string): Set<string>;
|
|
14
54
|
/**
|
|
15
55
|
* True when the (normalized) quoted span appears anywhere in the (normalized)
|
|
16
56
|
* file content. An empty quote never matches (an empty quote grounds nothing).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"findingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAsBnE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAI7E;AAED,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAKrE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,GAAE,YAAkC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,OAAO,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAClC,OAAO,CAET"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* E3 + P7).
|
|
20
20
|
*/
|
|
21
21
|
import { readFile } from "node:fs/promises";
|
|
22
|
+
import { spawnSync } from "node:child_process";
|
|
22
23
|
import { isAbsolute, join } from "node:path";
|
|
23
24
|
/** Normalize text for content-matching: drop CR, collapse whitespace, trim. */
|
|
24
25
|
export function normalizeForMatch(text) {
|
|
@@ -32,10 +33,92 @@ export function normalizeForMatch(text) {
|
|
|
32
33
|
* grounding and any other consumer that matches a cited `affected_files` path
|
|
33
34
|
* against a repo manifest. (Quote-and-verify resolves a cited path against the
|
|
34
35
|
* filesystem instead, so it does not lowercase — see `verifyFindingGrounding`.)
|
|
36
|
+
*
|
|
37
|
+
* INV-B3-1: strips a leading `./` ONLY — it must NEVER strip the leading dot of a
|
|
38
|
+
* dotfile-directory segment (`.claude/…`, `.github/…`). The regex is anchored to
|
|
39
|
+
* `./` (dot-SLASH); do not broaden it to `/^\.\/?/` or similar, or every
|
|
40
|
+
* dotfile-dir citation silently un-grounds (it would no longer match its
|
|
41
|
+
* `git ls-files` form by exact membership).
|
|
35
42
|
*/
|
|
36
43
|
export function normalizeRepoPath(p) {
|
|
37
44
|
return p.trim().replace(/\\/g, "/").replace(/^\.\//, "").toLowerCase();
|
|
38
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* True when `p` is a bare basename — a single path segment with no separator
|
|
48
|
+
* (`advance.ts`), as opposed to a nested repo-relative path (`src/x/advance.ts`)
|
|
49
|
+
* or a dotfile-dir path (`.claude/hooks/x.mjs`). A bare basename is the one shape
|
|
50
|
+
* that cannot be resolved by a naive `root/<name>` join when the real file is
|
|
51
|
+
* nested, so it is the shape {@link resolveBasenameToTrackedPath} rescues.
|
|
52
|
+
*/
|
|
53
|
+
export function isBareBasename(p) {
|
|
54
|
+
const t = p.trim();
|
|
55
|
+
return t.length > 0 && !t.includes("/") && !t.includes("\\");
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* INV-B3-2: resolve a bare basename (`advance.ts`) to its UNIQUE tracked full
|
|
59
|
+
* path in the known-path corpus (`src/audit/orchestrator/advance.ts`). Returns
|
|
60
|
+
* the single matching corpus entry when exactly one tracked path has that
|
|
61
|
+
* basename; `undefined` when zero OR more-than-one path matches — an ambiguous
|
|
62
|
+
* basename stays a checkable signal, never a silent false-pass.
|
|
63
|
+
*
|
|
64
|
+
* Corpus-agnostic and case-insensitive on the basename: it works whether the
|
|
65
|
+
* caller's corpus is `normalizeRepoPath`-lowercased (the M-B3 gate) or
|
|
66
|
+
* case-preserving (the fs-resolving remediate consumers), and returns the corpus
|
|
67
|
+
* entry as-is so a case-preserving caller gets a real on-disk path back. Single
|
|
68
|
+
* source (drift-plan convention) — the gate, both orchestrators, and
|
|
69
|
+
* `groundDesignFinding` all resolve basenames through this one authority.
|
|
70
|
+
*/
|
|
71
|
+
export function resolveBasenameToTrackedPath(basename, knownPaths) {
|
|
72
|
+
const target = basename.trim().replace(/\\/g, "/");
|
|
73
|
+
if (target.length === 0 || target.includes("/"))
|
|
74
|
+
return undefined;
|
|
75
|
+
const targetLower = target.toLowerCase();
|
|
76
|
+
let match;
|
|
77
|
+
for (const path of knownPaths) {
|
|
78
|
+
const base = path.slice(path.lastIndexOf("/") + 1);
|
|
79
|
+
if (base.toLowerCase() === targetLower) {
|
|
80
|
+
if (match !== undefined)
|
|
81
|
+
return undefined; // >1 match → ambiguous
|
|
82
|
+
match = path;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return match;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Case-preserving corpus of the tracked working-tree paths at `root`, via
|
|
89
|
+
* `git ls-files` (forward-slashed, trimmed). This is the sibling of the M-B3
|
|
90
|
+
* gate's `enumerateRepoTreePaths` (which `normalizeRepoPath`-lowercases for
|
|
91
|
+
* membership matching): the remediate consumers that resolve a basename and then
|
|
92
|
+
* read the file off disk (line counting) need the REAL on-disk case, so this one
|
|
93
|
+
* does not lowercase. Degrades to an empty set when git is missing / not a repo
|
|
94
|
+
* (callers then fall back to their existing `existsSync` check — monotonic, never
|
|
95
|
+
* a regression). OS-agnostic: `shell: false`, forward-slash output.
|
|
96
|
+
*/
|
|
97
|
+
export function enumerateTrackedFilePaths(root) {
|
|
98
|
+
const known = new Set();
|
|
99
|
+
let result;
|
|
100
|
+
try {
|
|
101
|
+
result = spawnSync("git", ["ls-files"], {
|
|
102
|
+
cwd: root,
|
|
103
|
+
encoding: "utf8",
|
|
104
|
+
shell: false,
|
|
105
|
+
windowsHide: true,
|
|
106
|
+
maxBuffer: 64 * 1024 * 1024,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return known;
|
|
111
|
+
}
|
|
112
|
+
if (!result || result.status !== 0 || typeof result.stdout !== "string") {
|
|
113
|
+
return known;
|
|
114
|
+
}
|
|
115
|
+
for (const line of result.stdout.split("\n")) {
|
|
116
|
+
const path = line.trim().replace(/\\/g, "/");
|
|
117
|
+
if (path.length > 0)
|
|
118
|
+
known.add(path);
|
|
119
|
+
}
|
|
120
|
+
return known;
|
|
121
|
+
}
|
|
39
122
|
/**
|
|
40
123
|
* True when the (normalized) quoted span appears anywhere in the (normalized)
|
|
41
124
|
* file content. An empty quote never matches (an empty quote grounds nothing).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG7C,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"findingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"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"}
|
package/opencode.json
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
|
-
"command": {
|
|
4
|
-
"remediate-code": {
|
|
5
|
-
"template": "Run `remediate-code ensure --quiet`, then `remediate-code next-step`, read only the returned prompt_path, and follow that prompt.",
|
|
6
|
-
"description": "Conversation-first code remediation",
|
|
7
|
-
"agent": "remediator",
|
|
8
|
-
"subtask": false
|
|
9
|
-
}
|
|
10
|
-
},
|
|
3
|
+
"command": {},
|
|
11
4
|
"mcp": {},
|
|
12
5
|
"permission": {
|
|
13
6
|
"read": "allow",
|
|
@@ -18,8 +11,9 @@
|
|
|
18
11
|
},
|
|
19
12
|
"edit": {
|
|
20
13
|
"*": "ask",
|
|
21
|
-
".
|
|
14
|
+
".remediate-code/**": "allow",
|
|
22
15
|
".audit-tools/**": "allow",
|
|
16
|
+
".audit-code/**": "allow",
|
|
23
17
|
".audit-artifacts/**": "allow",
|
|
24
18
|
"audit-report.md": "allow"
|
|
25
19
|
},
|
|
@@ -42,12 +36,14 @@
|
|
|
42
36
|
"*dist*index.js* requeue*": "deny",
|
|
43
37
|
"*dist*index.js* synthesize*": "deny",
|
|
44
38
|
"*remediate-code.mjs": "allow",
|
|
39
|
+
"*remediate-code.mjs* accept-node*": "allow",
|
|
45
40
|
"*remediate-code.mjs* ensure*": "allow",
|
|
46
41
|
"*remediate-code.mjs* merge-document-results*": "allow",
|
|
47
42
|
"*remediate-code.mjs* merge-implement-results*": "allow",
|
|
48
43
|
"*remediate-code.mjs* next-step*": "allow",
|
|
49
44
|
"*remediate-code.mjs* prepare-document-dispatch*": "allow",
|
|
50
45
|
"*remediate-code.mjs* prepare-implement-dispatch*": "allow",
|
|
46
|
+
"*remediate-code.mjs* validate*": "allow",
|
|
51
47
|
"*remediate-code.mjs* validate-artifacts*": "allow",
|
|
52
48
|
"Select-String *": "allow",
|
|
53
49
|
"audit-code": "allow",
|
|
@@ -65,12 +61,14 @@
|
|
|
65
61
|
"git status*": "allow",
|
|
66
62
|
"grep *": "allow",
|
|
67
63
|
"remediate-code": "allow",
|
|
64
|
+
"remediate-code accept-node*": "allow",
|
|
68
65
|
"remediate-code ensure*": "allow",
|
|
69
66
|
"remediate-code merge-document-results*": "allow",
|
|
70
67
|
"remediate-code merge-implement-results*": "allow",
|
|
71
68
|
"remediate-code next-step*": "allow",
|
|
72
69
|
"remediate-code prepare-document-dispatch*": "allow",
|
|
73
70
|
"remediate-code prepare-implement-dispatch*": "allow",
|
|
71
|
+
"remediate-code validate*": "allow",
|
|
74
72
|
"remediate-code validate-artifacts*": "allow",
|
|
75
73
|
"rm *": "deny"
|
|
76
74
|
}
|
|
@@ -133,10 +131,18 @@
|
|
|
133
131
|
}
|
|
134
132
|
},
|
|
135
133
|
"remediator": {
|
|
136
|
-
"description": "
|
|
134
|
+
"description": "Remediation orchestration agent for the /remediate-code workflow.",
|
|
137
135
|
"permission": {
|
|
136
|
+
"read": "allow",
|
|
137
|
+
"glob": "allow",
|
|
138
|
+
"grep": "allow",
|
|
139
|
+
"external_directory": {
|
|
140
|
+
"*": "allow"
|
|
141
|
+
},
|
|
138
142
|
"edit": {
|
|
139
143
|
"*": "ask",
|
|
144
|
+
".remediate-code/**": "allow",
|
|
145
|
+
".audit-tools/**": "allow",
|
|
140
146
|
".remediation-artifacts/**": "allow",
|
|
141
147
|
"remediation-report.md": "allow",
|
|
142
148
|
"remediation-report.json": "allow",
|
|
@@ -146,27 +152,33 @@
|
|
|
146
152
|
"*": "ask",
|
|
147
153
|
"remediate-code": "allow",
|
|
148
154
|
"remediate-code ensure*": "allow",
|
|
149
|
-
"remediate-code next-step*": "allow",
|
|
150
|
-
"remediate-code prepare-document-dispatch*": "allow",
|
|
151
|
-
"remediate-code merge-document-results*": "allow",
|
|
152
|
-
"remediate-code prepare-implement-dispatch*": "allow",
|
|
153
|
-
"remediate-code merge-implement-results*": "allow",
|
|
154
|
-
"remediate-code validate-artifacts*": "allow",
|
|
155
|
-
"*remediate-code.mjs": "allow",
|
|
156
155
|
"*remediate-code.mjs* ensure*": "allow",
|
|
156
|
+
"remediate-code next-step*": "allow",
|
|
157
157
|
"*remediate-code.mjs* next-step*": "allow",
|
|
158
|
-
"
|
|
159
|
-
"*remediate-code.mjs* merge-document-results*": "allow",
|
|
158
|
+
"remediate-code prepare-implement-dispatch*": "allow",
|
|
160
159
|
"*remediate-code.mjs* prepare-implement-dispatch*": "allow",
|
|
160
|
+
"remediate-code merge-implement-results*": "allow",
|
|
161
161
|
"*remediate-code.mjs* merge-implement-results*": "allow",
|
|
162
|
-
"
|
|
162
|
+
"remediate-code accept-node*": "allow",
|
|
163
|
+
"*remediate-code.mjs* accept-node*": "allow",
|
|
164
|
+
"remediate-code validate*": "allow",
|
|
165
|
+
"*remediate-code.mjs* validate*": "allow",
|
|
166
|
+
"*remediate-code.mjs": "allow",
|
|
163
167
|
"git status*": "allow",
|
|
164
168
|
"git diff*": "allow",
|
|
165
169
|
"grep *": "allow",
|
|
166
170
|
"Select-String *": "allow",
|
|
167
|
-
"rm *": "deny"
|
|
171
|
+
"rm *": "deny",
|
|
172
|
+
"remediate-code prepare-document-dispatch*": "allow",
|
|
173
|
+
"remediate-code merge-document-results*": "allow",
|
|
174
|
+
"remediate-code validate-artifacts*": "allow",
|
|
175
|
+
"*remediate-code.mjs* prepare-document-dispatch*": "allow",
|
|
176
|
+
"*remediate-code.mjs* merge-document-results*": "allow",
|
|
177
|
+
"*remediate-code.mjs* validate-artifacts*": "allow"
|
|
168
178
|
},
|
|
169
|
-
"
|
|
179
|
+
"remediator_*": "allow",
|
|
180
|
+
"question": "allow",
|
|
181
|
+
"task": "allow"
|
|
170
182
|
}
|
|
171
183
|
}
|
|
172
184
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "audit-tools",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.28",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"description": "Portable hybrid code auditing + remediation orchestrators for arbitrary repositories.",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"test:doc-contract": "vitest run tests/audit/release-contract.test.mjs tests/audit/priority-chain-doc-sync.test.mjs tests/audit/file-lock-doc-sync.test.mjs tests/audit/host-asset-renderer-drift.test.mjs",
|
|
43
43
|
"test": "npm run build && vitest run",
|
|
44
44
|
"test:single": "npm run build && vitest run",
|
|
45
|
-
"verify:checks": "
|
|
45
|
+
"verify:checks": "node scripts/shared/profile-run.mjs verify-checks check:deadcode check:doc-manifest build verify:hosts verify:remediate-hosts smoke:packaged-audit-code smoke:packaged-remediate-code",
|
|
46
46
|
"verify:release": "npm run verify:checks && vitest run",
|
|
47
47
|
"check:deadcode": "knip --no-config-hints",
|
|
48
48
|
"check:doc-manifest": "node scripts/check-doc-manifest.mjs",
|