audit-tools 0.28.0
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.audit.md +223 -0
- package/README.md +42 -0
- package/README.remediate.md +113 -0
- package/audit-code-wrapper-build.mjs +185 -0
- package/audit-code-wrapper-install-hosts.mjs +1079 -0
- package/audit-code-wrapper-install-renderers.mjs +58 -0
- package/audit-code-wrapper-io.mjs +155 -0
- package/audit-code-wrapper-legacy.mjs +125 -0
- package/audit-code-wrapper-lib.mjs +314 -0
- package/audit-code-wrapper-opencode.mjs +241 -0
- package/audit-code.mjs +12 -0
- package/dispatch/lens-definitions.json +46 -0
- package/dispatch/merge-results.mjs +110 -0
- package/dispatch/validate-result.mjs +59 -0
- package/dispatch/validate.mjs +16 -0
- package/dist/audit/adapters/coverageSummary.d.ts +9 -0
- package/dist/audit/adapters/coverageSummary.d.ts.map +1 -0
- package/dist/audit/adapters/coverageSummary.js +18 -0
- package/dist/audit/adapters/coverageSummary.js.map +1 -0
- package/dist/audit/adapters/eslint.d.ts +14 -0
- package/dist/audit/adapters/eslint.d.ts.map +1 -0
- package/dist/audit/adapters/eslint.js +28 -0
- package/dist/audit/adapters/eslint.js.map +1 -0
- package/dist/audit/adapters/normalizeExternal.d.ts +13 -0
- package/dist/audit/adapters/normalizeExternal.d.ts.map +1 -0
- package/dist/audit/adapters/normalizeExternal.js +44 -0
- package/dist/audit/adapters/normalizeExternal.js.map +1 -0
- package/dist/audit/adapters/npmAudit.d.ts +16 -0
- package/dist/audit/adapters/npmAudit.d.ts.map +1 -0
- package/dist/audit/adapters/npmAudit.js +24 -0
- package/dist/audit/adapters/npmAudit.js.map +1 -0
- package/dist/audit/adapters/semgrep.d.ts +23 -0
- package/dist/audit/adapters/semgrep.d.ts.map +1 -0
- package/dist/audit/adapters/semgrep.js +40 -0
- package/dist/audit/adapters/semgrep.js.map +1 -0
- package/dist/audit/cli/advanceAuditCommand.d.ts +2 -0
- package/dist/audit/cli/advanceAuditCommand.d.ts.map +1 -0
- package/dist/audit/cli/advanceAuditCommand.js +95 -0
- package/dist/audit/cli/advanceAuditCommand.js.map +1 -0
- package/dist/audit/cli/args.d.ts +95 -0
- package/dist/audit/cli/args.d.ts.map +1 -0
- package/dist/audit/cli/args.js +274 -0
- package/dist/audit/cli/args.js.map +1 -0
- package/dist/audit/cli/auditStep.d.ts +34 -0
- package/dist/audit/cli/auditStep.d.ts.map +1 -0
- package/dist/audit/cli/auditStep.js +162 -0
- package/dist/audit/cli/auditStep.js.map +1 -0
- package/dist/audit/cli/cleanup.d.ts +12 -0
- package/dist/audit/cli/cleanup.d.ts.map +1 -0
- package/dist/audit/cli/cleanup.js +44 -0
- package/dist/audit/cli/cleanup.js.map +1 -0
- package/dist/audit/cli/cleanupCommand.d.ts +2 -0
- package/dist/audit/cli/cleanupCommand.d.ts.map +1 -0
- package/dist/audit/cli/cleanupCommand.js +25 -0
- package/dist/audit/cli/cleanupCommand.js.map +1 -0
- package/dist/audit/cli/conceptualDispatch.d.ts +74 -0
- package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -0
- package/dist/audit/cli/conceptualDispatch.js +118 -0
- package/dist/audit/cli/conceptualDispatch.js.map +1 -0
- package/dist/audit/cli/confirmIntentStep.d.ts +25 -0
- package/dist/audit/cli/confirmIntentStep.d.ts.map +1 -0
- package/dist/audit/cli/confirmIntentStep.js +210 -0
- package/dist/audit/cli/confirmIntentStep.js.map +1 -0
- package/dist/audit/cli/dispatch/packetFilter.d.ts +102 -0
- package/dist/audit/cli/dispatch/packetFilter.d.ts.map +1 -0
- package/dist/audit/cli/dispatch/packetFilter.js +148 -0
- package/dist/audit/cli/dispatch/packetFilter.js.map +1 -0
- package/dist/audit/cli/dispatch/packetPrompt.d.ts +48 -0
- package/dist/audit/cli/dispatch/packetPrompt.d.ts.map +1 -0
- package/dist/audit/cli/dispatch/packetPrompt.js +258 -0
- package/dist/audit/cli/dispatch/packetPrompt.js.map +1 -0
- package/dist/audit/cli/dispatch/paths.d.ts +7 -0
- package/dist/audit/cli/dispatch/paths.d.ts.map +1 -0
- package/dist/audit/cli/dispatch/paths.js +38 -0
- package/dist/audit/cli/dispatch/paths.js.map +1 -0
- package/dist/audit/cli/dispatch/quotaPool.d.ts +75 -0
- package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -0
- package/dist/audit/cli/dispatch/quotaPool.js +163 -0
- package/dist/audit/cli/dispatch/quotaPool.js.map +1 -0
- package/dist/audit/cli/dispatch/tierRouting.d.ts +36 -0
- package/dist/audit/cli/dispatch/tierRouting.d.ts.map +1 -0
- package/dist/audit/cli/dispatch/tierRouting.js +121 -0
- package/dist/audit/cli/dispatch/tierRouting.js.map +1 -0
- package/dist/audit/cli/dispatch/types.d.ts +90 -0
- package/dist/audit/cli/dispatch/types.d.ts.map +1 -0
- package/dist/audit/cli/dispatch/types.js +15 -0
- package/dist/audit/cli/dispatch/types.js.map +1 -0
- package/dist/audit/cli/dispatch.d.ts +29 -0
- package/dist/audit/cli/dispatch.d.ts.map +1 -0
- package/dist/audit/cli/dispatch.js +303 -0
- package/dist/audit/cli/dispatch.js.map +1 -0
- package/dist/audit/cli/dispatchStatusCommand.d.ts +2 -0
- package/dist/audit/cli/dispatchStatusCommand.d.ts.map +1 -0
- package/dist/audit/cli/dispatchStatusCommand.js +81 -0
- package/dist/audit/cli/dispatchStatusCommand.js.map +1 -0
- package/dist/audit/cli/envelope.d.ts +50 -0
- package/dist/audit/cli/envelope.d.ts.map +1 -0
- package/dist/audit/cli/envelope.js +69 -0
- package/dist/audit/cli/envelope.js.map +1 -0
- package/dist/audit/cli/explainTaskCommand.d.ts +2 -0
- package/dist/audit/cli/explainTaskCommand.d.ts.map +1 -0
- package/dist/audit/cli/explainTaskCommand.js +34 -0
- package/dist/audit/cli/explainTaskCommand.js.map +1 -0
- package/dist/audit/cli/importExternalAnalyzerCommand.d.ts +2 -0
- package/dist/audit/cli/importExternalAnalyzerCommand.d.ts.map +1 -0
- package/dist/audit/cli/importExternalAnalyzerCommand.js +25 -0
- package/dist/audit/cli/importExternalAnalyzerCommand.js.map +1 -0
- package/dist/audit/cli/ingestResultsCommand.d.ts +2 -0
- package/dist/audit/cli/ingestResultsCommand.d.ts.map +1 -0
- package/dist/audit/cli/ingestResultsCommand.js +42 -0
- package/dist/audit/cli/ingestResultsCommand.js.map +1 -0
- package/dist/audit/cli/intakeCommand.d.ts +2 -0
- package/dist/audit/cli/intakeCommand.d.ts.map +1 -0
- package/dist/audit/cli/intakeCommand.js +18 -0
- package/dist/audit/cli/intakeCommand.js.map +1 -0
- package/dist/audit/cli/lineIndex.d.ts +5 -0
- package/dist/audit/cli/lineIndex.d.ts.map +1 -0
- package/dist/audit/cli/lineIndex.js +70 -0
- package/dist/audit/cli/lineIndex.js.map +1 -0
- package/dist/audit/cli/mergeAndIngestCommand.d.ts +46 -0
- package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -0
- package/dist/audit/cli/mergeAndIngestCommand.js +541 -0
- package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -0
- package/dist/audit/cli/nextStepCommand.d.ts +22 -0
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -0
- package/dist/audit/cli/nextStepCommand.js +531 -0
- package/dist/audit/cli/nextStepCommand.js.map +1 -0
- package/dist/audit/cli/nextStepHelpers.d.ts +303 -0
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -0
- package/dist/audit/cli/nextStepHelpers.js +861 -0
- package/dist/audit/cli/nextStepHelpers.js.map +1 -0
- package/dist/audit/cli/paths.d.ts +2 -0
- package/dist/audit/cli/paths.d.ts.map +1 -0
- package/dist/audit/cli/paths.js +10 -0
- package/dist/audit/cli/paths.js.map +1 -0
- package/dist/audit/cli/planCommand.d.ts +2 -0
- package/dist/audit/cli/planCommand.d.ts.map +1 -0
- package/dist/audit/cli/planCommand.js +17 -0
- package/dist/audit/cli/planCommand.js.map +1 -0
- package/dist/audit/cli/prepareDispatchCommand.d.ts +2 -0
- package/dist/audit/cli/prepareDispatchCommand.d.ts.map +1 -0
- package/dist/audit/cli/prepareDispatchCommand.js +37 -0
- package/dist/audit/cli/prepareDispatchCommand.js.map +1 -0
- package/dist/audit/cli/prompts.d.ts +54 -0
- package/dist/audit/cli/prompts.d.ts.map +1 -0
- package/dist/audit/cli/prompts.js +324 -0
- package/dist/audit/cli/prompts.js.map +1 -0
- package/dist/audit/cli/quotaCommand.d.ts +2 -0
- package/dist/audit/cli/quotaCommand.d.ts.map +1 -0
- package/dist/audit/cli/quotaCommand.js +64 -0
- package/dist/audit/cli/quotaCommand.js.map +1 -0
- package/dist/audit/cli/requeueCommand.d.ts +2 -0
- package/dist/audit/cli/requeueCommand.d.ts.map +1 -0
- package/dist/audit/cli/requeueCommand.js +11 -0
- package/dist/audit/cli/requeueCommand.js.map +1 -0
- package/dist/audit/cli/resynthesizeCommand.d.ts +2 -0
- package/dist/audit/cli/resynthesizeCommand.d.ts.map +1 -0
- package/dist/audit/cli/resynthesizeCommand.js +57 -0
- package/dist/audit/cli/resynthesizeCommand.js.map +1 -0
- package/dist/audit/cli/reviewRun.d.ts +57 -0
- package/dist/audit/cli/reviewRun.d.ts.map +1 -0
- package/dist/audit/cli/reviewRun.js +180 -0
- package/dist/audit/cli/reviewRun.js.map +1 -0
- package/dist/audit/cli/rollingAuditDispatch.d.ts +119 -0
- package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -0
- package/dist/audit/cli/rollingAuditDispatch.js +264 -0
- package/dist/audit/cli/rollingAuditDispatch.js.map +1 -0
- package/dist/audit/cli/sampleRunCommand.d.ts +2 -0
- package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -0
- package/dist/audit/cli/sampleRunCommand.js +106 -0
- package/dist/audit/cli/sampleRunCommand.js.map +1 -0
- package/dist/audit/cli/semanticReviewStep.d.ts +23 -0
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -0
- package/dist/audit/cli/semanticReviewStep.js +123 -0
- package/dist/audit/cli/semanticReviewStep.js.map +1 -0
- package/dist/audit/cli/statusCommand.d.ts +2 -0
- package/dist/audit/cli/statusCommand.d.ts.map +1 -0
- package/dist/audit/cli/statusCommand.js +133 -0
- package/dist/audit/cli/statusCommand.js.map +1 -0
- package/dist/audit/cli/steps.d.ts +204 -0
- package/dist/audit/cli/steps.d.ts.map +1 -0
- package/dist/audit/cli/steps.js +105 -0
- package/dist/audit/cli/steps.js.map +1 -0
- package/dist/audit/cli/submitPacketCommand.d.ts +2 -0
- package/dist/audit/cli/submitPacketCommand.d.ts.map +1 -0
- package/dist/audit/cli/submitPacketCommand.js +126 -0
- package/dist/audit/cli/submitPacketCommand.js.map +1 -0
- package/dist/audit/cli/synthesizeCommand.d.ts +2 -0
- package/dist/audit/cli/synthesizeCommand.d.ts.map +1 -0
- package/dist/audit/cli/synthesizeCommand.js +16 -0
- package/dist/audit/cli/synthesizeCommand.js.map +1 -0
- package/dist/audit/cli/updateRuntimeValidationCommand.d.ts +2 -0
- package/dist/audit/cli/updateRuntimeValidationCommand.d.ts.map +1 -0
- package/dist/audit/cli/updateRuntimeValidationCommand.js +17 -0
- package/dist/audit/cli/updateRuntimeValidationCommand.js.map +1 -0
- package/dist/audit/cli/validateCommand.d.ts +2 -0
- package/dist/audit/cli/validateCommand.d.ts.map +1 -0
- package/dist/audit/cli/validateCommand.js +42 -0
- package/dist/audit/cli/validateCommand.js.map +1 -0
- package/dist/audit/cli/validateResultCommand.d.ts +2 -0
- package/dist/audit/cli/validateResultCommand.d.ts.map +1 -0
- package/dist/audit/cli/validateResultCommand.js +92 -0
- package/dist/audit/cli/validateResultCommand.js.map +1 -0
- package/dist/audit/cli/validateResultsCommand.d.ts +2 -0
- package/dist/audit/cli/validateResultsCommand.d.ts.map +1 -0
- package/dist/audit/cli/validateResultsCommand.js +32 -0
- package/dist/audit/cli/validateResultsCommand.js.map +1 -0
- package/dist/audit/cli/waveManifest.d.ts +41 -0
- package/dist/audit/cli/waveManifest.d.ts.map +1 -0
- package/dist/audit/cli/waveManifest.js +42 -0
- package/dist/audit/cli/waveManifest.js.map +1 -0
- package/dist/audit/cli/workerResult.d.ts +19 -0
- package/dist/audit/cli/workerResult.d.ts.map +1 -0
- package/dist/audit/cli/workerResult.js +43 -0
- package/dist/audit/cli/workerResult.js.map +1 -0
- package/dist/audit/cli/workerRunCommand.d.ts +16 -0
- package/dist/audit/cli/workerRunCommand.d.ts.map +1 -0
- package/dist/audit/cli/workerRunCommand.js +132 -0
- package/dist/audit/cli/workerRunCommand.js.map +1 -0
- package/dist/audit/cli.d.ts +21 -0
- package/dist/audit/cli.d.ts.map +1 -0
- package/dist/audit/cli.js +137 -0
- package/dist/audit/cli.js.map +1 -0
- package/dist/audit/contracts/workerSchemas.d.ts +1448 -0
- package/dist/audit/contracts/workerSchemas.d.ts.map +1 -0
- package/dist/audit/contracts/workerSchemas.js +117 -0
- package/dist/audit/contracts/workerSchemas.js.map +1 -0
- package/dist/audit/contracts/wrapperResponse.d.ts +316 -0
- package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -0
- package/dist/audit/contracts/wrapperResponse.js +96 -0
- package/dist/audit/contracts/wrapperResponse.js.map +1 -0
- package/dist/audit/coverage.d.ts +11 -0
- package/dist/audit/coverage.d.ts.map +1 -0
- package/dist/audit/coverage.js +78 -0
- package/dist/audit/coverage.js.map +1 -0
- package/dist/audit/extractors/analyzers/css.d.ts +3 -0
- package/dist/audit/extractors/analyzers/css.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/css.js +102 -0
- package/dist/audit/extractors/analyzers/css.js.map +1 -0
- package/dist/audit/extractors/analyzers/html.d.ts +3 -0
- package/dist/audit/extractors/analyzers/html.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/html.js +93 -0
- package/dist/audit/extractors/analyzers/html.js.map +1 -0
- package/dist/audit/extractors/analyzers/merge.d.ts +15 -0
- package/dist/audit/extractors/analyzers/merge.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/merge.js +86 -0
- package/dist/audit/extractors/analyzers/merge.js.map +1 -0
- package/dist/audit/extractors/analyzers/python.d.ts +3 -0
- package/dist/audit/extractors/analyzers/python.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/python.js +105 -0
- package/dist/audit/extractors/analyzers/python.js.map +1 -0
- package/dist/audit/extractors/analyzers/registry.d.ts +34 -0
- package/dist/audit/extractors/analyzers/registry.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/registry.js +82 -0
- package/dist/audit/extractors/analyzers/registry.js.map +1 -0
- package/dist/audit/extractors/analyzers/resourceUrl.d.ts +8 -0
- package/dist/audit/extractors/analyzers/resourceUrl.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/resourceUrl.js +26 -0
- package/dist/audit/extractors/analyzers/resourceUrl.js.map +1 -0
- package/dist/audit/extractors/analyzers/sql.d.ts +3 -0
- package/dist/audit/extractors/analyzers/sql.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/sql.js +23 -0
- package/dist/audit/extractors/analyzers/sql.js.map +1 -0
- package/dist/audit/extractors/analyzers/treeSitter.d.ts +44 -0
- package/dist/audit/extractors/analyzers/treeSitter.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/treeSitter.js +148 -0
- package/dist/audit/extractors/analyzers/treeSitter.js.map +1 -0
- package/dist/audit/extractors/analyzers/types.d.ts +54 -0
- package/dist/audit/extractors/analyzers/types.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/types.js +2 -0
- package/dist/audit/extractors/analyzers/types.js.map +1 -0
- package/dist/audit/extractors/analyzers/typescript.d.ts +3 -0
- package/dist/audit/extractors/analyzers/typescript.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/typescript.js +279 -0
- package/dist/audit/extractors/analyzers/typescript.js.map +1 -0
- package/dist/audit/extractors/browserExtension.d.ts +12 -0
- package/dist/audit/extractors/browserExtension.d.ts.map +1 -0
- package/dist/audit/extractors/browserExtension.js +388 -0
- package/dist/audit/extractors/browserExtension.js.map +1 -0
- package/dist/audit/extractors/bucketing.d.ts +12 -0
- package/dist/audit/extractors/bucketing.d.ts.map +1 -0
- package/dist/audit/extractors/bucketing.js +56 -0
- package/dist/audit/extractors/bucketing.js.map +1 -0
- package/dist/audit/extractors/designAssessment.d.ts +10 -0
- package/dist/audit/extractors/designAssessment.d.ts.map +1 -0
- package/dist/audit/extractors/designAssessment.js +280 -0
- package/dist/audit/extractors/designAssessment.js.map +1 -0
- package/dist/audit/extractors/disposition.d.ts +76 -0
- package/dist/audit/extractors/disposition.d.ts.map +1 -0
- package/dist/audit/extractors/disposition.js +265 -0
- package/dist/audit/extractors/disposition.js.map +1 -0
- package/dist/audit/extractors/fileInventory.d.ts +8 -0
- package/dist/audit/extractors/fileInventory.d.ts.map +1 -0
- package/dist/audit/extractors/fileInventory.js +36 -0
- package/dist/audit/extractors/fileInventory.js.map +1 -0
- package/dist/audit/extractors/flows.d.ts +9 -0
- package/dist/audit/extractors/flows.d.ts.map +1 -0
- package/dist/audit/extractors/flows.js +111 -0
- package/dist/audit/extractors/flows.js.map +1 -0
- package/dist/audit/extractors/fsIntake.d.ts +9 -0
- package/dist/audit/extractors/fsIntake.d.ts.map +1 -0
- package/dist/audit/extractors/fsIntake.js +95 -0
- package/dist/audit/extractors/fsIntake.js.map +1 -0
- package/dist/audit/extractors/graph.d.ts +11 -0
- package/dist/audit/extractors/graph.d.ts.map +1 -0
- package/dist/audit/extractors/graph.js +472 -0
- package/dist/audit/extractors/graph.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/cargo.d.ts +15 -0
- package/dist/audit/extractors/graphManifestEdges/cargo.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/cargo.js +74 -0
- package/dist/audit/extractors/graphManifestEdges/cargo.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/go.d.ts +6 -0
- package/dist/audit/extractors/graphManifestEdges/go.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/go.js +152 -0
- package/dist/audit/extractors/graphManifestEdges/go.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/index.d.ts +9 -0
- package/dist/audit/extractors/graphManifestEdges/index.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/index.js +12 -0
- package/dist/audit/extractors/graphManifestEdges/index.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/jsonc.d.ts +4 -0
- package/dist/audit/extractors/graphManifestEdges/jsonc.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/jsonc.js +98 -0
- package/dist/audit/extractors/graphManifestEdges/jsonc.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/maven.d.ts +4 -0
- package/dist/audit/extractors/graphManifestEdges/maven.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/maven.js +74 -0
- package/dist/audit/extractors/graphManifestEdges/maven.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/packageJson.d.ts +20 -0
- package/dist/audit/extractors/graphManifestEdges/packageJson.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/packageJson.js +205 -0
- package/dist/audit/extractors/graphManifestEdges/packageJson.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/pnpm.d.ts +10 -0
- package/dist/audit/extractors/graphManifestEdges/pnpm.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/pnpm.js +18 -0
- package/dist/audit/extractors/graphManifestEdges/pnpm.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/pyproject.d.ts +4 -0
- package/dist/audit/extractors/graphManifestEdges/pyproject.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/pyproject.js +45 -0
- package/dist/audit/extractors/graphManifestEdges/pyproject.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/toml.d.ts +25 -0
- package/dist/audit/extractors/graphManifestEdges/toml.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/toml.js +49 -0
- package/dist/audit/extractors/graphManifestEdges/toml.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/typescript.d.ts +4 -0
- package/dist/audit/extractors/graphManifestEdges/typescript.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/typescript.js +57 -0
- package/dist/audit/extractors/graphManifestEdges/typescript.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/workspace.d.ts +11 -0
- package/dist/audit/extractors/graphManifestEdges/workspace.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/workspace.js +73 -0
- package/dist/audit/extractors/graphManifestEdges/workspace.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/yaml.d.ts +24 -0
- package/dist/audit/extractors/graphManifestEdges/yaml.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/yaml.js +57 -0
- package/dist/audit/extractors/graphManifestEdges/yaml.js.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/yamlPaths.d.ts +5 -0
- package/dist/audit/extractors/graphManifestEdges/yamlPaths.d.ts.map +1 -0
- package/dist/audit/extractors/graphManifestEdges/yamlPaths.js +75 -0
- package/dist/audit/extractors/graphManifestEdges/yamlPaths.js.map +1 -0
- package/dist/audit/extractors/graphPathUtils.d.ts +34 -0
- package/dist/audit/extractors/graphPathUtils.d.ts.map +1 -0
- package/dist/audit/extractors/graphPathUtils.js +174 -0
- package/dist/audit/extractors/graphPathUtils.js.map +1 -0
- package/dist/audit/extractors/graphPythonImports.d.ts +19 -0
- package/dist/audit/extractors/graphPythonImports.d.ts.map +1 -0
- package/dist/audit/extractors/graphPythonImports.js +318 -0
- package/dist/audit/extractors/graphPythonImports.js.map +1 -0
- package/dist/audit/extractors/graphRoutes.d.ts +13 -0
- package/dist/audit/extractors/graphRoutes.d.ts.map +1 -0
- package/dist/audit/extractors/graphRoutes.js +447 -0
- package/dist/audit/extractors/graphRoutes.js.map +1 -0
- package/dist/audit/extractors/graphSuites.d.ts +5 -0
- package/dist/audit/extractors/graphSuites.d.ts.map +1 -0
- package/dist/audit/extractors/graphSuites.js +248 -0
- package/dist/audit/extractors/graphSuites.js.map +1 -0
- package/dist/audit/extractors/graphTestSources.d.ts +3 -0
- package/dist/audit/extractors/graphTestSources.d.ts.map +1 -0
- package/dist/audit/extractors/graphTestSources.js +103 -0
- package/dist/audit/extractors/graphTestSources.js.map +1 -0
- package/dist/audit/extractors/ignore.d.ts +2 -0
- package/dist/audit/extractors/ignore.d.ts.map +1 -0
- package/dist/audit/extractors/ignore.js +18 -0
- package/dist/audit/extractors/ignore.js.map +1 -0
- package/dist/audit/extractors/languageMap.generated.d.ts +2 -0
- package/dist/audit/extractors/languageMap.generated.d.ts.map +1 -0
- package/dist/audit/extractors/languageMap.generated.js +1456 -0
- package/dist/audit/extractors/languageMap.generated.js.map +1 -0
- package/dist/audit/extractors/pathPatterns.d.ts +55 -0
- package/dist/audit/extractors/pathPatterns.d.ts.map +1 -0
- package/dist/audit/extractors/pathPatterns.js +303 -0
- package/dist/audit/extractors/pathPatterns.js.map +1 -0
- package/dist/audit/extractors/risk.d.ts +5 -0
- package/dist/audit/extractors/risk.d.ts.map +1 -0
- package/dist/audit/extractors/risk.js +54 -0
- package/dist/audit/extractors/risk.js.map +1 -0
- package/dist/audit/extractors/surfaces.d.ts +10 -0
- package/dist/audit/extractors/surfaces.d.ts.map +1 -0
- package/dist/audit/extractors/surfaces.js +49 -0
- package/dist/audit/extractors/surfaces.js.map +1 -0
- package/dist/audit/index.d.ts +2 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +3 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/io/artifacts.d.ts +152 -0
- package/dist/audit/io/artifacts.d.ts.map +1 -0
- package/dist/audit/io/artifacts.js +239 -0
- package/dist/audit/io/artifacts.js.map +1 -0
- package/dist/audit/io/runArtifactTypes.d.ts +19 -0
- package/dist/audit/io/runArtifactTypes.d.ts.map +1 -0
- package/dist/audit/io/runArtifactTypes.js +2 -0
- package/dist/audit/io/runArtifactTypes.js.map +1 -0
- package/dist/audit/io/runArtifacts.d.ts +33 -0
- package/dist/audit/io/runArtifacts.d.ts.map +1 -0
- package/dist/audit/io/runArtifacts.js +254 -0
- package/dist/audit/io/runArtifacts.js.map +1 -0
- package/dist/audit/io/toolingManifest.d.ts +4 -0
- package/dist/audit/io/toolingManifest.d.ts.map +1 -0
- package/dist/audit/io/toolingManifest.js +79 -0
- package/dist/audit/io/toolingManifest.js.map +1 -0
- package/dist/audit/orchestrator/advance.d.ts +5 -0
- package/dist/audit/orchestrator/advance.d.ts.map +1 -0
- package/dist/audit/orchestrator/advance.js +172 -0
- package/dist/audit/orchestrator/advance.js.map +1 -0
- package/dist/audit/orchestrator/advanceTypes.d.ts +50 -0
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -0
- package/dist/audit/orchestrator/advanceTypes.js +2 -0
- package/dist/audit/orchestrator/advanceTypes.js.map +1 -0
- package/dist/audit/orchestrator/artifactFreshness.d.ts +4 -0
- package/dist/audit/orchestrator/artifactFreshness.d.ts.map +1 -0
- package/dist/audit/orchestrator/artifactFreshness.js +99 -0
- package/dist/audit/orchestrator/artifactFreshness.js.map +1 -0
- package/dist/audit/orchestrator/artifactMetadata.d.ts +6 -0
- package/dist/audit/orchestrator/artifactMetadata.d.ts.map +1 -0
- package/dist/audit/orchestrator/artifactMetadata.js +98 -0
- package/dist/audit/orchestrator/artifactMetadata.js.map +1 -0
- package/dist/audit/orchestrator/auditTaskUtils.d.ts +10 -0
- package/dist/audit/orchestrator/auditTaskUtils.d.ts.map +1 -0
- package/dist/audit/orchestrator/auditTaskUtils.js +53 -0
- package/dist/audit/orchestrator/auditTaskUtils.js.map +1 -0
- package/dist/audit/orchestrator/autoFixExecutor.d.ts +4 -0
- package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/autoFixExecutor.js +152 -0
- package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -0
- package/dist/audit/orchestrator/chunking.d.ts +6 -0
- package/dist/audit/orchestrator/chunking.d.ts.map +1 -0
- package/dist/audit/orchestrator/chunking.js +14 -0
- package/dist/audit/orchestrator/chunking.js.map +1 -0
- package/dist/audit/orchestrator/dependencyMap.d.ts +74 -0
- package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -0
- package/dist/audit/orchestrator/dependencyMap.js +193 -0
- package/dist/audit/orchestrator/dependencyMap.js.map +1 -0
- package/dist/audit/orchestrator/designReviewProjection.d.ts +66 -0
- package/dist/audit/orchestrator/designReviewProjection.d.ts.map +1 -0
- package/dist/audit/orchestrator/designReviewProjection.js +215 -0
- package/dist/audit/orchestrator/designReviewProjection.js.map +1 -0
- package/dist/audit/orchestrator/designReviewPrompt.d.ts +82 -0
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -0
- package/dist/audit/orchestrator/designReviewPrompt.js +474 -0
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -0
- package/dist/audit/orchestrator/designReviewSnapshot.d.ts +69 -0
- package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -0
- package/dist/audit/orchestrator/designReviewSnapshot.js +135 -0
- package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -0
- package/dist/audit/orchestrator/edgeReasoning.d.ts +40 -0
- package/dist/audit/orchestrator/edgeReasoning.d.ts.map +1 -0
- package/dist/audit/orchestrator/edgeReasoning.js +126 -0
- package/dist/audit/orchestrator/edgeReasoning.js.map +1 -0
- package/dist/audit/orchestrator/executorResult.d.ts +71 -0
- package/dist/audit/orchestrator/executorResult.d.ts.map +1 -0
- package/dist/audit/orchestrator/executorResult.js +2 -0
- package/dist/audit/orchestrator/executorResult.js.map +1 -0
- package/dist/audit/orchestrator/executorRunners.d.ts +34 -0
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -0
- package/dist/audit/orchestrator/executorRunners.js +85 -0
- package/dist/audit/orchestrator/executorRunners.js.map +1 -0
- package/dist/audit/orchestrator/executors.d.ts +13 -0
- package/dist/audit/orchestrator/executors.d.ts.map +1 -0
- package/dist/audit/orchestrator/executors.js +114 -0
- package/dist/audit/orchestrator/executors.js.map +1 -0
- package/dist/audit/orchestrator/fileAnchors.d.ts +33 -0
- package/dist/audit/orchestrator/fileAnchors.d.ts.map +1 -0
- package/dist/audit/orchestrator/fileAnchors.js +242 -0
- package/dist/audit/orchestrator/fileAnchors.js.map +1 -0
- package/dist/audit/orchestrator/fileIntegrity.d.ts +9 -0
- package/dist/audit/orchestrator/fileIntegrity.d.ts.map +1 -0
- package/dist/audit/orchestrator/fileIntegrity.js +58 -0
- package/dist/audit/orchestrator/fileIntegrity.js.map +1 -0
- package/dist/audit/orchestrator/flowCoverage.d.ts +5 -0
- package/dist/audit/orchestrator/flowCoverage.d.ts.map +1 -0
- package/dist/audit/orchestrator/flowCoverage.js +46 -0
- package/dist/audit/orchestrator/flowCoverage.js.map +1 -0
- package/dist/audit/orchestrator/flowPlanning.d.ts +8 -0
- package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -0
- package/dist/audit/orchestrator/flowPlanning.js +65 -0
- package/dist/audit/orchestrator/flowPlanning.js.map +1 -0
- package/dist/audit/orchestrator/flowRequeue.d.ts +6 -0
- package/dist/audit/orchestrator/flowRequeue.d.ts.map +1 -0
- package/dist/audit/orchestrator/flowRequeue.js +73 -0
- package/dist/audit/orchestrator/flowRequeue.js.map +1 -0
- package/dist/audit/orchestrator/graphEnrichmentExecutor.d.ts +30 -0
- package/dist/audit/orchestrator/graphEnrichmentExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/graphEnrichmentExecutor.js +227 -0
- package/dist/audit/orchestrator/graphEnrichmentExecutor.js.map +1 -0
- package/dist/audit/orchestrator/ingestionExecutors.d.ts +10 -0
- package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -0
- package/dist/audit/orchestrator/ingestionExecutors.js +262 -0
- package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -0
- package/dist/audit/orchestrator/intakeExecutors.d.ts +26 -0
- package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -0
- package/dist/audit/orchestrator/intakeExecutors.js +138 -0
- package/dist/audit/orchestrator/intakeExecutors.js.map +1 -0
- package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts +89 -0
- package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/intentCheckpointExecutor.js +264 -0
- package/dist/audit/orchestrator/intentCheckpointExecutor.js.map +1 -0
- package/dist/audit/orchestrator/intentInterpreter.d.ts +49 -0
- package/dist/audit/orchestrator/intentInterpreter.d.ts.map +1 -0
- package/dist/audit/orchestrator/intentInterpreter.js +110 -0
- package/dist/audit/orchestrator/intentInterpreter.js.map +1 -0
- package/dist/audit/orchestrator/lensSelection.d.ts +35 -0
- package/dist/audit/orchestrator/lensSelection.d.ts.map +1 -0
- package/dist/audit/orchestrator/lensSelection.js +81 -0
- package/dist/audit/orchestrator/lensSelection.js.map +1 -0
- package/dist/audit/orchestrator/localCommands.d.ts +16 -0
- package/dist/audit/orchestrator/localCommands.d.ts.map +1 -0
- package/dist/audit/orchestrator/localCommands.js +113 -0
- package/dist/audit/orchestrator/localCommands.js.map +1 -0
- package/dist/audit/orchestrator/nextStep.d.ts +12 -0
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -0
- package/dist/audit/orchestrator/nextStep.js +63 -0
- package/dist/audit/orchestrator/nextStep.js.map +1 -0
- package/dist/audit/orchestrator/partitionTaskGraph.d.ts +32 -0
- package/dist/audit/orchestrator/partitionTaskGraph.d.ts.map +1 -0
- package/dist/audit/orchestrator/partitionTaskGraph.js +98 -0
- package/dist/audit/orchestrator/partitionTaskGraph.js.map +1 -0
- package/dist/audit/orchestrator/planning.d.ts +5 -0
- package/dist/audit/orchestrator/planning.d.ts.map +1 -0
- package/dist/audit/orchestrator/planning.js +81 -0
- package/dist/audit/orchestrator/planning.js.map +1 -0
- package/dist/audit/orchestrator/planningExecutors.d.ts +21 -0
- package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -0
- package/dist/audit/orchestrator/planningExecutors.js +228 -0
- package/dist/audit/orchestrator/planningExecutors.js.map +1 -0
- package/dist/audit/orchestrator/providerConfirmation.d.ts +21 -0
- package/dist/audit/orchestrator/providerConfirmation.d.ts.map +1 -0
- package/dist/audit/orchestrator/providerConfirmation.js +54 -0
- package/dist/audit/orchestrator/providerConfirmation.js.map +1 -0
- package/dist/audit/orchestrator/requeue.d.ts +4 -0
- package/dist/audit/orchestrator/requeue.d.ts.map +1 -0
- package/dist/audit/orchestrator/requeue.js +33 -0
- package/dist/audit/orchestrator/requeue.js.map +1 -0
- package/dist/audit/orchestrator/requeueCommand.d.ts +32 -0
- package/dist/audit/orchestrator/requeueCommand.d.ts.map +1 -0
- package/dist/audit/orchestrator/requeueCommand.js +45 -0
- package/dist/audit/orchestrator/requeueCommand.js.map +1 -0
- package/dist/audit/orchestrator/requeueUtils.d.ts +14 -0
- package/dist/audit/orchestrator/requeueUtils.d.ts.map +1 -0
- package/dist/audit/orchestrator/requeueUtils.js +22 -0
- package/dist/audit/orchestrator/requeueUtils.js.map +1 -0
- package/dist/audit/orchestrator/resultIngestion.d.ts +18 -0
- package/dist/audit/orchestrator/resultIngestion.d.ts.map +1 -0
- package/dist/audit/orchestrator/resultIngestion.js +63 -0
- package/dist/audit/orchestrator/resultIngestion.js.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraph.d.ts +5 -0
- package/dist/audit/orchestrator/reviewPacketGraph.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraph.js +11 -0
- package/dist/audit/orchestrator/reviewPacketGraph.js.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraphClustering.d.ts +4 -0
- package/dist/audit/orchestrator/reviewPacketGraphClustering.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraphClustering.js +481 -0
- package/dist/audit/orchestrator/reviewPacketGraphClustering.js.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraphContext.d.ts +10 -0
- package/dist/audit/orchestrator/reviewPacketGraphContext.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraphContext.js +95 -0
- package/dist/audit/orchestrator/reviewPacketGraphContext.js.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraphEdges.d.ts +23 -0
- package/dist/audit/orchestrator/reviewPacketGraphEdges.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPacketGraphEdges.js +169 -0
- package/dist/audit/orchestrator/reviewPacketGraphEdges.js.map +1 -0
- package/dist/audit/orchestrator/reviewPacketMetrics.d.ts +17 -0
- package/dist/audit/orchestrator/reviewPacketMetrics.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPacketMetrics.js +322 -0
- package/dist/audit/orchestrator/reviewPacketMetrics.js.map +1 -0
- package/dist/audit/orchestrator/reviewPacketSizing.d.ts +27 -0
- package/dist/audit/orchestrator/reviewPacketSizing.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPacketSizing.js +64 -0
- package/dist/audit/orchestrator/reviewPacketSizing.js.map +1 -0
- package/dist/audit/orchestrator/reviewPackets.d.ts +54 -0
- package/dist/audit/orchestrator/reviewPackets.d.ts.map +1 -0
- package/dist/audit/orchestrator/reviewPackets.js +318 -0
- package/dist/audit/orchestrator/reviewPackets.js.map +1 -0
- package/dist/audit/orchestrator/rollingDispatch.d.ts +45 -0
- package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -0
- package/dist/audit/orchestrator/rollingDispatch.js +103 -0
- package/dist/audit/orchestrator/rollingDispatch.js.map +1 -0
- package/dist/audit/orchestrator/runtimeCommand.d.ts +10 -0
- package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -0
- package/dist/audit/orchestrator/runtimeCommand.js +129 -0
- package/dist/audit/orchestrator/runtimeCommand.js.map +1 -0
- package/dist/audit/orchestrator/runtimeValidation.d.ts +13 -0
- package/dist/audit/orchestrator/runtimeValidation.d.ts.map +1 -0
- package/dist/audit/orchestrator/runtimeValidation.js +94 -0
- package/dist/audit/orchestrator/runtimeValidation.js.map +1 -0
- package/dist/audit/orchestrator/runtimeValidationUpdate.d.ts +3 -0
- package/dist/audit/orchestrator/runtimeValidationUpdate.d.ts.map +1 -0
- package/dist/audit/orchestrator/runtimeValidationUpdate.js +57 -0
- package/dist/audit/orchestrator/runtimeValidationUpdate.js.map +1 -0
- package/dist/audit/orchestrator/scope.d.ts +75 -0
- package/dist/audit/orchestrator/scope.d.ts.map +1 -0
- package/dist/audit/orchestrator/scope.js +268 -0
- package/dist/audit/orchestrator/scope.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/conflict.d.ts +9 -0
- package/dist/audit/orchestrator/selectiveDeepening/conflict.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/conflict.js +72 -0
- package/dist/audit/orchestrator/selectiveDeepening/conflict.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.d.ts +11 -0
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.js +53 -0
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/highRiskClean.d.ts +8 -0
- package/dist/audit/orchestrator/selectiveDeepening/highRiskClean.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/highRiskClean.js +46 -0
- package/dist/audit/orchestrator/selectiveDeepening/highRiskClean.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/index.d.ts +25 -0
- package/dist/audit/orchestrator/selectiveDeepening/index.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/index.js +157 -0
- package/dist/audit/orchestrator/selectiveDeepening/index.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts +13 -0
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js +269 -0
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/runtimeValidation.d.ts +14 -0
- package/dist/audit/orchestrator/selectiveDeepening/runtimeValidation.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/runtimeValidation.js +58 -0
- package/dist/audit/orchestrator/selectiveDeepening/runtimeValidation.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts +42 -0
- package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/shared.js +121 -0
- package/dist/audit/orchestrator/selectiveDeepening/shared.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.d.ts +7 -0
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js +73 -0
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening.d.ts +3 -0
- package/dist/audit/orchestrator/selectiveDeepening.d.ts.map +1 -0
- package/dist/audit/orchestrator/selectiveDeepening.js +7 -0
- package/dist/audit/orchestrator/selectiveDeepening.js.map +1 -0
- package/dist/audit/orchestrator/staleness.d.ts +3 -0
- package/dist/audit/orchestrator/staleness.d.ts.map +1 -0
- package/dist/audit/orchestrator/staleness.js +102 -0
- package/dist/audit/orchestrator/staleness.js.map +1 -0
- package/dist/audit/orchestrator/state.d.ts +4 -0
- package/dist/audit/orchestrator/state.d.ts.map +1 -0
- package/dist/audit/orchestrator/state.js +158 -0
- package/dist/audit/orchestrator/state.js.map +1 -0
- package/dist/audit/orchestrator/structureExecutors.d.ts +6 -0
- package/dist/audit/orchestrator/structureExecutors.d.ts.map +1 -0
- package/dist/audit/orchestrator/structureExecutors.js +116 -0
- package/dist/audit/orchestrator/structureExecutors.js.map +1 -0
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts +4 -0
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js +260 -0
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -0
- package/dist/audit/orchestrator/synthesisExecutors.d.ts +13 -0
- package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -0
- package/dist/audit/orchestrator/synthesisExecutors.js +107 -0
- package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -0
- package/dist/audit/orchestrator/taskAffinityGraph.d.ts +154 -0
- package/dist/audit/orchestrator/taskAffinityGraph.d.ts.map +1 -0
- package/dist/audit/orchestrator/taskAffinityGraph.js +216 -0
- package/dist/audit/orchestrator/taskAffinityGraph.js.map +1 -0
- package/dist/audit/orchestrator/taskBuilder.d.ts +43 -0
- package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -0
- package/dist/audit/orchestrator/taskBuilder.js +355 -0
- package/dist/audit/orchestrator/taskBuilder.js.map +1 -0
- package/dist/audit/orchestrator/trivialAudit.d.ts +5 -0
- package/dist/audit/orchestrator/trivialAudit.d.ts.map +1 -0
- package/dist/audit/orchestrator/trivialAudit.js +50 -0
- package/dist/audit/orchestrator/trivialAudit.js.map +1 -0
- package/dist/audit/orchestrator/unionFind.d.ts +8 -0
- package/dist/audit/orchestrator/unionFind.d.ts.map +1 -0
- package/dist/audit/orchestrator/unionFind.js +43 -0
- package/dist/audit/orchestrator/unionFind.js.map +1 -0
- package/dist/audit/orchestrator/unitBuilder.d.ts +8 -0
- package/dist/audit/orchestrator/unitBuilder.d.ts.map +1 -0
- package/dist/audit/orchestrator/unitBuilder.js +171 -0
- package/dist/audit/orchestrator/unitBuilder.js.map +1 -0
- package/dist/audit/orchestrator.d.ts +7 -0
- package/dist/audit/orchestrator.d.ts.map +1 -0
- package/dist/audit/orchestrator.js +68 -0
- package/dist/audit/orchestrator.js.map +1 -0
- package/dist/audit/prompts/renderWorkerPrompt.d.ts +3 -0
- package/dist/audit/prompts/renderWorkerPrompt.d.ts.map +1 -0
- package/dist/audit/prompts/renderWorkerPrompt.js +87 -0
- package/dist/audit/prompts/renderWorkerPrompt.js.map +1 -0
- package/dist/audit/providers/claudeCodeProvider.d.ts +11 -0
- package/dist/audit/providers/claudeCodeProvider.d.ts.map +1 -0
- package/dist/audit/providers/claudeCodeProvider.js +23 -0
- package/dist/audit/providers/claudeCodeProvider.js.map +1 -0
- package/dist/audit/providers/constants.d.ts +2 -0
- package/dist/audit/providers/constants.d.ts.map +1 -0
- package/dist/audit/providers/constants.js +2 -0
- package/dist/audit/providers/constants.js.map +1 -0
- package/dist/audit/providers/index.d.ts +14 -0
- package/dist/audit/providers/index.d.ts.map +1 -0
- package/dist/audit/providers/index.js +21 -0
- package/dist/audit/providers/index.js.map +1 -0
- package/dist/audit/providers/opencodeProvider.d.ts +5 -0
- package/dist/audit/providers/opencodeProvider.d.ts.map +1 -0
- package/dist/audit/providers/opencodeProvider.js +10 -0
- package/dist/audit/providers/opencodeProvider.js.map +1 -0
- package/dist/audit/quota/discoveredLimits.d.ts +27 -0
- package/dist/audit/quota/discoveredLimits.d.ts.map +1 -0
- package/dist/audit/quota/discoveredLimits.js +91 -0
- package/dist/audit/quota/discoveredLimits.js.map +1 -0
- package/dist/audit/quota/headerExtraction.d.ts +9 -0
- package/dist/audit/quota/headerExtraction.d.ts.map +1 -0
- package/dist/audit/quota/headerExtraction.js +148 -0
- package/dist/audit/quota/headerExtraction.js.map +1 -0
- package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.d.ts +7 -0
- package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.d.ts.map +1 -0
- package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.js +27 -0
- package/dist/audit/quota/headerExtractors/claudeCodeHeaderExtractor.js.map +1 -0
- package/dist/audit/quota/headerExtractors/genericHeaderExtractor.d.ts +10 -0
- package/dist/audit/quota/headerExtractors/genericHeaderExtractor.d.ts.map +1 -0
- package/dist/audit/quota/headerExtractors/genericHeaderExtractor.js +8 -0
- package/dist/audit/quota/headerExtractors/genericHeaderExtractor.js.map +1 -0
- package/dist/audit/quota/headerExtractors/index.d.ts +6 -0
- package/dist/audit/quota/headerExtractors/index.d.ts.map +1 -0
- package/dist/audit/quota/headerExtractors/index.js +11 -0
- package/dist/audit/quota/headerExtractors/index.js.map +1 -0
- package/dist/audit/quota/hostLimits.d.ts +8 -0
- package/dist/audit/quota/hostLimits.d.ts.map +1 -0
- package/dist/audit/quota/hostLimits.js +9 -0
- package/dist/audit/quota/hostLimits.js.map +1 -0
- package/dist/audit/quota/index.d.ts +383 -0
- package/dist/audit/quota/index.d.ts.map +1 -0
- package/dist/audit/quota/index.js +45 -0
- package/dist/audit/quota/index.js.map +1 -0
- package/dist/audit/reporting/findingIdentity.d.ts +34 -0
- package/dist/audit/reporting/findingIdentity.d.ts.map +1 -0
- package/dist/audit/reporting/findingIdentity.js +64 -0
- package/dist/audit/reporting/findingIdentity.js.map +1 -0
- package/dist/audit/reporting/findingRanks.d.ts +2 -0
- package/dist/audit/reporting/findingRanks.d.ts.map +1 -0
- package/dist/audit/reporting/findingRanks.js +7 -0
- package/dist/audit/reporting/findingRanks.js.map +1 -0
- package/dist/audit/reporting/mergeFindings.d.ts +6 -0
- package/dist/audit/reporting/mergeFindings.d.ts.map +1 -0
- package/dist/audit/reporting/mergeFindings.js +326 -0
- package/dist/audit/reporting/mergeFindings.js.map +1 -0
- package/dist/audit/reporting/synthesis.d.ts +124 -0
- package/dist/audit/reporting/synthesis.d.ts.map +1 -0
- package/dist/audit/reporting/synthesis.js +369 -0
- package/dist/audit/reporting/synthesis.js.map +1 -0
- package/dist/audit/reporting/synthesisNarrativePrompt.d.ts +8 -0
- package/dist/audit/reporting/synthesisNarrativePrompt.d.ts.map +1 -0
- package/dist/audit/reporting/synthesisNarrativePrompt.js +66 -0
- package/dist/audit/reporting/synthesisNarrativePrompt.js.map +1 -0
- package/dist/audit/reporting/workBlocks.d.ts +10 -0
- package/dist/audit/reporting/workBlocks.d.ts.map +1 -0
- package/dist/audit/reporting/workBlocks.js +154 -0
- package/dist/audit/reporting/workBlocks.js.map +1 -0
- package/dist/audit/supervisor/operatorHandoff.d.ts +65 -0
- package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -0
- package/dist/audit/supervisor/operatorHandoff.js +277 -0
- package/dist/audit/supervisor/operatorHandoff.js.map +1 -0
- package/dist/audit/supervisor/runLedger.d.ts +4 -0
- package/dist/audit/supervisor/runLedger.d.ts.map +1 -0
- package/dist/audit/supervisor/runLedger.js +118 -0
- package/dist/audit/supervisor/runLedger.js.map +1 -0
- package/dist/audit/supervisor/sessionConfig.d.ts +12 -0
- package/dist/audit/supervisor/sessionConfig.d.ts.map +1 -0
- package/dist/audit/supervisor/sessionConfig.js +49 -0
- package/dist/audit/supervisor/sessionConfig.js.map +1 -0
- package/dist/audit/types/activeDispatch.d.ts +36 -0
- package/dist/audit/types/activeDispatch.d.ts.map +1 -0
- package/dist/audit/types/activeDispatch.js +3 -0
- package/dist/audit/types/activeDispatch.js.map +1 -0
- package/dist/audit/types/analyzerCapability.d.ts +17 -0
- package/dist/audit/types/analyzerCapability.d.ts.map +1 -0
- package/dist/audit/types/analyzerCapability.js +2 -0
- package/dist/audit/types/analyzerCapability.js.map +1 -0
- package/dist/audit/types/artifactMetadata.d.ts +9 -0
- package/dist/audit/types/artifactMetadata.d.ts.map +1 -0
- package/dist/audit/types/artifactMetadata.js +2 -0
- package/dist/audit/types/artifactMetadata.js.map +1 -0
- package/dist/audit/types/auditScope.d.ts +58 -0
- package/dist/audit/types/auditScope.d.ts.map +1 -0
- package/dist/audit/types/auditScope.js +15 -0
- package/dist/audit/types/auditScope.js.map +1 -0
- package/dist/audit/types/auditState.d.ts +18 -0
- package/dist/audit/types/auditState.d.ts.map +1 -0
- package/dist/audit/types/auditState.js +2 -0
- package/dist/audit/types/auditState.js.map +1 -0
- package/dist/audit/types/designAssessment.d.ts +22 -0
- package/dist/audit/types/designAssessment.d.ts.map +1 -0
- package/dist/audit/types/designAssessment.js +8 -0
- package/dist/audit/types/designAssessment.js.map +1 -0
- package/dist/audit/types/externalAnalyzer.d.ts +225 -0
- package/dist/audit/types/externalAnalyzer.d.ts.map +1 -0
- package/dist/audit/types/externalAnalyzer.js +56 -0
- package/dist/audit/types/externalAnalyzer.js.map +1 -0
- package/dist/audit/types/flowCoverage.d.ts +16 -0
- package/dist/audit/types/flowCoverage.d.ts.map +1 -0
- package/dist/audit/types/flowCoverage.js +6 -0
- package/dist/audit/types/flowCoverage.js.map +1 -0
- package/dist/audit/types/reviewPlanning.d.ts +513 -0
- package/dist/audit/types/reviewPlanning.d.ts.map +1 -0
- package/dist/audit/types/reviewPlanning.js +109 -0
- package/dist/audit/types/reviewPlanning.js.map +1 -0
- package/dist/audit/types/runtimeValidation.d.ts +155 -0
- package/dist/audit/types/runtimeValidation.d.ts.map +1 -0
- package/dist/audit/types/runtimeValidation.js +52 -0
- package/dist/audit/types/runtimeValidation.js.map +1 -0
- package/dist/audit/types/synthesisNarrative.d.ts +8 -0
- package/dist/audit/types/synthesisNarrative.d.ts.map +1 -0
- package/dist/audit/types/synthesisNarrative.js +6 -0
- package/dist/audit/types/synthesisNarrative.js.map +1 -0
- package/dist/audit/types/toolingManifest.d.ts +8 -0
- package/dist/audit/types/toolingManifest.d.ts.map +1 -0
- package/dist/audit/types/toolingManifest.js +2 -0
- package/dist/audit/types/toolingManifest.js.map +1 -0
- package/dist/audit/types/workerResult.d.ts +14 -0
- package/dist/audit/types/workerResult.d.ts.map +1 -0
- package/dist/audit/types/workerResult.js +2 -0
- package/dist/audit/types/workerResult.js.map +1 -0
- package/dist/audit/types/workerSession.d.ts +28 -0
- package/dist/audit/types/workerSession.d.ts.map +1 -0
- package/dist/audit/types/workerSession.js +5 -0
- package/dist/audit/types/workerSession.js.map +1 -0
- package/dist/audit/types.d.ts +1077 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +160 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/validation/anchorGrounding.d.ts +49 -0
- package/dist/audit/validation/anchorGrounding.d.ts.map +1 -0
- package/dist/audit/validation/anchorGrounding.js +183 -0
- package/dist/audit/validation/anchorGrounding.js.map +1 -0
- package/dist/audit/validation/artifacts.d.ts +4 -0
- package/dist/audit/validation/artifacts.d.ts.map +1 -0
- package/dist/audit/validation/artifacts.js +313 -0
- package/dist/audit/validation/artifacts.js.map +1 -0
- package/dist/audit/validation/auditResults.d.ts +16 -0
- package/dist/audit/validation/auditResults.d.ts.map +1 -0
- package/dist/audit/validation/auditResults.js +619 -0
- package/dist/audit/validation/auditResults.js.map +1 -0
- package/dist/audit/validation/designFindingGrounding.d.ts +33 -0
- package/dist/audit/validation/designFindingGrounding.d.ts.map +1 -0
- package/dist/audit/validation/designFindingGrounding.js +43 -0
- package/dist/audit/validation/designFindingGrounding.js.map +1 -0
- package/dist/audit/validation/quoteGrounding.d.ts +18 -0
- package/dist/audit/validation/quoteGrounding.d.ts.map +1 -0
- package/dist/audit/validation/quoteGrounding.js +18 -0
- package/dist/audit/validation/quoteGrounding.js.map +1 -0
- package/dist/audit/validation/sessionConfig.d.ts +8 -0
- package/dist/audit/validation/sessionConfig.d.ts.map +1 -0
- package/dist/audit/validation/sessionConfig.js +334 -0
- package/dist/audit/validation/sessionConfig.js.map +1 -0
- package/dist/remediate/contractPipeline/artifactStore.d.ts +58 -0
- package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/artifactStore.js +201 -0
- package/dist/remediate/contractPipeline/artifactStore.js.map +1 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +68 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js +151 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -0
- package/dist/remediate/contractPipeline/derive.d.ts +88 -0
- package/dist/remediate/contractPipeline/derive.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/derive.js +216 -0
- package/dist/remediate/contractPipeline/derive.js.map +1 -0
- package/dist/remediate/contractPipeline/idRegistry.d.ts +49 -0
- package/dist/remediate/contractPipeline/idRegistry.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/idRegistry.js +57 -0
- package/dist/remediate/contractPipeline/idRegistry.js.map +1 -0
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts +52 -0
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/reviewSnapshot.js +116 -0
- package/dist/remediate/contractPipeline/reviewSnapshot.js.map +1 -0
- package/dist/remediate/contractPipeline/semanticProjection.d.ts +46 -0
- package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/semanticProjection.js +102 -0
- package/dist/remediate/contractPipeline/semanticProjection.js.map +1 -0
- package/dist/remediate/coverage/findingLedger.d.ts +99 -0
- package/dist/remediate/coverage/findingLedger.d.ts.map +1 -0
- package/dist/remediate/coverage/findingLedger.js +110 -0
- package/dist/remediate/coverage/findingLedger.js.map +1 -0
- package/dist/remediate/dedup/crossLensDedup.d.ts +9 -0
- package/dist/remediate/dedup/crossLensDedup.d.ts.map +1 -0
- package/dist/remediate/dedup/crossLensDedup.js +191 -0
- package/dist/remediate/dedup/crossLensDedup.js.map +1 -0
- package/dist/remediate/dispatch/amendmentClaim.d.ts +41 -0
- package/dist/remediate/dispatch/amendmentClaim.d.ts.map +1 -0
- package/dist/remediate/dispatch/amendmentClaim.js +60 -0
- package/dist/remediate/dispatch/amendmentClaim.js.map +1 -0
- package/dist/remediate/dispatch/ownershipRegistry.d.ts +97 -0
- package/dist/remediate/dispatch/ownershipRegistry.d.ts.map +1 -0
- package/dist/remediate/dispatch/ownershipRegistry.js +217 -0
- package/dist/remediate/dispatch/ownershipRegistry.js.map +1 -0
- package/dist/remediate/findingFilter.d.ts +42 -0
- package/dist/remediate/findingFilter.d.ts.map +1 -0
- package/dist/remediate/findingFilter.js +62 -0
- package/dist/remediate/findingFilter.js.map +1 -0
- package/dist/remediate/index.d.ts +45 -0
- package/dist/remediate/index.d.ts.map +1 -0
- package/dist/remediate/index.js +434 -0
- package/dist/remediate/index.js.map +1 -0
- package/dist/remediate/intake.d.ts +168 -0
- package/dist/remediate/intake.d.ts.map +1 -0
- package/dist/remediate/intake.js +340 -0
- package/dist/remediate/intake.js.map +1 -0
- package/dist/remediate/intent/checkpointFilter.d.ts +14 -0
- package/dist/remediate/intent/checkpointFilter.d.ts.map +1 -0
- package/dist/remediate/intent/checkpointFilter.js +111 -0
- package/dist/remediate/intent/checkpointFilter.js.map +1 -0
- package/dist/remediate/phases/close.d.ts +32 -0
- package/dist/remediate/phases/close.d.ts.map +1 -0
- package/dist/remediate/phases/close.js +992 -0
- package/dist/remediate/phases/close.js.map +1 -0
- package/dist/remediate/phases/constants.d.ts +3 -0
- package/dist/remediate/phases/constants.d.ts.map +1 -0
- package/dist/remediate/phases/constants.js +3 -0
- package/dist/remediate/phases/constants.js.map +1 -0
- package/dist/remediate/phases/grounding.d.ts +77 -0
- package/dist/remediate/phases/grounding.d.ts.map +1 -0
- package/dist/remediate/phases/grounding.js +153 -0
- package/dist/remediate/phases/grounding.js.map +1 -0
- package/dist/remediate/phases/plan.d.ts +113 -0
- package/dist/remediate/phases/plan.d.ts.map +1 -0
- package/dist/remediate/phases/plan.js +988 -0
- package/dist/remediate/phases/plan.js.map +1 -0
- package/dist/remediate/phases/triage.d.ts +4 -0
- package/dist/remediate/phases/triage.d.ts.map +1 -0
- package/dist/remediate/phases/triage.js +175 -0
- package/dist/remediate/phases/triage.js.map +1 -0
- package/dist/remediate/phases/workerTasks.d.ts +21 -0
- package/dist/remediate/phases/workerTasks.d.ts.map +1 -0
- package/dist/remediate/phases/workerTasks.js +31 -0
- package/dist/remediate/phases/workerTasks.js.map +1 -0
- package/dist/remediate/providers/claudeCodeProvider.d.ts +12 -0
- package/dist/remediate/providers/claudeCodeProvider.d.ts.map +1 -0
- package/dist/remediate/providers/claudeCodeProvider.js +24 -0
- package/dist/remediate/providers/claudeCodeProvider.js.map +1 -0
- package/dist/remediate/providers/constants.d.ts +2 -0
- package/dist/remediate/providers/constants.d.ts.map +1 -0
- package/dist/remediate/providers/constants.js +2 -0
- package/dist/remediate/providers/constants.js.map +1 -0
- package/dist/remediate/providers/index.d.ts +15 -0
- package/dist/remediate/providers/index.d.ts.map +1 -0
- package/dist/remediate/providers/index.js +22 -0
- package/dist/remediate/providers/index.js.map +1 -0
- package/dist/remediate/providers/opencodeProvider.d.ts +5 -0
- package/dist/remediate/providers/opencodeProvider.d.ts.map +1 -0
- package/dist/remediate/providers/opencodeProvider.js +10 -0
- package/dist/remediate/providers/opencodeProvider.js.map +1 -0
- package/dist/remediate/quota/hostLimits.d.ts +8 -0
- package/dist/remediate/quota/hostLimits.d.ts.map +1 -0
- package/dist/remediate/quota/hostLimits.js +9 -0
- package/dist/remediate/quota/hostLimits.js.map +1 -0
- package/dist/remediate/quota/index.d.ts +8 -0
- package/dist/remediate/quota/index.d.ts.map +1 -0
- package/dist/remediate/quota/index.js +12 -0
- package/dist/remediate/quota/index.js.map +1 -0
- package/dist/remediate/review/reviewGate.d.ts +72 -0
- package/dist/remediate/review/reviewGate.d.ts.map +1 -0
- package/dist/remediate/review/reviewGate.js +112 -0
- package/dist/remediate/review/reviewGate.js.map +1 -0
- package/dist/remediate/review/reviewNecessity.d.ts +53 -0
- package/dist/remediate/review/reviewNecessity.d.ts.map +1 -0
- package/dist/remediate/review/reviewNecessity.js +129 -0
- package/dist/remediate/review/reviewNecessity.js.map +1 -0
- package/dist/remediate/state/closingActions.d.ts +3 -0
- package/dist/remediate/state/closingActions.d.ts.map +1 -0
- package/dist/remediate/state/closingActions.js +10 -0
- package/dist/remediate/state/closingActions.js.map +1 -0
- package/dist/remediate/state/itemStatus.d.ts +40 -0
- package/dist/remediate/state/itemStatus.d.ts.map +1 -0
- package/dist/remediate/state/itemStatus.js +138 -0
- package/dist/remediate/state/itemStatus.js.map +1 -0
- package/dist/remediate/state/store.d.ts +65 -0
- package/dist/remediate/state/store.d.ts.map +1 -0
- package/dist/remediate/state/store.js +141 -0
- package/dist/remediate/state/store.js.map +1 -0
- package/dist/remediate/state/types.d.ts +766 -0
- package/dist/remediate/state/types.d.ts.map +1 -0
- package/dist/remediate/state/types.js +122 -0
- package/dist/remediate/state/types.js.map +1 -0
- package/dist/remediate/steps/contractPipeline.d.ts +173 -0
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -0
- package/dist/remediate/steps/contractPipeline.js +1229 -0
- package/dist/remediate/steps/contractPipeline.js.map +1 -0
- package/dist/remediate/steps/contractPipelinePrompts.d.ts +72 -0
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -0
- package/dist/remediate/steps/contractPipelinePrompts.js +438 -0
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -0
- package/dist/remediate/steps/dispatch.d.ts +434 -0
- package/dist/remediate/steps/dispatch.d.ts.map +1 -0
- package/dist/remediate/steps/dispatch.js +2180 -0
- package/dist/remediate/steps/dispatch.js.map +1 -0
- package/dist/remediate/steps/intakeResolver.d.ts +32 -0
- package/dist/remediate/steps/intakeResolver.d.ts.map +1 -0
- package/dist/remediate/steps/intakeResolver.js +310 -0
- package/dist/remediate/steps/intakeResolver.js.map +1 -0
- package/dist/remediate/steps/leanFastPath.d.ts +49 -0
- package/dist/remediate/steps/leanFastPath.d.ts.map +1 -0
- package/dist/remediate/steps/leanFastPath.js +151 -0
- package/dist/remediate/steps/leanFastPath.js.map +1 -0
- package/dist/remediate/steps/nextStep.d.ts +323 -0
- package/dist/remediate/steps/nextStep.d.ts.map +1 -0
- package/dist/remediate/steps/nextStep.js +2721 -0
- package/dist/remediate/steps/nextStep.js.map +1 -0
- package/dist/remediate/steps/prompts.d.ts +26 -0
- package/dist/remediate/steps/prompts.d.ts.map +1 -0
- package/dist/remediate/steps/prompts.js +370 -0
- package/dist/remediate/steps/prompts.js.map +1 -0
- package/dist/remediate/steps/providerNodeDispatch.d.ts +42 -0
- package/dist/remediate/steps/providerNodeDispatch.d.ts.map +1 -0
- package/dist/remediate/steps/providerNodeDispatch.js +100 -0
- package/dist/remediate/steps/providerNodeDispatch.js.map +1 -0
- package/dist/remediate/steps/rollingSession.d.ts +84 -0
- package/dist/remediate/steps/rollingSession.d.ts.map +1 -0
- package/dist/remediate/steps/rollingSession.js +147 -0
- package/dist/remediate/steps/rollingSession.js.map +1 -0
- package/dist/remediate/steps/stepUtils.d.ts +63 -0
- package/dist/remediate/steps/stepUtils.d.ts.map +1 -0
- package/dist/remediate/steps/stepUtils.js +117 -0
- package/dist/remediate/steps/stepUtils.js.map +1 -0
- package/dist/remediate/steps/stepWriter.d.ts +27 -0
- package/dist/remediate/steps/stepWriter.d.ts.map +1 -0
- package/dist/remediate/steps/stepWriter.js +37 -0
- package/dist/remediate/steps/stepWriter.js.map +1 -0
- package/dist/remediate/steps/types.d.ts +83 -0
- package/dist/remediate/steps/types.d.ts.map +1 -0
- package/dist/remediate/steps/types.js +6 -0
- package/dist/remediate/steps/types.js.map +1 -0
- package/dist/remediate/types/options.d.ts +6 -0
- package/dist/remediate/types/options.d.ts.map +1 -0
- package/dist/remediate/types/options.js +2 -0
- package/dist/remediate/types/options.js.map +1 -0
- package/dist/remediate/types/workerSession.d.ts +36 -0
- package/dist/remediate/types/workerSession.d.ts.map +1 -0
- package/dist/remediate/types/workerSession.js +13 -0
- package/dist/remediate/types/workerSession.js.map +1 -0
- package/dist/remediate/utils/commands.d.ts +17 -0
- package/dist/remediate/utils/commands.d.ts.map +1 -0
- package/dist/remediate/utils/commands.js +26 -0
- package/dist/remediate/utils/commands.js.map +1 -0
- package/dist/remediate/utils/fileIntegrity.d.ts +27 -0
- package/dist/remediate/utils/fileIntegrity.d.ts.map +1 -0
- package/dist/remediate/utils/fileIntegrity.js +201 -0
- package/dist/remediate/utils/fileIntegrity.js.map +1 -0
- package/dist/remediate/utils/hostAssets.d.ts +18 -0
- package/dist/remediate/utils/hostAssets.d.ts.map +1 -0
- package/dist/remediate/utils/hostAssets.js +31 -0
- package/dist/remediate/utils/hostAssets.js.map +1 -0
- package/dist/remediate/validation/artifacts.d.ts +9 -0
- package/dist/remediate/validation/artifacts.d.ts.map +1 -0
- package/dist/remediate/validation/artifacts.js +316 -0
- package/dist/remediate/validation/artifacts.js.map +1 -0
- package/dist/remediate/validation/contractPipeline.d.ts +36 -0
- package/dist/remediate/validation/contractPipeline.d.ts.map +1 -0
- package/dist/remediate/validation/contractPipeline.js +569 -0
- package/dist/remediate/validation/contractPipeline.js.map +1 -0
- package/dist/remediate/validation/contractPipelineGates.d.ts +161 -0
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -0
- package/dist/remediate/validation/contractPipelineGates.js +739 -0
- package/dist/remediate/validation/contractPipelineGates.js.map +1 -0
- package/dist/remediate/validation/remediationState.d.ts +8 -0
- package/dist/remediate/validation/remediationState.d.ts.map +1 -0
- package/dist/remediate/validation/remediationState.js +187 -0
- package/dist/remediate/validation/remediationState.js.map +1 -0
- package/dist/shared/agentReflections.d.ts +61 -0
- package/dist/shared/agentReflections.d.ts.map +1 -0
- package/dist/shared/agentReflections.js +180 -0
- package/dist/shared/agentReflections.js.map +1 -0
- package/dist/shared/concurrency.d.ts +16 -0
- package/dist/shared/concurrency.d.ts.map +1 -0
- package/dist/shared/concurrency.js +34 -0
- package/dist/shared/concurrency.js.map +1 -0
- package/dist/shared/contracts.d.ts +2 -0
- package/dist/shared/contracts.d.ts.map +1 -0
- package/dist/shared/contracts.js +2 -0
- package/dist/shared/contracts.js.map +1 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts +192 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -0
- package/dist/shared/dispatch/rollingDispatch.js +389 -0
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -0
- package/dist/shared/dispatch/tierRank.d.ts +53 -0
- package/dist/shared/dispatch/tierRank.d.ts.map +1 -0
- package/dist/shared/dispatch/tierRank.js +69 -0
- package/dist/shared/dispatch/tierRank.js.map +1 -0
- package/dist/shared/engine/obligationEngine.d.ts +159 -0
- package/dist/shared/engine/obligationEngine.d.ts.map +1 -0
- package/dist/shared/engine/obligationEngine.js +124 -0
- package/dist/shared/engine/obligationEngine.js.map +1 -0
- package/dist/shared/findingIdentitySignature.d.ts +82 -0
- package/dist/shared/findingIdentitySignature.d.ts.map +1 -0
- package/dist/shared/findingIdentitySignature.js +114 -0
- package/dist/shared/findingIdentitySignature.js.map +1 -0
- package/dist/shared/git.d.ts +18 -0
- package/dist/shared/git.d.ts.map +1 -0
- package/dist/shared/git.js +63 -0
- package/dist/shared/git.js.map +1 -0
- package/dist/shared/hash.d.ts +16 -0
- package/dist/shared/hash.d.ts.map +1 -0
- package/dist/shared/hash.js +36 -0
- package/dist/shared/hash.js.map +1 -0
- package/dist/shared/hostAssets.d.ts +40 -0
- package/dist/shared/hostAssets.d.ts.map +1 -0
- package/dist/shared/hostAssets.js +110 -0
- package/dist/shared/hostAssets.js.map +1 -0
- package/dist/shared/ids.d.ts +18 -0
- package/dist/shared/ids.d.ts.map +1 -0
- package/dist/shared/ids.js +27 -0
- package/dist/shared/ids.js.map +1 -0
- package/dist/shared/index.d.ts +150 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +112 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/intent/clauseInterpreter.d.ts +84 -0
- package/dist/shared/intent/clauseInterpreter.d.ts.map +1 -0
- package/dist/shared/intent/clauseInterpreter.js +183 -0
- package/dist/shared/intent/clauseInterpreter.js.map +1 -0
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts +46 -0
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts.map +1 -0
- package/dist/shared/intent/freeFormIntentInterpreter.js +126 -0
- package/dist/shared/intent/freeFormIntentInterpreter.js.map +1 -0
- package/dist/shared/intent/sharedIntentData.d.ts +16 -0
- package/dist/shared/intent/sharedIntentData.d.ts.map +1 -0
- package/dist/shared/intent/sharedIntentData.js +38 -0
- package/dist/shared/intent/sharedIntentData.js.map +1 -0
- package/dist/shared/io/auditToolsPaths.d.ts +36 -0
- package/dist/shared/io/auditToolsPaths.d.ts.map +1 -0
- package/dist/shared/io/auditToolsPaths.js +47 -0
- package/dist/shared/io/auditToolsPaths.js.map +1 -0
- package/dist/shared/io/json.d.ts +30 -0
- package/dist/shared/io/json.d.ts.map +1 -0
- package/dist/shared/io/json.js +183 -0
- package/dist/shared/io/json.js.map +1 -0
- package/dist/shared/io/stepContractWriter.d.ts +103 -0
- package/dist/shared/io/stepContractWriter.d.ts.map +1 -0
- package/dist/shared/io/stepContractWriter.js +85 -0
- package/dist/shared/io/stepContractWriter.js.map +1 -0
- package/dist/shared/observability/runLog.d.ts +37 -0
- package/dist/shared/observability/runLog.d.ts.map +1 -0
- package/dist/shared/observability/runLog.js +40 -0
- package/dist/shared/observability/runLog.js.map +1 -0
- package/dist/shared/opencodePermissions.d.ts +49 -0
- package/dist/shared/opencodePermissions.d.ts.map +1 -0
- package/dist/shared/opencodePermissions.js +118 -0
- package/dist/shared/opencodePermissions.js.map +1 -0
- package/dist/shared/parsing/stringAwareScanner.d.ts +32 -0
- package/dist/shared/parsing/stringAwareScanner.d.ts.map +1 -0
- package/dist/shared/parsing/stringAwareScanner.js +51 -0
- package/dist/shared/parsing/stringAwareScanner.js.map +1 -0
- package/dist/shared/prompts.d.ts +47 -0
- package/dist/shared/prompts.d.ts.map +1 -0
- package/dist/shared/prompts.js +41 -0
- package/dist/shared/prompts.js.map +1 -0
- package/dist/shared/providers/claudeCodeProvider.d.ts +56 -0
- package/dist/shared/providers/claudeCodeProvider.d.ts.map +1 -0
- package/dist/shared/providers/claudeCodeProvider.js +67 -0
- package/dist/shared/providers/claudeCodeProvider.js.map +1 -0
- package/dist/shared/providers/codexProvider.d.ts +37 -0
- package/dist/shared/providers/codexProvider.d.ts.map +1 -0
- package/dist/shared/providers/codexProvider.js +79 -0
- package/dist/shared/providers/codexProvider.js.map +1 -0
- package/dist/shared/providers/constants.d.ts +4 -0
- package/dist/shared/providers/constants.d.ts.map +1 -0
- package/dist/shared/providers/constants.js +4 -0
- package/dist/shared/providers/constants.js.map +1 -0
- package/dist/shared/providers/localSubprocessProvider.d.ts +10 -0
- package/dist/shared/providers/localSubprocessProvider.d.ts.map +1 -0
- package/dist/shared/providers/localSubprocessProvider.js +20 -0
- package/dist/shared/providers/localSubprocessProvider.js.map +1 -0
- package/dist/shared/providers/openAiCompatibleProvider.d.ts +62 -0
- package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -0
- package/dist/shared/providers/openAiCompatibleProvider.js +333 -0
- package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -0
- package/dist/shared/providers/opencodeLaunch.d.ts +28 -0
- package/dist/shared/providers/opencodeLaunch.d.ts.map +1 -0
- package/dist/shared/providers/opencodeLaunch.js +39 -0
- package/dist/shared/providers/opencodeLaunch.js.map +1 -0
- package/dist/shared/providers/opencodeProvider.d.ts +19 -0
- package/dist/shared/providers/opencodeProvider.d.ts.map +1 -0
- package/dist/shared/providers/opencodeProvider.js +41 -0
- package/dist/shared/providers/opencodeProvider.js.map +1 -0
- package/dist/shared/providers/providerConfirmation.d.ts +56 -0
- package/dist/shared/providers/providerConfirmation.d.ts.map +1 -0
- package/dist/shared/providers/providerConfirmation.js +195 -0
- package/dist/shared/providers/providerConfirmation.js.map +1 -0
- package/dist/shared/providers/providerDiagnostics.d.ts +11 -0
- package/dist/shared/providers/providerDiagnostics.d.ts.map +1 -0
- package/dist/shared/providers/providerDiagnostics.js +28 -0
- package/dist/shared/providers/providerDiagnostics.js.map +1 -0
- package/dist/shared/providers/providerFactory.d.ts +72 -0
- package/dist/shared/providers/providerFactory.d.ts.map +1 -0
- package/dist/shared/providers/providerFactory.js +246 -0
- package/dist/shared/providers/providerFactory.js.map +1 -0
- package/dist/shared/providers/providerKeyedFactory.d.ts +14 -0
- package/dist/shared/providers/providerKeyedFactory.d.ts.map +1 -0
- package/dist/shared/providers/providerKeyedFactory.js +16 -0
- package/dist/shared/providers/providerKeyedFactory.js.map +1 -0
- package/dist/shared/providers/spawnLoggedCommand.d.ts +10 -0
- package/dist/shared/providers/spawnLoggedCommand.d.ts.map +1 -0
- package/dist/shared/providers/spawnLoggedCommand.js +304 -0
- package/dist/shared/providers/spawnLoggedCommand.js.map +1 -0
- package/dist/shared/providers/subprocessTemplateProvider.d.ts +19 -0
- package/dist/shared/providers/subprocessTemplateProvider.d.ts.map +1 -0
- package/dist/shared/providers/subprocessTemplateProvider.js +91 -0
- package/dist/shared/providers/subprocessTemplateProvider.js.map +1 -0
- package/dist/shared/providers/types.d.ts +43 -0
- package/dist/shared/providers/types.d.ts.map +1 -0
- package/dist/shared/providers/types.js +2 -0
- package/dist/shared/providers/types.js.map +1 -0
- package/dist/shared/providers/workerTaskLaunch.d.ts +32 -0
- package/dist/shared/providers/workerTaskLaunch.d.ts.map +1 -0
- package/dist/shared/providers/workerTaskLaunch.js +27 -0
- package/dist/shared/providers/workerTaskLaunch.js.map +1 -0
- package/dist/shared/quota/antigravityQuotaSource.d.ts +44 -0
- package/dist/shared/quota/antigravityQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/antigravityQuotaSource.js +101 -0
- package/dist/shared/quota/antigravityQuotaSource.js.map +1 -0
- package/dist/shared/quota/capacity.d.ts +283 -0
- package/dist/shared/quota/capacity.d.ts.map +1 -0
- package/dist/shared/quota/capacity.js +290 -0
- package/dist/shared/quota/capacity.js.map +1 -0
- package/dist/shared/quota/claudeCodeJsonLines.d.ts +15 -0
- package/dist/shared/quota/claudeCodeJsonLines.d.ts.map +1 -0
- package/dist/shared/quota/claudeCodeJsonLines.js +34 -0
- package/dist/shared/quota/claudeCodeJsonLines.js.map +1 -0
- package/dist/shared/quota/claudeOAuthQuotaSource.d.ts +56 -0
- package/dist/shared/quota/claudeOAuthQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/claudeOAuthQuotaSource.js +136 -0
- package/dist/shared/quota/claudeOAuthQuotaSource.js.map +1 -0
- package/dist/shared/quota/codexQuotaSource.d.ts +49 -0
- package/dist/shared/quota/codexQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/codexQuotaSource.js +96 -0
- package/dist/shared/quota/codexQuotaSource.js.map +1 -0
- package/dist/shared/quota/compositeQuotaSource.d.ts +29 -0
- package/dist/shared/quota/compositeQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/compositeQuotaSource.js +58 -0
- package/dist/shared/quota/compositeQuotaSource.js.map +1 -0
- package/dist/shared/quota/copilotQuotaSource.d.ts +57 -0
- package/dist/shared/quota/copilotQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/copilotQuotaSource.js +141 -0
- package/dist/shared/quota/copilotQuotaSource.js.map +1 -0
- package/dist/shared/quota/errorParsers/claudeCodeErrorParser.d.ts +7 -0
- package/dist/shared/quota/errorParsers/claudeCodeErrorParser.d.ts.map +1 -0
- package/dist/shared/quota/errorParsers/claudeCodeErrorParser.js +33 -0
- package/dist/shared/quota/errorParsers/claudeCodeErrorParser.js.map +1 -0
- package/dist/shared/quota/errorParsers/genericErrorParser.d.ts +10 -0
- package/dist/shared/quota/errorParsers/genericErrorParser.d.ts.map +1 -0
- package/dist/shared/quota/errorParsers/genericErrorParser.js +8 -0
- package/dist/shared/quota/errorParsers/genericErrorParser.js.map +1 -0
- package/dist/shared/quota/errorParsers/index.d.ts +6 -0
- package/dist/shared/quota/errorParsers/index.d.ts.map +1 -0
- package/dist/shared/quota/errorParsers/index.js +16 -0
- package/dist/shared/quota/errorParsers/index.js.map +1 -0
- package/dist/shared/quota/errorParsing.d.ts +8 -0
- package/dist/shared/quota/errorParsing.d.ts.map +1 -0
- package/dist/shared/quota/errorParsing.js +129 -0
- package/dist/shared/quota/errorParsing.js.map +1 -0
- package/dist/shared/quota/fileLock.d.ts +9 -0
- package/dist/shared/quota/fileLock.d.ts.map +1 -0
- package/dist/shared/quota/fileLock.js +202 -0
- package/dist/shared/quota/fileLock.js.map +1 -0
- package/dist/shared/quota/hostLimits.d.ts +16 -0
- package/dist/shared/quota/hostLimits.d.ts.map +1 -0
- package/dist/shared/quota/hostLimits.js +57 -0
- package/dist/shared/quota/hostLimits.js.map +1 -0
- package/dist/shared/quota/httpQuotaSource.d.ts +87 -0
- package/dist/shared/quota/httpQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/httpQuotaSource.js +90 -0
- package/dist/shared/quota/httpQuotaSource.js.map +1 -0
- package/dist/shared/quota/learnedQuotaSource.d.ts +8 -0
- package/dist/shared/quota/learnedQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/learnedQuotaSource.js +26 -0
- package/dist/shared/quota/learnedQuotaSource.js.map +1 -0
- package/dist/shared/quota/limits.d.ts +35 -0
- package/dist/shared/quota/limits.d.ts.map +1 -0
- package/dist/shared/quota/limits.js +110 -0
- package/dist/shared/quota/limits.js.map +1 -0
- package/dist/shared/quota/openCodeQuotaSource.d.ts +18 -0
- package/dist/shared/quota/openCodeQuotaSource.d.ts.map +1 -0
- package/dist/shared/quota/openCodeQuotaSource.js +84 -0
- package/dist/shared/quota/openCodeQuotaSource.js.map +1 -0
- package/dist/shared/quota/quotaSource.d.ts +29 -0
- package/dist/shared/quota/quotaSource.d.ts.map +1 -0
- package/dist/shared/quota/quotaSource.js +12 -0
- package/dist/shared/quota/quotaSource.js.map +1 -0
- package/dist/shared/quota/rollingEngine.d.ts +130 -0
- package/dist/shared/quota/rollingEngine.d.ts.map +1 -0
- package/dist/shared/quota/rollingEngine.js +153 -0
- package/dist/shared/quota/rollingEngine.js.map +1 -0
- package/dist/shared/quota/scheduler.d.ts +94 -0
- package/dist/shared/quota/scheduler.d.ts.map +1 -0
- package/dist/shared/quota/scheduler.js +313 -0
- package/dist/shared/quota/scheduler.js.map +1 -0
- package/dist/shared/quota/slidingWindow.d.ts +5 -0
- package/dist/shared/quota/slidingWindow.d.ts.map +1 -0
- package/dist/shared/quota/slidingWindow.js +29 -0
- package/dist/shared/quota/slidingWindow.js.map +1 -0
- package/dist/shared/quota/state.d.ts +27 -0
- package/dist/shared/quota/state.d.ts.map +1 -0
- package/dist/shared/quota/state.js +204 -0
- package/dist/shared/quota/state.js.map +1 -0
- package/dist/shared/quota/types.d.ts +109 -0
- package/dist/shared/quota/types.d.ts.map +1 -0
- package/dist/shared/quota/types.js +56 -0
- package/dist/shared/quota/types.js.map +1 -0
- package/dist/shared/reReview/projectionDiff.d.ts +65 -0
- package/dist/shared/reReview/projectionDiff.d.ts.map +1 -0
- package/dist/shared/reReview/projectionDiff.js +144 -0
- package/dist/shared/reReview/projectionDiff.js.map +1 -0
- package/dist/shared/rolling/pausedState.d.ts +109 -0
- package/dist/shared/rolling/pausedState.d.ts.map +1 -0
- package/dist/shared/rolling/pausedState.js +100 -0
- package/dist/shared/rolling/pausedState.js.map +1 -0
- package/dist/shared/tokens.d.ts +24 -0
- package/dist/shared/tokens.d.ts.map +1 -0
- package/dist/shared/tokens.js +54 -0
- package/dist/shared/tokens.js.map +1 -0
- package/dist/shared/tooling/allowlistedExec.d.ts +45 -0
- package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -0
- package/dist/shared/tooling/allowlistedExec.js +340 -0
- package/dist/shared/tooling/allowlistedExec.js.map +1 -0
- package/dist/shared/tooling/analyzerDeps.d.ts +65 -0
- package/dist/shared/tooling/analyzerDeps.d.ts.map +1 -0
- package/dist/shared/tooling/analyzerDeps.js +130 -0
- package/dist/shared/tooling/analyzerDeps.js.map +1 -0
- package/dist/shared/tooling/exec.d.ts +99 -0
- package/dist/shared/tooling/exec.d.ts.map +1 -0
- package/dist/shared/tooling/exec.js +217 -0
- package/dist/shared/tooling/exec.js.map +1 -0
- package/dist/shared/tooling/repoConventions.d.ts +23 -0
- package/dist/shared/tooling/repoConventions.d.ts.map +1 -0
- package/dist/shared/tooling/repoConventions.js +177 -0
- package/dist/shared/tooling/repoConventions.js.map +1 -0
- package/dist/shared/tooling/testCommand.d.ts +17 -0
- package/dist/shared/tooling/testCommand.d.ts.map +1 -0
- package/dist/shared/tooling/testCommand.js +106 -0
- package/dist/shared/tooling/testCommand.js.map +1 -0
- package/dist/shared/types/accessDeclaration.d.ts +16 -0
- package/dist/shared/types/accessDeclaration.d.ts.map +1 -0
- package/dist/shared/types/accessDeclaration.js +9 -0
- package/dist/shared/types/accessDeclaration.js.map +1 -0
- package/dist/shared/types/contractPipeline/design.d.ts +74 -0
- package/dist/shared/types/contractPipeline/design.d.ts.map +1 -0
- package/dist/shared/types/contractPipeline/design.js +10 -0
- package/dist/shared/types/contractPipeline/design.js.map +1 -0
- package/dist/shared/types/contractPipeline/goal.d.ts +41 -0
- package/dist/shared/types/contractPipeline/goal.d.ts.map +1 -0
- package/dist/shared/types/contractPipeline/goal.js +10 -0
- package/dist/shared/types/contractPipeline/goal.js.map +1 -0
- package/dist/shared/types/contractPipeline/implementation.d.ts +64 -0
- package/dist/shared/types/contractPipeline/implementation.d.ts.map +1 -0
- package/dist/shared/types/contractPipeline/implementation.js +8 -0
- package/dist/shared/types/contractPipeline/implementation.js.map +1 -0
- package/dist/shared/types/contractPipeline/obligations.d.ts +141 -0
- package/dist/shared/types/contractPipeline/obligations.d.ts.map +1 -0
- package/dist/shared/types/contractPipeline/obligations.js +16 -0
- package/dist/shared/types/contractPipeline/obligations.js.map +1 -0
- package/dist/shared/types/contractPipeline/verification.d.ts +64 -0
- package/dist/shared/types/contractPipeline/verification.d.ts.map +1 -0
- package/dist/shared/types/contractPipeline/verification.js +10 -0
- package/dist/shared/types/contractPipeline/verification.js.map +1 -0
- package/dist/shared/types/contractPipeline.d.ts +36 -0
- package/dist/shared/types/contractPipeline.d.ts.map +1 -0
- package/dist/shared/types/contractPipeline.js +31 -0
- package/dist/shared/types/contractPipeline.js.map +1 -0
- package/dist/shared/types/disposition.d.ts +46 -0
- package/dist/shared/types/disposition.d.ts.map +1 -0
- package/dist/shared/types/disposition.js +22 -0
- package/dist/shared/types/disposition.js.map +1 -0
- package/dist/shared/types/finding.d.ts +1463 -0
- package/dist/shared/types/finding.d.ts.map +1 -0
- package/dist/shared/types/finding.js +234 -0
- package/dist/shared/types/finding.js.map +1 -0
- package/dist/shared/types/flows.d.ts +84 -0
- package/dist/shared/types/flows.d.ts.map +1 -0
- package/dist/shared/types/flows.js +23 -0
- package/dist/shared/types/flows.js.map +1 -0
- package/dist/shared/types/graph.d.ts +359 -0
- package/dist/shared/types/graph.d.ts.map +1 -0
- package/dist/shared/types/graph.js +38 -0
- package/dist/shared/types/graph.js.map +1 -0
- package/dist/shared/types/intentCheckpoint.d.ts +95 -0
- package/dist/shared/types/intentCheckpoint.d.ts.map +1 -0
- package/dist/shared/types/intentCheckpoint.js +2 -0
- package/dist/shared/types/intentCheckpoint.js.map +1 -0
- package/dist/shared/types/intentInterpretation.d.ts +57 -0
- package/dist/shared/types/intentInterpretation.d.ts.map +1 -0
- package/dist/shared/types/intentInterpretation.js +20 -0
- package/dist/shared/types/intentInterpretation.js.map +1 -0
- package/dist/shared/types/lens.d.ts +38 -0
- package/dist/shared/types/lens.d.ts.map +1 -0
- package/dist/shared/types/lens.js +80 -0
- package/dist/shared/types/lens.js.map +1 -0
- package/dist/shared/types/obligationLedger.d.ts +35 -0
- package/dist/shared/types/obligationLedger.d.ts.map +1 -0
- package/dist/shared/types/obligationLedger.js +77 -0
- package/dist/shared/types/obligationLedger.js.map +1 -0
- package/dist/shared/types/providerConfirmation.d.ts +51 -0
- package/dist/shared/types/providerConfirmation.d.ts.map +1 -0
- package/dist/shared/types/providerConfirmation.js +19 -0
- package/dist/shared/types/providerConfirmation.js.map +1 -0
- package/dist/shared/types/remediationOutcome.d.ts +41 -0
- package/dist/shared/types/remediationOutcome.d.ts.map +1 -0
- package/dist/shared/types/remediationOutcome.js +7 -0
- package/dist/shared/types/remediationOutcome.js.map +1 -0
- package/dist/shared/types/risk.d.ts +52 -0
- package/dist/shared/types/risk.d.ts.map +1 -0
- package/dist/shared/types/risk.js +17 -0
- package/dist/shared/types/risk.js.map +1 -0
- package/dist/shared/types/rollingDispatch.d.ts +61 -0
- package/dist/shared/types/rollingDispatch.d.ts.map +1 -0
- package/dist/shared/types/rollingDispatch.js +19 -0
- package/dist/shared/types/rollingDispatch.js.map +1 -0
- package/dist/shared/types/runLedger.d.ts +18 -0
- package/dist/shared/types/runLedger.d.ts.map +1 -0
- package/dist/shared/types/runLedger.js +7 -0
- package/dist/shared/types/runLedger.js.map +1 -0
- package/dist/shared/types/sessionConfig.d.ts +294 -0
- package/dist/shared/types/sessionConfig.d.ts.map +1 -0
- package/dist/shared/types/sessionConfig.js +44 -0
- package/dist/shared/types/sessionConfig.js.map +1 -0
- package/dist/shared/types/stepContract.d.ts +10 -0
- package/dist/shared/types/stepContract.d.ts.map +1 -0
- package/dist/shared/types/stepContract.js +4 -0
- package/dist/shared/types/stepContract.js.map +1 -0
- package/dist/shared/types/surfaces.d.ts +73 -0
- package/dist/shared/types/surfaces.d.ts.map +1 -0
- package/dist/shared/types/surfaces.js +21 -0
- package/dist/shared/types/surfaces.js.map +1 -0
- package/dist/shared/validation/basic.d.ts +24 -0
- package/dist/shared/validation/basic.d.ts.map +1 -0
- package/dist/shared/validation/basic.js +57 -0
- package/dist/shared/validation/basic.js.map +1 -0
- package/dist/shared/validation/findingGrounding.d.ts +45 -0
- package/dist/shared/validation/findingGrounding.d.ts.map +1 -0
- package/dist/shared/validation/findingGrounding.js +103 -0
- package/dist/shared/validation/findingGrounding.js.map +1 -0
- package/dist/shared/validation/findingsReport.d.ts +42 -0
- package/dist/shared/validation/findingsReport.d.ts.map +1 -0
- package/dist/shared/validation/findingsReport.js +76 -0
- package/dist/shared/validation/findingsReport.js.map +1 -0
- package/dist/shared/validation/sessionConfig.d.ts +22 -0
- package/dist/shared/validation/sessionConfig.d.ts.map +1 -0
- package/dist/shared/validation/sessionConfig.js +38 -0
- package/dist/shared/validation/sessionConfig.js.map +1 -0
- package/docs/audit-pkg/contracts.md +227 -0
- package/docs/audit-pkg/development.md +112 -0
- package/docs/audit-pkg/history.md +66 -0
- package/docs/audit-pkg/operator-guide.md +204 -0
- package/docs/audit-pkg/product.md +119 -0
- package/docs/audit-pkg/release.md +131 -0
- package/opencode.json +159 -0
- package/package.json +104 -0
- package/remediate-code.mjs +116 -0
- package/schemas/audit_result.schema.json +510 -0
- package/schemas/audit_results.schema.json +514 -0
- package/schemas/audit_task.schema.json +127 -0
- package/schemas/finding.schema.json +261 -0
- package/schemas/lens.schema.json +19 -0
- package/scripts/audit/postinstall.mjs +385 -0
- package/scripts/postinstall.mjs +24 -0
- package/scripts/remediate/postinstall.mjs +387 -0
- package/skills/audit-code/SKILL.md +166 -0
- package/skills/audit-code/agents/openai.yaml +4 -0
- package/skills/audit-code/audit-code.prompt.md +112 -0
- package/skills/audit-code/opencode-command-template.txt +13 -0
- package/skills/remediate-code/SKILL.md +90 -0
- package/skills/remediate-code/agents/openai.yaml +4 -0
- package/skills/remediate-code/remediate-code.prompt.md +94 -0
- package/templates/AGENTS.remediate-code.md +6 -0
|
@@ -0,0 +1,988 @@
|
|
|
1
|
+
import { writeFile, readFile } from "node:fs/promises";
|
|
2
|
+
import { isAbsolute, join } from "node:path";
|
|
3
|
+
import { isValidAuditFindingsReport, findingNeedsVerificationBeforeFix, } from "audit-tools/shared";
|
|
4
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
5
|
+
import { snapshotAffectedFileHashes } from "../utils/fileIntegrity.js";
|
|
6
|
+
import { groundExtractedFindings, } from "./grounding.js";
|
|
7
|
+
import { readOptionalJsonFile, writeJsonFile, readJsonFile, formatValidationIssues, discoverProjectCommands, resolveContextBudget, estimateTokensFromBytes, ESTIMATED_PROMPT_OVERHEAD_TOKENS, ESTIMATED_ITEM_OVERHEAD_TOKENS, } from "audit-tools/shared";
|
|
8
|
+
import { createFreshSessionProvider } from "../providers/index.js";
|
|
9
|
+
import { deduplicateCrossLensFindings, fixupBlocksAfterDedup, } from "../dedup/crossLensDedup.js";
|
|
10
|
+
import { filterFindingsByCheckpoint } from "../intent/checkpointFilter.js";
|
|
11
|
+
import { validateRemediationPlan, } from "../validation/remediationState.js";
|
|
12
|
+
import { runCommand } from "../utils/commands.js";
|
|
13
|
+
import { createLaunchInputForTask, createRemediationWorkerTask, } from "./workerTasks.js";
|
|
14
|
+
function enumerateTestFiles(root) {
|
|
15
|
+
if (!existsSync(join(root, "package.json"))) {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
// Try vitest first, then jest, and return the list of test file paths
|
|
19
|
+
const vitestResult = runCommand("npx", ["vitest", "--reporter=verbose", "--run", "--passWithNoTests", "list"], {
|
|
20
|
+
cwd: root,
|
|
21
|
+
encoding: "utf8",
|
|
22
|
+
timeout: 15000,
|
|
23
|
+
});
|
|
24
|
+
if (vitestResult.status === 0 && vitestResult.stdout) {
|
|
25
|
+
const files = vitestResult.stdout
|
|
26
|
+
.toString()
|
|
27
|
+
.split(/\r?\n/)
|
|
28
|
+
.map((l) => l.trim())
|
|
29
|
+
.filter((l) => l.length > 0 &&
|
|
30
|
+
!l.startsWith("✓") &&
|
|
31
|
+
!l.startsWith("×") &&
|
|
32
|
+
l.includes("."));
|
|
33
|
+
if (files.length > 0)
|
|
34
|
+
return files;
|
|
35
|
+
}
|
|
36
|
+
const jestResult = runCommand("npx", ["jest", "--listTests", "--no-coverage"], {
|
|
37
|
+
cwd: root,
|
|
38
|
+
encoding: "utf8",
|
|
39
|
+
timeout: 15000,
|
|
40
|
+
});
|
|
41
|
+
if (jestResult.status === 0 && jestResult.stdout) {
|
|
42
|
+
const files = jestResult.stdout
|
|
43
|
+
.toString()
|
|
44
|
+
.split(/\r?\n/)
|
|
45
|
+
.map((l) => l.trim())
|
|
46
|
+
.filter((l) => l.length > 0);
|
|
47
|
+
if (files.length > 0)
|
|
48
|
+
return files;
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Parse the auditor's canonical `audit-findings.json` (the machine contract) into
|
|
54
|
+
* remediation findings, work blocks, and synthesis themes. The auditor emits this
|
|
55
|
+
* directly (Phase 6); the remediator consumes it verbatim, so there is no markdown
|
|
56
|
+
* parsing — non-auditor input still flows through the free-form LLM extractor.
|
|
57
|
+
*/
|
|
58
|
+
export function parseAuditFindingsReport(report) {
|
|
59
|
+
const findings = Array.isArray(report.findings) ? report.findings : [];
|
|
60
|
+
const blocks = Array.isArray(report.work_blocks)
|
|
61
|
+
? report.work_blocks.map((block) => ({
|
|
62
|
+
block_id: block.id,
|
|
63
|
+
items: [...(block.finding_ids ?? [])],
|
|
64
|
+
dependencies: [...(block.depends_on ?? [])],
|
|
65
|
+
parallel_safe: (block.depends_on?.length ?? 0) === 0,
|
|
66
|
+
}))
|
|
67
|
+
: [];
|
|
68
|
+
const themes = Array.isArray(report.themes) ? report.themes : [];
|
|
69
|
+
return { findings, blocks, themes };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Whether a parsed JSON value is a valid audit-findings report.
|
|
73
|
+
*
|
|
74
|
+
* INV-remediate-state-07: delegates to the shared validator which enforces
|
|
75
|
+
* contract_version presence and expected value. An absent or mismatched
|
|
76
|
+
* contract_version is rejected here rather than silently trusted.
|
|
77
|
+
*/
|
|
78
|
+
export function isAuditFindingsReport(value) {
|
|
79
|
+
return isValidAuditFindingsReport(value);
|
|
80
|
+
}
|
|
81
|
+
/** Parse JSON content into an audit-findings report, or undefined if it is not one. */
|
|
82
|
+
function tryParseFindingsReport(content) {
|
|
83
|
+
try {
|
|
84
|
+
const parsed = JSON.parse(content);
|
|
85
|
+
return isAuditFindingsReport(parsed) ? parsed : undefined;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function createBlockId(counter) {
|
|
92
|
+
return `B-${String(counter).padStart(3, "0")}`;
|
|
93
|
+
}
|
|
94
|
+
function assignFindingToBlock(finding, blockId, blocks, fileToBlock) {
|
|
95
|
+
let block = blocks.find((candidate) => candidate.block_id === blockId);
|
|
96
|
+
if (!block) {
|
|
97
|
+
block = { block_id: blockId, items: [], parallel_safe: true };
|
|
98
|
+
blocks.push(block);
|
|
99
|
+
}
|
|
100
|
+
block.items.push(finding.id);
|
|
101
|
+
for (const file of finding.affected_files) {
|
|
102
|
+
fileToBlock.set(file.path, blockId);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export function deriveBlocksFromTestGraph(findings, testFiles) {
|
|
106
|
+
const blocks = [];
|
|
107
|
+
const fileToBlock = new Map();
|
|
108
|
+
let blockCounter = 1;
|
|
109
|
+
const sourceToTests = new Map();
|
|
110
|
+
for (const finding of findings) {
|
|
111
|
+
for (const af of finding.affected_files) {
|
|
112
|
+
if (!sourceToTests.has(af.path)) {
|
|
113
|
+
const sourceParts = af.path.split(/[/\\]/).filter(Boolean);
|
|
114
|
+
const covering = testFiles.filter((tf) => {
|
|
115
|
+
const testParts = tf.split(/[/\\]/).filter(Boolean);
|
|
116
|
+
return sourceParts.some((part) => testParts.includes(part));
|
|
117
|
+
});
|
|
118
|
+
sourceToTests.set(af.path, new Set(covering));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const finding of findings) {
|
|
123
|
+
let assignedBlock = null;
|
|
124
|
+
for (const af of finding.affected_files) {
|
|
125
|
+
if (fileToBlock.has(af.path)) {
|
|
126
|
+
assignedBlock = fileToBlock.get(af.path);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
const testsA = sourceToTests.get(af.path) ?? new Set();
|
|
130
|
+
for (const [existingFile, existingBlock] of fileToBlock.entries()) {
|
|
131
|
+
const testsB = sourceToTests.get(existingFile) ?? new Set();
|
|
132
|
+
const shared = [...testsA].filter((t) => testsB.has(t));
|
|
133
|
+
if (shared.length > 0) {
|
|
134
|
+
assignedBlock = existingBlock;
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (assignedBlock)
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
if (!assignedBlock) {
|
|
142
|
+
assignedBlock = createBlockId(blockCounter++);
|
|
143
|
+
}
|
|
144
|
+
assignFindingToBlock(finding, assignedBlock, blocks, fileToBlock);
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
blocks,
|
|
148
|
+
useful: blocks.length < findings.length,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function collectFileCommits(findings, root, commandRunner) {
|
|
152
|
+
const fileCommits = new Map();
|
|
153
|
+
for (const finding of findings) {
|
|
154
|
+
for (const file of finding.affected_files) {
|
|
155
|
+
if (fileCommits.has(file.path))
|
|
156
|
+
continue;
|
|
157
|
+
try {
|
|
158
|
+
const result = commandRunner("git", ["log", "--format=%H", "--", file.path], { cwd: root, encoding: "utf8" });
|
|
159
|
+
fileCommits.set(file.path, result.status === 0 && result.stdout
|
|
160
|
+
? new Set(result.stdout
|
|
161
|
+
.toString()
|
|
162
|
+
.split("\n")
|
|
163
|
+
.map((s) => s.trim())
|
|
164
|
+
.filter((s) => s.length > 0))
|
|
165
|
+
: new Set());
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
fileCommits.set(file.path, new Set());
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return fileCommits;
|
|
173
|
+
}
|
|
174
|
+
function deriveBlocksFromGitCocommit(findings, fileCommits) {
|
|
175
|
+
const blocks = [];
|
|
176
|
+
const fileToBlock = new Map();
|
|
177
|
+
let blockCounter = 1;
|
|
178
|
+
for (const finding of findings) {
|
|
179
|
+
let assignedBlock = null;
|
|
180
|
+
for (const file of finding.affected_files) {
|
|
181
|
+
if (fileToBlock.has(file.path)) {
|
|
182
|
+
assignedBlock = fileToBlock.get(file.path);
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
const commitsA = fileCommits.get(file.path) ?? new Set();
|
|
186
|
+
for (const [existingFile, existingBlock] of fileToBlock.entries()) {
|
|
187
|
+
const commitsB = fileCommits.get(existingFile) ?? new Set();
|
|
188
|
+
let intersection = 0;
|
|
189
|
+
for (const c of commitsA)
|
|
190
|
+
if (commitsB.has(c))
|
|
191
|
+
intersection++;
|
|
192
|
+
const union = commitsA.size + commitsB.size - intersection;
|
|
193
|
+
if (union > 0 && intersection / union > 0.5) {
|
|
194
|
+
assignedBlock = existingBlock;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (assignedBlock)
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
if (!assignedBlock) {
|
|
202
|
+
assignedBlock = createBlockId(blockCounter++);
|
|
203
|
+
}
|
|
204
|
+
assignFindingToBlock(finding, assignedBlock, blocks, fileToBlock);
|
|
205
|
+
}
|
|
206
|
+
return blocks;
|
|
207
|
+
}
|
|
208
|
+
// Block-sizing constants: now single-sourced from audit-tools/shared.
|
|
209
|
+
// Re-exported under their legacy names so any callers outside this package
|
|
210
|
+
// (and dispatch.ts) can migrate to the shared constants at their own pace.
|
|
211
|
+
export { ESTIMATED_PROMPT_OVERHEAD_TOKENS as ESTIMATED_BLOCK_BASE_TOKENS, ESTIMATED_ITEM_OVERHEAD_TOKENS as ESTIMATED_FINDING_OVERHEAD_TOKENS, } from "audit-tools/shared";
|
|
212
|
+
function resolveContextBudgetFromConfig(sessionConfig) {
|
|
213
|
+
const quota = sessionConfig?.block_quota ?? {};
|
|
214
|
+
return resolveContextBudget({
|
|
215
|
+
contextTokens: quota.context_tokens ?? null,
|
|
216
|
+
reservedOutputTokens: quota.reserved_output_tokens ?? null,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
const PLAN_WALK_SKIP_DIRS = new Set([
|
|
220
|
+
"node_modules", ".git", "dist", "build", "coverage", "out", ".audit-tools",
|
|
221
|
+
]);
|
|
222
|
+
function walkDirBytes(dir, maxFiles = 200) {
|
|
223
|
+
let total = 0;
|
|
224
|
+
let count = 0;
|
|
225
|
+
const stack = [dir];
|
|
226
|
+
while (stack.length > 0 && count < maxFiles) {
|
|
227
|
+
const cur = stack.pop();
|
|
228
|
+
try {
|
|
229
|
+
for (const entry of readdirSync(cur, { withFileTypes: true })) {
|
|
230
|
+
if (PLAN_WALK_SKIP_DIRS.has(entry.name))
|
|
231
|
+
continue;
|
|
232
|
+
const full = join(cur, entry.name);
|
|
233
|
+
if (entry.isDirectory()) {
|
|
234
|
+
stack.push(full);
|
|
235
|
+
}
|
|
236
|
+
else if (entry.isFile()) {
|
|
237
|
+
count++;
|
|
238
|
+
try {
|
|
239
|
+
total += statSync(full).size;
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// ignore unreadable files
|
|
243
|
+
}
|
|
244
|
+
if (count >= maxFiles)
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return total;
|
|
254
|
+
}
|
|
255
|
+
function isDirectoryPath(filePath, root) {
|
|
256
|
+
const fullPath = isAbsolute(filePath) ? filePath : join(root, filePath);
|
|
257
|
+
try {
|
|
258
|
+
return statSync(fullPath).isDirectory();
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Phase 2: size by bytes from a stat (no full-file reads) rather than counting
|
|
265
|
+
// lines, and convert to tokens via the shared estimator.
|
|
266
|
+
function fileSizeBytes(filePath, root) {
|
|
267
|
+
const fullPath = isAbsolute(filePath) ? filePath : join(root, filePath);
|
|
268
|
+
try {
|
|
269
|
+
const st = statSync(fullPath);
|
|
270
|
+
return st.isDirectory() ? walkDirBytes(fullPath) : st.size;
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
return 0;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function groupFindingsByFileOverlap(findingIds, findings, repoRoot = ".") {
|
|
277
|
+
const parent = new Map(findingIds.map((id) => [id, id]));
|
|
278
|
+
function find(id) {
|
|
279
|
+
let cur = id;
|
|
280
|
+
while (parent.get(cur) !== cur) {
|
|
281
|
+
const grandparent = parent.get(parent.get(cur));
|
|
282
|
+
parent.set(cur, grandparent);
|
|
283
|
+
cur = grandparent;
|
|
284
|
+
}
|
|
285
|
+
return cur;
|
|
286
|
+
}
|
|
287
|
+
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
288
|
+
const fileToIds = new Map();
|
|
289
|
+
for (const id of findingIds) {
|
|
290
|
+
for (const af of findingMap.get(id)?.affected_files ?? []) {
|
|
291
|
+
// Directory paths must not drive union-find merges: a broad directory shared
|
|
292
|
+
// by many findings would otherwise collapse them all into one indivisible block.
|
|
293
|
+
if (isDirectoryPath(af.path, repoRoot))
|
|
294
|
+
continue;
|
|
295
|
+
const list = fileToIds.get(af.path) ?? [];
|
|
296
|
+
list.push(id);
|
|
297
|
+
fileToIds.set(af.path, list);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
for (const ids of fileToIds.values()) {
|
|
301
|
+
for (let i = 1; i < ids.length; i++) {
|
|
302
|
+
const ra = find(ids[0]);
|
|
303
|
+
const rb = find(ids[i]);
|
|
304
|
+
if (ra !== rb)
|
|
305
|
+
parent.set(ra, rb);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
const groups = new Map();
|
|
309
|
+
for (const id of findingIds) {
|
|
310
|
+
const repr = find(id);
|
|
311
|
+
const g = groups.get(repr) ?? [];
|
|
312
|
+
g.push(id);
|
|
313
|
+
groups.set(repr, g);
|
|
314
|
+
}
|
|
315
|
+
return [...groups.values()];
|
|
316
|
+
}
|
|
317
|
+
export function estimateGroupTokens(findingIds, findings, fileByteCounts) {
|
|
318
|
+
const uniqueFiles = new Set();
|
|
319
|
+
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
320
|
+
for (const id of findingIds) {
|
|
321
|
+
for (const af of findingMap.get(id)?.affected_files ?? [])
|
|
322
|
+
uniqueFiles.add(af.path);
|
|
323
|
+
}
|
|
324
|
+
const totalBytes = [...uniqueFiles].reduce((sum, p) => sum + (fileByteCounts.get(p) ?? 0), 0);
|
|
325
|
+
return (ESTIMATED_PROMPT_OVERHEAD_TOKENS +
|
|
326
|
+
estimateTokensFromBytes(totalBytes) +
|
|
327
|
+
findingIds.length * ESTIMATED_ITEM_OVERHEAD_TOKENS);
|
|
328
|
+
}
|
|
329
|
+
function splitOversizedOverlapGroup(group, findings, fileByteCounts, contextBudget) {
|
|
330
|
+
if (group.length <= 1 ||
|
|
331
|
+
estimateGroupTokens(group, findings, fileByteCounts) <= contextBudget) {
|
|
332
|
+
return [group];
|
|
333
|
+
}
|
|
334
|
+
const chunks = [];
|
|
335
|
+
let current = [];
|
|
336
|
+
for (const findingId of group) {
|
|
337
|
+
const candidate = [...current, findingId];
|
|
338
|
+
if (current.length > 0 &&
|
|
339
|
+
estimateGroupTokens(candidate, findings, fileByteCounts) > contextBudget) {
|
|
340
|
+
chunks.push(current);
|
|
341
|
+
current = [findingId];
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
current = candidate;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
if (current.length > 0)
|
|
348
|
+
chunks.push(current);
|
|
349
|
+
return chunks;
|
|
350
|
+
}
|
|
351
|
+
export function splitBlocksByContextBudget(blocks, findings, root, contextBudget) {
|
|
352
|
+
const allFiles = new Set();
|
|
353
|
+
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
354
|
+
for (const block of blocks) {
|
|
355
|
+
for (const id of block.items) {
|
|
356
|
+
for (const af of findingMap.get(id)?.affected_files ?? [])
|
|
357
|
+
allFiles.add(af.path);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
const fileByteCounts = new Map();
|
|
361
|
+
for (const filePath of allFiles) {
|
|
362
|
+
fileByteCounts.set(filePath, fileSizeBytes(filePath, root));
|
|
363
|
+
}
|
|
364
|
+
const result = [];
|
|
365
|
+
// Maps an original block_id to the sub-block IDs it was expanded into.
|
|
366
|
+
// Used in the second pass to rewrite dependency references in other blocks.
|
|
367
|
+
const splitRemap = new Map();
|
|
368
|
+
for (const block of blocks) {
|
|
369
|
+
const fileGroups = groupFindingsByFileOverlap(block.items, findings, root);
|
|
370
|
+
const subBlocks = [];
|
|
371
|
+
let currentItems = [];
|
|
372
|
+
let currentTokens = 0;
|
|
373
|
+
for (const overlapGroup of fileGroups) {
|
|
374
|
+
const groups = splitOversizedOverlapGroup(overlapGroup, findings, fileByteCounts, contextBudget);
|
|
375
|
+
for (const group of groups) {
|
|
376
|
+
const groupTokens = estimateGroupTokens(group, findings, fileByteCounts);
|
|
377
|
+
if (currentItems.length > 0 && currentTokens + groupTokens > contextBudget) {
|
|
378
|
+
subBlocks.push(currentItems);
|
|
379
|
+
currentItems = group;
|
|
380
|
+
currentTokens = groupTokens;
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
currentItems = [...currentItems, ...group];
|
|
384
|
+
currentTokens += groupTokens;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (currentItems.length > 0)
|
|
389
|
+
subBlocks.push(currentItems);
|
|
390
|
+
if (subBlocks.length === 1) {
|
|
391
|
+
result.push(block);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
const subBlockIds = subBlocks.map((_, i) => `${block.block_id}-${String(i + 1).padStart(2, "0")}`);
|
|
395
|
+
splitRemap.set(block.block_id, subBlockIds);
|
|
396
|
+
for (let i = 0; i < subBlocks.length; i++) {
|
|
397
|
+
result.push({
|
|
398
|
+
block_id: subBlockIds[i],
|
|
399
|
+
items: subBlocks[i],
|
|
400
|
+
parallel_safe: block.parallel_safe,
|
|
401
|
+
dependencies: block.dependencies,
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
// Second pass: rewrite dependency references in result blocks so that a block
|
|
407
|
+
// depending on a split block now depends on ALL the resulting sub-blocks.
|
|
408
|
+
if (splitRemap.size > 0) {
|
|
409
|
+
for (const block of result) {
|
|
410
|
+
if (!block.dependencies || block.dependencies.length === 0)
|
|
411
|
+
continue;
|
|
412
|
+
const rewritten = [
|
|
413
|
+
...new Set(block.dependencies.flatMap((dep) => splitRemap.get(dep) ?? [dep])),
|
|
414
|
+
];
|
|
415
|
+
block.dependencies = rewritten;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return result;
|
|
419
|
+
}
|
|
420
|
+
function deriveFallbackBlocks(findings, options, deps) {
|
|
421
|
+
if (findings.length === 0)
|
|
422
|
+
return { blocks: [] };
|
|
423
|
+
const testFiles = deps.enumerateTestFiles?.(options.root) ?? enumerateTestFiles(options.root);
|
|
424
|
+
if (testFiles.length > 0) {
|
|
425
|
+
const testGraph = deriveBlocksFromTestGraph(findings, testFiles);
|
|
426
|
+
if (testGraph.useful) {
|
|
427
|
+
return { blocks: testGraph.blocks, blockStrategy: "test_graph" };
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
const fileCommits = collectFileCommits(findings, options.root, deps.runCommand ?? runCommand);
|
|
431
|
+
const gitBlocks = deriveBlocksFromGitCocommit(findings, fileCommits);
|
|
432
|
+
if (gitBlocks.some((b) => b.items.length > 1)) {
|
|
433
|
+
return { blocks: gitBlocks, blockStrategy: "git_cocommit" };
|
|
434
|
+
}
|
|
435
|
+
return {
|
|
436
|
+
blocks: findings.map((finding, index) => ({
|
|
437
|
+
block_id: createBlockId(index + 1),
|
|
438
|
+
items: [finding.id],
|
|
439
|
+
parallel_safe: true,
|
|
440
|
+
})),
|
|
441
|
+
blockStrategy: "file_overlap",
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Account for every finding the plan received: each is marked `planned` (kept and
|
|
446
|
+
* mapped to a block), `folded_into` (merged into a survivor by cross-lens dedup),
|
|
447
|
+
* `dropped_no_evidence` (excluded for carrying no evidence), `dropped_by_checkpoint`,
|
|
448
|
+
* or `dropped_phantom_paths` (every cited path was phantom, post-repair). The
|
|
449
|
+
* dispositions are mutually exclusive and cover the whole source set, so nothing
|
|
450
|
+
* is lost silently. Kept extracted findings additionally carry their grounding
|
|
451
|
+
* annotations (stripped phantom paths, evidence-grounded flag).
|
|
452
|
+
*/
|
|
453
|
+
export function buildCoverageLedger(params) {
|
|
454
|
+
const dropped = new Set(params.droppedNoEvidence);
|
|
455
|
+
const byCheckpoint = new Set(params.droppedByCheckpoint);
|
|
456
|
+
const declinedReasons = new Map((params.declinedByReview ?? []).map((d) => [d.finding_id, d.reason]));
|
|
457
|
+
const groundingAnnotations = (f) => {
|
|
458
|
+
const phantoms = params.phantomPathsRemoved?.get(f.id);
|
|
459
|
+
return {
|
|
460
|
+
...(phantoms && phantoms.length > 0
|
|
461
|
+
? { phantom_paths_removed: phantoms }
|
|
462
|
+
: {}),
|
|
463
|
+
...(f.evidence_grounded !== undefined
|
|
464
|
+
? { evidence_grounded: f.evidence_grounded }
|
|
465
|
+
: {}),
|
|
466
|
+
};
|
|
467
|
+
};
|
|
468
|
+
const entries = params.sourceFindings.map((f) => {
|
|
469
|
+
const phantomPaths = params.droppedPhantomPaths?.get(f.id);
|
|
470
|
+
if (phantomPaths) {
|
|
471
|
+
return {
|
|
472
|
+
finding_id: f.id,
|
|
473
|
+
title: f.title,
|
|
474
|
+
disposition: "dropped_phantom_paths",
|
|
475
|
+
rationale: "Every cited affected_files path was phantom (does not exist in the repository) and one bounded repair attempt did not produce a real path.",
|
|
476
|
+
phantom_paths_removed: phantomPaths,
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
if (dropped.has(f.id)) {
|
|
480
|
+
return {
|
|
481
|
+
finding_id: f.id,
|
|
482
|
+
title: f.title,
|
|
483
|
+
disposition: "dropped_no_evidence",
|
|
484
|
+
rationale: "Finding carried no evidence and was excluded from the plan.",
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
const survivor = params.mergeMap.get(f.id);
|
|
488
|
+
if (survivor) {
|
|
489
|
+
return {
|
|
490
|
+
finding_id: f.id,
|
|
491
|
+
title: f.title,
|
|
492
|
+
disposition: "folded_into",
|
|
493
|
+
folded_into: survivor,
|
|
494
|
+
...groundingAnnotations(f),
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
if (byCheckpoint.has(f.id)) {
|
|
498
|
+
return {
|
|
499
|
+
finding_id: f.id,
|
|
500
|
+
title: f.title,
|
|
501
|
+
disposition: "dropped_by_checkpoint",
|
|
502
|
+
rationale: "Finding excluded by the intent checkpoint (filter or excluded scope).",
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
if (declinedReasons.has(f.id)) {
|
|
506
|
+
return {
|
|
507
|
+
finding_id: f.id,
|
|
508
|
+
title: f.title,
|
|
509
|
+
disposition: "declined_by_review",
|
|
510
|
+
rationale: declinedReasons.get(f.id) ??
|
|
511
|
+
"Disapproved by the user at the review-approval gate.",
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
return {
|
|
515
|
+
finding_id: f.id,
|
|
516
|
+
title: f.title,
|
|
517
|
+
disposition: "planned",
|
|
518
|
+
block_id: params.items[f.id]?.block_id,
|
|
519
|
+
...groundingAnnotations(f),
|
|
520
|
+
};
|
|
521
|
+
});
|
|
522
|
+
const count = (d) => entries.filter((e) => e.disposition === d).length;
|
|
523
|
+
return {
|
|
524
|
+
contract_version: "remediate-code-coverage/v1alpha1",
|
|
525
|
+
plan_id: params.planId,
|
|
526
|
+
source_finding_count: params.sourceFindings.length,
|
|
527
|
+
planned_count: count("planned"),
|
|
528
|
+
folded_count: count("folded_into"),
|
|
529
|
+
dropped_count: count("dropped_no_evidence"),
|
|
530
|
+
checkpoint_dropped_count: count("dropped_by_checkpoint"),
|
|
531
|
+
phantom_dropped_count: count("dropped_phantom_paths"),
|
|
532
|
+
declined_review_count: count("declined_by_review"),
|
|
533
|
+
entries,
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Merge any blocks whose findings touch a shared file, UNLESS an explicit
|
|
538
|
+
* dependency already serializes them (ordered blocks never run in parallel, so a
|
|
539
|
+
* shared file between them is safe). This keeps a finding whose fix-set spans
|
|
540
|
+
* blocks inside a single block and guarantees no two parallel blocks ever write
|
|
541
|
+
* the same file — the documented "several blocks all editing the same file"
|
|
542
|
+
* clobber. Pure; preserves the auditor's structure when nothing overlaps.
|
|
543
|
+
*/
|
|
544
|
+
export function mergeBlocksSharingFiles(blocks, findings, root = ".") {
|
|
545
|
+
if (blocks.length < 2)
|
|
546
|
+
return blocks;
|
|
547
|
+
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
548
|
+
const byId = new Map(blocks.map((b) => [b.block_id, b]));
|
|
549
|
+
const fileSet = (b) => {
|
|
550
|
+
const files = new Set();
|
|
551
|
+
for (const id of b.items) {
|
|
552
|
+
for (const af of findingMap.get(id)?.affected_files ?? []) {
|
|
553
|
+
if (!isDirectoryPath(af.path, root))
|
|
554
|
+
files.add(af.path);
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
return files;
|
|
558
|
+
};
|
|
559
|
+
const reaches = (from, to) => {
|
|
560
|
+
const seen = new Set();
|
|
561
|
+
const stack = [...(byId.get(from)?.dependencies ?? [])];
|
|
562
|
+
while (stack.length > 0) {
|
|
563
|
+
const cur = stack.pop();
|
|
564
|
+
if (cur === to)
|
|
565
|
+
return true;
|
|
566
|
+
if (seen.has(cur))
|
|
567
|
+
continue;
|
|
568
|
+
seen.add(cur);
|
|
569
|
+
stack.push(...(byId.get(cur)?.dependencies ?? []));
|
|
570
|
+
}
|
|
571
|
+
return false;
|
|
572
|
+
};
|
|
573
|
+
const ordered = (a, b) => reaches(a, b) || reaches(b, a);
|
|
574
|
+
const parent = blocks.map((_, i) => i);
|
|
575
|
+
const find = (i) => {
|
|
576
|
+
while (parent[i] !== i) {
|
|
577
|
+
parent[i] = parent[parent[i]];
|
|
578
|
+
i = parent[i];
|
|
579
|
+
}
|
|
580
|
+
return i;
|
|
581
|
+
};
|
|
582
|
+
const union = (i, j) => {
|
|
583
|
+
const ri = find(i);
|
|
584
|
+
const rj = find(j);
|
|
585
|
+
if (ri !== rj)
|
|
586
|
+
parent[ri] = rj;
|
|
587
|
+
};
|
|
588
|
+
const fileSets = blocks.map(fileSet);
|
|
589
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
590
|
+
for (let j = i + 1; j < blocks.length; j++) {
|
|
591
|
+
if (find(i) === find(j))
|
|
592
|
+
continue;
|
|
593
|
+
const shareFile = [...fileSets[i]].some((p) => fileSets[j].has(p));
|
|
594
|
+
if (shareFile && !ordered(blocks[i].block_id, blocks[j].block_id)) {
|
|
595
|
+
union(i, j);
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
const groups = new Map();
|
|
600
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
601
|
+
const r = find(i);
|
|
602
|
+
const g = groups.get(r);
|
|
603
|
+
if (g)
|
|
604
|
+
g.push(i);
|
|
605
|
+
else
|
|
606
|
+
groups.set(r, [i]);
|
|
607
|
+
}
|
|
608
|
+
if (groups.size === blocks.length)
|
|
609
|
+
return blocks; // nothing overlapped
|
|
610
|
+
const idRemap = new Map();
|
|
611
|
+
const groupList = [...groups.values()];
|
|
612
|
+
for (const idxs of groupList) {
|
|
613
|
+
const ids = idxs.map((i) => blocks[i].block_id).sort();
|
|
614
|
+
const mergedId = ids[0];
|
|
615
|
+
for (const id of ids)
|
|
616
|
+
idRemap.set(id, mergedId);
|
|
617
|
+
}
|
|
618
|
+
return groupList.map((idxs) => {
|
|
619
|
+
const groupBlocks = idxs.map((i) => blocks[i]);
|
|
620
|
+
const mergedId = idRemap.get(groupBlocks[0].block_id);
|
|
621
|
+
const items = [...new Set(groupBlocks.flatMap((b) => b.items))];
|
|
622
|
+
const deps = new Set();
|
|
623
|
+
for (const b of groupBlocks) {
|
|
624
|
+
for (const d of b.dependencies ?? []) {
|
|
625
|
+
const remapped = idRemap.get(d) ?? d;
|
|
626
|
+
if (remapped !== mergedId)
|
|
627
|
+
deps.add(remapped);
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
// A singleton group is unchanged except for dependency remapping — preserve
|
|
631
|
+
// its original parallel_safe rather than recomputing (and possibly flipping)
|
|
632
|
+
// it from deps. Only genuinely merged groups derive parallel_safe afresh.
|
|
633
|
+
const parallel_safe = idxs.length === 1 ? groupBlocks[0].parallel_safe : deps.size === 0;
|
|
634
|
+
return {
|
|
635
|
+
block_id: mergedId,
|
|
636
|
+
items,
|
|
637
|
+
parallel_safe,
|
|
638
|
+
...(deps.size > 0 ? { dependencies: [...deps] } : {}),
|
|
639
|
+
};
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* Applies the three post-dedup pipeline steps that every plan must go through
|
|
644
|
+
* before being handed off to the implement phase:
|
|
645
|
+
*
|
|
646
|
+
* 1. mergeBlocksSharingFiles — prevents parallel workers clobbering the same file
|
|
647
|
+
* 2. splitBlocksByContextBudget — keeps each block within the agent context window
|
|
648
|
+
* 3. snapshotAffectedFileHashes — records baseline hashes for integrity checks
|
|
649
|
+
*
|
|
650
|
+
* Extracted so that both runPlanPhase (fast-path JSON reports) and
|
|
651
|
+
* handlePendingExtractedPlan (LLM-extracted plans) run identical post-dedup
|
|
652
|
+
* logic and the two paths cannot drift apart.
|
|
653
|
+
*/
|
|
654
|
+
export async function applyPlanPipeline(plan, options) {
|
|
655
|
+
const { findings } = plan;
|
|
656
|
+
let { blocks } = plan;
|
|
657
|
+
// Merge blocks whose findings touch a shared file.
|
|
658
|
+
blocks = mergeBlocksSharingFiles(blocks, findings, options.root);
|
|
659
|
+
// Split blocks that would exceed the implementation agent's context budget.
|
|
660
|
+
const sessionConfig = await readOptionalJsonFile(join(options.root, "session-config.json"));
|
|
661
|
+
const contextBudget = resolveContextBudgetFromConfig(sessionConfig ?? null);
|
|
662
|
+
blocks = splitBlocksByContextBudget(blocks, findings, options.root, contextBudget);
|
|
663
|
+
// Record baseline file hashes for the integrity check that runs before dispatch.
|
|
664
|
+
snapshotAffectedFileHashes(options.root, findings);
|
|
665
|
+
return { ...plan, blocks };
|
|
666
|
+
}
|
|
667
|
+
/**
|
|
668
|
+
* Prune blocks so that every item reference is still in the kept-findings set,
|
|
669
|
+
* and drop blocks whose item list becomes empty after pruning.
|
|
670
|
+
* Used in runPlanPhase wherever a reduction step drops some findings.
|
|
671
|
+
* Extracted to eliminate the three formerly-duplicated inline occurrences of
|
|
672
|
+
* blocks.map(b => ({...b, items: b.items.filter(id => keptIds.has(id))})).filter(...)
|
|
673
|
+
*/
|
|
674
|
+
export function pruneBlocksForKeptFindings(blocks, keptFindings) {
|
|
675
|
+
const keptIds = new Set(keptFindings.map((f) => f.id));
|
|
676
|
+
return blocks
|
|
677
|
+
.map((b) => ({ ...b, items: (b.items ?? []).filter((id) => keptIds.has(id)) }))
|
|
678
|
+
.filter((b) => (b.items ?? []).length > 0);
|
|
679
|
+
}
|
|
680
|
+
export async function runPlanPhase(state, options, deps = {}) {
|
|
681
|
+
console.log("Running Plan Phase...");
|
|
682
|
+
let findings = [];
|
|
683
|
+
let blocks = [];
|
|
684
|
+
let themes = [];
|
|
685
|
+
let extractedFromProse = false;
|
|
686
|
+
if (options.input && existsSync(options.input)) {
|
|
687
|
+
const content = await readFile(options.input, "utf8");
|
|
688
|
+
// Canonical hand-off: the auditor's audit-findings.json (the machine
|
|
689
|
+
// contract). Parsed directly; any other input is free-form and flows
|
|
690
|
+
// through the LLM extractor.
|
|
691
|
+
const findingsReport = tryParseFindingsReport(content);
|
|
692
|
+
if (findingsReport) {
|
|
693
|
+
console.log(`Consuming audit-findings report: ${options.input}`);
|
|
694
|
+
const parsed = parseAuditFindingsReport(findingsReport);
|
|
695
|
+
findings = parsed.findings;
|
|
696
|
+
blocks = parsed.blocks;
|
|
697
|
+
themes = parsed.themes;
|
|
698
|
+
// G1 + INV-GND-02: the auditor's grounding pass (S7) marks each finding
|
|
699
|
+
// grounded or ungrounded; a finding with NO grounding verdict is treated
|
|
700
|
+
// as ungrounded (verify-before-fix), never silently trusted. Surface the
|
|
701
|
+
// not-positively-grounded findings here so the operator sees them; the
|
|
702
|
+
// implement prompt additionally instructs the worker to verify such a
|
|
703
|
+
// finding against the cited code before applying any fix (see
|
|
704
|
+
// implementPrompt's grounding bullet). Findings are not dropped for being
|
|
705
|
+
// ungrounded — they are flagged for verification, not blindly fixed.
|
|
706
|
+
const needVerification = findings.filter((f) => findingNeedsVerificationBeforeFix(f));
|
|
707
|
+
if (needVerification.length > 0) {
|
|
708
|
+
console.warn(`Plan: ${needVerification.length} of ${findings.length} audit finding(s) are ungrounded or carry no grounding verdict; they will be verified-before-fix, not blindly applied: ${needVerification
|
|
709
|
+
.map((f) => f.id)
|
|
710
|
+
.join(", ")}`);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
else {
|
|
714
|
+
console.log(`Extracting findings from input via LLM: ${options.input}`);
|
|
715
|
+
const extracted = await (deps.extractFindings
|
|
716
|
+
? deps.extractFindings(content, options)
|
|
717
|
+
: extractFindingsWithProvider(content, state, options, deps));
|
|
718
|
+
findings = extracted.findings;
|
|
719
|
+
blocks = extracted.blocks;
|
|
720
|
+
extractedFromProse = true;
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
else {
|
|
724
|
+
console.log("No input provided or file does not exist. Halting Plan phase.");
|
|
725
|
+
throw new Error("Missing valid input for Plan phase.");
|
|
726
|
+
}
|
|
727
|
+
// Coverage accounting: snapshot the findings the plan received before any
|
|
728
|
+
// reduction, so the ledger below can mark every source finding as
|
|
729
|
+
// planned / folded / dropped — never silently lost.
|
|
730
|
+
const sourceFindings = [...findings];
|
|
731
|
+
// Deterministic grounding for LLM-extracted findings ONLY: strip phantom
|
|
732
|
+
// affected_files paths, give all-phantom findings one bounded repair attempt,
|
|
733
|
+
// drop the unrepaired, and classify evidence as grounded/ungrounded. The
|
|
734
|
+
// structured audit-findings path above is exempt — auditor paths are already
|
|
735
|
+
// grounded, and a since-deleted path there is the integrity check's replan
|
|
736
|
+
// concern, not a reason to drop the finding.
|
|
737
|
+
let grounding;
|
|
738
|
+
if (extractedFromProse) {
|
|
739
|
+
grounding = await groundExtractedFindings(findings, {
|
|
740
|
+
root: options.root,
|
|
741
|
+
repairZeroPathFindings: deps.repairExtractedFindingPaths ??
|
|
742
|
+
((requests) => repairExtractedFindingPathsWithProvider(requests, options, deps)),
|
|
743
|
+
});
|
|
744
|
+
findings = grounding.findings;
|
|
745
|
+
if (grounding.phantomPathsByFinding.size > 0) {
|
|
746
|
+
const strippedTotal = [...grounding.phantomPathsByFinding.values()].flat();
|
|
747
|
+
console.warn(`Plan: grounding stripped ${strippedTotal.length} phantom path(s) across ${grounding.phantomPathsByFinding.size} extracted finding(s): ${strippedTotal.join(", ")}`);
|
|
748
|
+
}
|
|
749
|
+
if (grounding.dropped.length > 0) {
|
|
750
|
+
console.warn(`Plan: dropped ${grounding.dropped.length} extracted finding(s) with no real cited path after repair: ${grounding.dropped.map((d) => d.finding.id).join(", ")}`);
|
|
751
|
+
blocks = pruneBlocksForKeptFindings(blocks, findings);
|
|
752
|
+
}
|
|
753
|
+
if (grounding.ungroundedFindingIds.length > 0) {
|
|
754
|
+
console.warn(`Plan: ${grounding.ungroundedFindingIds.length} extracted finding(s) have no evidence citing a real repo path (downgraded to low confidence): ${grounding.ungroundedFindingIds.join(", ")}`);
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
// Robustness: a finding with empty evidence fails the plan validator and would
|
|
758
|
+
// abort the entire run. Skip such malformed findings (and prune them from
|
|
759
|
+
// blocks) with a warning instead of crashing — findings are advisory, so one
|
|
760
|
+
// bad finding must not block the whole report.
|
|
761
|
+
const findingsWithoutEvidence = findings
|
|
762
|
+
.filter((f) => !Array.isArray(f.evidence) || f.evidence.length === 0)
|
|
763
|
+
.map((f) => f.id);
|
|
764
|
+
if (findingsWithoutEvidence.length > 0) {
|
|
765
|
+
console.warn(`Plan: skipping ${findingsWithoutEvidence.length} finding(s) with no evidence: ${findingsWithoutEvidence.join(", ")}`);
|
|
766
|
+
findings = findings.filter((f) => Array.isArray(f.evidence) && f.evidence.length > 0);
|
|
767
|
+
blocks = pruneBlocksForKeptFindings(blocks, findings);
|
|
768
|
+
}
|
|
769
|
+
// Cross-lens dedup: merge findings that different audit lenses flagged independently
|
|
770
|
+
const dedup = deduplicateCrossLensFindings(findings);
|
|
771
|
+
findings = dedup.findings;
|
|
772
|
+
blocks = fixupBlocksAfterDedup(blocks, dedup.mergeMap);
|
|
773
|
+
// Intent checkpoint: drop findings the host filtered out (by severity / lens /
|
|
774
|
+
// package / theme) or excluded by path, so only the requested work is planned.
|
|
775
|
+
// Dropped findings are recorded in the coverage ledger and the final report.
|
|
776
|
+
let intentCheckpoint;
|
|
777
|
+
try {
|
|
778
|
+
intentCheckpoint = await readOptionalJsonFile(join(options.artifactsDir, "intent_checkpoint.json"));
|
|
779
|
+
}
|
|
780
|
+
catch {
|
|
781
|
+
console.warn("Plan: intent_checkpoint.json was unreadable; ignoring checkpoint filters.");
|
|
782
|
+
}
|
|
783
|
+
const { kept: keptFindings, droppedIds: droppedByCheckpoint } = filterFindingsByCheckpoint(findings, intentCheckpoint);
|
|
784
|
+
if (droppedByCheckpoint.length > 0) {
|
|
785
|
+
console.warn(`Plan: intent checkpoint dropped ${droppedByCheckpoint.length} finding(s) from remediation.`);
|
|
786
|
+
findings = keptFindings;
|
|
787
|
+
blocks = pruneBlocksForKeptFindings(blocks, findings);
|
|
788
|
+
}
|
|
789
|
+
// Fallback blocks computation if none provided
|
|
790
|
+
let blockStrategy;
|
|
791
|
+
if (blocks.length === 0 && findings.length > 0) {
|
|
792
|
+
const fallback = deriveFallbackBlocks(findings, options, deps);
|
|
793
|
+
blocks = fallback.blocks;
|
|
794
|
+
blockStrategy = fallback.blockStrategy;
|
|
795
|
+
}
|
|
796
|
+
// Apply the shared post-dedup pipeline (file-overlap merge, context-budget
|
|
797
|
+
// split, and baseline file-hash snapshot). Extracted into applyPlanPipeline
|
|
798
|
+
// so the LLM-extracted-plan path runs the exact same logic.
|
|
799
|
+
({
|
|
800
|
+
blocks,
|
|
801
|
+
findings,
|
|
802
|
+
} = await applyPlanPipeline({
|
|
803
|
+
plan_id: "",
|
|
804
|
+
findings,
|
|
805
|
+
blocks,
|
|
806
|
+
project_type: "unknown",
|
|
807
|
+
candidate_closing_actions: ["none"],
|
|
808
|
+
}, options));
|
|
809
|
+
// Project command discovery (shared; now also covers Go and Python). The
|
|
810
|
+
// RemediationPlan stores commands as strings, so argv arrays are joined.
|
|
811
|
+
const commands = discoverProjectCommands(options.root);
|
|
812
|
+
const testCommand = commands.test ? commands.test.join(" ") : undefined;
|
|
813
|
+
const e2eCommand = commands.e2e ? commands.e2e.join(" ") : undefined;
|
|
814
|
+
let projectType = "unknown";
|
|
815
|
+
if (existsSync(join(options.root, "package.json"))) {
|
|
816
|
+
projectType = "typescript-node";
|
|
817
|
+
}
|
|
818
|
+
else if (existsSync(join(options.root, "go.mod"))) {
|
|
819
|
+
projectType = "go";
|
|
820
|
+
}
|
|
821
|
+
else if (existsSync(join(options.root, "pyproject.toml")) ||
|
|
822
|
+
existsSync(join(options.root, "pytest.ini"))) {
|
|
823
|
+
projectType = "python";
|
|
824
|
+
}
|
|
825
|
+
const plan = {
|
|
826
|
+
plan_id: "PLAN-" + (deps.now?.() ?? Date.now()),
|
|
827
|
+
findings,
|
|
828
|
+
blocks,
|
|
829
|
+
project_type: projectType,
|
|
830
|
+
test_command: testCommand,
|
|
831
|
+
...(e2eCommand ? { e2e_command: e2eCommand } : {}),
|
|
832
|
+
candidate_closing_actions: ["none"],
|
|
833
|
+
...(blockStrategy ? { block_strategy: blockStrategy } : {}),
|
|
834
|
+
...(themes.length > 0 ? { themes } : {}),
|
|
835
|
+
};
|
|
836
|
+
const items = {};
|
|
837
|
+
for (const finding of findings) {
|
|
838
|
+
const block = blocks.find((b) => b.items.includes(finding.id));
|
|
839
|
+
items[finding.id] = {
|
|
840
|
+
finding_id: finding.id,
|
|
841
|
+
status: "pending",
|
|
842
|
+
block_id: block ? block.block_id : "UNKNOWN",
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
// Coverage ledger: make every source finding's disposition auditable, so a
|
|
846
|
+
// large source set consolidated into fewer items is recorded rather than lost.
|
|
847
|
+
const coverage = buildCoverageLedger({
|
|
848
|
+
planId: plan.plan_id,
|
|
849
|
+
sourceFindings,
|
|
850
|
+
droppedNoEvidence: findingsWithoutEvidence,
|
|
851
|
+
droppedByCheckpoint,
|
|
852
|
+
droppedPhantomPaths: new Map((grounding?.dropped ?? []).map((d) => [d.finding.id, d.phantomPaths])),
|
|
853
|
+
phantomPathsRemoved: grounding?.phantomPathsByFinding,
|
|
854
|
+
mergeMap: dedup.mergeMap,
|
|
855
|
+
items,
|
|
856
|
+
});
|
|
857
|
+
console.log(`Plan coverage: ${coverage.planned_count} planned, ${coverage.folded_count} folded, ${coverage.dropped_count} dropped (of ${coverage.source_finding_count} source finding(s)).`);
|
|
858
|
+
const planIssues = validateRemediationPlan(plan);
|
|
859
|
+
if (planIssues.length > 0) {
|
|
860
|
+
console.error(`Plan validation issues:\n${formatValidationIssues(planIssues)}`);
|
|
861
|
+
const errors = planIssues.filter((i) => i.severity === "error");
|
|
862
|
+
if (errors.length > 0) {
|
|
863
|
+
throw new Error(`Plan phase produced an invalid plan:\n${formatValidationIssues(errors)}`);
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
// Emit remediation_plan.json
|
|
867
|
+
await writeJsonFile(join(options.artifactsDir, "remediation_plan.json"), plan);
|
|
868
|
+
return { ...state, status: "planning", plan, items, plan_coverage: coverage };
|
|
869
|
+
}
|
|
870
|
+
/**
|
|
871
|
+
* Launch one bounded plan-phase LLM worker and read its result JSON. Shared by
|
|
872
|
+
* the free-form extraction pass and the single bounded path-repair pass; the
|
|
873
|
+
* label keys the per-task artifact files (task/prompt/result/stdout/stderr).
|
|
874
|
+
*/
|
|
875
|
+
async function runPlanWorkerTask(params) {
|
|
876
|
+
const { label, obligationId, buildPrompt, options, deps } = params;
|
|
877
|
+
const sessionConfig = (await readOptionalJsonFile(join(options.root, "session-config.json"))) || {};
|
|
878
|
+
const provider = createFreshSessionProvider(undefined, sessionConfig);
|
|
879
|
+
const workerTimeoutMs = sessionConfig.timeout_ms;
|
|
880
|
+
const taskPath = join(options.artifactsDir, `task_${label}.json`);
|
|
881
|
+
const resultPath = join(options.artifactsDir, `result_${label}.json`);
|
|
882
|
+
const promptPath = join(options.artifactsDir, `prompt_${label}.md`);
|
|
883
|
+
const stdoutPath = join(options.artifactsDir, `stdout_${label}.txt`);
|
|
884
|
+
const stderrPath = join(options.artifactsDir, `stderr_${label}.txt`);
|
|
885
|
+
await writeFile(promptPath, buildPrompt({ taskPath, resultPath }), "utf8");
|
|
886
|
+
const task = createRemediationWorkerTask({
|
|
887
|
+
runId: "PLAN-" + (deps.now?.() ?? Date.now()),
|
|
888
|
+
options,
|
|
889
|
+
obligationId,
|
|
890
|
+
preferredExecutor: provider.name,
|
|
891
|
+
resultPath,
|
|
892
|
+
timeoutMs: workerTimeoutMs,
|
|
893
|
+
});
|
|
894
|
+
await writeJsonFile(taskPath, task);
|
|
895
|
+
await provider.launch(createLaunchInputForTask(options, task, {
|
|
896
|
+
promptPath,
|
|
897
|
+
taskPath,
|
|
898
|
+
stdoutPath,
|
|
899
|
+
stderrPath,
|
|
900
|
+
}));
|
|
901
|
+
return readJsonFile(resultPath);
|
|
902
|
+
}
|
|
903
|
+
async function extractFindingsWithProvider(content, _state, options, deps) {
|
|
904
|
+
try {
|
|
905
|
+
const extracted = await runPlanWorkerTask({
|
|
906
|
+
label: "plan",
|
|
907
|
+
obligationId: "extract-plan",
|
|
908
|
+
options,
|
|
909
|
+
deps,
|
|
910
|
+
buildPrompt: ({ taskPath, resultPath }) => `
|
|
911
|
+
You are the Remediation Assistant. Your task is to extract findings and work blocks from the provided document.
|
|
912
|
+
Produce a JSON output matching the remediation plan structure (specifically the findings and blocks arrays).
|
|
913
|
+
|
|
914
|
+
Grounding requirements (a deterministic validator checks every path you cite):
|
|
915
|
+
- Each \`affected_files[].path\` must be a repo-relative path that exists on disk. Verify before citing; never guess paths from prose.
|
|
916
|
+
- If you cannot identify a real file for a finding, emit an empty \`affected_files\` array instead of inventing one — discovery happens later.
|
|
917
|
+
- Each \`evidence\` entry should cite a real \`path:line\` location when one exists (e.g. "src/auth.ts:42 — token is never revoked"). Quote the source document only when no code location applies.
|
|
918
|
+
|
|
919
|
+
Document Content:
|
|
920
|
+
${content}
|
|
921
|
+
|
|
922
|
+
Your task JSON is at: ${taskPath}
|
|
923
|
+
Write your result JSON to exactly this path: ${resultPath}
|
|
924
|
+
Use the Write tool to create or overwrite that file.
|
|
925
|
+
Do not write to any other path.
|
|
926
|
+
`.trim(),
|
|
927
|
+
});
|
|
928
|
+
return {
|
|
929
|
+
findings: extracted.findings || [],
|
|
930
|
+
blocks: extracted.blocks || [],
|
|
931
|
+
};
|
|
932
|
+
}
|
|
933
|
+
catch (e) {
|
|
934
|
+
console.error("Failed to extract plan via LLM:", e);
|
|
935
|
+
throw new Error("Plan extraction failed.");
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* The single bounded repair attempt for extracted findings whose cited paths
|
|
940
|
+
* were all phantom (WS1). Re-prompts the worker with the phantom paths named;
|
|
941
|
+
* the worker either supplies real repo-relative paths or withdraws the finding.
|
|
942
|
+
* The caller re-validates every returned path — repair output is untrusted.
|
|
943
|
+
*/
|
|
944
|
+
async function repairExtractedFindingPathsWithProvider(requests, options, deps) {
|
|
945
|
+
const findingSections = requests
|
|
946
|
+
.map(({ finding, phantomPaths }) => `
|
|
947
|
+
### ${finding.id} — ${finding.title}
|
|
948
|
+
|
|
949
|
+
- Summary: ${finding.summary}
|
|
950
|
+
- Evidence: ${(finding.evidence ?? []).join(" | ")}
|
|
951
|
+
- Phantom paths cited (do NOT exist in the repository): ${phantomPaths.join(", ")}`)
|
|
952
|
+
.join("\n");
|
|
953
|
+
const repaired = await runPlanWorkerTask({
|
|
954
|
+
label: "plan_path_repair",
|
|
955
|
+
obligationId: "repair-extracted-paths",
|
|
956
|
+
options,
|
|
957
|
+
deps,
|
|
958
|
+
buildPrompt: ({ taskPath, resultPath }) => `
|
|
959
|
+
You are the Remediation Assistant. Earlier extraction cited file paths that do not exist in the repository. For each finding below, locate the REAL repo-relative path(s) the finding is about (search the repository), or withdraw the finding if it does not apply to this codebase.
|
|
960
|
+
${findingSections}
|
|
961
|
+
|
|
962
|
+
Rules:
|
|
963
|
+
- Cite only repo-relative paths that exist on disk; verify each one before writing it.
|
|
964
|
+
- To withdraw a finding, return it with an empty \`affected_files\` array (or omit it).
|
|
965
|
+
- Do not edit source files.
|
|
966
|
+
|
|
967
|
+
Your task JSON is at: ${taskPath}
|
|
968
|
+
Write your result JSON to exactly this path: ${resultPath}
|
|
969
|
+
|
|
970
|
+
\`\`\`json
|
|
971
|
+
{
|
|
972
|
+
"repairs": [
|
|
973
|
+
{ "finding_id": "FINDING-001", "affected_files": ["real/path/to/file.ts"] }
|
|
974
|
+
]
|
|
975
|
+
}
|
|
976
|
+
\`\`\`
|
|
977
|
+
`.trim(),
|
|
978
|
+
});
|
|
979
|
+
return new Map((repaired.repairs ?? [])
|
|
980
|
+
.filter((entry) => typeof entry?.finding_id === "string")
|
|
981
|
+
.map((entry) => [
|
|
982
|
+
entry.finding_id,
|
|
983
|
+
Array.isArray(entry.affected_files)
|
|
984
|
+
? entry.affected_files.filter((p) => typeof p === "string")
|
|
985
|
+
: [],
|
|
986
|
+
]));
|
|
987
|
+
}
|
|
988
|
+
//# sourceMappingURL=plan.js.map
|