@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,72 @@
1
+ import { resolveGh } from "../release/gh.js";
2
+ import { spawnText } from "../release/spawn.js";
3
+ export function provisionTempRepo(owner, slug, seams = {}) {
4
+ const ghPath = resolveGh({ whichGh: seams.whichGh });
5
+ if (ghPath === null) {
6
+ return [false, "gh CLI not found on PATH"];
7
+ }
8
+ const full = `${owner}/${slug}`;
9
+ const spawn = seams.spawnText ?? spawnText;
10
+ const result = spawn(ghPath, [
11
+ "repo",
12
+ "create",
13
+ full,
14
+ "--private",
15
+ "--description",
16
+ "Auto-generated release-rehearsal repo (deft #716); safe to delete.",
17
+ ], { env: { ...process.env }, timeoutMs: 120_000 });
18
+ if (result.status !== 0) {
19
+ return [false, `gh repo create failed: ${result.stderr.trim()}`];
20
+ }
21
+ return [true, `created ${full} (private)`];
22
+ }
23
+ export function destroyTempRepo(owner, slug, seams = {}) {
24
+ const ghPath = resolveGh({ whichGh: seams.whichGh });
25
+ if (ghPath === null) {
26
+ return [false, "gh CLI not found on PATH"];
27
+ }
28
+ const full = `${owner}/${slug}`;
29
+ const spawn = seams.spawnText ?? spawnText;
30
+ const result = spawn(ghPath, ["repo", "delete", full, "--yes"], {
31
+ env: { ...process.env },
32
+ timeoutMs: 120_000,
33
+ });
34
+ if (result.status !== 0) {
35
+ return [false, `gh repo delete failed: ${result.stderr.trim()}`];
36
+ }
37
+ return [true, `deleted ${full}`];
38
+ }
39
+ export function verifyDraftRelease(owner, slug, version, seams = {}) {
40
+ const ghPath = resolveGh({ whichGh: seams.whichGh });
41
+ if (ghPath === null) {
42
+ return [false, "gh CLI not found on PATH"];
43
+ }
44
+ const tag = `v${version}`;
45
+ const full = `${owner}/${slug}`;
46
+ const spawn = seams.spawnText ?? spawnText;
47
+ const result = spawn(ghPath, ["release", "view", tag, "--repo", full, "--json", "isDraft,tagName,name,url"], { env: { ...process.env }, timeoutMs: 60_000 });
48
+ if (result.status !== 0) {
49
+ return [false, `gh release view failed: ${result.stderr.trim()}`];
50
+ }
51
+ let payload;
52
+ try {
53
+ payload = JSON.parse(result.stdout);
54
+ }
55
+ catch (exc) {
56
+ return [false, `gh release view returned non-JSON: ${String(exc)}`];
57
+ }
58
+ if (!payload.isDraft) {
59
+ return [
60
+ false,
61
+ `draft verify FAIL: expected isDraft=true on ${full} ${tag}, got ${JSON.stringify(payload)}`,
62
+ ];
63
+ }
64
+ if (payload.tagName !== tag) {
65
+ return [
66
+ false,
67
+ `draft verify FAIL: expected tagName=${JSON.stringify(tag)} on ${full}, got tagName=${JSON.stringify(payload.tagName)}`,
68
+ ];
69
+ }
70
+ return [true, `verified draft ${tag} on ${full}`];
71
+ }
72
+ //# sourceMappingURL=gh-ops.js.map
@@ -0,0 +1,6 @@
1
+ import type { E2ESeams } from "./types.js";
2
+ export declare function cloneRepoToTemp(projectRoot: string, targetDir: string, seams?: E2ESeams): [boolean, string];
3
+ export declare function setOriginToTempRepo(cloneDir: string, owner: string, slug: string, seams?: E2ESeams): [boolean, string];
4
+ export declare function pushMirror(cloneDir: string, seams?: E2ESeams): [boolean, string];
5
+ export declare function verifyTag(cloneDir: string, version: string, seams?: E2ESeams): [boolean, string];
6
+ //# sourceMappingURL=git-ops.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { runGit as releaseRunGit } from "../release/git.js";
2
+ import { spawnText } from "../release/spawn.js";
3
+ function defaultRunGit(projectRoot, args, env, seams = {}) {
4
+ if (seams.runGit) {
5
+ return seams.runGit(projectRoot, args, env);
6
+ }
7
+ return releaseRunGit(projectRoot, args, { spawnText: seams.spawnText ?? spawnText }, env);
8
+ }
9
+ export function cloneRepoToTemp(projectRoot, targetDir, seams = {}) {
10
+ const env = { ...process.env, DEFT_PROJECT_ROOT: targetDir };
11
+ const spawn = seams.spawnText ?? spawnText;
12
+ const result = spawn("git", ["clone", projectRoot, targetDir], {
13
+ env,
14
+ timeoutMs: 300_000,
15
+ });
16
+ if (result.status !== 0) {
17
+ return [false, `git clone failed: ${result.stderr.trim()}`];
18
+ }
19
+ return [true, `cloned ${projectRoot} -> ${targetDir}`];
20
+ }
21
+ export function setOriginToTempRepo(cloneDir, owner, slug, seams = {}) {
22
+ const url = `https://github.com/${owner}/${slug}.git`;
23
+ const result = defaultRunGit(cloneDir, ["remote", "set-url", "origin", url], undefined, seams);
24
+ if (result.status !== 0) {
25
+ return [false, `git remote set-url failed: ${result.stderr.trim()}`];
26
+ }
27
+ return [true, `origin -> ${url}`];
28
+ }
29
+ export function pushMirror(cloneDir, seams = {}) {
30
+ const result = defaultRunGit(cloneDir, ["push", "origin", "refs/heads/*:refs/heads/*", "refs/tags/*:refs/tags/*"], undefined, seams);
31
+ if (result.status !== 0) {
32
+ return [false, `git push (heads+tags refspecs) failed: ${result.stderr.trim()}`];
33
+ }
34
+ return [true, "pushed heads + tags to temp origin"];
35
+ }
36
+ export function verifyTag(cloneDir, version, seams = {}) {
37
+ const tag = `v${version}`;
38
+ const result = defaultRunGit(cloneDir, ["ls-remote", "--tags", "origin", `refs/tags/${tag}`], undefined, seams);
39
+ if (result.status !== 0) {
40
+ return [false, `git ls-remote failed: ${result.stderr.trim()}`];
41
+ }
42
+ if (!result.stdout.trim()) {
43
+ return [false, `tag verify FAIL: ${tag} not present on temp origin`];
44
+ }
45
+ return [true, `verified tag ${tag} present on temp origin`];
46
+ }
47
+ //# sourceMappingURL=git-ops.js.map
@@ -0,0 +1,10 @@
1
+ export * from "./constants.js";
2
+ export * from "./entrypoint.js";
3
+ export * from "./flags.js";
4
+ export * from "./gh-ops.js";
5
+ export * from "./git-ops.js";
6
+ export { cmdReleaseE2e, runE2e } from "./main.js";
7
+ export * from "./npm-ops.js";
8
+ export * from "./rehearsal.js";
9
+ export * from "./types.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ export * from "./constants.js";
2
+ export * from "./entrypoint.js";
3
+ export * from "./flags.js";
4
+ export * from "./gh-ops.js";
5
+ export * from "./git-ops.js";
6
+ export { cmdReleaseE2e, runE2e } from "./main.js";
7
+ export * from "./npm-ops.js";
8
+ export * from "./rehearsal.js";
9
+ export * from "./types.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { E2EConfig, E2ESeams } from "./types.js";
2
+ export declare function runE2e(config: E2EConfig, seams?: E2ESeams): number;
3
+ export declare function cmdReleaseE2e(args: readonly string[], seams?: E2ESeams): number;
4
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1,78 @@
1
+ import { resolveProjectRoot } from "../release/paths.js";
2
+ import { EXIT_CONFIG_ERROR, EXIT_OK, EXIT_VIOLATION, RELEASE_E2E_HELP } from "./constants.js";
3
+ import { emit, generateRepoSlug, parseE2EFlags } from "./flags.js";
4
+ import { destroyTempRepo, provisionTempRepo } from "./gh-ops.js";
5
+ import { runRehearsal } from "./rehearsal.js";
6
+ export function runE2e(config, seams = {}) {
7
+ const slug = config.repoSlug ?? generateRepoSlug(seams);
8
+ const owner = config.owner;
9
+ if (config.dryRun) {
10
+ emit("Provision temp repo", `DRYRUN (would run \`gh repo create --private ${owner}/${slug}\`)`);
11
+ const npmPlan = config.skipNpm
12
+ ? "task release:rollback"
13
+ : "npm publish dry-run (4 packages) -> task release:rollback";
14
+ emit("Rehearsal", "DRYRUN (would run pipeline-mirror rehearsal: clone -> push heads+tags -> task release -> " +
15
+ `verify draft + tag -> ${npmPlan} against temp repo)`);
16
+ emit("Destroy temp repo", `DRYRUN (would run \`gh repo delete ${owner}/${slug} --yes\`)`);
17
+ return EXIT_OK;
18
+ }
19
+ const [provisionOk, provisionReason] = provisionTempRepo(owner, slug, seams);
20
+ if (!provisionOk) {
21
+ emit(`Provision ${owner}/${slug}`, `FAIL (${provisionReason})`);
22
+ return EXIT_VIOLATION;
23
+ }
24
+ emit(`Provision ${owner}/${slug}`, `OK (${provisionReason})`);
25
+ let rehearsalRc = EXIT_OK;
26
+ try {
27
+ const [ok, reason] = runRehearsal(owner, slug, config.projectRoot, undefined, seams, config.skipNpm);
28
+ if (ok) {
29
+ emit("Rehearsal", `OK (${reason})`);
30
+ }
31
+ else {
32
+ emit("Rehearsal", `FAIL (${reason})`);
33
+ rehearsalRc = EXIT_VIOLATION;
34
+ }
35
+ }
36
+ finally {
37
+ if (config.keepRepo) {
38
+ emit(`Destroy ${owner}/${slug}`, "SKIP (--keep-repo set; manual cleanup required: " +
39
+ `gh repo delete ${owner}/${slug} --yes)`);
40
+ }
41
+ else {
42
+ const [destroyOk, destroyReason] = destroyTempRepo(owner, slug, seams);
43
+ if (destroyOk) {
44
+ emit(`Destroy ${owner}/${slug}`, `OK (${destroyReason})`);
45
+ }
46
+ else {
47
+ emit(`Destroy ${owner}/${slug}`, `WARN (${destroyReason}); manual cleanup hint: gh repo delete ${owner}/${slug} --yes`);
48
+ }
49
+ }
50
+ }
51
+ return rehearsalRc;
52
+ }
53
+ export function cmdReleaseE2e(args, seams = {}) {
54
+ const flags = parseE2EFlags(args);
55
+ if (flags.help) {
56
+ process.stdout.write(RELEASE_E2E_HELP);
57
+ return EXIT_OK;
58
+ }
59
+ if (flags.unknown.length > 0) {
60
+ process.stderr.write(`release_e2e: error: unrecognized arguments: ${flags.unknown.join(" ")}\n`);
61
+ return EXIT_CONFIG_ERROR;
62
+ }
63
+ if (!flags.owner) {
64
+ process.stderr.write("Error: --owner must be a non-empty string.\n");
65
+ return EXIT_CONFIG_ERROR;
66
+ }
67
+ const projectRoot = resolveProjectRoot(flags.projectRoot);
68
+ const config = {
69
+ owner: flags.owner,
70
+ projectRoot,
71
+ dryRun: flags.dryRun,
72
+ keepRepo: flags.keepRepo,
73
+ skipNpm: flags.skipNpm,
74
+ repoSlug: null,
75
+ };
76
+ return runE2e(config, seams);
77
+ }
78
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1,29 @@
1
+ import type { E2ESeams } from "./types.js";
2
+ /**
3
+ * Resolve a pnpm invocation prefix for the clone build. Prefers a `pnpm`
4
+ * binary on PATH; falls back to `corepack pnpm`. Returns null when neither is
5
+ * available.
6
+ */
7
+ export declare function resolvePnpm(seams?: E2ESeams): string[] | null;
8
+ /**
9
+ * Bump the four published package versions to <version> and resolve any
10
+ * `workspace:` dependency spec to `^<version>` (npm cannot publish the pnpm
11
+ * workspace protocol verbatim). Folds in the scope item-4 version-alignment
12
+ * assertion: each manifest is read back and must report exactly <version>.
13
+ */
14
+ export declare function alignNpmPackageVersions(cloneDir: string, version: string): [boolean, string];
15
+ /**
16
+ * Dry-run the npm publish for the four @deftai/directive* packages.
17
+ *
18
+ * Steps, all inside the throwaway clone:
19
+ * 1. Resolve `npm`. SOFT-SKIP (ok=true) when npm is absent so Node-less
20
+ * operators are not blocked -- symmetric to --skip-npm.
21
+ * 2. Resolve pnpm (or `corepack pnpm`) and `pnpm install --frozen-lockfile`.
22
+ * 3. `pnpm -w run build`; dist/ must exist for the dist-only files allowlist.
23
+ * 4. Align the four package.json versions + resolve the workspace protocol.
24
+ * 5. `npm publish --dry-run --access public` per package in dependency order.
25
+ *
26
+ * Returns [ok, reason] like verifyDraftRelease / verifyTag.
27
+ */
28
+ export declare function rehearseNpmPublish(cloneDir: string, version: string, seams?: E2ESeams): [boolean, string];
29
+ //# sourceMappingURL=npm-ops.d.ts.map
@@ -0,0 +1,149 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { defaultWhich, spawnText } from "../release/spawn.js";
4
+ import { NPM_BUILD_TIMEOUT_SECONDS, NPM_INSTALL_TIMEOUT_SECONDS, NPM_PUBLISH_DRYRUN_TIMEOUT_SECONDS, NPM_PUBLISH_PACKAGES, } from "./constants.js";
5
+ /**
6
+ * npm publish dry-run rehearsal (#1910) -- the TS port of the
7
+ * scripts/release_e2e.py helpers of the same name. Mirrors
8
+ * .github/workflows/npm-publish.yml so a broken `files` allowlist, version
9
+ * drift, or dependency-order bug surfaces in `task release:e2e` BEFORE a real
10
+ * `v*` tag fires the publish workflow, without ever touching the real registry.
11
+ */
12
+ function resolveWhich(seams) {
13
+ return seams.which ?? seams.whichGh ?? defaultWhich;
14
+ }
15
+ /**
16
+ * Resolve a pnpm invocation prefix for the clone build. Prefers a `pnpm`
17
+ * binary on PATH; falls back to `corepack pnpm`. Returns null when neither is
18
+ * available.
19
+ */
20
+ export function resolvePnpm(seams = {}) {
21
+ const which = resolveWhich(seams);
22
+ const pnpm = which("pnpm");
23
+ if (pnpm) {
24
+ return [pnpm];
25
+ }
26
+ const corepack = which("corepack");
27
+ if (corepack) {
28
+ return [corepack, "pnpm"];
29
+ }
30
+ return null;
31
+ }
32
+ function runNpmStep(cmd, cwd, env, label, timeoutSeconds, seams) {
33
+ const spawn = seams.spawnText ?? spawnText;
34
+ const head = cmd[0] ?? "";
35
+ const result = spawn(head, cmd.slice(1), {
36
+ cwd,
37
+ env,
38
+ timeoutMs: timeoutSeconds * 1000,
39
+ });
40
+ if (result.status !== 0) {
41
+ const detail = (result.stderr || result.stdout || "").trim();
42
+ return [false, `${label} failed (exit ${result.status}): ${detail.slice(-500)}`];
43
+ }
44
+ return [true, `${label} OK`];
45
+ }
46
+ /**
47
+ * Bump the four published package versions to <version> and resolve any
48
+ * `workspace:` dependency spec to `^<version>` (npm cannot publish the pnpm
49
+ * workspace protocol verbatim). Folds in the scope item-4 version-alignment
50
+ * assertion: each manifest is read back and must report exactly <version>.
51
+ */
52
+ export function alignNpmPackageVersions(cloneDir, version) {
53
+ for (const pkg of NPM_PUBLISH_PACKAGES) {
54
+ const manifest = join(cloneDir, "packages", pkg, "package.json");
55
+ let data;
56
+ try {
57
+ data = JSON.parse(readFileSync(manifest, "utf8"));
58
+ }
59
+ catch (exc) {
60
+ return [
61
+ false,
62
+ `version-align FAIL: cannot read packages/${pkg}/package.json: ${String(exc)}`,
63
+ ];
64
+ }
65
+ data.version = version;
66
+ const deps = data.dependencies;
67
+ if (deps !== null && typeof deps === "object") {
68
+ const depMap = deps;
69
+ for (const [name, spec] of Object.entries(depMap)) {
70
+ if (typeof spec === "string" && spec.startsWith("workspace:")) {
71
+ depMap[name] = `^${version}`;
72
+ }
73
+ }
74
+ }
75
+ let readback;
76
+ try {
77
+ writeFileSync(manifest, `${JSON.stringify(data, null, 2)}\n`, "utf8");
78
+ readback = JSON.parse(readFileSync(manifest, "utf8"));
79
+ }
80
+ catch (exc) {
81
+ return [
82
+ false,
83
+ `version-align FAIL: cannot write packages/${pkg}/package.json: ${String(exc)}`,
84
+ ];
85
+ }
86
+ if (readback.version !== version) {
87
+ return [
88
+ false,
89
+ `version-align FAIL: packages/${pkg} version=` +
90
+ `${JSON.stringify(readback.version)} != ${JSON.stringify(version)}`,
91
+ ];
92
+ }
93
+ }
94
+ return [true, `aligned 4 package versions to ${version} (+ resolved workspace protocol)`];
95
+ }
96
+ /**
97
+ * Dry-run the npm publish for the four @deftai/directive* packages.
98
+ *
99
+ * Steps, all inside the throwaway clone:
100
+ * 1. Resolve `npm`. SOFT-SKIP (ok=true) when npm is absent so Node-less
101
+ * operators are not blocked -- symmetric to --skip-npm.
102
+ * 2. Resolve pnpm (or `corepack pnpm`) and `pnpm install --frozen-lockfile`.
103
+ * 3. `pnpm -w run build`; dist/ must exist for the dist-only files allowlist.
104
+ * 4. Align the four package.json versions + resolve the workspace protocol.
105
+ * 5. `npm publish --dry-run --access public` per package in dependency order.
106
+ *
107
+ * Returns [ok, reason] like verifyDraftRelease / verifyTag.
108
+ */
109
+ export function rehearseNpmPublish(cloneDir, version, seams = {}) {
110
+ const which = resolveWhich(seams);
111
+ const npmPath = which("npm");
112
+ if (npmPath === null) {
113
+ return [true, "SKIP (npm not on PATH; Node-less operator)"];
114
+ }
115
+ const pnpmCmd = resolvePnpm(seams);
116
+ if (pnpmCmd === null) {
117
+ return [
118
+ false,
119
+ "npm present but neither pnpm nor corepack is on PATH -- " +
120
+ "cannot build the workspace for the dry-run",
121
+ ];
122
+ }
123
+ const env = { ...process.env, DEFT_PROJECT_ROOT: cloneDir };
124
+ let [ok, reason] = runNpmStep([...pnpmCmd, "install", "--frozen-lockfile"], cloneDir, env, "pnpm install", NPM_INSTALL_TIMEOUT_SECONDS, seams);
125
+ if (!ok) {
126
+ return [false, reason];
127
+ }
128
+ [ok, reason] = runNpmStep([...pnpmCmd, "-w", "run", "build"], cloneDir, env, "pnpm build", NPM_BUILD_TIMEOUT_SECONDS, seams);
129
+ if (!ok) {
130
+ return [false, reason];
131
+ }
132
+ [ok, reason] = alignNpmPackageVersions(cloneDir, version);
133
+ if (!ok) {
134
+ return [false, reason];
135
+ }
136
+ for (const pkg of NPM_PUBLISH_PACKAGES) {
137
+ const pkgDir = join(cloneDir, "packages", pkg);
138
+ [ok, reason] = runNpmStep([npmPath, "publish", "--dry-run", "--access", "public"], pkgDir, env, `npm publish --dry-run packages/${pkg}`, NPM_PUBLISH_DRYRUN_TIMEOUT_SECONDS, seams);
139
+ if (!ok) {
140
+ return [false, reason];
141
+ }
142
+ }
143
+ return [
144
+ true,
145
+ "npm publish --dry-run clean for 4 packages " +
146
+ `(types -> core -> content -> cli) at v${version}`,
147
+ ];
148
+ }
149
+ //# sourceMappingURL=npm-ops.js.map
@@ -0,0 +1,3 @@
1
+ import type { E2ESeams } from "./types.js";
2
+ export declare function runRehearsal(owner: string, slug: string, projectRoot: string, version?: string, seams?: E2ESeams, skipNpm?: boolean): [boolean, string];
3
+ //# sourceMappingURL=rehearsal.d.ts.map
@@ -0,0 +1,51 @@
1
+ import { mkdtempSync, rmSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { REHEARSAL_VERSION } from "./constants.js";
5
+ import { dispatchTaskRelease, dispatchTaskReleaseRollback } from "./entrypoint.js";
6
+ import { emit } from "./flags.js";
7
+ import { verifyDraftRelease } from "./gh-ops.js";
8
+ import { cloneRepoToTemp, pushMirror, setOriginToTempRepo, verifyTag } from "./git-ops.js";
9
+ import { rehearseNpmPublish } from "./npm-ops.js";
10
+ export function runRehearsal(owner, slug, projectRoot, version = REHEARSAL_VERSION, seams = {}, skipNpm = false) {
11
+ const repoFull = `${owner}/${slug}`;
12
+ const mkdtemp = seams.mkdtemp ?? ((prefix) => mkdtempSync(join(tmpdir(), prefix)));
13
+ const rmTemp = seams.rmTemp ?? ((p) => rmSync(p, { recursive: true, force: true }));
14
+ const tmpdirPath = mkdtemp("deft-e2e-");
15
+ const cloneDir = join(tmpdirPath, "clone");
16
+ try {
17
+ const steps = [
18
+ ["clone", () => cloneRepoToTemp(projectRoot, cloneDir, seams)],
19
+ ["set-origin", () => setOriginToTempRepo(cloneDir, owner, slug, seams)],
20
+ ["push-mirror", () => pushMirror(cloneDir, seams)],
21
+ ["task release", () => dispatchTaskRelease(cloneDir, version, repoFull, seams)],
22
+ ["verify draft", () => verifyDraftRelease(owner, slug, version, seams)],
23
+ ["verify tag", () => verifyTag(cloneDir, version, seams)],
24
+ ];
25
+ if (!skipNpm) {
26
+ steps.push(["npm publish dry-run", () => rehearseNpmPublish(cloneDir, version, seams)]);
27
+ }
28
+ steps.push([
29
+ "task release:rollback",
30
+ () => dispatchTaskReleaseRollback(cloneDir, version, repoFull, seams),
31
+ ]);
32
+ for (const [label, step] of steps) {
33
+ const [ok, reason] = step();
34
+ emit(` rehearsal step: ${label}`, `${ok ? "OK" : "FAIL"} (${reason})`);
35
+ if (!ok) {
36
+ return [false, `${label}: ${reason}`];
37
+ }
38
+ }
39
+ const npmNote = skipNpm ? " (npm dry-run skipped)" : " -> npm publish dry-run";
40
+ return [
41
+ true,
42
+ `pipeline-mirror rehearsal succeeded against ${repoFull} ` +
43
+ `(${steps.length} steps; clone -> push heads+tags -> task release -> ` +
44
+ `verify draft+tag${npmNote} -> rollback)`,
45
+ ];
46
+ }
47
+ finally {
48
+ rmTemp(tmpdirPath);
49
+ }
50
+ }
51
+ //# sourceMappingURL=rehearsal.js.map
@@ -0,0 +1,3 @@
1
+ /** Invoke release_rollback.main via Python until the TS rollback module lands (#1729). */
2
+ export declare function rollbackMain(argv: string[]): number;
3
+ //# sourceMappingURL=rollback-bridge.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { resolveScriptsDir } from "../release/paths.js";
2
+ import { spawnText } from "../release/spawn.js";
3
+ /** Invoke release_rollback.main via Python until the TS rollback module lands (#1729). */
4
+ export function rollbackMain(argv) {
5
+ const scriptsDir = resolveScriptsDir();
6
+ const code = [
7
+ "import sys",
8
+ `sys.path.insert(0, ${JSON.stringify(scriptsDir)})`,
9
+ "import release_rollback",
10
+ `sys.exit(release_rollback.main(${JSON.stringify(argv)}))`,
11
+ ].join("\n");
12
+ const frameworkRoot = scriptsDir.replace(/[/\\]scripts$/, "") || process.cwd();
13
+ const result = spawnText("uv", ["run", "python", "-c", code], {
14
+ cwd: frameworkRoot,
15
+ env: { ...process.env, PYTHONUTF8: "1" },
16
+ timeoutMs: 300_000,
17
+ });
18
+ return result.status ?? 1;
19
+ }
20
+ //# sourceMappingURL=rollback-bridge.js.map
@@ -0,0 +1,40 @@
1
+ import type { SpawnResult } from "../release/types.js";
2
+ export interface E2EConfig {
3
+ owner: string;
4
+ projectRoot: string;
5
+ dryRun: boolean;
6
+ keepRepo: boolean;
7
+ /** When true, skip the npm publish dry-run rehearsal step (#1910). */
8
+ skipNpm: boolean;
9
+ /** Optional override slug (test injection). If null, a fresh slug is generated per run. */
10
+ repoSlug: string | null;
11
+ }
12
+ export interface ParsedE2EFlags {
13
+ help: boolean;
14
+ owner: string;
15
+ dryRun: boolean;
16
+ keepRepo: boolean;
17
+ projectRoot: string | null;
18
+ skipNpm: boolean;
19
+ unknown: string[];
20
+ }
21
+ export type EntrypointFn = (argv: string[]) => number;
22
+ export interface E2ESeams {
23
+ whichGh?: (name: string) => string | null;
24
+ /** Generic PATH lookup for the npm publish dry-run rehearsal (#1910). */
25
+ which?: (name: string) => string | null;
26
+ spawnText?: (cmd: string, args: readonly string[], options?: {
27
+ cwd?: string;
28
+ env?: NodeJS.ProcessEnv;
29
+ timeoutMs?: number;
30
+ }) => SpawnResult;
31
+ runGit?: (projectRoot: string, args: readonly string[], env?: NodeJS.ProcessEnv) => SpawnResult;
32
+ mkdtemp?: (prefix: string) => string;
33
+ rmTemp?: (path: string) => void;
34
+ generateRepoSlug?: () => string;
35
+ releaseEntrypoint?: EntrypointFn;
36
+ rollbackEntrypoint?: EntrypointFn;
37
+ now?: () => Date;
38
+ randomUuidHex?: () => string;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1,7 @@
1
+ /* v8 ignore file -- thin shebang entry; covered via main.ts tests */
2
+ import { fileURLToPath } from "node:url";
3
+ import { cmdReleasePublish } from "./main.js";
4
+ if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
5
+ process.exit(cmdReleasePublish(process.argv.slice(2)));
6
+ }
7
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1,4 @@
1
+ /** Byte-identical argparse --help from scripts/release_publish.py (Python 3.14). */
2
+ export declare const RELEASE_PUBLISH_HELP: string;
3
+ export declare const RELEASES_LIST_ENDPOINT_TEMPLATE = "repos/{repo}/releases?per_page=100";
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,24 @@
1
+ /** Byte-identical argparse --help from scripts/release_publish.py (Python 3.14). */
2
+ export const RELEASE_PUBLISH_HELP = "usage: release_publish [-h] [--dry-run] [--repo OWNER/REPO]\n" +
3
+ " [--project-root PATH]\n" +
4
+ " version\n" +
5
+ "\n" +
6
+ "Flip a draft GitHub release to public (#716 safety hardening). Companion to\n" +
7
+ "`task release` -- after reviewing the draft's binaries / notes / asset list,\n" +
8
+ "run `task release:publish -- <version>` to publish.\n" +
9
+ "\n" +
10
+ "positional arguments:\n" +
11
+ " version Release version, e.g. 0.21.0 (no leading 'v', strict\n" +
12
+ " X.Y.Z).\n" +
13
+ "\n" +
14
+ "options:\n" +
15
+ " -h, --help show this help message and exit\n" +
16
+ " --dry-run Print the publish plan without invoking gh release\n" +
17
+ " edit.\n" +
18
+ " --repo OWNER/REPO Override the GitHub repository (default: resolved from\n" +
19
+ " `git remote get-url origin`, falling back to\n" +
20
+ " 'deftai/directive').\n" +
21
+ " --project-root PATH Repository root (default: $DEFT_PROJECT_ROOT or the\n" +
22
+ " parent of the scripts/ directory).\n";
23
+ export const RELEASES_LIST_ENDPOINT_TEMPLATE = "repos/{repo}/releases?per_page=100";
24
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,5 @@
1
+ import type { PublishFlags } from "./types.js";
2
+ export declare function formatReleasePublishHelp(): string;
3
+ export declare function parsePublishFlags(args: readonly string[]): PublishFlags;
4
+ export declare function formatMissingVersionError(): string;
5
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1,67 @@
1
+ import { RELEASE_PUBLISH_HELP } from "./constants.js";
2
+ export function formatReleasePublishHelp() {
3
+ return RELEASE_PUBLISH_HELP;
4
+ }
5
+ export function parsePublishFlags(args) {
6
+ let help = false;
7
+ let dryRun = false;
8
+ let repo = null;
9
+ let projectRoot = null;
10
+ let version = null;
11
+ const unknown = [];
12
+ const takeValue = (flag, i) => {
13
+ if (i + 1 >= args.length) {
14
+ unknown.push(`${flag} (missing value)`);
15
+ return null;
16
+ }
17
+ return args[i + 1] ?? null;
18
+ };
19
+ let i = 0;
20
+ while (i < args.length) {
21
+ const token = args[i] ?? "";
22
+ if (token === "-h" || token === "--help") {
23
+ help = true;
24
+ }
25
+ else if (token === "--dry-run") {
26
+ dryRun = true;
27
+ }
28
+ else if (token === "--repo") {
29
+ repo = takeValue(token, i);
30
+ if (repo !== null)
31
+ i += 1;
32
+ }
33
+ else if (token.startsWith("--repo=")) {
34
+ repo = token.slice("--repo=".length) || null;
35
+ if (!repo)
36
+ unknown.push("--repo= (empty value)");
37
+ }
38
+ else if (token === "--project-root") {
39
+ projectRoot = takeValue(token, i);
40
+ if (projectRoot !== null)
41
+ i += 1;
42
+ }
43
+ else if (token.startsWith("--project-root=")) {
44
+ projectRoot = token.slice("--project-root=".length) || null;
45
+ if (!projectRoot)
46
+ unknown.push("--project-root= (empty value)");
47
+ }
48
+ else if (token.startsWith("-")) {
49
+ unknown.push(token);
50
+ }
51
+ else if (version === null) {
52
+ version = token;
53
+ }
54
+ else {
55
+ unknown.push(token);
56
+ }
57
+ i += 1;
58
+ }
59
+ return { help, version, repo, projectRoot, dryRun, unknown };
60
+ }
61
+ export function formatMissingVersionError() {
62
+ return ("usage: release_publish [-h] [--dry-run] [--repo OWNER/REPO]\n" +
63
+ " [--project-root PATH]\n" +
64
+ " version\n" +
65
+ "release_publish: error: the following arguments are required: version\n");
66
+ }
67
+ //# sourceMappingURL=flags.js.map