audit-tools 0.34.28 → 0.34.30
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/README.md +32 -11
- package/dist/audit/cli/args.d.ts +2 -2
- package/dist/audit/cli/args.d.ts.map +1 -1
- package/dist/audit/cli/args.js.map +1 -1
- package/dist/audit/cli/dispatch/paths.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/paths.js +3 -9
- package/dist/audit/cli/dispatch/paths.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +24 -1
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.d.ts +13 -0
- package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.js +43 -7
- package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
- package/dist/audit/extractors/analyzers/typescript.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/typescript.js +3 -2
- package/dist/audit/extractors/analyzers/typescript.js.map +1 -1
- package/dist/audit/extractors/graph.d.ts.map +1 -1
- package/dist/audit/extractors/graph.js +4 -5
- package/dist/audit/extractors/graph.js.map +1 -1
- package/dist/audit/io/artifacts.d.ts +1 -12
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +9 -39
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.js +4 -2
- package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.js +59 -3
- package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts +8 -0
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.js +10 -2
- package/dist/remediate/contractPipeline/reviewSnapshot.js.map +1 -1
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts +7 -1
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/testPlanCarry.js +9 -3
- package/dist/remediate/contractPipeline/testPlanCarry.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +10 -8
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/plan.js +2 -2
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +5 -2
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/state/itemStatus.d.ts +26 -3
- package/dist/remediate/state/itemStatus.d.ts.map +1 -1
- package/dist/remediate/state/itemStatus.js +56 -18
- package/dist/remediate/state/itemStatus.js.map +1 -1
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js +18 -0
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/state/types.d.ts +18 -42
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +5 -3
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +7 -1
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.js +16 -11
- package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
- package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js +10 -7
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -1
- package/dist/remediate/steps/finalGate.d.ts.map +1 -1
- package/dist/remediate/steps/finalGate.js +11 -4
- package/dist/remediate/steps/finalGate.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +111 -20
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/stepUtils.d.ts +23 -0
- package/dist/remediate/steps/stepUtils.d.ts.map +1 -1
- package/dist/remediate/steps/stepUtils.js +55 -1
- package/dist/remediate/steps/stepUtils.js.map +1 -1
- package/dist/shared/constitutionalDocPaths.d.ts +13 -0
- package/dist/shared/constitutionalDocPaths.d.ts.map +1 -0
- package/dist/shared/constitutionalDocPaths.js +73 -0
- package/dist/shared/constitutionalDocPaths.js.map +1 -0
- package/dist/shared/dispatch/coordinator.d.ts +19 -0
- package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
- package/dist/shared/dispatch/coordinator.js +34 -0
- package/dist/shared/dispatch/coordinator.js.map +1 -1
- package/dist/shared/dispatch/hybridDispatch.d.ts +10 -0
- package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/hybridDispatch.js +1 -1
- package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.d.ts +14 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.js +44 -3
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
- package/dist/shared/index.d.ts +5 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +8 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/frictionCapture.d.ts.map +1 -1
- package/dist/shared/io/frictionCapture.js +6 -1
- package/dist/shared/io/frictionCapture.js.map +1 -1
- package/dist/shared/io/pathContainment.d.ts +46 -0
- package/dist/shared/io/pathContainment.d.ts.map +1 -0
- package/dist/shared/io/pathContainment.js +40 -0
- package/dist/shared/io/pathContainment.js.map +1 -0
- package/dist/shared/io/schemaVersion.d.ts +67 -0
- package/dist/shared/io/schemaVersion.d.ts.map +1 -0
- package/dist/shared/io/schemaVersion.js +87 -0
- package/dist/shared/io/schemaVersion.js.map +1 -0
- package/dist/shared/providers/auditorSources.d.ts +9 -1
- package/dist/shared/providers/auditorSources.d.ts.map +1 -1
- package/dist/shared/providers/auditorSources.js +46 -2
- package/dist/shared/providers/auditorSources.js.map +1 -1
- package/dist/shared/providers/claudeWorkerProvider.d.ts +0 -1
- package/dist/shared/providers/claudeWorkerProvider.d.ts.map +1 -1
- package/dist/shared/providers/claudeWorkerProvider.js +4 -2
- package/dist/shared/providers/claudeWorkerProvider.js.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.js +5 -9
- package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.d.ts +42 -1
- package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.js +197 -3
- package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
- package/dist/shared/quota/coverage.js +1 -1
- package/dist/shared/repair/brokeredDispatch.d.ts.map +1 -1
- package/dist/shared/repair/brokeredDispatch.js +10 -48
- package/dist/shared/repair/brokeredDispatch.js.map +1 -1
- package/dist/shared/types/auditorDescriptor.d.ts +8 -2
- package/dist/shared/types/auditorDescriptor.d.ts.map +1 -1
- package/dist/shared/types/auditorDescriptor.js.map +1 -1
- package/dist/shared/types/sessionConfig.d.ts +25 -1
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.js +4 -0
- package/dist/shared/types/sessionConfig.js.map +1 -1
- package/docs/audit-pkg/operator-guide.md +19 -9
- package/docs/audit-pkg/release.md +4 -0
- package/package.json +10 -3
- package/dist/remediate/coverage/findingLedger.d.ts +0 -99
- package/dist/remediate/coverage/findingLedger.d.ts.map +0 -1
- package/dist/remediate/coverage/findingLedger.js +0 -110
- package/dist/remediate/coverage/findingLedger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditorDescriptor.js","sourceRoot":"","sources":["../../../src/shared/types/auditorDescriptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auditorDescriptor.js","sourceRoot":"","sources":["../../../src/shared/types/auditorDescriptor.ts"],"names":[],"mappings":"AAqGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -3,14 +3,25 @@ import type { DispatchModelTier } from "./stepContract.js";
|
|
|
3
3
|
export declare const PROVIDER_NAMES: readonly ["auto", "worker-command", "subprocess-template", "claude-code", "claude-worker", "codex", "opencode", "openai-compatible", "vscode-task", "antigravity", "agy"];
|
|
4
4
|
export type ProviderName = (typeof PROVIDER_NAMES)[number];
|
|
5
5
|
export type ResolvedProviderName = Exclude<ProviderName, "auto">;
|
|
6
|
+
/**
|
|
7
|
+
* A provider that can be the conversation HOST driving a run. `claude-worker` is
|
|
8
|
+
* the proxied dispatch-worker class and is excluded by construction, so a host
|
|
9
|
+
* identity can never be typed as one — the type states what
|
|
10
|
+
* {@link assertHostProviderName} already enforces at runtime.
|
|
11
|
+
*/
|
|
12
|
+
export type HostProviderName = Exclude<ProviderName, "claude-worker">;
|
|
6
13
|
/**
|
|
7
14
|
* Validate a `--host-provider` CLI value against {@link PROVIDER_NAMES}, throwing
|
|
8
15
|
* the same message both orchestrators surface on a typo (host_provider is a
|
|
9
16
|
* quota-ATTRIBUTION key — a silently-wrong value would mis-charge dispatch fan-out
|
|
10
17
|
* to the wrong account). Single-sourced so audit's `getHostProvider` and
|
|
11
18
|
* remediate's `parseHostProviderOption` cannot drift.
|
|
19
|
+
*
|
|
20
|
+
* Narrows to {@link HostProviderName}, not `ProviderName`: this function rejects
|
|
21
|
+
* `claude-worker`, so asserting the wider type would hand every caller a value
|
|
22
|
+
* the validator just refused.
|
|
12
23
|
*/
|
|
13
|
-
export declare function assertHostProviderName(value: string): asserts value is
|
|
24
|
+
export declare function assertHostProviderName(value: string): asserts value is HostProviderName;
|
|
14
25
|
/**
|
|
15
26
|
* The attended-vs-headless discriminator for dispatch (defect-1). TRUE (default,
|
|
16
27
|
* conversation-first) means an attended conversation host is driving THIS invocation
|
|
@@ -342,6 +353,19 @@ export interface DispatchableSource {
|
|
|
342
353
|
api_key_env?: string;
|
|
343
354
|
/** Inline API key (discouraged — prefer `api_key_env`). */
|
|
344
355
|
api_key?: string;
|
|
356
|
+
/**
|
|
357
|
+
* Operator-declared: this endpoint takes NO credential (an unauthenticated local
|
|
358
|
+
* proxy — LiteLLM with no master key, LM Studio, a local vLLM). Reach is then
|
|
359
|
+
* proven by an endpoint liveness probe instead of by an env var, exactly as the
|
|
360
|
+
* `claude-worker` proxy lane already does.
|
|
361
|
+
*
|
|
362
|
+
* EXPLICIT by design, never inferred from an omitted `api_key_env`: forgetting the
|
|
363
|
+
* key is the common error, and the liveness probe cannot catch it (any HTTP status
|
|
364
|
+
* on `/v1/models` counts as alive, so a 401 from a keyed endpoint still reads as
|
|
365
|
+
* reachable). Declaring it together with `api_key_env` is contradictory and is
|
|
366
|
+
* refused rather than silently resolved.
|
|
367
|
+
*/
|
|
368
|
+
no_auth?: boolean;
|
|
345
369
|
/**
|
|
346
370
|
* Worker-kind override (see {@link WorkerKind} / {@link deriveWorkerKind}).
|
|
347
371
|
* Normally DERIVED from the transport — declare it only where genuinely ambiguous.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,eAAO,MAAM,cAAc,2KAYjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEjE
|
|
1
|
+
{"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export const PROVIDER_NAMES = [
|
|
|
18
18
|
* quota-ATTRIBUTION key — a silently-wrong value would mis-charge dispatch fan-out
|
|
19
19
|
* to the wrong account). Single-sourced so audit's `getHostProvider` and
|
|
20
20
|
* remediate's `parseHostProviderOption` cannot drift.
|
|
21
|
+
*
|
|
22
|
+
* Narrows to {@link HostProviderName}, not `ProviderName`: this function rejects
|
|
23
|
+
* `claude-worker`, so asserting the wider type would hand every caller a value
|
|
24
|
+
* the validator just refused.
|
|
21
25
|
*/
|
|
22
26
|
export function assertHostProviderName(value) {
|
|
23
27
|
// claude-worker is the proxied dispatch WORKER class — it can never be the
|
|
@@ -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,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,eAAe;IACf,OAAO;IACP,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,KAAK;CACG,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -221,7 +221,7 @@ Every other field is optional:
|
|
|
221
221
|
{
|
|
222
222
|
"schema_version": "provider-confirmation-input/v1",
|
|
223
223
|
"cost_order": ["<provider-or-model-key>", "..."],
|
|
224
|
-
"exclude": ["
|
|
224
|
+
"exclude": ["transport:<name>", "transport:<name>/<model>", "service:<name>", "host:<endpoint-host>"],
|
|
225
225
|
"include": ["<self-spawn-blocked provider to opt back in>"],
|
|
226
226
|
"host_models": [{ "model_id": "<your model id>", "tier": "frontier|capable|fast" }]
|
|
227
227
|
}
|
|
@@ -232,19 +232,29 @@ Every other field is optional:
|
|
|
232
232
|
report in `host_models`. Keys you omit keep their suggested relative order,
|
|
233
233
|
appended after the ones you name; unrecognized keys are ignored. Omit it to accept
|
|
234
234
|
the suggested order.
|
|
235
|
-
- `exclude` — drops backends from the dispatchable pool. Each entry
|
|
236
|
-
|
|
237
|
-
- `openai-compatible
|
|
238
|
-
|
|
235
|
+
- `exclude` — drops backends from the dispatchable pool. Each entry names its AXIS
|
|
236
|
+
explicitly, so the same string means the same thing on every machine:
|
|
237
|
+
- `transport:openai-compatible/gpt-oss-120b` — that **model** of that transport,
|
|
238
|
+
leaving its other models routable. This is the granularity to reach for: you are
|
|
239
239
|
confirming model choices, so ruling out one model of a multi-model backend
|
|
240
240
|
should not rule out the backend.
|
|
241
|
-
- `codex` — the whole **
|
|
242
|
-
- `
|
|
243
|
-
|
|
241
|
+
- `transport:codex` — the whole **transport**, every model of it.
|
|
242
|
+
- `service:nim` — every transport reaching that **service**, including ones
|
|
243
|
+
discovered later.
|
|
244
|
+
- `host:integrate.api.nvidia.com` (or `host:localhost:8000` to pin a port) — every
|
|
245
|
+
source at that **endpoint host**.
|
|
246
|
+
|
|
247
|
+
The older prefix-less forms (`codex`, `openai-compatible:gpt-oss-120b`,
|
|
248
|
+
`integrate.api.nvidia.com`) are still accepted and migrated to the axis form on
|
|
249
|
+
read, so saved rules keep working. A rule naming an axis that does not exist —
|
|
250
|
+
`model:gpt-oss-120b` — is REFUSED when you submit it, rather than being silently
|
|
251
|
+
reinterpreted as a host rule that matches nothing.
|
|
244
252
|
|
|
245
253
|
A rule is a durable decision, not a reachability claim: it keeps applying on a
|
|
246
254
|
later run and on a different machine, whatever is reachable there. A rule that
|
|
247
|
-
matches nothing is
|
|
255
|
+
matches nothing is legitimate and stays inert — the tool authors one itself every
|
|
256
|
+
run — but the confirmation summary lists any of YOUR rules that matched nothing,
|
|
257
|
+
as an advisory, so a model-name typo is visible without blocking anything.
|
|
248
258
|
- `include` — opts a self-spawn-blocked provider back in. A CLI provider detected
|
|
249
259
|
while you are already inside a session of that same agent (`claude-code` under
|
|
250
260
|
`CLAUDECODE`, `codex` under `CODEX`) is excluded by default so the run can't
|
|
@@ -12,6 +12,10 @@ npm run verify:release
|
|
|
12
12
|
`verify:release` covers:
|
|
13
13
|
|
|
14
14
|
- TypeScript typecheck (`build`)
|
|
15
|
+
- test-tree typecheck (`check:tests`)
|
|
16
|
+
- raw control-byte gate (`check:control-bytes`)
|
|
17
|
+
- loop-core pattern-list drift check (`check:loop-core-patterns`)
|
|
18
|
+
- backlog size-budget gate (`check:backlog-budget`)
|
|
15
19
|
- dead-code export gate (`check:deadcode`)
|
|
16
20
|
- doc-manifest reconciliation gate (`check:doc-manifest`)
|
|
17
21
|
- full automated test suite (`vitest run`)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "audit-tools",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.30",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"description": "Portable hybrid code auditing + remediation orchestrators for arbitrary repositories.",
|
|
@@ -41,16 +41,18 @@
|
|
|
41
41
|
"prebuild": "node scripts/shared/guard-no-suite-running.mjs",
|
|
42
42
|
"build": "tsc -p tsconfig.json && node scripts/shared/copy-data-assets.mjs",
|
|
43
43
|
"check": "tsc -p tsconfig.json --noEmit",
|
|
44
|
+
"check:tests": "tsc -p tsconfig.test.json",
|
|
44
45
|
"nightly:review": "node scripts/nightly/serve.mjs",
|
|
45
46
|
"test:doc-contract": "node scripts/shared/run-vitest-gate.mjs tests/audit/release-contract.test.mjs tests/audit/file-lock-doc-sync.test.mjs tests/audit/host-asset-renderer-drift.test.mjs",
|
|
46
47
|
"test": "npm run build && node scripts/shared/run-vitest-gate.mjs",
|
|
47
48
|
"test:single": "npm run build && node scripts/shared/run-vitest-gate.mjs",
|
|
48
49
|
"verify:guards": "node scripts/shared/run-vitest-gate.mjs --retry=2 --exclude \"**/audit-code-completion.test.mjs\" --exclude \"**/audit-code-wrapper.test.mjs\" --exclude \"**/audit/next-step.test.mjs\" --exclude \"**/seam-host-only-next-step.test.mjs\" --exclude \"**/*-e2e.test.*\" --exclude \"**/next-step-implement-dispatch.test.ts\" --exclude \"**/next-step-pipeline-dispatch.test.ts\"",
|
|
49
|
-
"verify:checks": "node scripts/shared/profile-run.mjs verify-checks check:control-bytes check:loop-core-patterns check:deadcode check:doc-manifest check:backlog-budget build verify:hosts verify:remediate-hosts smoke:packaged-audit-code smoke:packaged-remediate-code",
|
|
50
|
+
"verify:checks": "node scripts/shared/profile-run.mjs verify-checks check:control-bytes check:version-gates check:loop-core-patterns check:constitutional-doc-paths check:deadcode check:doc-manifest check:philosophy-brief check:handoff-roadmap check:memory-citations check:backlog-budget check:backlog-status check:tests build verify:hosts verify:remediate-hosts smoke:packaged-audit-code smoke:packaged-remediate-code",
|
|
50
51
|
"verify:release": "npm run verify:checks && node scripts/shared/run-vitest-gate.mjs",
|
|
51
52
|
"check:control-bytes": "node scripts/check-control-bytes.mjs",
|
|
52
53
|
"check:deadcode": "knip --no-config-hints",
|
|
53
54
|
"check:doc-manifest": "node scripts/check-doc-manifest.mjs",
|
|
55
|
+
"check:philosophy-brief": "node scripts/check-philosophy-brief.mjs",
|
|
54
56
|
"verify:hosts": "node scripts/audit/verify-hosts.mjs",
|
|
55
57
|
"verify:remediate-hosts": "node scripts/remediate/verify-hosts.mjs",
|
|
56
58
|
"smoke:linked-audit-code": "node scripts/audit/smoke-linked-audit-code.mjs",
|
|
@@ -70,7 +72,12 @@
|
|
|
70
72
|
"prepack": "npm run build",
|
|
71
73
|
"prepublishOnly": "npm run verify:release",
|
|
72
74
|
"check:loop-core-patterns": "node scripts/shared/generate-loop-core-patterns.mjs --check",
|
|
73
|
-
"check:backlog-budget": "node scripts/check-backlog-budget.mjs"
|
|
75
|
+
"check:backlog-budget": "node scripts/check-backlog-budget.mjs",
|
|
76
|
+
"check:memory-citations": "node scripts/check-memory-citations.mjs",
|
|
77
|
+
"check:version-gates": "node scripts/check-version-gates.mjs",
|
|
78
|
+
"check:constitutional-doc-paths": "node scripts/shared/generate-constitutional-doc-paths.mjs --check",
|
|
79
|
+
"check:handoff-roadmap": "node scripts/shared/generate-handoff-roadmap.mjs --check",
|
|
80
|
+
"check:backlog-status": "node scripts/check-backlog-status-tokens.mjs"
|
|
74
81
|
},
|
|
75
82
|
"engines": {
|
|
76
83
|
"node": ">=20"
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Per-finding / per-node coverage ledger (N-coverage-ledger).
|
|
3
|
-
*
|
|
4
|
-
* Source_type-aware denominator (INV-CL-05):
|
|
5
|
-
* - structured_audit → finding-enumeration denominator (every finding id
|
|
6
|
-
* from finding-enumeration.json must reach a terminal disposition)
|
|
7
|
-
* - document / non-enumerable → DAG-node denominator (every promoted
|
|
8
|
-
* implementation-DAG node must reach a terminal disposition)
|
|
9
|
-
*
|
|
10
|
-
* A 0/0 ledger is INCOMPLETE (fail-closed) — zero denominator never counts as
|
|
11
|
-
* vacuously complete (INV-CL-05).
|
|
12
|
-
*
|
|
13
|
-
* Terminal dispositions: resolved, resolved_no_change, ignored,
|
|
14
|
-
* deemed_inappropriate, force_closed_unresolved.
|
|
15
|
-
*
|
|
16
|
-
* Non-terminal item statuses (blocked, pending, tested, refactored, verified,
|
|
17
|
-
* tested_successfully) map to force_closed_unresolved so that the ledger is
|
|
18
|
-
* always fully populated after build.
|
|
19
|
-
*
|
|
20
|
-
* Identity (drift-plan R2): the ledger keys every entry off a finding/node id
|
|
21
|
-
* that is already the output of the single finding-identity authority —
|
|
22
|
-
* structured_audit denominator ids come from `assignStableFindingIds`
|
|
23
|
-
* (`<LENS>-<sha256(findingIdentitySignature)>`) and DAG-node denominator ids
|
|
24
|
-
* come from `ensureNodeId`. The ledger therefore performs no identity rule of
|
|
25
|
-
* its own; two findings the shared authority deems the same already collapse to
|
|
26
|
-
* one denominator id upstream (cross-lens dedup), so the ledger never
|
|
27
|
-
* double-counts one identity. The duplicate guard below catches the inverse —
|
|
28
|
-
* one identity id claimed by two entries (a merge/build defect).
|
|
29
|
-
*/
|
|
30
|
-
import type { PerFindingCoverageLedger, PerFindingDenominatorKind, RemediationItemState } from "../state/types.js";
|
|
31
|
-
/**
|
|
32
|
-
* Parameters for building the per-finding ledger.
|
|
33
|
-
*
|
|
34
|
-
* For `structured_audit` sources pass `enumeratedIds` — the complete list of
|
|
35
|
-
* finding ids from `finding-enumeration.json`. For document / non-enumerable
|
|
36
|
-
* sources pass `promotedNodeIds` — the ids of all promoted implementation-DAG
|
|
37
|
-
* nodes.
|
|
38
|
-
*
|
|
39
|
-
* `items` is the `RemediationState.items` record: finding_id → state.
|
|
40
|
-
*/
|
|
41
|
-
export interface BuildPerFindingLedgerParams {
|
|
42
|
-
/** "finding_enumeration" for structured_audit; "dag_node" for document sources. */
|
|
43
|
-
denominatorKind: PerFindingDenominatorKind;
|
|
44
|
-
/**
|
|
45
|
-
* The authoritative denominator set.
|
|
46
|
-
*
|
|
47
|
-
* - structured_audit: every id from finding-enumeration.json (all findings).
|
|
48
|
-
* - document: every promoted implementation-DAG node id.
|
|
49
|
-
*/
|
|
50
|
-
denominatorIds: readonly string[];
|
|
51
|
-
/** The current `RemediationState.items` (may be undefined when state is pre-plan). */
|
|
52
|
-
items: Record<string, RemediationItemState> | undefined;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Build a `PerFindingCoverageLedger` from the authoritative denominator set
|
|
56
|
-
* and the current item state.
|
|
57
|
-
*
|
|
58
|
-
* Every id in `denominatorIds` produces exactly one entry. Ids present in
|
|
59
|
-
* `items` are mapped via `statusToDisposition`; ids absent from `items`
|
|
60
|
-
* (never reached the implement phase) produce `force_closed_unresolved`.
|
|
61
|
-
*/
|
|
62
|
-
export declare function buildPerFindingLedger(params: BuildPerFindingLedgerParams): PerFindingCoverageLedger;
|
|
63
|
-
/** Result returned by `assertLedgerComplete`. */
|
|
64
|
-
export interface LedgerCompletenessResult {
|
|
65
|
-
/** True only when every denominator id has a terminal disposition AND denominator > 0. */
|
|
66
|
-
complete: boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Ids that appear in the denominator but have no terminal disposition
|
|
69
|
-
* (i.e. missing from entries or mapped to a non-terminal disposition).
|
|
70
|
-
*
|
|
71
|
-
* In the current implementation all non-terminal statuses map to
|
|
72
|
-
* `force_closed_unresolved` (which IS terminal), so `missing` contains ids
|
|
73
|
-
* that are absent from `entries` altogether — which cannot happen after
|
|
74
|
-
* `buildPerFindingLedger` runs. This field is retained for callers that
|
|
75
|
-
* construct ledgers manually or via partial merges.
|
|
76
|
-
*/
|
|
77
|
-
missing: string[];
|
|
78
|
-
/**
|
|
79
|
-
* Ids that appear more than once in `entries`. Duplicate entries indicate
|
|
80
|
-
* a merge/build defect (two workers claimed the same finding).
|
|
81
|
-
*/
|
|
82
|
-
duplicated: string[];
|
|
83
|
-
/** How the denominator was derived (pass-through from the ledger). */
|
|
84
|
-
denominator_kind: PerFindingDenominatorKind;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Assert that a `PerFindingCoverageLedger` is complete.
|
|
88
|
-
*
|
|
89
|
-
* Completeness rules (INV-CL-05):
|
|
90
|
-
* 1. `denominator` must be > 0. A 0/0 ledger is INCOMPLETE (fail-closed).
|
|
91
|
-
* 2. Every entry must have a terminal disposition.
|
|
92
|
-
* 3. No id may appear more than once in `entries` (no duplicates).
|
|
93
|
-
* 4. The number of terminal entries must equal `denominator`.
|
|
94
|
-
*
|
|
95
|
-
* Returns `{complete: true, missing: [], duplicated: [], denominator_kind}`
|
|
96
|
-
* when all rules are satisfied; otherwise `{complete: false, missing, duplicated, ...}`.
|
|
97
|
-
*/
|
|
98
|
-
export declare function assertLedgerComplete(ledger: PerFindingCoverageLedger): LedgerCompletenessResult;
|
|
99
|
-
//# sourceMappingURL=findingLedger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findingLedger.d.ts","sourceRoot":"","sources":["../../../src/remediate/coverage/findingLedger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAGzB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAuB3B;;;;;;;;;GASG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mFAAmF;IACnF,eAAe,EAAE,yBAAyB,CAAC;IAC3C;;;;;OAKG;IACH,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,2BAA2B,GAClC,wBAAwB,CAmB1B;AAID,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,gBAAgB,EAAE,yBAAyB,CAAC;CAC7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,wBAAwB,GAC/B,wBAAwB,CAoC1B"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Per-finding / per-node coverage ledger (N-coverage-ledger).
|
|
3
|
-
*
|
|
4
|
-
* Source_type-aware denominator (INV-CL-05):
|
|
5
|
-
* - structured_audit → finding-enumeration denominator (every finding id
|
|
6
|
-
* from finding-enumeration.json must reach a terminal disposition)
|
|
7
|
-
* - document / non-enumerable → DAG-node denominator (every promoted
|
|
8
|
-
* implementation-DAG node must reach a terminal disposition)
|
|
9
|
-
*
|
|
10
|
-
* A 0/0 ledger is INCOMPLETE (fail-closed) — zero denominator never counts as
|
|
11
|
-
* vacuously complete (INV-CL-05).
|
|
12
|
-
*
|
|
13
|
-
* Terminal dispositions: resolved, resolved_no_change, ignored,
|
|
14
|
-
* deemed_inappropriate, force_closed_unresolved.
|
|
15
|
-
*
|
|
16
|
-
* Non-terminal item statuses (blocked, pending, tested, refactored, verified,
|
|
17
|
-
* tested_successfully) map to force_closed_unresolved so that the ledger is
|
|
18
|
-
* always fully populated after build.
|
|
19
|
-
*
|
|
20
|
-
* Identity (drift-plan R2): the ledger keys every entry off a finding/node id
|
|
21
|
-
* that is already the output of the single finding-identity authority —
|
|
22
|
-
* structured_audit denominator ids come from `assignStableFindingIds`
|
|
23
|
-
* (`<LENS>-<sha256(findingIdentitySignature)>`) and DAG-node denominator ids
|
|
24
|
-
* come from `ensureNodeId`. The ledger therefore performs no identity rule of
|
|
25
|
-
* its own; two findings the shared authority deems the same already collapse to
|
|
26
|
-
* one denominator id upstream (cross-lens dedup), so the ledger never
|
|
27
|
-
* double-counts one identity. The duplicate guard below catches the inverse —
|
|
28
|
-
* one identity id claimed by two entries (a merge/build defect).
|
|
29
|
-
*/
|
|
30
|
-
import { statusToDisposition } from "../state/itemStatus.js";
|
|
31
|
-
// ── Disposition terminality ─────────────────────────────────────────────────
|
|
32
|
-
// The status→disposition map is single-sourced in state/itemStatus.ts; this
|
|
33
|
-
// module owns only PerFindingDisposition terminality (which dispositions count
|
|
34
|
-
// toward coverage).
|
|
35
|
-
/** Whether a PerFindingDisposition is terminal (contributes to coverage). */
|
|
36
|
-
const TERMINAL_DISPOSITIONS = new Set([
|
|
37
|
-
"resolved",
|
|
38
|
-
"resolved_no_change",
|
|
39
|
-
"ignored",
|
|
40
|
-
"deemed_inappropriate",
|
|
41
|
-
"force_closed_unresolved",
|
|
42
|
-
]);
|
|
43
|
-
function dispositionIsTerminal(d) {
|
|
44
|
-
return TERMINAL_DISPOSITIONS.has(d);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Build a `PerFindingCoverageLedger` from the authoritative denominator set
|
|
48
|
-
* and the current item state.
|
|
49
|
-
*
|
|
50
|
-
* Every id in `denominatorIds` produces exactly one entry. Ids present in
|
|
51
|
-
* `items` are mapped via `statusToDisposition`; ids absent from `items`
|
|
52
|
-
* (never reached the implement phase) produce `force_closed_unresolved`.
|
|
53
|
-
*/
|
|
54
|
-
export function buildPerFindingLedger(params) {
|
|
55
|
-
const { denominatorKind, denominatorIds, items } = params;
|
|
56
|
-
const entries = denominatorIds.map((id) => {
|
|
57
|
-
const stateItem = items?.[id];
|
|
58
|
-
const disposition = stateItem
|
|
59
|
-
? statusToDisposition(stateItem.status)
|
|
60
|
-
: "force_closed_unresolved";
|
|
61
|
-
return { id, disposition };
|
|
62
|
-
});
|
|
63
|
-
const covered = entries.filter((e) => dispositionIsTerminal(e.disposition)).length;
|
|
64
|
-
return {
|
|
65
|
-
denominator_kind: denominatorKind,
|
|
66
|
-
denominator: denominatorIds.length,
|
|
67
|
-
covered,
|
|
68
|
-
entries,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Assert that a `PerFindingCoverageLedger` is complete.
|
|
73
|
-
*
|
|
74
|
-
* Completeness rules (INV-CL-05):
|
|
75
|
-
* 1. `denominator` must be > 0. A 0/0 ledger is INCOMPLETE (fail-closed).
|
|
76
|
-
* 2. Every entry must have a terminal disposition.
|
|
77
|
-
* 3. No id may appear more than once in `entries` (no duplicates).
|
|
78
|
-
* 4. The number of terminal entries must equal `denominator`.
|
|
79
|
-
*
|
|
80
|
-
* Returns `{complete: true, missing: [], duplicated: [], denominator_kind}`
|
|
81
|
-
* when all rules are satisfied; otherwise `{complete: false, missing, duplicated, ...}`.
|
|
82
|
-
*/
|
|
83
|
-
export function assertLedgerComplete(ledger) {
|
|
84
|
-
const { denominator, entries, denominator_kind } = ledger;
|
|
85
|
-
// Rule 1: fail-closed on zero denominator.
|
|
86
|
-
if (denominator === 0) {
|
|
87
|
-
return { complete: false, missing: [], duplicated: [], denominator_kind };
|
|
88
|
-
}
|
|
89
|
-
// Detect duplicates
|
|
90
|
-
const seen = new Map();
|
|
91
|
-
for (const entry of entries) {
|
|
92
|
-
seen.set(entry.id, (seen.get(entry.id) ?? 0) + 1);
|
|
93
|
-
}
|
|
94
|
-
const duplicated = [...seen.entries()]
|
|
95
|
-
.filter(([, count]) => count > 1)
|
|
96
|
-
.map(([id]) => id);
|
|
97
|
-
// Ids with non-terminal disposition
|
|
98
|
-
const nonTerminal = entries
|
|
99
|
-
.filter((e) => !dispositionIsTerminal(e.disposition))
|
|
100
|
-
.map((e) => e.id);
|
|
101
|
-
// Ids missing from entries entirely (if someone built a partial ledger)
|
|
102
|
-
// We detect this by checking covered vs denominator via the entries array.
|
|
103
|
-
const terminalCount = entries.filter((e) => dispositionIsTerminal(e.disposition)).length;
|
|
104
|
-
const missing = nonTerminal; // non-terminal entries = still missing a real closure
|
|
105
|
-
const complete = duplicated.length === 0 &&
|
|
106
|
-
missing.length === 0 &&
|
|
107
|
-
terminalCount === denominator;
|
|
108
|
-
return { complete, missing, duplicated, denominator_kind };
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=findingLedger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findingLedger.js","sourceRoot":"","sources":["../../../src/remediate/coverage/findingLedger.ts"],"names":[],"mappings":"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"}
|