@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,6 @@
1
+ import type { NormalisedRelease, ReleasePublishSeams, ViewReleaseState } from "./types.js";
2
+ export declare function normaliseReleasePayload(restPayload: Record<string, unknown>): NormalisedRelease;
3
+ export declare function ghApiFindReleaseByTag(ghPath: string, repo: string, tag: string, seams?: ReleasePublishSeams): [ViewReleaseState, NormalisedRelease | null, string];
4
+ export declare function viewRelease(version: string, repo: string, seams?: ReleasePublishSeams): [ViewReleaseState, NormalisedRelease | null, string];
5
+ export declare function editReleasePublish(version: string, repo: string, releaseId?: number | null | undefined, seams?: ReleasePublishSeams): [boolean, string];
6
+ //# sourceMappingURL=gh-api.d.ts.map
@@ -0,0 +1,102 @@
1
+ import { resolveGh } from "../release/gh.js";
2
+ import { spawnText } from "../release/spawn.js";
3
+ import { RELEASES_LIST_ENDPOINT_TEMPLATE } from "./constants.js";
4
+ export function normaliseReleasePayload(restPayload) {
5
+ return {
6
+ isDraft: Boolean(restPayload.draft ?? false),
7
+ name: restPayload.name,
8
+ tagName: restPayload.tag_name,
9
+ url: restPayload.html_url,
10
+ id: restPayload.id,
11
+ };
12
+ }
13
+ export function ghApiFindReleaseByTag(ghPath, repo, tag, seams = {}) {
14
+ const endpoint = RELEASES_LIST_ENDPOINT_TEMPLATE.replace("{repo}", repo);
15
+ const spawn = seams.spawnText ?? spawnText;
16
+ let result;
17
+ try {
18
+ result = spawn(ghPath, ["api", "--paginate", endpoint], {
19
+ timeoutMs: 120_000,
20
+ env: { ...process.env },
21
+ });
22
+ }
23
+ catch {
24
+ return ["gh-error", null, "gh CLI not found on PATH"];
25
+ }
26
+ if (result.status !== 0) {
27
+ const stderr = (result.stderr ?? "").trim();
28
+ return ["gh-error", null, `gh api ${endpoint} failed: ${stderr}`];
29
+ }
30
+ let restPayload;
31
+ try {
32
+ restPayload = JSON.parse(result.stdout);
33
+ }
34
+ catch (exc) {
35
+ return ["gh-error", null, `gh api ${endpoint} returned non-JSON: ${String(exc)}`];
36
+ }
37
+ if (!Array.isArray(restPayload)) {
38
+ const typeName = restPayload === null ? "null" : typeof restPayload;
39
+ return ["gh-error", null, `gh api ${endpoint} returned non-list (${typeName})`];
40
+ }
41
+ for (const entry of restPayload) {
42
+ if (typeof entry !== "object" || entry === null) {
43
+ continue;
44
+ }
45
+ const record = entry;
46
+ if (record.tag_name !== tag) {
47
+ continue;
48
+ }
49
+ const payload = normaliseReleasePayload(record);
50
+ if (payload.isDraft) {
51
+ return ["draft", payload, ""];
52
+ }
53
+ return ["published", payload, ""];
54
+ }
55
+ return ["not-found", null, `release ${tag} not found on ${repo}`];
56
+ }
57
+ export function viewRelease(version, repo, seams = {}) {
58
+ const ghPath = resolveGh(seams);
59
+ if (ghPath === null) {
60
+ return ["gh-error", null, "gh CLI not found on PATH"];
61
+ }
62
+ const tag = `v${version}`;
63
+ return ghApiFindReleaseByTag(ghPath, repo, tag, seams);
64
+ }
65
+ export function editReleasePublish(version, repo, releaseId = undefined, seams = {}) {
66
+ const ghPath = resolveGh(seams);
67
+ if (ghPath === null) {
68
+ return [false, "gh CLI not found on PATH"];
69
+ }
70
+ const tag = `v${version}`;
71
+ const spawn = seams.spawnText ?? spawnText;
72
+ let resolvedId = releaseId;
73
+ if (resolvedId === undefined || resolvedId === null) {
74
+ const [state, payload, reason] = ghApiFindReleaseByTag(ghPath, repo, tag, seams);
75
+ if (state === "not-found") {
76
+ return [false, `release ${tag} not found on ${repo}`];
77
+ }
78
+ if (state === "gh-error") {
79
+ return [false, `could not resolve release id: ${reason}`];
80
+ }
81
+ if (!payload || payload.id === undefined || payload.id === null) {
82
+ return [false, `release ${tag} payload missing 'id' field`];
83
+ }
84
+ resolvedId = payload.id;
85
+ }
86
+ const endpoint = `repos/${repo}/releases/${resolvedId}`;
87
+ let result;
88
+ try {
89
+ result = spawn(ghPath, ["api", endpoint, "--method", "PATCH", "-F", "draft=false"], {
90
+ timeoutMs: 60_000,
91
+ env: { ...process.env },
92
+ });
93
+ }
94
+ catch {
95
+ return [false, "gh CLI not found on PATH"];
96
+ }
97
+ if (result.status !== 0) {
98
+ return [false, `gh api ${endpoint} (PATCH) failed: ${result.stderr.trim()}`];
99
+ }
100
+ return [true, `flipped ${tag} to published`];
101
+ }
102
+ //# sourceMappingURL=gh-api.js.map
@@ -0,0 +1,7 @@
1
+ export * from "./constants.js";
2
+ export * from "./flags.js";
3
+ export * from "./gh-api.js";
4
+ export * from "./main.js";
5
+ export * from "./pipeline.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ /* v8 ignore file -- re-export barrel; covered via main.ts */
2
+ export * from "./constants.js";
3
+ export * from "./flags.js";
4
+ export * from "./gh-api.js";
5
+ export * from "./main.js";
6
+ export * from "./pipeline.js";
7
+ export * from "./types.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ import type { ReleasePublishSeams } from "./types.js";
2
+ export declare function cmdReleasePublish(args: readonly string[], seams?: ReleasePublishSeams): number;
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { EXIT_CONFIG_ERROR } from "../release/constants.js";
2
+ import { resolveProjectRoot, resolveRepo } from "../release/paths.js";
3
+ import { validateVersion } from "../release/version.js";
4
+ import { formatMissingVersionError, formatReleasePublishHelp, parsePublishFlags } from "./flags.js";
5
+ import { runPublish } from "./pipeline.js";
6
+ export function cmdReleasePublish(args, seams = {}) {
7
+ const flags = parsePublishFlags(args);
8
+ if (flags.help) {
9
+ process.stdout.write(formatReleasePublishHelp());
10
+ return 0;
11
+ }
12
+ if (flags.unknown.length > 0) {
13
+ process.stderr.write(`release_publish: error: unrecognized arguments: ${flags.unknown.join(" ")}\n`);
14
+ return EXIT_CONFIG_ERROR;
15
+ }
16
+ if (flags.version === null) {
17
+ process.stderr.write(formatMissingVersionError());
18
+ return EXIT_CONFIG_ERROR;
19
+ }
20
+ try {
21
+ validateVersion(flags.version);
22
+ }
23
+ catch (err) {
24
+ const msg = err instanceof Error ? err.message : String(err);
25
+ process.stderr.write(`Error: ${msg}\n`);
26
+ return EXIT_CONFIG_ERROR;
27
+ }
28
+ const projectRoot = resolveProjectRoot(flags.projectRoot);
29
+ const repo = resolveRepo(flags.repo, projectRoot, seams);
30
+ const config = {
31
+ version: flags.version,
32
+ repo,
33
+ projectRoot,
34
+ dryRun: flags.dryRun,
35
+ };
36
+ return runPublish(config, seams);
37
+ }
38
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1,4 @@
1
+ import type { PublishConfig, ReleasePublishSeams } from "./types.js";
2
+ export declare function emit(label: string, status: string): void;
3
+ export declare function runPublish(config: PublishConfig, seams?: ReleasePublishSeams): number;
4
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1,46 @@
1
+ import { EXIT_OK, EXIT_VIOLATION } from "../release/constants.js";
2
+ import { editReleasePublish, viewRelease } from "./gh-api.js";
3
+ export function emit(label, status) {
4
+ process.stderr.write(`[publish] ${label}... ${status}\n`);
5
+ }
6
+ export function runPublish(config, seams = {}) {
7
+ const { version, repo, dryRun } = config;
8
+ const tag = `v${version}`;
9
+ const viewLabel = `View ${tag} on ${repo}`;
10
+ if (dryRun) {
11
+ emit(viewLabel, `DRYRUN (would run \`gh api --paginate repos/${repo}/releases?per_page=100\` and filter for tag_name == ${tag})`);
12
+ emit(`Edit ${tag}`, `DRYRUN (would run \`gh api -X PATCH repos/${repo}/releases/<id> -F draft=false\`)`);
13
+ return EXIT_OK;
14
+ }
15
+ const [state, payload, reason] = viewRelease(version, repo, seams);
16
+ if (state === "not-found") {
17
+ emit(viewLabel, `FAIL (release ${tag} not found on ${repo}: ${reason})`);
18
+ return EXIT_VIOLATION;
19
+ }
20
+ if (state === "gh-error") {
21
+ emit(viewLabel, `FAIL (${reason})`);
22
+ return EXIT_VIOLATION;
23
+ }
24
+ if (state === "published") {
25
+ emit(viewLabel, `NOOP (${tag} is already published; nothing to do)`);
26
+ return EXIT_OK;
27
+ }
28
+ emit(viewLabel, `OK (draft found at ${payload?.url ?? "<no url>"})`);
29
+ const editLabel = `Edit ${tag} (--draft=false)`;
30
+ const [ok, editReason] = editReleasePublish(version, repo, payload?.id ?? undefined, seams);
31
+ if (!ok) {
32
+ emit(editLabel, `FAIL (${editReason})`);
33
+ return EXIT_VIOLATION;
34
+ }
35
+ emit(editLabel, `OK (${editReason})`);
36
+ const verifyLabel = `Verify ${tag} is published`;
37
+ const [state2, , reason2] = viewRelease(version, repo, seams);
38
+ if (state2 !== "published") {
39
+ emit(verifyLabel, `FAIL (post-edit state is '${state2}'; expected 'published'; reason: ${reason2})`);
40
+ return EXIT_VIOLATION;
41
+ }
42
+ emit(verifyLabel, `OK (${tag} is now public)`);
43
+ process.stderr.write(`Release ${tag} published successfully on ${repo}.\n`);
44
+ return EXIT_OK;
45
+ }
46
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1,25 @@
1
+ import type { ReleaseSeams } from "../release/types.js";
2
+ export interface PublishConfig {
3
+ readonly version: string;
4
+ readonly repo: string;
5
+ readonly projectRoot: string;
6
+ readonly dryRun: boolean;
7
+ }
8
+ export interface PublishFlags {
9
+ readonly help: boolean;
10
+ readonly version: string | null;
11
+ readonly repo: string | null;
12
+ readonly projectRoot: string | null;
13
+ readonly dryRun: boolean;
14
+ readonly unknown: readonly string[];
15
+ }
16
+ export interface NormalisedRelease {
17
+ readonly isDraft: boolean;
18
+ readonly name: string | null | undefined;
19
+ readonly tagName: string | null | undefined;
20
+ readonly url: string | null | undefined;
21
+ readonly id: number | null | undefined;
22
+ }
23
+ export type ViewReleaseState = "draft" | "published" | "not-found" | "gh-error";
24
+ export type ReleasePublishSeams = ReleaseSeams;
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,18 @@
1
+ /** Exit codes mirroring scripts/release_rollback.py (via release.py). */
2
+ export declare const EXIT_OK = 0;
3
+ export declare const EXIT_VIOLATION = 1;
4
+ export declare const EXIT_CONFIG_ERROR = 2;
5
+ /** Download-count guard time windows (seconds). */
6
+ export declare const FIVE_MINUTES_SECONDS: number;
7
+ export declare const THIRTY_MINUTES_SECONDS: number;
8
+ /** Default threshold inside the 5-30 minute window. */
9
+ export declare const DEFAULT_BOT_THRESHOLD = 10;
10
+ /** Race-condition double-read sleep duration. */
11
+ export declare const DOUBLE_READ_SLEEP_SECONDS = 5;
12
+ /** Subject prefix for the auto-generated release-prep commit. */
13
+ export declare const RELEASE_COMMIT_SUBJECT_PREFIX = "chore(release): v";
14
+ /** Short usage line emitted by argparse on parse errors (not full --help). */
15
+ export declare const ROLLBACK_USAGE_SHORT: string;
16
+ /** Byte-identical argparse --help from scripts/release_rollback.py (Python 3.12). */
17
+ export declare const ROLLBACK_HELP: string;
18
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,55 @@
1
+ /** Exit codes mirroring scripts/release_rollback.py (via release.py). */
2
+ export const EXIT_OK = 0;
3
+ export const EXIT_VIOLATION = 1;
4
+ export const EXIT_CONFIG_ERROR = 2;
5
+ /** Download-count guard time windows (seconds). */
6
+ export const FIVE_MINUTES_SECONDS = 5 * 60;
7
+ export const THIRTY_MINUTES_SECONDS = 30 * 60;
8
+ /** Default threshold inside the 5-30 minute window. */
9
+ export const DEFAULT_BOT_THRESHOLD = 10;
10
+ /** Race-condition double-read sleep duration. */
11
+ export const DOUBLE_READ_SLEEP_SECONDS = 5;
12
+ /** Subject prefix for the auto-generated release-prep commit. */
13
+ export const RELEASE_COMMIT_SUBJECT_PREFIX = "chore(release): v";
14
+ /** Short usage line emitted by argparse on parse errors (not full --help). */
15
+ export const ROLLBACK_USAGE_SHORT = "usage: release_rollback [-h] [--dry-run] [--repo OWNER/REPO]\n" +
16
+ " [--base-branch BRANCH] [--project-root PATH]\n" +
17
+ " [--allow-low-downloads N] [--allow-data-loss]\n" +
18
+ " [--force-strict-0]\n" +
19
+ " version\n";
20
+ /** Byte-identical argparse --help from scripts/release_rollback.py (Python 3.12). */
21
+ export const ROLLBACK_HELP = "usage: release_rollback [-h] [--dry-run] [--repo OWNER/REPO]\n" +
22
+ " [--base-branch BRANCH] [--project-root PATH]\n" +
23
+ " [--allow-low-downloads N] [--allow-data-loss]\n" +
24
+ " [--force-strict-0]\n" +
25
+ " version\n" +
26
+ "\n" +
27
+ "State-aware release unwind (#716 safety hardening). Detects one of four post-\n" +
28
+ "release states (local-only / tag-pushed / released-low-downloads / released-\n" +
29
+ "high-downloads) and applies the matching tiered recovery.\n" +
30
+ "\n" +
31
+ "positional arguments:\n" +
32
+ " version Release version, e.g. 0.21.0 (no leading 'v', strict\n" +
33
+ " X.Y.Z).\n" +
34
+ "\n" +
35
+ "options:\n" +
36
+ " -h, --help show this help message and exit\n" +
37
+ " --dry-run Print the rollback plan without invoking gh / git\n" +
38
+ " side-effects.\n" +
39
+ " --repo OWNER/REPO Override repo (default: resolved from `git remote get-\n" +
40
+ " url origin`).\n" +
41
+ " --base-branch BRANCH Base branch (default: master).\n" +
42
+ " --project-root PATH Repository root (default: $DEFT_PROJECT_ROOT or\n" +
43
+ " scripts/.. ).\n" +
44
+ " --allow-low-downloads N\n" +
45
+ " Accept up to N downloads (defaults to the time-window-\n" +
46
+ " derived value). The maximum of this flag and the time-\n" +
47
+ " window default wins, so passing N=5 with a 10-min-old\n" +
48
+ " release still allows up to 10.\n" +
49
+ " --allow-data-loss Accept any download count; explicit acknowledgment of\n" +
50
+ " consumer impact. Required when the release is > 30\n" +
51
+ " minutes old.\n" +
52
+ " --force-strict-0 Override the time-window: require exactly 0 downloads\n" +
53
+ " regardless of release age. Use for security-incident\n" +
54
+ " hot-rollbacks where even bot scrapes are unacceptable.\n";
55
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,4 @@
1
+ import type { RollbackFlags } from "./types.js";
2
+ export declare function parseRollbackFlags(args: readonly string[]): RollbackFlags;
3
+ export declare function formatRollbackHelp(): string;
4
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1,136 @@
1
+ import { DEFAULT_BASE_BRANCH } from "../release/constants.js";
2
+ import { ROLLBACK_HELP } from "./constants.js";
3
+ function isFlagToken(value) {
4
+ if (!value.startsWith("-")) {
5
+ return false;
6
+ }
7
+ if (value.startsWith("--")) {
8
+ return true;
9
+ }
10
+ // Single-dash letter flags (e.g. -h), not negative numbers (e.g. -1).
11
+ return /^-[a-zA-Z]/.test(value);
12
+ }
13
+ export function parseRollbackFlags(args) {
14
+ let help = false;
15
+ let dryRun = false;
16
+ let allowDataLoss = false;
17
+ let forceStrict0 = false;
18
+ let allowLowDownloads = 0;
19
+ let repo = null;
20
+ let baseBranch = DEFAULT_BASE_BRANCH;
21
+ let projectRoot = null;
22
+ let version = null;
23
+ const unknown = [];
24
+ let parseError = null;
25
+ const takeValue = (flag, i) => {
26
+ if (i + 1 >= args.length) {
27
+ unknown.push(`${flag} (missing value)`);
28
+ return null;
29
+ }
30
+ return args[i + 1] ?? null;
31
+ };
32
+ let i = 0;
33
+ while (i < args.length) {
34
+ const token = args[i] ?? "";
35
+ if (token === "-h" || token === "--help") {
36
+ help = true;
37
+ }
38
+ else if (token === "--dry-run") {
39
+ dryRun = true;
40
+ }
41
+ else if (token === "--allow-data-loss") {
42
+ allowDataLoss = true;
43
+ }
44
+ else if (token === "--force-strict-0") {
45
+ forceStrict0 = true;
46
+ }
47
+ else if (token === "--repo") {
48
+ repo = takeValue(token, i);
49
+ if (repo !== null)
50
+ i += 1;
51
+ }
52
+ else if (token.startsWith("--repo=")) {
53
+ repo = token.slice("--repo=".length) || null;
54
+ if (!repo)
55
+ unknown.push("--repo= (empty value)");
56
+ }
57
+ else if (token === "--base-branch") {
58
+ const v = takeValue(token, i);
59
+ if (v !== null) {
60
+ baseBranch = v;
61
+ i += 1;
62
+ }
63
+ }
64
+ else if (token.startsWith("--base-branch=")) {
65
+ const v = token.slice("--base-branch=".length);
66
+ if (v)
67
+ baseBranch = v;
68
+ else
69
+ unknown.push("--base-branch= (empty value)");
70
+ }
71
+ else if (token === "--project-root") {
72
+ projectRoot = takeValue(token, i);
73
+ if (projectRoot !== null)
74
+ i += 1;
75
+ }
76
+ else if (token.startsWith("--project-root=")) {
77
+ projectRoot = token.slice("--project-root=".length) || null;
78
+ if (!projectRoot)
79
+ unknown.push("--project-root= (empty value)");
80
+ }
81
+ else if (token === "--allow-low-downloads") {
82
+ if (i + 1 >= args.length) {
83
+ parseError = "argument --allow-low-downloads: expected one argument";
84
+ }
85
+ else {
86
+ const v = args[i + 1] ?? "";
87
+ if (isFlagToken(v)) {
88
+ parseError = "argument --allow-low-downloads: expected one argument";
89
+ }
90
+ else {
91
+ const parsed = Number.parseInt(v, 10);
92
+ allowLowDownloads = Number.isNaN(parsed) ? 0 : parsed;
93
+ i += 1;
94
+ }
95
+ }
96
+ }
97
+ else if (token.startsWith("--allow-low-downloads=")) {
98
+ const v = token.slice("--allow-low-downloads=".length);
99
+ const parsed = Number.parseInt(v, 10);
100
+ allowLowDownloads = Number.isNaN(parsed) ? 0 : parsed;
101
+ }
102
+ else if (token.startsWith("-")) {
103
+ unknown.push(token);
104
+ }
105
+ else if (version === null) {
106
+ version = token;
107
+ }
108
+ else {
109
+ unknown.push(token);
110
+ }
111
+ i += 1;
112
+ // argparse aborts on the first parse error and never reaches later tokens;
113
+ // match that so a swallowed value (e.g. `--allow-low-downloads --dry-run`)
114
+ // cannot leak the following flag into a parsed field.
115
+ if (parseError !== null) {
116
+ break;
117
+ }
118
+ }
119
+ return {
120
+ help,
121
+ version,
122
+ repo,
123
+ baseBranch,
124
+ projectRoot,
125
+ dryRun,
126
+ allowLowDownloads,
127
+ allowDataLoss,
128
+ forceStrict0,
129
+ unknown,
130
+ parseError,
131
+ };
132
+ }
133
+ export function formatRollbackHelp() {
134
+ return ROLLBACK_HELP;
135
+ }
136
+ //# sourceMappingURL=flags.js.map
@@ -0,0 +1,5 @@
1
+ import type { GhReleasePayload, RollbackSeams } from "./types.js";
2
+ export declare function ghReleaseViewJson(version: string, repo: string, seams?: RollbackSeams): [boolean, GhReleasePayload | null, string];
3
+ export declare function ghReleaseExists(version: string, repo: string, seams?: RollbackSeams): ["exists" | "not-found" | "error", GhReleasePayload | null, string];
4
+ export declare function ghReleaseDelete(version: string, repo: string, seams?: RollbackSeams): [boolean, string];
5
+ //# sourceMappingURL=gh.d.ts.map
@@ -0,0 +1,71 @@
1
+ import { resolveGh, spawnText } from "../release/index.js";
2
+ export function ghReleaseViewJson(version, repo, seams = {}) {
3
+ if (seams.ghReleaseViewJson) {
4
+ return seams.ghReleaseViewJson(version, repo);
5
+ }
6
+ const ghPath = resolveGh(seams);
7
+ if (ghPath === null) {
8
+ return [false, null, "gh CLI not found on PATH"];
9
+ }
10
+ const tag = `v${version}`;
11
+ const spawn = seams.spawnText ?? spawnText;
12
+ try {
13
+ const result = spawn(ghPath, [
14
+ "release",
15
+ "view",
16
+ tag,
17
+ "--repo",
18
+ repo,
19
+ "--json",
20
+ "isDraft,name,tagName,createdAt,publishedAt,assets,url",
21
+ ], {
22
+ timeoutMs: 60_000,
23
+ env: { ...process.env },
24
+ });
25
+ if (result.status !== 0) {
26
+ return [false, null, result.stderr.trim()];
27
+ }
28
+ try {
29
+ return [true, JSON.parse(result.stdout), ""];
30
+ }
31
+ catch (exc) {
32
+ return [false, null, `non-JSON: ${String(exc)}`];
33
+ }
34
+ }
35
+ catch {
36
+ return [false, null, "gh CLI not found on PATH"];
37
+ }
38
+ }
39
+ export function ghReleaseExists(version, repo, seams = {}) {
40
+ const [ok, payload, reason] = ghReleaseViewJson(version, repo, seams);
41
+ if (ok) {
42
+ return ["exists", payload, ""];
43
+ }
44
+ const lowered = reason.toLowerCase();
45
+ if (lowered.includes("not found")) {
46
+ return ["not-found", null, reason];
47
+ }
48
+ return ["error", null, reason];
49
+ }
50
+ export function ghReleaseDelete(version, repo, seams = {}) {
51
+ const ghPath = resolveGh(seams);
52
+ if (ghPath === null) {
53
+ return [false, "gh CLI not found on PATH"];
54
+ }
55
+ const tag = `v${version}`;
56
+ const spawn = seams.spawnText ?? spawnText;
57
+ try {
58
+ const result = spawn(ghPath, ["release", "delete", tag, "--repo", repo, "--yes", "--cleanup-tag"], {
59
+ timeoutMs: 60_000,
60
+ env: { ...process.env },
61
+ });
62
+ if (result.status !== 0) {
63
+ return [false, `gh release delete failed: ${result.stderr.trim()}`];
64
+ }
65
+ return [true, `deleted release ${tag} (with tag cleanup)`];
66
+ }
67
+ catch {
68
+ return [false, "gh CLI not found on PATH"];
69
+ }
70
+ }
71
+ //# sourceMappingURL=gh.js.map
@@ -0,0 +1,9 @@
1
+ import type { RollbackSeams } from "./types.js";
2
+ export declare function gitTagExistsLocal(projectRoot: string, version: string, seams?: RollbackSeams): boolean;
3
+ export declare function gitTagExistsOrigin(projectRoot: string, version: string, seams?: RollbackSeams): boolean;
4
+ export declare function gitDeleteLocalTag(projectRoot: string, version: string, seams?: RollbackSeams): [boolean, string];
5
+ export declare function gitDeleteRemoteTag(projectRoot: string, version: string, seams?: RollbackSeams): [boolean, string];
6
+ export declare function resolveReleasePrepSha(projectRoot: string, version: string, seams?: RollbackSeams): [string, string];
7
+ export declare function gitRevertReleaseCommit(projectRoot: string, releasePrepSha: string, seams?: RollbackSeams): [boolean, string];
8
+ export declare function gitPushBase(projectRoot: string, baseBranch: string, seams?: RollbackSeams): [boolean, string];
9
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1,87 @@
1
+ import { runGit } from "../release/git.js";
2
+ import { RELEASE_COMMIT_SUBJECT_PREFIX } from "./constants.js";
3
+ export function gitTagExistsLocal(projectRoot, version, seams = {}) {
4
+ const tag = `v${version}`;
5
+ const result = runGit(projectRoot, ["tag", "-l", tag], seams);
6
+ return Boolean(result.stdout.trim());
7
+ }
8
+ export function gitTagExistsOrigin(projectRoot, version, seams = {}) {
9
+ const tag = `v${version}`;
10
+ const result = runGit(projectRoot, ["ls-remote", "--tags", "origin", `refs/tags/${tag}`], seams);
11
+ return Boolean(result.stdout.trim());
12
+ }
13
+ export function gitDeleteLocalTag(projectRoot, version, seams = {}) {
14
+ const tag = `v${version}`;
15
+ const result = runGit(projectRoot, ["tag", "-d", tag], seams);
16
+ if (result.status !== 0) {
17
+ return [false, `git tag -d failed: ${result.stderr.trim()}`];
18
+ }
19
+ return [true, `deleted local tag ${tag}`];
20
+ }
21
+ export function gitDeleteRemoteTag(projectRoot, version, seams = {}) {
22
+ const tag = `v${version}`;
23
+ const result = runGit(projectRoot, ["push", "--delete", "origin", tag], seams);
24
+ if (result.status !== 0) {
25
+ return [false, `git push --delete failed: ${result.stderr.trim()}`];
26
+ }
27
+ return [true, `deleted remote tag ${tag}`];
28
+ }
29
+ export function resolveReleasePrepSha(projectRoot, version, seams = {}) {
30
+ const tag = `v${version}`;
31
+ const revParse = runGit(projectRoot, ["rev-parse", `${tag}^{commit}`], seams);
32
+ if (revParse.status === 0) {
33
+ const sha = (revParse.stdout || "").trim();
34
+ if (sha) {
35
+ return [sha, ""];
36
+ }
37
+ }
38
+ const grepPattern = `^${RELEASE_COMMIT_SUBJECT_PREFIX}${version}`;
39
+ const grep = runGit(projectRoot, ["log", "--grep", grepPattern, "--format=%H", "-n", "1"], seams);
40
+ if (grep.status === 0) {
41
+ const lines = (grep.stdout || "").trim().split(/\r?\n/);
42
+ if (lines.length > 0) {
43
+ const sha = lines[0];
44
+ if (sha) {
45
+ return [sha, ""];
46
+ }
47
+ }
48
+ }
49
+ return [
50
+ "",
51
+ `could not resolve release-prep SHA for v${version} ` +
52
+ `(tried \`git rev-parse ${tag}^{commit}\` and ` +
53
+ `\`git log --grep='${grepPattern}'\`)`,
54
+ ];
55
+ }
56
+ export function gitRevertReleaseCommit(projectRoot, releasePrepSha, seams = {}) {
57
+ const result = runGit(projectRoot, ["revert", releasePrepSha, "--no-edit"], seams);
58
+ if (result.status === 0) {
59
+ return [
60
+ true,
61
+ `reverted release-prep commit ${releasePrepSha.slice(0, 12)} ` +
62
+ "(forward revert; no force-push required)",
63
+ ];
64
+ }
65
+ const abort = runGit(projectRoot, ["revert", "--abort"], seams);
66
+ let abortNote = "";
67
+ if (abort.status !== 0) {
68
+ abortNote = ` (additionally, \`git revert --abort\` failed: ${abort.stderr.trim()})`;
69
+ }
70
+ const stderr = (result.stderr || "").trim();
71
+ return [
72
+ false,
73
+ `git revert ${releasePrepSha.slice(0, 12)} conflicted: ${stderr}${abortNote}. ` +
74
+ `Manual recovery: re-run \`git revert ${releasePrepSha} --no-edit\`, ` +
75
+ "resolve conflicts (typically CHANGELOG.md / ROADMAP.md), " +
76
+ "`git revert --continue`, then `git push origin <base-branch>`. " +
77
+ "See the Manual recovery section in scripts/release_rollback.py.",
78
+ ];
79
+ }
80
+ export function gitPushBase(projectRoot, baseBranch, seams = {}) {
81
+ const result = runGit(projectRoot, ["push", "origin", baseBranch], seams);
82
+ if (result.status !== 0) {
83
+ return [false, `git push failed: ${result.stderr.trim()}`];
84
+ }
85
+ return [true, `pushed ${baseBranch} to origin (no force)`];
86
+ }
87
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1,12 @@
1
+ import type { GhReleasePayload, RollbackSeams } from "./types.js";
2
+ export declare function sumDownloads(payload: GhReleasePayload): number;
3
+ export declare function releaseAgeSeconds(payload: GhReleasePayload, now?: Date): number;
4
+ export declare function computeThreshold(ageSeconds: number, options: {
5
+ allowLowDownloads: number;
6
+ allowDataLoss: boolean;
7
+ forceStrict0: boolean;
8
+ }): [number | null, string];
9
+ export declare function doubleReadDownloads(version: string, repo: string, options?: {
10
+ sleepSeconds?: number;
11
+ }, seams?: RollbackSeams): [boolean, number, number, string];
12
+ //# sourceMappingURL=guard.d.ts.map