@zxyycom/vibe-check 0.0.1 → 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 +79 -75
- 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 +2 -2
- 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/fact-validation.mjs +17 -23
- package/dist/esm/check-settlement/fact-validation.mjs.map +1 -1
- package/dist/esm/check-settlement/facts.mjs.map +1 -1
- package/dist/esm/check-settlement/outcome-normalization.mjs +9 -19
- package/dist/esm/check-settlement/outcome-normalization.mjs.map +1 -1
- package/dist/esm/check-settlement/reason-shape.mjs +12 -0
- package/dist/esm/check-settlement/reason-shape.mjs.map +1 -0
- package/dist/esm/check-settlement/record-store.mjs +14 -17
- package/dist/esm/check-settlement/record-store.mjs.map +1 -1
- package/dist/esm/check-settlement/session.mjs +8 -2
- package/dist/esm/check-settlement/session.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 +43 -3
- 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/data-boundary/value-shapes.mjs +9 -0
- package/dist/esm/data-boundary/value-shapes.mjs.map +1 -1
- package/dist/esm/index.mjs +16 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/machine-output/v4/atomic-publication.mjs +5 -16
- 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 +40 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs +48 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs +20 -0
- package/dist/esm/package-checks/code-quality-findings/policy.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/area-policy.mjs +15 -7
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs +10 -12
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/execution.mjs +44 -20
- package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs +59 -0
- package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/finding-waiver-identity.mjs +55 -0
- package/dist/esm/package-checks/duplicate-detection/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +2 -2
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs +15 -5
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs +5 -4
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs +22 -47
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs +20 -25
- package/dist/esm/package-checks/duplicate-detection/options-validation.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 +27 -6
- 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 +11 -20
- package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/finding-messages.mjs +22 -0
- package/dist/esm/package-checks/file-metrics/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs +11 -43
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/options-validation.mjs +15 -25
- package/dist/esm/package-checks/file-metrics/options-validation.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 +2 -9
- package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs +2 -2
- 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/parser.mjs +4 -4
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +104 -31
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analysis.mjs +61 -15
- package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-context.mjs +550 -0
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-context.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs +332 -0
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/contracts.mjs +7 -0
- package/dist/esm/package-checks/function-metrics/analyzer/contracts.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs +22 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardnd.mjs +113 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardnd.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs +180 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/registry.mjs +121 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/registry.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs +218 -0
- package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/port-facade.mjs +96 -0
- package/dist/esm/package-checks/function-metrics/analyzer/port-facade.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/reader-registry.mjs +76 -0
- package/dist/esm/package-checks/function-metrics/analyzer/reader-registry.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/csharp.mjs +88 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/csharp.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs +466 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs +289 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/gdscript.mjs +38 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/gdscript.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/go.mjs +44 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/go.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java-body-states.mjs +113 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java-body-states.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java.mjs +247 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/javascript.mjs +16 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/javascript.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/kotlin.mjs +103 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/kotlin.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/lua.mjs +55 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/lua.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs +106 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/perl.mjs +367 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/perl.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs +265 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php.mjs +53 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs +306 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs +404 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs +216 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ruby.mjs +75 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ruby.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/rust.mjs +32 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/rust.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/scala.mjs +47 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/scala.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/solidity.mjs +22 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/solidity.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/st.mjs +142 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/st.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/swift.mjs +94 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/swift.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/tsx.mjs +149 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/tsx.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs +85 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs +612 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/vue.mjs +31 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/vue.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs +25 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/clike.mjs +492 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/clike.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs +544 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/golike.mjs +141 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/golike.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs +69 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/rubylike.mjs +154 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/rubylike.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/script-language.mjs +36 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/script-language.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-adapter.mjs +56 -0
- package/dist/esm/package-checks/function-metrics/analyzer-adapter.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-contract.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-contract.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs +120 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker.mjs +24 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/constructor.mjs +10 -12
- package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/execution.mjs +51 -35
- package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/finding-messages.mjs +75 -0
- package/dist/esm/package-checks/function-metrics/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/finding-waiver-identity.mjs +28 -0
- package/dist/esm/package-checks/function-metrics/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/measurement-model.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/measurement.mjs +163 -26
- package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs +30 -63
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/options-validation.mjs +27 -32
- package/dist/esm/package-checks/function-metrics/options-validation.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 +31 -1
- package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/target-files.mjs +6 -67
- package/dist/esm/package-checks/function-metrics/target-files.mjs.map +1 -1
- package/dist/esm/package-checks/{function-metrics/lizard → host-environment}/csv.mjs +1 -0
- package/dist/esm/package-checks/host-environment/csv.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/git.mjs +12 -1
- 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/host-environment/process.mjs +5 -0
- package/dist/esm/package-checks/host-environment/process.mjs.map +1 -0
- 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/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs +15 -17
- package/dist/esm/package-checks/json-schema-validation/options-validation.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/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/json-validation/options-validation.mjs +4 -10
- package/dist/esm/package-checks/json-validation/options-validation.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/final-data.mjs.map +1 -1
- 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 -27
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs +27 -24
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs +82 -53
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs +36 -0
- package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs +2 -2
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.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 +10 -3
- 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 +12 -11
- 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 +184 -0
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache.mjs +131 -0
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs +58 -57
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/source-reader.mjs +54 -0
- package/dist/esm/package-checks/markdown-link-validation/source-reader.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/unavailable-reasons.mjs +16 -0
- package/dist/esm/package-checks/markdown-link-validation/unavailable-reasons.mjs.map +1 -0
- 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 +24 -20
- package/dist/esm/package-checks/project-files/collection.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/configuration.mjs +3 -11
- package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs +3 -6
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +23 -7
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/public-collection.mjs +56 -0
- package/dist/esm/package-checks/project-files/public-collection.mjs.map +1 -0
- 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 +12 -16
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/classification.mjs +15 -0
- package/dist/esm/package-checks/secret-detection/classification.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/default-check.mjs +37 -0
- package/dist/esm/package-checks/secret-detection/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/execution.mjs +172 -0
- package/dist/esm/package-checks/secret-detection/execution.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/final-data.mjs +33 -0
- package/dist/esm/package-checks/secret-detection/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/finding-waiver-identity.mjs +30 -0
- package/dist/esm/package-checks/secret-detection/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/input-preparation.mjs +192 -0
- package/dist/esm/package-checks/secret-detection/input-preparation.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/options-resolution.mjs +40 -0
- package/dist/esm/package-checks/secret-detection/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/options-validation.mjs +22 -0
- package/dist/esm/package-checks/secret-detection/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/options.mjs +2 -0
- package/dist/esm/package-checks/secret-detection/options.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/records.mjs +31 -0
- package/dist/esm/package-checks/secret-detection/records.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs +84 -0
- package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs.map +1 -0
- 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/package-tools/cache/cache-json-by-key.mjs +188 -0
- package/dist/esm/package-tools/cache/cache-json-by-key.mjs.map +1 -0
- package/dist/esm/package-tools/finding-presentation/finding-presentation.mjs +40 -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 +46 -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 +56 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/bounded-history.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/prediction.mjs +122 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/prediction.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/preparation.mjs +43 -0
- 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 +109 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/recording.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/storage.mjs +187 -0
- package/dist/esm/package-tools/learned-critical-path/duration-model/storage.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/selection-layers.mjs +27 -0
- 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 +55 -0
- package/dist/esm/package-tools/learned-critical-path/static-decision.mjs.map +1 -0
- package/dist/esm/package-tools/learned-critical-path/strategy.mjs +179 -0
- package/dist/esm/package-tools/learned-critical-path/strategy.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs +19 -176
- package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs +184 -0
- package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/collection-authoring.mjs +16 -0
- package/dist/esm/project-definition/check-tree/collection-authoring.mjs.map +1 -0
- 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 +22 -9
- package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/resolution.mjs +52 -19
- package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/scheduling-authoring.mjs +73 -0
- package/dist/esm/project-definition/check-tree/scheduling-authoring.mjs.map +1 -0
- package/dist/esm/project-definition/declarative-snapshot.mjs +74 -0
- package/dist/esm/project-definition/declarative-snapshot.mjs.map +1 -0
- package/dist/esm/project-definition/output-defaults.mjs +18 -1
- package/dist/esm/project-definition/output-defaults.mjs.map +1 -1
- package/dist/esm/project-definition/output-validation.mjs +15 -15
- package/dist/esm/project-definition/output-validation.mjs.map +1 -1
- package/dist/esm/project-definition/progress-rendering-output.mjs +52 -0
- package/dist/esm/project-definition/progress-rendering-output.mjs.map +1 -0
- 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 +132 -16
- package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -1
- package/dist/esm/project-definition/project-definition.mjs +62 -50
- package/dist/esm/project-definition/project-definition.mjs.map +1 -1
- package/dist/esm/project-definition/resource-unit-mapping.mjs +21 -0
- package/dist/esm/project-definition/resource-unit-mapping.mjs.map +1 -0
- package/dist/esm/project-definition/scheduler-policy.mjs +2 -0
- package/dist/esm/project-definition/scheduler-policy.mjs.map +1 -0
- package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs +57 -0
- package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs.map +1 -0
- package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs +2 -0
- package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs.map +1 -0
- package/dist/esm/project-run/admission-strategy-provider/provider.mjs +23 -0
- package/dist/esm/project-run/admission-strategy-provider/provider.mjs.map +1 -0
- package/dist/esm/project-run/aggregation.mjs +42 -57
- 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 +37 -9
- package/dist/esm/project-run/check-execution/callback.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/console-capture.mjs +220 -0
- package/dist/esm/project-run/check-execution/console-capture.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/dependencies.mjs +99 -6
- package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/execution-finalization.mjs +57 -14
- package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/execution-settlement.mjs +44 -19
- package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/flag-controls.mjs +95 -0
- package/dist/esm/project-run/check-execution/flag-controls.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/lifecycle.mjs +2 -0
- package/dist/esm/project-run/check-execution/lifecycle.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/messages.mjs +5 -0
- package/dist/esm/project-run/check-execution/messages.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/plan.mjs +9 -5
- package/dist/esm/project-run/check-execution/plan.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/preparation.mjs +172 -0
- 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 +44 -139
- package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/resolved-execution-result.mjs +2 -0
- package/dist/esm/project-run/check-execution/resolved-execution-result.mjs.map +1 -0
- 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.mjs → completion/completion.mjs} +34 -39
- package/dist/esm/project-run/completion/completion.mjs.map +1 -0
- package/dist/esm/project-run/{machine-publication.mjs → completion/machine-publication.mjs} +1 -1
- package/dist/esm/project-run/completion/machine-publication.mjs.map +1 -0
- package/dist/esm/project-run/completion/result-resolver.mjs +36 -0
- package/dist/esm/project-run/completion/result-resolver.mjs.map +1 -0
- package/dist/esm/project-run/controls/contract.mjs.map +1 -1
- package/dist/esm/project-run/controls/outputs-override-validation.mjs +67 -47
- package/dist/esm/project-run/controls/outputs-override-validation.mjs.map +1 -1
- package/dist/esm/project-run/controls/validation-result.mjs.map +1 -1
- package/dist/esm/project-run/controls/validation.mjs +79 -62
- 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/logger.mjs +100 -161
- package/dist/esm/project-run/diagnostic-logging/logger.mjs.map +1 -1
- package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs +159 -0
- package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs.map +1 -0
- package/dist/esm/project-run/invocation/candidate.mjs +65 -0
- package/dist/esm/project-run/invocation/candidate.mjs.map +1 -0
- 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 +83 -0
- package/dist/esm/project-run/invocation/creation.mjs.map +1 -0
- 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/paths.mjs +77 -0
- package/dist/esm/project-run/invocation/paths.mjs.map +1 -0
- package/dist/esm/project-run/invocation/progress.mjs +30 -0
- package/dist/esm/project-run/invocation/progress.mjs.map +1 -0
- package/dist/esm/project-run/invocation/run.mjs +82 -0
- package/dist/esm/project-run/invocation/run.mjs.map +1 -0
- package/dist/esm/project-run/invocation/scheduler.mjs +64 -0
- package/dist/esm/project-run/invocation/scheduler.mjs.map +1 -0
- package/dist/esm/project-run/{output-configuration.mjs → outputs/configuration.mjs} +3 -2
- package/dist/esm/project-run/outputs/configuration.mjs.map +1 -0
- package/dist/esm/project-run/outputs/status.mjs +105 -0
- package/dist/esm/project-run/outputs/status.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/presentation.mjs +140 -26
- package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +118 -22
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +50 -10
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer.mjs +11 -4
- package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -1
- package/dist/esm/project-run/project-context.mjs +3 -2
- package/dist/esm/project-run/project-context.mjs.map +1 -1
- package/dist/esm/project-run/result.mjs +2 -0
- package/dist/esm/project-run/result.mjs.map +1 -1
- package/dist/esm/project-run/run.mjs +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 +171 -0
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/core.mjs +163 -0
- package/dist/esm/project-run/task-scheduler/admission-core/core.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/input.mjs +119 -0
- package/dist/esm/project-run/task-scheduler/admission-core/input.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/projection.mjs +124 -0
- package/dist/esm/project-run/task-scheduler/admission-core/projection.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-index.mjs +99 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-index.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs +196 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs +168 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs +121 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection.mjs +65 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-scope-layers.mjs +25 -0
- package/dist/esm/project-run/task-scheduler/admission-scope-layers.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-selection-policy.mjs +55 -0
- package/dist/esm/project-run/task-scheduler/admission-selection-policy.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/custom-admission-policy.mjs +110 -0
- package/dist/esm/project-run/task-scheduler/custom-admission-policy.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/execution-state.mjs +34 -5
- package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/forced-block-effect-replay.mjs +46 -0
- package/dist/esm/project-run/task-scheduler/forced-block-effect-replay.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs +54 -26
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/graph.mjs +79 -3
- package/dist/esm/project-run/task-scheduler/graph.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs +211 -0
- package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/integrals.mjs +116 -0
- package/dist/esm/project-run/task-scheduler/measurement/integrals.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/policy.mjs +67 -0
- package/dist/esm/project-run/task-scheduler/measurement/policy.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/summary.mjs +123 -0
- package/dist/esm/project-run/task-scheduler/measurement/summary.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/timing.mjs +164 -0
- package/dist/esm/project-run/task-scheduler/measurement/timing.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs +90 -62
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs +20 -6
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs +5 -105
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs +0 -9
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs +48 -28
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs +91 -0
- package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-task-lifecycle.mjs +94 -0
- package/dist/esm/project-run/task-scheduler/scheduler-task-lifecycle.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs +66 -0
- package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler.mjs +183 -114
- package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -1
- package/docs/api-mechanics.md +167 -121
- package/docs/changelog.md +300 -0
- package/docs/checks/duplicate-detection.md +131 -60
- package/docs/checks/file-metrics.md +68 -46
- package/docs/checks/function-metrics.md +119 -163
- package/docs/checks/json-schema-validation.md +65 -37
- package/docs/checks/json-validation.md +59 -27
- package/docs/checks/maintenance-reminders.md +68 -32
- package/docs/checks/markdown-link-validation.md +104 -56
- package/docs/checks/markdown-lint.md +167 -0
- package/docs/checks/secret-detection.md +153 -0
- package/docs/examples/artifacts/mixed-outcomes/definition.ts +14 -14
- package/docs/guides/building-project-gate.md +706 -0
- package/docs/guides/cache-results.md +63 -0
- package/docs/guides/callbacks.md +93 -0
- package/docs/guides/check-dependencies.md +152 -0
- package/docs/guides/collecting-project-files.md +59 -0
- package/docs/guides/command-check.md +155 -0
- package/docs/guides/data-boundaries.md +140 -0
- package/docs/guides/extending-check-lifecycle.md +164 -0
- package/docs/guides/finding-waivers.md +87 -0
- package/docs/guides/learned-scheduling.md +83 -0
- package/docs/guides/presenting-findings.md +54 -0
- package/docs/guides/run-outputs.md +171 -0
- package/docs/guides/scheduling.md +208 -0
- package/docs/guides/simulating-admission.md +55 -0
- package/docs/output.md +13 -21
- package/licenses/Lizard-1.24.0-MIT.txt +30 -0
- package/{third-party-licenses/momoa-3.3.12-LICENSE → licenses/Lizard-1.24.0-lizard.py-Apache-2.0.txt} +1 -0
- package/licenses/Pygments-2.18.0-BSD-2-Clause.txt +25 -0
- package/licenses/analyzer-translations-NOTICE.md +24 -0
- package/licenses/lizard-1.24.0-provenance.json +957 -0
- package/package.json +19 -6
- package/src/check/check.ts +382 -92
- package/src/check/flag-enablement.ts +76 -0
- package/src/check/handoff-provider-identity.ts +34 -0
- package/src/check/inherited-collection.ts +2 -2
- package/src/check/project-changes.ts +14 -0
- package/src/check/project-context.ts +11 -0
- package/src/check-settlement/fact-validation.ts +29 -39
- package/src/check-settlement/facts.ts +1 -1
- package/src/check-settlement/outcome-normalization.ts +17 -35
- package/src/check-settlement/reason-shape.ts +20 -0
- package/src/check-settlement/record-store.ts +18 -15
- package/src/check-settlement/session.ts +12 -3
- 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 +54 -5
- package/src/data-boundary/config-glob.ts +17 -0
- package/src/data-boundary/project-path.ts +21 -0
- package/src/data-boundary/value-shapes.ts +12 -0
- package/src/index.ts +134 -5
- package/src/machine-output/v4/atomic-publication.ts +4 -17
- package/src/package-checks/check-authoring.ts +136 -0
- package/src/package-checks/code-quality-findings/finding-waiver-authoring.ts +46 -0
- package/src/package-checks/code-quality-findings/finding-waiver-evidence.ts +95 -0
- package/src/package-checks/code-quality-findings/policy.ts +23 -0
- 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/area-policy.ts +24 -13
- package/src/package-checks/duplicate-detection/cache/identity.ts +1 -1
- package/src/package-checks/duplicate-detection/default-check.ts +38 -7
- package/src/package-checks/duplicate-detection/execution.ts +82 -24
- package/src/package-checks/duplicate-detection/finding-messages.ts +75 -0
- package/src/package-checks/duplicate-detection/finding-waiver-identity.ts +68 -0
- package/src/package-checks/duplicate-detection/jscpd/availability.ts +2 -2
- package/src/package-checks/duplicate-detection/jscpd/command-resolution.ts +1 -1
- package/src/package-checks/duplicate-detection/jscpd/json-report.ts +24 -5
- package/src/package-checks/duplicate-detection/jscpd/scanner.ts +6 -7
- package/src/package-checks/duplicate-detection/options-resolution.ts +32 -57
- package/src/package-checks/duplicate-detection/options-validation.ts +23 -31
- package/src/package-checks/duplicate-detection/options.ts +26 -3
- package/src/package-checks/duplicate-detection/records.ts +65 -12
- package/src/package-checks/file-metrics/constructor.ts +29 -6
- package/src/package-checks/file-metrics/execution.ts +17 -20
- package/src/package-checks/file-metrics/finding-messages.ts +29 -0
- package/src/package-checks/file-metrics/options-resolution.ts +19 -52
- package/src/package-checks/file-metrics/options-validation.ts +23 -32
- package/src/package-checks/file-metrics/options.ts +6 -3
- package/src/package-checks/file-metrics/records.ts +11 -23
- package/src/package-checks/file-metrics/scc/availability.ts +2 -2
- 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/parser.ts +4 -4
- package/src/package-checks/file-metrics/scc/scanner.ts +135 -33
- package/src/package-checks/function-metrics/analysis.ts +81 -21
- package/src/package-checks/function-metrics/analyzer/analysis-context.ts +749 -0
- package/src/package-checks/function-metrics/analyzer/analysis-model.ts +421 -0
- package/src/package-checks/function-metrics/analyzer/contracts.ts +54 -0
- package/src/package-checks/function-metrics/analyzer/extension-output.ts +269 -0
- package/src/package-checks/function-metrics/analyzer/extensions/extension-base.ts +33 -0
- package/src/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.ts +25 -0
- package/src/package-checks/function-metrics/analyzer/extensions/lizardnd.ts +144 -0
- package/src/package-checks/function-metrics/analyzer/extensions/protocol.ts +345 -0
- package/src/package-checks/function-metrics/analyzer/extensions/registry.ts +157 -0
- package/src/package-checks/function-metrics/analyzer/pipeline.ts +313 -0
- package/src/package-checks/function-metrics/analyzer/port-facade.ts +142 -0
- package/src/package-checks/function-metrics/analyzer/reader-registry.ts +84 -0
- package/src/package-checks/function-metrics/analyzer/readers/csharp.ts +110 -0
- package/src/package-checks/function-metrics/analyzer/readers/erlang.ts +501 -0
- package/src/package-checks/function-metrics/analyzer/readers/fortran.ts +294 -0
- package/src/package-checks/function-metrics/analyzer/readers/gdscript.ts +42 -0
- package/src/package-checks/function-metrics/analyzer/readers/go.ts +53 -0
- package/src/package-checks/function-metrics/analyzer/readers/java-body-states.ts +141 -0
- package/src/package-checks/function-metrics/analyzer/readers/java.ts +270 -0
- package/src/package-checks/function-metrics/analyzer/readers/javascript.ts +19 -0
- package/src/package-checks/function-metrics/analyzer/readers/kotlin.ts +120 -0
- package/src/package-checks/function-metrics/analyzer/readers/lua.ts +68 -0
- package/src/package-checks/function-metrics/analyzer/readers/objc.ts +113 -0
- package/src/package-checks/function-metrics/analyzer/readers/perl.ts +340 -0
- package/src/package-checks/function-metrics/analyzer/readers/php-states.ts +253 -0
- package/src/package-checks/function-metrics/analyzer/readers/php.ts +63 -0
- package/src/package-checks/function-metrics/analyzer/readers/plsql.ts +310 -0
- package/src/package-checks/function-metrics/analyzer/readers/python.ts +432 -0
- package/src/package-checks/function-metrics/analyzer/readers/r.ts +235 -0
- package/src/package-checks/function-metrics/analyzer/readers/ruby.ts +88 -0
- package/src/package-checks/function-metrics/analyzer/readers/rust.ts +47 -0
- package/src/package-checks/function-metrics/analyzer/readers/scala.ts +60 -0
- package/src/package-checks/function-metrics/analyzer/readers/solidity.ts +32 -0
- package/src/package-checks/function-metrics/analyzer/readers/st.ts +161 -0
- package/src/package-checks/function-metrics/analyzer/readers/swift.ts +116 -0
- package/src/package-checks/function-metrics/analyzer/readers/tsx.ts +165 -0
- package/src/package-checks/function-metrics/analyzer/readers/ttcn.ts +96 -0
- package/src/package-checks/function-metrics/analyzer/readers/typescript.ts +599 -0
- package/src/package-checks/function-metrics/analyzer/readers/vue.ts +43 -0
- package/src/package-checks/function-metrics/analyzer/readers/zig.ts +36 -0
- package/src/package-checks/function-metrics/analyzer/shared/clike.ts +541 -0
- package/src/package-checks/function-metrics/analyzer/shared/code-reader.ts +684 -0
- package/src/package-checks/function-metrics/analyzer/shared/golike.ts +143 -0
- package/src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts +80 -0
- package/src/package-checks/function-metrics/analyzer/shared/rubylike.ts +161 -0
- package/src/package-checks/function-metrics/analyzer/shared/script-language.ts +50 -0
- package/src/package-checks/function-metrics/analyzer-adapter.ts +84 -0
- package/src/package-checks/function-metrics/analyzer-worker-contract.ts +10 -0
- package/src/package-checks/function-metrics/analyzer-worker-port.ts +164 -0
- package/src/package-checks/function-metrics/analyzer-worker.ts +31 -0
- package/src/package-checks/function-metrics/constructor.ts +32 -9
- package/src/package-checks/function-metrics/execution.ts +94 -41
- package/src/package-checks/function-metrics/finding-messages.ts +95 -0
- package/src/package-checks/function-metrics/finding-waiver-identity.ts +36 -0
- package/src/package-checks/function-metrics/measurement-model.ts +15 -1
- package/src/package-checks/function-metrics/measurement.ts +223 -36
- package/src/package-checks/function-metrics/options-resolution.ts +39 -75
- package/src/package-checks/function-metrics/options-validation.ts +30 -39
- package/src/package-checks/function-metrics/options.ts +32 -13
- package/src/package-checks/function-metrics/records.ts +73 -7
- package/src/package-checks/function-metrics/target-files.ts +10 -70
- package/src/package-checks/{file-metrics/scc → host-environment}/csv.ts +1 -2
- package/src/package-checks/host-environment/git.ts +13 -2
- 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/host-environment/process.ts +10 -0
- package/src/package-checks/json-schema-validation/default-check.ts +38 -5
- package/src/package-checks/json-schema-validation/final-data.ts +8 -0
- package/src/package-checks/json-schema-validation/options-validation.ts +16 -23
- package/src/package-checks/json-schema-validation/options.ts +27 -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/final-data.ts +5 -0
- package/src/package-checks/json-validation/options-validation.ts +4 -18
- 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/final-data.ts +18 -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 +57 -8
- package/src/package-checks/markdown-link-validation/execution.ts +51 -57
- package/src/package-checks/markdown-link-validation/filesystem-probes.ts +108 -51
- package/src/package-checks/markdown-link-validation/final-data.ts +5 -0
- package/src/package-checks/markdown-link-validation/finding-messages.ts +48 -0
- package/src/package-checks/markdown-link-validation/local-resolution.ts +17 -9
- package/src/package-checks/markdown-link-validation/local-resolver.ts +5 -2
- package/src/package-checks/markdown-link-validation/markdown-parser.ts +1 -5
- package/src/package-checks/markdown-link-validation/options-resolution.ts +14 -3
- package/src/package-checks/markdown-link-validation/options-validation.ts +12 -19
- package/src/package-checks/markdown-link-validation/options.ts +15 -1
- package/src/package-checks/markdown-link-validation/parse-facts-cache-payload.ts +245 -0
- package/src/package-checks/markdown-link-validation/parse-facts-cache.ts +154 -0
- package/src/package-checks/markdown-link-validation/resolver-engine.ts +75 -65
- package/src/package-checks/markdown-link-validation/source-reader.ts +86 -0
- package/src/package-checks/markdown-link-validation/unavailable-reasons.ts +42 -0
- 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 +39 -23
- package/src/package-checks/project-files/config-glob.ts +1 -17
- package/src/package-checks/project-files/configuration.ts +4 -15
- package/src/package-checks/project-files/gitlink-revision.ts +5 -7
- package/src/package-checks/project-files/gitlink-worktree.ts +36 -8
- package/src/package-checks/project-files/public-collection.ts +92 -0
- package/src/package-checks/project-files/revision-paths.ts +3 -3
- package/src/package-checks/project-files/revision-worktree-files.ts +17 -17
- package/src/package-checks/secret-detection/classification.ts +30 -0
- package/src/package-checks/secret-detection/default-check.ts +73 -0
- package/src/package-checks/secret-detection/execution.ts +247 -0
- package/src/package-checks/secret-detection/final-data.ts +57 -0
- package/src/package-checks/secret-detection/finding-waiver-identity.ts +37 -0
- package/src/package-checks/secret-detection/input-preparation.ts +290 -0
- package/src/package-checks/secret-detection/options-resolution.ts +65 -0
- package/src/package-checks/secret-detection/options-validation.ts +27 -0
- package/src/package-checks/secret-detection/options.ts +39 -0
- package/src/package-checks/secret-detection/records.ts +77 -0
- package/src/package-checks/secret-detection/secretlint/adapter.ts +122 -0
- package/src/package-tools/admission-policy/define-admission-policy.ts +54 -0
- package/src/package-tools/cache/cache-json-by-key.ts +300 -0
- package/src/package-tools/finding-presentation/finding-presentation.ts +69 -0
- package/src/{finding-waivers → package-tools/finding-waivers}/reconciliation.ts +16 -8
- package/src/package-tools/learned-critical-path/critical-path-ranking.ts +76 -0
- package/src/package-tools/learned-critical-path/duration-model/bounded-history.ts +108 -0
- package/src/package-tools/learned-critical-path/duration-model/prediction.ts +184 -0
- package/src/package-tools/learned-critical-path/duration-model/preparation.ts +79 -0
- package/src/package-tools/learned-critical-path/duration-model/recording.ts +209 -0
- package/src/package-tools/learned-critical-path/duration-model/storage.ts +251 -0
- package/src/package-tools/learned-critical-path/selection-layers.ts +71 -0
- package/src/package-tools/learned-critical-path/static-decision.ts +105 -0
- package/src/package-tools/learned-critical-path/strategy.ts +302 -0
- package/src/project-definition/check-tree/authoring.ts +40 -234
- package/src/project-definition/check-tree/check-fields-authoring.ts +242 -0
- package/src/project-definition/check-tree/collection-authoring.ts +13 -0
- package/src/project-definition/check-tree/flag-conditions.ts +99 -0
- package/src/project-definition/check-tree/materialization.ts +21 -9
- package/src/project-definition/check-tree/resolution.ts +84 -28
- package/src/project-definition/check-tree/scheduling-authoring.ts +114 -0
- package/src/project-definition/declarative-snapshot.ts +94 -0
- package/src/project-definition/output-defaults.ts +32 -1
- package/src/project-definition/output-validation.ts +15 -15
- package/src/project-definition/progress-rendering-output.ts +121 -0
- package/src/project-definition/project-changes.ts +112 -0
- package/src/project-definition/project-definition-validation.ts +166 -19
- package/src/project-definition/project-definition.ts +177 -67
- package/src/project-definition/resource-unit-mapping.ts +25 -0
- package/src/project-definition/scheduler-policy.ts +556 -0
- package/src/project-run/admission-strategy-provider/custom-strategy-preparation.ts +83 -0
- package/src/project-run/admission-strategy-provider/prepared-admission-strategy.ts +27 -0
- package/src/project-run/admission-strategy-provider/provider.ts +45 -0
- package/src/project-run/aggregation.ts +52 -70
- 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 +52 -9
- package/src/project-run/check-execution/console-capture.ts +262 -0
- package/src/project-run/check-execution/dependencies.ts +161 -10
- package/src/project-run/check-execution/execution-finalization.ts +103 -27
- package/src/project-run/check-execution/execution-settlement.ts +99 -32
- package/src/project-run/check-execution/flag-controls.ts +146 -0
- package/src/project-run/check-execution/lifecycle.ts +29 -0
- package/src/project-run/check-execution/messages.ts +8 -0
- package/src/project-run/check-execution/plan.ts +12 -8
- package/src/project-run/check-execution/{preflight-result.ts → preparation-result.ts} +34 -32
- package/src/project-run/check-execution/preparation.ts +309 -0
- package/src/project-run/check-execution/ready-check-execution.ts +97 -0
- package/src/project-run/check-execution/resolved-checks.ts +92 -232
- package/src/project-run/check-execution/resolved-execution-result.ts +22 -0
- 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.ts → completion/completion.ts} +33 -59
- package/src/project-run/{machine-publication.ts → completion/machine-publication.ts} +4 -4
- package/src/project-run/completion/result-resolver.ts +60 -0
- package/src/project-run/controls/contract.ts +22 -9
- package/src/project-run/controls/outputs-override-validation.ts +83 -60
- package/src/project-run/controls/validation-result.ts +17 -6
- package/src/project-run/controls/validation.ts +110 -68
- package/src/project-run/diagnostic-logging/diagnostic-detail-rendering.ts +1 -2
- package/src/project-run/diagnostic-logging/logger.ts +132 -207
- package/src/project-run/diagnostic-logging/observation-rendering.ts +203 -0
- package/src/project-run/invocation/candidate.ts +99 -0
- package/src/project-run/invocation/candidates.ts +56 -0
- package/src/project-run/invocation/creation.ts +120 -0
- package/src/project-run/invocation/execution.ts +136 -0
- package/src/project-run/invocation/paths.ts +154 -0
- package/src/project-run/invocation/progress.ts +38 -0
- package/src/project-run/invocation/run.ts +144 -0
- package/src/project-run/invocation/scheduler.ts +82 -0
- package/src/project-run/{output-configuration.ts → outputs/configuration.ts} +6 -5
- package/src/project-run/outputs/status.ts +161 -0
- package/src/project-run/progress-rendering/presentation.ts +150 -36
- package/src/project-run/progress-rendering/renderer-formatting.ts +185 -25
- package/src/project-run/progress-rendering/renderer-lifecycle.ts +61 -9
- package/src/project-run/progress-rendering/renderer.ts +23 -6
- package/src/project-run/project-context.ts +10 -5
- package/src/project-run/result.ts +50 -4
- package/src/project-run/run.ts +7 -6
- 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 +321 -0
- package/src/project-run/task-scheduler/admission-core/core.ts +278 -0
- package/src/project-run/task-scheduler/admission-core/input.ts +138 -0
- package/src/project-run/task-scheduler/admission-core/projection.ts +164 -0
- package/src/project-run/task-scheduler/admission-core/selection-index.ts +165 -0
- package/src/project-run/task-scheduler/admission-core/selection-query.ts +297 -0
- package/src/project-run/task-scheduler/admission-core/selection-seed.ts +282 -0
- package/src/project-run/task-scheduler/admission-core/selection-transition.ts +245 -0
- package/src/project-run/task-scheduler/admission-core/selection.ts +140 -0
- package/src/project-run/task-scheduler/admission-core/trace.ts +177 -0
- package/src/project-run/task-scheduler/admission-scope-layers.ts +44 -0
- package/src/project-run/task-scheduler/admission-selection-policy.ts +116 -0
- package/src/project-run/task-scheduler/custom-admission-policy.ts +128 -0
- package/src/project-run/task-scheduler/execution-state.ts +97 -6
- package/src/project-run/task-scheduler/forced-block-effect-replay.ts +68 -0
- package/src/project-run/task-scheduler/graph-validation.ts +77 -31
- package/src/project-run/task-scheduler/graph.ts +111 -3
- package/src/project-run/task-scheduler/measurement/diagnostics.ts +267 -0
- package/src/project-run/task-scheduler/measurement/integrals.ts +177 -0
- package/src/project-run/task-scheduler/measurement/policy.ts +105 -0
- package/src/project-run/task-scheduler/measurement/summary.ts +175 -0
- package/src/project-run/task-scheduler/measurement/timing.ts +198 -0
- package/src/project-run/task-scheduler/scheduler-admission-decision.ts +143 -134
- package/src/project-run/task-scheduler/scheduler-blocker-summary.ts +34 -9
- package/src/project-run/task-scheduler/scheduler-decision-inspection.ts +28 -170
- package/src/project-run/task-scheduler/scheduler-decision-model.ts +36 -40
- package/src/project-run/task-scheduler/scheduler-decision.ts +68 -36
- package/src/project-run/task-scheduler/scheduler-observation.ts +126 -0
- package/src/project-run/task-scheduler/scheduler-task-lifecycle.ts +150 -0
- package/src/project-run/task-scheduler/scheduler-terminal-measurement.ts +97 -0
- package/src/project-run/task-scheduler/scheduler.ts +233 -171
- package/types/check/check.d.ts +225 -69
- package/types/check/flag-enablement.d.ts +42 -0
- package/types/check/handoff-provider-identity.d.ts +12 -0
- package/types/check/inherited-collection.d.ts +1 -1
- 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/check-settlement/reason-shape.d.ts +5 -0
- package/types/check-settlement/record-store.d.ts +2 -2
- package/types/check-settlement/session.d.ts +3 -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 +24 -0
- package/types/data-boundary/config-glob.d.ts +5 -0
- package/types/data-boundary/project-path.d.ts +4 -0
- package/types/data-boundary/value-shapes.d.ts +3 -0
- package/types/index.d.ts +40 -9
- package/types/package-checks/check-authoring.d.ts +45 -0
- package/types/package-checks/code-quality-findings/finding-waiver-authoring.d.ts +7 -0
- package/types/package-checks/code-quality-findings/finding-waiver-evidence.d.ts +34 -0
- package/types/package-checks/code-quality-findings/policy.d.ts +4 -0
- 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/area-policy.d.ts +1 -1
- package/types/package-checks/duplicate-detection/default-check.d.ts +5 -2
- package/types/package-checks/duplicate-detection/finding-messages.d.ts +7 -0
- package/types/package-checks/duplicate-detection/finding-waiver-identity.d.ts +3 -0
- package/types/package-checks/duplicate-detection/jscpd/command-resolution.d.ts +1 -1
- package/types/package-checks/duplicate-detection/options.d.ts +21 -3
- package/types/package-checks/duplicate-detection/records.d.ts +20 -3
- package/types/package-checks/file-metrics/constructor.d.ts +5 -2
- package/types/package-checks/file-metrics/finding-messages.d.ts +4 -0
- package/types/package-checks/file-metrics/options.d.ts +4 -3
- package/types/package-checks/file-metrics/records.d.ts +5 -10
- 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/file-metrics/scc/parser.d.ts +4 -4
- package/types/package-checks/function-metrics/analysis.d.ts +1 -1
- package/types/package-checks/function-metrics/analyzer/analysis-context.d.ts +174 -0
- package/types/package-checks/function-metrics/analyzer/analysis-model.d.ts +135 -0
- package/types/package-checks/function-metrics/analyzer/contracts.d.ts +48 -0
- package/types/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.d.ts +13 -0
- package/types/package-checks/function-metrics/analyzer/extensions/lizardnd.d.ts +28 -0
- package/types/package-checks/function-metrics/analyzer/extensions/protocol.d.ts +99 -0
- package/types/package-checks/function-metrics/analyzer/extensions/registry.d.ts +34 -0
- package/types/package-checks/function-metrics/analyzer/pipeline.d.ts +67 -0
- package/types/package-checks/function-metrics/analyzer/port-facade.d.ts +38 -0
- package/types/package-checks/function-metrics/analyzer/reader-registry.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/csharp.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/erlang.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/fortran.d.ts +29 -0
- package/types/package-checks/function-metrics/analyzer/readers/gdscript.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/go.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/java-body-states.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/java.d.ts +44 -0
- package/types/package-checks/function-metrics/analyzer/readers/javascript.d.ts +14 -0
- package/types/package-checks/function-metrics/analyzer/readers/kotlin.d.ts +23 -0
- package/types/package-checks/function-metrics/analyzer/readers/lua.d.ts +16 -0
- package/types/package-checks/function-metrics/analyzer/readers/objc.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/perl.d.ts +28 -0
- package/types/package-checks/function-metrics/analyzer/readers/php-states.d.ts +41 -0
- package/types/package-checks/function-metrics/analyzer/readers/php.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/plsql.d.ts +24 -0
- package/types/package-checks/function-metrics/analyzer/readers/python.d.ts +50 -0
- package/types/package-checks/function-metrics/analyzer/readers/r.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/ruby.d.ts +16 -0
- package/types/package-checks/function-metrics/analyzer/readers/rust.d.ts +20 -0
- package/types/package-checks/function-metrics/analyzer/readers/scala.d.ts +20 -0
- package/types/package-checks/function-metrics/analyzer/readers/solidity.d.ts +19 -0
- package/types/package-checks/function-metrics/analyzer/readers/st.d.ts +37 -0
- package/types/package-checks/function-metrics/analyzer/readers/swift.d.ts +30 -0
- package/types/package-checks/function-metrics/analyzer/readers/tsx.d.ts +15 -0
- package/types/package-checks/function-metrics/analyzer/readers/ttcn.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/typescript.d.ts +35 -0
- package/types/package-checks/function-metrics/analyzer/readers/vue.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/zig.d.ts +19 -0
- package/types/package-checks/function-metrics/analyzer/shared/clike.d.ts +101 -0
- package/types/package-checks/function-metrics/analyzer/shared/code-reader.d.ts +176 -0
- package/types/package-checks/function-metrics/analyzer/shared/golike.d.ts +39 -0
- package/types/package-checks/function-metrics/analyzer/shared/js-style-regex.d.ts +16 -0
- package/types/package-checks/function-metrics/analyzer/shared/rubylike.d.ts +40 -0
- package/types/package-checks/function-metrics/analyzer/shared/script-language.d.ts +17 -0
- package/types/package-checks/function-metrics/analyzer-adapter.d.ts +26 -0
- package/types/package-checks/function-metrics/analyzer-worker-contract.d.ts +5 -0
- package/types/package-checks/function-metrics/analyzer-worker-port.d.ts +24 -0
- package/types/package-checks/function-metrics/analyzer-worker.d.ts +1 -0
- package/types/package-checks/function-metrics/constructor.d.ts +6 -3
- package/types/package-checks/function-metrics/execution.d.ts +5 -2
- package/types/package-checks/function-metrics/finding-messages.d.ts +9 -0
- package/types/package-checks/function-metrics/finding-waiver-identity.d.ts +2 -0
- package/types/package-checks/function-metrics/measurement-model.d.ts +13 -1
- package/types/package-checks/function-metrics/measurement.d.ts +22 -7
- package/types/package-checks/function-metrics/options.d.ts +26 -12
- package/types/package-checks/function-metrics/records.d.ts +24 -5
- package/types/package-checks/function-metrics/target-files.d.ts +4 -3
- package/types/package-checks/host-environment/csv.d.ts +2 -0
- package/types/package-checks/host-environment/git.d.ts +3 -1
- 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/host-environment/process.d.ts +5 -0
- package/types/package-checks/json-schema-validation/default-check.d.ts +4 -1
- package/types/package-checks/json-schema-validation/final-data.d.ts +8 -0
- package/types/package-checks/json-schema-validation/options.d.ts +33 -4
- package/types/package-checks/json-validation/default-check.d.ts +4 -1
- package/types/package-checks/json-validation/final-data.d.ts +5 -0
- 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/final-data.d.ts +18 -0
- package/types/package-checks/maintenance-reminders/maintenance-reminders.d.ts +11 -2
- package/types/package-checks/markdown-link-validation/default-check.d.ts +13 -4
- package/types/package-checks/markdown-link-validation/execution.d.ts +1 -3
- package/types/package-checks/markdown-link-validation/final-data.d.ts +5 -0
- package/types/package-checks/markdown-link-validation/finding-messages.d.ts +4 -0
- package/types/package-checks/markdown-link-validation/local-resolution.d.ts +12 -6
- package/types/package-checks/markdown-link-validation/local-resolver.d.ts +2 -1
- package/types/package-checks/markdown-link-validation/options.d.ts +13 -1
- package/types/package-checks/markdown-link-validation/parse-facts-cache-payload.d.ts +24 -0
- package/types/package-checks/markdown-link-validation/parse-facts-cache.d.ts +13 -0
- package/types/package-checks/markdown-link-validation/resolver-engine.d.ts +6 -4
- package/types/package-checks/markdown-link-validation/source-reader.d.ts +11 -0
- package/types/package-checks/markdown-link-validation/unavailable-reasons.d.ts +4 -0
- 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/project-files/public-collection.d.ts +16 -0
- package/types/package-checks/secret-detection/classification.d.ts +12 -0
- package/types/package-checks/secret-detection/default-check.d.ts +14 -0
- package/types/package-checks/secret-detection/execution.d.ts +14 -0
- package/types/package-checks/secret-detection/final-data.d.ts +15 -0
- package/types/package-checks/secret-detection/finding-waiver-identity.d.ts +5 -0
- package/types/package-checks/secret-detection/input-preparation.d.ts +24 -0
- package/types/package-checks/secret-detection/options-resolution.d.ts +6 -0
- package/types/package-checks/secret-detection/options-validation.d.ts +3 -0
- package/types/package-checks/secret-detection/options.d.ts +33 -0
- package/types/package-checks/secret-detection/records.d.ts +35 -0
- package/types/package-checks/secret-detection/secretlint/adapter.d.ts +28 -0
- package/types/package-tools/admission-policy/define-admission-policy.d.ts +26 -0
- package/types/package-tools/cache/cache-json-by-key.d.ts +53 -0
- package/types/package-tools/finding-presentation/finding-presentation.d.ts +27 -0
- package/types/{finding-waivers → package-tools/finding-waivers}/reconciliation.d.ts +3 -3
- package/types/package-tools/learned-critical-path/critical-path-ranking.d.ts +19 -0
- package/types/package-tools/learned-critical-path/duration-model/bounded-history.d.ts +34 -0
- package/types/package-tools/learned-critical-path/duration-model/prediction.d.ts +32 -0
- package/types/package-tools/learned-critical-path/duration-model/preparation.d.ts +28 -0
- package/types/package-tools/learned-critical-path/duration-model/recording.d.ts +28 -0
- package/types/package-tools/learned-critical-path/duration-model/storage.d.ts +12 -0
- package/types/package-tools/learned-critical-path/selection-layers.d.ts +14 -0
- package/types/package-tools/learned-critical-path/static-decision.d.ts +3 -0
- package/types/package-tools/learned-critical-path/strategy.d.ts +35 -0
- package/types/project-definition/check-tree/authoring.d.ts +13 -14
- package/types/project-definition/check-tree/check-fields-authoring.d.ts +30 -0
- package/types/project-definition/check-tree/collection-authoring.d.ts +2 -0
- package/types/project-definition/check-tree/flag-conditions.d.ts +5 -0
- package/types/project-definition/check-tree/resolution.d.ts +13 -6
- package/types/project-definition/check-tree/scheduling-authoring.d.ts +19 -0
- package/types/project-definition/declarative-snapshot.d.ts +10 -0
- package/types/project-definition/output-defaults.d.ts +7 -0
- package/types/project-definition/output-validation.d.ts +2 -1
- package/types/project-definition/progress-rendering-output.d.ts +41 -0
- package/types/project-definition/project-changes.d.ts +30 -0
- package/types/project-definition/project-definition.d.ts +49 -19
- package/types/project-definition/resource-unit-mapping.d.ts +4 -0
- package/types/project-definition/scheduler-policy.d.ts +497 -0
- package/types/project-run/admission-strategy-provider/custom-strategy-preparation.d.ts +9 -0
- package/types/project-run/admission-strategy-provider/prepared-admission-strategy.d.ts +23 -0
- package/types/project-run/admission-strategy-provider/provider.d.ts +13 -0
- 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/callback.d.ts +5 -1
- package/types/project-run/check-execution/console-capture.d.ts +18 -0
- package/types/project-run/check-execution/dependencies.d.ts +4 -1
- package/types/project-run/check-execution/execution-finalization.d.ts +18 -8
- package/types/project-run/check-execution/execution-settlement.d.ts +18 -7
- package/types/project-run/check-execution/flag-controls.d.ts +27 -0
- package/types/project-run/check-execution/lifecycle.d.ts +24 -0
- package/types/project-run/check-execution/messages.d.ts +2 -0
- package/types/project-run/check-execution/plan.d.ts +2 -3
- package/types/project-run/check-execution/{preflight-result.d.ts → preparation-result.d.ts} +3 -3
- package/types/project-run/check-execution/preparation.d.ts +29 -0
- package/types/project-run/check-execution/ready-check-execution.d.ts +18 -0
- package/types/project-run/check-execution/resolved-checks.d.ts +37 -44
- package/types/project-run/check-execution/resolved-execution-result.d.ts +21 -0
- 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.d.ts → completion/completion.d.ts} +7 -5
- package/types/project-run/{machine-publication.d.ts → completion/machine-publication.d.ts} +3 -3
- package/types/project-run/completion/result-resolver.d.ts +4 -0
- package/types/project-run/controls/contract.d.ts +22 -9
- package/types/project-run/controls/outputs-override-validation.d.ts +2 -1
- package/types/project-run/controls/validation-result.d.ts +12 -4
- package/types/project-run/diagnostic-logging/logger.d.ts +34 -4
- package/types/project-run/diagnostic-logging/observation-rendering.d.ts +7 -0
- package/types/project-run/invocation/candidate.d.ts +12 -0
- package/types/project-run/invocation/candidates.d.ts +8 -0
- package/types/project-run/{invocation-creation.d.ts → invocation/creation.d.ts} +3 -3
- package/types/project-run/invocation/execution.d.ts +5 -0
- package/types/project-run/invocation/paths.d.ts +40 -0
- package/types/project-run/invocation/progress.d.ts +11 -0
- package/types/project-run/invocation/run.d.ts +43 -0
- package/types/project-run/invocation/scheduler.d.ts +16 -0
- package/types/project-run/outputs/configuration.d.ts +3 -0
- package/types/project-run/outputs/status.d.ts +48 -0
- package/types/project-run/progress-rendering/presentation.d.ts +12 -7
- package/types/project-run/progress-rendering/renderer-formatting.d.ts +13 -2
- package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +8 -1
- package/types/project-run/progress-rendering/renderer.d.ts +11 -3
- package/types/project-run/project-context.d.ts +5 -4
- package/types/project-run/result.d.ts +38 -4
- package/types/project-run/run.d.ts +6 -5
- package/types/project-run/task-scheduler/admission-core/compiled-graph-lookup.d.ts +10 -0
- package/types/project-run/task-scheduler/admission-core/compiled-graph.d.ts +31 -0
- package/types/project-run/task-scheduler/admission-core/core.d.ts +57 -0
- package/types/project-run/task-scheduler/admission-core/input.d.ts +4 -0
- package/types/project-run/task-scheduler/admission-core/projection.d.ts +22 -0
- package/types/project-run/task-scheduler/admission-core/selection-index.d.ts +61 -0
- package/types/project-run/task-scheduler/admission-core/selection-query.d.ts +28 -0
- package/types/project-run/task-scheduler/admission-core/selection-seed.d.ts +9 -0
- package/types/project-run/task-scheduler/admission-core/selection-transition.d.ts +4 -0
- package/types/project-run/task-scheduler/admission-core/selection.d.ts +20 -0
- package/types/project-run/task-scheduler/admission-scope-layers.d.ts +8 -0
- package/types/project-run/task-scheduler/admission-selection-policy.d.ts +31 -0
- package/types/project-run/task-scheduler/custom-admission-policy.d.ts +6 -0
- package/types/project-run/task-scheduler/execution-state.d.ts +43 -1
- package/types/project-run/task-scheduler/forced-block-effect-replay.d.ts +9 -0
- package/types/project-run/task-scheduler/graph-validation.d.ts +3 -2
- package/types/project-run/task-scheduler/graph.d.ts +15 -0
- package/types/project-run/task-scheduler/measurement/diagnostics.d.ts +47 -0
- package/types/project-run/task-scheduler/measurement/integrals.d.ts +27 -0
- package/types/project-run/task-scheduler/measurement/policy.d.ts +10 -0
- package/types/project-run/task-scheduler/measurement/summary.d.ts +3 -0
- package/types/project-run/task-scheduler/measurement/timing.d.ts +33 -0
- package/types/project-run/task-scheduler/scheduler-admission-decision.d.ts +13 -1
- package/types/project-run/task-scheduler/scheduler-decision-inspection.d.ts +20 -19
- package/types/project-run/task-scheduler/scheduler-decision-model.d.ts +38 -22
- package/types/project-run/task-scheduler/scheduler-decision.d.ts +4 -1
- package/types/project-run/task-scheduler/scheduler-observation.d.ts +14 -0
- package/types/project-run/task-scheduler/scheduler-task-lifecycle.d.ts +18 -0
- package/types/project-run/task-scheduler/scheduler-terminal-measurement.d.ts +9 -0
- package/dist/esm/finding-waivers/reconciliation.mjs.map +0 -1
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs +0 -17
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs +0 -64
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs +0 -138
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs +0 -35
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs.map +0 -1
- package/dist/esm/package-checks/host-environment/process/command.mjs +0 -13
- package/dist/esm/package-checks/host-environment/process/command.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 +0 -186
- package/dist/esm/project-run/check-execution/preflight.mjs.map +0 -1
- package/dist/esm/project-run/completion.mjs.map +0 -1
- package/dist/esm/project-run/invocation-creation.mjs +0 -111
- package/dist/esm/project-run/invocation-creation.mjs.map +0 -1
- package/dist/esm/project-run/invocation.mjs +0 -195
- package/dist/esm/project-run/invocation.mjs.map +0 -1
- package/dist/esm/project-run/machine-publication.mjs.map +0 -1
- package/dist/esm/project-run/output-configuration.mjs.map +0 -1
- package/dist/esm/project-run/output-status.mjs +0 -43
- package/dist/esm/project-run/output-status.mjs.map +0 -1
- package/src/package-checks/function-metrics/lizard/availability.ts +0 -90
- package/src/package-checks/function-metrics/lizard/csv.ts +0 -20
- package/src/package-checks/function-metrics/lizard/parser.ts +0 -179
- package/src/package-checks/function-metrics/lizard/scanner.ts +0 -62
- package/src/package-checks/host-environment/process/command.ts +0 -21
- package/src/project-run/check-execution/preflight.ts +0 -321
- package/src/project-run/invocation-creation.ts +0 -160
- package/src/project-run/invocation.ts +0 -303
- package/src/project-run/output-status.ts +0 -69
- package/types/package-checks/file-metrics/scc/csv.d.ts +0 -1
- package/types/package-checks/function-metrics/lizard/availability.d.ts +0 -11
- package/types/package-checks/function-metrics/lizard/csv.d.ts +0 -1
- package/types/package-checks/function-metrics/lizard/parser.d.ts +0 -17
- package/types/package-checks/function-metrics/lizard/scanner.d.ts +0 -15
- package/types/package-checks/host-environment/process/command.d.ts +0 -7
- package/types/package-checks/project-files/config-glob.d.ts +0 -5
- package/types/project-run/check-execution/preflight.d.ts +0 -27
- package/types/project-run/invocation.d.ts +0 -34
- package/types/project-run/output-configuration.d.ts +0 -3
- package/types/project-run/output-status.d.ts +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.mjs","sourceRoot":"","sources":["../../../src/project-run/result.ts"],"names":[],"mappings":"AA2FA,MAAM,UAAU,aAAa,CAC3B,sBAA8B,EAC9B,kBAAgD,EAChD,OAA0B,EAC1B,MAA+B,EAC/B,KAAqB;IAErB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,sBAAsB;QACtB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,OAAO;QACP,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC;AACD,SAAS,oBAAoB,CAC3B,MAA+B;IAE/B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oBAAoB;YACvB,OAAO,4BAA4B,CAAC;QACtC,KAAK,mBAAmB;YACtB,OAAO,2BAA2B,CAAC;QACrC,KAAK,mBAAmB;YACtB,OAAO,2BAA2B,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAqB;IAC/C,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAC3C,CAAC;AACD,MAAM,UAAU,QAAQ,CACtB,sBAA8B,EAC9B,kBAAgD,EAChD,OAA0B,EAC1B,IAA0D;IAE1D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,sBAAsB;QACtB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QACnC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,wBAAwB,CACtC,sBAA8B,EAC9B,kBAAgD,EAChD,OAA0B,EAC1B,KAA8B;IAK9B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,sBAAsB;QACtB,kBAAkB;QAClB,OAAO;QACP,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,qBAAqB,CACnC,KAOE;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;QACpD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,WAAW;QAClB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type {\n DefinitionWarning,\n ProjectDefinitionDiagnostic\n} from \"../project-definition/project-definition.ts\";\nimport type { RunControlDiagnostic } from \"./controls/validation-result.ts\";\nimport type { CheckAggregate, RunControls } from \"./controls/contract.ts\";\nimport type { CheckMessageLevel } from \"../check/check.ts\";\nimport type { CoreSnapshot } from \"../check-settlement/facts.ts\";\nimport type { RunOutputStatuses } from \"./output-status.ts\";\nexport type RunDiagnostic = Readonly<{\n readonly code: \"task-graph-invalid\" | \"task-engine-failed\" | \"publication-model-failed\";\n}>;\nexport type CheckDuration = Readonly<{\n readonly checkId: string;\n readonly durationMs: number | null;\n}>;\nexport interface CheckRunMessage {\n readonly checkId: string;\n readonly level: CheckMessageLevel;\n readonly code: string;\n readonly message: string;\n}\nexport interface RunResultFacts {\n readonly aggregate: CheckAggregate | null;\n readonly checkDurations: readonly CheckDuration[];\n readonly checkMessages: readonly CheckRunMessage[];\n readonly snapshot: CoreSnapshot;\n}\n/** 一次 Project Run 的可判别结果;output failure 保留已结算 facts。 */\nexport type RunResult = Readonly<\n | {\n readonly kind: \"configuration\";\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly diagnostic: ProjectDefinitionDiagnostic | RunControlDiagnostic;\n }\n | {\n readonly kind: \"planning\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly diagnostic: RunDiagnostic;\n readonly outputs: RunOutputStatuses;\n }\n | {\n readonly kind: \"cancelled\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n readonly phase: \"pre-work\" | \"planning\";\n }\n | {\n readonly kind: \"cancelled\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n readonly phase: \"execution\";\n readonly checkDurations: readonly CheckDuration[];\n readonly checkMessages: readonly CheckRunMessage[];\n readonly snapshot: CoreSnapshot;\n }\n | ({\n readonly kind: \"completed\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n } & RunResultFacts)\n | {\n readonly kind: \"execution\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly diagnostic: RunDiagnostic;\n readonly outputs: RunOutputStatuses;\n }\n | ({\n readonly kind: \"output\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly diagnostic: Readonly<{\n readonly code:\n | \"machine-publication-failed\"\n | \"progress-rendering-failed\"\n | \"diagnostic-logging-failed\";\n }>;\n readonly outputs: RunOutputStatuses;\n } & RunResultFacts)\n>;\n\n/** Any Run result produced after controls and Definition validation have completed. */\nexport type NonConfigurationRunResult = Exclude<RunResult, { readonly kind: \"configuration\" }>;\n\ntype OutputRunResult = Extract<RunResult, { readonly kind: \"output\" }>;\n\nexport function outputFailure(\n declarativeFingerprint: string,\n definitionWarnings: readonly DefinitionWarning[],\n outputs: RunOutputStatuses,\n output: keyof RunOutputStatuses,\n facts: RunResultFacts\n): OutputRunResult {\n return Object.freeze({\n kind: \"output\",\n declarativeFingerprint,\n definitionWarnings,\n diagnostic: Object.freeze({ code: outputDiagnosticCode(output) }),\n outputs,\n ...facts\n });\n}\nfunction outputDiagnosticCode(\n output: keyof RunOutputStatuses\n): Extract<RunResult, { readonly kind: \"output\" }>[\"diagnostic\"][\"code\"] {\n switch (output) {\n case \"machinePublication\":\n return \"machine-publication-failed\";\n case \"progressRendering\":\n return \"progress-rendering-failed\";\n case \"diagnosticLogging\":\n return \"diagnostic-logging-failed\";\n }\n}\n\nexport function isCancelled(controls: RunControls): boolean {\n return controls.signal?.aborted === true;\n}\nexport function planning(\n declarativeFingerprint: string,\n definitionWarnings: readonly DefinitionWarning[],\n outputs: RunOutputStatuses,\n code: Extract<RunDiagnostic[\"code\"], \"task-graph-invalid\">\n): Extract<NonConfigurationRunResult, { readonly kind: \"planning\" }> {\n return Object.freeze({\n kind: \"planning\",\n declarativeFingerprint,\n definitionWarnings,\n diagnostic: Object.freeze({ code }),\n outputs\n });\n}\nexport function preExecutionCancellation(\n declarativeFingerprint: string,\n definitionWarnings: readonly DefinitionWarning[],\n outputs: RunOutputStatuses,\n phase: \"pre-work\" | \"planning\"\n): Extract<\n NonConfigurationRunResult,\n { readonly kind: \"cancelled\"; readonly phase: \"pre-work\" | \"planning\" }\n> {\n return Object.freeze({\n kind: \"cancelled\",\n declarativeFingerprint,\n definitionWarnings,\n outputs,\n phase\n });\n}\nexport function executionCancellation(\n input: Readonly<{\n readonly checkDurations: readonly CheckDuration[];\n readonly checkMessages: readonly CheckRunMessage[];\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n readonly snapshot: CoreSnapshot;\n }>\n): Extract<NonConfigurationRunResult, { readonly kind: \"cancelled\"; readonly phase: \"execution\" }> {\n return Object.freeze({\n kind: \"cancelled\",\n declarativeFingerprint: input.declarativeFingerprint,\n definitionWarnings: input.definitionWarnings,\n outputs: input.outputs,\n phase: \"execution\",\n checkDurations: input.checkDurations,\n checkMessages: input.checkMessages,\n snapshot: input.snapshot\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"result.mjs","sourceRoot":"","sources":["../../../src/project-run/result.ts"],"names":[],"mappings":"AAuIA,MAAM,UAAU,aAAa,CAC3B,sBAA8B,EAC9B,kBAAgD,EAChD,OAA0B,EAC1B,MAA+B,EAC/B,KAAqB;IAErB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,sBAAsB;QACtB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,OAAO;QACP,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC;AACD,SAAS,oBAAoB,CAC3B,MAA+B;IAE/B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oBAAoB;YACvB,OAAO,4BAA4B,CAAC;QACtC,KAAK,mBAAmB;YACtB,OAAO,2BAA2B,CAAC;QACrC,KAAK,mBAAmB;YACtB,OAAO,2BAA2B,CAAC;QACrC,KAAK,iBAAiB;YACpB,OAAO,mCAAmC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAqB;IAC/C,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAC3C,CAAC;AACD,MAAM,UAAU,QAAQ,CACtB,sBAA8B,EAC9B,kBAAgD,EAChD,OAA0B,EAC1B,IAA0D;IAE1D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,sBAAsB;QACtB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QACnC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,wBAAwB,CACtC,sBAA8B,EAC9B,kBAAgD,EAChD,OAA0B,EAC1B,KAA8B;IAK9B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,sBAAsB;QACtB,kBAAkB;QAClB,OAAO;QACP,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,qBAAqB,CACnC,KAOE;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;QACpD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,WAAW;QAClB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type {\n DefinitionWarning,\n ProjectDefinitionDiagnostic\n} from \"../project-definition/project-definition.ts\";\nimport type { RunControlDiagnostic } from \"./controls/validation-result.ts\";\nimport type { CheckAggregate, RunControls } from \"./controls/contract.ts\";\nimport type { CheckMessageLevel } from \"../check/check.ts\";\nimport type { CoreSnapshot } from \"../check-settlement/facts.ts\";\nimport type { RunOutputStatuses } from \"./outputs/status.ts\";\n\n/** Product 不能形成正常 Run 结果时的稳定 invocation diagnostic。 */\nexport type RunDiagnostic = Readonly<{\n /** 失败的 Run-owned execution 或 planning boundary;它不是任何 Check 的 terminal status。 */\n readonly code:\n | \"admission-policy-failed\"\n | \"admission-strategy-preparation-failed\"\n | \"task-graph-invalid\"\n | \"task-engine-failed\"\n | \"publication-model-failed\";\n}>;\n\n/** 一项 executable Check 的最终 duration readback。 */\nexport type CheckDuration = Readonly<{\n /** 与 snapshot 中 Check facts 相同的 stable Check identity。 */\n readonly checkId: string;\n /** 已测量的 execution duration;未进入 execution 的 Check 为 `null`,不是零时长。 */\n readonly durationMs: number | null;\n}>;\n\n/** Run 在 Check terminal lifecycle 中接受的人读 message。 */\nexport interface CheckRunMessage {\n /** 产生 message 的 stable Check identity。 */\n readonly checkId: string;\n /** author message 或已捕获 console output 的 presentation severity。 */\n readonly level: CheckMessageLevel;\n /** owning Check 或 Product capture 使用的稳定 message code。 */\n readonly code: string;\n /** 人读正文;不能代替 snapshot 中的 terminal outcome。 */\n readonly message: string;\n}\n\n/** 只有已形成 terminal Check facts 的 Run branch 才具备的完整结果 readback。 */\nexport interface RunResultFacts {\n /** 有完整 terminal Check facts 时,由有效 Check 列表形成的 invocation-level conclusion。 */\n readonly aggregate: CheckAggregate;\n /** 按 canonical Check order 的 duration facts;未执行 Check 仍以 `null` 保留。 */\n readonly checkDurations: readonly CheckDuration[];\n /** 已接受的 author 与 console-capture messages,不决定 Check outcome。 */\n readonly checkMessages: readonly CheckRunMessage[];\n /** 已结算的完整 Check 与 supplemental Record facts。 */\n readonly snapshot: CoreSnapshot;\n}\n/** 一次 Project Run 的可判别结果;output failure 保留已结算 facts。 */\nexport type RunResult = Readonly<\n | {\n /** Definition、RunControls 或 aggregation selection 无效;没有执行任何 Check author callback。 */\n readonly kind: \"configuration\";\n /** Definition normalization 时仍可报告、但不单独阻止本 branch 的 warning。 */\n readonly definitionWarnings: readonly DefinitionWarning[];\n /** 指向被拒绝 Definition 或 RunControls value 的 closed diagnostic。 */\n readonly diagnostic: ProjectDefinitionDiagnostic | RunControlDiagnostic;\n }\n | {\n /** 配置有效,但 static Check graph 不能进入 execution planning。 */\n readonly kind: \"planning\";\n /** normalized declarative Definition 的 matching signal;不包含 RunControls 或 outcome。 */\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n /** 这次 planning 失败的 Product diagnostic。 */\n readonly diagnostic: RunDiagnostic;\n /** 配置有效后各 terminal output participant 的独立状态。 */\n readonly outputs: RunOutputStatuses;\n }\n | {\n /** invocation 在 Check work 开始前或 planning 中响应 caller cancellation。 */\n readonly kind: \"cancelled\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n /** 取消发生在尚未形成 terminal Check facts 的阶段。 */\n readonly phase: \"pre-work\" | \"planning\";\n }\n | {\n /** invocation 在至少可能已开始 Check work 的 execution 阶段响应 caller cancellation。 */\n readonly kind: \"cancelled\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n /** 此 branch 总在 terminal Check facts 形成后的 execution cancellation 返回。 */\n readonly phase: \"execution\";\n /** 按 canonical Check order 的 duration facts;未执行 Check 为 `null`。 */\n readonly checkDurations: readonly CheckDuration[];\n /** cancellation 前已接受的 author 与 console-capture messages。 */\n readonly checkMessages: readonly CheckRunMessage[];\n /** cancellation 时已结算的完整 Check 与 supplemental Record facts。 */\n readonly snapshot: CoreSnapshot;\n }\n | ({\n /** 所有 Check 已完成 terminal settlement;不表示每项 Check 都 `passed`。 */\n readonly kind: \"completed\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n } & RunResultFacts)\n | {\n /** Product execution/settlement infrastructure 失败;不把它误表示为 Check `failed`。 */\n readonly kind: \"execution\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n /** 停止正常 execution 的 Product diagnostic;本 branch 不提供 partial snapshot。 */\n readonly diagnostic: RunDiagnostic;\n readonly outputs: RunOutputStatuses;\n }\n | ({\n /** Check facts 已完整结算,但至少一个 terminal output participant 失败。 */\n readonly kind: \"output\";\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n /** 失败的 machine、progress、diagnostic 或 scheduler-measurement output 类别。 */\n readonly diagnostic: Readonly<{\n readonly code:\n | \"machine-publication-failed\"\n | \"progress-rendering-failed\"\n | \"diagnostic-logging-failed\"\n | \"scheduler-terminal-effects-failed\";\n }>;\n readonly outputs: RunOutputStatuses;\n } & RunResultFacts)\n>;\n\n/** Any Run result produced after controls and Definition validation have completed. */\nexport type NonConfigurationRunResult = Exclude<RunResult, { readonly kind: \"configuration\" }>;\n\ntype OutputRunResult = Extract<RunResult, { readonly kind: \"output\" }>;\n\nexport function outputFailure(\n declarativeFingerprint: string,\n definitionWarnings: readonly DefinitionWarning[],\n outputs: RunOutputStatuses,\n output: keyof RunOutputStatuses,\n facts: RunResultFacts\n): OutputRunResult {\n return Object.freeze({\n kind: \"output\",\n declarativeFingerprint,\n definitionWarnings,\n diagnostic: Object.freeze({ code: outputDiagnosticCode(output) }),\n outputs,\n ...facts\n });\n}\nfunction outputDiagnosticCode(\n output: keyof RunOutputStatuses\n): Extract<RunResult, { readonly kind: \"output\" }>[\"diagnostic\"][\"code\"] {\n switch (output) {\n case \"machinePublication\":\n return \"machine-publication-failed\";\n case \"progressRendering\":\n return \"progress-rendering-failed\";\n case \"diagnosticLogging\":\n return \"diagnostic-logging-failed\";\n case \"terminalEffects\":\n return \"scheduler-terminal-effects-failed\";\n }\n}\n\nexport function isCancelled(controls: RunControls): boolean {\n return controls.signal?.aborted === true;\n}\nexport function planning(\n declarativeFingerprint: string,\n definitionWarnings: readonly DefinitionWarning[],\n outputs: RunOutputStatuses,\n code: Extract<RunDiagnostic[\"code\"], \"task-graph-invalid\">\n): Extract<NonConfigurationRunResult, { readonly kind: \"planning\" }> {\n return Object.freeze({\n kind: \"planning\",\n declarativeFingerprint,\n definitionWarnings,\n diagnostic: Object.freeze({ code }),\n outputs\n });\n}\nexport function preExecutionCancellation(\n declarativeFingerprint: string,\n definitionWarnings: readonly DefinitionWarning[],\n outputs: RunOutputStatuses,\n phase: \"pre-work\" | \"planning\"\n): Extract<\n NonConfigurationRunResult,\n { readonly kind: \"cancelled\"; readonly phase: \"pre-work\" | \"planning\" }\n> {\n return Object.freeze({\n kind: \"cancelled\",\n declarativeFingerprint,\n definitionWarnings,\n outputs,\n phase\n });\n}\nexport function executionCancellation(\n input: Readonly<{\n readonly checkDurations: readonly CheckDuration[];\n readonly checkMessages: readonly CheckRunMessage[];\n readonly declarativeFingerprint: string;\n readonly definitionWarnings: readonly DefinitionWarning[];\n readonly outputs: RunOutputStatuses;\n readonly snapshot: CoreSnapshot;\n }>\n): Extract<NonConfigurationRunResult, { readonly kind: \"cancelled\"; readonly phase: \"execution\" }> {\n return Object.freeze({\n kind: \"cancelled\",\n declarativeFingerprint: input.declarativeFingerprint,\n definitionWarnings: input.definitionWarnings,\n outputs: input.outputs,\n phase: \"execution\",\n checkDurations: input.checkDurations,\n checkMessages: input.checkMessages,\n snapshot: input.snapshot\n });\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { validateProjectDefinition } from "../project-definition/project-definition-validation.mjs";
|
|
2
2
|
import { validateRunControls } from "./controls/validation.mjs";
|
|
3
|
-
import { executeValidatedRun } from "./invocation.mjs";
|
|
3
|
+
import { executeValidatedRun } from "./invocation/run.mjs";
|
|
4
4
|
export async function run(definition, controls = {}) {
|
|
5
5
|
const validatedDefinition = validateProjectDefinition(definition);
|
|
6
6
|
if (!validatedDefinition.ok) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.mjs","sourceRoot":"","sources":["../../../src/project-run/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"run.mjs","sourceRoot":"","sources":["../../../src/project-run/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAuB1D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,UAAmB,EAAE,QAAQ,GAAY,EAAE;IACnE,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,eAAe;YACrB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,UAAU,EAAE,mBAAmB,CAAC,KAAK;SACtC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,eAAe;YACrB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,UAAU,EAAE,iBAAiB,CAAC,KAAK;SACpC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,mBAAmB,CACxB,mBAAmB,CAAC,KAAK,EACzB,iBAAiB,CAAC,KAAK,EACvB,mBAAmB,CAAC,QAAQ,CAC7B,CAAC;AACJ,CAAC","sourcesContent":["import type { ProjectDefinition } from \"../project-definition/project-definition.ts\";\nimport type { RunControls } from \"./controls/contract.ts\";\nimport { validateProjectDefinition } from \"../project-definition/project-definition-validation.ts\";\nimport { validateRunControls } from \"./controls/validation.ts\";\nimport { executeValidatedRun } from \"./invocation/run.ts\";\nimport type { RunResult } from \"./result.ts\";\n\nexport type { RunOutputStatus, RunOutputStatuses } from \"./outputs/status.ts\";\nexport type { RunDiagnostic, RunResult } from \"./result.ts\";\n\n/**\n * 在调用方的 Node runtime 中执行一个由项目拥有的 Project Definition。\n *\n * @param definition - Project Definition input;{@link defineConfig} 补齐 defaults,run 在 invocation 前验证。\n * @param controls - 本次 invocation context 与 outputs 使用的闭合控制值。\n * @returns ordinary configuration、planning、execution、cancellation 与 output failures 通过 `RunResult`\n * 返回;调用方先按 `kind` narrow。\n * @remarks Definition validation 关闭 authoring grammar;可选 Check preparation 在其 Task 通过直接 relation\n * readiness 后被 Scheduler admission 时运行,并先于该 Check 自己的 execution callback。它受该 Task 的\n * mutex、capacity、priority 与 cancellation 约束,而不是 invocation-wide barrier。`output` branch 同时提供\n * 完整 final snapshot 与 output failure diagnostic。\n */\nexport async function run(\n definition: ProjectDefinition,\n controls?: RunControls\n): Promise<RunResult>;\nexport async function run(definition: unknown, controls?: unknown): Promise<RunResult>;\nexport async function run(definition: unknown, controls: unknown = {}): Promise<RunResult> {\n const validatedDefinition = validateProjectDefinition(definition);\n if (!validatedDefinition.ok) {\n return Object.freeze({\n kind: \"configuration\",\n definitionWarnings: Object.freeze([]),\n diagnostic: validatedDefinition.error\n });\n }\n const validatedControls = validateRunControls(controls);\n if (!validatedControls.ok) {\n return Object.freeze({\n kind: \"configuration\",\n definitionWarnings: Object.freeze([]),\n diagnostic: validatedControls.error\n });\n }\n\n return executeValidatedRun(\n validatedDefinition.value,\n validatedControls.value,\n validatedDefinition.warnings\n );\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Required accessors for compiler-owned dense slot indexes. */
|
|
2
|
+
export function requiredTaskForCompiled(compiled, taskSlot) {
|
|
3
|
+
const task = compiled.graph.tasks[taskSlot];
|
|
4
|
+
if (task === undefined)
|
|
5
|
+
throw new Error(`admission core task slot is unknown: ${taskSlot}`);
|
|
6
|
+
return task;
|
|
7
|
+
}
|
|
8
|
+
export function requiredTaskMutexSlotsForCompiled(compiled, taskSlot) {
|
|
9
|
+
const slots = compiled.taskMutexSlots[taskSlot];
|
|
10
|
+
if (slots === undefined)
|
|
11
|
+
throw new Error(`admission core task slot is unknown: ${taskSlot}`);
|
|
12
|
+
return slots;
|
|
13
|
+
}
|
|
14
|
+
export function requiredTaskResourceClaimsForCompiled(compiled, taskSlot) {
|
|
15
|
+
const claims = compiled.taskResourceClaims[taskSlot];
|
|
16
|
+
if (claims === undefined)
|
|
17
|
+
throw new Error(`admission core task slot is unknown: ${taskSlot}`);
|
|
18
|
+
return claims;
|
|
19
|
+
}
|
|
20
|
+
export function requiredReverseDependenciesForCompiled(compiled, taskSlot) {
|
|
21
|
+
const dependencies = compiled.relationIndexes.reverseDependencies[taskSlot];
|
|
22
|
+
if (dependencies === undefined)
|
|
23
|
+
throw new Error(`admission core task slot is unknown: ${taskSlot}`);
|
|
24
|
+
return dependencies;
|
|
25
|
+
}
|
|
26
|
+
export function requiredReverseObservationsForCompiled(compiled, taskSlot) {
|
|
27
|
+
const observations = compiled.relationIndexes.reverseObservations[taskSlot];
|
|
28
|
+
if (observations === undefined)
|
|
29
|
+
throw new Error(`admission core task slot is unknown: ${taskSlot}`);
|
|
30
|
+
return observations;
|
|
31
|
+
}
|
|
32
|
+
export function requiredReverseMutexOccurrencesForCompiled(compiled, mutexSlot) {
|
|
33
|
+
const occurrences = compiled.relationIndexes.reverseMutexOccurrences[mutexSlot];
|
|
34
|
+
if (occurrences === undefined) {
|
|
35
|
+
throw new Error(`admission core mutex slot is unknown: ${mutexSlot}`);
|
|
36
|
+
}
|
|
37
|
+
return occurrences;
|
|
38
|
+
}
|
|
39
|
+
export function requiredScopeTerminalSlotsForCompiled(compiled, taskSlot) {
|
|
40
|
+
const scopeSlots = compiled.scopeSlotsByTerminalTaskSlot[taskSlot];
|
|
41
|
+
if (scopeSlots === undefined)
|
|
42
|
+
throw new Error(`admission core task slot is unknown: ${taskSlot}`);
|
|
43
|
+
return scopeSlots;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=compiled-graph-lookup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-graph-lookup.mjs","sourceRoot":"","sources":["../../../../../src/project-run/task-scheduler/admission-core/compiled-graph-lookup.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAKhE,MAAM,UAAU,uBAAuB,CACrC,QAAgC,EAChC,QAAgB;IAEhB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,QAAgC,EAChC,QAAgB;IAEhB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IAC7F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,QAAgC,EAChC,QAAgB;IAEhB,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,QAAgC,EAChC,QAAgB;IAEhB,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,YAAY,KAAK,SAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,QAAgC,EAChC,QAAgB;IAEhB,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,YAAY,KAAK,SAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,0CAA0C,CACxD,QAAgC,EAChC,SAAiB;IAEjB,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAChF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,QAAgC,EAChC,QAAgB;IAEhB,MAAM,UAAU,GAAG,QAAQ,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IAClG,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["/** Required accessors for compiler-owned dense slot indexes. */\n\nimport type { PlannedTask } from \"../graph.ts\";\nimport type { CompiledAdmissionGraph } from \"./compiled-graph.ts\";\n\nexport function requiredTaskForCompiled(\n compiled: CompiledAdmissionGraph,\n taskSlot: number\n): PlannedTask {\n const task = compiled.graph.tasks[taskSlot];\n if (task === undefined) throw new Error(`admission core task slot is unknown: ${taskSlot}`);\n return task;\n}\n\nexport function requiredTaskMutexSlotsForCompiled(\n compiled: CompiledAdmissionGraph,\n taskSlot: number\n): CompiledAdmissionGraph[\"taskMutexSlots\"][number] {\n const slots = compiled.taskMutexSlots[taskSlot];\n if (slots === undefined) throw new Error(`admission core task slot is unknown: ${taskSlot}`);\n return slots;\n}\n\nexport function requiredTaskResourceClaimsForCompiled(\n compiled: CompiledAdmissionGraph,\n taskSlot: number\n): CompiledAdmissionGraph[\"taskResourceClaims\"][number] {\n const claims = compiled.taskResourceClaims[taskSlot];\n if (claims === undefined) throw new Error(`admission core task slot is unknown: ${taskSlot}`);\n return claims;\n}\n\nexport function requiredReverseDependenciesForCompiled(\n compiled: CompiledAdmissionGraph,\n taskSlot: number\n): CompiledAdmissionGraph[\"relationIndexes\"][\"reverseDependencies\"][number] {\n const dependencies = compiled.relationIndexes.reverseDependencies[taskSlot];\n if (dependencies === undefined)\n throw new Error(`admission core task slot is unknown: ${taskSlot}`);\n return dependencies;\n}\n\nexport function requiredReverseObservationsForCompiled(\n compiled: CompiledAdmissionGraph,\n taskSlot: number\n): CompiledAdmissionGraph[\"relationIndexes\"][\"reverseObservations\"][number] {\n const observations = compiled.relationIndexes.reverseObservations[taskSlot];\n if (observations === undefined)\n throw new Error(`admission core task slot is unknown: ${taskSlot}`);\n return observations;\n}\n\nexport function requiredReverseMutexOccurrencesForCompiled(\n compiled: CompiledAdmissionGraph,\n mutexSlot: number\n): CompiledAdmissionGraph[\"relationIndexes\"][\"reverseMutexOccurrences\"][number] {\n const occurrences = compiled.relationIndexes.reverseMutexOccurrences[mutexSlot];\n if (occurrences === undefined) {\n throw new Error(`admission core mutex slot is unknown: ${mutexSlot}`);\n }\n return occurrences;\n}\n\nexport function requiredScopeTerminalSlotsForCompiled(\n compiled: CompiledAdmissionGraph,\n taskSlot: number\n): CompiledAdmissionGraph[\"scopeSlotsByTerminalTaskSlot\"][number] {\n const scopeSlots = compiled.scopeSlotsByTerminalTaskSlot[taskSlot];\n if (scopeSlots === undefined) throw new Error(`admission core task slot is unknown: ${taskSlot}`);\n return scopeSlots;\n}\n"]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/** Compiles a Scheduler-owned normalized graph once for an actual scheduler invocation. */
|
|
2
|
+
export function compilePreparedAdmissionGraph(graph, maxParallel) {
|
|
3
|
+
assertMaxParallel(maxParallel);
|
|
4
|
+
const catalog = compileGraphSlotCatalog(graph);
|
|
5
|
+
const mutexIndexes = compileMutexStaticIndexes(graph);
|
|
6
|
+
const relationIndexes = compileRelationStaticIndexes(graph, catalog.taskSlotsById);
|
|
7
|
+
const resourceIndexes = compileResourceStaticIndexes(graph);
|
|
8
|
+
const scopeIndexes = compileScopeStaticIndexes(graph, catalog);
|
|
9
|
+
const publicTaskOrder = compilePublicTaskOrder(graph, catalog.taskSlotsById);
|
|
10
|
+
return assembleCompiledAdmissionGraph({
|
|
11
|
+
catalog,
|
|
12
|
+
graph,
|
|
13
|
+
maxParallel,
|
|
14
|
+
mutexIndexes,
|
|
15
|
+
publicTaskOrder,
|
|
16
|
+
relationIndexes,
|
|
17
|
+
resourceIndexes,
|
|
18
|
+
scopeIndexes
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function compileResourceStaticIndexes(graph) {
|
|
22
|
+
const resourceSlotById = new Map(graph.resourceCapacities.map(({ resourceId }, slot) => [resourceId, slot]));
|
|
23
|
+
const resourceCapacityBySlot = Object.freeze(graph.resourceCapacities.map(({ units }) => units));
|
|
24
|
+
const taskResourceClaims = Object.freeze(graph.tasks.map((task) => Object.freeze(task.resourceClaims.map(({ resourceId, units }) => {
|
|
25
|
+
const resourceSlot = resourceSlotById.get(resourceId);
|
|
26
|
+
if (resourceSlot === undefined) {
|
|
27
|
+
throw new Error(`admission core resource is unknown: ${resourceId}`);
|
|
28
|
+
}
|
|
29
|
+
return Object.freeze({ resourceSlot, units });
|
|
30
|
+
}))));
|
|
31
|
+
return { resourceCapacityBySlot, resourceSlotById, taskResourceClaims };
|
|
32
|
+
}
|
|
33
|
+
function assertMaxParallel(maxParallel) {
|
|
34
|
+
if (!Number.isSafeInteger(maxParallel) || maxParallel <= 0) {
|
|
35
|
+
throw new TypeError("task engine maxParallel must be a positive safe integer");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Creates declaration-slot catalogs without materializing another prepared graph. */
|
|
39
|
+
function compileGraphSlotCatalog(graph) {
|
|
40
|
+
return {
|
|
41
|
+
taskSlotsById: new Map(graph.tasks.map((task, slot) => [task.id, slot])),
|
|
42
|
+
taskById: new Map(graph.tasks.map((task) => [task.id, task])),
|
|
43
|
+
scopeSlotById: new Map(graph.scopes.map((scope, slot) => [scope.id, slot])),
|
|
44
|
+
scopesById: new Map(graph.scopes.map((scope) => [scope.id, scope]))
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** Allocates mutex slots by first declaration occurrence, then records every task occurrence. */
|
|
48
|
+
function compileMutexStaticIndexes(graph) {
|
|
49
|
+
const mutexSlotById = new Map();
|
|
50
|
+
const taskMutexSlots = graph.tasks.map((task) => mutexSlotsForTask(task, mutexSlotById));
|
|
51
|
+
const reverseMutexOccurrences = Array.from({ length: mutexSlotById.size }, () => []);
|
|
52
|
+
for (const [taskSlot, mutexSlots] of taskMutexSlots.entries()) {
|
|
53
|
+
for (const mutexSlot of mutexSlots)
|
|
54
|
+
reverseMutexOccurrences[mutexSlot]?.push(taskSlot);
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
mutexSlotById,
|
|
58
|
+
reverseMutexOccurrences: freezeSlotLists(reverseMutexOccurrences),
|
|
59
|
+
taskMutexSlots: freezeSlotLists(taskMutexSlots)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function mutexSlotsForTask(task, mutexSlotById) {
|
|
63
|
+
return task.mutex.map((mutexId) => mutexSlotFor(mutexSlotById, mutexId));
|
|
64
|
+
}
|
|
65
|
+
function mutexSlotFor(mutexSlotById, mutexId) {
|
|
66
|
+
const existingSlot = mutexSlotById.get(mutexId);
|
|
67
|
+
if (existingSlot !== undefined)
|
|
68
|
+
return existingSlot;
|
|
69
|
+
const nextSlot = mutexSlotById.size;
|
|
70
|
+
mutexSlotById.set(mutexId, nextSlot);
|
|
71
|
+
return nextSlot;
|
|
72
|
+
}
|
|
73
|
+
/** Reverses relation occurrences while retaining the declared occurrence order for core transitions. */
|
|
74
|
+
function compileRelationStaticIndexes(graph, taskSlotsById) {
|
|
75
|
+
const reverseDependencies = emptyTaskSlotLists(graph);
|
|
76
|
+
const reverseObservations = emptyTaskSlotLists(graph);
|
|
77
|
+
for (const [taskSlot, task] of graph.tasks.entries()) {
|
|
78
|
+
appendReverseRelationOccurrences(task.dependsOn, taskSlot, taskSlotsById, reverseDependencies, "dependency");
|
|
79
|
+
appendReverseRelationOccurrences(task.observes, taskSlot, taskSlotsById, reverseObservations, "observation");
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
reverseDependencies: freezeSlotLists(reverseDependencies),
|
|
83
|
+
reverseObservations: freezeSlotLists(reverseObservations)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function appendReverseRelationOccurrences(sourceTaskIds, targetTaskSlot, taskSlotsById, reverseSlotsBySourceTask, relationName) {
|
|
87
|
+
for (const sourceTaskId of sourceTaskIds) {
|
|
88
|
+
const sourceTaskSlot = taskSlotsById.get(sourceTaskId);
|
|
89
|
+
if (sourceTaskSlot === undefined) {
|
|
90
|
+
throw new Error(`admission core ${relationName} is unknown: ${sourceTaskId}`);
|
|
91
|
+
}
|
|
92
|
+
reverseSlotsBySourceTask[sourceTaskSlot]?.push(targetTaskSlot);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** Associates scope terminals and activation candidates with the existing task slots. */
|
|
96
|
+
function compileScopeStaticIndexes(graph, catalog) {
|
|
97
|
+
const scopeSlotsByTerminalTaskSlot = emptyTaskSlotLists(graph);
|
|
98
|
+
for (const [scopeSlot, scope] of graph.scopes.entries()) {
|
|
99
|
+
const terminalTaskSlot = catalog.taskSlotsById.get(scope.terminalTaskId);
|
|
100
|
+
if (terminalTaskSlot === undefined) {
|
|
101
|
+
throw new Error(`admission core scope terminal is unknown: ${scope.terminalTaskId}`);
|
|
102
|
+
}
|
|
103
|
+
scopeSlotsByTerminalTaskSlot[terminalTaskSlot]?.push(scopeSlot);
|
|
104
|
+
}
|
|
105
|
+
const taskActivatesScope = graph.tasks.map((task) => {
|
|
106
|
+
const scopeSlot = task.scopeId === undefined ? undefined : catalog.scopeSlotById.get(task.scopeId);
|
|
107
|
+
return (scopeSlot !== undefined &&
|
|
108
|
+
graph.scopes[scopeSlot]?.activationTaskIds.includes(task.id) === true);
|
|
109
|
+
});
|
|
110
|
+
const taskScopeSlots = graph.tasks.map((task) => task.scopeId === undefined ? undefined : catalog.scopeSlotById.get(task.scopeId));
|
|
111
|
+
return {
|
|
112
|
+
scopeSlotsByTerminalTaskSlot: freezeSlotLists(scopeSlotsByTerminalTaskSlot),
|
|
113
|
+
taskActivatesScope: Object.freeze(taskActivatesScope),
|
|
114
|
+
taskScopeSlots: Object.freeze(taskScopeSlots)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** Materializes only the lexical catalog projection; declaration slots remain unchanged. */
|
|
118
|
+
function compilePublicTaskOrder(graph, taskSlotsById) {
|
|
119
|
+
const taskIdsInPublicOrder = Object.freeze(graph.tasks.map((task) => task.id).sort(compareText));
|
|
120
|
+
return {
|
|
121
|
+
taskIdsInPublicOrder,
|
|
122
|
+
taskSlotsInPublicOrder: Object.freeze(taskIdsInPublicOrder.map((taskId) => {
|
|
123
|
+
const taskSlot = taskSlotsById.get(taskId);
|
|
124
|
+
if (taskSlot === undefined) {
|
|
125
|
+
throw new Error(`admission core task is missing from public order: ${taskId}`);
|
|
126
|
+
}
|
|
127
|
+
return taskSlot;
|
|
128
|
+
}))
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/** Freezes the one compiled graph object after every static compiler stage has completed. */
|
|
132
|
+
function assembleCompiledAdmissionGraph(parts) {
|
|
133
|
+
const { catalog, graph, maxParallel, mutexIndexes, publicTaskOrder, relationIndexes, resourceIndexes, scopeIndexes } = parts;
|
|
134
|
+
return Object.freeze({
|
|
135
|
+
graph,
|
|
136
|
+
maxParallel,
|
|
137
|
+
mutexSlotById: mutexIndexes.mutexSlotById,
|
|
138
|
+
resourceCapacityBySlot: resourceIndexes.resourceCapacityBySlot,
|
|
139
|
+
resourceSlotById: resourceIndexes.resourceSlotById,
|
|
140
|
+
relationIndexes: Object.freeze({
|
|
141
|
+
reverseDependencies: relationIndexes.reverseDependencies,
|
|
142
|
+
reverseMutexOccurrences: mutexIndexes.reverseMutexOccurrences,
|
|
143
|
+
reverseObservations: relationIndexes.reverseObservations
|
|
144
|
+
}),
|
|
145
|
+
scopesById: catalog.scopesById,
|
|
146
|
+
scopeSlotById: catalog.scopeSlotById,
|
|
147
|
+
scopeSlotsByTerminalTaskSlot: scopeIndexes.scopeSlotsByTerminalTaskSlot,
|
|
148
|
+
taskById: catalog.taskById,
|
|
149
|
+
taskIdsInPublicOrder: publicTaskOrder.taskIdsInPublicOrder,
|
|
150
|
+
taskMutexSlots: mutexIndexes.taskMutexSlots,
|
|
151
|
+
taskResourceClaims: resourceIndexes.taskResourceClaims,
|
|
152
|
+
taskActivatesScope: scopeIndexes.taskActivatesScope,
|
|
153
|
+
taskScopeSlots: scopeIndexes.taskScopeSlots,
|
|
154
|
+
taskSlotsById: catalog.taskSlotsById,
|
|
155
|
+
taskSlotsInPublicOrder: publicTaskOrder.taskSlotsInPublicOrder
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function emptyTaskSlotLists(graph) {
|
|
159
|
+
return graph.tasks.map(() => []);
|
|
160
|
+
}
|
|
161
|
+
function freezeSlotLists(slotLists) {
|
|
162
|
+
return Object.freeze(slotLists.map((slots) => Object.freeze(slots)));
|
|
163
|
+
}
|
|
164
|
+
function compareText(left, right) {
|
|
165
|
+
if (left < right)
|
|
166
|
+
return -1;
|
|
167
|
+
if (left > right)
|
|
168
|
+
return 1;
|
|
169
|
+
return 0;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=compiled-graph.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-graph.mjs","sourceRoot":"","sources":["../../../../../src/project-run/task-scheduler/admission-core/compiled-graph.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PlannedTask, PlannedTaskGraph } from \"../graph.ts\";\n\ninterface RelationStaticIndexes {\n readonly reverseDependencies: readonly (readonly number[])[];\n readonly reverseMutexOccurrences: readonly (readonly number[])[];\n readonly reverseObservations: readonly (readonly number[])[];\n}\n\ninterface ReverseRelationIndexes {\n readonly reverseDependencies: readonly (readonly number[])[];\n readonly reverseObservations: readonly (readonly number[])[];\n}\n\nexport interface CompiledAdmissionGraph {\n readonly graph: PlannedTaskGraph;\n readonly maxParallel: number;\n readonly mutexSlotById: ReadonlyMap<string, number>;\n readonly resourceCapacityBySlot: readonly number[];\n readonly resourceSlotById: ReadonlyMap<string, number>;\n readonly scopesById: ReadonlyMap<string, PlannedTaskGraph[\"scopes\"][number]>;\n readonly scopeSlotById: ReadonlyMap<string, number>;\n readonly scopeSlotsByTerminalTaskSlot: readonly (readonly number[])[];\n readonly taskById: ReadonlyMap<string, PlannedTask>;\n readonly taskMutexSlots: readonly (readonly number[])[];\n readonly taskResourceClaims: readonly (readonly Readonly<{\n readonly resourceSlot: number;\n readonly units: number;\n }>[])[];\n readonly taskActivatesScope: readonly boolean[];\n readonly taskScopeSlots: readonly (number | undefined)[];\n readonly taskSlotsById: ReadonlyMap<string, number>;\n readonly taskIdsInPublicOrder: readonly string[];\n readonly taskSlotsInPublicOrder: readonly number[];\n readonly relationIndexes: RelationStaticIndexes;\n}\n\ninterface GraphSlotCatalog {\n readonly scopesById: ReadonlyMap<string, PlannedTaskGraph[\"scopes\"][number]>;\n readonly scopeSlotById: ReadonlyMap<string, number>;\n readonly taskById: ReadonlyMap<string, PlannedTask>;\n readonly taskSlotsById: ReadonlyMap<string, number>;\n}\n\ninterface MutexStaticIndexes {\n readonly mutexSlotById: ReadonlyMap<string, number>;\n readonly reverseMutexOccurrences: readonly (readonly number[])[];\n readonly taskMutexSlots: readonly (readonly number[])[];\n}\n\ninterface ResourceStaticIndexes {\n readonly resourceCapacityBySlot: readonly number[];\n readonly resourceSlotById: ReadonlyMap<string, number>;\n readonly taskResourceClaims: CompiledAdmissionGraph[\"taskResourceClaims\"];\n}\n\ninterface ScopeStaticIndexes {\n readonly scopeSlotsByTerminalTaskSlot: readonly (readonly number[])[];\n readonly taskActivatesScope: readonly boolean[];\n readonly taskScopeSlots: readonly (number | undefined)[];\n}\n\ninterface PublicTaskOrder {\n readonly taskIdsInPublicOrder: readonly string[];\n readonly taskSlotsInPublicOrder: readonly number[];\n}\n\ninterface CompiledAdmissionGraphParts {\n readonly catalog: GraphSlotCatalog;\n readonly graph: PlannedTaskGraph;\n readonly maxParallel: number;\n readonly mutexIndexes: MutexStaticIndexes;\n readonly publicTaskOrder: PublicTaskOrder;\n readonly relationIndexes: ReverseRelationIndexes;\n readonly resourceIndexes: ResourceStaticIndexes;\n readonly scopeIndexes: ScopeStaticIndexes;\n}\n\n/** Compiles a Scheduler-owned normalized graph once for an actual scheduler invocation. */\nexport function compilePreparedAdmissionGraph(\n graph: PlannedTaskGraph,\n maxParallel: number\n): CompiledAdmissionGraph {\n assertMaxParallel(maxParallel);\n const catalog = compileGraphSlotCatalog(graph);\n const mutexIndexes = compileMutexStaticIndexes(graph);\n const relationIndexes = compileRelationStaticIndexes(graph, catalog.taskSlotsById);\n const resourceIndexes = compileResourceStaticIndexes(graph);\n const scopeIndexes = compileScopeStaticIndexes(graph, catalog);\n const publicTaskOrder = compilePublicTaskOrder(graph, catalog.taskSlotsById);\n\n return assembleCompiledAdmissionGraph({\n catalog,\n graph,\n maxParallel,\n mutexIndexes,\n publicTaskOrder,\n relationIndexes,\n resourceIndexes,\n scopeIndexes\n });\n}\n\nfunction compileResourceStaticIndexes(graph: PlannedTaskGraph): ResourceStaticIndexes {\n const resourceSlotById = new Map(\n graph.resourceCapacities.map(({ resourceId }, slot) => [resourceId, slot] as const)\n );\n const resourceCapacityBySlot = Object.freeze(graph.resourceCapacities.map(({ units }) => units));\n const taskResourceClaims = Object.freeze(\n graph.tasks.map((task) =>\n Object.freeze(\n task.resourceClaims.map(({ resourceId, units }) => {\n const resourceSlot = resourceSlotById.get(resourceId);\n if (resourceSlot === undefined) {\n throw new Error(`admission core resource is unknown: ${resourceId}`);\n }\n return Object.freeze({ resourceSlot, units });\n })\n )\n )\n );\n return { resourceCapacityBySlot, resourceSlotById, taskResourceClaims };\n}\n\nfunction assertMaxParallel(maxParallel: number): void {\n if (!Number.isSafeInteger(maxParallel) || maxParallel <= 0) {\n throw new TypeError(\"task engine maxParallel must be a positive safe integer\");\n }\n}\n\n/** Creates declaration-slot catalogs without materializing another prepared graph. */\nfunction compileGraphSlotCatalog(graph: PlannedTaskGraph): GraphSlotCatalog {\n return {\n taskSlotsById: new Map(graph.tasks.map((task, slot) => [task.id, slot] as const)),\n taskById: new Map(graph.tasks.map((task) => [task.id, task] as const)),\n scopeSlotById: new Map(graph.scopes.map((scope, slot) => [scope.id, slot] as const)),\n scopesById: new Map(graph.scopes.map((scope) => [scope.id, scope] as const))\n };\n}\n\n/** Allocates mutex slots by first declaration occurrence, then records every task occurrence. */\nfunction compileMutexStaticIndexes(graph: PlannedTaskGraph): MutexStaticIndexes {\n const mutexSlotById = new Map<string, number>();\n const taskMutexSlots = graph.tasks.map((task) => mutexSlotsForTask(task, mutexSlotById));\n const reverseMutexOccurrences = Array.from({ length: mutexSlotById.size }, () => [] as number[]);\n\n for (const [taskSlot, mutexSlots] of taskMutexSlots.entries()) {\n for (const mutexSlot of mutexSlots) reverseMutexOccurrences[mutexSlot]?.push(taskSlot);\n }\n\n return {\n mutexSlotById,\n reverseMutexOccurrences: freezeSlotLists(reverseMutexOccurrences),\n taskMutexSlots: freezeSlotLists(taskMutexSlots)\n };\n}\n\nfunction mutexSlotsForTask(task: PlannedTask, mutexSlotById: Map<string, number>): number[] {\n return task.mutex.map((mutexId) => mutexSlotFor(mutexSlotById, mutexId));\n}\n\nfunction mutexSlotFor(mutexSlotById: Map<string, number>, mutexId: string): number {\n const existingSlot = mutexSlotById.get(mutexId);\n if (existingSlot !== undefined) return existingSlot;\n\n const nextSlot = mutexSlotById.size;\n mutexSlotById.set(mutexId, nextSlot);\n return nextSlot;\n}\n\n/** Reverses relation occurrences while retaining the declared occurrence order for core transitions. */\nfunction compileRelationStaticIndexes(\n graph: PlannedTaskGraph,\n taskSlotsById: ReadonlyMap<string, number>\n): ReverseRelationIndexes {\n const reverseDependencies = emptyTaskSlotLists(graph);\n const reverseObservations = emptyTaskSlotLists(graph);\n\n for (const [taskSlot, task] of graph.tasks.entries()) {\n appendReverseRelationOccurrences(\n task.dependsOn,\n taskSlot,\n taskSlotsById,\n reverseDependencies,\n \"dependency\"\n );\n appendReverseRelationOccurrences(\n task.observes,\n taskSlot,\n taskSlotsById,\n reverseObservations,\n \"observation\"\n );\n }\n\n return {\n reverseDependencies: freezeSlotLists(reverseDependencies),\n reverseObservations: freezeSlotLists(reverseObservations)\n };\n}\n\nfunction appendReverseRelationOccurrences(\n sourceTaskIds: readonly string[],\n targetTaskSlot: number,\n taskSlotsById: ReadonlyMap<string, number>,\n reverseSlotsBySourceTask: number[][],\n relationName: \"dependency\" | \"observation\"\n): void {\n for (const sourceTaskId of sourceTaskIds) {\n const sourceTaskSlot = taskSlotsById.get(sourceTaskId);\n if (sourceTaskSlot === undefined) {\n throw new Error(`admission core ${relationName} is unknown: ${sourceTaskId}`);\n }\n reverseSlotsBySourceTask[sourceTaskSlot]?.push(targetTaskSlot);\n }\n}\n\n/** Associates scope terminals and activation candidates with the existing task slots. */\nfunction compileScopeStaticIndexes(\n graph: PlannedTaskGraph,\n catalog: GraphSlotCatalog\n): ScopeStaticIndexes {\n const scopeSlotsByTerminalTaskSlot = emptyTaskSlotLists(graph);\n\n for (const [scopeSlot, scope] of graph.scopes.entries()) {\n const terminalTaskSlot = catalog.taskSlotsById.get(scope.terminalTaskId);\n if (terminalTaskSlot === undefined) {\n throw new Error(`admission core scope terminal is unknown: ${scope.terminalTaskId}`);\n }\n scopeSlotsByTerminalTaskSlot[terminalTaskSlot]?.push(scopeSlot);\n }\n const taskActivatesScope = graph.tasks.map((task) => {\n const scopeSlot =\n task.scopeId === undefined ? undefined : catalog.scopeSlotById.get(task.scopeId);\n return (\n scopeSlot !== undefined &&\n graph.scopes[scopeSlot]?.activationTaskIds.includes(task.id) === true\n );\n });\n const taskScopeSlots = graph.tasks.map((task) =>\n task.scopeId === undefined ? undefined : catalog.scopeSlotById.get(task.scopeId)\n );\n\n return {\n scopeSlotsByTerminalTaskSlot: freezeSlotLists(scopeSlotsByTerminalTaskSlot),\n taskActivatesScope: Object.freeze(taskActivatesScope),\n taskScopeSlots: Object.freeze(taskScopeSlots)\n };\n}\n\n/** Materializes only the lexical catalog projection; declaration slots remain unchanged. */\nfunction compilePublicTaskOrder(\n graph: PlannedTaskGraph,\n taskSlotsById: ReadonlyMap<string, number>\n): PublicTaskOrder {\n const taskIdsInPublicOrder = Object.freeze(graph.tasks.map((task) => task.id).sort(compareText));\n return {\n taskIdsInPublicOrder,\n taskSlotsInPublicOrder: Object.freeze(\n taskIdsInPublicOrder.map((taskId) => {\n const taskSlot = taskSlotsById.get(taskId);\n if (taskSlot === undefined) {\n throw new Error(`admission core task is missing from public order: ${taskId}`);\n }\n return taskSlot;\n })\n )\n };\n}\n\n/** Freezes the one compiled graph object after every static compiler stage has completed. */\nfunction assembleCompiledAdmissionGraph(\n parts: CompiledAdmissionGraphParts\n): CompiledAdmissionGraph {\n const {\n catalog,\n graph,\n maxParallel,\n mutexIndexes,\n publicTaskOrder,\n relationIndexes,\n resourceIndexes,\n scopeIndexes\n } = parts;\n return Object.freeze({\n graph,\n maxParallel,\n mutexSlotById: mutexIndexes.mutexSlotById,\n resourceCapacityBySlot: resourceIndexes.resourceCapacityBySlot,\n resourceSlotById: resourceIndexes.resourceSlotById,\n relationIndexes: Object.freeze({\n reverseDependencies: relationIndexes.reverseDependencies,\n reverseMutexOccurrences: mutexIndexes.reverseMutexOccurrences,\n reverseObservations: relationIndexes.reverseObservations\n }),\n scopesById: catalog.scopesById,\n scopeSlotById: catalog.scopeSlotById,\n scopeSlotsByTerminalTaskSlot: scopeIndexes.scopeSlotsByTerminalTaskSlot,\n taskById: catalog.taskById,\n taskIdsInPublicOrder: publicTaskOrder.taskIdsInPublicOrder,\n taskMutexSlots: mutexIndexes.taskMutexSlots,\n taskResourceClaims: resourceIndexes.taskResourceClaims,\n taskActivatesScope: scopeIndexes.taskActivatesScope,\n taskScopeSlots: scopeIndexes.taskScopeSlots,\n taskSlotsById: catalog.taskSlotsById,\n taskSlotsInPublicOrder: publicTaskOrder.taskSlotsInPublicOrder\n });\n}\n\nfunction emptyTaskSlotLists(graph: PlannedTaskGraph): number[][] {\n return graph.tasks.map(() => []);\n}\n\nfunction freezeSlotLists(slotLists: number[][]): readonly (readonly number[])[] {\n return Object.freeze(slotLists.map((slots) => Object.freeze(slots)));\n}\n\nfunction compareText(left: string, right: string): number {\n if (left < right) return -1;\n if (left > right) return 1;\n return 0;\n}\n"]}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { compileAdmissionGraphInput } from "./input.mjs";
|
|
2
|
+
import { catalogForCore, inspectionForCore, schedulerInspectionForCore } from "./projection.mjs";
|
|
3
|
+
import { admitTaskForCore, createAdmissionCoreFromSchedulerSnapshot, createInitialAdmissionCoreState, nextForcedTaskForCore, settleForcedTaskForCore, settleTaskForCore } from "./selection.mjs";
|
|
4
|
+
import { admissionCandidatesForCore, isCoreComplete, requiredTaskForCore, requiredTaskSlotForCore, scopeToActivateForCore, selectionRejectionForPendingTask, statusForCore } from "./selection-query.mjs";
|
|
5
|
+
export { compilePreparedAdmissionGraph } from "./compiled-graph.mjs";
|
|
6
|
+
export { admissionCandidatesForCore, createAdmissionCoreFromSchedulerSnapshot, createInitialAdmissionCoreState, schedulerInspectionForCore, scopeToActivateForCore };
|
|
7
|
+
/** 在 exact boundary validation 和一次 static compile 后创建 standalone public factory。 */
|
|
8
|
+
export function createAdmissionGraph(input) {
|
|
9
|
+
const compiled = compileAdmissionGraphInput(input);
|
|
10
|
+
return Object.freeze({
|
|
11
|
+
initialState: Object.freeze(function initialState() {
|
|
12
|
+
return admissionStateForCore(createInitialAdmissionCoreState(compiled));
|
|
13
|
+
})
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/** The canonical select action used by both the public opaque handle and the real shell. */
|
|
17
|
+
export function selectAdmissionCore(state, taskId) {
|
|
18
|
+
const validation = validateAdmissionCoreSelection(state, taskId);
|
|
19
|
+
if (!validation.accepted)
|
|
20
|
+
return Object.freeze({ accepted: false, reason: validation.reason });
|
|
21
|
+
const next = admitTaskForCore(state, requiredTaskSlotForCore(state, taskId));
|
|
22
|
+
return Object.freeze({
|
|
23
|
+
accepted: true,
|
|
24
|
+
transition: freezeTransition(next, [Object.freeze({ kind: "admitted", taskId })], [next])
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** The public binary settlement action. Runtime outcome validation intentionally precedes ID checks. */
|
|
28
|
+
export function settleAdmissionCore(state, taskId, outcome) {
|
|
29
|
+
if (outcome !== "satisfied" && outcome !== "unsatisfied") {
|
|
30
|
+
return Object.freeze({
|
|
31
|
+
accepted: false,
|
|
32
|
+
reason: Object.freeze({ kind: "invalid-settlement-outcome" })
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return settleRunningAdmissionCore(state, taskId, outcome === "satisfied" ? "completed" : "prerequisite-unsatisfied");
|
|
36
|
+
}
|
|
37
|
+
/** Applies a real running Task settlement through the same reducer, retaining private exact kinds. */
|
|
38
|
+
export function settleRunningAdmissionCore(state, taskId, settlementKind) {
|
|
39
|
+
if (isCoreComplete(state)) {
|
|
40
|
+
return Object.freeze({ accepted: false, reason: Object.freeze({ kind: "state-complete" }) });
|
|
41
|
+
}
|
|
42
|
+
const taskSlot = state.compiled.taskSlotsById.get(taskId);
|
|
43
|
+
if (taskSlot === undefined) {
|
|
44
|
+
return Object.freeze({ accepted: false, reason: Object.freeze({ kind: "unknown-task" }) });
|
|
45
|
+
}
|
|
46
|
+
const status = statusForCore(state, taskSlot);
|
|
47
|
+
if (status.kind !== "running") {
|
|
48
|
+
return Object.freeze({
|
|
49
|
+
accepted: false,
|
|
50
|
+
reason: Object.freeze({
|
|
51
|
+
kind: "not-running",
|
|
52
|
+
status: status.kind === "pending" ? "pending" : "settled"
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const settled = settleTaskForCore(state, taskSlot, settlementKind);
|
|
57
|
+
const directEffect = Object.freeze({ kind: "settled", settlementKind, taskId });
|
|
58
|
+
return Object.freeze({
|
|
59
|
+
accepted: true,
|
|
60
|
+
transition: reconcileForcedBlocks(settled, [directEffect], [settled])
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/** Private cancellation stays in the reducer/effect owner but has no public AdmissionState action. */
|
|
64
|
+
export function cancelPendingAdmissionCore(state) {
|
|
65
|
+
let next = state;
|
|
66
|
+
const effects = [];
|
|
67
|
+
const effectStates = [];
|
|
68
|
+
for (const [slot, task] of state.compiled.graph.tasks.entries()) {
|
|
69
|
+
if (statusForCore(next, slot).kind !== "pending")
|
|
70
|
+
continue;
|
|
71
|
+
next = settleTaskForCore(next, slot, "cancelled-before-start");
|
|
72
|
+
effects.push(Object.freeze({ kind: "settled", settlementKind: "cancelled-before-start", taskId: task.id }));
|
|
73
|
+
effectStates.push(next);
|
|
74
|
+
}
|
|
75
|
+
return freezeTransition(next, effects, effectStates);
|
|
76
|
+
}
|
|
77
|
+
/** Reconciles forced dependency blocks before the real shell publishes its next decision boundary. */
|
|
78
|
+
export function reconcileAdmissionCore(state) {
|
|
79
|
+
return reconcileForcedBlocks(state, [], []);
|
|
80
|
+
}
|
|
81
|
+
export function validateAdmissionCoreSelection(state, taskId) {
|
|
82
|
+
if (isCoreComplete(state))
|
|
83
|
+
return rejectedValidation(Object.freeze({ kind: "state-complete" }));
|
|
84
|
+
const taskSlot = state.compiled.taskSlotsById.get(taskId);
|
|
85
|
+
if (taskSlot === undefined)
|
|
86
|
+
return rejectedValidation(Object.freeze({ kind: "unknown-task" }));
|
|
87
|
+
const status = statusForCore(state, taskSlot);
|
|
88
|
+
if (status.kind !== "pending") {
|
|
89
|
+
return rejectedValidation(Object.freeze({
|
|
90
|
+
kind: "not-pending",
|
|
91
|
+
status: status.kind === "running" ? "running" : "settled"
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
const reason = selectionRejectionForPendingTask(state, taskSlot);
|
|
95
|
+
return reason === undefined ? ACCEPTED_SELECTION : rejectedValidation(reason);
|
|
96
|
+
}
|
|
97
|
+
/** Constructs the frozen opaque public wrapper. Projection work remains lazy until its getter is read. */
|
|
98
|
+
export function admissionStateForCore(core) {
|
|
99
|
+
const select = Object.freeze(function select(taskId) {
|
|
100
|
+
const selection = selectAdmissionCore(core, taskId);
|
|
101
|
+
return selection.accepted
|
|
102
|
+
? Object.freeze({ accepted: true, state: admissionStateForCore(selection.transition.state) })
|
|
103
|
+
: Object.freeze({ accepted: false, reason: selection.reason });
|
|
104
|
+
});
|
|
105
|
+
const settle = Object.freeze(function settle(taskId, outcome) {
|
|
106
|
+
const settlement = settleAdmissionCore(core, taskId, outcome);
|
|
107
|
+
return settlement.accepted
|
|
108
|
+
? Object.freeze({ accepted: true, state: admissionStateForCore(settlement.transition.state) })
|
|
109
|
+
: Object.freeze({ accepted: false, reason: settlement.reason });
|
|
110
|
+
});
|
|
111
|
+
const validateSelection = Object.freeze(function validateSelection(taskId) {
|
|
112
|
+
return validateAdmissionCoreSelection(core, taskId);
|
|
113
|
+
});
|
|
114
|
+
return Object.freeze({
|
|
115
|
+
get catalog() {
|
|
116
|
+
return catalogForCore(core);
|
|
117
|
+
},
|
|
118
|
+
get inspection() {
|
|
119
|
+
return inspectionForCore(core);
|
|
120
|
+
},
|
|
121
|
+
select,
|
|
122
|
+
settle,
|
|
123
|
+
validateSelection
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
const ACCEPTED_SELECTION = Object.freeze({ accepted: true });
|
|
127
|
+
function reconcileForcedBlocks(state, initialEffects, initialEffectStates) {
|
|
128
|
+
let next = state;
|
|
129
|
+
const effects = [...initialEffects];
|
|
130
|
+
const effectStates = [...initialEffectStates];
|
|
131
|
+
while (true) {
|
|
132
|
+
const forcedTaskSlot = nextForcedTaskForCore(next);
|
|
133
|
+
if (forcedTaskSlot === undefined)
|
|
134
|
+
return freezeTransition(next, effects, effectStates);
|
|
135
|
+
const task = requiredTaskForCore(next, forcedTaskSlot);
|
|
136
|
+
const dependencyIds = task.dependsOn.filter((taskId) => {
|
|
137
|
+
const status = statusForCore(next, requiredTaskSlotForCore(next, taskId));
|
|
138
|
+
return status.kind === "settled" && status.settlementKind !== "completed";
|
|
139
|
+
});
|
|
140
|
+
next = settleForcedTaskForCore(next, forcedTaskSlot);
|
|
141
|
+
effects.push(Object.freeze({
|
|
142
|
+
dependencyIds: Object.freeze(dependencyIds),
|
|
143
|
+
kind: "settled",
|
|
144
|
+
settlementKind: "blocked",
|
|
145
|
+
taskId: task.id
|
|
146
|
+
}));
|
|
147
|
+
effectStates.push(next);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function freezeTransition(state, effects, effectStates) {
|
|
151
|
+
if (effects.length !== effectStates.length) {
|
|
152
|
+
throw new Error("admission core transition effects must have matching immutable post-states");
|
|
153
|
+
}
|
|
154
|
+
return Object.freeze({
|
|
155
|
+
effectStates: Object.freeze([...effectStates]),
|
|
156
|
+
effects: Object.freeze([...effects]),
|
|
157
|
+
state
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function rejectedValidation(reason) {
|
|
161
|
+
return Object.freeze({ accepted: false, reason });
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=core.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.mjs","sourceRoot":"","sources":["../../../../../src/project-run/task-scheduler/admission-core/core.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AdmissionGraph,\n AdmissionGraphInput,\n AdmissionRejectionReason,\n AdmissionSelectionValidation,\n AdmissionSelectionValidationRejectionReason,\n AdmissionSettlementOutcome,\n AdmissionState,\n AdmissionTransitionResult\n} from \"../../../project-definition/scheduler-policy.ts\";\nimport { compileAdmissionGraphInput } from \"./input.ts\";\nimport { catalogForCore, inspectionForCore, schedulerInspectionForCore } from \"./projection.ts\";\nimport {\n admitTaskForCore,\n createAdmissionCoreFromSchedulerSnapshot,\n createInitialAdmissionCoreState,\n nextForcedTaskForCore,\n settleForcedTaskForCore,\n settleTaskForCore,\n type AdmissionCoreState\n} from \"./selection.ts\";\nimport {\n admissionCandidatesForCore,\n isCoreComplete,\n requiredTaskForCore,\n requiredTaskSlotForCore,\n scopeToActivateForCore,\n selectionRejectionForPendingTask,\n statusForCore,\n type AdmissionCoreSelection\n} from \"./selection-query.ts\";\nimport type { SchedulerSettlementKind } from \"../scheduler-decision-model.ts\";\n\nexport { compilePreparedAdmissionGraph } from \"./compiled-graph.ts\";\nexport type { CompiledAdmissionGraph } from \"./compiled-graph.ts\";\nexport {\n admissionCandidatesForCore,\n createAdmissionCoreFromSchedulerSnapshot,\n createInitialAdmissionCoreState,\n schedulerInspectionForCore,\n scopeToActivateForCore\n};\nexport type { AdmissionCoreSelection, AdmissionCoreState };\n\nexport type AdmissionCoreEffect =\n | Readonly<{ readonly kind: \"admitted\"; readonly taskId: string }>\n | Readonly<{\n readonly dependencyIds?: readonly string[];\n readonly kind: \"settled\";\n readonly settlementKind: SchedulerSettlementKind;\n readonly taskId: string;\n }>;\n\nexport interface AdmissionCoreTransition {\n /** The immutable post-state for each corresponding canonical effect. */\n readonly effectStates: readonly AdmissionCoreState[];\n readonly effects: readonly AdmissionCoreEffect[];\n readonly state: AdmissionCoreState;\n}\n\n/** 在 exact boundary validation 和一次 static compile 后创建 standalone public factory。 */\nexport function createAdmissionGraph(input: AdmissionGraphInput): AdmissionGraph {\n const compiled = compileAdmissionGraphInput(input);\n return Object.freeze({\n initialState: Object.freeze(function initialState(this: void): AdmissionState {\n return admissionStateForCore(createInitialAdmissionCoreState(compiled));\n })\n });\n}\n\n/** The canonical select action used by both the public opaque handle and the real shell. */\nexport function selectAdmissionCore(\n state: AdmissionCoreState,\n taskId: string\n): Readonly<\n | { readonly accepted: true; readonly transition: AdmissionCoreTransition }\n | { readonly accepted: false; readonly reason: AdmissionSelectionValidationRejectionReason }\n> {\n const validation = validateAdmissionCoreSelection(state, taskId);\n if (!validation.accepted) return Object.freeze({ accepted: false, reason: validation.reason });\n const next = admitTaskForCore(state, requiredTaskSlotForCore(state, taskId));\n return Object.freeze({\n accepted: true,\n transition: freezeTransition(next, [Object.freeze({ kind: \"admitted\", taskId })], [next])\n });\n}\n\n/** The public binary settlement action. Runtime outcome validation intentionally precedes ID checks. */\nexport function settleAdmissionCore(\n state: AdmissionCoreState,\n taskId: string,\n outcome: unknown\n): Readonly<\n | { readonly accepted: true; readonly transition: AdmissionCoreTransition }\n | { readonly accepted: false; readonly reason: AdmissionRejectionReason }\n> {\n if (outcome !== \"satisfied\" && outcome !== \"unsatisfied\") {\n return Object.freeze({\n accepted: false,\n reason: Object.freeze({ kind: \"invalid-settlement-outcome\" })\n });\n }\n return settleRunningAdmissionCore(\n state,\n taskId,\n outcome === \"satisfied\" ? \"completed\" : \"prerequisite-unsatisfied\"\n );\n}\n\n/** Applies a real running Task settlement through the same reducer, retaining private exact kinds. */\nexport function settleRunningAdmissionCore(\n state: AdmissionCoreState,\n taskId: string,\n settlementKind: Extract<\n SchedulerSettlementKind,\n \"completed\" | \"prerequisite-unsatisfied\" | \"failed\"\n >\n): Readonly<\n | { readonly accepted: true; readonly transition: AdmissionCoreTransition }\n | { readonly accepted: false; readonly reason: AdmissionRejectionReason }\n> {\n if (isCoreComplete(state)) {\n return Object.freeze({ accepted: false, reason: Object.freeze({ kind: \"state-complete\" }) });\n }\n const taskSlot = state.compiled.taskSlotsById.get(taskId);\n if (taskSlot === undefined) {\n return Object.freeze({ accepted: false, reason: Object.freeze({ kind: \"unknown-task\" }) });\n }\n const status = statusForCore(state, taskSlot);\n if (status.kind !== \"running\") {\n return Object.freeze({\n accepted: false,\n reason: Object.freeze({\n kind: \"not-running\",\n status: status.kind === \"pending\" ? \"pending\" : \"settled\"\n })\n });\n }\n const settled = settleTaskForCore(state, taskSlot, settlementKind);\n const directEffect = Object.freeze({ kind: \"settled\" as const, settlementKind, taskId });\n return Object.freeze({\n accepted: true,\n transition: reconcileForcedBlocks(settled, [directEffect], [settled])\n });\n}\n\n/** Private cancellation stays in the reducer/effect owner but has no public AdmissionState action. */\nexport function cancelPendingAdmissionCore(state: AdmissionCoreState): AdmissionCoreTransition {\n let next = state;\n const effects: AdmissionCoreEffect[] = [];\n const effectStates: AdmissionCoreState[] = [];\n for (const [slot, task] of state.compiled.graph.tasks.entries()) {\n if (statusForCore(next, slot).kind !== \"pending\") continue;\n next = settleTaskForCore(next, slot, \"cancelled-before-start\");\n effects.push(\n Object.freeze({ kind: \"settled\", settlementKind: \"cancelled-before-start\", taskId: task.id })\n );\n effectStates.push(next);\n }\n return freezeTransition(next, effects, effectStates);\n}\n\n/** Reconciles forced dependency blocks before the real shell publishes its next decision boundary. */\nexport function reconcileAdmissionCore(state: AdmissionCoreState): AdmissionCoreTransition {\n return reconcileForcedBlocks(state, [], []);\n}\n\nexport function validateAdmissionCoreSelection(\n state: AdmissionCoreState,\n taskId: string\n): AdmissionSelectionValidation {\n if (isCoreComplete(state)) return rejectedValidation(Object.freeze({ kind: \"state-complete\" }));\n const taskSlot = state.compiled.taskSlotsById.get(taskId);\n if (taskSlot === undefined) return rejectedValidation(Object.freeze({ kind: \"unknown-task\" }));\n const status = statusForCore(state, taskSlot);\n if (status.kind !== \"pending\") {\n return rejectedValidation(\n Object.freeze({\n kind: \"not-pending\",\n status: status.kind === \"running\" ? \"running\" : \"settled\"\n })\n );\n }\n const reason = selectionRejectionForPendingTask(state, taskSlot);\n return reason === undefined ? ACCEPTED_SELECTION : rejectedValidation(reason);\n}\n\n/** Constructs the frozen opaque public wrapper. Projection work remains lazy until its getter is read. */\nexport function admissionStateForCore(core: AdmissionCoreState): AdmissionState {\n const select = Object.freeze(function select(\n this: void,\n taskId: string\n ): AdmissionTransitionResult {\n const selection = selectAdmissionCore(core, taskId);\n return selection.accepted\n ? Object.freeze({ accepted: true, state: admissionStateForCore(selection.transition.state) })\n : Object.freeze({ accepted: false, reason: selection.reason });\n });\n const settle = Object.freeze(function settle(\n this: void,\n taskId: string,\n outcome: AdmissionSettlementOutcome\n ): AdmissionTransitionResult {\n const settlement = settleAdmissionCore(core, taskId, outcome);\n return settlement.accepted\n ? Object.freeze({ accepted: true, state: admissionStateForCore(settlement.transition.state) })\n : Object.freeze({ accepted: false, reason: settlement.reason });\n });\n const validateSelection = Object.freeze(function validateSelection(\n this: void,\n taskId: string\n ): AdmissionSelectionValidation {\n return validateAdmissionCoreSelection(core, taskId);\n });\n return Object.freeze({\n get catalog() {\n return catalogForCore(core);\n },\n get inspection() {\n return inspectionForCore(core);\n },\n select,\n settle,\n validateSelection\n } satisfies AdmissionState);\n}\n\nconst ACCEPTED_SELECTION: AdmissionSelectionValidation = Object.freeze({ accepted: true });\n\nfunction reconcileForcedBlocks(\n state: AdmissionCoreState,\n initialEffects: readonly AdmissionCoreEffect[],\n initialEffectStates: readonly AdmissionCoreState[]\n): AdmissionCoreTransition {\n let next = state;\n const effects = [...initialEffects];\n const effectStates = [...initialEffectStates];\n while (true) {\n const forcedTaskSlot = nextForcedTaskForCore(next);\n if (forcedTaskSlot === undefined) return freezeTransition(next, effects, effectStates);\n const task = requiredTaskForCore(next, forcedTaskSlot);\n const dependencyIds = task.dependsOn.filter((taskId) => {\n const status = statusForCore(next, requiredTaskSlotForCore(next, taskId));\n return status.kind === \"settled\" && status.settlementKind !== \"completed\";\n });\n next = settleForcedTaskForCore(next, forcedTaskSlot);\n effects.push(\n Object.freeze({\n dependencyIds: Object.freeze(dependencyIds),\n kind: \"settled\",\n settlementKind: \"blocked\",\n taskId: task.id\n })\n );\n effectStates.push(next);\n }\n}\n\nfunction freezeTransition(\n state: AdmissionCoreState,\n effects: readonly AdmissionCoreEffect[],\n effectStates: readonly AdmissionCoreState[]\n): AdmissionCoreTransition {\n if (effects.length !== effectStates.length) {\n throw new Error(\"admission core transition effects must have matching immutable post-states\");\n }\n return Object.freeze({\n effectStates: Object.freeze([...effectStates]),\n effects: Object.freeze([...effects]),\n state\n });\n}\n\nfunction rejectedValidation(\n reason: AdmissionSelectionValidationRejectionReason\n): AdmissionSelectionValidation {\n return Object.freeze({ accepted: false, reason });\n}\n"]}
|