@zxyycom/vibe-check 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/README.md +36 -5
  2. package/dist/esm/check/check.mjs +4 -0
  3. package/dist/esm/check/check.mjs.map +1 -1
  4. package/dist/esm/check/flag-enablement.mjs +32 -0
  5. package/dist/esm/check/flag-enablement.mjs.map +1 -0
  6. package/dist/esm/check/handoff-provider-identity.mjs +18 -0
  7. package/dist/esm/check/handoff-provider-identity.mjs.map +1 -0
  8. package/dist/esm/check/inherited-collection.mjs +1 -1
  9. package/dist/esm/check/inherited-collection.mjs.map +1 -1
  10. package/dist/esm/check/project-changes.mjs +2 -0
  11. package/dist/esm/check/project-changes.mjs.map +1 -0
  12. package/dist/esm/check/project-context.mjs +2 -0
  13. package/dist/esm/check/project-context.mjs.map +1 -0
  14. package/dist/esm/check-settlement/facts.mjs.map +1 -1
  15. package/dist/esm/check-settlement/record-store.mjs +1 -1
  16. package/dist/esm/check-settlement/record-store.mjs.map +1 -1
  17. package/dist/esm/data-boundary/canonical-data.mjs +36 -7
  18. package/dist/esm/data-boundary/canonical-data.mjs.map +1 -1
  19. package/dist/esm/data-boundary/canonical-json.mjs.map +1 -1
  20. package/dist/esm/data-boundary/closed-values.mjs +28 -4
  21. package/dist/esm/data-boundary/closed-values.mjs.map +1 -1
  22. package/dist/esm/{package-checks/project-files → data-boundary}/config-glob.mjs +3 -3
  23. package/dist/esm/data-boundary/config-glob.mjs.map +1 -0
  24. package/dist/esm/data-boundary/project-path.mjs +19 -0
  25. package/dist/esm/data-boundary/project-path.mjs.map +1 -0
  26. package/dist/esm/index.mjs +12 -5
  27. package/dist/esm/index.mjs.map +1 -1
  28. package/dist/esm/machine-output/v4/atomic-publication.mjs +4 -1
  29. package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -1
  30. package/dist/esm/package-checks/check-authoring.mjs +69 -0
  31. package/dist/esm/package-checks/check-authoring.mjs.map +1 -0
  32. package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs.map +1 -1
  33. package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs.map +1 -1
  34. package/dist/esm/package-checks/command-check/command-check.mjs +55 -0
  35. package/dist/esm/package-checks/command-check/command-check.mjs.map +1 -0
  36. package/dist/esm/package-checks/command-check/contract.mjs +2 -0
  37. package/dist/esm/package-checks/command-check/contract.mjs.map +1 -0
  38. package/dist/esm/package-checks/command-check/execution.mjs +134 -0
  39. package/dist/esm/package-checks/command-check/execution.mjs.map +1 -0
  40. package/dist/esm/package-checks/command-check/options.mjs +284 -0
  41. package/dist/esm/package-checks/command-check/options.mjs.map +1 -0
  42. package/dist/esm/package-checks/command-check/transcript.mjs +26 -0
  43. package/dist/esm/package-checks/command-check/transcript.mjs.map +1 -0
  44. package/dist/esm/package-checks/duplicate-detection/default-check.mjs +9 -11
  45. package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -1
  46. package/dist/esm/package-checks/duplicate-detection/execution.mjs +2 -4
  47. package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -1
  48. package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs +1 -1
  49. package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs.map +1 -1
  50. package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +1 -1
  51. package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -1
  52. package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -1
  53. package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -1
  54. package/dist/esm/package-checks/file-metrics/constructor.mjs +9 -11
  55. package/dist/esm/package-checks/file-metrics/constructor.mjs.map +1 -1
  56. package/dist/esm/package-checks/file-metrics/execution.mjs +2 -4
  57. package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -1
  58. package/dist/esm/package-checks/file-metrics/finding-messages.mjs +1 -1
  59. package/dist/esm/package-checks/file-metrics/finding-messages.mjs.map +1 -1
  60. package/dist/esm/package-checks/file-metrics/options.mjs.map +1 -1
  61. package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -1
  62. package/dist/esm/package-checks/file-metrics/scc/availability.mjs +1 -1
  63. package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -1
  64. package/dist/esm/package-checks/file-metrics/scc/batch-planner.mjs +38 -0
  65. package/dist/esm/package-checks/file-metrics/scc/batch-planner.mjs.map +1 -0
  66. package/dist/esm/package-checks/file-metrics/scc/logical-scan-resources.mjs +35 -0
  67. package/dist/esm/package-checks/file-metrics/scc/logical-scan-resources.mjs.map +1 -0
  68. package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +102 -29
  69. package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -1
  70. package/dist/esm/package-checks/function-metrics/analysis.mjs +7 -2
  71. package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -1
  72. package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs +1 -1
  73. package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs.map +1 -1
  74. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs +1 -3
  75. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs.map +1 -1
  76. package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs.map +1 -1
  77. package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs +3 -2
  78. package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs.map +1 -1
  79. package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs +6 -6
  80. package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs.map +1 -1
  81. package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs +1 -1
  82. package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs.map +1 -1
  83. package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs +9 -3
  84. package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs.map +1 -1
  85. package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs +12 -7
  86. package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs.map +1 -1
  87. package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs +6 -6
  88. package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs.map +1 -1
  89. package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs +5 -3
  90. package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs.map +1 -1
  91. package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs +2 -0
  92. package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs.map +1 -1
  93. package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs +9 -3
  94. package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs.map +1 -1
  95. package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs +9 -3
  96. package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs.map +1 -1
  97. package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs +3 -1
  98. package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs.map +1 -1
  99. package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs +3 -1
  100. package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs.map +1 -1
  101. package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs +12 -5
  102. package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs.map +1 -1
  103. package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs +20 -8
  104. package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs.map +1 -1
  105. package/dist/esm/package-checks/function-metrics/constructor.mjs +9 -11
  106. package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -1
  107. package/dist/esm/package-checks/function-metrics/execution.mjs +2 -4
  108. package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -1
  109. package/dist/esm/package-checks/function-metrics/finding-messages.mjs +1 -1
  110. package/dist/esm/package-checks/function-metrics/finding-messages.mjs.map +1 -1
  111. package/dist/esm/package-checks/function-metrics/measurement.mjs +3 -1
  112. package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -1
  113. package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -1
  114. package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -1
  115. package/dist/esm/package-checks/host-environment/git.mjs +11 -0
  116. package/dist/esm/package-checks/host-environment/git.mjs.map +1 -1
  117. package/dist/esm/package-checks/host-environment/path.mjs +1 -17
  118. package/dist/esm/package-checks/host-environment/path.mjs.map +1 -1
  119. package/dist/esm/package-checks/host-environment/process/contract.mjs.map +1 -1
  120. package/dist/esm/package-checks/host-environment/process/result.mjs +43 -17
  121. package/dist/esm/package-checks/host-environment/process/result.mjs.map +1 -1
  122. package/dist/esm/package-checks/host-environment/process/runner.mjs +7 -5
  123. package/dist/esm/package-checks/host-environment/process/runner.mjs.map +1 -1
  124. package/dist/esm/package-checks/json-schema-validation/default-check.mjs +9 -11
  125. package/dist/esm/package-checks/json-schema-validation/default-check.mjs.map +1 -1
  126. package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -1
  127. package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs +6 -2
  128. package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs.map +1 -1
  129. package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs +11 -3
  130. package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs.map +1 -1
  131. package/dist/esm/package-checks/json-validation/default-check.mjs +9 -11
  132. package/dist/esm/package-checks/json-validation/default-check.mjs.map +1 -1
  133. package/dist/esm/package-checks/json-validation/options.mjs.map +1 -1
  134. package/dist/esm/package-checks/local-cache-options.mjs +28 -0
  135. package/dist/esm/package-checks/local-cache-options.mjs.map +1 -0
  136. package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs +37 -45
  137. package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs.map +1 -1
  138. package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs +3 -1
  139. package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs.map +1 -1
  140. package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +19 -33
  141. package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -1
  142. package/dist/esm/package-checks/markdown-link-validation/execution.mjs +1 -1
  143. package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -1
  144. package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs +1 -1
  145. package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs.map +1 -1
  146. package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs +1 -3
  147. package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs.map +1 -1
  148. package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +3 -18
  149. package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -1
  150. package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +2 -14
  151. package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -1
  152. package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -1
  153. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs +4 -5
  154. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs.map +1 -1
  155. package/dist/esm/package-checks/markdown-lint/adapter.mjs +125 -0
  156. package/dist/esm/package-checks/markdown-lint/adapter.mjs.map +1 -0
  157. package/dist/esm/package-checks/markdown-lint/default-check.mjs +37 -0
  158. package/dist/esm/package-checks/markdown-lint/default-check.mjs.map +1 -0
  159. package/dist/esm/package-checks/markdown-lint/execution.mjs +202 -0
  160. package/dist/esm/package-checks/markdown-lint/execution.mjs.map +1 -0
  161. package/dist/esm/package-checks/markdown-lint/final-data.mjs +16 -0
  162. package/dist/esm/package-checks/markdown-lint/final-data.mjs.map +1 -0
  163. package/dist/esm/package-checks/markdown-lint/finding-messages.mjs +72 -0
  164. package/dist/esm/package-checks/markdown-lint/finding-messages.mjs.map +1 -0
  165. package/dist/esm/package-checks/markdown-lint/finding-waiver-identity.mjs +41 -0
  166. package/dist/esm/package-checks/markdown-lint/finding-waiver-identity.mjs.map +1 -0
  167. package/dist/esm/package-checks/markdown-lint/findings-cache.mjs +110 -0
  168. package/dist/esm/package-checks/markdown-lint/findings-cache.mjs.map +1 -0
  169. package/dist/esm/package-checks/markdown-lint/options-resolution.mjs +74 -0
  170. package/dist/esm/package-checks/markdown-lint/options-resolution.mjs.map +1 -0
  171. package/dist/esm/package-checks/markdown-lint/options-validation.mjs +41 -0
  172. package/dist/esm/package-checks/markdown-lint/options-validation.mjs.map +1 -0
  173. package/dist/esm/package-checks/markdown-lint/options.mjs +13 -0
  174. package/dist/esm/package-checks/markdown-lint/options.mjs.map +1 -0
  175. package/dist/esm/package-checks/markdown-lint/records.mjs +65 -0
  176. package/dist/esm/package-checks/markdown-lint/records.mjs.map +1 -0
  177. package/dist/esm/package-checks/markdown-lint/unavailable-reasons.mjs +14 -0
  178. package/dist/esm/package-checks/markdown-lint/unavailable-reasons.mjs.map +1 -0
  179. package/dist/esm/package-checks/project-files/collection.mjs +23 -19
  180. package/dist/esm/package-checks/project-files/collection.mjs.map +1 -1
  181. package/dist/esm/package-checks/project-files/configuration.mjs +1 -1
  182. package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -1
  183. package/dist/esm/package-checks/project-files/gitlink-revision.mjs +2 -5
  184. package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -1
  185. package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +22 -6
  186. package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -1
  187. package/dist/esm/package-checks/project-files/public-collection.mjs +1 -1
  188. package/dist/esm/package-checks/project-files/public-collection.mjs.map +1 -1
  189. package/dist/esm/package-checks/project-files/revision-paths.mjs +3 -3
  190. package/dist/esm/package-checks/project-files/revision-paths.mjs.map +1 -1
  191. package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +11 -15
  192. package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -1
  193. package/dist/esm/package-checks/secret-detection/default-check.mjs +9 -11
  194. package/dist/esm/package-checks/secret-detection/default-check.mjs.map +1 -1
  195. package/dist/esm/package-checks/secret-detection/execution.mjs +2 -2
  196. package/dist/esm/package-checks/secret-detection/execution.mjs.map +1 -1
  197. package/dist/esm/package-checks/secret-detection/input-preparation.mjs +46 -7
  198. package/dist/esm/package-checks/secret-detection/input-preparation.mjs.map +1 -1
  199. package/dist/esm/package-checks/secret-detection/options.mjs.map +1 -1
  200. package/dist/esm/package-checks/secret-detection/records.mjs.map +1 -1
  201. package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs +3 -4
  202. package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs.map +1 -1
  203. package/dist/esm/package-tools/admission-policy/define-admission-policy.mjs +10 -0
  204. package/dist/esm/package-tools/admission-policy/define-admission-policy.mjs.map +1 -0
  205. package/dist/esm/{cache → package-tools/cache}/cache-json-by-key.mjs +13 -14
  206. package/dist/esm/package-tools/cache/cache-json-by-key.mjs.map +1 -0
  207. package/dist/esm/package-tools/finding-presentation/finding-presentation.mjs.map +1 -0
  208. package/dist/esm/{finding-waivers → package-tools/finding-waivers}/reconciliation.mjs +14 -5
  209. package/dist/esm/package-tools/finding-waivers/reconciliation.mjs.map +1 -0
  210. package/dist/esm/package-tools/learned-critical-path/critical-path-ranking.mjs.map +1 -0
  211. package/dist/esm/package-tools/learned-critical-path/duration-model/bounded-history.mjs.map +1 -0
  212. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.mjs +2 -2
  213. package/dist/esm/package-tools/learned-critical-path/duration-model/prediction.mjs.map +1 -0
  214. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.mjs +4 -2
  215. package/dist/esm/package-tools/learned-critical-path/duration-model/preparation.mjs.map +1 -0
  216. package/dist/esm/package-tools/learned-critical-path/duration-model/recording.mjs.map +1 -0
  217. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.mjs +8 -8
  218. package/dist/esm/package-tools/learned-critical-path/duration-model/storage.mjs.map +1 -0
  219. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.mjs +1 -2
  220. package/dist/esm/package-tools/learned-critical-path/selection-layers.mjs.map +1 -0
  221. package/dist/esm/package-tools/learned-critical-path/static-decision.mjs.map +1 -0
  222. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/strategy.mjs +3 -3
  223. package/dist/esm/package-tools/learned-critical-path/strategy.mjs.map +1 -0
  224. package/dist/esm/project-definition/check-tree/authoring.mjs +8 -5
  225. package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -1
  226. package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs +79 -66
  227. package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs.map +1 -1
  228. package/dist/esm/project-definition/check-tree/flag-conditions.mjs +71 -0
  229. package/dist/esm/project-definition/check-tree/flag-conditions.mjs.map +1 -0
  230. package/dist/esm/project-definition/check-tree/materialization.mjs +13 -8
  231. package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -1
  232. package/dist/esm/project-definition/check-tree/resolution.mjs +7 -6
  233. package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -1
  234. package/dist/esm/project-definition/declarative-snapshot.mjs +2 -1
  235. package/dist/esm/project-definition/declarative-snapshot.mjs.map +1 -1
  236. package/dist/esm/project-definition/project-changes.mjs +70 -0
  237. package/dist/esm/project-definition/project-changes.mjs.map +1 -0
  238. package/dist/esm/project-definition/project-definition-validation.mjs +40 -8
  239. package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -1
  240. package/dist/esm/project-definition/project-definition.mjs +22 -15
  241. package/dist/esm/project-definition/project-definition.mjs.map +1 -1
  242. package/dist/esm/project-definition/scheduler-policy.mjs.map +1 -1
  243. package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs +9 -6
  244. package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs.map +1 -1
  245. package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs.map +1 -1
  246. package/dist/esm/project-run/aggregation.mjs +42 -59
  247. package/dist/esm/project-run/aggregation.mjs.map +1 -1
  248. package/dist/esm/project-run/changes/git.mjs +161 -0
  249. package/dist/esm/project-run/changes/git.mjs.map +1 -0
  250. package/dist/esm/project-run/check-execution/admitted-check-execution.mjs +41 -0
  251. package/dist/esm/project-run/check-execution/admitted-check-execution.mjs.map +1 -0
  252. package/dist/esm/project-run/check-execution/callback.mjs +3 -2
  253. package/dist/esm/project-run/check-execution/callback.mjs.map +1 -1
  254. package/dist/esm/project-run/check-execution/dependencies.mjs +80 -5
  255. package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -1
  256. package/dist/esm/project-run/check-execution/execution-finalization.mjs +5 -3
  257. package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -1
  258. package/dist/esm/project-run/check-execution/execution-settlement.mjs +37 -16
  259. package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -1
  260. package/dist/esm/project-run/check-execution/flag-controls.mjs +15 -7
  261. package/dist/esm/project-run/check-execution/flag-controls.mjs.map +1 -1
  262. package/dist/esm/project-run/check-execution/lifecycle.mjs.map +1 -1
  263. package/dist/esm/project-run/check-execution/{preflight-result.mjs → preparation-result.mjs} +24 -24
  264. package/dist/esm/project-run/check-execution/preparation-result.mjs.map +1 -0
  265. package/dist/esm/project-run/check-execution/{preflight.mjs → preparation.mjs} +52 -52
  266. package/dist/esm/project-run/check-execution/preparation.mjs.map +1 -0
  267. package/dist/esm/project-run/check-execution/ready-check-execution.mjs +71 -0
  268. package/dist/esm/project-run/check-execution/ready-check-execution.mjs.map +1 -0
  269. package/dist/esm/project-run/check-execution/resolved-checks.mjs +27 -164
  270. package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -1
  271. package/dist/esm/project-run/check-execution/scheduled-check-run.mjs +79 -0
  272. package/dist/esm/project-run/check-execution/scheduled-check-run.mjs.map +1 -0
  273. package/dist/esm/project-run/check-execution/terminal-result.mjs +70 -25
  274. package/dist/esm/project-run/check-execution/terminal-result.mjs.map +1 -1
  275. package/dist/esm/project-run/completion/completion.mjs +18 -1
  276. package/dist/esm/project-run/completion/completion.mjs.map +1 -1
  277. package/dist/esm/project-run/controls/contract.mjs.map +1 -1
  278. package/dist/esm/project-run/controls/validation.mjs +7 -54
  279. package/dist/esm/project-run/controls/validation.mjs.map +1 -1
  280. package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs +3 -3
  281. package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs.map +1 -1
  282. package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs +1 -1
  283. package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs.map +1 -1
  284. package/dist/esm/project-run/invocation/candidate.mjs +17 -13
  285. package/dist/esm/project-run/invocation/candidate.mjs.map +1 -1
  286. package/dist/esm/project-run/invocation/candidates.mjs +26 -0
  287. package/dist/esm/project-run/invocation/candidates.mjs.map +1 -0
  288. package/dist/esm/project-run/invocation/creation.mjs +7 -3
  289. package/dist/esm/project-run/invocation/creation.mjs.map +1 -1
  290. package/dist/esm/project-run/invocation/execution.mjs +98 -0
  291. package/dist/esm/project-run/invocation/execution.mjs.map +1 -0
  292. package/dist/esm/project-run/invocation/run.mjs +13 -112
  293. package/dist/esm/project-run/invocation/run.mjs.map +1 -1
  294. package/dist/esm/project-run/invocation/scheduler.mjs +13 -6
  295. package/dist/esm/project-run/invocation/scheduler.mjs.map +1 -1
  296. package/dist/esm/project-run/outputs/status.mjs +12 -12
  297. package/dist/esm/project-run/outputs/status.mjs.map +1 -1
  298. package/dist/esm/project-run/progress-rendering/presentation.mjs +31 -11
  299. package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -1
  300. package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +11 -4
  301. package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -1
  302. package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +20 -6
  303. package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -1
  304. package/dist/esm/project-run/progress-rendering/renderer.mjs +6 -2
  305. package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -1
  306. package/dist/esm/project-run/project-context.mjs +2 -1
  307. package/dist/esm/project-run/project-context.mjs.map +1 -1
  308. package/dist/esm/project-run/result.mjs +2 -2
  309. package/dist/esm/project-run/result.mjs.map +1 -1
  310. package/dist/esm/project-run/run.mjs.map +1 -1
  311. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph-lookup.mjs +45 -0
  312. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph-lookup.mjs.map +1 -0
  313. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs +9 -4
  314. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs.map +1 -1
  315. package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs +3 -5
  316. package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs.map +1 -1
  317. package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs +25 -8
  318. package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs.map +1 -1
  319. package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs +8 -8
  320. package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs.map +1 -1
  321. package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -1
  322. package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs +8 -4
  323. package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs.map +1 -1
  324. package/dist/esm/project-run/task-scheduler/measurement/timing.mjs +12 -6
  325. package/dist/esm/project-run/task-scheduler/measurement/timing.mjs.map +1 -1
  326. package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs +3 -1
  327. package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs.map +1 -1
  328. package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs +17 -17
  329. package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs.map +1 -1
  330. package/dist/esm/project-run/task-scheduler/scheduler.mjs +18 -6
  331. package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -1
  332. package/docs/api-mechanics.md +147 -28
  333. package/docs/changelog.md +145 -2
  334. package/docs/checks/duplicate-detection.md +22 -3
  335. package/docs/checks/file-metrics.md +25 -6
  336. package/docs/checks/function-metrics.md +21 -2
  337. package/docs/checks/json-schema-validation.md +25 -4
  338. package/docs/checks/json-validation.md +24 -5
  339. package/docs/checks/maintenance-reminders.md +30 -6
  340. package/docs/checks/markdown-link-validation.md +24 -4
  341. package/docs/checks/markdown-lint.md +167 -0
  342. package/docs/checks/secret-detection.md +31 -7
  343. package/docs/examples/artifacts/mixed-outcomes/definition.ts +10 -10
  344. package/docs/guides/building-project-gate.md +706 -0
  345. package/docs/guides/callbacks.md +81 -22
  346. package/docs/guides/check-dependencies.md +41 -10
  347. package/docs/guides/collecting-project-files.md +7 -7
  348. package/docs/guides/command-check.md +155 -0
  349. package/docs/guides/data-boundaries.md +140 -0
  350. package/docs/guides/extending-check-lifecycle.md +77 -25
  351. package/docs/guides/finding-waivers.md +43 -1
  352. package/docs/guides/learned-scheduling.md +1 -1
  353. package/docs/guides/run-outputs.md +35 -9
  354. package/docs/guides/scheduling.md +15 -15
  355. package/docs/output.md +6 -5
  356. package/package.json +2 -1
  357. package/src/check/check.ts +332 -92
  358. package/src/check/flag-enablement.ts +76 -0
  359. package/src/check/handoff-provider-identity.ts +34 -0
  360. package/src/check/inherited-collection.ts +1 -1
  361. package/src/check/project-changes.ts +14 -0
  362. package/src/check/project-context.ts +11 -0
  363. package/src/check-settlement/facts.ts +1 -1
  364. package/src/check-settlement/record-store.ts +1 -1
  365. package/src/data-boundary/canonical-data.ts +36 -9
  366. package/src/data-boundary/canonical-json.ts +18 -1
  367. package/src/data-boundary/closed-values.ts +26 -6
  368. package/src/data-boundary/config-glob.ts +17 -0
  369. package/src/data-boundary/project-path.ts +21 -0
  370. package/src/index.ts +72 -11
  371. package/src/machine-output/v4/atomic-publication.ts +3 -1
  372. package/src/package-checks/check-authoring.ts +136 -0
  373. package/src/package-checks/code-quality-findings/finding-waiver-authoring.ts +1 -1
  374. package/src/package-checks/code-quality-findings/finding-waiver-evidence.ts +1 -1
  375. package/src/package-checks/command-check/command-check.ts +152 -0
  376. package/src/package-checks/command-check/contract.ts +168 -0
  377. package/src/package-checks/command-check/execution.ts +211 -0
  378. package/src/package-checks/command-check/options.ts +331 -0
  379. package/src/package-checks/command-check/transcript.ts +35 -0
  380. package/src/package-checks/duplicate-detection/default-check.ts +37 -6
  381. package/src/package-checks/duplicate-detection/execution.ts +2 -4
  382. package/src/package-checks/duplicate-detection/finding-messages.ts +2 -2
  383. package/src/package-checks/duplicate-detection/jscpd/availability.ts +1 -1
  384. package/src/package-checks/duplicate-detection/options.ts +6 -3
  385. package/src/package-checks/duplicate-detection/records.ts +1 -1
  386. package/src/package-checks/file-metrics/constructor.ts +29 -6
  387. package/src/package-checks/file-metrics/execution.ts +2 -4
  388. package/src/package-checks/file-metrics/finding-messages.ts +1 -1
  389. package/src/package-checks/file-metrics/options.ts +6 -3
  390. package/src/package-checks/file-metrics/records.ts +1 -1
  391. package/src/package-checks/file-metrics/scc/availability.ts +1 -1
  392. package/src/package-checks/file-metrics/scc/batch-planner.ts +56 -0
  393. package/src/package-checks/file-metrics/scc/logical-scan-resources.ts +59 -0
  394. package/src/package-checks/file-metrics/scc/scanner.ts +134 -32
  395. package/src/package-checks/function-metrics/analysis.ts +7 -2
  396. package/src/package-checks/function-metrics/analyzer/analysis-model.ts +1 -1
  397. package/src/package-checks/function-metrics/analyzer/extension-output.ts +14 -6
  398. package/src/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.ts +1 -3
  399. package/src/package-checks/function-metrics/analyzer/extensions/protocol.ts +3 -3
  400. package/src/package-checks/function-metrics/analyzer/pipeline.ts +4 -2
  401. package/src/package-checks/function-metrics/analyzer/readers/erlang.ts +6 -6
  402. package/src/package-checks/function-metrics/analyzer/readers/fortran.ts +1 -1
  403. package/src/package-checks/function-metrics/analyzer/readers/objc.ts +9 -3
  404. package/src/package-checks/function-metrics/analyzer/readers/php-states.ts +14 -7
  405. package/src/package-checks/function-metrics/analyzer/readers/plsql.ts +8 -4
  406. package/src/package-checks/function-metrics/analyzer/readers/python.ts +4 -3
  407. package/src/package-checks/function-metrics/analyzer/readers/r.ts +2 -1
  408. package/src/package-checks/function-metrics/analyzer/readers/ttcn.ts +9 -3
  409. package/src/package-checks/function-metrics/analyzer/readers/typescript.ts +9 -3
  410. package/src/package-checks/function-metrics/analyzer/readers/zig.ts +2 -1
  411. package/src/package-checks/function-metrics/analyzer/shared/code-reader.ts +3 -1
  412. package/src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts +10 -5
  413. package/src/package-checks/function-metrics/analyzer-worker-port.ts +20 -6
  414. package/src/package-checks/function-metrics/constructor.ts +30 -7
  415. package/src/package-checks/function-metrics/execution.ts +2 -4
  416. package/src/package-checks/function-metrics/finding-messages.ts +2 -2
  417. package/src/package-checks/function-metrics/measurement.ts +3 -1
  418. package/src/package-checks/function-metrics/options.ts +6 -3
  419. package/src/package-checks/function-metrics/records.ts +1 -1
  420. package/src/package-checks/host-environment/git.ts +11 -0
  421. package/src/package-checks/host-environment/path.ts +1 -20
  422. package/src/package-checks/host-environment/process/contract.ts +17 -9
  423. package/src/package-checks/host-environment/process/result.ts +48 -20
  424. package/src/package-checks/host-environment/process/runner.ts +8 -4
  425. package/src/package-checks/json-schema-validation/default-check.ts +38 -5
  426. package/src/package-checks/json-schema-validation/options.ts +4 -1
  427. package/src/package-checks/json-schema-validation/reference-resolver.ts +6 -2
  428. package/src/package-checks/json-schema-validation/schema-policy.ts +10 -5
  429. package/src/package-checks/json-validation/default-check.ts +27 -6
  430. package/src/package-checks/json-validation/options.ts +4 -1
  431. package/src/package-checks/local-cache-options.ts +40 -0
  432. package/src/package-checks/maintenance-reminders/maintenance-reminders.ts +89 -9
  433. package/src/package-checks/maintenance-reminders/maintenance-support.ts +3 -3
  434. package/src/package-checks/markdown-link-validation/default-check.ts +48 -5
  435. package/src/package-checks/markdown-link-validation/execution.ts +1 -1
  436. package/src/package-checks/markdown-link-validation/finding-messages.ts +1 -1
  437. package/src/package-checks/markdown-link-validation/markdown-parser.ts +1 -5
  438. package/src/package-checks/markdown-link-validation/options-resolution.ts +2 -19
  439. package/src/package-checks/markdown-link-validation/options-validation.ts +2 -17
  440. package/src/package-checks/markdown-link-validation/options.ts +6 -7
  441. package/src/package-checks/markdown-link-validation/parse-facts-cache-payload.ts +4 -5
  442. package/src/package-checks/markdown-lint/adapter.ts +167 -0
  443. package/src/package-checks/markdown-lint/default-check.ts +92 -0
  444. package/src/package-checks/markdown-lint/execution.ts +266 -0
  445. package/src/package-checks/markdown-lint/final-data.ts +33 -0
  446. package/src/package-checks/markdown-lint/finding-messages.ts +87 -0
  447. package/src/package-checks/markdown-lint/finding-waiver-identity.ts +54 -0
  448. package/src/package-checks/markdown-lint/findings-cache.ts +141 -0
  449. package/src/package-checks/markdown-lint/options-resolution.ts +102 -0
  450. package/src/package-checks/markdown-lint/options-validation.ts +50 -0
  451. package/src/package-checks/markdown-lint/options.ts +82 -0
  452. package/src/package-checks/markdown-lint/records.ts +132 -0
  453. package/src/package-checks/markdown-lint/unavailable-reasons.ts +33 -0
  454. package/src/package-checks/project-files/collection.ts +38 -22
  455. package/src/package-checks/project-files/config-glob.ts +1 -17
  456. package/src/package-checks/project-files/configuration.ts +1 -1
  457. package/src/package-checks/project-files/gitlink-revision.ts +4 -6
  458. package/src/package-checks/project-files/gitlink-worktree.ts +35 -7
  459. package/src/package-checks/project-files/public-collection.ts +1 -1
  460. package/src/package-checks/project-files/revision-paths.ts +3 -3
  461. package/src/package-checks/project-files/revision-worktree-files.ts +16 -16
  462. package/src/package-checks/secret-detection/default-check.ts +29 -6
  463. package/src/package-checks/secret-detection/execution.ts +2 -2
  464. package/src/package-checks/secret-detection/input-preparation.ts +64 -7
  465. package/src/package-checks/secret-detection/options.ts +5 -2
  466. package/src/package-checks/secret-detection/records.ts +1 -1
  467. package/src/package-checks/secret-detection/secretlint/adapter.ts +3 -4
  468. package/src/package-tools/admission-policy/define-admission-policy.ts +54 -0
  469. package/src/{cache → package-tools/cache}/cache-json-by-key.ts +13 -17
  470. package/src/{check → package-tools/finding-presentation}/finding-presentation.ts +3 -1
  471. package/src/{finding-waivers → package-tools/finding-waivers}/reconciliation.ts +16 -8
  472. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.ts +5 -2
  473. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.ts +5 -3
  474. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.ts +5 -4
  475. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.ts +9 -10
  476. package/src/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.ts +2 -3
  477. package/src/{learned-critical-path → package-tools/learned-critical-path}/static-decision.ts +1 -1
  478. package/src/{learned-critical-path → package-tools/learned-critical-path}/strategy.ts +7 -4
  479. package/src/project-definition/check-tree/authoring.ts +15 -8
  480. package/src/project-definition/check-tree/check-fields-authoring.ts +106 -91
  481. package/src/project-definition/check-tree/flag-conditions.ts +99 -0
  482. package/src/project-definition/check-tree/materialization.ts +12 -8
  483. package/src/project-definition/check-tree/resolution.ts +13 -15
  484. package/src/project-definition/declarative-snapshot.ts +9 -2
  485. package/src/project-definition/project-changes.ts +112 -0
  486. package/src/project-definition/project-definition-validation.ts +58 -10
  487. package/src/project-definition/project-definition.ts +41 -68
  488. package/src/project-definition/scheduler-policy.ts +6 -3
  489. package/src/project-run/admission-strategy-provider/custom-strategy-preparation.ts +11 -8
  490. package/src/project-run/admission-strategy-provider/prepared-admission-strategy.ts +2 -2
  491. package/src/project-run/aggregation.ts +51 -74
  492. package/src/project-run/changes/git.ts +206 -0
  493. package/src/project-run/check-execution/admitted-check-execution.ts +62 -0
  494. package/src/project-run/check-execution/callback.ts +3 -2
  495. package/src/project-run/check-execution/dependencies.ts +120 -6
  496. package/src/project-run/check-execution/execution-finalization.ts +6 -4
  497. package/src/project-run/check-execution/execution-settlement.ts +88 -29
  498. package/src/project-run/check-execution/flag-controls.ts +22 -8
  499. package/src/project-run/check-execution/lifecycle.ts +14 -6
  500. package/src/project-run/check-execution/{preflight-result.ts → preparation-result.ts} +34 -32
  501. package/src/project-run/check-execution/{preflight.ts → preparation.ts} +92 -84
  502. package/src/project-run/check-execution/ready-check-execution.ts +97 -0
  503. package/src/project-run/check-execution/resolved-checks.ts +40 -219
  504. package/src/project-run/check-execution/scheduled-check-run.ts +119 -0
  505. package/src/project-run/check-execution/terminal-result.ts +108 -29
  506. package/src/project-run/completion/completion.ts +17 -3
  507. package/src/project-run/controls/contract.ts +6 -16
  508. package/src/project-run/controls/validation.ts +7 -60
  509. package/src/project-run/diagnostic-logging/diagnostic-detail-rendering.ts +1 -2
  510. package/src/project-run/diagnostic-logging/observation-rendering.ts +1 -1
  511. package/src/project-run/invocation/candidate.ts +28 -15
  512. package/src/project-run/invocation/candidates.ts +56 -0
  513. package/src/project-run/invocation/creation.ts +7 -3
  514. package/src/project-run/invocation/execution.ts +136 -0
  515. package/src/project-run/invocation/run.ts +15 -179
  516. package/src/project-run/invocation/scheduler.ts +13 -6
  517. package/src/project-run/outputs/status.ts +15 -15
  518. package/src/project-run/progress-rendering/presentation.ts +35 -13
  519. package/src/project-run/progress-rendering/renderer-formatting.ts +20 -7
  520. package/src/project-run/progress-rendering/renderer-lifecycle.ts +23 -6
  521. package/src/project-run/progress-rendering/renderer.ts +10 -4
  522. package/src/project-run/project-context.ts +8 -4
  523. package/src/project-run/result.ts +5 -5
  524. package/src/project-run/run.ts +1 -1
  525. package/src/project-run/task-scheduler/admission-core/compiled-graph-lookup.ts +71 -0
  526. package/src/project-run/task-scheduler/admission-core/compiled-graph.ts +9 -4
  527. package/src/project-run/task-scheduler/admission-core/selection-query.ts +6 -4
  528. package/src/project-run/task-scheduler/admission-core/selection-seed.ts +36 -6
  529. package/src/project-run/task-scheduler/admission-core/selection-transition.ts +17 -8
  530. package/src/project-run/task-scheduler/execution-state.ts +4 -4
  531. package/src/project-run/task-scheduler/measurement/diagnostics.ts +10 -4
  532. package/src/project-run/task-scheduler/measurement/timing.ts +13 -5
  533. package/src/project-run/task-scheduler/scheduler-observation.ts +3 -1
  534. package/src/project-run/task-scheduler/scheduler-terminal-measurement.ts +24 -22
  535. package/src/project-run/task-scheduler/scheduler.ts +23 -6
  536. package/types/check/check.d.ts +178 -67
  537. package/types/check/flag-enablement.d.ts +42 -0
  538. package/types/check/handoff-provider-identity.d.ts +12 -0
  539. package/types/check/project-changes.d.ts +13 -0
  540. package/types/check/project-context.d.ts +10 -0
  541. package/types/check-settlement/facts.d.ts +1 -1
  542. package/types/data-boundary/canonical-data.d.ts +28 -5
  543. package/types/data-boundary/canonical-json.d.ts +18 -1
  544. package/types/data-boundary/closed-values.d.ts +17 -1
  545. package/types/data-boundary/config-glob.d.ts +5 -0
  546. package/types/data-boundary/project-path.d.ts +4 -0
  547. package/types/index.d.ts +27 -11
  548. package/types/package-checks/check-authoring.d.ts +45 -0
  549. package/types/package-checks/code-quality-findings/finding-waiver-authoring.d.ts +1 -1
  550. package/types/package-checks/code-quality-findings/finding-waiver-evidence.d.ts +1 -1
  551. package/types/package-checks/command-check/command-check.d.ts +48 -0
  552. package/types/package-checks/command-check/contract.d.ts +108 -0
  553. package/types/package-checks/command-check/execution.d.ts +7 -0
  554. package/types/package-checks/command-check/options.d.ts +11 -0
  555. package/types/package-checks/command-check/transcript.d.ts +8 -0
  556. package/types/package-checks/duplicate-detection/default-check.d.ts +5 -2
  557. package/types/package-checks/duplicate-detection/finding-messages.d.ts +1 -1
  558. package/types/package-checks/duplicate-detection/options.d.ts +4 -3
  559. package/types/package-checks/duplicate-detection/records.d.ts +1 -1
  560. package/types/package-checks/file-metrics/constructor.d.ts +5 -2
  561. package/types/package-checks/file-metrics/options.d.ts +4 -3
  562. package/types/package-checks/file-metrics/records.d.ts +1 -1
  563. package/types/package-checks/file-metrics/scc/batch-planner.d.ts +18 -0
  564. package/types/package-checks/file-metrics/scc/logical-scan-resources.d.ts +14 -0
  565. package/types/package-checks/function-metrics/analyzer/extensions/protocol.d.ts +3 -3
  566. package/types/package-checks/function-metrics/constructor.d.ts +5 -2
  567. package/types/package-checks/function-metrics/finding-messages.d.ts +1 -1
  568. package/types/package-checks/function-metrics/options.d.ts +4 -3
  569. package/types/package-checks/function-metrics/records.d.ts +1 -1
  570. package/types/package-checks/host-environment/git.d.ts +2 -0
  571. package/types/package-checks/host-environment/path.d.ts +1 -3
  572. package/types/package-checks/host-environment/process/contract.d.ts +17 -9
  573. package/types/package-checks/json-schema-validation/default-check.d.ts +4 -1
  574. package/types/package-checks/json-schema-validation/options.d.ts +2 -1
  575. package/types/package-checks/json-validation/default-check.d.ts +4 -1
  576. package/types/package-checks/json-validation/options.d.ts +2 -1
  577. package/types/package-checks/local-cache-options.d.ts +9 -0
  578. package/types/package-checks/maintenance-reminders/maintenance-reminders.d.ts +11 -2
  579. package/types/package-checks/markdown-link-validation/default-check.d.ts +4 -1
  580. package/types/package-checks/markdown-link-validation/options.d.ts +4 -7
  581. package/types/package-checks/markdown-lint/adapter.d.ts +10 -0
  582. package/types/package-checks/markdown-lint/default-check.d.ts +37 -0
  583. package/types/package-checks/markdown-lint/execution.d.ts +24 -0
  584. package/types/package-checks/markdown-lint/final-data.d.ts +8 -0
  585. package/types/package-checks/markdown-lint/finding-messages.d.ts +6 -0
  586. package/types/package-checks/markdown-lint/finding-waiver-identity.d.ts +3 -0
  587. package/types/package-checks/markdown-lint/findings-cache.d.ts +17 -0
  588. package/types/package-checks/markdown-lint/options-resolution.d.ts +3 -0
  589. package/types/package-checks/markdown-lint/options-validation.d.ts +2 -0
  590. package/types/package-checks/markdown-lint/options.d.ts +65 -0
  591. package/types/package-checks/markdown-lint/records.d.ts +39 -0
  592. package/types/package-checks/markdown-lint/unavailable-reasons.d.ts +3 -0
  593. package/types/package-checks/secret-detection/default-check.d.ts +4 -1
  594. package/types/package-checks/secret-detection/options.d.ts +3 -2
  595. package/types/package-tools/admission-policy/define-admission-policy.d.ts +26 -0
  596. package/types/{check → package-tools/finding-presentation}/finding-presentation.d.ts +3 -1
  597. package/types/{finding-waivers → package-tools/finding-waivers}/reconciliation.d.ts +3 -3
  598. package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.d.ts +2 -2
  599. package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.d.ts +1 -1
  600. package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.d.ts +1 -1
  601. package/types/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.d.ts +1 -1
  602. package/types/{learned-critical-path → package-tools/learned-critical-path}/static-decision.d.ts +1 -1
  603. package/types/{learned-critical-path → package-tools/learned-critical-path}/strategy.d.ts +1 -1
  604. package/types/project-definition/check-tree/authoring.d.ts +5 -3
  605. package/types/project-definition/check-tree/check-fields-authoring.d.ts +12 -7
  606. package/types/project-definition/check-tree/flag-conditions.d.ts +5 -0
  607. package/types/project-definition/check-tree/resolution.d.ts +6 -4
  608. package/types/project-definition/declarative-snapshot.d.ts +4 -1
  609. package/types/project-definition/project-changes.d.ts +30 -0
  610. package/types/project-definition/project-definition.d.ts +15 -30
  611. package/types/project-definition/scheduler-policy.d.ts +3 -3
  612. package/types/project-run/admission-strategy-provider/prepared-admission-strategy.d.ts +2 -2
  613. package/types/project-run/aggregation.d.ts +8 -6
  614. package/types/project-run/changes/git.d.ts +14 -0
  615. package/types/project-run/check-execution/admitted-check-execution.d.ts +18 -0
  616. package/types/project-run/check-execution/dependencies.d.ts +3 -0
  617. package/types/project-run/check-execution/execution-finalization.d.ts +1 -1
  618. package/types/project-run/check-execution/execution-settlement.d.ts +15 -7
  619. package/types/project-run/check-execution/flag-controls.d.ts +1 -1
  620. package/types/project-run/check-execution/lifecycle.d.ts +9 -5
  621. package/types/project-run/check-execution/{preflight-result.d.ts → preparation-result.d.ts} +3 -3
  622. package/types/project-run/check-execution/{preflight.d.ts → preparation.d.ts} +10 -9
  623. package/types/project-run/check-execution/ready-check-execution.d.ts +18 -0
  624. package/types/project-run/check-execution/resolved-checks.d.ts +12 -13
  625. package/types/project-run/check-execution/scheduled-check-run.d.ts +10 -0
  626. package/types/project-run/check-execution/terminal-result.d.ts +13 -1
  627. package/types/project-run/completion/completion.d.ts +3 -1
  628. package/types/project-run/controls/contract.d.ts +6 -16
  629. package/types/project-run/invocation/candidates.d.ts +8 -0
  630. package/types/project-run/invocation/execution.d.ts +5 -0
  631. package/types/project-run/invocation/run.d.ts +2 -2
  632. package/types/project-run/outputs/status.d.ts +4 -4
  633. package/types/project-run/progress-rendering/presentation.d.ts +4 -3
  634. package/types/project-run/progress-rendering/renderer-formatting.d.ts +5 -2
  635. package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +2 -0
  636. package/types/project-run/progress-rendering/renderer.d.ts +4 -2
  637. package/types/project-run/project-context.d.ts +3 -3
  638. package/types/project-run/result.d.ts +3 -3
  639. package/types/project-run/run.d.ts +1 -1
  640. package/types/project-run/task-scheduler/admission-core/compiled-graph-lookup.d.ts +10 -0
  641. package/types/project-run/task-scheduler/execution-state.d.ts +4 -4
  642. package/types/project-run/task-scheduler/measurement/diagnostics.d.ts +2 -2
  643. package/types/project-run/task-scheduler/scheduler-terminal-measurement.d.ts +1 -1
  644. package/dist/esm/cache/cache-json-by-key.mjs.map +0 -1
  645. package/dist/esm/check/finding-presentation.mjs.map +0 -1
  646. package/dist/esm/finding-waivers/reconciliation.mjs.map +0 -1
  647. package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs.map +0 -1
  648. package/dist/esm/learned-critical-path/duration-model/prediction.mjs.map +0 -1
  649. package/dist/esm/learned-critical-path/duration-model/preparation.mjs.map +0 -1
  650. package/dist/esm/learned-critical-path/duration-model/recording.mjs.map +0 -1
  651. package/dist/esm/learned-critical-path/duration-model/storage.mjs.map +0 -1
  652. package/dist/esm/learned-critical-path/selection-layers.mjs.map +0 -1
  653. package/dist/esm/learned-critical-path/static-decision.mjs.map +0 -1
  654. package/dist/esm/learned-critical-path/strategy.mjs.map +0 -1
  655. package/dist/esm/package-checks/project-files/config-glob.mjs.map +0 -1
  656. package/dist/esm/project-run/check-execution/preflight-result.mjs.map +0 -1
  657. package/dist/esm/project-run/check-execution/preflight.mjs.map +0 -1
  658. package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs.map +0 -1
  659. package/types/package-checks/project-files/config-glob.d.ts +0 -5
  660. /package/dist/esm/{check → package-tools/finding-presentation}/finding-presentation.mjs +0 -0
  661. /package/dist/esm/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.mjs +0 -0
  662. /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.mjs +0 -0
  663. /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.mjs +0 -0
  664. /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/static-decision.mjs +0 -0
  665. /package/src/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.ts +0 -0
  666. /package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.ts +0 -0
  667. /package/types/{cache → package-tools/cache}/cache-json-by-key.d.ts +0 -0
  668. /package/types/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.d.ts +0 -0
  669. /package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.d.ts +0 -0
  670. /package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.d.ts +0 -0
@@ -60,7 +60,9 @@ class TTCNStates extends CLikeStates {
60
60
  this.context.restartNewFunction("");
61
61
  } else if (token === "control") {
62
62
  this.context.restartNewFunction("__control__");
63
- this.next((currentToken) => this._state_dec_to_imp(currentToken));
63
+ this.next((currentToken) => {
64
+ this._state_dec_to_imp(currentToken);
65
+ });
64
66
  }
65
67
  }
66
68
 
@@ -68,7 +70,9 @@ class TTCNStates extends CLikeStates {
68
70
  if (isAlphabetic(token)) {
69
71
  this.context.addToFunctionName(token);
70
72
  } else if (token === "(") {
71
- this.next((currentToken) => this._state_dec(currentToken), token);
73
+ this.next((currentToken) => {
74
+ this._state_dec(currentToken);
75
+ }, token);
72
76
  } else if (token === "@deterministic") {
73
77
  this.context.addToLongFunctionName(`${token} `);
74
78
  } else {
@@ -78,7 +82,9 @@ class TTCNStates extends CLikeStates {
78
82
 
79
83
  protected override _state_dec_to_imp(token: string): void {
80
84
  if (token === "{") {
81
- this.next((currentToken) => this._state_imp(currentToken), "{");
85
+ this.next((currentToken) => {
86
+ this._state_imp(currentToken);
87
+ }, "{");
82
88
  } else {
83
89
  this.context.addToLongFunctionName(` ${token}`);
84
90
  }
@@ -567,15 +567,21 @@ class TypeScriptTypeAnnotationStates extends CodeStateMachine {
567
567
  };
568
568
 
569
569
  private readonly _inline_type_annotation = (token: string): void => {
570
- this.readInsideBracketsThen("{}", token, () => this.returnFromState());
570
+ this.readInsideBracketsThen("{}", token, () => {
571
+ this.returnFromState();
572
+ });
571
573
  };
572
574
 
573
575
  private readonly _state_generic_type = (token: string): void => {
574
- this.readInsideBracketsThen("<>", token, () => this.returnFromState());
576
+ this.readInsideBracketsThen("<>", token, () => {
577
+ this.returnFromState();
578
+ });
575
579
  };
576
580
 
577
581
  private readonly _function_type_annotation = (token: string): void => {
578
- this.readInsideBracketsThen("()", token, () => this.returnFromState());
582
+ this.readInsideBracketsThen("()", token, () => {
583
+ this.returnFromState();
584
+ });
579
585
  };
580
586
  }
581
587
 
@@ -30,6 +30,7 @@ export class ZigReader extends CodeReader {
30
30
  class ZigStates extends GoLikeStates {
31
31
  protected static override readonly FUNC_KEYWORD = "fn";
32
32
 
33
- protected override readonly _type_definition = (token: string): void =>
33
+ protected override readonly _type_definition = (token: string): void => {
34
34
  super._state_global(token);
35
+ };
35
36
  }
@@ -110,7 +110,9 @@ export class CodeStateMachine {
110
110
  protected readUntilTokens: string[] = [];
111
111
  protected bracketCount = 0;
112
112
  protected readonly stateMachineConstructor: typeof CodeStateMachine;
113
- protected readonly globalState: StateHandler = (token) => this._state_global(token);
113
+ protected readonly globalState: StateHandler = (token) => {
114
+ this._state_global(token);
115
+ };
114
116
 
115
117
  public constructor(context: FileInfoBuilder) {
116
118
  this.stateMachineConstructor = new.target;
@@ -43,15 +43,20 @@ export function js_style_regex_expression(generator: TokenGenerator): TokenGener
43
43
  if (isRegex) {
44
44
  const regexTokens = [token];
45
45
  index += 1;
46
- while (index < tokens.length && !tokens[index].endsWith("/")) {
47
- regexTokens.push(tokens[index]);
46
+ while (index < tokens.length) {
47
+ const nextToken = tokens[index];
48
+ if (nextToken === undefined || nextToken.endsWith("/")) break;
49
+ regexTokens.push(nextToken);
48
50
  index += 1;
49
51
  }
50
52
  if (index < tokens.length) {
51
- regexTokens.push(tokens[index]);
53
+ const closingToken = tokens[index];
54
+ if (closingToken === undefined) break;
55
+ regexTokens.push(closingToken);
52
56
  index += 1;
53
- if (/^[igm]+$/u.test(tokens[index] ?? "")) {
54
- regexTokens.push(tokens[index]);
57
+ const flags = tokens[index];
58
+ if (flags !== undefined && /^[igm]+$/u.test(flags)) {
59
+ regexTokens.push(flags);
55
60
  index += 1;
56
61
  }
57
62
  }
@@ -28,7 +28,9 @@ export interface FunctionMetricsWorkerPort {
28
28
  export function createNodeFunctionMetricsWorker(): FunctionMetricsWorkerPort {
29
29
  const worker = new Worker(new URL("./analyzer-worker.ts", import.meta.url));
30
30
  return Object.freeze({
31
- postMessage: (value: unknown): void => worker.postMessage(value),
31
+ postMessage: (value: unknown): void => {
32
+ worker.postMessage(value);
33
+ },
32
34
  subscribe: (listeners: Parameters<FunctionMetricsWorkerPort["subscribe"]>[0]): (() => void) => {
33
35
  worker.once("message", listeners.message);
34
36
  worker.once("error", listeners.error);
@@ -69,17 +71,29 @@ export async function analyzeAdmittedSources(
69
71
  worker.terminate();
70
72
  resolveResult(result);
71
73
  };
72
- const cancelled = (): void => finish(Object.freeze({ kind: "cancelled" }));
74
+ const cancelled = (): void => {
75
+ finish(Object.freeze({ kind: "cancelled" }));
76
+ };
73
77
  unsubscribe = worker.subscribe({
74
- error: () => finish(Object.freeze({ kind: "analysis-failed" })),
75
- exit: () => finish(Object.freeze({ kind: "analysis-failed" })),
78
+ error: () => {
79
+ finish(Object.freeze({ kind: "analysis-failed" }));
80
+ },
81
+ exit: () => {
82
+ finish(Object.freeze({ kind: "analysis-failed" }));
83
+ },
76
84
  message: (value: unknown): void => {
77
- if (signal.aborted) return cancelled();
85
+ if (signal.aborted) {
86
+ cancelled();
87
+ return;
88
+ }
78
89
  finish(parseWorkerResponse(value, approvedExactPaths));
79
90
  }
80
91
  });
81
92
  signal.addEventListener("abort", cancelled, { once: true });
82
- if (signal.aborted) return cancelled();
93
+ if (signal.aborted) {
94
+ cancelled();
95
+ return;
96
+ }
83
97
  try {
84
98
  worker.postMessage(request);
85
99
  } catch {
@@ -1,4 +1,8 @@
1
1
  import { defineCheck, type TypedCheckWithOptions } from "../../check/check.ts";
2
+ import {
3
+ resolvePackageCheckAuthoringInput,
4
+ type PackageCheckIdentityInput
5
+ } from "../check-authoring.ts";
2
6
  import { executeFunctionMetrics } from "./execution.ts";
3
7
  import { parseFunctionMetricsData } from "./final-data.ts";
4
8
  import type { FunctionMetricsOptions, ResolvedFunctionMetricsOptions } from "./options.ts";
@@ -14,27 +18,46 @@ const FUNCTION_METRICS_CHECK_DEFINITION = {
14
18
  * 使用可省略的区域、阈值与 finding policy 构造一个完整 function-metrics Check。
15
19
  *
16
20
  * @param options - 省略字段由 package 补齐;显式 files 数组完整替换对应字段的默认数组。
17
- * @returns 固定 `function-metrics` identity、完整冻结 options、preflight 与 execution。
21
+ * @returns 固定 `function-metrics` identity、完整冻结 options、preparation 与 execution。
18
22
  * @throws {TypeError} input 含未知字段、空 area、非法 finding policy/waiver 或非法 limit 时抛出。
19
23
  */
20
24
  export function functionMetrics(
21
- options: FunctionMetricsOptions = {}
25
+ options?: FunctionMetricsOptions<"function-metrics">
22
26
  ): TypedCheckWithOptions<
23
27
  "function-metrics",
24
28
  ResolvedFunctionMetricsOptions,
25
29
  typeof parseFunctionMetricsData
26
- > {
27
- const resolvedOptions = resolveFunctionMetricsOptions(options);
30
+ >;
31
+ export function functionMetrics<const Id extends string>(
32
+ options: FunctionMetricsOptions<Id> & PackageCheckIdentityInput<Id>
33
+ ): TypedCheckWithOptions<Id, ResolvedFunctionMetricsOptions, typeof parseFunctionMetricsData>;
34
+ export function functionMetrics(
35
+ options: FunctionMetricsOptions
36
+ ): TypedCheckWithOptions<string, ResolvedFunctionMetricsOptions, typeof parseFunctionMetricsData>;
37
+ export function functionMetrics(
38
+ options: FunctionMetricsOptions = {}
39
+ ): TypedCheckWithOptions<string, ResolvedFunctionMetricsOptions, typeof parseFunctionMetricsData> {
40
+ const input = resolvePackageCheckAuthoringInput(
41
+ options,
42
+ ["codeAreas", "findingPolicy", "findingWaivers"],
43
+ FUNCTION_METRICS_CHECK_DEFINITION
44
+ );
45
+ if (input === undefined) {
46
+ throw new TypeError(
47
+ "functionMetrics options must use the documented closed policy: a non-empty area map, recognized finding policies and waivers, and positive safe-integer limits"
48
+ );
49
+ }
50
+ const resolvedOptions = resolveFunctionMetricsOptions(input.domainOptions);
28
51
  if (resolvedOptions === undefined) {
29
52
  throw new TypeError(
30
53
  "functionMetrics options must use the documented closed policy: a non-empty area map, recognized finding policies and waivers, and positive safe-integer limits"
31
54
  );
32
55
  }
33
56
  return defineCheck({
34
- ...FUNCTION_METRICS_CHECK_DEFINITION,
35
- execution: executeFunctionMetrics,
57
+ ...input.definition,
58
+ execute: executeFunctionMetrics,
36
59
  parseData: parseFunctionMetricsData,
37
- preflight: (preparedOptions) =>
60
+ prepare: (preparedOptions) =>
38
61
  validResolvedFunctionMetricsOptions(preparedOptions)
39
62
  ? { status: "success", preparedOptions }
40
63
  : {
@@ -2,7 +2,7 @@ import type { CheckExecutionContext, CheckMessage, CheckResult } from "../../che
2
2
  import {
3
3
  reconcileFindingWaivers,
4
4
  type FindingWaiverReconciliation
5
- } from "../../finding-waivers/reconciliation.ts";
5
+ } from "../../package-tools/finding-waivers/reconciliation.ts";
6
6
  import { collectProjectFileSets, requireProjectFileSet } from "../project-files/collection.ts";
7
7
  import { partitionProjectFilesByEligibility } from "../project-files/input-eligibility.ts";
8
8
  import { settleFindings } from "../code-quality-findings/policy.ts";
@@ -10,7 +10,7 @@ import {
10
10
  reportFindingWaiverAudits,
11
11
  reportReconciledCodeQualityFindingRecords
12
12
  } from "../code-quality-findings/finding-waiver-evidence.ts";
13
- import { appendCheckMessages } from "../../check/finding-presentation.ts";
13
+ import { appendCheckMessages } from "../../package-tools/finding-presentation/finding-presentation.ts";
14
14
  import { functionFindingMessages, functionWaiverMessages } from "./finding-messages.ts";
15
15
  import { analyzeFunctionMetrics } from "./analysis.ts";
16
16
  import {
@@ -276,8 +276,6 @@ function directMeasurementFailure(
276
276
  case "source-unavailable":
277
277
  return unavailable("source-unavailable");
278
278
  }
279
- const exhaustiveMeasurement: never = measurement;
280
- return exhaustiveMeasurement;
281
279
  }
282
280
 
283
281
  function unavailable(
@@ -1,9 +1,9 @@
1
1
  import type { CheckMessage } from "../../check/check.ts";
2
- import { presentCheckFindings } from "../../check/finding-presentation.ts";
2
+ import { presentCheckFindings } from "../../package-tools/finding-presentation/finding-presentation.ts";
3
3
  import type {
4
4
  FindingWaiverAudit,
5
5
  FindingWaiverReconciliation
6
- } from "../../finding-waivers/reconciliation.ts";
6
+ } from "../../package-tools/finding-waivers/reconciliation.ts";
7
7
  import {
8
8
  functionMetricsWaiverIdentity,
9
9
  type FunctionInputRejectedCandidate,
@@ -130,7 +130,9 @@ async function readBoundedSource(
130
130
  }
131
131
 
132
132
  function yieldAdmissionToTimer(): Promise<void> {
133
- return new Promise<void>((resolveYield) => setTimeout(resolveYield, 0));
133
+ return new Promise<void>((resolveYield) => {
134
+ setTimeout(resolveYield, 0);
135
+ });
134
136
  }
135
137
 
136
138
  /**
@@ -1,9 +1,10 @@
1
+ import type { PackageCheckAuthoringOptions } from "../check-authoring.ts";
1
2
  import type {
2
3
  ProjectFileSelection,
3
4
  ProjectFileSelectionOptions
4
5
  } from "../project-files/configuration.ts";
5
6
  import type { FindingPolicy } from "../code-quality-findings/policy.ts";
6
- import type { FindingWaiver } from "../../finding-waivers/reconciliation.ts";
7
+ import type { FindingWaiver } from "../../package-tools/finding-waivers/reconciliation.ts";
7
8
 
8
9
  /** `functionMetrics` 构造函数可省略的文件选择策略。 */
9
10
  export type FunctionMetricsFileOptions = ProjectFileSelectionOptions;
@@ -65,7 +66,9 @@ export interface FunctionMetricsFindingIdentity {
65
66
  export type FunctionMetricsFindingWaiver = FindingWaiver<FunctionMetricsFindingIdentity>;
66
67
 
67
68
  /** `functionMetrics(options?)` 接受并补齐默认值的公开策略。 */
68
- export interface FunctionMetricsOptions {
69
+ export interface FunctionMetricsOptions<
70
+ Id extends string = string
71
+ > extends PackageCheckAuthoringOptions<Id> {
69
72
  /** 省略时建立默认 `project` 区域;显式映射必须非空,且每个区域必须声明 `files`。 */
70
73
  readonly codeAreas?: Readonly<Record<string, FunctionMetricsCodeAreaOptions>>;
71
74
  /** 省略时为 `non-blocking`;区域可局部覆盖。 */
@@ -74,7 +77,7 @@ export interface FunctionMetricsOptions {
74
77
  readonly findingWaivers?: readonly FunctionMetricsFindingWaiver[];
75
78
  }
76
79
 
77
- /** 构造函数生成并由 Check preflight/execution 消费的完整 options。 */
80
+ /** 构造函数生成并由 Check preparation/execution 消费的完整 options。 */
78
81
  export interface ResolvedFunctionMetricsOptions {
79
82
  readonly codeAreas: Readonly<Record<string, ResolvedFunctionMetricsCodeAreaOptions>>;
80
83
  readonly findingWaivers: readonly FunctionMetricsFindingWaiver[];
@@ -3,7 +3,7 @@ import {
3
3
  type FunctionMetricAnalysis,
4
4
  type FunctionMetricInstance
5
5
  } from "./analysis.ts";
6
- import type { MaterializedFindingWaiver } from "../../finding-waivers/reconciliation.ts";
6
+ import type { MaterializedFindingWaiver } from "../../package-tools/finding-waivers/reconciliation.ts";
7
7
  import { isBlockingFinding } from "../code-quality-findings/policy.ts";
8
8
  import {
9
9
  buildHashedFindingWaiverAuditRecord,
@@ -17,6 +17,17 @@ export function runGit(options: RunGitOptions): ProcessResult {
17
17
  return runProcessSync({ command: "git", ...options });
18
18
  }
19
19
 
20
+ /** Renders the actionable failure evidence shared by Git operation boundaries. */
21
+ export function gitFailureDetail(result: ProcessResult): string {
22
+ const stderr = result.stderr.trim();
23
+ if (stderr.length > 0) return stderr;
24
+ const processErrorMessage = result.error?.message;
25
+ if (processErrorMessage !== undefined && processErrorMessage.length > 0) {
26
+ return processErrorMessage;
27
+ }
28
+ return result.signal === null ? `exit status ${result.status}` : `signal ${result.signal}`;
29
+ }
30
+
20
31
  export function gitHeadSha(cwd: string): string | null {
21
32
  const result = runGit({ args: ["rev-parse", "HEAD"], cwd });
22
33
  if (processFailed(result)) return null;
@@ -1,20 +1 @@
1
- export function toSlashPath(filePath: string): string {
2
- return filePath.replace(/\\/g, "/");
3
- }
4
-
5
- /** 判断值是否已是跨平台可稳定发布的 project-root-relative slash path。 */
6
- export function isNormalizedProjectRelativePath(value: unknown): value is string {
7
- if (
8
- typeof value !== "string" ||
9
- value.length === 0 ||
10
- value.startsWith("/") ||
11
- value.includes("\\") ||
12
- value.includes("\u0000") ||
13
- /^[A-Za-z]:/u.test(value)
14
- ) {
15
- return false;
16
- }
17
- return value
18
- .split("/")
19
- .every((segment) => segment.length > 0 && segment !== "." && segment !== "..");
20
- }
1
+ export { isNormalizedProjectRelativePath, toSlashPath } from "../../data-boundary/project-path.ts";
@@ -12,9 +12,12 @@ export interface ProcessFailure extends Error {
12
12
 
13
13
  export type ProcessResult = {
14
14
  readonly error?: Error;
15
+ readonly isCanceled?: true;
16
+ readonly isMaxBuffer?: true;
15
17
  readonly signal: NodeJS.Signals | null;
16
18
  readonly status: number | null;
17
19
  readonly stderr: string;
20
+ readonly timedOut?: true;
18
21
  readonly stdout: string;
19
22
  };
20
23
 
@@ -32,8 +35,11 @@ export type RunProcessSyncOptions = {
32
35
 
33
36
  export type RunProcessOptions = {
34
37
  readonly args?: readonly string[];
38
+ readonly cancelSignal?: AbortSignal;
35
39
  readonly command: string;
36
40
  readonly cwd?: string | URL;
41
+ /** `false` uses only the supplied `env`; omission preserves Execa's inherited default. */
42
+ readonly extendEnv?: boolean;
37
43
  readonly env?: NodeJS.ProcessEnv;
38
44
  readonly label?: string;
39
45
  readonly maxBuffer?: number;
@@ -42,15 +48,17 @@ export type RunProcessOptions = {
42
48
  };
43
49
 
44
50
  export type ExecaResultLike = {
45
- readonly code?: string;
46
- readonly exitCode?: number;
47
- readonly failed?: boolean;
48
- readonly isMaxBuffer?: boolean;
49
- readonly message?: string;
50
- readonly originalMessage?: string;
51
- readonly shortMessage?: string;
52
- readonly signal?: NodeJS.Signals;
51
+ /** Execa's imported result types permit explicitly present `undefined` values. */
52
+ readonly code?: string | undefined;
53
+ readonly exitCode?: number | undefined;
54
+ readonly failed?: boolean | undefined;
55
+ readonly isCanceled?: boolean | undefined;
56
+ readonly isMaxBuffer?: boolean | undefined;
57
+ readonly message?: string | undefined;
58
+ readonly originalMessage?: string | undefined;
59
+ readonly shortMessage?: string | undefined;
60
+ readonly signal?: NodeJS.Signals | undefined;
53
61
  readonly stderr?: unknown;
54
62
  readonly stdout?: unknown;
55
- readonly timedOut?: boolean;
63
+ readonly timedOut?: boolean | undefined;
56
64
  };
@@ -1,11 +1,16 @@
1
1
  import type { ExecaResultLike, ProcessResult } from "./contract.ts";
2
2
 
3
3
  export function toProcessResult(result: ExecaResultLike, label: string): ProcessResult {
4
+ const cause = processCause(result);
5
+ const error = processErrorFor(result, label, cause);
4
6
  return {
5
- error: processErrorFor(result, label),
7
+ ...(error === undefined ? {} : { error }),
8
+ ...(cause === "cancellation" ? { isCanceled: true as const } : {}),
9
+ ...(cause === "max-buffer" ? { isMaxBuffer: true as const } : {}),
6
10
  signal: result.signal ?? null,
7
11
  status: result.exitCode ?? null,
8
12
  stderr: outputString(result.stderr),
13
+ ...(cause === "timeout" ? { timedOut: true as const } : {}),
9
14
  stdout: outputString(result.stdout)
10
15
  };
11
16
  }
@@ -14,26 +19,49 @@ function outputString(output: unknown): string {
14
19
  return typeof output === "string" ? output : "";
15
20
  }
16
21
 
17
- function processErrorFor(result: ExecaResultLike, label = "process"): Error | undefined {
18
- if (!isExecutionError(result)) {
19
- return undefined;
20
- }
21
-
22
- const message =
23
- result.originalMessage ?? result.shortMessage ?? result.message ?? `${label} failed`;
24
- const error: NodeJS.ErrnoException = new Error(message);
25
- if (result.code) {
26
- error.code = result.code;
27
- }
22
+ type ProcessCause =
23
+ | "cancellation"
24
+ | "exit"
25
+ | "max-buffer"
26
+ | "signal"
27
+ | "startup-failure"
28
+ | "timeout";
29
+
30
+ function processCause(result: ExecaResultLike): ProcessCause {
31
+ if (typeof result.exitCode === "number" && result.exitCode !== 0) return "exit";
32
+ if (result.isCanceled === true) return "cancellation";
33
+ if (result.timedOut === true) return "timeout";
34
+ if (result.isMaxBuffer === true) return "max-buffer";
35
+ if (result.signal !== undefined) return "signal";
36
+ if (result.exitCode === 0) return "exit";
37
+ return "startup-failure";
38
+ }
39
+
40
+ function processErrorFor(
41
+ result: ExecaResultLike,
42
+ label: string,
43
+ cause: ProcessCause
44
+ ): Error | undefined {
45
+ if (!requiresProcessError(cause, result)) return undefined;
46
+
47
+ const error: NodeJS.ErrnoException = new Error(processErrorMessage(result, label));
48
+ const code = processErrorCode(result);
49
+ if (code !== undefined) error.code = code;
28
50
  return error;
29
51
  }
30
52
 
31
- function isExecutionError(result: ExecaResultLike): boolean {
32
- if (!result.failed) {
33
- return false;
34
- }
35
- if (typeof result.exitCode === "number") {
36
- return false;
37
- }
38
- return Boolean(result.code || result.timedOut || result.isMaxBuffer || result.signal);
53
+ function requiresProcessError(cause: ProcessCause, result: ExecaResultLike): boolean {
54
+ return cause !== "exit" && result.failed === true;
55
+ }
56
+
57
+ function processErrorMessage(result: ExecaResultLike, label: string): string {
58
+ if (result.originalMessage !== undefined) return result.originalMessage;
59
+ if (result.shortMessage !== undefined) return result.shortMessage;
60
+ if (result.message !== undefined) return result.message;
61
+ return `${label} failed`;
62
+ }
63
+
64
+ function processErrorCode(result: ExecaResultLike): string | undefined {
65
+ if (result.code === undefined || result.code.length === 0) return undefined;
66
+ return result.code;
39
67
  }
@@ -14,7 +14,7 @@ export function runProcessSync(options: RunProcessSyncOptions): ProcessResult {
14
14
  const result = execaSync(command, args, {
15
15
  ...processOptions,
16
16
  encoding: processOptions.encoding ?? "utf8",
17
- env: plainTextProcessEnv({ env: processOptions.env }),
17
+ env: plainTextProcessEnv(processOptions.env === undefined ? {} : { env: processOptions.env }),
18
18
  maxBuffer: processOptions.maxBuffer ?? DEFAULT_PROCESS_MAX_BUFFER_BYTES,
19
19
  reject: false,
20
20
  stripFinalNewline: false,
@@ -26,9 +26,11 @@ export function runProcessSync(options: RunProcessSyncOptions): ProcessResult {
26
26
  export function runProcess(options: RunProcessOptions): Promise<ProcessResult> {
27
27
  const {
28
28
  args = [],
29
+ cancelSignal,
29
30
  command,
30
31
  cwd,
31
32
  env,
33
+ extendEnv,
32
34
  label = command,
33
35
  maxBuffer = DEFAULT_PROCESS_MAX_BUFFER_BYTES,
34
36
  timeout,
@@ -36,12 +38,14 @@ export function runProcess(options: RunProcessOptions): Promise<ProcessResult> {
36
38
  } = options;
37
39
 
38
40
  return execa(command, args, {
39
- cwd,
40
- env: plainTextProcessEnv({ env }),
41
+ ...(cancelSignal === undefined ? {} : { cancelSignal }),
42
+ ...(cwd === undefined ? {} : { cwd }),
43
+ ...(extendEnv === undefined ? {} : { extendEnv }),
44
+ env: plainTextProcessEnv(env === undefined ? {} : { env }),
41
45
  maxBuffer,
42
46
  reject: false,
43
47
  stripFinalNewline: false,
44
- timeout,
48
+ ...(timeout === undefined ? {} : { timeout }),
45
49
  windowsHide
46
50
  }).then((result) => toProcessResult(result, label));
47
51
  }
@@ -1,4 +1,8 @@
1
1
  import { defineCheck, type TypedCheckWithOptions } from "../../check/check.ts";
2
+ import {
3
+ resolvePackageCheckAuthoringInput,
4
+ type PackageCheckIdentityInput
5
+ } from "../check-authoring.ts";
2
6
  import {
3
7
  JSON_SCHEMA_VALIDATION_CHECK_DEFINITION,
4
8
  executeJsonSchemaValidation
@@ -19,21 +23,50 @@ import { validJsonSchemaValidationOptions } from "./options-validation.ts";
19
23
  * @throws {TypeError} input 不符合 closed authoring policy、identity 或 binding 不变量时抛出。
20
24
  */
21
25
  export function jsonSchemaValidation(
22
- options: JsonSchemaValidationOptions = {}
26
+ options?: JsonSchemaValidationOptions<"json-schema-validation">
23
27
  ): TypedCheckWithOptions<
24
28
  "json-schema-validation",
25
29
  ResolvedJsonSchemaValidationOptions,
26
30
  typeof parseJsonSchemaValidationData
31
+ >;
32
+ export function jsonSchemaValidation<const Id extends string>(
33
+ options: JsonSchemaValidationOptions<Id> & PackageCheckIdentityInput<Id>
34
+ ): TypedCheckWithOptions<
35
+ Id,
36
+ ResolvedJsonSchemaValidationOptions,
37
+ typeof parseJsonSchemaValidationData
38
+ >;
39
+ export function jsonSchemaValidation(
40
+ options: JsonSchemaValidationOptions
41
+ ): TypedCheckWithOptions<
42
+ string,
43
+ ResolvedJsonSchemaValidationOptions,
44
+ typeof parseJsonSchemaValidationData
45
+ >;
46
+ export function jsonSchemaValidation(
47
+ options: JsonSchemaValidationOptions = {}
48
+ ): TypedCheckWithOptions<
49
+ string,
50
+ ResolvedJsonSchemaValidationOptions,
51
+ typeof parseJsonSchemaValidationData
27
52
  > {
28
- const resolvedOptions = resolveJsonSchemaValidationOptions(options);
53
+ const input = resolvePackageCheckAuthoringInput(
54
+ options,
55
+ ["files", "maximumBytes", "schemaIdentity", "referenceResolution", "schemas", "bindings"],
56
+ JSON_SCHEMA_VALIDATION_CHECK_DEFINITION
57
+ );
58
+ if (input === undefined) {
59
+ throw new TypeError("jsonSchemaValidation options must match the documented closed policy");
60
+ }
61
+ const resolvedOptions = resolveJsonSchemaValidationOptions(input.domainOptions);
29
62
  if (resolvedOptions === undefined) {
30
63
  throw new TypeError("jsonSchemaValidation options must match the documented closed policy");
31
64
  }
32
65
  return defineCheck({
33
- ...JSON_SCHEMA_VALIDATION_CHECK_DEFINITION,
34
- execution: executeJsonSchemaValidation,
66
+ ...input.definition,
67
+ execute: executeJsonSchemaValidation,
35
68
  parseData: parseJsonSchemaValidationData,
36
- preflight: (preparedOptions) =>
69
+ prepare: (preparedOptions) =>
37
70
  validJsonSchemaValidationOptions(preparedOptions)
38
71
  ? { status: "success", preparedOptions }
39
72
  : {
@@ -1,3 +1,4 @@
1
+ import type { PackageCheckAuthoringOptions } from "../check-authoring.ts";
1
2
  import type {
2
3
  ProjectFileSelection,
3
4
  ProjectFileSelectionOptions
@@ -63,7 +64,9 @@ export interface JsonSchemaInstanceBinding {
63
64
  }
64
65
 
65
66
  /** `jsonSchemaValidation(options?)` 接受的可省略 authoring policy。 */
66
- export interface JsonSchemaValidationOptions {
67
+ export interface JsonSchemaValidationOptions<
68
+ Id extends string = string
69
+ > extends PackageCheckAuthoringOptions<Id> {
67
70
  /** schema/instance declarations 必须属于的 repository-file selection。 */
68
71
  readonly files?: ProjectFileSelectionOptions;
69
72
  /** 每个 local schema/instance document 允许的最大 raw byte 数;省略时为 1 MiB。 */
@@ -68,9 +68,13 @@ export class ControlledReferenceResolver {
68
68
  throw new ReferenceResolutionFailure("unapproved-reference");
69
69
  if (this.#resolverInput.signal.aborted) throw new ReferenceTransportFailure();
70
70
  const controller = new AbortController();
71
- const abortForCaller = (): void => controller.abort();
71
+ const abortForCaller = (): void => {
72
+ controller.abort();
73
+ };
72
74
  this.#resolverInput.signal.addEventListener("abort", abortForCaller, { once: true });
73
- const timeout = setTimeout(() => controller.abort(), REMOTE_TIMEOUT_MS);
75
+ const timeout = setTimeout(() => {
76
+ controller.abort();
77
+ }, REMOTE_TIMEOUT_MS);
74
78
  try {
75
79
  return await this.loadWithController(referenceUri, controller);
76
80
  } catch (error) {