@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
@@ -1,4 +1,3 @@
1
- import type { CheckProjectContext } from "../../check/check.ts";
2
1
  import {
3
2
  normalizeProjectDefinition,
4
3
  type DefinitionWarning,
@@ -7,33 +6,20 @@ import {
7
6
  type ResolvedProjectOutputs
8
7
  } from "../../project-definition/project-definition.ts";
9
8
  import type { CheckAggregation, RunControls } from "../controls/contract.ts";
10
- import {
11
- createAdmissionStrategyProvider,
12
- type AdmissionStrategyProviderFactory
13
- } from "../admission-strategy-provider/provider.ts";
14
- import { AdmissionStrategyPreparationFailure } from "../admission-strategy-provider/custom-strategy-preparation.ts";
15
- import type { PreparedAdmissionStrategy } from "../admission-strategy-provider/prepared-admission-strategy.ts";
9
+ import type { AdmissionStrategyProviderFactory } from "../admission-strategy-provider/provider.ts";
16
10
  import { prepareTaskGraph } from "../task-scheduler/graph.ts";
17
- import { validateCheckAggregationSelection } from "../aggregation.ts";
11
+ import { CheckAggregationFailure } from "../aggregation.ts";
18
12
  import { type CheckExecutionClock } from "../check-execution/resolved-checks.ts";
19
- import type { ResolvedCheckExecution } from "../check-execution/resolved-execution-result.ts";
20
13
  import { planStaticCheckGraph } from "../check-execution/plan.ts";
21
14
  import {
22
15
  type ProgressRefreshScheduler,
23
16
  type ProgressRendering,
24
17
  type ProgressWriterFactory
25
18
  } from "../progress-rendering/presentation.ts";
26
- import { finalizeInvocation } from "../completion/completion.ts";
27
- import { createProjectContext } from "../project-context.ts";
19
+ import { closeAggregationFailure, finalizeInvocation } from "../completion/completion.ts";
28
20
  import type { ResolvedInvocationPaths } from "./paths.ts";
29
- import {
30
- isCancelled,
31
- planning,
32
- preExecutionCancellation,
33
- type NonConfigurationRunResult,
34
- type RunDiagnostic,
35
- type RunResult
36
- } from "../result.ts";
21
+ import type { OutputStatuses } from "../outputs/status.ts";
22
+ import { isCancelled, type NonConfigurationRunResult, type RunResult } from "../result.ts";
37
23
  import {
38
24
  diagnosticTags,
39
25
  summarizeDiagnosticValue,
@@ -41,9 +27,8 @@ import {
41
27
  type DiagnosticLoggingRouter
42
28
  } from "../diagnostic-logging/logger.ts";
43
29
  import { createInvocation } from "./creation.ts";
44
- import type { OutputStatuses } from "../outputs/status.ts";
45
- import { executeScheduler, type SchedulerExecution } from "./scheduler.ts";
46
- import { mapResolvedExecutionToRunCandidate } from "./candidate.ts";
30
+ import { cancelledBeforeExecution, executionResult, planningResult } from "./candidates.ts";
31
+ import { executePlannedInvocation } from "./execution.ts";
47
32
  export type Invocation = Readonly<{
48
33
  /** Product-private test seam; package `run` never accepts a provider factory. */
49
34
  readonly admissionStrategyProviderFactory: AdmissionStrategyProviderFactory | undefined;
@@ -83,17 +68,6 @@ export async function executeValidatedRun(
83
68
  dependencies: RunInvocationDependencies = {}
84
69
  ): Promise<RunResult> {
85
70
  const normalized = normalizeProjectDefinition(definition);
86
- const aggregation = validateCheckAggregationSelection(
87
- controls.checkAggregation,
88
- normalized.checks.map((check) => check.definition.checkId)
89
- );
90
- if (!aggregation.ok)
91
- return Object.freeze({
92
- kind: "configuration",
93
- definitionWarnings: Object.freeze([...definitionWarnings]),
94
- diagnostic: aggregation.error
95
- });
96
-
97
71
  const invocation = createInvocation({
98
72
  controls,
99
73
  definition,
@@ -103,15 +77,19 @@ export async function executeValidatedRun(
103
77
  });
104
78
  let candidate: NonConfigurationRunResult;
105
79
  try {
106
- observeInvocationStarted(invocation, aggregation.value);
80
+ observeInvocationStarted(invocation, controls.checkAggregation);
107
81
  if (isCancelled(controls)) {
108
82
  candidate = cancelledBeforeExecution(invocation, "pre-work");
109
83
  } else if (!validateTaskGraph(invocation)) {
110
84
  candidate = planningResult(invocation, "task-graph-invalid");
111
85
  } else {
112
- candidate = await executePlannedInvocation(invocation, aggregation.value);
86
+ candidate = await executePlannedInvocation(invocation, controls.checkAggregation);
87
+ }
88
+ } catch (error) {
89
+ if (error instanceof CheckAggregationFailure) {
90
+ closeAggregationFailure(invocation);
91
+ throw error.originalError;
113
92
  }
114
- } catch {
115
93
  candidate = executionResult(invocation, "task-engine-failed");
116
94
  }
117
95
  return finalizeInvocation(invocation, candidate);
@@ -125,7 +103,7 @@ function observeInvocationStarted(
125
103
  event: "run.started",
126
104
  tags: diagnosticTags("RUN", "STARTED"),
127
105
  details: {
128
- aggregation: aggregation ?? null,
106
+ aggregation: aggregation === undefined ? "default" : "custom",
129
107
  checkCount: invocation.normalized.checks.length,
130
108
  flags: summarizeDiagnosticValue(invocation.controls.flags ?? []),
131
109
  outputs: invocation.outputConfiguration,
@@ -164,145 +142,3 @@ function validateTaskGraph(invocation: Invocation): boolean {
164
142
  return false;
165
143
  }
166
144
  }
167
- async function executePlannedInvocation(
168
- invocation: Invocation,
169
- aggregation: CheckAggregation | undefined
170
- ): Promise<NonConfigurationRunResult> {
171
- if (isCancelled(invocation.controls)) return cancelledBeforeExecution(invocation, "pre-work");
172
- return executePreparedInvocation(
173
- invocation,
174
- aggregation,
175
- createProjectContext({ controls: invocation.controls, paths: invocation.paths })
176
- );
177
- }
178
- async function executePreparedInvocation(
179
- invocation: Invocation,
180
- aggregation: CheckAggregation | undefined,
181
- project: CheckProjectContext
182
- ): Promise<NonConfigurationRunResult> {
183
- if (isCancelled(invocation.controls)) return cancelledBeforeExecution(invocation, "planning");
184
- let preparedStrategy: PreparedAdmissionStrategy;
185
- try {
186
- preparedStrategy = await prepareAdmissionStrategy(invocation);
187
- } catch (error) {
188
- if (error instanceof AdmissionStrategyPreparationFailure) {
189
- return executionResult(invocation, "admission-strategy-preparation-failed");
190
- }
191
- throw error;
192
- }
193
- if (preparedStrategy.completion.kind === "measurement-hook") {
194
- invocation.outputs.enableMeasurementHooks();
195
- }
196
- invocation.progressRendering.prepared(invocation.normalized.checks.length);
197
- const executionStartedAt = invocation.clock.now();
198
- const executed = await executeScheduler({ invocation, preparedStrategy, project });
199
- if (isExecutionRunResult(executed)) return executed;
200
- await completeAdmissionStrategyAfterTerminalMeasurement(
201
- preparedStrategy,
202
- executed,
203
- invocation.outputs
204
- );
205
- return mapResolvedExecutionToRunCandidate({
206
- aggregation,
207
- executed,
208
- executionStartedAt,
209
- invocation
210
- });
211
- }
212
-
213
- /** Composes one invocation-local strategy only after the static Task graph is valid. */
214
- async function prepareAdmissionStrategy(
215
- invocation: Invocation
216
- ): Promise<PreparedAdmissionStrategy> {
217
- const graph = prepareTaskGraph(
218
- planStaticCheckGraph(
219
- invocation.normalized.checks,
220
- invocation.normalized.declarative.scheduler.resourceCapacities
221
- ),
222
- invocation.normalized.declarative.scheduler.maxParallel
223
- );
224
- const admissionStrategyProviderFactory =
225
- invocation.admissionStrategyProviderFactory ?? createAdmissionStrategyProvider;
226
- const provider = admissionStrategyProviderFactory({
227
- admissionPolicy: invocation.normalized.scheduler.admissionPolicy,
228
- graph: graph.schedulerGraphSnapshot
229
- });
230
- return provider.prepare();
231
- }
232
-
233
- /** The prepared provider closes only after Scheduler terminal measurement and Hooks have settled. */
234
- async function completeAdmissionStrategyAfterTerminalMeasurement(
235
- preparedStrategy: PreparedAdmissionStrategy,
236
- executed: ResolvedCheckExecution,
237
- outputs: OutputStatuses
238
- ): Promise<void> {
239
- const terminalMeasurement = executed.terminalSchedulerMeasurement;
240
- if (terminalMeasurement === undefined) return;
241
- switch (preparedStrategy.completion.kind) {
242
- case "none":
243
- return;
244
- case "internal":
245
- try {
246
- await preparedStrategy.completion.complete(Object.freeze({ terminalMeasurement }));
247
- } catch {
248
- // Private learned lifecycle cannot revise sealed execution or public output facts.
249
- }
250
- return;
251
- case "measurement-hook":
252
- try {
253
- await preparedStrategy.completion.complete(terminalMeasurement);
254
- outputs.succeeded("measurementHooks");
255
- } catch {
256
- outputs.failed("measurementHooks");
257
- }
258
- }
259
- }
260
-
261
- function cancelledBeforeExecution(
262
- invocation: Invocation,
263
- phase: "pre-work" | "planning"
264
- ): NonConfigurationRunResult {
265
- invocation.diagnosticLogging.core.observe({
266
- event: "run.cancelled",
267
- tags: diagnosticTags("RUN", "CANCELLED"),
268
- details: { phase }
269
- });
270
- return preExecutionCancellation(
271
- invocation.declarativeFingerprint,
272
- invocation.definitionWarnings,
273
- invocation.outputs.value(),
274
- phase
275
- );
276
- }
277
-
278
- function planningResult(
279
- invocation: Invocation,
280
- code: Extract<RunDiagnostic["code"], "task-graph-invalid">
281
- ): NonConfigurationRunResult {
282
- return planning(
283
- invocation.declarativeFingerprint,
284
- invocation.definitionWarnings,
285
- invocation.outputs.value(),
286
- code
287
- );
288
- }
289
- function executionResult(
290
- invocation: Invocation,
291
- code: Extract<
292
- RunDiagnostic["code"],
293
- "admission-strategy-preparation-failed" | "task-engine-failed"
294
- >
295
- ): NonConfigurationRunResult {
296
- return Object.freeze({
297
- kind: "execution",
298
- declarativeFingerprint: invocation.declarativeFingerprint,
299
- definitionWarnings: invocation.definitionWarnings,
300
- diagnostic: Object.freeze({ code }),
301
- outputs: invocation.outputs.value()
302
- });
303
- }
304
- function isExecutionRunResult(
305
- value: SchedulerExecution
306
- ): value is Extract<NonConfigurationRunResult, { readonly kind: "execution" }> {
307
- return "declarativeFingerprint" in value;
308
- }
@@ -28,14 +28,21 @@ export async function executeScheduler(input: SchedulerAdapterInput): Promise<Sc
28
28
  ...(invocation.diagnosticLoggingEnabled
29
29
  ? { schedulerDiagnosticLogger: invocation.diagnosticLogging.scheduler }
30
30
  : {}),
31
- schedulerPerformanceDiagnostics: performanceDiagnostics,
32
- schedulerMeasurementHooks: invocation.normalized.scheduler.measurementHooks,
33
- onSchedulerMeasurementHookFailure: () => invocation.outputs.failed("measurementHooks"),
34
- onSchedulerMeasurementHooksSettled: () => invocation.outputs.succeeded("measurementHooks"),
31
+ ...(performanceDiagnostics === undefined
32
+ ? {}
33
+ : { schedulerPerformanceDiagnostics: performanceDiagnostics }),
34
+ schedulerTerminalEffects: invocation.normalized.scheduler.terminalEffects,
35
+ onSchedulerTerminalEffectFailure: () => {
36
+ invocation.outputs.failed("terminalEffects");
37
+ },
38
+ onSchedulerTerminalEffectsSettled: () => {
39
+ invocation.outputs.succeeded("terminalEffects");
40
+ },
35
41
  maxParallel: invocation.normalized.declarative.scheduler.maxParallel,
36
42
  resourceCapacities: invocation.normalized.declarative.scheduler.resourceCapacities,
37
43
  invocationId: invocation.invocationId,
38
- lifecycle: invocation.progressRendering.lifecycle,
44
+ checkLifecycle: invocation.progressRendering.checkLifecycle,
45
+ invocationLifecycle: invocation.progressRendering.invocationLifecycle,
39
46
  paths: invocation.paths,
40
47
  project: input.project,
41
48
  signal: invocation.controls.signal
@@ -49,7 +56,7 @@ function schedulerPerformanceDiagnostics(input: SchedulerAdapterInput) {
49
56
  const { invocation, preparedStrategy } = input;
50
57
  const shouldCollectSchedulerPerformanceDiagnostics =
51
58
  invocation.diagnosticLoggingEnabled ||
52
- invocation.normalized.scheduler.measurementHooks.length > 0 ||
59
+ invocation.normalized.scheduler.terminalEffects.length > 0 ||
53
60
  preparedStrategy.admissionPolicy.requiresMeasurement === true ||
54
61
  preparedStrategy.requiresTerminalMeasurement;
55
62
  if (!shouldCollectSchedulerPerformanceDiagnostics) return undefined;
@@ -33,15 +33,15 @@ export interface RunOutputStatuses {
33
33
  /** core 与 scheduler diagnostic channels 的 aggregate 状态。 */
34
34
  readonly diagnosticLogging: RunDiagnosticLoggingOutputStatus;
35
35
  /**
36
- * Definition generic Hooks 与 prepared custom strategy 的 optional `complete` 所形成的 terminal participant
36
+ * Definition generic effects 与 prepared custom strategy 的 optional `terminalEffect` 所形成的 terminal participant
37
37
  * 状态;它不能由 RunControls 注入或覆盖。
38
38
  */
39
- readonly measurementHooks: RunOutputStatus;
39
+ readonly terminalEffects: RunOutputStatus;
40
40
  }
41
41
 
42
42
  export interface OutputStatuses {
43
43
  /** Enables a runtime-only terminal participant after successful preparation. */
44
- readonly enableMeasurementHooks: () => void;
44
+ readonly enableTerminalEffects: () => void;
45
45
  /** A diagnostic channel failure is isolated but updates the aggregate diagnostic output. */
46
46
  readonly failedDiagnosticChannel: (channel: DiagnosticChannel) => void;
47
47
  readonly failed: (output: keyof RunOutputStatuses) => void;
@@ -53,9 +53,9 @@ export interface OutputStatuses {
53
53
  export function createOutputStatuses(
54
54
  configuration: ProjectOutputs,
55
55
  diagnosticLoggingFiles: Readonly<Record<DiagnosticChannel, string | null>>,
56
- initialMeasurementHooksEnabled: boolean
56
+ initialTerminalEffectsEnabled: boolean
57
57
  ): OutputStatuses {
58
- let measurementHooksEnabled = initialMeasurementHooksEnabled;
58
+ let terminalEffectsEnabled = initialTerminalEffectsEnabled;
59
59
  const diagnosticChannelEnabled: Readonly<Record<DiagnosticChannel, boolean>> = Object.freeze({
60
60
  core: configuration.diagnosticLogging.enabled,
61
61
  scheduler: configuration.diagnosticLogging.enabled
@@ -64,14 +64,14 @@ export function createOutputStatuses(
64
64
  machinePublication: initialStatus(configuration.machinePublication.enabled),
65
65
  progressRendering: initialStatus(configuration.progressRendering.enabled),
66
66
  diagnosticLogging: initialStatus(configuration.diagnosticLogging.enabled),
67
- measurementHooks: initialStatus(measurementHooksEnabled)
67
+ terminalEffects: initialStatus(terminalEffectsEnabled)
68
68
  };
69
69
  const diagnosticChannelStatuses: Record<DiagnosticChannel, RunOutputStatus["status"]> = {
70
70
  core: initialStatus(diagnosticChannelEnabled.core),
71
71
  scheduler: initialStatus(diagnosticChannelEnabled.scheduler)
72
72
  };
73
73
  const enabled = (output: keyof RunOutputStatuses): boolean =>
74
- output === "measurementHooks" ? measurementHooksEnabled : configuration[output].enabled;
74
+ output === "terminalEffects" ? terminalEffectsEnabled : configuration[output].enabled;
75
75
  const refreshDiagnosticAggregate = (): void => {
76
76
  const enabledStatuses = DIAGNOSTIC_CHANNELS.filter(
77
77
  (channel) => diagnosticChannelEnabled[channel]
@@ -89,10 +89,10 @@ export function createOutputStatuses(
89
89
  : "not-run";
90
90
  };
91
91
  return Object.freeze({
92
- enableMeasurementHooks: () => {
93
- if (measurementHooksEnabled) return;
94
- measurementHooksEnabled = true;
95
- statuses.measurementHooks = "not-run";
92
+ enableTerminalEffects: () => {
93
+ if (terminalEffectsEnabled) return;
94
+ terminalEffectsEnabled = true;
95
+ statuses.terminalEffects = "not-run";
96
96
  },
97
97
  failedDiagnosticChannel: (channel: DiagnosticChannel) => {
98
98
  if (!diagnosticChannelEnabled[channel]) return;
@@ -129,9 +129,9 @@ export function createOutputStatuses(
129
129
  enabled: configuration.diagnosticLogging.enabled,
130
130
  status: statuses.diagnosticLogging
131
131
  }),
132
- measurementHooks: Object.freeze({
133
- enabled: measurementHooksEnabled,
134
- status: statuses.measurementHooks
132
+ terminalEffects: Object.freeze({
133
+ enabled: terminalEffectsEnabled,
134
+ status: statuses.terminalEffects
135
135
  })
136
136
  })
137
137
  });
@@ -150,7 +150,7 @@ export function failedOutput(statuses: RunOutputStatuses): keyof RunOutputStatus
150
150
  "progressRendering",
151
151
  "machinePublication",
152
152
  "diagnosticLogging",
153
- "measurementHooks"
153
+ "terminalEffects"
154
154
  ] as const)
155
155
  if (statuses[output].status === "failed") return output;
156
156
  return undefined;
@@ -3,6 +3,7 @@ import { dirname } from "node:path";
3
3
 
4
4
  import type {
5
5
  CheckExecutionLifecycle,
6
+ InvocationLifecycle,
6
7
  CheckSettledFact,
7
8
  CheckStartedFact
8
9
  } from "../check-execution/lifecycle.ts";
@@ -19,8 +20,9 @@ export interface ProgressRendering {
19
20
  /** Closes only an already-created file tee; it never creates a writer after pre-work termination. */
20
21
  readonly close: () => void;
21
22
  readonly final: (input: ProgressFinalFeedback) => void;
22
- readonly lifecycle: CheckExecutionLifecycle;
23
- readonly prepared: (totalChecks: number) => void;
23
+ readonly checkLifecycle: CheckExecutionLifecycle;
24
+ readonly invocationLifecycle: InvocationLifecycle;
25
+ readonly prepared: (totalChecks: number, quietPassOmissionConfiguredCount: number) => void;
24
26
  }
25
27
  export interface ProgressFinalFeedback {
26
28
  readonly counts: ProgressOutcomeCounts;
@@ -51,7 +53,11 @@ const defaultProgressRefreshScheduler: ProgressRefreshScheduler = Object.freeze(
51
53
  schedule: (refresh: () => void, intervalMs: number) => {
52
54
  const interval = setInterval(refresh, intervalMs);
53
55
  interval.unref();
54
- return Object.freeze({ cancel: () => clearInterval(interval) });
56
+ return Object.freeze({
57
+ cancel: () => {
58
+ clearInterval(interval);
59
+ }
60
+ });
55
61
  }
56
62
  });
57
63
 
@@ -96,7 +102,9 @@ export function createProgressRendering(
96
102
  if (renderer !== undefined) return renderer;
97
103
  writer = createProgressTee({
98
104
  file: dependencies.file ?? null,
99
- onFileFailure: () => statuses.failed("progressRendering"),
105
+ onFileFailure: () => {
106
+ statuses.failed("progressRendering");
107
+ },
100
108
  terminal: (dependencies.writerFactory ?? defaultProgressWriter)()
101
109
  });
102
110
  renderer = createProgressRenderer(writer, dependencies.clock, configuration);
@@ -156,9 +164,15 @@ export function createProgressRendering(
156
164
 
157
165
  return Object.freeze({
158
166
  close,
159
- prepared: (totalChecks: number) => render(Object.freeze({ kind: "prepared", totalChecks })),
160
- lifecycle: Object.freeze({
161
- flagControlCompleted: () => render(Object.freeze({ kind: "flag-control-completed" })),
167
+ prepared: (totalChecks: number, quietPassOmissionConfiguredCount: number) => {
168
+ render(Object.freeze({ kind: "prepared", quietPassOmissionConfiguredCount, totalChecks }));
169
+ },
170
+ invocationLifecycle: Object.freeze({
171
+ selectionSettled: () => {
172
+ render(Object.freeze({ kind: "flag-control-completed" }));
173
+ }
174
+ }),
175
+ checkLifecycle: Object.freeze({
162
176
  settled: (fact: CheckSettledFact) => {
163
177
  render(
164
178
  Object.freeze({
@@ -169,7 +183,7 @@ export function createProgressRendering(
169
183
  messages: fact.messages,
170
184
  outcome: fact.outcome,
171
185
  records: fact.records,
172
- visibility: fact.visibility
186
+ omitQuietPassedRow: fact.omitQuietPassedRow
173
187
  })
174
188
  );
175
189
  runningCheckIds.delete(fact.checkId);
@@ -178,7 +192,12 @@ export function createProgressRendering(
178
192
  started: (fact: CheckStartedFact) => {
179
193
  runningCheckIds.add(fact.checkId);
180
194
  render(
181
- Object.freeze({ kind: "started", checkId: fact.checkId, displayName: fact.displayName })
195
+ Object.freeze({
196
+ kind: "started",
197
+ checkId: fact.checkId,
198
+ displayName: fact.displayName,
199
+ omitQuietPassedRow: fact.omitQuietPassedRow
200
+ })
182
201
  );
183
202
  startRefresh();
184
203
  }
@@ -198,15 +217,18 @@ export function createProgressRendering(
198
217
  });
199
218
  }
200
219
  function inertProgressRendering(): ProgressRendering {
201
- const lifecycle = Object.freeze({
202
- flagControlCompleted: (): void => undefined,
220
+ const invocationLifecycle = Object.freeze({
221
+ selectionSettled: (): void => undefined
222
+ });
223
+ const checkLifecycle = Object.freeze({
203
224
  settled: (_fact: CheckSettledFact): void => undefined,
204
225
  started: (_fact: CheckStartedFact): void => undefined
205
226
  });
206
227
  return Object.freeze({
207
228
  close: (): void => undefined,
208
- prepared: (_totalChecks: number): void => undefined,
209
- lifecycle,
229
+ prepared: (_totalChecks: number, _quietPassOmissionConfiguredCount: number): void => undefined,
230
+ checkLifecycle,
231
+ invocationLifecycle,
210
232
  final: (_input: ProgressFinalFeedback): void => undefined
211
233
  });
212
234
  }
@@ -24,21 +24,23 @@ const NAMED_CONTROL_ESCAPES: Readonly<Partial<Record<string, string>>> = Object.
24
24
 
25
25
  export function formatRunningRow(
26
26
  input: Readonly<{
27
- readonly displayIndex: number;
27
+ readonly displayIndex: number | undefined;
28
28
  readonly displayName: string;
29
29
  readonly elapsedMs: number | null;
30
30
  readonly totalChecks: number;
31
31
  }>
32
32
  ): string {
33
33
  const elapsed = input.elapsedMs === null ? "" : ` | ${formatDuration(input.elapsedMs)}`;
34
- return ` [${input.displayIndex}/${input.totalChecks}] ${escapeTerminalText(input.displayName)} | running${elapsed}\n`;
34
+ const ordinal =
35
+ input.displayIndex === undefined ? "·" : `[${input.displayIndex}/${input.totalChecks}]`;
36
+ return ` ${ordinal} ${escapeTerminalText(input.displayName)} | running${elapsed}\n`;
35
37
  }
36
38
 
37
39
  export function shouldPresentSettledFeedback(
38
40
  feedback: Extract<ProgressFeedback, { readonly kind: "settled" }>
39
41
  ): boolean {
40
42
  return (
41
- feedback.visibility !== "attention" ||
43
+ !feedback.omitQuietPassedRow ||
42
44
  feedback.outcome.status !== "passed" ||
43
45
  feedback.messages.length > 0 ||
44
46
  feedback.records.length > 0
@@ -71,7 +73,7 @@ export function formatFlagConditionNotMatchedBlock(
71
73
 
72
74
  export function formatSettledBlock(
73
75
  input: Readonly<{
74
- readonly completionOrdinal: number;
76
+ readonly completionOrdinal: number | undefined;
75
77
  readonly displayName: string;
76
78
  readonly durationMs: number | null;
77
79
  readonly messages: readonly CheckMessage[];
@@ -86,14 +88,22 @@ export function formatSettledBlock(
86
88
  const reason = reasonForOutcome(input.outcome);
87
89
  const duration = input.durationMs === null ? "not run" : formatDuration(input.durationMs);
88
90
  const reasonSuffix = reason === undefined ? "" : ` | ${escapeTerminalText(reason)}`;
89
- const row = ` [${input.completionOrdinal}/${input.totalChecks}] ${escapeTerminalText(input.displayName)} | ${status} | ${duration}${reasonSuffix}\n`;
91
+ const ordinal =
92
+ input.completionOrdinal === undefined
93
+ ? "·"
94
+ : `[${input.completionOrdinal}/${input.totalChecks}]`;
95
+ const row = ` ${ordinal} ${escapeTerminalText(input.displayName)} | ${status} | ${duration}${reasonSuffix}\n`;
90
96
  const recordPreview = formatRecords(input.records, input.progressRendering);
91
97
  const messagePreview = formatMessages(input.messages, input.usesColor, input.progressRendering);
92
98
  return `${row}${recordPreview}${messagePreview}`;
93
99
  }
94
100
 
95
101
  export function formatFinalSummary(
96
- input: Extract<ProgressFeedback, { readonly kind: "final" }>
102
+ input: Extract<ProgressFeedback, { readonly kind: "final" }> &
103
+ Readonly<{
104
+ readonly quietPassOmissionConfiguredCount: number;
105
+ readonly quietPassOmittedCount: number;
106
+ }>
97
107
  ): string {
98
108
  return [
99
109
  "",
@@ -104,6 +114,9 @@ export function formatFinalSummary(
104
114
  ` failed: ${input.counts.failed}`,
105
115
  ` not applicable: ${input.counts.notApplicable}`,
106
116
  ` unavailable: ${input.counts.unavailable}`,
117
+ ...(input.quietPassOmissionConfiguredCount === 0
118
+ ? []
119
+ : [` quiet-pass rows omitted: ${input.quietPassOmittedCount}`]),
107
120
  ` elapsed: ${formatDuration(input.elapsedMs)}`,
108
121
  ""
109
122
  ].join("\n");
@@ -194,7 +207,7 @@ function formattedPreviewText(
194
207
  function observeRejectedPromise(value: unknown): void {
195
208
  if (types.isPromise(value)) {
196
209
  // The intrinsic call observes a real Promise without reading a caller-controlled `.then`.
197
- // eslint-disable-next-line typescript/no-floating-promises -- rendering must not await formatter misuse.
210
+ // oxlint-disable-next-line typescript/no-floating-promises -- rendering must not await formatter misuse.
198
211
  void Promise.prototype.then.call(value, undefined, () => undefined);
199
212
  }
200
213
  }
@@ -17,6 +17,7 @@ import {
17
17
  interface RunningCheck {
18
18
  readonly checkId: string;
19
19
  readonly displayName: string;
20
+ readonly omitQuietPassedRow: boolean;
20
21
  readonly startedAtMs: number;
21
22
  elapsedMs: number | null;
22
23
  }
@@ -29,6 +30,8 @@ export class ProgressRendererController implements ProgressRenderer {
29
30
  private readonly writer: ProgressWriter;
30
31
  private completedCount = 0;
31
32
  private readonly flagConditionNotMatchedDisplayNames: string[] = [];
33
+ private quietPassOmissionConfiguredCount = 0;
34
+ private quietPassOmittedCount = 0;
32
35
  private preparedTotal: number | undefined;
33
36
  private renderedRunningRows = 0;
34
37
  private readonly running: RunningCheck[] = [];
@@ -58,7 +61,7 @@ export class ProgressRendererController implements ProgressRenderer {
58
61
  render(feedback: ProgressFeedback): void {
59
62
  switch (feedback.kind) {
60
63
  case "prepared":
61
- this.prepare(feedback.totalChecks);
64
+ this.prepare(feedback.totalChecks, feedback.quietPassOmissionConfiguredCount);
62
65
  return;
63
66
  case "flag-control-completed":
64
67
  this.completeFlagControl();
@@ -74,10 +77,15 @@ export class ProgressRendererController implements ProgressRenderer {
74
77
  }
75
78
  }
76
79
 
77
- private prepare(totalChecks: number): void {
80
+ private prepare(totalChecks: number, quietPassOmissionConfiguredCount: number): void {
78
81
  if (this.preparedTotal !== undefined) throw new Error("Progress feedback was prepared twice");
79
82
  this.preparedTotal = totalChecks;
80
- this.writer.write(`Vibe Check\ntotal ${totalChecks} checks\n\nChecks:\n`);
83
+ this.quietPassOmissionConfiguredCount = quietPassOmissionConfiguredCount;
84
+ const configuredSuffix =
85
+ quietPassOmissionConfiguredCount === 0
86
+ ? ""
87
+ : ` · ${quietPassOmissionConfiguredCount} configured for quiet-pass omission`;
88
+ this.writer.write(`Vibe Check\ntotal ${totalChecks} checks${configuredSuffix}\n\nChecks:\n`);
81
89
  }
82
90
 
83
91
  private start(feedback: Extract<ProgressFeedback, { readonly kind: "started" }>): void {
@@ -87,6 +95,7 @@ export class ProgressRendererController implements ProgressRenderer {
87
95
  this.running.push({
88
96
  checkId: feedback.checkId,
89
97
  displayName: feedback.displayName,
98
+ omitQuietPassedRow: feedback.omitQuietPassedRow,
90
99
  elapsedMs: null,
91
100
  startedAtMs: this.clock.now()
92
101
  });
@@ -103,7 +112,7 @@ export class ProgressRendererController implements ProgressRenderer {
103
112
  } else if (shouldPresentSettledFeedback(feedback)) {
104
113
  this.writer.write(
105
114
  formatSettledBlock({
106
- completionOrdinal: this.completedCount,
115
+ completionOrdinal: feedback.omitQuietPassedRow ? undefined : this.completedCount,
107
116
  displayName: feedback.displayName,
108
117
  durationMs: feedback.durationMs,
109
118
  messages: feedback.messages,
@@ -114,6 +123,8 @@ export class ProgressRendererController implements ProgressRenderer {
114
123
  progressRendering: this.progressRendering
115
124
  })
116
125
  );
126
+ } else {
127
+ this.quietPassOmittedCount += 1;
117
128
  }
118
129
  if (this.refreshesRunningRegion) this.redrawRunningRegion();
119
130
  }
@@ -124,7 +135,13 @@ export class ProgressRendererController implements ProgressRenderer {
124
135
  throw new Error("Progress feedback finalized while Checks are still running");
125
136
  }
126
137
  this.flushFlagConditionNotMatchedChecks();
127
- this.writer.write(formatFinalSummary(feedback));
138
+ this.writer.write(
139
+ formatFinalSummary({
140
+ ...feedback,
141
+ quietPassOmissionConfiguredCount: this.quietPassOmissionConfiguredCount,
142
+ quietPassOmittedCount: this.quietPassOmittedCount
143
+ })
144
+ );
128
145
  }
129
146
 
130
147
  private completeFlagControl(): void {
@@ -156,9 +173,9 @@ export class ProgressRendererController implements ProgressRenderer {
156
173
  for (const [index, check] of this.running.entries()) {
157
174
  this.writer.write(
158
175
  formatRunningRow({
159
- displayIndex: this.completedCount + index + 1,
160
176
  displayName: check.displayName,
161
177
  elapsedMs: check.elapsedMs,
178
+ displayIndex: check.omitQuietPassedRow ? undefined : this.completedCount + index + 1,
162
179
  totalChecks
163
180
  })
164
181
  );