@cleocode/cleo 2026.10.4 → 2026.10.5-rc.ci.672

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 (331) hide show
  1. package/README.md +7 -0
  2. package/dist/cli/{adapter-LVXHFBC4.js → adapter-OUQRSFZL.js} +10 -9
  3. package/dist/cli/{add-WUAV7LDT.js → add-4SRRJL4U.js} +18 -18
  4. package/dist/cli/{add-batch-U2DLKAQC.js → add-batch-TSWICA5J.js} +12 -11
  5. package/dist/cli/admin-L3F6CDYH.js +1428 -0
  6. package/dist/cli/{admin-I7BQYVZD.js → admin-YMU55YCU.js} +10 -9
  7. package/dist/cli/{adr-K2THMQBS.js → adr-XESRMFMP.js} +10 -9
  8. package/dist/cli/{agent-WQ6XY2DW.js → agent-TAFPIYUU.js} +66 -28
  9. package/dist/cli/{agent-outputs-BJIYLVTU.js → agent-outputs-HVJJIPS4.js} +3 -3
  10. package/dist/cli/{analyze-PGQZWGOC.js → analyze-YQ22QVGW.js} +10 -9
  11. package/dist/cli/{archive-5LZPF7C3.js → archive-W5XX6AH7.js} +10 -9
  12. package/dist/cli/{archive-stats-U6CYC6JM.js → archive-stats-HP2KPAJU.js} +10 -9
  13. package/dist/cli/attention-7JBDCRZX.js +124 -0
  14. package/dist/cli/{attention-SOURWCNI.js → attention-ZXZANHKC.js} +13 -12
  15. package/dist/cli/{audit-FO2Y4LH2.js → audit-ICA2SEFN.js} +2 -2
  16. package/dist/cli/{auth-ED7TAIXI.js → auth-DXIG5OG7.js} +5 -5
  17. package/dist/cli/{backfill-32TRAYRD.js → backfill-LBSYBWLR.js} +2 -2
  18. package/dist/cli/{backup-LEJMZJKL.js → backup-NUGBZ7NA.js} +17 -16
  19. package/dist/cli/{backup-inspect-6HPLUEI2.js → backup-inspect-PDRXI45A.js} +3 -3
  20. package/dist/cli/{backup-recover-2BTYBZU2.js → backup-recover-TVKAPERB.js} +3 -3
  21. package/dist/cli/{blockers-5JULUJTV.js → blockers-ZOPCGHDW.js} +10 -9
  22. package/dist/cli/{brain-273N3FW4.js → brain-EJOBKL4A.js} +9 -12
  23. package/dist/cli/{briefing-7H6OLECX.js → briefing-RDQJ6WHS.js} +11 -10
  24. package/dist/cli/{caamp-MFQVN6VU.js → caamp-Z3XPKEHB.js} +2 -2
  25. package/dist/cli/{cancel-SCMJTXZB.js → cancel-S7EHLCJN.js} +10 -9
  26. package/dist/cli/{cant-46XCUP4P.js → cant-CHNN6O57.js} +2 -2
  27. package/dist/cli/{changeset-32NMBGG2.js → changeset-RYPHPN2B.js} +4 -6
  28. package/dist/cli/check-C67YAU7W.js +759 -0
  29. package/dist/cli/{check-RWJLBCI2.js → check-DHMURGHC.js} +30 -13
  30. package/dist/cli/{checkpoint-37HMMKD7.js → checkpoint-UWDFOGYQ.js} +3 -3
  31. package/dist/cli/{chunk-NRKWJLMS.js → chunk-22YPFZYB.js} +2 -2
  32. package/dist/cli/{chunk-I3CRQQAD.js → chunk-2MGFDMDF.js} +84 -37
  33. package/dist/cli/{chunk-BCEXRFA2.js → chunk-4JYHPP4C.js} +2 -2
  34. package/dist/cli/{chunk-A2IUEIM5.js → chunk-4PEODTHY.js} +2 -2
  35. package/dist/cli/{chunk-3ZO3M37V.js → chunk-4RGSNUUP.js} +118 -170
  36. package/dist/cli/{chunk-AWCQH2W5.js → chunk-4VASFLUW.js} +2 -2
  37. package/dist/cli/{chunk-BPEVD37G.js → chunk-5PNI276X.js} +2 -2
  38. package/dist/cli/{chunk-OGV57L4J.js → chunk-6N6WGLXE.js} +6 -2
  39. package/dist/cli/{chunk-KHB52JNB.js → chunk-75UH3BLS.js} +4 -3
  40. package/dist/cli/{chunk-5ZFFUFH7.js → chunk-7ACK4EIN.js} +2 -2
  41. package/dist/cli/{chunk-MNJRLSEQ.js → chunk-7NMKLVMI.js} +2 -2
  42. package/dist/cli/{chunk-GFGLLDXX.js → chunk-7SINJXB6.js} +2 -2
  43. package/dist/cli/{chunk-KJDWWQFY.js → chunk-7UARFJYS.js} +3 -3
  44. package/dist/cli/{chunk-JNZJPIPJ.js → chunk-7ZYPQV4N.js} +3 -3
  45. package/dist/cli/{chunk-DVTPIZJM.js → chunk-AQCYT3L4.js} +2 -2
  46. package/dist/cli/{chunk-EGOTK2HA.js → chunk-BQK6XTOH.js} +2 -2
  47. package/dist/cli/{chunk-DYABOIHB.js → chunk-CAPAGD5E.js} +6 -4
  48. package/dist/cli/{chunk-ZZTHTMQP.js → chunk-CHGEDCKG.js} +3 -3
  49. package/dist/cli/{chunk-QPUY2HQZ.js → chunk-COXFJ3PT.js} +2 -2
  50. package/dist/cli/chunk-D7BAQNV2.js +55 -0
  51. package/dist/cli/{chunk-OPTEQKBB.js → chunk-EIUXVHNF.js} +3 -3
  52. package/dist/cli/{chunk-3PGH67MT.js → chunk-EUGB6P5V.js} +4 -6
  53. package/dist/cli/chunk-EW2CKNNZ.js +304 -0
  54. package/dist/cli/{chunk-2JIJD2I7.js → chunk-FSKN4DWC.js} +2 -2
  55. package/dist/cli/{chunk-NSHV2JNM.js → chunk-FVKLULL7.js} +2 -2
  56. package/dist/cli/{chunk-GH37QXW5.js → chunk-GAGUBU4Z.js} +2 -2
  57. package/dist/cli/{chunk-37NU2XDP.js → chunk-GKRFH2YG.js} +2 -2
  58. package/dist/cli/{chunk-ULN4OKQQ.js → chunk-GRU74UE4.js} +21 -10
  59. package/dist/cli/{chunk-LKNUA3SB.js → chunk-HFLLZE6A.js} +2 -2
  60. package/dist/cli/{chunk-YGKEECTI.js → chunk-HXRXT3XU.js} +2 -2
  61. package/dist/cli/{chunk-REUTEW3O.js → chunk-IIOGUY3B.js} +6 -6
  62. package/dist/cli/chunk-ILWWL462.js +60 -0
  63. package/dist/cli/{chunk-XRAX6XFP.js → chunk-J5USPJKZ.js} +2 -2
  64. package/dist/cli/{chunk-S24YI723.js → chunk-KEQS36GD.js} +4 -4
  65. package/dist/cli/chunk-L7ONYSV6.js +2497 -0
  66. package/dist/cli/chunk-NEFMQYLE.js +656 -0
  67. package/dist/cli/{chunk-QFFQSKRC.js → chunk-NU6CQQVB.js} +6 -2
  68. package/dist/cli/{chunk-5J2VH3BC.js → chunk-PN4WW5VX.js} +3 -3
  69. package/dist/cli/{chunk-AYA6F4ZT.js → chunk-PSJ33WVO.js} +3 -3
  70. package/dist/cli/{chunk-FORFDPP5.js → chunk-QJJWWCIC.js} +3 -3
  71. package/dist/cli/{chunk-ZBISIPCK.js → chunk-QKMBWYAS.js} +16 -1
  72. package/dist/cli/chunk-QWNKLLLG.js +84 -0
  73. package/dist/cli/{chunk-7INMKEAD.js → chunk-QWUFFDL3.js} +2 -2
  74. package/dist/cli/chunk-QY76BRUZ.js +35 -0
  75. package/dist/cli/chunk-R45KVF5Y.js +117 -0
  76. package/dist/cli/{chunk-W33Q3FBH.js → chunk-RRKP7HLU.js} +3 -3
  77. package/dist/cli/{chunk-YUZJI67I.js → chunk-T6GZJYL3.js} +2 -2
  78. package/dist/cli/{chunk-LWQBJQSE.js → chunk-TLQ37HRE.js} +3 -3
  79. package/dist/cli/chunk-TPTNEJZJ.js +52 -0
  80. package/dist/cli/chunk-TYC7G5LF.js +100 -0
  81. package/dist/cli/{chunk-J3ZFM3UQ.js → chunk-UWCZY52R.js} +25 -13
  82. package/dist/cli/{chunk-V5GBGOGM.js → chunk-VB3LDPL5.js} +2 -2
  83. package/dist/cli/chunk-WWCYZYSN.js +56 -0
  84. package/dist/cli/{chunk-EBRZ76HS.js → chunk-XA5WISNV.js} +4 -3
  85. package/dist/cli/chunk-XHRZ7OYZ.js +132 -0
  86. package/dist/cli/{chunk-EOPQFCSR.js → chunk-XLPMIGJJ.js} +6 -6
  87. package/dist/cli/{chunk-NWTATTEQ.js → chunk-ZMGDZMSJ.js} +2 -2
  88. package/dist/cli/{claim-KPENYHIQ.js → claim-IGOG2QOC.js} +10 -9
  89. package/dist/cli/{classify-DRVMCFQU.js → classify-MG4N7GMQ.js} +2 -2
  90. package/dist/cli/{cli-T3CR7J57.js → cli-A23Q335V.js} +10 -7
  91. package/dist/cli/{cloud-PPQ4O5TX.js → cloud-SILYJVKO.js} +194 -28
  92. package/dist/cli/{code-Z5CTMVTD.js → code-H2FQCVMW.js} +2 -2
  93. package/dist/cli/{complete-UBOCOBRB.js → complete-JLX7NBI4.js} +9 -8
  94. package/dist/cli/{complexity-BV2AGQRZ.js → complexity-OKV7PVZH.js} +10 -9
  95. package/dist/cli/{compliance-32PD5Y47.js → compliance-QMGZHJNQ.js} +10 -9
  96. package/dist/cli/{conduit-VDKCH33F.js → conduit-4H32UYEA.js} +10 -9
  97. package/dist/cli/conduit-EY54WTZA.js +535 -0
  98. package/dist/cli/{config-I72JAXK4.js → config-TDYOC7XO.js} +21 -18
  99. package/dist/cli/{consensus-LFILLSTK.js → consensus-4XCOFPPT.js} +10 -9
  100. package/dist/cli/{context-XUUVFVTP.js → context-FN4YTGHD.js} +12 -11
  101. package/dist/cli/{contribution-37NQ4N5R.js → contribution-7RWFBJLC.js} +10 -9
  102. package/dist/cli/{curator-TFDXU2EX.js → curator-HKZJCVRL.js} +2 -2
  103. package/dist/cli/{current-C4SN5BWV.js → current-B2NU7V3G.js} +10 -9
  104. package/dist/cli/{daemon-DV25JQ62.js → daemon-GBD4TVCD.js} +11 -10
  105. package/dist/cli/{dash-TFU4RLQW.js → dash-IGDANIE5.js} +10 -9
  106. package/dist/cli/{decide-5VPMNTSI.js → decide-26SXC2V6.js} +5 -8
  107. package/dist/cli/{decompose-KOYEZNJL.js → decompose-LQ76TEZG.js} +11 -10
  108. package/dist/cli/{decomposition-7OHUFIQN.js → decomposition-WFRWNUSJ.js} +10 -9
  109. package/dist/cli/{delete-Q7YCAFY5.js → delete-T5DUQHOX.js} +11 -10
  110. package/dist/cli/{deps-6UZKLDGJ.js → deps-UTPZJBXL.js} +17 -18
  111. package/dist/cli/{detect-FERY35UL.js → detect-FFZSMVDT.js} +10 -9
  112. package/dist/cli/{detect-drift-UL2JTPUK.js → detect-drift-TVCJOFYJ.js} +7 -7
  113. package/dist/cli/diagnostics-GN5CVD3N.js +93 -0
  114. package/dist/cli/{diagnostics-TI5QAZXR.js → diagnostics-ZNBKH6GX.js} +10 -9
  115. package/dist/cli/docs-CLQKEEUK.js +1710 -0
  116. package/dist/cli/{docs-QI2PRN3T.js → docs-DPPDFTWR.js} +45 -42
  117. package/dist/cli/{doctor-AX5TICQO.js → doctor-GPENOP4N.js} +79 -62
  118. package/dist/cli/{doctor-ac-bindings-YPMYHU2G.js → doctor-ac-bindings-S3IOEFP4.js} +3 -3
  119. package/dist/cli/{doctor-acceptance-drift-PYNFGMKB.js → doctor-acceptance-drift-VNFKPBSQ.js} +3 -3
  120. package/dist/cli/{doctor-credentials-UZRIADKM.js → doctor-credentials-A5H4JMTF.js} +3 -3
  121. package/dist/cli/{doctor-db-substrate-Q2TOYM2S.js → doctor-db-substrate-FGCISE4Z.js} +3 -3
  122. package/dist/cli/{doctor-dep-cycles-GCVYZY6F.js → doctor-dep-cycles-BKKKHHYG.js} +3 -3
  123. package/dist/cli/{doctor-exodus-RO5SUTC2.js → doctor-exodus-ND2DH2KP.js} +3 -3
  124. package/dist/cli/{doctor-exodus-residue-EM2AWQXP.js → doctor-exodus-residue-4EMRYMEQ.js} +3 -3
  125. package/dist/cli/{doctor-fk-check-Q3FOLECE.js → doctor-fk-check-VY3RIQV3.js} +3 -3
  126. package/dist/cli/{doctor-global-delivery-TNOAQ3NP.js → doctor-global-delivery-JN6IGHUL.js} +3 -3
  127. package/dist/cli/{doctor-heavy-command-hook-IO3QAQLG.js → doctor-heavy-command-hook-XSN44WXU.js} +3 -3
  128. package/dist/cli/{doctor-legacy-backups-O2YH5VLS.js → doctor-legacy-backups-QAG5NHYP.js} +3 -3
  129. package/dist/cli/{doctor-legacy-reaper-VSEJEIFA.js → doctor-legacy-reaper-CIRGFE6R.js} +3 -3
  130. package/dist/cli/{doctor-malformed-ids-LQ766V5K.js → doctor-malformed-ids-WL7HT4TB.js} +3 -3
  131. package/dist/cli/{doctor-manifest-rows-6FQDNHLH.js → doctor-manifest-rows-SMQCKJ2T.js} +3 -3
  132. package/dist/cli/{doctor-memory-guard-J4PSEKB5.js → doctor-memory-guard-LJDOJG76.js} +3 -3
  133. package/dist/cli/{doctor-migrations-ONOH56YM.js → doctor-migrations-ETQPFNUP.js} +3 -3
  134. package/dist/cli/{doctor-nexus-residency-FUQAX7PV.js → doctor-nexus-residency-A4JMKBEJ.js} +3 -3
  135. package/dist/cli/{doctor-project-identity-GUDK3HYX.js → doctor-project-identity-FFQJ5LNX.js} +3 -3
  136. package/dist/cli/{doctor-projects-7L3BNL4O.js → doctor-projects-MFUTKRHP.js} +3 -3
  137. package/dist/cli/{doctor-projects-registry-TEAVHFQU.js → doctor-projects-registry-76X6VTGM.js} +3 -3
  138. package/dist/cli/{doctor-release-readiness-IEGHX6SL.js → doctor-release-readiness-QJCOPFTK.js} +3 -3
  139. package/dist/cli/{doctor-repair-NBONOSZU.js → doctor-repair-AU76FIKY.js} +3 -3
  140. package/dist/cli/doctor-row-identity-KW6JYZQE.js +26 -0
  141. package/dist/cli/{doctor-skill-fixtures-7Y6L34A3.js → doctor-skill-fixtures-G3T7JUHS.js} +3 -3
  142. package/dist/cli/{doctor-split-brain-TUKIGVHF.js → doctor-split-brain-FUW6L7FS.js} +3 -3
  143. package/dist/cli/{doctor-superseded-store-BHZY2B2L.js → doctor-superseded-store-DUHGSBLC.js} +3 -3
  144. package/dist/cli/doctor-sync-journal-SXMUIKF7.js +26 -0
  145. package/dist/cli/doctor-sync-triggers-6WNJZFRM.js +26 -0
  146. package/dist/cli/{doctor-tool-locks-REQMIVYK.js → doctor-tool-locks-66LSLUBN.js} +3 -3
  147. package/dist/cli/{doctor-twin-collapse-222GOSPE.js → doctor-twin-collapse-AYBYBFC4.js} +3 -3
  148. package/dist/cli/{doctor-worktree-stores-J7TCRVJ3.js → doctor-worktree-stores-C5XEH5OG.js} +3 -3
  149. package/dist/cli/{done-V3AOO65B.js → done-R64XRZ32.js} +11 -10
  150. package/dist/cli/entities-3JIHDIOK.js +361 -0
  151. package/dist/cli/{event-EGNPGE5A.js → event-45KEWV5H.js} +2 -2
  152. package/dist/cli/{exists-H4SDCBPL.js → exists-BEDZS5RI.js} +3 -3
  153. package/dist/cli/{exodus-KALO3B3X.js → exodus-DUX62344.js} +3 -3
  154. package/dist/cli/{export-ROFOCG4M.js → export-C5PQIQ5O.js} +11 -10
  155. package/dist/cli/{export-tasks-US3WBIEQ.js → export-tasks-CUXDZPJB.js} +11 -10
  156. package/dist/cli/{federation-SUIB5QWT.js → federation-ESM35EGG.js} +3 -3
  157. package/dist/cli/{find-YICG4BG6.js → find-5EUZHHQJ.js} +13 -12
  158. package/dist/cli/focus-6AH4KLRO.js +368 -0
  159. package/dist/cli/{focus-TKCZPKOM.js → focus-ANKAIRO5.js} +10 -9
  160. package/dist/cli/{gateway-H4HFDC3E.js → gateway-2GW2KTK3.js} +2 -2
  161. package/dist/cli/{gc-5R2TUY5T.js → gc-CTOQLUSA.js} +2 -2
  162. package/dist/cli/{go-PRQFK5YG.js → go-YJPNHHYT.js} +6 -6
  163. package/dist/cli/{goal-7CZRMLHC.js → goal-4GW4G77D.js} +4 -3
  164. package/dist/cli/{grade-PY2YRPUS.js → grade-25WSZH4X.js} +10 -9
  165. package/dist/cli/{graph-XIXMCFKG.js → graph-JUO3TMF3.js} +11 -10
  166. package/dist/cli/{history-EIXADPAD.js → history-NACNUQTC.js} +10 -9
  167. package/dist/cli/{import-R73SO444.js → import-7ESGL5SS.js} +10 -9
  168. package/dist/cli/{import-tasks-O22FZJ4U.js → import-tasks-FLE2RPBR.js} +10 -9
  169. package/dist/cli/index.js +395 -238
  170. package/dist/cli/{init-IHEJDQWU.js → init-AN4DZ2XO.js} +5 -5
  171. package/dist/cli/{inject-LSRVWNCP.js → inject-HQWA5GWY.js} +10 -9
  172. package/dist/cli/{install-global-4AZUCH6U.js → install-global-YQV4W5OG.js} +2 -2
  173. package/dist/cli/intelligence-OFFNQGHE.js +238 -0
  174. package/dist/cli/{intelligence-2OSFOGD2.js → intelligence-QIC4SN4X.js} +10 -9
  175. package/dist/cli/{issue-IIWEDNFC.js → issue-P5RNMRDG.js} +10 -9
  176. package/dist/cli/{janitor-GPMC7VOR.js → janitor-ZNCFQ7E3.js} +2 -2
  177. package/dist/cli/{labels-5NPOIQXN.js → labels-ORBM3T57.js} +10 -9
  178. package/dist/cli/{lifecycle-4FFS2K2T.js → lifecycle-MHR22TVI.js} +13 -12
  179. package/dist/cli/{list-47KEUGPQ.js → list-LB6GCYYU.js} +14 -13
  180. package/dist/cli/llm-H7LZWQKX.js +130 -0
  181. package/dist/cli/{llm-G5B3I6GD.js → llm-OTJWPMGI.js} +14 -13
  182. package/dist/cli/{llm-cost-S7RS6BVA.js → llm-cost-MLMXEAR4.js} +3 -3
  183. package/dist/cli/{llm-stream-24A45NTS.js → llm-stream-AAEUNKRP.js} +3 -3
  184. package/dist/cli/{log-XF6H2XSD.js → log-W2A5M2NA.js} +10 -9
  185. package/dist/cli/{login-LBPLGHYG.js → login-SIXFFZSP.js} +6 -4
  186. package/dist/cli/{logout-SX4JSJIV.js → logout-G3KVLQQM.js} +5 -5
  187. package/dist/cli/{manifest-NMCW4PIW.js → manifest-G4T6EBSI.js} +10 -9
  188. package/dist/cli/{map-BU72KMGF.js → map-VU5M72TK.js} +10 -9
  189. package/dist/cli/{memory-UHYIVGVM.js → memory-2E27G2G5.js} +17 -21
  190. package/dist/cli/memory-IAEYKXG6.js +1895 -0
  191. package/dist/cli/{migrate-agents-v2-OO7OILZK.js → migrate-agents-v2-A52QIYNJ.js} +3 -3
  192. package/dist/cli/{migrate-claude-mem-EDNYUY3K.js → migrate-claude-mem-TPDW3R4Z.js} +17 -12
  193. package/dist/cli/{next-RZFRG5X7.js → next-SVH4LIDY.js} +10 -9
  194. package/dist/cli/nexus-FPQV2EAF.js +1059 -0
  195. package/dist/cli/{nexus-4S4Z5EVU.js → nexus-XSFXN5E6.js} +14 -13
  196. package/dist/cli/{ops-KR7AWCG3.js → ops-K6LHY5J6.js} +10 -9
  197. package/dist/cli/orchestrate-CZ2J6W3L.js +1650 -0
  198. package/dist/cli/{orchestrate-HOYZY3VX.js → orchestrate-HURUCQFT.js} +13 -11
  199. package/dist/cli/{otel-U7IIRBCT.js → otel-JCNPVJLZ.js} +2 -2
  200. package/dist/cli/{phase-NYZFHUE5.js → phase-VDFRASSO.js} +10 -9
  201. package/dist/cli/pipeline-TCZPOEDR.js +697 -0
  202. package/dist/cli/{pivot-FF2CVUZL.js → pivot-V5MSQZ7L.js} +10 -9
  203. package/dist/cli/{plan-3SL2NTRV.js → plan-SQUGCKSM.js} +10 -9
  204. package/dist/cli/{playbook-2FCBV7N3.js → playbook-L47GLDQD.js} +10 -9
  205. package/dist/cli/playbook-NJVO4R6P.js +33 -0
  206. package/dist/cli/{project-WDX2TGMC.js → project-YZEC7GYF.js} +6 -5
  207. package/dist/cli/{promote-YINYFBZY.js → promote-FINF4HVK.js} +10 -9
  208. package/dist/cli/provenance-3TUWVBFR.js +141 -0
  209. package/dist/cli/{provenance-C7AYD7WG.js → provenance-YZG33JGM.js} +10 -9
  210. package/dist/cli/{provider-QLJEDQBR.js → provider-23JVLLG3.js} +10 -9
  211. package/dist/cli/{reason-JF5BHBM5.js → reason-FHN54O7O.js} +10 -9
  212. package/dist/cli/{reconcile-NMISHDGX.js → reconcile-MOM5T4AX.js} +11 -10
  213. package/dist/cli/{refresh-memory-EY5YNICV.js → refresh-memory-3OSTRAVK.js} +2 -2
  214. package/dist/cli/{relates-R3ZPICAY.js → relates-6FWUFUS2.js} +10 -9
  215. package/dist/cli/release-G2DPSG5M.js +347 -0
  216. package/dist/cli/{release-4ZJTMUUT.js → release-URX6JHZ2.js} +10 -9
  217. package/dist/cli/{remote-QSONJDIK.js → remote-VIULU2T5.js} +3 -3
  218. package/dist/cli/{renderers-64OR3IWX.js → renderers-TGSW77J4.js} +2 -2
  219. package/dist/cli/{reorder-J3DOE7ST.js → reorder-UIPN6TQY.js} +10 -9
  220. package/dist/cli/{reparent-2OUMKEZX.js → reparent-ALOWWUIU.js} +10 -9
  221. package/dist/cli/{req-TZB7OFKO.js → req-RH2Y3H7A.js} +10 -9
  222. package/dist/cli/{research-MTD7EX45.js → research-G2Y72HRC.js} +10 -9
  223. package/dist/cli/{restore-VEUOX7NF.js → restore-VBR5XNML.js} +62 -15
  224. package/dist/cli/{revert-3YF2IL5G.js → revert-32LDNSGP.js} +2 -2
  225. package/dist/cli/{roadmap-7OOQLXKG.js → roadmap-LFU3AG7D.js} +10 -9
  226. package/dist/cli/{run-2U5NZV5Z.js → run-HXRILSR7.js} +40 -6
  227. package/dist/cli/{safestop-VR4VK56D.js → safestop-Z5UC7NGQ.js} +10 -9
  228. package/dist/cli/{saga-SEWPIOX2.js → saga-Y6FZS6AM.js} +12 -11
  229. package/dist/cli/{schema-C52WZ35V.js → schema-OOOKLWUE.js} +5 -5
  230. package/dist/cli/{self-update-GQIGUDPS.js → self-update-26SOTJMH.js} +3 -3
  231. package/dist/cli/{selfimprove-3Y5L4ECT.js → selfimprove-4SMOCLUV.js} +10 -9
  232. package/dist/cli/selfimprove-EB4RQLP4.js +139 -0
  233. package/dist/cli/sentient-QPETVE53.js +254 -0
  234. package/dist/cli/{sentient-M4YMAVGV.js → sentient-RGMWR4XJ.js} +2 -2
  235. package/dist/cli/{sequence-6UBMA4IF.js → sequence-H7DSAJPF.js} +10 -9
  236. package/dist/cli/{service-5R7SILZ7.js → service-EK5MGB2D.js} +10 -9
  237. package/dist/cli/service-GLOMZWPQ.js +437 -0
  238. package/dist/cli/{session-3C6AAC4Y.js → session-HYUXAQGC.js} +12 -11
  239. package/dist/cli/session-N5ISU56W.js +568 -0
  240. package/dist/cli/{setup-BTUBW5PU.js → setup-L3YYV53D.js} +4 -4
  241. package/dist/cli/{show-MXT2V7TF.js → show-364V3KY2.js} +12 -11
  242. package/dist/cli/{skill-GFUZOU2C.js → skill-F2KR6HW5.js} +2 -2
  243. package/dist/cli/{skills-EDWLKAF3.js → skills-FS3DCP6E.js} +13 -12
  244. package/dist/cli/{snapshot-GUWMURCM.js → snapshot-EGXEQ5PR.js} +12 -11
  245. package/dist/cli/{src-66GAKPXR.js → src-LYLXHXHH.js} +2 -2
  246. package/dist/cli/{start-QFG56RGN.js → start-6DXOCCKL.js} +10 -9
  247. package/dist/cli/{stats-GW55P7RR.js → stats-UVUQEGYC.js} +10 -9
  248. package/dist/cli/{status-46HTKNRR.js → status-XLKYLN42.js} +3 -3
  249. package/dist/cli/sticky-VSTQ2I2O.js +264 -0
  250. package/dist/cli/{sticky-2DUZOUGI.js → sticky-XZXZDCFW.js} +12 -11
  251. package/dist/cli/{stop-J2QEUKHX.js → stop-VNOAFWNB.js} +10 -9
  252. package/dist/cli/{sync-GJP2QYT5.js → sync-YYPARW3A.js} +11 -10
  253. package/dist/cli/tasks-C24KHTFF.js +1118 -0
  254. package/dist/cli/{tasks-BNXTM7PB.js → tasks-LBJC7CZV.js} +10 -9
  255. package/dist/cli/{telemetry-55Z2XJWL.js → telemetry-CU7W5WAY.js} +2 -2
  256. package/dist/cli/{templates-7O77TKPV.js → templates-G42JBUY4.js} +9 -11
  257. package/dist/cli/{testing-37YTBNKP.js → testing-HSRITHEY.js} +10 -9
  258. package/dist/cli/{token-UAVJMNUI.js → token-J74E7TSU.js} +10 -9
  259. package/dist/cli/tools-BI74W7VE.js +652 -0
  260. package/dist/cli/{transcript-LORQTV5Z.js → transcript-RGK7RSGQ.js} +2 -2
  261. package/dist/cli/{update-NVCYV2FT.js → update-2KQWA27S.js} +19 -17
  262. package/dist/cli/update-check-entry.js +124 -0
  263. package/dist/cli/update-notice-6SQ6WPQG.js +68 -0
  264. package/dist/cli/upgrade-E2MJAPC7.js +136 -0
  265. package/dist/cli/{upgrade-OXJXOGEF.js → upgrade-XRSQ4RWH.js} +5 -5
  266. package/dist/cli/{verify-LYLDHPT2.js → verify-WASRGDBA.js} +10 -9
  267. package/dist/cli/{web-QP2RP266.js → web-NJ3P67EU.js} +4 -4
  268. package/dist/cli/{workgraph-FXBSZDQE.js → workgraph-OHJ2VKJD.js} +6 -6
  269. package/dist/cli/{worktree-6RXAJIST.js → worktree-FVQLORFY.js} +10 -9
  270. package/dist/cli/worktree-ZJ6JTQNG.js +287 -0
  271. package/package.json +13 -13
  272. package/studio-dist/client/_app/immutable/chunks/{Btgeq_wq.js → AH7dIemv.js} +1 -1
  273. package/studio-dist/client/_app/immutable/chunks/{DgEKqO6r.js → BDgH40i3.js} +1 -1
  274. package/studio-dist/client/_app/immutable/chunks/BXDCSJ7U.js +1 -0
  275. package/studio-dist/client/_app/immutable/chunks/{CgBjxmu6.js → Gg4iYl59.js} +1 -1
  276. package/studio-dist/client/_app/immutable/entry/{app.a02HWaRB.js → app.DUDNK-37.js} +2 -2
  277. package/studio-dist/client/_app/immutable/entry/start.DNmZ0pA4.js +1 -0
  278. package/studio-dist/client/_app/immutable/nodes/{0.nTXyRfc-.js → 0.DWqP3ail.js} +1 -1
  279. package/studio-dist/client/_app/immutable/nodes/{1.4zrWeHtl.js → 1.CZGVUP5B.js} +1 -1
  280. package/studio-dist/client/_app/immutable/nodes/{15.D9mk4JyY.js → 15.DGaflZRS.js} +1 -1
  281. package/studio-dist/client/_app/immutable/nodes/{16._-wt-sQf.js → 16.uYlarGXl.js} +1 -1
  282. package/studio-dist/client/_app/immutable/nodes/{17.CUu6LQDj.js → 17.CZMR0E47.js} +1 -1
  283. package/studio-dist/client/_app/immutable/nodes/{18.Dz4QRTkX.js → 18.CBC-AKH_.js} +1 -1
  284. package/studio-dist/client/_app/immutable/nodes/{20.CJ2_EB0U.js → 20.BGi43MvQ.js} +1 -1
  285. package/studio-dist/client/_app/immutable/nodes/{24.Igj2FS7k.js → 24.Dv8ftCyR.js} +1 -1
  286. package/studio-dist/client/_app/immutable/nodes/25.DQPVlTDQ.js +39 -0
  287. package/studio-dist/client/_app/immutable/nodes/{26.6iPyjT44.js → 26.Cl800304.js} +1 -1
  288. package/studio-dist/client/_app/immutable/nodes/{3.AA5GwNgP.js → 3.D_fQKj9f.js} +1 -1
  289. package/studio-dist/client/_app/version.json +1 -1
  290. package/studio-dist/server/chunks/{0-DGmsoBYm.js → 0-BpOagOst.js} +3 -3
  291. package/studio-dist/server/chunks/1-D0oRGR-C.js +9 -0
  292. package/studio-dist/server/chunks/{15-Bg6YTndh.js → 15-BcjHz7Tv.js} +3 -3
  293. package/studio-dist/server/chunks/{16-BObLwgyD.js → 16-CXm8TUk7.js} +3 -3
  294. package/studio-dist/server/chunks/{17-BNXGyAHX.js → 17-mSgUK-cp.js} +3 -3
  295. package/studio-dist/server/chunks/{18-UqQFRIID.js → 18-BtfnIw1d.js} +3 -3
  296. package/studio-dist/server/chunks/{20-CMn8a_yP.js → 20-By1e4QDS.js} +3 -3
  297. package/studio-dist/server/chunks/{24-BuOTDzib.js → 24-0i2YLVxG.js} +3 -3
  298. package/studio-dist/server/chunks/{dist-B8xbIrdB.js → 25-DPsrqbrh.js} +795 -10736
  299. package/studio-dist/server/chunks/{26-DWGObn2T.js → 26-P0XkOibm.js} +3 -3
  300. package/studio-dist/server/chunks/{3-CyiffdJZ.js → 3-WudjUK7e.js} +3 -3
  301. package/studio-dist/server/chunks/{_layout.svelte-DYtClaIk.js → _layout.svelte-D9m81Rle.js} +4 -4
  302. package/studio-dist/server/chunks/{_page.svelte-CEATWp_5.js → _page.svelte-2PDLOF83.js} +3 -3
  303. package/studio-dist/server/chunks/{_page.svelte-Bip079LT.js → _page.svelte-BjE3jm2K.js} +3 -3
  304. package/studio-dist/server/chunks/{_page.svelte-CV3xiD1y.js → _page.svelte-Clc0vmiZ.js} +4 -4
  305. package/studio-dist/server/chunks/{_page.svelte-DSSy6LuK.js → _page.svelte-DABdRT3h.js} +3 -3
  306. package/studio-dist/server/chunks/{_page.svelte-1h9E6s_f.js → _page.svelte-DG3PjiHj.js} +3 -3
  307. package/studio-dist/server/chunks/{_page.svelte-BT1EUadj.js → _page.svelte-Edy9CaE8.js} +20 -7
  308. package/studio-dist/server/chunks/{_page.svelte-BNNF62Nm.js → _page.svelte-Hrf3-ZR8.js} +3 -3
  309. package/studio-dist/server/chunks/{_page.svelte-TF795TAS.js → _page.svelte-VB4O4Nl5.js} +3 -3
  310. package/studio-dist/server/chunks/{_page.svelte-Cv_KVJDV.js → _page.svelte-d3jEgjsI.js} +3 -3
  311. package/studio-dist/server/chunks/{_server.ts-CzrwbhkQ.js → _server.ts-BcRFsyo3.js} +4 -5
  312. package/studio-dist/server/chunks/{_server.ts-C4w6UdU0.js → _server.ts-CEWpIFrj.js} +6 -5
  313. package/studio-dist/server/chunks/{_server.ts-BlhRFLY3.js → _server.ts-CLVdVIF9.js} +2 -2
  314. package/studio-dist/server/chunks/{_server.ts-Db6mEile.js → _server.ts-D_j7aSy5.js} +6 -5
  315. package/studio-dist/server/chunks/{_server.ts-DWt8Dziu.js → _server.ts-QEZF8h2q.js} +4 -5
  316. package/studio-dist/server/chunks/{client-D8f2k-H_.js → client-Kp1dP1od.js} +2 -2
  317. package/studio-dist/server/chunks/{error.svelte-DbbOwIme.js → error.svelte-WOCioJVX.js} +3 -3
  318. package/studio-dist/server/chunks/{hooks.server-D2qbf3Zp.js → hooks.server-DH9zkIrJ.js} +3 -1
  319. package/studio-dist/server/chunks/{http-1ftNGTs5.js → http-DT5kxaWk.js} +5 -4
  320. package/studio-dist/server/chunks/{internal-CTULuLPB.js → internal-z0vqd5_u.js} +3 -3
  321. package/studio-dist/server/chunks/operations-registry-DdzmYzqX.js +10584 -0
  322. package/studio-dist/server/chunks/{stores-CS5XOReX.js → stores-s2kaL315.js} +2 -2
  323. package/studio-dist/server/index.js +1 -1
  324. package/studio-dist/server/manifest.js +17 -17
  325. package/dist/cli/chunk-3IOQVUO7.js +0 -17308
  326. package/dist/cli/chunk-OAPN46TC.js +0 -89
  327. package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +0 -1
  328. package/studio-dist/client/_app/immutable/entry/start.BreMSngo.js +0 -1
  329. package/studio-dist/client/_app/immutable/nodes/25.BnATjVGN.js +0 -39
  330. package/studio-dist/server/chunks/1-8PfxPvlK.js +0 -9
  331. package/studio-dist/server/chunks/25-CIMSmjVx.js +0 -366
@@ -15,7 +15,7 @@
15
15
  })();
16
16
  import {
17
17
  runLoginFrontDoor
18
- } from "./chunk-J3ZFM3UQ.js";
18
+ } from "./chunk-UWCZY52R.js";
19
19
  import {
20
20
  ReadlineWizardIO
21
21
  } from "./chunk-GZFVDR44.js";
@@ -26,7 +26,7 @@ import {
26
26
  cliError,
27
27
  cliOutput,
28
28
  isHumanOutput
29
- } from "./chunk-3ZO3M37V.js";
29
+ } from "./chunk-4RGSNUUP.js";
30
30
 
31
31
  // packages/cleo/src/cli/commands/init.ts
32
32
  import { existsSync, readFileSync } from "node:fs";
@@ -255,4 +255,4 @@ export {
255
255
  isCredentialPoolEmpty,
256
256
  maybeNudgeFirstRunLogin
257
257
  };
258
- //# sourceMappingURL=chunk-OPTEQKBB.js.map
258
+ //# sourceMappingURL=chunk-EIUXVHNF.js.map
@@ -23,12 +23,10 @@ import {
23
23
  cliError,
24
24
  cliOutput,
25
25
  humanLine
26
- } from "./chunk-3ZO3M37V.js";
26
+ } from "./chunk-4RGSNUUP.js";
27
27
 
28
28
  // packages/cleo/src/cli/commands/doctor-projects.ts
29
- import {
30
- checkAllRegisteredProjects
31
- } from "@cleocode/core/internal";
29
+ import { checkAllRegisteredProjects } from "@cleocode/core/system/project-health";
32
30
  function formatRow(report, nameFallback) {
33
31
  const hash = report.projectHash.padEnd(12).slice(0, 12);
34
32
  const name = nameFallback.padEnd(24).slice(0, 24);
@@ -108,7 +106,7 @@ async function runDoctorProjects(opts = {}) {
108
106
  const nameLookup = /* @__PURE__ */ new Map();
109
107
  if (!report.registryError) {
110
108
  try {
111
- const { nexusList } = await import("@cleocode/core/internal");
109
+ const { nexusList } = await import("@cleocode/core/nexus/registry");
112
110
  const rows = await nexusList();
113
111
  for (const row of rows) {
114
112
  nameLookup.set(row.hash, row.name);
@@ -172,4 +170,4 @@ export {
172
170
  runDoctorProjects,
173
171
  doctorProjectsCommand
174
172
  };
175
- //# sourceMappingURL=chunk-3PGH67MT.js.map
173
+ //# sourceMappingURL=chunk-EUGB6P5V.js.map
@@ -0,0 +1,304 @@
1
+ (() => {
2
+ const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
3
+ if (globalThis[_installed]) return;
4
+ globalThis[_installed] = true;
5
+ const _origEmitWarning = process.emitWarning;
6
+ process.emitWarning = function(warning, type, code, ctor) {
7
+ if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
8
+ return;
9
+ }
10
+ if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
11
+ return;
12
+ }
13
+ return _origEmitWarning.call(process, warning, type, code, ctor);
14
+ };
15
+ })();
16
+
17
+ // packages/cleo/src/cli/lib/update-notice.ts
18
+ import { spawn } from "node:child_process";
19
+ import {
20
+ closeSync,
21
+ existsSync,
22
+ mkdirSync,
23
+ openSync,
24
+ readFileSync,
25
+ statSync,
26
+ unlinkSync,
27
+ utimesSync,
28
+ writeFileSync
29
+ } from "node:fs";
30
+ import { dirname, join } from "node:path";
31
+ import { fileURLToPath } from "node:url";
32
+ import { getCleoStateDir } from "@cleocode/paths";
33
+ var CLEO_PACKAGE_NAME = "@cleocode/cleo";
34
+ var UPDATE_NOTICE_OPT_OUT_ENV = "CLEO_NO_UPDATE_NOTICE";
35
+ var UPDATE_NOTICE_FROM_SOURCE_ENV = "CLEO_UPDATE_NOTICE_FROM_SOURCE";
36
+ var DEFAULT_NPM_REGISTRY = "https://registry.npmjs.org/";
37
+ var UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1e3;
38
+ var UPDATE_CHECK_RETRY_MS = 60 * 60 * 1e3;
39
+ var UPDATE_NOTICE_INTERVAL_MS = 24 * 60 * 60 * 1e3;
40
+ var UPDATE_CHECK_LOCK_STALE_MS = 10 * 60 * 1e3;
41
+ var UPDATE_CACHE_FILE = "update-check.json";
42
+ var UPDATE_LOCK_FILE = "update-check.lock";
43
+ var UPDATE_NOTICE_STAMP_FILE = "update-notice.stamp";
44
+ var HOTFIX_NOTICE_INTERVAL_MS = 15 * 60 * 1e3;
45
+ var HOTFIX_NOTICE_STAMP_FILE = "update-notice-hotfix.stamp";
46
+ var UPDATE_CHECK_ENTRY = "update-check-entry.js";
47
+ var CI_ENV_VARS = [
48
+ "CI",
49
+ "CONTINUOUS_INTEGRATION",
50
+ "GITHUB_ACTIONS",
51
+ "GITLAB_CI",
52
+ "BUILDKITE",
53
+ "CIRCLECI",
54
+ "TF_BUILD",
55
+ "JENKINS_URL",
56
+ "TEAMCITY_VERSION",
57
+ "TRAVIS",
58
+ "APPVEYOR",
59
+ "CODEBUILD_BUILD_ID",
60
+ "BITBUCKET_BUILD_NUMBER",
61
+ "DRONE"
62
+ ];
63
+ var VERSION_RE = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/;
64
+ function flagSet(value) {
65
+ if (value === void 0) return false;
66
+ const v = value.trim().toLowerCase();
67
+ return v !== "" && v !== "0" && v !== "false";
68
+ }
69
+ function isCiEnvironment(env) {
70
+ return CI_ENV_VARS.some((name) => flagSet(env[name]));
71
+ }
72
+ function parseVersion(version) {
73
+ const m = VERSION_RE.exec(version.trim());
74
+ if (!m) return null;
75
+ return {
76
+ core: [Number(m[1]), Number(m[2]), Number(m[3])],
77
+ pre: m[4] === void 0 ? [] : m[4].split(".")
78
+ };
79
+ }
80
+ function comparePrerelease(a, b) {
81
+ if (a.length === 0 || b.length === 0) return b.length - a.length;
82
+ for (let i = 0; i < Math.min(a.length, b.length); i++) {
83
+ const x = a[i] ?? "";
84
+ const y = b[i] ?? "";
85
+ if (x === y) continue;
86
+ const xNum = /^\d+$/.test(x);
87
+ const yNum = /^\d+$/.test(y);
88
+ if (xNum && yNum) return Number(x) < Number(y) ? -1 : 1;
89
+ if (xNum !== yNum) return xNum ? -1 : 1;
90
+ return x < y ? -1 : 1;
91
+ }
92
+ return Math.sign(a.length - b.length);
93
+ }
94
+ function compareVersions(a, b) {
95
+ const pa = parseVersion(a);
96
+ const pb = parseVersion(b);
97
+ if (!pa || !pb) return null;
98
+ for (let i = 0; i < 3; i++) {
99
+ const x = pa.core[i] ?? 0;
100
+ const y = pb.core[i] ?? 0;
101
+ if (x !== y) return x < y ? -1 : 1;
102
+ }
103
+ const pre = comparePrerelease(pa.pre, pb.pre);
104
+ return pre === 0 ? 0 : pre < 0 ? -1 : 1;
105
+ }
106
+ function releaseChannelTag(version) {
107
+ const parsed = parseVersion(version);
108
+ if (!parsed) return null;
109
+ if (parsed.pre.length === 0) return "latest";
110
+ const tag = (parsed.pre[0] ?? "").toLowerCase();
111
+ if (tag.startsWith("beta") || tag.startsWith("rc")) return "beta";
112
+ return null;
113
+ }
114
+ function decideUpdateNotice(installed, distTags, hotfix) {
115
+ const channel = releaseChannelTag(installed);
116
+ if (channel === null) return null;
117
+ const target = distTags[channel];
118
+ if (target === void 0 || compareVersions(target, installed) !== 1) return null;
119
+ if (hotfix !== void 0 && compareVersions(hotfix, installed) === 1 && (compareVersions(hotfix, target) ?? 1) <= 0) {
120
+ return { kind: "hotfix", installed, target, hotfix };
121
+ }
122
+ return { kind: "update", installed, target };
123
+ }
124
+ function formatUpdateNotice(notice) {
125
+ const hide = `Set ${UPDATE_NOTICE_OPT_OUT_ENV}=1 to hide this.`;
126
+ if (notice.kind === "update") {
127
+ return `[cleo] Update available: ${notice.target} (installed ${notice.installed}). Run \`cleo self-update\`. ${hide}
128
+ `;
129
+ }
130
+ const release = notice.hotfix === notice.target ? `${notice.target} is a hotfix release` : `${notice.target} includes hotfix release ${notice.hotfix}`;
131
+ return `[cleo] HOTFIX available: ${release} for a defect in your installed ${notice.installed}. Run \`cleo self-update\` now. ${hide}
132
+ `;
133
+ }
134
+ function updateNoticeSuppression(argv, env, installedPackage) {
135
+ if (flagSet(env[UPDATE_NOTICE_OPT_OUT_ENV])) return UPDATE_NOTICE_OPT_OUT_ENV;
136
+ if (flagSet(env.NO_UPDATE_NOTIFIER)) return "NO_UPDATE_NOTIFIER";
137
+ if (isCiEnvironment(env)) return "ci";
138
+ if (!installedPackage && !flagSet(env[UPDATE_NOTICE_FROM_SOURCE_ENV])) return "source-checkout";
139
+ const command = argv.find((a) => !a.startsWith("-"));
140
+ if (command === "self-update" || command === "hook") return `command:${command}`;
141
+ return null;
142
+ }
143
+ function parseUpdateCache(raw) {
144
+ let value;
145
+ try {
146
+ value = JSON.parse(raw);
147
+ } catch {
148
+ return null;
149
+ }
150
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return null;
151
+ const record = value;
152
+ if (record["schemaVersion"] !== 1) return null;
153
+ const checkedAt = record["checkedAt"];
154
+ if (typeof checkedAt !== "string" || Number.isNaN(Date.parse(checkedAt))) return null;
155
+ const tags = record["distTags"];
156
+ if (typeof tags !== "object" || tags === null || Array.isArray(tags)) return null;
157
+ const distTags = {};
158
+ for (const [tag, version] of Object.entries(tags)) {
159
+ if (typeof version === "string" && parseVersion(version)) distTags[tag] = version;
160
+ }
161
+ const hotfix = record["hotfix"];
162
+ return {
163
+ schemaVersion: 1,
164
+ checkedAt,
165
+ ok: record["ok"] === true,
166
+ distTags,
167
+ ...typeof hotfix === "string" && parseVersion(hotfix) ? { hotfix } : {}
168
+ };
169
+ }
170
+ function updateCheckDue(cache, now) {
171
+ if (cache === null) return true;
172
+ const age = now - Date.parse(cache.checkedAt);
173
+ if (age < 0) return true;
174
+ return age >= (cache.ok ? UPDATE_CHECK_INTERVAL_MS : UPDATE_CHECK_RETRY_MS);
175
+ }
176
+ function claimUpdateCheck(lockPath, now) {
177
+ for (let attempt = 0; attempt < 2; attempt++) {
178
+ try {
179
+ closeSync(openSync(lockPath, "wx"));
180
+ return true;
181
+ } catch (err) {
182
+ if (err.code !== "EEXIST") return false;
183
+ try {
184
+ if (now - statSync(lockPath).mtimeMs < UPDATE_CHECK_LOCK_STALE_MS) return false;
185
+ unlinkSync(lockPath);
186
+ } catch {
187
+ }
188
+ }
189
+ }
190
+ return false;
191
+ }
192
+ function registryFrom(env) {
193
+ const configured = env.npm_config_registry ?? env.NPM_CONFIG_REGISTRY;
194
+ if (configured && /^https?:\/\//i.test(configured)) return configured;
195
+ return DEFAULT_NPM_REGISTRY;
196
+ }
197
+ function runsFromInstalledPackage() {
198
+ return /[\\/]node_modules[\\/]@cleocode[\\/]cleo[\\/]/.test(fileURLToPath(import.meta.url));
199
+ }
200
+ function spawnUpdateCheck(request, env) {
201
+ const entry = join(dirname(fileURLToPath(import.meta.url)), UPDATE_CHECK_ENTRY);
202
+ if (!existsSync(entry)) throw new Error(`update check entry missing: ${entry}`);
203
+ const childEnv = { ...env };
204
+ const proxied = ["HTTPS_PROXY", "https_proxy", "HTTP_PROXY", "http_proxy"].some((k) => env[k]);
205
+ if (proxied && childEnv.NODE_USE_ENV_PROXY === void 0) childEnv.NODE_USE_ENV_PROXY = "1";
206
+ const child = spawn(
207
+ process.execPath,
208
+ [entry, request.cachePath, request.lockPath, request.registry, request.packageName],
209
+ { detached: true, stdio: "ignore", windowsHide: true, env: childEnv }
210
+ );
211
+ child.on("error", () => {
212
+ });
213
+ child.unref();
214
+ }
215
+ function showUpdateNotice(options) {
216
+ const env = options.env ?? process.env;
217
+ const suppressed = updateNoticeSuppression(
218
+ options.argv,
219
+ env,
220
+ options.installedPackage ?? runsFromInstalledPackage()
221
+ );
222
+ if (suppressed !== null) return { suppressed, checkStarted: false, shown: null };
223
+ let checkStarted = false;
224
+ let shown = null;
225
+ try {
226
+ const now = (options.now ?? Date.now)();
227
+ const stateDir = options.stateDir ?? getCleoStateDir();
228
+ const cachePath = join(stateDir, UPDATE_CACHE_FILE);
229
+ let cache = null;
230
+ try {
231
+ cache = parseUpdateCache(readFileSync(cachePath, "utf8"));
232
+ } catch {
233
+ }
234
+ if (updateCheckDue(cache, now)) {
235
+ mkdirSync(stateDir, { recursive: true });
236
+ const lockPath = join(stateDir, UPDATE_LOCK_FILE);
237
+ if (claimUpdateCheck(lockPath, now)) {
238
+ const request = {
239
+ cachePath,
240
+ lockPath,
241
+ registry: registryFrom(env),
242
+ packageName: CLEO_PACKAGE_NAME
243
+ };
244
+ try {
245
+ (options.startCheck ?? spawnUpdateCheck)(request, env);
246
+ checkStarted = true;
247
+ } catch {
248
+ try {
249
+ unlinkSync(lockPath);
250
+ } catch {
251
+ }
252
+ }
253
+ }
254
+ }
255
+ if (cache === null || options.quiet === true) {
256
+ return { suppressed: null, checkStarted, shown };
257
+ }
258
+ const notice = decideUpdateNotice(options.version, cache.distTags, cache.hotfix);
259
+ if (notice === null) return { suppressed: null, checkStarted, shown };
260
+ const hotfix = notice.kind === "hotfix";
261
+ const stampPath = join(stateDir, hotfix ? HOTFIX_NOTICE_STAMP_FILE : UPDATE_NOTICE_STAMP_FILE);
262
+ const interval = hotfix ? HOTFIX_NOTICE_INTERVAL_MS : UPDATE_NOTICE_INTERVAL_MS;
263
+ try {
264
+ const age = now - statSync(stampPath).mtimeMs;
265
+ if (age >= 0 && age < interval) return { suppressed: null, checkStarted, shown };
266
+ } catch {
267
+ }
268
+ writeFileSync(stampPath, `${notice.target}
269
+ `);
270
+ utimesSync(stampPath, new Date(now), new Date(now));
271
+ (options.stderr ?? process.stderr).write(formatUpdateNotice(notice));
272
+ shown = notice;
273
+ } catch {
274
+ }
275
+ return { suppressed: null, checkStarted, shown };
276
+ }
277
+
278
+ export {
279
+ CLEO_PACKAGE_NAME,
280
+ UPDATE_NOTICE_OPT_OUT_ENV,
281
+ UPDATE_NOTICE_FROM_SOURCE_ENV,
282
+ DEFAULT_NPM_REGISTRY,
283
+ UPDATE_CHECK_INTERVAL_MS,
284
+ UPDATE_CHECK_RETRY_MS,
285
+ UPDATE_NOTICE_INTERVAL_MS,
286
+ UPDATE_CHECK_LOCK_STALE_MS,
287
+ UPDATE_CACHE_FILE,
288
+ UPDATE_LOCK_FILE,
289
+ UPDATE_NOTICE_STAMP_FILE,
290
+ HOTFIX_NOTICE_INTERVAL_MS,
291
+ HOTFIX_NOTICE_STAMP_FILE,
292
+ UPDATE_CHECK_ENTRY,
293
+ isCiEnvironment,
294
+ compareVersions,
295
+ releaseChannelTag,
296
+ decideUpdateNotice,
297
+ formatUpdateNotice,
298
+ updateNoticeSuppression,
299
+ parseUpdateCache,
300
+ updateCheckDue,
301
+ claimUpdateCheck,
302
+ showUpdateNotice
303
+ };
304
+ //# sourceMappingURL=chunk-EW2CKNNZ.js.map
@@ -20,7 +20,7 @@ import {
20
20
  cliError,
21
21
  cliOutput,
22
22
  humanInfo
23
- } from "./chunk-3ZO3M37V.js";
23
+ } from "./chunk-4RGSNUUP.js";
24
24
 
25
25
  // packages/cleo/src/cli/commands/doctor-fk-check.ts
26
26
  import { repairForeignKeyViolations, verifyForeignKeyIntegrity } from "@cleocode/core/db";
@@ -105,4 +105,4 @@ var doctorFkCheckCommand = defineCommand({
105
105
  export {
106
106
  doctorFkCheckCommand
107
107
  };
108
- //# sourceMappingURL=chunk-2JIJD2I7.js.map
108
+ //# sourceMappingURL=chunk-FSKN4DWC.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-PKKZPOOP.js";
19
19
  import {
20
20
  cliOutput
21
- } from "./chunk-3ZO3M37V.js";
21
+ } from "./chunk-4RGSNUUP.js";
22
22
 
23
23
  // packages/cleo/src/cli/commands/doctor-legacy-reaper.ts
24
24
  import { scanLegacyReaper } from "@cleocode/core/doctor/legacy-reaper.js";
@@ -45,4 +45,4 @@ var doctorLegacyReaperCommand = defineCommand({
45
45
  export {
46
46
  doctorLegacyReaperCommand
47
47
  };
48
- //# sourceMappingURL=chunk-NSHV2JNM.js.map
48
+ //# sourceMappingURL=chunk-FVKLULL7.js.map
@@ -20,7 +20,7 @@ import { existsSync, statSync } from "node:fs";
20
20
  import { mkdir, open, readFile, rm, stat, writeFile } from "node:fs/promises";
21
21
  import { dirname, join, resolve } from "node:path";
22
22
  import { fileURLToPath } from "node:url";
23
- import { ExitCode } from "@cleocode/contracts";
23
+ import { ExitCode } from "@cleocode/contracts/exit-codes.js";
24
24
  import { CleoError, getCleoHome } from "@cleocode/core";
25
25
  import { defineSubsystem } from "@cleocode/runtime/daemon";
26
26
  var WEB_DEFAULT_PORT = 3456;
@@ -277,4 +277,4 @@ export {
277
277
  getWebStatus,
278
278
  createWebSubsystem
279
279
  };
280
- //# sourceMappingURL=chunk-GH37QXW5.js.map
280
+ //# sourceMappingURL=chunk-GAGUBU4Z.js.map
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  cliError,
21
21
  cliOutput
22
- } from "./chunk-3ZO3M37V.js";
22
+ } from "./chunk-4RGSNUUP.js";
23
23
 
24
24
  // packages/cleo/src/cli/commands/doctor-twin-collapse.ts
25
25
  import {
@@ -168,4 +168,4 @@ function twinCollapseActions(args) {
168
168
  export {
169
169
  doctorTwinCollapseCommand
170
170
  };
171
- //# sourceMappingURL=chunk-37NU2XDP.js.map
171
+ //# sourceMappingURL=chunk-GKRFH2YG.js.map
@@ -21,10 +21,10 @@ import {
21
21
  cliOutput,
22
22
  humanLine,
23
23
  isHumanOutput
24
- } from "./chunk-3ZO3M37V.js";
24
+ } from "./chunk-4RGSNUUP.js";
25
25
 
26
26
  // packages/cleo/src/cli/lib/nexus-account-cli.ts
27
- import { ExitCode } from "@cleocode/contracts";
27
+ import { ExitCode } from "@cleocode/contracts/exit-codes.js";
28
28
 
29
29
  // packages/cleo/src/cli/lib/device-code-prompt.ts
30
30
  function writeDeviceCodePrompt(info, serviceName) {
@@ -51,6 +51,18 @@ function writeDeviceCodeApproved(serviceName) {
51
51
  `);
52
52
  }
53
53
 
54
+ // packages/cleo/src/cli/lib/terminal-safe.ts
55
+ var ESC_SEQUENCE = /\x1b(?:\[[0-?]*[ -/]*[@-~]|\][^\x07\x1b]*(?:\x07|\x1b\\)?|[PX^_][^\x1b]*(?:\x1b\\)?|[ -~]?)/g;
56
+ var C1_SEQUENCE = /\x9b[0-?]*[ -/]*[@-~]|[\x90\x98\x9d-\x9f][^\x07\x9c\x1b]*(?:\x07|\x9c)?/g;
57
+ var CONTROL = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
58
+ var BIDI = /[\u202a-\u202e\u2066-\u2069]/g;
59
+ function terminalSafeLines(text) {
60
+ return text.replace(ESC_SEQUENCE, "").replace(C1_SEQUENCE, "").replace(CONTROL, "").replace(BIDI, "");
61
+ }
62
+ function terminalSafe(text) {
63
+ return terminalSafeLines(text.replace(/ *[\t\n\r][\t\n\r ]*/g, " "));
64
+ }
65
+
54
66
  // packages/cleo/src/cli/lib/nexus-account-cli.ts
55
67
  var SERVICE_NAME = "Cleo Nexus";
56
68
  var NEXUS_API_URL_ARG = {
@@ -78,7 +90,7 @@ function failNexus(err, operation) {
78
90
  const exitCode = code === "E_NEXUS_INVALID_API_URL" || code === "E_NEXUS_INVALID_LABEL" || code === "E_NEXUS_DEVICE_REQUIRED" || code === "E_VALIDATION" ? 6 : VAULT_REFUSAL_EXIT_CODES[code ?? ""] ?? 1;
79
91
  const details = err instanceof Error && "publicDetails" in err && typeof err.publicDetails === "object" && err.publicDetails ? err.publicDetails : void 0;
80
92
  cliError(
81
- err instanceof Error ? err.message : String(err),
93
+ terminalSafeLines(err instanceof Error ? err.message : String(err)),
82
94
  exitCode,
83
95
  {
84
96
  name: code ?? "E_NEXUS_REQUEST_FAILED",
@@ -90,11 +102,11 @@ function failNexus(err, operation) {
90
102
  process.exit(exitCode);
91
103
  }
92
104
  function writeNexusWarnings(warnings) {
93
- for (const warning of warnings) process.stderr.write(`warning: ${warning}
105
+ for (const warning of warnings) process.stderr.write(`warning: ${terminalSafe(warning)}
94
106
  `);
95
107
  }
96
108
  function emitNexusResult(data, summary, command, operation) {
97
- if (isHumanOutput()) humanLine(summary);
109
+ if (isHumanOutput()) humanLine(terminalSafeLines(summary));
98
110
  else cliOutput(data, { command, operation });
99
111
  }
100
112
  async function runNexusLogin(args, openBrowser) {
@@ -179,8 +191,7 @@ async function runNexusLogin(args, openBrowser) {
179
191
  result = await loginToNexus(hooks);
180
192
  }
181
193
  if (codeShown) writeDeviceCodeApproved(SERVICE_NAME);
182
- for (const warning of result.warnings) process.stderr.write(`warning: ${warning}
183
- `);
194
+ writeNexusWarnings(result.warnings);
184
195
  return result;
185
196
  } catch (err) {
186
197
  writeDeviceCodeInterrupted();
@@ -237,8 +248,7 @@ async function runNexusDeviceLogout(args) {
237
248
  } catch (err) {
238
249
  failNexus(err, "logout.run");
239
250
  }
240
- for (const warning of result.warnings) process.stderr.write(`warning: ${warning}
241
- `);
251
+ writeNexusWarnings(result.warnings);
242
252
  emitNexusResult(result, nexusDeviceLogoutSummary(result), "logout", "logout.run");
243
253
  }
244
254
 
@@ -247,6 +257,7 @@ export {
247
257
  writeDeviceCodePending,
248
258
  writeDeviceCodeInterrupted,
249
259
  writeDeviceCodeApproved,
260
+ terminalSafe,
250
261
  NEXUS_API_URL_ARG,
251
262
  nexusApiUrlArg,
252
263
  failNexus,
@@ -256,4 +267,4 @@ export {
256
267
  nexusLoginSummary,
257
268
  runNexusDeviceLogout
258
269
  };
259
- //# sourceMappingURL=chunk-ULN4OKQQ.js.map
270
+ //# sourceMappingURL=chunk-GRU74UE4.js.map
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  cliError,
21
21
  cliOutput
22
- } from "./chunk-3ZO3M37V.js";
22
+ } from "./chunk-4RGSNUUP.js";
23
23
 
24
24
  // packages/cleo/src/cli/commands/doctor-global-delivery.ts
25
25
  import {
@@ -80,4 +80,4 @@ var doctorGlobalDeliveryCommand = defineCommand({
80
80
  export {
81
81
  doctorGlobalDeliveryCommand
82
82
  };
83
- //# sourceMappingURL=chunk-LKNUA3SB.js.map
83
+ //# sourceMappingURL=chunk-HFLLZE6A.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-PKKZPOOP.js";
19
19
  import {
20
20
  cliOutput
21
- } from "./chunk-3ZO3M37V.js";
21
+ } from "./chunk-4RGSNUUP.js";
22
22
 
23
23
  // packages/cleo/src/cli/commands/doctor-memory-guard.ts
24
24
  import { spawnSync } from "node:child_process";
@@ -75,4 +75,4 @@ var doctorMemoryGuardCommand = defineCommand({
75
75
  export {
76
76
  doctorMemoryGuardCommand
77
77
  };
78
- //# sourceMappingURL=chunk-YGKEECTI.js.map
78
+ //# sourceMappingURL=chunk-HXRXT3XU.js.map
@@ -22,18 +22,18 @@ import {
22
22
  humanInfo,
23
23
  humanLine,
24
24
  humanWarn
25
- } from "./chunk-3ZO3M37V.js";
25
+ } from "./chunk-4RGSNUUP.js";
26
26
 
27
27
  // packages/cleo/src/cli/commands/migrate-agents-v2.ts
28
28
  import { createHash } from "node:crypto";
29
29
  import { appendFileSync, existsSync, mkdirSync, readdirSync, readFileSync } from "node:fs";
30
30
  import { join } from "node:path";
31
+ import { getProjectRoot } from "@cleocode/core/project-scope";
32
+ import { installAgentFromCant } from "@cleocode/core/store/agent-install";
31
33
  import {
32
34
  ensureGlobalAgentRegistryDb,
33
- getGlobalAgentRegistryNativeDb,
34
- getProjectRoot,
35
- installAgentFromCant
36
- } from "@cleocode/core/internal";
35
+ getGlobalAgentRegistryNativeDb
36
+ } from "@cleocode/core/store/agent-registry-store";
37
37
  var AUDIT_LOG_RELATIVE = ".cleo/audit/migration-agents-v2.jsonl";
38
38
  var MIGRATE_CONFLICT_DIAGNOSTIC_ID = "MIGRATE-AGENTS-V2-CONFLICT";
39
39
  function sha256Hex(bytes) {
@@ -255,4 +255,4 @@ export {
255
255
  readMigrationConflicts,
256
256
  migrateAgentsV2Command
257
257
  };
258
- //# sourceMappingURL=chunk-REUTEW3O.js.map
258
+ //# sourceMappingURL=chunk-IIOGUY3B.js.map
@@ -0,0 +1,60 @@
1
+ (() => {
2
+ const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
3
+ if (globalThis[_installed]) return;
4
+ globalThis[_installed] = true;
5
+ const _origEmitWarning = process.emitWarning;
6
+ process.emitWarning = function(warning, type, code, ctor) {
7
+ if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
8
+ return;
9
+ }
10
+ if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
11
+ return;
12
+ }
13
+ return _origEmitWarning.call(process, warning, type, code, ctor);
14
+ };
15
+ })();
16
+ import {
17
+ defineCommand
18
+ } from "./chunk-PKKZPOOP.js";
19
+ import {
20
+ cliOutput
21
+ } from "./chunk-4RGSNUUP.js";
22
+
23
+ // packages/cleo/src/cli/commands/doctor-sync-triggers.ts
24
+ import {
25
+ repairSyncTriggers,
26
+ syncTriggersDoctorCheck
27
+ } from "@cleocode/core/doctor/sync-triggers.js";
28
+ import { getProjectRoot } from "@cleocode/core/paths.js";
29
+ var doctorSyncTriggersCommand = defineCommand({
30
+ meta: {
31
+ name: "sync-triggers",
32
+ description: "Check the project store's triggers: the suspension table, owned guard triggers, capture triggers and triggers that reference a missing table or column. --repair fixes what CLEO owns."
33
+ },
34
+ args: {
35
+ repair: {
36
+ type: "boolean",
37
+ description: "Recreate cleo_trigger_suspend, re-run the owned DDL of every differing trigger and make the capture triggers match sync.capture; reports the row before and after. Opens the store like any cleo command, so pending migrations are applied"
38
+ },
39
+ json: { type: "boolean", description: "Output as JSON" },
40
+ human: { type: "boolean", description: "Force human-readable output" },
41
+ quiet: { type: "boolean", description: "Suppress non-essential output" }
42
+ },
43
+ async run({ args }) {
44
+ const projectRoot = getProjectRoot();
45
+ if (args.repair === true) {
46
+ const result = await repairSyncTriggers(projectRoot);
47
+ cliOutput(result, { command: "doctor", operation: "doctor.sync-triggers.run" });
48
+ if (result.after.status === "error") process.exitCode = 1;
49
+ return;
50
+ }
51
+ const check = syncTriggersDoctorCheck(projectRoot);
52
+ cliOutput(check, { command: "doctor", operation: "doctor.sync-triggers.run" });
53
+ if (check.status === "error") process.exitCode = 1;
54
+ }
55
+ });
56
+
57
+ export {
58
+ doctorSyncTriggersCommand
59
+ };
60
+ //# sourceMappingURL=chunk-ILWWL462.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-PKKZPOOP.js";
19
19
  import {
20
20
  cliOutput
21
- } from "./chunk-3ZO3M37V.js";
21
+ } from "./chunk-4RGSNUUP.js";
22
22
 
23
23
  // packages/cleo/src/cli/commands/doctor-dep-cycles.ts
24
24
  import { scanDependencyCycles } from "@cleocode/core/doctor/dependency-cycles.js";
@@ -45,4 +45,4 @@ var doctorDepCyclesCommand = defineCommand({
45
45
  export {
46
46
  doctorDepCyclesCommand
47
47
  };
48
- //# sourceMappingURL=chunk-XRAX6XFP.js.map
48
+ //# sourceMappingURL=chunk-J5USPJKZ.js.map
@@ -19,11 +19,11 @@ import {
19
19
  import {
20
20
  cliError,
21
21
  cliOutput
22
- } from "./chunk-3ZO3M37V.js";
22
+ } from "./chunk-4RGSNUUP.js";
23
23
 
24
24
  // packages/cleo/src/cli/commands/doctor-superseded-store.ts
25
- import { getProjectRoot } from "@cleocode/core";
26
25
  import { scanSupersededStores } from "@cleocode/core/doctor/superseded-store.js";
26
+ import { getProjectRoot } from "@cleocode/core/project-scope";
27
27
  import { reconcileSupersededStores } from "@cleocode/core/store/exodus/index.js";
28
28
  var doctorSupersededStoreCommand = defineCommand({
29
29
  meta: {
@@ -33,7 +33,7 @@ var doctorSupersededStoreCommand = defineCommand({
33
33
  args: {
34
34
  reconcile: {
35
35
  type: "boolean",
36
- description: "Copy rows the superseded files hold that are missing from cleo.db (additive, verified, reverted on mismatch; legacy files are never touched). Writes a receipt."
36
+ description: "Copy rows the superseded files hold that are missing from cleo.db (additive, verified, reverted on mismatch; legacy files are never touched). A legacy task whose id a newer task took is recovered under a new id, with its references re-pointed (task ids inside free text are not rewritten). Writes a receipt."
37
37
  },
38
38
  additive: {
39
39
  type: "boolean",
@@ -85,4 +85,4 @@ var doctorSupersededStoreCommand = defineCommand({
85
85
  export {
86
86
  doctorSupersededStoreCommand
87
87
  };
88
- //# sourceMappingURL=chunk-S24YI723.js.map
88
+ //# sourceMappingURL=chunk-KEQS36GD.js.map