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