audit-tools 0.48.0 → 0.50.1
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 +3 -1
- 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/args.d.ts +27 -0
- package/dist/audit/cli/args.d.ts.map +1 -1
- package/dist/audit/cli/args.js +32 -2
- package/dist/audit/cli/args.js.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +32 -55
- package/dist/audit/cli/dispatch/hostHandoff.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/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +4 -4
- package/dist/audit/cli/nextStepHelpers.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/artifacts.d.ts +0 -28
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +1 -65
- package/dist/audit/io/artifacts.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/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/designReviewSnapshot.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.js +2 -5
- package/dist/audit/orchestrator/designReviewSnapshot.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/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/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 +3 -4
- 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/cyclicSeamResolution.d.ts +25 -10
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js +35 -88
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -1
- package/dist/remediate/contractPipeline/idRegistry.d.ts +10 -20
- package/dist/remediate/contractPipeline/idRegistry.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/idRegistry.js +10 -24
- package/dist/remediate/contractPipeline/idRegistry.js.map +1 -1
- package/dist/remediate/contractPipeline/obligationKinds.d.ts +27 -0
- package/dist/remediate/contractPipeline/obligationKinds.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/obligationKinds.js +18 -0
- package/dist/remediate/contractPipeline/obligationKinds.js.map +1 -0
- 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/dedup/crossLensDedup.d.ts +2 -3
- package/dist/remediate/dedup/crossLensDedup.d.ts.map +1 -1
- package/dist/remediate/dedup/crossLensDedup.js +2 -4
- package/dist/remediate/dedup/crossLensDedup.js.map +1 -1
- package/dist/remediate/index.d.ts +38 -8
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +75 -27
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +3 -3
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/plan.js +2 -2
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts +1 -0
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +3 -7
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/state/accessMemory.d.ts.map +1 -1
- package/dist/remediate/state/accessMemory.js +3 -3
- package/dist/remediate/state/accessMemory.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +6 -62
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +20 -89
- 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 +32 -39
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +14 -5
- package/dist/remediate/steps/nextStep.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 +8 -14
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/contractPipeline.d.ts +1 -1
- package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipeline.js +8 -46
- package/dist/remediate/validation/contractPipeline.js.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts +12 -20
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.js +107 -135
- package/dist/remediate/validation/contractPipelineGates.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.map +1 -1
- package/dist/shared/analyzerPolicy.js +7 -22
- package/dist/shared/analyzerPolicy.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 +4 -11
- package/dist/shared/findings/dedupe.d.ts.map +1 -1
- package/dist/shared/findings/dedupe.js +198 -164
- 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/graph/directedCycles.d.ts +61 -0
- package/dist/shared/graph/directedCycles.d.ts.map +1 -0
- package/dist/shared/graph/directedCycles.js +190 -0
- package/dist/shared/graph/directedCycles.js.map +1 -0
- package/dist/shared/index.d.ts +8 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +9 -2
- package/dist/shared/index.js.map +1 -1
- 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/io/repoRoot.d.ts +45 -0
- package/dist/shared/io/repoRoot.d.ts.map +1 -1
- package/dist/shared/io/repoRoot.js +91 -1
- package/dist/shared/io/repoRoot.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/submission/submissionScan.d.ts +86 -0
- package/dist/shared/submission/submissionScan.d.ts.map +1 -0
- package/dist/shared/submission/submissionScan.js +93 -0
- package/dist/shared/submission/submissionScan.js.map +1 -0
- package/dist/shared/types/obligationLedger.d.ts +7 -3
- package/dist/shared/types/obligationLedger.d.ts.map +1 -1
- package/dist/shared/types/obligationLedger.js +9 -37
- package/dist/shared/types/obligationLedger.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/package.json +5 -2
- package/skills/audit-code/audit-code.prompt.md +5 -2
- package/wrapper/audit-code-wrapper-install-hosts.mjs +8 -3
- package/wrapper/audit-code-wrapper-lib.mjs +10 -3
- package/wrapper/installer-verb-help.mjs +3 -1
- package/wrapper/remediate-code-wrapper-install-hosts.mjs +8 -3
- package/wrapper/repo-root.mjs +80 -0
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
* Single tool-owned authority for the contract-pipeline's id relationships
|
|
3
3
|
* (S4 of the contract-authoring determinism design).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* finding_id" merge trap: the `CP-BLOCK-` block-id
|
|
5
|
+
* Its block-id relationship caused the recurring "Unknown
|
|
6
|
+
* finding_id" merge trap: the one-way bare-node-id to `CP-BLOCK-` block-id mint.
|
|
7
7
|
* Before this module the prefix was constructed by inline string templates at
|
|
8
8
|
* several sites (the DAG->plan promotion built it for both node block ids AND
|
|
9
|
-
* dependency edges; the dispatch alias map built it again)
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* round-trips dispatch -> worker result -> merge deterministically, so the
|
|
13
|
-
* tolerant alias remap is defence-in-depth rather than load-bearing.
|
|
9
|
+
* dependency edges; the dispatch alias map built it again). With the node id and
|
|
10
|
+
* prefix minted in exactly ONE place each, dispatch and merge consume the same
|
|
11
|
+
* persisted identity without a reverse-mapping API.
|
|
14
12
|
*
|
|
15
|
-
* The
|
|
13
|
+
* The block-id API is intentionally one-way: callers consume the persisted id
|
|
14
|
+
* minted by `toBlockId` rather than reverse-mapping it.
|
|
16
15
|
* It is a pure module — no IO, no model identity — so it is testable in
|
|
17
16
|
* isolation and feeds the hash/staleness DAG cleanly.
|
|
18
17
|
*/
|
|
@@ -27,9 +26,9 @@ export const CP_BLOCK_PREFIX = "CP-BLOCK-";
|
|
|
27
26
|
*
|
|
28
27
|
* This closes a merge-trap: when `node.id` was missing, the finding id used this
|
|
29
28
|
* fallback (`CP-001`) but the block id was built from the raw `node.id`
|
|
30
|
-
* (`CP-BLOCK-undefined`), so
|
|
31
|
-
*
|
|
32
|
-
*
|
|
29
|
+
* (`CP-BLOCK-undefined`), so the worker result landed in `unresolved`. Routing
|
|
30
|
+
* every node-id site through `ensureNodeId` keeps the finding and block mints
|
|
31
|
+
* aligned.
|
|
33
32
|
*/
|
|
34
33
|
export function ensureNodeId(rawId, index) {
|
|
35
34
|
return rawId ?? `CP-${String(index + 1).padStart(3, "0")}`;
|
|
@@ -41,19 +40,6 @@ export function ensureNodeId(rawId, index) {
|
|
|
41
40
|
export function toBlockId(nodeId) {
|
|
42
41
|
return `${CP_BLOCK_PREFIX}${nodeId}`;
|
|
43
42
|
}
|
|
44
|
-
/** True when `value` is a `CP-BLOCK-` block id minted by `toBlockId`. */
|
|
45
|
-
export function isBlockId(value) {
|
|
46
|
-
return value.startsWith(CP_BLOCK_PREFIX);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Recover the bare node id from a block id — the inverse of `toBlockId`. Returns
|
|
50
|
-
* `null` when `value` is not a `CP-BLOCK-` block id (so callers can fall back to
|
|
51
|
-
* the tolerant alias remap for non-block aliases such as obligation ids, rather
|
|
52
|
-
* than silently producing a wrong node id).
|
|
53
|
-
*/
|
|
54
|
-
export function fromBlockId(value) {
|
|
55
|
-
return isBlockId(value) ? value.slice(CP_BLOCK_PREFIX.length) : null;
|
|
56
|
-
}
|
|
57
43
|
/** The one prefix every derived obligation id carries. */
|
|
58
44
|
export const OBLIGATION_PREFIX = "OBL-";
|
|
59
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idRegistry.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/idRegistry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"idRegistry.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/idRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAyB,EACzB,KAAa;IAEb,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,MAAc;IAC7D,OAAO,GAAG,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One vocabulary for contract-pipeline obligation kinds. Definition order
|
|
3
|
+
* preserves the observable TESTABLE_OBLIGATION_KINDS iteration order; the
|
|
4
|
+
* explicit priority rank preserves the load-bearing lens/severity order.
|
|
5
|
+
*/
|
|
6
|
+
declare const OBLIGATION_KIND_DEFINITIONS: readonly [{
|
|
7
|
+
readonly kind: "invariant";
|
|
8
|
+
readonly testable: true;
|
|
9
|
+
readonly priority: 3;
|
|
10
|
+
}, {
|
|
11
|
+
readonly kind: "behavioral";
|
|
12
|
+
readonly testable: true;
|
|
13
|
+
readonly priority: 2;
|
|
14
|
+
}, {
|
|
15
|
+
readonly kind: "structural";
|
|
16
|
+
readonly testable: false;
|
|
17
|
+
readonly priority: 1;
|
|
18
|
+
}, {
|
|
19
|
+
readonly kind: "test";
|
|
20
|
+
readonly testable: false;
|
|
21
|
+
readonly priority: 0;
|
|
22
|
+
}];
|
|
23
|
+
export type ObligationKind = (typeof OBLIGATION_KIND_DEFINITIONS)[number]["kind"];
|
|
24
|
+
export declare const OBLIGATION_KIND_PRIORITY: readonly ObligationKind[];
|
|
25
|
+
export declare const TESTABLE_OBLIGATION_KINDS: Set<string>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=obligationKinds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obligationKinds.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/obligationKinds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;EAKvB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAIpC,CAAC;AAE3B,eAAO,MAAM,yBAAyB,aAErC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One vocabulary for contract-pipeline obligation kinds. Definition order
|
|
3
|
+
* preserves the observable TESTABLE_OBLIGATION_KINDS iteration order; the
|
|
4
|
+
* explicit priority rank preserves the load-bearing lens/severity order.
|
|
5
|
+
*/
|
|
6
|
+
const OBLIGATION_KIND_DEFINITIONS = [
|
|
7
|
+
{ kind: "invariant", testable: true, priority: 3 },
|
|
8
|
+
{ kind: "behavioral", testable: true, priority: 2 },
|
|
9
|
+
{ kind: "structural", testable: false, priority: 1 },
|
|
10
|
+
{ kind: "test", testable: false, priority: 0 },
|
|
11
|
+
];
|
|
12
|
+
export const OBLIGATION_KIND_PRIORITY = [
|
|
13
|
+
...OBLIGATION_KIND_DEFINITIONS,
|
|
14
|
+
]
|
|
15
|
+
.sort((left, right) => left.priority - right.priority)
|
|
16
|
+
.map(({ kind }) => kind);
|
|
17
|
+
export const TESTABLE_OBLIGATION_KINDS = new Set(OBLIGATION_KIND_DEFINITIONS.filter(({ testable }) => testable).map(({ kind }) => kind));
|
|
18
|
+
//# sourceMappingURL=obligationKinds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obligationKinds.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/obligationKinds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,2BAA2B,GAAG;IAClC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;IAClD,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;IACpD,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;CACtC,CAAC;AAIX,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,GAAG,2BAA2B;CAC/B;KACE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;KACrD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAC9C,2BAA2B,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CACvF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phaseCut.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"phaseCut.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,oFAAoF;IACpF,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AASD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,QAAQ,CAiElE;AAED;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,WAAW,EAAE,MAAM,GAClB,MAAM,CAkBR;AAwED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,EAAE,CAqBxF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,EAAE,EACzB,0BAA0B,EAAE,OAAO,EACnC,gBAAgB,EAAE,OAAO,GACxB,cAAc,EAAE,CAiElB;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAmB3D"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* cyclic module never front-runs a real foundation it transitively needs).
|
|
19
19
|
*/
|
|
20
20
|
import { OBLIGATION_PREFIX } from "./idRegistry.js";
|
|
21
|
+
import { compareCodeUnits } from "../../shared/compareCodeUnits.js";
|
|
21
22
|
/** Stable label for a tier ordinal. */
|
|
22
23
|
function phaseName(ordinal, lastOrdinal) {
|
|
23
24
|
if (ordinal === 0)
|
|
@@ -297,7 +298,7 @@ export function applyWorkBlockSeamDependencies(modules, moduleDecompositionPaylo
|
|
|
297
298
|
...module,
|
|
298
299
|
depends_on: [
|
|
299
300
|
...new Set([...module.depends_on, ...(extraDeps.get(module.name) ?? [])]),
|
|
300
|
-
].sort((a, b) => a
|
|
301
|
+
].sort((a, b) => compareCodeUnits(a, b)),
|
|
301
302
|
}));
|
|
302
303
|
}
|
|
303
304
|
/** Render the derived phase cut as a markdown section for the critique prompt. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phaseCut.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"phaseCut.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AA4BpE,uCAAuC;AACvC,SAAS,SAAS,CAAC,OAAe,EAAE,WAAmB;IACrD,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IACxC,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,aAAa,CAAC;IAClD,OAAO,aAAa,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAyB;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,qFAAqF;IACrF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CACN,CAAC,CAAC,IAAI,EACN,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,kFAAkF;IAClF,4DAA4D;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,8EAA8E;YAC9E,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;QAChB,gFAAgF;QAChF,kEAAkE;QAClE,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE;QAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC/C,MAAM,CAAC,IAAI,CAAC;YACV,OAAO;YACP,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;YACrC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI;QAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAAgC,EAChC,aAAkC,EAClC,WAAmB;IAEnB,sEAAsE;IACtE,wDAAwD;IACxD,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACpF,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,SAAS;QAChD,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AAEjE,kFAAkF;AAClF,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC3D,0EAA0E;YAC1E,wDAAwD;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gCAAgC,CACvC,gBAAyB;IAEzB,MAAM,IAAI,GAAG,gBAA8D,CAAC;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC,CAAC,oCAAoC;IACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC,CAAC,wCAAwC;IACzF,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QACtD,MAAM,CAAC,GAAG,GAA8D,CAAC;QACzE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YACzD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrD,IAAI,QAAQ,KAAK,IAAI;oBAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,gBAAyB;IACpE,MAAM,IAAI,GAAG,gBAA8D,CAAC;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,YAAY,GAAG,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;IACxE,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QACtD,MAAM,CAAC,GAAG,GAAmD,CAAC;QAC9D,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAI,IAA+B,CAAC,QAAQ,CAAC;gBAC3D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAyB,EACzB,0BAAmC,EACnC,gBAAyB;IAEzB,MAAM,aAAa,GAAG,0BAA+D,CAAC;IACtF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,IAAI,GAAG,gBAA8D,CAAC;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAElE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,GAAG,GAAG,KAIX,CAAC;QACF,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QAC3C,oBAAoB,CAAC,GAAG,CACtB,GAAG,CAAC,IAAI,EACR,IAAI,GAAG,CACL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACtC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;YAChF,CAAC,CAAC,EAAE,CACP,CACF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACvD,CAAC,CAAC,GAAG,CAAC,iBAAiB;YACvB,CAAC,CAAC,EAAE,EAAE,CAAC;YACP,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,IAAI,GAAG,KAIZ,CAAC;QACF,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;YAAE,SAAS;QAChF,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;YACrE,CAAC,CAAC,EAAE,CACP,CAAC;QACF,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC9D,IAAI,UAAU,KAAK,QAAQ;gBAAE,SAAS;YACtC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAAE,SAAS;YAChE,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,MAAM;QACT,UAAU,EAAE;YACV,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC1E,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACzC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,GAAa;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvG,CAAC;IACF,OAAO;;;;;;;;EAQP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;oBAME,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,uLAAuL,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testPlanCarry.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/testPlanCarry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testPlanCarry.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/testPlanCarry.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9D;AAQD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAMxC"}
|
|
@@ -15,15 +15,12 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { mkdir } from "node:fs/promises";
|
|
17
17
|
import { join } from "node:path";
|
|
18
|
-
import { discardOnSchemaVersionMismatch, readOptionalJsonFile, writeJsonFile, } from "audit-tools/shared";
|
|
18
|
+
import { discardOnSchemaVersionMismatch, isRecord, readOptionalJsonFile, writeJsonFile, } from "audit-tools/shared";
|
|
19
19
|
import { contractPipelineDir } from "./artifactStore.js";
|
|
20
20
|
const CARRY_SCHEMA_VERSION = "remediate-code-contract-pipeline/test-plan-carry/v1alpha1";
|
|
21
21
|
export function testPlanCarryPath(artifactsDir) {
|
|
22
22
|
return join(contractPipelineDir(artifactsDir), "test-plan-carry.json");
|
|
23
23
|
}
|
|
24
|
-
function isRecord(value) {
|
|
25
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
26
|
-
}
|
|
27
24
|
function asStringArray(value) {
|
|
28
25
|
return Array.isArray(value)
|
|
29
26
|
? value.filter((x) => typeof x === "string")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testPlanCarry.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/testPlanCarry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,oBAAoB,GACxB,2DAAoE,CAAC;AAUvE,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"testPlanCarry.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/testPlanCarry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,8BAA8B,EAC9B,QAAQ,EACR,oBAAoB,EACpB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,oBAAoB,GACxB,2DAAoE,CAAC;AAUvE,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,OAAgB,EAChB,UAAkB;IAElB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO;IACvC,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QAC7B,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC7C,KAAK,CAAC,EAAE,CAAC,GAAG;YACV,IAAI;YACJ,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;YAC/C,UAAU;SACX,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAkB;QAC3B,cAAc,EAAE,oBAAoB;QACpC,WAAW,EAAE,UAAU;QACvB,KAAK;KACN,CAAC;IACF,MAAM,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAAoB;IAEpB,MAAM,KAAK,GAAG,8BAA8B,CAC1C,MAAM,oBAAoB,CAAgB,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAC1E,oBAAoB,CACrB,CAAC;IACF,OAAO,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -8,9 +8,8 @@ export type CrossLensDedupResult = CrossLensDedupeResult;
|
|
|
8
8
|
* auto-apply block-machine policy — a HARD category gate (never collapse two
|
|
9
9
|
* different-category fixes, OBL-C003-DEDUP), the exact-identity short-circuit
|
|
10
10
|
* (drift-plan R2), CLONE survivors so the caller's Finding objects are never
|
|
11
|
-
* mutated (INV-remediate-state-05), no grounding merge / no file sort,
|
|
12
|
-
*
|
|
13
|
-
* `fixupBlocksAfterDedup`.
|
|
11
|
+
* mutated (INV-remediate-state-05), no grounding merge / no file sort, and a
|
|
12
|
+
* structured merge log. The returned `mergeMap` feeds `fixupBlocksAfterDedup`.
|
|
14
13
|
*/
|
|
15
14
|
export declare function deduplicateCrossLensFindings(findings: Finding[]): CrossLensDedupResult;
|
|
16
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossLensDedup.d.ts","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"crossLensDedup.d.ts","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,OAAO,EAAE,GAClB,oBAAoB,CAwBtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,gBAAgB,EAAE,CAepB"}
|
|
@@ -7,9 +7,8 @@ export { wordJaccard };
|
|
|
7
7
|
* auto-apply block-machine policy — a HARD category gate (never collapse two
|
|
8
8
|
* different-category fixes, OBL-C003-DEDUP), the exact-identity short-circuit
|
|
9
9
|
* (drift-plan R2), CLONE survivors so the caller's Finding objects are never
|
|
10
|
-
* mutated (INV-remediate-state-05), no grounding merge / no file sort,
|
|
11
|
-
*
|
|
12
|
-
* `fixupBlocksAfterDedup`.
|
|
10
|
+
* mutated (INV-remediate-state-05), no grounding merge / no file sort, and a
|
|
11
|
+
* structured merge log. The returned `mergeMap` feeds `fixupBlocksAfterDedup`.
|
|
13
12
|
*/
|
|
14
13
|
export function deduplicateCrossLensFindings(findings) {
|
|
15
14
|
return crossLensDedupe(findings, {
|
|
@@ -18,7 +17,6 @@ export function deduplicateCrossLensFindings(findings) {
|
|
|
18
17
|
survivorMutation: "clone",
|
|
19
18
|
mergeGrounding: false,
|
|
20
19
|
sortAffectedFiles: false,
|
|
21
|
-
breakOnAbsorbedSurvivor: true,
|
|
22
20
|
// Input ids come from audit-findings.json (globally unique), so id-keyed
|
|
23
21
|
// provenance is well-defined: duplicates refuse, dispositionById is emitted.
|
|
24
22
|
idDiscipline: "global",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossLensDedup.js","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIlE,4EAA4E;AAC5E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;AAIvB
|
|
1
|
+
{"version":3,"file":"crossLensDedup.js","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIlE,4EAA4E;AAC5E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;AAIvB;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAmB;IAEnB,OAAO,eAAe,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,MAAM;QACpB,yBAAyB,EAAE,IAAI;QAC/B,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,yEAAyE;QACzE,6EAA6E;QAC7E,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;gBACb,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC7B,CAAC,GAAG,IAAI,CACV,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA0B,EAC1B,QAA6B;IAE7B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAClC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -18,8 +18,8 @@ export interface ValidateArtifactActionResult {
|
|
|
18
18
|
* Beyond the per-artifact structural validator, this ALSO loads the on-disk
|
|
19
19
|
* sibling contract-pipeline artifacts (under `<artifactsDir>/intake/contract/`)
|
|
20
20
|
* and runs the SAME cross-artifact gates the plural `validate-artifacts` sweep
|
|
21
|
-
* and `next-step` enforce (
|
|
22
|
-
* in validation/contractPipelineGates.ts), substituting the in-flight `name`
|
|
21
|
+
* and `next-step` enforce (evaluateContractPipelineCrossGateOutcomes —
|
|
22
|
+
* single-sourced in validation/contractPipelineGates.ts), substituting the in-flight `name`
|
|
23
23
|
* payload for its on-disk version so the in-flight edit always wins over a
|
|
24
24
|
* stale/absent sibling. Without this, a shape-valid artifact missing its
|
|
25
25
|
* cross-artifact obligations (e.g. a test_validator_plan missing its CE-006
|
|
@@ -29,7 +29,8 @@ export interface ValidateArtifactActionResult {
|
|
|
29
29
|
export declare function runValidateArtifactAction(options: {
|
|
30
30
|
name: string;
|
|
31
31
|
file?: string;
|
|
32
|
-
root
|
|
32
|
+
/** Raw `--root` as supplied; absent means "discover it" (`resolveRootOption`). */
|
|
33
|
+
root?: string;
|
|
33
34
|
artifactsDir: string;
|
|
34
35
|
}): Promise<{
|
|
35
36
|
result: ValidateArtifactActionResult;
|
|
@@ -43,14 +44,43 @@ export declare function parseProgram(argv: string[]): void;
|
|
|
43
44
|
* non-boolean `<flag>=<other>` value fails loudly rather than silently defaulting.
|
|
44
45
|
*/
|
|
45
46
|
export declare function normalizeBooleanFlagArgv(argv: string[], flag: string): string[];
|
|
47
|
+
/**
|
|
48
|
+
* The repository root every remediate-code command acts on — the remediate DRAW
|
|
49
|
+
* of the resolution audit-code's `getRootDir` performs (`src/audit/cli/args.ts`).
|
|
50
|
+
*
|
|
51
|
+
* Two arms, and the difference between them is the whole point:
|
|
52
|
+
* • `--root <X>` supplied → `resolveRepoRoot(X)`, which honors X verbatim
|
|
53
|
+
* (only climbing out of a `.audit-tools/` segment). An explicit root is an
|
|
54
|
+
* instruction, never a hint — a sub-project inside a larger repo stays the
|
|
55
|
+
* sub-project. This is the EXPLICIT OVERRIDE for running from outside the
|
|
56
|
+
* target repository.
|
|
57
|
+
* • no `--root` → `discoverRepoRoot` from the caller's working directory: the
|
|
58
|
+
* nearest ancestor owning `.audit-tools/` or `.git`, below the HOME ceiling.
|
|
59
|
+
* So every command run from anywhere inside a repository — including from
|
|
60
|
+
* inside its own `.audit-tools/` tree — resolves the SAME root.
|
|
61
|
+
*
|
|
62
|
+
* There is no literal default root any more. Every `--root`-bearing command used
|
|
63
|
+
* to default to the string `"."`, i.e. the caller's cwd verbatim, so a run
|
|
64
|
+
* launched from `<repo>/src` rooted the remediation at `<repo>/src` and minted a
|
|
65
|
+
* second `.audit-tools/remediation` tree there — the property is now
|
|
66
|
+
* tool-guaranteed instead of something the host must remember to pass on every
|
|
67
|
+
* call (auditor-agnostic robustness). Commander leaves an absent `--root`
|
|
68
|
+
* `undefined`, which is what makes "the user passed `--root .`" distinguishable
|
|
69
|
+
* from "no `--root`" at all: the former still means the cwd, unclimbed.
|
|
70
|
+
*/
|
|
71
|
+
export declare function resolveRootOption(rawRoot: string | undefined): string;
|
|
46
72
|
/**
|
|
47
73
|
* Resolve the remediation artifacts dir. An explicit `--artifacts-dir` is
|
|
48
74
|
* honored verbatim; the unchanged commander default (`.audit-tools/remediation`)
|
|
49
|
-
* rebases onto
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
75
|
+
* rebases onto `root` via the shared `remediationArtifactsDir()` helper, so the
|
|
76
|
+
* default always lands under `<root>/.audit-tools/remediation`. The
|
|
77
|
+
* `.audit-tools/...` join literal lives only in the shared path module.
|
|
78
|
+
*
|
|
79
|
+
* `root` is the CANONICAL root — already through `resolveRootOption`, which is
|
|
80
|
+
* where the discovered-vs-explicit decision and the climb out of a drifted
|
|
81
|
+
* `.audit-tools/` cwd both happen. Anchoring here as well would put the same
|
|
82
|
+
* decision in two places, and only one of them would see whether `--root` was
|
|
83
|
+
* supplied at all.
|
|
54
84
|
*/
|
|
55
85
|
export declare function resolveArtifactsDirOption(root: string, artifactsDir: string): string;
|
|
56
86
|
export declare function runValidateCommand(deps?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,EAML,KAAK,4BAA4B,EAClC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EASL,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAiB5B,QAAA,MAAM,OAAO,SAAgB,CAAC;AAiS9B,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,4BAA4B,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,4BAA4B,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgHtE;AAiCD,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAEjD;AASD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AAYD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IACJ,GAAG,CAAC,EAAE,OAAO,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GACL,MAAM,CAcR"}
|
package/dist/remediate/index.js
CHANGED
|
@@ -4,10 +4,11 @@ import { join, dirname, resolve } from "node:path";
|
|
|
4
4
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
5
5
|
import { decideNextStep, recoverIngestHostResults } from "./steps/nextStep.js";
|
|
6
6
|
import { validateArtifacts } from "./validation/artifacts.js";
|
|
7
|
-
import { CONTRACT_PIPELINE_VALIDATORS
|
|
7
|
+
import { CONTRACT_PIPELINE_VALIDATORS } from "./validation/contractPipeline.js";
|
|
8
|
+
import { evaluateContractPipelineCrossGateOutcomes } from "./validation/contractPipelineGates.js";
|
|
8
9
|
import { CP_ARTIFACT_NAMES, isEnvelope, stampToolCreatedAt, readContractArtifact, envelopePayload, } from "./contractPipeline/artifactStore.js";
|
|
9
10
|
import { intakePaths } from "./intake.js";
|
|
10
|
-
import { applyGuidanceFile, assertCliCommandAllowedFromCwd, remediationArtifactsDir, resolveRepoRoot, readOptionalJsonFile, recoverSubmission, runTracked, runWithBlockedStepBackstop, } from "audit-tools/shared";
|
|
11
|
+
import { applyGuidanceFile, assertCliCommandAllowedFromCwd, callerWorkingDirectory, discoverRepoRoot, remediationArtifactsDir, resolveRepoRoot, readOptionalJsonFile, recoverSubmission, runTracked, runWithBlockedStepBackstop, } from "audit-tools/shared";
|
|
11
12
|
import { writeBlockedStep } from "./steps/stepWriter.js";
|
|
12
13
|
import { remediationSubmissionBinding, } from "./steps/dispatch/hostHandoff.js";
|
|
13
14
|
// src/remediate/index.ts (source) or dist/remediate/index.js (built) → three
|
|
@@ -22,6 +23,17 @@ program
|
|
|
22
23
|
.name("remediate-code")
|
|
23
24
|
.description("Autonomous remediation orchestrator")
|
|
24
25
|
.version(pkgVersion);
|
|
26
|
+
/**
|
|
27
|
+
* The ONE `--root` help string, shared by every command that declares the
|
|
28
|
+
* option. Five hand-kept copies of the same sentence is the duplication tell:
|
|
29
|
+
* they drift one at a time, and `--help` then documents the same flag
|
|
30
|
+
* differently depending on which subcommand the operator asked.
|
|
31
|
+
*
|
|
32
|
+
* Note what it does NOT say: there is no literal default. See
|
|
33
|
+
* `resolveRootOption` for the two arms the absent value takes.
|
|
34
|
+
*/
|
|
35
|
+
const ROOT_OPTION_DESCRIPTION = "Repository root (default: the repository the working directory is in — the nearest ancestor owning .audit-tools/ or .git). " +
|
|
36
|
+
"Pass it only to target a repository you are not inside, or a sub-project inside a larger one.";
|
|
25
37
|
/**
|
|
26
38
|
* Worker-safe subcommands: the only commands a dispatched worker may run from
|
|
27
39
|
* inside a tool-created node worktree (result-scoped validators — nothing that
|
|
@@ -49,7 +61,7 @@ program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
|
49
61
|
program
|
|
50
62
|
.command("next-step")
|
|
51
63
|
.description("Write and print one backend-rendered remediation step")
|
|
52
|
-
.option("--root <path>",
|
|
64
|
+
.option("--root <path>", ROOT_OPTION_DESCRIPTION)
|
|
53
65
|
.option("--artifacts-dir <path>", "Artifacts directory", ".audit-tools/remediation")
|
|
54
66
|
// Repeatable: each `--input <path>` accumulates into a string[] via a collect
|
|
55
67
|
// reducer (NOT a variadic `<path...>`, which would greedily swallow following
|
|
@@ -64,7 +76,8 @@ program
|
|
|
64
76
|
.option("--finalize-closing", "Finalize a closing remediation state from a generated close_run step")
|
|
65
77
|
.option("--force-replan", "Rebuild the remediation plan from the existing intake artifacts")
|
|
66
78
|
.action(async (options) => {
|
|
67
|
-
const
|
|
79
|
+
const root = resolveRootOption(options.root);
|
|
80
|
+
const artifactsDir = resolveArtifactsDirOption(root, options.artifactsDir);
|
|
68
81
|
// Terminal-exit backstop (backlog: abnormal-exit no-step-contract), the
|
|
69
82
|
// remediate DRAW of the shared mechanism audit-code's cmdNextStep uses: any
|
|
70
83
|
// throw below writes a blocked step naming the cause before propagating, so
|
|
@@ -78,14 +91,14 @@ program
|
|
|
78
91
|
applyGuidanceFile(artifactsDir, options.guidanceFile);
|
|
79
92
|
}
|
|
80
93
|
return withBackendLogsOnStderr(() => decideNextStep({
|
|
81
|
-
root
|
|
94
|
+
root,
|
|
82
95
|
artifactsDir,
|
|
83
96
|
input: options.input,
|
|
84
97
|
guidanceFileSupplied: Boolean(options.guidanceFile),
|
|
85
98
|
finalizeClosing: options.finalizeClosing === true,
|
|
86
99
|
forceReplan: options.forceReplan === true,
|
|
87
100
|
}));
|
|
88
|
-
}, (reason) => writeBlockedStep({ root
|
|
101
|
+
}, (reason) => writeBlockedStep({ root, artifactsDir, reason }));
|
|
89
102
|
console.log(JSON.stringify(step, null, 2));
|
|
90
103
|
});
|
|
91
104
|
// The four installer verbs are intercepted by the remediate-code bin BEFORE the
|
|
@@ -122,7 +135,7 @@ for (const [verb, summary] of BIN_ROUTED_INSTALLER_VERBS) {
|
|
|
122
135
|
program
|
|
123
136
|
.command("recover-submission")
|
|
124
137
|
.description("Re-land a host submission that was mangled, through the same validator the normal lane runs")
|
|
125
|
-
.option("--root <path>",
|
|
138
|
+
.option("--root <path>", ROOT_OPTION_DESCRIPTION)
|
|
126
139
|
.option("--artifacts-dir <path>", "Artifacts directory", ".audit-tools/remediation")
|
|
127
140
|
.requiredOption("--run-id <id>", "The run the work item belongs to")
|
|
128
141
|
.requiredOption("--submission-id <id>", "The work item id the submission answers")
|
|
@@ -131,8 +144,8 @@ program
|
|
|
131
144
|
// Deliberately the ONLY new verb: the ordinary lane needs no command at all
|
|
132
145
|
// (the host writes a file at a tool-named path), so the fragile argv surface
|
|
133
146
|
// is paid only on the rare rescue, by an operator at a terminal.
|
|
134
|
-
const root =
|
|
135
|
-
const artifactsDir = resolveArtifactsDirOption(
|
|
147
|
+
const root = resolveRootOption(options.root);
|
|
148
|
+
const artifactsDir = resolveArtifactsDirOption(root, options.artifactsDir);
|
|
136
149
|
const binding = await remediationSubmissionBinding({
|
|
137
150
|
root,
|
|
138
151
|
artifactsDir,
|
|
@@ -168,18 +181,19 @@ program
|
|
|
168
181
|
program
|
|
169
182
|
.command("recover-ingest")
|
|
170
183
|
.description("Ingest landed host results whose trusted workload baseline was ORPHANED by a history rewrite (every other corroboration check still applies)")
|
|
171
|
-
.option("--root <path>",
|
|
184
|
+
.option("--root <path>", ROOT_OPTION_DESCRIPTION)
|
|
172
185
|
.option("--artifacts-dir <path>", "Artifacts directory", ".audit-tools/remediation")
|
|
173
186
|
.requiredOption("--run-id <id>", "The run whose workload results are ingested")
|
|
174
187
|
.action(async (options) => {
|
|
175
188
|
// An operator-explicit verb, exactly like recover-submission: the ordinary
|
|
176
189
|
// lane needs no command (next-step ingests), so the relaxed evidence bar is
|
|
177
190
|
// never reachable by a host that merely calls the normal loop.
|
|
191
|
+
const root = resolveRootOption(options.root);
|
|
178
192
|
let summary;
|
|
179
193
|
try {
|
|
180
194
|
summary = await recoverIngestHostResults({
|
|
181
|
-
root
|
|
182
|
-
artifactsDir: resolveArtifactsDirOption(
|
|
195
|
+
root,
|
|
196
|
+
artifactsDir: resolveArtifactsDirOption(root, options.artifactsDir),
|
|
183
197
|
runId: options.runId,
|
|
184
198
|
});
|
|
185
199
|
}
|
|
@@ -209,10 +223,11 @@ program
|
|
|
209
223
|
program
|
|
210
224
|
.command("validate-artifacts")
|
|
211
225
|
.description("Validate remediation runtime artifacts")
|
|
212
|
-
.option("--root <path>",
|
|
226
|
+
.option("--root <path>", ROOT_OPTION_DESCRIPTION)
|
|
213
227
|
.option("--artifacts-dir <path>", "Artifacts directory", ".audit-tools/remediation")
|
|
214
228
|
.action(async (options) => {
|
|
215
|
-
const
|
|
229
|
+
const root = resolveRootOption(options.root);
|
|
230
|
+
const result = await validateArtifacts(resolveArtifactsDirOption(root, options.artifactsDir), root);
|
|
216
231
|
console.log(JSON.stringify(result, null, 2));
|
|
217
232
|
process.exit(result.status === "ok" ? 0 : 1);
|
|
218
233
|
});
|
|
@@ -224,8 +239,8 @@ program
|
|
|
224
239
|
* Beyond the per-artifact structural validator, this ALSO loads the on-disk
|
|
225
240
|
* sibling contract-pipeline artifacts (under `<artifactsDir>/intake/contract/`)
|
|
226
241
|
* and runs the SAME cross-artifact gates the plural `validate-artifacts` sweep
|
|
227
|
-
* and `next-step` enforce (
|
|
228
|
-
* in validation/contractPipelineGates.ts), substituting the in-flight `name`
|
|
242
|
+
* and `next-step` enforce (evaluateContractPipelineCrossGateOutcomes —
|
|
243
|
+
* single-sourced in validation/contractPipelineGates.ts), substituting the in-flight `name`
|
|
229
244
|
* payload for its on-disk version so the in-flight edit always wins over a
|
|
230
245
|
* stale/absent sibling. Without this, a shape-valid artifact missing its
|
|
231
246
|
* cross-artifact obligations (e.g. a test_validator_plan missing its CE-006
|
|
@@ -274,8 +289,8 @@ export async function runValidateArtifactAction(options) {
|
|
|
274
289
|
// matches ingest: a host payload without a timestamp is valid here too (B4).
|
|
275
290
|
const payload = stampToolCreatedAt(unwrapped, new Date().toISOString());
|
|
276
291
|
const structuralIssues = validator(payload, name);
|
|
277
|
-
const root =
|
|
278
|
-
const artifactsDir = resolveArtifactsDirOption(
|
|
292
|
+
const root = resolveRootOption(options.root);
|
|
293
|
+
const artifactsDir = resolveArtifactsDirOption(root, options.artifactsDir);
|
|
279
294
|
let crossGateIssues;
|
|
280
295
|
try {
|
|
281
296
|
const payloads = new Map();
|
|
@@ -289,11 +304,11 @@ export async function runValidateArtifactAction(options) {
|
|
|
289
304
|
// in-flight content is what must be gated, not a possibly-stale sibling file.
|
|
290
305
|
payloads.set(name, payload);
|
|
291
306
|
const findingEnumeration = await readOptionalJsonFile(intakePaths(artifactsDir).findingEnumeration);
|
|
292
|
-
crossGateIssues =
|
|
307
|
+
crossGateIssues = evaluateContractPipelineCrossGateOutcomes({
|
|
293
308
|
payloads,
|
|
294
309
|
findingEnumeration,
|
|
295
310
|
root,
|
|
296
|
-
}).
|
|
311
|
+
}).flatMap((outcome) => outcome.issues);
|
|
297
312
|
}
|
|
298
313
|
catch (err) {
|
|
299
314
|
// readContractArtifact / readOptionalJsonFile throw on a corrupt (malformed-
|
|
@@ -348,7 +363,7 @@ program
|
|
|
348
363
|
.description("Validate a single contract-pipeline artifact payload against its contract (write-time self-check)")
|
|
349
364
|
.requiredOption("--name <name>", "Contract-pipeline artifact name (e.g. obligation_ledger, test_validator_plan)")
|
|
350
365
|
.option("--file <path>", "Path to the artifact JSON file (defaults to stdin)")
|
|
351
|
-
.option("--root <path>",
|
|
366
|
+
.option("--root <path>", ROOT_OPTION_DESCRIPTION)
|
|
352
367
|
.option("--artifacts-dir <path>", "Artifacts directory", ".audit-tools/remediation")
|
|
353
368
|
.action(async (options) => {
|
|
354
369
|
const { result, exitCode } = await runValidateArtifactAction(options);
|
|
@@ -400,18 +415,51 @@ async function withBackendLogsOnStderr(fn) {
|
|
|
400
415
|
console.log = originalLog;
|
|
401
416
|
}
|
|
402
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* The repository root every remediate-code command acts on — the remediate DRAW
|
|
420
|
+
* of the resolution audit-code's `getRootDir` performs (`src/audit/cli/args.ts`).
|
|
421
|
+
*
|
|
422
|
+
* Two arms, and the difference between them is the whole point:
|
|
423
|
+
* • `--root <X>` supplied → `resolveRepoRoot(X)`, which honors X verbatim
|
|
424
|
+
* (only climbing out of a `.audit-tools/` segment). An explicit root is an
|
|
425
|
+
* instruction, never a hint — a sub-project inside a larger repo stays the
|
|
426
|
+
* sub-project. This is the EXPLICIT OVERRIDE for running from outside the
|
|
427
|
+
* target repository.
|
|
428
|
+
* • no `--root` → `discoverRepoRoot` from the caller's working directory: the
|
|
429
|
+
* nearest ancestor owning `.audit-tools/` or `.git`, below the HOME ceiling.
|
|
430
|
+
* So every command run from anywhere inside a repository — including from
|
|
431
|
+
* inside its own `.audit-tools/` tree — resolves the SAME root.
|
|
432
|
+
*
|
|
433
|
+
* There is no literal default root any more. Every `--root`-bearing command used
|
|
434
|
+
* to default to the string `"."`, i.e. the caller's cwd verbatim, so a run
|
|
435
|
+
* launched from `<repo>/src` rooted the remediation at `<repo>/src` and minted a
|
|
436
|
+
* second `.audit-tools/remediation` tree there — the property is now
|
|
437
|
+
* tool-guaranteed instead of something the host must remember to pass on every
|
|
438
|
+
* call (auditor-agnostic robustness). Commander leaves an absent `--root`
|
|
439
|
+
* `undefined`, which is what makes "the user passed `--root .`" distinguishable
|
|
440
|
+
* from "no `--root`" at all: the former still means the cwd, unclimbed.
|
|
441
|
+
*/
|
|
442
|
+
export function resolveRootOption(rawRoot) {
|
|
443
|
+
return rawRoot === undefined
|
|
444
|
+
? discoverRepoRoot(callerWorkingDirectory())
|
|
445
|
+
: resolveRepoRoot(rawRoot);
|
|
446
|
+
}
|
|
403
447
|
/**
|
|
404
448
|
* Resolve the remediation artifacts dir. An explicit `--artifacts-dir` is
|
|
405
449
|
* honored verbatim; the unchanged commander default (`.audit-tools/remediation`)
|
|
406
|
-
* rebases onto
|
|
407
|
-
*
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
450
|
+
* rebases onto `root` via the shared `remediationArtifactsDir()` helper, so the
|
|
451
|
+
* default always lands under `<root>/.audit-tools/remediation`. The
|
|
452
|
+
* `.audit-tools/...` join literal lives only in the shared path module.
|
|
453
|
+
*
|
|
454
|
+
* `root` is the CANONICAL root — already through `resolveRootOption`, which is
|
|
455
|
+
* where the discovered-vs-explicit decision and the climb out of a drifted
|
|
456
|
+
* `.audit-tools/` cwd both happen. Anchoring here as well would put the same
|
|
457
|
+
* decision in two places, and only one of them would see whether `--root` was
|
|
458
|
+
* supplied at all.
|
|
411
459
|
*/
|
|
412
460
|
export function resolveArtifactsDirOption(root, artifactsDir) {
|
|
413
461
|
return artifactsDir === ".audit-tools/remediation"
|
|
414
|
-
? remediationArtifactsDir(
|
|
462
|
+
? remediationArtifactsDir(root)
|
|
415
463
|
: resolve(artifactsDir);
|
|
416
464
|
}
|
|
417
465
|
export function runValidateCommand(deps = {}) {
|