@deftai/directive-core 0.55.0

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 (861) hide show
  1. package/dist/architecture/sor-preflight.d.ts +66 -0
  2. package/dist/architecture/sor-preflight.js +903 -0
  3. package/dist/branch/evaluate.d.ts +23 -0
  4. package/dist/branch/evaluate.js +136 -0
  5. package/dist/branch/git.d.ts +15 -0
  6. package/dist/branch/git.js +42 -0
  7. package/dist/branch/index.d.ts +3 -0
  8. package/dist/branch/index.js +3 -0
  9. package/dist/cache/cli.d.ts +3 -0
  10. package/dist/cache/cli.js +8 -0
  11. package/dist/cache/constants.d.ts +12 -0
  12. package/dist/cache/constants.js +14 -0
  13. package/dist/cache/errors.d.ts +34 -0
  14. package/dist/cache/errors.js +52 -0
  15. package/dist/cache/fetch.d.ts +101 -0
  16. package/dist/cache/fetch.js +413 -0
  17. package/dist/cache/index.d.ts +14 -0
  18. package/dist/cache/index.js +14 -0
  19. package/dist/cache/io.d.ts +15 -0
  20. package/dist/cache/io.js +53 -0
  21. package/dist/cache/json.d.ts +11 -0
  22. package/dist/cache/json.js +32 -0
  23. package/dist/cache/main.d.ts +3 -0
  24. package/dist/cache/main.js +319 -0
  25. package/dist/cache/operations.d.ts +34 -0
  26. package/dist/cache/operations.js +348 -0
  27. package/dist/cache/paths.d.ts +7 -0
  28. package/dist/cache/paths.js +27 -0
  29. package/dist/cache/quota.d.ts +56 -0
  30. package/dist/cache/quota.js +191 -0
  31. package/dist/cache/scanner.d.ts +28 -0
  32. package/dist/cache/scanner.js +362 -0
  33. package/dist/cache/test-helpers.d.ts +10 -0
  34. package/dist/cache/test-helpers.js +17 -0
  35. package/dist/cache/time.d.ts +9 -0
  36. package/dist/cache/time.js +20 -0
  37. package/dist/cache/types.d.ts +50 -0
  38. package/dist/cache/types.js +2 -0
  39. package/dist/cache/validate.d.ts +3 -0
  40. package/dist/cache/validate.js +118 -0
  41. package/dist/capacity/backfill.d.ts +52 -0
  42. package/dist/capacity/backfill.js +429 -0
  43. package/dist/capacity/index.d.ts +3 -0
  44. package/dist/capacity/index.js +3 -0
  45. package/dist/capacity/show.d.ts +73 -0
  46. package/dist/capacity/show.js +387 -0
  47. package/dist/check/index.d.ts +3 -0
  48. package/dist/check/index.js +2 -0
  49. package/dist/check/orchestrator.d.ts +51 -0
  50. package/dist/check/orchestrator.js +71 -0
  51. package/dist/codebase/constants.d.ts +2 -0
  52. package/dist/codebase/constants.js +2 -0
  53. package/dist/codebase/default-extractor.d.ts +28 -0
  54. package/dist/codebase/default-extractor.js +713 -0
  55. package/dist/codebase/index.d.ts +8 -0
  56. package/dist/codebase/index.js +8 -0
  57. package/dist/codebase/json.d.ts +14 -0
  58. package/dist/codebase/json.js +45 -0
  59. package/dist/codebase/map-fresh.d.ts +11 -0
  60. package/dist/codebase/map-fresh.js +125 -0
  61. package/dist/codebase/map.d.ts +19 -0
  62. package/dist/codebase/map.js +345 -0
  63. package/dist/codebase/projection-registry.d.ts +25 -0
  64. package/dist/codebase/projection-registry.js +93 -0
  65. package/dist/codebase/provider.d.ts +30 -0
  66. package/dist/codebase/provider.js +696 -0
  67. package/dist/content-contracts/skills/greptile-detector.d.ts +56 -0
  68. package/dist/content-contracts/skills/greptile-detector.js +368 -0
  69. package/dist/content-contracts/skills/helpers.d.ts +24 -0
  70. package/dist/content-contracts/skills/helpers.js +73 -0
  71. package/dist/content-contracts/skills/skill-frontmatter.d.ts +7 -0
  72. package/dist/content-contracts/skills/skill-frontmatter.js +65 -0
  73. package/dist/content-contracts/standards/_helpers.d.ts +49 -0
  74. package/dist/content-contracts/standards/_helpers.js +227 -0
  75. package/dist/content-contracts/standards/_shapes.d.ts +12 -0
  76. package/dist/content-contracts/standards/_shapes.js +45 -0
  77. package/dist/content-contracts/standards/_taskfile-helpers.d.ts +12 -0
  78. package/dist/content-contracts/standards/_taskfile-helpers.js +61 -0
  79. package/dist/content-root.d.ts +47 -0
  80. package/dist/content-root.js +89 -0
  81. package/dist/doctor/agents-md.d.ts +14 -0
  82. package/dist/doctor/agents-md.js +263 -0
  83. package/dist/doctor/checks.d.ts +16 -0
  84. package/dist/doctor/checks.js +351 -0
  85. package/dist/doctor/cli.d.ts +2 -0
  86. package/dist/doctor/cli.js +7 -0
  87. package/dist/doctor/constants.d.ts +15 -0
  88. package/dist/doctor/constants.js +40 -0
  89. package/dist/doctor/doctor-state.d.ts +16 -0
  90. package/dist/doctor/doctor-state.js +117 -0
  91. package/dist/doctor/flags.d.ts +5 -0
  92. package/dist/doctor/flags.js +63 -0
  93. package/dist/doctor/index.d.ts +14 -0
  94. package/dist/doctor/index.js +14 -0
  95. package/dist/doctor/json.d.ts +3 -0
  96. package/dist/doctor/json.js +21 -0
  97. package/dist/doctor/main.d.ts +3 -0
  98. package/dist/doctor/main.js +387 -0
  99. package/dist/doctor/manifest.d.ts +11 -0
  100. package/dist/doctor/manifest.js +114 -0
  101. package/dist/doctor/output.d.ts +19 -0
  102. package/dist/doctor/output.js +49 -0
  103. package/dist/doctor/paths.d.ts +16 -0
  104. package/dist/doctor/paths.js +106 -0
  105. package/dist/doctor/payload-staleness.d.ts +13 -0
  106. package/dist/doctor/payload-staleness.js +165 -0
  107. package/dist/doctor/taskfile.d.ts +6 -0
  108. package/dist/doctor/taskfile.js +65 -0
  109. package/dist/doctor/types.d.ts +76 -0
  110. package/dist/doctor/types.js +4 -0
  111. package/dist/doctor/which.d.ts +3 -0
  112. package/dist/doctor/which.js +17 -0
  113. package/dist/encoding/evaluate.d.ts +19 -0
  114. package/dist/encoding/evaluate.js +155 -0
  115. package/dist/encoding/git.d.ts +11 -0
  116. package/dist/encoding/git.js +36 -0
  117. package/dist/encoding/index.d.ts +6 -0
  118. package/dist/encoding/index.js +6 -0
  119. package/dist/encoding/patterns.d.ts +29 -0
  120. package/dist/encoding/patterns.js +109 -0
  121. package/dist/encoding/scan.d.ts +24 -0
  122. package/dist/encoding/scan.js +182 -0
  123. package/dist/encoding/text.d.ts +21 -0
  124. package/dist/encoding/text.js +111 -0
  125. package/dist/index.d.ts +54 -0
  126. package/dist/index.js +55 -0
  127. package/dist/intake/candidates-log.d.ts +20 -0
  128. package/dist/intake/candidates-log.js +224 -0
  129. package/dist/intake/github-auth-modes-cli.d.ts +3 -0
  130. package/dist/intake/github-auth-modes-cli.js +23 -0
  131. package/dist/intake/github-auth-modes.d.ts +54 -0
  132. package/dist/intake/github-auth-modes.js +275 -0
  133. package/dist/intake/github-body-cli.d.ts +3 -0
  134. package/dist/intake/github-body-cli.js +30 -0
  135. package/dist/intake/github-body.d.ts +48 -0
  136. package/dist/intake/github-body.js +151 -0
  137. package/dist/intake/index.d.ts +15 -0
  138. package/dist/intake/index.js +15 -0
  139. package/dist/intake/issue-emit-cli.d.ts +3 -0
  140. package/dist/intake/issue-emit-cli.js +34 -0
  141. package/dist/intake/issue-emit.d.ts +63 -0
  142. package/dist/intake/issue-emit.js +351 -0
  143. package/dist/intake/issue-ingest-cli.d.ts +3 -0
  144. package/dist/intake/issue-ingest-cli.js +33 -0
  145. package/dist/intake/issue-ingest.d.ts +53 -0
  146. package/dist/intake/issue-ingest.js +477 -0
  147. package/dist/intake/markdown-scanners.d.ts +23 -0
  148. package/dist/intake/markdown-scanners.js +247 -0
  149. package/dist/intake/parity-scenarios.d.ts +22 -0
  150. package/dist/intake/parity-scenarios.js +32 -0
  151. package/dist/intake/platform-capabilities.d.ts +11 -0
  152. package/dist/intake/platform-capabilities.js +34 -0
  153. package/dist/intake/reconcile-issues-cli.d.ts +3 -0
  154. package/dist/intake/reconcile-issues-cli.js +31 -0
  155. package/dist/intake/reconcile-issues.d.ts +60 -0
  156. package/dist/intake/reconcile-issues.js +756 -0
  157. package/dist/integration-e2e/bootstrap-cache-module.d.ts +5 -0
  158. package/dist/integration-e2e/bootstrap-cache-module.js +21 -0
  159. package/dist/integration-e2e/helpers.d.ts +28 -0
  160. package/dist/integration-e2e/helpers.js +157 -0
  161. package/dist/lifecycle/event-detect.d.ts +32 -0
  162. package/dist/lifecycle/event-detect.js +172 -0
  163. package/dist/lifecycle/events.d.ts +45 -0
  164. package/dist/lifecycle/events.js +340 -0
  165. package/dist/lifecycle/index.d.ts +4 -0
  166. package/dist/lifecycle/index.js +4 -0
  167. package/dist/lifecycle/lifecycle-hygiene.d.ts +59 -0
  168. package/dist/lifecycle/lifecycle-hygiene.js +388 -0
  169. package/dist/orchestration/index.d.ts +7 -0
  170. package/dist/orchestration/index.js +7 -0
  171. package/dist/orchestration/judgment-policy.d.ts +23 -0
  172. package/dist/orchestration/judgment-policy.js +228 -0
  173. package/dist/orchestration/pathspec.d.ts +11 -0
  174. package/dist/orchestration/pathspec.js +95 -0
  175. package/dist/orchestration/probe-session.d.ts +74 -0
  176. package/dist/orchestration/probe-session.js +478 -0
  177. package/dist/orchestration/subagent-monitor.d.ts +64 -0
  178. package/dist/orchestration/subagent-monitor.js +405 -0
  179. package/dist/orchestration/verify-investigation.d.ts +27 -0
  180. package/dist/orchestration/verify-investigation.js +314 -0
  181. package/dist/orchestration/verify-judgment-gates.d.ts +66 -0
  182. package/dist/orchestration/verify-judgment-gates.js +710 -0
  183. package/dist/packs/index.d.ts +4 -0
  184. package/dist/packs/index.js +4 -0
  185. package/dist/packs/pack-render.d.ts +31 -0
  186. package/dist/packs/pack-render.js +357 -0
  187. package/dist/packs/packs-slice.d.ts +58 -0
  188. package/dist/packs/packs-slice.js +649 -0
  189. package/dist/packs/quarantine-ext.d.ts +7 -0
  190. package/dist/packs/quarantine-ext.js +164 -0
  191. package/dist/platform/agents-md.d.ts +31 -0
  192. package/dist/platform/agents-md.js +320 -0
  193. package/dist/platform/changelog-cli.d.ts +3 -0
  194. package/dist/platform/changelog-cli.js +64 -0
  195. package/dist/platform/constants.d.ts +20 -0
  196. package/dist/platform/constants.js +27 -0
  197. package/dist/platform/index.d.ts +9 -0
  198. package/dist/platform/index.js +9 -0
  199. package/dist/platform/ip-risk.d.ts +10 -0
  200. package/dist/platform/ip-risk.js +235 -0
  201. package/dist/platform/linear-scan.d.ts +36 -0
  202. package/dist/platform/linear-scan.js +174 -0
  203. package/dist/platform/platform-capabilities.d.ts +45 -0
  204. package/dist/platform/platform-capabilities.js +190 -0
  205. package/dist/platform/resolve-changelog-unreleased.d.ts +24 -0
  206. package/dist/platform/resolve-changelog-unreleased.js +364 -0
  207. package/dist/platform/resolve-version.d.ts +22 -0
  208. package/dist/platform/resolve-version.js +303 -0
  209. package/dist/platform/slug-normalize.d.ts +9 -0
  210. package/dist/platform/slug-normalize.js +110 -0
  211. package/dist/policy/autonomy.d.ts +43 -0
  212. package/dist/policy/autonomy.js +220 -0
  213. package/dist/policy/capacity.d.ts +45 -0
  214. package/dist/policy/capacity.js +251 -0
  215. package/dist/policy/decisions.d.ts +26 -0
  216. package/dist/policy/decisions.js +114 -0
  217. package/dist/policy/disclosure.d.ts +4 -0
  218. package/dist/policy/disclosure.js +19 -0
  219. package/dist/policy/index.d.ts +43 -0
  220. package/dist/policy/index.js +298 -0
  221. package/dist/policy/resolve.d.ts +38 -0
  222. package/dist/policy/resolve.js +228 -0
  223. package/dist/policy/wip.d.ts +15 -0
  224. package/dist/policy/wip.js +81 -0
  225. package/dist/pr-closing-keywords/constants.d.ts +6 -0
  226. package/dist/pr-closing-keywords/constants.js +6 -0
  227. package/dist/pr-closing-keywords/detect.d.ts +5 -0
  228. package/dist/pr-closing-keywords/detect.js +113 -0
  229. package/dist/pr-closing-keywords/gh.d.ts +6 -0
  230. package/dist/pr-closing-keywords/gh.js +129 -0
  231. package/dist/pr-closing-keywords/index.d.ts +7 -0
  232. package/dist/pr-closing-keywords/index.js +6 -0
  233. package/dist/pr-closing-keywords/io.d.ts +3 -0
  234. package/dist/pr-closing-keywords/io.js +22 -0
  235. package/dist/pr-closing-keywords/main.d.ts +9 -0
  236. package/dist/pr-closing-keywords/main.js +246 -0
  237. package/dist/pr-closing-keywords/types.d.ts +23 -0
  238. package/dist/pr-closing-keywords/types.js +2 -0
  239. package/dist/pr-merge-readiness/compute.d.ts +7 -0
  240. package/dist/pr-merge-readiness/compute.js +210 -0
  241. package/dist/pr-merge-readiness/constants.d.ts +20 -0
  242. package/dist/pr-merge-readiness/constants.js +32 -0
  243. package/dist/pr-merge-readiness/evaluate.d.ts +5 -0
  244. package/dist/pr-merge-readiness/evaluate.js +48 -0
  245. package/dist/pr-merge-readiness/gh.d.ts +22 -0
  246. package/dist/pr-merge-readiness/gh.js +281 -0
  247. package/dist/pr-merge-readiness/index.d.ts +9 -0
  248. package/dist/pr-merge-readiness/index.js +8 -0
  249. package/dist/pr-merge-readiness/main.d.ts +14 -0
  250. package/dist/pr-merge-readiness/main.js +67 -0
  251. package/dist/pr-merge-readiness/output.d.ts +7 -0
  252. package/dist/pr-merge-readiness/output.js +98 -0
  253. package/dist/pr-merge-readiness/parse.d.ts +6 -0
  254. package/dist/pr-merge-readiness/parse.js +83 -0
  255. package/dist/pr-merge-readiness/types.d.ts +29 -0
  256. package/dist/pr-merge-readiness/types.js +2 -0
  257. package/dist/pr-monitor/cadence.d.ts +3 -0
  258. package/dist/pr-monitor/cadence.js +12 -0
  259. package/dist/pr-monitor/constants.d.ts +8 -0
  260. package/dist/pr-monitor/constants.js +12 -0
  261. package/dist/pr-monitor/index.d.ts +7 -0
  262. package/dist/pr-monitor/index.js +6 -0
  263. package/dist/pr-monitor/main.d.ts +17 -0
  264. package/dist/pr-monitor/main.js +169 -0
  265. package/dist/pr-monitor/monitor.d.ts +9 -0
  266. package/dist/pr-monitor/monitor.js +106 -0
  267. package/dist/pr-monitor/readiness.d.ts +6 -0
  268. package/dist/pr-monitor/readiness.js +64 -0
  269. package/dist/pr-monitor/types.d.ts +30 -0
  270. package/dist/pr-monitor/types.js +2 -0
  271. package/dist/pr-protected-issues/constants.d.ts +7 -0
  272. package/dist/pr-protected-issues/constants.js +7 -0
  273. package/dist/pr-protected-issues/gh.d.ts +9 -0
  274. package/dist/pr-protected-issues/gh.js +96 -0
  275. package/dist/pr-protected-issues/index.d.ts +6 -0
  276. package/dist/pr-protected-issues/index.js +5 -0
  277. package/dist/pr-protected-issues/main.d.ts +14 -0
  278. package/dist/pr-protected-issues/main.js +128 -0
  279. package/dist/pr-protected-issues/parse.d.ts +6 -0
  280. package/dist/pr-protected-issues/parse.js +21 -0
  281. package/dist/pr-protected-issues/types.d.ts +8 -0
  282. package/dist/pr-protected-issues/types.js +2 -0
  283. package/dist/pr-wait-mergeable/cascade.d.ts +12 -0
  284. package/dist/pr-wait-mergeable/cascade.js +107 -0
  285. package/dist/pr-wait-mergeable/classify.d.ts +5 -0
  286. package/dist/pr-wait-mergeable/classify.js +47 -0
  287. package/dist/pr-wait-mergeable/constants.d.ts +5 -0
  288. package/dist/pr-wait-mergeable/constants.js +5 -0
  289. package/dist/pr-wait-mergeable/index.d.ts +8 -0
  290. package/dist/pr-wait-mergeable/index.js +7 -0
  291. package/dist/pr-wait-mergeable/main.d.ts +18 -0
  292. package/dist/pr-wait-mergeable/main.js +213 -0
  293. package/dist/pr-wait-mergeable/result.d.ts +9 -0
  294. package/dist/pr-wait-mergeable/result.js +38 -0
  295. package/dist/pr-wait-mergeable/types.d.ts +16 -0
  296. package/dist/pr-wait-mergeable/types.js +2 -0
  297. package/dist/pr-wait-mergeable/wrappers.d.ts +26 -0
  298. package/dist/pr-wait-mergeable/wrappers.js +103 -0
  299. package/dist/preflight/evaluate.d.ts +22 -0
  300. package/dist/preflight/evaluate.js +137 -0
  301. package/dist/preflight/index.d.ts +3 -0
  302. package/dist/preflight/index.js +2 -0
  303. package/dist/preflight-cache/evaluate.d.ts +40 -0
  304. package/dist/preflight-cache/evaluate.js +481 -0
  305. package/dist/preflight-cache/index.d.ts +3 -0
  306. package/dist/preflight-cache/index.js +2 -0
  307. package/dist/preflight-gh/classifier.d.ts +56 -0
  308. package/dist/preflight-gh/classifier.js +415 -0
  309. package/dist/preflight-gh/index.d.ts +3 -0
  310. package/dist/preflight-gh/index.js +2 -0
  311. package/dist/release/changelog.d.ts +9 -0
  312. package/dist/release/changelog.js +105 -0
  313. package/dist/release/cli.d.ts +2 -0
  314. package/dist/release/cli.js +7 -0
  315. package/dist/release/constants.d.ts +22 -0
  316. package/dist/release/constants.js +85 -0
  317. package/dist/release/flags.d.ts +4 -0
  318. package/dist/release/flags.js +131 -0
  319. package/dist/release/gh.d.ts +16 -0
  320. package/dist/release/gh.js +210 -0
  321. package/dist/release/git.d.ts +11 -0
  322. package/dist/release/git.js +84 -0
  323. package/dist/release/index.d.ts +14 -0
  324. package/dist/release/index.js +15 -0
  325. package/dist/release/main.d.ts +3 -0
  326. package/dist/release/main.js +47 -0
  327. package/dist/release/paths.d.ts +6 -0
  328. package/dist/release/paths.js +39 -0
  329. package/dist/release/pipeline.d.ts +6 -0
  330. package/dist/release/pipeline.js +314 -0
  331. package/dist/release/pyproject-sync.d.ts +6 -0
  332. package/dist/release/pyproject-sync.js +52 -0
  333. package/dist/release/pyproject.d.ts +3 -0
  334. package/dist/release/pyproject.js +33 -0
  335. package/dist/release/python-bridge.d.ts +7 -0
  336. package/dist/release/python-bridge.js +144 -0
  337. package/dist/release/spawn.d.ts +8 -0
  338. package/dist/release/spawn.js +44 -0
  339. package/dist/release/types.d.ts +58 -0
  340. package/dist/release/types.js +2 -0
  341. package/dist/release/version.d.ts +11 -0
  342. package/dist/release/version.js +74 -0
  343. package/dist/release-e2e/constants.d.ts +22 -0
  344. package/dist/release-e2e/constants.js +43 -0
  345. package/dist/release-e2e/entrypoint-worker-thread.d.ts +2 -0
  346. package/dist/release-e2e/entrypoint-worker-thread.js +22 -0
  347. package/dist/release-e2e/entrypoint-worker.d.ts +13 -0
  348. package/dist/release-e2e/entrypoint-worker.js +50 -0
  349. package/dist/release-e2e/entrypoint.d.ts +40 -0
  350. package/dist/release-e2e/entrypoint.js +257 -0
  351. package/dist/release-e2e/flags.d.ts +5 -0
  352. package/dist/release-e2e/flags.js +80 -0
  353. package/dist/release-e2e/gh-ops.d.ts +5 -0
  354. package/dist/release-e2e/gh-ops.js +72 -0
  355. package/dist/release-e2e/git-ops.d.ts +6 -0
  356. package/dist/release-e2e/git-ops.js +47 -0
  357. package/dist/release-e2e/index.d.ts +10 -0
  358. package/dist/release-e2e/index.js +10 -0
  359. package/dist/release-e2e/main.d.ts +4 -0
  360. package/dist/release-e2e/main.js +78 -0
  361. package/dist/release-e2e/npm-ops.d.ts +29 -0
  362. package/dist/release-e2e/npm-ops.js +149 -0
  363. package/dist/release-e2e/rehearsal.d.ts +3 -0
  364. package/dist/release-e2e/rehearsal.js +51 -0
  365. package/dist/release-e2e/rollback-bridge.d.ts +3 -0
  366. package/dist/release-e2e/rollback-bridge.js +20 -0
  367. package/dist/release-e2e/types.d.ts +40 -0
  368. package/dist/release-e2e/types.js +2 -0
  369. package/dist/release-publish/cli.d.ts +2 -0
  370. package/dist/release-publish/cli.js +7 -0
  371. package/dist/release-publish/constants.d.ts +4 -0
  372. package/dist/release-publish/constants.js +24 -0
  373. package/dist/release-publish/flags.d.ts +5 -0
  374. package/dist/release-publish/flags.js +67 -0
  375. package/dist/release-publish/gh-api.d.ts +6 -0
  376. package/dist/release-publish/gh-api.js +102 -0
  377. package/dist/release-publish/index.d.ts +7 -0
  378. package/dist/release-publish/index.js +8 -0
  379. package/dist/release-publish/main.d.ts +3 -0
  380. package/dist/release-publish/main.js +38 -0
  381. package/dist/release-publish/pipeline.d.ts +4 -0
  382. package/dist/release-publish/pipeline.js +46 -0
  383. package/dist/release-publish/types.d.ts +25 -0
  384. package/dist/release-publish/types.js +2 -0
  385. package/dist/release-rollback/constants.d.ts +18 -0
  386. package/dist/release-rollback/constants.js +55 -0
  387. package/dist/release-rollback/flags.d.ts +4 -0
  388. package/dist/release-rollback/flags.js +136 -0
  389. package/dist/release-rollback/gh.d.ts +5 -0
  390. package/dist/release-rollback/gh.js +71 -0
  391. package/dist/release-rollback/git.d.ts +9 -0
  392. package/dist/release-rollback/git.js +87 -0
  393. package/dist/release-rollback/guard.d.ts +12 -0
  394. package/dist/release-rollback/guard.js +97 -0
  395. package/dist/release-rollback/index.d.ts +9 -0
  396. package/dist/release-rollback/index.js +10 -0
  397. package/dist/release-rollback/main.d.ts +3 -0
  398. package/dist/release-rollback/main.js +51 -0
  399. package/dist/release-rollback/pipeline.d.ts +7 -0
  400. package/dist/release-rollback/pipeline.js +221 -0
  401. package/dist/release-rollback/types.d.ts +41 -0
  402. package/dist/release-rollback/types.js +2 -0
  403. package/dist/render/constants.d.ts +16 -0
  404. package/dist/render/constants.js +78 -0
  405. package/dist/render/framework-commands.d.ts +41 -0
  406. package/dist/render/framework-commands.js +416 -0
  407. package/dist/render/index.d.ts +15 -0
  408. package/dist/render/index.js +15 -0
  409. package/dist/render/prd-render.d.ts +14 -0
  410. package/dist/render/prd-render.js +79 -0
  411. package/dist/render/project-render.d.ts +20 -0
  412. package/dist/render/project-render.js +169 -0
  413. package/dist/render/roadmap-render.d.ts +8 -0
  414. package/dist/render/roadmap-render.js +387 -0
  415. package/dist/render/spec-render.d.ts +13 -0
  416. package/dist/render/spec-render.js +362 -0
  417. package/dist/render/spec-validate.d.ts +6 -0
  418. package/dist/render/spec-validate.js +157 -0
  419. package/dist/render/text-utils.d.ts +8 -0
  420. package/dist/render/text-utils.js +72 -0
  421. package/dist/scm/argv.d.ts +7 -0
  422. package/dist/scm/argv.js +54 -0
  423. package/dist/scm/binary.d.ts +11 -0
  424. package/dist/scm/binary.js +35 -0
  425. package/dist/scm/build-command.d.ts +11 -0
  426. package/dist/scm/build-command.js +23 -0
  427. package/dist/scm/call.d.ts +25 -0
  428. package/dist/scm/call.js +38 -0
  429. package/dist/scm/cli.d.ts +3 -0
  430. package/dist/scm/cli.js +7 -0
  431. package/dist/scm/constants.d.ts +11 -0
  432. package/dist/scm/constants.js +11 -0
  433. package/dist/scm/errors.d.ts +5 -0
  434. package/dist/scm/errors.js +8 -0
  435. package/dist/scm/gh-rest.d.ts +74 -0
  436. package/dist/scm/gh-rest.js +326 -0
  437. package/dist/scm/index.d.ts +11 -0
  438. package/dist/scm/index.js +11 -0
  439. package/dist/scm/main.d.ts +12 -0
  440. package/dist/scm/main.js +65 -0
  441. package/dist/scm/py-format.d.ts +9 -0
  442. package/dist/scm/py-format.js +31 -0
  443. package/dist/scm/rest-dispatch.d.ts +14 -0
  444. package/dist/scm/rest-dispatch.js +175 -0
  445. package/dist/scope/audit-log.d.ts +14 -0
  446. package/dist/scope/audit-log.js +186 -0
  447. package/dist/scope/capacity-stamp.d.ts +3 -0
  448. package/dist/scope/capacity-stamp.js +45 -0
  449. package/dist/scope/cli.d.ts +4 -0
  450. package/dist/scope/cli.js +11 -0
  451. package/dist/scope/constants.d.ts +19 -0
  452. package/dist/scope/constants.js +44 -0
  453. package/dist/scope/decompose.d.ts +42 -0
  454. package/dist/scope/decompose.js +1016 -0
  455. package/dist/scope/decomposed-refs.d.ts +6 -0
  456. package/dist/scope/decomposed-refs.js +173 -0
  457. package/dist/scope/demote.d.ts +24 -0
  458. package/dist/scope/demote.js +209 -0
  459. package/dist/scope/index.d.ts +12 -0
  460. package/dist/scope/index.js +12 -0
  461. package/dist/scope/main.d.ts +30 -0
  462. package/dist/scope/main.js +365 -0
  463. package/dist/scope/project-context.d.ts +6 -0
  464. package/dist/scope/project-context.js +55 -0
  465. package/dist/scope/project-definition-sync.d.ts +3 -0
  466. package/dist/scope/project-definition-sync.js +157 -0
  467. package/dist/scope/transition.d.ts +10 -0
  468. package/dist/scope/transition.js +133 -0
  469. package/dist/scope/undo.d.ts +25 -0
  470. package/dist/scope/undo.js +334 -0
  471. package/dist/scope/vbrief-json.d.ts +4 -0
  472. package/dist/scope/vbrief-json.js +8 -0
  473. package/dist/scope/vbrief-ref.d.ts +11 -0
  474. package/dist/scope/vbrief-ref.js +100 -0
  475. package/dist/scope/wip-cap-check.d.ts +11 -0
  476. package/dist/scope/wip-cap-check.js +23 -0
  477. package/dist/session/git.d.ts +14 -0
  478. package/dist/session/git.js +49 -0
  479. package/dist/session/index.d.ts +9 -0
  480. package/dist/session/index.js +9 -0
  481. package/dist/session/json.d.ts +7 -0
  482. package/dist/session/json.js +29 -0
  483. package/dist/session/resume-conditions.d.ts +56 -0
  484. package/dist/session/resume-conditions.js +486 -0
  485. package/dist/session/ritual-entrypoint.d.ts +20 -0
  486. package/dist/session/ritual-entrypoint.js +86 -0
  487. package/dist/session/ritual-sentinel.d.ts +58 -0
  488. package/dist/session/ritual-sentinel.js +338 -0
  489. package/dist/session/session-start-hook.d.ts +14 -0
  490. package/dist/session/session-start-hook.js +53 -0
  491. package/dist/session/session-start.d.ts +41 -0
  492. package/dist/session/session-start.js +290 -0
  493. package/dist/session/staleness.d.ts +8 -0
  494. package/dist/session/staleness.js +91 -0
  495. package/dist/session/time.d.ts +5 -0
  496. package/dist/session/time.js +19 -0
  497. package/dist/session/verify-session-ritual.d.ts +29 -0
  498. package/dist/session/verify-session-ritual.js +222 -0
  499. package/dist/slice/cli.d.ts +21 -0
  500. package/dist/slice/cli.js +248 -0
  501. package/dist/slice/constants.d.ts +18 -0
  502. package/dist/slice/constants.js +30 -0
  503. package/dist/slice/errors.d.ts +9 -0
  504. package/dist/slice/errors.js +15 -0
  505. package/dist/slice/existing.d.ts +53 -0
  506. package/dist/slice/existing.js +344 -0
  507. package/dist/slice/index.d.ts +10 -0
  508. package/dist/slice/index.js +10 -0
  509. package/dist/slice/json.d.ts +7 -0
  510. package/dist/slice/json.js +25 -0
  511. package/dist/slice/lock.d.ts +9 -0
  512. package/dist/slice/lock.js +59 -0
  513. package/dist/slice/project-context.d.ts +15 -0
  514. package/dist/slice/project-context.js +87 -0
  515. package/dist/slice/record.d.ts +50 -0
  516. package/dist/slice/record.js +139 -0
  517. package/dist/slice/validate.d.ts +3 -0
  518. package/dist/slice/validate.js +86 -0
  519. package/dist/story-ready/allocation.d.ts +14 -0
  520. package/dist/story-ready/allocation.js +61 -0
  521. package/dist/story-ready/evaluate.d.ts +23 -0
  522. package/dist/story-ready/evaluate.js +161 -0
  523. package/dist/story-ready/git.d.ts +6 -0
  524. package/dist/story-ready/git.js +26 -0
  525. package/dist/story-ready/index.d.ts +4 -0
  526. package/dist/story-ready/index.js +4 -0
  527. package/dist/subprocess/max-buffer.d.ts +18 -0
  528. package/dist/subprocess/max-buffer.js +18 -0
  529. package/dist/swarm/complete-cohort-cli.d.ts +3 -0
  530. package/dist/swarm/complete-cohort-cli.js +42 -0
  531. package/dist/swarm/complete-cohort.d.ts +34 -0
  532. package/dist/swarm/complete-cohort.js +407 -0
  533. package/dist/swarm/constants.d.ts +18 -0
  534. package/dist/swarm/constants.js +24 -0
  535. package/dist/swarm/index.d.ts +18 -0
  536. package/dist/swarm/index.js +18 -0
  537. package/dist/swarm/launch-cli.d.ts +5 -0
  538. package/dist/swarm/launch-cli.js +111 -0
  539. package/dist/swarm/launch.d.ts +78 -0
  540. package/dist/swarm/launch.js +587 -0
  541. package/dist/swarm/readiness-cli.d.ts +3 -0
  542. package/dist/swarm/readiness-cli.js +25 -0
  543. package/dist/swarm/readiness.d.ts +24 -0
  544. package/dist/swarm/readiness.js +606 -0
  545. package/dist/swarm/routing-set-cli.d.ts +3 -0
  546. package/dist/swarm/routing-set-cli.js +82 -0
  547. package/dist/swarm/routing-verify-cli.d.ts +3 -0
  548. package/dist/swarm/routing-verify-cli.js +51 -0
  549. package/dist/swarm/routing-verify.d.ts +20 -0
  550. package/dist/swarm/routing-verify.js +104 -0
  551. package/dist/swarm/routing.d.ts +57 -0
  552. package/dist/swarm/routing.js +173 -0
  553. package/dist/swarm/subagent-backend.d.ts +22 -0
  554. package/dist/swarm/subagent-backend.js +162 -0
  555. package/dist/swarm/subprocess.d.ts +10 -0
  556. package/dist/swarm/subprocess.js +34 -0
  557. package/dist/swarm/verify-review-clean-cli.d.ts +3 -0
  558. package/dist/swarm/verify-review-clean-cli.js +38 -0
  559. package/dist/swarm/verify-review-clean.d.ts +40 -0
  560. package/dist/swarm/verify-review-clean.js +240 -0
  561. package/dist/swarm/worktrees-cli.d.ts +9 -0
  562. package/dist/swarm/worktrees-cli.js +57 -0
  563. package/dist/swarm/worktrees.d.ts +39 -0
  564. package/dist/swarm/worktrees.js +178 -0
  565. package/dist/text/redos-safe.d.ts +29 -0
  566. package/dist/text/redos-safe.js +338 -0
  567. package/dist/triage/actions/candidates-log.d.ts +8 -0
  568. package/dist/triage/actions/candidates-log.js +195 -0
  569. package/dist/triage/actions/errors.d.ts +17 -0
  570. package/dist/triage/actions/errors.js +29 -0
  571. package/dist/triage/actions/index.d.ts +19 -0
  572. package/dist/triage/actions/index.js +305 -0
  573. package/dist/triage/actions/resume-on.d.ts +3 -0
  574. package/dist/triage/actions/resume-on.js +65 -0
  575. package/dist/triage/actions/types.d.ts +57 -0
  576. package/dist/triage/actions/types.js +2 -0
  577. package/dist/triage/bootstrap/gitignore.d.ts +16 -0
  578. package/dist/triage/bootstrap/gitignore.js +414 -0
  579. package/dist/triage/bootstrap/index.d.ts +44 -0
  580. package/dist/triage/bootstrap/index.js +572 -0
  581. package/dist/triage/bootstrap/types.d.ts +60 -0
  582. package/dist/triage/bootstrap/types.js +2 -0
  583. package/dist/triage/bulk/index.d.ts +99 -0
  584. package/dist/triage/bulk/index.js +454 -0
  585. package/dist/triage/classify/index.d.ts +88 -0
  586. package/dist/triage/classify/index.js +738 -0
  587. package/dist/triage/help/index.d.ts +25 -0
  588. package/dist/triage/help/index.js +212 -0
  589. package/dist/triage/help/registry-data.d.ts +555 -0
  590. package/dist/triage/help/registry-data.js +841 -0
  591. package/dist/triage/index.d.ts +23 -0
  592. package/dist/triage/index.js +23 -0
  593. package/dist/triage/queue/audit.d.ts +12 -0
  594. package/dist/triage/queue/audit.js +47 -0
  595. package/dist/triage/queue/build-queue.d.ts +9 -0
  596. package/dist/triage/queue/build-queue.js +133 -0
  597. package/dist/triage/queue/cache.d.ts +20 -0
  598. package/dist/triage/queue/cache.js +169 -0
  599. package/dist/triage/queue/constants.d.ts +22 -0
  600. package/dist/triage/queue/constants.js +28 -0
  601. package/dist/triage/queue/derive-group.d.ts +7 -0
  602. package/dist/triage/queue/derive-group.js +20 -0
  603. package/dist/triage/queue/index.d.ts +12 -0
  604. package/dist/triage/queue/index.js +12 -0
  605. package/dist/triage/queue/project.d.ts +6 -0
  606. package/dist/triage/queue/project.js +18 -0
  607. package/dist/triage/queue/ranking-labels.d.ts +10 -0
  608. package/dist/triage/queue/ranking-labels.js +54 -0
  609. package/dist/triage/queue/render.d.ts +9 -0
  610. package/dist/triage/queue/render.js +35 -0
  611. package/dist/triage/queue/repo.d.ts +5 -0
  612. package/dist/triage/queue/repo.js +36 -0
  613. package/dist/triage/queue/scope-walk.d.ts +13 -0
  614. package/dist/triage/queue/scope-walk.js +170 -0
  615. package/dist/triage/queue/selection.d.ts +28 -0
  616. package/dist/triage/queue/selection.js +109 -0
  617. package/dist/triage/queue/types.d.ts +58 -0
  618. package/dist/triage/queue/types.js +2 -0
  619. package/dist/triage/reconcile/audit.d.ts +4 -0
  620. package/dist/triage/reconcile/audit.js +62 -0
  621. package/dist/triage/reconcile/index.d.ts +5 -0
  622. package/dist/triage/reconcile/index.js +5 -0
  623. package/dist/triage/reconcile/parse-uri.d.ts +4 -0
  624. package/dist/triage/reconcile/parse-uri.js +43 -0
  625. package/dist/triage/reconcile/reconcile.d.ts +17 -0
  626. package/dist/triage/reconcile/reconcile.js +163 -0
  627. package/dist/triage/reconcile/types.d.ts +23 -0
  628. package/dist/triage/reconcile/types.js +70 -0
  629. package/dist/triage/refresh/drift.d.ts +15 -0
  630. package/dist/triage/refresh/drift.js +72 -0
  631. package/dist/triage/refresh/extract.d.ts +3 -0
  632. package/dist/triage/refresh/extract.js +43 -0
  633. package/dist/triage/refresh/index.d.ts +5 -0
  634. package/dist/triage/refresh/index.js +5 -0
  635. package/dist/triage/refresh/refresh.d.ts +16 -0
  636. package/dist/triage/refresh/refresh.js +95 -0
  637. package/dist/triage/refresh/types.d.ts +18 -0
  638. package/dist/triage/refresh/types.js +7 -0
  639. package/dist/triage/scope/cli.d.ts +23 -0
  640. package/dist/triage/scope/cli.js +257 -0
  641. package/dist/triage/scope/constants.d.ts +16 -0
  642. package/dist/triage/scope/constants.js +25 -0
  643. package/dist/triage/scope/coverage.d.ts +24 -0
  644. package/dist/triage/scope/coverage.js +96 -0
  645. package/dist/triage/scope/duration.d.ts +6 -0
  646. package/dist/triage/scope/duration.js +44 -0
  647. package/dist/triage/scope/evaluate.d.ts +18 -0
  648. package/dist/triage/scope/evaluate.js +161 -0
  649. package/dist/triage/scope/index.d.ts +14 -0
  650. package/dist/triage/scope/index.js +14 -0
  651. package/dist/triage/scope/milestone.d.ts +13 -0
  652. package/dist/triage/scope/milestone.js +178 -0
  653. package/dist/triage/scope/mutations-core.d.ts +24 -0
  654. package/dist/triage/scope/mutations-core.js +216 -0
  655. package/dist/triage/scope/mutations.d.ts +21 -0
  656. package/dist/triage/scope/mutations.js +203 -0
  657. package/dist/triage/scope/normalize.d.ts +5 -0
  658. package/dist/triage/scope/normalize.js +45 -0
  659. package/dist/triage/scope/python-repr.d.ts +7 -0
  660. package/dist/triage/scope/python-repr.js +25 -0
  661. package/dist/triage/scope/renderers.d.ts +9 -0
  662. package/dist/triage/scope/renderers.js +177 -0
  663. package/dist/triage/scope/resolve.d.ts +15 -0
  664. package/dist/triage/scope/resolve.js +122 -0
  665. package/dist/triage/scope/time.d.ts +6 -0
  666. package/dist/triage/scope/time.js +18 -0
  667. package/dist/triage/scope/validate.d.ts +11 -0
  668. package/dist/triage/scope/validate.js +272 -0
  669. package/dist/triage/scope-drift/add-ignore.d.ts +10 -0
  670. package/dist/triage/scope-drift/add-ignore.js +78 -0
  671. package/dist/triage/scope-drift/cache-walker.d.ts +8 -0
  672. package/dist/triage/scope-drift/cache-walker.js +103 -0
  673. package/dist/triage/scope-drift/compute.d.ts +9 -0
  674. package/dist/triage/scope-drift/compute.js +92 -0
  675. package/dist/triage/scope-drift/index.d.ts +6 -0
  676. package/dist/triage/scope-drift/index.js +6 -0
  677. package/dist/triage/scope-drift/render.d.ts +4 -0
  678. package/dist/triage/scope-drift/render.js +45 -0
  679. package/dist/triage/scope-drift/scope-rules.d.ts +16 -0
  680. package/dist/triage/scope-drift/scope-rules.js +149 -0
  681. package/dist/triage/scope-drift/types.d.ts +13 -0
  682. package/dist/triage/scope-drift/types.js +8 -0
  683. package/dist/triage/smoketest/index.d.ts +81 -0
  684. package/dist/triage/smoketest/index.js +335 -0
  685. package/dist/triage/subscribe/index.d.ts +38 -0
  686. package/dist/triage/subscribe/index.js +303 -0
  687. package/dist/triage/summary/index.d.ts +70 -0
  688. package/dist/triage/summary/index.js +431 -0
  689. package/dist/triage/summary/reconcilable.d.ts +12 -0
  690. package/dist/triage/summary/reconcilable.js +150 -0
  691. package/dist/triage/summary/scope-drift.d.ts +5 -0
  692. package/dist/triage/summary/scope-drift.js +219 -0
  693. package/dist/triage/welcome/constants.d.ts +24 -0
  694. package/dist/triage/welcome/constants.js +34 -0
  695. package/dist/triage/welcome/default-mode.d.ts +21 -0
  696. package/dist/triage/welcome/default-mode.js +48 -0
  697. package/dist/triage/welcome/index.d.ts +6 -0
  698. package/dist/triage/welcome/index.js +6 -0
  699. package/dist/triage/welcome/prior-state.d.ts +17 -0
  700. package/dist/triage/welcome/prior-state.js +170 -0
  701. package/dist/triage/welcome/summary.d.ts +23 -0
  702. package/dist/triage/welcome/summary.js +303 -0
  703. package/dist/triage/welcome/writers.d.ts +17 -0
  704. package/dist/triage/welcome/writers.js +157 -0
  705. package/dist/ts-check-lane/index.d.ts +3 -0
  706. package/dist/ts-check-lane/index.js +2 -0
  707. package/dist/ts-check-lane/run-lane.d.ts +53 -0
  708. package/dist/ts-check-lane/run-lane.js +98 -0
  709. package/dist/validate-content/capacity-policy.d.ts +82 -0
  710. package/dist/validate-content/capacity-policy.js +399 -0
  711. package/dist/validate-content/capacity-show.d.ts +60 -0
  712. package/dist/validate-content/capacity-show.js +336 -0
  713. package/dist/validate-content/filename.d.ts +3 -0
  714. package/dist/validate-content/filename.js +54 -0
  715. package/dist/validate-content/index.d.ts +9 -0
  716. package/dist/validate-content/index.js +9 -0
  717. package/dist/validate-content/link-parser.d.ts +5 -0
  718. package/dist/validate-content/link-parser.js +42 -0
  719. package/dist/validate-content/types.d.ts +8 -0
  720. package/dist/validate-content/types.js +2 -0
  721. package/dist/validate-content/validate-links.d.ts +17 -0
  722. package/dist/validate-content/validate-links.js +114 -0
  723. package/dist/validate-content/validate-strategy-output.d.ts +11 -0
  724. package/dist/validate-content/validate-strategy-output.js +120 -0
  725. package/dist/validate-content/verify-capacity.d.ts +14 -0
  726. package/dist/validate-content/verify-capacity.js +96 -0
  727. package/dist/vbrief-activate/activate.d.ts +13 -0
  728. package/dist/vbrief-activate/activate.js +184 -0
  729. package/dist/vbrief-activate/constants.d.ts +9 -0
  730. package/dist/vbrief-activate/constants.js +11 -0
  731. package/dist/vbrief-activate/index.d.ts +6 -0
  732. package/dist/vbrief-activate/index.js +4 -0
  733. package/dist/vbrief-activate/main.d.ts +14 -0
  734. package/dist/vbrief-activate/main.js +33 -0
  735. package/dist/vbrief-build/build.d.ts +13 -0
  736. package/dist/vbrief-build/build.js +123 -0
  737. package/dist/vbrief-build/constants.d.ts +13 -0
  738. package/dist/vbrief-build/constants.js +34 -0
  739. package/dist/vbrief-build/index.d.ts +12 -0
  740. package/dist/vbrief-build/index.js +11 -0
  741. package/dist/vbrief-build/json.d.ts +3 -0
  742. package/dist/vbrief-build/json.js +5 -0
  743. package/dist/vbrief-build/main.d.ts +5 -0
  744. package/dist/vbrief-build/main.js +65 -0
  745. package/dist/vbrief-build/parity-scenarios.d.ts +19 -0
  746. package/dist/vbrief-build/parity-scenarios.js +321 -0
  747. package/dist/vbrief-build/project-definition-io.d.ts +13 -0
  748. package/dist/vbrief-build/project-definition-io.js +117 -0
  749. package/dist/vbrief-build/routing.d.ts +13 -0
  750. package/dist/vbrief-build/routing.js +110 -0
  751. package/dist/vbrief-build/sources.d.ts +16 -0
  752. package/dist/vbrief-build/sources.js +294 -0
  753. package/dist/vbrief-build/speckit.d.ts +23 -0
  754. package/dist/vbrief-build/speckit.js +212 -0
  755. package/dist/vbrief-build/types.d.ts +18 -0
  756. package/dist/vbrief-build/types.js +7 -0
  757. package/dist/vbrief-reconcile/graph.d.ts +11 -0
  758. package/dist/vbrief-reconcile/graph.js +171 -0
  759. package/dist/vbrief-reconcile/index.d.ts +10 -0
  760. package/dist/vbrief-reconcile/index.js +9 -0
  761. package/dist/vbrief-reconcile/labels.d.ts +22 -0
  762. package/dist/vbrief-reconcile/labels.js +252 -0
  763. package/dist/vbrief-reconcile/main.d.ts +18 -0
  764. package/dist/vbrief-reconcile/main.js +149 -0
  765. package/dist/vbrief-reconcile/parity-scenarios.d.ts +16 -0
  766. package/dist/vbrief-reconcile/parity-scenarios.js +385 -0
  767. package/dist/vbrief-reconcile/py-repr.d.ts +3 -0
  768. package/dist/vbrief-reconcile/py-repr.js +5 -0
  769. package/dist/vbrief-reconcile/reconciliation.d.ts +20 -0
  770. package/dist/vbrief-reconcile/reconciliation.js +542 -0
  771. package/dist/vbrief-reconcile/swarm-deps.d.ts +8 -0
  772. package/dist/vbrief-reconcile/swarm-deps.js +142 -0
  773. package/dist/vbrief-reconcile/types.d.ts +128 -0
  774. package/dist/vbrief-reconcile/types.js +2 -0
  775. package/dist/vbrief-reconcile/umbrellas.d.ts +48 -0
  776. package/dist/vbrief-reconcile/umbrellas.js +462 -0
  777. package/dist/vbrief-validate/conformance.d.ts +26 -0
  778. package/dist/vbrief-validate/conformance.js +273 -0
  779. package/dist/vbrief-validate/constants.d.ts +13 -0
  780. package/dist/vbrief-validate/constants.js +36 -0
  781. package/dist/vbrief-validate/decomposition.d.ts +3 -0
  782. package/dist/vbrief-validate/decomposition.js +38 -0
  783. package/dist/vbrief-validate/epic-links.d.ts +4 -0
  784. package/dist/vbrief-validate/epic-links.js +152 -0
  785. package/dist/vbrief-validate/filename.d.ts +5 -0
  786. package/dist/vbrief-validate/filename.js +62 -0
  787. package/dist/vbrief-validate/folder-status.d.ts +4 -0
  788. package/dist/vbrief-validate/folder-status.js +30 -0
  789. package/dist/vbrief-validate/index.d.ts +14 -0
  790. package/dist/vbrief-validate/index.js +11 -0
  791. package/dist/vbrief-validate/main.d.ts +17 -0
  792. package/dist/vbrief-validate/main.js +127 -0
  793. package/dist/vbrief-validate/origin.d.ts +4 -0
  794. package/dist/vbrief-validate/origin.js +76 -0
  795. package/dist/vbrief-validate/paths.d.ts +11 -0
  796. package/dist/vbrief-validate/paths.js +83 -0
  797. package/dist/vbrief-validate/placeholders.d.ts +3 -0
  798. package/dist/vbrief-validate/placeholders.js +33 -0
  799. package/dist/vbrief-validate/plan-hooks.d.ts +9 -0
  800. package/dist/vbrief-validate/plan-hooks.js +145 -0
  801. package/dist/vbrief-validate/precutover.d.ts +7 -0
  802. package/dist/vbrief-validate/precutover.js +30 -0
  803. package/dist/vbrief-validate/project-definition.d.ts +4 -0
  804. package/dist/vbrief-validate/project-definition.js +166 -0
  805. package/dist/vbrief-validate/schema.d.ts +8 -0
  806. package/dist/vbrief-validate/schema.js +150 -0
  807. package/dist/vbrief-validate/staleness.d.ts +3 -0
  808. package/dist/vbrief-validate/staleness.js +106 -0
  809. package/dist/vbrief-validate/validate-all.d.ts +17 -0
  810. package/dist/vbrief-validate/validate-all.js +119 -0
  811. package/dist/vbrief-validation/fidelity.d.ts +22 -0
  812. package/dist/vbrief-validation/fidelity.js +508 -0
  813. package/dist/vbrief-validation/index.d.ts +11 -0
  814. package/dist/vbrief-validation/index.js +8 -0
  815. package/dist/vbrief-validation/legacy-sections.d.ts +13 -0
  816. package/dist/vbrief-validation/legacy-sections.js +124 -0
  817. package/dist/vbrief-validation/main.d.ts +5 -0
  818. package/dist/vbrief-validation/main.js +65 -0
  819. package/dist/vbrief-validation/normalize.d.ts +22 -0
  820. package/dist/vbrief-validation/normalize.js +126 -0
  821. package/dist/vbrief-validation/parity-scenarios.d.ts +14 -0
  822. package/dist/vbrief-validation/parity-scenarios.js +523 -0
  823. package/dist/vbrief-validation/safety.d.ts +38 -0
  824. package/dist/vbrief-validation/safety.js +422 -0
  825. package/dist/vbrief-validation/story-quality.d.ts +29 -0
  826. package/dist/vbrief-validation/story-quality.js +452 -0
  827. package/dist/vbrief-validation/types.d.ts +58 -0
  828. package/dist/vbrief-validation/types.js +2 -0
  829. package/dist/vbrief-validation/validation.d.ts +15 -0
  830. package/dist/vbrief-validation/validation.js +123 -0
  831. package/dist/verify-env/index.d.ts +6 -0
  832. package/dist/verify-env/index.js +6 -0
  833. package/dist/verify-env/node-runtime.d.ts +6 -0
  834. package/dist/verify-env/node-runtime.js +11 -0
  835. package/dist/verify-env/toolchain-check.d.ts +28 -0
  836. package/dist/verify-env/toolchain-check.js +68 -0
  837. package/dist/verify-env/verify-hooks-installed.d.ts +21 -0
  838. package/dist/verify-env/verify-hooks-installed.js +162 -0
  839. package/dist/verify-env/verify-no-task-runtime.d.ts +20 -0
  840. package/dist/verify-env/verify-no-task-runtime.js +383 -0
  841. package/dist/verify-env/verify-tools.d.ts +59 -0
  842. package/dist/verify-env/verify-tools.js +354 -0
  843. package/dist/verify-source/code-structure-validate.d.ts +48 -0
  844. package/dist/verify-source/code-structure-validate.js +678 -0
  845. package/dist/verify-source/content-manifest.d.ts +102 -0
  846. package/dist/verify-source/content-manifest.js +282 -0
  847. package/dist/verify-source/index.d.ts +7 -0
  848. package/dist/verify-source/index.js +7 -0
  849. package/dist/verify-source/python-call-scan.d.ts +14 -0
  850. package/dist/verify-source/python-call-scan.js +137 -0
  851. package/dist/verify-source/rule-ownership-lint.d.ts +33 -0
  852. package/dist/verify-source/rule-ownership-lint.js +179 -0
  853. package/dist/verify-source/scm-boundary.d.ts +26 -0
  854. package/dist/verify-source/scm-boundary.js +170 -0
  855. package/dist/verify-source/verify-stubs.d.ts +19 -0
  856. package/dist/verify-source/verify-stubs.js +185 -0
  857. package/dist/wip-cap/evaluate.d.ts +17 -0
  858. package/dist/wip-cap/evaluate.js +62 -0
  859. package/dist/wip-cap/index.d.ts +2 -0
  860. package/dist/wip-cap/index.js +2 -0
  861. package/package.json +206 -0
@@ -0,0 +1,99 @@
1
+ export declare const ACTION_FN_NAMES: Readonly<Record<string, string>>;
2
+ export declare const TERMINAL_DECISIONS: ReadonlySet<string>;
3
+ export declare const IN_PROGRESS_DECISIONS: ReadonlySet<string>;
4
+ export declare class CacheEmptyError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ export interface CacheGetResult {
8
+ readonly entryDir: string;
9
+ }
10
+ export interface CacheModule {
11
+ cacheGet(source: string, key: string, options: {
12
+ cacheRoot: string;
13
+ allowStale: boolean;
14
+ }): CacheGetResult;
15
+ CacheNotFoundError: new (message?: string) => Error;
16
+ CacheValidationError: new (message?: string) => Error;
17
+ CacheError: new (message?: string) => Error;
18
+ }
19
+ export interface TriageActionsModule {
20
+ accept(issueNumber: number, repo: string, ...args: unknown[]): void;
21
+ reject(issueNumber: number, repo: string, ...args: unknown[]): void;
22
+ defer(issueNumber: number, repo: string, ...args: unknown[]): void;
23
+ needs_ac(issueNumber: number, repo: string, ...args: unknown[]): void;
24
+ }
25
+ export interface AuditEntry {
26
+ readonly issue_number?: number;
27
+ readonly timestamp?: string;
28
+ readonly decision?: string;
29
+ readonly repo?: string;
30
+ }
31
+ export interface CandidatesLogModule {
32
+ readAll(options: {
33
+ repo: string;
34
+ }): AuditEntry[];
35
+ }
36
+ export interface IssuePayload {
37
+ readonly number?: number;
38
+ readonly labels?: ReadonlyArray<{
39
+ name?: string;
40
+ }>;
41
+ readonly author?: {
42
+ login?: string;
43
+ };
44
+ readonly createdAt?: string;
45
+ }
46
+ export interface BulkActionOptions {
47
+ readonly label?: string | null;
48
+ readonly author?: string | null;
49
+ readonly ageDays?: number | null;
50
+ readonly cluster?: string | null;
51
+ readonly reason?: string | null;
52
+ readonly reAction?: boolean;
53
+ readonly cacheRoot?: string | null;
54
+ readonly actionsModule?: TriageActionsModule;
55
+ readonly cacheModule?: CacheModule;
56
+ readonly candidatesLogModule?: CandidatesLogModule;
57
+ readonly issuesProvider?: (repo: string) => IssuePayload[];
58
+ readonly now?: Date;
59
+ readonly out?: {
60
+ write: (text: string) => void;
61
+ };
62
+ }
63
+ export declare function parseRepo(repo: string): [string, string];
64
+ export declare function iterCacheKeys(repo: string, cacheRoot?: string | null): string[];
65
+ export declare function listCachedCandidates(repo: string, options: {
66
+ cacheRoot?: string | null;
67
+ cacheModule: CacheModule;
68
+ out?: {
69
+ write: (text: string) => void;
70
+ };
71
+ }): IssuePayload[];
72
+ export declare function filterIssues(issues: Iterable<IssuePayload>, options: {
73
+ label?: string | null;
74
+ author?: string | null;
75
+ ageDays?: number | null;
76
+ cluster?: string | null;
77
+ now?: Date;
78
+ }): IssuePayload[];
79
+ export declare function excludeLogged(candidates: Iterable<IssuePayload>, options: {
80
+ repo: string;
81
+ reAction: boolean;
82
+ candidatesLogModule: CandidatesLogModule;
83
+ out?: {
84
+ write: (text: string) => void;
85
+ };
86
+ }): IssuePayload[];
87
+ /** Execute bulk action over the filtered candidate set. */
88
+ export declare function bulkAction(actionKey: string, repo: string, options?: BulkActionOptions): number;
89
+ export declare function createFilesystemCacheModule(): CacheModule;
90
+ export declare function createFilesystemCandidatesLogModule(logPath?: string): CandidatesLogModule;
91
+ export declare function createPythonActionsModule(scriptsDir: string): TriageActionsModule;
92
+ export interface DefaultBulkDepsOptions {
93
+ readonly cacheRoot?: string;
94
+ readonly candidatesLogPath?: string;
95
+ readonly scriptsDir?: string;
96
+ readonly deftRoot?: string;
97
+ }
98
+ export declare function bulkActionWithDefaults(actionKey: string, repo: string, options?: BulkActionOptions & DefaultBulkDepsOptions): number;
99
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,454 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ export const ACTION_FN_NAMES = {
5
+ accept: "accept",
6
+ reject: "reject",
7
+ defer: "defer",
8
+ "needs-ac": "needs_ac",
9
+ };
10
+ export const TERMINAL_DECISIONS = new Set([
11
+ "accept",
12
+ "reject",
13
+ "mark-duplicate",
14
+ ]);
15
+ export const IN_PROGRESS_DECISIONS = new Set(["defer", "needs-ac"]);
16
+ const REPO_RE = /^([A-Za-z0-9][A-Za-z0-9._-]*)\/([A-Za-z0-9][A-Za-z0-9._-]*)$/;
17
+ const CACHE_SOURCE = "github-issue";
18
+ export class CacheEmptyError extends Error {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = "CacheEmptyError";
22
+ }
23
+ }
24
+ const SIGNATURE_TYPEERROR_TOKENS = [
25
+ "unexpected keyword argument",
26
+ "got multiple values for",
27
+ "missing 1 required positional argument",
28
+ "takes 2 positional arguments",
29
+ "takes 3 positional arguments",
30
+ ];
31
+ export function parseRepo(repo) {
32
+ if (typeof repo !== "string" || repo.length === 0) {
33
+ throw new Error(`repo must be a non-empty 'owner/name' string (got ${JSON.stringify(repo)})`);
34
+ }
35
+ const m = REPO_RE.exec(repo.trim());
36
+ if (m === null) {
37
+ throw new Error(`invalid repo ${JSON.stringify(repo)}: expected 'owner/name' ` +
38
+ "(alphanumerics, '.', '_', '-' only)");
39
+ }
40
+ if (m[1] === undefined || m[2] === undefined) {
41
+ throw new Error(`invalid repo ${JSON.stringify(repo)}`);
42
+ }
43
+ return [m[1], m[2]];
44
+ }
45
+ function cacheRootPath(cacheRoot) {
46
+ return cacheRoot !== null && cacheRoot !== undefined ? cacheRoot : ".deft-cache";
47
+ }
48
+ export function iterCacheKeys(repo, cacheRoot) {
49
+ const [owner, name] = parseRepo(repo);
50
+ const base = join(cacheRootPath(cacheRoot), CACHE_SOURCE, owner, name);
51
+ if (!existsSync(base)) {
52
+ return [];
53
+ }
54
+ const keys = [];
55
+ const entries = readdirSync(base, { withFileTypes: true })
56
+ .filter((e) => e.isDirectory())
57
+ .map((e) => e.name)
58
+ .sort();
59
+ for (const entry of entries) {
60
+ if (!/^\d+$/.test(entry)) {
61
+ continue;
62
+ }
63
+ keys.push(`${owner}/${name}/${entry}`);
64
+ }
65
+ return keys;
66
+ }
67
+ export function listCachedCandidates(repo, options) {
68
+ const sink = options.out ?? { write: (t) => process.stderr.write(t) };
69
+ const root = cacheRootPath(options.cacheRoot);
70
+ const keys = iterCacheKeys(repo, root);
71
+ const candidates = [];
72
+ for (const key of keys) {
73
+ try {
74
+ const result = options.cacheModule.cacheGet(CACHE_SOURCE, key, {
75
+ cacheRoot: root,
76
+ allowStale: true,
77
+ });
78
+ const rawPath = join(result.entryDir, "raw.json");
79
+ let rawText;
80
+ try {
81
+ rawText = readFileSync(rawPath, { encoding: "utf8" });
82
+ }
83
+ catch (exc) {
84
+ sink.write(`[triage:bulk] WARN: skipping unreadable raw.json for ${key}: ` +
85
+ `${exc instanceof Error ? exc.constructor.name : typeof exc}: ${String(exc)}\n`);
86
+ continue;
87
+ }
88
+ let payload;
89
+ try {
90
+ payload = JSON.parse(rawText);
91
+ }
92
+ catch (exc) {
93
+ sink.write(`[triage:bulk] WARN: skipping malformed raw.json for ${key}: ${String(exc)}\n`);
94
+ continue;
95
+ }
96
+ if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
97
+ sink.write(`[triage:bulk] WARN: skipping non-object raw.json for ${key} ` +
98
+ `(got ${Array.isArray(payload) ? "list" : typeof payload})\n`);
99
+ continue;
100
+ }
101
+ candidates.push(payload);
102
+ }
103
+ catch (exc) {
104
+ const NotFound = options.cacheModule.CacheNotFoundError;
105
+ const Validation = options.cacheModule.CacheValidationError;
106
+ const CacheError = options.cacheModule.CacheError;
107
+ if (exc instanceof NotFound) {
108
+ sink.write(`[triage:bulk] WARN: cache miss for ${key}: ${String(exc)}\n`);
109
+ }
110
+ else if (exc instanceof Validation) {
111
+ sink.write(`[triage:bulk] WARN: invalid meta.json for ${key}: ${String(exc)}\n`);
112
+ }
113
+ else if (exc instanceof CacheError) {
114
+ sink.write(`[triage:bulk] WARN: cache error for ${key}: ${String(exc)}\n`);
115
+ }
116
+ else {
117
+ throw exc;
118
+ }
119
+ }
120
+ }
121
+ return candidates;
122
+ }
123
+ export function filterIssues(issues, options) {
124
+ const now = options.now ?? new Date();
125
+ const cutoff = options.ageDays !== null && options.ageDays !== undefined
126
+ ? new Date(now.getTime() - options.ageDays * 24 * 60 * 60 * 1000)
127
+ : null;
128
+ const matched = [];
129
+ for (const issue of issues) {
130
+ const labels = (issue.labels ?? [])
131
+ .map((entry) => (typeof entry === "object" && entry !== null ? entry.name : undefined))
132
+ .filter((n) => typeof n === "string");
133
+ if (options.label !== null && options.label !== undefined && !labels.includes(options.label)) {
134
+ continue;
135
+ }
136
+ if (options.author !== null && options.author !== undefined) {
137
+ const actor = issue.author;
138
+ const login = typeof actor === "object" && actor !== null ? actor.login : undefined;
139
+ if (login !== options.author) {
140
+ continue;
141
+ }
142
+ }
143
+ if (cutoff !== null) {
144
+ const createdRaw = issue.createdAt;
145
+ if (!createdRaw) {
146
+ continue;
147
+ }
148
+ const createdAt = new Date(String(createdRaw).replace("Z", "+00:00"));
149
+ if (Number.isNaN(createdAt.getTime()) || createdAt > cutoff) {
150
+ continue;
151
+ }
152
+ }
153
+ if (options.cluster !== null && options.cluster !== undefined) {
154
+ const clusterLabel = `cluster:${options.cluster}`;
155
+ if (!labels.some((name) => name === clusterLabel || name === options.cluster)) {
156
+ continue;
157
+ }
158
+ }
159
+ matched.push(issue);
160
+ }
161
+ return matched;
162
+ }
163
+ function buildSkipSet(reAction) {
164
+ if (reAction) {
165
+ return TERMINAL_DECISIONS;
166
+ }
167
+ return new Set([...TERMINAL_DECISIONS, ...IN_PROGRESS_DECISIONS]);
168
+ }
169
+ function latestDecisionByIssue(repo, candidatesLogModule) {
170
+ const latest = new Map();
171
+ for (const entry of candidatesLogModule.readAll({ repo })) {
172
+ const n = entry.issue_number;
173
+ if (typeof n !== "number" || !Number.isInteger(n)) {
174
+ continue;
175
+ }
176
+ const ts = String(entry.timestamp ?? "");
177
+ const prior = latest.get(n);
178
+ if (prior === undefined || ts > String(prior.timestamp ?? "")) {
179
+ latest.set(n, entry);
180
+ }
181
+ }
182
+ return latest;
183
+ }
184
+ export function excludeLogged(candidates, options) {
185
+ const skipSet = buildSkipSet(options.reAction);
186
+ const latest = latestDecisionByIssue(options.repo, options.candidatesLogModule);
187
+ const kept = [];
188
+ let skipped = 0;
189
+ for (const issue of candidates) {
190
+ let n;
191
+ try {
192
+ n = Number(issue.number);
193
+ if (!Number.isInteger(n)) {
194
+ throw new TypeError("not int");
195
+ }
196
+ }
197
+ catch {
198
+ kept.push(issue);
199
+ continue;
200
+ }
201
+ const prior = latest.get(n);
202
+ if (prior === undefined) {
203
+ kept.push(issue);
204
+ continue;
205
+ }
206
+ if (skipSet.has(String(prior.decision ?? ""))) {
207
+ skipped += 1;
208
+ continue;
209
+ }
210
+ kept.push(issue);
211
+ }
212
+ if (skipped > 0) {
213
+ let msg = `[triage:bulk] skipped ${skipped} candidate(s) with prior audit-log records`;
214
+ if (!options.reAction) {
215
+ msg += " (pass --re-action to override defer/needs-ac records)";
216
+ }
217
+ const sink = options.out ?? { write: (t) => process.stderr.write(t) };
218
+ sink.write(`${msg}\n`);
219
+ }
220
+ return kept;
221
+ }
222
+ function isSignatureMismatch(exc) {
223
+ if (!(exc instanceof TypeError)) {
224
+ return false;
225
+ }
226
+ const msg = String(exc.message);
227
+ return SIGNATURE_TYPEERROR_TOKENS.some((token) => msg.includes(token));
228
+ }
229
+ function invokeAction(fn, issueNumber, repo, actionKey, reason) {
230
+ const kwargs = {};
231
+ if (actionKey === "reject" && reason !== null && reason !== undefined) {
232
+ kwargs.reason = reason;
233
+ }
234
+ try {
235
+ if (Object.keys(kwargs).length > 0) {
236
+ fn(issueNumber, repo, kwargs);
237
+ }
238
+ else {
239
+ fn(issueNumber, repo);
240
+ }
241
+ }
242
+ catch (exc) {
243
+ if (!isSignatureMismatch(exc)) {
244
+ throw exc;
245
+ }
246
+ if (actionKey === "reject" && reason !== null && reason !== undefined) {
247
+ fn(issueNumber, repo, reason);
248
+ }
249
+ else {
250
+ fn(issueNumber, repo);
251
+ }
252
+ }
253
+ }
254
+ function resolveAction(actionsModule, actionKey) {
255
+ const fnName = ACTION_FN_NAMES[actionKey];
256
+ if (fnName === undefined) {
257
+ throw new Error(`Unknown bulk action: ${JSON.stringify(actionKey)}`);
258
+ }
259
+ const fn = actionsModule[fnName];
260
+ if (typeof fn !== "function") {
261
+ throw new Error(`triage_actions.${fnName} not found (Story 3 contract violated)`);
262
+ }
263
+ return fn;
264
+ }
265
+ /** Execute bulk action over the filtered candidate set. */
266
+ export function bulkAction(actionKey, repo, options = {}) {
267
+ if (!(actionKey in ACTION_FN_NAMES)) {
268
+ throw new Error(`Unknown bulk action: ${JSON.stringify(actionKey)}`);
269
+ }
270
+ const sink = options.out ?? { write: (t) => process.stdout.write(t) };
271
+ let candidates;
272
+ if (options.issuesProvider !== undefined) {
273
+ candidates = options.issuesProvider(repo);
274
+ }
275
+ else if (options.cacheModule !== undefined) {
276
+ candidates = listCachedCandidates(repo, {
277
+ cacheRoot: options.cacheRoot,
278
+ cacheModule: options.cacheModule,
279
+ out: sink,
280
+ });
281
+ }
282
+ else {
283
+ throw new Error("cache module not available -- cannot read the unified content cache");
284
+ }
285
+ if (candidates.length === 0) {
286
+ throw new CacheEmptyError(`triage_bulk: cache is empty for ${repo}; run \`task triage:bootstrap\` first.`);
287
+ }
288
+ let matched = filterIssues(candidates, {
289
+ label: options.label,
290
+ author: options.author,
291
+ ageDays: options.ageDays,
292
+ cluster: options.cluster,
293
+ now: options.now,
294
+ });
295
+ if (options.candidatesLogModule !== undefined) {
296
+ matched = excludeLogged(matched, {
297
+ repo,
298
+ reAction: options.reAction ?? false,
299
+ candidatesLogModule: options.candidatesLogModule,
300
+ out: sink,
301
+ });
302
+ }
303
+ if (matched.length === 0) {
304
+ sink.write(`[triage:bulk-${actionKey}] zero matches for given filters\n`);
305
+ return 0;
306
+ }
307
+ if (options.actionsModule === undefined) {
308
+ throw new Error("triage_actions module not available");
309
+ }
310
+ const fn = resolveAction(options.actionsModule, actionKey);
311
+ let actioned = 0;
312
+ for (const issue of matched) {
313
+ let issueNumber;
314
+ try {
315
+ issueNumber = Number(issue.number);
316
+ if (!Number.isInteger(issueNumber)) {
317
+ throw new TypeError("not int");
318
+ }
319
+ }
320
+ catch {
321
+ sink.write(`[triage:bulk-${actionKey}] skipping malformed issue entry: ${JSON.stringify(issue)}\n`);
322
+ continue;
323
+ }
324
+ invokeAction(fn, issueNumber, repo, actionKey, options.reason);
325
+ actioned += 1;
326
+ sink.write(`[triage:bulk-${actionKey}] #${issueNumber} actioned\n`);
327
+ }
328
+ sink.write(`[triage:bulk-${actionKey}] total: ${actioned}\n`);
329
+ return actioned;
330
+ }
331
+ export function createFilesystemCacheModule() {
332
+ class CacheNotFoundError extends Error {
333
+ constructor(message) {
334
+ super(message);
335
+ this.name = "CacheNotFoundError";
336
+ }
337
+ }
338
+ class CacheValidationError extends Error {
339
+ constructor(message) {
340
+ super(message);
341
+ this.name = "CacheValidationError";
342
+ }
343
+ }
344
+ class CacheError extends Error {
345
+ constructor(message) {
346
+ super(message);
347
+ this.name = "CacheError";
348
+ }
349
+ }
350
+ return {
351
+ cacheGet(source, key, options) {
352
+ const parts = key.split("/");
353
+ if (parts.length !== 3) {
354
+ throw new CacheError(`invalid cache key ${key}`);
355
+ }
356
+ const [o, r, n] = parts;
357
+ if (o === undefined || r === undefined || n === undefined) {
358
+ throw new CacheError(`invalid cache key ${key}`);
359
+ }
360
+ const entryDir = join(options.cacheRoot, source, o, r, n);
361
+ const metaPath = join(entryDir, "meta.json");
362
+ if (!existsSync(metaPath)) {
363
+ throw new CacheNotFoundError(`no meta.json at ${metaPath}`);
364
+ }
365
+ try {
366
+ JSON.parse(readFileSync(metaPath, { encoding: "utf8" }));
367
+ }
368
+ catch (exc) {
369
+ throw new CacheValidationError(String(exc));
370
+ }
371
+ return { entryDir };
372
+ },
373
+ CacheNotFoundError,
374
+ CacheValidationError,
375
+ CacheError,
376
+ };
377
+ }
378
+ export function createFilesystemCandidatesLogModule(logPath = "vbrief/.eval/candidates.jsonl") {
379
+ return {
380
+ readAll(options) {
381
+ if (!existsSync(logPath)) {
382
+ return [];
383
+ }
384
+ const entries = [];
385
+ for (const line of readFileSync(logPath, { encoding: "utf8" }).split("\n")) {
386
+ if (line.trim().length === 0) {
387
+ continue;
388
+ }
389
+ try {
390
+ const entry = JSON.parse(line);
391
+ if (entry.repo !== options.repo) {
392
+ continue;
393
+ }
394
+ entries.push(entry);
395
+ }
396
+ catch {
397
+ // skip malformed lines
398
+ }
399
+ }
400
+ return entries;
401
+ },
402
+ };
403
+ }
404
+ export function createPythonActionsModule(scriptsDir) {
405
+ const runAction = (cmd, issueNumber, repo, extra = []) => {
406
+ const result = spawnSync("uv", [
407
+ "run",
408
+ "python",
409
+ join(scriptsDir, "triage_actions.py"),
410
+ cmd,
411
+ String(issueNumber),
412
+ "--repo",
413
+ repo,
414
+ ...extra,
415
+ ], { encoding: "utf8", cwd: dirname(scriptsDir), stdio: ["ignore", "pipe", "pipe"] });
416
+ if ((result.status ?? 2) !== 0) {
417
+ throw new Error(`triage_actions ${cmd} failed: ${typeof result.stderr === "string" ? result.stderr : ""}`);
418
+ }
419
+ };
420
+ return {
421
+ accept(n, repo) {
422
+ runAction("accept", n, repo);
423
+ },
424
+ reject(n, repo, ...args) {
425
+ let reason;
426
+ if (typeof args[0] === "object" && args[0] !== null && "reason" in args[0]) {
427
+ reason = String(args[0].reason);
428
+ }
429
+ else if (typeof args[0] === "string") {
430
+ reason = args[0];
431
+ }
432
+ const extra = reason !== undefined && reason.length > 0 ? ["--reason", reason] : [];
433
+ runAction("reject", n, repo, extra);
434
+ },
435
+ defer(n, repo) {
436
+ runAction("defer", n, repo, ["--reason", "bulk defer"]);
437
+ },
438
+ needs_ac(n, repo) {
439
+ runAction("needs-ac", n, repo);
440
+ },
441
+ };
442
+ }
443
+ export function bulkActionWithDefaults(actionKey, repo, options = {}) {
444
+ const deftRoot = options.deftRoot ?? process.cwd();
445
+ const scriptsDir = options.scriptsDir ?? join(deftRoot, "scripts");
446
+ return bulkAction(actionKey, repo, {
447
+ ...options,
448
+ cacheRoot: options.cacheRoot ?? join(deftRoot, ".deft-cache"),
449
+ cacheModule: options.cacheModule ?? createFilesystemCacheModule(),
450
+ candidatesLogModule: options.candidatesLogModule ?? createFilesystemCandidatesLogModule(options.candidatesLogPath),
451
+ actionsModule: options.actionsModule ?? createPythonActionsModule(scriptsDir),
452
+ });
453
+ }
454
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,88 @@
1
+ /** Filesystem-relative location of the PROJECT-DEFINITION vBRIEF. */
2
+ export declare const PROJECT_DEFINITION_REL_PATH = "vbrief/PROJECT-DEFINITION.vbrief.json";
3
+ /** Threshold in days for the "dormant" universal rule (Decision 1). */
4
+ export declare const DORMANT_AGE_DAYS = 90;
5
+ /** Threshold in characters for "thin body" used by the dormant rule. */
6
+ export declare const THIN_BODY_THRESHOLD_CHARS = 50;
7
+ /** Default hold-marker phrases (Decision 1 + Decision 3). */
8
+ export declare const DEFAULT_HOLD_MARKERS: readonly string[];
9
+ export declare const VALID_ACTIONS: ReadonlySet<string>;
10
+ export declare const VALID_STATES: ReadonlySet<string>;
11
+ export interface ClassifyRule {
12
+ readonly rule?: string;
13
+ readonly action?: string;
14
+ readonly reason?: string;
15
+ readonly match?: Record<string, unknown>;
16
+ readonly "resume-on"?: string;
17
+ }
18
+ export interface ClassificationResult {
19
+ readonly action: string;
20
+ readonly reason: string;
21
+ readonly ruleIndex: number;
22
+ readonly ruleSource: string;
23
+ readonly ruleKind: string;
24
+ readonly resumeOn: string | null;
25
+ }
26
+ export interface GitHubIssue {
27
+ readonly number?: number;
28
+ readonly state?: string;
29
+ readonly body?: string | null;
30
+ readonly labels?: ReadonlyArray<{
31
+ name?: string;
32
+ } | string>;
33
+ readonly updated_at?: string;
34
+ readonly created_at?: string;
35
+ }
36
+ /** The four framework universal rules (Decision 1). */
37
+ export declare const UNIVERSAL_RULES: readonly ClassifyRule[];
38
+ /** Validate a ``plan.policy.triageAutoClassify`` payload. */
39
+ export declare function validateClassifyRules(rules: unknown): {
40
+ errors: string[];
41
+ warnings: string[];
42
+ };
43
+ /** Validate a ``plan.policy.triageHoldMarkers`` payload. */
44
+ export declare function validateHoldMarkers(markers: unknown): {
45
+ errors: string[];
46
+ warnings: string[];
47
+ };
48
+ export declare function projectDefinitionPath(projectRoot?: string): string;
49
+ /** Return UNIVERSAL_RULES followed by consumer rules. */
50
+ export declare function resolveClassifyRules(options?: {
51
+ projectRoot?: string;
52
+ projectDefinition?: Record<string, unknown> | null;
53
+ }): ClassifyRule[];
54
+ /** Return the effective hold-marker list (defaults + consumer override). */
55
+ export declare function resolveHoldMarkers(options?: {
56
+ projectRoot?: string;
57
+ projectDefinition?: Record<string, unknown> | null;
58
+ }): string[];
59
+ export interface ClassifyIssueOptions {
60
+ rules?: ClassifyRule[];
61
+ holdMarkers?: string[] | null;
62
+ vbriefReferenced?: ReadonlySet<number> | null;
63
+ hasTriageDecision?: boolean;
64
+ now?: Date;
65
+ }
66
+ /** Classify a single issue against the effective rule set. */
67
+ export declare function classifyIssue(issue: GitHubIssue, options?: ClassifyIssueOptions): ClassificationResult | null;
68
+ /** Return issue numbers referenced by pending/ or active/ scope vBRIEFs. */
69
+ export declare function extractReferencedIssues(projectRoot?: string, lifecycleFolders?: readonly string[]): Set<number>;
70
+ /** Return a human-readable recap of the effective rule + marker set. */
71
+ export declare function renderList(rules: readonly ClassifyRule[], options?: {
72
+ holdMarkers?: readonly string[] | null;
73
+ }): string;
74
+ /** vbrief_validate hook for ``plan.policy.triageAutoClassify`` (#1129). */
75
+ export declare function validateTriageAutoClassifyOnPlan(plan: unknown, filepath: string): string[];
76
+ /** vbrief_validate hook for ``plan.policy.triageHoldMarkers`` (#1129). */
77
+ export declare function validateTriageHoldMarkersOnPlan(plan: unknown, filepath: string): string[];
78
+ /** Load PROJECT-DEFINITION for CLI validation (mirrors Python ``_load_project_definition``). */
79
+ export declare function loadProjectDefinitionForCli(projectRoot: string): Record<string, unknown> | null;
80
+ /** Validate PROJECT-DEFINITION triage classify config; returns exit code contract. */
81
+ export declare function validateProject(projectRoot: string): {
82
+ code: 0 | 1 | 2;
83
+ stdout: string;
84
+ stderr: string;
85
+ };
86
+ /** Render --list output for a project root. */
87
+ export declare function listProject(projectRoot: string): string;
88
+ //# sourceMappingURL=index.d.ts.map