@zxyycom/vibe-check 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +154 -0
- package/dist/esm/check/check.mjs +5 -0
- package/dist/esm/check/check.mjs.map +1 -0
- package/dist/esm/check/descriptor-validation.mjs +37 -0
- package/dist/esm/check/descriptor-validation.mjs.map +1 -0
- package/dist/esm/check/descriptor.mjs +2 -0
- package/dist/esm/check/descriptor.mjs.map +1 -0
- package/dist/esm/check/inherited-collection.mjs +62 -0
- package/dist/esm/check/inherited-collection.mjs.map +1 -0
- package/dist/esm/check/options-snapshot.mjs +75 -0
- package/dist/esm/check/options-snapshot.mjs.map +1 -0
- package/dist/esm/check-settlement/fact-validation.mjs +216 -0
- package/dist/esm/check-settlement/fact-validation.mjs.map +1 -0
- package/dist/esm/check-settlement/facts.mjs +2 -0
- package/dist/esm/check-settlement/facts.mjs.map +1 -0
- package/dist/esm/check-settlement/outcome-normalization.mjs +80 -0
- package/dist/esm/check-settlement/outcome-normalization.mjs.map +1 -0
- package/dist/esm/check-settlement/record-store.mjs +59 -0
- package/dist/esm/check-settlement/record-store.mjs.map +1 -0
- package/dist/esm/check-settlement/session.mjs +179 -0
- package/dist/esm/check-settlement/session.mjs.map +1 -0
- package/dist/esm/data-boundary/canonical-data.mjs +159 -0
- package/dist/esm/data-boundary/canonical-data.mjs.map +1 -0
- package/dist/esm/data-boundary/canonical-json.mjs +2 -0
- package/dist/esm/data-boundary/canonical-json.mjs.map +1 -0
- package/dist/esm/data-boundary/closed-values.mjs +98 -0
- package/dist/esm/data-boundary/closed-values.mjs.map +1 -0
- package/dist/esm/data-boundary/value-shapes.mjs +13 -0
- package/dist/esm/data-boundary/value-shapes.mjs.map +1 -0
- package/dist/esm/finding-waivers/reconciliation.mjs +84 -0
- package/dist/esm/finding-waivers/reconciliation.mjs.map +1 -0
- package/dist/esm/index.mjs +26 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/machine-output/v4/atomic-publication.mjs +102 -0
- package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -0
- package/dist/esm/machine-output/v4/freeze-publication-value.mjs +14 -0
- package/dist/esm/machine-output/v4/freeze-publication-value.mjs.map +1 -0
- package/dist/esm/machine-output/v4/projection.mjs +23 -0
- package/dist/esm/machine-output/v4/projection.mjs.map +1 -0
- package/dist/esm/machine-output/v4/publication-invariants.mjs +59 -0
- package/dist/esm/machine-output/v4/publication-invariants.mjs.map +1 -0
- package/dist/esm/machine-output/v4/publication-model.mjs +19 -0
- package/dist/esm/machine-output/v4/publication-model.mjs.map +1 -0
- package/dist/esm/machine-output/v4/publish.mjs +20 -0
- package/dist/esm/machine-output/v4/publish.mjs.map +1 -0
- package/dist/esm/machine-output/v4/records-fingerprint.mjs +9 -0
- package/dist/esm/machine-output/v4/records-fingerprint.mjs.map +1 -0
- package/dist/esm/machine-output/v4/schema-identities.mjs +8 -0
- package/dist/esm/machine-output/v4/schema-identities.mjs.map +1 -0
- package/dist/esm/machine-output/v4/schema.mjs +50 -0
- package/dist/esm/machine-output/v4/schema.mjs.map +1 -0
- package/dist/esm/machine-output/v4/serializers.mjs +9 -0
- package/dist/esm/machine-output/v4/serializers.mjs.map +1 -0
- package/dist/esm/machine-output/v4/validation-result.mjs +16 -0
- package/dist/esm/machine-output/v4/validation-result.mjs.map +1 -0
- package/dist/esm/machine-output/v4/validation.mjs +131 -0
- package/dist/esm/machine-output/v4/validation.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs +49 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs +71 -0
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/cache-contract.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/cache/cache-contract.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs +37 -0
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/key.mjs +38 -0
- package/dist/esm/package-checks/duplicate-detection/cache/key.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/payload.mjs +47 -0
- package/dist/esm/package-checks/duplicate-detection/cache/payload.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/store.mjs +44 -0
- package/dist/esm/package-checks/duplicate-detection/cache/store.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs +39 -0
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/execution.mjs +124 -0
- package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/final-data.mjs +6 -0
- package/dist/esm/package-checks/duplicate-detection/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +77 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-path.mjs +6 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-path.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs +87 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs +94 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner-contract.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner-contract.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs +180 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scoped-fragments.mjs +10 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scoped-fragments.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/measurement-model.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/measurement-model.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/measurement.mjs +151 -0
- package/dist/esm/package-checks/duplicate-detection/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs +126 -0
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs +60 -0
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/options.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/project-revision.mjs +5 -0
- package/dist/esm/package-checks/duplicate-detection/project-revision.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/records.mjs +119 -0
- package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/constructor.mjs +39 -0
- package/dist/esm/package-checks/file-metrics/constructor.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/execution.mjs +170 -0
- package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/final-data.mjs +6 -0
- package/dist/esm/package-checks/file-metrics/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/measurement-model.mjs +2 -0
- package/dist/esm/package-checks/file-metrics/measurement-model.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/measurement.mjs +33 -0
- package/dist/esm/package-checks/file-metrics/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs +171 -0
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options-validation.mjs +82 -0
- package/dist/esm/package-checks/file-metrics/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options.mjs +2 -0
- package/dist/esm/package-checks/file-metrics/options.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/records.mjs +109 -0
- package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs +59 -0
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs +17 -0
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs +145 -0
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +54 -0
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -0
- package/dist/esm/package-checks/final-data-parsing.mjs +35 -0
- package/dist/esm/package-checks/final-data-parsing.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analysis.mjs +96 -0
- package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/constructor.mjs +43 -0
- package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/execution.mjs +178 -0
- package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/final-data.mjs +6 -0
- package/dist/esm/package-checks/function-metrics/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs +64 -0
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs +17 -0
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs +138 -0
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs +35 -0
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/measurement-model.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/measurement-model.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/measurement.mjs +35 -0
- package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs +171 -0
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/options-validation.mjs +71 -0
- package/dist/esm/package-checks/function-metrics/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/options.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/records.mjs +133 -0
- package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/target-files.mjs +75 -0
- package/dist/esm/package-checks/function-metrics/target-files.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/error-message.mjs +4 -0
- package/dist/esm/package-checks/host-environment/error-message.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/filesystem.mjs +81 -0
- package/dist/esm/package-checks/host-environment/filesystem.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/git.mjs +51 -0
- package/dist/esm/package-checks/host-environment/git.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/path.mjs +18 -0
- package/dist/esm/package-checks/host-environment/path.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/command.mjs +13 -0
- package/dist/esm/package-checks/host-environment/process/command.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/contract.mjs +2 -0
- package/dist/esm/package-checks/host-environment/process/contract.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/env.mjs +19 -0
- package/dist/esm/package-checks/host-environment/process/env.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/failure.mjs +34 -0
- package/dist/esm/package-checks/host-environment/process/failure.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/result.mjs +33 -0
- package/dist/esm/package-checks/host-environment/process/result.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/runner.mjs +30 -0
- package/dist/esm/package-checks/host-environment/process/runner.mjs.map +1 -0
- package/dist/esm/package-checks/json-document/strict-document.mjs +163 -0
- package/dist/esm/package-checks/json-document/strict-document.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/default-check.mjs +39 -0
- package/dist/esm/package-checks/json-schema-validation/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/execution-stages.mjs +141 -0
- package/dist/esm/package-checks/json-schema-validation/execution-stages.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/final-data.mjs +64 -0
- package/dist/esm/package-checks/json-schema-validation/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/issue-collector.mjs +35 -0
- package/dist/esm/package-checks/json-schema-validation/issue-collector.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/json-schema-validation.mjs +118 -0
- package/dist/esm/package-checks/json-schema-validation/json-schema-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/options-resolution.mjs +45 -0
- package/dist/esm/package-checks/json-schema-validation/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs +212 -0
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/options.mjs +2 -0
- package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs +128 -0
- package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/remote-response.mjs +71 -0
- package/dist/esm/package-checks/json-schema-validation/remote-response.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/schema-engine.mjs +190 -0
- package/dist/esm/package-checks/json-schema-validation/schema-engine.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs +234 -0
- package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/default-check.mjs +39 -0
- package/dist/esm/package-checks/json-validation/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/final-data.mjs +27 -0
- package/dist/esm/package-checks/json-validation/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/json-validation.mjs +138 -0
- package/dist/esm/package-checks/json-validation/json-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/options-resolution.mjs +33 -0
- package/dist/esm/package-checks/json-validation/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/options-validation.mjs +16 -0
- package/dist/esm/package-checks/json-validation/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/options.mjs +2 -0
- package/dist/esm/package-checks/json-validation/options.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/assessment-results.mjs +73 -0
- package/dist/esm/package-checks/maintenance-reminders/assessment-results.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/final-data.mjs +153 -0
- package/dist/esm/package-checks/maintenance-reminders/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs +155 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs +58 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/measurement.mjs +125 -0
- package/dist/esm/package-checks/maintenance-reminders/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/options-validation.mjs +72 -0
- package/dist/esm/package-checks/maintenance-reminders/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +55 -0
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs +199 -0
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs +109 -0
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/final-data.mjs +28 -0
- package/dist/esm/package-checks/markdown-link-validation/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs +158 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs +17 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs +191 -0
- package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +83 -0
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +50 -0
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/options.mjs +2 -0
- package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/records.mjs +32 -0
- package/dist/esm/package-checks/markdown-link-validation/records.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs +196 -0
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/target-descriptor.mjs +23 -0
- package/dist/esm/package-checks/markdown-link-validation/target-descriptor.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/traversal-result.mjs +41 -0
- package/dist/esm/package-checks/markdown-link-validation/traversal-result.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/collection.mjs +142 -0
- package/dist/esm/package-checks/project-files/collection.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/config-glob.mjs +11 -0
- package/dist/esm/package-checks/project-files/config-glob.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/configuration.mjs +104 -0
- package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/exact-input-measurement.mjs +24 -0
- package/dist/esm/package-checks/project-files/exact-input-measurement.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/file-fingerprint.mjs +36 -0
- package/dist/esm/package-checks/project-files/file-fingerprint.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs +57 -0
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +72 -0
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/input-eligibility.mjs +13 -0
- package/dist/esm/package-checks/project-files/input-eligibility.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/reported-path.mjs +30 -0
- package/dist/esm/package-checks/project-files/reported-path.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/revision-paths.mjs +19 -0
- package/dist/esm/package-checks/project-files/revision-paths.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +102 -0
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs +242 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/materialization.mjs +50 -0
- package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/resolution.mjs +60 -0
- package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -0
- package/dist/esm/project-definition/output-defaults.mjs +7 -0
- package/dist/esm/project-definition/output-defaults.mjs.map +1 -0
- package/dist/esm/project-definition/output-validation.mjs +44 -0
- package/dist/esm/project-definition/output-validation.mjs.map +1 -0
- package/dist/esm/project-definition/project-definition-validation.mjs +95 -0
- package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -0
- package/dist/esm/project-definition/project-definition.mjs +92 -0
- package/dist/esm/project-definition/project-definition.mjs.map +1 -0
- package/dist/esm/project-run/aggregation.mjs +66 -0
- package/dist/esm/project-run/aggregation.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/callback.mjs +70 -0
- package/dist/esm/project-run/check-execution/callback.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/dependencies.mjs +50 -0
- package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/execution-finalization.mjs +103 -0
- package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/execution-settlement.mjs +90 -0
- package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/messages.mjs +38 -0
- package/dist/esm/project-run/check-execution/messages.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/plan.mjs +35 -0
- package/dist/esm/project-run/check-execution/plan.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/preflight-result.mjs +83 -0
- package/dist/esm/project-run/check-execution/preflight-result.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/preflight.mjs +186 -0
- package/dist/esm/project-run/check-execution/preflight.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/resolved-checks.mjs +168 -0
- package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/terminal-result.mjs +49 -0
- package/dist/esm/project-run/check-execution/terminal-result.mjs.map +1 -0
- package/dist/esm/project-run/completion.mjs +173 -0
- package/dist/esm/project-run/completion.mjs.map +1 -0
- package/dist/esm/project-run/controls/contract.mjs +2 -0
- package/dist/esm/project-run/controls/contract.mjs.map +1 -0
- package/dist/esm/project-run/controls/outputs-override-validation.mjs +61 -0
- package/dist/esm/project-run/controls/outputs-override-validation.mjs.map +1 -0
- package/dist/esm/project-run/controls/validation-result.mjs +2 -0
- package/dist/esm/project-run/controls/validation-result.mjs.map +1 -0
- package/dist/esm/project-run/controls/validation.mjs +156 -0
- package/dist/esm/project-run/controls/validation.mjs.map +1 -0
- package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs +182 -0
- package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs.map +1 -0
- package/dist/esm/project-run/diagnostic-logging/logger.mjs +242 -0
- package/dist/esm/project-run/diagnostic-logging/logger.mjs.map +1 -0
- package/dist/esm/project-run/invocation-creation.mjs +111 -0
- package/dist/esm/project-run/invocation-creation.mjs.map +1 -0
- package/dist/esm/project-run/invocation.mjs +195 -0
- package/dist/esm/project-run/invocation.mjs.map +1 -0
- package/dist/esm/project-run/machine-publication.mjs +16 -0
- package/dist/esm/project-run/machine-publication.mjs.map +1 -0
- package/dist/esm/project-run/output-configuration.mjs +17 -0
- package/dist/esm/project-run/output-configuration.mjs.map +1 -0
- package/dist/esm/project-run/output-status.mjs +43 -0
- package/dist/esm/project-run/output-status.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/presentation.mjs +135 -0
- package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +100 -0
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +123 -0
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/renderer.mjs +12 -0
- package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -0
- package/dist/esm/project-run/project-context.mjs +8 -0
- package/dist/esm/project-run/project-context.mjs.map +1 -0
- package/dist/esm/project-run/result.mjs +54 -0
- package/dist/esm/project-run/result.mjs.map +1 -0
- package/dist/esm/project-run/run.mjs +23 -0
- package/dist/esm/project-run/run.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/execution-state.mjs +66 -0
- package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs +119 -0
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/graph.mjs +116 -0
- package/dist/esm/project-run/task-scheduler/graph.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs +82 -0
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs +27 -0
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs +125 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs +45 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs +74 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler.mjs +147 -0
- package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -0
- package/docs/api-mechanics.md +205 -0
- package/docs/checks/duplicate-detection.md +195 -0
- package/docs/checks/file-metrics.md +229 -0
- package/docs/checks/function-metrics.md +222 -0
- package/docs/checks/json-schema-validation.md +190 -0
- package/docs/checks/json-validation.md +133 -0
- package/docs/checks/maintenance-reminders.md +158 -0
- package/docs/checks/markdown-link-validation.md +192 -0
- package/docs/examples/artifacts/mixed-outcomes/definition.ts +195 -0
- package/docs/examples/artifacts/mixed-outcomes/records.ndjson +2 -0
- package/docs/examples/artifacts/mixed-outcomes/run.json +70 -0
- package/docs/output.md +97 -0
- package/docs/schemas/vibe-check-record.schema.json +33 -0
- package/docs/schemas/vibe-check-run.schema.json +173 -0
- package/index.mjs +1 -0
- package/package.json +49 -0
- package/src/check/check.ts +497 -0
- package/src/check/descriptor-validation.ts +60 -0
- package/src/check/descriptor.ts +5 -0
- package/src/check/inherited-collection.ts +101 -0
- package/src/check/options-snapshot.ts +80 -0
- package/src/check-settlement/fact-validation.ts +289 -0
- package/src/check-settlement/facts.ts +27 -0
- package/src/check-settlement/outcome-normalization.ts +118 -0
- package/src/check-settlement/record-store.ts +73 -0
- package/src/check-settlement/session.ts +257 -0
- package/src/data-boundary/canonical-data.ts +188 -0
- package/src/data-boundary/canonical-json.ts +11 -0
- package/src/data-boundary/closed-values.ts +126 -0
- package/src/data-boundary/value-shapes.ts +15 -0
- package/src/finding-waivers/reconciliation.ts +176 -0
- package/src/index.ts +123 -0
- package/src/machine-output/v4/atomic-publication.ts +123 -0
- package/src/machine-output/v4/freeze-publication-value.ts +12 -0
- package/src/machine-output/v4/projection.ts +36 -0
- package/src/machine-output/v4/publication-invariants.ts +89 -0
- package/src/machine-output/v4/publication-model.ts +38 -0
- package/src/machine-output/v4/publish.ts +23 -0
- package/src/machine-output/v4/records-fingerprint.ts +12 -0
- package/src/machine-output/v4/schema-identities.ts +8 -0
- package/src/machine-output/v4/schema.ts +97 -0
- package/src/machine-output/v4/serializers.ts +18 -0
- package/src/machine-output/v4/validation-result.ts +59 -0
- package/src/machine-output/v4/validation.ts +166 -0
- package/src/package-checks/code-quality-findings/policy.ts +85 -0
- package/src/package-checks/duplicate-detection/area-policy.ts +103 -0
- package/src/package-checks/duplicate-detection/cache/cache-contract.ts +49 -0
- package/src/package-checks/duplicate-detection/cache/identity.ts +61 -0
- package/src/package-checks/duplicate-detection/cache/key.ts +46 -0
- package/src/package-checks/duplicate-detection/cache/payload.ts +78 -0
- package/src/package-checks/duplicate-detection/cache/store.ts +77 -0
- package/src/package-checks/duplicate-detection/default-check.ts +50 -0
- package/src/package-checks/duplicate-detection/execution.ts +168 -0
- package/src/package-checks/duplicate-detection/final-data.ts +10 -0
- package/src/package-checks/duplicate-detection/jscpd/availability.ts +137 -0
- package/src/package-checks/duplicate-detection/jscpd/command-path.ts +8 -0
- package/src/package-checks/duplicate-detection/jscpd/command-resolution.ts +112 -0
- package/src/package-checks/duplicate-detection/jscpd/json-report.ts +137 -0
- package/src/package-checks/duplicate-detection/jscpd/scanner-contract.ts +18 -0
- package/src/package-checks/duplicate-detection/jscpd/scanner.ts +257 -0
- package/src/package-checks/duplicate-detection/jscpd/scoped-fragments.ts +17 -0
- package/src/package-checks/duplicate-detection/measurement-model.ts +44 -0
- package/src/package-checks/duplicate-detection/measurement.ts +223 -0
- package/src/package-checks/duplicate-detection/options-resolution.ts +162 -0
- package/src/package-checks/duplicate-detection/options-validation.ts +75 -0
- package/src/package-checks/duplicate-detection/options.ts +72 -0
- package/src/package-checks/duplicate-detection/project-revision.ts +5 -0
- package/src/package-checks/duplicate-detection/records.ts +171 -0
- package/src/package-checks/file-metrics/constructor.ts +46 -0
- package/src/package-checks/file-metrics/execution.ts +233 -0
- package/src/package-checks/file-metrics/final-data.ts +10 -0
- package/src/package-checks/file-metrics/measurement-model.ts +10 -0
- package/src/package-checks/file-metrics/measurement.ts +52 -0
- package/src/package-checks/file-metrics/options-resolution.ts +213 -0
- package/src/package-checks/file-metrics/options-validation.ts +104 -0
- package/src/package-checks/file-metrics/options.ts +91 -0
- package/src/package-checks/file-metrics/records.ts +182 -0
- package/src/package-checks/file-metrics/scc/availability.ts +100 -0
- package/src/package-checks/file-metrics/scc/csv.ts +20 -0
- package/src/package-checks/file-metrics/scc/parser.ts +223 -0
- package/src/package-checks/file-metrics/scc/scanner.ts +68 -0
- package/src/package-checks/final-data-parsing.ts +49 -0
- package/src/package-checks/function-metrics/analysis.ts +138 -0
- package/src/package-checks/function-metrics/constructor.ts +55 -0
- package/src/package-checks/function-metrics/execution.ts +263 -0
- package/src/package-checks/function-metrics/final-data.ts +10 -0
- package/src/package-checks/function-metrics/lizard/availability.ts +90 -0
- package/src/package-checks/function-metrics/lizard/csv.ts +20 -0
- package/src/package-checks/function-metrics/lizard/parser.ts +179 -0
- package/src/package-checks/function-metrics/lizard/scanner.ts +62 -0
- package/src/package-checks/function-metrics/measurement-model.ts +30 -0
- package/src/package-checks/function-metrics/measurement.ts +57 -0
- package/src/package-checks/function-metrics/options-resolution.ts +215 -0
- package/src/package-checks/function-metrics/options-validation.ts +89 -0
- package/src/package-checks/function-metrics/options.ts +84 -0
- package/src/package-checks/function-metrics/records.ts +254 -0
- package/src/package-checks/function-metrics/target-files.ts +85 -0
- package/src/package-checks/host-environment/error-message.ts +3 -0
- package/src/package-checks/host-environment/filesystem.ts +110 -0
- package/src/package-checks/host-environment/git.ts +68 -0
- package/src/package-checks/host-environment/path.ts +20 -0
- package/src/package-checks/host-environment/process/command.ts +21 -0
- package/src/package-checks/host-environment/process/contract.ts +56 -0
- package/src/package-checks/host-environment/process/env.ts +25 -0
- package/src/package-checks/host-environment/process/failure.ts +40 -0
- package/src/package-checks/host-environment/process/result.ts +39 -0
- package/src/package-checks/host-environment/process/runner.ts +47 -0
- package/src/package-checks/json-document/strict-document.ts +209 -0
- package/src/package-checks/json-schema-validation/default-check.ts +54 -0
- package/src/package-checks/json-schema-validation/execution-stages.ts +230 -0
- package/src/package-checks/json-schema-validation/final-data.ts +115 -0
- package/src/package-checks/json-schema-validation/issue-collector.ts +43 -0
- package/src/package-checks/json-schema-validation/json-schema-validation.ts +191 -0
- package/src/package-checks/json-schema-validation/options-resolution.ts +61 -0
- package/src/package-checks/json-schema-validation/options-validation.ts +256 -0
- package/src/package-checks/json-schema-validation/options.ts +66 -0
- package/src/package-checks/json-schema-validation/reference-resolver.ts +165 -0
- package/src/package-checks/json-schema-validation/remote-response.ts +84 -0
- package/src/package-checks/json-schema-validation/schema-engine.ts +263 -0
- package/src/package-checks/json-schema-validation/schema-policy.ts +275 -0
- package/src/package-checks/json-validation/default-check.ts +48 -0
- package/src/package-checks/json-validation/final-data.ts +46 -0
- package/src/package-checks/json-validation/json-validation.ts +212 -0
- package/src/package-checks/json-validation/options-resolution.ts +50 -0
- package/src/package-checks/json-validation/options-validation.ts +27 -0
- package/src/package-checks/json-validation/options.ts +18 -0
- package/src/package-checks/maintenance-reminders/assessment-results.ts +117 -0
- package/src/package-checks/maintenance-reminders/final-data.ts +239 -0
- package/src/package-checks/maintenance-reminders/maintenance-reminders.ts +264 -0
- package/src/package-checks/maintenance-reminders/maintenance-support.ts +67 -0
- package/src/package-checks/maintenance-reminders/measurement.ts +183 -0
- package/src/package-checks/maintenance-reminders/options-validation.ts +88 -0
- package/src/package-checks/markdown-link-validation/default-check.ts +70 -0
- package/src/package-checks/markdown-link-validation/execution.ts +325 -0
- package/src/package-checks/markdown-link-validation/filesystem-probes.ts +127 -0
- package/src/package-checks/markdown-link-validation/final-data.ts +47 -0
- package/src/package-checks/markdown-link-validation/local-resolution.ts +306 -0
- package/src/package-checks/markdown-link-validation/local-resolver.ts +51 -0
- package/src/package-checks/markdown-link-validation/markdown-parser.ts +302 -0
- package/src/package-checks/markdown-link-validation/options-resolution.ts +114 -0
- package/src/package-checks/markdown-link-validation/options-validation.ts +72 -0
- package/src/package-checks/markdown-link-validation/options.ts +50 -0
- package/src/package-checks/markdown-link-validation/records.ts +77 -0
- package/src/package-checks/markdown-link-validation/resolver-engine.ts +276 -0
- package/src/package-checks/markdown-link-validation/target-descriptor.ts +34 -0
- package/src/package-checks/markdown-link-validation/traversal-result.ts +58 -0
- package/src/package-checks/project-files/collection.ts +199 -0
- package/src/package-checks/project-files/config-glob.ts +17 -0
- package/src/package-checks/project-files/configuration.ts +152 -0
- package/src/package-checks/project-files/exact-input-measurement.ts +38 -0
- package/src/package-checks/project-files/file-fingerprint.ts +46 -0
- package/src/package-checks/project-files/gitlink-revision.ts +82 -0
- package/src/package-checks/project-files/gitlink-worktree.ts +106 -0
- package/src/package-checks/project-files/input-eligibility.ts +21 -0
- package/src/package-checks/project-files/reported-path.ts +35 -0
- package/src/package-checks/project-files/revision-paths.ts +34 -0
- package/src/package-checks/project-files/revision-worktree-files.ts +148 -0
- package/src/project-definition/check-tree/authoring.ts +332 -0
- package/src/project-definition/check-tree/materialization.ts +56 -0
- package/src/project-definition/check-tree/resolution.ts +108 -0
- package/src/project-definition/output-defaults.ts +6 -0
- package/src/project-definition/output-validation.ts +54 -0
- package/src/project-definition/project-definition-validation.ts +123 -0
- package/src/project-definition/project-definition.ts +184 -0
- package/src/project-run/aggregation.ts +90 -0
- package/src/project-run/check-execution/callback.ts +106 -0
- package/src/project-run/check-execution/dependencies.ts +70 -0
- package/src/project-run/check-execution/execution-finalization.ts +177 -0
- package/src/project-run/check-execution/execution-settlement.ts +147 -0
- package/src/project-run/check-execution/messages.ts +46 -0
- package/src/project-run/check-execution/plan.ts +46 -0
- package/src/project-run/check-execution/preflight-result.ts +131 -0
- package/src/project-run/check-execution/preflight.ts +321 -0
- package/src/project-run/check-execution/resolved-checks.ts +285 -0
- package/src/project-run/check-execution/terminal-result.ts +74 -0
- package/src/project-run/completion.ts +263 -0
- package/src/project-run/controls/contract.ts +24 -0
- package/src/project-run/controls/outputs-override-validation.ts +86 -0
- package/src/project-run/controls/validation-result.ts +12 -0
- package/src/project-run/controls/validation.ts +176 -0
- package/src/project-run/diagnostic-logging/diagnostic-detail-rendering.ts +223 -0
- package/src/project-run/diagnostic-logging/logger.ts +325 -0
- package/src/project-run/invocation-creation.ts +160 -0
- package/src/project-run/invocation.ts +303 -0
- package/src/project-run/machine-publication.ts +23 -0
- package/src/project-run/output-configuration.ts +24 -0
- package/src/project-run/output-status.ts +69 -0
- package/src/project-run/progress-rendering/presentation.ts +189 -0
- package/src/project-run/progress-rendering/renderer-formatting.ts +141 -0
- package/src/project-run/progress-rendering/renderer-lifecycle.ts +152 -0
- package/src/project-run/progress-rendering/renderer.ts +68 -0
- package/src/project-run/project-context.ts +11 -0
- package/src/project-run/result.ts +175 -0
- package/src/project-run/run.ts +50 -0
- package/src/project-run/task-scheduler/execution-state.ts +153 -0
- package/src/project-run/task-scheduler/graph-validation.ts +176 -0
- package/src/project-run/task-scheduler/graph.ts +185 -0
- package/src/project-run/task-scheduler/scheduler-admission-decision.ts +177 -0
- package/src/project-run/task-scheduler/scheduler-blocker-summary.ts +42 -0
- package/src/project-run/task-scheduler/scheduler-decision-inspection.ts +199 -0
- package/src/project-run/task-scheduler/scheduler-decision-model.ts +158 -0
- package/src/project-run/task-scheduler/scheduler-decision.ts +103 -0
- package/src/project-run/task-scheduler/scheduler.ts +228 -0
- package/third-party-licenses/momoa-3.3.12-LICENSE +201 -0
- package/types/check/check.d.ts +350 -0
- package/types/check/descriptor-validation.d.ts +18 -0
- package/types/check/descriptor.d.ts +5 -0
- package/types/check/inherited-collection.d.ts +35 -0
- package/types/check/options-snapshot.d.ts +2 -0
- package/types/check-settlement/fact-validation.d.ts +14 -0
- package/types/check-settlement/facts.d.ts +19 -0
- package/types/check-settlement/outcome-normalization.d.ts +9 -0
- package/types/check-settlement/record-store.d.ts +14 -0
- package/types/check-settlement/session.d.ts +41 -0
- package/types/data-boundary/canonical-data.d.ts +13 -0
- package/types/data-boundary/canonical-json.d.ts +6 -0
- package/types/data-boundary/closed-values.d.ts +8 -0
- package/types/data-boundary/value-shapes.d.ts +4 -0
- package/types/finding-waivers/reconciliation.d.ts +66 -0
- package/types/index.d.ts +57 -0
- package/types/machine-output/v4/atomic-publication.d.ts +9 -0
- package/types/machine-output/v4/freeze-publication-value.d.ts +6 -0
- package/types/machine-output/v4/projection.d.ts +7 -0
- package/types/machine-output/v4/publication-invariants.d.ts +3 -0
- package/types/machine-output/v4/publication-model.d.ts +15 -0
- package/types/machine-output/v4/publish.d.ts +7 -0
- package/types/machine-output/v4/records-fingerprint.d.ts +4 -0
- package/types/machine-output/v4/schema-identities.d.ts +7 -0
- package/types/machine-output/v4/schema.d.ts +44 -0
- package/types/machine-output/v4/serializers.d.ts +6 -0
- package/types/machine-output/v4/validation-result.d.ts +26 -0
- package/types/machine-output/v4/validation.d.ts +6 -0
- package/types/package-checks/code-quality-findings/policy.d.ts +20 -0
- package/types/package-checks/duplicate-detection/area-policy.d.ts +3 -0
- package/types/package-checks/duplicate-detection/cache/cache-contract.d.ts +48 -0
- package/types/package-checks/duplicate-detection/cache/identity.d.ts +17 -0
- package/types/package-checks/duplicate-detection/cache/key.d.ts +4 -0
- package/types/package-checks/duplicate-detection/cache/payload.d.ts +4 -0
- package/types/package-checks/duplicate-detection/cache/store.d.ts +18 -0
- package/types/package-checks/duplicate-detection/default-check.d.ts +11 -0
- package/types/package-checks/duplicate-detection/execution.d.ts +11 -0
- package/types/package-checks/duplicate-detection/final-data.d.ts +5 -0
- package/types/package-checks/duplicate-detection/jscpd/availability.d.ts +19 -0
- package/types/package-checks/duplicate-detection/jscpd/command-path.d.ts +1 -0
- package/types/package-checks/duplicate-detection/jscpd/command-resolution.d.ts +23 -0
- package/types/package-checks/duplicate-detection/jscpd/json-report.d.ts +2 -0
- package/types/package-checks/duplicate-detection/jscpd/scanner-contract.d.ts +11 -0
- package/types/package-checks/duplicate-detection/jscpd/scanner.d.ts +21 -0
- package/types/package-checks/duplicate-detection/jscpd/scoped-fragments.d.ts +4 -0
- package/types/package-checks/duplicate-detection/measurement-model.d.ts +36 -0
- package/types/package-checks/duplicate-detection/measurement.d.ts +14 -0
- package/types/package-checks/duplicate-detection/options-resolution.d.ts +3 -0
- package/types/package-checks/duplicate-detection/options-validation.d.ts +1 -0
- package/types/package-checks/duplicate-detection/options.d.ts +65 -0
- package/types/package-checks/duplicate-detection/project-revision.d.ts +1 -0
- package/types/package-checks/duplicate-detection/records.d.ts +22 -0
- package/types/package-checks/file-metrics/constructor.d.ts +11 -0
- package/types/package-checks/file-metrics/execution.d.ts +11 -0
- package/types/package-checks/file-metrics/final-data.d.ts +5 -0
- package/types/package-checks/file-metrics/measurement-model.d.ts +12 -0
- package/types/package-checks/file-metrics/measurement.d.ts +13 -0
- package/types/package-checks/file-metrics/options-resolution.d.ts +3 -0
- package/types/package-checks/file-metrics/options-validation.d.ts +3 -0
- package/types/package-checks/file-metrics/options.d.ts +75 -0
- package/types/package-checks/file-metrics/records.d.ts +43 -0
- package/types/package-checks/file-metrics/scc/availability.d.ts +18 -0
- package/types/package-checks/file-metrics/scc/csv.d.ts +1 -0
- package/types/package-checks/file-metrics/scc/parser.d.ts +25 -0
- package/types/package-checks/file-metrics/scc/scanner.d.ts +14 -0
- package/types/package-checks/final-data-parsing.d.ts +9 -0
- package/types/package-checks/function-metrics/analysis.d.ts +10 -0
- package/types/package-checks/function-metrics/constructor.d.ts +11 -0
- package/types/package-checks/function-metrics/execution.d.ts +7 -0
- package/types/package-checks/function-metrics/final-data.d.ts +5 -0
- package/types/package-checks/function-metrics/lizard/availability.d.ts +11 -0
- package/types/package-checks/function-metrics/lizard/csv.d.ts +1 -0
- package/types/package-checks/function-metrics/lizard/parser.d.ts +17 -0
- package/types/package-checks/function-metrics/lizard/scanner.d.ts +15 -0
- package/types/package-checks/function-metrics/measurement-model.d.ts +26 -0
- package/types/package-checks/function-metrics/measurement.d.ts +21 -0
- package/types/package-checks/function-metrics/options-resolution.d.ts +3 -0
- package/types/package-checks/function-metrics/options-validation.d.ts +3 -0
- package/types/package-checks/function-metrics/options.d.ts +76 -0
- package/types/package-checks/function-metrics/records.d.ts +37 -0
- package/types/package-checks/function-metrics/target-files.d.ts +3 -0
- package/types/package-checks/host-environment/error-message.d.ts +1 -0
- package/types/package-checks/host-environment/filesystem.d.ts +19 -0
- package/types/package-checks/host-environment/git.d.ts +13 -0
- package/types/package-checks/host-environment/path.d.ts +3 -0
- package/types/package-checks/host-environment/process/command.d.ts +7 -0
- package/types/package-checks/host-environment/process/contract.d.ts +50 -0
- package/types/package-checks/host-environment/process/env.d.ts +16 -0
- package/types/package-checks/host-environment/process/failure.d.ts +4 -0
- package/types/package-checks/host-environment/process/result.d.ts +2 -0
- package/types/package-checks/host-environment/process/runner.d.ts +3 -0
- package/types/package-checks/json-document/strict-document.d.ts +35 -0
- package/types/package-checks/json-schema-validation/default-check.d.ts +11 -0
- package/types/package-checks/json-schema-validation/execution-stages.d.ts +27 -0
- package/types/package-checks/json-schema-validation/final-data.d.ts +15 -0
- package/types/package-checks/json-schema-validation/issue-collector.d.ts +12 -0
- package/types/package-checks/json-schema-validation/json-schema-validation.d.ts +42 -0
- package/types/package-checks/json-schema-validation/options-resolution.d.ts +3 -0
- package/types/package-checks/json-schema-validation/options-validation.d.ts +2 -0
- package/types/package-checks/json-schema-validation/options.d.ts +53 -0
- package/types/package-checks/json-schema-validation/reference-resolver.d.ts +23 -0
- package/types/package-checks/json-schema-validation/remote-response.d.ts +2 -0
- package/types/package-checks/json-schema-validation/schema-engine.d.ts +33 -0
- package/types/package-checks/json-schema-validation/schema-policy.d.ts +17 -0
- package/types/package-checks/json-validation/default-check.d.ts +11 -0
- package/types/package-checks/json-validation/final-data.d.ts +10 -0
- package/types/package-checks/json-validation/json-validation.d.ts +28 -0
- package/types/package-checks/json-validation/options-resolution.d.ts +3 -0
- package/types/package-checks/json-validation/options-validation.d.ts +2 -0
- package/types/package-checks/json-validation/options.d.ts +13 -0
- package/types/package-checks/maintenance-reminders/assessment-results.d.ts +10 -0
- package/types/package-checks/maintenance-reminders/final-data.d.ts +47 -0
- package/types/package-checks/maintenance-reminders/maintenance-reminders.d.ts +111 -0
- package/types/package-checks/maintenance-reminders/maintenance-support.d.ts +7 -0
- package/types/package-checks/maintenance-reminders/measurement.d.ts +10 -0
- package/types/package-checks/maintenance-reminders/options-validation.d.ts +3 -0
- package/types/package-checks/markdown-link-validation/default-check.d.ts +27 -0
- package/types/package-checks/markdown-link-validation/execution.d.ts +12 -0
- package/types/package-checks/markdown-link-validation/filesystem-probes.d.ts +10 -0
- package/types/package-checks/markdown-link-validation/final-data.d.ts +10 -0
- package/types/package-checks/markdown-link-validation/local-resolution.d.ts +92 -0
- package/types/package-checks/markdown-link-validation/local-resolver.d.ts +5 -0
- package/types/package-checks/markdown-link-validation/markdown-parser.d.ts +37 -0
- package/types/package-checks/markdown-link-validation/options-resolution.d.ts +3 -0
- package/types/package-checks/markdown-link-validation/options-validation.d.ts +2 -0
- package/types/package-checks/markdown-link-validation/options.d.ts +43 -0
- package/types/package-checks/markdown-link-validation/records.d.ts +37 -0
- package/types/package-checks/markdown-link-validation/resolver-engine.d.ts +15 -0
- package/types/package-checks/markdown-link-validation/target-descriptor.d.ts +5 -0
- package/types/package-checks/markdown-link-validation/traversal-result.d.ts +12 -0
- package/types/package-checks/project-files/collection.d.ts +9 -0
- package/types/package-checks/project-files/config-glob.d.ts +5 -0
- package/types/package-checks/project-files/configuration.d.ts +31 -0
- package/types/package-checks/project-files/exact-input-measurement.d.ts +12 -0
- package/types/package-checks/project-files/file-fingerprint.d.ts +7 -0
- package/types/package-checks/project-files/gitlink-revision.d.ts +9 -0
- package/types/package-checks/project-files/gitlink-worktree.d.ts +26 -0
- package/types/package-checks/project-files/input-eligibility.d.ts +7 -0
- package/types/package-checks/project-files/reported-path.d.ts +1 -0
- package/types/package-checks/project-files/revision-paths.d.ts +12 -0
- package/types/package-checks/project-files/revision-worktree-files.d.ts +5 -0
- package/types/project-definition/check-tree/authoring.d.ts +41 -0
- package/types/project-definition/check-tree/materialization.d.ts +4 -0
- package/types/project-definition/check-tree/resolution.d.ts +25 -0
- package/types/project-definition/output-defaults.d.ts +14 -0
- package/types/project-definition/output-validation.d.ts +3 -0
- package/types/project-definition/project-definition-validation.d.ts +6 -0
- package/types/project-definition/project-definition.d.ts +88 -0
- package/types/project-run/aggregation.d.ts +7 -0
- package/types/project-run/check-execution/callback.d.ts +24 -0
- package/types/project-run/check-execution/dependencies.d.ts +9 -0
- package/types/project-run/check-execution/execution-finalization.d.ts +18 -0
- package/types/project-run/check-execution/execution-settlement.d.ts +41 -0
- package/types/project-run/check-execution/messages.d.ts +3 -0
- package/types/project-run/check-execution/plan.d.ts +10 -0
- package/types/project-run/check-execution/preflight-result.d.ts +23 -0
- package/types/project-run/check-execution/preflight.d.ts +27 -0
- package/types/project-run/check-execution/resolved-checks.d.ts +51 -0
- package/types/project-run/check-execution/terminal-result.d.ts +27 -0
- package/types/project-run/completion.d.ts +14 -0
- package/types/project-run/controls/contract.d.ts +24 -0
- package/types/project-run/controls/outputs-override-validation.d.ts +3 -0
- package/types/project-run/controls/validation-result.d.ts +14 -0
- package/types/project-run/controls/validation.d.ts +3 -0
- package/types/project-run/diagnostic-logging/diagnostic-detail-rendering.d.ts +11 -0
- package/types/project-run/diagnostic-logging/logger.d.ts +33 -0
- package/types/project-run/invocation-creation.d.ts +12 -0
- package/types/project-run/invocation.d.ts +34 -0
- package/types/project-run/machine-publication.d.ts +10 -0
- package/types/project-run/output-configuration.d.ts +3 -0
- package/types/project-run/output-status.d.ts +21 -0
- package/types/project-run/progress-rendering/presentation.d.ts +28 -0
- package/types/project-run/progress-rendering/renderer-formatting.d.ts +23 -0
- package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +24 -0
- package/types/project-run/progress-rendering/renderer.d.ts +44 -0
- package/types/project-run/project-context.d.ts +7 -0
- package/types/project-run/result.d.ts +99 -0
- package/types/project-run/run.d.ts +18 -0
- package/types/project-run/task-scheduler/execution-state.d.ts +67 -0
- package/types/project-run/task-scheduler/graph-validation.d.ts +11 -0
- package/types/project-run/task-scheduler/graph.d.ts +40 -0
- package/types/project-run/task-scheduler/scheduler-admission-decision.d.ts +8 -0
- package/types/project-run/task-scheduler/scheduler-blocker-summary.d.ts +4 -0
- package/types/project-run/task-scheduler/scheduler-decision-inspection.d.ts +24 -0
- package/types/project-run/task-scheduler/scheduler-decision-model.d.ts +94 -0
- package/types/project-run/task-scheduler/scheduler-decision.d.ts +8 -0
- package/types/project-run/task-scheduler/scheduler.d.ts +3 -0
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
import type { CanonicalJsonObject, CanonicalJsonValue } from "../data-boundary/canonical-json.ts";
|
|
2
|
+
import type { InheritableCheckCollection } from "./inherited-collection.ts";
|
|
3
|
+
|
|
4
|
+
export {
|
|
5
|
+
inherit,
|
|
6
|
+
isInheritedCheckCollection,
|
|
7
|
+
snapshotInheritedCheckCollection
|
|
8
|
+
} from "./inherited-collection.ts";
|
|
9
|
+
export type {
|
|
10
|
+
InheritCheckCollectionInput,
|
|
11
|
+
InheritableCheckCollection,
|
|
12
|
+
InheritedCheckCollection
|
|
13
|
+
} from "./inherited-collection.ts";
|
|
14
|
+
|
|
15
|
+
/** Check 无法给出 final data 时返回的受控 reason code。 */
|
|
16
|
+
export type CheckReason = Readonly<{
|
|
17
|
+
/** 由 owning Check 定义、供调用方诊断的稳定 code。 */
|
|
18
|
+
readonly code: string;
|
|
19
|
+
}>;
|
|
20
|
+
|
|
21
|
+
/** `not-applicable` Check result 的可选 reason。 */
|
|
22
|
+
export type CheckNotApplicableReason = CheckReason;
|
|
23
|
+
/** author callback 明确返回 `unavailable` 时必须提供的 reason。 */
|
|
24
|
+
export type CheckDeclaredUnavailableReason = CheckReason;
|
|
25
|
+
|
|
26
|
+
/** `unavailable` Check outcome 的 reason;可列出导致当前 Check 不可用的上游 Check。 */
|
|
27
|
+
export type CheckUnavailableReason = Readonly<{
|
|
28
|
+
/** 由当前 Check 或 Product 边界给出的受控原因。 */
|
|
29
|
+
readonly code: string;
|
|
30
|
+
/** 仅在上游关系有助于定位时给出的相关 Check IDs。 */
|
|
31
|
+
readonly checkIds?: readonly string[];
|
|
32
|
+
}>;
|
|
33
|
+
|
|
34
|
+
/** 终端 Check message 的 presentation severity。 */
|
|
35
|
+
export type CheckMessageLevel = "info" | "warning" | "error";
|
|
36
|
+
|
|
37
|
+
/** 由 Check author 附加到 terminal result 的补充消息。 */
|
|
38
|
+
export interface CheckMessage {
|
|
39
|
+
/** 人读 presentation 使用的 severity。 */
|
|
40
|
+
readonly level: CheckMessageLevel;
|
|
41
|
+
/** owning Check namespace 内的稳定 message code。 */
|
|
42
|
+
readonly code: string;
|
|
43
|
+
/** 非空消息正文;Product 保留 author 提供的字符串。 */
|
|
44
|
+
readonly message: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** 可附加到每个 {@link CheckResult} branch 的有序 terminal messages。 */
|
|
48
|
+
export interface CheckResultMessages {
|
|
49
|
+
/** 省略、`undefined` 或空数组都表示没有 supplemental messages。 */
|
|
50
|
+
readonly messages?: readonly CheckMessage[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** 已结算 Check 在人读 progress 中的可见性。 */
|
|
54
|
+
export type CheckVisibility = "always" | "attention";
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Check callback 的 terminal result。
|
|
58
|
+
*
|
|
59
|
+
* @typeParam FinalData - `passed` 或 `failed` 时保留为 canonical final data 的业务对象。
|
|
60
|
+
* @remarks `not-applicable` 与 `unavailable` 不携带 final data;普通 callback、Record 或取消失败由
|
|
61
|
+
* Product 转换为 `unavailable`,而不是抛出为 Run 的成功结果。
|
|
62
|
+
*/
|
|
63
|
+
export type CheckResult<FinalData extends object = object> = Readonly<
|
|
64
|
+
(
|
|
65
|
+
| {
|
|
66
|
+
/** Check 已产生通过的 final data。 */
|
|
67
|
+
readonly status: "passed";
|
|
68
|
+
/** 此 Check 的主要终态事实。 */
|
|
69
|
+
readonly data: FinalData;
|
|
70
|
+
}
|
|
71
|
+
| {
|
|
72
|
+
/** Check 已产生失败的 final data。 */
|
|
73
|
+
readonly status: "failed";
|
|
74
|
+
/** 此 Check 的主要终态事实。 */
|
|
75
|
+
readonly data: FinalData;
|
|
76
|
+
}
|
|
77
|
+
| {
|
|
78
|
+
/** Check 在当前 invocation 中不适用。 */
|
|
79
|
+
readonly status: "not-applicable";
|
|
80
|
+
/** 不适用的可选受控原因。 */
|
|
81
|
+
readonly reason?: CheckNotApplicableReason;
|
|
82
|
+
}
|
|
83
|
+
| {
|
|
84
|
+
/** Check 不能提供 terminal data。 */
|
|
85
|
+
readonly status: "unavailable";
|
|
86
|
+
/** 不可用的受控原因。 */
|
|
87
|
+
readonly reason: CheckDeclaredUnavailableReason;
|
|
88
|
+
}
|
|
89
|
+
) &
|
|
90
|
+
CheckResultMessages
|
|
91
|
+
>;
|
|
92
|
+
|
|
93
|
+
/** 已 materialize 到 Core snapshot 的 Check terminal outcome。 */
|
|
94
|
+
export type CheckOutcome = Readonly<
|
|
95
|
+
| {
|
|
96
|
+
/** 已 materialize 的通过 outcome。 */
|
|
97
|
+
readonly status: "passed";
|
|
98
|
+
/** 已 canonicalize 的 primary final fact。 */
|
|
99
|
+
readonly data: CanonicalJsonObject;
|
|
100
|
+
}
|
|
101
|
+
| {
|
|
102
|
+
/** 已 materialize 的失败 outcome。 */
|
|
103
|
+
readonly status: "failed";
|
|
104
|
+
/** 已 canonicalize 的 primary final fact。 */
|
|
105
|
+
readonly data: CanonicalJsonObject;
|
|
106
|
+
}
|
|
107
|
+
| {
|
|
108
|
+
/** 已 materialize 的不适用 outcome。 */
|
|
109
|
+
readonly status: "not-applicable";
|
|
110
|
+
/** 不适用的可选受控原因。 */
|
|
111
|
+
readonly reason?: CheckNotApplicableReason;
|
|
112
|
+
}
|
|
113
|
+
| {
|
|
114
|
+
/** 已 materialize 的不可用 outcome。 */
|
|
115
|
+
readonly status: "unavailable";
|
|
116
|
+
/** 包含相关 upstream Check IDs 的受控原因。 */
|
|
117
|
+
readonly reason: CheckUnavailableReason;
|
|
118
|
+
}
|
|
119
|
+
>;
|
|
120
|
+
|
|
121
|
+
/** 将 callback options 转为不可变观察值的递归 utility type。 */
|
|
122
|
+
export type DeepReadonly<T> = T extends string | number | boolean | null
|
|
123
|
+
? T
|
|
124
|
+
: T extends readonly (infer Item)[]
|
|
125
|
+
? readonly DeepReadonly<Item>[]
|
|
126
|
+
: T extends object
|
|
127
|
+
? { readonly [Key in keyof T]: DeepReadonly<T[Key]> }
|
|
128
|
+
: never;
|
|
129
|
+
|
|
130
|
+
/** callback 写入 supplemental Record 时的 Check-local identity。 */
|
|
131
|
+
interface RecordIdentityInput {
|
|
132
|
+
/** 在当前 Check 内唯一的 Record ID。 */
|
|
133
|
+
readonly id: string;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** callback 写入 supplemental Records 的 Product-owned reporter。 */
|
|
137
|
+
interface CheckRecordReporter {
|
|
138
|
+
/** 记录一个补充事实;它不决定 Check 的 terminal status。 */
|
|
139
|
+
report(identity: RecordIdentityInput, data: object): void;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** 读取已声明 dependency final data 时的失败原因。 */
|
|
143
|
+
export type DependencyReadError = Readonly<
|
|
144
|
+
| {
|
|
145
|
+
/** 当前 Check 未声明所请求的 dependency ID。 */
|
|
146
|
+
readonly code: "dependency-not-declared";
|
|
147
|
+
/** 被拒绝的 dependency ID。 */
|
|
148
|
+
readonly checkId: string;
|
|
149
|
+
}
|
|
150
|
+
| {
|
|
151
|
+
/** 已声明 upstream 没有可读取的 final data。 */
|
|
152
|
+
readonly code: "upstream-data-unavailable";
|
|
153
|
+
/** 没有 final data 的 direct dependency ID。 */
|
|
154
|
+
readonly checkId: string;
|
|
155
|
+
/** 阻止 readback 的 upstream terminal status。 */
|
|
156
|
+
readonly status: "not-applicable" | "unavailable";
|
|
157
|
+
}
|
|
158
|
+
>;
|
|
159
|
+
|
|
160
|
+
/** {@link CheckDependencies.get} 的受控 readback 结果。 */
|
|
161
|
+
export type DependencyReadResult = Readonly<
|
|
162
|
+
| {
|
|
163
|
+
/** 成功读取 direct dependency final data。 */
|
|
164
|
+
readonly ok: true;
|
|
165
|
+
/** 被读取的 direct dependency ID。 */
|
|
166
|
+
readonly checkId: string;
|
|
167
|
+
/** upstream 已结算为 `passed` 或 `failed` 的 status。 */
|
|
168
|
+
readonly status: "passed" | "failed";
|
|
169
|
+
/** 已与原对象脱离的上游依赖终态数据。 */
|
|
170
|
+
readonly data: CanonicalJsonObject;
|
|
171
|
+
}
|
|
172
|
+
| {
|
|
173
|
+
/** dependency data 不可读取。 */
|
|
174
|
+
readonly ok: false;
|
|
175
|
+
/** 失败的授权或 upstream-data reason。 */
|
|
176
|
+
readonly error: DependencyReadError;
|
|
177
|
+
}
|
|
178
|
+
>;
|
|
179
|
+
|
|
180
|
+
/** 当前 Check 的已规范化直接 dependencies 的 data reader。 */
|
|
181
|
+
export interface CheckDependencies {
|
|
182
|
+
/**
|
|
183
|
+
* 读取一个直接 dependency 的 canonical final data。
|
|
184
|
+
*
|
|
185
|
+
* @returns 已声明且为 `passed`/`failed` 的 dependency 返回其 data;未声明或没有 final data 时返回
|
|
186
|
+
* `ok: false`,不会授权 transitive dependency。
|
|
187
|
+
*/
|
|
188
|
+
get(checkId: string): DependencyReadResult;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/** callback 可读取的、由 Product 规范化的项目上下文。 */
|
|
192
|
+
export interface CheckProjectContext {
|
|
193
|
+
/** 本次 Run 使用的绝对项目根目录。 */
|
|
194
|
+
readonly root: string;
|
|
195
|
+
/** 已去重、排序的 caller-supplied flags。 */
|
|
196
|
+
readonly flags: readonly string[];
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Check callback 收到的 Product-owned execution context。
|
|
201
|
+
*
|
|
202
|
+
* @typeParam Options - 此 Check preflight 后传给 execution 的 options shape。
|
|
203
|
+
*/
|
|
204
|
+
export interface CheckExecutionContext<Options extends object> {
|
|
205
|
+
/** 读取当前 Check 的已声明 direct dependencies。 */
|
|
206
|
+
readonly dependencies: CheckDependencies;
|
|
207
|
+
/** 深度只读、canonical 的 invocation-local prepared Check options。 */
|
|
208
|
+
readonly options: DeepReadonly<Options>;
|
|
209
|
+
/** 已规范化的项目根与 flags。 */
|
|
210
|
+
readonly project: CheckProjectContext;
|
|
211
|
+
/** 写入 supplemental Records 的 reporter。 */
|
|
212
|
+
readonly records: CheckRecordReporter;
|
|
213
|
+
/** 本次 invocation 的 cancellation signal。 */
|
|
214
|
+
readonly signal: AbortSignal;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* 一个 Check 的 callback signature。
|
|
219
|
+
*
|
|
220
|
+
* @typeParam Options - callback 从 context 读取的 prepared options shape。
|
|
221
|
+
* @returns terminal Check result 或其 Promise。
|
|
222
|
+
*/
|
|
223
|
+
export type CheckExecution<Options extends object = object> = (
|
|
224
|
+
this: void,
|
|
225
|
+
context: CheckExecutionContext<Options>
|
|
226
|
+
) => CheckResult | Promise<CheckResult>;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* 在 Check execution 前,可选地为本次 invocation 准备 options。
|
|
230
|
+
*
|
|
231
|
+
* @remarks `signal` 与同一次 callback execution 使用同一个 cancellation signal;实现应在可等待工作中
|
|
232
|
+
* 协作退出,而不是留下悬挂 work。bivariant callback 保持具体 options Check 可进入普通递归 Check
|
|
233
|
+
* collection;Product 仍只会用该 Check 自己的 authored options 调用它。精确结果见
|
|
234
|
+
* {@link CheckPreflightResult}。
|
|
235
|
+
*/
|
|
236
|
+
export type CheckPreflight<
|
|
237
|
+
AuthoredOptions extends object = object,
|
|
238
|
+
PreparedOptions extends object = AuthoredOptions
|
|
239
|
+
> = {
|
|
240
|
+
bivarianceHack(
|
|
241
|
+
this: void,
|
|
242
|
+
options: DeepReadonly<AuthoredOptions>,
|
|
243
|
+
signal: AbortSignal
|
|
244
|
+
): CheckPreflightResult<PreparedOptions> | Promise<CheckPreflightResult<PreparedOptions>>;
|
|
245
|
+
}["bivarianceHack"];
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Check-owned preflight 的判别结果。
|
|
249
|
+
*
|
|
250
|
+
* `failure/block` 不允许 fallback,直接以 owning reason 结算为 unavailable;`failure/continue` 必须给出
|
|
251
|
+
* fallback 并继续 execution。两种进入 execution 的值都只属于本次 invocation,Product canonicalize/freeze
|
|
252
|
+
* 后传递,不会改写 Definition 中 authored options。两个 failure 分支都必须给出 reason;continue reason
|
|
253
|
+
* 是 Check-owned diagnostic identity,当前不会单独 materialize 为 outcome,调用方通过 messages 与后续
|
|
254
|
+
* outcome 观察结果;block 物理上不含 fallback 字段。
|
|
255
|
+
*/
|
|
256
|
+
export type CheckPreflightResult<PreparedOptions extends object = object> = Readonly<
|
|
257
|
+
| {
|
|
258
|
+
readonly status: "success";
|
|
259
|
+
readonly preparedOptions: PreparedOptions;
|
|
260
|
+
readonly messages?: readonly CheckMessage[];
|
|
261
|
+
}
|
|
262
|
+
| {
|
|
263
|
+
readonly status: "failure";
|
|
264
|
+
readonly action: "block";
|
|
265
|
+
readonly reason: CheckDeclaredUnavailableReason;
|
|
266
|
+
readonly messages?: readonly CheckMessage[];
|
|
267
|
+
}
|
|
268
|
+
| {
|
|
269
|
+
readonly status: "failure";
|
|
270
|
+
readonly action: "continue";
|
|
271
|
+
readonly fallback: PreparedOptions;
|
|
272
|
+
readonly reason: CheckReason;
|
|
273
|
+
readonly messages?: readonly CheckMessage[];
|
|
274
|
+
}
|
|
275
|
+
>;
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* 普通递归 Check authoring value 的共享字段。
|
|
279
|
+
*
|
|
280
|
+
* @typeParam AuthoredOptions - Definition 中的 declarative options shape。
|
|
281
|
+
* @typeParam PreparedOptions - preflight 后 callback 接收的 invocation-local options shape。
|
|
282
|
+
* @remarks 该值可以同时有 `execution` 和 `checks`;只有 executable node 产生 final Check fact。
|
|
283
|
+
*/
|
|
284
|
+
interface CheckBase<AuthoredOptions extends object, PreparedOptions extends object> {
|
|
285
|
+
/** 在 Definition 内唯一的 stable Check ID。 */
|
|
286
|
+
readonly checkId: string;
|
|
287
|
+
/** 人读 progress 与 output 使用的非空名称。 */
|
|
288
|
+
readonly displayName: string;
|
|
289
|
+
/** Check-owned declarative options;默认 Check 的嵌套 branch 以普通对象组合替换。 */
|
|
290
|
+
readonly options?: AuthoredOptions;
|
|
291
|
+
/** 可执行节点的 callback;省略时此节点只承载递归 children。 */
|
|
292
|
+
execution?(
|
|
293
|
+
this: void,
|
|
294
|
+
context: CheckExecutionContext<PreparedOptions>
|
|
295
|
+
): CheckResult | Promise<CheckResult>;
|
|
296
|
+
/** 继承 scheduling context 的 child Checks,不会单独形成 container result。 */
|
|
297
|
+
readonly checks?: readonly Check[];
|
|
298
|
+
/** 直接 prerequisite Check IDs,或对父 dependency collection 的显式 edit。 */
|
|
299
|
+
readonly dependsOn?: InheritableCheckCollection<string>;
|
|
300
|
+
/** 此 Check 及其 descendants 的最大并行预算。 */
|
|
301
|
+
readonly maxParallel?: number;
|
|
302
|
+
/** 共享资源名称,或对父 mutex collection 的显式 edit。 */
|
|
303
|
+
readonly mutex?: InheritableCheckCollection<string>;
|
|
304
|
+
/** 已结算 Check 的人读可见性;可执行节点默认 `always`。 */
|
|
305
|
+
readonly visibility?: CheckVisibility;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* 判断两个 options shape 是否互相可赋值;互相可赋值时 execution 不需要 preparation 转换。
|
|
310
|
+
*/
|
|
311
|
+
type HasSameOptionsShape<AuthoredOptions extends object, PreparedOptions extends object> = [
|
|
312
|
+
AuthoredOptions
|
|
313
|
+
] extends [PreparedOptions]
|
|
314
|
+
? [PreparedOptions] extends [AuthoredOptions]
|
|
315
|
+
? true
|
|
316
|
+
: false
|
|
317
|
+
: false;
|
|
318
|
+
|
|
319
|
+
/** Prepared shape 不同时,preflight 是建立安全转换的必填边界。 */
|
|
320
|
+
type CheckPreflightField<AuthoredOptions extends object, PreparedOptions extends object> =
|
|
321
|
+
HasSameOptionsShape<AuthoredOptions, PreparedOptions> extends true
|
|
322
|
+
? Readonly<{ readonly preflight?: CheckPreflight<AuthoredOptions, PreparedOptions> }>
|
|
323
|
+
: Readonly<{ readonly preflight: CheckPreflight<AuthoredOptions, PreparedOptions> }>;
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Project Definition 中的普通递归 Check authoring value。
|
|
327
|
+
*
|
|
328
|
+
* @typeParam AuthoredOptions - Definition 中的 declarative options shape。
|
|
329
|
+
* @typeParam PreparedOptions - preflight 后 callback 接收的 invocation-local options shape。
|
|
330
|
+
* @remarks Definition 只闭合 authored JSON options;preflight 在同一 Run 的所有 execution 前作为全局
|
|
331
|
+
* barrier 执行。`PreparedOptions` 与 `AuthoredOptions` 不同时必须提供 preflight;同形时可以省略。它不进入
|
|
332
|
+
* declarative fingerprint 或 machine output。
|
|
333
|
+
*/
|
|
334
|
+
export type Check<
|
|
335
|
+
AuthoredOptions extends object = object,
|
|
336
|
+
PreparedOptions extends object = AuthoredOptions
|
|
337
|
+
> = CheckBase<AuthoredOptions, PreparedOptions> &
|
|
338
|
+
CheckPreflightField<AuthoredOptions, PreparedOptions>;
|
|
339
|
+
|
|
340
|
+
export type EmptyCheckOptions = Readonly<Record<never, never>>;
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* 防止宽泛的 parser 标注擦除 `PromiseLike`。canonical `then` field 可以保存 JSON data,
|
|
344
|
+
* 但不能保存使该值成为 thenable 的 callable。
|
|
345
|
+
*/
|
|
346
|
+
type NonThenableData = Readonly<{ readonly then?: CanonicalJsonValue }>;
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* 将 canonical dependency data 还原为 provider final-data shape 的同步 parser。
|
|
350
|
+
*
|
|
351
|
+
* @typeParam FinalData - provider 在 `passed`/`failed` result 中声明的 final-data shape。
|
|
352
|
+
* @remarks Product 不调用此 parser;provider 负责不受信任或跨版本 data 的业务验证。
|
|
353
|
+
*/
|
|
354
|
+
export type CheckDataParser<FinalData extends object = object> = (
|
|
355
|
+
this: void,
|
|
356
|
+
data: CanonicalJsonObject
|
|
357
|
+
) => FinalData & NonThenableData;
|
|
358
|
+
|
|
359
|
+
type CheckAuthoringBase<
|
|
360
|
+
Id extends string,
|
|
361
|
+
AuthoredOptions extends object,
|
|
362
|
+
PreparedOptions extends object
|
|
363
|
+
> = Omit<CheckBase<AuthoredOptions, PreparedOptions>, "checkId" | "execution" | "options"> &
|
|
364
|
+
CheckPreflightField<AuthoredOptions, PreparedOptions> &
|
|
365
|
+
Readonly<{ readonly checkId: Id }>;
|
|
366
|
+
|
|
367
|
+
interface OrdinaryCheckFields<PreparedOptions extends object> {
|
|
368
|
+
execution?(
|
|
369
|
+
this: void,
|
|
370
|
+
context: CheckExecutionContext<PreparedOptions>
|
|
371
|
+
): CheckResult | Promise<CheckResult>;
|
|
372
|
+
readonly parseData?: never;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
export type CheckWithOptions<
|
|
376
|
+
Id extends string,
|
|
377
|
+
AuthoredOptions extends object,
|
|
378
|
+
PreparedOptions extends object = AuthoredOptions
|
|
379
|
+
> = CheckAuthoringBase<Id, AuthoredOptions, PreparedOptions> &
|
|
380
|
+
OrdinaryCheckFields<PreparedOptions> &
|
|
381
|
+
Readonly<{
|
|
382
|
+
readonly options: AuthoredOptions;
|
|
383
|
+
}>;
|
|
384
|
+
|
|
385
|
+
export type CheckWithoutOptions<Id extends string> = CheckAuthoringBase<
|
|
386
|
+
Id,
|
|
387
|
+
EmptyCheckOptions,
|
|
388
|
+
EmptyCheckOptions
|
|
389
|
+
> &
|
|
390
|
+
OrdinaryCheckFields<EmptyCheckOptions> &
|
|
391
|
+
Readonly<{
|
|
392
|
+
readonly options?: never;
|
|
393
|
+
}>;
|
|
394
|
+
|
|
395
|
+
interface TypedCheckFields<PreparedOptions extends object, Parser extends CheckDataParser> {
|
|
396
|
+
/**
|
|
397
|
+
* 将 canonical runtime data 还原为 provider data。
|
|
398
|
+
*
|
|
399
|
+
* 启发式边界:同版本且受信任的 provider 若由测试保证 data shape,可仅将它实现为
|
|
400
|
+
* identity/type anchor。这不验证 JavaScript 或基于 cast 的 producer、历史或跨版本 artifact,
|
|
401
|
+
* 也不验证不受信任输入。
|
|
402
|
+
*/
|
|
403
|
+
readonly parseData: Parser;
|
|
404
|
+
|
|
405
|
+
execution(
|
|
406
|
+
this: void,
|
|
407
|
+
context: CheckExecutionContext<PreparedOptions>
|
|
408
|
+
): CheckResult<NoInfer<ReturnType<Parser>>> | Promise<CheckResult<NoInfer<ReturnType<Parser>>>>;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
export type TypedCheckWithOptions<
|
|
412
|
+
Id extends string,
|
|
413
|
+
AuthoredOptions extends object,
|
|
414
|
+
Parser extends CheckDataParser,
|
|
415
|
+
PreparedOptions extends object = AuthoredOptions
|
|
416
|
+
> = CheckAuthoringBase<Id, AuthoredOptions, PreparedOptions> &
|
|
417
|
+
TypedCheckFields<PreparedOptions, Parser> &
|
|
418
|
+
Readonly<{
|
|
419
|
+
readonly options: AuthoredOptions;
|
|
420
|
+
}>;
|
|
421
|
+
|
|
422
|
+
export type TypedCheckWithoutOptions<
|
|
423
|
+
Id extends string,
|
|
424
|
+
Parser extends CheckDataParser
|
|
425
|
+
> = CheckAuthoringBase<Id, EmptyCheckOptions, EmptyCheckOptions> &
|
|
426
|
+
TypedCheckFields<EmptyCheckOptions, Parser> &
|
|
427
|
+
Readonly<{
|
|
428
|
+
readonly options?: never;
|
|
429
|
+
}>;
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* 定义一个 Check,同时保留 literal `checkId`、options 与 typed-provider parser 的 inference。
|
|
433
|
+
*
|
|
434
|
+
* @remarks 此函数负责 authoring inference;{@link run} 负责 Project Definition validation。
|
|
435
|
+
* @example 定义带 options、Records 与 messages 的自定义 Check
|
|
436
|
+
* ```ts
|
|
437
|
+
* function hasValidLicensePolicyOptions(options: object): boolean {
|
|
438
|
+
* const denied: unknown = Reflect.get(options, "denied");
|
|
439
|
+
* return (
|
|
440
|
+
* Object.keys(options).length === 1 &&
|
|
441
|
+
* Object.hasOwn(options, "denied") &&
|
|
442
|
+
* Array.isArray(denied) &&
|
|
443
|
+
* denied.every((license) => typeof license === "string")
|
|
444
|
+
* );
|
|
445
|
+
* }
|
|
446
|
+
*
|
|
447
|
+
* const licensePolicy = defineCheck({
|
|
448
|
+
* checkId: "license-policy",
|
|
449
|
+
* displayName: "License policy",
|
|
450
|
+
* options: { denied: ["GPL-3.0-only"] },
|
|
451
|
+
* preflight(options) {
|
|
452
|
+
* return hasValidLicensePolicyOptions(options)
|
|
453
|
+
* ? { status: "success", preparedOptions: options }
|
|
454
|
+
* : { status: "failure", action: "block", reason: { code: "invalid-options" } };
|
|
455
|
+
* },
|
|
456
|
+
* visibility: "attention",
|
|
457
|
+
* execution({ options, records, signal }) {
|
|
458
|
+
* if (signal.aborted) return { status: "unavailable", reason: { code: "cancelled" } };
|
|
459
|
+
*
|
|
460
|
+
* const deniedCount = options.denied.length;
|
|
461
|
+
* if (deniedCount > 0) {
|
|
462
|
+
* records.report({ id: "denied-license" }, { count: deniedCount });
|
|
463
|
+
* return {
|
|
464
|
+
* status: "failed",
|
|
465
|
+
* data: { deniedCount },
|
|
466
|
+
* messages: [{ level: "warning", code: "denied-license", message: "Denied licenses found." }]
|
|
467
|
+
* };
|
|
468
|
+
* }
|
|
469
|
+
* return { status: "passed", data: { deniedCount: 0 } };
|
|
470
|
+
* }
|
|
471
|
+
* });
|
|
472
|
+
* ```
|
|
473
|
+
*/
|
|
474
|
+
export function defineCheck<
|
|
475
|
+
const Id extends string,
|
|
476
|
+
AuthoredOptions extends object,
|
|
477
|
+
PreparedOptions extends object = AuthoredOptions
|
|
478
|
+
>(
|
|
479
|
+
value: CheckWithOptions<Id, AuthoredOptions, PreparedOptions>
|
|
480
|
+
): CheckWithOptions<Id, AuthoredOptions, PreparedOptions>;
|
|
481
|
+
export function defineCheck<const Id extends string>(
|
|
482
|
+
value: CheckWithoutOptions<Id>
|
|
483
|
+
): CheckWithoutOptions<Id>;
|
|
484
|
+
export function defineCheck<
|
|
485
|
+
const Id extends string,
|
|
486
|
+
AuthoredOptions extends object,
|
|
487
|
+
const Parser extends CheckDataParser,
|
|
488
|
+
PreparedOptions extends object = AuthoredOptions
|
|
489
|
+
>(
|
|
490
|
+
value: TypedCheckWithOptions<Id, AuthoredOptions, Parser, PreparedOptions>
|
|
491
|
+
): TypedCheckWithOptions<Id, AuthoredOptions, Parser, PreparedOptions>;
|
|
492
|
+
export function defineCheck<const Id extends string, const Parser extends CheckDataParser>(
|
|
493
|
+
value: TypedCheckWithoutOptions<Id, Parser>
|
|
494
|
+
): TypedCheckWithoutOptions<Id, Parser>;
|
|
495
|
+
export function defineCheck(value: Check): Check {
|
|
496
|
+
return value;
|
|
497
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { snapshotClosedRecord } from "../data-boundary/closed-values.ts";
|
|
2
|
+
import type { CheckDescriptor } from "./descriptor.ts";
|
|
3
|
+
|
|
4
|
+
export interface CheckDescriptorValidationIssue {
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly code: "invalid-value";
|
|
7
|
+
readonly message: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type CheckDescriptorValidationResult = Readonly<
|
|
11
|
+
| { readonly ok: true; readonly value: CheckDescriptor }
|
|
12
|
+
| {
|
|
13
|
+
readonly ok: false;
|
|
14
|
+
readonly issues: readonly [
|
|
15
|
+
CheckDescriptorValidationIssue,
|
|
16
|
+
...CheckDescriptorValidationIssue[]
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
>;
|
|
20
|
+
|
|
21
|
+
/** Validates the minimal Check identity shared by Definition authoring and final facts. */
|
|
22
|
+
export function validateCheckDescriptor(value: unknown): CheckDescriptorValidationResult {
|
|
23
|
+
const definition = snapshotClosedRecord(value);
|
|
24
|
+
if (definition === undefined) return invalid("$", "Check definition must be a closed object");
|
|
25
|
+
if (!hasExactKeys(definition, ["checkId", "displayName"])) {
|
|
26
|
+
return invalid("$", "Check definition has unsupported fields");
|
|
27
|
+
}
|
|
28
|
+
if (
|
|
29
|
+
typeof definition.checkId !== "string" ||
|
|
30
|
+
definition.checkId.length === 0 ||
|
|
31
|
+
typeof definition.displayName !== "string"
|
|
32
|
+
) {
|
|
33
|
+
return invalid("$", "Check definition identity is invalid");
|
|
34
|
+
}
|
|
35
|
+
if (definition.displayName.length === 0) {
|
|
36
|
+
return invalid("$.displayName", "Check displayName is empty");
|
|
37
|
+
}
|
|
38
|
+
return Object.freeze({
|
|
39
|
+
ok: true,
|
|
40
|
+
value: Object.freeze({ checkId: definition.checkId, displayName: definition.displayName })
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function hasExactKeys(value: Readonly<Record<string, unknown>>, keys: readonly string[]): boolean {
|
|
45
|
+
return (
|
|
46
|
+
Object.keys(value).length === keys.length && keys.every((key) => Object.hasOwn(value, key))
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function invalid(path: string, message: string): CheckDescriptorValidationResult {
|
|
51
|
+
const issue = Object.freeze({
|
|
52
|
+
path,
|
|
53
|
+
code: "invalid-value",
|
|
54
|
+
message
|
|
55
|
+
}) satisfies CheckDescriptorValidationIssue;
|
|
56
|
+
const issues: readonly [CheckDescriptorValidationIssue, ...CheckDescriptorValidationIssue[]] = [
|
|
57
|
+
issue
|
|
58
|
+
];
|
|
59
|
+
return Object.freeze({ ok: false, issues: Object.freeze(issues) });
|
|
60
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
const INHERITED_CHECK_COLLECTION: unique symbol = Symbol("vibe-check.inherited-check-collection");
|
|
2
|
+
|
|
3
|
+
/** 使用 {@link inherit} 对父 Check 的 string collection 做显式增删的输入。 */
|
|
4
|
+
export type InheritCheckCollectionInput<T> = Readonly<
|
|
5
|
+
| { readonly add: readonly T[]; readonly remove?: readonly T[] }
|
|
6
|
+
| { readonly add?: readonly T[]; readonly remove: readonly T[] }
|
|
7
|
+
>;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 由 {@link inherit} 创建、带有不可伪造 marker 的 collection edit。
|
|
11
|
+
*
|
|
12
|
+
* @remarks Definition validation 不接受看起来相同的 plain object。
|
|
13
|
+
*/
|
|
14
|
+
export type InheritedCheckCollection<T> = InheritCheckCollectionInput<T> &
|
|
15
|
+
Readonly<{
|
|
16
|
+
readonly [INHERITED_CHECK_COLLECTION]: true;
|
|
17
|
+
}>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 可以直接替换父 collection 的数组,或由 {@link inherit} 表示的显式 edit。
|
|
21
|
+
*
|
|
22
|
+
* @typeParam T - collection item 类型。
|
|
23
|
+
*/
|
|
24
|
+
export type InheritableCheckCollection<T> = readonly T[] | InheritedCheckCollection<T>;
|
|
25
|
+
|
|
26
|
+
const inheritedCollections = new WeakSet();
|
|
27
|
+
|
|
28
|
+
type InheritedCollectionEntry = "data" | "invalid" | "marker";
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 创建可用于 `dependsOn` 或 `mutex` 的受信任继承编辑。
|
|
32
|
+
*
|
|
33
|
+
* @typeParam T - 要添加或移除的 collection item 类型。
|
|
34
|
+
* @param value - 至少提供 `add` 或 `remove` 的 edit;空数组可显式表示不添加或不移除。
|
|
35
|
+
* @returns 只有此函数创建的值会被 Definition validation 识别为 inherited collection。
|
|
36
|
+
*/
|
|
37
|
+
export function inherit<T>(value: InheritCheckCollectionInput<T>): InheritedCheckCollection<T> {
|
|
38
|
+
const result = { ...value, [INHERITED_CHECK_COLLECTION]: true as const };
|
|
39
|
+
Object.defineProperty(result, INHERITED_CHECK_COLLECTION, { enumerable: false });
|
|
40
|
+
inheritedCollections.add(result);
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function isInheritedCheckCollection(
|
|
45
|
+
value: unknown
|
|
46
|
+
): value is InheritedCheckCollection<unknown> {
|
|
47
|
+
return typeof value === "object" && value !== null && inheritedCollections.has(value);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Copies the trusted marker while preserving the authoring data's closed shape. */
|
|
51
|
+
export function snapshotInheritedCheckCollection(
|
|
52
|
+
value: InheritedCheckCollection<unknown>
|
|
53
|
+
): Readonly<Record<string, unknown>> | undefined {
|
|
54
|
+
try {
|
|
55
|
+
if (!hasPlainObjectPrototype(value)) return undefined;
|
|
56
|
+
const snapshot: Record<string, unknown> = {};
|
|
57
|
+
let hasMarker = false;
|
|
58
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
59
|
+
const entry = snapshotInheritedCollectionEntry(
|
|
60
|
+
snapshot,
|
|
61
|
+
key,
|
|
62
|
+
Object.getOwnPropertyDescriptor(value, key)
|
|
63
|
+
);
|
|
64
|
+
if (entry === "invalid") return undefined;
|
|
65
|
+
if (entry === "marker") hasMarker = true;
|
|
66
|
+
}
|
|
67
|
+
return hasMarker ? Object.freeze(snapshot) : undefined;
|
|
68
|
+
} catch {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function hasPlainObjectPrototype(value: object): boolean {
|
|
74
|
+
const prototype: unknown = Object.getPrototypeOf(value);
|
|
75
|
+
return prototype === Object.prototype || prototype === null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function snapshotInheritedCollectionEntry(
|
|
79
|
+
snapshot: Record<string, unknown>,
|
|
80
|
+
key: PropertyKey,
|
|
81
|
+
descriptor: PropertyDescriptor | undefined
|
|
82
|
+
): InheritedCollectionEntry {
|
|
83
|
+
if (!isDataDescriptor(descriptor)) return "invalid";
|
|
84
|
+
if (key === INHERITED_CHECK_COLLECTION) {
|
|
85
|
+
return descriptor.enumerable || descriptor.value !== true ? "invalid" : "marker";
|
|
86
|
+
}
|
|
87
|
+
if (typeof key !== "string" || descriptor.enumerable !== true) return "invalid";
|
|
88
|
+
Object.defineProperty(snapshot, key, {
|
|
89
|
+
configurable: true,
|
|
90
|
+
enumerable: true,
|
|
91
|
+
value: descriptor.value,
|
|
92
|
+
writable: true
|
|
93
|
+
});
|
|
94
|
+
return "data";
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function isDataDescriptor(
|
|
98
|
+
descriptor: PropertyDescriptor | undefined
|
|
99
|
+
): descriptor is PropertyDescriptor {
|
|
100
|
+
return descriptor !== undefined && descriptor.get === undefined && descriptor.set === undefined;
|
|
101
|
+
}
|