@cleocode/cleo 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 (184) hide show
  1. package/README.md +28 -365
  2. package/dist/.source-stamp.json +4 -0
  3. package/dist/cli/{adapter-ZIB3OAPD.js → adapter-H6LGOEXR.js} +3 -3
  4. package/dist/cli/{add-TBJUMJW7.js → add-JTLUT54D.js} +3 -3
  5. package/dist/cli/{add-batch-GGKVPTS5.js → add-batch-ZK7SIYA5.js} +3 -3
  6. package/dist/cli/{admin-PEYBYMZN.js → admin-AA4M7JBW.js} +15 -5
  7. package/dist/cli/{admin-NGPG2LSO.js → admin-EPHDAQHU.js} +3 -3
  8. package/dist/cli/{adr-2XVNDYZ7.js → adr-6DUCKEGZ.js} +3 -3
  9. package/dist/cli/{analyze-A44RDCSX.js → analyze-C7PDKTLW.js} +3 -3
  10. package/dist/cli/{archive-QQB6M2RF.js → archive-4XUV2TNE.js} +3 -3
  11. package/dist/cli/{archive-stats-K4YKKYQV.js → archive-stats-P35RNTOG.js} +3 -3
  12. package/dist/cli/{attention-KAHDF6KD.js → attention-CRI2XJ62.js} +3 -3
  13. package/dist/cli/{backup-IYFULQTM.js → backup-JMHKBESP.js} +6 -5
  14. package/dist/cli/{blockers-KYNJJKZQ.js → blockers-GIYEINJM.js} +3 -3
  15. package/dist/cli/{briefing-J6PDDZ2C.js → briefing-CS6JNKV7.js} +3 -3
  16. package/dist/cli/{cancel-A4OCUVDI.js → cancel-I5WG5BR4.js} +3 -3
  17. package/dist/cli/{chunk-SXXOC6KZ.js → canon-docs-ZXWC4AFI.js} +51 -4
  18. package/dist/cli/{check-HHT4J5ZM.js → check-3KDTDUNQ.js} +3 -3
  19. package/dist/cli/{check-ZT6O5JDS.js → check-4XUOQNLG.js} +15 -19
  20. package/dist/cli/{chunk-PGR4RWQL.js → chunk-2AT5ALNQ.js} +2 -2
  21. package/dist/cli/{chunk-TUUKU4H7.js → chunk-5AL6B3J2.js} +7 -3
  22. package/dist/cli/{owner-override-cap-53HYZHIL.js → chunk-6C5X2J6S.js} +3 -2
  23. package/dist/cli/{chunk-OIS3BDSL.js → chunk-K6I66OSL.js} +2 -2
  24. package/dist/cli/chunk-RYGY5LG4.js +89 -0
  25. package/dist/cli/{chunk-JRDAITPC.js → chunk-V3ZUZYBZ.js} +12 -12
  26. package/dist/cli/{claim-MFFSWD64.js → claim-XGA4LKYO.js} +3 -3
  27. package/dist/cli/{cli-5PJ2B6ZH.js → cli-2U6BPCPH.js} +3 -3
  28. package/dist/cli/{complete-2IN4YEWL.js → complete-NCS2BCZB.js} +4 -4
  29. package/dist/cli/{complexity-JVEIZE5M.js → complexity-KJHXAWTC.js} +3 -3
  30. package/dist/cli/{compliance-MC3X2M34.js → compliance-GP6P63ZI.js} +3 -3
  31. package/dist/cli/{conduit-XYYPJYUF.js → conduit-NJL4YUDZ.js} +3 -3
  32. package/dist/cli/{config-Z5BXGRZB.js → config-FMLBYCVS.js} +5 -5
  33. package/dist/cli/{consensus-T6UARQTD.js → consensus-ALD6ADOC.js} +3 -3
  34. package/dist/cli/{context-M4F3YXZE.js → context-CVZBNZUZ.js} +3 -3
  35. package/dist/cli/{contribution-76FJYJKR.js → contribution-YQG6IHME.js} +3 -3
  36. package/dist/cli/{current-EFRCVSWL.js → current-GNHA4AK3.js} +3 -3
  37. package/dist/cli/{daemon-UAAMDN6C.js → daemon-VGOWNKWU.js} +3 -3
  38. package/dist/cli/{dash-ZEBYLYPV.js → dash-EP46P2SO.js} +3 -3
  39. package/dist/cli/{decompose-XTK2DXSM.js → decompose-J2RHLS4P.js} +3 -3
  40. package/dist/cli/{decomposition-ZDACSPOU.js → decomposition-RILQKAX7.js} +3 -3
  41. package/dist/cli/{delete-6YZADILS.js → delete-CBMXPES6.js} +3 -3
  42. package/dist/cli/{deps-WTASB2GB.js → deps-GPBTDYTW.js} +3 -3
  43. package/dist/cli/{detect-IITE5EBW.js → detect-OGQCROVY.js} +3 -3
  44. package/dist/cli/{diagnostics-MFUOSLSQ.js → diagnostics-4I2JUW5R.js} +3 -3
  45. package/dist/cli/{docs-NF5COLOB.js → docs-MNOBMDNV.js} +148 -16
  46. package/dist/cli/{docs-AIZLN3ZE.js → docs-YI47KPN7.js} +150 -93
  47. package/dist/cli/{doctor-4DWCNDOP.js → doctor-AYEY3IAL.js} +9 -4
  48. package/dist/cli/{doctor-tool-locks-VXKJZKAY.js → doctor-tool-locks-3ZT2LXRY.js} +2 -2
  49. package/dist/cli/{canon-docs-2GTOLF7Y.js → doctor-type-matrix-DD233VK2.js} +8 -8
  50. package/dist/cli/{done-A7ITQSJT.js → done-TZ5KBKEY.js} +73 -5
  51. package/dist/cli/{export-OTDQUAQQ.js → export-2PN64KYZ.js} +3 -3
  52. package/dist/cli/{export-tasks-BKVXMFLD.js → export-tasks-VDM7OZG5.js} +3 -3
  53. package/dist/cli/{find-BWKYKZEN.js → find-5XG5EKE3.js} +3 -3
  54. package/dist/cli/{focus-772SYK7Z.js → focus-ZL4LN3ME.js} +3 -3
  55. package/dist/cli/{goal-TG74GKBK.js → goal-TIQWF5PH.js} +2 -2
  56. package/dist/cli/{grade-BZYBWDA7.js → grade-4Q4VAS6D.js} +3 -3
  57. package/dist/cli/{graph-LB2TBRH6.js → graph-T5NO6IO5.js} +3 -3
  58. package/dist/cli/{history-XIYAXOUF.js → history-LMP6PSUW.js} +3 -3
  59. package/dist/cli/{import-C2QISQC7.js → import-RDVVHET4.js} +3 -3
  60. package/dist/cli/{import-tasks-P6FYXAAS.js → import-tasks-GQAD4JBU.js} +3 -3
  61. package/dist/cli/index.js +141 -103
  62. package/dist/cli/{inject-EDZVSPTW.js → inject-Y4LSXMTC.js} +3 -3
  63. package/dist/cli/{intelligence-OE7SIVR5.js → intelligence-HCB3COXY.js} +3 -3
  64. package/dist/cli/{issue-S67EZXN7.js → issue-7NLECBVN.js} +3 -3
  65. package/dist/cli/{labels-M7GIBYAQ.js → labels-BEKX5LIS.js} +3 -3
  66. package/dist/cli/{lifecycle-NO5QDJ2J.js → lifecycle-NXFDMNMA.js} +3 -3
  67. package/dist/cli/{list-VH6DPZ4V.js → list-H4DJHDQR.js} +3 -3
  68. package/dist/cli/{llm-P35U52I5.js → llm-24YWOGPN.js} +3 -3
  69. package/dist/cli/{log-XIPOX6UM.js → log-DKATGXVT.js} +3 -3
  70. package/dist/cli/{manifest-A5F2YD35.js → manifest-6W3LB3O4.js} +3 -3
  71. package/dist/cli/{map-AOMU72RY.js → map-LQUG4G6N.js} +3 -3
  72. package/dist/cli/{memory-4WNZWJG7.js → memory-FQKOIV43.js} +3 -3
  73. package/dist/cli/{memory-GK5WDYWT.js → memory-Z47B7XNL.js} +2 -2
  74. package/dist/cli/{migrate-claude-mem-OTSYHYBZ.js → migrate-claude-mem-MSXQ33SR.js} +3 -3
  75. package/dist/cli/{next-YUZ4X7NB.js → next-OU44ZHDS.js} +3 -3
  76. package/dist/cli/{nexus-YHPP3RZU.js → nexus-2O3D5KBD.js} +23 -15
  77. package/dist/cli/{nexus-RYH4IAG3.js → nexus-X6YLFJLZ.js} +2 -2
  78. package/dist/cli/{ops-XPJK3WBN.js → ops-MKGFUA4I.js} +3 -3
  79. package/dist/cli/{orchestrate-TWV43SAR.js → orchestrate-CIYXIPWJ.js} +3 -3
  80. package/dist/cli/{orchestrate-AYBDAVOQ.js → orchestrate-HSYARDD4.js} +2 -2
  81. package/dist/cli/owner-override-cap-3B7UXQXA.js +29 -0
  82. package/dist/cli/{phase-CFH2NZU5.js → phase-NJDN3EIY.js} +3 -3
  83. package/dist/cli/{pipeline-LW5HWLBI.js → pipeline-KQGUL5BQ.js} +2 -2
  84. package/dist/cli/{pivot-LEBKDG22.js → pivot-K3FL4H4Z.js} +3 -3
  85. package/dist/cli/{plan-6VK5I4BT.js → plan-TDBKUPE6.js} +3 -3
  86. package/dist/cli/{playbook-4GKDYZYW.js → playbook-UF7FCJ4U.js} +3 -3
  87. package/dist/cli/{promote-4V4ZLAL3.js → promote-Q3A7C7GI.js} +3 -3
  88. package/dist/cli/{provenance-2SFRY42O.js → provenance-J7OB5YAT.js} +3 -3
  89. package/dist/cli/{provider-G6MBFVHR.js → provider-T37WWONR.js} +3 -3
  90. package/dist/cli/{reason-2AYZ6SGZ.js → reason-D6W5GCAS.js} +3 -3
  91. package/dist/cli/{reconcile-7CBD7AHH.js → reconcile-FK2AVHTK.js} +3 -3
  92. package/dist/cli/{relates-FP43JAOK.js → relates-4UYF5ZTG.js} +3 -3
  93. package/dist/cli/{release-NW7XHRVB.js → release-NHPX6QOO.js} +128 -3
  94. package/dist/cli/{release-OWPFPUQG.js → release-XT2L6BZ6.js} +80 -4
  95. package/dist/cli/release-authorize-IV4MF6OV.js +84 -0
  96. package/dist/cli/{reorder-M457CQRR.js → reorder-3WRIRG5F.js} +3 -3
  97. package/dist/cli/{reparent-53T6IUUS.js → reparent-OBDMBMHO.js} +3 -3
  98. package/dist/cli/{req-ORMMU5PV.js → req-IC66XI36.js} +3 -3
  99. package/dist/cli/{research-LFGCGIEP.js → research-637G66T4.js} +3 -3
  100. package/dist/cli/{restore-ZYRIZQUJ.js → restore-VJ6UVTFO.js} +3 -3
  101. package/dist/cli/review-2VXZEKW6.js +131 -0
  102. package/dist/cli/{roadmap-EK6LXBQ4.js → roadmap-H26JEE34.js} +3 -3
  103. package/dist/cli/{run-PZJCIRFD.js → run-SUK5J7SL.js} +42 -2
  104. package/dist/cli/{safestop-NO57J3RK.js → safestop-G5LYH3B6.js} +3 -3
  105. package/dist/cli/{saga-NIJMIJE5.js → saga-CPNWFLGG.js} +3 -3
  106. package/dist/cli/{selfimprove-6HSEV3RG.js → selfimprove-T2IZGLE5.js} +3 -3
  107. package/dist/cli/{selfimprove-IYKG5PF4.js → selfimprove-UI4KV3LE.js} +2 -2
  108. package/dist/cli/{sequence-T42KPEEQ.js → sequence-DRHAPZP5.js} +3 -3
  109. package/dist/cli/{service-CBEZWGHC.js → service-L3XGRXZZ.js} +3 -3
  110. package/dist/cli/{session-XDADM7O4.js → session-WYKXKKPM.js} +3 -3
  111. package/dist/cli/{session-TFVW42XK.js → session-XGFWBFKH.js} +2 -2
  112. package/dist/cli/{show-I2TEU6MP.js → show-244XCU7Q.js} +3 -3
  113. package/dist/cli/{skills-ZBYRPFRL.js → skills-V4IH2LVI.js} +3 -3
  114. package/dist/cli/{snapshot-GMN7LZ4A.js → snapshot-BM2YSX23.js} +3 -3
  115. package/dist/cli/{start-FQWDRGJE.js → start-OUWHVDCT.js} +3 -3
  116. package/dist/cli/{stats-D2AU77GH.js → stats-SNANUIE4.js} +3 -3
  117. package/dist/cli/{sticky-FKZFQYNV.js → sticky-AXOXP64I.js} +3 -3
  118. package/dist/cli/{stop-ZCL7RZPH.js → stop-7XU7WJZP.js} +3 -3
  119. package/dist/cli/{sync-WM4JLGXF.js → sync-I7D4OMS5.js} +3 -3
  120. package/dist/cli/{tasks-RU6AAJKD.js → tasks-S4UR3OMN.js} +2 -2
  121. package/dist/cli/{tasks-54WNYQZS.js → tasks-VI633MO2.js} +3 -3
  122. package/dist/cli/{testing-S7FCPHW5.js → testing-444KOW72.js} +3 -3
  123. package/dist/cli/{token-BDRGEO3E.js → token-LEAY3YMC.js} +3 -3
  124. package/dist/cli/{update-BD77ORMO.js → update-2FKKXUZ5.js} +3 -3
  125. package/dist/cli/{verify-VOJRQQE2.js → verify-FJPE666T.js} +4 -4
  126. package/dist/cli/{worktree-2HHJT5BS.js → worktree-MRP3XN33.js} +3 -3
  127. package/package.json +16 -13
  128. package/studio-dist/client/_app/immutable/chunks/BBz_Ewst.js +3 -0
  129. package/studio-dist/client/_app/immutable/chunks/{CwQ8nAoh.js → BaXJwlsi.js} +1 -1
  130. package/studio-dist/client/_app/immutable/chunks/CERVObi_.js +1 -0
  131. package/studio-dist/client/_app/immutable/chunks/{Dv66614U.js → D4A9lkPs.js} +1 -1
  132. package/studio-dist/client/_app/immutable/entry/{app.C2oQiIiz.js → app.BxBC-th_.js} +2 -2
  133. package/studio-dist/client/_app/immutable/entry/start.Dm43jY1A.js +1 -0
  134. package/studio-dist/client/_app/immutable/nodes/{0.DaE6eVaG.js → 0.D7Aem8uF.js} +1 -1
  135. package/studio-dist/client/_app/immutable/nodes/{1.D0Mb3i_7.js → 1.Cf9AgcGX.js} +1 -1
  136. package/studio-dist/client/_app/immutable/nodes/{15.ChRO-4dz.js → 15.C1O3unvk.js} +1 -1
  137. package/studio-dist/client/_app/immutable/nodes/{16.fltF2wse.js → 16.DTsmQMdQ.js} +1 -1
  138. package/studio-dist/client/_app/immutable/nodes/{17.DnYjMhyj.js → 17.C7L1u1QT.js} +1 -1
  139. package/studio-dist/client/_app/immutable/nodes/{18.DYVIAC9a.js → 18.DJGn1-Wv.js} +1 -1
  140. package/studio-dist/client/_app/immutable/nodes/{20.CVBcbjBW.js → 20.CN2uQb5o.js} +1 -1
  141. package/studio-dist/client/_app/immutable/nodes/{24.Bfswm8Y5.js → 24.Bpbm5FXA.js} +1 -1
  142. package/studio-dist/client/_app/immutable/nodes/25.B91AFY13.js +39 -0
  143. package/studio-dist/client/_app/immutable/nodes/{26.D3RoTHoD.js → 26.3enLLx87.js} +1 -1
  144. package/studio-dist/client/_app/immutable/nodes/{3.ezhkaJvt.js → 3.yCO3XTid.js} +1 -1
  145. package/studio-dist/client/_app/version.json +1 -1
  146. package/studio-dist/server/chunks/{0-BKQLYEeE.js → 0-DEtAbPw-.js} +3 -3
  147. package/studio-dist/server/chunks/1-h2LMUAHs.js +9 -0
  148. package/studio-dist/server/chunks/{15-DuSvkmiZ.js → 15-BiobEJ2m.js} +3 -3
  149. package/studio-dist/server/chunks/{16-DJVePzvS.js → 16-6xqNydr5.js} +3 -3
  150. package/studio-dist/server/chunks/{17-D8K9-EPJ.js → 17-DUBxUGhx.js} +3 -3
  151. package/studio-dist/server/chunks/{18-D5FUPGnv.js → 18-CENJ-ItU.js} +3 -3
  152. package/studio-dist/server/chunks/{20-CmHgNZFV.js → 20-CEgw_UdZ.js} +3 -3
  153. package/studio-dist/server/chunks/{24-CfuHWHgd.js → 24-6ZDsPicw.js} +3 -3
  154. package/studio-dist/server/chunks/{25-bm3BDSum.js → 25-Cyivs_zg.js} +207 -6
  155. package/studio-dist/server/chunks/{26-DRlhAbrf.js → 26-D2WIE_xK.js} +3 -3
  156. package/studio-dist/server/chunks/{3-BrE1-gTA.js → 3-cYpnCm5s.js} +3 -3
  157. package/studio-dist/server/chunks/{_layout.svelte-BeqNMCvk.js → _layout.svelte-DCokBVYx.js} +4 -4
  158. package/studio-dist/server/chunks/{_page.svelte-DnmZYECG.js → _page.svelte-4E3K3DKC.js} +3 -3
  159. package/studio-dist/server/chunks/{_page.svelte-Bchzzf-O.js → _page.svelte-BHV_avWv.js} +3 -3
  160. package/studio-dist/server/chunks/{_page.svelte-CJVF_ySt.js → _page.svelte-BKKxE82V.js} +3 -3
  161. package/studio-dist/server/chunks/{_page.svelte-DIx7Hcw-.js → _page.svelte-BT9WBxAM.js} +3 -3
  162. package/studio-dist/server/chunks/{_page.svelte-Ds0GMs_q.js → _page.svelte-Bk7asdHX.js} +4 -4
  163. package/studio-dist/server/chunks/{_page.svelte-V7BTZinR.js → _page.svelte-DG8jeXro.js} +6 -6
  164. package/studio-dist/server/chunks/{_page.svelte-DM-MP-Vl.js → _page.svelte-DdYeG19n.js} +3 -3
  165. package/studio-dist/server/chunks/{_page.svelte-CkXCx1iz.js → _page.svelte-NTbWZ5Ki.js} +3 -3
  166. package/studio-dist/server/chunks/{_page.svelte-B7xxx6BP.js → _page.svelte-QmZ5QQQz.js} +3 -3
  167. package/studio-dist/server/chunks/{_server.ts-DdCviCsN.js → _server.ts-B66SEpEd.js} +3 -3
  168. package/studio-dist/server/chunks/{_server.ts-Ck-oreiA.js → _server.ts-C1Eh35Y2.js} +3 -3
  169. package/studio-dist/server/chunks/{_server.ts-b2YIpIsi.js → _server.ts-C2pAmHkw.js} +3 -3
  170. package/studio-dist/server/chunks/{_server.ts-Cd_KHxRr.js → _server.ts-DFYxm8-q.js} +2 -2
  171. package/studio-dist/server/chunks/{_server.ts-YtGAClvW.js → _server.ts-DWzrbU8h.js} +3 -3
  172. package/studio-dist/server/chunks/{client-DR3j81J8.js → client-BHWQAkS2.js} +2 -2
  173. package/studio-dist/server/chunks/{error.svelte-NY-X_Qdt.js → error.svelte-IFrcuYEO.js} +3 -3
  174. package/studio-dist/server/chunks/{http-Dz72j56i.js → http-BkrDO_qh.js} +2 -2
  175. package/studio-dist/server/chunks/{internal-y7btLoII.js → internal-DftpbYWE.js} +2 -2
  176. package/studio-dist/server/chunks/{operations-registry-DKEHmggR.js → operations-registry-zTLuSrVZ.js} +194 -1
  177. package/studio-dist/server/chunks/{stores-Cm-Qj76R.js → stores-BW6MI1eb.js} +2 -2
  178. package/studio-dist/server/index.js +1 -1
  179. package/studio-dist/server/manifest.js +17 -17
  180. package/studio-dist/client/_app/immutable/chunks/BXnpxR_0.js +0 -1
  181. package/studio-dist/client/_app/immutable/chunks/Js_lZuOv.js +0 -3
  182. package/studio-dist/client/_app/immutable/entry/start.BolRa540.js +0 -1
  183. package/studio-dist/client/_app/immutable/nodes/25.B_7VqHJ6.js +0 -39
  184. package/studio-dist/server/chunks/1-ClOr3JN3.js +0 -9
@@ -27,10 +27,13 @@ import {
27
27
  } from "./chunk-RBI6IBDF.js";
28
28
  import {
29
29
  doctorToolLocksCommand
30
- } from "./chunk-TUUKU4H7.js";
30
+ } from "./chunk-5AL6B3J2.js";
31
31
  import {
32
32
  doctorTwinCollapseCommand
33
33
  } from "./chunk-5IFMSDWF.js";
34
+ import {
35
+ doctorTypeMatrixCommand
36
+ } from "./chunk-RYGY5LG4.js";
34
37
  import {
35
38
  doctorWorktreeStoresCommand
36
39
  } from "./chunk-T2TE45UH.js";
@@ -129,7 +132,7 @@ import {
129
132
  import {
130
133
  dispatchFromCli,
131
134
  dispatchRaw
132
- } from "./chunk-OIS3BDSL.js";
135
+ } from "./chunk-K6I66OSL.js";
133
136
  import "./chunk-6N6WGLXE.js";
134
137
  import "./chunk-4VASFLUW.js";
135
138
  import {
@@ -143,7 +146,7 @@ import {
143
146
  } from "./chunk-ESI6Q4OS.js";
144
147
  import "./chunk-6JSJNYH2.js";
145
148
  import "./chunk-D7BAQNV2.js";
146
- import "./chunk-JRDAITPC.js";
149
+ import "./chunk-V3ZUZYBZ.js";
147
150
 
148
151
  // packages/cleo/src/cli/commands/doctor.ts
149
152
  import { mkdirSync, writeFileSync } from "node:fs";
@@ -552,6 +555,8 @@ var doctorCommand = defineCommand({
552
555
  "ac-bindings": doctorAcBindingsCommand,
553
556
  // T12886 — stored task dependency cycles + repair plan (read-only)
554
557
  "dep-cycles": doctorDepCyclesCommand,
558
+ // T14096 — parent/child type-matrix violations: plan, --apply with a receipt, --rollback
559
+ "type-matrix": doctorTypeMatrixCommand,
555
560
  // T12158 — tables nexus resolves by bare name must actually live where it assumes
556
561
  "nexus-residency": doctorNexusResidencyCommand,
557
562
  // T12113 (gh#1222) — evidence-tool semaphore holders + orphan reaping
@@ -1280,4 +1285,4 @@ Dependency cycles: check skipped (${msg})`);
1280
1285
  export {
1281
1286
  doctorCommand
1282
1287
  };
1283
- //# sourceMappingURL=doctor-4DWCNDOP.js.map
1288
+ //# sourceMappingURL=doctor-AYEY3IAL.js.map
@@ -15,7 +15,7 @@
15
15
  })();
16
16
  import {
17
17
  doctorToolLocksCommand
18
- } from "./chunk-TUUKU4H7.js";
18
+ } from "./chunk-5AL6B3J2.js";
19
19
  import "./chunk-VIZSF3NL.js";
20
20
  import "./chunk-IVN46UST.js";
21
21
  import "./chunk-ESI6Q4OS.js";
@@ -23,4 +23,4 @@ import "./chunk-6JSJNYH2.js";
23
23
  export {
24
24
  doctorToolLocksCommand
25
25
  };
26
- //# sourceMappingURL=doctor-tool-locks-VXKJZKAY.js.map
26
+ //# sourceMappingURL=doctor-tool-locks-3ZT2LXRY.js.map
@@ -14,13 +14,13 @@
14
14
  };
15
15
  })();
16
16
  import {
17
- CanonDocsDiffError,
18
- loadCanonRegistry,
19
- runCanonDocsCheck
20
- } from "./chunk-SXXOC6KZ.js";
17
+ doctorTypeMatrixCommand
18
+ } from "./chunk-RYGY5LG4.js";
19
+ import "./chunk-VIZSF3NL.js";
20
+ import "./chunk-IVN46UST.js";
21
+ import "./chunk-ESI6Q4OS.js";
22
+ import "./chunk-6JSJNYH2.js";
21
23
  export {
22
- CanonDocsDiffError,
23
- loadCanonRegistry,
24
- runCanonDocsCheck
24
+ doctorTypeMatrixCommand
25
25
  };
26
- //# sourceMappingURL=canon-docs-2GTOLF7Y.js.map
26
+ //# sourceMappingURL=doctor-type-matrix-DD233VK2.js.map
@@ -16,14 +16,14 @@
16
16
  import {
17
17
  completeCommandArgs,
18
18
  completeDispatchParams
19
- } from "./chunk-PGR4RWQL.js";
19
+ } from "./chunk-2AT5ALNQ.js";
20
20
  import {
21
21
  negatedFlag
22
22
  } from "./chunk-47JYZAMS.js";
23
23
  import "./chunk-VIZSF3NL.js";
24
24
  import {
25
25
  dispatchRaw
26
- } from "./chunk-OIS3BDSL.js";
26
+ } from "./chunk-K6I66OSL.js";
27
27
  import "./chunk-6N6WGLXE.js";
28
28
  import "./chunk-4VASFLUW.js";
29
29
  import {
@@ -38,7 +38,7 @@ import {
38
38
  withoutOutputPointer
39
39
  } from "./chunk-6JSJNYH2.js";
40
40
  import "./chunk-D7BAQNV2.js";
41
- import "./chunk-JRDAITPC.js";
41
+ import "./chunk-V3ZUZYBZ.js";
42
42
 
43
43
  // packages/cleo/src/cli/commands/done.ts
44
44
  async function doneBatchEntry(taskId, result, args) {
@@ -78,6 +78,39 @@ async function runBatchDone(taskIds, args, options, plan) {
78
78
  );
79
79
  process.exitCode = 1;
80
80
  }
81
+ async function fromMergeCommand(args, projectRoot) {
82
+ const target = String(args["from-merge"]);
83
+ const prNumber = /^\d+$/.test(target) ? Number(target) : null;
84
+ if (prNumber === null && target !== "all") {
85
+ cliError(`--from-merge takes a PR number or "all", got "${target}"`, "E_INVALID_INPUT");
86
+ process.exitCode = 2;
87
+ return;
88
+ }
89
+ const mergeClose = await import("@cleocode/core/tasks/merge-close.js");
90
+ if (process.env["CLEO_MERGE_SWEEP_CHILD"] === "1")
91
+ setTimeout(() => process.exit(124), mergeClose.MERGE_SWEEP_CHILD_TIMEOUT_MS).unref();
92
+ if (args.receipt === true) {
93
+ const judged = prNumber === null ? null : await mergeClose.mergeReceiptFor(projectRoot, prNumber, {
94
+ comment: args.comment === true
95
+ });
96
+ if (judged === null) {
97
+ cliError(
98
+ `--receipt needs one merged PR number that gh can read (got "${target}")`,
99
+ "E_NOT_FOUND"
100
+ );
101
+ process.exitCode = 4;
102
+ return;
103
+ }
104
+ return cliOutput(judged, { command: "done", operation: "tasks.done.receipt" });
105
+ }
106
+ const result = await mergeClose.sweepMergedClosures(projectRoot, {
107
+ force: true,
108
+ ...prNumber !== null ? { prNumbers: [prNumber] } : {},
109
+ ...typeof args.since === "string" ? { since: args.since } : {},
110
+ ...args["dry-run"] === true ? { dryRun: true } : {}
111
+ });
112
+ cliOutput(result, { command: "done", operation: "tasks.done.fromMerge" });
113
+ }
81
114
  var doneCommand = defineCommand({
82
115
  meta: {
83
116
  name: "done",
@@ -85,6 +118,31 @@ var doneCommand = defineCommand({
85
118
  },
86
119
  args: {
87
120
  ...completeCommandArgs,
121
+ taskId: {
122
+ ...completeCommandArgs.taskId,
123
+ required: false,
124
+ description: "ID of the task to record and complete (omit with --from-merge)"
125
+ },
126
+ "from-merge": {
127
+ type: "string",
128
+ description: `Close the tasks a merged PR names (T14101): "<pr>" for one PR, "all" for every PR merged since the last sweep. Reads the body's "Closes: T#### AC1,AC2" (complete once merged PRs bind every criterion) and "Refs: T#### AC1" (bind, stay open) lines; needs green required checks on the PR head and evidence.ciSatisfies. Idempotent; refusals are commented on the PR once.`
129
+ },
130
+ since: {
131
+ type: "string",
132
+ description: "With --from-merge all: only PRs merged at or after this ISO time"
133
+ },
134
+ "dry-run": {
135
+ type: "boolean",
136
+ description: "With --from-merge: print what would be recorded; record, complete and comment nothing"
137
+ },
138
+ receipt: {
139
+ type: "boolean",
140
+ description: "With --from-merge <pr>: judge the PR without a task store (the CI job's half) and print its receipt"
141
+ },
142
+ comment: {
143
+ type: "boolean",
144
+ description: "With --receipt: post the receipt on the PR"
145
+ },
88
146
  "if-match": {
89
147
  type: "string",
90
148
  description: "Refuse with E_CONFLICT, before recording any gate, unless the task updatedAt still equals this version (from cleo show). One task id only."
@@ -114,7 +172,17 @@ var doneCommand = defineCommand({
114
172
  description: "Acknowledge that the same evidence atom (e.g. ci:<pr>) is applied to >3 tasks in this session, as `cleo verify --shared-evidence` does (T14072). Without it the reuse warns W_EVIDENCE_AUDIT_MISS; under CLEO_STRICT_EVIDENCE=1 it is refused."
115
173
  }
116
174
  },
117
- async run({ args }) {
175
+ async run({ args: raw }) {
176
+ if (raw["from-merge"] !== void 0) {
177
+ const { getProjectRoot: getProjectRoot2 } = await import("@cleocode/core/paths.js");
178
+ return fromMergeCommand(raw, getProjectRoot2());
179
+ }
180
+ if (typeof raw.taskId !== "string" || raw.taskId === "") {
181
+ cliError("cleo done needs a task id (or --from-merge <pr|all>)", "E_INVALID_INPUT");
182
+ process.exitCode = 2;
183
+ return;
184
+ }
185
+ const args = { ...raw, taskId: raw.taskId };
118
186
  const { parseDoneOptions, planTaskDone } = await import("@cleocode/core/tasks/done-plan.js");
119
187
  const parsed = parseDoneOptions(args.satisfies, args.pr, args.commit);
120
188
  if (!parsed.ok) {
@@ -217,4 +285,4 @@ export {
217
285
  doneBatchEntry,
218
286
  doneCommand
219
287
  };
220
- //# sourceMappingURL=done-A7ITQSJT.js.map
288
+ //# sourceMappingURL=done-TZ5KBKEY.js.map
@@ -17,7 +17,7 @@ import {
17
17
  dispatchFromCli,
18
18
  dispatchRaw,
19
19
  handleRawError
20
- } from "./chunk-OIS3BDSL.js";
20
+ } from "./chunk-K6I66OSL.js";
21
21
  import "./chunk-6N6WGLXE.js";
22
22
  import "./chunk-4VASFLUW.js";
23
23
  import {
@@ -27,7 +27,7 @@ import "./chunk-QKMBWYAS.js";
27
27
  import "./chunk-ESI6Q4OS.js";
28
28
  import "./chunk-6JSJNYH2.js";
29
29
  import "./chunk-D7BAQNV2.js";
30
- import "./chunk-JRDAITPC.js";
30
+ import "./chunk-V3ZUZYBZ.js";
31
31
 
32
32
  // packages/cleo/src/cli/commands/export.ts
33
33
  var exportCommand = defineCommand({
@@ -90,4 +90,4 @@ var exportCommand = defineCommand({
90
90
  export {
91
91
  exportCommand
92
92
  };
93
- //# sourceMappingURL=export-OTDQUAQQ.js.map
93
+ //# sourceMappingURL=export-2PN64KYZ.js.map
@@ -17,7 +17,7 @@ import {
17
17
  dispatchFromCli,
18
18
  dispatchRaw,
19
19
  handleRawError
20
- } from "./chunk-OIS3BDSL.js";
20
+ } from "./chunk-K6I66OSL.js";
21
21
  import "./chunk-6N6WGLXE.js";
22
22
  import "./chunk-4VASFLUW.js";
23
23
  import {
@@ -27,7 +27,7 @@ import "./chunk-QKMBWYAS.js";
27
27
  import "./chunk-ESI6Q4OS.js";
28
28
  import "./chunk-6JSJNYH2.js";
29
29
  import "./chunk-D7BAQNV2.js";
30
- import "./chunk-JRDAITPC.js";
30
+ import "./chunk-V3ZUZYBZ.js";
31
31
 
32
32
  // packages/cleo/src/cli/commands/export-tasks.ts
33
33
  var exportTasksCommand = defineCommand({
@@ -94,4 +94,4 @@ var exportTasksCommand = defineCommand({
94
94
  export {
95
95
  exportTasksCommand
96
96
  };
97
- //# sourceMappingURL=export-tasks-BKVXMFLD.js.map
97
+ //# sourceMappingURL=export-tasks-VDM7OZG5.js.map
@@ -17,7 +17,7 @@ import {
17
17
  dispatchRaw,
18
18
  handleRawError,
19
19
  maybeEmitDescribe
20
- } from "./chunk-OIS3BDSL.js";
20
+ } from "./chunk-K6I66OSL.js";
21
21
  import "./chunk-6N6WGLXE.js";
22
22
  import "./chunk-4VASFLUW.js";
23
23
  import {
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-ESI6Q4OS.js";
30
30
  import "./chunk-6JSJNYH2.js";
31
31
  import "./chunk-D7BAQNV2.js";
32
- import "./chunk-JRDAITPC.js";
32
+ import "./chunk-V3ZUZYBZ.js";
33
33
 
34
34
  // packages/cleo/src/cli/commands/find.ts
35
35
  import { ExitCode } from "@cleocode/contracts/exit-codes.js";
@@ -175,4 +175,4 @@ var findCommand = defineCommand({
175
175
  export {
176
176
  findCommand
177
177
  };
178
- //# sourceMappingURL=find-BWKYKZEN.js.map
178
+ //# sourceMappingURL=find-5XG5EKE3.js.map
@@ -15,7 +15,7 @@
15
15
  })();
16
16
  import {
17
17
  dispatchFromCli
18
- } from "./chunk-OIS3BDSL.js";
18
+ } from "./chunk-K6I66OSL.js";
19
19
  import "./chunk-6N6WGLXE.js";
20
20
  import "./chunk-4VASFLUW.js";
21
21
  import {
@@ -25,7 +25,7 @@ import "./chunk-QKMBWYAS.js";
25
25
  import "./chunk-ESI6Q4OS.js";
26
26
  import "./chunk-6JSJNYH2.js";
27
27
  import "./chunk-D7BAQNV2.js";
28
- import "./chunk-JRDAITPC.js";
28
+ import "./chunk-V3ZUZYBZ.js";
29
29
 
30
30
  // packages/cleo/src/cli/commands/focus.ts
31
31
  var focusCommand = defineCommand({
@@ -53,4 +53,4 @@ var focusCommand = defineCommand({
53
53
  export {
54
54
  focusCommand
55
55
  };
56
- //# sourceMappingURL=focus-772SYK7Z.js.map
56
+ //# sourceMappingURL=focus-ZL4LN3ME.js.map
@@ -92,7 +92,7 @@ var closeCommand = defineCommand({
92
92
  const completions = [];
93
93
  if (ready.length > 0) {
94
94
  const { recordTasksDone } = await import("@cleocode/core/tasks/done-record.js");
95
- const { doneBatchEntry } = await import("./done-A7ITQSJT.js");
95
+ const { doneBatchEntry } = await import("./done-TZ5KBKEY.js");
96
96
  for (const task of ready) {
97
97
  const commit = task.completionCommit ? { commit: task.completionCommit } : {};
98
98
  for (const { taskId, result } of await recordTasksDone([task.taskId], {
@@ -189,4 +189,4 @@ var goalCommand = defineCommand({
189
189
  export {
190
190
  goalCommand
191
191
  };
192
- //# sourceMappingURL=goal-TG74GKBK.js.map
192
+ //# sourceMappingURL=goal-TIQWF5PH.js.map
@@ -15,7 +15,7 @@
15
15
  })();
16
16
  import {
17
17
  dispatchFromCli
18
- } from "./chunk-OIS3BDSL.js";
18
+ } from "./chunk-K6I66OSL.js";
19
19
  import "./chunk-6N6WGLXE.js";
20
20
  import "./chunk-4VASFLUW.js";
21
21
  import {
@@ -25,7 +25,7 @@ import "./chunk-QKMBWYAS.js";
25
25
  import "./chunk-ESI6Q4OS.js";
26
26
  import "./chunk-6JSJNYH2.js";
27
27
  import "./chunk-D7BAQNV2.js";
28
- import "./chunk-JRDAITPC.js";
28
+ import "./chunk-V3ZUZYBZ.js";
29
29
 
30
30
  // packages/cleo/src/cli/commands/grade.ts
31
31
  var gradeCommand = defineCommand({
@@ -54,4 +54,4 @@ var gradeCommand = defineCommand({
54
54
  export {
55
55
  gradeCommand
56
56
  };
57
- //# sourceMappingURL=grade-BZYBWDA7.js.map
57
+ //# sourceMappingURL=grade-4Q4VAS6D.js.map
@@ -20,7 +20,7 @@ import {
20
20
  dispatchFromCli,
21
21
  dispatchRaw,
22
22
  reportRawError
23
- } from "./chunk-OIS3BDSL.js";
23
+ } from "./chunk-K6I66OSL.js";
24
24
  import "./chunk-6N6WGLXE.js";
25
25
  import "./chunk-4VASFLUW.js";
26
26
  import {
@@ -38,7 +38,7 @@ import {
38
38
  setFormatContext
39
39
  } from "./chunk-6JSJNYH2.js";
40
40
  import "./chunk-D7BAQNV2.js";
41
- import "./chunk-JRDAITPC.js";
41
+ import "./chunk-V3ZUZYBZ.js";
42
42
 
43
43
  // packages/cleo/src/cli/commands/graph.ts
44
44
  import path from "node:path";
@@ -861,4 +861,4 @@ var graphCommand = defineCommand({
861
861
  export {
862
862
  graphCommand
863
863
  };
864
- //# sourceMappingURL=graph-LB2TBRH6.js.map
864
+ //# sourceMappingURL=graph-T5NO6IO5.js.map
@@ -15,7 +15,7 @@
15
15
  })();
16
16
  import {
17
17
  dispatchFromCli
18
- } from "./chunk-OIS3BDSL.js";
18
+ } from "./chunk-K6I66OSL.js";
19
19
  import "./chunk-6N6WGLXE.js";
20
20
  import "./chunk-4VASFLUW.js";
21
21
  import {
@@ -26,7 +26,7 @@ import "./chunk-QKMBWYAS.js";
26
26
  import "./chunk-ESI6Q4OS.js";
27
27
  import "./chunk-6JSJNYH2.js";
28
28
  import "./chunk-D7BAQNV2.js";
29
- import "./chunk-JRDAITPC.js";
29
+ import "./chunk-V3ZUZYBZ.js";
30
30
 
31
31
  // packages/cleo/src/cli/commands/history.ts
32
32
  var logCommand = defineCommand({
@@ -135,4 +135,4 @@ var historyCommand = defineCommand({
135
135
  export {
136
136
  historyCommand
137
137
  };
138
- //# sourceMappingURL=history-XIYAXOUF.js.map
138
+ //# sourceMappingURL=history-LMP6PSUW.js.map
@@ -15,7 +15,7 @@
15
15
  })();
16
16
  import {
17
17
  dispatchFromCli
18
- } from "./chunk-OIS3BDSL.js";
18
+ } from "./chunk-K6I66OSL.js";
19
19
  import "./chunk-6N6WGLXE.js";
20
20
  import "./chunk-4VASFLUW.js";
21
21
  import {
@@ -26,7 +26,7 @@ import "./chunk-QKMBWYAS.js";
26
26
  import "./chunk-ESI6Q4OS.js";
27
27
  import "./chunk-6JSJNYH2.js";
28
28
  import "./chunk-D7BAQNV2.js";
29
- import "./chunk-JRDAITPC.js";
29
+ import "./chunk-V3ZUZYBZ.js";
30
30
 
31
31
  // packages/cleo/src/cli/commands/import.ts
32
32
  var importCommand = defineCommand({
@@ -86,4 +86,4 @@ var importCommand = defineCommand({
86
86
  export {
87
87
  importCommand
88
88
  };
89
- //# sourceMappingURL=import-C2QISQC7.js.map
89
+ //# sourceMappingURL=import-RDVVHET4.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-47JYZAMS.js";
19
19
  import {
20
20
  dispatchFromCli
21
- } from "./chunk-OIS3BDSL.js";
21
+ } from "./chunk-K6I66OSL.js";
22
22
  import "./chunk-6N6WGLXE.js";
23
23
  import "./chunk-4VASFLUW.js";
24
24
  import {
@@ -28,7 +28,7 @@ import "./chunk-QKMBWYAS.js";
28
28
  import "./chunk-ESI6Q4OS.js";
29
29
  import "./chunk-6JSJNYH2.js";
30
30
  import "./chunk-D7BAQNV2.js";
31
- import "./chunk-JRDAITPC.js";
31
+ import "./chunk-V3ZUZYBZ.js";
32
32
 
33
33
  // packages/cleo/src/cli/commands/import-tasks.ts
34
34
  var importTasksCommand = defineCommand({
@@ -106,4 +106,4 @@ var importTasksCommand = defineCommand({
106
106
  export {
107
107
  importTasksCommand
108
108
  };
109
- //# sourceMappingURL=import-tasks-P6FYXAAS.js.map
109
+ //# sourceMappingURL=import-tasks-GQAD4JBU.js.map