@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,376 @@
1
+ /**
2
+ * Merge closes tasks (T14101, owner decision D11209).
3
+ *
4
+ * A merged PR whose required checks were green on its exact head closes the
5
+ * tasks its body names, with no agent step. CI never writes to a task store:
6
+ * the GitHub job only posts a receipt ({@link judgeMergedPr}); the store owner's
7
+ * machine applies it here ({@link sweepMergedClosures}), re-deriving everything
8
+ * from `gh` and recording through the same path as `cleo done --pr`
9
+ * (`recordTaskDone`, then `taskComplete`), so the same validators and audit
10
+ * apply. The sweep runs from the daemon loop, lazily (throttled) from the
11
+ * commands agents already run, and before `cleo release` decides what ships.
12
+ *
13
+ * PR body lines, one per task:
14
+ *
15
+ * - `Closes: T#### AC1,AC2` — binds those criteria and completes the task once
16
+ * the criteria every merged PR bound cover all of its criteria.
17
+ * - `Refs: T#### AC1` — binds those criteria; the task stays open.
18
+ *
19
+ * Every applied line writes one `merge_close` audit row keyed by
20
+ * (PR, merge commit, task), so a rerun records nothing twice.
21
+ *
22
+ * @task T14101
23
+ */
24
+ import type { GhPrViewPayload, MergeDirective, MergedCleanupResult, MergeReceipt, MergeSweepOptions, MergeSweepReconcile, MergeSweepResult, ReviewVerdict } from '@cleocode/contracts';
25
+ /** The audit action of an applied `Closes:` / `Refs:` line. */
26
+ export declare const MERGE_CLOSE_AUDIT_ACTION = "merge_close";
27
+ /** The audit action of the one rerun of a merge commit's cancelled CI run (never repeated). */
28
+ export declare const MERGE_CLOSE_RERUN_ACTION = "merge_close_rerun";
29
+ /** The audit action of a refusal already reported on the PR (posted once). */
30
+ export declare const MERGE_CLOSE_REFUSED_ACTION = "merge_close_refused";
31
+ /** The lazy sweep runs at most this often per store. */
32
+ export declare const MERGE_SWEEP_INTERVAL_MS: number;
33
+ /** A detached sweep child exits after this long, so a hung `gh` leaves no process behind. */
34
+ export declare const MERGE_SWEEP_CHILD_TIMEOUT_MS: number;
35
+ /**
36
+ * Each sweep re-reads this far behind its high-water mark: GitHub's search
37
+ * index can list a PR some minutes after it merged, and re-reading an applied
38
+ * PR is a no-op (its `merge_close` audit row).
39
+ */
40
+ export declare const MERGE_SWEEP_OVERLAP_MS: number;
41
+ /**
42
+ * A sweep stops taking new PRs after this long and carries the rest on its
43
+ * waiting list, so it finishes inside a lazy child's {@link MERGE_SWEEP_CHILD_TIMEOUT_MS}.
44
+ */
45
+ export declare const MERGE_SWEEP_MAX_RUN_MS = 90000;
46
+ /**
47
+ * A sweep lock whose heartbeat is older than this is stale and may be taken:
48
+ * several times the longest a sweep runs ({@link MERGE_SWEEP_CHILD_TIMEOUT_MS}).
49
+ */
50
+ export declare const MERGE_SWEEP_LOCK_STALE_MS: number;
51
+ /** A waiting PR is first re-judged after this long; each further wait doubles it. */
52
+ export declare const MERGE_WAITING_FIRST_BACKOFF_MS: number;
53
+ /** The longest a waiting PR goes between re-judgements. */
54
+ export declare const MERGE_WAITING_MAX_BACKOFF_MS: number;
55
+ /** A PR still waiting this long after it first waited is refused, with one final comment. */
56
+ export declare const MERGE_WAITING_MAX_AGE_MS: number;
57
+ /** A first sweep (no high-water mark yet) looks back this far. */
58
+ export declare const MERGE_SWEEP_LOOKBACK_MS: number;
59
+ /** The merged PRs one `gh pr list` page returns. */
60
+ export declare const MERGE_SWEEP_PR_LIMIT = 50;
61
+ /**
62
+ * The most `gh pr list` pages one sweep reads. When more PRs merged than that,
63
+ * the unread (older) window is kept as a backlog the next sweep reads first,
64
+ * and the result reports `truncated`.
65
+ */
66
+ export declare const MERGE_SWEEP_MAX_PAGES = 10;
67
+ /** Open issues with this label become tasks (T14104). */
68
+ export declare const MACOS_REGRESSION_LABEL = "macos-regression";
69
+ /** A merged PR as the sweep reads it from `gh`. */
70
+ export interface MergedPrRecord extends Pick<GhPrViewPayload, 'statusCheckRollup'> {
71
+ /** PR number. */
72
+ number: number;
73
+ /** PR body. */
74
+ body: string;
75
+ /** Merge time (ISO); empty for an open PR, which only a dry run reads. */
76
+ mergedAt: string;
77
+ /** Final head. */
78
+ headRefOid: string | null;
79
+ /** Merge commit. */
80
+ mergeCommitSha: string | null;
81
+ }
82
+ /** The outcome of recording or completing one task. */
83
+ type StepResult = {
84
+ ok: true;
85
+ } | {
86
+ ok: false;
87
+ reason: string;
88
+ };
89
+ /** Everything the sweep reaches outside the store; injectable for tests. */
90
+ export interface MergeCloseDeps {
91
+ /**
92
+ * One page ({@link MERGE_SWEEP_PR_LIMIT}) of the PRs merged in
93
+ * `[since, until]` (`until` unset: up to now), newest first, or null when
94
+ * `gh` failed. A full page means older PRs may remain.
95
+ */
96
+ listMergedPrs(root: string, since: string, until?: string): Promise<MergedPrRecord[] | null>;
97
+ /** One PR, or null when `gh` failed or it is not merged. */
98
+ viewPr(root: string, prNumber: number): Promise<MergedPrRecord | null>;
99
+ /** Post a PR comment; false when it could not. */
100
+ comment(root: string, prNumber: number, body: string): Promise<boolean>;
101
+ /** The required check names (`release.prRequiredWorkflows` tiers). */
102
+ requiredChecks(storeRoot: string): Promise<string[]>;
103
+ /** Whether `gh` can run at all. */
104
+ ghAvailable(): Promise<boolean>;
105
+ /** Plan (`dryRun`) or record the task's gates from the PR, as `cleo done --pr`. */
106
+ record(storeRoot: string, taskId: string, prNumber: number, acs: string[], dryRun: boolean): Promise<StepResult>;
107
+ /** Complete the task, as `cleo done --pr` does after recording. */
108
+ complete(storeRoot: string, taskId: string, prNumber: number): Promise<StepResult>;
109
+ /** Open issues carrying a label (one `gh` call), or null when `gh` failed. */
110
+ listLabelledIssues(root: string, label: string): Promise<Array<{
111
+ url: string;
112
+ title: string;
113
+ }> | null>;
114
+ /** Close an issue with a comment; false when it could not. */
115
+ closeIssue(root: string, url: string, comment: string): Promise<boolean>;
116
+ /** Flag the docs a merged change left stale on its tasks (T14111), returning the task ids flagged. */
117
+ docsRot?(storeRoot: string, pr: {
118
+ prNumber: number;
119
+ mergeSha: string;
120
+ taskIds: string[];
121
+ }): Promise<string[]>;
122
+ /**
123
+ * Remove what a merged PR's tasks left behind (T14142): canonical worktrees,
124
+ * `task/*` branches, nested repository copies. Runs only when
125
+ * {@link MergeCloseDeps.canCleanup} says so.
126
+ */
127
+ cleanupMerged?(storeRoot: string, taskIds: string[]): Promise<MergedCleanupResult>;
128
+ /**
129
+ * Whether this sweep may delete (T14142). Off by default: a sweep that
130
+ * deletes on its own proves itself on a few releases first.
131
+ */
132
+ canCleanup?(): boolean;
133
+ /**
134
+ * Reconcile the newest published release's provenance (T14102).
135
+ */
136
+ reconcile?(storeRoot: string): Promise<MergeSweepReconcile>;
137
+ /**
138
+ * The independent reviewer verdicts recorded for a task's PR (T14122,
139
+ * `cleo review`). Unset: no verdicts, so nothing closes.
140
+ */
141
+ reviewVerdicts?(storeRoot: string, taskId: string, prNumber: number): Promise<ReviewVerdict[]>;
142
+ /**
143
+ * The newest run of the required CI workflow on a commit, or null when there
144
+ * is none yet (or `gh` failed).
145
+ */
146
+ mergeCiRun(root: string, sha: string, workflow: string): Promise<{
147
+ runId: number;
148
+ status: string;
149
+ conclusion: string | null;
150
+ } | null>;
151
+ /** Rerun a CI run; false when it could not. */
152
+ rerunRun(root: string, runId: number): Promise<boolean>;
153
+ /** The clock (ms), for the run cap, backoff and age-out; tests inject it. */
154
+ now?(): number;
155
+ /**
156
+ * Whether this sweep may rerun a cancelled merge-commit CI run. Off by
157
+ * default until T14136: a rerun of an old main push run joins main's live
158
+ * push concurrency group and cancels (or is cancelled by) main's newest run.
159
+ */
160
+ canRerun(): boolean;
161
+ /** Open PRs (one `gh` call), for the pre-merge verdict check; null when `gh` failed. */
162
+ listOpenPrs(root: string): Promise<MergedPrRecord[] | null>;
163
+ /** Set the `cleo/merge-close` commit status on a head; false when it could not. */
164
+ setStatus(root: string, sha: string, state: 'success' | 'failure', description: string): Promise<boolean>;
165
+ }
166
+ /** The commit status the pre-merge verdict check sets on an open PR's head. */
167
+ export declare const MERGE_CLOSE_STATUS_CONTEXT = "cleo/merge-close";
168
+ /**
169
+ * Why the criteria a line names are not independently verified on the PR's
170
+ * head (T14122), one reason per criterion, from the shared judge
171
+ * (`judgeReviewVerdicts`, the same text `cleo review check` prints): no
172
+ * verdict, an unmet one, one on an older head (a push after review), or one
173
+ * by the task's own author. Empty when every criterion is met.
174
+ *
175
+ * @param verdicts - The task's verdicts on the PR.
176
+ * @param acs - The criteria the line names.
177
+ * @param headSha - The PR's final head.
178
+ * @returns The reasons.
179
+ */
180
+ export declare function unverifiedCriteria(verdicts: readonly ReviewVerdict[], acs: readonly string[], headSha: string | null): Promise<string[]>;
181
+ /**
182
+ * Parse a PR body's `Closes:` / `Refs:` lines (T14101). A line whose payload
183
+ * does not start with a task id (`Closes: #123`, GitHub's own syntax) is not
184
+ * CLEO's and is ignored; a CLEO line that is malformed, or names a task twice,
185
+ * is an error with the fix.
186
+ *
187
+ * @param body - The PR body.
188
+ * @returns The lines, and the errors.
189
+ * @example
190
+ * ```ts
191
+ * parseMergeDirectives('Closes: T14101 AC1,AC2');
192
+ * // { directives: [{ kind: 'closes', taskId: 'T14101', acs: ['AC1', 'AC2'] }], errors: [] }
193
+ * ```
194
+ */
195
+ export declare function parseMergeDirectives(body: string): {
196
+ directives: MergeDirective[];
197
+ errors: string[];
198
+ };
199
+ /**
200
+ * Judge a merged PR without a task store (T14101): its lines, and whether its
201
+ * required checks were green on its exact head (`statusCheckRollup` is the
202
+ * head's checks). This is the CI job's receipt; the store side judges again.
203
+ *
204
+ * @param pr - The merged PR.
205
+ * @param required - Required check names.
206
+ * @returns The receipt.
207
+ */
208
+ export declare function judgeMergedPr(pr: MergedPrRecord, required: readonly string[]): Promise<MergeReceipt>;
209
+ /**
210
+ * Take the sweep lock for a store (T14101): an `O_EXCL` lock file held for
211
+ * the whole sweep, its mtime refreshed while the sweep runs. A lock whose
212
+ * heartbeat is older than {@link MERGE_SWEEP_LOCK_STALE_MS} is moved aside by
213
+ * `rename` (only one caller's rename succeeds) and taken. Null when another
214
+ * sweep holds it.
215
+ *
216
+ * @param storeRoot - CLEO store root.
217
+ * @returns The release function, or null.
218
+ */
219
+ export declare function acquireMergeSweepLock(storeRoot: string, now?: () => number): (() => void) | null;
220
+ /**
221
+ * Whether the lock path holds `token` (T14139).
222
+ *
223
+ * @param lock - The lock path.
224
+ * @param token - The token expected.
225
+ * @returns True when the lock file reads exactly `token`.
226
+ * @internal Exported for tests.
227
+ */
228
+ export declare function lockHolds(lock: string, token: string): boolean;
229
+ /**
230
+ * Move aside the stale lock whose token was `judged`, and only that one: rename
231
+ * it to a unique name and read the token there. Another stealer may have
232
+ * replaced the stale lock with a fresh one between the read and the rename; if
233
+ * the renamed file is not the judged one, put it back (`link` refuses to
234
+ * clobber a lock created meanwhile) and give up.
235
+ *
236
+ * @param lock - The lock path.
237
+ * @param judged - The token read from the lock judged stale.
238
+ * @returns True when the judged lock was removed.
239
+ * @internal Exported for tests.
240
+ */
241
+ export declare function stealStaleLock(lock: string, judged: string): boolean;
242
+ /**
243
+ * Claim the next sweep for a store, atomically (T14101): true for exactly one
244
+ * caller per {@link MERGE_SWEEP_INTERVAL_MS}. A claim older than the interval
245
+ * is moved aside by `rename` (only one caller's rename succeeds), and the new
246
+ * claim is created with `O_EXCL`, so two concurrent commands never start two
247
+ * sweeps.
248
+ *
249
+ * @param storeRoot - CLEO store root.
250
+ * @param now - Current time (ms).
251
+ * @returns True when this caller owns the sweep.
252
+ */
253
+ export declare function claimMergeSweep(storeRoot: string, now?: number): boolean;
254
+ /**
255
+ * Whether a read command may start a background sweep (T14101): never in CI,
256
+ * under vitest, when turned off (`CLEO_MERGE_SWEEP=off`), inside a process git
257
+ * started (T14189), or without `gh` credentials (a token in the environment,
258
+ * or `gh`'s hosts file).
259
+ *
260
+ * Git exports `GIT_EXEC_PATH` to every program it runs (hooks, aliases,
261
+ * `rebase --exec`), `GIT_INDEX_FILE` to commit hooks and `GIT_DIR` to hooks in
262
+ * a linked worktree (observed on git 2.5x: pre-commit, commit-msg and
263
+ * post-commit). A hook's `cleo show` has no reason to start a sweep that
264
+ * deletes branches and worktrees after the commit returns.
265
+ *
266
+ * @param env - The environment.
267
+ * @param home - The home directory (for `gh`'s default config).
268
+ * @returns True when a detached sweep may be spawned.
269
+ */
270
+ export declare function mergeSweepSpawnAllowed(env: NodeJS.ProcessEnv, home?: string): boolean;
271
+ /**
272
+ * The environment of the detached merge sweep (T14189). A read command run
273
+ * from a git hook (commit-msg runs `cleo show`) carries the hook's `GIT_DIR`
274
+ * and `GIT_INDEX_FILE`; the sweep outlives the hook, so it must act on each
275
+ * project's own repository, never the hook's: every ambient repo variable is
276
+ * stripped, and the sweep marks itself a child that never spawns another.
277
+ *
278
+ * @param env - The parent's environment.
279
+ * @returns The child's environment.
280
+ * @example
281
+ * ```ts
282
+ * spawn(cli, ['done', '--from-merge', 'all'], { env: mergeSweepChildEnv(process.env) });
283
+ * ```
284
+ * @task T14189
285
+ */
286
+ export declare function mergeSweepChildEnv(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
287
+ /**
288
+ * Why the lazy merge sweep must not start for this invocation, or null
289
+ * (T14168). A CLI built inside a CLEO worktree carries unreleased code, so it
290
+ * never sweeps the real store; a `release` command run from a CLEO worktree
291
+ * never sweeps the project checkout it was not started in (T14160).
292
+ *
293
+ * @param command - The CLI command being run.
294
+ * @param cwd - Where the command was started (the CLI passes its own cwd).
295
+ * @returns The reason the sweep is skipped, or null when it may start.
296
+ *
297
+ * @example
298
+ * ```ts
299
+ * if (await lazySweepBlockedReason('release', invocationCwd)) return; // no background sweep
300
+ * ```
301
+ *
302
+ * @task T14168
303
+ */
304
+ export declare function lazySweepBlockedReason(command: string, cwd: string): Promise<string | null>;
305
+ /**
306
+ * Close the tasks merged PRs name (T14101): for each merged PR, judge its
307
+ * receipt, then apply each `Closes:` / `Refs:` line to its task. Never throws
308
+ * on `gh` or network trouble: it reports `swept: false` instead. Under
309
+ * `dryRun` it records, completes and comments nothing, and leaves the throttle
310
+ * alone.
311
+ *
312
+ * @param storeRoot - CLEO store root.
313
+ * @param opts - Dry run, force, since, PR numbers.
314
+ * @param deps - Outside access; defaults to `gh` and the done/complete path.
315
+ * @returns What was closed, bound and refused.
316
+ * @example
317
+ * ```ts
318
+ * const r = await sweepMergedClosures(root, { force: true, dryRun: true });
319
+ * console.log(r.closed);
320
+ * ```
321
+ */
322
+ export declare function sweepMergedClosures(storeRoot: string, opts?: MergeSweepOptions, deps?: MergeCloseDeps): Promise<MergeSweepResult>;
323
+ /**
324
+ * Whether a directory is a CLEO project that takes merged CI as evidence
325
+ * (T14101): a main git checkout (never a linked worktree, never a moved or
326
+ * missing path) with `.cleo/project-context.json` setting
327
+ * `evidence.ciSatisfies`. The daemon sweeps only these, never `$HOME`.
328
+ *
329
+ * @param root - Candidate project root.
330
+ * @returns True when the merge sweep applies.
331
+ */
332
+ export declare function mergeSweepApplies(root: string): boolean;
333
+ /**
334
+ * The daemon's merge sweep (T14101): every registered project on this
335
+ * machine that {@link mergeSweepApplies} to, behind the same gate the lazy
336
+ * path uses ({@link mergeSweepSpawnAllowed}: never in CI, under vitest, when
337
+ * off, or without gh credentials). Each project's sweep throttles and locks
338
+ * itself. Never throws.
339
+ *
340
+ * @param opts - Environment, project lister and sweep, for tests.
341
+ * @returns The roots swept.
342
+ */
343
+ export declare function sweepRegisteredProjects(opts?: {
344
+ env?: NodeJS.ProcessEnv;
345
+ listRoots?: () => Promise<string[]>;
346
+ sweep?: (root: string) => Promise<unknown>;
347
+ }): Promise<string[]>;
348
+ /**
349
+ * The PR comment for a receipt (T14101): what the store owner's sweep will
350
+ * close or bind, or why the PR closes nothing, plus the receipt as JSON.
351
+ *
352
+ * @param receipt - The receipt.
353
+ * @returns Markdown for `gh pr comment`.
354
+ */
355
+ export declare function formatMergeReceipt(receipt: MergeReceipt): string;
356
+ /**
357
+ * Judge one merged PR without a task store and optionally comment the
358
+ * receipt on it (T14101): the GitHub job's half. Reads only `gh` and the
359
+ * tracked `.cleo/project-context.json` (for the required checks).
360
+ *
361
+ * @param storeRoot - Checkout root (the project context is read from it).
362
+ * @param prNumber - The merged PR.
363
+ * @param opts - `comment: true` posts the receipt on the PR.
364
+ * @param deps - Outside access.
365
+ * @returns The receipt, or null when `gh` could not read a merged PR.
366
+ */
367
+ export declare function mergeReceiptFor(storeRoot: string, prNumber: number, opts?: {
368
+ comment?: boolean;
369
+ }, deps?: MergeCloseDeps): Promise<{
370
+ receipt: MergeReceipt;
371
+ commented: boolean;
372
+ } | null>;
373
+ /** The default {@link MergeCloseDeps}: `gh`, and the `cleo done --pr` record and complete path. */
374
+ export declare const defaultMergeCloseDeps: MergeCloseDeps;
375
+ export {};
376
+ //# sourceMappingURL=merge-close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-close.d.ts","sourceRoot":"","sources":["../../src/tasks/merge-close.ts"],"names":[],"mappings":"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"}