audit-tools 0.52.5 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit/cli/auditStep.d.ts +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts +2 -0
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/packetFilter.js +1 -1
- package/dist/audit/cli/dispatch/packetFilter.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +42 -20
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +3 -3
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +50 -75
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/prompts.d.ts +1 -2
- package/dist/audit/cli/prompts.d.ts.map +1 -1
- package/dist/audit/cli/prompts.js +2 -12
- package/dist/audit/cli/prompts.js.map +1 -1
- package/dist/audit/cli/sampleRunCommand.d.ts +2 -2
- package/dist/audit/cli/semanticReviewStep.d.ts +11 -2
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.js +14 -10
- package/dist/audit/cli/semanticReviewStep.js.map +1 -1
- package/dist/audit/contracts/workerSchemas.d.ts +14 -14
- package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
- package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
- package/dist/audit/extractors/graphRoutes.js +1 -3
- package/dist/audit/extractors/graphRoutes.js.map +1 -1
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +2 -3
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/architectureDiscovery.d.ts +11 -0
- package/dist/audit/orchestrator/architectureDiscovery.d.ts.map +1 -0
- package/dist/audit/orchestrator/architectureDiscovery.js +174 -0
- package/dist/audit/orchestrator/architectureDiscovery.js.map +1 -0
- package/dist/audit/orchestrator/designReviewProjection.d.ts +2 -6
- package/dist/audit/orchestrator/designReviewProjection.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewProjection.js +2 -6
- package/dist/audit/orchestrator/designReviewProjection.js.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.d.ts +2 -3
- package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.js +2 -3
- package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +1 -22
- 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 +1 -13
- package/dist/audit/orchestrator/executors.js.map +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts +2 -28
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +5 -37
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/orchestrator/obligationDerive.d.ts +2 -3
- package/dist/audit/orchestrator/obligationDerive.d.ts.map +1 -1
- package/dist/audit/orchestrator/obligationDerive.js +2 -3
- package/dist/audit/orchestrator/obligationDerive.js.map +1 -1
- package/dist/audit/orchestrator/pendingTasks.d.ts +2 -0
- package/dist/audit/orchestrator/pendingTasks.d.ts.map +1 -1
- package/dist/audit/orchestrator/pendingTasks.js +5 -1
- package/dist/audit/orchestrator/pendingTasks.js.map +1 -1
- package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/planningExecutors.js +9 -0
- package/dist/audit/orchestrator/planningExecutors.js.map +1 -1
- package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
- package/dist/audit/orchestrator/resultBaseline.d.ts +5 -5
- package/dist/audit/orchestrator/resultBaseline.d.ts.map +1 -1
- package/dist/audit/orchestrator/resultBaseline.js +24 -47
- package/dist/audit/orchestrator/resultBaseline.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.js +2 -0
- package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.js.map +1 -1
- package/dist/audit/orchestrator/state.d.ts.map +1 -1
- package/dist/audit/orchestrator/state.js +2 -0
- package/dist/audit/orchestrator/state.js.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.js +3 -0
- package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
- package/dist/audit/types/auditState.d.ts +6 -6
- package/dist/audit/types/flowCoverage.d.ts +6 -6
- package/dist/audit/types.d.ts +12 -12
- package/dist/remediate/contractPipeline/executionPlan.d.ts +1908 -0
- package/dist/remediate/contractPipeline/executionPlan.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/executionPlan.js +467 -0
- package/dist/remediate/contractPipeline/executionPlan.js.map +1 -0
- package/dist/remediate/contractPipeline/runtimePlanAuthority.d.ts +12 -0
- package/dist/remediate/contractPipeline/runtimePlanAuthority.d.ts.map +1 -0
- package/dist/remediate/contractPipeline/runtimePlanAuthority.js +41 -0
- package/dist/remediate/contractPipeline/runtimePlanAuthority.js.map +1 -0
- package/dist/remediate/dedup/crossLensDedup.d.ts +3 -16
- package/dist/remediate/dedup/crossLensDedup.d.ts.map +1 -1
- package/dist/remediate/dedup/crossLensDedup.js +2 -32
- package/dist/remediate/dedup/crossLensDedup.js.map +1 -1
- package/dist/remediate/index.d.ts +2 -19
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +22 -138
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/intake.d.ts +10 -10
- package/dist/remediate/intent/intentOrdering.d.ts +6 -8
- package/dist/remediate/intent/intentOrdering.d.ts.map +1 -1
- package/dist/remediate/intent/intentOrdering.js +24 -47
- package/dist/remediate/intent/intentOrdering.js.map +1 -1
- package/dist/remediate/phases/close.d.ts +25 -17
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +278 -218
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/closeAcceptance.d.ts +42 -0
- package/dist/remediate/phases/closeAcceptance.d.ts.map +1 -0
- package/dist/remediate/phases/closeAcceptance.js +66 -0
- package/dist/remediate/phases/closeAcceptance.js.map +1 -0
- package/dist/remediate/phases/closeReviewProvenance.d.ts +1 -1
- package/dist/remediate/phases/closeReviewProvenance.d.ts.map +1 -1
- package/dist/remediate/phases/closeReviewProvenance.js +9 -8
- package/dist/remediate/phases/closeReviewProvenance.js.map +1 -1
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts.map +1 -1
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +11 -9
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -1
- package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts +21 -86
- package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts.map +1 -1
- package/dist/remediate/phases/closeVerifyHeadEvidence.js +30 -19
- package/dist/remediate/phases/closeVerifyHeadEvidence.js.map +1 -1
- package/dist/remediate/phases/plan.d.ts +3 -60
- package/dist/remediate/phases/plan.d.ts.map +1 -1
- package/dist/remediate/phases/plan.js +3 -227
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/phases/triage.d.ts.map +1 -1
- package/dist/remediate/phases/triage.js +19 -30
- package/dist/remediate/phases/triage.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts +9 -43
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +7 -28
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/state/disposition.d.ts +2 -1
- package/dist/remediate/state/disposition.d.ts.map +1 -1
- package/dist/remediate/state/disposition.js +37 -1
- package/dist/remediate/state/disposition.js.map +1 -1
- package/dist/remediate/state/runIdentity.d.ts +2 -13
- package/dist/remediate/state/runIdentity.d.ts.map +1 -1
- package/dist/remediate/state/runIdentity.js +3 -13
- package/dist/remediate/state/runIdentity.js.map +1 -1
- package/dist/remediate/state/store.d.ts +12 -36
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js +58 -150
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/state/types.d.ts +406 -504
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +24 -104
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +7 -661
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +259 -3854
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts +20 -142
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +48 -581
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/contractConformanceReview.d.ts +4 -1
- package/dist/remediate/steps/dispatch/contractConformanceReview.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/contractConformanceReview.js +6 -3
- package/dist/remediate/steps/dispatch/contractConformanceReview.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostContracts.d.ts +1 -1
- package/dist/remediate/steps/dispatch/hostContracts.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts +4 -21
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +161 -383
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/finalGate.d.ts +34 -0
- package/dist/remediate/steps/finalGate.d.ts.map +1 -1
- package/dist/remediate/steps/finalGate.js +44 -4
- package/dist/remediate/steps/finalGate.js.map +1 -1
- package/dist/remediate/steps/frictionCloseout.d.ts +1 -30
- package/dist/remediate/steps/frictionCloseout.d.ts.map +1 -1
- package/dist/remediate/steps/frictionCloseout.js +6 -99
- package/dist/remediate/steps/frictionCloseout.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +2 -15
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +255 -1028
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/prompts.js +12 -12
- package/dist/remediate/steps/prompts.js.map +1 -1
- package/dist/remediate/steps/stepUtils.d.ts +1 -1
- package/dist/remediate/steps/stepUtils.d.ts.map +1 -1
- package/dist/remediate/steps/types.d.ts +1 -1
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js +1 -1
- package/dist/remediate/steps/types.js.map +1 -1
- package/dist/remediate/types/options.d.ts +9 -0
- package/dist/remediate/types/options.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +10 -56
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/remediationState.d.ts +2 -2
- package/dist/remediate/validation/remediationState.d.ts.map +1 -1
- package/dist/remediate/validation/remediationState.js +17 -77
- package/dist/remediate/validation/remediationState.js.map +1 -1
- package/dist/remediate/validation/verificationReport.d.ts +3 -0
- package/dist/remediate/validation/verificationReport.d.ts.map +1 -0
- package/dist/remediate/validation/verificationReport.js +28 -0
- package/dist/remediate/validation/verificationReport.js.map +1 -0
- package/dist/shared/analyzers/types.d.ts +10 -10
- package/dist/shared/engine/obligationEngine.d.ts +2 -2
- package/dist/shared/friction/triage.d.ts +7 -28
- package/dist/shared/friction/triage.d.ts.map +1 -1
- package/dist/shared/friction/triage.js +7 -28
- package/dist/shared/friction/triage.js.map +1 -1
- package/dist/shared/graph/orderedReachability.js +1 -1
- package/dist/shared/graph/orderedReachability.js.map +1 -1
- package/dist/shared/index.d.ts +5 -6
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +3 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/loopCorePaths.d.ts.map +1 -1
- package/dist/shared/loopCorePaths.js +6 -0
- package/dist/shared/loopCorePaths.js.map +1 -1
- package/dist/shared/prompts.d.ts +1 -2
- package/dist/shared/prompts.d.ts.map +1 -1
- package/dist/shared/prompts.js +1 -2
- package/dist/shared/prompts.js.map +1 -1
- package/dist/shared/reReview/projectionDiff.d.ts.map +1 -1
- package/dist/shared/reReview/projectionDiff.js +6 -14
- package/dist/shared/reReview/projectionDiff.js.map +1 -1
- package/dist/shared/types/executionPlan.d.ts +416 -0
- package/dist/shared/types/executionPlan.d.ts.map +1 -0
- package/dist/shared/types/executionPlan.js +132 -0
- package/dist/shared/types/executionPlan.js.map +1 -0
- package/dist/shared/types/remediationOutcome.d.ts +1378 -12
- package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
- package/dist/shared/types/remediationOutcome.js +29 -1
- package/dist/shared/types/remediationOutcome.js.map +1 -1
- package/dist/shared/types/{contractPipeline/verification.d.ts → verificationReport.d.ts} +9 -37
- package/dist/shared/types/verificationReport.d.ts.map +1 -0
- package/dist/shared/types/verificationReport.js +4 -0
- package/dist/shared/types/verificationReport.js.map +1 -0
- package/dist/shared/validation/findingGrounding.d.ts +3 -5
- package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/findingGrounding.js +4 -7
- package/dist/shared/validation/findingGrounding.js.map +1 -1
- package/package.json +1 -1
- package/dist/remediate/contractPipeline/artifactNames.d.ts +0 -8
- package/dist/remediate/contractPipeline/artifactNames.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/artifactNames.js +0 -28
- package/dist/remediate/contractPipeline/artifactNames.js.map +0 -1
- package/dist/remediate/contractPipeline/artifactStore.d.ts +0 -219
- package/dist/remediate/contractPipeline/artifactStore.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/artifactStore.js +0 -436
- package/dist/remediate/contractPipeline/artifactStore.js.map +0 -1
- package/dist/remediate/contractPipeline/changeClassification.d.ts +0 -130
- package/dist/remediate/contractPipeline/changeClassification.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/changeClassification.js +0 -446
- package/dist/remediate/contractPipeline/changeClassification.js.map +0 -1
- package/dist/remediate/contractPipeline/contractReviewBinding.d.ts +0 -28
- package/dist/remediate/contractPipeline/contractReviewBinding.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/contractReviewBinding.js +0 -75
- package/dist/remediate/contractPipeline/contractReviewBinding.js.map +0 -1
- package/dist/remediate/contractPipeline/counterexampleFingerprint.d.ts +0 -27
- package/dist/remediate/contractPipeline/counterexampleFingerprint.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/counterexampleFingerprint.js +0 -37
- package/dist/remediate/contractPipeline/counterexampleFingerprint.js.map +0 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +0 -131
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js +0 -257
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +0 -1
- package/dist/remediate/contractPipeline/derive.d.ts +0 -173
- package/dist/remediate/contractPipeline/derive.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/derive.js +0 -477
- package/dist/remediate/contractPipeline/derive.js.map +0 -1
- package/dist/remediate/contractPipeline/finalizedContractFields.d.ts +0 -50
- package/dist/remediate/contractPipeline/finalizedContractFields.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/finalizedContractFields.js +0 -77
- package/dist/remediate/contractPipeline/finalizedContractFields.js.map +0 -1
- package/dist/remediate/contractPipeline/idRegistry.d.ts +0 -144
- package/dist/remediate/contractPipeline/idRegistry.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/idRegistry.js +0 -214
- package/dist/remediate/contractPipeline/idRegistry.js.map +0 -1
- package/dist/remediate/contractPipeline/obligationKinds.d.ts +0 -27
- package/dist/remediate/contractPipeline/obligationKinds.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/obligationKinds.js +0 -18
- package/dist/remediate/contractPipeline/obligationKinds.js.map +0 -1
- package/dist/remediate/contractPipeline/phaseCut.d.ts +0 -125
- package/dist/remediate/contractPipeline/phaseCut.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/phaseCut.js +0 -339
- package/dist/remediate/contractPipeline/phaseCut.js.map +0 -1
- package/dist/remediate/contractPipeline/phaseCutArtifact.d.ts +0 -31
- package/dist/remediate/contractPipeline/phaseCutArtifact.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/phaseCutArtifact.js +0 -48
- package/dist/remediate/contractPipeline/phaseCutArtifact.js.map +0 -1
- package/dist/remediate/contractPipeline/repairState.d.ts +0 -110
- package/dist/remediate/contractPipeline/repairState.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/repairState.js +0 -185
- package/dist/remediate/contractPipeline/repairState.js.map +0 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts +0 -79
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.js +0 -140
- package/dist/remediate/contractPipeline/reviewSnapshot.js.map +0 -1
- package/dist/remediate/contractPipeline/semanticProjection.d.ts +0 -64
- package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/semanticProjection.js +0 -136
- package/dist/remediate/contractPipeline/semanticProjection.js.map +0 -1
- package/dist/remediate/contractPipeline/sketchSource.d.ts +0 -194
- package/dist/remediate/contractPipeline/sketchSource.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/sketchSource.js +0 -262
- package/dist/remediate/contractPipeline/sketchSource.js.map +0 -1
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts +0 -17
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts.map +0 -1
- package/dist/remediate/contractPipeline/testPlanCarry.js +0 -72
- package/dist/remediate/contractPipeline/testPlanCarry.js.map +0 -1
- package/dist/remediate/steps/dispatch/marshal.d.ts +0 -7
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +0 -1
- package/dist/remediate/steps/dispatch/marshal.js +0 -11
- package/dist/remediate/steps/dispatch/marshal.js.map +0 -1
- package/dist/remediate/validation/contractPipeline.d.ts +0 -35
- package/dist/remediate/validation/contractPipeline.d.ts.map +0 -1
- package/dist/remediate/validation/contractPipeline.js +0 -613
- package/dist/remediate/validation/contractPipeline.js.map +0 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts +0 -272
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +0 -1
- package/dist/remediate/validation/contractPipelineGates.js +0 -1397
- package/dist/remediate/validation/contractPipelineGates.js.map +0 -1
- package/dist/shared/types/contractPipeline/design.d.ts +0 -79
- package/dist/shared/types/contractPipeline/design.d.ts.map +0 -1
- package/dist/shared/types/contractPipeline/design.js +0 -16
- package/dist/shared/types/contractPipeline/design.js.map +0 -1
- package/dist/shared/types/contractPipeline/goal.d.ts +0 -41
- package/dist/shared/types/contractPipeline/goal.d.ts.map +0 -1
- package/dist/shared/types/contractPipeline/goal.js +0 -10
- package/dist/shared/types/contractPipeline/goal.js.map +0 -1
- package/dist/shared/types/contractPipeline/implementation.d.ts +0 -118
- package/dist/shared/types/contractPipeline/implementation.d.ts.map +0 -1
- package/dist/shared/types/contractPipeline/implementation.js +0 -13
- package/dist/shared/types/contractPipeline/implementation.js.map +0 -1
- package/dist/shared/types/contractPipeline/obligations.d.ts +0 -283
- package/dist/shared/types/contractPipeline/obligations.d.ts.map +0 -1
- package/dist/shared/types/contractPipeline/obligations.js +0 -84
- package/dist/shared/types/contractPipeline/obligations.js.map +0 -1
- package/dist/shared/types/contractPipeline/verification.d.ts.map +0 -1
- package/dist/shared/types/contractPipeline/verification.js +0 -10
- package/dist/shared/types/contractPipeline/verification.js.map +0 -1
- package/dist/shared/types/contractPipeline.d.ts +0 -48
- package/dist/shared/types/contractPipeline.d.ts.map +0 -1
- package/dist/shared/types/contractPipeline.js +0 -32
- package/dist/shared/types/contractPipeline.js.map +0 -1
- package/dist/shared/types/obligationLedger.d.ts +0 -39
- package/dist/shared/types/obligationLedger.d.ts.map +0 -1
- package/dist/shared/types/obligationLedger.js +0 -49
- package/dist/shared/types/obligationLedger.js.map +0 -1
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deterministic phase-cut derivation (remediator auto-phasing, T3).
|
|
3
|
-
*
|
|
4
|
-
* When `/remediate-code` is pointed at an arbitrary N-goal input (e.g. the whole
|
|
5
|
-
* backlog), the independent conceptual-design critique used to reject the run as
|
|
6
|
-
* "over-scoped" and the HOST had to manually re-scope to a phase at intake. That
|
|
7
|
-
* is the tool's job, not the host's: given the module-dependency DAG (the
|
|
8
|
-
* producer/consumer `artifact:<name>` token edges declared in the contracts'
|
|
9
|
-
* inputs/outputs), the tool derives a foundations→consumers
|
|
10
|
-
* phase cut MECHANICALLY — ordered tiers where every module sits one tier below
|
|
11
|
-
* the modules that depend on it. The critique is then handed the derived cut, so
|
|
12
|
-
* it assesses design quality WITHIN a mechanically dependency-ordered phasing
|
|
13
|
-
* rather than rejecting breadth (over-scoping is already handled by construction).
|
|
14
|
-
*
|
|
15
|
-
* Pure + deterministic (no I/O, no Date/Math.random, stable ordering): the same
|
|
16
|
-
* modules always yield the same cut. Cycle-safe — a dependency cycle cannot be
|
|
17
|
-
* topologically tiered, so its members are placed together at the tier just past
|
|
18
|
-
* their highest acyclic dependency (named-sorted, fail toward a LATER tier so a
|
|
19
|
-
* cyclic module never front-runs a real foundation it transitively needs).
|
|
20
|
-
*/
|
|
21
|
-
import { moduleSlugForObligationId } from "./idRegistry.js";
|
|
22
|
-
import { compareCodeUnits } from "../../shared/compareCodeUnits.js";
|
|
23
|
-
import { findCyclicComponents } from "../../shared/graph/directedCycles.js";
|
|
24
|
-
/** Stable label for a tier ordinal. */
|
|
25
|
-
function phaseName(ordinal, lastOrdinal) {
|
|
26
|
-
if (ordinal === 0)
|
|
27
|
-
return "foundations";
|
|
28
|
-
if (ordinal === lastOrdinal)
|
|
29
|
-
return "integration";
|
|
30
|
-
return `consumers-${ordinal}`;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Derive the ordered phase cut from a module-dependency DAG. Each module's tier is
|
|
34
|
-
* the length of its longest dependency chain (foundations = 0). Edges to unknown
|
|
35
|
-
* module names are ignored (a `needs` on a module not in scope is not a phase
|
|
36
|
-
* constraint here). Returns one phase per occupied tier, covering every module.
|
|
37
|
-
*/
|
|
38
|
-
export function derivePhaseCut(modules) {
|
|
39
|
-
const names = modules.map((m) => m.name);
|
|
40
|
-
const known = new Set(names);
|
|
41
|
-
// Normalize edges: keep only deps that name a real in-scope module, drop self-edges.
|
|
42
|
-
const deps = new Map();
|
|
43
|
-
for (const m of modules) {
|
|
44
|
-
deps.set(m.name, [...new Set(m.depends_on)].filter((d) => d !== m.name && known.has(d)));
|
|
45
|
-
}
|
|
46
|
-
// Longest-dependency-chain tier via memoized DFS with cycle detection. A node on
|
|
47
|
-
// an active path (cycle) resolves to the max tier of its already-settled deps + 1
|
|
48
|
-
// (fail toward a later tier), and the cycle flag is raised.
|
|
49
|
-
const tier = new Map();
|
|
50
|
-
const visiting = new Set();
|
|
51
|
-
let hasCycle = false;
|
|
52
|
-
const computeTier = (name) => {
|
|
53
|
-
const cached = tier.get(name);
|
|
54
|
-
if (cached !== undefined)
|
|
55
|
-
return cached;
|
|
56
|
-
if (visiting.has(name)) {
|
|
57
|
-
// Back-edge: a cycle. Don't recurse through it; treat as no added depth here.
|
|
58
|
-
hasCycle = true;
|
|
59
|
-
return 0;
|
|
60
|
-
}
|
|
61
|
-
visiting.add(name);
|
|
62
|
-
let maxDep = -1;
|
|
63
|
-
// Sort deps for deterministic traversal (tier values are order-independent, but
|
|
64
|
-
// keep traversal stable for predictability under future changes).
|
|
65
|
-
for (const d of [...(deps.get(name) ?? [])].sort()) {
|
|
66
|
-
maxDep = Math.max(maxDep, computeTier(d));
|
|
67
|
-
}
|
|
68
|
-
visiting.delete(name);
|
|
69
|
-
const t = maxDep + 1;
|
|
70
|
-
tier.set(name, t);
|
|
71
|
-
return t;
|
|
72
|
-
};
|
|
73
|
-
for (const name of [...names].sort())
|
|
74
|
-
computeTier(name);
|
|
75
|
-
const lastOrdinal = Math.max(0, ...[...tier.values()]);
|
|
76
|
-
const byTier = new Map();
|
|
77
|
-
for (const [name, t] of tier) {
|
|
78
|
-
const bucket = byTier.get(t) ?? [];
|
|
79
|
-
bucket.push(name);
|
|
80
|
-
byTier.set(t, bucket);
|
|
81
|
-
}
|
|
82
|
-
const phases = [];
|
|
83
|
-
for (let ordinal = 0; ordinal <= lastOrdinal; ordinal++) {
|
|
84
|
-
const members = byTier.get(ordinal);
|
|
85
|
-
if (!members || members.length === 0)
|
|
86
|
-
continue;
|
|
87
|
-
phases.push({
|
|
88
|
-
ordinal,
|
|
89
|
-
name: phaseName(ordinal, lastOrdinal),
|
|
90
|
-
modules: [...members].sort(),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
const module_phase = {};
|
|
94
|
-
for (const [name, t] of tier)
|
|
95
|
-
module_phase[name] = t;
|
|
96
|
-
return { phases, has_cycle: hasCycle, module_phase };
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* The id fragment obligation ids encode — re-exported from the id registry,
|
|
100
|
-
* which owns both this and the mint that produces `OBL-<slug>-…`, so encoder and
|
|
101
|
-
* decoder cannot drift. Kept exported here because this module is where the
|
|
102
|
-
* node→phase decoders live and import it from.
|
|
103
|
-
*/
|
|
104
|
-
export { moduleSlug } from "./idRegistry.js";
|
|
105
|
-
/**
|
|
106
|
-
* Resolve the phase ordinal for an implementation-DAG node from the obligation
|
|
107
|
-
* ids it discharges. Every derived obligation id is `OBL-<moduleSlug>-<suffix>`,
|
|
108
|
-
* so the owning module (hence phase) is recoverable by the EXACT join in
|
|
109
|
-
* `idRegistry.moduleSlugForObligationId` — no lossy slug reversal, and no
|
|
110
|
-
* longest-prefix guess (that rule resolved `OBL-auth-service-…` to `auth`
|
|
111
|
-
* whenever `auth-service` was not in the slug set, silently handing the node
|
|
112
|
-
* another module's phase and file scope). A node spanning modules in several
|
|
113
|
-
* phases takes the MAX ordinal (fail-toward-later: it cannot land before the
|
|
114
|
-
* latest module it touches is reachable). A node whose obligations match no
|
|
115
|
-
* in-scope module slug — a counterexample-only node, or an obligation from a
|
|
116
|
-
* module dropped from the cut — defaults to the LAST phase (integration), never
|
|
117
|
-
* front-running a foundation.
|
|
118
|
-
*
|
|
119
|
-
* `slugToOrdinal` is the module-phase map re-keyed by `moduleSlug(name)`.
|
|
120
|
-
*/
|
|
121
|
-
export function phaseOrdinalForObligations(obligationIds, slugToOrdinal, lastOrdinal) {
|
|
122
|
-
const knownSlugs = new Set(slugToOrdinal.keys());
|
|
123
|
-
let max = -1;
|
|
124
|
-
let matchedAny = false;
|
|
125
|
-
for (const id of obligationIds) {
|
|
126
|
-
const slug = moduleSlugForObligationId(id, knownSlugs);
|
|
127
|
-
if (slug === null)
|
|
128
|
-
continue;
|
|
129
|
-
max = Math.max(max, slugToOrdinal.get(slug) ?? 0);
|
|
130
|
-
matchedAny = true;
|
|
131
|
-
}
|
|
132
|
-
return matchedAny ? max : lastOrdinal;
|
|
133
|
-
}
|
|
134
|
-
export { moduleSlugForObligationId };
|
|
135
|
-
/**
|
|
136
|
-
* A structured artifact reference embedded anywhere inside a module's free-prose
|
|
137
|
-
* `inputs`/`outputs` string: the token `artifact:<name>`, where `<name>` is a
|
|
138
|
-
* stable identifier (letters, digits, `_`, `-`, `.`, `/`). The rest of the string
|
|
139
|
-
* stays human prose. A module PRODUCES every artifact token in its `outputs` and
|
|
140
|
-
* CONSUMES every token in its `inputs`; the tool matches producer→consumer to
|
|
141
|
-
* derive data-flow ordering, so the ordering is tool-enforced from the finalized
|
|
142
|
-
* contracts rather than relying on the host to hand-add `depends_on` edges.
|
|
143
|
-
* Matching is case-insensitive so `artifact:Roster` (produced) and `artifact:roster`
|
|
144
|
-
* (consumed) still pair.
|
|
145
|
-
*/
|
|
146
|
-
const ARTIFACT_TOKEN_PATTERN = /\bartifact:([A-Za-z0-9_./-]+)/gi;
|
|
147
|
-
/** The normalized artifact names referenced by a module's inputs/outputs list. */
|
|
148
|
-
function extractArtifactNames(entries) {
|
|
149
|
-
const names = new Set();
|
|
150
|
-
if (!Array.isArray(entries))
|
|
151
|
-
return names;
|
|
152
|
-
for (const entry of entries) {
|
|
153
|
-
if (typeof entry !== "string")
|
|
154
|
-
continue;
|
|
155
|
-
for (const match of entry.matchAll(ARTIFACT_TOKEN_PATTERN)) {
|
|
156
|
-
// Trim trailing separator/punctuation the greedy class may have swallowed
|
|
157
|
-
// (e.g. a token ending a sentence: "artifact:roster.").
|
|
158
|
-
const name = match[1].replace(/[._/-]+$/, "").toLowerCase();
|
|
159
|
-
if (name.length > 0)
|
|
160
|
-
names.add(name);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return names;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Derive the DECLARED module-dependency graph from producer/consumer artifact
|
|
167
|
-
* tokens in the contracts' `inputs`/`outputs`. For each module M and each
|
|
168
|
-
* artifact M consumes (an `artifact:<name>` token in M's `inputs`), M depends
|
|
169
|
-
* on every OTHER module that produces that artifact (the token in its
|
|
170
|
-
* `outputs`). Returns both the dependency map (module name → set of module
|
|
171
|
-
* names that must run first) and the per-edge artifact attribution, so a cycle
|
|
172
|
-
* can be reported with the exact tokens that form it. Tolerant of malformed
|
|
173
|
-
* payloads: anything unparseable contributes no edge.
|
|
174
|
-
*/
|
|
175
|
-
function deriveModuleArtifactGraph(contractsPayload) {
|
|
176
|
-
const root = contractsPayload;
|
|
177
|
-
const list = Array.isArray(root?.module_contracts) ? root.module_contracts : [];
|
|
178
|
-
const producers = new Map(); // artifact name → producing modules
|
|
179
|
-
const consumes = new Map(); // module name → consumed artifact names
|
|
180
|
-
const moduleNames = [];
|
|
181
|
-
for (const mod of list) {
|
|
182
|
-
if (typeof mod !== "object" || mod === null)
|
|
183
|
-
continue;
|
|
184
|
-
const m = mod;
|
|
185
|
-
if (typeof m.name !== "string" || m.name.length === 0)
|
|
186
|
-
continue;
|
|
187
|
-
moduleNames.push(m.name);
|
|
188
|
-
for (const artifact of extractArtifactNames(m.outputs)) {
|
|
189
|
-
const set = producers.get(artifact) ?? new Set();
|
|
190
|
-
set.add(m.name);
|
|
191
|
-
producers.set(artifact, set);
|
|
192
|
-
}
|
|
193
|
-
consumes.set(m.name, extractArtifactNames(m.inputs));
|
|
194
|
-
}
|
|
195
|
-
const deps = new Map();
|
|
196
|
-
const edges = [];
|
|
197
|
-
for (const name of moduleNames) {
|
|
198
|
-
const set = new Set();
|
|
199
|
-
for (const artifact of consumes.get(name) ?? []) {
|
|
200
|
-
for (const producer of producers.get(artifact) ?? []) {
|
|
201
|
-
if (producer === name)
|
|
202
|
-
continue;
|
|
203
|
-
set.add(producer);
|
|
204
|
-
edges.push({ consumer: name, producer, artifact });
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
deps.set(name, set);
|
|
208
|
-
}
|
|
209
|
-
return { deps, edges };
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Build {@link PhaseCutModule}s from finalized module contracts. A module's
|
|
213
|
-
* `depends_on` derives from producer/consumer artifact-token matching over
|
|
214
|
-
* `inputs`/`outputs` ALONE. Drafted `neighbor_needs` never enter this graph
|
|
215
|
-
* (open-bugs.md:106): they are symmetric coordination prose whose directions
|
|
216
|
-
* per-module drafting agents routinely invert, and unioning them in let prose
|
|
217
|
-
* override every declared token edge — finalization drops the field instead.
|
|
218
|
-
* A module that consumes from another is one tier ABOVE it. Tolerant of
|
|
219
|
-
* malformed payloads: anything unparseable contributes no module/edge.
|
|
220
|
-
*/
|
|
221
|
-
export function phaseCutModulesFromContracts(contractsPayload) {
|
|
222
|
-
const root = contractsPayload;
|
|
223
|
-
const list = Array.isArray(root?.module_contracts) ? root.module_contracts : [];
|
|
224
|
-
const { deps } = deriveModuleArtifactGraph(contractsPayload);
|
|
225
|
-
const out = [];
|
|
226
|
-
for (const mod of list) {
|
|
227
|
-
if (typeof mod !== "object" || mod === null)
|
|
228
|
-
continue;
|
|
229
|
-
const m = mod;
|
|
230
|
-
if (typeof m.name !== "string" || m.name.length === 0)
|
|
231
|
-
continue;
|
|
232
|
-
out.push({ name: m.name, depends_on: [...(deps.get(m.name) ?? [])] });
|
|
233
|
-
}
|
|
234
|
-
return out;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Detect cycles in the DECLARED module-dependency graph — the producer/consumer
|
|
238
|
-
* `artifact:` token edges of a module-contracts payload (drafted or finalized;
|
|
239
|
-
* finalization copies `inputs`/`outputs` verbatim, so the two graphs are equal).
|
|
240
|
-
* A cycle here is a VALIDATION error at the contract boundary (open-bugs.md:106):
|
|
241
|
-
* the phase cut must never be derived over a cyclic declared graph, because the
|
|
242
|
-
* fail-toward-later tiering silently drops a back-edge and places token
|
|
243
|
-
* consumers ahead of their producers. Members and their linking edges are
|
|
244
|
-
* reported so the repair prompt can name exactly which tokens form each cycle.
|
|
245
|
-
*/
|
|
246
|
-
export function detectContractTokenCycles(contractsPayload) {
|
|
247
|
-
const { deps, edges } = deriveModuleArtifactGraph(contractsPayload);
|
|
248
|
-
const components = findCyclicComponents([...deps.entries()].map(([id, dependsOn]) => ({ id, depends_on: [...dependsOn] })));
|
|
249
|
-
return components.map((members) => {
|
|
250
|
-
const memberSet = new Set(members);
|
|
251
|
-
return {
|
|
252
|
-
members,
|
|
253
|
-
edges: edges.filter((e) => memberSet.has(e.consumer) && memberSet.has(e.producer)),
|
|
254
|
-
};
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Add Path-A seam-preparation edges to the contract-derived module DAG. The
|
|
259
|
-
* decomposition gate has already guaranteed one preparer per required seam;
|
|
260
|
-
* this projection makes every implementation module for either participating
|
|
261
|
-
* work block depend on that preparer, yielding a seam-first phase followed by
|
|
262
|
-
* parallel refactor modules.
|
|
263
|
-
*/
|
|
264
|
-
export function applyWorkBlockSeamDependencies(modules, moduleDecompositionPayload, pathASeedPayload) {
|
|
265
|
-
const decomposition = moduleDecompositionPayload;
|
|
266
|
-
const decomposed = Array.isArray(decomposition?.modules) ? decomposition.modules : [];
|
|
267
|
-
const seed = pathASeedPayload;
|
|
268
|
-
const seams = Array.isArray(seed?.work_block_seams) ? seed.work_block_seams : [];
|
|
269
|
-
if (decomposed.length === 0 || seams.length === 0)
|
|
270
|
-
return modules;
|
|
271
|
-
const sourceBlocksByModule = new Map();
|
|
272
|
-
const preparerBySeam = new Map();
|
|
273
|
-
for (const value of decomposed) {
|
|
274
|
-
if (typeof value !== "object" || value === null)
|
|
275
|
-
continue;
|
|
276
|
-
const mod = value;
|
|
277
|
-
if (typeof mod.name !== "string")
|
|
278
|
-
continue;
|
|
279
|
-
sourceBlocksByModule.set(mod.name, new Set(Array.isArray(mod.source_work_block_ids)
|
|
280
|
-
? mod.source_work_block_ids.filter((id) => typeof id === "string")
|
|
281
|
-
: []));
|
|
282
|
-
for (const seamId of Array.isArray(mod.prepares_seam_ids)
|
|
283
|
-
? mod.prepares_seam_ids
|
|
284
|
-
: []) {
|
|
285
|
-
if (typeof seamId === "string" && !preparerBySeam.has(seamId)) {
|
|
286
|
-
preparerBySeam.set(seamId, mod.name);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
const extraDeps = new Map();
|
|
291
|
-
for (const value of seams) {
|
|
292
|
-
if (typeof value !== "object" || value === null)
|
|
293
|
-
continue;
|
|
294
|
-
const seam = value;
|
|
295
|
-
if (seam.requires_preparation !== true || typeof seam.id !== "string")
|
|
296
|
-
continue;
|
|
297
|
-
const preparer = preparerBySeam.get(seam.id);
|
|
298
|
-
if (!preparer)
|
|
299
|
-
continue;
|
|
300
|
-
const blockIds = new Set(Array.isArray(seam.block_ids)
|
|
301
|
-
? seam.block_ids.filter((id) => typeof id === "string")
|
|
302
|
-
: []);
|
|
303
|
-
for (const [moduleName, sourceBlocks] of sourceBlocksByModule) {
|
|
304
|
-
if (moduleName === preparer)
|
|
305
|
-
continue;
|
|
306
|
-
if (![...sourceBlocks].some((id) => blockIds.has(id)))
|
|
307
|
-
continue;
|
|
308
|
-
const deps = extraDeps.get(moduleName) ?? new Set();
|
|
309
|
-
deps.add(preparer);
|
|
310
|
-
extraDeps.set(moduleName, deps);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return modules.map((module) => ({
|
|
314
|
-
...module,
|
|
315
|
-
depends_on: [
|
|
316
|
-
...new Set([...module.depends_on, ...(extraDeps.get(module.name) ?? [])]),
|
|
317
|
-
].sort((a, b) => compareCodeUnits(a, b)),
|
|
318
|
-
}));
|
|
319
|
-
}
|
|
320
|
-
/** Render the derived phase cut as a markdown section for the critique prompt. */
|
|
321
|
-
export function renderPhaseCutSection(cut) {
|
|
322
|
-
const lines = cut.phases.map((p) => `- **Phase ${p.ordinal} — ${p.name}** (${p.modules.length} module(s)): ${p.modules.join(", ")}`);
|
|
323
|
-
return `## Mechanically-Derived Phase Cut
|
|
324
|
-
|
|
325
|
-
This change is **not** executed as one monolithic landing. The tool derived the
|
|
326
|
-
following ordered, dependency-gated phase cut from the module-dependency DAG —
|
|
327
|
-
each phase's modules depend only on earlier phases, and the scheduler enforces the
|
|
328
|
-
ordering with mechanical dependencies (a later-phase module cannot dispatch until
|
|
329
|
-
its foundations are verified-complete, with a whole-repo green gate between phases):
|
|
330
|
-
|
|
331
|
-
${lines.join("\n")}
|
|
332
|
-
|
|
333
|
-
Assess the **design quality** within this phasing. Do NOT reject the work as
|
|
334
|
-
"over-scoped" or "too large for one change" — breadth is already handled by
|
|
335
|
-
construction: the phases land incrementally, green at every commit. Flag a real
|
|
336
|
-
design problem (a wrong boundary, a missing invariant, an unsound seam), not the
|
|
337
|
-
number of modules.${cut.has_cycle ? "\n\n> NOTE: a dependency cycle was detected among the modules; its members were tiered together. A genuine circular dependency between modules is a design smell worth your scrutiny." : ""}`;
|
|
338
|
-
}
|
|
339
|
-
//# sourceMappingURL=phaseCut.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"phaseCut.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Phase-cut sidecar artifact (remediator auto-phasing, T3).
|
|
3
|
-
*
|
|
4
|
-
* The foundations→consumers phase cut derived by {@link derivePhaseCut} is a
|
|
5
|
-
* DERIVED, deterministic artifact (a pure function of the finalized module
|
|
6
|
-
* contracts' module-dependency DAG — producer/consumer `artifact:<name>` tokens
|
|
7
|
-
* in `inputs`/`outputs` alone). It is persisted as a
|
|
8
|
-
* first-class sidecar —
|
|
9
|
-
* `intake/contract/phase_cut.json` — so the cut the conceptual critique sees and
|
|
10
|
-
* the cut the implementation-DAG promotion enforces are ONE source, inspectable
|
|
11
|
-
* on disk, not two inline recomputations that could drift.
|
|
12
|
-
*
|
|
13
|
-
* It is deliberately NOT a member of `CP_ARTIFACT_NAMES`: that enum drives the
|
|
14
|
-
* LLM-phase staleness DAG and the phase-progression completeness checks, where an
|
|
15
|
-
* "absent" entry perturbs sequencing. The cut is re-derivable on demand from
|
|
16
|
-
* `finalized_module_contracts`, so it carries no staleness envelope — it is simply
|
|
17
|
-
* (re)written whenever its single upstream is available, and read by consumers.
|
|
18
|
-
*/
|
|
19
|
-
import { type PhaseCut } from "./phaseCut.js";
|
|
20
|
-
export declare const PHASE_CUT_FILE = "phase_cut.json";
|
|
21
|
-
export declare function phaseCutFilePath(artifactsDir: string): string;
|
|
22
|
-
/** Read the persisted cut, or null if it has not been written yet. */
|
|
23
|
-
export declare function readPhaseCutArtifact(artifactsDir: string): Promise<PhaseCut | null>;
|
|
24
|
-
/**
|
|
25
|
-
* Derive the cut from the on-disk `finalized_module_contracts` and (re)write the
|
|
26
|
-
* sidecar. Idempotent: a finalized-contracts payload that yields the same DAG
|
|
27
|
-
* yields byte-identical JSON. Returns the derived cut, or null when there are no
|
|
28
|
-
* in-scope modules to phase (no finalized contracts on disk yet).
|
|
29
|
-
*/
|
|
30
|
-
export declare function ensurePhaseCutArtifact(artifactsDir: string): Promise<PhaseCut | null>;
|
|
31
|
-
//# sourceMappingURL=phaseCutArtifact.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"phaseCutArtifact.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCutArtifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,sEAAsE;AACtE,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE1B;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiB1B"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Phase-cut sidecar artifact (remediator auto-phasing, T3).
|
|
3
|
-
*
|
|
4
|
-
* The foundations→consumers phase cut derived by {@link derivePhaseCut} is a
|
|
5
|
-
* DERIVED, deterministic artifact (a pure function of the finalized module
|
|
6
|
-
* contracts' module-dependency DAG — producer/consumer `artifact:<name>` tokens
|
|
7
|
-
* in `inputs`/`outputs` alone). It is persisted as a
|
|
8
|
-
* first-class sidecar —
|
|
9
|
-
* `intake/contract/phase_cut.json` — so the cut the conceptual critique sees and
|
|
10
|
-
* the cut the implementation-DAG promotion enforces are ONE source, inspectable
|
|
11
|
-
* on disk, not two inline recomputations that could drift.
|
|
12
|
-
*
|
|
13
|
-
* It is deliberately NOT a member of `CP_ARTIFACT_NAMES`: that enum drives the
|
|
14
|
-
* LLM-phase staleness DAG and the phase-progression completeness checks, where an
|
|
15
|
-
* "absent" entry perturbs sequencing. The cut is re-derivable on demand from
|
|
16
|
-
* `finalized_module_contracts`, so it carries no staleness envelope — it is simply
|
|
17
|
-
* (re)written whenever its single upstream is available, and read by consumers.
|
|
18
|
-
*/
|
|
19
|
-
import { join } from "node:path";
|
|
20
|
-
import { readOptionalJsonFile, writeJsonFile } from "audit-tools/shared";
|
|
21
|
-
import { contractPipelineDir, pathASeedFilePath, readContractArtifact, envelopePayload, } from "./artifactStore.js";
|
|
22
|
-
import { derivePhaseCut, applyWorkBlockSeamDependencies, phaseCutModulesFromContracts, } from "./phaseCut.js";
|
|
23
|
-
export const PHASE_CUT_FILE = "phase_cut.json";
|
|
24
|
-
export function phaseCutFilePath(artifactsDir) {
|
|
25
|
-
return join(contractPipelineDir(artifactsDir), PHASE_CUT_FILE);
|
|
26
|
-
}
|
|
27
|
-
/** Read the persisted cut, or null if it has not been written yet. */
|
|
28
|
-
export async function readPhaseCutArtifact(artifactsDir) {
|
|
29
|
-
return (await readOptionalJsonFile(phaseCutFilePath(artifactsDir))) ?? null;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Derive the cut from the on-disk `finalized_module_contracts` and (re)write the
|
|
33
|
-
* sidecar. Idempotent: a finalized-contracts payload that yields the same DAG
|
|
34
|
-
* yields byte-identical JSON. Returns the derived cut, or null when there are no
|
|
35
|
-
* in-scope modules to phase (no finalized contracts on disk yet).
|
|
36
|
-
*/
|
|
37
|
-
export async function ensurePhaseCutArtifact(artifactsDir) {
|
|
38
|
-
const finalized = envelopePayload(await readContractArtifact(artifactsDir, "finalized_module_contracts"));
|
|
39
|
-
const decomposition = envelopePayload(await readContractArtifact(artifactsDir, "module_decomposition"));
|
|
40
|
-
const pathASeed = await readOptionalJsonFile(pathASeedFilePath(artifactsDir));
|
|
41
|
-
const modules = applyWorkBlockSeamDependencies(phaseCutModulesFromContracts(finalized), decomposition, pathASeed);
|
|
42
|
-
if (modules.length === 0)
|
|
43
|
-
return null;
|
|
44
|
-
const cut = derivePhaseCut(modules);
|
|
45
|
-
await writeJsonFile(phaseCutFilePath(artifactsDir), cut);
|
|
46
|
-
return cut;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=phaseCutArtifact.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"phaseCutArtifact.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCutArtifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,8BAA8B,EAC9B,4BAA4B,GAE7B,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE/C,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB;IAEpB,OAAO,CAAC,MAAM,oBAAoB,CAAW,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAAoB;IAEpB,MAAM,SAAS,GAAG,eAAe,CAC/B,MAAM,oBAAoB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CACvE,CAAC;IACF,MAAM,aAAa,GAAG,eAAe,CACnC,MAAM,oBAAoB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CACjE,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAU,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,8BAA8B,CAC5C,4BAA4B,CAAC,SAAS,CAAC,EACvC,aAAa,EACb,SAAS,CACV,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { type Counterexample } from "audit-tools/shared";
|
|
2
|
-
/** One recorded owner waiver: this counterexample is an accepted limitation of THIS run. */
|
|
3
|
-
export interface CounterexampleWaiver {
|
|
4
|
-
/** The counterexample id as the judge report / counterexample artifact names it. */
|
|
5
|
-
ce_id: string;
|
|
6
|
-
/**
|
|
7
|
-
* Content-derived identity (`fp:<fingerprint>`, falling back to `id:<raw>`),
|
|
8
|
-
* computed at fold time — the SAME keying the convergence gate uses, so a
|
|
9
|
-
* waiver survives a re-derived counterexample artifact that re-labels the
|
|
10
|
-
* same claim with a new id. A CHANGED claim gets a new fingerprint and
|
|
11
|
-
* correctly re-surfaces: the waiver bound the claim, not the label.
|
|
12
|
-
*/
|
|
13
|
-
key: string;
|
|
14
|
-
/** Why this counterexample is accepted as a limitation. Required, non-empty. */
|
|
15
|
-
rationale: string;
|
|
16
|
-
/** Who decided. Attributable identity, not proof — see the module header. */
|
|
17
|
-
waived_by: string;
|
|
18
|
-
waived_at: string;
|
|
19
|
-
}
|
|
20
|
-
export interface ContractRepairState {
|
|
21
|
-
schema_version: "remediate-code-contract-pipeline/repair-state/v1alpha1";
|
|
22
|
-
/**
|
|
23
|
-
* One entry per judge-ordered repair step emission (keyed by judge hash).
|
|
24
|
-
* `accepted_ce_ids` records the judge-accepted counterexample ids this repair
|
|
25
|
-
* was dispatched to address, for human debugging/display only.
|
|
26
|
-
* `addressed_ce_fingerprints` is the CONTENT-keyed form the convergence gate
|
|
27
|
-
* actually diffs against — see `counterexampleKeyOf`: raw reviewer
|
|
28
|
-
* ids are not stable cross-round identity (two independent adversarial
|
|
29
|
-
* rounds commonly both label their top counterexample "CE-001"), so the gate
|
|
30
|
-
* resolves each accepted id against the live counterexample artifact and
|
|
31
|
-
* keys on content (violated_obligation_ids + normalized claim) instead,
|
|
32
|
-
* falling back to raw-id keying only when an id cannot be resolved. The
|
|
33
|
-
* cumulative union of fingerprints across repairs is the "already-addressed"
|
|
34
|
-
* set; a re-accepted (un-converged) counterexample is detected as a stall
|
|
35
|
-
* rather than silently re-repaired. Entries written before this field
|
|
36
|
-
* existed lack it — they default to `[]` (fail-open: at most one extra
|
|
37
|
-
* repair round on an in-flight upgrade, never a false stall).
|
|
38
|
-
*/
|
|
39
|
-
repairs: {
|
|
40
|
-
judge_hash: string;
|
|
41
|
-
target: string;
|
|
42
|
-
at: string;
|
|
43
|
-
accepted_ce_ids?: string[];
|
|
44
|
-
addressed_ce_fingerprints?: string[];
|
|
45
|
-
}[];
|
|
46
|
-
/**
|
|
47
|
-
* One entry per conceptual-design-critique-driven design repair (keyed by
|
|
48
|
-
* critique hash). `blocking_ids` records the blocking critique-item ids the
|
|
49
|
-
* repair was dispatched to address. Target-scoped history permits upstream-to-interface
|
|
50
|
-
* progress without resetting the global iteration bound. The per-target union is the
|
|
51
|
-
* "already-addressed" set the critique convergence gate diffs each fresh
|
|
52
|
-
* critique against, so a re-raised (un-resolved) blocking concern is detected
|
|
53
|
-
* as a stall rather than silently re-repaired forever.
|
|
54
|
-
*/
|
|
55
|
-
critique_repairs: {
|
|
56
|
-
critique_hash: string;
|
|
57
|
-
at: string;
|
|
58
|
-
blocking_ids: string[];
|
|
59
|
-
target?: "finalized_module_contracts" | "module_decomposition";
|
|
60
|
-
}[];
|
|
61
|
-
/** One entry per implementation_dag traceability rejection. */
|
|
62
|
-
dag_regenerations: {
|
|
63
|
-
violations: string[];
|
|
64
|
-
at: string;
|
|
65
|
-
}[];
|
|
66
|
-
/** Recorded owner waivers — absent on ledgers written before the verb existed. */
|
|
67
|
-
waivers?: CounterexampleWaiver[];
|
|
68
|
-
}
|
|
69
|
-
export declare function readRepairState(artifactsDir: string): Promise<ContractRepairState>;
|
|
70
|
-
export declare function writeRepairState(artifactsDir: string, state: ContractRepairState): Promise<void>;
|
|
71
|
-
/** The tool-named host lane: the operator's waiver decisions land here. */
|
|
72
|
-
export declare function counterexampleWaiversPath(artifactsDir: string): string;
|
|
73
|
-
/** id → live counterexample entry, from a (possibly absent) artifact payload. */
|
|
74
|
-
export declare function counterexamplesByIdOf(counterexamplePayload: unknown): Map<string, Counterexample>;
|
|
75
|
-
/**
|
|
76
|
-
* Content-keyed identity for a counterexample id: `fp:<fingerprint>` when the
|
|
77
|
-
* id resolves against the live artifact, `id:<raw>` otherwise. The ONE keying
|
|
78
|
-
* both the convergence gate and the waiver ledger use.
|
|
79
|
-
*/
|
|
80
|
-
export declare function counterexampleKeyOf(counterexamplesById: ReadonlyMap<string, Counterexample>, rawId: string): string;
|
|
81
|
-
/** The subset of `acceptedIds` covered by recorded waivers (fingerprint-first, raw-id fallback). */
|
|
82
|
-
export declare function waivedAcceptedIds(state: ContractRepairState, counterexamplesById: ReadonlyMap<string, Counterexample>, acceptedIds: readonly string[]): Set<string>;
|
|
83
|
-
/**
|
|
84
|
-
* Payload-level convenience for the cross-gate callers: which of the CURRENT
|
|
85
|
-
* judge report's accepted counterexample ids are waived in the ledger.
|
|
86
|
-
*/
|
|
87
|
-
export declare function waivedJudgeAcceptedIds(state: ContractRepairState, judgeReportPayload: unknown, counterexamplePayload: unknown): Set<string>;
|
|
88
|
-
/** Outcome of one waiver-file fold attempt. */
|
|
89
|
-
export interface WaiverFold {
|
|
90
|
-
/** Validation problems. Non-empty means NOTHING was applied and the file remains. */
|
|
91
|
-
issues: string[];
|
|
92
|
-
/** Newly recorded waivers (0 when the file is absent or everything was a duplicate). */
|
|
93
|
-
folded: number;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Fold the host-written waiver file into the ledger — all-or-nothing.
|
|
97
|
-
*
|
|
98
|
-
* Absent file: no-op. Any invalid entry (malformed JSON, missing/empty
|
|
99
|
-
* `ce_id` / `rationale` / `waived_by`, or a `ce_id` that matches neither a
|
|
100
|
-
* live counterexample nor a judge-accepted id) refuses the WHOLE file: nothing
|
|
101
|
-
* is applied, the file stays in place, and the issues are returned for the
|
|
102
|
-
* blocked step to name — an invalid decision record must never half-apply.
|
|
103
|
-
* Valid entries are deduped by content key, appended to `state.waivers`,
|
|
104
|
-
* persisted, and the file is consumed (deleted).
|
|
105
|
-
*/
|
|
106
|
-
export declare function foldCounterexampleWaivers(artifactsDir: string, context: {
|
|
107
|
-
counterexamplesById: ReadonlyMap<string, Counterexample>;
|
|
108
|
-
judgeAcceptedIds: ReadonlySet<string>;
|
|
109
|
-
}): Promise<WaiverFold>;
|
|
110
|
-
//# sourceMappingURL=repairState.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repairState.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/repairState.ts"],"names":[],"mappings":"AAsBA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAI5B,4FAA4F;AAC5F,MAAM,WAAW,oBAAoB;IACnC,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,wDAAwD,CAAC;IACzE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;KACtC,EAAE,CAAC;IACJ;;;;;;;;OAQG;IACH,gBAAgB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,4BAA4B,GAAG,sBAAsB,CAAA;KAAE,EAAE,CAAC;IAClJ,+DAA+D;IAC/D,iBAAiB,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,kFAAkF;IAClF,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAMD,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAYxF;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf;AAMD,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,qBAAqB,EAAE,OAAO,GAC7B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAW7B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EACxD,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR;AAqBD,oGAAoG;AACpG,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EACxD,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,GAAG,CAAC,MAAM,CAAC,CAUb;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,mBAAmB,EAC1B,kBAAkB,EAAE,OAAO,EAC3B,qBAAqB,EAAE,OAAO,GAC7B,GAAG,CAAC,MAAM,CAAC,CAMb;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;IACP,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzD,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,GACA,OAAO,CAAC,UAAU,CAAC,CA0ErB"}
|