@zxyycom/vibe-check 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -5
- package/dist/esm/check/check.mjs +4 -0
- package/dist/esm/check/check.mjs.map +1 -1
- package/dist/esm/check/flag-enablement.mjs +32 -0
- package/dist/esm/check/flag-enablement.mjs.map +1 -0
- package/dist/esm/check/handoff-provider-identity.mjs +18 -0
- package/dist/esm/check/handoff-provider-identity.mjs.map +1 -0
- package/dist/esm/check/inherited-collection.mjs +1 -1
- package/dist/esm/check/inherited-collection.mjs.map +1 -1
- package/dist/esm/check/project-changes.mjs +2 -0
- package/dist/esm/check/project-changes.mjs.map +1 -0
- package/dist/esm/check/project-context.mjs +2 -0
- package/dist/esm/check/project-context.mjs.map +1 -0
- package/dist/esm/check-settlement/facts.mjs.map +1 -1
- package/dist/esm/check-settlement/record-store.mjs +1 -1
- package/dist/esm/check-settlement/record-store.mjs.map +1 -1
- package/dist/esm/data-boundary/canonical-data.mjs +36 -7
- package/dist/esm/data-boundary/canonical-data.mjs.map +1 -1
- package/dist/esm/data-boundary/canonical-json.mjs.map +1 -1
- package/dist/esm/data-boundary/closed-values.mjs +28 -4
- package/dist/esm/data-boundary/closed-values.mjs.map +1 -1
- package/dist/esm/{package-checks/project-files → data-boundary}/config-glob.mjs +3 -3
- package/dist/esm/data-boundary/config-glob.mjs.map +1 -0
- package/dist/esm/data-boundary/project-path.mjs +19 -0
- package/dist/esm/data-boundary/project-path.mjs.map +1 -0
- package/dist/esm/index.mjs +12 -5
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/machine-output/v4/atomic-publication.mjs +4 -1
- package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -1
- package/dist/esm/package-checks/check-authoring.mjs +69 -0
- package/dist/esm/package-checks/check-authoring.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs.map +1 -1
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs.map +1 -1
- package/dist/esm/package-checks/command-check/command-check.mjs +55 -0
- package/dist/esm/package-checks/command-check/command-check.mjs.map +1 -0
- package/dist/esm/package-checks/command-check/contract.mjs +2 -0
- package/dist/esm/package-checks/command-check/contract.mjs.map +1 -0
- package/dist/esm/package-checks/command-check/execution.mjs +134 -0
- package/dist/esm/package-checks/command-check/execution.mjs.map +1 -0
- package/dist/esm/package-checks/command-check/options.mjs +284 -0
- package/dist/esm/package-checks/command-check/options.mjs.map +1 -0
- package/dist/esm/package-checks/command-check/transcript.mjs +26 -0
- package/dist/esm/package-checks/command-check/transcript.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs +9 -11
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/execution.mjs +2 -4
- package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/constructor.mjs +9 -11
- package/dist/esm/package-checks/file-metrics/constructor.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/execution.mjs +2 -4
- package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/finding-messages.mjs +1 -1
- package/dist/esm/package-checks/file-metrics/finding-messages.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/options.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs +1 -1
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/batch-planner.mjs +38 -0
- package/dist/esm/package-checks/file-metrics/scc/batch-planner.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/logical-scan-resources.mjs +35 -0
- package/dist/esm/package-checks/file-metrics/scc/logical-scan-resources.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +102 -29
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analysis.mjs +7 -2
- package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs +1 -3
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs +3 -2
- package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs +6 -6
- package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs +9 -3
- package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs +12 -7
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs +6 -6
- package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs +5 -3
- package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs +9 -3
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs +9 -3
- package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs +3 -1
- package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs +3 -1
- package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs +12 -5
- package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs +20 -8
- package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/constructor.mjs +9 -11
- package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/execution.mjs +2 -4
- package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/finding-messages.mjs +1 -1
- package/dist/esm/package-checks/function-metrics/finding-messages.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/measurement.mjs +3 -1
- package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -1
- package/dist/esm/package-checks/host-environment/git.mjs +11 -0
- package/dist/esm/package-checks/host-environment/git.mjs.map +1 -1
- package/dist/esm/package-checks/host-environment/path.mjs +1 -17
- package/dist/esm/package-checks/host-environment/path.mjs.map +1 -1
- package/dist/esm/package-checks/host-environment/process/contract.mjs.map +1 -1
- package/dist/esm/package-checks/host-environment/process/result.mjs +43 -17
- package/dist/esm/package-checks/host-environment/process/result.mjs.map +1 -1
- package/dist/esm/package-checks/host-environment/process/runner.mjs +7 -5
- package/dist/esm/package-checks/host-environment/process/runner.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/default-check.mjs +9 -11
- package/dist/esm/package-checks/json-schema-validation/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs +6 -2
- package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs +11 -3
- package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs.map +1 -1
- package/dist/esm/package-checks/json-validation/default-check.mjs +9 -11
- package/dist/esm/package-checks/json-validation/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/json-validation/options.mjs.map +1 -1
- package/dist/esm/package-checks/local-cache-options.mjs +28 -0
- package/dist/esm/package-checks/local-cache-options.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs +37 -45
- package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs.map +1 -1
- package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs +3 -1
- package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +19 -33
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs +1 -1
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs +1 -1
- package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs +1 -3
- package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +3 -18
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +2 -14
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs +4 -5
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-lint/adapter.mjs +125 -0
- package/dist/esm/package-checks/markdown-lint/adapter.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/default-check.mjs +37 -0
- package/dist/esm/package-checks/markdown-lint/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/execution.mjs +202 -0
- package/dist/esm/package-checks/markdown-lint/execution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/final-data.mjs +16 -0
- package/dist/esm/package-checks/markdown-lint/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/finding-messages.mjs +72 -0
- package/dist/esm/package-checks/markdown-lint/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/finding-waiver-identity.mjs +41 -0
- package/dist/esm/package-checks/markdown-lint/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/findings-cache.mjs +110 -0
- package/dist/esm/package-checks/markdown-lint/findings-cache.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/options-resolution.mjs +74 -0
- package/dist/esm/package-checks/markdown-lint/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/options-validation.mjs +41 -0
- package/dist/esm/package-checks/markdown-lint/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/options.mjs +13 -0
- package/dist/esm/package-checks/markdown-lint/options.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/records.mjs +65 -0
- package/dist/esm/package-checks/markdown-lint/records.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-lint/unavailable-reasons.mjs +14 -0
- package/dist/esm/package-checks/markdown-lint/unavailable-reasons.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/collection.mjs +23 -19
- package/dist/esm/package-checks/project-files/collection.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/configuration.mjs +1 -1
- package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs +2 -5
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +22 -6
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/public-collection.mjs +1 -1
- package/dist/esm/package-checks/project-files/public-collection.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/revision-paths.mjs +3 -3
- package/dist/esm/package-checks/project-files/revision-paths.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +11 -15
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/default-check.mjs +9 -11
- package/dist/esm/package-checks/secret-detection/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/execution.mjs +2 -2
- package/dist/esm/package-checks/secret-detection/execution.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/input-preparation.mjs +46 -7
- package/dist/esm/package-checks/secret-detection/input-preparation.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/options.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/records.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs +3 -4
- package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs.map +1 -1
- package/dist/esm/package-tools/admission-policy/define-admission-policy.mjs +10 -0
- package/dist/esm/package-tools/admission-policy/define-admission-policy.mjs.map +1 -0
- package/dist/esm/{cache → package-tools/cache}/cache-json-by-key.mjs +13 -14
- package/dist/esm/package-tools/cache/cache-json-by-key.mjs.map +1 -0
- package/dist/esm/package-tools/finding-presentation/finding-presentation.mjs.map +1 -0
- package/dist/esm/{finding-waivers → package-tools/finding-waivers}/reconciliation.mjs +14 -5
- package/dist/esm/package-tools/finding-waivers/reconciliation.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/critical-path-ranking.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/bounded-history.mjs.map +1 -0
- package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.mjs +2 -2
- package/dist/esm/package-tools/learned-critical-path/duration-model/prediction.mjs.map +1 -0
- package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.mjs +4 -2
- package/dist/esm/package-tools/learned-critical-path/duration-model/preparation.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/recording.mjs.map +1 -0
- package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.mjs +8 -8
- package/dist/esm/package-tools/learned-critical-path/duration-model/storage.mjs.map +1 -0
- package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.mjs +1 -2
- package/dist/esm/package-tools/learned-critical-path/selection-layers.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/static-decision.mjs.map +1 -0
- package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/strategy.mjs +3 -3
- package/dist/esm/package-tools/learned-critical-path/strategy.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs +8 -5
- package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs +79 -66
- package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/flag-conditions.mjs +71 -0
- package/dist/esm/project-definition/check-tree/flag-conditions.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/materialization.mjs +13 -8
- package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/resolution.mjs +7 -6
- package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -1
- package/dist/esm/project-definition/declarative-snapshot.mjs +2 -1
- package/dist/esm/project-definition/declarative-snapshot.mjs.map +1 -1
- package/dist/esm/project-definition/project-changes.mjs +70 -0
- package/dist/esm/project-definition/project-changes.mjs.map +1 -0
- package/dist/esm/project-definition/project-definition-validation.mjs +40 -8
- package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -1
- package/dist/esm/project-definition/project-definition.mjs +22 -15
- package/dist/esm/project-definition/project-definition.mjs.map +1 -1
- package/dist/esm/project-definition/scheduler-policy.mjs.map +1 -1
- package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs +9 -6
- package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs.map +1 -1
- package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs.map +1 -1
- package/dist/esm/project-run/aggregation.mjs +42 -59
- package/dist/esm/project-run/aggregation.mjs.map +1 -1
- package/dist/esm/project-run/changes/git.mjs +161 -0
- package/dist/esm/project-run/changes/git.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/admitted-check-execution.mjs +41 -0
- package/dist/esm/project-run/check-execution/admitted-check-execution.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/callback.mjs +3 -2
- package/dist/esm/project-run/check-execution/callback.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/dependencies.mjs +80 -5
- package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/execution-finalization.mjs +5 -3
- package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/execution-settlement.mjs +37 -16
- package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/flag-controls.mjs +15 -7
- package/dist/esm/project-run/check-execution/flag-controls.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/lifecycle.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/{preflight-result.mjs → preparation-result.mjs} +24 -24
- package/dist/esm/project-run/check-execution/preparation-result.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/{preflight.mjs → preparation.mjs} +52 -52
- package/dist/esm/project-run/check-execution/preparation.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/ready-check-execution.mjs +71 -0
- package/dist/esm/project-run/check-execution/ready-check-execution.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/resolved-checks.mjs +27 -164
- package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/scheduled-check-run.mjs +79 -0
- package/dist/esm/project-run/check-execution/scheduled-check-run.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/terminal-result.mjs +70 -25
- package/dist/esm/project-run/check-execution/terminal-result.mjs.map +1 -1
- package/dist/esm/project-run/completion/completion.mjs +18 -1
- package/dist/esm/project-run/completion/completion.mjs.map +1 -1
- package/dist/esm/project-run/controls/contract.mjs.map +1 -1
- package/dist/esm/project-run/controls/validation.mjs +7 -54
- package/dist/esm/project-run/controls/validation.mjs.map +1 -1
- package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs +3 -3
- package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs.map +1 -1
- package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs +1 -1
- package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs.map +1 -1
- package/dist/esm/project-run/invocation/candidate.mjs +17 -13
- package/dist/esm/project-run/invocation/candidate.mjs.map +1 -1
- package/dist/esm/project-run/invocation/candidates.mjs +26 -0
- package/dist/esm/project-run/invocation/candidates.mjs.map +1 -0
- package/dist/esm/project-run/invocation/creation.mjs +7 -3
- package/dist/esm/project-run/invocation/creation.mjs.map +1 -1
- package/dist/esm/project-run/invocation/execution.mjs +98 -0
- package/dist/esm/project-run/invocation/execution.mjs.map +1 -0
- package/dist/esm/project-run/invocation/run.mjs +13 -112
- package/dist/esm/project-run/invocation/run.mjs.map +1 -1
- package/dist/esm/project-run/invocation/scheduler.mjs +13 -6
- package/dist/esm/project-run/invocation/scheduler.mjs.map +1 -1
- package/dist/esm/project-run/outputs/status.mjs +12 -12
- package/dist/esm/project-run/outputs/status.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/presentation.mjs +31 -11
- package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +11 -4
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +20 -6
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer.mjs +6 -2
- package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -1
- package/dist/esm/project-run/project-context.mjs +2 -1
- package/dist/esm/project-run/project-context.mjs.map +1 -1
- package/dist/esm/project-run/result.mjs +2 -2
- package/dist/esm/project-run/result.mjs.map +1 -1
- package/dist/esm/project-run/run.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph-lookup.mjs +45 -0
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph-lookup.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs +9 -4
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs +3 -5
- package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs +25 -8
- package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs +8 -8
- package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs +8 -4
- package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/measurement/timing.mjs +12 -6
- package/dist/esm/project-run/task-scheduler/measurement/timing.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs +3 -1
- package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs +17 -17
- package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler.mjs +18 -6
- package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -1
- package/docs/api-mechanics.md +147 -28
- package/docs/changelog.md +145 -2
- package/docs/checks/duplicate-detection.md +22 -3
- package/docs/checks/file-metrics.md +25 -6
- package/docs/checks/function-metrics.md +21 -2
- package/docs/checks/json-schema-validation.md +25 -4
- package/docs/checks/json-validation.md +24 -5
- package/docs/checks/maintenance-reminders.md +30 -6
- package/docs/checks/markdown-link-validation.md +24 -4
- package/docs/checks/markdown-lint.md +167 -0
- package/docs/checks/secret-detection.md +31 -7
- package/docs/examples/artifacts/mixed-outcomes/definition.ts +10 -10
- package/docs/guides/building-project-gate.md +706 -0
- package/docs/guides/callbacks.md +81 -22
- package/docs/guides/check-dependencies.md +41 -10
- package/docs/guides/collecting-project-files.md +7 -7
- package/docs/guides/command-check.md +155 -0
- package/docs/guides/data-boundaries.md +140 -0
- package/docs/guides/extending-check-lifecycle.md +77 -25
- package/docs/guides/finding-waivers.md +43 -1
- package/docs/guides/learned-scheduling.md +1 -1
- package/docs/guides/run-outputs.md +35 -9
- package/docs/guides/scheduling.md +15 -15
- package/docs/output.md +6 -5
- package/package.json +2 -1
- package/src/check/check.ts +332 -92
- package/src/check/flag-enablement.ts +76 -0
- package/src/check/handoff-provider-identity.ts +34 -0
- package/src/check/inherited-collection.ts +1 -1
- package/src/check/project-changes.ts +14 -0
- package/src/check/project-context.ts +11 -0
- package/src/check-settlement/facts.ts +1 -1
- package/src/check-settlement/record-store.ts +1 -1
- package/src/data-boundary/canonical-data.ts +36 -9
- package/src/data-boundary/canonical-json.ts +18 -1
- package/src/data-boundary/closed-values.ts +26 -6
- package/src/data-boundary/config-glob.ts +17 -0
- package/src/data-boundary/project-path.ts +21 -0
- package/src/index.ts +72 -11
- package/src/machine-output/v4/atomic-publication.ts +3 -1
- package/src/package-checks/check-authoring.ts +136 -0
- package/src/package-checks/code-quality-findings/finding-waiver-authoring.ts +1 -1
- package/src/package-checks/code-quality-findings/finding-waiver-evidence.ts +1 -1
- package/src/package-checks/command-check/command-check.ts +152 -0
- package/src/package-checks/command-check/contract.ts +168 -0
- package/src/package-checks/command-check/execution.ts +211 -0
- package/src/package-checks/command-check/options.ts +331 -0
- package/src/package-checks/command-check/transcript.ts +35 -0
- package/src/package-checks/duplicate-detection/default-check.ts +37 -6
- package/src/package-checks/duplicate-detection/execution.ts +2 -4
- package/src/package-checks/duplicate-detection/finding-messages.ts +2 -2
- package/src/package-checks/duplicate-detection/jscpd/availability.ts +1 -1
- package/src/package-checks/duplicate-detection/options.ts +6 -3
- package/src/package-checks/duplicate-detection/records.ts +1 -1
- package/src/package-checks/file-metrics/constructor.ts +29 -6
- package/src/package-checks/file-metrics/execution.ts +2 -4
- package/src/package-checks/file-metrics/finding-messages.ts +1 -1
- package/src/package-checks/file-metrics/options.ts +6 -3
- package/src/package-checks/file-metrics/records.ts +1 -1
- package/src/package-checks/file-metrics/scc/availability.ts +1 -1
- package/src/package-checks/file-metrics/scc/batch-planner.ts +56 -0
- package/src/package-checks/file-metrics/scc/logical-scan-resources.ts +59 -0
- package/src/package-checks/file-metrics/scc/scanner.ts +134 -32
- package/src/package-checks/function-metrics/analysis.ts +7 -2
- package/src/package-checks/function-metrics/analyzer/analysis-model.ts +1 -1
- package/src/package-checks/function-metrics/analyzer/extension-output.ts +14 -6
- package/src/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.ts +1 -3
- package/src/package-checks/function-metrics/analyzer/extensions/protocol.ts +3 -3
- package/src/package-checks/function-metrics/analyzer/pipeline.ts +4 -2
- package/src/package-checks/function-metrics/analyzer/readers/erlang.ts +6 -6
- package/src/package-checks/function-metrics/analyzer/readers/fortran.ts +1 -1
- package/src/package-checks/function-metrics/analyzer/readers/objc.ts +9 -3
- package/src/package-checks/function-metrics/analyzer/readers/php-states.ts +14 -7
- package/src/package-checks/function-metrics/analyzer/readers/plsql.ts +8 -4
- package/src/package-checks/function-metrics/analyzer/readers/python.ts +4 -3
- package/src/package-checks/function-metrics/analyzer/readers/r.ts +2 -1
- package/src/package-checks/function-metrics/analyzer/readers/ttcn.ts +9 -3
- package/src/package-checks/function-metrics/analyzer/readers/typescript.ts +9 -3
- package/src/package-checks/function-metrics/analyzer/readers/zig.ts +2 -1
- package/src/package-checks/function-metrics/analyzer/shared/code-reader.ts +3 -1
- package/src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts +10 -5
- package/src/package-checks/function-metrics/analyzer-worker-port.ts +20 -6
- package/src/package-checks/function-metrics/constructor.ts +30 -7
- package/src/package-checks/function-metrics/execution.ts +2 -4
- package/src/package-checks/function-metrics/finding-messages.ts +2 -2
- package/src/package-checks/function-metrics/measurement.ts +3 -1
- package/src/package-checks/function-metrics/options.ts +6 -3
- package/src/package-checks/function-metrics/records.ts +1 -1
- package/src/package-checks/host-environment/git.ts +11 -0
- package/src/package-checks/host-environment/path.ts +1 -20
- package/src/package-checks/host-environment/process/contract.ts +17 -9
- package/src/package-checks/host-environment/process/result.ts +48 -20
- package/src/package-checks/host-environment/process/runner.ts +8 -4
- package/src/package-checks/json-schema-validation/default-check.ts +38 -5
- package/src/package-checks/json-schema-validation/options.ts +4 -1
- package/src/package-checks/json-schema-validation/reference-resolver.ts +6 -2
- package/src/package-checks/json-schema-validation/schema-policy.ts +10 -5
- package/src/package-checks/json-validation/default-check.ts +27 -6
- package/src/package-checks/json-validation/options.ts +4 -1
- package/src/package-checks/local-cache-options.ts +40 -0
- package/src/package-checks/maintenance-reminders/maintenance-reminders.ts +89 -9
- package/src/package-checks/maintenance-reminders/maintenance-support.ts +3 -3
- package/src/package-checks/markdown-link-validation/default-check.ts +48 -5
- package/src/package-checks/markdown-link-validation/execution.ts +1 -1
- package/src/package-checks/markdown-link-validation/finding-messages.ts +1 -1
- package/src/package-checks/markdown-link-validation/markdown-parser.ts +1 -5
- package/src/package-checks/markdown-link-validation/options-resolution.ts +2 -19
- package/src/package-checks/markdown-link-validation/options-validation.ts +2 -17
- package/src/package-checks/markdown-link-validation/options.ts +6 -7
- package/src/package-checks/markdown-link-validation/parse-facts-cache-payload.ts +4 -5
- package/src/package-checks/markdown-lint/adapter.ts +167 -0
- package/src/package-checks/markdown-lint/default-check.ts +92 -0
- package/src/package-checks/markdown-lint/execution.ts +266 -0
- package/src/package-checks/markdown-lint/final-data.ts +33 -0
- package/src/package-checks/markdown-lint/finding-messages.ts +87 -0
- package/src/package-checks/markdown-lint/finding-waiver-identity.ts +54 -0
- package/src/package-checks/markdown-lint/findings-cache.ts +141 -0
- package/src/package-checks/markdown-lint/options-resolution.ts +102 -0
- package/src/package-checks/markdown-lint/options-validation.ts +50 -0
- package/src/package-checks/markdown-lint/options.ts +82 -0
- package/src/package-checks/markdown-lint/records.ts +132 -0
- package/src/package-checks/markdown-lint/unavailable-reasons.ts +33 -0
- package/src/package-checks/project-files/collection.ts +38 -22
- package/src/package-checks/project-files/config-glob.ts +1 -17
- package/src/package-checks/project-files/configuration.ts +1 -1
- package/src/package-checks/project-files/gitlink-revision.ts +4 -6
- package/src/package-checks/project-files/gitlink-worktree.ts +35 -7
- package/src/package-checks/project-files/public-collection.ts +1 -1
- package/src/package-checks/project-files/revision-paths.ts +3 -3
- package/src/package-checks/project-files/revision-worktree-files.ts +16 -16
- package/src/package-checks/secret-detection/default-check.ts +29 -6
- package/src/package-checks/secret-detection/execution.ts +2 -2
- package/src/package-checks/secret-detection/input-preparation.ts +64 -7
- package/src/package-checks/secret-detection/options.ts +5 -2
- package/src/package-checks/secret-detection/records.ts +1 -1
- package/src/package-checks/secret-detection/secretlint/adapter.ts +3 -4
- package/src/package-tools/admission-policy/define-admission-policy.ts +54 -0
- package/src/{cache → package-tools/cache}/cache-json-by-key.ts +13 -17
- package/src/{check → package-tools/finding-presentation}/finding-presentation.ts +3 -1
- package/src/{finding-waivers → package-tools/finding-waivers}/reconciliation.ts +16 -8
- package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.ts +5 -2
- package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.ts +5 -3
- package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.ts +5 -4
- package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.ts +9 -10
- package/src/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.ts +2 -3
- package/src/{learned-critical-path → package-tools/learned-critical-path}/static-decision.ts +1 -1
- package/src/{learned-critical-path → package-tools/learned-critical-path}/strategy.ts +7 -4
- package/src/project-definition/check-tree/authoring.ts +15 -8
- package/src/project-definition/check-tree/check-fields-authoring.ts +106 -91
- package/src/project-definition/check-tree/flag-conditions.ts +99 -0
- package/src/project-definition/check-tree/materialization.ts +12 -8
- package/src/project-definition/check-tree/resolution.ts +13 -15
- package/src/project-definition/declarative-snapshot.ts +9 -2
- package/src/project-definition/project-changes.ts +112 -0
- package/src/project-definition/project-definition-validation.ts +58 -10
- package/src/project-definition/project-definition.ts +41 -68
- package/src/project-definition/scheduler-policy.ts +6 -3
- package/src/project-run/admission-strategy-provider/custom-strategy-preparation.ts +11 -8
- package/src/project-run/admission-strategy-provider/prepared-admission-strategy.ts +2 -2
- package/src/project-run/aggregation.ts +51 -74
- package/src/project-run/changes/git.ts +206 -0
- package/src/project-run/check-execution/admitted-check-execution.ts +62 -0
- package/src/project-run/check-execution/callback.ts +3 -2
- package/src/project-run/check-execution/dependencies.ts +120 -6
- package/src/project-run/check-execution/execution-finalization.ts +6 -4
- package/src/project-run/check-execution/execution-settlement.ts +88 -29
- package/src/project-run/check-execution/flag-controls.ts +22 -8
- package/src/project-run/check-execution/lifecycle.ts +14 -6
- package/src/project-run/check-execution/{preflight-result.ts → preparation-result.ts} +34 -32
- package/src/project-run/check-execution/{preflight.ts → preparation.ts} +92 -84
- package/src/project-run/check-execution/ready-check-execution.ts +97 -0
- package/src/project-run/check-execution/resolved-checks.ts +40 -219
- package/src/project-run/check-execution/scheduled-check-run.ts +119 -0
- package/src/project-run/check-execution/terminal-result.ts +108 -29
- package/src/project-run/completion/completion.ts +17 -3
- package/src/project-run/controls/contract.ts +6 -16
- package/src/project-run/controls/validation.ts +7 -60
- package/src/project-run/diagnostic-logging/diagnostic-detail-rendering.ts +1 -2
- package/src/project-run/diagnostic-logging/observation-rendering.ts +1 -1
- package/src/project-run/invocation/candidate.ts +28 -15
- package/src/project-run/invocation/candidates.ts +56 -0
- package/src/project-run/invocation/creation.ts +7 -3
- package/src/project-run/invocation/execution.ts +136 -0
- package/src/project-run/invocation/run.ts +15 -179
- package/src/project-run/invocation/scheduler.ts +13 -6
- package/src/project-run/outputs/status.ts +15 -15
- package/src/project-run/progress-rendering/presentation.ts +35 -13
- package/src/project-run/progress-rendering/renderer-formatting.ts +20 -7
- package/src/project-run/progress-rendering/renderer-lifecycle.ts +23 -6
- package/src/project-run/progress-rendering/renderer.ts +10 -4
- package/src/project-run/project-context.ts +8 -4
- package/src/project-run/result.ts +5 -5
- package/src/project-run/run.ts +1 -1
- package/src/project-run/task-scheduler/admission-core/compiled-graph-lookup.ts +71 -0
- package/src/project-run/task-scheduler/admission-core/compiled-graph.ts +9 -4
- package/src/project-run/task-scheduler/admission-core/selection-query.ts +6 -4
- package/src/project-run/task-scheduler/admission-core/selection-seed.ts +36 -6
- package/src/project-run/task-scheduler/admission-core/selection-transition.ts +17 -8
- package/src/project-run/task-scheduler/execution-state.ts +4 -4
- package/src/project-run/task-scheduler/measurement/diagnostics.ts +10 -4
- package/src/project-run/task-scheduler/measurement/timing.ts +13 -5
- package/src/project-run/task-scheduler/scheduler-observation.ts +3 -1
- package/src/project-run/task-scheduler/scheduler-terminal-measurement.ts +24 -22
- package/src/project-run/task-scheduler/scheduler.ts +23 -6
- package/types/check/check.d.ts +178 -67
- package/types/check/flag-enablement.d.ts +42 -0
- package/types/check/handoff-provider-identity.d.ts +12 -0
- package/types/check/project-changes.d.ts +13 -0
- package/types/check/project-context.d.ts +10 -0
- package/types/check-settlement/facts.d.ts +1 -1
- package/types/data-boundary/canonical-data.d.ts +28 -5
- package/types/data-boundary/canonical-json.d.ts +18 -1
- package/types/data-boundary/closed-values.d.ts +17 -1
- package/types/data-boundary/config-glob.d.ts +5 -0
- package/types/data-boundary/project-path.d.ts +4 -0
- package/types/index.d.ts +27 -11
- package/types/package-checks/check-authoring.d.ts +45 -0
- package/types/package-checks/code-quality-findings/finding-waiver-authoring.d.ts +1 -1
- package/types/package-checks/code-quality-findings/finding-waiver-evidence.d.ts +1 -1
- package/types/package-checks/command-check/command-check.d.ts +48 -0
- package/types/package-checks/command-check/contract.d.ts +108 -0
- package/types/package-checks/command-check/execution.d.ts +7 -0
- package/types/package-checks/command-check/options.d.ts +11 -0
- package/types/package-checks/command-check/transcript.d.ts +8 -0
- package/types/package-checks/duplicate-detection/default-check.d.ts +5 -2
- package/types/package-checks/duplicate-detection/finding-messages.d.ts +1 -1
- package/types/package-checks/duplicate-detection/options.d.ts +4 -3
- package/types/package-checks/duplicate-detection/records.d.ts +1 -1
- package/types/package-checks/file-metrics/constructor.d.ts +5 -2
- package/types/package-checks/file-metrics/options.d.ts +4 -3
- package/types/package-checks/file-metrics/records.d.ts +1 -1
- package/types/package-checks/file-metrics/scc/batch-planner.d.ts +18 -0
- package/types/package-checks/file-metrics/scc/logical-scan-resources.d.ts +14 -0
- package/types/package-checks/function-metrics/analyzer/extensions/protocol.d.ts +3 -3
- package/types/package-checks/function-metrics/constructor.d.ts +5 -2
- package/types/package-checks/function-metrics/finding-messages.d.ts +1 -1
- package/types/package-checks/function-metrics/options.d.ts +4 -3
- package/types/package-checks/function-metrics/records.d.ts +1 -1
- package/types/package-checks/host-environment/git.d.ts +2 -0
- package/types/package-checks/host-environment/path.d.ts +1 -3
- package/types/package-checks/host-environment/process/contract.d.ts +17 -9
- package/types/package-checks/json-schema-validation/default-check.d.ts +4 -1
- package/types/package-checks/json-schema-validation/options.d.ts +2 -1
- package/types/package-checks/json-validation/default-check.d.ts +4 -1
- package/types/package-checks/json-validation/options.d.ts +2 -1
- package/types/package-checks/local-cache-options.d.ts +9 -0
- package/types/package-checks/maintenance-reminders/maintenance-reminders.d.ts +11 -2
- package/types/package-checks/markdown-link-validation/default-check.d.ts +4 -1
- package/types/package-checks/markdown-link-validation/options.d.ts +4 -7
- package/types/package-checks/markdown-lint/adapter.d.ts +10 -0
- package/types/package-checks/markdown-lint/default-check.d.ts +37 -0
- package/types/package-checks/markdown-lint/execution.d.ts +24 -0
- package/types/package-checks/markdown-lint/final-data.d.ts +8 -0
- package/types/package-checks/markdown-lint/finding-messages.d.ts +6 -0
- package/types/package-checks/markdown-lint/finding-waiver-identity.d.ts +3 -0
- package/types/package-checks/markdown-lint/findings-cache.d.ts +17 -0
- package/types/package-checks/markdown-lint/options-resolution.d.ts +3 -0
- package/types/package-checks/markdown-lint/options-validation.d.ts +2 -0
- package/types/package-checks/markdown-lint/options.d.ts +65 -0
- package/types/package-checks/markdown-lint/records.d.ts +39 -0
- package/types/package-checks/markdown-lint/unavailable-reasons.d.ts +3 -0
- package/types/package-checks/secret-detection/default-check.d.ts +4 -1
- package/types/package-checks/secret-detection/options.d.ts +3 -2
- package/types/package-tools/admission-policy/define-admission-policy.d.ts +26 -0
- package/types/{check → package-tools/finding-presentation}/finding-presentation.d.ts +3 -1
- package/types/{finding-waivers → package-tools/finding-waivers}/reconciliation.d.ts +3 -3
- package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.d.ts +2 -2
- package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.d.ts +1 -1
- package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.d.ts +1 -1
- package/types/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.d.ts +1 -1
- package/types/{learned-critical-path → package-tools/learned-critical-path}/static-decision.d.ts +1 -1
- package/types/{learned-critical-path → package-tools/learned-critical-path}/strategy.d.ts +1 -1
- package/types/project-definition/check-tree/authoring.d.ts +5 -3
- package/types/project-definition/check-tree/check-fields-authoring.d.ts +12 -7
- package/types/project-definition/check-tree/flag-conditions.d.ts +5 -0
- package/types/project-definition/check-tree/resolution.d.ts +6 -4
- package/types/project-definition/declarative-snapshot.d.ts +4 -1
- package/types/project-definition/project-changes.d.ts +30 -0
- package/types/project-definition/project-definition.d.ts +15 -30
- package/types/project-definition/scheduler-policy.d.ts +3 -3
- package/types/project-run/admission-strategy-provider/prepared-admission-strategy.d.ts +2 -2
- package/types/project-run/aggregation.d.ts +8 -6
- package/types/project-run/changes/git.d.ts +14 -0
- package/types/project-run/check-execution/admitted-check-execution.d.ts +18 -0
- package/types/project-run/check-execution/dependencies.d.ts +3 -0
- package/types/project-run/check-execution/execution-finalization.d.ts +1 -1
- package/types/project-run/check-execution/execution-settlement.d.ts +15 -7
- package/types/project-run/check-execution/flag-controls.d.ts +1 -1
- package/types/project-run/check-execution/lifecycle.d.ts +9 -5
- package/types/project-run/check-execution/{preflight-result.d.ts → preparation-result.d.ts} +3 -3
- package/types/project-run/check-execution/{preflight.d.ts → preparation.d.ts} +10 -9
- package/types/project-run/check-execution/ready-check-execution.d.ts +18 -0
- package/types/project-run/check-execution/resolved-checks.d.ts +12 -13
- package/types/project-run/check-execution/scheduled-check-run.d.ts +10 -0
- package/types/project-run/check-execution/terminal-result.d.ts +13 -1
- package/types/project-run/completion/completion.d.ts +3 -1
- package/types/project-run/controls/contract.d.ts +6 -16
- package/types/project-run/invocation/candidates.d.ts +8 -0
- package/types/project-run/invocation/execution.d.ts +5 -0
- package/types/project-run/invocation/run.d.ts +2 -2
- package/types/project-run/outputs/status.d.ts +4 -4
- package/types/project-run/progress-rendering/presentation.d.ts +4 -3
- package/types/project-run/progress-rendering/renderer-formatting.d.ts +5 -2
- package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +2 -0
- package/types/project-run/progress-rendering/renderer.d.ts +4 -2
- package/types/project-run/project-context.d.ts +3 -3
- package/types/project-run/result.d.ts +3 -3
- package/types/project-run/run.d.ts +1 -1
- package/types/project-run/task-scheduler/admission-core/compiled-graph-lookup.d.ts +10 -0
- package/types/project-run/task-scheduler/execution-state.d.ts +4 -4
- package/types/project-run/task-scheduler/measurement/diagnostics.d.ts +2 -2
- package/types/project-run/task-scheduler/scheduler-terminal-measurement.d.ts +1 -1
- package/dist/esm/cache/cache-json-by-key.mjs.map +0 -1
- package/dist/esm/check/finding-presentation.mjs.map +0 -1
- package/dist/esm/finding-waivers/reconciliation.mjs.map +0 -1
- package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs.map +0 -1
- package/dist/esm/learned-critical-path/duration-model/prediction.mjs.map +0 -1
- package/dist/esm/learned-critical-path/duration-model/preparation.mjs.map +0 -1
- package/dist/esm/learned-critical-path/duration-model/recording.mjs.map +0 -1
- package/dist/esm/learned-critical-path/duration-model/storage.mjs.map +0 -1
- package/dist/esm/learned-critical-path/selection-layers.mjs.map +0 -1
- package/dist/esm/learned-critical-path/static-decision.mjs.map +0 -1
- package/dist/esm/learned-critical-path/strategy.mjs.map +0 -1
- package/dist/esm/package-checks/project-files/config-glob.mjs.map +0 -1
- package/dist/esm/project-run/check-execution/preflight-result.mjs.map +0 -1
- package/dist/esm/project-run/check-execution/preflight.mjs.map +0 -1
- package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs.map +0 -1
- package/types/package-checks/project-files/config-glob.d.ts +0 -5
- /package/dist/esm/{check → package-tools/finding-presentation}/finding-presentation.mjs +0 -0
- /package/dist/esm/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.mjs +0 -0
- /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.mjs +0 -0
- /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.mjs +0 -0
- /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/static-decision.mjs +0 -0
- /package/src/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.ts +0 -0
- /package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.ts +0 -0
- /package/types/{cache → package-tools/cache}/cache-json-by-key.d.ts +0 -0
- /package/types/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.d.ts +0 -0
- /package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.d.ts +0 -0
- /package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.d.ts +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/** 一个递归 flag presence 条件表达式。字符串是唯一 leaf;operator 保留 author child 顺序和 multiplicity。 */
|
|
2
|
+
export type CheckFlagCondition =
|
|
3
|
+
| string
|
|
4
|
+
| Readonly<{
|
|
5
|
+
readonly kind: "all" | "any" | "none" | "not-all" | "exactly-one";
|
|
6
|
+
readonly conditions: readonly [CheckFlagCondition, ...CheckFlagCondition[]];
|
|
7
|
+
}>
|
|
8
|
+
| Readonly<{
|
|
9
|
+
readonly kind: "not";
|
|
10
|
+
readonly condition: CheckFlagCondition;
|
|
11
|
+
}>;
|
|
12
|
+
|
|
13
|
+
type CheckFlagConditionSetKind = "all" | "any" | "none" | "not-all" | "exactly-one";
|
|
14
|
+
type NonEmptyFlagConditions = readonly [CheckFlagCondition, ...CheckFlagCondition[]];
|
|
15
|
+
type CheckFlagConditionSet<Kind extends CheckFlagConditionSetKind> = Readonly<{
|
|
16
|
+
readonly kind: Kind;
|
|
17
|
+
readonly conditions: NonEmptyFlagConditions;
|
|
18
|
+
}>;
|
|
19
|
+
type CheckFlagNegation = Readonly<{
|
|
20
|
+
readonly kind: "not";
|
|
21
|
+
readonly condition: CheckFlagCondition;
|
|
22
|
+
}>;
|
|
23
|
+
|
|
24
|
+
/** 构造 `all` 条件;Definition 仍负责 validation、snapshot 与 freeze。 */
|
|
25
|
+
export function all(...conditions: NonEmptyFlagConditions): CheckFlagConditionSet<"all"> {
|
|
26
|
+
return conditionSet("all", conditions);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** 构造 `any` 条件;Definition 仍负责 validation、snapshot 与 freeze。 */
|
|
30
|
+
export function any(...conditions: NonEmptyFlagConditions): CheckFlagConditionSet<"any"> {
|
|
31
|
+
return conditionSet("any", conditions);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** 构造 `none` 条件;Definition 仍负责 validation、snapshot 与 freeze。 */
|
|
35
|
+
export function none(...conditions: NonEmptyFlagConditions): CheckFlagConditionSet<"none"> {
|
|
36
|
+
return conditionSet("none", conditions);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** 构造 `not-all` 条件;Definition 仍负责 validation、snapshot 与 freeze。 */
|
|
40
|
+
export function notAll(...conditions: NonEmptyFlagConditions): CheckFlagConditionSet<"not-all"> {
|
|
41
|
+
return conditionSet("not-all", conditions);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** 构造 `exactly-one` 条件;Definition 仍负责 validation、snapshot 与 freeze。 */
|
|
45
|
+
export function exactlyOne(
|
|
46
|
+
...conditions: NonEmptyFlagConditions
|
|
47
|
+
): CheckFlagConditionSet<"exactly-one"> {
|
|
48
|
+
return conditionSet("exactly-one", conditions);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** 构造 `not` 条件;Definition 仍负责 validation、snapshot 与 freeze。 */
|
|
52
|
+
export function not(condition: CheckFlagCondition): CheckFlagNegation {
|
|
53
|
+
return { condition, kind: "not" };
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** 为一个已声明的 project change ID 生成保留 flag token。 */
|
|
57
|
+
export function changeFlag<const Id extends string>(id: Id): `vibe-check:change:${Id}` {
|
|
58
|
+
return `vibe-check:change:${id}`;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function conditionSet<Kind extends CheckFlagConditionSetKind>(
|
|
62
|
+
kind: Kind,
|
|
63
|
+
conditions: NonEmptyFlagConditions
|
|
64
|
+
): CheckFlagConditionSet<Kind> {
|
|
65
|
+
return { kind, conditions };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** executable Check 的 flag 选择控制。 */
|
|
69
|
+
export interface CheckFlagEnablement {
|
|
70
|
+
readonly when: CheckFlagCondition;
|
|
71
|
+
/**
|
|
72
|
+
* 条件命中时是否启动本 Check 的传递 `dependsOn` prerequisite;省略时只选择直接命中 Check。
|
|
73
|
+
* `observes` 不参与此选择,且 dependency 自己的 flag 条件不会阻止已启动 prerequisite。
|
|
74
|
+
*/
|
|
75
|
+
readonly propagateDependsOn?: true;
|
|
76
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
declare const HANDOFF_PROVIDER_IDENTITY_BRAND: unique symbol;
|
|
2
|
+
|
|
3
|
+
/** Opaque same-package identity retained only by Definition and invocation execution. */
|
|
4
|
+
export type HandoffProviderIdentity = Readonly<{
|
|
5
|
+
readonly [HANDOFF_PROVIDER_IDENTITY_BRAND]: true;
|
|
6
|
+
}>;
|
|
7
|
+
|
|
8
|
+
const handoffProviderIdentities = new WeakMap<object, HandoffProviderIdentity>();
|
|
9
|
+
|
|
10
|
+
class HandoffProviderIdentityValue implements HandoffProviderIdentity {
|
|
11
|
+
declare readonly [HANDOFF_PROVIDER_IDENTITY_BRAND]: true;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Registers the identity that makes a `handoff: true` Check authentic to this package runtime. */
|
|
15
|
+
export function registerHandoffProviderIdentity(value: object): void {
|
|
16
|
+
handoffProviderIdentities.set(value, Object.freeze(new HandoffProviderIdentityValue()));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Returns the same-package identity registered by `defineCheck`. */
|
|
20
|
+
export function getDefinedHandoffProviderIdentity(
|
|
21
|
+
value: unknown
|
|
22
|
+
): HandoffProviderIdentity | undefined {
|
|
23
|
+
return typeof value === "object" && value !== null
|
|
24
|
+
? handoffProviderIdentities.get(value)
|
|
25
|
+
: undefined;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Preserves a Definition-validated provider identity during materialization. */
|
|
29
|
+
export function bindHandoffProviderIdentity(
|
|
30
|
+
value: object,
|
|
31
|
+
identity: HandoffProviderIdentity
|
|
32
|
+
): void {
|
|
33
|
+
handoffProviderIdentities.set(value, identity);
|
|
34
|
+
}
|
|
@@ -82,7 +82,7 @@ function snapshotInheritedCollectionEntry(
|
|
|
82
82
|
): InheritedCollectionEntry {
|
|
83
83
|
if (!isDataDescriptor(descriptor)) return "invalid";
|
|
84
84
|
if (key === INHERITED_CHECK_COLLECTION) {
|
|
85
|
-
return descriptor.enumerable || descriptor.value !== true ? "invalid" : "marker";
|
|
85
|
+
return descriptor.enumerable === true || descriptor.value !== true ? "invalid" : "marker";
|
|
86
86
|
}
|
|
87
87
|
if (typeof key !== "string" || descriptor.enumerable !== true) return "invalid";
|
|
88
88
|
Object.defineProperty(snapshot, key, {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 已配置的 project change preparation 产生的 file-centric evidence。 */
|
|
2
|
+
export type ProjectChanges = Readonly<
|
|
3
|
+
| {
|
|
4
|
+
readonly ok: true;
|
|
5
|
+
readonly files: readonly Readonly<{
|
|
6
|
+
readonly path: string;
|
|
7
|
+
readonly flags: readonly string[];
|
|
8
|
+
}>[];
|
|
9
|
+
}
|
|
10
|
+
| {
|
|
11
|
+
readonly ok: false;
|
|
12
|
+
readonly reason: Readonly<{ readonly code: string }>;
|
|
13
|
+
}
|
|
14
|
+
>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ProjectChanges } from "./project-changes.ts";
|
|
2
|
+
|
|
3
|
+
/** 每次 Run 共享、冻结的 caller project context。 */
|
|
4
|
+
export interface CheckProjectContext {
|
|
5
|
+
/** 本次 Run 使用的绝对项目根目录。 */
|
|
6
|
+
readonly root: string;
|
|
7
|
+
/** 已去重、排序的 invocation-effective flags(caller flags 与派生 change flags)。 */
|
|
8
|
+
readonly flags: readonly string[];
|
|
9
|
+
/** 只在当前 Project Definition 配置 change preparation 时存在。 */
|
|
10
|
+
readonly changes?: ProjectChanges;
|
|
11
|
+
}
|
|
@@ -8,7 +8,7 @@ export type {
|
|
|
8
8
|
} from "../data-boundary/canonical-data.ts";
|
|
9
9
|
export type { CheckDescriptor, CheckOutcome };
|
|
10
10
|
|
|
11
|
-
/**
|
|
11
|
+
/** Core Check 恰有一个 terminal outcome,不携带 execution bookkeeping。 */
|
|
12
12
|
export interface CoreCheck extends CheckDescriptor {
|
|
13
13
|
readonly outcome: CheckOutcome;
|
|
14
14
|
}
|
|
@@ -26,7 +26,7 @@ export class CoreRecordStore {
|
|
|
26
26
|
if (id === undefined || data === undefined) return this.#reject(slot, "record-invalid");
|
|
27
27
|
|
|
28
28
|
let records = this.#recordsByCheckId.get(slot.checkId);
|
|
29
|
-
if (records?.has(id)) return this.#reject(slot, "record-conflict");
|
|
29
|
+
if (records?.has(id) === true) return this.#reject(slot, "record-conflict");
|
|
30
30
|
if (records === undefined) {
|
|
31
31
|
records = new Map<string, CoreRecord>();
|
|
32
32
|
this.#recordsByCheckId.set(slot.checkId, records);
|
|
@@ -9,20 +9,38 @@ export type {
|
|
|
9
9
|
const encoder = new TextEncoder();
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* 将输入规范化为独立且递归冻结的 canonical JSON 对象副本。
|
|
13
|
+
*
|
|
14
|
+
* 递归内容只接受普通对象或 null-prototype 对象、标准无空洞数组和有限 JSON 基本值;仅当顶层结果是
|
|
15
|
+
* 非数组对象时返回该副本。输出对象使用 null prototype,输出对象和数组均独立于输入且递归冻结。不调用
|
|
16
|
+
* getter 或 `toJSON`;无效输入、循环引用或反射失败返回 `undefined`。反射 Proxy 时仍可能执行其 trap,
|
|
17
|
+
* 不隔离 trap 的副作用。
|
|
15
18
|
*/
|
|
16
19
|
export function canonicalizeJsonObject(value: unknown): CanonicalJsonObject | undefined {
|
|
17
20
|
const canonical = canonicalize(value, new Set<object>());
|
|
18
21
|
return canonical !== undefined && isCanonicalJsonObject(canonical) ? canonical : undefined;
|
|
19
22
|
}
|
|
20
23
|
|
|
24
|
+
/**
|
|
25
|
+
* 将输入规范化为独立且递归冻结的 canonical JSON 值副本。
|
|
26
|
+
*
|
|
27
|
+
* 接受 `null`、boolean、string、有限 number、普通对象或 null-prototype 对象,以及标准无空洞数组;
|
|
28
|
+
* `-0` 转换为 `0`,输出对象使用 null prototype。拒绝存取器、稀疏数组、不可枚举的自有属性、非有限
|
|
29
|
+
* number 和其它 prototype。不调用 getter 或 `toJSON`;无效输入、循环引用或反射失败返回 `undefined`。
|
|
30
|
+
* 反射 Proxy 时仍可能执行其 trap,不隔离 trap 的副作用。`CanonicalJsonPrimitive` 的 `number` 在
|
|
31
|
+
* TypeScript 中仍可表示 `NaN`,有限性只能由本函数在运行时检查。
|
|
32
|
+
*/
|
|
21
33
|
export function canonicalizeJsonValue(value: unknown): CanonicalJsonValue | undefined {
|
|
22
34
|
return canonicalize(value, new Set<object>());
|
|
23
35
|
}
|
|
24
36
|
|
|
25
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* 规范化输入后生成确定性的无额外空白 JSON 文本。
|
|
39
|
+
*
|
|
40
|
+
* 对象键按固定的 lexical `<` 顺序输出,不承诺遵循外部 canonical-JSON 标准。即使同一对象已经过
|
|
41
|
+
* 规范化,`JSON.stringify` 仍按 ECMAScript 的整数索引键顺序输出,不能替代本函数。输入规则与 Proxy
|
|
42
|
+
* 边界同 `canonicalizeJsonValue`;无效输入或无法反射的 Proxy 均抛出 `TypeError`。
|
|
43
|
+
*/
|
|
26
44
|
export function canonicalJsonText(value: unknown): string {
|
|
27
45
|
const canonical = canonicalizeJsonValue(value);
|
|
28
46
|
if (canonical === undefined) {
|
|
@@ -31,7 +49,12 @@ export function canonicalJsonText(value: unknown): string {
|
|
|
31
49
|
return canonicalText(canonical);
|
|
32
50
|
}
|
|
33
51
|
|
|
34
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* 规范化输入后生成与 `canonicalJsonText` 相同的确定性 UTF-8 JSON 字节。
|
|
54
|
+
*
|
|
55
|
+
* 函数自行完成规范化与固定键排序,不要求调用方先取得 canonical JSON 值。输入规则、Proxy 边界和
|
|
56
|
+
* `TypeError` 失败方式与 `canonicalJsonText` 相同。
|
|
57
|
+
*/
|
|
35
58
|
export function canonicalJsonBytes(value: unknown): Uint8Array {
|
|
36
59
|
return encoder.encode(canonicalJsonText(value));
|
|
37
60
|
}
|
|
@@ -79,7 +102,7 @@ function denseCanonicalArrayLength(value: readonly unknown[]): number | undefine
|
|
|
79
102
|
if (Object.getPrototypeOf(value) !== Array.prototype) return undefined;
|
|
80
103
|
const keys = Reflect.ownKeys(value);
|
|
81
104
|
const lengthDescriptor = Object.getOwnPropertyDescriptor(value, "length");
|
|
82
|
-
if (!isDataDescriptor(lengthDescriptor) || lengthDescriptor.enumerable) return undefined;
|
|
105
|
+
if (!isDataDescriptor(lengthDescriptor) || lengthDescriptor.enumerable === true) return undefined;
|
|
83
106
|
const length = lengthDescriptor.value;
|
|
84
107
|
if (
|
|
85
108
|
typeof length !== "number" ||
|
|
@@ -140,8 +163,6 @@ function canonicalizeObject(
|
|
|
140
163
|
|
|
141
164
|
type DataDescriptor = Omit<PropertyDescriptor, "get" | "set" | "value"> &
|
|
142
165
|
Readonly<{
|
|
143
|
-
get?: undefined;
|
|
144
|
-
set?: undefined;
|
|
145
166
|
value: unknown;
|
|
146
167
|
}>;
|
|
147
168
|
|
|
@@ -173,7 +194,13 @@ function canonicalText(value: CanonicalJsonValue): string {
|
|
|
173
194
|
}
|
|
174
195
|
return `{${Object.keys(value)
|
|
175
196
|
.sort(compareText)
|
|
176
|
-
.map((key) =>
|
|
197
|
+
.map((key) => {
|
|
198
|
+
const entry = value[key];
|
|
199
|
+
if (entry === undefined) {
|
|
200
|
+
throw new TypeError(`Canonical JSON object is missing declared key: ${key}`);
|
|
201
|
+
}
|
|
202
|
+
return `${JSON.stringify(key)}:${canonicalText(entry)}`;
|
|
203
|
+
})
|
|
177
204
|
.join(",")}}`;
|
|
178
205
|
}
|
|
179
206
|
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Canonical JSON 基本值的静态结构类型。
|
|
3
|
+
*
|
|
4
|
+
* TypeScript 的 `number` 无法在静态层区分有限值与 `NaN` / `Infinity`;因此此类型不能证明值已经由
|
|
5
|
+
* canonical API 规范化。运行时只接受有限 number,并将 `-0` 转换为 `0`。
|
|
6
|
+
*/
|
|
2
7
|
export type CanonicalJsonPrimitive = boolean | null | number | string;
|
|
3
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Canonical JSON 值的递归只读静态结构类型。
|
|
11
|
+
*
|
|
12
|
+
* 它描述基本值、数组和对象能够如何组合,便于声明参数和结果;不证明值已经通过 canonical API 的
|
|
13
|
+
* 运行时规范化、递归冻结或循环检查。
|
|
14
|
+
*/
|
|
4
15
|
export type CanonicalJsonValue =
|
|
5
16
|
| CanonicalJsonPrimitive
|
|
6
17
|
| readonly CanonicalJsonValue[]
|
|
7
18
|
| CanonicalJsonObject;
|
|
8
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Canonical JSON 对象的只读静态结构类型。
|
|
22
|
+
*
|
|
23
|
+
* 该类型不证明值来自 canonical API。API 实际返回的对象使用 null prototype,没有继承的对象方法;
|
|
24
|
+
* 检查属性时使用 `Object.hasOwn`,不要调用 `value.hasOwnProperty`。
|
|
25
|
+
*/
|
|
9
26
|
export interface CanonicalJsonObject {
|
|
10
27
|
readonly [key: string]: CanonicalJsonValue;
|
|
11
28
|
}
|
|
@@ -15,6 +15,7 @@ function ownDataShape(value: object): OwnDataShape | undefined {
|
|
|
15
15
|
if (
|
|
16
16
|
keys.some((key) => {
|
|
17
17
|
const descriptor = descriptors[key];
|
|
18
|
+
if (descriptor === undefined) return true;
|
|
18
19
|
return descriptor.get !== undefined || descriptor.set !== undefined;
|
|
19
20
|
})
|
|
20
21
|
)
|
|
@@ -60,19 +61,30 @@ export function snapshotClosedRecord(
|
|
|
60
61
|
const shape = ownDataShape(value);
|
|
61
62
|
if (
|
|
62
63
|
shape === undefined ||
|
|
63
|
-
shape.keys.some((key) => shape.descriptors[key]
|
|
64
|
+
shape.keys.some((key) => shape.descriptors[key]?.enumerable !== true)
|
|
64
65
|
) {
|
|
65
66
|
return undefined;
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
const entries = shape.keys.map((key) => {
|
|
69
|
+
const descriptor = shape.descriptors[key];
|
|
70
|
+
if (descriptor === undefined) throw new TypeError(`Missing own descriptor: ${key}`);
|
|
71
|
+
return [key, descriptor.value as unknown] as const;
|
|
72
|
+
});
|
|
73
|
+
return Object.freeze(Object.fromEntries(entries));
|
|
70
74
|
} catch {
|
|
71
75
|
return undefined;
|
|
72
76
|
}
|
|
73
77
|
}
|
|
74
78
|
|
|
75
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* 取得字段集合恰好匹配调用方字段表的闭合普通记录外层浅快照。
|
|
81
|
+
*
|
|
82
|
+
* 输入必须是使用 `Object.prototype` 或 null prototype 的非数组对象,且每个自有属性都是可枚举数据属性。
|
|
83
|
+
* 调用方持有的 `keys` 必须是稳定、无重复的字符串列表;缺字段、多字段、symbol 键、存取器或不可枚举属性
|
|
84
|
+
* 均返回 `undefined`。成功结果是使用 `Object.prototype` 的冻结浅副本:只固定外层字段,保留 callback、
|
|
85
|
+
* `undefined` 与嵌套对象或数组的原引用,调用方仍须逐字段验证。这不是 JSON 验证器;不调用 getter,
|
|
86
|
+
* 但反射 Proxy 可能执行其 trap,反射失败时返回 `undefined`。
|
|
87
|
+
*/
|
|
76
88
|
export function snapshotExactClosedRecord(
|
|
77
89
|
value: unknown,
|
|
78
90
|
keys: readonly string[]
|
|
@@ -94,12 +106,20 @@ function closedArrayItems(shape: OwnDataShape, length: number): readonly unknown
|
|
|
94
106
|
const items: unknown[] = [];
|
|
95
107
|
for (let index = 0; index < length; index += 1) {
|
|
96
108
|
const descriptor = shape.descriptors[String(index)];
|
|
97
|
-
if (descriptor
|
|
109
|
+
if (descriptor?.enumerable !== true) return undefined;
|
|
98
110
|
items.push(descriptor.value as unknown);
|
|
99
111
|
}
|
|
100
112
|
return Object.freeze(items);
|
|
101
113
|
}
|
|
102
114
|
|
|
115
|
+
/**
|
|
116
|
+
* 取得标准无空洞数组的外层浅快照。
|
|
117
|
+
*
|
|
118
|
+
* 输入必须使用 `Array.prototype`,除标准 `length` 和可枚举索引外没有其它自有属性,也不能包含存取器;
|
|
119
|
+
* 稀疏数组、额外属性或其它不符合条件的输入返回 `undefined`。成功结果是冻结浅副本,只固定数组结构,
|
|
120
|
+
* 保留 callback、`undefined` 与嵌套值的原引用,不检查元素的业务类型或 JSON 合法性。不调用存取器,
|
|
121
|
+
* 但反射 Proxy 可能执行其 trap,反射失败时返回 `undefined`。
|
|
122
|
+
*/
|
|
103
123
|
export function snapshotClosedArray(value: unknown): readonly unknown[] | undefined {
|
|
104
124
|
try {
|
|
105
125
|
if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype) return undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { minimatch } from "minimatch";
|
|
2
|
+
|
|
3
|
+
import { toSlashPath } from "./project-path.ts";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Product config glob's single matcher boundary. Candidates use slash form;
|
|
7
|
+
* dot paths participate only when an explicit glob matches them.
|
|
8
|
+
*/
|
|
9
|
+
export function matchesAnyConfigGlob(
|
|
10
|
+
candidatePath: string,
|
|
11
|
+
configGlobs: readonly string[]
|
|
12
|
+
): boolean {
|
|
13
|
+
const normalizedCandidatePath = toSlashPath(candidatePath);
|
|
14
|
+
return configGlobs.some((configGlob) =>
|
|
15
|
+
minimatch(normalizedCandidatePath, configGlob, { dot: true })
|
|
16
|
+
);
|
|
17
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Converts a host path spelling to the Product's slash-path form. */
|
|
2
|
+
export function toSlashPath(filePath: string): string {
|
|
3
|
+
return filePath.replace(/\\/g, "/");
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/** Recognizes one stable project-root-relative slash path. */
|
|
7
|
+
export function isNormalizedProjectRelativePath(value: unknown): value is string {
|
|
8
|
+
if (
|
|
9
|
+
typeof value !== "string" ||
|
|
10
|
+
value.length === 0 ||
|
|
11
|
+
value.startsWith("/") ||
|
|
12
|
+
value.includes("\\") ||
|
|
13
|
+
value.includes("\u0000") ||
|
|
14
|
+
/^[A-Za-z]:/u.test(value)
|
|
15
|
+
) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return value
|
|
19
|
+
.split("/")
|
|
20
|
+
.every((segment) => segment.length > 0 && segment !== "." && segment !== "..");
|
|
21
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -4,9 +4,25 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @packageDocumentation
|
|
6
6
|
*/
|
|
7
|
-
export { cacheJsonByKey } from "./cache/cache-json-by-key.ts";
|
|
8
|
-
export type {
|
|
7
|
+
export { cacheJsonByKey } from "./package-tools/cache/cache-json-by-key.ts";
|
|
8
|
+
export type {
|
|
9
|
+
CacheJsonByKeyOptions,
|
|
10
|
+
CacheJsonByKeyResult
|
|
11
|
+
} from "./package-tools/cache/cache-json-by-key.ts";
|
|
12
|
+
export {
|
|
13
|
+
canonicalizeJsonObject,
|
|
14
|
+
canonicalizeJsonValue,
|
|
15
|
+
canonicalJsonBytes,
|
|
16
|
+
canonicalJsonText
|
|
17
|
+
} from "./data-boundary/canonical-data.ts";
|
|
18
|
+
export type {
|
|
19
|
+
CanonicalJsonObject,
|
|
20
|
+
CanonicalJsonPrimitive,
|
|
21
|
+
CanonicalJsonValue
|
|
22
|
+
} from "./data-boundary/canonical-data.ts";
|
|
23
|
+
export { snapshotClosedArray, snapshotExactClosedRecord } from "./data-boundary/closed-values.ts";
|
|
9
24
|
export { duplicateDetection } from "./package-checks/duplicate-detection/default-check.ts";
|
|
25
|
+
export type { PackageCheckAuthoringOptions } from "./package-checks/check-authoring.ts";
|
|
10
26
|
export { parseDuplicateDetectionData } from "./package-checks/duplicate-detection/final-data.ts";
|
|
11
27
|
export type { DuplicateDetectionFinalData } from "./package-checks/duplicate-detection/final-data.ts";
|
|
12
28
|
export type {
|
|
@@ -83,10 +99,28 @@ export type {
|
|
|
83
99
|
JsonValidationRecordReason,
|
|
84
100
|
JsonValidationUnavailableCode
|
|
85
101
|
} from "./package-checks/json-validation/json-validation.ts";
|
|
102
|
+
export { commandCheck } from "./package-checks/command-check/command-check.ts";
|
|
103
|
+
export type {
|
|
104
|
+
AfterCommand,
|
|
105
|
+
AfterCommandContext,
|
|
106
|
+
AfterCommandExecution,
|
|
107
|
+
CommandCheck,
|
|
108
|
+
CommandCheckEnvironment,
|
|
109
|
+
CommandCheckWithAfterCommand,
|
|
110
|
+
CommandEnvironmentContext,
|
|
111
|
+
CommandEnvironmentResolver,
|
|
112
|
+
CompletedCommand,
|
|
113
|
+
CommandCheckFinalData,
|
|
114
|
+
CommandCheckInput,
|
|
115
|
+
CommandCheckOutput,
|
|
116
|
+
CommandCheckUnavailableReasonCode,
|
|
117
|
+
TypedCommandCheck
|
|
118
|
+
} from "./package-checks/command-check/command-check.ts";
|
|
86
119
|
export { maintenanceReminders } from "./package-checks/maintenance-reminders/maintenance-reminders.ts";
|
|
87
120
|
export type {
|
|
88
121
|
MaintenanceReminder,
|
|
89
122
|
MaintenanceReminderOptions,
|
|
123
|
+
MaintenanceRemindersInput,
|
|
90
124
|
MaintenanceRemindersUnavailableCode
|
|
91
125
|
} from "./package-checks/maintenance-reminders/maintenance-reminders.ts";
|
|
92
126
|
export { parseMaintenanceRemindersData } from "./package-checks/maintenance-reminders/final-data.ts";
|
|
@@ -95,6 +129,21 @@ export type {
|
|
|
95
129
|
MaintenanceReminderUnavailableReason,
|
|
96
130
|
MaintenanceRemindersFinalData
|
|
97
131
|
} from "./package-checks/maintenance-reminders/final-data.ts";
|
|
132
|
+
export { markdownLint } from "./package-checks/markdown-lint/default-check.ts";
|
|
133
|
+
export { parseMarkdownLintData } from "./package-checks/markdown-lint/final-data.ts";
|
|
134
|
+
export type { MarkdownLintFinalData } from "./package-checks/markdown-lint/final-data.ts";
|
|
135
|
+
export type {
|
|
136
|
+
MarkdownLintFindingIdentity,
|
|
137
|
+
MarkdownLintFindingWaiver,
|
|
138
|
+
MarkdownLintOptions,
|
|
139
|
+
MarkdownLintRuleName,
|
|
140
|
+
ResolvedMarkdownLintOptions
|
|
141
|
+
} from "./package-checks/markdown-lint/options.ts";
|
|
142
|
+
export type {
|
|
143
|
+
MarkdownLintFindingWaiverAuditRecordData,
|
|
144
|
+
MarkdownLintRecordData
|
|
145
|
+
} from "./package-checks/markdown-lint/records.ts";
|
|
146
|
+
export type { MarkdownLintUnavailableReason } from "./package-checks/markdown-lint/execution.ts";
|
|
98
147
|
export { markdownLinkValidation } from "./package-checks/markdown-link-validation/default-check.ts";
|
|
99
148
|
export { parseMarkdownLinkValidationData } from "./package-checks/markdown-link-validation/final-data.ts";
|
|
100
149
|
export type { MarkdownLinkValidationFinalData } from "./package-checks/markdown-link-validation/final-data.ts";
|
|
@@ -106,8 +155,8 @@ export type { MarkdownLinkValidationUnavailableReason } from "./package-checks/m
|
|
|
106
155
|
export type { MarkdownLinkValidationRecordData } from "./package-checks/markdown-link-validation/records.ts";
|
|
107
156
|
export type { MarkdownLinkFindingReason } from "./package-checks/markdown-link-validation/local-resolver.ts";
|
|
108
157
|
export type { FindingPolicy } from "./package-checks/code-quality-findings/policy.ts";
|
|
109
|
-
export { reconcileFindingWaivers } from "./finding-waivers/reconciliation.ts";
|
|
110
|
-
export { presentCheckFindings } from "./
|
|
158
|
+
export { reconcileFindingWaivers } from "./package-tools/finding-waivers/reconciliation.ts";
|
|
159
|
+
export { presentCheckFindings } from "./package-tools/finding-presentation/finding-presentation.ts";
|
|
111
160
|
export type {
|
|
112
161
|
FindingWaiver,
|
|
113
162
|
FindingWaiverAudit,
|
|
@@ -115,7 +164,7 @@ export type {
|
|
|
115
164
|
MaterializedFindingWaiver,
|
|
116
165
|
ReconciledFinding,
|
|
117
166
|
ReconcileFindingWaiversOptions
|
|
118
|
-
} from "./finding-waivers/reconciliation.ts";
|
|
167
|
+
} from "./package-tools/finding-waivers/reconciliation.ts";
|
|
119
168
|
export { defaultProjectFileSelection } from "./package-checks/project-files/configuration.ts";
|
|
120
169
|
export { collectProjectFiles } from "./package-checks/project-files/public-collection.ts";
|
|
121
170
|
export type { CollectProjectFilesOptions } from "./package-checks/project-files/public-collection.ts";
|
|
@@ -125,25 +174,31 @@ export type {
|
|
|
125
174
|
ProjectFileSource
|
|
126
175
|
} from "./package-checks/project-files/configuration.ts";
|
|
127
176
|
export { defineCheck, inherit } from "./check/check.ts";
|
|
177
|
+
export { all, any, changeFlag, exactlyOne, none, not, notAll } from "./check/flag-enablement.ts";
|
|
128
178
|
export type {
|
|
129
179
|
Check,
|
|
130
180
|
CheckDependencies,
|
|
131
181
|
CheckExecution,
|
|
132
182
|
CheckExecutionContext,
|
|
133
|
-
|
|
134
|
-
|
|
183
|
+
CheckFlagCondition,
|
|
184
|
+
CheckFlagEnablement,
|
|
185
|
+
CheckPreparation,
|
|
186
|
+
CheckPreparationResult,
|
|
187
|
+
CheckProjectContext,
|
|
135
188
|
CheckResourceClaims,
|
|
136
189
|
CheckOutcome,
|
|
190
|
+
ProjectChanges,
|
|
137
191
|
CheckResult,
|
|
138
192
|
CheckUnavailableReason,
|
|
139
193
|
InheritableCheckCollection
|
|
140
194
|
} from "./check/check.ts";
|
|
141
|
-
export { defineAdmissionPolicy
|
|
142
|
-
export {
|
|
195
|
+
export { defineAdmissionPolicy } from "./package-tools/admission-policy/define-admission-policy.ts";
|
|
196
|
+
export { defineConfig } from "./project-definition/project-definition.ts";
|
|
197
|
+
export { createLearnedCriticalPathStrategy } from "./package-tools/learned-critical-path/strategy.ts";
|
|
143
198
|
export type {
|
|
144
199
|
LearnedCriticalPathObservation,
|
|
145
200
|
LearnedCriticalPathStrategyOptions
|
|
146
|
-
} from "./learned-critical-path/strategy.ts";
|
|
201
|
+
} from "./package-tools/learned-critical-path/strategy.ts";
|
|
147
202
|
export { createAdmissionGraph } from "./project-run/task-scheduler/admission-core/core.ts";
|
|
148
203
|
export type {
|
|
149
204
|
AdmissionPolicy,
|
|
@@ -173,7 +228,7 @@ export type {
|
|
|
173
228
|
SchedulerDecisionMeasurementCumulative,
|
|
174
229
|
SchedulerGraphSnapshot,
|
|
175
230
|
SchedulerMeasurementContext,
|
|
176
|
-
|
|
231
|
+
SchedulerTerminalEffect,
|
|
177
232
|
SchedulerMeasurementIntervalContribution,
|
|
178
233
|
SchedulerMeasurementActionObservationInterval,
|
|
179
234
|
SchedulerMeasurementActionObservation,
|
|
@@ -181,6 +236,12 @@ export type {
|
|
|
181
236
|
SchedulerRawMeasurement,
|
|
182
237
|
SchedulerPolicy
|
|
183
238
|
} from "./project-definition/project-definition.ts";
|
|
239
|
+
export type {
|
|
240
|
+
ProjectChangeFlagRegion,
|
|
241
|
+
ProjectChangeSource,
|
|
242
|
+
ProjectChangesConfiguration
|
|
243
|
+
} from "./project-definition/project-changes.ts";
|
|
244
|
+
export type { CoreCheck } from "./check-settlement/facts.ts";
|
|
184
245
|
export type {
|
|
185
246
|
CheckAggregate,
|
|
186
247
|
CheckAggregation,
|
|
@@ -104,5 +104,7 @@ function removePaths(paths: readonly string[]): void {
|
|
|
104
104
|
firstFailure ??= error;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
if (firstFailure
|
|
107
|
+
if (firstFailure === undefined) return;
|
|
108
|
+
if (firstFailure instanceof Error) throw firstFailure;
|
|
109
|
+
throw new Error("publication cleanup failed", { cause: firstFailure });
|
|
108
110
|
}
|