audit-tools 0.46.0 → 0.49.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.md +36 -16
- package/dispatch/merge-results.mjs +3 -3
- package/dispatch/validate-result.mjs +3 -3
- package/dist/audit/clarification/partition.d.ts.map +1 -1
- package/dist/audit/clarification/partition.js +2 -1
- package/dist/audit/clarification/partition.js.map +1 -1
- package/dist/audit/clarification/voiQueue.d.ts.map +1 -1
- package/dist/audit/clarification/voiQueue.js +2 -1
- package/dist/audit/clarification/voiQueue.js.map +1 -1
- package/dist/audit/cli/cleanupCommand.d.ts.map +1 -1
- package/dist/audit/cli/cleanupCommand.js +7 -1
- package/dist/audit/cli/cleanupCommand.js.map +1 -1
- package/dist/audit/cli/explainTaskCommand.d.ts.map +1 -1
- package/dist/audit/cli/explainTaskCommand.js +2 -1
- package/dist/audit/cli/explainTaskCommand.js.map +1 -1
- package/dist/audit/cli/laneValidators.d.ts +0 -2
- package/dist/audit/cli/laneValidators.d.ts.map +1 -1
- package/dist/audit/cli/laneValidators.js +2 -6
- package/dist/audit/cli/laneValidators.js.map +1 -1
- package/dist/audit/cli/lineIndex.d.ts.map +1 -1
- package/dist/audit/cli/lineIndex.js +2 -1
- package/dist/audit/cli/lineIndex.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts +12 -0
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +15 -6
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +31 -5
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/sampleRunCommand.d.ts +215 -0
- package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
- package/dist/audit/cli/sampleRunCommand.js +48 -2
- package/dist/audit/cli/sampleRunCommand.js.map +1 -1
- package/dist/audit/contracts/findingContractPrompt.d.ts.map +1 -1
- package/dist/audit/contracts/findingContractPrompt.js +2 -2
- package/dist/audit/contracts/findingContractPrompt.js.map +1 -1
- package/dist/audit/decompose/buildStructureDecomposition.d.ts.map +1 -1
- package/dist/audit/decompose/buildStructureDecomposition.js +5 -8
- package/dist/audit/decompose/buildStructureDecomposition.js.map +1 -1
- package/dist/audit/decompose/findings.js +2 -2
- package/dist/audit/decompose/findings.js.map +1 -1
- package/dist/audit/decompose/sources.d.ts.map +1 -1
- package/dist/audit/decompose/sources.js +8 -11
- package/dist/audit/decompose/sources.js.map +1 -1
- package/dist/audit/extractors/analyzers/merge.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/merge.js +4 -3
- package/dist/audit/extractors/analyzers/merge.js.map +1 -1
- package/dist/audit/extractors/browserExtension.d.ts.map +1 -1
- package/dist/audit/extractors/browserExtension.js +2 -4
- package/dist/audit/extractors/browserExtension.js.map +1 -1
- package/dist/audit/extractors/commentDecomposition.d.ts.map +1 -1
- package/dist/audit/extractors/commentDecomposition.js +15 -29
- package/dist/audit/extractors/commentDecomposition.js.map +1 -1
- package/dist/audit/extractors/dataStateCoupling.d.ts.map +1 -1
- package/dist/audit/extractors/dataStateCoupling.js +3 -2
- package/dist/audit/extractors/dataStateCoupling.js.map +1 -1
- package/dist/audit/extractors/designAssessment.d.ts.map +1 -1
- package/dist/audit/extractors/designAssessment.js +6 -5
- package/dist/audit/extractors/designAssessment.js.map +1 -1
- package/dist/audit/extractors/disposition.d.ts.map +1 -1
- package/dist/audit/extractors/disposition.js +1 -4
- package/dist/audit/extractors/disposition.js.map +1 -1
- package/dist/audit/extractors/docsDigest.d.ts.map +1 -1
- package/dist/audit/extractors/docsDigest.js +6 -20
- package/dist/audit/extractors/docsDigest.js.map +1 -1
- package/dist/audit/extractors/fileInventory.d.ts.map +1 -1
- package/dist/audit/extractors/fileInventory.js +2 -1
- package/dist/audit/extractors/fileInventory.js.map +1 -1
- package/dist/audit/extractors/flows.js +3 -3
- package/dist/audit/extractors/flows.js.map +1 -1
- package/dist/audit/extractors/fsIntake.d.ts.map +1 -1
- package/dist/audit/extractors/fsIntake.js +4 -7
- package/dist/audit/extractors/fsIntake.js.map +1 -1
- package/dist/audit/extractors/graph.d.ts +1 -1
- package/dist/audit/extractors/graph.d.ts.map +1 -1
- package/dist/audit/extractors/graph.js +9 -12
- package/dist/audit/extractors/graph.js.map +1 -1
- package/dist/audit/extractors/graphManifestEdges/jsonc.d.ts +10 -0
- package/dist/audit/extractors/graphManifestEdges/jsonc.d.ts.map +1 -1
- package/dist/audit/extractors/graphManifestEdges/jsonc.js +12 -50
- package/dist/audit/extractors/graphManifestEdges/jsonc.js.map +1 -1
- package/dist/audit/extractors/graphPythonImports.js +2 -2
- package/dist/audit/extractors/graphPythonImports.js.map +1 -1
- package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
- package/dist/audit/extractors/graphRoutes.js +4 -3
- package/dist/audit/extractors/graphRoutes.js.map +1 -1
- package/dist/audit/extractors/graphSignals.d.ts.map +1 -1
- package/dist/audit/extractors/graphSignals.js +3 -2
- package/dist/audit/extractors/graphSignals.js.map +1 -1
- package/dist/audit/extractors/graphSuites.d.ts.map +1 -1
- package/dist/audit/extractors/graphSuites.js +3 -2
- package/dist/audit/extractors/graphSuites.js.map +1 -1
- package/dist/audit/extractors/readFileText.d.ts +12 -0
- package/dist/audit/extractors/readFileText.d.ts.map +1 -0
- package/dist/audit/extractors/readFileText.js +23 -0
- package/dist/audit/extractors/readFileText.js.map +1 -0
- package/dist/audit/extractors/risk.d.ts.map +1 -1
- package/dist/audit/extractors/risk.js +3 -2
- package/dist/audit/extractors/risk.js.map +1 -1
- package/dist/audit/io/toolingManifest.d.ts.map +1 -1
- package/dist/audit/io/toolingManifest.js +3 -2
- package/dist/audit/io/toolingManifest.js.map +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.d.ts +2 -2
- package/dist/audit/orchestrator/acquisitionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/artifactMetadata.d.ts.map +1 -1
- package/dist/audit/orchestrator/artifactMetadata.js +2 -2
- package/dist/audit/orchestrator/artifactMetadata.js.map +1 -1
- package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/autoFixExecutor.js +2 -1
- package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -1
- package/dist/audit/orchestrator/charterPackets.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterPackets.js +4 -3
- package/dist/audit/orchestrator/charterPackets.js.map +1 -1
- package/dist/audit/orchestrator/dependencySlices.d.ts.map +1 -1
- package/dist/audit/orchestrator/dependencySlices.js +4 -6
- package/dist/audit/orchestrator/dependencySlices.js.map +1 -1
- package/dist/audit/orchestrator/designReviewProjection.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewProjection.js +2 -2
- package/dist/audit/orchestrator/designReviewProjection.js.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.js +7 -0
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/edgeReasoning.d.ts.map +1 -1
- package/dist/audit/orchestrator/edgeReasoning.js +3 -3
- package/dist/audit/orchestrator/edgeReasoning.js.map +1 -1
- package/dist/audit/orchestrator/fileAnchors.d.ts.map +1 -1
- package/dist/audit/orchestrator/fileAnchors.js +14 -16
- package/dist/audit/orchestrator/fileAnchors.js.map +1 -1
- package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -1
- package/dist/audit/orchestrator/flowPlanning.js +3 -2
- package/dist/audit/orchestrator/flowPlanning.js.map +1 -1
- package/dist/audit/orchestrator/graphEnrichmentExecutor.js +5 -5
- package/dist/audit/orchestrator/graphEnrichmentExecutor.js.map +1 -1
- package/dist/audit/orchestrator/hostInputPause.d.ts +8 -2
- package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -1
- package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
- package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/ingestionExecutors.js +2 -1
- package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
- package/dist/audit/orchestrator/intentInterpreter.d.ts +15 -18
- package/dist/audit/orchestrator/intentInterpreter.d.ts.map +1 -1
- package/dist/audit/orchestrator/intentInterpreter.js +12 -26
- package/dist/audit/orchestrator/intentInterpreter.js.map +1 -1
- package/dist/audit/orchestrator/partitionTaskGraph.d.ts.map +1 -1
- package/dist/audit/orchestrator/partitionTaskGraph.js +1 -3
- package/dist/audit/orchestrator/partitionTaskGraph.js.map +1 -1
- package/dist/audit/orchestrator/reviewPacketGraphContext.js +3 -3
- package/dist/audit/orchestrator/reviewPacketGraphContext.js.map +1 -1
- package/dist/audit/orchestrator/reviewPacketGraphEdges.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPacketGraphEdges.js +4 -4
- package/dist/audit/orchestrator/reviewPacketGraphEdges.js.map +1 -1
- package/dist/audit/orchestrator/reviewPacketMetrics.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPacketMetrics.js +4 -3
- package/dist/audit/orchestrator/reviewPacketMetrics.js.map +1 -1
- package/dist/audit/orchestrator/reviewPackets.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPackets.js +1 -4
- package/dist/audit/orchestrator/reviewPackets.js.map +1 -1
- package/dist/audit/orchestrator/runtimeValidationUpdate.d.ts.map +1 -1
- package/dist/audit/orchestrator/runtimeValidationUpdate.js +2 -1
- package/dist/audit/orchestrator/runtimeValidationUpdate.js.map +1 -1
- package/dist/audit/orchestrator/scope.js +4 -4
- package/dist/audit/orchestrator/scope.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/index.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/index.js +4 -3
- package/dist/audit/orchestrator/selectiveDeepening/index.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js +4 -3
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts +0 -1
- package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/shared.js +2 -5
- package/dist/audit/orchestrator/selectiveDeepening/shared.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js +2 -1
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js.map +1 -1
- package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
- package/dist/audit/orchestrator/taskBuilder.js +5 -12
- package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
- package/dist/audit/orchestrator/unitBuilder.d.ts.map +1 -1
- package/dist/audit/orchestrator/unitBuilder.js +3 -2
- package/dist/audit/orchestrator/unitBuilder.js.map +1 -1
- package/dist/audit/orchestrator.d.ts.map +1 -1
- package/dist/audit/orchestrator.js +1 -4
- package/dist/audit/orchestrator.js.map +1 -1
- package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
- package/dist/audit/reporting/mergeFindings.js +2 -2
- package/dist/audit/reporting/mergeFindings.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +3 -3
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/reporting/workBlocks.d.ts.map +1 -1
- package/dist/audit/reporting/workBlocks.js +15 -20
- package/dist/audit/reporting/workBlocks.js.map +1 -1
- package/dist/audit/supervisor/runLedger.d.ts.map +1 -1
- package/dist/audit/supervisor/runLedger.js +1 -4
- package/dist/audit/supervisor/runLedger.js.map +1 -1
- package/dist/audit/systemic/systemicChallengeLoop.js +2 -2
- package/dist/audit/systemic/systemicChallengeLoop.js.map +1 -1
- package/dist/audit/validation/artifacts.d.ts.map +1 -1
- package/dist/audit/validation/artifacts.js +26 -29
- package/dist/audit/validation/artifacts.js.map +1 -1
- package/dist/remediate/contractPipeline/phaseCut.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/phaseCut.js +2 -1
- package/dist/remediate/contractPipeline/phaseCut.js.map +1 -1
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/testPlanCarry.js +1 -4
- package/dist/remediate/contractPipeline/testPlanCarry.js.map +1 -1
- package/dist/remediate/intake.js +1 -1
- package/dist/remediate/intake.js.map +1 -1
- package/dist/remediate/phases/close.d.ts +8 -0
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +14 -15
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/plan.js +2 -2
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/review/autonomousGate.d.ts +3 -7
- package/dist/remediate/review/autonomousGate.d.ts.map +1 -1
- package/dist/remediate/review/autonomousGate.js +10 -24
- package/dist/remediate/review/autonomousGate.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts +9 -20
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +23 -82
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/state/accessMemory.d.ts +2 -3
- package/dist/remediate/state/accessMemory.d.ts.map +1 -1
- package/dist/remediate/state/accessMemory.js +6 -9
- package/dist/remediate/state/accessMemory.js.map +1 -1
- package/dist/remediate/state/store.d.ts +6 -7
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/state/types.d.ts +2 -84
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +1 -39
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +0 -19
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +84 -72
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +0 -2
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +16 -7
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +171 -210
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/stepUtils.d.ts +10 -2
- package/dist/remediate/steps/stepUtils.d.ts.map +1 -1
- package/dist/remediate/steps/stepUtils.js +13 -3
- package/dist/remediate/steps/stepUtils.js.map +1 -1
- package/dist/remediate/steps/types.d.ts +1 -1
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js.map +1 -1
- package/dist/remediate/utils/fileIntegrity.d.ts.map +1 -1
- package/dist/remediate/utils/fileIntegrity.js +4 -8
- package/dist/remediate/utils/fileIntegrity.js.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +6 -21
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/remediationState.d.ts +0 -1
- package/dist/remediate/validation/remediationState.d.ts.map +1 -1
- package/dist/remediate/validation/remediationState.js +0 -51
- package/dist/remediate/validation/remediationState.js.map +1 -1
- package/dist/shared/accessMemory.d.ts.map +1 -1
- package/dist/shared/accessMemory.js +2 -1
- package/dist/shared/accessMemory.js.map +1 -1
- package/dist/shared/affinityArtifacts.d.ts +0 -1
- package/dist/shared/affinityArtifacts.d.ts.map +1 -1
- package/dist/shared/affinityArtifacts.js +1 -3
- package/dist/shared/affinityArtifacts.js.map +1 -1
- package/dist/shared/agentReflections.d.ts.map +1 -1
- package/dist/shared/agentReflections.js +2 -1
- package/dist/shared/agentReflections.js.map +1 -1
- package/dist/shared/analyzerPolicy.d.ts +18 -6
- package/dist/shared/analyzerPolicy.d.ts.map +1 -1
- package/dist/shared/analyzerPolicy.js +22 -25
- package/dist/shared/analyzerPolicy.js.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.d.ts +14 -8
- package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.js +3 -4
- package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.js +7 -10
- package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
- package/dist/shared/analyzers/candidates.d.ts.map +1 -1
- package/dist/shared/analyzers/candidates.js +1 -3
- package/dist/shared/analyzers/candidates.js.map +1 -1
- package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -1
- package/dist/shared/analyzers/normalizeExternal.js +12 -13
- package/dist/shared/analyzers/normalizeExternal.js.map +1 -1
- package/dist/shared/analyzers/types.d.ts.map +1 -1
- package/dist/shared/analyzers/types.js +2 -1
- package/dist/shared/analyzers/types.js.map +1 -1
- package/dist/shared/artifactFreshness.d.ts.map +1 -1
- package/dist/shared/artifactFreshness.js +4 -8
- package/dist/shared/artifactFreshness.js.map +1 -1
- package/dist/shared/compareCodeUnits.d.ts +9 -0
- package/dist/shared/compareCodeUnits.d.ts.map +1 -0
- package/dist/shared/compareCodeUnits.js +11 -0
- package/dist/shared/compareCodeUnits.js.map +1 -0
- package/dist/shared/constitutionalDocPaths.d.ts.map +1 -1
- package/dist/shared/constitutionalDocPaths.js +1 -4
- package/dist/shared/constitutionalDocPaths.js.map +1 -1
- package/dist/shared/contentKey.d.ts.map +1 -1
- package/dist/shared/contentKey.js +6 -8
- package/dist/shared/contentKey.js.map +1 -1
- package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
- package/dist/shared/decompose/charterClarification.js +2 -1
- package/dist/shared/decompose/charterClarification.js.map +1 -1
- package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
- package/dist/shared/decompose/charterExtraction.js +21 -20
- package/dist/shared/decompose/charterExtraction.js.map +1 -1
- package/dist/shared/decompose/consensus.d.ts.map +1 -1
- package/dist/shared/decompose/consensus.js +7 -6
- package/dist/shared/decompose/consensus.js.map +1 -1
- package/dist/shared/decompose/contentCoherence.d.ts.map +1 -1
- package/dist/shared/decompose/contentCoherence.js +4 -10
- package/dist/shared/decompose/contentCoherence.js.map +1 -1
- package/dist/shared/decompose/modularity.d.ts.map +1 -1
- package/dist/shared/decompose/modularity.js +12 -14
- package/dist/shared/decompose/modularity.js.map +1 -1
- package/dist/shared/decompose/workBlockSeams.js +3 -3
- package/dist/shared/decompose/workBlockSeams.js.map +1 -1
- package/dist/shared/findings/dedupe.d.ts.map +1 -1
- package/dist/shared/findings/dedupe.js +2 -1
- package/dist/shared/findings/dedupe.js.map +1 -1
- package/dist/shared/friction/frictionRecord.d.ts.map +1 -1
- package/dist/shared/friction/frictionRecord.js +3 -2
- package/dist/shared/friction/frictionRecord.js.map +1 -1
- package/dist/shared/friction/triage.d.ts.map +1 -1
- package/dist/shared/friction/triage.js +2 -1
- package/dist/shared/friction/triage.js.map +1 -1
- package/dist/shared/git.d.ts.map +1 -1
- package/dist/shared/git.js +5 -4
- package/dist/shared/git.js.map +1 -1
- package/dist/shared/index.d.ts +6 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +7 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/intent/constraintClauses.d.ts +31 -0
- package/dist/shared/intent/constraintClauses.d.ts.map +1 -0
- package/dist/shared/intent/constraintClauses.js +37 -0
- package/dist/shared/intent/constraintClauses.js.map +1 -0
- package/dist/shared/io/artifactName.js +2 -2
- package/dist/shared/io/artifactName.js.map +1 -1
- package/dist/shared/io/frictionCapture.d.ts.map +1 -1
- package/dist/shared/io/frictionCapture.js +4 -6
- package/dist/shared/io/frictionCapture.js.map +1 -1
- package/dist/shared/io/json.d.ts +2 -0
- package/dist/shared/io/json.d.ts.map +1 -1
- package/dist/shared/io/json.js +2 -1
- package/dist/shared/io/json.js.map +1 -1
- package/dist/shared/loopCorePaths.d.ts.map +1 -1
- package/dist/shared/loopCorePaths.js +1 -4
- package/dist/shared/loopCorePaths.js.map +1 -1
- package/dist/shared/paths.d.ts +19 -0
- package/dist/shared/paths.d.ts.map +1 -0
- package/dist/shared/paths.js +23 -0
- package/dist/shared/paths.js.map +1 -0
- package/dist/shared/reReview/projectionDiff.d.ts +0 -18
- package/dist/shared/reReview/projectionDiff.d.ts.map +1 -1
- package/dist/shared/reReview/projectionDiff.js +2 -1
- package/dist/shared/reReview/projectionDiff.js.map +1 -1
- package/dist/shared/sessionConfig.d.ts.map +1 -1
- package/dist/shared/sessionConfig.js +9 -24
- package/dist/shared/sessionConfig.js.map +1 -1
- package/dist/shared/stableStringify.d.ts.map +1 -1
- package/dist/shared/stableStringify.js +1 -3
- package/dist/shared/stableStringify.js.map +1 -1
- package/dist/shared/submission/expectedSubmissions.d.ts +0 -19
- package/dist/shared/submission/expectedSubmissions.d.ts.map +1 -1
- package/dist/shared/submission/expectedSubmissions.js +23 -6
- package/dist/shared/submission/expectedSubmissions.js.map +1 -1
- package/dist/shared/submission/hostHandoffCore.d.ts +0 -3
- package/dist/shared/submission/hostHandoffCore.d.ts.map +1 -1
- package/dist/shared/submission/hostHandoffCore.js +2 -7
- package/dist/shared/submission/hostHandoffCore.js.map +1 -1
- package/dist/shared/submission/submissionIdentity.d.ts.map +1 -1
- package/dist/shared/submission/submissionIdentity.js +7 -8
- package/dist/shared/submission/submissionIdentity.js.map +1 -1
- package/dist/shared/validation/findingsReport.d.ts.map +1 -1
- package/dist/shared/validation/findingsReport.js +2 -1
- package/dist/shared/validation/findingsReport.js.map +1 -1
- package/dist/shared/validation/schemaFailure.d.ts +9 -0
- package/dist/shared/validation/schemaFailure.d.ts.map +1 -0
- package/dist/shared/validation/schemaFailure.js +15 -0
- package/dist/shared/validation/schemaFailure.js.map +1 -0
- package/docs/audit-pkg/operator-guide.md +7 -4
- package/package.json +7 -2
- package/scripts/audit/postinstall.mjs +4 -2
- package/scripts/postinstall.mjs +1 -1
- package/scripts/remediate/postinstall.mjs +3 -1
- package/scripts/shared/install-host-assets.mjs +7 -3
- package/wrapper/audit-code-wrapper-build.mjs +3 -3
- package/wrapper/audit-code-wrapper-install-hosts.mjs +3 -3
- package/wrapper/audit-code-wrapper-lib.mjs +1 -0
- package/wrapper/remediate-code-wrapper-install-hosts.mjs +3 -3
|
@@ -65,16 +65,14 @@ const ADD_DOC_RE = /\b(add(?:s|ing)?\s+(?:a\s+)?(?:doc|docs|documentation|commen
|
|
|
65
65
|
const ADD_CONFIG_KEY_RE = /\b(?:add(?:s|ing)?|introduce[s]?)\s+(?:a\s+)?(?:new\s+)?(?:config(?:uration)?\s+)?(?:key|option|flag|field|setting|env\s*var|parameter)\b/i;
|
|
66
66
|
/** Narrowly-localized additive guard signals (a guard/check ADDED before logic). */
|
|
67
67
|
const ADD_GUARD_RE = /\b(add(?:s|ing)?\s+(?:a\s+)?(?:null|nil|undefined|bounds|range|length|empty|guard|sanity|input|defensive)\s*(?:check|guard|validation)|guard\s+against|add(?:s|ing)?\s+(?:a\s+)?(?:missing\s+)?(?:return|early\s+return))\b/i;
|
|
68
|
-
function changeText(finding
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
// is the most precise signal and is included.
|
|
68
|
+
function changeText(finding) {
|
|
69
|
+
// The finding's own prose is the authority. There is no per-item spec to
|
|
70
|
+
// sharpen it with — see classifyFindingRisk.
|
|
72
71
|
return [
|
|
73
72
|
finding.title,
|
|
74
73
|
finding.summary,
|
|
75
74
|
finding.category,
|
|
76
75
|
finding.impact ?? "",
|
|
77
|
-
spec?.concrete_change ?? "",
|
|
78
76
|
]
|
|
79
77
|
.join(" \n ")
|
|
80
78
|
.toLowerCase();
|
|
@@ -85,8 +83,8 @@ function changeText(finding, spec) {
|
|
|
85
83
|
* BEFORE the additive kinds are considered, so a finding that both "adds a test"
|
|
86
84
|
* and "removes the legacy parser" classifies as `deletion`, never `add_test`.
|
|
87
85
|
*/
|
|
88
|
-
export function classifyChangeKind(finding
|
|
89
|
-
const text = changeText(finding
|
|
86
|
+
export function classifyChangeKind(finding) {
|
|
87
|
+
const text = changeText(finding);
|
|
90
88
|
// 1. Disqualifying signals first (deletion, then in-place semantic edit).
|
|
91
89
|
if (DELETION_RE.test(text)) {
|
|
92
90
|
return {
|
|
@@ -132,18 +130,9 @@ export function classifyChangeKind(finding, spec) {
|
|
|
132
130
|
reason: "change-kind did not positively match any allowlisted provably-safe kind — excluded (fail-closed)",
|
|
133
131
|
};
|
|
134
132
|
}
|
|
135
|
-
export function evaluateAutonomousFinding(finding
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
// verb / breaking-lens / low-confidence signals still fire).
|
|
139
|
-
const effectiveSpec = spec ?? {
|
|
140
|
-
finding_id: finding.id,
|
|
141
|
-
concrete_change: [finding.title, finding.summary, finding.impact ?? ""].join(" \n "),
|
|
142
|
-
tests_to_write: [],
|
|
143
|
-
not_applicable_steps: [],
|
|
144
|
-
};
|
|
145
|
-
const tier = classifyFindingRisk(finding, effectiveSpec).tier;
|
|
146
|
-
const kind = classifyChangeKind(finding, spec);
|
|
133
|
+
export function evaluateAutonomousFinding(finding) {
|
|
134
|
+
const tier = classifyFindingRisk(finding).tier;
|
|
135
|
+
const kind = classifyChangeKind(finding);
|
|
147
136
|
const tierSafe = tier === "safe";
|
|
148
137
|
const approved = tierSafe && kind.allowlisted && SAFE_CHANGE_KINDS.has(kind.change_kind);
|
|
149
138
|
let reason;
|
|
@@ -164,12 +153,9 @@ export function evaluateAutonomousFinding(finding, spec) {
|
|
|
164
153
|
* FRESH each call (no memory of a prior run's verdict), so a leftover that
|
|
165
154
|
* drifted across the "safe" boundary is re-checked on the next nightly run.
|
|
166
155
|
*
|
|
167
|
-
* `specs` is an optional map from finding id to its documented ItemSpec; when a
|
|
168
|
-
* spec is present it sharpens the classification, but the decision works without
|
|
169
|
-
* any specs (the gate fires before the document phase).
|
|
170
156
|
*/
|
|
171
|
-
export function buildAutonomousReviewDecision(survivors
|
|
172
|
-
const verdicts = survivors.map((f) => evaluateAutonomousFinding(f
|
|
157
|
+
export function buildAutonomousReviewDecision(survivors) {
|
|
158
|
+
const verdicts = survivors.map((f) => evaluateAutonomousFinding(f));
|
|
173
159
|
return {
|
|
174
160
|
approved_ids: verdicts.filter((v) => v.approved).map((v) => v.finding_id),
|
|
175
161
|
leftover_ids: verdicts.filter((v) => !v.approved).map((v) => v.finding_id),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomousGate.js","sourceRoot":"","sources":["../../../src/remediate/review/autonomousGate.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,gFAAgF;AAChF,iCAAiC;AACjC,EAAE;AACF,+EAA+E;AAC/E,uBAAuB;AACvB,oEAAoE;AACpE,sEAAsE;AACtE,uEAAuE;AACvE,qBAAqB;AACrB,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,0DAA0D;AAC1D,EAAE;AACF,kFAAkF;
|
|
1
|
+
{"version":3,"file":"autonomousGate.js","sourceRoot":"","sources":["../../../src/remediate/review/autonomousGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,6 +116,7 @@ export interface IntakeRiskSignal {
|
|
|
116
116
|
*/
|
|
117
117
|
escalated: boolean;
|
|
118
118
|
}
|
|
119
|
+
/** Normalize a path for pattern matching: forward slashes, no leading `./`. */
|
|
119
120
|
export interface ComputeIntakeRiskInput {
|
|
120
121
|
/** Best-available affected-file list at intake (repo-relative paths). */
|
|
121
122
|
affectedFiles: readonly string[];
|
|
@@ -167,30 +168,30 @@ export interface DecompositionEvidenceInput {
|
|
|
167
168
|
*/
|
|
168
169
|
export declare function decompositionRiskEvidence(input: DecompositionEvidenceInput): RiskEscalationEvidence | undefined;
|
|
169
170
|
/**
|
|
170
|
-
* Max findings a `low`-tier
|
|
171
|
-
* coordination risk of the batch warrants at least `medium` (
|
|
171
|
+
* Max findings a `low`-tier run will take — "a handful". Above this, the
|
|
172
|
+
* coordination risk of the batch warrants at least `medium` (full depth).
|
|
172
173
|
*/
|
|
173
|
-
export declare const
|
|
174
|
+
export declare const MAX_LOW_TIER_FINDINGS = 5;
|
|
174
175
|
/**
|
|
175
176
|
* Max DISTINCT affected files across the approved set for a `low`-tier run. A small
|
|
176
177
|
* footprint is the primary structural proxy for "no broad cross-module ripple".
|
|
177
178
|
* (Aligned with the intake breadth threshold `DEFAULT_MEDIUM_FILE_COUNT = 6`, so >5
|
|
178
179
|
* files is `medium` by both the intake signal and this finding-level check.)
|
|
179
180
|
*/
|
|
180
|
-
export declare const
|
|
181
|
+
export declare const MAX_LOW_TIER_FILES = 5;
|
|
181
182
|
/** Distinct affected-file paths across a finding set. */
|
|
182
183
|
export declare function distinctAffectedFiles(findings: Finding[]): string[];
|
|
183
184
|
/**
|
|
184
185
|
* Derive escalate-on-evidence from the APPROVED finding set's finding-level quality /
|
|
185
186
|
* coupling signals — the dimension the intake path/breadth/intent signal does not
|
|
186
187
|
* capture. Any signal that carries design-level doubt raises the tier so the run leaves
|
|
187
|
-
* the `low`
|
|
188
|
+
* the `low` tier and is traversed at full depth:
|
|
188
189
|
* - a `systemic` finding, or an `architecture`-lens finding ⇒ `high` (design-level);
|
|
189
190
|
* - an ungrounded finding, a below-high-confidence finding, a finding coupled to
|
|
190
|
-
* related findings (seam risk), more than {@link
|
|
191
|
-
* or more than {@link
|
|
191
|
+
* related findings (seam risk), more than {@link MAX_LOW_TIER_FINDINGS} findings,
|
|
192
|
+
* or more than {@link MAX_LOW_TIER_FILES} distinct affected files ⇒ `medium`.
|
|
192
193
|
* Returns undefined when the set is a clean handful of grounded, high-confidence,
|
|
193
|
-
* localized, non-coupled fixes (the tier stays `low`
|
|
194
|
+
* localized, non-coupled fixes (the tier stays `low`). Pure + deterministic;
|
|
194
195
|
* the {@link escalateRiskSignal} combinator enforces raise-only. Mirrors
|
|
195
196
|
* {@link decompositionRiskEvidence}'s shape — evidence, never a direct tier write.
|
|
196
197
|
*/
|
|
@@ -211,16 +212,4 @@ export declare function writeIntakeRiskSignal(artifactsDir: string, signal: Inta
|
|
|
211
212
|
* the single run that actually computes, never on every subsequent next-step.
|
|
212
213
|
*/
|
|
213
214
|
export declare function ensureIntakeRiskSignal(artifactsDir: string, resolveInput: () => ComputeIntakeRiskInput | Promise<ComputeIntakeRiskInput>): Promise<IntakeRiskSignal>;
|
|
214
|
-
export declare const LEAN_LIGHT_REVIEW_SCHEMA_VERSION: "remediate-code-lean-light-review/v1alpha1";
|
|
215
|
-
export type LeanLightReviewDisposition = "clear" | "escalate";
|
|
216
|
-
/**
|
|
217
|
-
* Interpret a host-written light-review verdict, fail-safe toward escalation:
|
|
218
|
-
* any malformed / ambiguous verdict, or an `escalate` with no stated concern,
|
|
219
|
-
* routes to the full pipeline. The floor must never silently pass — when in
|
|
220
|
-
* doubt, escalate (a wrong call costs extra pipeline work, never skipped review).
|
|
221
|
-
*/
|
|
222
|
-
export declare function interpretLeanLightReviewVerdict(raw: unknown): {
|
|
223
|
-
disposition: LeanLightReviewDisposition;
|
|
224
|
-
concerns: string[];
|
|
225
|
-
};
|
|
226
215
|
//# sourceMappingURL=riskSignal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskSignal.d.ts","sourceRoot":"","sources":["../../src/remediate/riskSignal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD,eAAO,MAAM,iCAAiC,EAC5C,4CAAqD,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAIjD,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE9D;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAEpF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,MAAM,CAAC;AAExD,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,QAAQ,GAAG,SAAS,GACzB,oBAAoB,CAEtB;AAED,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,eAAe,EAOhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAgBzD,CAAC;AAEF,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,iCAAiC,CAAC;IACzD,IAAI,EAAE,QAAQ,CAAC;IACf,gGAAgG;IAChG,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;IAC/B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"riskSignal.d.ts","sourceRoot":"","sources":["../../src/remediate/riskSignal.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* - Re-assessable as the run produces evidence (escalate-on-evidence), and the
|
|
22
22
|
* re-assessment may only RAISE the tier, never lower it.
|
|
23
23
|
*/
|
|
24
|
-
import { readOptionalJsonFile, writeJsonFile, findingIsGrounded,
|
|
24
|
+
import { readOptionalJsonFile, writeJsonFile, findingIsGrounded, discardOnSchemaVersionMismatch, normalizeRepoRelPath } from "audit-tools/shared";
|
|
25
25
|
import { intakePaths } from "./intake.js";
|
|
26
26
|
export const INTAKE_RISK_SIGNAL_SCHEMA_VERSION = "remediate-code-intake-risk-signal/v1alpha1";
|
|
27
27
|
const TIER_RANK = { low: 0, medium: 1, high: 2 };
|
|
@@ -82,10 +82,6 @@ export const DEFAULT_INTENT_RISK_KEYWORDS = [
|
|
|
82
82
|
];
|
|
83
83
|
const DEFAULT_MEDIUM_FILE_COUNT = 6;
|
|
84
84
|
const DEFAULT_HIGH_FILE_COUNT = 15;
|
|
85
|
-
/** Normalize a path for pattern matching: forward slashes, no leading `./`. */
|
|
86
|
-
function normalizePathForMatch(path) {
|
|
87
|
-
return path.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
88
|
-
}
|
|
89
85
|
/**
|
|
90
86
|
* Compute the shared intake risk/complexity signal. Pure + deterministic; uses
|
|
91
87
|
* only intake-available data. Fail-closed: an unevaluable input (no files AND no
|
|
@@ -96,7 +92,7 @@ export function computeIntakeRiskSignal(input) {
|
|
|
96
92
|
const intentKeywords = input.config?.intentRiskKeywords ?? DEFAULT_INTENT_RISK_KEYWORDS;
|
|
97
93
|
const mediumFileCount = input.config?.mediumFileCount ?? DEFAULT_MEDIUM_FILE_COUNT;
|
|
98
94
|
const highFileCount = input.config?.highFileCount ?? DEFAULT_HIGH_FILE_COUNT;
|
|
99
|
-
const distinctFiles = Array.from(new Set(input.affectedFiles.map(
|
|
95
|
+
const distinctFiles = Array.from(new Set(input.affectedFiles.map(normalizeRepoRelPath).filter((p) => p.length > 0)));
|
|
100
96
|
const fileCount = distinctFiles.length;
|
|
101
97
|
const matchedPathRisks = [];
|
|
102
98
|
for (const family of pathPatterns) {
|
|
@@ -189,7 +185,7 @@ export function escalateRiskSignal(current, evidence) {
|
|
|
189
185
|
*/
|
|
190
186
|
export function decompositionRiskEvidence(input) {
|
|
191
187
|
const patterns = input.config?.pathRiskPatterns ?? DEFAULT_PATH_RISK_PATTERNS;
|
|
192
|
-
const files = Array.from(new Set(input.fileScopes.map(
|
|
188
|
+
const files = Array.from(new Set(input.fileScopes.map(normalizeRepoRelPath).filter((p) => p.length > 0)));
|
|
193
189
|
const matched = [];
|
|
194
190
|
for (const family of patterns) {
|
|
195
191
|
if (files.some((p) => family.pattern.test(p))) {
|
|
@@ -210,28 +206,27 @@ export function decompositionRiskEvidence(input) {
|
|
|
210
206
|
}
|
|
211
207
|
return undefined;
|
|
212
208
|
}
|
|
213
|
-
// ── Finding-level risk (
|
|
209
|
+
// ── Finding-level risk (folded into the dial) ──
|
|
214
210
|
//
|
|
215
|
-
// The
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
//
|
|
221
|
-
//
|
|
222
|
-
// full contract pipeline. Fail-closed like every other risk input.
|
|
211
|
+
// The tier is the SINGLE classifier, and the only thing it selects is DEPTH. There is
|
|
212
|
+
// no separate eligibility boolean that could DISAGREE with it, and no path that skips
|
|
213
|
+
// the pipeline: a `low` tier traverses the SAME pipeline shallowly. The finding-level
|
|
214
|
+
// simplicity signals below fold INTO the tier as escalate-on-evidence — these are the
|
|
215
|
+
// finding-QUALITY / coupling signals the path/breadth/intent intake signal doesn't see,
|
|
216
|
+
// and a failing signal raises the tier so the change is traversed at full depth.
|
|
217
|
+
// Fail-closed like every other risk input.
|
|
223
218
|
/**
|
|
224
|
-
* Max findings a `low`-tier
|
|
225
|
-
* coordination risk of the batch warrants at least `medium` (
|
|
219
|
+
* Max findings a `low`-tier run will take — "a handful". Above this, the
|
|
220
|
+
* coordination risk of the batch warrants at least `medium` (full depth).
|
|
226
221
|
*/
|
|
227
|
-
export const
|
|
222
|
+
export const MAX_LOW_TIER_FINDINGS = 5;
|
|
228
223
|
/**
|
|
229
224
|
* Max DISTINCT affected files across the approved set for a `low`-tier run. A small
|
|
230
225
|
* footprint is the primary structural proxy for "no broad cross-module ripple".
|
|
231
226
|
* (Aligned with the intake breadth threshold `DEFAULT_MEDIUM_FILE_COUNT = 6`, so >5
|
|
232
227
|
* files is `medium` by both the intake signal and this finding-level check.)
|
|
233
228
|
*/
|
|
234
|
-
export const
|
|
229
|
+
export const MAX_LOW_TIER_FILES = 5;
|
|
235
230
|
/** Distinct affected-file paths across a finding set. */
|
|
236
231
|
export function distinctAffectedFiles(findings) {
|
|
237
232
|
const paths = new Set();
|
|
@@ -248,13 +243,13 @@ export function distinctAffectedFiles(findings) {
|
|
|
248
243
|
* Derive escalate-on-evidence from the APPROVED finding set's finding-level quality /
|
|
249
244
|
* coupling signals — the dimension the intake path/breadth/intent signal does not
|
|
250
245
|
* capture. Any signal that carries design-level doubt raises the tier so the run leaves
|
|
251
|
-
* the `low`
|
|
246
|
+
* the `low` tier and is traversed at full depth:
|
|
252
247
|
* - a `systemic` finding, or an `architecture`-lens finding ⇒ `high` (design-level);
|
|
253
248
|
* - an ungrounded finding, a below-high-confidence finding, a finding coupled to
|
|
254
|
-
* related findings (seam risk), more than {@link
|
|
255
|
-
* or more than {@link
|
|
249
|
+
* related findings (seam risk), more than {@link MAX_LOW_TIER_FINDINGS} findings,
|
|
250
|
+
* or more than {@link MAX_LOW_TIER_FILES} distinct affected files ⇒ `medium`.
|
|
256
251
|
* Returns undefined when the set is a clean handful of grounded, high-confidence,
|
|
257
|
-
* localized, non-coupled fixes (the tier stays `low`
|
|
252
|
+
* localized, non-coupled fixes (the tier stays `low`). Pure + deterministic;
|
|
258
253
|
* the {@link escalateRiskSignal} combinator enforces raise-only. Mirrors
|
|
259
254
|
* {@link decompositionRiskEvidence}'s shape — evidence, never a direct tier write.
|
|
260
255
|
*/
|
|
@@ -269,12 +264,12 @@ export function findingRiskEvidence(findings) {
|
|
|
269
264
|
if (architectural.length > 0) {
|
|
270
265
|
highReasons.push(`architecture-lens (design-level): ${architectural.map((f) => f.id).join(", ")}`);
|
|
271
266
|
}
|
|
272
|
-
if (findings.length >
|
|
273
|
-
mediumReasons.push(`${findings.length} findings exceeds the ${
|
|
267
|
+
if (findings.length > MAX_LOW_TIER_FINDINGS) {
|
|
268
|
+
mediumReasons.push(`${findings.length} findings exceeds the ${MAX_LOW_TIER_FINDINGS}-finding low-tier cap`);
|
|
274
269
|
}
|
|
275
270
|
const fileCount = distinctAffectedFiles(findings).length;
|
|
276
|
-
if (fileCount >
|
|
277
|
-
mediumReasons.push(`${fileCount} affected files exceeds the ${
|
|
271
|
+
if (fileCount > MAX_LOW_TIER_FILES) {
|
|
272
|
+
mediumReasons.push(`${fileCount} affected files exceeds the ${MAX_LOW_TIER_FILES}-file low-tier cap`);
|
|
278
273
|
}
|
|
279
274
|
const ungrounded = findings.filter((f) => !findingIsGrounded(f));
|
|
280
275
|
if (ungrounded.length > 0) {
|
|
@@ -327,58 +322,4 @@ export async function ensureIntakeRiskSignal(artifactsDir, resolveInput) {
|
|
|
327
322
|
await writeIntakeRiskSignal(artifactsDir, signal);
|
|
328
323
|
return signal;
|
|
329
324
|
}
|
|
330
|
-
// ── Low-tier light adversarial review floor (T1 slice 3b) ─────────────────────
|
|
331
|
-
//
|
|
332
|
-
// The `low` risk tier does NOT skip adversarial scrutiny — that would be a
|
|
333
|
-
// zero-scrutiny fork, and remediation legitimately catches upstream (audit)
|
|
334
|
-
// errors. Instead a low-tier run runs ONE bounded LIGHT adversarial pass over the
|
|
335
|
-
// approved findings (the floor: light, never off — `adversarialDepthForTier("low")
|
|
336
|
-
// === "light"`, above) before the lean plan is trusted. A `clear` verdict proceeds
|
|
337
|
-
// to the lean plan; a verdict surfacing a real concern ESCALATES the run (evidence
|
|
338
|
-
// the change is harder than assessed) and routes it to the full contract pipeline.
|
|
339
|
-
// The verdict is a mechanical on-disk gate, NOT a "please self-check" instruction
|
|
340
|
-
// the host might ignore. (Relocated from the retired `steps/leanFastPath.ts`, whose
|
|
341
|
-
// filename read as a vestige of the pre-fold "separate lean path" era — DD-21.)
|
|
342
|
-
export const LEAN_LIGHT_REVIEW_SCHEMA_VERSION = "remediate-code-lean-light-review/v1alpha1";
|
|
343
|
-
/**
|
|
344
|
-
* Interpret a host-written light-review verdict, fail-safe toward escalation:
|
|
345
|
-
* any malformed / ambiguous verdict, or an `escalate` with no stated concern,
|
|
346
|
-
* routes to the full pipeline. The floor must never silently pass — when in
|
|
347
|
-
* doubt, escalate (a wrong call costs extra pipeline work, never skipped review).
|
|
348
|
-
*/
|
|
349
|
-
export function interpretLeanLightReviewVerdict(raw) {
|
|
350
|
-
if (!isRecord(raw)) {
|
|
351
|
-
return { disposition: "escalate", concerns: ["unreadable light-review verdict"] };
|
|
352
|
-
}
|
|
353
|
-
// Schema-version gate: a verdict that does not carry the exact expected
|
|
354
|
-
// schema_version is not a trustworthy light-review emission (it may be a stale,
|
|
355
|
-
// mis-shaped, or wrong-contract artifact). Fail safe toward escalation rather
|
|
356
|
-
// than trusting an unversioned `clear`.
|
|
357
|
-
if (raw.schema_version !== LEAN_LIGHT_REVIEW_SCHEMA_VERSION) {
|
|
358
|
-
return {
|
|
359
|
-
disposition: "escalate",
|
|
360
|
-
concerns: [
|
|
361
|
-
`light-review verdict schema_version must be "${LEAN_LIGHT_REVIEW_SCHEMA_VERSION}"`,
|
|
362
|
-
],
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
const concerns = Array.isArray(raw.concerns)
|
|
366
|
-
? raw.concerns.filter((c) => typeof c === "string")
|
|
367
|
-
: [];
|
|
368
|
-
if (raw.disposition === "clear") {
|
|
369
|
-
return { disposition: "clear", concerns: [] };
|
|
370
|
-
}
|
|
371
|
-
if (raw.disposition === "escalate") {
|
|
372
|
-
return {
|
|
373
|
-
disposition: "escalate",
|
|
374
|
-
concerns: concerns.length > 0
|
|
375
|
-
? concerns
|
|
376
|
-
: ["light review escalated without a stated concern"],
|
|
377
|
-
};
|
|
378
|
-
}
|
|
379
|
-
return {
|
|
380
|
-
disposition: "escalate",
|
|
381
|
-
concerns: ["light-review verdict missing a valid disposition"],
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
325
|
//# sourceMappingURL=riskSignal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskSignal.js","sourceRoot":"","sources":["../../src/remediate/riskSignal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"riskSignal.js","sourceRoot":"","sources":["../../src/remediate/riskSignal.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,8 @@ import type { RemediationBlock } from "./types.js";
|
|
|
9
9
|
* Attribution is per-ITEM and restricted to `resolved` items — the only status
|
|
10
10
|
* that lands an actual diff. `resolved_no_change` (verified but zero diff), skips
|
|
11
11
|
* (`ignored`/`deemed_inappropriate`) and `blocked` items edit nothing and are
|
|
12
|
-
* excluded. Each resolved item's edited surface is its `
|
|
13
|
-
*
|
|
14
|
-
* `touched_files` only when the item carries no per-item surface. This is the
|
|
12
|
+
* excluded. Each resolved item's edited surface is its block's `touched_files`.
|
|
13
|
+
* This is the
|
|
15
14
|
* DECLARED edit surface, not a live git diff: it's the only CUMULATIVE,
|
|
16
15
|
* git-independent source (worktree branches for earlier waves are already
|
|
17
16
|
* merged/gone), and the ownership-disjoint scheduler + post-merge attribution hold
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessMemory.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/accessMemory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"accessMemory.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/accessMemory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AASzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,gBAAgB,GACtB,YAAY,CA8Bd;AAKD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAUnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EACnC,aAAa,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,MAAM,EAAE,GAC5D,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
-
import { deriveAccessMemoryFromEvents, readOptionalJsonFile, AccessMemorySchema, computeContinuityScores, continuityMassForPaths, } from "audit-tools/shared";
|
|
2
|
+
import { compareCodeUnits, deriveAccessMemoryFromEvents, readOptionalJsonFile, AccessMemorySchema, computeContinuityScores, continuityMassForPaths, } from "audit-tools/shared";
|
|
3
3
|
/**
|
|
4
4
|
* Remediate-side parity of the audit access-memory harvest (context-efficiency
|
|
5
5
|
* track, increment 2c): populate `access_memory.edited_count` from the files
|
|
@@ -8,9 +8,8 @@ import { deriveAccessMemoryFromEvents, readOptionalJsonFile, AccessMemorySchema,
|
|
|
8
8
|
* Attribution is per-ITEM and restricted to `resolved` items — the only status
|
|
9
9
|
* that lands an actual diff. `resolved_no_change` (verified but zero diff), skips
|
|
10
10
|
* (`ignored`/`deemed_inappropriate`) and `blocked` items edit nothing and are
|
|
11
|
-
* excluded. Each resolved item's edited surface is its `
|
|
12
|
-
*
|
|
13
|
-
* `touched_files` only when the item carries no per-item surface. This is the
|
|
11
|
+
* excluded. Each resolved item's edited surface is its block's `touched_files`.
|
|
12
|
+
* This is the
|
|
14
13
|
* DECLARED edit surface, not a live git diff: it's the only CUMULATIVE,
|
|
15
14
|
* git-independent source (worktree branches for earlier waves are already
|
|
16
15
|
* merged/gone), and the ownership-disjoint scheduler + post-merge attribution hold
|
|
@@ -29,21 +28,19 @@ export function deriveRemediationAccessMemory(state) {
|
|
|
29
28
|
const phaseDelta = (a.phase_ordinal ?? 0) - (b.phase_ordinal ?? 0);
|
|
30
29
|
if (phaseDelta !== 0)
|
|
31
30
|
return phaseDelta;
|
|
32
|
-
return a.block_id
|
|
31
|
+
return compareCodeUnits(a.block_id, b.block_id);
|
|
33
32
|
});
|
|
34
33
|
const ordinalByBlock = new Map(blocks.map((block, index) => [block.block_id, index]));
|
|
35
34
|
const blockById = new Map(blocks.map((block) => [block.block_id, block]));
|
|
36
35
|
// Sort items by finding_id so the (already path-sorted) core sees a stable
|
|
37
36
|
// stream regardless of state.items key insertion order.
|
|
38
|
-
const items = Object.values(state.items ?? {}).sort((a, b) => a.finding_id
|
|
37
|
+
const items = Object.values(state.items ?? {}).sort((a, b) => compareCodeUnits(a.finding_id, b.finding_id));
|
|
39
38
|
const events = [];
|
|
40
39
|
for (const item of items) {
|
|
41
40
|
if (item.status !== "resolved")
|
|
42
41
|
continue; // only an actual diff counts as an edit
|
|
43
42
|
const ordinal = ordinalByBlock.get(item.block_id) ?? 0;
|
|
44
|
-
const surface = item.
|
|
45
|
-
blockById.get(item.block_id)?.touched_files ??
|
|
46
|
-
[];
|
|
43
|
+
const surface = blockById.get(item.block_id)?.touched_files ?? [];
|
|
47
44
|
for (const path of new Set(surface)) {
|
|
48
45
|
if (!path)
|
|
49
46
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessMemory.js","sourceRoot":"","sources":["../../../src/remediate/state/accessMemory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAI5B
|
|
1
|
+
{"version":3,"file":"accessMemory.js","sourceRoot":"","sources":["../../../src/remediate/state/accessMemory.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,10 +25,9 @@ export interface RemediationState {
|
|
|
25
25
|
* never commit files the run didn't touch" is enforced by staging exactly
|
|
26
26
|
* `applied_edit_surface ∩ currently-dirty`, never a repo-wide sweep.
|
|
27
27
|
*
|
|
28
|
-
* The close phase additionally unions in each resolved
|
|
29
|
-
* `
|
|
30
|
-
*
|
|
31
|
-
* this surface.
|
|
28
|
+
* The close phase additionally unions in each resolved finding's declared
|
|
29
|
+
* `affected_files` as a conservative fallback for current states created
|
|
30
|
+
* before host-result ingestion recorded this surface.
|
|
32
31
|
*/
|
|
33
32
|
applied_edit_surface?: string[];
|
|
34
33
|
/**
|
|
@@ -40,9 +39,9 @@ export interface RemediationState {
|
|
|
40
39
|
*
|
|
41
40
|
* Consumed by the close phase's `resolveEditSurfaceManifest`: a file that was
|
|
42
41
|
* dirty BEFORE the run started cannot be one of the run's edits, so it is
|
|
43
|
-
* excluded from the DECLARED (fallback) manifest sources
|
|
44
|
-
*
|
|
45
|
-
*
|
|
42
|
+
* excluded from the DECLARED (fallback) manifest sources (finding
|
|
43
|
+
* `affected_files` — plan-time declarations/write-grants, not verified
|
|
44
|
+
* diffs). Ground-truth entries
|
|
46
45
|
* (`applied_edit_surface`) are also excluded from closing-stage staging: a
|
|
47
46
|
* landed commit proves attribution of the commit, not ownership of any
|
|
48
47
|
* still-dirty pre-run content at that path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,4BAA4B,EAE7B,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EACF,SAAS,GACT,UAAU,GACV,2BAA2B,GAC3B,cAAc,GACd,QAAQ,GACR,oBAAoB,GACpB,SAAS,GACT,UAAU,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,4BAA4B,EAE7B,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EACF,SAAS,GACT,UAAU,GACV,2BAA2B,GAC3B,cAAc,GACd,QAAQ,GACR,oBAAoB,GACpB,SAAS,GACT,UAAU,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,4BAA4B,CAAC;CAC7C;AAuID,eAAO,MAAM,eAAe,QAA+B,CAAC;AAU5D,qBAAa,UAAU;IAWnB,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAZlC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;gBAGvD,YAAY,EAAE,MAAM,EAEX,cAAc,CAAC,EAAE,MAAM,YAAA;IAoBpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAInD;;;;;OAKG;IACG,MAAM,CACV,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAClE,OAAO,CAAC,gBAAgB,CAAC;IAa5B;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAOL,kCAAkC,GACnC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
|