@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,35 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { BINARY_PREFERENCE } from "./constants.js";
3
+ import { ScmStubError } from "./errors.js";
4
+ /** Default PATH lookup mirroring Python `shutil.which`. Uses the
5
+ * platform-native resolver (`where` on Windows, `which` elsewhere) so
6
+ * executable resolution works cross-platform. */
7
+ export function defaultWhich(name) {
8
+ const locator = process.platform === "win32" ? "where" : "which";
9
+ try {
10
+ const result = execFileSync(locator, [name], {
11
+ encoding: "utf8",
12
+ stdio: ["ignore", "pipe", "ignore"],
13
+ });
14
+ // `where` may return multiple lines; take the first non-empty match.
15
+ const first = result.split(/\r?\n/).find((line) => line.trim().length > 0);
16
+ return first !== undefined ? first.trim() : null;
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ /**
23
+ * Return `"ghx"` if on PATH, else `"gh"`; raise if neither is present.
24
+ * Mirrors `scripts/scm.py::resolve_binary`.
25
+ */
26
+ export function resolveBinary(whichFn = defaultWhich) {
27
+ for (const candidate of BINARY_PREFERENCE) {
28
+ if (whichFn(candidate) !== null) {
29
+ return candidate;
30
+ }
31
+ }
32
+ throw new ScmStubError("neither 'ghx' nor 'gh' found on PATH; install GitHub CLI " +
33
+ "(https://cli.github.com/) or the ghx proxy (#884)");
34
+ }
35
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1,11 @@
1
+ import { resolveBinary } from "./binary.js";
2
+ export interface BuildCommandOptions {
3
+ readonly binary?: string;
4
+ readonly whichFn?: Parameters<typeof resolveBinary>[0];
5
+ }
6
+ /**
7
+ * Construct the underlying `[binary, namespace, verb, *extra]` argv.
8
+ * Mirrors `scripts/scm.py::build_command`.
9
+ */
10
+ export declare function buildCommand(namespace: string, verb: string, extra: readonly string[], options?: BuildCommandOptions): string[];
11
+ //# sourceMappingURL=build-command.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { resolveBinary } from "./binary.js";
2
+ import { ALLOWED_ISSUE_VERBS, ALLOWED_NAMESPACES } from "./constants.js";
3
+ import { ScmStubError } from "./errors.js";
4
+ import { pyRepr, pyTuple } from "./py-format.js";
5
+ /**
6
+ * Construct the underlying `[binary, namespace, verb, *extra]` argv.
7
+ * Mirrors `scripts/scm.py::build_command`.
8
+ */
9
+ export function buildCommand(namespace, verb, extra, options = {}) {
10
+ if (!ALLOWED_NAMESPACES.includes(namespace)) {
11
+ throw new ScmStubError(`unknown scm namespace ${pyRepr(namespace)}; expected one of ` +
12
+ `${pyTuple(ALLOWED_NAMESPACES)}. The full scm:* namespace lives at #881.`);
13
+ }
14
+ if (namespace === "issue" &&
15
+ !ALLOWED_ISSUE_VERBS.includes(verb)) {
16
+ throw new ScmStubError(`unknown scm:issue verb ${pyRepr(verb)}; expected one of ` +
17
+ `${pyTuple(ALLOWED_ISSUE_VERBS)}. The v1 stub only exposes these four; ` +
18
+ "additional scm:issue:* commands belong on #881.");
19
+ }
20
+ const resolved = options.binary ?? resolveBinary(options.whichFn ?? undefined);
21
+ return [resolved, namespace, verb, ...extra];
22
+ }
23
+ //# sourceMappingURL=build-command.js.map
@@ -0,0 +1,25 @@
1
+ import { resolveBinary } from "./binary.js";
2
+ /** Mirrors Python `subprocess.CompletedProcess`. */
3
+ export interface CompletedProcess {
4
+ readonly args: readonly string[];
5
+ readonly returncode: number;
6
+ readonly stdout: string;
7
+ readonly stderr: string;
8
+ }
9
+ export interface CallOptions {
10
+ readonly check?: boolean;
11
+ readonly captureOutput?: boolean;
12
+ readonly text?: boolean;
13
+ readonly timeout?: number;
14
+ readonly cwd?: string;
15
+ readonly binary?: string;
16
+ readonly whichFn?: Parameters<typeof resolveBinary>[0];
17
+ readonly env?: NodeJS.ProcessEnv;
18
+ readonly input?: string;
19
+ }
20
+ /**
21
+ * Source-aware SCM invocation -- partial down-payment on #445 / #935 Workstream 6.
22
+ * Mirrors `scripts/scm.py::call`.
23
+ */
24
+ export declare function call(source: string, verb: string, args?: readonly string[] | null, options?: CallOptions): CompletedProcess;
25
+ //# sourceMappingURL=call.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { resolveBinary } from "./binary.js";
3
+ import { SUPPORTED_CALL_SOURCES } from "./constants.js";
4
+ import { pyRepr } from "./py-format.js";
5
+ /**
6
+ * Source-aware SCM invocation -- partial down-payment on #445 / #935 Workstream 6.
7
+ * Mirrors `scripts/scm.py::call`.
8
+ */
9
+ export function call(source, verb, args = null, options = {}) {
10
+ if (!SUPPORTED_CALL_SOURCES.includes(source)) {
11
+ throw new Error(`source=${pyRepr(source)} not yet supported; ` +
12
+ "see #445 / #935 Workstream 6 for the abstraction.");
13
+ }
14
+ const resolved = options.binary ?? resolveBinary(options.whichFn);
15
+ const argv = [resolved, verb, ...(args ?? [])];
16
+ const captureOutput = options.captureOutput ?? true;
17
+ const timeoutMs = options.timeout !== undefined ? Math.round(options.timeout * 1000) : undefined;
18
+ const result = spawnSync(resolved, [verb, ...(args ?? [])], {
19
+ cwd: options.cwd,
20
+ env: options.env ?? process.env,
21
+ input: options.input,
22
+ encoding: (options.text ?? true) ? "utf8" : undefined,
23
+ timeout: timeoutMs,
24
+ stdio: captureOutput ? ["pipe", "pipe", "pipe"] : "inherit",
25
+ });
26
+ if (options.check && result.status !== 0) {
27
+ const message = typeof result.stderr === "string" ? result.stderr : "";
28
+ const error = new Error(message || `Process exited with code ${result.status}`);
29
+ throw error;
30
+ }
31
+ return {
32
+ args: argv,
33
+ returncode: result.status ?? 1,
34
+ stdout: typeof result.stdout === "string" ? result.stdout : "",
35
+ stderr: typeof result.stderr === "string" ? result.stderr : "",
36
+ };
37
+ }
38
+ //# sourceMappingURL=call.js.map
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from "node:url";
3
+ import { main } from "./main.js";
4
+ if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
5
+ process.exit(main(process.argv.slice(2)));
6
+ }
7
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1,11 @@
1
+ /** Allowed `<namespace>` argv[0] -- the v1 stub only exposes `issue`. */
2
+ export declare const ALLOWED_NAMESPACES: readonly ["issue"];
3
+ /** Source-aware shim (#1145 / N5) supported sources. */
4
+ export declare const SUPPORTED_CALL_SOURCES: readonly ["github-issue"];
5
+ /** Allowed `<verb>` argv[1] for the `issue` namespace. */
6
+ export declare const ALLOWED_ISSUE_VERBS: readonly ["list", "view", "close", "edit"];
7
+ /** Binary preference order (#884). */
8
+ export declare const BINARY_PREFERENCE: readonly ["ghx", "gh"];
9
+ /** Verbs that support the `--rest` opt-in. */
10
+ export declare const REST_OPT_IN_VERBS: readonly ["view", "list"];
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,11 @@
1
+ /** Allowed `<namespace>` argv[0] -- the v1 stub only exposes `issue`. */
2
+ export const ALLOWED_NAMESPACES = ["issue"];
3
+ /** Source-aware shim (#1145 / N5) supported sources. */
4
+ export const SUPPORTED_CALL_SOURCES = ["github-issue"];
5
+ /** Allowed `<verb>` argv[1] for the `issue` namespace. */
6
+ export const ALLOWED_ISSUE_VERBS = ["list", "view", "close", "edit"];
7
+ /** Binary preference order (#884). */
8
+ export const BINARY_PREFERENCE = ["ghx", "gh"];
9
+ /** Verbs that support the `--rest` opt-in. */
10
+ export const REST_OPT_IN_VERBS = ["view", "list"];
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,5 @@
1
+ /** Raised on argv-validation or binary-resolution failures. */
2
+ export declare class ScmStubError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,8 @@
1
+ /** Raised on argv-validation or binary-resolution failures. */
2
+ export class ScmStubError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = "ScmStubError";
6
+ }
7
+ }
8
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1,74 @@
1
+ import { resolveBinary } from "./binary.js";
2
+ export declare const DEFAULT_TIMEOUT_S = 60;
3
+ /** Raised when the `"owner/repo"` argument is malformed. */
4
+ export declare class InvalidRepoError extends Error {
5
+ constructor(repo: unknown);
6
+ }
7
+ /** Raised on non-zero `gh api` exit or non-JSON success response. */
8
+ export declare class GhRestError extends Error {
9
+ readonly stderr: string;
10
+ readonly exitCode: number;
11
+ readonly endpoint: string;
12
+ readonly payload: Record<string, unknown> | null;
13
+ readonly hint: string;
14
+ constructor(options: {
15
+ stderr: string;
16
+ exitCode: number;
17
+ endpoint: string;
18
+ payload: Record<string, unknown> | null;
19
+ hint?: string;
20
+ });
21
+ }
22
+ export type RunGhApiFn = (args: readonly string[], options?: {
23
+ timeout?: number;
24
+ whichFn?: Parameters<typeof resolveBinary>[0];
25
+ }) => {
26
+ returncode: number;
27
+ stdout: string;
28
+ stderr: string;
29
+ };
30
+ /** Single subprocess seam invoked by every helper. */
31
+ export declare function runGhApi(args: readonly string[], options?: {
32
+ timeout?: number;
33
+ whichFn?: Parameters<typeof resolveBinary>[0];
34
+ }): {
35
+ returncode: number;
36
+ stdout: string;
37
+ stderr: string;
38
+ };
39
+ export declare function splitRepo(repo: string): [string, string];
40
+ export interface GhRestSeams {
41
+ readonly runGhApiFn?: RunGhApiFn;
42
+ readonly whichFn?: Parameters<typeof resolveBinary>[0];
43
+ }
44
+ /** `GET /repos/{owner}/{repo}/issues/{n}` -- read a single issue. */
45
+ export declare function restIssueView(repo: string, n: number, seams?: GhRestSeams): Record<string, unknown>;
46
+ export interface RestIssueListOptions {
47
+ readonly state?: string;
48
+ readonly labels?: readonly string[];
49
+ readonly author?: string | null;
50
+ readonly perPage?: number;
51
+ }
52
+ /** `GET /repos/{owner}/{repo}/issues` -- list issues (REST collection). */
53
+ export declare function restIssueList(repo: string, options?: RestIssueListOptions, seams?: GhRestSeams): Record<string, unknown>[];
54
+ export declare const REST_MAX_PER_PAGE = 100;
55
+ export declare const REST_PAGINATION_MAX_PAGES = 100;
56
+ export declare const PUBLIC_HELPERS: readonly ["restCreateIssue", "restPostComment", "restCloseIssue", "restOpenPr", "restMergePr", "restIssueView", "restPrView", "restIssueList", "restIssueListPaginated"];
57
+ export declare function restCreateIssue(repo: string, title: string, body: string, labels?: readonly string[], seams?: GhRestSeams): Record<string, unknown>;
58
+ export declare function restPostComment(repo: string, n: number, body: string, seams?: GhRestSeams): Record<string, unknown>;
59
+ export declare function restCloseIssue(repo: string, n: number, reason?: string | null, seams?: GhRestSeams): Record<string, unknown>;
60
+ export declare function restOpenPr(repo: string, head: string, base: string, title: string, body: string, options?: {
61
+ draft?: boolean;
62
+ } & GhRestSeams): Record<string, unknown>;
63
+ export declare function restMergePr(repo: string, n: number, options?: {
64
+ method?: string;
65
+ commitTitle?: string | null;
66
+ commitMessage?: string | null;
67
+ } & GhRestSeams): Record<string, unknown>;
68
+ export declare function restPrView(repo: string, n: number, seams?: GhRestSeams): Record<string, unknown>;
69
+ export interface RestIssueListPaginatedOptions extends RestIssueListOptions {
70
+ readonly limit?: number | null;
71
+ readonly excludePulls?: boolean;
72
+ }
73
+ export declare function restIssueListPaginated(repo: string, options?: RestIssueListPaginatedOptions, seams?: GhRestSeams): Record<string, unknown>[];
74
+ //# sourceMappingURL=gh-rest.d.ts.map
@@ -0,0 +1,326 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { SUBPROCESS_MAX_BUFFER } from "../subprocess/max-buffer.js";
6
+ import { resolveBinary } from "./binary.js";
7
+ import { pyRepr } from "./py-format.js";
8
+ export const DEFAULT_TIMEOUT_S = 60;
9
+ /** Raised when the `"owner/repo"` argument is malformed. */
10
+ export class InvalidRepoError extends Error {
11
+ constructor(repo) {
12
+ const message = typeof repo !== "string" || repo.length === 0
13
+ ? `repo must be a non-empty string of the form 'owner/repo'; got ${pyRepr(repo)}`
14
+ : `repo must match 'owner/repo' (single slash, both segments non-empty); got ${pyRepr(repo)}`;
15
+ super(message);
16
+ this.name = "InvalidRepoError";
17
+ }
18
+ }
19
+ /** Raised on non-zero `gh api` exit or non-JSON success response. */
20
+ export class GhRestError extends Error {
21
+ stderr;
22
+ exitCode;
23
+ endpoint;
24
+ payload;
25
+ hint;
26
+ constructor(options) {
27
+ const hint = options.hint ?? "";
28
+ let msg = `gh api failed: endpoint=${pyRepr(options.endpoint)} ` +
29
+ `exit=${options.exitCode} stderr=${pyRepr(options.stderr)}`;
30
+ if (hint.length > 0) {
31
+ msg += `; hint: ${hint}`;
32
+ }
33
+ super(msg);
34
+ this.name = "GhRestError";
35
+ this.stderr = options.stderr;
36
+ this.exitCode = options.exitCode;
37
+ this.endpoint = options.endpoint;
38
+ this.payload = options.payload;
39
+ this.hint = hint;
40
+ }
41
+ }
42
+ /** Single subprocess seam invoked by every helper. */
43
+ export function runGhApi(args, options = {}) {
44
+ const binary = resolveBinary(options.whichFn);
45
+ const timeoutMs = options.timeout !== undefined ? Math.round(options.timeout * 1000) : DEFAULT_TIMEOUT_S * 1000;
46
+ const result = spawnSync(binary, ["api", ...args], {
47
+ encoding: "utf8",
48
+ timeout: timeoutMs,
49
+ env: process.env,
50
+ maxBuffer: SUBPROCESS_MAX_BUFFER,
51
+ stdio: ["ignore", "pipe", "pipe"],
52
+ });
53
+ let stderr = typeof result.stderr === "string" ? result.stderr : "";
54
+ // A spawn-level failure (e.g. ENOBUFS when stdout exceeds maxBuffer) yields a
55
+ // null status and empty stderr; surface error.message so the GhRestError that
56
+ // wraps this never reports a blank reason (#1867).
57
+ if (result.status === null && result.error && stderr.trim().length === 0) {
58
+ stderr = result.error.message;
59
+ }
60
+ return {
61
+ returncode: result.status ?? 1,
62
+ stdout: typeof result.stdout === "string" ? result.stdout : "",
63
+ stderr,
64
+ };
65
+ }
66
+ export function splitRepo(repo) {
67
+ if (typeof repo !== "string" || repo.length === 0) {
68
+ throw new InvalidRepoError(repo);
69
+ }
70
+ const parts = repo.split("/");
71
+ if (parts.length !== 2 || parts[0] === "" || parts[1] === "") {
72
+ throw new InvalidRepoError(repo);
73
+ }
74
+ return [parts[0], parts[1]];
75
+ }
76
+ function execApi(args, options) {
77
+ const runner = options.runGhApiFn ?? runGhApi;
78
+ const result = runner(args, { whichFn: options.whichFn });
79
+ if (result.returncode !== 0) {
80
+ throw new GhRestError({
81
+ stderr: result.stderr.trim(),
82
+ exitCode: result.returncode,
83
+ endpoint: options.endpoint,
84
+ payload: options.payload,
85
+ hint: options.hint ?? "",
86
+ });
87
+ }
88
+ const stdout = result.stdout.trim();
89
+ if (stdout.length === 0) {
90
+ return options.expectList ? [] : {};
91
+ }
92
+ let parsed;
93
+ try {
94
+ parsed = JSON.parse(stdout);
95
+ }
96
+ catch (exc) {
97
+ const message = exc instanceof Error ? exc.message : String(exc);
98
+ throw new GhRestError({
99
+ stderr: `non-JSON response: ${message}; raw=${pyRepr(stdout)}`,
100
+ exitCode: 0,
101
+ endpoint: options.endpoint,
102
+ payload: options.payload,
103
+ hint: "REST endpoint returned non-JSON; check gh / ghx version",
104
+ });
105
+ }
106
+ const expectedList = options.expectList ?? false;
107
+ if (expectedList) {
108
+ if (!Array.isArray(parsed)) {
109
+ throw new GhRestError({
110
+ stderr: `unexpected top-level type ${typeof parsed}`,
111
+ exitCode: 0,
112
+ endpoint: options.endpoint,
113
+ payload: options.payload,
114
+ hint: "REST endpoint returned non-list; expected list",
115
+ });
116
+ }
117
+ return parsed;
118
+ }
119
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
120
+ throw new GhRestError({
121
+ stderr: `unexpected top-level type ${Array.isArray(parsed) ? "list" : typeof parsed}`,
122
+ exitCode: 0,
123
+ endpoint: options.endpoint,
124
+ payload: options.payload,
125
+ hint: "REST endpoint returned non-dict; expected dict",
126
+ });
127
+ }
128
+ return parsed;
129
+ }
130
+ /** `GET /repos/{owner}/{repo}/issues/{n}` -- read a single issue. */
131
+ export function restIssueView(repo, n, seams = {}) {
132
+ const [owner, name] = splitRepo(repo);
133
+ const endpoint = `repos/${owner}/${name}/issues/${n}`;
134
+ return execApi([endpoint], {
135
+ endpoint,
136
+ payload: null,
137
+ hint: "verify repo and issue number; check gh auth status",
138
+ runGhApiFn: seams.runGhApiFn,
139
+ whichFn: seams.whichFn,
140
+ });
141
+ }
142
+ /** `GET /repos/{owner}/{repo}/issues` -- list issues (REST collection). */
143
+ export function restIssueList(repo, options = {}, seams = {}) {
144
+ const state = options.state ?? "open";
145
+ const labels = options.labels ?? [];
146
+ const author = options.author ?? null;
147
+ const perPage = options.perPage ?? 30;
148
+ const [owner, name] = splitRepo(repo);
149
+ const endpoint = `repos/${owner}/${name}/issues`;
150
+ const args = [endpoint, "--method", "GET"];
151
+ args.push("--raw-field", `state=${state}`);
152
+ args.push("--raw-field", `per_page=${perPage}`);
153
+ if (labels.length > 0) {
154
+ args.push("--raw-field", `labels=${labels.join(",")}`);
155
+ }
156
+ if (author !== null && author.length > 0) {
157
+ args.push("--raw-field", `creator=${author}`);
158
+ }
159
+ return execApi(args, {
160
+ endpoint,
161
+ payload: null,
162
+ hint: "verify repo, state value (open|closed|all), labels exist, " +
163
+ "and core REST bucket has remaining quota",
164
+ expectList: true,
165
+ runGhApiFn: seams.runGhApiFn,
166
+ whichFn: seams.whichFn,
167
+ });
168
+ }
169
+ export const REST_MAX_PER_PAGE = 100;
170
+ export const REST_PAGINATION_MAX_PAGES = 100;
171
+ export const PUBLIC_HELPERS = [
172
+ "restCreateIssue",
173
+ "restPostComment",
174
+ "restCloseIssue",
175
+ "restOpenPr",
176
+ "restMergePr",
177
+ "restIssueView",
178
+ "restPrView",
179
+ "restIssueList",
180
+ "restIssueListPaginated",
181
+ ];
182
+ function writeJsonPayload(payload) {
183
+ const dir = mkdtempSync(join(tmpdir(), "gh_rest_payload_"));
184
+ const path = join(dir, "payload.json");
185
+ writeFileSync(path, JSON.stringify(payload), "utf8");
186
+ return { path, dir };
187
+ }
188
+ function execMutation(args, options) {
189
+ const written = writeJsonPayload(options.payload);
190
+ try {
191
+ return execApi([...args, "--input", written.path], {
192
+ endpoint: options.endpoint,
193
+ payload: options.payload,
194
+ hint: options.hint,
195
+ runGhApiFn: options.runGhApiFn,
196
+ whichFn: options.whichFn,
197
+ });
198
+ }
199
+ finally {
200
+ rmSync(written.dir, { recursive: true, force: true });
201
+ }
202
+ }
203
+ export function restCreateIssue(repo, title, body, labels = [], seams = {}) {
204
+ const [owner, name] = splitRepo(repo);
205
+ const payload = { title, body };
206
+ if (labels.length > 0) {
207
+ payload.labels = [...labels];
208
+ }
209
+ const endpoint = `repos/${owner}/${name}/issues`;
210
+ return execMutation([endpoint, "--method", "POST"], {
211
+ endpoint,
212
+ payload,
213
+ hint: "verify repo permissions, label existence, and that the core REST bucket has remaining quota",
214
+ ...seams,
215
+ });
216
+ }
217
+ export function restPostComment(repo, n, body, seams = {}) {
218
+ const [owner, name] = splitRepo(repo);
219
+ const endpoint = `repos/${owner}/${name}/issues/${n}/comments`;
220
+ return execMutation([endpoint, "--method", "POST"], {
221
+ endpoint,
222
+ payload: { body },
223
+ hint: "verify repo permissions, that the issue/PR is open or lockable, and core REST bucket quota",
224
+ ...seams,
225
+ });
226
+ }
227
+ export function restCloseIssue(repo, n, reason = "completed", seams = {}) {
228
+ const [owner, name] = splitRepo(repo);
229
+ const endpoint = `repos/${owner}/${name}/issues/${n}`;
230
+ return execMutation([endpoint, "--method", "PATCH"], {
231
+ endpoint,
232
+ payload: { state: "closed", state_reason: reason },
233
+ hint: "verify repo permissions and that the issue is open (closing a closed issue is idempotent server-side)",
234
+ ...seams,
235
+ });
236
+ }
237
+ export function restOpenPr(repo, head, base, title, body, options = {}) {
238
+ const [owner, name] = splitRepo(repo);
239
+ const endpoint = `repos/${owner}/${name}/pulls`;
240
+ return execMutation([endpoint, "--method", "POST"], {
241
+ endpoint,
242
+ payload: { title, head, base, body, draft: options.draft ?? false },
243
+ hint: "verify branch exists on origin, head/base differ, repo permissions, and core REST bucket quota",
244
+ runGhApiFn: options.runGhApiFn,
245
+ whichFn: options.whichFn,
246
+ });
247
+ }
248
+ export function restMergePr(repo, n, options = {}) {
249
+ const [owner, name] = splitRepo(repo);
250
+ const payload = { merge_method: options.method ?? "squash" };
251
+ if (options.commitTitle !== undefined && options.commitTitle !== null) {
252
+ payload.commit_title = options.commitTitle;
253
+ }
254
+ if (options.commitMessage !== undefined && options.commitMessage !== null) {
255
+ payload.commit_message = options.commitMessage;
256
+ }
257
+ const endpoint = `repos/${owner}/${name}/pulls/${n}/merge`;
258
+ return execMutation([endpoint, "--method", "PUT"], {
259
+ endpoint,
260
+ payload,
261
+ hint: "verify PR is non-draft, mergeable, branch-protection checks pass, and required reviews are satisfied",
262
+ runGhApiFn: options.runGhApiFn,
263
+ whichFn: options.whichFn,
264
+ });
265
+ }
266
+ export function restPrView(repo, n, seams = {}) {
267
+ const [owner, name] = splitRepo(repo);
268
+ const endpoint = `repos/${owner}/${name}/pulls/${n}`;
269
+ return execApi([endpoint], {
270
+ endpoint,
271
+ payload: null,
272
+ hint: "verify repo and PR number; check gh auth status",
273
+ runGhApiFn: seams.runGhApiFn,
274
+ whichFn: seams.whichFn,
275
+ });
276
+ }
277
+ export function restIssueListPaginated(repo, options = {}, seams = {}) {
278
+ const cappedPerPage = Math.min(Math.max(1, options.perPage ?? REST_MAX_PER_PAGE), REST_MAX_PER_PAGE);
279
+ const [owner, name] = splitRepo(repo);
280
+ const endpoint = `repos/${owner}/${name}/issues`;
281
+ const out = [];
282
+ const excludePulls = options.excludePulls ?? true;
283
+ for (let page = 1; page <= REST_PAGINATION_MAX_PAGES; page += 1) {
284
+ const args = [endpoint, "--method", "GET"];
285
+ args.push("--raw-field", `state=${options.state ?? "open"}`);
286
+ args.push("--raw-field", `per_page=${cappedPerPage}`);
287
+ args.push("--raw-field", `page=${page}`);
288
+ if ((options.labels ?? []).length > 0) {
289
+ args.push("--raw-field", `labels=${(options.labels ?? []).join(",")}`);
290
+ }
291
+ if (options.author !== undefined && options.author !== null && options.author.length > 0) {
292
+ args.push("--raw-field", `creator=${options.author}`);
293
+ }
294
+ const pagePayload = execApi(args, {
295
+ endpoint,
296
+ payload: null,
297
+ hint: "verify repo, state value (open|closed|all), labels exist, and core REST bucket has remaining quota",
298
+ expectList: true,
299
+ runGhApiFn: seams.runGhApiFn,
300
+ whichFn: seams.whichFn,
301
+ });
302
+ if (pagePayload.length === 0) {
303
+ return out;
304
+ }
305
+ for (const item of pagePayload) {
306
+ if (excludePulls && "pull_request" in item) {
307
+ continue;
308
+ }
309
+ out.push(item);
310
+ if (options.limit !== undefined && options.limit !== null && out.length >= options.limit) {
311
+ return out.slice(0, options.limit);
312
+ }
313
+ }
314
+ if (pagePayload.length < cappedPerPage) {
315
+ return out;
316
+ }
317
+ }
318
+ throw new GhRestError({
319
+ stderr: `pagination exceeded REST_PAGINATION_MAX_PAGES=${REST_PAGINATION_MAX_PAGES}`,
320
+ exitCode: 0,
321
+ endpoint,
322
+ payload: null,
323
+ hint: "pass an explicit `limit` to bound the run, or open a follow-up to add explicit `page` cursor support",
324
+ });
325
+ }
326
+ //# sourceMappingURL=gh-rest.js.map
@@ -0,0 +1,11 @@
1
+ export * from "./argv.js";
2
+ export * from "./binary.js";
3
+ export * from "./build-command.js";
4
+ export * from "./call.js";
5
+ export * from "./constants.js";
6
+ export * from "./errors.js";
7
+ export * from "./gh-rest.js";
8
+ export * from "./main.js";
9
+ export * from "./py-format.js";
10
+ export * from "./rest-dispatch.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,11 @@
1
+ export * from "./argv.js";
2
+ export * from "./binary.js";
3
+ export * from "./build-command.js";
4
+ export * from "./call.js";
5
+ export * from "./constants.js";
6
+ export * from "./errors.js";
7
+ export * from "./gh-rest.js";
8
+ export * from "./main.js";
9
+ export * from "./py-format.js";
10
+ export * from "./rest-dispatch.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,12 @@
1
+ import type { GhRestSeams } from "./gh-rest.js";
2
+ export interface MainOptions {
3
+ readonly whichFn?: Parameters<typeof import("./binary.js").resolveBinary>[0];
4
+ /** Subprocess seam threaded through the `--rest` path for test isolation. */
5
+ readonly runGhApiFn?: GhRestSeams["runGhApiFn"];
6
+ }
7
+ /**
8
+ * CLI entry point. Returns the underlying binary's exit code (or 2 on arg error).
9
+ * Mirrors `scripts/scm.py::main`.
10
+ */
11
+ export declare function main(argv: readonly string[], options?: MainOptions): number;
12
+ //# sourceMappingURL=main.d.ts.map