@zxyycom/vibe-check 0.0.1 → 0.0.2

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 (950) hide show
  1. package/README.md +47 -74
  2. package/dist/esm/cache/cache-json-by-key.mjs +189 -0
  3. package/dist/esm/cache/cache-json-by-key.mjs.map +1 -0
  4. package/dist/esm/check/check.mjs.map +1 -1
  5. package/dist/esm/check/finding-presentation.mjs +40 -0
  6. package/dist/esm/check/finding-presentation.mjs.map +1 -0
  7. package/dist/esm/check/inherited-collection.mjs +1 -1
  8. package/dist/esm/check/inherited-collection.mjs.map +1 -1
  9. package/dist/esm/check-settlement/fact-validation.mjs +17 -23
  10. package/dist/esm/check-settlement/fact-validation.mjs.map +1 -1
  11. package/dist/esm/check-settlement/outcome-normalization.mjs +9 -19
  12. package/dist/esm/check-settlement/outcome-normalization.mjs.map +1 -1
  13. package/dist/esm/check-settlement/reason-shape.mjs +12 -0
  14. package/dist/esm/check-settlement/reason-shape.mjs.map +1 -0
  15. package/dist/esm/check-settlement/record-store.mjs +14 -17
  16. package/dist/esm/check-settlement/record-store.mjs.map +1 -1
  17. package/dist/esm/check-settlement/session.mjs +8 -2
  18. package/dist/esm/check-settlement/session.mjs.map +1 -1
  19. package/dist/esm/data-boundary/closed-values.mjs +16 -0
  20. package/dist/esm/data-boundary/closed-values.mjs.map +1 -1
  21. package/dist/esm/data-boundary/value-shapes.mjs +9 -0
  22. package/dist/esm/data-boundary/value-shapes.mjs.map +1 -1
  23. package/dist/esm/index.mjs +9 -2
  24. package/dist/esm/index.mjs.map +1 -1
  25. package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs +56 -0
  26. package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs.map +1 -0
  27. package/dist/esm/learned-critical-path/duration-model/prediction.mjs +122 -0
  28. package/dist/esm/learned-critical-path/duration-model/prediction.mjs.map +1 -0
  29. package/dist/esm/learned-critical-path/duration-model/preparation.mjs +41 -0
  30. package/dist/esm/learned-critical-path/duration-model/preparation.mjs.map +1 -0
  31. package/dist/esm/learned-critical-path/duration-model/recording.mjs +109 -0
  32. package/dist/esm/learned-critical-path/duration-model/recording.mjs.map +1 -0
  33. package/dist/esm/learned-critical-path/duration-model/storage.mjs +187 -0
  34. package/dist/esm/learned-critical-path/duration-model/storage.mjs.map +1 -0
  35. package/dist/esm/learned-critical-path/selection-layers.mjs +28 -0
  36. package/dist/esm/learned-critical-path/selection-layers.mjs.map +1 -0
  37. package/dist/esm/learned-critical-path/static-decision.mjs +55 -0
  38. package/dist/esm/learned-critical-path/static-decision.mjs.map +1 -0
  39. package/dist/esm/learned-critical-path/strategy.mjs +179 -0
  40. package/dist/esm/learned-critical-path/strategy.mjs.map +1 -0
  41. package/dist/esm/machine-output/v4/atomic-publication.mjs +1 -15
  42. package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -1
  43. package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs +40 -0
  44. package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs.map +1 -0
  45. package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs +48 -0
  46. package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs.map +1 -0
  47. package/dist/esm/package-checks/code-quality-findings/policy.mjs +20 -0
  48. package/dist/esm/package-checks/code-quality-findings/policy.mjs.map +1 -1
  49. package/dist/esm/package-checks/duplicate-detection/area-policy.mjs +15 -7
  50. package/dist/esm/package-checks/duplicate-detection/area-policy.mjs.map +1 -1
  51. package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs +1 -1
  52. package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs.map +1 -1
  53. package/dist/esm/package-checks/duplicate-detection/default-check.mjs +1 -1
  54. package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -1
  55. package/dist/esm/package-checks/duplicate-detection/execution.mjs +44 -18
  56. package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -1
  57. package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs +59 -0
  58. package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs.map +1 -0
  59. package/dist/esm/package-checks/duplicate-detection/finding-waiver-identity.mjs +55 -0
  60. package/dist/esm/package-checks/duplicate-detection/finding-waiver-identity.mjs.map +1 -0
  61. package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +1 -1
  62. package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -1
  63. package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs +1 -1
  64. package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs.map +1 -1
  65. package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs +15 -5
  66. package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs.map +1 -1
  67. package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs +5 -4
  68. package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs.map +1 -1
  69. package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs +22 -47
  70. package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs.map +1 -1
  71. package/dist/esm/package-checks/duplicate-detection/options-validation.mjs +20 -25
  72. package/dist/esm/package-checks/duplicate-detection/options-validation.mjs.map +1 -1
  73. package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -1
  74. package/dist/esm/package-checks/duplicate-detection/records.mjs +27 -6
  75. package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -1
  76. package/dist/esm/package-checks/file-metrics/execution.mjs +10 -17
  77. package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -1
  78. package/dist/esm/package-checks/file-metrics/finding-messages.mjs +22 -0
  79. package/dist/esm/package-checks/file-metrics/finding-messages.mjs.map +1 -0
  80. package/dist/esm/package-checks/file-metrics/options-resolution.mjs +11 -43
  81. package/dist/esm/package-checks/file-metrics/options-resolution.mjs.map +1 -1
  82. package/dist/esm/package-checks/file-metrics/options-validation.mjs +15 -25
  83. package/dist/esm/package-checks/file-metrics/options-validation.mjs.map +1 -1
  84. package/dist/esm/package-checks/file-metrics/records.mjs +2 -9
  85. package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -1
  86. package/dist/esm/package-checks/file-metrics/scc/availability.mjs +1 -1
  87. package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -1
  88. package/dist/esm/package-checks/file-metrics/scc/parser.mjs +4 -4
  89. package/dist/esm/package-checks/file-metrics/scc/parser.mjs.map +1 -1
  90. package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +2 -2
  91. package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -1
  92. package/dist/esm/package-checks/function-metrics/analysis.mjs +56 -15
  93. package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -1
  94. package/dist/esm/package-checks/function-metrics/analyzer/analysis-context.mjs +550 -0
  95. package/dist/esm/package-checks/function-metrics/analyzer/analysis-context.mjs.map +1 -0
  96. package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs +332 -0
  97. package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs.map +1 -0
  98. package/dist/esm/package-checks/function-metrics/analyzer/contracts.mjs +7 -0
  99. package/dist/esm/package-checks/function-metrics/analyzer/contracts.mjs.map +1 -0
  100. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs +24 -0
  101. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs.map +1 -0
  102. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardnd.mjs +113 -0
  103. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardnd.mjs.map +1 -0
  104. package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs +180 -0
  105. package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs.map +1 -0
  106. package/dist/esm/package-checks/function-metrics/analyzer/extensions/registry.mjs +121 -0
  107. package/dist/esm/package-checks/function-metrics/analyzer/extensions/registry.mjs.map +1 -0
  108. package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs +217 -0
  109. package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs.map +1 -0
  110. package/dist/esm/package-checks/function-metrics/analyzer/port-facade.mjs +96 -0
  111. package/dist/esm/package-checks/function-metrics/analyzer/port-facade.mjs.map +1 -0
  112. package/dist/esm/package-checks/function-metrics/analyzer/reader-registry.mjs +76 -0
  113. package/dist/esm/package-checks/function-metrics/analyzer/reader-registry.mjs.map +1 -0
  114. package/dist/esm/package-checks/function-metrics/analyzer/readers/csharp.mjs +88 -0
  115. package/dist/esm/package-checks/function-metrics/analyzer/readers/csharp.mjs.map +1 -0
  116. package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs +466 -0
  117. package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs.map +1 -0
  118. package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs +289 -0
  119. package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs.map +1 -0
  120. package/dist/esm/package-checks/function-metrics/analyzer/readers/gdscript.mjs +38 -0
  121. package/dist/esm/package-checks/function-metrics/analyzer/readers/gdscript.mjs.map +1 -0
  122. package/dist/esm/package-checks/function-metrics/analyzer/readers/go.mjs +44 -0
  123. package/dist/esm/package-checks/function-metrics/analyzer/readers/go.mjs.map +1 -0
  124. package/dist/esm/package-checks/function-metrics/analyzer/readers/java-body-states.mjs +113 -0
  125. package/dist/esm/package-checks/function-metrics/analyzer/readers/java-body-states.mjs.map +1 -0
  126. package/dist/esm/package-checks/function-metrics/analyzer/readers/java.mjs +247 -0
  127. package/dist/esm/package-checks/function-metrics/analyzer/readers/java.mjs.map +1 -0
  128. package/dist/esm/package-checks/function-metrics/analyzer/readers/javascript.mjs +16 -0
  129. package/dist/esm/package-checks/function-metrics/analyzer/readers/javascript.mjs.map +1 -0
  130. package/dist/esm/package-checks/function-metrics/analyzer/readers/kotlin.mjs +103 -0
  131. package/dist/esm/package-checks/function-metrics/analyzer/readers/kotlin.mjs.map +1 -0
  132. package/dist/esm/package-checks/function-metrics/analyzer/readers/lua.mjs +55 -0
  133. package/dist/esm/package-checks/function-metrics/analyzer/readers/lua.mjs.map +1 -0
  134. package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs +100 -0
  135. package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs.map +1 -0
  136. package/dist/esm/package-checks/function-metrics/analyzer/readers/perl.mjs +367 -0
  137. package/dist/esm/package-checks/function-metrics/analyzer/readers/perl.mjs.map +1 -0
  138. package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs +260 -0
  139. package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs.map +1 -0
  140. package/dist/esm/package-checks/function-metrics/analyzer/readers/php.mjs +53 -0
  141. package/dist/esm/package-checks/function-metrics/analyzer/readers/php.mjs.map +1 -0
  142. package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs +306 -0
  143. package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs.map +1 -0
  144. package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs +402 -0
  145. package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs.map +1 -0
  146. package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs +214 -0
  147. package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs.map +1 -0
  148. package/dist/esm/package-checks/function-metrics/analyzer/readers/ruby.mjs +75 -0
  149. package/dist/esm/package-checks/function-metrics/analyzer/readers/ruby.mjs.map +1 -0
  150. package/dist/esm/package-checks/function-metrics/analyzer/readers/rust.mjs +32 -0
  151. package/dist/esm/package-checks/function-metrics/analyzer/readers/rust.mjs.map +1 -0
  152. package/dist/esm/package-checks/function-metrics/analyzer/readers/scala.mjs +47 -0
  153. package/dist/esm/package-checks/function-metrics/analyzer/readers/scala.mjs.map +1 -0
  154. package/dist/esm/package-checks/function-metrics/analyzer/readers/solidity.mjs +22 -0
  155. package/dist/esm/package-checks/function-metrics/analyzer/readers/solidity.mjs.map +1 -0
  156. package/dist/esm/package-checks/function-metrics/analyzer/readers/st.mjs +142 -0
  157. package/dist/esm/package-checks/function-metrics/analyzer/readers/st.mjs.map +1 -0
  158. package/dist/esm/package-checks/function-metrics/analyzer/readers/swift.mjs +94 -0
  159. package/dist/esm/package-checks/function-metrics/analyzer/readers/swift.mjs.map +1 -0
  160. package/dist/esm/package-checks/function-metrics/analyzer/readers/tsx.mjs +149 -0
  161. package/dist/esm/package-checks/function-metrics/analyzer/readers/tsx.mjs.map +1 -0
  162. package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs +79 -0
  163. package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs.map +1 -0
  164. package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs +606 -0
  165. package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs.map +1 -0
  166. package/dist/esm/package-checks/function-metrics/analyzer/readers/vue.mjs +31 -0
  167. package/dist/esm/package-checks/function-metrics/analyzer/readers/vue.mjs.map +1 -0
  168. package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs +23 -0
  169. package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs.map +1 -0
  170. package/dist/esm/package-checks/function-metrics/analyzer/shared/clike.mjs +492 -0
  171. package/dist/esm/package-checks/function-metrics/analyzer/shared/clike.mjs.map +1 -0
  172. package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs +542 -0
  173. package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs.map +1 -0
  174. package/dist/esm/package-checks/function-metrics/analyzer/shared/golike.mjs +141 -0
  175. package/dist/esm/package-checks/function-metrics/analyzer/shared/golike.mjs.map +1 -0
  176. package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs +62 -0
  177. package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs.map +1 -0
  178. package/dist/esm/package-checks/function-metrics/analyzer/shared/rubylike.mjs +154 -0
  179. package/dist/esm/package-checks/function-metrics/analyzer/shared/rubylike.mjs.map +1 -0
  180. package/dist/esm/package-checks/function-metrics/analyzer/shared/script-language.mjs +36 -0
  181. package/dist/esm/package-checks/function-metrics/analyzer/shared/script-language.mjs.map +1 -0
  182. package/dist/esm/package-checks/function-metrics/analyzer-adapter.mjs +56 -0
  183. package/dist/esm/package-checks/function-metrics/analyzer-adapter.mjs.map +1 -0
  184. package/dist/esm/package-checks/function-metrics/analyzer-worker-contract.mjs +2 -0
  185. package/dist/esm/package-checks/function-metrics/analyzer-worker-contract.mjs.map +1 -0
  186. package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs +108 -0
  187. package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs.map +1 -0
  188. package/dist/esm/package-checks/function-metrics/analyzer-worker.mjs +24 -0
  189. package/dist/esm/package-checks/function-metrics/analyzer-worker.mjs.map +1 -0
  190. package/dist/esm/package-checks/function-metrics/constructor.mjs +2 -2
  191. package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -1
  192. package/dist/esm/package-checks/function-metrics/execution.mjs +51 -33
  193. package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -1
  194. package/dist/esm/package-checks/function-metrics/finding-messages.mjs +75 -0
  195. package/dist/esm/package-checks/function-metrics/finding-messages.mjs.map +1 -0
  196. package/dist/esm/package-checks/function-metrics/finding-waiver-identity.mjs +28 -0
  197. package/dist/esm/package-checks/function-metrics/finding-waiver-identity.mjs.map +1 -0
  198. package/dist/esm/package-checks/function-metrics/measurement-model.mjs.map +1 -1
  199. package/dist/esm/package-checks/function-metrics/measurement.mjs +161 -26
  200. package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -1
  201. package/dist/esm/package-checks/function-metrics/options-resolution.mjs +30 -63
  202. package/dist/esm/package-checks/function-metrics/options-resolution.mjs.map +1 -1
  203. package/dist/esm/package-checks/function-metrics/options-validation.mjs +27 -32
  204. package/dist/esm/package-checks/function-metrics/options-validation.mjs.map +1 -1
  205. package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -1
  206. package/dist/esm/package-checks/function-metrics/records.mjs +31 -1
  207. package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -1
  208. package/dist/esm/package-checks/function-metrics/target-files.mjs +6 -67
  209. package/dist/esm/package-checks/function-metrics/target-files.mjs.map +1 -1
  210. package/dist/esm/package-checks/{file-metrics/scc → host-environment}/csv.mjs +1 -0
  211. package/dist/esm/package-checks/host-environment/csv.mjs.map +1 -0
  212. package/dist/esm/package-checks/host-environment/git.mjs +1 -1
  213. package/dist/esm/package-checks/host-environment/git.mjs.map +1 -1
  214. package/dist/esm/package-checks/host-environment/process.mjs +5 -0
  215. package/dist/esm/package-checks/host-environment/process.mjs.map +1 -0
  216. package/dist/esm/package-checks/json-schema-validation/final-data.mjs.map +1 -1
  217. package/dist/esm/package-checks/json-schema-validation/options-validation.mjs +15 -17
  218. package/dist/esm/package-checks/json-schema-validation/options-validation.mjs.map +1 -1
  219. package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -1
  220. package/dist/esm/package-checks/json-validation/final-data.mjs.map +1 -1
  221. package/dist/esm/package-checks/json-validation/options-validation.mjs +4 -10
  222. package/dist/esm/package-checks/json-validation/options-validation.mjs.map +1 -1
  223. package/dist/esm/package-checks/maintenance-reminders/final-data.mjs.map +1 -1
  224. package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +9 -3
  225. package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -1
  226. package/dist/esm/package-checks/markdown-link-validation/execution.mjs +27 -24
  227. package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -1
  228. package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs +82 -53
  229. package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs.map +1 -1
  230. package/dist/esm/package-checks/markdown-link-validation/final-data.mjs.map +1 -1
  231. package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs +36 -0
  232. package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs.map +1 -0
  233. package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs.map +1 -1
  234. package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs +2 -2
  235. package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs.map +1 -1
  236. package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +26 -4
  237. package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -1
  238. package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +24 -11
  239. package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -1
  240. package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -1
  241. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs +185 -0
  242. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs.map +1 -0
  243. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache.mjs +131 -0
  244. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache.mjs.map +1 -0
  245. package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs +58 -57
  246. package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs.map +1 -1
  247. package/dist/esm/package-checks/markdown-link-validation/source-reader.mjs +54 -0
  248. package/dist/esm/package-checks/markdown-link-validation/source-reader.mjs.map +1 -0
  249. package/dist/esm/package-checks/markdown-link-validation/unavailable-reasons.mjs +16 -0
  250. package/dist/esm/package-checks/markdown-link-validation/unavailable-reasons.mjs.map +1 -0
  251. package/dist/esm/package-checks/project-files/collection.mjs +1 -1
  252. package/dist/esm/package-checks/project-files/collection.mjs.map +1 -1
  253. package/dist/esm/package-checks/project-files/configuration.mjs +2 -10
  254. package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -1
  255. package/dist/esm/package-checks/project-files/gitlink-revision.mjs +1 -1
  256. package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -1
  257. package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +1 -1
  258. package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -1
  259. package/dist/esm/package-checks/project-files/public-collection.mjs +56 -0
  260. package/dist/esm/package-checks/project-files/public-collection.mjs.map +1 -0
  261. package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +1 -1
  262. package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -1
  263. package/dist/esm/package-checks/secret-detection/classification.mjs +15 -0
  264. package/dist/esm/package-checks/secret-detection/classification.mjs.map +1 -0
  265. package/dist/esm/package-checks/secret-detection/default-check.mjs +39 -0
  266. package/dist/esm/package-checks/secret-detection/default-check.mjs.map +1 -0
  267. package/dist/esm/package-checks/secret-detection/execution.mjs +172 -0
  268. package/dist/esm/package-checks/secret-detection/execution.mjs.map +1 -0
  269. package/dist/esm/package-checks/secret-detection/final-data.mjs +33 -0
  270. package/dist/esm/package-checks/secret-detection/final-data.mjs.map +1 -0
  271. package/dist/esm/package-checks/secret-detection/finding-waiver-identity.mjs +30 -0
  272. package/dist/esm/package-checks/secret-detection/finding-waiver-identity.mjs.map +1 -0
  273. package/dist/esm/package-checks/secret-detection/input-preparation.mjs +153 -0
  274. package/dist/esm/package-checks/secret-detection/input-preparation.mjs.map +1 -0
  275. package/dist/esm/package-checks/secret-detection/options-resolution.mjs +40 -0
  276. package/dist/esm/package-checks/secret-detection/options-resolution.mjs.map +1 -0
  277. package/dist/esm/package-checks/secret-detection/options-validation.mjs +22 -0
  278. package/dist/esm/package-checks/secret-detection/options-validation.mjs.map +1 -0
  279. package/dist/esm/package-checks/secret-detection/options.mjs +2 -0
  280. package/dist/esm/package-checks/secret-detection/options.mjs.map +1 -0
  281. package/dist/esm/package-checks/secret-detection/records.mjs +31 -0
  282. package/dist/esm/package-checks/secret-detection/records.mjs.map +1 -0
  283. package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs +85 -0
  284. package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs.map +1 -0
  285. package/dist/esm/project-definition/check-tree/authoring.mjs +12 -172
  286. package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -1
  287. package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs +171 -0
  288. package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs.map +1 -0
  289. package/dist/esm/project-definition/check-tree/collection-authoring.mjs +16 -0
  290. package/dist/esm/project-definition/check-tree/collection-authoring.mjs.map +1 -0
  291. package/dist/esm/project-definition/check-tree/materialization.mjs +9 -1
  292. package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -1
  293. package/dist/esm/project-definition/check-tree/resolution.mjs +45 -13
  294. package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -1
  295. package/dist/esm/project-definition/check-tree/scheduling-authoring.mjs +73 -0
  296. package/dist/esm/project-definition/check-tree/scheduling-authoring.mjs.map +1 -0
  297. package/dist/esm/project-definition/declarative-snapshot.mjs +73 -0
  298. package/dist/esm/project-definition/declarative-snapshot.mjs.map +1 -0
  299. package/dist/esm/project-definition/output-defaults.mjs +18 -1
  300. package/dist/esm/project-definition/output-defaults.mjs.map +1 -1
  301. package/dist/esm/project-definition/output-validation.mjs +15 -15
  302. package/dist/esm/project-definition/output-validation.mjs.map +1 -1
  303. package/dist/esm/project-definition/progress-rendering-output.mjs +52 -0
  304. package/dist/esm/project-definition/progress-rendering-output.mjs.map +1 -0
  305. package/dist/esm/project-definition/project-definition-validation.mjs +100 -16
  306. package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -1
  307. package/dist/esm/project-definition/project-definition.mjs +52 -47
  308. package/dist/esm/project-definition/project-definition.mjs.map +1 -1
  309. package/dist/esm/project-definition/resource-unit-mapping.mjs +21 -0
  310. package/dist/esm/project-definition/resource-unit-mapping.mjs.map +1 -0
  311. package/dist/esm/project-definition/scheduler-policy.mjs +2 -0
  312. package/dist/esm/project-definition/scheduler-policy.mjs.map +1 -0
  313. package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs +54 -0
  314. package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs.map +1 -0
  315. package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs +2 -0
  316. package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs.map +1 -0
  317. package/dist/esm/project-run/admission-strategy-provider/provider.mjs +23 -0
  318. package/dist/esm/project-run/admission-strategy-provider/provider.mjs.map +1 -0
  319. package/dist/esm/project-run/aggregation.mjs +7 -5
  320. package/dist/esm/project-run/aggregation.mjs.map +1 -1
  321. package/dist/esm/project-run/check-execution/callback.mjs +35 -8
  322. package/dist/esm/project-run/check-execution/callback.mjs.map +1 -1
  323. package/dist/esm/project-run/check-execution/console-capture.mjs +220 -0
  324. package/dist/esm/project-run/check-execution/console-capture.mjs.map +1 -0
  325. package/dist/esm/project-run/check-execution/dependencies.mjs +21 -3
  326. package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -1
  327. package/dist/esm/project-run/check-execution/execution-finalization.mjs +54 -13
  328. package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -1
  329. package/dist/esm/project-run/check-execution/execution-settlement.mjs +13 -9
  330. package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -1
  331. package/dist/esm/project-run/check-execution/flag-controls.mjs +87 -0
  332. package/dist/esm/project-run/check-execution/flag-controls.mjs.map +1 -0
  333. package/dist/esm/project-run/check-execution/lifecycle.mjs +2 -0
  334. package/dist/esm/project-run/check-execution/lifecycle.mjs.map +1 -0
  335. package/dist/esm/project-run/check-execution/messages.mjs +5 -0
  336. package/dist/esm/project-run/check-execution/messages.mjs.map +1 -1
  337. package/dist/esm/project-run/check-execution/plan.mjs +9 -5
  338. package/dist/esm/project-run/check-execution/plan.mjs.map +1 -1
  339. package/dist/esm/project-run/check-execution/preflight.mjs +18 -32
  340. package/dist/esm/project-run/check-execution/preflight.mjs.map +1 -1
  341. package/dist/esm/project-run/check-execution/resolved-checks.mjs +100 -58
  342. package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -1
  343. package/dist/esm/project-run/check-execution/resolved-execution-result.mjs +2 -0
  344. package/dist/esm/project-run/check-execution/resolved-execution-result.mjs.map +1 -0
  345. package/dist/esm/project-run/{completion.mjs → completion/completion.mjs} +16 -38
  346. package/dist/esm/project-run/completion/completion.mjs.map +1 -0
  347. package/dist/esm/project-run/{machine-publication.mjs → completion/machine-publication.mjs} +1 -1
  348. package/dist/esm/project-run/completion/machine-publication.mjs.map +1 -0
  349. package/dist/esm/project-run/completion/result-resolver.mjs +36 -0
  350. package/dist/esm/project-run/completion/result-resolver.mjs.map +1 -0
  351. package/dist/esm/project-run/controls/contract.mjs.map +1 -1
  352. package/dist/esm/project-run/controls/outputs-override-validation.mjs +67 -47
  353. package/dist/esm/project-run/controls/outputs-override-validation.mjs.map +1 -1
  354. package/dist/esm/project-run/controls/validation-result.mjs.map +1 -1
  355. package/dist/esm/project-run/controls/validation.mjs +75 -11
  356. package/dist/esm/project-run/controls/validation.mjs.map +1 -1
  357. package/dist/esm/project-run/diagnostic-logging/logger.mjs +100 -161
  358. package/dist/esm/project-run/diagnostic-logging/logger.mjs.map +1 -1
  359. package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs +159 -0
  360. package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs.map +1 -0
  361. package/dist/esm/project-run/invocation/candidate.mjs +61 -0
  362. package/dist/esm/project-run/invocation/candidate.mjs.map +1 -0
  363. package/dist/esm/project-run/invocation/creation.mjs +79 -0
  364. package/dist/esm/project-run/invocation/creation.mjs.map +1 -0
  365. package/dist/esm/project-run/invocation/paths.mjs +77 -0
  366. package/dist/esm/project-run/invocation/paths.mjs.map +1 -0
  367. package/dist/esm/project-run/invocation/progress.mjs +30 -0
  368. package/dist/esm/project-run/invocation/progress.mjs.map +1 -0
  369. package/dist/esm/project-run/{invocation.mjs → invocation/run.mjs} +78 -92
  370. package/dist/esm/project-run/invocation/run.mjs.map +1 -0
  371. package/dist/esm/project-run/invocation/scheduler.mjs +57 -0
  372. package/dist/esm/project-run/invocation/scheduler.mjs.map +1 -0
  373. package/dist/esm/project-run/{output-configuration.mjs → outputs/configuration.mjs} +3 -2
  374. package/dist/esm/project-run/outputs/configuration.mjs.map +1 -0
  375. package/dist/esm/project-run/outputs/status.mjs +105 -0
  376. package/dist/esm/project-run/outputs/status.mjs.map +1 -0
  377. package/dist/esm/project-run/progress-rendering/presentation.mjs +112 -18
  378. package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -1
  379. package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +108 -19
  380. package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -1
  381. package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +30 -4
  382. package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -1
  383. package/dist/esm/project-run/progress-rendering/renderer.mjs +5 -2
  384. package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -1
  385. package/dist/esm/project-run/project-context.mjs +1 -1
  386. package/dist/esm/project-run/project-context.mjs.map +1 -1
  387. package/dist/esm/project-run/result.mjs +2 -0
  388. package/dist/esm/project-run/result.mjs.map +1 -1
  389. package/dist/esm/project-run/run.mjs +1 -1
  390. package/dist/esm/project-run/run.mjs.map +1 -1
  391. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs +166 -0
  392. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs.map +1 -0
  393. package/dist/esm/project-run/task-scheduler/admission-core/core.mjs +163 -0
  394. package/dist/esm/project-run/task-scheduler/admission-core/core.mjs.map +1 -0
  395. package/dist/esm/project-run/task-scheduler/admission-core/input.mjs +119 -0
  396. package/dist/esm/project-run/task-scheduler/admission-core/input.mjs.map +1 -0
  397. package/dist/esm/project-run/task-scheduler/admission-core/projection.mjs +124 -0
  398. package/dist/esm/project-run/task-scheduler/admission-core/projection.mjs.map +1 -0
  399. package/dist/esm/project-run/task-scheduler/admission-core/selection-index.mjs +99 -0
  400. package/dist/esm/project-run/task-scheduler/admission-core/selection-index.mjs.map +1 -0
  401. package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs +198 -0
  402. package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs.map +1 -0
  403. package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs +151 -0
  404. package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs.map +1 -0
  405. package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs +121 -0
  406. package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs.map +1 -0
  407. package/dist/esm/project-run/task-scheduler/admission-core/selection.mjs +65 -0
  408. package/dist/esm/project-run/task-scheduler/admission-core/selection.mjs.map +1 -0
  409. package/dist/esm/project-run/task-scheduler/admission-scope-layers.mjs +25 -0
  410. package/dist/esm/project-run/task-scheduler/admission-scope-layers.mjs.map +1 -0
  411. package/dist/esm/project-run/task-scheduler/admission-selection-policy.mjs +55 -0
  412. package/dist/esm/project-run/task-scheduler/admission-selection-policy.mjs.map +1 -0
  413. package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs +46 -0
  414. package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs.map +1 -0
  415. package/dist/esm/project-run/task-scheduler/custom-admission-policy.mjs +110 -0
  416. package/dist/esm/project-run/task-scheduler/custom-admission-policy.mjs.map +1 -0
  417. package/dist/esm/project-run/task-scheduler/execution-state.mjs +34 -5
  418. package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -1
  419. package/dist/esm/project-run/task-scheduler/forced-block-effect-replay.mjs +46 -0
  420. package/dist/esm/project-run/task-scheduler/forced-block-effect-replay.mjs.map +1 -0
  421. package/dist/esm/project-run/task-scheduler/graph-validation.mjs +54 -26
  422. package/dist/esm/project-run/task-scheduler/graph-validation.mjs.map +1 -1
  423. package/dist/esm/project-run/task-scheduler/graph.mjs +79 -3
  424. package/dist/esm/project-run/task-scheduler/graph.mjs.map +1 -1
  425. package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs +207 -0
  426. package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs.map +1 -0
  427. package/dist/esm/project-run/task-scheduler/measurement/integrals.mjs +116 -0
  428. package/dist/esm/project-run/task-scheduler/measurement/integrals.mjs.map +1 -0
  429. package/dist/esm/project-run/task-scheduler/measurement/policy.mjs +67 -0
  430. package/dist/esm/project-run/task-scheduler/measurement/policy.mjs.map +1 -0
  431. package/dist/esm/project-run/task-scheduler/measurement/summary.mjs +123 -0
  432. package/dist/esm/project-run/task-scheduler/measurement/summary.mjs.map +1 -0
  433. package/dist/esm/project-run/task-scheduler/measurement/timing.mjs +158 -0
  434. package/dist/esm/project-run/task-scheduler/measurement/timing.mjs.map +1 -0
  435. package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs +90 -62
  436. package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs.map +1 -1
  437. package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs +20 -6
  438. package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs.map +1 -1
  439. package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs +5 -105
  440. package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs.map +1 -1
  441. package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs +0 -9
  442. package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs.map +1 -1
  443. package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs +48 -28
  444. package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs.map +1 -1
  445. package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs +89 -0
  446. package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs.map +1 -0
  447. package/dist/esm/project-run/task-scheduler/scheduler-task-lifecycle.mjs +94 -0
  448. package/dist/esm/project-run/task-scheduler/scheduler-task-lifecycle.mjs.map +1 -0
  449. package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs +66 -0
  450. package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs.map +1 -0
  451. package/dist/esm/project-run/task-scheduler/scheduler.mjs +171 -114
  452. package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -1
  453. package/docs/api-mechanics.md +64 -137
  454. package/docs/changelog.md +157 -0
  455. package/docs/checks/duplicate-detection.md +111 -59
  456. package/docs/checks/file-metrics.md +46 -43
  457. package/docs/checks/function-metrics.md +100 -163
  458. package/docs/checks/json-schema-validation.md +43 -36
  459. package/docs/checks/json-validation.md +38 -25
  460. package/docs/checks/maintenance-reminders.md +41 -29
  461. package/docs/checks/markdown-link-validation.md +82 -54
  462. package/docs/checks/secret-detection.md +129 -0
  463. package/docs/examples/artifacts/mixed-outcomes/definition.ts +5 -5
  464. package/docs/guides/cache-results.md +63 -0
  465. package/docs/guides/callbacks.md +34 -0
  466. package/docs/guides/check-dependencies.md +121 -0
  467. package/docs/guides/collecting-project-files.md +59 -0
  468. package/docs/guides/extending-check-lifecycle.md +112 -0
  469. package/docs/guides/finding-waivers.md +45 -0
  470. package/docs/guides/learned-scheduling.md +83 -0
  471. package/docs/guides/presenting-findings.md +54 -0
  472. package/docs/guides/run-outputs.md +145 -0
  473. package/docs/guides/scheduling.md +208 -0
  474. package/docs/guides/simulating-admission.md +55 -0
  475. package/docs/output.md +11 -20
  476. package/licenses/Lizard-1.24.0-MIT.txt +30 -0
  477. package/{third-party-licenses/momoa-3.3.12-LICENSE → licenses/Lizard-1.24.0-lizard.py-Apache-2.0.txt} +1 -0
  478. package/licenses/Pygments-2.18.0-BSD-2-Clause.txt +25 -0
  479. package/licenses/analyzer-translations-NOTICE.md +24 -0
  480. package/licenses/lizard-1.24.0-provenance.json +957 -0
  481. package/package.json +18 -6
  482. package/src/cache/cache-json-by-key.ts +304 -0
  483. package/src/check/check.ts +67 -17
  484. package/src/check/finding-presentation.ts +67 -0
  485. package/src/check/inherited-collection.ts +1 -1
  486. package/src/check-settlement/fact-validation.ts +29 -39
  487. package/src/check-settlement/outcome-normalization.ts +17 -35
  488. package/src/check-settlement/reason-shape.ts +20 -0
  489. package/src/check-settlement/record-store.ts +18 -15
  490. package/src/check-settlement/session.ts +12 -3
  491. package/src/data-boundary/closed-values.ts +29 -0
  492. package/src/data-boundary/value-shapes.ts +12 -0
  493. package/src/index.ts +70 -2
  494. package/src/learned-critical-path/duration-model/bounded-history.ts +108 -0
  495. package/src/learned-critical-path/duration-model/prediction.ts +181 -0
  496. package/src/learned-critical-path/duration-model/preparation.ts +77 -0
  497. package/src/learned-critical-path/duration-model/recording.ts +208 -0
  498. package/src/learned-critical-path/duration-model/storage.ts +252 -0
  499. package/src/learned-critical-path/selection-layers.ts +72 -0
  500. package/src/learned-critical-path/static-decision.ts +105 -0
  501. package/src/learned-critical-path/strategy.ts +299 -0
  502. package/src/machine-output/v4/atomic-publication.ts +1 -16
  503. package/src/package-checks/code-quality-findings/finding-waiver-authoring.ts +46 -0
  504. package/src/package-checks/code-quality-findings/finding-waiver-evidence.ts +95 -0
  505. package/src/package-checks/code-quality-findings/policy.ts +23 -0
  506. package/src/package-checks/duplicate-detection/area-policy.ts +24 -13
  507. package/src/package-checks/duplicate-detection/cache/identity.ts +1 -1
  508. package/src/package-checks/duplicate-detection/default-check.ts +1 -1
  509. package/src/package-checks/duplicate-detection/execution.ts +82 -22
  510. package/src/package-checks/duplicate-detection/finding-messages.ts +75 -0
  511. package/src/package-checks/duplicate-detection/finding-waiver-identity.ts +68 -0
  512. package/src/package-checks/duplicate-detection/jscpd/availability.ts +1 -1
  513. package/src/package-checks/duplicate-detection/jscpd/command-resolution.ts +1 -1
  514. package/src/package-checks/duplicate-detection/jscpd/json-report.ts +24 -5
  515. package/src/package-checks/duplicate-detection/jscpd/scanner.ts +6 -7
  516. package/src/package-checks/duplicate-detection/options-resolution.ts +32 -57
  517. package/src/package-checks/duplicate-detection/options-validation.ts +23 -31
  518. package/src/package-checks/duplicate-detection/options.ts +21 -1
  519. package/src/package-checks/duplicate-detection/records.ts +65 -12
  520. package/src/package-checks/file-metrics/execution.ts +16 -17
  521. package/src/package-checks/file-metrics/finding-messages.ts +29 -0
  522. package/src/package-checks/file-metrics/options-resolution.ts +19 -52
  523. package/src/package-checks/file-metrics/options-validation.ts +23 -32
  524. package/src/package-checks/file-metrics/records.ts +11 -23
  525. package/src/package-checks/file-metrics/scc/availability.ts +1 -1
  526. package/src/package-checks/file-metrics/scc/parser.ts +4 -4
  527. package/src/package-checks/file-metrics/scc/scanner.ts +2 -2
  528. package/src/package-checks/function-metrics/analysis.ts +76 -21
  529. package/src/package-checks/function-metrics/analyzer/analysis-context.ts +749 -0
  530. package/src/package-checks/function-metrics/analyzer/analysis-model.ts +421 -0
  531. package/src/package-checks/function-metrics/analyzer/contracts.ts +54 -0
  532. package/src/package-checks/function-metrics/analyzer/extension-output.ts +261 -0
  533. package/src/package-checks/function-metrics/analyzer/extensions/extension-base.ts +33 -0
  534. package/src/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.ts +27 -0
  535. package/src/package-checks/function-metrics/analyzer/extensions/lizardnd.ts +144 -0
  536. package/src/package-checks/function-metrics/analyzer/extensions/protocol.ts +345 -0
  537. package/src/package-checks/function-metrics/analyzer/extensions/registry.ts +157 -0
  538. package/src/package-checks/function-metrics/analyzer/pipeline.ts +311 -0
  539. package/src/package-checks/function-metrics/analyzer/port-facade.ts +142 -0
  540. package/src/package-checks/function-metrics/analyzer/reader-registry.ts +84 -0
  541. package/src/package-checks/function-metrics/analyzer/readers/csharp.ts +110 -0
  542. package/src/package-checks/function-metrics/analyzer/readers/erlang.ts +501 -0
  543. package/src/package-checks/function-metrics/analyzer/readers/fortran.ts +294 -0
  544. package/src/package-checks/function-metrics/analyzer/readers/gdscript.ts +42 -0
  545. package/src/package-checks/function-metrics/analyzer/readers/go.ts +53 -0
  546. package/src/package-checks/function-metrics/analyzer/readers/java-body-states.ts +141 -0
  547. package/src/package-checks/function-metrics/analyzer/readers/java.ts +270 -0
  548. package/src/package-checks/function-metrics/analyzer/readers/javascript.ts +19 -0
  549. package/src/package-checks/function-metrics/analyzer/readers/kotlin.ts +120 -0
  550. package/src/package-checks/function-metrics/analyzer/readers/lua.ts +68 -0
  551. package/src/package-checks/function-metrics/analyzer/readers/objc.ts +107 -0
  552. package/src/package-checks/function-metrics/analyzer/readers/perl.ts +340 -0
  553. package/src/package-checks/function-metrics/analyzer/readers/php-states.ts +246 -0
  554. package/src/package-checks/function-metrics/analyzer/readers/php.ts +63 -0
  555. package/src/package-checks/function-metrics/analyzer/readers/plsql.ts +306 -0
  556. package/src/package-checks/function-metrics/analyzer/readers/python.ts +431 -0
  557. package/src/package-checks/function-metrics/analyzer/readers/r.ts +234 -0
  558. package/src/package-checks/function-metrics/analyzer/readers/ruby.ts +88 -0
  559. package/src/package-checks/function-metrics/analyzer/readers/rust.ts +47 -0
  560. package/src/package-checks/function-metrics/analyzer/readers/scala.ts +60 -0
  561. package/src/package-checks/function-metrics/analyzer/readers/solidity.ts +32 -0
  562. package/src/package-checks/function-metrics/analyzer/readers/st.ts +161 -0
  563. package/src/package-checks/function-metrics/analyzer/readers/swift.ts +116 -0
  564. package/src/package-checks/function-metrics/analyzer/readers/tsx.ts +165 -0
  565. package/src/package-checks/function-metrics/analyzer/readers/ttcn.ts +90 -0
  566. package/src/package-checks/function-metrics/analyzer/readers/typescript.ts +593 -0
  567. package/src/package-checks/function-metrics/analyzer/readers/vue.ts +43 -0
  568. package/src/package-checks/function-metrics/analyzer/readers/zig.ts +35 -0
  569. package/src/package-checks/function-metrics/analyzer/shared/clike.ts +541 -0
  570. package/src/package-checks/function-metrics/analyzer/shared/code-reader.ts +682 -0
  571. package/src/package-checks/function-metrics/analyzer/shared/golike.ts +143 -0
  572. package/src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts +75 -0
  573. package/src/package-checks/function-metrics/analyzer/shared/rubylike.ts +161 -0
  574. package/src/package-checks/function-metrics/analyzer/shared/script-language.ts +50 -0
  575. package/src/package-checks/function-metrics/analyzer-adapter.ts +84 -0
  576. package/src/package-checks/function-metrics/analyzer-worker-contract.ts +10 -0
  577. package/src/package-checks/function-metrics/analyzer-worker-port.ts +150 -0
  578. package/src/package-checks/function-metrics/analyzer-worker.ts +31 -0
  579. package/src/package-checks/function-metrics/constructor.ts +2 -2
  580. package/src/package-checks/function-metrics/execution.ts +94 -39
  581. package/src/package-checks/function-metrics/finding-messages.ts +95 -0
  582. package/src/package-checks/function-metrics/finding-waiver-identity.ts +36 -0
  583. package/src/package-checks/function-metrics/measurement-model.ts +15 -1
  584. package/src/package-checks/function-metrics/measurement.ts +221 -36
  585. package/src/package-checks/function-metrics/options-resolution.ts +39 -75
  586. package/src/package-checks/function-metrics/options-validation.ts +30 -39
  587. package/src/package-checks/function-metrics/options.ts +27 -11
  588. package/src/package-checks/function-metrics/records.ts +73 -7
  589. package/src/package-checks/function-metrics/target-files.ts +10 -70
  590. package/src/package-checks/{file-metrics/scc → host-environment}/csv.ts +1 -2
  591. package/src/package-checks/host-environment/git.ts +2 -2
  592. package/src/package-checks/host-environment/process.ts +10 -0
  593. package/src/package-checks/json-schema-validation/final-data.ts +8 -0
  594. package/src/package-checks/json-schema-validation/options-validation.ts +16 -23
  595. package/src/package-checks/json-schema-validation/options.ts +23 -0
  596. package/src/package-checks/json-validation/final-data.ts +5 -0
  597. package/src/package-checks/json-validation/options-validation.ts +4 -18
  598. package/src/package-checks/maintenance-reminders/final-data.ts +18 -0
  599. package/src/package-checks/markdown-link-validation/default-check.ts +9 -3
  600. package/src/package-checks/markdown-link-validation/execution.ts +51 -57
  601. package/src/package-checks/markdown-link-validation/filesystem-probes.ts +108 -51
  602. package/src/package-checks/markdown-link-validation/final-data.ts +5 -0
  603. package/src/package-checks/markdown-link-validation/finding-messages.ts +48 -0
  604. package/src/package-checks/markdown-link-validation/local-resolution.ts +17 -9
  605. package/src/package-checks/markdown-link-validation/local-resolver.ts +5 -2
  606. package/src/package-checks/markdown-link-validation/options-resolution.ts +31 -3
  607. package/src/package-checks/markdown-link-validation/options-validation.ts +27 -19
  608. package/src/package-checks/markdown-link-validation/options.ts +15 -0
  609. package/src/package-checks/markdown-link-validation/parse-facts-cache-payload.ts +246 -0
  610. package/src/package-checks/markdown-link-validation/parse-facts-cache.ts +154 -0
  611. package/src/package-checks/markdown-link-validation/resolver-engine.ts +75 -65
  612. package/src/package-checks/markdown-link-validation/source-reader.ts +86 -0
  613. package/src/package-checks/markdown-link-validation/unavailable-reasons.ts +42 -0
  614. package/src/package-checks/project-files/collection.ts +1 -1
  615. package/src/package-checks/project-files/configuration.ts +3 -14
  616. package/src/package-checks/project-files/gitlink-revision.ts +1 -1
  617. package/src/package-checks/project-files/gitlink-worktree.ts +1 -1
  618. package/src/package-checks/project-files/public-collection.ts +92 -0
  619. package/src/package-checks/project-files/revision-worktree-files.ts +1 -1
  620. package/src/package-checks/secret-detection/classification.ts +30 -0
  621. package/src/package-checks/secret-detection/default-check.ts +50 -0
  622. package/src/package-checks/secret-detection/execution.ts +247 -0
  623. package/src/package-checks/secret-detection/final-data.ts +57 -0
  624. package/src/package-checks/secret-detection/finding-waiver-identity.ts +37 -0
  625. package/src/package-checks/secret-detection/input-preparation.ts +233 -0
  626. package/src/package-checks/secret-detection/options-resolution.ts +65 -0
  627. package/src/package-checks/secret-detection/options-validation.ts +27 -0
  628. package/src/package-checks/secret-detection/options.ts +36 -0
  629. package/src/package-checks/secret-detection/records.ts +77 -0
  630. package/src/package-checks/secret-detection/secretlint/adapter.ts +123 -0
  631. package/src/project-definition/check-tree/authoring.ts +29 -230
  632. package/src/project-definition/check-tree/check-fields-authoring.ts +227 -0
  633. package/src/project-definition/check-tree/collection-authoring.ts +13 -0
  634. package/src/project-definition/check-tree/materialization.ts +9 -1
  635. package/src/project-definition/check-tree/resolution.ts +80 -22
  636. package/src/project-definition/check-tree/scheduling-authoring.ts +114 -0
  637. package/src/project-definition/declarative-snapshot.ts +87 -0
  638. package/src/project-definition/output-defaults.ts +32 -1
  639. package/src/project-definition/output-validation.ts +15 -15
  640. package/src/project-definition/progress-rendering-output.ts +121 -0
  641. package/src/project-definition/project-definition-validation.ts +117 -18
  642. package/src/project-definition/project-definition.ts +198 -61
  643. package/src/project-definition/resource-unit-mapping.ts +25 -0
  644. package/src/project-definition/scheduler-policy.ts +553 -0
  645. package/src/project-run/admission-strategy-provider/custom-strategy-preparation.ts +80 -0
  646. package/src/project-run/admission-strategy-provider/prepared-admission-strategy.ts +27 -0
  647. package/src/project-run/admission-strategy-provider/provider.ts +45 -0
  648. package/src/project-run/aggregation.ts +10 -5
  649. package/src/project-run/check-execution/callback.ts +50 -8
  650. package/src/project-run/check-execution/console-capture.ts +262 -0
  651. package/src/project-run/check-execution/dependencies.ts +43 -6
  652. package/src/project-run/check-execution/execution-finalization.ts +99 -25
  653. package/src/project-run/check-execution/execution-settlement.ts +19 -11
  654. package/src/project-run/check-execution/flag-controls.ts +132 -0
  655. package/src/project-run/check-execution/lifecycle.ts +21 -0
  656. package/src/project-run/check-execution/messages.ts +8 -0
  657. package/src/project-run/check-execution/plan.ts +12 -8
  658. package/src/project-run/check-execution/preflight.ts +23 -43
  659. package/src/project-run/check-execution/resolved-checks.ts +165 -126
  660. package/src/project-run/check-execution/resolved-execution-result.ts +22 -0
  661. package/src/project-run/{completion.ts → completion/completion.ts} +17 -57
  662. package/src/project-run/{machine-publication.ts → completion/machine-publication.ts} +4 -4
  663. package/src/project-run/completion/result-resolver.ts +60 -0
  664. package/src/project-run/controls/contract.ts +25 -2
  665. package/src/project-run/controls/outputs-override-validation.ts +83 -60
  666. package/src/project-run/controls/validation-result.ts +17 -6
  667. package/src/project-run/controls/validation.ts +107 -12
  668. package/src/project-run/diagnostic-logging/logger.ts +132 -207
  669. package/src/project-run/diagnostic-logging/observation-rendering.ts +203 -0
  670. package/src/project-run/invocation/candidate.ts +86 -0
  671. package/src/project-run/invocation/creation.ts +116 -0
  672. package/src/project-run/invocation/paths.ts +154 -0
  673. package/src/project-run/invocation/progress.ts +38 -0
  674. package/src/project-run/{invocation.ts → invocation/run.ts} +125 -120
  675. package/src/project-run/invocation/scheduler.ts +75 -0
  676. package/src/project-run/{output-configuration.ts → outputs/configuration.ts} +6 -5
  677. package/src/project-run/outputs/status.ts +161 -0
  678. package/src/project-run/progress-rendering/presentation.ts +118 -26
  679. package/src/project-run/progress-rendering/renderer-formatting.ts +166 -19
  680. package/src/project-run/progress-rendering/renderer-lifecycle.ts +38 -3
  681. package/src/project-run/progress-rendering/renderer.ts +13 -2
  682. package/src/project-run/project-context.ts +3 -2
  683. package/src/project-run/result.ts +49 -3
  684. package/src/project-run/run.ts +7 -6
  685. package/src/project-run/task-scheduler/admission-core/compiled-graph.ts +316 -0
  686. package/src/project-run/task-scheduler/admission-core/core.ts +278 -0
  687. package/src/project-run/task-scheduler/admission-core/input.ts +138 -0
  688. package/src/project-run/task-scheduler/admission-core/projection.ts +164 -0
  689. package/src/project-run/task-scheduler/admission-core/selection-index.ts +165 -0
  690. package/src/project-run/task-scheduler/admission-core/selection-query.ts +295 -0
  691. package/src/project-run/task-scheduler/admission-core/selection-seed.ts +252 -0
  692. package/src/project-run/task-scheduler/admission-core/selection-transition.ts +236 -0
  693. package/src/project-run/task-scheduler/admission-core/selection.ts +140 -0
  694. package/src/project-run/task-scheduler/admission-core/trace.ts +177 -0
  695. package/src/project-run/task-scheduler/admission-scope-layers.ts +44 -0
  696. package/src/project-run/task-scheduler/admission-selection-policy.ts +116 -0
  697. package/src/project-run/task-scheduler/critical-path-ranking.ts +76 -0
  698. package/src/project-run/task-scheduler/custom-admission-policy.ts +128 -0
  699. package/src/project-run/task-scheduler/execution-state.ts +97 -6
  700. package/src/project-run/task-scheduler/forced-block-effect-replay.ts +68 -0
  701. package/src/project-run/task-scheduler/graph-validation.ts +77 -31
  702. package/src/project-run/task-scheduler/graph.ts +111 -3
  703. package/src/project-run/task-scheduler/measurement/diagnostics.ts +261 -0
  704. package/src/project-run/task-scheduler/measurement/integrals.ts +177 -0
  705. package/src/project-run/task-scheduler/measurement/policy.ts +105 -0
  706. package/src/project-run/task-scheduler/measurement/summary.ts +175 -0
  707. package/src/project-run/task-scheduler/measurement/timing.ts +190 -0
  708. package/src/project-run/task-scheduler/scheduler-admission-decision.ts +143 -134
  709. package/src/project-run/task-scheduler/scheduler-blocker-summary.ts +34 -9
  710. package/src/project-run/task-scheduler/scheduler-decision-inspection.ts +28 -170
  711. package/src/project-run/task-scheduler/scheduler-decision-model.ts +36 -40
  712. package/src/project-run/task-scheduler/scheduler-decision.ts +68 -36
  713. package/src/project-run/task-scheduler/scheduler-observation.ts +124 -0
  714. package/src/project-run/task-scheduler/scheduler-task-lifecycle.ts +150 -0
  715. package/src/project-run/task-scheduler/scheduler-terminal-measurement.ts +95 -0
  716. package/src/project-run/task-scheduler/scheduler.ts +216 -171
  717. package/types/cache/cache-json-by-key.d.ts +53 -0
  718. package/types/check/check.d.ts +62 -17
  719. package/types/check/finding-presentation.d.ts +25 -0
  720. package/types/check/inherited-collection.d.ts +1 -1
  721. package/types/check-settlement/reason-shape.d.ts +5 -0
  722. package/types/check-settlement/record-store.d.ts +2 -2
  723. package/types/check-settlement/session.d.ts +3 -1
  724. package/types/data-boundary/closed-values.d.ts +8 -0
  725. package/types/data-boundary/value-shapes.d.ts +3 -0
  726. package/types/index.d.ts +22 -7
  727. package/types/learned-critical-path/duration-model/bounded-history.d.ts +34 -0
  728. package/types/learned-critical-path/duration-model/prediction.d.ts +32 -0
  729. package/types/learned-critical-path/duration-model/preparation.d.ts +28 -0
  730. package/types/learned-critical-path/duration-model/recording.d.ts +28 -0
  731. package/types/learned-critical-path/duration-model/storage.d.ts +12 -0
  732. package/types/learned-critical-path/selection-layers.d.ts +14 -0
  733. package/types/learned-critical-path/static-decision.d.ts +3 -0
  734. package/types/learned-critical-path/strategy.d.ts +35 -0
  735. package/types/package-checks/code-quality-findings/finding-waiver-authoring.d.ts +7 -0
  736. package/types/package-checks/code-quality-findings/finding-waiver-evidence.d.ts +34 -0
  737. package/types/package-checks/code-quality-findings/policy.d.ts +4 -0
  738. package/types/package-checks/duplicate-detection/area-policy.d.ts +1 -1
  739. package/types/package-checks/duplicate-detection/finding-messages.d.ts +7 -0
  740. package/types/package-checks/duplicate-detection/finding-waiver-identity.d.ts +3 -0
  741. package/types/package-checks/duplicate-detection/jscpd/command-resolution.d.ts +1 -1
  742. package/types/package-checks/duplicate-detection/options.d.ts +18 -1
  743. package/types/package-checks/duplicate-detection/records.d.ts +20 -3
  744. package/types/package-checks/file-metrics/finding-messages.d.ts +4 -0
  745. package/types/package-checks/file-metrics/records.d.ts +5 -10
  746. package/types/package-checks/file-metrics/scc/parser.d.ts +4 -4
  747. package/types/package-checks/function-metrics/analysis.d.ts +1 -1
  748. package/types/package-checks/function-metrics/analyzer/analysis-context.d.ts +174 -0
  749. package/types/package-checks/function-metrics/analyzer/analysis-model.d.ts +135 -0
  750. package/types/package-checks/function-metrics/analyzer/contracts.d.ts +48 -0
  751. package/types/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.d.ts +13 -0
  752. package/types/package-checks/function-metrics/analyzer/extensions/lizardnd.d.ts +28 -0
  753. package/types/package-checks/function-metrics/analyzer/extensions/protocol.d.ts +99 -0
  754. package/types/package-checks/function-metrics/analyzer/extensions/registry.d.ts +34 -0
  755. package/types/package-checks/function-metrics/analyzer/pipeline.d.ts +67 -0
  756. package/types/package-checks/function-metrics/analyzer/port-facade.d.ts +38 -0
  757. package/types/package-checks/function-metrics/analyzer/reader-registry.d.ts +18 -0
  758. package/types/package-checks/function-metrics/analyzer/readers/csharp.d.ts +22 -0
  759. package/types/package-checks/function-metrics/analyzer/readers/erlang.d.ts +22 -0
  760. package/types/package-checks/function-metrics/analyzer/readers/fortran.d.ts +29 -0
  761. package/types/package-checks/function-metrics/analyzer/readers/gdscript.d.ts +18 -0
  762. package/types/package-checks/function-metrics/analyzer/readers/go.d.ts +18 -0
  763. package/types/package-checks/function-metrics/analyzer/readers/java-body-states.d.ts +18 -0
  764. package/types/package-checks/function-metrics/analyzer/readers/java.d.ts +44 -0
  765. package/types/package-checks/function-metrics/analyzer/readers/javascript.d.ts +14 -0
  766. package/types/package-checks/function-metrics/analyzer/readers/kotlin.d.ts +23 -0
  767. package/types/package-checks/function-metrics/analyzer/readers/lua.d.ts +16 -0
  768. package/types/package-checks/function-metrics/analyzer/readers/objc.d.ts +18 -0
  769. package/types/package-checks/function-metrics/analyzer/readers/perl.d.ts +28 -0
  770. package/types/package-checks/function-metrics/analyzer/readers/php-states.d.ts +41 -0
  771. package/types/package-checks/function-metrics/analyzer/readers/php.d.ts +22 -0
  772. package/types/package-checks/function-metrics/analyzer/readers/plsql.d.ts +24 -0
  773. package/types/package-checks/function-metrics/analyzer/readers/python.d.ts +50 -0
  774. package/types/package-checks/function-metrics/analyzer/readers/r.d.ts +22 -0
  775. package/types/package-checks/function-metrics/analyzer/readers/ruby.d.ts +16 -0
  776. package/types/package-checks/function-metrics/analyzer/readers/rust.d.ts +20 -0
  777. package/types/package-checks/function-metrics/analyzer/readers/scala.d.ts +20 -0
  778. package/types/package-checks/function-metrics/analyzer/readers/solidity.d.ts +19 -0
  779. package/types/package-checks/function-metrics/analyzer/readers/st.d.ts +37 -0
  780. package/types/package-checks/function-metrics/analyzer/readers/swift.d.ts +30 -0
  781. package/types/package-checks/function-metrics/analyzer/readers/tsx.d.ts +15 -0
  782. package/types/package-checks/function-metrics/analyzer/readers/ttcn.d.ts +22 -0
  783. package/types/package-checks/function-metrics/analyzer/readers/typescript.d.ts +35 -0
  784. package/types/package-checks/function-metrics/analyzer/readers/vue.d.ts +18 -0
  785. package/types/package-checks/function-metrics/analyzer/readers/zig.d.ts +19 -0
  786. package/types/package-checks/function-metrics/analyzer/shared/clike.d.ts +101 -0
  787. package/types/package-checks/function-metrics/analyzer/shared/code-reader.d.ts +176 -0
  788. package/types/package-checks/function-metrics/analyzer/shared/golike.d.ts +39 -0
  789. package/types/package-checks/function-metrics/analyzer/shared/js-style-regex.d.ts +16 -0
  790. package/types/package-checks/function-metrics/analyzer/shared/rubylike.d.ts +40 -0
  791. package/types/package-checks/function-metrics/analyzer/shared/script-language.d.ts +17 -0
  792. package/types/package-checks/function-metrics/analyzer-adapter.d.ts +26 -0
  793. package/types/package-checks/function-metrics/analyzer-worker-contract.d.ts +5 -0
  794. package/types/package-checks/function-metrics/analyzer-worker-port.d.ts +24 -0
  795. package/types/package-checks/function-metrics/analyzer-worker.d.ts +1 -0
  796. package/types/package-checks/function-metrics/constructor.d.ts +1 -1
  797. package/types/package-checks/function-metrics/execution.d.ts +5 -2
  798. package/types/package-checks/function-metrics/finding-messages.d.ts +9 -0
  799. package/types/package-checks/function-metrics/finding-waiver-identity.d.ts +2 -0
  800. package/types/package-checks/function-metrics/measurement-model.d.ts +13 -1
  801. package/types/package-checks/function-metrics/measurement.d.ts +22 -7
  802. package/types/package-checks/function-metrics/options.d.ts +23 -10
  803. package/types/package-checks/function-metrics/records.d.ts +24 -5
  804. package/types/package-checks/function-metrics/target-files.d.ts +4 -3
  805. package/types/package-checks/host-environment/csv.d.ts +2 -0
  806. package/types/package-checks/host-environment/git.d.ts +1 -1
  807. package/types/package-checks/host-environment/process.d.ts +5 -0
  808. package/types/package-checks/json-schema-validation/final-data.d.ts +8 -0
  809. package/types/package-checks/json-schema-validation/options.d.ts +31 -3
  810. package/types/package-checks/json-validation/final-data.d.ts +5 -0
  811. package/types/package-checks/maintenance-reminders/final-data.d.ts +18 -0
  812. package/types/package-checks/markdown-link-validation/default-check.d.ts +9 -3
  813. package/types/package-checks/markdown-link-validation/execution.d.ts +1 -3
  814. package/types/package-checks/markdown-link-validation/final-data.d.ts +5 -0
  815. package/types/package-checks/markdown-link-validation/finding-messages.d.ts +4 -0
  816. package/types/package-checks/markdown-link-validation/local-resolution.d.ts +12 -6
  817. package/types/package-checks/markdown-link-validation/local-resolver.d.ts +2 -1
  818. package/types/package-checks/markdown-link-validation/options.d.ts +15 -0
  819. package/types/package-checks/markdown-link-validation/parse-facts-cache-payload.d.ts +24 -0
  820. package/types/package-checks/markdown-link-validation/parse-facts-cache.d.ts +13 -0
  821. package/types/package-checks/markdown-link-validation/resolver-engine.d.ts +6 -4
  822. package/types/package-checks/markdown-link-validation/source-reader.d.ts +11 -0
  823. package/types/package-checks/markdown-link-validation/unavailable-reasons.d.ts +4 -0
  824. package/types/package-checks/project-files/public-collection.d.ts +16 -0
  825. package/types/package-checks/secret-detection/classification.d.ts +12 -0
  826. package/types/package-checks/secret-detection/default-check.d.ts +11 -0
  827. package/types/package-checks/secret-detection/execution.d.ts +14 -0
  828. package/types/package-checks/secret-detection/final-data.d.ts +15 -0
  829. package/types/package-checks/secret-detection/finding-waiver-identity.d.ts +5 -0
  830. package/types/package-checks/secret-detection/input-preparation.d.ts +24 -0
  831. package/types/package-checks/secret-detection/options-resolution.d.ts +6 -0
  832. package/types/package-checks/secret-detection/options-validation.d.ts +3 -0
  833. package/types/package-checks/secret-detection/options.d.ts +32 -0
  834. package/types/package-checks/secret-detection/records.d.ts +35 -0
  835. package/types/package-checks/secret-detection/secretlint/adapter.d.ts +28 -0
  836. package/types/project-definition/check-tree/authoring.d.ts +11 -14
  837. package/types/project-definition/check-tree/check-fields-authoring.d.ts +25 -0
  838. package/types/project-definition/check-tree/collection-authoring.d.ts +2 -0
  839. package/types/project-definition/check-tree/resolution.d.ts +8 -3
  840. package/types/project-definition/check-tree/scheduling-authoring.d.ts +19 -0
  841. package/types/project-definition/declarative-snapshot.d.ts +7 -0
  842. package/types/project-definition/output-defaults.d.ts +7 -0
  843. package/types/project-definition/output-validation.d.ts +2 -1
  844. package/types/project-definition/progress-rendering-output.d.ts +41 -0
  845. package/types/project-definition/project-definition.d.ts +61 -16
  846. package/types/project-definition/resource-unit-mapping.d.ts +4 -0
  847. package/types/project-definition/scheduler-policy.d.ts +497 -0
  848. package/types/project-run/admission-strategy-provider/custom-strategy-preparation.d.ts +9 -0
  849. package/types/project-run/admission-strategy-provider/prepared-admission-strategy.d.ts +23 -0
  850. package/types/project-run/admission-strategy-provider/provider.d.ts +13 -0
  851. package/types/project-run/aggregation.d.ts +1 -1
  852. package/types/project-run/check-execution/callback.d.ts +5 -1
  853. package/types/project-run/check-execution/console-capture.d.ts +18 -0
  854. package/types/project-run/check-execution/dependencies.d.ts +1 -1
  855. package/types/project-run/check-execution/execution-finalization.d.ts +17 -7
  856. package/types/project-run/check-execution/execution-settlement.d.ts +5 -2
  857. package/types/project-run/check-execution/flag-controls.d.ts +27 -0
  858. package/types/project-run/check-execution/lifecycle.d.ts +20 -0
  859. package/types/project-run/check-execution/messages.d.ts +2 -0
  860. package/types/project-run/check-execution/plan.d.ts +2 -3
  861. package/types/project-run/check-execution/preflight.d.ts +6 -5
  862. package/types/project-run/check-execution/resolved-checks.d.ts +32 -38
  863. package/types/project-run/check-execution/resolved-execution-result.d.ts +21 -0
  864. package/types/project-run/{completion.d.ts → completion/completion.d.ts} +4 -4
  865. package/types/project-run/{machine-publication.d.ts → completion/machine-publication.d.ts} +3 -3
  866. package/types/project-run/completion/result-resolver.d.ts +4 -0
  867. package/types/project-run/controls/contract.d.ts +25 -2
  868. package/types/project-run/controls/outputs-override-validation.d.ts +2 -1
  869. package/types/project-run/controls/validation-result.d.ts +12 -4
  870. package/types/project-run/diagnostic-logging/logger.d.ts +34 -4
  871. package/types/project-run/diagnostic-logging/observation-rendering.d.ts +7 -0
  872. package/types/project-run/invocation/candidate.d.ts +12 -0
  873. package/types/project-run/{invocation-creation.d.ts → invocation/creation.d.ts} +3 -3
  874. package/types/project-run/invocation/paths.d.ts +40 -0
  875. package/types/project-run/invocation/progress.d.ts +11 -0
  876. package/types/project-run/invocation/run.d.ts +43 -0
  877. package/types/project-run/invocation/scheduler.d.ts +16 -0
  878. package/types/project-run/outputs/configuration.d.ts +3 -0
  879. package/types/project-run/outputs/status.d.ts +48 -0
  880. package/types/project-run/progress-rendering/presentation.d.ts +9 -5
  881. package/types/project-run/progress-rendering/renderer-formatting.d.ts +8 -0
  882. package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +6 -1
  883. package/types/project-run/progress-rendering/renderer.d.ts +7 -1
  884. package/types/project-run/project-context.d.ts +2 -1
  885. package/types/project-run/result.d.ts +37 -3
  886. package/types/project-run/run.d.ts +6 -5
  887. package/types/project-run/task-scheduler/admission-core/compiled-graph.d.ts +31 -0
  888. package/types/project-run/task-scheduler/admission-core/core.d.ts +57 -0
  889. package/types/project-run/task-scheduler/admission-core/input.d.ts +4 -0
  890. package/types/project-run/task-scheduler/admission-core/projection.d.ts +22 -0
  891. package/types/project-run/task-scheduler/admission-core/selection-index.d.ts +61 -0
  892. package/types/project-run/task-scheduler/admission-core/selection-query.d.ts +28 -0
  893. package/types/project-run/task-scheduler/admission-core/selection-seed.d.ts +9 -0
  894. package/types/project-run/task-scheduler/admission-core/selection-transition.d.ts +4 -0
  895. package/types/project-run/task-scheduler/admission-core/selection.d.ts +20 -0
  896. package/types/project-run/task-scheduler/admission-scope-layers.d.ts +8 -0
  897. package/types/project-run/task-scheduler/admission-selection-policy.d.ts +31 -0
  898. package/types/project-run/task-scheduler/critical-path-ranking.d.ts +19 -0
  899. package/types/project-run/task-scheduler/custom-admission-policy.d.ts +6 -0
  900. package/types/project-run/task-scheduler/execution-state.d.ts +43 -1
  901. package/types/project-run/task-scheduler/forced-block-effect-replay.d.ts +9 -0
  902. package/types/project-run/task-scheduler/graph-validation.d.ts +3 -2
  903. package/types/project-run/task-scheduler/graph.d.ts +15 -0
  904. package/types/project-run/task-scheduler/measurement/diagnostics.d.ts +47 -0
  905. package/types/project-run/task-scheduler/measurement/integrals.d.ts +27 -0
  906. package/types/project-run/task-scheduler/measurement/policy.d.ts +10 -0
  907. package/types/project-run/task-scheduler/measurement/summary.d.ts +3 -0
  908. package/types/project-run/task-scheduler/measurement/timing.d.ts +33 -0
  909. package/types/project-run/task-scheduler/scheduler-admission-decision.d.ts +13 -1
  910. package/types/project-run/task-scheduler/scheduler-decision-inspection.d.ts +20 -19
  911. package/types/project-run/task-scheduler/scheduler-decision-model.d.ts +38 -22
  912. package/types/project-run/task-scheduler/scheduler-decision.d.ts +4 -1
  913. package/types/project-run/task-scheduler/scheduler-observation.d.ts +14 -0
  914. package/types/project-run/task-scheduler/scheduler-task-lifecycle.d.ts +18 -0
  915. package/types/project-run/task-scheduler/scheduler-terminal-measurement.d.ts +9 -0
  916. package/dist/esm/package-checks/file-metrics/scc/csv.mjs.map +0 -1
  917. package/dist/esm/package-checks/function-metrics/lizard/availability.mjs +0 -64
  918. package/dist/esm/package-checks/function-metrics/lizard/availability.mjs.map +0 -1
  919. package/dist/esm/package-checks/function-metrics/lizard/csv.mjs +0 -17
  920. package/dist/esm/package-checks/function-metrics/lizard/csv.mjs.map +0 -1
  921. package/dist/esm/package-checks/function-metrics/lizard/parser.mjs +0 -138
  922. package/dist/esm/package-checks/function-metrics/lizard/parser.mjs.map +0 -1
  923. package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs +0 -35
  924. package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs.map +0 -1
  925. package/dist/esm/package-checks/host-environment/process/command.mjs +0 -13
  926. package/dist/esm/package-checks/host-environment/process/command.mjs.map +0 -1
  927. package/dist/esm/project-run/completion.mjs.map +0 -1
  928. package/dist/esm/project-run/invocation-creation.mjs +0 -111
  929. package/dist/esm/project-run/invocation-creation.mjs.map +0 -1
  930. package/dist/esm/project-run/invocation.mjs.map +0 -1
  931. package/dist/esm/project-run/machine-publication.mjs.map +0 -1
  932. package/dist/esm/project-run/output-configuration.mjs.map +0 -1
  933. package/dist/esm/project-run/output-status.mjs +0 -43
  934. package/dist/esm/project-run/output-status.mjs.map +0 -1
  935. package/src/package-checks/function-metrics/lizard/availability.ts +0 -90
  936. package/src/package-checks/function-metrics/lizard/csv.ts +0 -20
  937. package/src/package-checks/function-metrics/lizard/parser.ts +0 -179
  938. package/src/package-checks/function-metrics/lizard/scanner.ts +0 -62
  939. package/src/package-checks/host-environment/process/command.ts +0 -21
  940. package/src/project-run/invocation-creation.ts +0 -160
  941. package/src/project-run/output-status.ts +0 -69
  942. package/types/package-checks/file-metrics/scc/csv.d.ts +0 -1
  943. package/types/package-checks/function-metrics/lizard/availability.d.ts +0 -11
  944. package/types/package-checks/function-metrics/lizard/csv.d.ts +0 -1
  945. package/types/package-checks/function-metrics/lizard/parser.d.ts +0 -17
  946. package/types/package-checks/function-metrics/lizard/scanner.d.ts +0 -15
  947. package/types/package-checks/host-environment/process/command.d.ts +0 -7
  948. package/types/project-run/invocation.d.ts +0 -34
  949. package/types/project-run/output-configuration.d.ts +0 -3
  950. package/types/project-run/output-status.d.ts +0 -21
@@ -1,12 +1,34 @@
1
1
  # `markdownLinkValidation`
2
2
 
3
- 返回 [README 的随包 Check 概览](../../README.md#随包提供的-check)。
4
-
5
3
  ## 用途
6
4
 
7
- 本页说明 `markdownLinkValidation` 的 options、terminal effects 与安全边界。该 Check 离线验证 selected Markdown
8
- sources 中的本机链接、图片目标与标题锚点。`markdownLinkValidation(options?)` 补齐默认值并返回可直接放入 Project
9
- Definition `checks` 的普通 Check。
5
+ `markdownLinkValidation(options?)` 构造普通 Check,离线验证所选 Markdown 中的本机链接、图片目标与标题锚点。
6
+
7
+ ## 最小用法
8
+
9
+ 示例保留终端进度,不写 machine files。
10
+
11
+ ```ts
12
+ import { defineConfig, markdownLinkValidation, run } from "@zxyycom/vibe-check";
13
+
14
+ const check = markdownLinkValidation({ findingPolicy: "blocking" });
15
+ const result = await run(defineConfig({
16
+ checks: [check],
17
+ outputs: { machinePublication: { enabled: false } }
18
+ }));
19
+ const outcome = result.kind === "completed"
20
+ ? result.snapshot.checks.find(({ checkId }) => checkId === check.checkId)?.outcome
21
+ : undefined;
22
+ if (result.kind !== "completed" || outcome?.status !== "passed") {
23
+ console.error(`Markdown link validation did not pass: ${result.kind} / ${outcome?.status ?? "no outcome"}`);
24
+ process.exitCode = 1;
25
+ }
26
+ ```
27
+
28
+ 示例显式使用 `findingPolicy: "blocking"`,让普通链接 Finding 导致失败;默认 `non-blocking` 只警告,不因 Finding 退出非零。
29
+
30
+ 本例只接受 `completed` Run 中的 `passed` Check,否则退出非零。若需接受 `not-applicable` 或聚合多个 Check,
31
+ 显式配置并读取 [`checkAggregation`](../api-mechanics.md#runcontrols-与-check-aggregation);`run(...)` 返回本身不表示通过。
10
32
 
11
33
  ## 参数与默认配置
12
34
 
@@ -23,6 +45,9 @@ Definition `checks` 的普通 Check。
23
45
  validateCrossDocumentAnchors: true,
24
46
  rootExternalTargetMode: "report",
25
47
  requireNonEmptyDirectories: false,
48
+ cache: {
49
+ enabled: false
50
+ },
26
51
  limits: {
27
52
  maxMarkdownBytes: 1_048_576,
28
53
  maxOccurrences: 10_000,
@@ -31,23 +56,19 @@ Definition `checks` 的普通 Check。
31
56
  }
32
57
  ```
33
58
 
34
- 上面的代码块是无参调用物化后的完整 resolved options;`exclude` 表示 constructor detached-copy 了 package root 公开
35
- `defaultProjectFileSelection.exclude` 的全部条目,不是调用方必须复制的输入。所有顶层 authoring fields 都可省略,
36
- `files` 与 `limits` 内的字段也可分别省略。显式 `include` / `exclude` 数组是完整替换值;显式宽泛 include 选中的非 Markdown
37
- path 会产生拒绝 Finding,而不是被静默过滤。
38
-
39
- - `files` 定义 Markdown source selection;source 可选 `filesystem` 或 `git-worktree`,selected path 必须命中
40
- `include` 且不能命中 `exclude`。filesystem 不解释 `.gitignore`;git-worktree 使用已跟踪文件和未被 Git 标准忽略
41
- 规则排除的未跟踪文件。其中 extension 大小写不敏感的 `.md` / `.markdown` 成为 sources,direct targets 仅用于
42
- resolution;来源不可用时 Check 结算为 `unavailable`,不会切换到另一来源。
43
- - `findingPolicy` 为 `blocking | non-blocking`,默认 `non-blocking`。它只结算本 Check 的 normal local-reference
44
- findings:`blocking` 使 finding outcome 为 `failed`,`non-blocking` 保留相同的 Records、计数与 final data,但以
45
- `passed` outcome 和 warning message 提示;它不会改写 Project Run、aggregation 或 Gate outcome。
59
+ 无参调用物化上述完整 options,`exclude` 是公开 `defaultProjectFileSelection.exclude` 的独立副本。
60
+ 所有顶层字段及 `files`、`limits` 子字段都可省略。
61
+
62
+ - `files` 遵循[共享 files 选择语义](../guides/collecting-project-files.md#共享的-files-选择语义)。只有大小写不敏感的
63
+ `.md` / `.markdown` 成为 sources;其它 selected paths 发布拒绝 Finding。direct targets 仅供 resolution,不扩大 source selection。
64
+ - `findingPolicy` 为 `blocking | non-blocking`,默认 `non-blocking`,只决定本 Check 的普通链接 Finding 是否导致失败,不改写 Run、aggregation 或 Gate outcome;Records 与计数不随 policy 改变。
46
65
  - `requireExistingTargets` 控制缺失 direct local target 是否是 finding。
47
66
  - `validateSameDocumentAnchors` / `validateCrossDocumentAnchors` 分别控制当前文档与直接 Markdown target 的 heading
48
67
  lookup。
49
68
  - `rootExternalTargetMode` 为 `ignore | report | validate`;只有显式 `validate` 才授权 bounded root-external target I/O。
50
69
  - `requireNonEmptyDirectories` 启用时最多读取 direct directory 的一个 entry,不递归遍历。
70
+ - `cache` 默认 `{ enabled: false }`,不访问 cache filesystem,且不能带 `directory`。启用 branch 必须为
71
+ `{ enabled: true, directory }`,其中 directory 是非空、无 U+0000 的 host-absolute path;安全与失败行为见 [Parse-facts cache](#parse-facts-cache)。
51
72
  - `limits` 限制单文档 bytes、全部 semantic occurrences 与 direct target reads;constructor 会补齐该 branch 中省略的
52
73
  fields。`maxMarkdownBytes` 不得超过 `16_777_216`,`maxOccurrences` 不得超过 `100_000`,
53
74
  `maxTargetReads` 不得超过 `10_000`。
@@ -69,13 +90,24 @@ const documentationLinks = markdownLinkValidation({
69
90
  });
70
91
  ```
71
92
 
93
+ ### Parse-facts cache
94
+
95
+ 启用后,cache 在调用方指定的 absolute directory 保存可删除的 Markdown parse facts;调用方负责目录容量与删除。
96
+ 它不是输出目录,也不提供机密性或防篡改保护;不愿复制到本地状态的 Markdown 不应启用 cache。
97
+
98
+ 命中只避免重复计算 parse facts;每次仍用当前 selection、Markdown bytes 与 target policy 形成 Finding、Record 和 outcome,
99
+ 不改变 Check ID 或 finding policy。无法恢复 facts 时 fresh-parse;写入失败只影响后续复用,不改变本次结果或任何发布字段。
100
+ publication 开始前取消不会启动写入;append 开始后会等待完成。cache 不缓存 settlement,也不保证跨进程协调、持久性或自动清理。
101
+
72
102
  ## 工作原理
73
103
 
74
- Check 验证 options,收集 Markdown source paths,每份 source decode / parse 一次,再处理 supported inline、
75
- reference 与 autolink occurrences。完整 selected paths 先按 `.md` / `.markdown` suffix 分为 accepted/rejected,每个
76
- rejected path 产生 supplemental Record,只有 accepted path 成为 source。target file、directory 与 GitHub-priority heading
77
- anchor 按上面 policy 做 bounded validation;每个 link finding 产生另一种 supplemental Record。direct target 可以参与当前
78
- occurrence validation,source discovery 始终由 `files` selection 决定。
104
+ Check 先验证 options,按本页 suffix 规则完整分类 selected paths,为 rejected paths 发布 Records,再解析 accepted sources。
105
+ 对 file、directory 与 GitHub-priority heading anchor 按 policy 做 bounded validation;每个普通链接 Finding 另发 Record。
106
+
107
+ 一次 invocation 内,同一 canonical Markdown target 的成功 parsed headings 可以被多个 cross-document anchor occurrence
108
+ 复用。它只复用首次成功 snapshot:target 随后变化时,本次 invocation 继续使用该 snapshot;target failure 不被 memoize。每个
109
+ occurrence 仍独立完成 destination classification、containment 与 endpoint probe,并且在 memo lookup 前消耗一个
110
+ `maxTargetReads` 额度。因此 `targetReadCount` 和 limit 仍是 logical occurrence 计数,不是 physical file-read 计数。
79
111
 
80
112
  受支持 occurrence 包含 inline link/image、已定义的 full/collapsed/shortcut reference、explicit autolink 和选定的 GFM
81
113
  autolink literal。YAML front matter、code/fenced code、HTML attribute、普通 prose URL 与 undefined reference 不进入本
@@ -84,9 +116,8 @@ Check 的 occurrence 集合。HTTP(S)、`mailto:` 与其它非本地 target 只
84
116
  ## 效果与结果
85
117
 
86
118
  没有 normal link finding 时 outcome 为 `passed`;有 normal link finding 时,`findingPolicy: "blocking"` 为 `failed`,
87
- `findingPolicy: "non-blocking"` 为 `passed`。input rejection 固定 non-blocking,不受该 policy 影响。两种 finding policy 都
88
- 保留相同的 final data 与每 finding 一条 Record;blocking link finding 附带 `invalid-local-links` error message,
89
- non-blocking link finding 附带同 code 的 warning message。正常 final data 恰为:
119
+ `findingPolicy: "non-blocking"` 为 `passed`。input rejection 固定 non-blocking,不受该 policy 影响。
120
+ 两种 policy 保留相同 final data 与每 Finding 一条 Record。正常 final data 恰为:
90
121
 
91
122
  ```ts
92
123
  {
@@ -99,8 +130,9 @@ non-blocking link finding 附带同 code 的 warning message。正常 final data
99
130
  ```
100
131
 
101
132
  `occurrenceCount` 包含所有 parser-semantic occurrences,包括没有进入 local target validation 的项;
102
- `targetReadCount` 统计进入 direct endpoint validation 的 occurrence;`findingCount - rejectedInputCount` 是 normal link
103
- finding 数量并且不超过 `occurrenceCount`。每个 normal link finding 恰好形成一条 Record,data 恰为:
133
+ `targetReadCount` 统计进入 direct endpoint validation 的 logical occurrence(包括 target-memo hit);`findingCount -
134
+ rejectedInputCount` 是 normal link finding 数量并且不超过 `occurrenceCount`。每个 normal link finding 恰好形成一条 Record,data
135
+ 恰为:
104
136
 
105
137
  ```ts
106
138
  {
@@ -139,9 +171,12 @@ path 或 fragment。
139
171
  ```
140
172
 
141
173
  blocking finding 的 `failed` outcome 携带 `invalid-local-links` error message;non-blocking finding 的 `passed` outcome
142
- 携带同 code 的 warning message;两者都引导调用方检查 Records 的 source range、target 与 reason。存在 rejected input 时
143
- 另附一条 `input-rejected` warning,只汇总数量而不省略逐路径 Record。由本 Check 结算的 `unavailable` 使用对应
144
- `reason.code` 提供可操作 error message;无 Finding 的 `passed` 与 `not-applicable` 不合成人为提示。
174
+ 携带同 code 的 warning message。`markdownLinkValidation` 的 detail messages 先按 normal link、再按 input rejection 的稳定
175
+ 顺序:normal 摘要只含 source project-relative path、start line/column、occurrence kind 与封闭 reason,不复制 target;rejection
176
+ 摘要只含项目相对 path。存在 rejected input 时仍先附 `input-rejected` 数量 warning;完整 source range、safe target 与 reason
177
+ 仍从 Records 读取。通用的 terminal Finding 呈现与 Run progress 预览边界见
178
+ [呈现 Check Finding](../guides/presenting-findings.md)。由本 Check 结算的 `unavailable` 使用对应 `reason.code` 提供可操作
179
+ error message;无 Finding 的 `passed` 与 `not-applicable` 不合成人为提示。
145
180
 
146
181
  用返回 Check 的 `check.parseData(value)` 或 package root 的 `parseMarkdownLinkValidationData(value)` 验证 final data。两者返回
147
182
  `MarkdownLinkValidationFinalData`;Records 与原因可用 `MarkdownLinkValidationRecordData`、
@@ -154,18 +189,18 @@ blocking finding 的 `failed` outcome 携带 `invalid-local-links` error message
154
189
  selected path 数量为零时结算为 `not-applicable / no-eligible-input`。selected 非空但全部 rejected 时,不解析 source,直接以
155
190
  带 final data、Records 与 warning 的 `passed` 结算。`unavailable.reason.code` 使用以下受控值:
156
191
 
157
- | `reason.code` | 触发边界与调用方检查项 |
158
- | --- | --- |
159
- | `invalid-options` | constructor 返回后形成的 replacement options 不是完整 closed resolved shape;重新调用 `markdownLinkValidation(options)` 或恢复完整字段。 |
160
- | `project-root-unavailable` | project root 无法 canonicalize;检查路径存在性与访问权限。 |
161
- | `source-unavailable` | source collection、读取、decode 或 containment 失败;检查 source 与 file-selection 来源。 |
162
- | `source-too-large` | 某个 selected Markdown source 超过 `maxMarkdownBytes`。 |
163
- | `markdown-parse-failed` | selected source 无法形成完整 parser facts。 |
164
- | `invalid-local-destination` | local destination 无法按受支持的 path/URI grammar 安全解析。 |
165
- | `target-unavailable` | target containment probe、I/O、decode、parse 或 directory read 失败;Markdown anchor target 超过 `maxMarkdownBytes` 也属于此分支。 |
166
- | `occurrence-limit-exceeded` | semantic occurrence 总数超过 `maxOccurrences`。 |
167
- | `target-read-limit-exceeded` | direct endpoint validation work 超过 `maxTargetReads`。 |
168
- | `cancelled` | invocation signal 取消本 Check;不要把结果解释为 clean validation。 |
192
+ | `reason.code` | 触发边界与调用方检查项 |
193
+ | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
194
+ | `invalid-options` | constructor 返回后形成的 replacement options 不是完整 closed resolved shape;重新调用 `markdownLinkValidation(options)` 或恢复完整字段。 |
195
+ | `project-root-unavailable` | project root 无法 canonicalize;检查路径存在性与访问权限。 |
196
+ | `source-unavailable` | source collection、读取、decode 或 containment 失败;检查 source 与 file-selection 来源。 |
197
+ | `source-too-large` | 某个 selected Markdown source 超过 `maxMarkdownBytes`。 |
198
+ | `markdown-parse-failed` | selected source 无法形成完整 parser facts。 |
199
+ | `invalid-local-destination` | local destination 无法按受支持的 path/URI grammar 安全解析。 |
200
+ | `target-unavailable` | target containment probe、I/O、decode、parse 或 directory read 失败;Markdown anchor target 超过 `maxMarkdownBytes` 也属于此分支。 |
201
+ | `occurrence-limit-exceeded` | semantic occurrence 总数超过 `maxOccurrences`。 |
202
+ | `target-read-limit-exceeded` | direct endpoint validation work 超过 `maxTargetReads`。 |
203
+ | `cancelled` | invocation signal 取消本 Check;不要把结果解释为 clean validation。 |
169
204
 
170
205
  这些边界不发布 partial link-finding Records,也不提供 final data;若 selected classification 已完成,已发布的
171
206
  rejected-input Records 与对应 warning 仍保留。通用 preflight 语法见
@@ -174,19 +209,12 @@ rejected-input Records 与对应 warning 仍保留。通用 preflight 语法见
174
209
  ## I/O 与安全边界
175
210
 
176
211
  source I/O scope 只包含通过 `.md` / `.markdown` eligibility 的 accepted paths;rejected path 不读取内容。resolver I/O scope
177
- 是本地 filesystem,HTTP、DNS、TLS 与 redirect request 数为零。默认 `report` mode 对 root-external
178
- target 形成 finding,显式 `validate` mode 授权 bounded read。published facts 排除 raw external absolute path、target
179
- bytes 与 remote credentials。
212
+ 是本地 filesystem,HTTP、DNS、TLS 与 redirect request 数为零。默认 `report` mode 对 root-external target 形成 finding,显式
213
+ `validate` mode 授权 bounded read。published facts 排除 raw external absolute path、target bytes 与 remote credentials。
180
214
 
181
- ## 最小用法
182
-
183
- ```ts
184
- import { defineConfig, markdownLinkValidation, run } from "@zxyycom/vibe-check";
185
- const result = await run(defineConfig({ checks: [markdownLinkValidation()] }));
186
- ```
215
+ 启用 `cache` 会额外访问调用方指定 directory,并可能写入上文所列 source-derived parse facts;它不改变 published facts,
216
+ 也不把 cache directory 当作 security boundary。调用方应仅传入自己信任、可删除的 absolute directory。
187
217
 
188
218
  ## 适用边界
189
219
 
190
- 该 Check 只评估本机 target 与 heading-anchor integrity,不评估 remote URL reachability 或 HTML attribute links。项目需要
191
- 这些能力时,应另外提供明确拥有网络或 HTML parsing policy 的 Check;当前 `markdownLinkValidation` 不会隐式扩展到这些
192
- 输入。
220
+ 该 Check 不评估 remote URL reachability 或 HTML attribute links;需要时另配拥有明确网络或 HTML parsing policy 的 Check。
@@ -0,0 +1,129 @@
1
+ # `secretDetection`
2
+
3
+ ## 用途
4
+
5
+ `secretDetection({ files })` 是随包 ordinary Check,发现高置信 PEM private-key material。它不是全面 credential protection,也不验证 secret 有效性。
6
+
7
+ ## 最小用法
8
+
9
+ 示例保留终端进度,不写 machine files。
10
+
11
+ ```ts
12
+ import { defineConfig, run, secretDetection } from "@zxyycom/vibe-check";
13
+
14
+ const check = secretDetection({
15
+ files: { source: "filesystem", include: ["src/**/*"], exclude: ["**/generated/**"] }
16
+ });
17
+ const result = await run(defineConfig({
18
+ checks: [check],
19
+ outputs: { machinePublication: { enabled: false } }
20
+ }));
21
+ const outcome = result.kind === "completed"
22
+ ? result.snapshot.checks.find(({ checkId }) => checkId === check.checkId)?.outcome
23
+ : undefined;
24
+ if (result.kind !== "completed" || outcome?.status !== "passed") {
25
+ console.error(`Secret detection did not pass: ${result.kind} / ${outcome?.status ?? "no outcome"}`);
26
+ process.exitCode = 1;
27
+ }
28
+ ```
29
+
30
+ 本例只接受 `completed` Run 中的 `passed` Check,否则退出非零。若需接受 `not-applicable` 或聚合多个 Check,
31
+ 显式配置并读取 [`checkAggregation`](../api-mechanics.md#runcontrols-与-check-aggregation);`run(...)` 返回本身不表示通过。
32
+
33
+ ## 参数与默认配置
34
+
35
+ `files` 必填,且必须是完整 `{ source, include, exclude }` value;它是唯一的输入授权,不提供隐式全仓库 fallback。
36
+
37
+ ```ts
38
+ {
39
+ files: { source: "filesystem", include: ["src/**/*", "config/**/*"], exclude: ["**/generated/**"] },
40
+ maximumFileBytes: 1_048_576,
41
+ maximumTotalBytes: 8_388_608,
42
+ maximumFileCount: 2_048,
43
+ findingWaivers: []
44
+ }
45
+ ```
46
+
47
+ 代码块中的 `files` 是示例选择,其余为默认值。三个 limit 都是正安全整数,可收窄或显式提高。
48
+ files grammar、source failure 与数组替换见[共享 files 选择语义](../guides/collecting-project-files.md#共享的-files-选择语义)。
49
+ options 不接受 arbitrary regex、command、baseline、detector allowlist 或 message suppression。
50
+
51
+ ## 工作原理
52
+
53
+ 1. 按显式 `files` 收集 exact project-relative paths,先应用文件数限制。
54
+ 2. 在本仓库验证的 POSIX Node runtime 中,以 `O_NOFOLLOW` 打开 final leaf;在同一 descriptor 上检查 regular-file、size,
55
+ 并在单文件/剩余总预算内分块读取。未满足安全读取条件的路径不获 detector coverage。
56
+ 3. 成功读取后检查 NUL 与 fatal UTF-8,只有 approved text 交给 private adapter;它不接收 project root,也不重新枚举文件。
57
+
58
+ adapter 固定使用 [Secretlint v13.0.5](https://github.com/secretlint/secretlint/releases/tag/v13.0.5) 中 MIT-licensed 的
59
+ `@secretlint/core@13.0.5` 与 `@secretlint/secretlint-rule-privatekey@13.0.5` 单规则集合。
60
+ 第三方 source/result/message/data/exception 只短暂存在 invocation-owned memory;立即投影为 rule ID、path、safe line/column、
61
+ `text-document` structural class 与 ordinal,不返回 raw value、substring、hash、message 或 stack。
62
+
63
+ ## 效果与结果
64
+
65
+ `parseSecretDetectionData(data)`(或返回 Check 的 `parseData`)只在 `passed` 或 `failed` 时验证并恢复:
66
+
67
+ ```ts
68
+ { selectedFileCount, scannedFileCount, findingCount, waivedFindingCount, coverageGapCount }
69
+ ```
70
+
71
+ `selectedFileCount` 是 exact selection 数;其中 `scannedFileCount` 获 bounded text coverage,`coverageGapCount` 未获得,
72
+ 恒有 `scannedFileCount + coverageGapCount === selectedFileCount`。`findingCount` 包括所有安全 Finding;
73
+ `waivedFindingCount` 是被唯一 waiver 匹配的子集,不得大于总数。未 waived 的 Finding 是 actionable。
74
+
75
+ 非空 selection 中,存在 actionable Finding 或 coverage gap 即 `failed`,否则 `passed`。Records 分为:
76
+
77
+ - `secret-finding`:只含 blocking、rule ID、path、safe location、structural class、ordinal,以及 applied 时的 `waiver.reason`。
78
+ - `coverage-gap`:`{ kind: "coverage-gap", path, reason, blocking: true }`,不可豁免。
79
+ - `finding-waiver-audit`:unused/overmatched authoring 的 identity、reason、matchCount 与 status,不豁免任何 Finding。
80
+
81
+ Actionable Finding 附 `secret-findings` error,coverage gap 附 `incomplete-coverage` error;applied waiver 附 `finding-waived` info,
82
+ unused/overmatched 附 warning。公开类型为 `SecretDetectionOptions`、`ResolvedSecretDetectionOptions`、`SecretDetectionFinalData`、
83
+ `SecretDetectionRecordData` 与 `SecretDetectionUnavailableReasonCode`。
84
+
85
+ `findingWaivers` 采用[共同 waiver reconciliation/audit](../guides/finding-waivers.md#随包-check-的采用边界):identity 恰为
86
+ `{ path, ruleId: "@secretlint/secretlint-rule-privatekey", structuralClass: "text-document", ordinal }`,不含 value/message/line/hash。
87
+ 唯一匹配的 finding 是 **waived finding**:它仍保留原 finding Record 与 reason,但不再计入 actionable finding。coverage gap
88
+ 与 unavailable 不受 waiver 影响。
89
+
90
+ ```ts
91
+ const check = secretDetection({
92
+ files: { source: "filesystem", include: ["src/**/*"], exclude: [] },
93
+ findingWaivers: [
94
+ {
95
+ identity: {
96
+ ordinal: 1,
97
+ path: "src/legacy-key-fixture.ts",
98
+ ruleId: "@secretlint/secretlint-rule-privatekey",
99
+ structuralClass: "text-document"
100
+ },
101
+ reason: "已跟踪的 synthetic fixture;移除前保留此精确 waiver。"
102
+ }
103
+ ]
104
+ });
105
+ ```
106
+
107
+ 上例的 identity 应从该 Check 的安全 finding Record 复制;不要根据 detector message、secret 值、hash 或 line 自行构造。`reason` 会作为 waiver evidence 发布,因此只写不含敏感材料的说明。
108
+
109
+ ## `not-applicable` 与 `unavailable`
110
+
111
+ 空 selection 为 `not-applicable / no-eligible-input`,无 final data;configured waiver 仍产生 unused audit。
112
+
113
+ - NUL、invalid UTF-8、单文件/总 bytes/文件数超限是 deterministic `coverage-gap`,使 Check `failed`。
114
+ 成功 descriptor read 的 raw bytes 先消耗总预算,即使随后成为 non-text gap。
115
+ - symlink、非 regular file、read/change failure 或 runtime 不支持 `O_NOFOLLOW` descriptor open:`source-unavailable`。
116
+ - whole-Check `unavailable` 的 closed reasons 为 `invalid-options`、`scan-input-unavailable`、`source-unavailable`、
117
+ `detector-unavailable`、`detector-protocol-failed`、`execution-cancelled`。它们附同 code 的 error message,无 final data 或 partial result。
118
+
119
+ ## I/O 与安全边界
120
+
121
+ I/O 只限 files 选择的 local paths;无 command、network、history、environment、home、binary 或 remote secret-manager I/O。
122
+ raw detector material 不进入 result、Record、message、machine output、cache、log 或 error。
123
+
124
+ POSIX no-follow 只绑定 final leaf;Node 没有 portable `openat`/dirfd traversal,无法保证中间目录或已打开 inode 不被恶意并发替换。
125
+ 需要该隔离级别时,调用方须使用 OS-level sandbox。
126
+
127
+ ## 适用边界
128
+
129
+ 只选择需保护的 text-bearing paths;发现材料后应移除或使用精确、带理由的 waiver,不将本 Check 当作全面 secret scanner。
@@ -59,11 +59,11 @@ const releaseInputs = defineCheck({
59
59
  }
60
60
  });
61
61
 
62
- // 一个 downstream policy:读取内置 Check 和 typed provider 的 final data。
62
+ // 一个 downstream policy:观察内置 Check 和 typed provider 的 terminal outcome,再读取可用 final data。
63
63
  const releasePolicy = defineCheck({
64
64
  checkId: "example-release-policy",
65
65
  displayName: "Example release policy",
66
- dependsOn: inherit({ add: [releaseInputs.checkId] }),
66
+ observes: inherit({ add: [releaseInputs.checkId] }),
67
67
  options: { minimumFileCount: 2 },
68
68
  visibility: "attention",
69
69
  execution({ dependencies, options, records }) {
@@ -151,7 +151,7 @@ const optionalDocumentation = defineCheck({
151
151
  : { status: "not-applicable", reason: { code: "documentation-disabled" } }
152
152
  });
153
153
 
154
- // block preflight 会在任何 Check execution 开始前把本 Check 结算为 unavailable。
154
+ // block preflight 只阻止本 Check 的 execution,并将其结算为 unavailable;不相关的 Check 仍可并行。
155
155
  const externalReview = defineCheck({
156
156
  checkId: "example-external-review",
157
157
  displayName: "Example external review",
@@ -176,12 +176,12 @@ const externalReview = defineCheck({
176
176
  execution: () => ({ status: "passed", data: { reviewed: true } })
177
177
  });
178
178
 
179
- // 组织节点自身不产生 outcome;children 继承 packageManifest dependency 和并行预算。
179
+ // 组织节点自身不产生 outcome;children 继承 packageManifest observation 和并行预算。
180
180
  const releaseWorkflow = defineCheck({
181
181
  checkId: "example-release-workflow",
182
182
  displayName: "Example release workflow",
183
183
  checks: [releaseInputs, releasePolicy, optionalDocumentation, externalReview],
184
- dependsOn: [packageManifest.checkId],
184
+ observes: [packageManifest.checkId],
185
185
  maxParallel: 2
186
186
  });
187
187
 
@@ -0,0 +1,63 @@
1
+ # 缓存计算结果
2
+
3
+ `cacheJsonByKey(...)` 是 package 预提供的可选工具:当 custom Check 或普通项目代码已经能生成**完整的 semantic key**时,
4
+ 调用它复用 caller-owned 的本地 canonical JSON 计算结果。调用完成后,调用方可按自己的 Check 或项目流程继续处理该结果。
5
+
6
+ ## 最小用法
7
+
8
+ ```ts
9
+ import { cacheJsonByKey } from "@zxyycom/vibe-check";
10
+
11
+ const directory = `/tmp/my-project-vibe-check-cache-${Date.now()}-${Math.random()}`;
12
+ let measurements = 0;
13
+ const options = {
14
+ compute: () => ({ bytes: ++measurements * 1024 }),
15
+ directory,
16
+ key: "bundle-input:source-v3:tool-v1",
17
+ namespace: "my-project.bundle-size",
18
+ parse(value: unknown): { readonly bytes: number } {
19
+ if (
20
+ value === null ||
21
+ typeof value !== "object" ||
22
+ Array.isArray(value) ||
23
+ typeof (value as { bytes?: unknown }).bytes !== "number"
24
+ ) {
25
+ throw new TypeError("Invalid bundle-size cache payload");
26
+ }
27
+ return value as { readonly bytes: number };
28
+ },
29
+ version: "1"
30
+ };
31
+ const first = await cacheJsonByKey(options);
32
+ const second = await cacheJsonByKey(options);
33
+ if (first.source !== "computed" || second.source !== "cache" || measurements !== 1) {
34
+ throw new Error("Expected one computation followed by a cache hit");
35
+ }
36
+ ```
37
+
38
+ ## key、payload 与结果
39
+
40
+ 调用方提供 absolute、信任且可删除的 `directory`、非空 `namespace`、payload `version`、opaque
41
+ `key`、同步 `parse` 与同步/异步 `compute`。`key` 必须覆盖所有会改变 computation 结果的输入、
42
+ 实现版本、options、toolchain 与声明的外部状态;helper 不判断 key 是否完整。
43
+
44
+ helper 对固定 API version、namespace、version 和 key 的 canonical structure 计算 SHA-256 identity,
45
+ 只以 digest 命名 entry。raw key 不进入文件名、envelope、result 或 helper-owned diagnostics。磁盘 entry
46
+ 在 closed envelope、identity、canonical object payload 与同步 parser 都成功前不可信;只有全部通过才是 hit。
47
+ miss、invalid payload 或 read failure 后,helper 恰好调用一次 `compute`,并让 computed payload 经过相同的
48
+ detached canonical-object/parser boundary。
49
+
50
+ 返回的冻结 result envelope 表示本次 helper 调用,而非 Check 结算:hit 为
51
+ `{ source: "cache", read: "hit", write: "not-attempted" }`;computed 为
52
+ `{ source: "computed", read: "miss" | "invalid" | "failed", write: "stored" | "failed" }`。compute 或
53
+ parser failure 直接传播且不写 entry;storage failure 不改变已接受的 computed value,也不自动创建 Check
54
+ message、Record 或 terminal status。parser owner 决定是否进一步冻结它返回的 domain value。
55
+
56
+ ## 并发与安全边界
57
+
58
+ 写入在 caller directory 内经 unique temporary file 和 atomic rename 发布。并发 miss 可以重复 computation,
59
+ 但 target 只作为完整有效 entry 读取。需要避免重复 computation 时由调用方协调并发;缓存目录的清理也由调用方负责。
60
+
61
+ directory 是 caller 信任且可删除的本地 state,不提供 containment、remote sharing、authenticity 或 secret
62
+ protection;不得将 secret、token 或低熵敏感材料放入 key,SHA-256 digest 也不是保密机制。consumer 自己
63
+ 决定是否把 `read` / `write` observation 转换为 Check 事实。
@@ -0,0 +1,34 @@
1
+ # 按作用位置选择回调(Hook)
2
+
3
+ 当你知道想在“执行前准备”“检查时决定结果”“显示时调整文本”或“结束后处理统计”,却不确定应该使用哪个回调时,从本文选择接入位置。本文按接入位置说明公开回调的分工;字段签名以 installed declarations 为准,项目定义与本次运行的参数归属见 [API 机制](../api-mechanics.md#参数应该放在哪里)。
4
+
5
+ ## 先按三条链路理解位置
6
+
7
+ - **单项 Check**:被 Scheduler 准入 → `preflight` 准备 options → `execution` 形成结果 → Product 验证并结算。某项准备被阻断时不会继续 execution;不同 Check 可以并发。
8
+ - **人读说明**:Check 用 `presentCheckFindings` 将 Finding 转成 messages 并附到自己的结果 → Product 显示明细时用 progress `formatter` 调整预览文本。前者在 Check 生成说明的位置,后者在终端显示的位置,两者都不替代检查结果的判定。
9
+ - **调度策略**:graph 准备好后,可选 `prepare` 形成当前 Run 的策略 → Scheduler 调用 `decide` 零次或多次,每次同步返回一个 select / wait proposal → Scheduler 停止准入、等待已启动任务并封闭统计 → `measurementHooks` 观察终态 → 存在 terminal context 时调用可选 `complete`。simple strategy 不经过 `prepare`。
10
+
11
+ 完整 Run 的验证、取消与输出衔接仍由 [API 生命周期](../api-mechanics.md#一次-run-的生命周期)说明。
12
+
13
+ ## 回调的配置位置与权限
14
+
15
+ 先确定要在什么位置做什么,再选择对应字段。下表用于定位,不是一条所有回调都会执行的串行流程:不同 Check 可以并发,progress 也会随运行持续呈现。
16
+
17
+ | 作用位置与目的 | 写在哪里 | 接收什么、产生什么 | 能改变的范围 |
18
+ | --- | --- | --- | --- |
19
+ | **调度开始前:准备本次调度策略** | Definition 的 [`scheduler.admissionPolicy.strategy`](scheduling.md#已准备的-custom-strategy) 选择 `kind: "prepared"`,提供 `prepare` | 接收静态 graph,返回本次使用的 `decide` 与可选 `complete` | 准备策略自己的运行状态,不执行 Check。 |
20
+ | **调度选择时:决定建议先运行哪项** | [simple strategy 的 `decide`](scheduling.md#自定义准入-policy),或 `prepare` 返回值中的 `decide` | 接收当前准入 context,同步返回 select / wait proposal | 只提出选择,Scheduler 仍检查依赖、互斥、容量与取消。 |
21
+ | **单项 Check 被准入后、执行前:准备 options** | [`preflight`](extending-check-lifecycle.md#preflight准备阻止或带-fallback-继续) | 接收 authored options 和 signal,返回 prepared options、fallback 或阻断结果 | 影响这项 Check 是否继续及其 execution 输入,不是整个 Run 的前置 hook。 |
22
+ | **单项 Check 执行时:检查并决定自己的结果** | [`defineCheck({ execution, ... })`](extending-check-lifecycle.md) | 接收 Check context,返回四态 terminal result,可报告 Records | 形成这项 Check 的领域结果;Product 验证并封闭事实,不开放事后改写结果的通用 hook。 |
23
+ | **Check 生成 Finding 说明时:选择如何描述发现** | [`presentCheckFindings({ message, omittedMessage, ... })`](presenting-findings.md) | 单项 Finding 或省略集合转成 `CheckMessage`,helper 返回 messages | 由 Check 将说明附到自己的结果;不是终端 renderer,也不负责决定通过或失败。 |
24
+ | **终端显示已结算 Check 的明细时:调整预览文本** | Definition 或 Controls 的 [`outputs.progressRendering.formatter`](run-outputs.md#配置-preview-文本) | 接收选中项的默认文本和预算,同步返回替代文本 | 只改变终端预览,不改写完整 Records、messages 或 Check outcome。 |
25
+ | **调度停止且已启动任务结束后:观察终态统计** | Definition 的 [`scheduler.measurementHooks`](scheduling.md#观察终态-measurement) | 接收冻结的 graph、settlement observations 与 raw measurement | 消费或保存终态观察,不能重跑任务或改写 Check facts。 |
26
+ | **终态观察交付后:完成本次已准备策略** | `prepare` 返回值中的可选 `complete` | 存在 sealed terminal context 时接收该 context,至多调用一次 | 完成策略自己的终态工作;不是保证所有失败路径都会调用的通用 `finally`。 |
27
+
28
+ ## 结算结果与结算后工作
29
+
30
+ **“结算结果”和“结算后做事”不同。** Check 的 `execution` 与领域 policy 决定本项结果;本次 `checkAggregation` 从已结算状态派生 Run aggregate,它是配置而不是回调。若要根据完整 `RunResult` 决定 CI 退出码或做项目后处理,在项目代码 `await run(...)` 之后处理;这不是 Product 提供的另一组生命周期 hook。
31
+
32
+ ## 回调失败如何反馈
33
+
34
+ `preflight` / `execution` 的失败由 owning Check 结算。progress formatter、measurement Hooks 与 prepared `complete` 的失败通过对应 output status 反馈,并保留已形成的 Check facts;原本正常完成的 Run 会成为 `kind: "output"`,已有取消或执行失败则保留主结果。完整优先级见[输出状态与失败处理](run-outputs.md#输出状态与失败处理)。
@@ -0,0 +1,121 @@
1
+ # 读取 Check 依赖与类型化数据
2
+
3
+ 需要把一项 Check 的结果交给另一项使用时,先声明 direct `dependsOn` 或 `observes`,再通过 dependency reader 读取上游结果,并用 provider parser 恢复业务类型。需要上游通过才开始时选择 `dependsOn`;需要审计任意终态时选择 `observes`。这些关系还约束 Scheduler 准入,调度预算见[调度 Check](scheduling.md)。
4
+
5
+ ## 完整运行示例
6
+
7
+ ```ts
8
+ import { defineCheck, defineConfig, run } from "@zxyycom/vibe-check";
9
+
10
+ const CHANGED_FILES_DATA_VERSION = 1 as const;
11
+
12
+ type ChangedFilesData = Readonly<{
13
+ readonly files: readonly string[];
14
+ readonly version: typeof CHANGED_FILES_DATA_VERSION;
15
+ }>;
16
+
17
+ const changedFiles = defineCheck({
18
+ checkId: "changed-files",
19
+ displayName: "Changed files",
20
+ parseData(data): ChangedFilesData {
21
+ if (
22
+ data.version !== CHANGED_FILES_DATA_VERSION ||
23
+ !Array.isArray(data.files) ||
24
+ !data.files.every((value): value is string => typeof value === "string")
25
+ ) {
26
+ throw new TypeError("Unsupported changed-files data");
27
+ }
28
+ return { files: data.files, version: data.version };
29
+ },
30
+ execution() {
31
+ return {
32
+ status: "passed",
33
+ data: { files: ["src/index.ts"], version: CHANGED_FILES_DATA_VERSION }
34
+ };
35
+ }
36
+ });
37
+
38
+ const analyzeChangedFiles = defineCheck({
39
+ checkId: "analyze-changed-files",
40
+ displayName: "Analyze changed files",
41
+ dependsOn: [changedFiles.checkId],
42
+ execution({ dependencies }) {
43
+ const read = dependencies.get(changedFiles.checkId);
44
+ if (!read.ok) return { status: "unavailable", reason: { code: read.error.code } };
45
+
46
+ const data = changedFiles.parseData(read.data);
47
+ return { status: "passed", data: { analyzedFileCount: data.files.length } };
48
+ }
49
+ });
50
+
51
+ const definition = defineConfig({
52
+ checks: [changedFiles, analyzeChangedFiles],
53
+ outputs: {
54
+ diagnosticLogging: { enabled: false },
55
+ machinePublication: { enabled: false },
56
+ progressRendering: { enabled: false }
57
+ }
58
+ });
59
+
60
+ const result = await run(definition);
61
+ if (result.kind !== "completed") throw new Error(`Run did not complete: ${result.kind}`);
62
+ ```
63
+
64
+ 上例先收窄 `get` 的 `ok`,再显式调用 producer 的 `parseData`。`dependsOn` 保证 callback 只在 provider `passed` 后开始;`!read.ok` 仍作为读取边界防御。八个随包 Check 都提供 `parseData` 和同实现的 package-root parser,名称与类型见各自指南。
65
+
66
+ ## 批量审计 direct outcomes
67
+
68
+ 审计任意终态时声明 `observes`,再用 `dependencies.list()` 读取 direct union 的冻结 `{ checkId, outcome }[]`。四态 outcome 都是正常可观察事实;以下 Check 从中形成自己的结果,而不修改 producer:
69
+
70
+ ```ts
71
+ const auditChangedFiles = defineCheck({
72
+ checkId: "audit-changed-files",
73
+ displayName: "Audit changed files",
74
+ observes: [changedFiles.checkId, analyzeChangedFiles.checkId],
75
+ execution({ dependencies }) {
76
+ const observations = dependencies.list();
77
+ const readable = observations.filter(
78
+ ({ outcome }) =>
79
+ outcome.status === "passed" || outcome.status === "failed",
80
+ );
81
+ const changedFilesObservation = readable.find(
82
+ ({ checkId }) => checkId === changedFiles.checkId,
83
+ );
84
+ if (changedFilesObservation === undefined) {
85
+ return {
86
+ status: "unavailable",
87
+ reason: { code: "changed-files-data-unavailable" },
88
+ };
89
+ }
90
+
91
+ const data = changedFiles.parseData(changedFilesObservation.outcome.data);
92
+ return {
93
+ status: "passed",
94
+ data: {
95
+ directDependencyCount: observations.length,
96
+ changedFileCount: data.files.length,
97
+ },
98
+ };
99
+ },
100
+ });
101
+ ```
102
+
103
+ 读取 `passed` / `failed` data 后仍需调用 producer parser;其余状态保留原 reason。consumer 可据此形成 summary、I/O、Records、messages 与自身终态,但不能修改、取消、重跑或重结算 producer。
104
+
105
+ ## Provider 类型与解析边界
106
+
107
+ 通过 `defineCheck({ execution, parseData })` 建立 typed provider:同步 parser 的返回类型同时约束该 Check 的 `passed` / `failed` data,返回值保留必需的 `parseData`。普通递归 `Check` 类型本身不声明 parser;仅写 `satisfies Check` 或 inline `defineConfig` 不建立该类型关系。没有 parser 的普通 Check 仍合法,container 则不能声明 parser。
108
+
109
+ TypeScript 拒绝 async 或返回 `PromiseLike` 的 parser,即使推断结果类型很宽。canonical JSON 中非 callable 的 `then` 字段仍是普通数据。JavaScript 或显式 cast author object 上的 function parser 可以通过 runtime Definition validation,但不会因此取得 TypeScript 关系;自有 `parseData: undefined` 规范化为省略。
110
+
111
+ parser 接收 Check-facts-owned 的 detached、deep-frozen canonical object,而不是原始 author object 或 JSON 文本。provider 拥有 shape、版本、业务不变量与抛错策略;Product 不自动调用 parser,也不另建 parser-rejection result。consumer 在自己的 execution 中调用 parser 时,未捕获的抛错沿用 Check execution 的失败边界。
112
+
113
+ 同版本可信 provider 若已有测试保证 shape,可以把 parser 用作 identity/type anchor;这不是对 JavaScript、cast、跨版本 artifact 或不可信输入的运行时验证。此类输入应由 provider 显式验证。每个随包 Check 的同名 `parseData` 与 package-root parser 只解析单个 final-data object,不替代 [machine publication/schema 验证](../output.md)。
114
+
115
+ ## Direct relation 与读取规则
116
+
117
+ - `dependsOn` 与 `observes` 命名同一 Definition 中的 executable Check。两者各自可继承父 collection;精确数组完整替换(`[]` 清空),`inherit({ add, remove })` 显式增删后去重。一个 provider 不得同时出现在两类 relation 中。
118
+ - `dependsOn` 等所有 direct provider 通过才允许本 Check 的 preflight/execution;任一 provider 非 `passed` 时,本 Check 在 author work 前成为 `unavailable / dependency-not-passed`,reason 带 direct blocker `checkIds`,duration 为 `null`。`observes` 只等待终态,不要求通过。
119
+ - `get(checkId)` 是 non-generic string read,只授权 normalized effective `dependsOn ∪ observes` 的 direct ID(包括各自继承项)。未声明、传递或 malformed ID 返回不泄露 upstream fact 的 `dependency-not-declared`。
120
+ - 已声明 provider 的 `passed` / `failed` 返回 `ok: true`、status 与 canonical data;`not-applicable` / `unavailable` 返回 `ok: false`、该 status 与 `upstream-data-unavailable`。TypeScript 类型本身不授予访问权。
121
+ - `list()` 无参返回同一 direct union 的完整四态 observations,按 normalized effective direct ID 稳定排序并去重;数组、每项与 Core-owned outcome 都冻结。不读取传递、未声明或 ambient executed Checks,也不提供 Records、scheduler timing 或全局历史。