@cleocode/cleo 2026.10.4 → 2026.10.5
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.
- package/README.md +7 -0
- package/dist/cli/{adapter-LVXHFBC4.js → adapter-OUQRSFZL.js} +10 -9
- package/dist/cli/{add-WUAV7LDT.js → add-4SRRJL4U.js} +18 -18
- package/dist/cli/{add-batch-U2DLKAQC.js → add-batch-TSWICA5J.js} +12 -11
- package/dist/cli/admin-L3F6CDYH.js +1428 -0
- package/dist/cli/{admin-I7BQYVZD.js → admin-YMU55YCU.js} +10 -9
- package/dist/cli/{adr-K2THMQBS.js → adr-XESRMFMP.js} +10 -9
- package/dist/cli/{agent-WQ6XY2DW.js → agent-TAFPIYUU.js} +66 -28
- package/dist/cli/{agent-outputs-BJIYLVTU.js → agent-outputs-HVJJIPS4.js} +3 -3
- package/dist/cli/{analyze-PGQZWGOC.js → analyze-YQ22QVGW.js} +10 -9
- package/dist/cli/{archive-5LZPF7C3.js → archive-W5XX6AH7.js} +10 -9
- package/dist/cli/{archive-stats-U6CYC6JM.js → archive-stats-HP2KPAJU.js} +10 -9
- package/dist/cli/attention-7JBDCRZX.js +124 -0
- package/dist/cli/{attention-SOURWCNI.js → attention-ZXZANHKC.js} +13 -12
- package/dist/cli/{audit-FO2Y4LH2.js → audit-ICA2SEFN.js} +2 -2
- package/dist/cli/{auth-ED7TAIXI.js → auth-DXIG5OG7.js} +5 -5
- package/dist/cli/{backfill-32TRAYRD.js → backfill-LBSYBWLR.js} +2 -2
- package/dist/cli/{backup-LEJMZJKL.js → backup-NUGBZ7NA.js} +17 -16
- package/dist/cli/{backup-inspect-6HPLUEI2.js → backup-inspect-PDRXI45A.js} +3 -3
- package/dist/cli/{backup-recover-2BTYBZU2.js → backup-recover-TVKAPERB.js} +3 -3
- package/dist/cli/{blockers-5JULUJTV.js → blockers-ZOPCGHDW.js} +10 -9
- package/dist/cli/{brain-273N3FW4.js → brain-EJOBKL4A.js} +9 -12
- package/dist/cli/{briefing-7H6OLECX.js → briefing-RDQJ6WHS.js} +11 -10
- package/dist/cli/{caamp-MFQVN6VU.js → caamp-Z3XPKEHB.js} +2 -2
- package/dist/cli/{cancel-SCMJTXZB.js → cancel-S7EHLCJN.js} +10 -9
- package/dist/cli/{cant-46XCUP4P.js → cant-CHNN6O57.js} +2 -2
- package/dist/cli/{changeset-32NMBGG2.js → changeset-RYPHPN2B.js} +4 -6
- package/dist/cli/check-C67YAU7W.js +759 -0
- package/dist/cli/{check-RWJLBCI2.js → check-DHMURGHC.js} +30 -13
- package/dist/cli/{checkpoint-37HMMKD7.js → checkpoint-UWDFOGYQ.js} +3 -3
- package/dist/cli/{chunk-NRKWJLMS.js → chunk-22YPFZYB.js} +2 -2
- package/dist/cli/{chunk-I3CRQQAD.js → chunk-2MGFDMDF.js} +84 -37
- package/dist/cli/{chunk-BCEXRFA2.js → chunk-4JYHPP4C.js} +2 -2
- package/dist/cli/{chunk-A2IUEIM5.js → chunk-4PEODTHY.js} +2 -2
- package/dist/cli/{chunk-3ZO3M37V.js → chunk-4RGSNUUP.js} +118 -170
- package/dist/cli/{chunk-AWCQH2W5.js → chunk-4VASFLUW.js} +2 -2
- package/dist/cli/{chunk-BPEVD37G.js → chunk-5PNI276X.js} +2 -2
- package/dist/cli/{chunk-OGV57L4J.js → chunk-6N6WGLXE.js} +6 -2
- package/dist/cli/{chunk-KHB52JNB.js → chunk-75UH3BLS.js} +4 -3
- package/dist/cli/{chunk-5ZFFUFH7.js → chunk-7ACK4EIN.js} +2 -2
- package/dist/cli/{chunk-MNJRLSEQ.js → chunk-7NMKLVMI.js} +2 -2
- package/dist/cli/{chunk-GFGLLDXX.js → chunk-7SINJXB6.js} +2 -2
- package/dist/cli/{chunk-KJDWWQFY.js → chunk-7UARFJYS.js} +3 -3
- package/dist/cli/{chunk-JNZJPIPJ.js → chunk-7ZYPQV4N.js} +3 -3
- package/dist/cli/{chunk-DVTPIZJM.js → chunk-AQCYT3L4.js} +2 -2
- package/dist/cli/{chunk-EGOTK2HA.js → chunk-BQK6XTOH.js} +2 -2
- package/dist/cli/{chunk-DYABOIHB.js → chunk-CAPAGD5E.js} +6 -4
- package/dist/cli/{chunk-ZZTHTMQP.js → chunk-CHGEDCKG.js} +3 -3
- package/dist/cli/{chunk-QPUY2HQZ.js → chunk-COXFJ3PT.js} +2 -2
- package/dist/cli/chunk-D7BAQNV2.js +55 -0
- package/dist/cli/{chunk-OPTEQKBB.js → chunk-EIUXVHNF.js} +3 -3
- package/dist/cli/{chunk-3PGH67MT.js → chunk-EUGB6P5V.js} +4 -6
- package/dist/cli/chunk-EW2CKNNZ.js +304 -0
- package/dist/cli/{chunk-2JIJD2I7.js → chunk-FSKN4DWC.js} +2 -2
- package/dist/cli/{chunk-NSHV2JNM.js → chunk-FVKLULL7.js} +2 -2
- package/dist/cli/{chunk-GH37QXW5.js → chunk-GAGUBU4Z.js} +2 -2
- package/dist/cli/{chunk-37NU2XDP.js → chunk-GKRFH2YG.js} +2 -2
- package/dist/cli/{chunk-ULN4OKQQ.js → chunk-GRU74UE4.js} +21 -10
- package/dist/cli/{chunk-LKNUA3SB.js → chunk-HFLLZE6A.js} +2 -2
- package/dist/cli/{chunk-YGKEECTI.js → chunk-HXRXT3XU.js} +2 -2
- package/dist/cli/{chunk-REUTEW3O.js → chunk-IIOGUY3B.js} +6 -6
- package/dist/cli/chunk-ILWWL462.js +60 -0
- package/dist/cli/{chunk-XRAX6XFP.js → chunk-J5USPJKZ.js} +2 -2
- package/dist/cli/{chunk-S24YI723.js → chunk-KEQS36GD.js} +4 -4
- package/dist/cli/chunk-L7ONYSV6.js +2497 -0
- package/dist/cli/chunk-NEFMQYLE.js +656 -0
- package/dist/cli/{chunk-QFFQSKRC.js → chunk-NU6CQQVB.js} +6 -2
- package/dist/cli/{chunk-5J2VH3BC.js → chunk-PN4WW5VX.js} +3 -3
- package/dist/cli/{chunk-AYA6F4ZT.js → chunk-PSJ33WVO.js} +3 -3
- package/dist/cli/{chunk-FORFDPP5.js → chunk-QJJWWCIC.js} +3 -3
- package/dist/cli/{chunk-ZBISIPCK.js → chunk-QKMBWYAS.js} +16 -1
- package/dist/cli/chunk-QWNKLLLG.js +84 -0
- package/dist/cli/{chunk-7INMKEAD.js → chunk-QWUFFDL3.js} +2 -2
- package/dist/cli/chunk-QY76BRUZ.js +35 -0
- package/dist/cli/chunk-R45KVF5Y.js +117 -0
- package/dist/cli/{chunk-W33Q3FBH.js → chunk-RRKP7HLU.js} +3 -3
- package/dist/cli/{chunk-YUZJI67I.js → chunk-T6GZJYL3.js} +2 -2
- package/dist/cli/{chunk-LWQBJQSE.js → chunk-TLQ37HRE.js} +3 -3
- package/dist/cli/chunk-TPTNEJZJ.js +52 -0
- package/dist/cli/chunk-TYC7G5LF.js +100 -0
- package/dist/cli/{chunk-J3ZFM3UQ.js → chunk-UWCZY52R.js} +25 -13
- package/dist/cli/{chunk-V5GBGOGM.js → chunk-VB3LDPL5.js} +2 -2
- package/dist/cli/chunk-WWCYZYSN.js +56 -0
- package/dist/cli/{chunk-EBRZ76HS.js → chunk-XA5WISNV.js} +4 -3
- package/dist/cli/chunk-XHRZ7OYZ.js +132 -0
- package/dist/cli/{chunk-EOPQFCSR.js → chunk-XLPMIGJJ.js} +6 -6
- package/dist/cli/{chunk-NWTATTEQ.js → chunk-ZMGDZMSJ.js} +2 -2
- package/dist/cli/{claim-KPENYHIQ.js → claim-IGOG2QOC.js} +10 -9
- package/dist/cli/{classify-DRVMCFQU.js → classify-MG4N7GMQ.js} +2 -2
- package/dist/cli/{cli-T3CR7J57.js → cli-A23Q335V.js} +10 -7
- package/dist/cli/{cloud-PPQ4O5TX.js → cloud-SILYJVKO.js} +194 -28
- package/dist/cli/{code-Z5CTMVTD.js → code-H2FQCVMW.js} +2 -2
- package/dist/cli/{complete-UBOCOBRB.js → complete-JLX7NBI4.js} +9 -8
- package/dist/cli/{complexity-BV2AGQRZ.js → complexity-OKV7PVZH.js} +10 -9
- package/dist/cli/{compliance-32PD5Y47.js → compliance-QMGZHJNQ.js} +10 -9
- package/dist/cli/{conduit-VDKCH33F.js → conduit-4H32UYEA.js} +10 -9
- package/dist/cli/conduit-EY54WTZA.js +535 -0
- package/dist/cli/{config-I72JAXK4.js → config-TDYOC7XO.js} +21 -18
- package/dist/cli/{consensus-LFILLSTK.js → consensus-4XCOFPPT.js} +10 -9
- package/dist/cli/{context-XUUVFVTP.js → context-FN4YTGHD.js} +12 -11
- package/dist/cli/{contribution-37NQ4N5R.js → contribution-7RWFBJLC.js} +10 -9
- package/dist/cli/{curator-TFDXU2EX.js → curator-HKZJCVRL.js} +2 -2
- package/dist/cli/{current-C4SN5BWV.js → current-B2NU7V3G.js} +10 -9
- package/dist/cli/{daemon-DV25JQ62.js → daemon-GBD4TVCD.js} +11 -10
- package/dist/cli/{dash-TFU4RLQW.js → dash-IGDANIE5.js} +10 -9
- package/dist/cli/{decide-5VPMNTSI.js → decide-26SXC2V6.js} +5 -8
- package/dist/cli/{decompose-KOYEZNJL.js → decompose-LQ76TEZG.js} +11 -10
- package/dist/cli/{decomposition-7OHUFIQN.js → decomposition-WFRWNUSJ.js} +10 -9
- package/dist/cli/{delete-Q7YCAFY5.js → delete-T5DUQHOX.js} +11 -10
- package/dist/cli/{deps-6UZKLDGJ.js → deps-UTPZJBXL.js} +17 -18
- package/dist/cli/{detect-FERY35UL.js → detect-FFZSMVDT.js} +10 -9
- package/dist/cli/{detect-drift-UL2JTPUK.js → detect-drift-TVCJOFYJ.js} +7 -7
- package/dist/cli/diagnostics-GN5CVD3N.js +93 -0
- package/dist/cli/{diagnostics-TI5QAZXR.js → diagnostics-ZNBKH6GX.js} +10 -9
- package/dist/cli/docs-CLQKEEUK.js +1710 -0
- package/dist/cli/{docs-QI2PRN3T.js → docs-DPPDFTWR.js} +45 -42
- package/dist/cli/{doctor-AX5TICQO.js → doctor-GPENOP4N.js} +79 -62
- package/dist/cli/{doctor-ac-bindings-YPMYHU2G.js → doctor-ac-bindings-S3IOEFP4.js} +3 -3
- package/dist/cli/{doctor-acceptance-drift-PYNFGMKB.js → doctor-acceptance-drift-VNFKPBSQ.js} +3 -3
- package/dist/cli/{doctor-credentials-UZRIADKM.js → doctor-credentials-A5H4JMTF.js} +3 -3
- package/dist/cli/{doctor-db-substrate-Q2TOYM2S.js → doctor-db-substrate-FGCISE4Z.js} +3 -3
- package/dist/cli/{doctor-dep-cycles-GCVYZY6F.js → doctor-dep-cycles-BKKKHHYG.js} +3 -3
- package/dist/cli/{doctor-exodus-RO5SUTC2.js → doctor-exodus-ND2DH2KP.js} +3 -3
- package/dist/cli/{doctor-exodus-residue-EM2AWQXP.js → doctor-exodus-residue-4EMRYMEQ.js} +3 -3
- package/dist/cli/{doctor-fk-check-Q3FOLECE.js → doctor-fk-check-VY3RIQV3.js} +3 -3
- package/dist/cli/{doctor-global-delivery-TNOAQ3NP.js → doctor-global-delivery-JN6IGHUL.js} +3 -3
- package/dist/cli/{doctor-heavy-command-hook-IO3QAQLG.js → doctor-heavy-command-hook-XSN44WXU.js} +3 -3
- package/dist/cli/{doctor-legacy-backups-O2YH5VLS.js → doctor-legacy-backups-QAG5NHYP.js} +3 -3
- package/dist/cli/{doctor-legacy-reaper-VSEJEIFA.js → doctor-legacy-reaper-CIRGFE6R.js} +3 -3
- package/dist/cli/{doctor-malformed-ids-LQ766V5K.js → doctor-malformed-ids-WL7HT4TB.js} +3 -3
- package/dist/cli/{doctor-manifest-rows-6FQDNHLH.js → doctor-manifest-rows-SMQCKJ2T.js} +3 -3
- package/dist/cli/{doctor-memory-guard-J4PSEKB5.js → doctor-memory-guard-LJDOJG76.js} +3 -3
- package/dist/cli/{doctor-migrations-ONOH56YM.js → doctor-migrations-ETQPFNUP.js} +3 -3
- package/dist/cli/{doctor-nexus-residency-FUQAX7PV.js → doctor-nexus-residency-A4JMKBEJ.js} +3 -3
- package/dist/cli/{doctor-project-identity-GUDK3HYX.js → doctor-project-identity-FFQJ5LNX.js} +3 -3
- package/dist/cli/{doctor-projects-7L3BNL4O.js → doctor-projects-MFUTKRHP.js} +3 -3
- package/dist/cli/{doctor-projects-registry-TEAVHFQU.js → doctor-projects-registry-76X6VTGM.js} +3 -3
- package/dist/cli/{doctor-release-readiness-IEGHX6SL.js → doctor-release-readiness-QJCOPFTK.js} +3 -3
- package/dist/cli/{doctor-repair-NBONOSZU.js → doctor-repair-AU76FIKY.js} +3 -3
- package/dist/cli/doctor-row-identity-KW6JYZQE.js +26 -0
- package/dist/cli/{doctor-skill-fixtures-7Y6L34A3.js → doctor-skill-fixtures-G3T7JUHS.js} +3 -3
- package/dist/cli/{doctor-split-brain-TUKIGVHF.js → doctor-split-brain-FUW6L7FS.js} +3 -3
- package/dist/cli/{doctor-superseded-store-BHZY2B2L.js → doctor-superseded-store-DUHGSBLC.js} +3 -3
- package/dist/cli/doctor-sync-journal-SXMUIKF7.js +26 -0
- package/dist/cli/doctor-sync-triggers-6WNJZFRM.js +26 -0
- package/dist/cli/{doctor-tool-locks-REQMIVYK.js → doctor-tool-locks-66LSLUBN.js} +3 -3
- package/dist/cli/{doctor-twin-collapse-222GOSPE.js → doctor-twin-collapse-AYBYBFC4.js} +3 -3
- package/dist/cli/{doctor-worktree-stores-J7TCRVJ3.js → doctor-worktree-stores-C5XEH5OG.js} +3 -3
- package/dist/cli/{done-V3AOO65B.js → done-R64XRZ32.js} +11 -10
- package/dist/cli/entities-3JIHDIOK.js +361 -0
- package/dist/cli/{event-EGNPGE5A.js → event-45KEWV5H.js} +2 -2
- package/dist/cli/{exists-H4SDCBPL.js → exists-BEDZS5RI.js} +3 -3
- package/dist/cli/{exodus-KALO3B3X.js → exodus-DUX62344.js} +3 -3
- package/dist/cli/{export-ROFOCG4M.js → export-C5PQIQ5O.js} +11 -10
- package/dist/cli/{export-tasks-US3WBIEQ.js → export-tasks-CUXDZPJB.js} +11 -10
- package/dist/cli/{federation-SUIB5QWT.js → federation-ESM35EGG.js} +3 -3
- package/dist/cli/{find-YICG4BG6.js → find-5EUZHHQJ.js} +13 -12
- package/dist/cli/focus-6AH4KLRO.js +368 -0
- package/dist/cli/{focus-TKCZPKOM.js → focus-ANKAIRO5.js} +10 -9
- package/dist/cli/{gateway-H4HFDC3E.js → gateway-2GW2KTK3.js} +2 -2
- package/dist/cli/{gc-5R2TUY5T.js → gc-CTOQLUSA.js} +2 -2
- package/dist/cli/{go-PRQFK5YG.js → go-YJPNHHYT.js} +6 -6
- package/dist/cli/{goal-7CZRMLHC.js → goal-4GW4G77D.js} +4 -3
- package/dist/cli/{grade-PY2YRPUS.js → grade-25WSZH4X.js} +10 -9
- package/dist/cli/{graph-XIXMCFKG.js → graph-JUO3TMF3.js} +11 -10
- package/dist/cli/{history-EIXADPAD.js → history-NACNUQTC.js} +10 -9
- package/dist/cli/{import-R73SO444.js → import-7ESGL5SS.js} +10 -9
- package/dist/cli/{import-tasks-O22FZJ4U.js → import-tasks-FLE2RPBR.js} +10 -9
- package/dist/cli/index.js +395 -238
- package/dist/cli/{init-IHEJDQWU.js → init-AN4DZ2XO.js} +5 -5
- package/dist/cli/{inject-LSRVWNCP.js → inject-HQWA5GWY.js} +10 -9
- package/dist/cli/{install-global-4AZUCH6U.js → install-global-YQV4W5OG.js} +2 -2
- package/dist/cli/intelligence-OFFNQGHE.js +238 -0
- package/dist/cli/{intelligence-2OSFOGD2.js → intelligence-QIC4SN4X.js} +10 -9
- package/dist/cli/{issue-IIWEDNFC.js → issue-P5RNMRDG.js} +10 -9
- package/dist/cli/{janitor-GPMC7VOR.js → janitor-ZNCFQ7E3.js} +2 -2
- package/dist/cli/{labels-5NPOIQXN.js → labels-ORBM3T57.js} +10 -9
- package/dist/cli/{lifecycle-4FFS2K2T.js → lifecycle-MHR22TVI.js} +13 -12
- package/dist/cli/{list-47KEUGPQ.js → list-LB6GCYYU.js} +14 -13
- package/dist/cli/llm-H7LZWQKX.js +130 -0
- package/dist/cli/{llm-G5B3I6GD.js → llm-OTJWPMGI.js} +14 -13
- package/dist/cli/{llm-cost-S7RS6BVA.js → llm-cost-MLMXEAR4.js} +3 -3
- package/dist/cli/{llm-stream-24A45NTS.js → llm-stream-AAEUNKRP.js} +3 -3
- package/dist/cli/{log-XF6H2XSD.js → log-W2A5M2NA.js} +10 -9
- package/dist/cli/{login-LBPLGHYG.js → login-SIXFFZSP.js} +6 -4
- package/dist/cli/{logout-SX4JSJIV.js → logout-G3KVLQQM.js} +5 -5
- package/dist/cli/{manifest-NMCW4PIW.js → manifest-G4T6EBSI.js} +10 -9
- package/dist/cli/{map-BU72KMGF.js → map-VU5M72TK.js} +10 -9
- package/dist/cli/{memory-UHYIVGVM.js → memory-2E27G2G5.js} +17 -21
- package/dist/cli/memory-IAEYKXG6.js +1895 -0
- package/dist/cli/{migrate-agents-v2-OO7OILZK.js → migrate-agents-v2-A52QIYNJ.js} +3 -3
- package/dist/cli/{migrate-claude-mem-EDNYUY3K.js → migrate-claude-mem-TPDW3R4Z.js} +17 -12
- package/dist/cli/{next-RZFRG5X7.js → next-SVH4LIDY.js} +10 -9
- package/dist/cli/nexus-FPQV2EAF.js +1059 -0
- package/dist/cli/{nexus-4S4Z5EVU.js → nexus-XSFXN5E6.js} +14 -13
- package/dist/cli/{ops-KR7AWCG3.js → ops-K6LHY5J6.js} +10 -9
- package/dist/cli/orchestrate-CZ2J6W3L.js +1650 -0
- package/dist/cli/{orchestrate-HOYZY3VX.js → orchestrate-HURUCQFT.js} +13 -11
- package/dist/cli/{otel-U7IIRBCT.js → otel-JCNPVJLZ.js} +2 -2
- package/dist/cli/{phase-NYZFHUE5.js → phase-VDFRASSO.js} +10 -9
- package/dist/cli/pipeline-TCZPOEDR.js +697 -0
- package/dist/cli/{pivot-FF2CVUZL.js → pivot-V5MSQZ7L.js} +10 -9
- package/dist/cli/{plan-3SL2NTRV.js → plan-SQUGCKSM.js} +10 -9
- package/dist/cli/{playbook-2FCBV7N3.js → playbook-L47GLDQD.js} +10 -9
- package/dist/cli/playbook-NJVO4R6P.js +33 -0
- package/dist/cli/{project-WDX2TGMC.js → project-YZEC7GYF.js} +6 -5
- package/dist/cli/{promote-YINYFBZY.js → promote-FINF4HVK.js} +10 -9
- package/dist/cli/provenance-3TUWVBFR.js +141 -0
- package/dist/cli/{provenance-C7AYD7WG.js → provenance-YZG33JGM.js} +10 -9
- package/dist/cli/{provider-QLJEDQBR.js → provider-23JVLLG3.js} +10 -9
- package/dist/cli/{reason-JF5BHBM5.js → reason-FHN54O7O.js} +10 -9
- package/dist/cli/{reconcile-NMISHDGX.js → reconcile-MOM5T4AX.js} +11 -10
- package/dist/cli/{refresh-memory-EY5YNICV.js → refresh-memory-3OSTRAVK.js} +2 -2
- package/dist/cli/{relates-R3ZPICAY.js → relates-6FWUFUS2.js} +10 -9
- package/dist/cli/release-G2DPSG5M.js +347 -0
- package/dist/cli/{release-4ZJTMUUT.js → release-URX6JHZ2.js} +10 -9
- package/dist/cli/{remote-QSONJDIK.js → remote-VIULU2T5.js} +3 -3
- package/dist/cli/{renderers-64OR3IWX.js → renderers-TGSW77J4.js} +2 -2
- package/dist/cli/{reorder-J3DOE7ST.js → reorder-UIPN6TQY.js} +10 -9
- package/dist/cli/{reparent-2OUMKEZX.js → reparent-ALOWWUIU.js} +10 -9
- package/dist/cli/{req-TZB7OFKO.js → req-RH2Y3H7A.js} +10 -9
- package/dist/cli/{research-MTD7EX45.js → research-G2Y72HRC.js} +10 -9
- package/dist/cli/{restore-VEUOX7NF.js → restore-VBR5XNML.js} +62 -15
- package/dist/cli/{revert-3YF2IL5G.js → revert-32LDNSGP.js} +2 -2
- package/dist/cli/{roadmap-7OOQLXKG.js → roadmap-LFU3AG7D.js} +10 -9
- package/dist/cli/{run-2U5NZV5Z.js → run-HXRILSR7.js} +40 -6
- package/dist/cli/{safestop-VR4VK56D.js → safestop-Z5UC7NGQ.js} +10 -9
- package/dist/cli/{saga-SEWPIOX2.js → saga-Y6FZS6AM.js} +12 -11
- package/dist/cli/{schema-C52WZ35V.js → schema-OOOKLWUE.js} +5 -5
- package/dist/cli/{self-update-GQIGUDPS.js → self-update-26SOTJMH.js} +3 -3
- package/dist/cli/{selfimprove-3Y5L4ECT.js → selfimprove-4SMOCLUV.js} +10 -9
- package/dist/cli/selfimprove-EB4RQLP4.js +139 -0
- package/dist/cli/sentient-QPETVE53.js +254 -0
- package/dist/cli/{sentient-M4YMAVGV.js → sentient-RGMWR4XJ.js} +2 -2
- package/dist/cli/{sequence-6UBMA4IF.js → sequence-H7DSAJPF.js} +10 -9
- package/dist/cli/{service-5R7SILZ7.js → service-EK5MGB2D.js} +10 -9
- package/dist/cli/service-GLOMZWPQ.js +437 -0
- package/dist/cli/{session-3C6AAC4Y.js → session-HYUXAQGC.js} +12 -11
- package/dist/cli/session-N5ISU56W.js +568 -0
- package/dist/cli/{setup-BTUBW5PU.js → setup-L3YYV53D.js} +4 -4
- package/dist/cli/{show-MXT2V7TF.js → show-364V3KY2.js} +12 -11
- package/dist/cli/{skill-GFUZOU2C.js → skill-F2KR6HW5.js} +2 -2
- package/dist/cli/{skills-EDWLKAF3.js → skills-FS3DCP6E.js} +13 -12
- package/dist/cli/{snapshot-GUWMURCM.js → snapshot-EGXEQ5PR.js} +12 -11
- package/dist/cli/{src-66GAKPXR.js → src-LYLXHXHH.js} +2 -2
- package/dist/cli/{start-QFG56RGN.js → start-6DXOCCKL.js} +10 -9
- package/dist/cli/{stats-GW55P7RR.js → stats-UVUQEGYC.js} +10 -9
- package/dist/cli/{status-46HTKNRR.js → status-XLKYLN42.js} +3 -3
- package/dist/cli/sticky-VSTQ2I2O.js +264 -0
- package/dist/cli/{sticky-2DUZOUGI.js → sticky-XZXZDCFW.js} +12 -11
- package/dist/cli/{stop-J2QEUKHX.js → stop-VNOAFWNB.js} +10 -9
- package/dist/cli/{sync-GJP2QYT5.js → sync-YYPARW3A.js} +11 -10
- package/dist/cli/tasks-C24KHTFF.js +1118 -0
- package/dist/cli/{tasks-BNXTM7PB.js → tasks-LBJC7CZV.js} +10 -9
- package/dist/cli/{telemetry-55Z2XJWL.js → telemetry-CU7W5WAY.js} +2 -2
- package/dist/cli/{templates-7O77TKPV.js → templates-G42JBUY4.js} +9 -11
- package/dist/cli/{testing-37YTBNKP.js → testing-HSRITHEY.js} +10 -9
- package/dist/cli/{token-UAVJMNUI.js → token-J74E7TSU.js} +10 -9
- package/dist/cli/tools-BI74W7VE.js +652 -0
- package/dist/cli/{transcript-LORQTV5Z.js → transcript-RGK7RSGQ.js} +2 -2
- package/dist/cli/{update-NVCYV2FT.js → update-2KQWA27S.js} +19 -17
- package/dist/cli/update-check-entry.js +124 -0
- package/dist/cli/update-notice-6SQ6WPQG.js +68 -0
- package/dist/cli/upgrade-E2MJAPC7.js +136 -0
- package/dist/cli/{upgrade-OXJXOGEF.js → upgrade-XRSQ4RWH.js} +5 -5
- package/dist/cli/{verify-LYLDHPT2.js → verify-WASRGDBA.js} +10 -9
- package/dist/cli/{web-QP2RP266.js → web-NJ3P67EU.js} +4 -4
- package/dist/cli/{workgraph-FXBSZDQE.js → workgraph-OHJ2VKJD.js} +6 -6
- package/dist/cli/{worktree-6RXAJIST.js → worktree-FVQLORFY.js} +10 -9
- package/dist/cli/worktree-ZJ6JTQNG.js +287 -0
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{Btgeq_wq.js → AH7dIemv.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{DgEKqO6r.js → BDgH40i3.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/BXDCSJ7U.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{CgBjxmu6.js → Gg4iYl59.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/{app.a02HWaRB.js → app.DUDNK-37.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.DNmZ0pA4.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.nTXyRfc-.js → 0.DWqP3ail.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.4zrWeHtl.js → 1.CZGVUP5B.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.D9mk4JyY.js → 15.DGaflZRS.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16._-wt-sQf.js → 16.uYlarGXl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.CUu6LQDj.js → 17.CZMR0E47.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.Dz4QRTkX.js → 18.CBC-AKH_.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.CJ2_EB0U.js → 20.BGi43MvQ.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.Igj2FS7k.js → 24.Dv8ftCyR.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/25.DQPVlTDQ.js +39 -0
- package/studio-dist/client/_app/immutable/nodes/{26.6iPyjT44.js → 26.Cl800304.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.AA5GwNgP.js → 3.D_fQKj9f.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-DGmsoBYm.js → 0-BpOagOst.js} +3 -3
- package/studio-dist/server/chunks/1-D0oRGR-C.js +9 -0
- package/studio-dist/server/chunks/{15-Bg6YTndh.js → 15-BcjHz7Tv.js} +3 -3
- package/studio-dist/server/chunks/{16-BObLwgyD.js → 16-CXm8TUk7.js} +3 -3
- package/studio-dist/server/chunks/{17-BNXGyAHX.js → 17-mSgUK-cp.js} +3 -3
- package/studio-dist/server/chunks/{18-UqQFRIID.js → 18-BtfnIw1d.js} +3 -3
- package/studio-dist/server/chunks/{20-CMn8a_yP.js → 20-By1e4QDS.js} +3 -3
- package/studio-dist/server/chunks/{24-BuOTDzib.js → 24-0i2YLVxG.js} +3 -3
- package/studio-dist/server/chunks/{dist-B8xbIrdB.js → 25-DPsrqbrh.js} +795 -10736
- package/studio-dist/server/chunks/{26-DWGObn2T.js → 26-P0XkOibm.js} +3 -3
- package/studio-dist/server/chunks/{3-CyiffdJZ.js → 3-WudjUK7e.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-DYtClaIk.js → _layout.svelte-D9m81Rle.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CEATWp_5.js → _page.svelte-2PDLOF83.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Bip079LT.js → _page.svelte-BjE3jm2K.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CV3xiD1y.js → _page.svelte-Clc0vmiZ.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-DSSy6LuK.js → _page.svelte-DABdRT3h.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-1h9E6s_f.js → _page.svelte-DG3PjiHj.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BT1EUadj.js → _page.svelte-Edy9CaE8.js} +20 -7
- package/studio-dist/server/chunks/{_page.svelte-BNNF62Nm.js → _page.svelte-Hrf3-ZR8.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-TF795TAS.js → _page.svelte-VB4O4Nl5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Cv_KVJDV.js → _page.svelte-d3jEgjsI.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-CzrwbhkQ.js → _server.ts-BcRFsyo3.js} +4 -5
- package/studio-dist/server/chunks/{_server.ts-C4w6UdU0.js → _server.ts-CEWpIFrj.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-BlhRFLY3.js → _server.ts-CLVdVIF9.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-Db6mEile.js → _server.ts-D_j7aSy5.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-DWt8Dziu.js → _server.ts-QEZF8h2q.js} +4 -5
- package/studio-dist/server/chunks/{client-D8f2k-H_.js → client-Kp1dP1od.js} +2 -2
- package/studio-dist/server/chunks/{error.svelte-DbbOwIme.js → error.svelte-WOCioJVX.js} +3 -3
- package/studio-dist/server/chunks/{hooks.server-D2qbf3Zp.js → hooks.server-DH9zkIrJ.js} +3 -1
- package/studio-dist/server/chunks/{http-1ftNGTs5.js → http-DT5kxaWk.js} +5 -4
- package/studio-dist/server/chunks/{internal-CTULuLPB.js → internal-z0vqd5_u.js} +3 -3
- package/studio-dist/server/chunks/operations-registry-DdzmYzqX.js +10584 -0
- package/studio-dist/server/chunks/{stores-CS5XOReX.js → stores-s2kaL315.js} +2 -2
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/manifest.js +17 -17
- package/dist/cli/chunk-3IOQVUO7.js +0 -17308
- package/dist/cli/chunk-OAPN46TC.js +0 -89
- package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +0 -1
- package/studio-dist/client/_app/immutable/entry/start.BreMSngo.js +0 -1
- package/studio-dist/client/_app/immutable/nodes/25.BnATjVGN.js +0 -39
- package/studio-dist/server/chunks/1-8PfxPvlK.js +0 -9
- package/studio-dist/server/chunks/25-CIMSmjVx.js +0 -366
|
@@ -17,27 +17,32 @@ import {
|
|
|
17
17
|
NEXUS_API_URL_ARG,
|
|
18
18
|
emitNexusResult,
|
|
19
19
|
failNexus,
|
|
20
|
-
nexusApiUrlArg
|
|
21
|
-
|
|
20
|
+
nexusApiUrlArg,
|
|
21
|
+
terminalSafe
|
|
22
|
+
} from "./chunk-GRU74UE4.js";
|
|
22
23
|
import "./chunk-47JYZAMS.js";
|
|
23
24
|
import "./chunk-C3B7C43W.js";
|
|
24
25
|
import {
|
|
25
26
|
defineCommand
|
|
26
27
|
} from "./chunk-PKKZPOOP.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-4RGSNUUP.js";
|
|
28
29
|
import "./chunk-6JSJNYH2.js";
|
|
29
30
|
|
|
30
31
|
// packages/cleo/src/cli/commands/cloud.ts
|
|
31
|
-
import { NEXUS_DEVICE_LIST_STATES as NEXUS_DEVICE_LIST_STATES2 } from "@cleocode/contracts";
|
|
32
|
+
import { NEXUS_DEVICE_LIST_STATES as NEXUS_DEVICE_LIST_STATES2 } from "@cleocode/contracts/nexus-cloud.js";
|
|
32
33
|
|
|
33
34
|
// packages/cleo/src/cli/lib/nexus-cloud-cli.ts
|
|
34
|
-
import {
|
|
35
|
+
import {
|
|
36
|
+
NEXUS_DEVICE_LIST_STATES,
|
|
37
|
+
NEXUS_PRESENCE_FRESH_SECONDS
|
|
38
|
+
} from "@cleocode/contracts/nexus-cloud.js";
|
|
35
39
|
function stringArg(args, name) {
|
|
36
40
|
const raw = args[name];
|
|
37
41
|
return typeof raw === "string" && raw !== "" ? raw : void 0;
|
|
38
42
|
}
|
|
39
43
|
function writeWarnings(warnings) {
|
|
40
|
-
for (const w of warnings)
|
|
44
|
+
for (const w of warnings)
|
|
45
|
+
process.stderr.write(`warning: ${terminalSafe(w.message)} (${w.code})
|
|
41
46
|
`);
|
|
42
47
|
}
|
|
43
48
|
function deviceStateArg(args) {
|
|
@@ -50,20 +55,72 @@ function deviceStateArg(args) {
|
|
|
50
55
|
fix: `use one of: ${NEXUS_DEVICE_LIST_STATES.join(", ")}`
|
|
51
56
|
});
|
|
52
57
|
}
|
|
58
|
+
var FRESH_MS = NEXUS_PRESENCE_FRESH_SECONDS * 1e3;
|
|
59
|
+
function devicesClause(holders, nowMs = Date.now()) {
|
|
60
|
+
const byDevice = /* @__PURE__ */ new Map();
|
|
61
|
+
for (const h of holders) {
|
|
62
|
+
const seen = byDevice.get(h.deviceId);
|
|
63
|
+
if (!seen || (h.presenceAt ?? "") > (seen.presenceAt ?? "")) byDevice.set(h.deviceId, h);
|
|
64
|
+
}
|
|
65
|
+
if (byDevice.size === 0) return "";
|
|
66
|
+
const lines = [...byDevice.values()].map((h) => {
|
|
67
|
+
const presence = h.presenceAt === null ? "no presence yet" : nowMs - Date.parse(h.presenceAt) <= FRESH_MS ? "presence fresh" : `presence stale since ${h.presenceAt.slice(0, 10)}`;
|
|
68
|
+
const marks = [h.deviceId.slice(0, 8), ...h.thisDevice ? ["this machine"] : [], presence];
|
|
69
|
+
return `${terminalSafe(h.deviceName)} (${marks.join(", ")})`;
|
|
70
|
+
});
|
|
71
|
+
return ` Devices: ${lines.join("; ")}.`;
|
|
72
|
+
}
|
|
73
|
+
function retiredList(retired) {
|
|
74
|
+
return retired.map((x) => `${x.replicaId} retired \u2192 ${x.successor}`).join("; ");
|
|
75
|
+
}
|
|
53
76
|
function cloudStatusSummary(r) {
|
|
54
77
|
if (r.verdict === "not-signed-in") {
|
|
55
|
-
return `Cloud status: not signed in to ${r.local.apiUrl}. Run \`cleo login nexus
|
|
78
|
+
return `Cloud status: not signed in to ${r.local.apiUrl}. Run \`cleo login nexus\`.${syncSummary(r)}`;
|
|
56
79
|
}
|
|
57
80
|
const s = r.summary;
|
|
58
81
|
const parts = [`device ${r.local.nexusDeviceId ?? "unknown"} (${s.profile ?? "no profile"})`];
|
|
59
82
|
if (r.local.projectId !== null) {
|
|
60
83
|
parts.push(`project ${r.local.projectId} ${s.linked ? "linked" : "NOT linked"}`);
|
|
61
84
|
parts.push(s.replicaAttached ? "replica attached" : "replica NOT attached");
|
|
85
|
+
if (r.local.retiredReplicas.length > 0) {
|
|
86
|
+
parts.push(`retired here: ${retiredList(r.local.retiredReplicas)}`);
|
|
87
|
+
}
|
|
62
88
|
parts.push(`${s.devices} device(s)`);
|
|
63
89
|
if (s.headSeq !== null) parts.push(`head ${s.headSeq}`);
|
|
64
90
|
if (s.openConflicts !== null) parts.push(`${s.openConflicts} open conflict(s)`);
|
|
65
91
|
}
|
|
66
|
-
return `Cloud status: ${r.verdict}. ${parts.join("; ")}
|
|
92
|
+
return `Cloud status: ${r.verdict}. ${parts.join("; ")}.${devicesClause(r.holders ?? [])}${syncSummary(r)}`;
|
|
93
|
+
}
|
|
94
|
+
function syncSummary(r) {
|
|
95
|
+
if (r.sync === void 0) return "";
|
|
96
|
+
return r.sync.streams.map(syncStreamClause).join("");
|
|
97
|
+
}
|
|
98
|
+
function syncStreamClause(st) {
|
|
99
|
+
const on = Object.entries(st.flags).filter(([, v]) => v).map(([k]) => k);
|
|
100
|
+
const quarantined = Object.values(st.quarantined).reduce((n, c) => n + c, 0);
|
|
101
|
+
const long = st.held.long.length;
|
|
102
|
+
const parts = [
|
|
103
|
+
!st.journalInstalled ? "journal not installed" : on.length > 0 ? `${on.join(", ")} on` : "all flags off",
|
|
104
|
+
`${st.unsealedOps} unsealed`,
|
|
105
|
+
`last sealed seq ${st.lastSealedSeq ?? "none"}`,
|
|
106
|
+
...quarantined > 0 ? [`${quarantined} quarantined`] : [],
|
|
107
|
+
...st.held.count > 0 ? [
|
|
108
|
+
`${st.held.count} held by a rebase${long > 0 ? ` (${long} older than ${st.held.warnDays} days)` : ""}`
|
|
109
|
+
] : [],
|
|
110
|
+
"server fields unknown until T12343/S4"
|
|
111
|
+
];
|
|
112
|
+
return ` Sync (${st.scope}${st.stream ? ` ${st.stream}` : ""}): ${parts.join("; ")}.`;
|
|
113
|
+
}
|
|
114
|
+
function cloudProjectShowSummary(r, thisDeviceId = null) {
|
|
115
|
+
const retired = r.retiredHere.length > 0 ? ` (retired on this device: ${retiredList(r.retiredHere)})` : "";
|
|
116
|
+
const retiredIds = new Set(r.retiredHere.map((x) => x.replicaId));
|
|
117
|
+
const holders = r.replicas.filter((rep) => !retiredIds.has(rep.replicaId)).map((rep) => ({
|
|
118
|
+
deviceId: rep.deviceId,
|
|
119
|
+
deviceName: rep.deviceName,
|
|
120
|
+
presenceAt: rep.presenceAt,
|
|
121
|
+
thisDevice: thisDeviceId !== null && rep.deviceId === thisDeviceId
|
|
122
|
+
}));
|
|
123
|
+
return `Project ${r.projectId} "${terminalSafe(r.project.label ?? "")}" (${r.role}): ${r.devices.active} active device(s), ${r.replicas.length} replica(s)${retired}, head ${r.stream?.headSeq ?? "none"}, ${r.openConflicts} open conflict(s).${devicesClause(holders)}`;
|
|
67
124
|
}
|
|
68
125
|
async function runCloudRead(operation, call, summary) {
|
|
69
126
|
let result;
|
|
@@ -124,7 +181,7 @@ async function runCloudDevices(args) {
|
|
|
124
181
|
...state !== void 0 ? { state } : {}
|
|
125
182
|
});
|
|
126
183
|
},
|
|
127
|
-
(r) => `${r.count} device(s) on ${r.apiUrl}${r.state ? ` (state ${r.state})` : ""}: ${r.devices.map((d) => `${d.name} ${d.deviceId} ${d.state}${d.current ? " (this machine)" : ""}`).join("; ")}`
|
|
184
|
+
(r) => `${r.count} device(s) on ${r.apiUrl}${r.state ? ` (state ${r.state})` : ""}: ${r.devices.map((d) => `${terminalSafe(d.name)} ${d.deviceId} ${d.state}${d.current ? " (this machine)" : ""}`).join("; ")}`
|
|
128
185
|
);
|
|
129
186
|
}
|
|
130
187
|
async function runCloudProjects(args) {
|
|
@@ -143,7 +200,7 @@ async function runCloudProjects(args) {
|
|
|
143
200
|
...projectId !== void 0 ? { projectId } : {}
|
|
144
201
|
});
|
|
145
202
|
},
|
|
146
|
-
|
|
203
|
+
cloudProjectShowSummary
|
|
147
204
|
);
|
|
148
205
|
return;
|
|
149
206
|
}
|
|
@@ -169,7 +226,7 @@ async function runCloudProjects(args) {
|
|
|
169
226
|
...organizationId !== void 0 ? { organizationId } : {}
|
|
170
227
|
});
|
|
171
228
|
},
|
|
172
|
-
(r) => `${r.count} project(s) on ${r.apiUrl}: ${r.projects.map((p) => `${p.label ?? p.projectId} (${p.role})`).join("; ")}`
|
|
229
|
+
(r) => `${r.count} project(s) on ${r.apiUrl}: ${r.projects.map((p) => `${terminalSafe(p.label ?? p.projectId)} (${p.role})`).join("; ")}`
|
|
173
230
|
);
|
|
174
231
|
}
|
|
175
232
|
|
|
@@ -192,7 +249,7 @@ var vaultModule = () => import(
|
|
|
192
249
|
function common(args, operation) {
|
|
193
250
|
return { apiUrl: nexusApiUrlArg(args), scope: scopeArg(args, operation) };
|
|
194
251
|
}
|
|
195
|
-
var who = (name, id) => name ?? id;
|
|
252
|
+
var who = (name, id) => terminalSafe(name ?? id);
|
|
196
253
|
function activityLimitArg(args) {
|
|
197
254
|
const raw = stringArg(args, "limit");
|
|
198
255
|
if (raw === void 0) return void 0;
|
|
@@ -244,8 +301,10 @@ async function restoreProjectId(args) {
|
|
|
244
301
|
if (stringArg(args, "into") === void 0) assertNexusRestoreTarget();
|
|
245
302
|
const resolved = await resolveNexusProjectRef(ref, { apiUrl: nexusApiUrlArg(args) });
|
|
246
303
|
if (resolved.matchedBy === "name") {
|
|
247
|
-
process.stderr.write(
|
|
248
|
-
`)
|
|
304
|
+
process.stderr.write(
|
|
305
|
+
`Restoring "${terminalSafe(resolved.name ?? "")}" (project ${resolved.projectId})...
|
|
306
|
+
`
|
|
307
|
+
);
|
|
249
308
|
}
|
|
250
309
|
return resolved.projectId;
|
|
251
310
|
}
|
|
@@ -279,20 +338,40 @@ async function runCloudRestoreLike(args, operation, mode) {
|
|
|
279
338
|
}
|
|
280
339
|
});
|
|
281
340
|
},
|
|
282
|
-
|
|
341
|
+
cloudRestoreSummary
|
|
283
342
|
);
|
|
284
343
|
}
|
|
344
|
+
function cloudRestoreSummary(r) {
|
|
345
|
+
if (r.status === "up-to-date") {
|
|
346
|
+
return `Up to date: this ${r.scope} store already holds snapshot ${r.snapshot?.checkpointId ?? "none"}.`;
|
|
347
|
+
}
|
|
348
|
+
const backup = r.safetyBackup ? `; previous state saved to ${r.safetyBackup}` : "";
|
|
349
|
+
const carried = r.replica?.reason === "file-identity" ? "from a copied file" : r.replica?.reason === "foreign-device" ? "from another device" : null;
|
|
350
|
+
const replica = !r.replica ? "" : carried ? `; this copy now has its own replica ${r.replica.current} (${r.replica.reason}: it carried ${r.replica.retired} ${carried})` : `; replica ${r.replica.retired} retired \u2192 ${r.replica.current}`;
|
|
351
|
+
return `Restored ${r.scope} snapshot ${r.snapshot?.checkpointId} into ${r.target}: ${r.tables} table(s) verified by count and hash${backup}${replica}.`;
|
|
352
|
+
}
|
|
353
|
+
function deepVerifyClause(deep) {
|
|
354
|
+
if (!deep) return "";
|
|
355
|
+
const passed = deep.snapshots.filter((x) => x.ok).length;
|
|
356
|
+
const failed = deep.snapshots.find((x) => !x.ok);
|
|
357
|
+
const segments = `${deep.segments.checked} segment(s) after seq ${deep.segments.from} ${deep.segments.ok ? "verified" : `verified, then FAILED: ${deep.segments.problem}`}`;
|
|
358
|
+
return `; deep: ${passed}/${deep.snapshots.length} snapshot bundle(s) verified${failed ? ` (${failed.checkpointId} FAILED: ${failed.problem})` : ""}, ${segments}`;
|
|
359
|
+
}
|
|
360
|
+
function cloudVerifySummary(r) {
|
|
361
|
+
const bad = r.tables.filter((t) => !t.match).map((t) => t.table);
|
|
362
|
+
const devices = r.devices.map(
|
|
363
|
+
(d) => `${who(d.deviceName, d.deviceId)} ${d.matchesHead ? "matches" : "differs from"} head`
|
|
364
|
+
).join("; ");
|
|
365
|
+
return `Verify ${r.scope}: ${r.verdict}${bad.length ? ` (${bad.length} table(s) differ: ${bad.slice(0, 8).join(", ")}${bad.length > 8 ? ", \u2026" : ""})` : ""}; local integrity ${r.localIntegrity ? "ok" : "FAILED"}${devices ? `; ${devices}` : ""}${deepVerifyClause(r.deep)}. Local backups: \`cleo backup verify\`.`;
|
|
366
|
+
}
|
|
285
367
|
async function runCloudVerify(args) {
|
|
286
368
|
await runCloudRead(
|
|
287
369
|
"cloud.verify",
|
|
288
|
-
async () => (await vaultModule()).verifyNexusVault(
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
).join("; ");
|
|
294
|
-
return `Verify ${r.scope}: ${r.verdict}${bad.length ? ` (${bad.length} table(s) differ: ${bad.slice(0, 8).join(", ")}${bad.length > 8 ? ", \u2026" : ""})` : ""}; local integrity ${r.localIntegrity ? "ok" : "FAILED"}${devices ? `; ${devices}` : ""}.`;
|
|
295
|
-
}
|
|
370
|
+
async () => (await vaultModule()).verifyNexusVault({
|
|
371
|
+
...common(args, "cloud.verify"),
|
|
372
|
+
deep: args["deep"] === true
|
|
373
|
+
}),
|
|
374
|
+
cloudVerifySummary
|
|
296
375
|
);
|
|
297
376
|
}
|
|
298
377
|
async function runCloudVault(args) {
|
|
@@ -340,10 +419,63 @@ async function runCloudActivity(args) {
|
|
|
340
419
|
});
|
|
341
420
|
},
|
|
342
421
|
(r) => `${r.items.length} event(s)${r.projectId ? ` for project ${r.projectId}` : ""}: ${r.items.slice(0, 10).map(
|
|
343
|
-
(i) => `${i.at} ${who(i.deviceName, i.deviceId ?? "account")}${i.thisDevice ? " (this machine)" : ""} ${i.action}${i.target ? ` ${i.target}` : ""}`
|
|
422
|
+
(i) => `${i.at} ${who(i.deviceName, i.deviceId ?? "account")}${i.thisDevice ? " (this machine)" : ""} ${terminalSafe(i.action)}${i.target ? ` ${terminalSafe(i.target)}` : ""}`
|
|
344
423
|
).join("; ")}${r.items.length > 10 ? "; \u2026" : ""}`
|
|
345
424
|
);
|
|
346
425
|
}
|
|
426
|
+
async function runCloudConflicts(args) {
|
|
427
|
+
const action = stringArg(args, "action") ?? "list";
|
|
428
|
+
const conflicts = () => import(
|
|
429
|
+
/* webpackIgnore: true */
|
|
430
|
+
"@cleocode/core/cloud/nexus-cloud-conflicts.js"
|
|
431
|
+
);
|
|
432
|
+
if (action === "resolve") {
|
|
433
|
+
const raw = stringArg(args, "id");
|
|
434
|
+
const id = raw !== void 0 && /^\d+$/.test(raw) ? Number(raw) : Number.NaN;
|
|
435
|
+
if (!Number.isSafeInteger(id)) {
|
|
436
|
+
failNexus(
|
|
437
|
+
Object.assign(new Error("resolve needs a conflict id"), {
|
|
438
|
+
code: "E_VALIDATION",
|
|
439
|
+
fix: "use `cleo cloud conflicts resolve <id>` (ids from `cleo cloud conflicts`)"
|
|
440
|
+
}),
|
|
441
|
+
"cloud.conflicts.resolve"
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
await runCloudRead(
|
|
445
|
+
"cloud.conflicts.resolve",
|
|
446
|
+
async () => (await conflicts()).resolveNexusCloudConflict({
|
|
447
|
+
id,
|
|
448
|
+
scope: scopeArg(args, "cloud.conflicts.resolve")
|
|
449
|
+
}),
|
|
450
|
+
(r) => r.resolved ? `Conflict ${r.id} resolved.` : `No open conflict ${r.id}.`
|
|
451
|
+
);
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
if (action !== "list") {
|
|
455
|
+
failNexus(
|
|
456
|
+
Object.assign(new Error(`unknown action '${action}'`), {
|
|
457
|
+
code: "E_VALIDATION",
|
|
458
|
+
fix: "use `cleo cloud conflicts` (list) or `cleo cloud conflicts resolve <id>`"
|
|
459
|
+
}),
|
|
460
|
+
"cloud.conflicts"
|
|
461
|
+
);
|
|
462
|
+
}
|
|
463
|
+
const stream = stringArg(args, "stream");
|
|
464
|
+
await runCloudRead(
|
|
465
|
+
"cloud.conflicts",
|
|
466
|
+
async () => (await conflicts()).nexusCloudConflicts({
|
|
467
|
+
scope: scopeArg(args, "cloud.conflicts"),
|
|
468
|
+
all: args.all === true,
|
|
469
|
+
...stream !== void 0 ? { stream } : {}
|
|
470
|
+
}),
|
|
471
|
+
(r) => r.conflicts.length === 0 ? `No ${args.all === true ? "" : "open "}sync conflicts (${r.total} recorded).` : [
|
|
472
|
+
`${r.open} open of ${r.total} sync conflict(s):`,
|
|
473
|
+
...r.conflicts.map(
|
|
474
|
+
(c) => ` #${c.id} ${c.kind} ${c.table}/${c.uid}${c.columns.length ? ` [${c.columns.join(", ")}]` : ""}${c.rule ? ` ${c.rule}` : ""}: ${c.resolution}${c.resolvedAt ? " (resolved)" : ""}`
|
|
475
|
+
)
|
|
476
|
+
].join("\n")
|
|
477
|
+
);
|
|
478
|
+
}
|
|
347
479
|
|
|
348
480
|
// packages/cleo/src/cli/commands/cloud.ts
|
|
349
481
|
var JSON_ARG = { type: "boolean", description: "Output as JSON envelope" };
|
|
@@ -488,9 +620,17 @@ var restoreSubCommand = defineCommand({
|
|
|
488
620
|
var verifyVaultSubCommand = defineCommand({
|
|
489
621
|
meta: {
|
|
490
622
|
name: "verify",
|
|
491
|
-
description: "Integrity check across machines: SQLite integrity of this store, its per-table counts and keyed hashes against the cloud's newest snapshot, and every device's newest snapshot against it. Verdict: match, ahead, behind, diverged, empty, or untrusted (the newest snapshot's signature does not verify)."
|
|
623
|
+
description: "Integrity check across machines: SQLite integrity of this store, its per-table counts and keyed hashes against the cloud's newest snapshot, and every device's newest snapshot against it. Verdict: match, ahead, behind, diverged, empty, or untrusted (the newest snapshot's signature does not verify, or with --deep its bytes do not). --deep downloads the snapshots again to check their sha256 and re-hashes the journal segments after the newest one. Local backups: `cleo backup verify`."
|
|
624
|
+
},
|
|
625
|
+
args: {
|
|
626
|
+
scope: SCOPE_ARG,
|
|
627
|
+
deep: {
|
|
628
|
+
type: "boolean",
|
|
629
|
+
description: "Download the newest snapshot of each device again and check its size, sha256 and decryption, then re-hash and decrypt the journal segments after the newest snapshot (downloads every bundle: slower, more traffic)."
|
|
630
|
+
},
|
|
631
|
+
"api-url": NEXUS_API_URL_ARG,
|
|
632
|
+
json: JSON_ARG
|
|
492
633
|
},
|
|
493
|
-
args: { scope: SCOPE_ARG, "api-url": NEXUS_API_URL_ARG, json: JSON_ARG },
|
|
494
634
|
async run({ args }) {
|
|
495
635
|
await runCloudVerify(args);
|
|
496
636
|
}
|
|
@@ -540,10 +680,35 @@ var activitySubCommand = defineCommand({
|
|
|
540
680
|
await runCloudActivity(args);
|
|
541
681
|
}
|
|
542
682
|
});
|
|
683
|
+
var conflictsSubCommand = defineCommand({
|
|
684
|
+
meta: {
|
|
685
|
+
name: "conflicts",
|
|
686
|
+
description: "The sync conflicts this store's apply recorded (typed-rule refusals, edits of deleted rows, deletes over newer edits, divergent edits, dangling references, guard refusals, parent deletes with live children, uid collisions, post-apply invariants), oldest first: open ones by default, --all for every one. `resolve <id>` acknowledges one (marks it resolved) once its resolution, an ordinary write, is made; it never replays the voided op. Local only; counts follow --stream."
|
|
687
|
+
},
|
|
688
|
+
args: {
|
|
689
|
+
action: {
|
|
690
|
+
type: "positional",
|
|
691
|
+
description: "'list' (default) or 'resolve'.",
|
|
692
|
+
required: false
|
|
693
|
+
},
|
|
694
|
+
id: {
|
|
695
|
+
type: "positional",
|
|
696
|
+
description: "Conflict id for resolve (from the list).",
|
|
697
|
+
required: false
|
|
698
|
+
},
|
|
699
|
+
all: { type: "boolean", description: "Include resolved conflicts." },
|
|
700
|
+
stream: { type: "string", description: "Only conflicts from this stream." },
|
|
701
|
+
scope: SCOPE_ARG,
|
|
702
|
+
json: JSON_ARG
|
|
703
|
+
},
|
|
704
|
+
async run({ args }) {
|
|
705
|
+
await runCloudConflicts(args);
|
|
706
|
+
}
|
|
707
|
+
});
|
|
543
708
|
var cloudCommand = defineCommand({
|
|
544
709
|
meta: {
|
|
545
710
|
name: "cloud",
|
|
546
|
-
description: "Cleo Nexus with the device credential: status (one-call verification), whoami, devices, projects [show], activity; the encrypted vault: push, pull, restore, verify, vault, lease release."
|
|
711
|
+
description: "Cleo Nexus with the device credential: status (one-call verification), whoami, devices, projects [show], activity; the encrypted vault: push, pull, restore, verify, vault, lease release; the local sync conflict log: conflicts [resolve <id>]."
|
|
547
712
|
},
|
|
548
713
|
subCommands: {
|
|
549
714
|
status: statusSubCommand,
|
|
@@ -551,6 +716,7 @@ var cloudCommand = defineCommand({
|
|
|
551
716
|
devices: devicesSubCommand,
|
|
552
717
|
projects: projectsSubCommand,
|
|
553
718
|
activity: activitySubCommand,
|
|
719
|
+
conflicts: conflictsSubCommand,
|
|
554
720
|
push: pushSubCommand,
|
|
555
721
|
pull: pullSubCommand,
|
|
556
722
|
restore: restoreSubCommand,
|
|
@@ -562,4 +728,4 @@ var cloudCommand = defineCommand({
|
|
|
562
728
|
export {
|
|
563
729
|
cloudCommand
|
|
564
730
|
};
|
|
565
|
-
//# sourceMappingURL=cloud-
|
|
731
|
+
//# sourceMappingURL=cloud-SILYJVKO.js.map
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
cliError,
|
|
21
21
|
humanLine
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-4RGSNUUP.js";
|
|
23
23
|
import "./chunk-6JSJNYH2.js";
|
|
24
24
|
|
|
25
25
|
// packages/cleo/src/cli/commands/code.ts
|
|
@@ -175,4 +175,4 @@ var codeCommand = defineCommand({
|
|
|
175
175
|
export {
|
|
176
176
|
codeCommand
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=code-
|
|
178
|
+
//# sourceMappingURL=code-H2FQCVMW.js.map
|
|
@@ -17,18 +17,19 @@ import {
|
|
|
17
17
|
completeCommand,
|
|
18
18
|
completeCommandArgs,
|
|
19
19
|
completeDispatchParams
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XLPMIGJJ.js";
|
|
21
|
+
import "./chunk-L7ONYSV6.js";
|
|
22
|
+
import "./chunk-6N6WGLXE.js";
|
|
23
|
+
import "./chunk-4VASFLUW.js";
|
|
21
24
|
import "./chunk-PKKZPOOP.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-OGV57L4J.js";
|
|
25
|
-
import "./chunk-ZBISIPCK.js";
|
|
26
|
-
import "./chunk-3ZO3M37V.js";
|
|
25
|
+
import "./chunk-QKMBWYAS.js";
|
|
26
|
+
import "./chunk-4RGSNUUP.js";
|
|
27
27
|
import "./chunk-6JSJNYH2.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-D7BAQNV2.js";
|
|
29
|
+
import "./chunk-TYC7G5LF.js";
|
|
29
30
|
export {
|
|
30
31
|
completeCommand,
|
|
31
32
|
completeCommandArgs,
|
|
32
33
|
completeDispatchParams
|
|
33
34
|
};
|
|
34
|
-
//# sourceMappingURL=complete-
|
|
35
|
+
//# sourceMappingURL=complete-JLX7NBI4.js.map
|
|
@@ -13,19 +13,20 @@
|
|
|
13
13
|
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
|
+
import {
|
|
17
|
+
dispatchFromCli
|
|
18
|
+
} from "./chunk-L7ONYSV6.js";
|
|
19
|
+
import "./chunk-6N6WGLXE.js";
|
|
20
|
+
import "./chunk-4VASFLUW.js";
|
|
16
21
|
import {
|
|
17
22
|
defineCommand,
|
|
18
23
|
showUsage
|
|
19
24
|
} from "./chunk-PKKZPOOP.js";
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
} from "./chunk-3IOQVUO7.js";
|
|
23
|
-
import "./chunk-AWCQH2W5.js";
|
|
24
|
-
import "./chunk-OGV57L4J.js";
|
|
25
|
-
import "./chunk-ZBISIPCK.js";
|
|
26
|
-
import "./chunk-3ZO3M37V.js";
|
|
25
|
+
import "./chunk-QKMBWYAS.js";
|
|
26
|
+
import "./chunk-4RGSNUUP.js";
|
|
27
27
|
import "./chunk-6JSJNYH2.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-D7BAQNV2.js";
|
|
29
|
+
import "./chunk-TYC7G5LF.js";
|
|
29
30
|
|
|
30
31
|
// packages/cleo/src/cli/commands/complexity.ts
|
|
31
32
|
var complexityEstimateCommand = defineCommand({
|
|
@@ -53,4 +54,4 @@ var complexityCommand = defineCommand({
|
|
|
53
54
|
export {
|
|
54
55
|
complexityCommand
|
|
55
56
|
};
|
|
56
|
-
//# sourceMappingURL=complexity-
|
|
57
|
+
//# sourceMappingURL=complexity-OKV7PVZH.js.map
|
|
@@ -13,19 +13,20 @@
|
|
|
13
13
|
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
|
+
import {
|
|
17
|
+
dispatchFromCli
|
|
18
|
+
} from "./chunk-L7ONYSV6.js";
|
|
19
|
+
import "./chunk-6N6WGLXE.js";
|
|
20
|
+
import "./chunk-4VASFLUW.js";
|
|
16
21
|
import {
|
|
17
22
|
defineCommand,
|
|
18
23
|
showUsage
|
|
19
24
|
} from "./chunk-PKKZPOOP.js";
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
} from "./chunk-3IOQVUO7.js";
|
|
23
|
-
import "./chunk-AWCQH2W5.js";
|
|
24
|
-
import "./chunk-OGV57L4J.js";
|
|
25
|
-
import "./chunk-ZBISIPCK.js";
|
|
26
|
-
import "./chunk-3ZO3M37V.js";
|
|
25
|
+
import "./chunk-QKMBWYAS.js";
|
|
26
|
+
import "./chunk-4RGSNUUP.js";
|
|
27
27
|
import "./chunk-6JSJNYH2.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-D7BAQNV2.js";
|
|
29
|
+
import "./chunk-TYC7G5LF.js";
|
|
29
30
|
|
|
30
31
|
// packages/cleo/src/cli/commands/compliance.ts
|
|
31
32
|
var summaryCommand = defineCommand({
|
|
@@ -273,4 +274,4 @@ var complianceCommand = defineCommand({
|
|
|
273
274
|
export {
|
|
274
275
|
complianceCommand
|
|
275
276
|
};
|
|
276
|
-
//# sourceMappingURL=compliance-
|
|
277
|
+
//# sourceMappingURL=compliance-QMGZHJNQ.js.map
|
|
@@ -13,19 +13,20 @@
|
|
|
13
13
|
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
|
+
import {
|
|
17
|
+
dispatchFromCli
|
|
18
|
+
} from "./chunk-L7ONYSV6.js";
|
|
19
|
+
import "./chunk-6N6WGLXE.js";
|
|
20
|
+
import "./chunk-4VASFLUW.js";
|
|
16
21
|
import {
|
|
17
22
|
defineCommand,
|
|
18
23
|
showUsage
|
|
19
24
|
} from "./chunk-PKKZPOOP.js";
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
} from "./chunk-3IOQVUO7.js";
|
|
23
|
-
import "./chunk-AWCQH2W5.js";
|
|
24
|
-
import "./chunk-OGV57L4J.js";
|
|
25
|
-
import "./chunk-ZBISIPCK.js";
|
|
26
|
-
import "./chunk-3ZO3M37V.js";
|
|
25
|
+
import "./chunk-QKMBWYAS.js";
|
|
26
|
+
import "./chunk-4RGSNUUP.js";
|
|
27
27
|
import "./chunk-6JSJNYH2.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-D7BAQNV2.js";
|
|
29
|
+
import "./chunk-TYC7G5LF.js";
|
|
29
30
|
|
|
30
31
|
// packages/cleo/src/cli/commands/conduit.ts
|
|
31
32
|
var statusCommand = defineCommand({
|
|
@@ -304,4 +305,4 @@ var conduitCommand = defineCommand({
|
|
|
304
305
|
export {
|
|
305
306
|
conduitCommand
|
|
306
307
|
};
|
|
307
|
-
//# sourceMappingURL=conduit-
|
|
308
|
+
//# sourceMappingURL=conduit-4H32UYEA.js.map
|