audit-tools 0.51.7 → 0.51.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit/clarification/blastRadius.d.ts +17 -16
- package/dist/audit/clarification/blastRadius.d.ts.map +1 -1
- package/dist/audit/clarification/blastRadius.js +48 -44
- package/dist/audit/clarification/blastRadius.js.map +1 -1
- package/dist/audit/clarification/dials.d.ts +4 -4
- package/dist/audit/clarification/dials.d.ts.map +1 -1
- package/dist/audit/clarification/dials.js +1 -0
- package/dist/audit/clarification/dials.js.map +1 -1
- package/dist/audit/clarification/partition.d.ts +12 -21
- package/dist/audit/clarification/partition.d.ts.map +1 -1
- package/dist/audit/clarification/partition.js +52 -59
- package/dist/audit/clarification/partition.js.map +1 -1
- package/dist/audit/clarification/riskGate.d.ts +2 -2
- package/dist/audit/clarification/riskGate.d.ts.map +1 -1
- package/dist/audit/clarification/riskGate.js +1 -0
- package/dist/audit/clarification/riskGate.js.map +1 -1
- package/dist/audit/clarification/voiQueue.d.ts +3 -3
- package/dist/audit/clarification/voiQueue.d.ts.map +1 -1
- package/dist/audit/clarification/voiQueue.js +1 -0
- package/dist/audit/clarification/voiQueue.js.map +1 -1
- package/dist/audit/cli/auditStep.d.ts +14 -2
- package/dist/audit/cli/auditStep.d.ts.map +1 -1
- package/dist/audit/cli/auditStep.js +13 -5
- package/dist/audit/cli/auditStep.js.map +1 -1
- package/dist/audit/cli/charterClarificationPrompt.d.ts +6 -9
- package/dist/audit/cli/charterClarificationPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterClarificationPrompt.js +35 -47
- package/dist/audit/cli/charterClarificationPrompt.js.map +1 -1
- package/dist/audit/cli/charterComparisonPrompt.d.ts +14 -0
- package/dist/audit/cli/charterComparisonPrompt.d.ts.map +1 -0
- package/dist/audit/cli/charterComparisonPrompt.js +111 -0
- package/dist/audit/cli/charterComparisonPrompt.js.map +1 -0
- package/dist/audit/cli/charterExtractionPrompt.d.ts +14 -17
- package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterExtractionPrompt.js +81 -104
- package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
- package/dist/audit/cli/charterFidelityPrompt.d.ts +14 -0
- package/dist/audit/cli/charterFidelityPrompt.d.ts.map +1 -0
- package/dist/audit/cli/charterFidelityPrompt.js +58 -0
- package/dist/audit/cli/charterFidelityPrompt.js.map +1 -0
- package/dist/audit/cli/conceptualDispatch.d.ts +39 -6
- package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
- package/dist/audit/cli/conceptualDispatch.js +59 -12
- package/dist/audit/cli/conceptualDispatch.js.map +1 -1
- package/dist/audit/cli/confirmIntentStep.d.ts.map +1 -1
- package/dist/audit/cli/confirmIntentStep.js +46 -2
- package/dist/audit/cli/confirmIntentStep.js.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts +18 -6
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +525 -67
- package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
- package/dist/audit/cli/fanoutLanes.d.ts +24 -0
- package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
- package/dist/audit/cli/fanoutLanes.js +9 -1
- package/dist/audit/cli/fanoutLanes.js.map +1 -1
- package/dist/audit/cli/foldTransaction.d.ts.map +1 -1
- package/dist/audit/cli/foldTransaction.js +14 -3
- package/dist/audit/cli/foldTransaction.js.map +1 -1
- package/dist/audit/cli/forceSynthesisCommand.d.ts.map +1 -1
- package/dist/audit/cli/forceSynthesisCommand.js +4 -1
- package/dist/audit/cli/forceSynthesisCommand.js.map +1 -1
- package/dist/audit/cli/intakeCommand.d.ts.map +1 -1
- package/dist/audit/cli/intakeCommand.js +1 -0
- package/dist/audit/cli/intakeCommand.js.map +1 -1
- package/dist/audit/cli/laneSubmissions.d.ts +18 -12
- package/dist/audit/cli/laneSubmissions.d.ts.map +1 -1
- package/dist/audit/cli/laneSubmissions.js +40 -4
- package/dist/audit/cli/laneSubmissions.js.map +1 -1
- package/dist/audit/cli/laneValidators.d.ts.map +1 -1
- package/dist/audit/cli/laneValidators.js +14 -14
- package/dist/audit/cli/laneValidators.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts +7 -0
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +206 -31
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +92 -28
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +363 -126
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/prompts.d.ts +10 -0
- package/dist/audit/cli/prompts.d.ts.map +1 -1
- package/dist/audit/cli/prompts.js +3 -1
- package/dist/audit/cli/prompts.js.map +1 -1
- package/dist/audit/cli/reviewRun.d.ts +12 -0
- package/dist/audit/cli/reviewRun.d.ts.map +1 -1
- package/dist/audit/cli/reviewRun.js +242 -29
- package/dist/audit/cli/reviewRun.js.map +1 -1
- package/dist/audit/cli/sampleRunCommand.d.ts +12 -4
- package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.d.ts +9 -0
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.js +71 -30
- package/dist/audit/cli/semanticReviewStep.js.map +1 -1
- package/dist/audit/cli/statusCommand.d.ts.map +1 -1
- package/dist/audit/cli/statusCommand.js +29 -66
- package/dist/audit/cli/statusCommand.js.map +1 -1
- package/dist/audit/cli/stepScaffold.d.ts +43 -2
- package/dist/audit/cli/stepScaffold.d.ts.map +1 -1
- package/dist/audit/cli/stepScaffold.js +24 -10
- package/dist/audit/cli/stepScaffold.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +52 -29
- package/dist/audit/cli/steps.d.ts.map +1 -1
- package/dist/audit/cli/steps.js +44 -14
- package/dist/audit/cli/steps.js.map +1 -1
- package/dist/audit/cli/synthesizeCommand.d.ts.map +1 -1
- package/dist/audit/cli/synthesizeCommand.js +4 -1
- package/dist/audit/cli/synthesizeCommand.js.map +1 -1
- package/dist/audit/contracts/workerSchemas.d.ts +65 -16
- package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
- package/dist/audit/contracts/workerSchemas.js +89 -8
- package/dist/audit/contracts/workerSchemas.js.map +1 -1
- package/dist/audit/contracts/wrapperResponse.d.ts +14 -21
- package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -1
- package/dist/audit/contracts/wrapperResponse.js +0 -1
- package/dist/audit/contracts/wrapperResponse.js.map +1 -1
- package/dist/audit/decompose/findings.d.ts.map +1 -1
- package/dist/audit/decompose/findings.js +10 -2
- package/dist/audit/decompose/findings.js.map +1 -1
- package/dist/audit/extractors/designAssessment.d.ts.map +1 -1
- package/dist/audit/extractors/designAssessment.js +13 -4
- 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 +17 -5
- package/dist/audit/extractors/disposition.js.map +1 -1
- package/dist/audit/extractors/graph.d.ts +1 -1
- package/dist/audit/extractors/graph.js +1 -1
- package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
- package/dist/audit/extractors/graphRoutes.js +224 -17
- package/dist/audit/extractors/graphRoutes.js.map +1 -1
- package/dist/audit/extractors/leadLineage.d.ts +10 -0
- package/dist/audit/extractors/leadLineage.d.ts.map +1 -0
- package/dist/audit/extractors/leadLineage.js +44 -0
- package/dist/audit/extractors/leadLineage.js.map +1 -0
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +25 -8
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/io/runArtifacts.d.ts +76 -1
- package/dist/audit/io/runArtifacts.d.ts.map +1 -1
- package/dist/audit/io/runArtifacts.js +113 -20
- package/dist/audit/io/runArtifacts.js.map +1 -1
- package/dist/audit/io/toolingManifest.d.ts +15 -0
- package/dist/audit/io/toolingManifest.d.ts.map +1 -1
- package/dist/audit/io/toolingManifest.js +158 -11
- package/dist/audit/io/toolingManifest.js.map +1 -1
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +30 -4
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +28 -5
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/artifactMetadata.d.ts.map +1 -1
- package/dist/audit/orchestrator/artifactMetadata.js +39 -1
- package/dist/audit/orchestrator/artifactMetadata.js.map +1 -1
- package/dist/audit/orchestrator/auditTaskUtils.d.ts.map +1 -1
- package/dist/audit/orchestrator/auditTaskUtils.js +4 -1
- package/dist/audit/orchestrator/auditTaskUtils.js.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.d.ts +11 -17
- package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.js +61 -93
- package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -1
- package/dist/audit/orchestrator/charterComparisonExecutor.d.ts +24 -0
- package/dist/audit/orchestrator/charterComparisonExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/charterComparisonExecutor.js +110 -0
- package/dist/audit/orchestrator/charterComparisonExecutor.js.map +1 -0
- package/dist/audit/orchestrator/charterExtractionExecutor.d.ts +34 -20
- package/dist/audit/orchestrator/charterExtractionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterExtractionExecutor.js +80 -106
- package/dist/audit/orchestrator/charterExtractionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/charterFidelityExecutor.d.ts +20 -0
- package/dist/audit/orchestrator/charterFidelityExecutor.d.ts.map +1 -0
- package/dist/audit/orchestrator/charterFidelityExecutor.js +76 -0
- package/dist/audit/orchestrator/charterFidelityExecutor.js.map +1 -0
- package/dist/audit/orchestrator/charterFidelityPacket.d.ts +7 -0
- package/dist/audit/orchestrator/charterFidelityPacket.d.ts.map +1 -0
- package/dist/audit/orchestrator/charterFidelityPacket.js +68 -0
- package/dist/audit/orchestrator/charterFidelityPacket.js.map +1 -0
- package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
- package/dist/audit/orchestrator/dependencyMap.js +9 -8
- package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
- package/dist/audit/orchestrator/dependencySlices.d.ts.map +1 -1
- package/dist/audit/orchestrator/dependencySlices.js +7 -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 +7 -0
- 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 +58 -19
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +6 -2
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/executors.d.ts.map +1 -1
- package/dist/audit/orchestrator/executors.js +22 -8
- package/dist/audit/orchestrator/executors.js.map +1 -1
- package/dist/audit/orchestrator/hostInputPause.js +1 -0
- package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts +40 -0
- package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointExecutor.js +32 -2
- package/dist/audit/orchestrator/intentCheckpointExecutor.js.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointGate.d.ts +5 -3
- package/dist/audit/orchestrator/intentCheckpointGate.d.ts.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointGate.js +34 -5
- package/dist/audit/orchestrator/intentCheckpointGate.js.map +1 -1
- package/dist/audit/orchestrator/intentEquivalenceExecutor.d.ts +2 -2
- package/dist/audit/orchestrator/intentInterpreter.d.ts +1 -1
- package/dist/audit/orchestrator/intentInterpreter.js +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +3 -1
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/orchestrator/obligationPolicy.d.ts +2 -1
- package/dist/audit/orchestrator/obligationPolicy.d.ts.map +1 -1
- package/dist/audit/orchestrator/obligationPolicy.js +19 -7
- package/dist/audit/orchestrator/obligationPolicy.js.map +1 -1
- package/dist/audit/orchestrator/partitionTaskGraph.d.ts.map +1 -1
- package/dist/audit/orchestrator/partitionTaskGraph.js +1 -0
- package/dist/audit/orchestrator/partitionTaskGraph.js.map +1 -1
- package/dist/audit/orchestrator/resultIngestion.d.ts.map +1 -1
- package/dist/audit/orchestrator/resultIngestion.js +3 -1
- package/dist/audit/orchestrator/resultIngestion.js.map +1 -1
- package/dist/audit/orchestrator/runtimeCommand.d.ts +72 -0
- package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -1
- package/dist/audit/orchestrator/runtimeCommand.js +177 -20
- package/dist/audit/orchestrator/runtimeCommand.js.map +1 -1
- package/dist/audit/orchestrator/scopeIndexBaseline.d.ts +56 -0
- package/dist/audit/orchestrator/scopeIndexBaseline.d.ts.map +1 -0
- package/dist/audit/orchestrator/scopeIndexBaseline.js +114 -0
- package/dist/audit/orchestrator/scopeIndexBaseline.js.map +1 -0
- package/dist/audit/orchestrator/staleness.d.ts +70 -1
- package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
- package/dist/audit/orchestrator/staleness.js +171 -21
- package/dist/audit/orchestrator/staleness.js.map +1 -1
- package/dist/audit/orchestrator/state.d.ts.map +1 -1
- package/dist/audit/orchestrator/state.js +49 -25
- package/dist/audit/orchestrator/state.js.map +1 -1
- package/dist/audit/orchestrator/structureExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/structureExecutors.js +7 -5
- package/dist/audit/orchestrator/structureExecutors.js.map +1 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js +1 -0
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts +13 -2
- package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/systemicChallengeExecutor.js +166 -12
- package/dist/audit/orchestrator/systemicChallengeExecutor.js.map +1 -1
- package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
- package/dist/audit/reporting/mergeFindings.js +6 -5
- package/dist/audit/reporting/mergeFindings.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts +117 -0
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +277 -10
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.d.ts +0 -2
- package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.js +0 -3
- package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
- package/dist/audit/systemic/coveredThemes.d.ts +28 -0
- package/dist/audit/systemic/coveredThemes.d.ts.map +1 -0
- package/dist/audit/systemic/coveredThemes.js +52 -0
- package/dist/audit/systemic/coveredThemes.js.map +1 -0
- package/dist/audit/systemic/reviewFileMap.d.ts +81 -0
- package/dist/audit/systemic/reviewFileMap.d.ts.map +1 -0
- package/dist/audit/systemic/reviewFileMap.js +169 -0
- package/dist/audit/systemic/reviewFileMap.js.map +1 -0
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js +149 -26
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -1
- package/dist/audit/systemic/systemicChallengeLoop.d.ts +44 -4
- package/dist/audit/systemic/systemicChallengeLoop.d.ts.map +1 -1
- package/dist/audit/systemic/systemicChallengeLoop.js +114 -10
- package/dist/audit/systemic/systemicChallengeLoop.js.map +1 -1
- package/dist/audit/types/auditState.d.ts +6 -6
- package/dist/audit/types/charterClarification.d.ts +9 -4
- package/dist/audit/types/charterClarification.d.ts.map +1 -1
- package/dist/audit/types/charterRegister.d.ts +48 -93
- package/dist/audit/types/charterRegister.d.ts.map +1 -1
- package/dist/audit/types/charterRegister.js +15 -26
- package/dist/audit/types/charterRegister.js.map +1 -1
- package/dist/audit/types/conceptualAdjudication.d.ts +88 -18
- package/dist/audit/types/conceptualAdjudication.d.ts.map +1 -1
- package/dist/audit/types/conceptualAdjudication.js +77 -16
- package/dist/audit/types/conceptualAdjudication.js.map +1 -1
- package/dist/audit/types/designAssessment.d.ts +8 -6
- package/dist/audit/types/designAssessment.d.ts.map +1 -1
- package/dist/audit/types/reviewPlanning.d.ts +2 -2
- package/dist/audit/types/systemicChallenge.d.ts +43 -7
- package/dist/audit/types/systemicChallenge.d.ts.map +1 -1
- package/dist/audit/types.d.ts +71 -10
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/types.js +23 -2
- package/dist/audit/types.js.map +1 -1
- package/dist/audit/validation/auditResults.d.ts +30 -0
- package/dist/audit/validation/auditResults.d.ts.map +1 -1
- package/dist/audit/validation/auditResults.js +50 -8
- package/dist/audit/validation/auditResults.js.map +1 -1
- package/dist/audit/validation/ingestIssueCodes.d.ts +1 -1
- package/dist/audit/validation/ingestIssueCodes.d.ts.map +1 -1
- package/dist/audit/validation/ingestIssueCodes.js +14 -0
- package/dist/audit/validation/ingestIssueCodes.js.map +1 -1
- package/dist/remediate/contractPipeline/artifactStore.d.ts +97 -2
- package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/artifactStore.js +163 -9
- package/dist/remediate/contractPipeline/artifactStore.js.map +1 -1
- package/dist/remediate/contractPipeline/changeClassification.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/changeClassification.js +93 -3
- package/dist/remediate/contractPipeline/changeClassification.js.map +1 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js +31 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -1
- package/dist/remediate/contractPipeline/derive.d.ts +0 -14
- package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/derive.js +52 -24
- package/dist/remediate/contractPipeline/derive.js.map +1 -1
- package/dist/remediate/contractPipeline/finalizedContractFields.d.ts +50 -0
- package/dist/remediate/contractPipeline/finalizedContractFields.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/finalizedContractFields.js +77 -0
- package/dist/remediate/contractPipeline/finalizedContractFields.js.map +1 -0
- package/dist/remediate/contractPipeline/idRegistry.d.ts +85 -0
- package/dist/remediate/contractPipeline/idRegistry.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/idRegistry.js +147 -0
- package/dist/remediate/contractPipeline/idRegistry.js.map +1 -1
- package/dist/remediate/contractPipeline/phaseCut.d.ts +13 -16
- package/dist/remediate/contractPipeline/phaseCut.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/phaseCut.js +15 -30
- package/dist/remediate/contractPipeline/phaseCut.js.map +1 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts +20 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.js +23 -7
- package/dist/remediate/contractPipeline/reviewSnapshot.js.map +1 -1
- package/dist/remediate/contractPipeline/semanticProjection.d.ts +17 -0
- package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/semanticProjection.js +6 -9
- package/dist/remediate/contractPipeline/semanticProjection.js.map +1 -1
- package/dist/remediate/contractPipeline/sketchSource.d.ts +183 -0
- package/dist/remediate/contractPipeline/sketchSource.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/sketchSource.js +255 -0
- package/dist/remediate/contractPipeline/sketchSource.js.map +1 -0
- package/dist/remediate/findingFilter.d.ts.map +1 -1
- package/dist/remediate/findingFilter.js +1 -0
- package/dist/remediate/findingFilter.js.map +1 -1
- package/dist/remediate/index.d.ts +81 -0
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +162 -53
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/intake.d.ts +43 -0
- package/dist/remediate/intake.d.ts.map +1 -1
- package/dist/remediate/intake.js +82 -13
- package/dist/remediate/intake.js.map +1 -1
- package/dist/remediate/phases/close.d.ts +33 -2
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +227 -13
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts +154 -0
- package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts.map +1 -0
- package/dist/remediate/phases/closeVerifyHeadEvidence.js +242 -0
- package/dist/remediate/phases/closeVerifyHeadEvidence.js.map +1 -0
- package/dist/remediate/state/runStatus.d.ts +35 -0
- package/dist/remediate/state/runStatus.d.ts.map +1 -0
- package/dist/remediate/state/runStatus.js +46 -0
- package/dist/remediate/state/runStatus.js.map +1 -0
- package/dist/remediate/state/store.d.ts +52 -2
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js +124 -21
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/state/types.d.ts +83 -13
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +65 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +302 -85
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +58 -21
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts +87 -2
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +344 -44
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/finalGate.d.ts +109 -5
- package/dist/remediate/steps/finalGate.d.ts.map +1 -1
- package/dist/remediate/steps/finalGate.js +135 -27
- package/dist/remediate/steps/finalGate.js.map +1 -1
- package/dist/remediate/steps/gateCommands.d.ts +167 -0
- package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
- package/dist/remediate/steps/gateCommands.js +428 -1
- package/dist/remediate/steps/gateCommands.js.map +1 -1
- package/dist/remediate/steps/intakeResolver.d.ts +2 -13
- package/dist/remediate/steps/intakeResolver.d.ts.map +1 -1
- package/dist/remediate/steps/intakeResolver.js +22 -4
- package/dist/remediate/steps/intakeResolver.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +44 -40
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +501 -106
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/stepWriter.d.ts +1 -1
- package/dist/remediate/steps/stepWriter.d.ts.map +1 -1
- package/dist/remediate/steps/stepWriter.js +1 -0
- package/dist/remediate/steps/stepWriter.js.map +1 -1
- package/dist/remediate/steps/types.d.ts +32 -1
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js +1 -0
- package/dist/remediate/steps/types.js.map +1 -1
- package/dist/remediate/types/options.d.ts +8 -0
- package/dist/remediate/types/options.d.ts.map +1 -1
- package/dist/remediate/utils/fileIntegrity.d.ts +8 -0
- package/dist/remediate/utils/fileIntegrity.d.ts.map +1 -1
- package/dist/remediate/utils/fileIntegrity.js +12 -1
- package/dist/remediate/utils/fileIntegrity.js.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts +1 -1
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +19 -2
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipeline.js +26 -39
- package/dist/remediate/validation/contractPipeline.js.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts +18 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.js +33 -5
- package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.d.ts +83 -5
- package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.js +46 -14
- package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.d.ts +35 -2
- package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.js +5 -5
- 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 -0
- package/dist/shared/analyzers/candidates.js.map +1 -1
- package/dist/shared/analyzers/clippy.d.ts +9 -1
- package/dist/shared/analyzers/clippy.d.ts.map +1 -1
- package/dist/shared/analyzers/clippy.js +10 -2
- package/dist/shared/analyzers/clippy.js.map +1 -1
- package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -1
- package/dist/shared/analyzers/normalizeExternal.js +1 -0
- package/dist/shared/analyzers/normalizeExternal.js.map +1 -1
- package/dist/shared/analyzers/rubocop.d.ts +7 -1
- package/dist/shared/analyzers/rubocop.d.ts.map +1 -1
- package/dist/shared/analyzers/rubocop.js +8 -2
- package/dist/shared/analyzers/rubocop.js.map +1 -1
- package/dist/shared/analyzers/types.d.ts +24 -24
- package/dist/shared/analyzers/types.d.ts.map +1 -1
- package/dist/shared/analyzers/types.js +15 -0
- package/dist/shared/analyzers/types.js.map +1 -1
- package/dist/shared/artifactFreshness.d.ts.map +1 -1
- package/dist/shared/artifactFreshness.js +42 -7
- package/dist/shared/artifactFreshness.js.map +1 -1
- package/dist/shared/chunkByBudget.d.ts.map +1 -1
- package/dist/shared/chunkByBudget.js.map +1 -1
- package/dist/shared/continuityScore.d.ts.map +1 -1
- package/dist/shared/continuityScore.js +12 -4
- package/dist/shared/continuityScore.js.map +1 -1
- package/dist/shared/decompose/charterClarification.d.ts +49 -45
- package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
- package/dist/shared/decompose/charterClarification.js +50 -57
- package/dist/shared/decompose/charterClarification.js.map +1 -1
- package/dist/shared/decompose/charterExtraction.d.ts +616 -342
- package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
- package/dist/shared/decompose/charterExtraction.js +590 -488
- package/dist/shared/decompose/charterExtraction.js.map +1 -1
- package/dist/shared/decompose/contentCoherence.d.ts +36 -2
- package/dist/shared/decompose/contentCoherence.d.ts.map +1 -1
- package/dist/shared/decompose/contentCoherence.js +45 -5
- package/dist/shared/decompose/contentCoherence.js.map +1 -1
- package/dist/shared/decompose/modularity.d.ts +98 -1
- package/dist/shared/decompose/modularity.d.ts.map +1 -1
- package/dist/shared/decompose/modularity.js +89 -8
- package/dist/shared/decompose/modularity.js.map +1 -1
- package/dist/shared/decompose/systemicChallenge.d.ts +111 -0
- package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
- package/dist/shared/decompose/systemicChallenge.js +28 -0
- package/dist/shared/decompose/systemicChallenge.js.map +1 -1
- package/dist/shared/engine/obligationEngine.d.ts +2 -2
- package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
- package/dist/shared/engine/obligationEngine.js +8 -2
- package/dist/shared/engine/obligationEngine.js.map +1 -1
- package/dist/shared/findingSimilarity.d.ts +8 -0
- package/dist/shared/findingSimilarity.d.ts.map +1 -1
- package/dist/shared/findingSimilarity.js +10 -3
- package/dist/shared/findingSimilarity.js.map +1 -1
- package/dist/shared/findings/dedupe.d.ts +15 -0
- package/dist/shared/findings/dedupe.d.ts.map +1 -1
- package/dist/shared/findings/dedupe.js +137 -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 +14 -1
- package/dist/shared/friction/frictionRecord.js.map +1 -1
- package/dist/shared/friction/triage.d.ts +4 -0
- package/dist/shared/friction/triage.d.ts.map +1 -1
- package/dist/shared/friction/triage.js +41 -29
- package/dist/shared/friction/triage.js.map +1 -1
- package/dist/shared/git.d.ts +14 -0
- package/dist/shared/git.d.ts.map +1 -1
- package/dist/shared/git.js +22 -0
- package/dist/shared/git.js.map +1 -1
- package/dist/shared/index.d.ts +42 -38
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +35 -23
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/intent/clauseBoundaries.d.ts +75 -0
- package/dist/shared/intent/clauseBoundaries.d.ts.map +1 -0
- package/dist/shared/intent/clauseBoundaries.js +134 -0
- package/dist/shared/intent/clauseBoundaries.js.map +1 -0
- package/dist/shared/intent/clauseInterpreter.d.ts +11 -5
- package/dist/shared/intent/clauseInterpreter.d.ts.map +1 -1
- package/dist/shared/intent/clauseInterpreter.js +16 -41
- package/dist/shared/intent/clauseInterpreter.js.map +1 -1
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts +11 -0
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts.map +1 -1
- package/dist/shared/intent/freeFormIntentInterpreter.js +31 -17
- package/dist/shared/intent/freeFormIntentInterpreter.js.map +1 -1
- package/dist/shared/io/fileLock.d.ts.map +1 -1
- package/dist/shared/io/fileLock.js +18 -6
- package/dist/shared/io/fileLock.js.map +1 -1
- package/dist/shared/io/frictionCapture.d.ts +25 -5
- package/dist/shared/io/frictionCapture.d.ts.map +1 -1
- package/dist/shared/io/frictionCapture.js +30 -9
- package/dist/shared/io/frictionCapture.js.map +1 -1
- package/dist/shared/io/schemaVersion.d.ts +4 -3
- package/dist/shared/io/schemaVersion.d.ts.map +1 -1
- package/dist/shared/io/schemaVersion.js +27 -4
- package/dist/shared/io/schemaVersion.js.map +1 -1
- package/dist/shared/io/stepContractWriter.d.ts +38 -4
- package/dist/shared/io/stepContractWriter.d.ts.map +1 -1
- package/dist/shared/io/stepContractWriter.js +59 -1
- package/dist/shared/io/stepContractWriter.js.map +1 -1
- package/dist/shared/loopCorePaths.d.ts.map +1 -1
- package/dist/shared/loopCorePaths.js +8 -0
- package/dist/shared/loopCorePaths.js.map +1 -1
- package/dist/shared/opencodePermissions.d.ts +27 -3
- package/dist/shared/opencodePermissions.d.ts.map +1 -1
- package/dist/shared/opencodePermissions.js +77 -26
- package/dist/shared/opencodePermissions.js.map +1 -1
- package/dist/shared/prompts.d.ts +12 -1
- package/dist/shared/prompts.d.ts.map +1 -1
- package/dist/shared/prompts.js +11 -1
- package/dist/shared/prompts.js.map +1 -1
- package/dist/shared/reReview/projectionDiff.d.ts +13 -0
- package/dist/shared/reReview/projectionDiff.d.ts.map +1 -1
- package/dist/shared/reReview/projectionDiff.js +1 -1
- package/dist/shared/reReview/projectionDiff.js.map +1 -1
- package/dist/shared/reporting/findingDisplay.d.ts +7 -0
- package/dist/shared/reporting/findingDisplay.d.ts.map +1 -1
- package/dist/shared/reporting/findingDisplay.js +8 -1
- package/dist/shared/reporting/findingDisplay.js.map +1 -1
- package/dist/shared/steps/stepEmissionScaffold.d.ts +15 -3
- package/dist/shared/steps/stepEmissionScaffold.d.ts.map +1 -1
- package/dist/shared/steps/stepEmissionScaffold.js +8 -6
- package/dist/shared/steps/stepEmissionScaffold.js.map +1 -1
- package/dist/shared/submission/hostHandoffCore.d.ts +37 -12
- package/dist/shared/submission/hostHandoffCore.d.ts.map +1 -1
- package/dist/shared/submission/hostHandoffCore.js +81 -18
- package/dist/shared/submission/hostHandoffCore.js.map +1 -1
- package/dist/shared/submission/hostResultOutcomes.d.ts +70 -1
- package/dist/shared/submission/hostResultOutcomes.d.ts.map +1 -1
- package/dist/shared/submission/hostResultOutcomes.js +66 -1
- package/dist/shared/submission/hostResultOutcomes.js.map +1 -1
- package/dist/shared/submission/submissionLedger.d.ts +86 -1
- package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
- package/dist/shared/submission/submissionLedger.js +108 -0
- package/dist/shared/submission/submissionLedger.js.map +1 -1
- package/dist/shared/submission/submissionScan.d.ts.map +1 -1
- package/dist/shared/submission/submissionScan.js +1 -0
- package/dist/shared/submission/submissionScan.js.map +1 -1
- package/dist/shared/tooling/analyzerDeps.d.ts +14 -0
- package/dist/shared/tooling/analyzerDeps.d.ts.map +1 -1
- package/dist/shared/tooling/analyzerDeps.js +23 -0
- package/dist/shared/tooling/analyzerDeps.js.map +1 -1
- package/dist/shared/tooling/commandShape.d.ts +35 -1
- package/dist/shared/tooling/commandShape.d.ts.map +1 -1
- package/dist/shared/tooling/commandShape.js +66 -4
- package/dist/shared/tooling/commandShape.js.map +1 -1
- package/dist/shared/tooling/exec.d.ts +62 -4
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +127 -8
- package/dist/shared/tooling/exec.js.map +1 -1
- package/dist/shared/types/charter.d.ts +674 -156
- package/dist/shared/types/charter.d.ts.map +1 -1
- package/dist/shared/types/charter.js +172 -118
- package/dist/shared/types/charter.js.map +1 -1
- package/dist/shared/types/closingActions.d.ts +25 -0
- package/dist/shared/types/closingActions.d.ts.map +1 -1
- package/dist/shared/types/closingActions.js +26 -0
- package/dist/shared/types/closingActions.js.map +1 -1
- package/dist/shared/types/contractPipeline/obligations.d.ts +63 -2
- package/dist/shared/types/contractPipeline/obligations.d.ts.map +1 -1
- package/dist/shared/types/contractPipeline/obligations.js +51 -0
- package/dist/shared/types/contractPipeline/obligations.js.map +1 -1
- package/dist/shared/types/contractPipeline.d.ts +1 -0
- package/dist/shared/types/contractPipeline.d.ts.map +1 -1
- package/dist/shared/types/contractPipeline.js +1 -0
- package/dist/shared/types/contractPipeline.js.map +1 -1
- package/dist/shared/types/contractPropertyShapes.d.ts +34 -0
- package/dist/shared/types/contractPropertyShapes.d.ts.map +1 -0
- package/dist/shared/types/contractPropertyShapes.js +255 -0
- package/dist/shared/types/contractPropertyShapes.js.map +1 -0
- package/dist/shared/types/finding.d.ts +376 -18
- package/dist/shared/types/finding.d.ts.map +1 -1
- package/dist/shared/types/finding.js +111 -0
- package/dist/shared/types/finding.js.map +1 -1
- package/dist/shared/types/intentCheckpoint.d.ts +214 -2
- package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
- package/dist/shared/types/intentCheckpoint.js +273 -0
- package/dist/shared/types/intentCheckpoint.js.map +1 -1
- package/dist/shared/types/intentInterpretation.d.ts +1 -1
- package/dist/shared/types/intentInterpretation.js +1 -1
- package/dist/shared/types/remediationOutcome.d.ts +294 -30
- package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
- package/dist/shared/types/remediationOutcome.js +96 -7
- package/dist/shared/types/remediationOutcome.js.map +1 -1
- package/dist/shared/types/stepContract.d.ts +47 -0
- package/dist/shared/types/stepContract.d.ts.map +1 -1
- package/dist/shared/types/stepContract.js +113 -0
- package/dist/shared/types/stepContract.js.map +1 -1
- package/dist/shared/validation/charterGate.d.ts +13 -28
- package/dist/shared/validation/charterGate.d.ts.map +1 -1
- package/dist/shared/validation/charterGate.js +13 -35
- package/dist/shared/validation/charterGate.js.map +1 -1
- package/dist/shared/validation/contractConstructionSites.d.ts +116 -0
- package/dist/shared/validation/contractConstructionSites.d.ts.map +1 -0
- package/dist/shared/validation/contractConstructionSites.js +277 -0
- package/dist/shared/validation/contractConstructionSites.js.map +1 -0
- package/dist/shared/validation/designFindingGrounding.d.ts +33 -4
- package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/designFindingGrounding.js +40 -6
- package/dist/shared/validation/designFindingGrounding.js.map +1 -1
- package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/findingGrounding.js +11 -1
- package/dist/shared/validation/findingGrounding.js.map +1 -1
- package/dist/shared/validation/findingsReport.d.ts.map +1 -1
- package/dist/shared/validation/findingsReport.js +5 -0
- package/dist/shared/validation/findingsReport.js.map +1 -1
- package/docs/audit-pkg/contracts.md +8 -2
- package/opencode.json +29 -29
- package/package.json +16 -3
- package/schemas/audit-code-v1alpha1.schema.json +0 -4
- package/scripts/audit/postinstall.mjs +81 -96
- package/scripts/remediate/postinstall.mjs +43 -83
- package/scripts/shared/host-asset-plan.mjs +176 -0
- package/scripts/shared/install-host-assets.mjs +44 -1
- package/scripts/shared/primitives.mjs +89 -0
- package/skills/audit-code/SKILL.md +4 -4
- package/skills/audit-code/audit-code.prompt.md +14 -10
- package/skills/remediate-code/SKILL.md +9 -5
- package/skills/remediate-code/remediate-code.prompt.md +11 -4
- package/wrapper/audit-code-wrapper-build.mjs +6 -3
- package/dist/audit/cli/charterDeltaPrompt.d.ts +0 -18
- package/dist/audit/cli/charterDeltaPrompt.d.ts.map +0 -1
- package/dist/audit/cli/charterDeltaPrompt.js +0 -150
- package/dist/audit/cli/charterDeltaPrompt.js.map +0 -1
- package/dist/audit/orchestrator/charterDeltaExecutor.d.ts +0 -24
- package/dist/audit/orchestrator/charterDeltaExecutor.d.ts.map +0 -1
- package/dist/audit/orchestrator/charterDeltaExecutor.js +0 -128
- package/dist/audit/orchestrator/charterDeltaExecutor.js.map +0 -1
- package/dist/audit/supervisor/runLedger.d.ts +0 -3
- package/dist/audit/supervisor/runLedger.d.ts.map +0 -1
- package/dist/audit/supervisor/runLedger.js +0 -69
- package/dist/audit/supervisor/runLedger.js.map +0 -1
- package/dist/shared/types/executionRecord.d.ts +0 -58
- package/dist/shared/types/executionRecord.d.ts.map +0 -1
- package/dist/shared/types/executionRecord.js +0 -26
- package/dist/shared/types/executionRecord.js.map +0 -1
- package/dist/shared/types/runLedger.d.ts +0 -17
- package/dist/shared/types/runLedger.d.ts.map +0 -1
- package/dist/shared/types/runLedger.js +0 -7
- package/dist/shared/types/runLedger.js.map +0 -1
|
@@ -1,14 +1,21 @@
|
|
|
1
|
+
import { access, mkdir, readdir } from "node:fs/promises";
|
|
1
2
|
import { join } from "node:path";
|
|
2
|
-
import { isFileMissingError, readJsonFile } from "audit-tools/shared";
|
|
3
|
+
import { assertSubmissionRunId, isFileMissingError, readJsonFile, writeJsonFile, } from "audit-tools/shared";
|
|
3
4
|
import { withArtifactTreeHold } from "./auditStep.js";
|
|
4
5
|
import { loadArtifactBundle, writeCoreArtifacts, } from "../io/artifacts.js";
|
|
5
6
|
import { deriveAuditState } from "../orchestrator/state.js";
|
|
6
|
-
import {
|
|
7
|
+
import { deriveReviewRunId, getRunPaths, isLegacyClockRunId, openReviewWavePath, reviewWaveClosedPath, reviewWaveDigest, writeReviewRunFiles, } from "../io/runArtifacts.js";
|
|
7
8
|
import { buildAuditCodeHandoff, writeAuditCodeHandoffArtifacts, CURRENT_TASK_FILENAME, } from "../supervisor/operatorHandoff.js";
|
|
8
9
|
import { ActiveReviewRunSchema } from "../contracts/wrapperResponse.js";
|
|
9
10
|
import { addFileLineCountHints } from "./lineIndex.js";
|
|
10
11
|
import { buildPendingAuditTasks } from "./dispatch/packetFilter.js";
|
|
11
12
|
import { buildBlockedAuditState, buildManualReviewBlocker } from "./envelope.js";
|
|
13
|
+
/**
|
|
14
|
+
* The persisted wave counter's contract. The file sits BESIDE the runs it counts
|
|
15
|
+
* (under `runs/`) rather than inside `dispatch/`, so an artifacts dir's identity
|
|
16
|
+
* bookkeeping travels with the thing it is bookkeeping for.
|
|
17
|
+
*/
|
|
18
|
+
const OPEN_REVIEW_WAVE_CONTRACT_VERSION = "audit-open-review-wave/v1alpha1";
|
|
12
19
|
function isActiveReviewRun(value) {
|
|
13
20
|
return ActiveReviewRunSchema.safeParse(value).success;
|
|
14
21
|
}
|
|
@@ -38,10 +45,179 @@ export async function writeHandoffOnly(params) {
|
|
|
38
45
|
activeReviewRun: params.activeReviewRun,
|
|
39
46
|
}));
|
|
40
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Read the persisted wave generation.
|
|
50
|
+
*
|
|
51
|
+
* A counter file that is absent means no wave has been opened yet, and a file
|
|
52
|
+
* that is present but unreadable or mis-shaped is treated as ABSENT too — the
|
|
53
|
+
* value it carries is always PROMOTED (never served as-is), so a corrupt counter
|
|
54
|
+
* costs at most one extra promotion and never a run identity that moves
|
|
55
|
+
* underneath a worker. This read is on the fold's hot path, so it degrades
|
|
56
|
+
* rather than throwing.
|
|
57
|
+
*/
|
|
58
|
+
async function readWaveGenerationFile(artifactsDir) {
|
|
59
|
+
try {
|
|
60
|
+
const value = await readJsonFile(openReviewWavePath(artifactsDir));
|
|
61
|
+
return parseWaveGeneration(value);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function parseWaveGeneration(value) {
|
|
68
|
+
if (typeof value !== "object" || value === null)
|
|
69
|
+
return null;
|
|
70
|
+
const generation = value.generation;
|
|
71
|
+
return typeof generation === "number" &&
|
|
72
|
+
Number.isInteger(generation) &&
|
|
73
|
+
generation >= 0
|
|
74
|
+
? generation
|
|
75
|
+
: null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* How many `runs/<id>/review-run.json` manifests the artifacts dir holds. Read
|
|
79
|
+
* from the run DIRECTORIES, which are always present and never pruned, rather
|
|
80
|
+
* than from a record that could have been lost.
|
|
81
|
+
*/
|
|
82
|
+
async function countOpenedReviewRuns(artifactsDir) {
|
|
83
|
+
let entries;
|
|
84
|
+
try {
|
|
85
|
+
entries = await readdir(join(artifactsDir, "runs"), {
|
|
86
|
+
withFileTypes: true,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (isFileMissingError(error))
|
|
91
|
+
return 0;
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
const present = await Promise.all(entries
|
|
95
|
+
.filter((entry) => entry.isDirectory())
|
|
96
|
+
.map(async (entry) => (await fileExists(join(artifactsDir, "runs", entry.name, "review-run.json")))
|
|
97
|
+
? 1
|
|
98
|
+
: 0));
|
|
99
|
+
return present.reduce((total, value) => total + value, 0);
|
|
100
|
+
}
|
|
101
|
+
/** Existence without a throw, for a scan that must never abort the fold. */
|
|
102
|
+
async function fileExists(path) {
|
|
103
|
+
try {
|
|
104
|
+
await access(path);
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The generation the OPEN wave's run is derived from.
|
|
113
|
+
*
|
|
114
|
+
* The counter names a generation, in the same units `deriveReviewRunId`
|
|
115
|
+
* consumes, so the run directory it names is reachable from it
|
|
116
|
+
* (`getRunPaths(artifactsDir, deriveReviewRunId(...))`). That directory's own
|
|
117
|
+
* manifest is what proves the counter still names the open wave: present means
|
|
118
|
+
* this artifacts dir has already opened the wave the counter names, and every
|
|
119
|
+
* pause of that wave derives from it. Absent means the derivation under that
|
|
120
|
+
* counter would land on a directory that is not this wave's, and the two states
|
|
121
|
+
* that reach it are exactly the two ways the counter and the runs can disagree —
|
|
122
|
+
* an artifacts dir whose `runs/` was removed wholesale (the counter outlived the
|
|
123
|
+
* runs it named) and a `runs/` directory carried across an artifacts-dir RESET
|
|
124
|
+
* (a new audit reusing the directory: the runs outlived the counter). Both
|
|
125
|
+
* answer `runsOpen`, which is one more than the run directories on disk and
|
|
126
|
+
* therefore a directory this wave has not taken.
|
|
127
|
+
*
|
|
128
|
+
* `runsOpen` is monotone because `runs/` is never pruned and every transition
|
|
129
|
+
* here either keeps it or raises it by one — so a wave that has taken its
|
|
130
|
+
* directory keeps it for its whole life, and the counter may be rewritten at any
|
|
131
|
+
* point in that life without moving the identity underneath a worker.
|
|
132
|
+
*/
|
|
133
|
+
async function resolveWaveGeneration(artifactsDir) {
|
|
134
|
+
const runsOpen = await countOpenedReviewRuns(artifactsDir);
|
|
135
|
+
if (runsOpen === null)
|
|
136
|
+
return null;
|
|
137
|
+
const persisted = await readWaveGenerationFile(artifactsDir);
|
|
138
|
+
if (persisted === null)
|
|
139
|
+
return runsOpen;
|
|
140
|
+
const openRunId = await openedRunIdForGeneration(artifactsDir, persisted);
|
|
141
|
+
if (openRunId === null)
|
|
142
|
+
return runsOpen;
|
|
143
|
+
// The wave the counter names is on disk. It is still the OPEN wave unless its
|
|
144
|
+
// own run directory says it drained — and when it does, this pause is the next
|
|
145
|
+
// wave and must take a directory of its own.
|
|
146
|
+
return (await isWaveClosed(artifactsDir, openRunId)) ? runsOpen : persisted;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Is the wave this run belongs to fully accepted? Asked of the run's own dir.
|
|
150
|
+
*
|
|
151
|
+
* A marker that is absent, unreadable, mis-shaped, or names a different run is
|
|
152
|
+
* NOT a closure: the question is asked from the run's own directory, where the
|
|
153
|
+
* only writer is the publish of that run, so every other state means "no
|
|
154
|
+
* statement has been made" and the wave stays open. Degrading that way is the
|
|
155
|
+
* safe direction — an unread closure leaves the run where it is (a wave that
|
|
156
|
+
* publishes again is still correct), while an invented one moves the identity
|
|
157
|
+
* out from under every worker still writing.
|
|
158
|
+
*/
|
|
159
|
+
async function isWaveClosed(artifactsDir, runId) {
|
|
160
|
+
try {
|
|
161
|
+
const value = await readJsonFile(reviewWaveClosedPath(artifactsDir, runId));
|
|
162
|
+
if (typeof value !== "object" || value === null)
|
|
163
|
+
return false;
|
|
164
|
+
const record = value;
|
|
165
|
+
return record.closed === true && record.run_id === runId;
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* The run directory the wave named by `generation` already opened, if any.
|
|
173
|
+
*
|
|
174
|
+
* Asked by SUBSTITUTION, not by a second marker: a derived id is
|
|
175
|
+
* `<slug>-<digest>` where only the digest depends on the generation, so the
|
|
176
|
+
* digest is matched against the directories' own trailing segments. The slug
|
|
177
|
+
* half is deliberately not fixed — the wave a generation names may have been
|
|
178
|
+
* opened by a different obligation than the one asking now.
|
|
179
|
+
*/
|
|
180
|
+
async function openedRunIdForGeneration(artifactsDir, generation) {
|
|
181
|
+
const digest = reviewWaveDigest(generation);
|
|
182
|
+
const openedIds = await listOpenedReviewRunIds(artifactsDir);
|
|
183
|
+
return openedIds.find((runId) => runId.endsWith(`-${digest}`)) ?? null;
|
|
184
|
+
}
|
|
185
|
+
/** Every run directory id present under `runs/`, straight from `readdir`. */
|
|
186
|
+
async function listOpenedReviewRunIds(artifactsDir) {
|
|
187
|
+
try {
|
|
188
|
+
const entries = await readdir(join(artifactsDir, "runs"), {
|
|
189
|
+
withFileTypes: true,
|
|
190
|
+
});
|
|
191
|
+
return entries.filter((entry) => entry.isDirectory()).map((e) => e.name);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (isFileMissingError(error))
|
|
195
|
+
return [];
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/** Advance the persisted generation to name the wave this run belongs to. */
|
|
200
|
+
async function openReviewWave(artifactsDir, generation) {
|
|
201
|
+
await mkdir(join(artifactsDir, "runs"), { recursive: true });
|
|
202
|
+
await writeJsonFile(openReviewWavePath(artifactsDir), {
|
|
203
|
+
contract_version: OPEN_REVIEW_WAVE_CONTRACT_VERSION,
|
|
204
|
+
generation,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
41
207
|
export async function materializeReviewRun(params) {
|
|
42
|
-
|
|
43
|
-
|
|
208
|
+
// Derived AFTER the pending set is computed, deliberately: the id no longer
|
|
209
|
+
// depends on it, and the ordering is what makes that visible — a partial
|
|
210
|
+
// ingest shrinks the pending set, and must not move the run identity.
|
|
44
211
|
const pendingTasks = await addFileLineCountHints(params.root, params.tasksOverride ?? buildPendingAuditTasks(params.bundle));
|
|
212
|
+
const generation = params.waveGeneration !== undefined
|
|
213
|
+
? params.waveGeneration
|
|
214
|
+
: await resolveWaveGeneration(params.artifactsDir);
|
|
215
|
+
const runId = params.runIdOverride ??
|
|
216
|
+
deriveReviewRunId({
|
|
217
|
+
obligationId: params.obligationId,
|
|
218
|
+
waveGeneration: generation,
|
|
219
|
+
});
|
|
220
|
+
const paths = getRunPaths(params.artifactsDir, runId);
|
|
45
221
|
const activeReviewRun = {
|
|
46
222
|
contract_version: "audit-review-run/v1alpha1",
|
|
47
223
|
run_id: runId,
|
|
@@ -50,38 +226,75 @@ export async function materializeReviewRun(params) {
|
|
|
50
226
|
host_workload_path: paths.hostWorkloadPath,
|
|
51
227
|
host_result_map_path: paths.hostResultMapPath,
|
|
52
228
|
};
|
|
229
|
+
// The counter and the run directory are written together and the RESULT is
|
|
230
|
+
// what makes the two agree: the derivation above is only ever read back
|
|
231
|
+
// through `resolveWaveGeneration`, which checks the directory the counter
|
|
232
|
+
// names. Whichever of these two lands first, the pair resolves to the same
|
|
233
|
+
// generation — a counter ahead of its directory is corrected back to the
|
|
234
|
+
// directory state, and a directory ahead of the counter is found by the
|
|
235
|
+
// promotion. That is also what makes the NEXT wave open: once this wave's
|
|
236
|
+
// pending set is fully accepted the obligation re-opens, the pause re-enters
|
|
237
|
+
// here, the counter is proven stale (this wave is closed, but a new wave still
|
|
238
|
+
// needs a directory of its OWN), and `runsOpen` is one more than this run.
|
|
239
|
+
if (generation !== null) {
|
|
240
|
+
await openReviewWave(params.artifactsDir, generation);
|
|
241
|
+
}
|
|
53
242
|
await writeReviewRunFiles(params.artifactsDir, activeReviewRun, pendingTasks);
|
|
54
243
|
return { activeReviewRun, pendingTasks };
|
|
55
244
|
}
|
|
56
|
-
function sortedTaskIds(tasks) {
|
|
57
|
-
return tasks.map((task) => task.task_id).sort();
|
|
58
|
-
}
|
|
59
|
-
function sameTaskIds(left, right) {
|
|
60
|
-
const leftIds = sortedTaskIds(left);
|
|
61
|
-
const rightIds = sortedTaskIds(right);
|
|
62
|
-
return (leftIds.length === rightIds.length &&
|
|
63
|
-
leftIds.every((taskId, index) => taskId === rightIds[index]));
|
|
64
|
-
}
|
|
65
245
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
246
|
+
* The active run, created or refreshed. Shared by both entry points below so the
|
|
247
|
+
* resolution cannot differ between the locked and lock-free halves.
|
|
248
|
+
*
|
|
249
|
+
* The id is derived from (review obligation × wave generation), and the
|
|
250
|
+
* generation moves at exactly one moment — when a wave OPENS. So the normal path
|
|
251
|
+
* here is a single manifest read and a re-materialization: within one open wave
|
|
252
|
+
* the derived id cannot move, however much a partial ingest shrinks the pending
|
|
253
|
+
* set, and a run that is still owed work is by construction still the active
|
|
254
|
+
* one. The branch that asked whether the persisted pending set still matched was
|
|
255
|
+
* a decision with no distinguishable behaviour behind it — and it was the
|
|
256
|
+
* mechanism that re-minted the whole wave on every ingest.
|
|
257
|
+
*
|
|
258
|
+
* The first branch is ADOPTION, and it is scoped to the transition itself. On an
|
|
259
|
+
* artifacts dir the tool has never opened a wave for (no counter file), a run
|
|
260
|
+
* minted by an EARLIER build may be in flight: its published workload, every
|
|
261
|
+
* bound `result_path`, its accepted pair and its own `run_id` all hang off the
|
|
262
|
+
* OLD id, and workers are holding bindings derived from it. Serving it under its
|
|
263
|
+
* own id — refreshed in place at the current pending set — lets that wave drain
|
|
264
|
+
* exactly as published, and the generation the promotion hands back is the one
|
|
265
|
+
* that makes the NEXT wave derive a new id. The alternative strands those
|
|
266
|
+
* workers or needs a cross-run copy of the accepted pair, which is a second
|
|
267
|
+
* durable store for a fact the run directory already holds.
|
|
268
|
+
*
|
|
269
|
+
* Adoption is decided from the persisted id's FORMAT (`isLegacyClockRunId`) and
|
|
270
|
+
* the absence of the counter, never from an instruction to the host.
|
|
69
271
|
*/
|
|
70
272
|
async function resolveReviewRun(params) {
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
273
|
+
const active = await loadCurrentActiveReviewRun(params.artifactsDir);
|
|
274
|
+
const persisted = await readWaveGenerationFile(params.artifactsDir);
|
|
275
|
+
const adopted = persisted === null &&
|
|
276
|
+
active !== null &&
|
|
277
|
+
isLegacyClockRunId(active.run_id)
|
|
278
|
+
? active.run_id
|
|
279
|
+
: null;
|
|
280
|
+
if (adopted !== null) {
|
|
281
|
+
// The active manifest is tool-owned and never host-supplied, but the adopted
|
|
282
|
+
// id becomes a directory segment — so it clears the SAME grammar as any
|
|
283
|
+
// other run id before it is used to build a path, exactly as the
|
|
284
|
+
// host-handoff boundary does.
|
|
285
|
+
assertSubmissionRunId(adopted, "audit review run id");
|
|
286
|
+
const { activeReviewRun } = await materializeReviewRun({
|
|
287
|
+
...params,
|
|
288
|
+
runIdOverride: adopted,
|
|
289
|
+
waveGeneration: await resolveWaveGeneration(params.artifactsDir),
|
|
290
|
+
});
|
|
291
|
+
return activeReviewRun;
|
|
83
292
|
}
|
|
84
|
-
const
|
|
293
|
+
const generation = await resolveWaveGeneration(params.artifactsDir);
|
|
294
|
+
const { activeReviewRun } = await materializeReviewRun({
|
|
295
|
+
...params,
|
|
296
|
+
waveGeneration: generation,
|
|
297
|
+
});
|
|
85
298
|
return activeReviewRun;
|
|
86
299
|
}
|
|
87
300
|
/** The blocked state and bundle a review pause hands back. Writes NOTHING. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewRun.js","sourceRoot":"","sources":["../../../src/audit/cli/reviewRun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"reviewRun.js","sourceRoot":"","sources":["../../../src/audit/cli/reviewRun.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ export declare function buildSampleAuditBundle(findings?: Finding[]): Promise<{
|
|
|
29
29
|
root?: string | undefined;
|
|
30
30
|
default_branch?: string | undefined;
|
|
31
31
|
};
|
|
32
|
+
scope_index_key?: string | undefined;
|
|
32
33
|
};
|
|
33
34
|
disposition: import("../extractors/disposition.js").FileDispositionWithScopeRules;
|
|
34
35
|
unitManifest: {
|
|
@@ -123,6 +124,7 @@ export declare function buildSampleAuditBundle(findings?: Finding[]): Promise<{
|
|
|
123
124
|
quoted_text?: string | undefined;
|
|
124
125
|
hash_at_plan_time?: string | undefined;
|
|
125
126
|
}[];
|
|
127
|
+
severity_downgraded_from?: "high" | "low" | "critical" | "medium" | "info" | undefined;
|
|
126
128
|
impact?: string | undefined;
|
|
127
129
|
likelihood?: string | undefined;
|
|
128
130
|
evidence?: string[] | undefined;
|
|
@@ -136,6 +138,7 @@ export declare function buildSampleAuditBundle(findings?: Finding[]): Promise<{
|
|
|
136
138
|
status: "grounded" | "ungrounded" | "refuted";
|
|
137
139
|
reason?: string | undefined;
|
|
138
140
|
} | undefined;
|
|
141
|
+
evidence_lane?: "per-file-lane" | "design-review-lane" | undefined;
|
|
139
142
|
verification_status?: "judge_confirmed" | "asserted" | "refuted_at_head" | undefined;
|
|
140
143
|
executable_anchor?: {
|
|
141
144
|
command: string[];
|
|
@@ -162,6 +165,11 @@ export declare function buildSampleAuditBundle(findings?: Finding[]): Promise<{
|
|
|
162
165
|
snippet_hash: string;
|
|
163
166
|
rule?: string | undefined;
|
|
164
167
|
} | undefined;
|
|
168
|
+
lead_lineage?: {
|
|
169
|
+
producer: string;
|
|
170
|
+
source_hash: string;
|
|
171
|
+
confirmation: "lead";
|
|
172
|
+
} | undefined;
|
|
165
173
|
}[];
|
|
166
174
|
lens: string;
|
|
167
175
|
task_id: string;
|
|
@@ -173,6 +181,10 @@ export declare function buildSampleAuditBundle(findings?: Finding[]): Promise<{
|
|
|
173
181
|
notes?: string[] | undefined;
|
|
174
182
|
run_id?: string | undefined;
|
|
175
183
|
attempt?: number | undefined;
|
|
184
|
+
followup_tasks?: string[] | undefined;
|
|
185
|
+
agent_role?: string | undefined;
|
|
186
|
+
reviewed_clean?: boolean | undefined;
|
|
187
|
+
requires_followup?: boolean | undefined;
|
|
176
188
|
verification?: {
|
|
177
189
|
verified: boolean;
|
|
178
190
|
needs_followup: boolean;
|
|
@@ -202,10 +214,6 @@ export declare function buildSampleAuditBundle(findings?: Finding[]): Promise<{
|
|
|
202
214
|
completion_reason?: string | undefined;
|
|
203
215
|
}[] | undefined;
|
|
204
216
|
} | undefined;
|
|
205
|
-
followup_tasks?: string[] | undefined;
|
|
206
|
-
agent_role?: string | undefined;
|
|
207
|
-
reviewed_clean?: boolean | undefined;
|
|
208
|
-
requires_followup?: boolean | undefined;
|
|
209
217
|
submitted_at?: string | undefined;
|
|
210
218
|
instance_id?: string | undefined;
|
|
211
219
|
identity_key?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampleRunCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/sampleRunCommand.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAW7D;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAiBnC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,GAAE,OAAO,EAAO
|
|
1
|
+
{"version":3,"file":"sampleRunCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/sampleRunCommand.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAW7D;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAiBnC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,GAAE,OAAO,EAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EpE;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD5E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ArtifactBundle } from "../io/artifacts.js";
|
|
1
2
|
import type { ActiveReviewRun } from "../supervisor/operatorHandoff.js";
|
|
2
3
|
import type { AuditHostIngestIssue } from "../validation/ingestIssueCodes.js";
|
|
3
4
|
import { type AuditHostValidationWarning } from "./dispatch/hostHandoff.js";
|
|
@@ -11,6 +12,14 @@ export declare function renderSemanticReviewStep(params: {
|
|
|
11
12
|
root: string;
|
|
12
13
|
artifactsDir: string;
|
|
13
14
|
activeReviewRun: ActiveReviewRun;
|
|
15
|
+
/**
|
|
16
|
+
* The bundle this draw's review obligation was selected against. REQUIRED:
|
|
17
|
+
* the completed count has no second derivation — it comes from the ONE
|
|
18
|
+
* pending-set partition (`derivePendingTaskPartition`), which is the same
|
|
19
|
+
* source the published workload's task list is built from. A caller that has
|
|
20
|
+
* no bundle has no review obligation either.
|
|
21
|
+
*/
|
|
22
|
+
bundle: ArtifactBundle;
|
|
14
23
|
selectedExecutor?: string | null;
|
|
15
24
|
inProcessMadeProgress?: boolean;
|
|
16
25
|
/** Failures the ingest that preceded this emission classified. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticReviewStep.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/semanticReviewStep.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semanticReviewStep.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/semanticReviewStep.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkH9C;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC;;;;;;OAMG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kEAAkE;IAClE,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC/C,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC5D,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CA6FxD"}
|
|
@@ -1,19 +1,31 @@
|
|
|
1
|
+
// sites-pinned: tests/audit/host-handoff.test.ts
|
|
2
|
+
// (the steward-lane verification
|
|
3
|
+
// contract — `toHostTask` is where the lane tags were being dropped, so this is
|
|
4
|
+
// the site whose revert makes the prompt branch unreachable)
|
|
1
5
|
import { resolve } from "node:path";
|
|
2
|
-
import { linkFrictionRunIds, readJsonFile } from "audit-tools/shared";
|
|
6
|
+
import { deriveLaneDemand, isMissingObservation, linkFrictionRunIds, readJsonFile, } from "audit-tools/shared";
|
|
3
7
|
import { AUDIT_FRICTION_RUN_ID } from "../orchestrator/nextStep.js";
|
|
8
|
+
import { derivePendingTaskPartition } from "../orchestrator/pendingTasks.js";
|
|
4
9
|
import { prepareAuditHostHandoff, } from "./dispatch/hostHandoff.js";
|
|
5
10
|
import { nextStepCommand } from "./prompts.js";
|
|
6
11
|
import { writeCurrentStep } from "./steps.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The audit draw's lane demand.
|
|
14
|
+
*
|
|
15
|
+
* The bounding rules are the SHARED ones ({@link deriveLaneDemand}); the draw
|
|
16
|
+
* supplies only the genuinely per-mode input — its frozen, content-derived
|
|
17
|
+
* `risk_estimate`. The banding helpers that used to live here read the task's
|
|
18
|
+
* `priority` enum as if it were a risk score, which is what put a coarsely
|
|
19
|
+
* bucketed dispatch PRIORITY where a likelihood×stakes estimate belongs.
|
|
20
|
+
*/
|
|
15
21
|
function toHostTask(task) {
|
|
16
|
-
const
|
|
22
|
+
const tokenEstimate = Math.max(0, Math.floor(task.token_estimate ?? 0));
|
|
23
|
+
const demand = deriveLaneDemand({
|
|
24
|
+
tokenEstimate,
|
|
25
|
+
fileCount: task.file_paths.length,
|
|
26
|
+
riskScore: task.risk_estimate ?? 0,
|
|
27
|
+
});
|
|
28
|
+
// construction-site: AuditTask (the host-facing work item; `demand` is handoff metadata, the rest is the contract)
|
|
17
29
|
return {
|
|
18
30
|
task_id: task.task_id,
|
|
19
31
|
unit_id: task.unit_id,
|
|
@@ -22,10 +34,14 @@ function toHostTask(task) {
|
|
|
22
34
|
file_paths: task.file_paths,
|
|
23
35
|
file_line_counts: task.file_line_counts ?? {},
|
|
24
36
|
rationale: task.rationale,
|
|
25
|
-
priority:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
priority: task.priority ?? "low",
|
|
38
|
+
demand,
|
|
39
|
+
token_estimate: tokenEstimate,
|
|
40
|
+
// The lane tags ride the harness so the boundary can tell the steward lane
|
|
41
|
+
// (whose contract asks for `verification` metadata) from the base one. A
|
|
42
|
+
// boundary that cannot see the lane cannot render a lane-aware contract, and
|
|
43
|
+
// this mapper is where that signal was being dropped.
|
|
44
|
+
...(Array.isArray(task.tags) ? { tags: task.tags } : {}),
|
|
29
45
|
};
|
|
30
46
|
}
|
|
31
47
|
/**
|
|
@@ -36,22 +52,39 @@ function toHostTask(task) {
|
|
|
36
52
|
* in an identical workload.
|
|
37
53
|
*/
|
|
38
54
|
function renderIngestIssueLines(issues) {
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
// MISSING and REJECTED are stated under their OWN headings. They shared one
|
|
56
|
+
// before, which forced a host parser to special-case the message text — the
|
|
57
|
+
// measured friction — and told the reader the same thing about two situations
|
|
58
|
+
// whose remedies are opposite: one is patience, the other is a repair. The
|
|
59
|
+
// split is on the CODE, so rewording a message cannot move an item between
|
|
60
|
+
// the two.
|
|
61
|
+
const missing = issues.filter(isMissingObservation);
|
|
62
|
+
const rejected = issues.filter((issue) => !isMissingObservation(issue));
|
|
63
|
+
const section = (heading, lines) => lines.length === 0 ? [] : [heading, "", ...lines, ""];
|
|
41
64
|
return [
|
|
42
|
-
"##
|
|
43
|
-
"",
|
|
44
|
-
...issues.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
65
|
+
...section("## Results not yet written", missing.map((issue) => `- ${describeIssue(issue)}`)),
|
|
66
|
+
...section("## Result status requiring attention", rejected.map((issue) => `- ${describeIssue(issue)}`)),
|
|
67
|
+
...(issues.length === 0
|
|
68
|
+
? []
|
|
69
|
+
: [
|
|
70
|
+
// NOT "the bindings are unchanged": the run id is derived from the review
|
|
71
|
+
// obligation, so a partial ingest does NOT re-mint the run and the bound
|
|
72
|
+
// paths of carried-over items are stable. What still moves is the ASK — a
|
|
73
|
+
// re-planned task's prompt digest, and therefore its bound path, is
|
|
74
|
+
// different, and a result written against the old ask is correctly refused.
|
|
75
|
+
// So the workload published below is the authority for what to write, and a
|
|
76
|
+
// path quoted above is only guaranteed current for an item whose ask the
|
|
77
|
+
// ingest did not change.
|
|
78
|
+
"Each named work item is still pending and is republished in the workload below. Write its repaired result at that workload's bound `result_path` — that workload is always the authority for where a result is read.",
|
|
79
|
+
"",
|
|
80
|
+
]),
|
|
53
81
|
];
|
|
54
82
|
}
|
|
83
|
+
/** One issue as a bullet, with its locators. Shared by both sections above. */
|
|
84
|
+
function describeIssue(issue) {
|
|
85
|
+
return (`${issue.work_item_id ? `\`${issue.work_item_id}\` (${issue.code}): ` : `${issue.code}: `}` +
|
|
86
|
+
`${issue.message}${issue.result_path ? ` (\`${issue.result_path}\`)` : ""}`);
|
|
87
|
+
}
|
|
55
88
|
/**
|
|
56
89
|
* The ADVISORY half of the ingest report: validation warnings on results that
|
|
57
90
|
* WERE accepted. Deliberately a separate renderer from {@link renderIngestIssueLines}
|
|
@@ -80,6 +113,14 @@ export async function renderSemanticReviewStep(params) {
|
|
|
80
113
|
throw new Error(`Semantic review run ${activeReviewRun.run_id} has no pending-task manifest.`);
|
|
81
114
|
}
|
|
82
115
|
const tasks = await readJsonFile(activeReviewRun.pending_audit_tasks_path);
|
|
116
|
+
// The completed half of this pause's count comes from the ONE pending-set
|
|
117
|
+
// partition — the same derivation `buildPendingAuditTasks` projects the
|
|
118
|
+
// published tasks from — never from `tasks.length - work_items.length`. That
|
|
119
|
+
// subtraction only ever measured how many items the handoff boundary HID, so
|
|
120
|
+
// it read zero for every run whose publish was exhaustive (which is every
|
|
121
|
+
// run: the boundary suppresses nothing), and it would misreport the moment a
|
|
122
|
+
// task left the pending set for any reason other than acceptance.
|
|
123
|
+
const { completedTaskIds } = derivePendingTaskPartition(params.bundle);
|
|
83
124
|
const handoff = await prepareAuditHostHandoff({
|
|
84
125
|
root,
|
|
85
126
|
artifactsDir,
|
|
@@ -103,15 +144,15 @@ export async function renderSemanticReviewStep(params) {
|
|
|
103
144
|
status: "ready",
|
|
104
145
|
runId: activeReviewRun.run_id,
|
|
105
146
|
allowedCommands: [continueCommand],
|
|
106
|
-
allowedMcpTools: ["auditor_continue_audit"],
|
|
107
147
|
progress: {
|
|
108
148
|
summary: `Published ${handoff.workload.work_items.length} pending semantic-review ` +
|
|
109
149
|
`work item(s) for host execution.` +
|
|
110
150
|
(issues.length > 0
|
|
111
|
-
? ` ${issues.length} prior submission(s)
|
|
151
|
+
? ` ${issues.length} prior submission(s) were not accepted — see "Result status requiring attention"` +
|
|
152
|
+
` and "Results not yet written".`
|
|
112
153
|
: ""),
|
|
113
154
|
pending_tasks: handoff.workload.work_items.length,
|
|
114
|
-
completed_tasks:
|
|
155
|
+
completed_tasks: completedTaskIds.size,
|
|
115
156
|
},
|
|
116
157
|
stopCondition: "Execute the published host workload, write each bound result, then run next-step.",
|
|
117
158
|
repoRoot: root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticReviewStep.js","sourceRoot":"","sources":["../../../src/audit/cli/semanticReviewStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"semanticReviewStep.js","sourceRoot":"","sources":["../../../src/audit/cli/semanticReviewStep.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/statusCommand.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"statusCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/statusCommand.ts"],"names":[],"mappings":"AAQA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF7D"}
|