@sun-asterisk/sungen 3.3.0-alpha.1 → 3.3.0-alpha.10
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/capabilities/discover.d.ts +4 -0
- package/dist/capabilities/discover.d.ts.map +1 -1
- package/dist/capabilities/discover.js +16 -2
- package/dist/capabilities/discover.js.map +1 -1
- package/dist/cli/case-triage-hint.d.ts +14 -0
- package/dist/cli/case-triage-hint.d.ts.map +1 -0
- package/dist/cli/case-triage-hint.js +23 -0
- package/dist/cli/case-triage-hint.js.map +1 -0
- package/dist/cli/commands/audit.js +1 -1
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/contract-derive-command.d.ts +4 -2
- package/dist/cli/commands/contract-derive-command.d.ts.map +1 -1
- package/dist/cli/commands/contract-derive-command.js +19 -5
- package/dist/cli/commands/contract-derive-command.js.map +1 -1
- package/dist/cli/commands/contract.d.ts +3 -0
- package/dist/cli/commands/contract.d.ts.map +1 -1
- package/dist/cli/commands/contract.js +40 -7
- package/dist/cli/commands/contract.js.map +1 -1
- package/dist/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +59 -18
- package/dist/cli/commands/delivery.js.map +1 -1
- package/dist/cli/commands/gate.d.ts.map +1 -1
- package/dist/cli/commands/gate.js +2 -1
- package/dist/cli/commands/gate.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +14 -2
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/journey.d.ts.map +1 -1
- package/dist/cli/commands/journey.js +6 -4
- package/dist/cli/commands/journey.js.map +1 -1
- package/dist/cli/commands/next.d.ts +7 -2
- package/dist/cli/commands/next.d.ts.map +1 -1
- package/dist/cli/commands/next.js +41 -10
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/triage.d.ts +2 -1
- package/dist/cli/commands/triage.d.ts.map +1 -1
- package/dist/cli/commands/triage.js +45 -3
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +6 -2
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/json-error-on-exit.d.ts +34 -0
- package/dist/cli/json-error-on-exit.d.ts.map +1 -0
- package/dist/cli/json-error-on-exit.js +63 -0
- package/dist/cli/json-error-on-exit.js.map +1 -0
- package/dist/cli/project-sungen-invocation.d.ts +13 -0
- package/dist/cli/project-sungen-invocation.d.ts.map +1 -0
- package/dist/cli/project-sungen-invocation.js +95 -0
- package/dist/cli/project-sungen-invocation.js.map +1 -0
- package/dist/cli/run-command-hints.d.ts +9 -0
- package/dist/cli/run-command-hints.d.ts.map +1 -0
- package/dist/cli/run-command-hints.js +84 -0
- package/dist/cli/run-command-hints.js.map +1 -0
- package/dist/cli/waiting-for-you-block.d.ts +18 -0
- package/dist/cli/waiting-for-you-block.d.ts.map +1 -0
- package/dist/cli/waiting-for-you-block.js +22 -0
- package/dist/cli/waiting-for-you-block.js.map +1 -0
- package/dist/contract/accept-opaque-steps.d.ts +3 -0
- package/dist/contract/accept-opaque-steps.d.ts.map +1 -0
- package/dist/contract/accept-opaque-steps.js +114 -0
- package/dist/contract/accept-opaque-steps.js.map +1 -0
- package/dist/contract/approve-contract.d.ts +8 -1
- package/dist/contract/approve-contract.d.ts.map +1 -1
- package/dist/contract/approve-contract.js +6 -0
- package/dist/contract/approve-contract.js.map +1 -1
- package/dist/contract/build-contract-verdict.js +2 -2
- package/dist/contract/build-contract-verdict.js.map +1 -1
- package/dist/contract/build-trace-conformance.d.ts +5 -1
- package/dist/contract/build-trace-conformance.d.ts.map +1 -1
- package/dist/contract/build-trace-conformance.js +12 -14
- package/dist/contract/build-trace-conformance.js.map +1 -1
- package/dist/contract/classify-contract-change.d.ts +3 -2
- package/dist/contract/classify-contract-change.d.ts.map +1 -1
- package/dist/contract/classify-contract-change.js.map +1 -1
- package/dist/contract/classify-trace-conformance.d.ts +18 -3
- package/dist/contract/classify-trace-conformance.d.ts.map +1 -1
- package/dist/contract/classify-trace-conformance.js +64 -17
- package/dist/contract/classify-trace-conformance.js.map +1 -1
- package/dist/contract/contract-schema.d.ts +21 -0
- package/dist/contract/contract-schema.d.ts.map +1 -1
- package/dist/contract/contract-schema.js +25 -3
- package/dist/contract/contract-schema.js.map +1 -1
- package/dist/contract/contracts-lock-file.d.ts.map +1 -1
- package/dist/contract/contracts-lock-file.js +1 -0
- package/dist/contract/contracts-lock-file.js.map +1 -1
- package/dist/contract/derive-free-feature.d.ts +19 -0
- package/dist/contract/derive-free-feature.d.ts.map +1 -1
- package/dist/contract/derive-free-feature.js +40 -2
- package/dist/contract/derive-free-feature.js.map +1 -1
- package/dist/contract/project-contract-blockers.d.ts.map +1 -1
- package/dist/contract/project-contract-blockers.js +4 -2
- package/dist/contract/project-contract-blockers.js.map +1 -1
- package/dist/contract/record-contract-approval.d.ts +16 -1
- package/dist/contract/record-contract-approval.d.ts.map +1 -1
- package/dist/contract/record-contract-approval.js +29 -1
- package/dist/contract/record-contract-approval.js.map +1 -1
- package/dist/contract/render-free-gherkin.d.ts +2 -0
- package/dist/contract/render-free-gherkin.d.ts.map +1 -1
- package/dist/contract/render-free-gherkin.js +6 -0
- package/dist/contract/render-free-gherkin.js.map +1 -1
- package/dist/contract/resolve-unit-trace-identities.d.ts +12 -0
- package/dist/contract/resolve-unit-trace-identities.d.ts.map +1 -1
- package/dist/contract/resolve-unit-trace-identities.js +33 -49
- package/dist/contract/resolve-unit-trace-identities.js.map +1 -1
- package/dist/contract/trace/collect-trace-evidence.d.ts +16 -5
- package/dist/contract/trace/collect-trace-evidence.d.ts.map +1 -1
- package/dist/contract/trace/collect-trace-evidence.js +101 -43
- package/dist/contract/trace/collect-trace-evidence.js.map +1 -1
- package/dist/contract/trace/read-file-once.d.ts +20 -0
- package/dist/contract/trace/read-file-once.d.ts.map +1 -0
- package/dist/contract/trace/read-file-once.js +135 -0
- package/dist/contract/trace/read-file-once.js.map +1 -0
- package/dist/contract/trace/scenario-id-claims.d.ts +11 -0
- package/dist/contract/trace/scenario-id-claims.d.ts.map +1 -0
- package/dist/contract/trace/scenario-id-claims.js +89 -0
- package/dist/contract/trace/scenario-id-claims.js.map +1 -0
- package/dist/contract/trace/select-final-attempt.d.ts +4 -2
- package/dist/contract/trace/select-final-attempt.d.ts.map +1 -1
- package/dist/contract/trace/select-final-attempt.js +7 -4
- package/dist/contract/trace/select-final-attempt.js.map +1 -1
- package/dist/contract/trace/test-step-join.d.ts +3 -3
- package/dist/contract/trace/test-step-join.d.ts.map +1 -1
- package/dist/contract/trace/test-step-join.js +2 -2
- package/dist/contract/trace/test-step-join.js.map +1 -1
- package/dist/contract/trace/trace-binding.d.ts +3 -2
- package/dist/contract/trace/trace-binding.d.ts.map +1 -1
- package/dist/contract/trace/trace-binding.js +6 -3
- package/dist/contract/trace/trace-binding.js.map +1 -1
- package/dist/contract/trace/trace-file-reader.d.ts +14 -2
- package/dist/contract/trace/trace-file-reader.d.ts.map +1 -1
- package/dist/contract/trace/trace-file-reader.js +27 -45
- package/dist/contract/trace/trace-file-reader.js.map +1 -1
- package/dist/contract/trace/trace-freshness.d.ts +27 -0
- package/dist/contract/trace/trace-freshness.d.ts.map +1 -0
- package/dist/contract/trace/trace-freshness.js +146 -0
- package/dist/contract/trace/trace-freshness.js.map +1 -0
- package/dist/contract/trace/trace-identity-resolution.d.ts +2 -0
- package/dist/contract/trace/trace-identity-resolution.d.ts.map +1 -1
- package/dist/contract/trace/trace-identity-resolution.js +6 -3
- package/dist/contract/trace/trace-identity-resolution.js.map +1 -1
- package/dist/contract/trace/trace-run-record.d.ts +8 -3
- package/dist/contract/trace/trace-run-record.d.ts.map +1 -1
- package/dist/contract/trace/trace-run-record.js +42 -22
- package/dist/contract/trace/trace-run-record.js.map +1 -1
- package/dist/contract/trace/trace-steps.js +1 -1
- package/dist/contract/trace/trace-steps.js.map +1 -1
- package/dist/contract/trace/trace-zip-limits.d.ts +5 -1
- package/dist/contract/trace/trace-zip-limits.d.ts.map +1 -1
- package/dist/contract/trace/trace-zip-limits.js +6 -2
- package/dist/contract/trace/trace-zip-limits.js.map +1 -1
- package/dist/contract/verify-approval-decisions.d.ts.map +1 -1
- package/dist/contract/verify-approval-decisions.js +9 -4
- package/dist/contract/verify-approval-decisions.js.map +1 -1
- package/dist/decisions/confirmed-decision-commands.d.ts +11 -0
- package/dist/decisions/confirmed-decision-commands.d.ts.map +1 -1
- package/dist/decisions/confirmed-decision-commands.js +21 -3
- package/dist/decisions/confirmed-decision-commands.js.map +1 -1
- package/dist/decisions/decision-schema.d.ts +2 -1
- package/dist/decisions/decision-schema.d.ts.map +1 -1
- package/dist/decisions/decision-schema.js +2 -1
- package/dist/decisions/decision-schema.js.map +1 -1
- package/dist/decisions/git-head-trust.d.ts +12 -0
- package/dist/decisions/git-head-trust.d.ts.map +1 -1
- package/dist/decisions/git-head-trust.js +52 -0
- package/dist/decisions/git-head-trust.js.map +1 -1
- package/dist/decisions/human-confirmation.d.ts +2 -0
- package/dist/decisions/human-confirmation.d.ts.map +1 -1
- package/dist/decisions/human-confirmation.js +6 -0
- package/dist/decisions/human-confirmation.js.map +1 -1
- package/dist/decisions/legacy-waiver-migration.d.ts +8 -1
- package/dist/decisions/legacy-waiver-migration.d.ts.map +1 -1
- package/dist/decisions/legacy-waiver-migration.js +13 -4
- package/dist/decisions/legacy-waiver-migration.js.map +1 -1
- package/dist/exporters/csv-exporter.d.ts +11 -2
- package/dist/exporters/csv-exporter.d.ts.map +1 -1
- package/dist/exporters/csv-exporter.js +8 -4
- package/dist/exporters/csv-exporter.js.map +1 -1
- package/dist/exporters/matrix/export.d.ts +6 -1
- package/dist/exporters/matrix/export.d.ts.map +1 -1
- package/dist/exporters/matrix/export.js +11 -4
- package/dist/exporters/matrix/export.js.map +1 -1
- package/dist/exporters/matrix/xlsx-cells.js +1 -1
- package/dist/exporters/matrix/xlsx-cells.js.map +1 -1
- package/dist/exporters/xlsx-exporter.d.ts +3 -2
- package/dist/exporters/xlsx-exporter.d.ts.map +1 -1
- package/dist/exporters/xlsx-exporter.js +4 -4
- package/dist/exporters/xlsx-exporter.js.map +1 -1
- package/dist/graph/board-human-actions.d.ts +5 -0
- package/dist/graph/board-human-actions.d.ts.map +1 -0
- package/dist/graph/board-human-actions.js +83 -0
- package/dist/graph/board-human-actions.js.map +1 -0
- package/dist/graph/evaluate-graph.d.ts +21 -1
- package/dist/graph/evaluate-graph.d.ts.map +1 -1
- package/dist/graph/evaluate-graph.js +37 -9
- package/dist/graph/evaluate-graph.js.map +1 -1
- package/dist/graph/human-action.d.ts +21 -0
- package/dist/graph/human-action.d.ts.map +1 -0
- package/dist/graph/human-action.js +3 -0
- package/dist/graph/human-action.js.map +1 -0
- package/dist/graph/manual-triage-decisions.d.ts +19 -0
- package/dist/graph/manual-triage-decisions.d.ts.map +1 -0
- package/dist/graph/manual-triage-decisions.js +53 -0
- package/dist/graph/manual-triage-decisions.js.map +1 -0
- package/dist/graph/node-decl.d.ts +16 -0
- package/dist/graph/node-decl.d.ts.map +1 -1
- package/dist/graph/node-decl.js +4 -1
- package/dist/graph/node-decl.js.map +1 -1
- package/dist/graph/nodes/test-case-contract-nodes.d.ts +3 -1
- package/dist/graph/nodes/test-case-contract-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/test-case-contract-nodes.js +22 -6
- package/dist/graph/nodes/test-case-contract-nodes.js.map +1 -1
- package/dist/graph/nodes/test-case-nodes.d.ts +3 -0
- package/dist/graph/nodes/test-case-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/test-case-nodes.js +33 -4
- package/dist/graph/nodes/test-case-nodes.js.map +1 -1
- package/dist/graph/nodes/unit-audit-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/unit-audit-nodes.js +1 -0
- package/dist/graph/nodes/unit-audit-nodes.js.map +1 -1
- package/dist/graph/nodes/unit-contract-node.d.ts +2 -1
- package/dist/graph/nodes/unit-contract-node.d.ts.map +1 -1
- package/dist/graph/nodes/unit-contract-node.js +16 -1
- package/dist/graph/nodes/unit-contract-node.js.map +1 -1
- package/dist/graph/nodes/unit-design-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/unit-design-nodes.js +2 -1
- package/dist/graph/nodes/unit-design-nodes.js.map +1 -1
- package/dist/graph/test-case-results.d.ts +1 -0
- package/dist/graph/test-case-results.d.ts.map +1 -1
- package/dist/graph/test-case-results.js +27 -3
- package/dist/graph/test-case-results.js.map +1 -1
- package/dist/graph/test-case-satisfied.d.ts +5 -4
- package/dist/graph/test-case-satisfied.d.ts.map +1 -1
- package/dist/graph/test-case-satisfied.js +4 -0
- package/dist/graph/test-case-satisfied.js.map +1 -1
- package/dist/graph/test-case-state-shape.d.ts +7 -1
- package/dist/graph/test-case-state-shape.d.ts.map +1 -1
- package/dist/graph/unit-artifact-probes.d.ts.map +1 -1
- package/dist/graph/unit-artifact-probes.js +3 -1
- package/dist/graph/unit-artifact-probes.js.map +1 -1
- package/dist/graph/unit-results-freshness.d.ts +29 -0
- package/dist/graph/unit-results-freshness.d.ts.map +1 -0
- package/dist/graph/unit-results-freshness.js +213 -0
- package/dist/graph/unit-results-freshness.js.map +1 -0
- package/dist/harness/audit.d.ts +3 -2
- package/dist/harness/audit.d.ts.map +1 -1
- package/dist/harness/audit.js +4 -17
- package/dist/harness/audit.js.map +1 -1
- package/dist/harness/catalog/gate-rules.yaml +3 -3
- package/dist/harness/defect-draft.d.ts.map +1 -1
- package/dist/harness/defect-draft.js +12 -2
- package/dist/harness/defect-draft.js.map +1 -1
- package/dist/harness/defects.d.ts +14 -0
- package/dist/harness/defects.d.ts.map +1 -1
- package/dist/harness/defects.js +14 -10
- package/dist/harness/defects.js.map +1 -1
- package/dist/harness/flow-check.d.ts +9 -0
- package/dist/harness/flow-check.d.ts.map +1 -1
- package/dist/harness/flow-check.js +11 -0
- package/dist/harness/flow-check.js.map +1 -1
- package/dist/harness/gates/audit-gate-verdict.d.ts.map +1 -1
- package/dist/harness/gates/audit-gate-verdict.js +2 -1
- package/dist/harness/gates/audit-gate-verdict.js.map +1 -1
- package/dist/harness/gates/audit-input-hash.d.ts +2 -0
- package/dist/harness/gates/audit-input-hash.d.ts.map +1 -1
- package/dist/harness/gates/audit-input-hash.js +30 -2
- package/dist/harness/gates/audit-input-hash.js.map +1 -1
- package/dist/harness/gates/audit-report-verification.d.ts +17 -6
- package/dist/harness/gates/audit-report-verification.d.ts.map +1 -1
- package/dist/harness/gates/audit-report-verification.js +55 -21
- package/dist/harness/gates/audit-report-verification.js.map +1 -1
- package/dist/harness/gates/delivery-checklist.d.ts +3 -0
- package/dist/harness/gates/delivery-checklist.d.ts.map +1 -1
- package/dist/harness/gates/delivery-checklist.js +39 -6
- package/dist/harness/gates/delivery-checklist.js.map +1 -1
- package/dist/harness/gates/delivery-decision-gate.d.ts +4 -0
- package/dist/harness/gates/delivery-decision-gate.d.ts.map +1 -1
- package/dist/harness/gates/delivery-decision-gate.js +26 -1
- package/dist/harness/gates/delivery-decision-gate.js.map +1 -1
- package/dist/harness/gates/delivery-decision-step.d.ts +4 -1
- package/dist/harness/gates/delivery-decision-step.d.ts.map +1 -1
- package/dist/harness/gates/delivery-decision-step.js +17 -2
- package/dist/harness/gates/delivery-decision-step.js.map +1 -1
- package/dist/harness/gates/in-run-decision-check.d.ts.map +1 -1
- package/dist/harness/gates/in-run-decision-check.js +40 -12
- package/dist/harness/gates/in-run-decision-check.js.map +1 -1
- package/dist/harness/gates/migrated-waiver-import-bounds.d.ts +13 -0
- package/dist/harness/gates/migrated-waiver-import-bounds.d.ts.map +1 -0
- package/dist/harness/gates/migrated-waiver-import-bounds.js +141 -0
- package/dist/harness/gates/migrated-waiver-import-bounds.js.map +1 -0
- package/dist/harness/gates/migrated-waiver-review.d.ts +14 -4
- package/dist/harness/gates/migrated-waiver-review.d.ts.map +1 -1
- package/dist/harness/gates/migrated-waiver-review.js +78 -80
- package/dist/harness/gates/migrated-waiver-review.js.map +1 -1
- package/dist/harness/journey.d.ts +40 -0
- package/dist/harness/journey.d.ts.map +1 -1
- package/dist/harness/journey.js +155 -22
- package/dist/harness/journey.js.map +1 -1
- package/dist/harness/next-step.d.ts +19 -0
- package/dist/harness/next-step.d.ts.map +1 -1
- package/dist/harness/next-step.js +21 -0
- package/dist/harness/next-step.js.map +1 -1
- package/dist/harness/provenance.d.ts +29 -0
- package/dist/harness/provenance.d.ts.map +1 -1
- package/dist/harness/provenance.js +109 -9
- package/dist/harness/provenance.js.map +1 -1
- package/dist/harness/triage-manual-classification.d.ts +32 -0
- package/dist/harness/triage-manual-classification.d.ts.map +1 -0
- package/dist/harness/triage-manual-classification.js +56 -0
- package/dist/harness/triage-manual-classification.js.map +1 -0
- package/dist/harness/unit-paths.d.ts +8 -0
- package/dist/harness/unit-paths.d.ts.map +1 -1
- package/dist/harness/unit-paths.js +23 -1
- package/dist/harness/unit-paths.js.map +1 -1
- package/dist/hooks/bash-read-only-segment.d.ts +9 -0
- package/dist/hooks/bash-read-only-segment.d.ts.map +1 -0
- package/dist/hooks/bash-read-only-segment.js +168 -0
- package/dist/hooks/bash-read-only-segment.js.map +1 -0
- package/dist/hooks/bash-write-targets.d.ts +12 -2
- package/dist/hooks/bash-write-targets.d.ts.map +1 -1
- package/dist/hooks/bash-write-targets.js +122 -29
- package/dist/hooks/bash-write-targets.js.map +1 -1
- package/dist/hooks/guard-protected-paths.d.ts +4 -0
- package/dist/hooks/guard-protected-paths.d.ts.map +1 -1
- package/dist/hooks/guard-protected-paths.js +13 -3
- package/dist/hooks/guard-protected-paths.js.map +1 -1
- package/dist/hooks/guard-rules.d.ts +0 -17
- package/dist/hooks/guard-rules.d.ts.map +1 -1
- package/dist/hooks/guard-rules.js +79 -10
- package/dist/hooks/guard-rules.js.map +1 -1
- package/dist/hooks/guard-tty-spoof-rule.d.ts +3 -1
- package/dist/hooks/guard-tty-spoof-rule.d.ts.map +1 -1
- package/dist/hooks/guard-tty-spoof-rule.js +3 -2
- package/dist/hooks/guard-tty-spoof-rule.js.map +1 -1
- package/dist/hooks/hand-back-core.d.ts +9 -4
- package/dist/hooks/hand-back-core.d.ts.map +1 -1
- package/dist/hooks/hand-back-core.js +24 -11
- package/dist/hooks/hand-back-core.js.map +1 -1
- package/dist/hooks/session-start-unit-state-hook.d.ts +2 -1
- package/dist/hooks/session-start-unit-state-hook.d.ts.map +1 -1
- package/dist/hooks/session-start-unit-state-hook.js +9 -4
- package/dist/hooks/session-start-unit-state-hook.js.map +1 -1
- package/dist/hooks/stop-next-step-hook.d.ts.map +1 -1
- package/dist/hooks/stop-next-step-hook.js +1 -0
- package/dist/hooks/stop-next-step-hook.js.map +1 -1
- package/dist/orchestrator/assets-drift.d.ts +5 -0
- package/dist/orchestrator/assets-drift.d.ts.map +1 -1
- package/dist/orchestrator/assets-drift.js +12 -3
- package/dist/orchestrator/assets-drift.js.map +1 -1
- package/dist/orchestrator/project-initializer.d.ts.map +1 -1
- package/dist/orchestrator/project-initializer.js +1 -0
- package/dist/orchestrator/project-initializer.js.map +1 -1
- package/dist/orchestrator/templates/ai-src/commands/create-test.md +6 -3
- package/dist/orchestrator/templates/ai-src/commands/delivery.md +2 -0
- package/dist/orchestrator/templates/ai-src/commands/review.md +2 -0
- package/dist/orchestrator/templates/ai-src/commands/run-test.md +1 -1
- package/dist/orchestrator/templates/ai-src/partials/waiting-for-you.claude.md +11 -0
- package/dist/orchestrator/templates/ai-src/partials/waiting-for-you.codex.md +11 -0
- package/dist/orchestrator/templates/ai-src/partials/waiting-for-you.copilot.md +11 -0
- package/package.json +3 -3
- package/src/capabilities/discover.ts +15 -2
- package/src/cli/case-triage-hint.ts +31 -0
- package/src/cli/commands/audit.ts +1 -1
- package/src/cli/commands/contract-derive-command.ts +20 -8
- package/src/cli/commands/contract.ts +41 -7
- package/src/cli/commands/delivery.ts +56 -18
- package/src/cli/commands/gate.ts +2 -1
- package/src/cli/commands/generate.ts +13 -2
- package/src/cli/commands/journey.ts +8 -6
- package/src/cli/commands/next.ts +41 -12
- package/src/cli/commands/triage.ts +41 -3
- package/src/cli/commands/update.ts +6 -2
- package/src/cli/index.ts +5 -1
- package/src/cli/json-error-on-exit.ts +72 -0
- package/src/cli/project-sungen-invocation.ts +59 -0
- package/src/cli/run-command-hints.ts +47 -0
- package/src/cli/waiting-for-you-block.ts +27 -0
- package/src/contract/accept-opaque-steps.ts +114 -0
- package/src/contract/approve-contract.ts +10 -3
- package/src/contract/build-contract-verdict.ts +2 -2
- package/src/contract/build-trace-conformance.ts +11 -8
- package/src/contract/classify-contract-change.ts +3 -3
- package/src/contract/classify-trace-conformance.ts +76 -22
- package/src/contract/contract-schema.ts +31 -2
- package/src/contract/contracts-lock-file.ts +1 -0
- package/src/contract/derive-free-feature.ts +46 -3
- package/src/contract/project-contract-blockers.ts +4 -2
- package/src/contract/record-contract-approval.ts +41 -1
- package/src/contract/render-free-gherkin.ts +5 -0
- package/src/contract/resolve-unit-trace-identities.ts +35 -12
- package/src/contract/trace/collect-trace-evidence.ts +105 -36
- package/src/contract/trace/read-file-once.ts +95 -0
- package/src/contract/trace/scenario-id-claims.ts +60 -0
- package/src/contract/trace/select-final-attempt.ts +12 -5
- package/src/contract/trace/test-step-join.ts +6 -5
- package/src/contract/trace/trace-binding.ts +7 -4
- package/src/contract/trace/trace-file-reader.ts +34 -13
- package/src/contract/trace/trace-freshness.ts +110 -0
- package/src/contract/trace/trace-identity-resolution.ts +7 -4
- package/src/contract/trace/trace-run-record.ts +37 -15
- package/src/contract/trace/trace-steps.ts +1 -1
- package/src/contract/trace/trace-zip-limits.ts +6 -2
- package/src/contract/verify-approval-decisions.ts +9 -5
- package/src/decisions/confirmed-decision-commands.ts +25 -4
- package/src/decisions/decision-schema.ts +2 -1
- package/src/decisions/git-head-trust.ts +44 -0
- package/src/decisions/human-confirmation.ts +5 -0
- package/src/decisions/legacy-waiver-migration.ts +14 -3
- package/src/exporters/csv-exporter.ts +12 -4
- package/src/exporters/matrix/export.ts +11 -4
- package/src/exporters/matrix/xlsx-cells.ts +1 -1
- package/src/exporters/xlsx-exporter.ts +5 -4
- package/src/graph/board-human-actions.ts +80 -0
- package/src/graph/evaluate-graph.ts +45 -10
- package/src/graph/human-action.ts +33 -0
- package/src/graph/manual-triage-decisions.ts +55 -0
- package/src/graph/node-decl.ts +18 -0
- package/src/graph/nodes/test-case-contract-nodes.ts +28 -7
- package/src/graph/nodes/test-case-nodes.ts +37 -5
- package/src/graph/nodes/unit-audit-nodes.ts +2 -1
- package/src/graph/nodes/unit-contract-node.ts +20 -2
- package/src/graph/nodes/unit-design-nodes.ts +2 -1
- package/src/graph/test-case-results.ts +25 -4
- package/src/graph/test-case-satisfied.ts +7 -4
- package/src/graph/test-case-state-shape.ts +7 -2
- package/src/graph/unit-artifact-probes.ts +3 -1
- package/src/graph/unit-results-freshness.ts +165 -0
- package/src/harness/audit.ts +4 -13
- package/src/harness/catalog/gate-rules.yaml +3 -3
- package/src/harness/defect-draft.ts +13 -2
- package/src/harness/defects.ts +22 -9
- package/src/harness/flow-check.ts +11 -0
- package/src/harness/gates/audit-gate-verdict.ts +2 -1
- package/src/harness/gates/audit-input-hash.ts +27 -3
- package/src/harness/gates/audit-report-verification.ts +57 -24
- package/src/harness/gates/delivery-checklist.ts +39 -7
- package/src/harness/gates/delivery-decision-gate.ts +29 -1
- package/src/harness/gates/delivery-decision-step.ts +19 -3
- package/src/harness/gates/in-run-decision-check.ts +38 -13
- package/src/harness/gates/migrated-waiver-import-bounds.ts +103 -0
- package/src/harness/gates/migrated-waiver-review.ts +90 -37
- package/src/harness/journey.ts +174 -21
- package/src/harness/next-step.ts +34 -1
- package/src/harness/provenance.ts +99 -11
- package/src/harness/triage-manual-classification.ts +76 -0
- package/src/harness/unit-paths.ts +19 -0
- package/src/hooks/bash-read-only-segment.ts +130 -0
- package/src/hooks/bash-write-targets.ts +109 -23
- package/src/hooks/guard-protected-paths.ts +13 -3
- package/src/hooks/guard-rules.ts +37 -18
- package/src/hooks/guard-tty-spoof-rule.ts +6 -3
- package/src/hooks/hand-back-core.ts +24 -12
- package/src/hooks/session-start-unit-state-hook.ts +9 -4
- package/src/hooks/stop-next-step-hook.ts +1 -0
- package/src/orchestrator/assets-drift.ts +12 -5
- package/src/orchestrator/project-initializer.ts +1 -0
- package/src/orchestrator/templates/ai-src/commands/create-test.md +6 -3
- package/src/orchestrator/templates/ai-src/commands/delivery.md +2 -0
- package/src/orchestrator/templates/ai-src/commands/review.md +2 -0
- package/src/orchestrator/templates/ai-src/commands/run-test.md +1 -1
- package/src/orchestrator/templates/ai-src/partials/waiting-for-you.claude.md +11 -0
- package/src/orchestrator/templates/ai-src/partials/waiting-for-you.codex.md +11 -0
- package/src/orchestrator/templates/ai-src/partials/waiting-for-you.copilot.md +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-checklist.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/delivery-checklist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delivery-checklist.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/delivery-checklist.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACnD,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACjF,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AA2E/H,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,GAAG,YAAY,CAW9E;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,GAAG,YAAY,CAkB7E;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAE9H;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,CAQ/F"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resultsBox = resultsBox;
|
|
4
|
+
exports.triageBox = triageBox;
|
|
3
5
|
exports.unitChecklist = unitChecklist;
|
|
4
6
|
exports.renderChecklist = renderChecklist;
|
|
5
7
|
/**
|
|
@@ -10,7 +12,10 @@ exports.renderChecklist = renderChecklist;
|
|
|
10
12
|
* script-check runScriptCheck: OK | FAIL (`sungen script-check` 0 | 2)
|
|
11
13
|
* contract check buildContractVerdict: pass | review | fail (`sungen contract check` 0 | 0 | 2)
|
|
12
14
|
* decisions evaluateDeliveryDecisions: problems, in-run decisions (what this delivery checks)
|
|
13
|
-
*
|
|
15
|
+
* results resultsFreshness: the run the counts come from, not older than the .feature,
|
|
16
|
+
* compiled spec or spec.md, and present for SUNGEN_ENV (#942)
|
|
17
|
+
* triage testCaseStates: every red case classified, candidates decided — naming the classified
|
|
18
|
+
* reds still awaiting a test fix or an environment re-run
|
|
14
19
|
* A box that cannot apply is SKIPPED with its reason — never absent, never ticked. The checklist only
|
|
15
20
|
* reports: the gates before it decide whether the delivery runs, so no exit code moves because of it.
|
|
16
21
|
*/
|
|
@@ -19,6 +24,7 @@ const contract_git_1 = require("../../contract/contract-git");
|
|
|
19
24
|
const contracts_lock_file_1 = require("../../contract/contracts-lock-file");
|
|
20
25
|
const test_case_satisfied_1 = require("../../graph/test-case-satisfied");
|
|
21
26
|
const test_case_states_1 = require("../../graph/test-case-states");
|
|
27
|
+
const unit_results_freshness_1 = require("../../graph/unit-results-freshness");
|
|
22
28
|
const script_check_1 = require("../script-check");
|
|
23
29
|
const audit_report_verification_1 = require("./audit-report-verification");
|
|
24
30
|
const delivery_decision_gate_1 = require("./delivery-decision-gate");
|
|
@@ -31,10 +37,10 @@ function auditBox(projectRoot, u) {
|
|
|
31
37
|
if (!(0, audit_report_verification_1.auditCounts)(v))
|
|
32
38
|
return box('audit', 'fail', (0, audit_report_verification_1.auditNotCountedReason)(v, u.unitName));
|
|
33
39
|
const overall = v.report?.score?.overall;
|
|
34
|
-
const how =
|
|
40
|
+
const how = "verified against today's inputs";
|
|
35
41
|
return v.report?.gateStatus === 'PASS'
|
|
36
42
|
? box('audit', 'pass', `PASS ${overall ?? '?'}/10 — ${how}`)
|
|
37
|
-
: box('audit', 'fail', `FAIL ${overall ?? '?'}/10 — \`sungen audit\` exits 2 (${how})`);
|
|
43
|
+
: box('audit', 'fail', `FAIL ${overall ?? '?'}/10 — \`sungen audit\` exits 2 (${how}); an official delivery is blocked until it passes — --preview renders a draft`);
|
|
38
44
|
}
|
|
39
45
|
/** The compiler prints progress on stdout; the checklist keeps the delivery output to itself. */
|
|
40
46
|
async function quietly(fn) {
|
|
@@ -47,6 +53,14 @@ async function quietly(fn) {
|
|
|
47
53
|
Object.assign(console, saved);
|
|
48
54
|
}
|
|
49
55
|
}
|
|
56
|
+
/** Findings a fresh `sungen generate` cures: the spec is out of step with the .feature, not hollow. */
|
|
57
|
+
const REGENERATE_CURES = /^(?:DRIFT|MISSING in spec|EXTRA in spec|Count mismatch)\b/;
|
|
58
|
+
/** The first finding's first sentence — its cause after "→" kept (#943) — and, when regenerating cures it, the command. */
|
|
59
|
+
function scriptCheckFailure(u, finding = 'not faithful') {
|
|
60
|
+
const first = finding.split(/\. /)[0].slice(0, 240);
|
|
61
|
+
const generate = `sungen generate --${u.kind === 'flow' ? 'flow' : u.kind === 'api' ? 'api' : 'screen'} ${u.unitName}`;
|
|
62
|
+
return `FAIL — ${first}${REGENERATE_CURES.test(finding) ? ` — run \`${generate}\` after fixing the scenario` : ''} (\`sungen script-check\` exits 2)`;
|
|
63
|
+
}
|
|
50
64
|
async function scriptCheckBox(u) {
|
|
51
65
|
try {
|
|
52
66
|
const r = await quietly(() => (0, script_check_1.runScriptCheck)(u.unitDir, u.unitName, u.kind));
|
|
@@ -54,7 +68,7 @@ async function scriptCheckBox(u) {
|
|
|
54
68
|
return box('script-check', 'skipped', 'no compiled spec to compare: nothing was compiled for this unit');
|
|
55
69
|
return r.status === 'OK'
|
|
56
70
|
? box('script-check', 'pass', `OK — the spec is a 1:1 of the .feature, no drift (${r.automatedScenarios} automated)`)
|
|
57
|
-
: box('script-check', 'fail',
|
|
71
|
+
: box('script-check', 'fail', scriptCheckFailure(u, r.findings[0]));
|
|
58
72
|
}
|
|
59
73
|
catch (e) {
|
|
60
74
|
return box('script-check', 'fail', `could not run: ${why(e)}`);
|
|
@@ -92,6 +106,21 @@ function decisionsBox(projectRoot, u, accepted) {
|
|
|
92
106
|
return box('decisions', 'fail', `could not be evaluated: ${why(e)}`);
|
|
93
107
|
}
|
|
94
108
|
}
|
|
109
|
+
/** Which run the delivered counts come from — and whether the suite moved on since (#942). */
|
|
110
|
+
function resultsBox(projectRoot, u) {
|
|
111
|
+
try {
|
|
112
|
+
const f = (0, unit_results_freshness_1.resultsFreshness)(projectRoot, u.unitDir, u.unitName);
|
|
113
|
+
if (!f)
|
|
114
|
+
return box('results', 'skipped', 'no run results: the unit has not run, every case reads Pending');
|
|
115
|
+
const run = `${(0, unit_results_freshness_1.describeResultsRun)(f)}${f.files.length > 1 ? `, ${f.files.length} files` : ''}`;
|
|
116
|
+
return f.warning
|
|
117
|
+
? box('results', 'fail', `${run} — ${f.warning}`)
|
|
118
|
+
: box('results', 'pass', `${run} — not older than the .feature, compiled spec or spec.md`);
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
return box('results', 'fail', `could not be dated: ${why(e)}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
95
124
|
function triageBox(projectRoot, u) {
|
|
96
125
|
try {
|
|
97
126
|
const cases = (0, test_case_states_1.testCaseStates)(projectRoot, u.unitName, { unitDir: u.unitDir });
|
|
@@ -105,14 +134,18 @@ function triageBox(projectRoot, u) {
|
|
|
105
134
|
if (decide.length)
|
|
106
135
|
return box('triage', 'fail', `${decide.length} product-defect candidate(s) await a QA decision (\`sungen defect draft ${flag} ${u.unitName}\`)`);
|
|
107
136
|
const reds = cases.filter((c) => c.result === 'failed').length;
|
|
108
|
-
|
|
137
|
+
// Classified is not done: a test defect still needs its fix, an environment red its re-run (#928).
|
|
138
|
+
const waiting = cases.filter((c) => (0, test_case_satisfied_1.testCaseNeed)(c) === 'fix-test' || (0, test_case_satisfied_1.testCaseNeed)(c) === 'rerun-environment');
|
|
139
|
+
const named = waiting.length
|
|
140
|
+
? ` — ${waiting.length} awaiting a fix or a re-run (${waiting.slice(0, 4).map((c) => `${c.id}: ${c.triage?.class}`).join(', ')}${waiting.length > 4 ? ', …' : ''})` : '';
|
|
141
|
+
return box('triage', 'pass', reds ? `${reds} red test case(s), each classified or exempt${named}` : 'no red test case');
|
|
109
142
|
}
|
|
110
143
|
catch (e) {
|
|
111
144
|
return box('triage', 'fail', `could not be read: ${why(e)}`);
|
|
112
145
|
}
|
|
113
146
|
}
|
|
114
147
|
async function unitChecklist(projectRoot, u, accepted) {
|
|
115
|
-
return [auditBox(projectRoot, u), await scriptCheckBox(u), contractBox(projectRoot, u), decisionsBox(projectRoot, u, accepted), triageBox(projectRoot, u)];
|
|
148
|
+
return [auditBox(projectRoot, u), await scriptCheckBox(u), contractBox(projectRoot, u), decisionsBox(projectRoot, u, accepted), resultsBox(projectRoot, u), triageBox(projectRoot, u)];
|
|
116
149
|
}
|
|
117
150
|
const MARK = { pass: '[x]', fail: '[ ]', skipped: '[-]' };
|
|
118
151
|
function renderChecklist(rows) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-checklist.js","sourceRoot":"","sources":["../../../src/harness/gates/delivery-checklist.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"delivery-checklist.js","sourceRoot":"","sources":["../../../src/harness/gates/delivery-checklist.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,10 @@ export interface DeliveryDecisionGate {
|
|
|
11
11
|
blocking: string[];
|
|
12
12
|
/** Units with no trusted audit — a real delivery stops on them, --preview / --check warn. */
|
|
13
13
|
untrustedAudits: string[];
|
|
14
|
+
/** Units whose trusted audit FAILs (#935) — a real delivery stops on them, --preview / --check warn. */
|
|
15
|
+
failingAudits: string[];
|
|
16
|
+
/** The unit's audit does not let it be delivered officially (untrusted or FAIL): its render is a DRAFT. */
|
|
17
|
+
auditDraft(unitDir: string): boolean;
|
|
14
18
|
notes: string[];
|
|
15
19
|
inRun: Array<InRunDecision & {
|
|
16
20
|
unit: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-decision-gate.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delivery-decision-gate.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-gate.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,kBAAkB,EAAgD,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3H,OAAO,EAAiE,aAAa,EAA2B,MAAM,yBAAyB,CAAC;AAChJ,OAAO,EAA+B,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,MAAM,WAAW,eAAe;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAWjH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6FAA6F;IAC7F,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wGAAwG;IACxG,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2GAA2G;IAC3G,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACxD,wFAAwF;IACxF,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpD,YAAY,IAAI,MAAM,EAAE,CAAC;IACzB,kHAAkH;IAClH,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;AAeD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAgE5G;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAEzE"}
|
|
@@ -12,21 +12,38 @@ exports.inRunLines = inRunLines;
|
|
|
12
12
|
* no trusted no audit report, or one that does not count (stale, invalid, verdict-mismatch):
|
|
13
13
|
* audit a real delivery stops and asks for `sungen audit` (owner decision 2026-10-22);
|
|
14
14
|
* `--preview` / `--check` go on with a warning — the caller decides (`untrustedAudits`)
|
|
15
|
+
* failing a trusted audit whose verdict is FAIL (`sungen audit` exits 2): the same — a real
|
|
16
|
+
* audit delivery stops, naming the failing gate rules (#935, owner decision); `--preview`
|
|
17
|
+
* renders a DRAFT, `--check` reports it (`failingAudits`)
|
|
15
18
|
* It also hands each target its gate rules (catalog + overrides) for the matrix gates, and the
|
|
16
19
|
* override rows the XLSX may show. With no decision in reach nothing here changes the delivery.
|
|
17
20
|
*/
|
|
18
21
|
const decision_integrity_check_1 = require("../../decisions/decision-integrity-check");
|
|
19
22
|
const decision_file_1 = require("../../decisions/decision-file");
|
|
20
23
|
const audit_report_verification_1 = require("./audit-report-verification");
|
|
24
|
+
const audit_gate_terms_1 = require("./audit-gate-terms");
|
|
21
25
|
const gate_override_report_1 = require("./gate-override-report");
|
|
22
26
|
const gate_override_scope_1 = require("./gate-override-scope");
|
|
23
27
|
const in_run_decision_check_1 = require("./in-run-decision-check");
|
|
24
28
|
const resolve_rule_1 = require("./resolve-rule");
|
|
25
29
|
const unit_gate_overrides_1 = require("./unit-gate-overrides");
|
|
26
30
|
const reachOf = (scope) => [`qa/decisions/`, ...(scope ? [`qa/${scope}/decisions/`] : [])];
|
|
31
|
+
/** The audit gate rules a FAIL report's own terms violate under the unit's overrides, gaps named. */
|
|
32
|
+
function failingGateRules(report, overrides) {
|
|
33
|
+
const sources = (0, audit_gate_terms_1.termSourcesOf)(report, true);
|
|
34
|
+
if (!sources)
|
|
35
|
+
return 'its gate terms';
|
|
36
|
+
const gaps = sources.gate.gaps
|
|
37
|
+
.map((g) => `${g.status === 'shallow' ? 'SHALLOW' : 'MISSING'}: ${String(g.theme)}`);
|
|
38
|
+
const rules = (0, audit_gate_terms_1.auditGateTerms)(sources).filter((t) => !t.holds && (0, resolve_rule_1.resolveRule)(t.rule, overrides.context).blocking)
|
|
39
|
+
.map((t) => (t.rule === 'audit.viewpoint-coverage' && gaps.length ? `${t.rule} (${gaps.join(', ')})` : t.rule));
|
|
40
|
+
return rules.join(', ') || 'its gate terms';
|
|
41
|
+
}
|
|
27
42
|
function evaluateDeliveryDecisions(projectRoot, refs) {
|
|
28
43
|
const blocking = [];
|
|
29
44
|
const untrustedAudits = [];
|
|
45
|
+
const failingAudits = [];
|
|
46
|
+
const draftDirs = new Set();
|
|
30
47
|
const notes = [];
|
|
31
48
|
const inRun = [];
|
|
32
49
|
const units = new Map();
|
|
@@ -43,10 +60,16 @@ function evaluateDeliveryDecisions(projectRoot, refs) {
|
|
|
43
60
|
units.set(ref.unitDir, { ref, resultsPaths: [ref.resultsPath], overrides, rules: (0, resolve_rule_1.trackGateRules)(overrides.context), auditTriggered });
|
|
44
61
|
for (const r of overrides.rejected)
|
|
45
62
|
blocking.push(`${ref.label}: gate.override-rejected — ${r.decisionId} (${r.path}): ${r.reason}`);
|
|
63
|
+
const flag = /[\\/]qa[\\/]api[\\/]/.test(ref.unitDir) ? '--api' : '--screen';
|
|
46
64
|
if (!(0, audit_report_verification_1.auditCounts)(audit)) {
|
|
47
65
|
const why = audit.state === 'absent' ? 'no audit report' : `the audit is ${audit.state === 'stale' ? 'stale' : 'not trusted'}: ${audit.problems.map((p) => p.message).join('; ')}`;
|
|
48
|
-
const flag = /[\\/]qa[\\/]api[\\/]/.test(ref.unitDir) ? '--api' : '--screen';
|
|
49
66
|
untrustedAudits.push(`${ref.label}: ${why} — re-run \`sungen audit ${flag} ${ref.unitName}\``);
|
|
67
|
+
draftDirs.add(ref.unitDir);
|
|
68
|
+
}
|
|
69
|
+
else if (audit.report?.gateStatus !== 'PASS') {
|
|
70
|
+
const overall = audit.report?.score?.overall;
|
|
71
|
+
failingAudits.push(`${ref.label}: FAIL ${overall ?? '?'}/10 on ${failingGateRules(audit.report, overrides)} — fix the suite, then re-run \`sungen audit ${flag} ${ref.unitName}\``);
|
|
72
|
+
draftDirs.add(ref.unitDir);
|
|
50
73
|
}
|
|
51
74
|
for (const n of audit.notes)
|
|
52
75
|
notes.push(`${ref.label}: ${n}`);
|
|
@@ -75,6 +98,8 @@ function evaluateDeliveryDecisions(projectRoot, refs) {
|
|
|
75
98
|
return {
|
|
76
99
|
blocking,
|
|
77
100
|
untrustedAudits,
|
|
101
|
+
failingAudits,
|
|
102
|
+
auditDraft: (dir) => draftDirs.has(dir),
|
|
78
103
|
notes,
|
|
79
104
|
inRun,
|
|
80
105
|
rulesFor: (dir) => units.get(dir)?.rules,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-decision-gate.js","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-gate.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"delivery-decision-gate.js","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,10 @@ export interface DeliveryDecisionStepInput {
|
|
|
8
8
|
argv: string[];
|
|
9
9
|
io: ConfirmationIO;
|
|
10
10
|
log: (line: string) => void;
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* A real export needs, per unit, a trusted audit (owner decision 2026-10-22) that PASSes (#935);
|
|
13
|
+
* false for --preview / --check, which go on with a warning (a DRAFT render / a report).
|
|
14
|
+
*/
|
|
12
15
|
requireTrustedAudit: boolean;
|
|
13
16
|
}
|
|
14
17
|
/** The gate when the delivery may proceed; null when it must stop (already explained on `log`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-decision-step.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-step.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAqE,MAAM,oCAAoC,CAAC;AACvI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAyC,MAAM,0BAA0B,CAAC;AAGxH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B
|
|
1
|
+
{"version":3,"file":"delivery-decision-step.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-step.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAqE,MAAM,oCAAoC,CAAC;AACvI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAyC,MAAM,0BAA0B,CAAC;AAGxH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,mGAAmG;AACnG,wBAAsB,uBAAuB,CAAC,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA8DhH"}
|
|
@@ -21,6 +21,8 @@ async function runDeliveryDecisionStep(i) {
|
|
|
21
21
|
i.log(` - ${b}`);
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
|
+
// Every reason to stop is listed before stopping, so one run names all of them (audit and in-run).
|
|
25
|
+
let blocked = false;
|
|
24
26
|
if (gate.untrustedAudits.length) {
|
|
25
27
|
i.log(i.requireTrustedAudit
|
|
26
28
|
? `✗ Delivery blocked — ${gate.untrustedAudits.length} unit(s) without a trusted audit (a delivery stands on an audit that matches today's suite):`
|
|
@@ -29,11 +31,22 @@ async function runDeliveryDecisionStep(i) {
|
|
|
29
31
|
i.log(` - ${u}`);
|
|
30
32
|
if (i.requireTrustedAudit) {
|
|
31
33
|
i.log(' Or render a watermarked draft with --preview.');
|
|
32
|
-
|
|
34
|
+
blocked = true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (gate.failingAudits.length) {
|
|
38
|
+
i.log(i.requireTrustedAudit
|
|
39
|
+
? `✗ Delivery blocked — ${gate.failingAudits.length} unit(s) whose audit FAILs (\`sungen audit\` exits 2; an official delivery stands on a passing audit):`
|
|
40
|
+
: `⚠ Rendering ${gate.failingAudits.length} unit(s) whose audit FAILs — a draft, not an official delivery:`);
|
|
41
|
+
for (const u of gate.failingAudits)
|
|
42
|
+
i.log(` - ${u}`);
|
|
43
|
+
if (i.requireTrustedAudit) {
|
|
44
|
+
i.log(' Fix the suite and re-run the audit, or render a watermarked draft with --preview.');
|
|
45
|
+
blocked = true;
|
|
33
46
|
}
|
|
34
47
|
}
|
|
35
48
|
if (gate.inRun.length === 0)
|
|
36
|
-
return gate;
|
|
49
|
+
return blocked ? null : gate;
|
|
37
50
|
const acceptCommand = (0, human_confirmation_1.formatCommand)([...i.argv, '--accept-in-run']);
|
|
38
51
|
if (!i.acceptInRun) {
|
|
39
52
|
i.log(`✗ Delivery blocked — ${gate.inRun.length} decision(s) recorded during the run (${in_run_decision_check_1.IN_RUN_RULE}, hard):`);
|
|
@@ -43,6 +56,8 @@ async function runDeliveryDecisionStep(i) {
|
|
|
43
56
|
i.log(` ${acceptCommand}`);
|
|
44
57
|
return null;
|
|
45
58
|
}
|
|
59
|
+
if (blocked)
|
|
60
|
+
return null; // nothing to accept on top of a delivery the audit already stops
|
|
46
61
|
try {
|
|
47
62
|
await (0, human_confirmation_1.requireTypedConfirmation)({
|
|
48
63
|
what: `deliver with ${gate.inRun.length} decision(s) recorded during the run (${in_run_decision_check_1.IN_RUN_RULE})`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-decision-step.js","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-step.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"delivery-decision-step.js","sourceRoot":"","sources":["../../../src/harness/gates/delivery-decision-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-run-decision-check.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/in-run-decision-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"in-run-decision-check.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/in-run-decision-check.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAMrE,eAAO,MAAM,YAAY,2DAA4D,CAAC;AACtF,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,MAAM,WAAW,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,kBAAkB,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE;AAExH,sGAAsG;AACtG,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAI9E;AAQD,0GAA0G;AAC1G,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CASpE;AAYD,wHAAwH;AACxH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,aAAa,EAAE,CAmC7I;AAED,2HAA2H;AAC3H,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAElG;AAED,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpF"}
|
|
@@ -52,16 +52,27 @@ exports.hasInRunKindDecisions = hasInRunKindDecisions;
|
|
|
52
52
|
*
|
|
53
53
|
* A MIGRATED waiver (DOS-13.5) was reviewed when its legacy record was committed — the only record the
|
|
54
54
|
* import trusts — so it is judged by THAT commit (migrated-waiver-review.ts), never by its own decision
|
|
55
|
-
* file: in-run when the record was committed after the run started, or
|
|
56
|
-
*
|
|
57
|
-
* project's
|
|
58
|
-
*
|
|
55
|
+
* file: in-run when the record was committed after the run started, or — run start or not (#925) —
|
|
56
|
+
* when it could not have been the import's source: not strictly before the decision file, the unit's
|
|
57
|
+
* import marker or the project's adoption of 3.3 appeared. Holding it to its decision file's commit would make
|
|
58
|
+
* every legacy project's waivers in-run the day they are imported (phase 09). An entry HEAD's legacy
|
|
59
|
+
* file does not vouch for — absent, uncommitted, different, introduced beyond the commits the walk
|
|
60
|
+
* reads (#924) or at a shallow clone's boundary — is judged as any other; in the last two cases an
|
|
61
|
+
* in-run finding says why.
|
|
62
|
+
*
|
|
63
|
+
* A manual triage classification that claims a human typed it (`triage-classification` with
|
|
64
|
+
* `humanConfirmed`, #928) is a claim the entry makes about itself — a script can write one. What backs
|
|
65
|
+
* it is review, so it is in-run while git HEAD does not hold it (and, with no git, always: nothing
|
|
66
|
+
* shows it was reviewed). Judged by HEAD membership only: it is always recorded after the run it
|
|
67
|
+
* judges, so its commit time says nothing. Only a test-defect / environment entry that is not
|
|
68
|
+
* superseded counts — the only kind the reader puts in force on that claim.
|
|
59
69
|
*/
|
|
60
70
|
const fs = __importStar(require("fs"));
|
|
61
71
|
const path = __importStar(require("path"));
|
|
62
72
|
const decision_file_1 = require("../../decisions/decision-file");
|
|
63
73
|
const git_head_trust_1 = require("../../decisions/git-head-trust");
|
|
64
74
|
const read_decisions_1 = require("../../decisions/read-decisions");
|
|
75
|
+
const manual_triage_decisions_1 = require("../../graph/manual-triage-decisions");
|
|
65
76
|
const migrated_waiver_review_1 = require("./migrated-waiver-review");
|
|
66
77
|
exports.IN_RUN_KINDS = ['gate-override', 'waiver', 'contract-approval'];
|
|
67
78
|
exports.IN_RUN_RULE = 'decision.in-run';
|
|
@@ -91,23 +102,38 @@ function runStartOf(resultsPath) {
|
|
|
91
102
|
}
|
|
92
103
|
}
|
|
93
104
|
const isInRunKind = (kind) => exports.IN_RUN_KINDS.includes(kind);
|
|
105
|
+
/**
|
|
106
|
+
* A triage classification claiming a human typed it (#928): reviewed only once git HEAD holds it.
|
|
107
|
+
* Only what the reader (manual-triage-decisions.ts) can put in force: a superseded entry is never read,
|
|
108
|
+
* and a product classification needs no human — its claim backs nothing, so it blocks nothing.
|
|
109
|
+
*/
|
|
110
|
+
const claimsHumanTriage = (e) => e.kind === manual_triage_decisions_1.TRIAGE_DECISION_KIND && !e.superseded_by && e.payload?.humanConfirmed === true
|
|
111
|
+
&& manual_triage_decisions_1.HUMAN_ONLY_TRIAGE.has(e.payload?.class);
|
|
94
112
|
/** In-run decisions among `scopes`, judged against one run start (null: HEAD membership only) and the committed set. */
|
|
95
113
|
function inRunDecisions(projectRoot, scopes, runStart, committed) {
|
|
96
114
|
const out = [];
|
|
97
115
|
const after = (t) => !!runStart && Date.parse(t) > Date.parse(runStart);
|
|
116
|
+
const migratedReview = committed ? (0, migrated_waiver_review_1.migratedWaiverReview)(projectRoot) : null;
|
|
98
117
|
for (const scope of scopes) {
|
|
99
118
|
for (const e of (0, read_decisions_1.readDecisions)(projectRoot, scope).entries) {
|
|
119
|
+
const rel = path.relative(projectRoot, e.path).split(path.sep).join('/');
|
|
120
|
+
if (claimsHumanTriage(e) && !committed?.has(rel)) {
|
|
121
|
+
out.push({ id: e.id, kind: e.kind, path: rel, visibility: e.visibility, why: [committed
|
|
122
|
+
? 'a classification by hand that claims a human typed it, not in git HEAD (never committed through review)'
|
|
123
|
+
: 'a classification by hand that claims a human typed it, and no git to show it was committed through review'] });
|
|
124
|
+
}
|
|
100
125
|
if (!isInRunKind(e.kind))
|
|
101
126
|
continue;
|
|
102
|
-
|
|
127
|
+
// A migrated waiver re-confirmed on a terminal is replaced: the new decision is judged on its own.
|
|
128
|
+
if (e.superseded_by && e.source?.where === 'migrated')
|
|
129
|
+
continue;
|
|
103
130
|
const why = [];
|
|
104
|
-
const
|
|
105
|
-
if (
|
|
106
|
-
if (
|
|
107
|
-
why.push(runStart
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
131
|
+
const migrated = migratedReview?.reviewOf(scope, e) ?? null;
|
|
132
|
+
if (migrated?.at) {
|
|
133
|
+
if (after(migrated.at))
|
|
134
|
+
why.push(`migrated: its legacy record was committed at ${migrated.at}, after the run started ${runStart}`);
|
|
135
|
+
if (migrated.notImported)
|
|
136
|
+
why.push(migrated.notImported);
|
|
111
137
|
}
|
|
112
138
|
else if (committed && !committed.has(rel)) {
|
|
113
139
|
why.push('not in git HEAD (never committed through review)');
|
|
@@ -121,6 +147,8 @@ function inRunDecisions(projectRoot, scopes, runStart, committed) {
|
|
|
121
147
|
else if (!committed && after(e.valid_from)) {
|
|
122
148
|
why.push(`recorded ${e.valid_from}, after the run started ${runStart}`);
|
|
123
149
|
}
|
|
150
|
+
if (why.length && migrated?.unvouched)
|
|
151
|
+
why.push(migrated.unvouched);
|
|
124
152
|
if (why.length)
|
|
125
153
|
out.push({ id: e.id, kind: e.kind, path: rel, visibility: e.visibility, why });
|
|
126
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-run-decision-check.js","sourceRoot":"","sources":["../../../src/harness/gates/in-run-decision-check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"in-run-decision-check.js","sourceRoot":"","sources":["../../../src/harness/gates/in-run-decision-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReadDecision } from '../../decisions/read-decisions';
|
|
2
|
+
/**
|
|
3
|
+
* What a human does about a migrated waiver its legacy record cannot vouch for: record it anew on a
|
|
4
|
+
* terminal (a `cli` decision that supersedes it — the superseded one is no longer judged), or accept it
|
|
5
|
+
* for one delivery.
|
|
6
|
+
*/
|
|
7
|
+
export declare const migratedWaiverRemedy: (scope: string, ob: string) => string;
|
|
8
|
+
/** One run's bounds: each decision's first appearance, each unit's marker and the project's adoption, read once. */
|
|
9
|
+
export declare function migratedWaiverImportBounds(projectRoot: string): {
|
|
10
|
+
/** Why a record committed at `at` (state file of `slug`) cannot have been the source of `e`'s import; undefined when it can. */
|
|
11
|
+
notImported(slug: string, e: ReadDecision, at: string): string | undefined;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=migrated-waiver-import-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrated-waiver-import-bounds.d.ts","sourceRoot":"","sources":["../../../src/harness/gates/migrated-waiver-import-bounds.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,MAE2B,CAAC;AAO7F,oHAAoH;AACpH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM;IAmD1D,gIAAgI;sBAC9G,MAAM,KAAK,YAAY,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS;EAK7E"}
|