@cleocode/core 2026.10.27 → 2026.11.1-canary.3

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 (520) hide show
  1. package/README.md +2 -0
  2. package/binaries/README.md +30 -10
  3. package/dist/.source-stamp.json +4 -0
  4. package/dist/audit/reconstruct.d.ts.map +1 -1
  5. package/dist/audit/reconstruct.js +3 -13
  6. package/dist/audit/reconstruct.js.map +1 -1
  7. package/dist/build-provenance.json +2 -2
  8. package/dist/cloud/nexus-cloud.d.ts.map +1 -1
  9. package/dist/cloud/nexus-cloud.js +3 -3
  10. package/dist/cloud/nexus-cloud.js.map +1 -1
  11. package/dist/cloud/nexus-device.d.ts +1 -1
  12. package/dist/cloud/nexus-link.d.ts +18 -2
  13. package/dist/cloud/nexus-link.d.ts.map +1 -1
  14. package/dist/cloud/nexus-link.js +26 -6
  15. package/dist/cloud/nexus-link.js.map +1 -1
  16. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  17. package/dist/cloud/nexus-vault.js +3 -9
  18. package/dist/cloud/nexus-vault.js.map +1 -1
  19. package/dist/decide/sites/registry.d.ts +40 -0
  20. package/dist/decide/sites/registry.d.ts.map +1 -1
  21. package/dist/decide/sites/registry.js +38 -0
  22. package/dist/decide/sites/registry.js.map +1 -1
  23. package/dist/docs/adr-allocator.d.ts +3 -3
  24. package/dist/docs/adr-allocator.d.ts.map +1 -1
  25. package/dist/docs/adr-allocator.js +8 -5
  26. package/dist/docs/adr-allocator.js.map +1 -1
  27. package/dist/docs/blob-consolidation.d.ts.map +1 -1
  28. package/dist/docs/blob-consolidation.js +3 -2
  29. package/dist/docs/blob-consolidation.js.map +1 -1
  30. package/dist/docs/derive-links.d.ts +12 -0
  31. package/dist/docs/derive-links.d.ts.map +1 -1
  32. package/dist/docs/derive-links.js +19 -0
  33. package/dist/docs/derive-links.js.map +1 -1
  34. package/dist/docs/doc-name-rule.d.ts +105 -0
  35. package/dist/docs/doc-name-rule.d.ts.map +1 -0
  36. package/dist/docs/doc-name-rule.js +212 -0
  37. package/dist/docs/doc-name-rule.js.map +1 -0
  38. package/dist/docs/docs-inconsistency-detector.d.ts.map +1 -1
  39. package/dist/docs/docs-inconsistency-detector.js +4 -3
  40. package/dist/docs/docs-inconsistency-detector.js.map +1 -1
  41. package/dist/docs/docs-ops.d.ts +27 -5
  42. package/dist/docs/docs-ops.d.ts.map +1 -1
  43. package/dist/docs/docs-ops.js +149 -17
  44. package/dist/docs/docs-ops.js.map +1 -1
  45. package/dist/docs/docs-read-model.d.ts +45 -15
  46. package/dist/docs/docs-read-model.d.ts.map +1 -1
  47. package/dist/docs/docs-read-model.js +22 -102
  48. package/dist/docs/docs-read-model.js.map +1 -1
  49. package/dist/docs/docs-update.d.ts.map +1 -1
  50. package/dist/docs/docs-update.js +8 -2
  51. package/dist/docs/docs-update.js.map +1 -1
  52. package/dist/docs/doctor.d.ts +71 -4
  53. package/dist/docs/doctor.d.ts.map +1 -1
  54. package/dist/docs/doctor.js +324 -23
  55. package/dist/docs/doctor.js.map +1 -1
  56. package/dist/docs/duplicate-check.d.ts +138 -0
  57. package/dist/docs/duplicate-check.d.ts.map +1 -0
  58. package/dist/docs/duplicate-check.js +286 -0
  59. package/dist/docs/duplicate-check.js.map +1 -0
  60. package/dist/docs/fetch-result.d.ts.map +1 -1
  61. package/dist/docs/fetch-result.js +27 -0
  62. package/dist/docs/fetch-result.js.map +1 -1
  63. package/dist/docs/import/scanner.d.ts +2 -0
  64. package/dist/docs/import/scanner.d.ts.map +1 -1
  65. package/dist/docs/import/scanner.js +3 -1
  66. package/dist/docs/import/scanner.js.map +1 -1
  67. package/dist/docs/lineage.d.ts +66 -0
  68. package/dist/docs/lineage.d.ts.map +1 -0
  69. package/dist/docs/lineage.js +190 -0
  70. package/dist/docs/lineage.js.map +1 -0
  71. package/dist/docs/modernize/apply.d.ts +139 -0
  72. package/dist/docs/modernize/apply.d.ts.map +1 -0
  73. package/dist/docs/modernize/apply.js +760 -0
  74. package/dist/docs/modernize/apply.js.map +1 -0
  75. package/dist/docs/modernize/guard.d.ts +92 -0
  76. package/dist/docs/modernize/guard.d.ts.map +1 -0
  77. package/dist/docs/modernize/guard.js +214 -0
  78. package/dist/docs/modernize/guard.js.map +1 -0
  79. package/dist/docs/modernize/index.d.ts +68 -0
  80. package/dist/docs/modernize/index.d.ts.map +1 -0
  81. package/dist/docs/modernize/index.js +97 -0
  82. package/dist/docs/modernize/index.js.map +1 -0
  83. package/dist/docs/modernize/judge.d.ts +85 -0
  84. package/dist/docs/modernize/judge.d.ts.map +1 -0
  85. package/dist/docs/modernize/judge.js +186 -0
  86. package/dist/docs/modernize/judge.js.map +1 -0
  87. package/dist/docs/modernize/plan.d.ts +77 -0
  88. package/dist/docs/modernize/plan.d.ts.map +1 -0
  89. package/dist/docs/modernize/plan.js +510 -0
  90. package/dist/docs/modernize/plan.js.map +1 -0
  91. package/dist/docs/modernize/restore.d.ts +41 -0
  92. package/dist/docs/modernize/restore.d.ts.map +1 -0
  93. package/dist/docs/modernize/restore.js +103 -0
  94. package/dist/docs/modernize/restore.js.map +1 -0
  95. package/dist/docs/modernize/rules.d.ts +197 -0
  96. package/dist/docs/modernize/rules.d.ts.map +1 -0
  97. package/dist/docs/modernize/rules.js +510 -0
  98. package/dist/docs/modernize/rules.js.map +1 -0
  99. package/dist/docs/modernize/store.d.ts +64 -0
  100. package/dist/docs/modernize/store.d.ts.map +1 -0
  101. package/dist/docs/modernize/store.js +390 -0
  102. package/dist/docs/modernize/store.js.map +1 -0
  103. package/dist/docs/publications-store.d.ts +16 -2
  104. package/dist/docs/publications-store.d.ts.map +1 -1
  105. package/dist/docs/publications-store.js +23 -2
  106. package/dist/docs/publications-store.js.map +1 -1
  107. package/dist/docs/publish-pr.d.ts.map +1 -1
  108. package/dist/docs/publish-pr.js +12 -1
  109. package/dist/docs/publish-pr.js.map +1 -1
  110. package/dist/docs/rot.d.ts +94 -0
  111. package/dist/docs/rot.d.ts.map +1 -0
  112. package/dist/docs/rot.js +298 -0
  113. package/dist/docs/rot.js.map +1 -0
  114. package/dist/docs/similarity-check.d.ts +2 -0
  115. package/dist/docs/similarity-check.d.ts.map +1 -1
  116. package/dist/docs/similarity-check.js +6 -49
  117. package/dist/docs/similarity-check.js.map +1 -1
  118. package/dist/docs/slug-rename.d.ts +84 -0
  119. package/dist/docs/slug-rename.d.ts.map +1 -0
  120. package/dist/docs/slug-rename.js +166 -0
  121. package/dist/docs/slug-rename.js.map +1 -0
  122. package/dist/docs/slug-similarity.d.ts +24 -0
  123. package/dist/docs/slug-similarity.d.ts.map +1 -0
  124. package/dist/docs/slug-similarity.js +63 -0
  125. package/dist/docs/slug-similarity.js.map +1 -0
  126. package/dist/docs/wikilinks.d.ts +20 -4
  127. package/dist/docs/wikilinks.d.ts.map +1 -1
  128. package/dist/docs/wikilinks.js +52 -7
  129. package/dist/docs/wikilinks.js.map +1 -1
  130. package/dist/docs/writer-registry.d.ts.map +1 -1
  131. package/dist/docs/writer-registry.js +33 -0
  132. package/dist/docs/writer-registry.js.map +1 -1
  133. package/dist/doctor/type-matrix-repair.d.ts +194 -0
  134. package/dist/doctor/type-matrix-repair.d.ts.map +1 -0
  135. package/dist/doctor/type-matrix-repair.js +662 -0
  136. package/dist/doctor/type-matrix-repair.js.map +1 -0
  137. package/dist/gateway-client/generated/index.d.ts +2 -2
  138. package/dist/gateway-client/generated/index.d.ts.map +1 -1
  139. package/dist/gateway-client/generated/index.js +1 -1
  140. package/dist/gateway-client/generated/index.js.map +1 -1
  141. package/dist/gateway-client/generated/namespaces.gen.d.ts +5 -0
  142. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
  143. package/dist/gateway-client/generated/namespaces.gen.js +6 -1
  144. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
  145. package/dist/gateway-client/generated/sdk.gen.d.ts +21 -1
  146. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
  147. package/dist/gateway-client/generated/sdk.gen.js +55 -0
  148. package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
  149. package/dist/gateway-client/generated/types.gen.d.ts +222 -0
  150. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  151. package/dist/gc/gc-subsystem.d.ts +4 -0
  152. package/dist/gc/gc-subsystem.d.ts.map +1 -1
  153. package/dist/gc/gc-subsystem.js +16 -0
  154. package/dist/gc/gc-subsystem.js.map +1 -1
  155. package/dist/git/work-tree.d.ts +48 -0
  156. package/dist/git/work-tree.d.ts.map +1 -1
  157. package/dist/git/work-tree.js +63 -1
  158. package/dist/git/work-tree.js.map +1 -1
  159. package/dist/hooks/handlers/session-hooks.d.ts +5 -4
  160. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  161. package/dist/hooks/handlers/session-hooks.js +5 -21
  162. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  163. package/dist/internal.d.ts +5 -1
  164. package/dist/internal.d.ts.map +1 -1
  165. package/dist/internal.js +5 -1
  166. package/dist/internal.js.map +1 -1
  167. package/dist/memory/brain-doctor.d.ts.map +1 -1
  168. package/dist/memory/brain-doctor.js +6 -1
  169. package/dist/memory/brain-doctor.js.map +1 -1
  170. package/dist/memory/engine-compat.d.ts.map +1 -1
  171. package/dist/memory/engine-compat.js +6 -0
  172. package/dist/memory/engine-compat.js.map +1 -1
  173. package/dist/nexus/analyze-orchestrator.d.ts +24 -0
  174. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  175. package/dist/nexus/analyze-orchestrator.js +43 -5
  176. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  177. package/dist/nexus/user-profile.d.ts +2 -1
  178. package/dist/nexus/user-profile.d.ts.map +1 -1
  179. package/dist/nexus/user-profile.js +13 -5
  180. package/dist/nexus/user-profile.js.map +1 -1
  181. package/dist/orchestrate/admission.d.ts +8 -0
  182. package/dist/orchestrate/admission.d.ts.map +1 -1
  183. package/dist/orchestrate/admission.js +3 -1
  184. package/dist/orchestrate/admission.js.map +1 -1
  185. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  186. package/dist/orchestrate/query-ops.js +15 -4
  187. package/dist/orchestrate/query-ops.js.map +1 -1
  188. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  189. package/dist/orchestrate/spawn-ops.js +43 -2
  190. package/dist/orchestrate/spawn-ops.js.map +1 -1
  191. package/dist/orchestration/index.d.ts +6 -0
  192. package/dist/orchestration/index.d.ts.map +1 -1
  193. package/dist/orchestration/index.js +3 -0
  194. package/dist/orchestration/index.js.map +1 -1
  195. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  196. package/dist/orchestration/spawn-prompt.js +3 -1
  197. package/dist/orchestration/spawn-prompt.js.map +1 -1
  198. package/dist/paths.d.ts +43 -1
  199. package/dist/paths.d.ts.map +1 -1
  200. package/dist/paths.js +51 -1
  201. package/dist/paths.js.map +1 -1
  202. package/dist/project-lifecycle.d.ts.map +1 -1
  203. package/dist/project-lifecycle.js +31 -0
  204. package/dist/project-lifecycle.js.map +1 -1
  205. package/dist/release/authorization.d.ts +156 -0
  206. package/dist/release/authorization.d.ts.map +1 -0
  207. package/dist/release/authorization.js +460 -0
  208. package/dist/release/authorization.js.map +1 -0
  209. package/dist/release/ci-evidence.d.ts +55 -4
  210. package/dist/release/ci-evidence.d.ts.map +1 -1
  211. package/dist/release/ci-evidence.js +251 -22
  212. package/dist/release/ci-evidence.js.map +1 -1
  213. package/dist/release/ci-run-evidence.d.ts +107 -0
  214. package/dist/release/ci-run-evidence.d.ts.map +1 -0
  215. package/dist/release/ci-run-evidence.js +234 -0
  216. package/dist/release/ci-run-evidence.js.map +1 -0
  217. package/dist/release/cut.d.ts +231 -0
  218. package/dist/release/cut.d.ts.map +1 -0
  219. package/dist/release/cut.js +775 -0
  220. package/dist/release/cut.js.map +1 -0
  221. package/dist/release/deploy-evidence.d.ts +173 -0
  222. package/dist/release/deploy-evidence.d.ts.map +1 -0
  223. package/dist/release/deploy-evidence.js +381 -0
  224. package/dist/release/deploy-evidence.js.map +1 -0
  225. package/dist/release/engine-ops.d.ts.map +1 -1
  226. package/dist/release/engine-ops.js +10 -4
  227. package/dist/release/engine-ops.js.map +1 -1
  228. package/dist/release/index.d.ts +3 -0
  229. package/dist/release/index.d.ts.map +1 -1
  230. package/dist/release/index.js +2 -0
  231. package/dist/release/index.js.map +1 -1
  232. package/dist/release/invariants/archive-reason-invariant.d.ts.map +1 -1
  233. package/dist/release/invariants/archive-reason-invariant.js +4 -1
  234. package/dist/release/invariants/archive-reason-invariant.js.map +1 -1
  235. package/dist/release/open.d.ts.map +1 -1
  236. package/dist/release/open.js +2 -6
  237. package/dist/release/open.js.map +1 -1
  238. package/dist/release/plan.d.ts +34 -2
  239. package/dist/release/plan.d.ts.map +1 -1
  240. package/dist/release/plan.js +30 -6
  241. package/dist/release/plan.js.map +1 -1
  242. package/dist/release/preflight-skip.d.ts +4 -19
  243. package/dist/release/preflight-skip.d.ts.map +1 -1
  244. package/dist/release/preflight-skip.js +5 -110
  245. package/dist/release/preflight-skip.js.map +1 -1
  246. package/dist/release/reconcile-latest.d.ts +29 -0
  247. package/dist/release/reconcile-latest.d.ts.map +1 -0
  248. package/dist/release/reconcile-latest.js +71 -0
  249. package/dist/release/reconcile-latest.js.map +1 -0
  250. package/dist/release/reconcile.d.ts +3 -1
  251. package/dist/release/reconcile.d.ts.map +1 -1
  252. package/dist/release/reconcile.js +18 -6
  253. package/dist/release/reconcile.js.map +1 -1
  254. package/dist/release/release-published.d.ts +27 -0
  255. package/dist/release/release-published.d.ts.map +1 -0
  256. package/dist/release/release-published.js +35 -0
  257. package/dist/release/release-published.js.map +1 -0
  258. package/dist/release/tty-confirm.d.ts +23 -0
  259. package/dist/release/tty-confirm.d.ts.map +1 -0
  260. package/dist/release/tty-confirm.js +50 -0
  261. package/dist/release/tty-confirm.js.map +1 -0
  262. package/dist/remote/index.js +1 -1
  263. package/dist/remote/index.js.map +1 -1
  264. package/dist/resources/admission-ledger.d.ts +103 -1
  265. package/dist/resources/admission-ledger.d.ts.map +1 -1
  266. package/dist/resources/admission-ledger.js +200 -17
  267. package/dist/resources/admission-ledger.js.map +1 -1
  268. package/dist/resources/agent-lease.d.ts +82 -0
  269. package/dist/resources/agent-lease.d.ts.map +1 -0
  270. package/dist/resources/agent-lease.js +167 -0
  271. package/dist/resources/agent-lease.js.map +1 -0
  272. package/dist/resources/governor.d.ts +27 -1
  273. package/dist/resources/governor.d.ts.map +1 -1
  274. package/dist/resources/governor.js +88 -4
  275. package/dist/resources/governor.js.map +1 -1
  276. package/dist/resources/hook-footprint.d.ts +13 -1
  277. package/dist/resources/hook-footprint.d.ts.map +1 -1
  278. package/dist/resources/hook-footprint.js +33 -7
  279. package/dist/resources/hook-footprint.js.map +1 -1
  280. package/dist/resources/run-governed.d.ts +25 -0
  281. package/dist/resources/run-governed.d.ts.map +1 -1
  282. package/dist/resources/run-governed.js +44 -3
  283. package/dist/resources/run-governed.js.map +1 -1
  284. package/dist/sagas/reconcile.d.ts.map +1 -1
  285. package/dist/sagas/reconcile.js +11 -0
  286. package/dist/sagas/reconcile.js.map +1 -1
  287. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  288. package/dist/scaffold/ensure-dirs.js +8 -6
  289. package/dist/scaffold/ensure-dirs.js.map +1 -1
  290. package/dist/security/override-cap-setting.d.ts +132 -0
  291. package/dist/security/override-cap-setting.d.ts.map +1 -1
  292. package/dist/security/override-cap-setting.js +88 -10
  293. package/dist/security/override-cap-setting.js.map +1 -1
  294. package/dist/security/owner-override-authority.d.ts.map +1 -1
  295. package/dist/security/owner-override-authority.js +5 -1
  296. package/dist/security/owner-override-authority.js.map +1 -1
  297. package/dist/selfimprove/draft-pr.d.ts.map +1 -1
  298. package/dist/selfimprove/draft-pr.js +4 -1
  299. package/dist/selfimprove/draft-pr.js.map +1 -1
  300. package/dist/session/engine-ops.d.ts.map +1 -1
  301. package/dist/session/engine-ops.js +4 -16
  302. package/dist/session/engine-ops.js.map +1 -1
  303. package/dist/sessions/briefing.d.ts +6 -0
  304. package/dist/sessions/briefing.d.ts.map +1 -1
  305. package/dist/sessions/briefing.js +34 -0
  306. package/dist/sessions/briefing.js.map +1 -1
  307. package/dist/sessions/session-end-snapshot-entry.js +2 -2
  308. package/dist/sessions/session-end-snapshot-entry.js.map +1 -1
  309. package/dist/sessions/session-end-snapshot.js +4 -4
  310. package/dist/sessions/session-end-snapshot.js.map +1 -1
  311. package/dist/skills/injection/token.d.ts.map +1 -1
  312. package/dist/skills/injection/token.js +3 -6
  313. package/dist/skills/injection/token.js.map +1 -1
  314. package/dist/skills/orchestrator/spawn.d.ts.map +1 -1
  315. package/dist/skills/orchestrator/spawn.js +3 -4
  316. package/dist/skills/orchestrator/spawn.js.map +1 -1
  317. package/dist/skills/propose-patch.d.ts.map +1 -1
  318. package/dist/skills/propose-patch.js +4 -1
  319. package/dist/skills/propose-patch.js.map +1 -1
  320. package/dist/spawn/branch-integration.d.ts.map +1 -1
  321. package/dist/spawn/branch-integration.js +5 -2
  322. package/dist/spawn/branch-integration.js.map +1 -1
  323. package/dist/store/attachment-repair.d.ts.map +1 -1
  324. package/dist/store/attachment-repair.js +5 -4
  325. package/dist/store/attachment-repair.js.map +1 -1
  326. package/dist/store/attachment-store.d.ts +6 -0
  327. package/dist/store/attachment-store.d.ts.map +1 -1
  328. package/dist/store/attachment-store.js +19 -2
  329. package/dist/store/attachment-store.js.map +1 -1
  330. package/dist/store/blob-ops.d.ts +1 -1
  331. package/dist/store/blob-ops.d.ts.map +1 -1
  332. package/dist/store/blob-ops.js +7 -3
  333. package/dist/store/blob-ops.js.map +1 -1
  334. package/dist/store/conduit-doc-history.d.ts +15 -1
  335. package/dist/store/conduit-doc-history.d.ts.map +1 -1
  336. package/dist/store/conduit-doc-history.js +16 -10
  337. package/dist/store/conduit-doc-history.js.map +1 -1
  338. package/dist/store/db-helpers.d.ts +29 -0
  339. package/dist/store/db-helpers.d.ts.map +1 -1
  340. package/dist/store/db-helpers.js +89 -1
  341. package/dist/store/db-helpers.js.map +1 -1
  342. package/dist/store/decision-adr-links.d.ts.map +1 -1
  343. package/dist/store/decision-adr-links.js +5 -2
  344. package/dist/store/decision-adr-links.js.map +1 -1
  345. package/dist/store/git-checkpoint.d.ts +11 -1
  346. package/dist/store/git-checkpoint.d.ts.map +1 -1
  347. package/dist/store/git-checkpoint.js +14 -3
  348. package/dist/store/git-checkpoint.js.map +1 -1
  349. package/dist/store/llmtxt-blob-adapter.d.ts.map +1 -1
  350. package/dist/store/llmtxt-blob-adapter.js +4 -1
  351. package/dist/store/llmtxt-blob-adapter.js.map +1 -1
  352. package/dist/store/schema/attachments.d.ts +7 -5
  353. package/dist/store/schema/attachments.d.ts.map +1 -1
  354. package/dist/store/schema/attachments.js +5 -2
  355. package/dist/store/schema/attachments.js.map +1 -1
  356. package/dist/store/session-store.d.ts.map +1 -1
  357. package/dist/store/session-store.js +6 -0
  358. package/dist/store/session-store.js.map +1 -1
  359. package/dist/store/sqlite-backup.d.ts +6 -1
  360. package/dist/store/sqlite-backup.d.ts.map +1 -1
  361. package/dist/store/sqlite-backup.js +9 -5
  362. package/dist/store/sqlite-backup.js.map +1 -1
  363. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  364. package/dist/store/sqlite-data-accessor.js +63 -36
  365. package/dist/store/sqlite-data-accessor.js.map +1 -1
  366. package/dist/system/backup.d.ts +29 -0
  367. package/dist/system/backup.d.ts.map +1 -1
  368. package/dist/system/backup.js +240 -37
  369. package/dist/system/backup.js.map +1 -1
  370. package/dist/system/dependencies.d.ts +22 -0
  371. package/dist/system/dependencies.d.ts.map +1 -1
  372. package/dist/system/dependencies.js +49 -2
  373. package/dist/system/dependencies.js.map +1 -1
  374. package/dist/system/health.d.ts.map +1 -1
  375. package/dist/system/health.js +23 -1
  376. package/dist/system/health.js.map +1 -1
  377. package/dist/task-work/claims.d.ts.map +1 -1
  378. package/dist/task-work/claims.js +14 -0
  379. package/dist/task-work/claims.js.map +1 -1
  380. package/dist/task-work/index.d.ts.map +1 -1
  381. package/dist/task-work/index.js +22 -0
  382. package/dist/task-work/index.js.map +1 -1
  383. package/dist/tasks/ac-coverage-gate.d.ts +27 -0
  384. package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
  385. package/dist/tasks/ac-coverage-gate.js +63 -28
  386. package/dist/tasks/ac-coverage-gate.js.map +1 -1
  387. package/dist/tasks/affected-packages.d.ts +26 -30
  388. package/dist/tasks/affected-packages.d.ts.map +1 -1
  389. package/dist/tasks/affected-packages.js +27 -50
  390. package/dist/tasks/affected-packages.js.map +1 -1
  391. package/dist/tasks/affected-scope.d.ts +13 -3
  392. package/dist/tasks/affected-scope.d.ts.map +1 -1
  393. package/dist/tasks/affected-scope.js +29 -11
  394. package/dist/tasks/affected-scope.js.map +1 -1
  395. package/dist/tasks/change-set.d.ts.map +1 -1
  396. package/dist/tasks/change-set.js +39 -20
  397. package/dist/tasks/change-set.js.map +1 -1
  398. package/dist/tasks/command-gate-cmd.d.ts +33 -0
  399. package/dist/tasks/command-gate-cmd.d.ts.map +1 -0
  400. package/dist/tasks/command-gate-cmd.js +45 -0
  401. package/dist/tasks/command-gate-cmd.js.map +1 -0
  402. package/dist/tasks/complete-ci.d.ts +9 -0
  403. package/dist/tasks/complete-ci.d.ts.map +1 -1
  404. package/dist/tasks/complete-ci.js +21 -4
  405. package/dist/tasks/complete-ci.js.map +1 -1
  406. package/dist/tasks/complete.d.ts.map +1 -1
  407. package/dist/tasks/complete.js +14 -0
  408. package/dist/tasks/complete.js.map +1 -1
  409. package/dist/tasks/component-pr.d.ts +37 -0
  410. package/dist/tasks/component-pr.d.ts.map +1 -1
  411. package/dist/tasks/component-pr.js +106 -14
  412. package/dist/tasks/component-pr.js.map +1 -1
  413. package/dist/tasks/done-plan.d.ts +14 -1
  414. package/dist/tasks/done-plan.d.ts.map +1 -1
  415. package/dist/tasks/done-plan.js +125 -15
  416. package/dist/tasks/done-plan.js.map +1 -1
  417. package/dist/tasks/done-record.d.ts.map +1 -1
  418. package/dist/tasks/done-record.js +4 -0
  419. package/dist/tasks/done-record.js.map +1 -1
  420. package/dist/tasks/engine-converters.d.ts.map +1 -1
  421. package/dist/tasks/engine-converters.js +2 -0
  422. package/dist/tasks/engine-converters.js.map +1 -1
  423. package/dist/tasks/evidence-tree.d.ts +28 -1
  424. package/dist/tasks/evidence-tree.d.ts.map +1 -1
  425. package/dist/tasks/evidence-tree.js +66 -2
  426. package/dist/tasks/evidence-tree.js.map +1 -1
  427. package/dist/tasks/evidence.d.ts +39 -27
  428. package/dist/tasks/evidence.d.ts.map +1 -1
  429. package/dist/tasks/evidence.js +382 -188
  430. package/dist/tasks/evidence.js.map +1 -1
  431. package/dist/tasks/gate-notes.d.ts +17 -0
  432. package/dist/tasks/gate-notes.d.ts.map +1 -1
  433. package/dist/tasks/gate-notes.js.map +1 -1
  434. package/dist/tasks/gate-preview.d.ts +7 -1
  435. package/dist/tasks/gate-preview.d.ts.map +1 -1
  436. package/dist/tasks/gate-preview.js +30 -4
  437. package/dist/tasks/gate-preview.js.map +1 -1
  438. package/dist/tasks/gate-runner.d.ts +42 -0
  439. package/dist/tasks/gate-runner.d.ts.map +1 -1
  440. package/dist/tasks/gate-runner.js +234 -94
  441. package/dist/tasks/gate-runner.js.map +1 -1
  442. package/dist/tasks/manifest-scope.d.ts +115 -0
  443. package/dist/tasks/manifest-scope.d.ts.map +1 -0
  444. package/dist/tasks/manifest-scope.js +352 -0
  445. package/dist/tasks/manifest-scope.js.map +1 -0
  446. package/dist/tasks/merge-close.d.ts +376 -0
  447. package/dist/tasks/merge-close.d.ts.map +1 -0
  448. package/dist/tasks/merge-close.js +1497 -0
  449. package/dist/tasks/merge-close.js.map +1 -0
  450. package/dist/tasks/qa-run-binding.d.ts +5 -0
  451. package/dist/tasks/qa-run-binding.d.ts.map +1 -1
  452. package/dist/tasks/qa-run-binding.js +6 -1
  453. package/dist/tasks/qa-run-binding.js.map +1 -1
  454. package/dist/tasks/req.d.ts.map +1 -1
  455. package/dist/tasks/req.js +29 -1
  456. package/dist/tasks/req.js.map +1 -1
  457. package/dist/tasks/review-verdict.d.ts +159 -0
  458. package/dist/tasks/review-verdict.d.ts.map +1 -0
  459. package/dist/tasks/review-verdict.js +442 -0
  460. package/dist/tasks/review-verdict.js.map +1 -0
  461. package/dist/tasks/task-reparent.d.ts.map +1 -1
  462. package/dist/tasks/task-reparent.js +22 -3
  463. package/dist/tasks/task-reparent.js.map +1 -1
  464. package/dist/tasks/test-report-counts.d.ts +274 -0
  465. package/dist/tasks/test-report-counts.d.ts.map +1 -0
  466. package/dist/tasks/test-report-counts.js +746 -0
  467. package/dist/tasks/test-report-counts.js.map +1 -0
  468. package/dist/tasks/test-run-binding.d.ts +20 -45
  469. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  470. package/dist/tasks/test-run-binding.js +34 -119
  471. package/dist/tasks/test-run-binding.js.map +1 -1
  472. package/dist/tasks/update.d.ts.map +1 -1
  473. package/dist/tasks/update.js +42 -0
  474. package/dist/tasks/update.js.map +1 -1
  475. package/dist/tasks/verification-policy.d.ts +12 -0
  476. package/dist/tasks/verification-policy.d.ts.map +1 -1
  477. package/dist/tasks/verification-policy.js +13 -0
  478. package/dist/tasks/verification-policy.js.map +1 -1
  479. package/dist/tasks/workspace-resolution.d.ts +225 -0
  480. package/dist/tasks/workspace-resolution.d.ts.map +1 -0
  481. package/dist/tasks/workspace-resolution.js +497 -0
  482. package/dist/tasks/workspace-resolution.js.map +1 -0
  483. package/dist/validation/doctor/checks.d.ts +20 -0
  484. package/dist/validation/doctor/checks.d.ts.map +1 -1
  485. package/dist/validation/doctor/checks.js +112 -0
  486. package/dist/validation/doctor/checks.js.map +1 -1
  487. package/dist/validation/engine-ops.d.ts.map +1 -1
  488. package/dist/validation/engine-ops.js +37 -3
  489. package/dist/validation/engine-ops.js.map +1 -1
  490. package/dist/validation/validate-ops.d.ts +4 -0
  491. package/dist/validation/validate-ops.d.ts.map +1 -1
  492. package/dist/validation/validate-ops.js +79 -2
  493. package/dist/validation/validate-ops.js.map +1 -1
  494. package/dist/worktree/list.d.ts +4 -21
  495. package/dist/worktree/list.d.ts.map +1 -1
  496. package/dist/worktree/list.js +14 -44
  497. package/dist/worktree/list.js.map +1 -1
  498. package/dist/worktree/merged-cleanup.d.ts +63 -0
  499. package/dist/worktree/merged-cleanup.d.ts.map +1 -0
  500. package/dist/worktree/merged-cleanup.js +571 -0
  501. package/dist/worktree/merged-cleanup.js.map +1 -0
  502. package/dist/worktree/prune.d.ts +64 -2
  503. package/dist/worktree/prune.d.ts.map +1 -1
  504. package/dist/worktree/prune.js +151 -6
  505. package/dist/worktree/prune.js.map +1 -1
  506. package/dist/worktree/sentinel-index.d.ts +14 -0
  507. package/dist/worktree/sentinel-index.d.ts.map +1 -1
  508. package/dist/worktree/sentinel-index.js +17 -0
  509. package/dist/worktree/sentinel-index.js.map +1 -1
  510. package/dist/worktree/worktree-adopt.d.ts +1 -13
  511. package/dist/worktree/worktree-adopt.d.ts.map +1 -1
  512. package/dist/worktree/worktree-adopt.js +2 -17
  513. package/dist/worktree/worktree-adopt.js.map +1 -1
  514. package/package.json +12 -12
  515. package/schemas/project-context.schema.json +33 -0
  516. package/templates/CLEO-INJECTION.md +6 -16
  517. package/templates/CLEO-REFERENCE.md +27 -4
  518. package/templates/git-hooks/legacy-hashes.json +2 -1
  519. package/templates/git-hooks/pre-commit +43 -11
  520. package/templates/workflows/release-prepare.yml.tmpl +9 -88
@@ -0,0 +1,234 @@
1
+ /**
2
+ * `ci-run:<runId>` evidence (T14149): a green run of
3
+ * `.github/workflows/repeat-run.yml`, which runs one test file N times on the
4
+ * default branch. It replaces the owner AC waiver for criteria that need a
5
+ * heavy or repeated run the owner rule forbids locally.
6
+ *
7
+ * Validated only from GitHub, never from a file the agent supplies:
8
+ *
9
+ * - the run is this workflow, dispatched (`workflow_dispatch`) on the
10
+ * repository's default branch, and its latest attempt concluded `success`;
11
+ * - its title names the test file and run count, and the run's uploaded
12
+ * `repeat-report` artifact agrees: the same file, count and commit, every
13
+ * run green (GitHub does not return dispatch inputs on the run);
14
+ * - the test file is relevant: one the task changed, or one a criterion this
15
+ * write links names (by path or file name), so a trivial test repeated N
16
+ * times cannot stand for an unrelated criterion.
17
+ *
18
+ * That the run's commit contains the task's implemented work is checked with
19
+ * the other bound runs (`boundHeadGapReason`). `cleo complete` re-reads the
20
+ * run, and a newer attempt that is not green refuses it.
21
+ *
22
+ * @task T14149
23
+ */
24
+ import { execFileSync } from 'node:child_process';
25
+ import { mkdtempSync, readFileSync, rmSync } from 'node:fs';
26
+ import { tmpdir } from 'node:os';
27
+ import { basename, join } from 'node:path';
28
+ /** The workflow whose runs `ci-run:` accepts. */
29
+ export const REPEAT_RUN_WORKFLOW = '.github/workflows/repeat-run.yml';
30
+ /** The artifact the workflow uploads. */
31
+ export const REPEAT_RUN_ARTIFACT = 'repeat-report';
32
+ /** `repeat-run <test> x<N>`, the workflow's `run-name`. */
33
+ const TITLE = /^repeat-run (\S+) x([0-9]+)$/;
34
+ /** Whether `record` is a finished, green run of the repeat-run workflow on the default branch. */
35
+ function runRefusal(runId, record) {
36
+ const refuse = (reason, codeName = 'E_EVIDENCE_INVALID') => ({
37
+ ok: false,
38
+ reason: `ci-run:${runId} ${reason}`,
39
+ codeName,
40
+ });
41
+ if (record.path.replace(/@.*$/, '') !== REPEAT_RUN_WORKFLOW)
42
+ return refuse(`is a run of ${record.path}, not ${REPEAT_RUN_WORKFLOW}`);
43
+ if (record.event !== 'workflow_dispatch')
44
+ return refuse(`was started by ${record.event}, not a workflow_dispatch`);
45
+ if (record.headBranch !== record.defaultBranch)
46
+ return refuse(`ran on ${record.headBranch}, not the default branch ${record.defaultBranch}; dispatch it on ${record.defaultBranch}`);
47
+ if (record.status !== 'completed')
48
+ return refuse(`is still ${record.status}; wait for it to finish, then verify again`);
49
+ if (record.conclusion !== 'success')
50
+ return refuse(`attempt ${record.attempt} concluded ${record.conclusion ?? 'with no conclusion'}, not success`,
51
+ // @sync-invariant none:input-shape a red repeat-run is refused before anything is written
52
+ 'E_EVIDENCE_TESTS_FAILED');
53
+ return null;
54
+ }
55
+ /**
56
+ * Validate a `ci-run:<runId>` atom for a task (T14149).
57
+ *
58
+ * @param runId - The GitHub Actions run id.
59
+ * @param roots - The evidence roots; `gh` runs in the execution root.
60
+ * @param options - Task context and injected fetchers.
61
+ * @returns The validated atom, or why it is refused.
62
+ * @task T14149
63
+ */
64
+ export async function resolveCiRunEvidenceAtom(runId, roots, options) {
65
+ const cwd = roots.executionRoot;
66
+ const record = (options.fetchRun ?? defaultFetchRun)(runId, cwd);
67
+ if (record === null)
68
+ return {
69
+ ok: false,
70
+ reason: `ci-run:${runId} cannot be read from GitHub (gh api actions/runs/${runId} failed)`,
71
+ codeName: 'E_EVIDENCE_INVALID',
72
+ };
73
+ const refused = runRefusal(runId, record);
74
+ if (refused)
75
+ return refused;
76
+ const title = TITLE.exec(record.displayTitle);
77
+ if (!title)
78
+ return {
79
+ ok: false,
80
+ reason: `ci-run:${runId}'s title "${record.displayTitle}" does not name a test file and run count`,
81
+ codeName: 'E_EVIDENCE_INVALID',
82
+ };
83
+ const test = title[1];
84
+ const runs = Number(title[2]);
85
+ // GitHub does not return dispatch inputs on a run, so the title is
86
+ // cross-checked against what the job itself recorded.
87
+ const report = (options.fetchReport ?? defaultFetchReport)(runId, cwd);
88
+ if (report === null)
89
+ return {
90
+ ok: false,
91
+ reason: `ci-run:${runId} has no readable ${REPEAT_RUN_ARTIFACT} artifact (expired, or the job uploaded none), so its counts cannot be checked`,
92
+ codeName: 'E_EVIDENCE_INVALID',
93
+ };
94
+ const mismatch = report.test !== test
95
+ ? `its report ran ${report.test}, but its title names ${test}`
96
+ : report.runs !== runs
97
+ ? `its report asked for ${report.runs} runs, but its title names ${runs}`
98
+ : report.sha !== record.headSha
99
+ ? `its report tested ${report.sha ?? 'an unknown commit'}, not the run's commit ${record.headSha}`
100
+ : report.iterations.length !== runs
101
+ ? `its report records ${report.iterations.length} runs, not ${runs}`
102
+ : null;
103
+ if (mismatch)
104
+ return { ok: false, reason: `ci-run:${runId}: ${mismatch}`, codeName: 'E_EVIDENCE_INVALID' };
105
+ const bad = report.iterations.find((i) => i.exitCode !== 0 || i.numFailedTests > 0 || i.numPassedTests === 0);
106
+ if (bad)
107
+ return {
108
+ ok: false,
109
+ reason: `ci-run:${runId}: run ${bad.run} of ${runs} did not pass (exit ${bad.exitCode}, ${bad.numFailedTests} failed, ${bad.numPassedTests} passed)`,
110
+ // @sync-invariant none:input-shape a red repeat-run is refused before anything is written
111
+ codeName: 'E_EVIDENCE_TESTS_FAILED',
112
+ };
113
+ // Relevance: the repeated file is part of the task's change, or a linked
114
+ // criterion names it.
115
+ const changed = options.changedPaths.map((p) => p.replace(/^\.\//, ''));
116
+ const named = options.criteriaTexts.some((text) => text.includes(test) || text.includes(basename(test)));
117
+ if (!changed.includes(test) && !named)
118
+ return {
119
+ ok: false,
120
+ reason: `ci-run:${runId} repeated ${test}, which ${options.taskId} did not change and no criterion ` +
121
+ `this write links (satisfies:${options.taskId}#AC<n>) names. Repeat the test that proves the ` +
122
+ 'criterion, or name its file in the criterion.',
123
+ codeName: 'E_EVIDENCE_INSUFFICIENT',
124
+ };
125
+ return {
126
+ ok: true,
127
+ atom: {
128
+ kind: 'ci-run',
129
+ runId,
130
+ headSha: record.headSha,
131
+ test,
132
+ runs,
133
+ attempt: record.attempt,
134
+ workflow: REPEAT_RUN_WORKFLOW,
135
+ taskId: options.taskId,
136
+ },
137
+ };
138
+ }
139
+ /**
140
+ * Re-check a recorded `ci-run:` atom at `cleo complete` (T14149): the run's
141
+ * latest attempt must still be a green run of the workflow on the default
142
+ * branch, at the same commit. A re-run that went red refuses.
143
+ *
144
+ * @param atom - The recorded atom.
145
+ * @param cwd - Repository work tree for `gh`.
146
+ * @param fetchRun - The run's record; defaults to the GitHub REST API.
147
+ * @returns Ok, or why the atom no longer stands.
148
+ * @task T14149
149
+ */
150
+ export function recheckCiRunAtom(atom, cwd, fetchRun = defaultFetchRun) {
151
+ const record = fetchRun(atom.runId, cwd);
152
+ if (record === null)
153
+ return { ok: false, reason: `ci-run:${atom.runId} cannot be re-read from GitHub` };
154
+ const refused = runRefusal(atom.runId, record);
155
+ if (refused)
156
+ return { ok: false, reason: refused.reason };
157
+ if (record.headSha !== atom.headSha)
158
+ return {
159
+ ok: false,
160
+ reason: `ci-run:${atom.runId} now reports commit ${record.headSha}, not the recorded ${atom.headSha}`,
161
+ };
162
+ return { ok: true };
163
+ }
164
+ /** Run one `gh` command and parse its JSON output; null on any failure. */
165
+ function ghJson(args, cwd) {
166
+ try {
167
+ return JSON.parse(execFileSync('gh', args, {
168
+ cwd,
169
+ encoding: 'utf-8',
170
+ stdio: ['ignore', 'pipe', 'ignore'],
171
+ timeout: 30_000,
172
+ }));
173
+ }
174
+ catch {
175
+ return null;
176
+ }
177
+ }
178
+ /** Default {@link ResolveCiRunOptions.fetchRun}: `gh api repos/{owner}/{repo}/actions/runs/<id>`. */
179
+ function defaultFetchRun(runId, cwd) {
180
+ const run = ghJson(['api', `repos/{owner}/{repo}/actions/runs/${runId}`], cwd);
181
+ if (run === null || typeof run !== 'object')
182
+ return null;
183
+ const repository = run.repository;
184
+ const str = (v) => (typeof v === 'string' ? v : '');
185
+ return {
186
+ path: str(run.path),
187
+ event: str(run.event),
188
+ headBranch: str(run.head_branch),
189
+ headSha: str(run.head_sha),
190
+ status: str(run.status),
191
+ conclusion: typeof run.conclusion === 'string' ? run.conclusion : null,
192
+ attempt: typeof run.run_attempt === 'number' ? run.run_attempt : 1,
193
+ displayTitle: str(run.display_title),
194
+ defaultBranch: str(repository?.default_branch),
195
+ };
196
+ }
197
+ /** Default {@link ResolveCiRunOptions.fetchReport}: `gh run download <id> -n repeat-report`. */
198
+ function defaultFetchReport(runId, cwd) {
199
+ const dir = mkdtempSync(join(tmpdir(), 'cleo-ci-run-'));
200
+ try {
201
+ execFileSync('gh', ['run', 'download', String(runId), '-n', REPEAT_RUN_ARTIFACT, '-D', dir], {
202
+ cwd,
203
+ stdio: 'ignore',
204
+ timeout: 60_000,
205
+ });
206
+ const parsed = JSON.parse(readFileSync(join(dir, 'repeat-report.json'), 'utf-8'));
207
+ if (parsed === null || typeof parsed !== 'object')
208
+ return null;
209
+ const r = parsed;
210
+ if (typeof r.test !== 'string' || typeof r.runs !== 'number' || !Array.isArray(r.iterations))
211
+ return null;
212
+ return {
213
+ test: r.test,
214
+ runs: r.runs,
215
+ sha: typeof r.sha === 'string' ? r.sha : null,
216
+ iterations: r.iterations.map((raw) => {
217
+ const i = (raw ?? {});
218
+ return {
219
+ run: typeof i.run === 'number' ? i.run : 0,
220
+ exitCode: typeof i.exitCode === 'number' ? i.exitCode : null,
221
+ numPassedTests: typeof i.numPassedTests === 'number' ? i.numPassedTests : 0,
222
+ numFailedTests: typeof i.numFailedTests === 'number' ? i.numFailedTests : 0,
223
+ };
224
+ }),
225
+ };
226
+ }
227
+ catch {
228
+ return null;
229
+ }
230
+ finally {
231
+ rmSync(dir, { recursive: true, force: true });
232
+ }
233
+ }
234
+ //# sourceMappingURL=ci-run-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-run-evidence.js","sourceRoot":"","sources":["../../src/release/ci-run-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAO3C,iDAAiD;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAEtE,yCAAyC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAiDnD,2DAA2D;AAC3D,MAAM,KAAK,GAAG,8BAA8B,CAAC;AAE7C,kGAAkG;AAClG,SAAS,UAAU,CAAC,KAAa,EAAE,MAAmB;IACpD,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,WAAqC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC7F,EAAE,EAAE,KAAc;QAClB,MAAM,EAAE,UAAU,KAAK,IAAI,MAAM,EAAE;QACnC,QAAQ;KACT,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,mBAAmB;QACzD,OAAO,MAAM,CAAC,eAAe,MAAM,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB;QACtC,OAAO,MAAM,CAAC,kBAAkB,MAAM,CAAC,KAAK,2BAA2B,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,aAAa;QAC5C,OAAO,MAAM,CACX,UAAU,MAAM,CAAC,UAAU,4BAA4B,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,aAAa,EAAE,CACtH,CAAC;IACJ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;QAC/B,OAAO,MAAM,CAAC,YAAY,MAAM,CAAC,MAAM,4CAA4C,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QACjC,OAAO,MAAM,CACX,WAAW,MAAM,CAAC,OAAO,cAAc,MAAM,CAAC,UAAU,IAAI,oBAAoB,eAAe;QAC/F,0FAA0F;QAC1F,yBAAyB,CAC1B,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAa,EACb,KAAoB,EACpB,OAA4B;IAE5B,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjE,IAAI,MAAM,KAAK,IAAI;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,UAAU,KAAK,oDAAoD,KAAK,UAAU;YAC1F,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;IACJ,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QACR,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,UAAU,KAAK,aAAa,MAAM,CAAC,YAAY,2CAA2C;YAClG,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;IACJ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,mEAAmE;IACnE,sDAAsD;IACtD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvE,IAAI,MAAM,KAAK,IAAI;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,UAAU,KAAK,oBAAoB,mBAAmB,gFAAgF;YAC9I,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;IACJ,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,KAAK,IAAI;QAClB,CAAC,CAAC,kBAAkB,MAAM,CAAC,IAAI,yBAAyB,IAAI,EAAE;QAC9D,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;YACpB,CAAC,CAAC,wBAAwB,MAAM,CAAC,IAAI,8BAA8B,IAAI,EAAE;YACzE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,OAAO;gBAC7B,CAAC,CAAC,qBAAqB,MAAM,CAAC,GAAG,IAAI,mBAAmB,0BAA0B,MAAM,CAAC,OAAO,EAAE;gBAClG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI;oBACjC,CAAC,CAAC,sBAAsB,MAAM,CAAC,UAAU,CAAC,MAAM,cAAc,IAAI,EAAE;oBACpE,CAAC,CAAC,IAAI,CAAC;IACjB,IAAI,QAAQ;QACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,KAAK,KAAK,QAAQ,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IAC/F,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAC1E,CAAC;IACF,IAAI,GAAG;QACL,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,UAAU,KAAK,SAAS,GAAG,CAAC,GAAG,OAAO,IAAI,uBAAuB,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,cAAc,YAAY,GAAG,CAAC,cAAc,UAAU;YACpJ,0FAA0F;YAC1F,QAAQ,EAAE,yBAAyB;SACpC,CAAC;IACJ,yEAAyE;IACzE,sBAAsB;IACtB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC/D,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;QACnC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,UAAU,KAAK,aAAa,IAAI,WAAW,OAAO,CAAC,MAAM,mCAAmC;gBAC5F,+BAA+B,OAAO,CAAC,MAAM,iDAAiD;gBAC9F,+CAA+C;YACjD,QAAQ,EAAE,yBAAyB;SACpC,CAAC;IACJ,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;YACJ,IAAI;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,mBAAmB;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAuB,EACvB,GAAW,EACX,WAA+D,eAAe;IAE9E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,IAAI,CAAC,KAAK,gCAAgC,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1D,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;QACjC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,UAAU,IAAI,CAAC,KAAK,uBAAuB,MAAM,CAAC,OAAO,sBAAsB,IAAI,CAAC,OAAO,EAAE;SACtG,CAAC;IACJ,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,2EAA2E;AAC3E,SAAS,MAAM,CAAC,IAAuB,EAAE,GAAW;IAClD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;YACvB,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,MAAM;SAChB,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,SAAS,eAAe,CAAC,KAAa,EAAE,GAAW;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,qCAAqC,KAAK,EAAE,CAAC,EAAE,GAAG,CAGrE,CAAC;IACT,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAsD,CAAC;IAC9E,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACrB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QACvB,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QACtE,OAAO,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAClE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;QACpC,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,SAAS,kBAAkB,CAAC,KAAa,EAAE,GAAW;IACpD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YAC3F,GAAG;YACH,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3F,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,CAAC,GAAG,MAAiC,CAAC;QAC5C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC7C,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE;gBAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;gBACjD,OAAO;oBACL,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC1C,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;oBAC5D,cAAc,EAAE,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBAC3E,cAAc,EAAE,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;iBAC5E,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * `cleo release cut <version>` — one-command release from the default branch's
3
+ * newest commit with green CI (T14102 · epic T14099 · owner decision D11209).
4
+ *
5
+ * Replaces plan → open → bump-PR → hand-pushed tag. The cut:
6
+ * 1. validates the CalVer version (strictly above every release tag and the
7
+ * default branch's package.json), then picks the newest first-parent
8
+ * commit of `origin/<default>` whose required checks
9
+ * (`release.prRequiredWorkflows`, app-pinned) all concluded `success` on
10
+ * its push run (an empty conclusion is not green), or verifies a pinned
11
+ * `--sha` the same way;
12
+ * 2. renders the notes from the changesets added since the previous release
13
+ * tag, refusing a changeset no merged pull request brought in;
14
+ * 3. reports the packages, new migrations and each named task's status
15
+ * (reported, never gated: green CI on the sha is the gate);
16
+ * 4. creates the annotated tag `v<version>` on that sha through the GitHub
17
+ * API. Its message carries the hand-written lead (`--lead`). The tag push
18
+ * starts `release.yml`, which writes the CHANGELOG section
19
+ * ({@link releaseChangelog}), publishes, and opens the CHANGELOG + version
20
+ * PR. No test suite reruns: CI already passed that tree.
21
+ *
22
+ * @task T14102
23
+ * @epic T14099
24
+ */
25
+ import type { EngineResult } from '@cleocode/contracts';
26
+ import type { MergeSweepOptions, MergeSweepResult } from '@cleocode/contracts/merge-close.js';
27
+ import type { DocsRotResult } from '@cleocode/contracts/operations/docs.js';
28
+ import type { MergedCleanupOpts, MergedCleanupResult } from '@cleocode/contracts/operations/worktree.js';
29
+ /** How many first-parent commits of the default branch the cut inspects for green CI. */
30
+ export declare const CUT_MAX_CANDIDATES = 30;
31
+ /** Per-cut audit log (ADR-099 §Consequences), relative to the project root. */
32
+ export declare const RELEASE_CUT_AUDIT_FILE = ".cleo/audit/release-cut.jsonl";
33
+ /** Subprocess runners, injectable for tests. */
34
+ export interface ReleaseCutRunner {
35
+ /** Run `gh <args>` in `cwd`; returns trimmed stdout, throws on failure. */
36
+ runGh: (args: readonly string[], cwd: string) => string;
37
+ /** Run `git <args>` in `cwd`; returns stdout, throws on failure. */
38
+ runGit: (args: readonly string[], cwd: string) => string;
39
+ }
40
+ /** Options for {@link releaseCut}. */
41
+ export interface ReleaseCutOptions {
42
+ /** Version to release (`2026.10.28` or `v2026.10.28`). */
43
+ version: string;
44
+ /** Project whose task store, audit and grants the cut uses. */
45
+ projectRoot: string;
46
+ /**
47
+ * The git checkout the cut runs in (T14160): every git and gh call, the
48
+ * docs-rot scan and `checkoutAtMain` use it, and no other checkout is
49
+ * touched. Default: `projectRoot`.
50
+ */
51
+ gitRoot?: string;
52
+ /** Pin the commit instead of picking the newest green one; it must itself be green. */
53
+ sha?: string;
54
+ /** Markdown file whose content leads the notes ("Update now" + Highlights). */
55
+ leadFile?: string;
56
+ /** Show the commit, notes, packages and tasks without creating the tag. */
57
+ dryRun?: boolean;
58
+ /**
59
+ * Confirm the tag (D11212). Without it the cut only reports, with the exact
60
+ * confirm command. With it, a standing release authorization (T14141), the
61
+ * `release.agentCut` setting (D11221) or the
62
+ * version typed on the controlling terminal (`/dev/tty`) allows the tag.
63
+ */
64
+ yes?: boolean;
65
+ /** Default branch name (default `main`). */
66
+ branch?: string;
67
+ /** Test seam for the T14142 merged-work cleanup (default {@link cleanupMergedWork}). */
68
+ cleanup?: (opts: MergedCleanupOpts) => Promise<MergedCleanupResult>;
69
+ /** Test seam for the T14101 merge sweep (default {@link sweepMergedClosures}). */
70
+ sweep?: (projectRoot: string, opts: MergeSweepOptions) => Promise<MergeSweepResult>;
71
+ /** Test seam. */
72
+ runner?: ReleaseCutRunner;
73
+ }
74
+ /** CI state of one candidate commit. */
75
+ export interface ReleaseCutCandidate {
76
+ /** Commit sha. */
77
+ sha: string;
78
+ /** `success`, or the first required check that is not: `<name>: <state>`. */
79
+ ci: string;
80
+ }
81
+ /** One task a changeset in range names, with its status at cut time. */
82
+ export interface ReleaseCutTask {
83
+ /** Task id. */
84
+ id: string;
85
+ /** Store status, or `missing` when the task is not in this store. */
86
+ status: string;
87
+ }
88
+ /** A published package and the version it ships at. */
89
+ export interface ReleaseCutPackage {
90
+ /** Directory under `packages/`. */
91
+ dir: string;
92
+ /** npm name. */
93
+ name: string;
94
+ /** Version it publishes at. */
95
+ version: string;
96
+ }
97
+ /** Result of {@link releaseCut}. */
98
+ export interface ReleaseCutResult {
99
+ /** `v`-prefixed version. */
100
+ version: string;
101
+ /** Tag name (`v<version>`). */
102
+ tag: string;
103
+ /** Commit the release is cut from. */
104
+ sha: string;
105
+ /** Previous release tag the notes are computed from, or null for a first release. */
106
+ previousTag: string | null;
107
+ /** Commits checked for green CI, newest first, up to the chosen one. */
108
+ candidates: ReleaseCutCandidate[];
109
+ /** Changeset files in range. */
110
+ changesets: string[];
111
+ /** The rendered notes (lead first, then the generated sections). */
112
+ notes: string;
113
+ /** Packages `release.yml` publishes, at this version. */
114
+ packages: ReleaseCutPackage[];
115
+ /** Migration files added since the previous tag. */
116
+ migrations: string[];
117
+ /** Tasks the changesets name, with status (reported, not gated). */
118
+ tasks: ReleaseCutTask[];
119
+ /**
120
+ * T14142 cleanup of the release's tasks: the plan on a report run, what was
121
+ * removed after a confirmed tag. Besides the tasks' worktrees and `task/*`
122
+ * branches it removes nested repository copies proven redundant (clean, every
123
+ * ref on origin), only inside the worktrees of the release's done or
124
+ * cancelled tasks. Null when the changesets name no task.
125
+ */
126
+ cleanup: MergedCleanupResult | null;
127
+ /** The T14101 merge sweep run before the commit was picked (`swept: false` when it could not run). */
128
+ sweep: MergeSweepResult;
129
+ /** Docs rot of the project checkout (T14111); a real cut refuses when it has findings. */
130
+ docsRot: DocsRotResult;
131
+ /** Non-blocking findings, e.g. docs rot on a prerelease (it blocks only a stable cut). */
132
+ warnings: string[];
133
+ /** Whether the local checkout is at `origin/<default>` (the docs-rot scan reads it). */
134
+ checkoutAtMain: boolean;
135
+ /** The command that tags exactly this preview (pinned `--sha`), or null once tagged. */
136
+ confirmCommand: string | null;
137
+ /** True when no tag was created. */
138
+ dryRun: boolean;
139
+ /** True when this call created the tag (which starts `release.yml`). */
140
+ tagCreated: boolean;
141
+ /** What allowed the tag (`authorization:<id>`, `setting:release.agentCut=<level>@<scope>` or `tty-confirm`), or null. */
142
+ allowedBy: string | null;
143
+ }
144
+ /** Options for {@link releaseChangelog}. */
145
+ export interface ReleaseChangelogOptions {
146
+ /** Version whose section is written. */
147
+ version: string;
148
+ /** Git checkout whose `CHANGELOG.md` is written. */
149
+ projectRoot: string;
150
+ /** Commit the release was cut from (default: tag `v<version>` when it exists, else HEAD). */
151
+ ref?: string;
152
+ /** Test seam. */
153
+ runner?: ReleaseCutRunner;
154
+ }
155
+ /** Result of {@link releaseChangelog}. */
156
+ export interface ReleaseChangelogResult {
157
+ /** Path of the CHANGELOG. */
158
+ changelogPath: string;
159
+ /** False when the section already existed (a plan-PR release) or nothing changed. */
160
+ written: boolean;
161
+ /** Previous release tag the section was computed from. */
162
+ previousTag: string | null;
163
+ /** Changesets the section was built from. */
164
+ changesetCount: number;
165
+ }
166
+ /**
167
+ * Cut a release: tag the newest green default-branch commit and let
168
+ * `release.yml` publish it. `dryRun` reports without tagging.
169
+ *
170
+ * @param opts - See {@link ReleaseCutOptions}.
171
+ * @returns The chosen commit, notes, packages, migrations and task report.
172
+ *
173
+ * @example
174
+ * ```ts
175
+ * const preview = await releaseCut({ version: '2026.10.28', projectRoot, dryRun: true });
176
+ * if (preview.success) console.log(preview.data.sha, preview.data.notes);
177
+ * ```
178
+ *
179
+ * @task T14102
180
+ */
181
+ export declare function releaseCut(opts: ReleaseCutOptions): Promise<EngineResult<ReleaseCutResult>>;
182
+ /** Result of {@link releaseVerifyTag}. */
183
+ export interface ReleaseVerifyTagResult {
184
+ /** The tag checked. */
185
+ tag: string;
186
+ /** The commit it points at. */
187
+ sha: string;
188
+ /** Required checks that were green on its push run. */
189
+ checks: string[];
190
+ }
191
+ /**
192
+ * Refuse to publish a tag whose commit is not a first-parent commit of
193
+ * `origin/<default>` with every required check green on its push run. Run by
194
+ * `release.yml` before anything ships, so a hand-pushed tag or a dispatched
195
+ * run never publishes an untested tree.
196
+ *
197
+ * @param opts - Version, project root, default branch, test seam.
198
+ * @returns The tag, its commit and the checks found green.
199
+ *
200
+ * @example
201
+ * ```ts
202
+ * const ok = await releaseVerifyTag({ version: '2026.10.28', projectRoot: process.cwd() });
203
+ * if (!ok.success) process.exit(1);
204
+ * ```
205
+ *
206
+ * @task T14102
207
+ */
208
+ export declare function releaseVerifyTag(opts: {
209
+ version: string;
210
+ projectRoot: string;
211
+ branch?: string;
212
+ runner?: ReleaseCutRunner;
213
+ }): Promise<EngineResult<ReleaseVerifyTagResult>>;
214
+ /**
215
+ * Write the `## [<version>]` CHANGELOG section from the changesets added since
216
+ * the previous release tag, led by the tag's annotation (the `--lead` the cut
217
+ * recorded). Runs in `release.yml` on the tagged checkout. A section that
218
+ * already exists (a plan-PR release) is left untouched.
219
+ *
220
+ * @param opts - See {@link ReleaseChangelogOptions}.
221
+ * @returns Whether the section was written, and from what range.
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * await releaseChangelog({ version: '2026.10.28', projectRoot: process.cwd() });
226
+ * ```
227
+ *
228
+ * @task T14102
229
+ */
230
+ export declare function releaseChangelog(opts: ReleaseChangelogOptions): Promise<EngineResult<ReleaseChangelogResult>>;
231
+ //# sourceMappingURL=cut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cut.d.ts","sourceRoot":"","sources":["../../src/release/cut.ts"],"names":[],"mappings":"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"}