@cleocode/cleo 2026.10.3 → 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.
- package/README.md +7 -0
- package/bin/cleo.js +11 -1
- package/dist/cli/adapter-OUQRSFZL.js +159 -0
- package/dist/cli/add-4SRRJL4U.js +443 -0
- package/dist/cli/add-batch-TSWICA5J.js +164 -0
- package/dist/cli/admin-L3F6CDYH.js +1428 -0
- package/dist/cli/admin-YMU55YCU.js +341 -0
- package/dist/cli/adr-XESRMFMP.js +172 -0
- package/dist/cli/agent-TAFPIYUU.js +2404 -0
- package/dist/cli/agent-outputs-HVJJIPS4.js +84 -0
- package/dist/cli/analyze-YQ22QVGW.js +49 -0
- package/dist/cli/archive-W5XX6AH7.js +65 -0
- package/dist/cli/archive-stats-HP2KPAJU.js +101 -0
- package/dist/cli/attention-7JBDCRZX.js +124 -0
- package/dist/cli/attention-ZXZANHKC.js +168 -0
- package/dist/cli/audit-ICA2SEFN.js +122 -0
- package/dist/cli/auth-DXIG5OG7.js +491 -0
- package/dist/cli/backfill-LBSYBWLR.js +156 -0
- package/dist/cli/backup-NUGBZ7NA.js +588 -0
- package/dist/cli/backup-inspect-PDRXI45A.js +26 -0
- package/dist/cli/backup-recover-TVKAPERB.js +29 -0
- package/dist/cli/blockers-ZOPCGHDW.js +55 -0
- package/dist/cli/brain-EJOBKL4A.js +397 -0
- package/dist/cli/briefing-RDQJ6WHS.js +213 -0
- package/dist/cli/caamp-Z3XPKEHB.js +181 -0
- package/dist/cli/cancel-S7EHLCJN.js +85 -0
- package/dist/cli/canon-NPF5RODM.js +142 -0
- package/dist/cli/canon-docs-2GTOLF7Y.js +26 -0
- package/dist/cli/cant-CHNN6O57.js +239 -0
- package/dist/cli/changeset-RYPHPN2B.js +246 -0
- package/dist/cli/check-C67YAU7W.js +759 -0
- package/dist/cli/check-DHMURGHC.js +924 -0
- package/dist/cli/checkpoint-UWDFOGYQ.js +128 -0
- package/dist/cli/chunk-22YPFZYB.js +91 -0
- package/dist/cli/chunk-2MGFDMDF.js +272 -0
- package/dist/cli/chunk-47JYZAMS.js +30 -0
- package/dist/cli/chunk-4JYHPP4C.js +76 -0
- package/dist/cli/chunk-4PEODTHY.js +278 -0
- package/dist/cli/chunk-4RGSNUUP.js +950 -0
- package/dist/cli/chunk-4VASFLUW.js +35 -0
- package/dist/cli/chunk-5PNI276X.js +124 -0
- package/dist/cli/chunk-6JSJNYH2.js +114 -0
- package/dist/cli/chunk-6N6WGLXE.js +63 -0
- package/dist/cli/chunk-75UH3BLS.js +210 -0
- package/dist/cli/chunk-7ACK4EIN.js +92 -0
- package/dist/cli/chunk-7NMKLVMI.js +107 -0
- package/dist/cli/chunk-7SINJXB6.js +110 -0
- package/dist/cli/chunk-7UARFJYS.js +46 -0
- package/dist/cli/chunk-7ZYPQV4N.js +90 -0
- package/dist/cli/chunk-AQCYT3L4.js +72 -0
- package/dist/cli/chunk-BQK6XTOH.js +57 -0
- package/dist/cli/chunk-C3B7C43W.js +16 -0
- package/dist/cli/chunk-CAPAGD5E.js +98 -0
- package/dist/cli/chunk-CHGEDCKG.js +77 -0
- package/dist/cli/chunk-COXFJ3PT.js +74 -0
- package/dist/cli/chunk-D7BAQNV2.js +55 -0
- package/dist/cli/chunk-EIUXVHNF.js +258 -0
- package/dist/cli/chunk-EUGB6P5V.js +173 -0
- package/dist/cli/chunk-EW2CKNNZ.js +304 -0
- package/dist/cli/chunk-FSKN4DWC.js +108 -0
- package/dist/cli/chunk-FVKLULL7.js +48 -0
- package/dist/cli/chunk-GAGUBU4Z.js +280 -0
- package/dist/cli/chunk-GKRFH2YG.js +171 -0
- package/dist/cli/chunk-GRU74UE4.js +270 -0
- package/dist/cli/chunk-GZFVDR44.js +320 -0
- package/dist/cli/chunk-HFLLZE6A.js +83 -0
- package/dist/cli/chunk-HXRXT3XU.js +78 -0
- package/dist/cli/chunk-IIOGUY3B.js +258 -0
- package/dist/cli/chunk-ILWWL462.js +60 -0
- package/dist/cli/chunk-J5USPJKZ.js +48 -0
- package/dist/cli/chunk-KEQS36GD.js +88 -0
- package/dist/cli/chunk-L7ONYSV6.js +2497 -0
- package/dist/cli/chunk-LVGIFMCV.js +163 -0
- package/dist/cli/chunk-NEFMQYLE.js +656 -0
- package/dist/cli/chunk-NU6CQQVB.js +4501 -0
- package/dist/cli/chunk-OILHT47L.js +252 -0
- package/dist/cli/chunk-PKKZPOOP.js +352 -0
- package/dist/cli/chunk-PN4WW5VX.js +66 -0
- package/dist/cli/chunk-PSJ33WVO.js +56 -0
- package/dist/cli/chunk-QA6T2LQ5.js +71 -0
- package/dist/cli/chunk-QJJWWCIC.js +288 -0
- package/dist/cli/chunk-QKMBWYAS.js +93 -0
- package/dist/cli/chunk-QWNKLLLG.js +84 -0
- package/dist/cli/chunk-QWUFFDL3.js +85 -0
- package/dist/cli/chunk-QY76BRUZ.js +35 -0
- package/dist/cli/chunk-R45KVF5Y.js +117 -0
- package/dist/cli/chunk-RRKP7HLU.js +66 -0
- package/dist/cli/chunk-SXXOC6KZ.js +209 -0
- package/dist/cli/chunk-T6GZJYL3.js +108 -0
- package/dist/cli/chunk-TLQ37HRE.js +67 -0
- package/dist/cli/chunk-TPTNEJZJ.js +52 -0
- package/dist/cli/chunk-TYC7G5LF.js +100 -0
- package/dist/cli/chunk-UWCZY52R.js +766 -0
- package/dist/cli/chunk-VB3LDPL5.js +46 -0
- package/dist/cli/chunk-VLEYOOPH.js +31 -0
- package/dist/cli/chunk-W3JLYKKY.js +140 -0
- package/dist/cli/chunk-WWCYZYSN.js +56 -0
- package/dist/cli/chunk-XA5WISNV.js +52 -0
- package/dist/cli/chunk-XHRZ7OYZ.js +132 -0
- package/dist/cli/chunk-XLPMIGJJ.js +148 -0
- package/dist/cli/chunk-YY66LFZF.js +29 -0
- package/dist/cli/chunk-ZMGDZMSJ.js +210 -0
- package/dist/cli/claim-IGOG2QOC.js +97 -0
- package/dist/cli/classify-MG4N7GMQ.js +117 -0
- package/dist/cli/cli-A23Q335V.js +51 -0
- package/dist/cli/cloud-SILYJVKO.js +731 -0
- package/dist/cli/cockpit-RZKLGYPN.js +790 -0
- package/dist/cli/code-H2FQCVMW.js +178 -0
- package/dist/cli/complete-JLX7NBI4.js +35 -0
- package/dist/cli/complexity-OKV7PVZH.js +57 -0
- package/dist/cli/compliance-QMGZHJNQ.js +277 -0
- package/dist/cli/conduit-4H32UYEA.js +308 -0
- package/dist/cli/conduit-EY54WTZA.js +535 -0
- package/dist/cli/config-TDYOC7XO.js +519 -0
- package/dist/cli/consensus-4XCOFPPT.js +122 -0
- package/dist/cli/context-FN4YTGHD.js +142 -0
- package/dist/cli/contribution-7RWFBJLC.js +112 -0
- package/dist/cli/curator-HKZJCVRL.js +139 -0
- package/dist/cli/current-B2NU7V3G.js +43 -0
- package/dist/cli/daemon-GBD4TVCD.js +452 -0
- package/dist/cli/dash-IGDANIE5.js +71 -0
- package/dist/cli/decide-26SXC2V6.js +416 -0
- package/dist/cli/decompose-LQ76TEZG.js +78 -0
- package/dist/cli/decomposition-WFRWNUSJ.js +122 -0
- package/dist/cli/delete-T5DUQHOX.js +69 -0
- package/dist/cli/deps-UTPZJBXL.js +462 -0
- package/dist/cli/detect-FFZSMVDT.js +46 -0
- package/dist/cli/detect-drift-TVCJOFYJ.js +408 -0
- package/dist/cli/diagnostics-GN5CVD3N.js +93 -0
- package/dist/cli/diagnostics-ZNBKH6GX.js +133 -0
- package/dist/cli/docs-CLQKEEUK.js +1710 -0
- package/dist/cli/docs-DPPDFTWR.js +3098 -0
- package/dist/cli/doctor-GPENOP4N.js +1270 -0
- package/dist/cli/doctor-ac-bindings-S3IOEFP4.js +26 -0
- package/dist/cli/doctor-acceptance-drift-VNFKPBSQ.js +26 -0
- package/dist/cli/doctor-credentials-A5H4JMTF.js +26 -0
- package/dist/cli/doctor-db-substrate-FGCISE4Z.js +27 -0
- package/dist/cli/doctor-dep-cycles-BKKKHHYG.js +26 -0
- package/dist/cli/doctor-exodus-ND2DH2KP.js +26 -0
- package/dist/cli/doctor-exodus-residue-4EMRYMEQ.js +26 -0
- package/dist/cli/doctor-fk-check-VY3RIQV3.js +26 -0
- package/dist/cli/doctor-global-delivery-JN6IGHUL.js +26 -0
- package/dist/cli/doctor-heavy-command-hook-XSN44WXU.js +26 -0
- package/dist/cli/doctor-legacy-backups-QAG5NHYP.js +26 -0
- package/dist/cli/doctor-legacy-reaper-CIRGFE6R.js +26 -0
- package/dist/cli/doctor-malformed-ids-WL7HT4TB.js +26 -0
- package/dist/cli/doctor-manifest-rows-SMQCKJ2T.js +26 -0
- package/dist/cli/doctor-memory-guard-LJDOJG76.js +26 -0
- package/dist/cli/doctor-migrations-ETQPFNUP.js +26 -0
- package/dist/cli/doctor-nexus-residency-A4JMKBEJ.js +26 -0
- package/dist/cli/doctor-project-identity-FFQJ5LNX.js +26 -0
- package/dist/cli/doctor-projects-MFUTKRHP.js +30 -0
- package/dist/cli/doctor-projects-registry-76X6VTGM.js +26 -0
- package/dist/cli/doctor-release-readiness-QJCOPFTK.js +26 -0
- package/dist/cli/doctor-repair-AU76FIKY.js +26 -0
- package/dist/cli/doctor-row-identity-KW6JYZQE.js +26 -0
- package/dist/cli/doctor-skill-fixtures-G3T7JUHS.js +26 -0
- package/dist/cli/doctor-split-brain-FUW6L7FS.js +26 -0
- package/dist/cli/doctor-superseded-store-DUHGSBLC.js +26 -0
- 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-66LSLUBN.js +26 -0
- package/dist/cli/doctor-twin-collapse-AYBYBFC4.js +26 -0
- package/dist/cli/doctor-worktree-stores-C5XEH5OG.js +26 -0
- package/dist/cli/done-R64XRZ32.js +196 -0
- package/dist/cli/dynamic-RR4HB7BB.js +29 -0
- package/dist/cli/entities-3JIHDIOK.js +361 -0
- package/dist/cli/event-45KEWV5H.js +372 -0
- package/dist/cli/exists-BEDZS5RI.js +65 -0
- package/dist/cli/exodus-DUX62344.js +401 -0
- package/dist/cli/export-C5PQIQ5O.js +93 -0
- package/dist/cli/export-tasks-CUXDZPJB.js +97 -0
- package/dist/cli/federation-ESM35EGG.js +145 -0
- package/dist/cli/find-5EUZHHQJ.js +178 -0
- package/dist/cli/focus-6AH4KLRO.js +368 -0
- package/dist/cli/focus-ANKAIRO5.js +56 -0
- package/dist/cli/gateway-2GW2KTK3.js +77 -0
- package/dist/cli/gateway-auto-start-EDK7XI6E.js +36 -0
- package/dist/cli/gc-CTOQLUSA.js +291 -0
- package/dist/cli/go-YJPNHHYT.js +206 -0
- package/dist/cli/goal-4GW4G77D.js +213 -0
- package/dist/cli/grade-25WSZH4X.js +57 -0
- package/dist/cli/graph-JUO3TMF3.js +879 -0
- package/dist/cli/history-NACNUQTC.js +138 -0
- package/dist/cli/hook-UF7J7R6D.js +57 -0
- package/dist/cli/hook-entry.js +244 -19
- package/dist/cli/hygiene-3QZ2NI7P.js +55 -0
- package/dist/cli/import-7ESGL5SS.js +89 -0
- package/dist/cli/import-tasks-FLE2RPBR.js +109 -0
- package/dist/cli/index.js +601 -94637
- package/dist/cli/init-AN4DZ2XO.js +40 -0
- package/dist/cli/inject-HQWA5GWY.js +83 -0
- package/dist/cli/install-global-YQV4W5OG.js +95 -0
- package/dist/cli/intelligence-OFFNQGHE.js +238 -0
- package/dist/cli/intelligence-QIC4SN4X.js +182 -0
- package/dist/cli/issue-P5RNMRDG.js +159 -0
- package/dist/cli/janitor-ZNCFQ7E3.js +111 -0
- package/dist/cli/labels-ORBM3T57.js +88 -0
- package/dist/cli/lifecycle-MHR22TVI.js +273 -0
- package/dist/cli/list-LB6GCYYU.js +109 -0
- package/dist/cli/llm-H7LZWQKX.js +130 -0
- package/dist/cli/llm-OTJWPMGI.js +704 -0
- package/dist/cli/llm-cost-MLMXEAR4.js +25 -0
- package/dist/cli/llm-stream-AAEUNKRP.js +27 -0
- package/dist/cli/log-W2A5M2NA.js +76 -0
- package/dist/cli/login-SIXFFZSP.js +45 -0
- package/dist/cli/logout-G3KVLQQM.js +74 -0
- package/dist/cli/manifest-G4T6EBSI.js +354 -0
- package/dist/cli/map-VU5M72TK.js +53 -0
- package/dist/cli/memory-2E27G2G5.js +1952 -0
- package/dist/cli/memory-IAEYKXG6.js +1895 -0
- package/dist/cli/migrate-agents-v2-A52QIYNJ.js +33 -0
- package/dist/cli/migrate-claude-mem-TPDW3R4Z.js +206 -0
- package/dist/cli/next-SVH4LIDY.js +57 -0
- package/dist/cli/nexus-FPQV2EAF.js +1059 -0
- package/dist/cli/nexus-XSFXN5E6.js +2924 -0
- package/dist/cli/ops-K6LHY5J6.js +52 -0
- package/dist/cli/orchestrate-CZ2J6W3L.js +1650 -0
- package/dist/cli/orchestrate-HURUCQFT.js +950 -0
- package/dist/cli/otel-JCNPVJLZ.js +188 -0
- package/dist/cli/phase-VDFRASSO.js +221 -0
- package/dist/cli/pipeline-TCZPOEDR.js +697 -0
- package/dist/cli/pivot-V5MSQZ7L.js +88 -0
- package/dist/cli/plan-SQUGCKSM.js +49 -0
- package/dist/cli/playbook-L47GLDQD.js +230 -0
- package/dist/cli/playbook-NJVO4R6P.js +33 -0
- package/dist/cli/project-YZEC7GYF.js +331 -0
- package/dist/cli/promote-FINF4HVK.js +53 -0
- package/dist/cli/provenance-3TUWVBFR.js +141 -0
- package/dist/cli/provenance-YZG33JGM.js +129 -0
- package/dist/cli/provider-23JVLLG3.js +213 -0
- package/dist/cli/reason-FHN54O7O.js +138 -0
- package/dist/cli/reconcile-MOM5T4AX.js +128 -0
- package/dist/cli/refresh-memory-3OSTRAVK.js +45 -0
- package/dist/cli/relates-6FWUFUS2.js +260 -0
- package/dist/cli/release-G2DPSG5M.js +347 -0
- package/dist/cli/release-URX6JHZ2.js +525 -0
- package/dist/cli/remote-VIULU2T5.js +279 -0
- package/dist/cli/renderers-TGSW77J4.js +37 -0
- package/dist/cli/reorder-UIPN6TQY.js +87 -0
- package/dist/cli/reparent-ALOWWUIU.js +59 -0
- package/dist/cli/req-RH2Y3H7A.js +130 -0
- package/dist/cli/research-G2Y72HRC.js +366 -0
- package/dist/cli/restore-VBR5XNML.js +470 -0
- package/dist/cli/revert-32LDNSGP.js +240 -0
- package/dist/cli/roadmap-LFU3AG7D.js +62 -0
- package/dist/cli/run-HXRILSR7.js +245 -0
- package/dist/cli/safestop-Z5UC7NGQ.js +89 -0
- package/dist/cli/saga-Y6FZS6AM.js +286 -0
- package/dist/cli/schema-OOOKLWUE.js +195 -0
- package/dist/cli/self-update-26SOTJMH.js +504 -0
- package/dist/cli/selfimprove-4SMOCLUV.js +89 -0
- package/dist/cli/selfimprove-EB4RQLP4.js +139 -0
- package/dist/cli/sentient-QPETVE53.js +254 -0
- package/dist/cli/sentient-RGMWR4XJ.js +1088 -0
- package/dist/cli/sequence-H7DSAJPF.js +94 -0
- package/dist/cli/service-EK5MGB2D.js +156 -0
- package/dist/cli/service-GLOMZWPQ.js +437 -0
- package/dist/cli/session-HYUXAQGC.js +708 -0
- package/dist/cli/session-N5ISU56W.js +568 -0
- package/dist/cli/setup-L3YYV53D.js +323 -0
- package/dist/cli/show-364V3KY2.js +123 -0
- package/dist/cli/skill-F2KR6HW5.js +84 -0
- package/dist/cli/skills-FS3DCP6E.js +929 -0
- package/dist/cli/smoke-provider-SKUFMZXU.js +218 -0
- package/dist/cli/snapshot-EGXEQ5PR.js +120 -0
- package/dist/cli/src-LYLXHXHH.js +80 -0
- package/dist/cli/start-6DXOCCKL.js +68 -0
- package/dist/cli/stats-UVUQEGYC.js +96 -0
- package/dist/cli/status-XLKYLN42.js +157 -0
- package/dist/cli/sticky-VSTQ2I2O.js +264 -0
- package/dist/cli/sticky-XZXZDCFW.js +339 -0
- package/dist/cli/stop-VNOAFWNB.js +43 -0
- package/dist/cli/sync-YYPARW3A.js +155 -0
- package/dist/cli/tasks-C24KHTFF.js +1118 -0
- package/dist/cli/tasks-LBJC7CZV.js +175 -0
- package/dist/cli/telemetry-CU7W5WAY.js +120 -0
- package/dist/cli/templates-G42JBUY4.js +609 -0
- package/dist/cli/testing-HSRITHEY.js +147 -0
- package/dist/cli/token-J74E7TSU.js +221 -0
- package/dist/cli/tools-BI74W7VE.js +652 -0
- package/dist/cli/transcript-RGK7RSGQ.js +440 -0
- package/dist/cli/tui-BPUFHYKK.js +51 -0
- package/dist/cli/update-2KQWA27S.js +478 -0
- 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-XRSQ4RWH.js +243 -0
- package/dist/cli/verify-WASRGDBA.js +191 -0
- package/dist/cli/web-NJ3P67EU.js +275 -0
- package/dist/cli/workgraph-OHJ2VKJD.js +232 -0
- package/dist/cli/worktree-FVQLORFY.js +371 -0
- package/dist/cli/worktree-ZJ6JTQNG.js +287 -0
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{DMj27Pxj.js → AH7dIemv.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{Dc2owyvE.js → BDgH40i3.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/BXDCSJ7U.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{qq3pe1aT.js → Gg4iYl59.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/{app.CHWXLeE9.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.DmKQGvFh.js → 0.DWqP3ail.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DqJk_REO.js → 1.CZGVUP5B.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.GUy6kdW1.js → 15.DGaflZRS.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.CcnKZ8f9.js → 16.uYlarGXl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.DAlQF3lQ.js → 17.CZMR0E47.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.vQFr-vFj.js → 18.CBC-AKH_.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.GVOj5j_r.js → 20.BGi43MvQ.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.2-wC6DOh.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.C3rNqzZF.js → 26.Cl800304.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.b-7pzc3M.js → 3.D_fQKj9f.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BaCce-O1.js → 0-BpOagOst.js} +3 -3
- package/studio-dist/server/chunks/1-D0oRGR-C.js +9 -0
- package/studio-dist/server/chunks/{15-DRMOSIC9.js → 15-BcjHz7Tv.js} +3 -3
- package/studio-dist/server/chunks/{16-BulXhoZZ.js → 16-CXm8TUk7.js} +3 -3
- package/studio-dist/server/chunks/{17-DUEOCM0H.js → 17-mSgUK-cp.js} +3 -3
- package/studio-dist/server/chunks/{18-DP7Q8zPs.js → 18-BtfnIw1d.js} +3 -3
- package/studio-dist/server/chunks/{20-9ta6MI7q.js → 20-By1e4QDS.js} +3 -3
- package/studio-dist/server/chunks/{24-DysdL1ab.js → 24-0i2YLVxG.js} +3 -3
- package/studio-dist/server/chunks/{dist-CdoCt9zT.js → 25-DPsrqbrh.js} +797 -10736
- package/studio-dist/server/chunks/{26-Df4YXgg0.js → 26-P0XkOibm.js} +3 -3
- package/studio-dist/server/chunks/{3-BEhOhYpL.js → 3-WudjUK7e.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-CnLcXYG-.js → _layout.svelte-D9m81Rle.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-DGhXqeRc.js → _page.svelte-2PDLOF83.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Dv8tmDEC.js → _page.svelte-BjE3jm2K.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C0qgUvzA.js → _page.svelte-Clc0vmiZ.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-ui7LnWkL.js → _page.svelte-DABdRT3h.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-HUqTICJR.js → _page.svelte-DG3PjiHj.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DzcZljiy.js → _page.svelte-Edy9CaE8.js} +20 -7
- package/studio-dist/server/chunks/{_page.svelte-DOl0DGOO.js → _page.svelte-Hrf3-ZR8.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Da4q5l93.js → _page.svelte-VB4O4Nl5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CbyEPj2j.js → _page.svelte-d3jEgjsI.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-P4wVVksg.js → _server.ts-BcRFsyo3.js} +4 -5
- package/studio-dist/server/chunks/{_server.ts-Cr57EKWf.js → _server.ts-CEWpIFrj.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-CnKVmf_s.js → _server.ts-CLVdVIF9.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-C0evMKCk.js → _server.ts-D_j7aSy5.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-2BazvYRP.js → _server.ts-QEZF8h2q.js} +4 -5
- package/studio-dist/server/chunks/{client-CPM4LrO2.js → client-Kp1dP1od.js} +2 -2
- package/studio-dist/server/chunks/{error.svelte-ShcZo43D.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-BiQjEmVU.js → http-DT5kxaWk.js} +5 -4
- package/studio-dist/server/chunks/{internal-Cgsrya1j.js → internal-z0vqd5_u.js} +3 -3
- package/studio-dist/server/chunks/operations-registry-DdzmYzqX.js +10584 -0
- package/studio-dist/server/chunks/{stores-BGrpEDMK.js → stores-s2kaL315.js} +2 -2
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/manifest.js +17 -17
- package/studio-dist/client/_app/immutable/chunks/Bw6J8NDM.js +0 -1
- package/studio-dist/client/_app/immutable/entry/start.C9bwPpvc.js +0 -1
- package/studio-dist/client/_app/immutable/nodes/25.D1vYaH8g.js +0 -39
- package/studio-dist/server/chunks/1-CVo7Nk6d.js +0 -9
- package/studio-dist/server/chunks/25-CYsps38R.js +0 -366
|
@@ -0,0 +1,56 @@
|
|
|
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-malformed-ids.ts
|
|
24
|
+
import { scanMalformedTaskIds } from "@cleocode/core/doctor/malformed-task-ids.js";
|
|
25
|
+
import { getProjectRoot } from "@cleocode/core/project-scope";
|
|
26
|
+
var doctorMalformedIdsCommand = defineCommand({
|
|
27
|
+
meta: {
|
|
28
|
+
name: "malformed-ids",
|
|
29
|
+
description: "Report task rows whose id is not a valid task identifier \u2014 rows that `cleo list` returns but `show`/`update`/`delete` cannot address. Read-only unless --fix is given; --fix refuses any row other tables still reference, and reports them instead."
|
|
30
|
+
},
|
|
31
|
+
args: {
|
|
32
|
+
fix: {
|
|
33
|
+
type: "boolean",
|
|
34
|
+
description: "Delete unaddressable rows in one transaction. Refuses any row still referenced by another table \u2014 deleting those would manufacture the orphans `doctor fk-check` detects."
|
|
35
|
+
},
|
|
36
|
+
json: { type: "boolean", description: "Output as JSON" },
|
|
37
|
+
human: { type: "boolean", description: "Force human-readable output" },
|
|
38
|
+
quiet: { type: "boolean", description: "Suppress non-essential output" }
|
|
39
|
+
},
|
|
40
|
+
async run({ args }) {
|
|
41
|
+
const report = await scanMalformedTaskIds(getProjectRoot(), { fix: args.fix === true });
|
|
42
|
+
cliOutput(report, {
|
|
43
|
+
command: "doctor",
|
|
44
|
+
operation: "doctor.malformed-ids.run"
|
|
45
|
+
});
|
|
46
|
+
const unresolved = report.rows.length > 0 && !report.deleted;
|
|
47
|
+
if (unresolved && (process.exitCode === void 0 || process.exitCode === 0)) {
|
|
48
|
+
process.exitCode = 1;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
doctorMalformedIdsCommand
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=chunk-PSJ33WVO.js.map
|
|
@@ -0,0 +1,71 @@
|
|
|
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/collect-input.ts
|
|
18
|
+
import { readFile } from "node:fs/promises";
|
|
19
|
+
var PARSE_ERROR_SNIPPET_MAX_LENGTH = 80;
|
|
20
|
+
function wrapParseError(rawInput, parseErr, sourceLabel) {
|
|
21
|
+
const snippet = rawInput.length > PARSE_ERROR_SNIPPET_MAX_LENGTH ? `${rawInput.slice(0, PARSE_ERROR_SNIPPET_MAX_LENGTH)}\u2026` : rawInput;
|
|
22
|
+
return new Error(`Invalid JSON in ${sourceLabel}: ${parseErr.message} (got: ${snippet})`);
|
|
23
|
+
}
|
|
24
|
+
function readStdinJson(stdin) {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
const chunks = [];
|
|
27
|
+
stdin.on("data", (chunk) => {
|
|
28
|
+
chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
29
|
+
});
|
|
30
|
+
stdin.on("error", (err) => {
|
|
31
|
+
reject(err);
|
|
32
|
+
});
|
|
33
|
+
stdin.on("end", () => {
|
|
34
|
+
const raw = Buffer.concat(chunks).toString("utf8");
|
|
35
|
+
try {
|
|
36
|
+
resolve(JSON.parse(raw));
|
|
37
|
+
} catch (err) {
|
|
38
|
+
reject(wrapParseError(raw, err, "stdin"));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async function collectMutateInput(args, stdin) {
|
|
44
|
+
if (typeof args.params === "string" && args.params.length > 0) {
|
|
45
|
+
try {
|
|
46
|
+
return JSON.parse(args.params);
|
|
47
|
+
} catch (err) {
|
|
48
|
+
throw wrapParseError(args.params, err, "--params");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (typeof args.file === "string" && args.file.length > 0) {
|
|
52
|
+
const raw = await readFile(args.file, "utf8");
|
|
53
|
+
try {
|
|
54
|
+
return JSON.parse(raw);
|
|
55
|
+
} catch (err) {
|
|
56
|
+
throw wrapParseError(raw, err, `--file ${args.file}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (stdin.isTTY !== true) {
|
|
60
|
+
return readStdinJson(stdin);
|
|
61
|
+
}
|
|
62
|
+
if (args.positional !== void 0 && args.positional.length > 0) {
|
|
63
|
+
return args.positional;
|
|
64
|
+
}
|
|
65
|
+
return void 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export {
|
|
69
|
+
collectMutateInput
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=chunk-QA6T2LQ5.js.map
|
|
@@ -0,0 +1,288 @@
|
|
|
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
|
+
cliError,
|
|
21
|
+
cliOutput,
|
|
22
|
+
humanLine
|
|
23
|
+
} from "./chunk-4RGSNUUP.js";
|
|
24
|
+
|
|
25
|
+
// packages/cleo/src/cli/commands/backup-inspect.ts
|
|
26
|
+
import fs from "node:fs";
|
|
27
|
+
import os from "node:os";
|
|
28
|
+
import path from "node:path";
|
|
29
|
+
import zlib from "node:zlib";
|
|
30
|
+
import { ExitCode } from "@cleocode/contracts/exit-codes.js";
|
|
31
|
+
import {
|
|
32
|
+
BackupObservationInspectionError,
|
|
33
|
+
detectEncryption,
|
|
34
|
+
ENC_MIN_LENGTH,
|
|
35
|
+
ENC_VERSION_OFFSET,
|
|
36
|
+
ENC_VERSION_SUPPORTED,
|
|
37
|
+
extractManifestFromTar,
|
|
38
|
+
fmtBytes,
|
|
39
|
+
inspectBackupObservation,
|
|
40
|
+
verifyManifestHash
|
|
41
|
+
} from "@cleocode/core/store/backup-inspect.js";
|
|
42
|
+
function printInspectReport(bundlePath, bundleSize, encrypted, manifest, integrityOk) {
|
|
43
|
+
const backup = manifest["backup"] ?? {};
|
|
44
|
+
const databases = manifest["databases"] ?? [];
|
|
45
|
+
const jsonFiles = manifest["json"] ?? [];
|
|
46
|
+
const manifestVersion = manifest["manifestVersion"] ?? "unknown";
|
|
47
|
+
const scope = backup["scope"] ?? "unknown";
|
|
48
|
+
const createdAt = backup["createdAt"] ?? "unknown";
|
|
49
|
+
const createdBy = backup["createdBy"] ?? "unknown";
|
|
50
|
+
const machineFingerprint = backup["machineFingerprint"] ?? "unknown";
|
|
51
|
+
const projectName = backup["projectName"] ?? "";
|
|
52
|
+
const projectFingerprint = backup["projectFingerprint"] ?? null;
|
|
53
|
+
const machineSame = false;
|
|
54
|
+
const lines = [
|
|
55
|
+
`Bundle: ${bundlePath} (${fmtBytes(bundleSize)})`,
|
|
56
|
+
`Format: CLEO Backup Bundle v${manifestVersion}`,
|
|
57
|
+
`Scope: ${scope}`,
|
|
58
|
+
`Created: ${createdAt} by ${createdBy}`,
|
|
59
|
+
`Encrypted: ${encrypted ? "yes" : "no"}`,
|
|
60
|
+
`Source machine: ${machineFingerprint} (${machineSame ? "same" : "different"} as this machine)`
|
|
61
|
+
];
|
|
62
|
+
if (projectName) {
|
|
63
|
+
lines.push(
|
|
64
|
+
`Project: ${projectName}${projectFingerprint ? ` (${projectFingerprint})` : ""}`
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
if (databases.length > 0) {
|
|
68
|
+
lines.push("");
|
|
69
|
+
lines.push("Databases:");
|
|
70
|
+
for (const db of databases) {
|
|
71
|
+
const filename = db["filename"] ?? "";
|
|
72
|
+
const basename = path.basename(filename);
|
|
73
|
+
const size = db["size"] ?? 0;
|
|
74
|
+
const schemaVersion = db["schemaVersion"] ?? "unknown";
|
|
75
|
+
const rowCounts = db["rowCounts"] ?? {};
|
|
76
|
+
const rowSummary = Object.entries(rowCounts).map(([tbl, count]) => `${tbl}: ${count}`).join(", ");
|
|
77
|
+
const rowPart = rowSummary ? ` ${rowSummary}` : "";
|
|
78
|
+
lines.push(
|
|
79
|
+
` ${basename.padEnd(20)} ${fmtBytes(size).padEnd(10)} schema: ${schemaVersion}${rowPart}`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (jsonFiles.length > 0) {
|
|
84
|
+
lines.push("");
|
|
85
|
+
lines.push("JSON files:");
|
|
86
|
+
for (const jf of jsonFiles) {
|
|
87
|
+
const filename = jf["filename"] ?? "";
|
|
88
|
+
const basename = path.basename(filename);
|
|
89
|
+
const size = jf["size"] ?? 0;
|
|
90
|
+
lines.push(` ${basename.padEnd(30)} ${fmtBytes(size)}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
lines.push("");
|
|
94
|
+
lines.push(`Manifest integrity: [${integrityOk ? "OK" : "TAMPERED"}]`);
|
|
95
|
+
humanLine(lines.join("\n"));
|
|
96
|
+
}
|
|
97
|
+
async function inspectAction(bundlePath) {
|
|
98
|
+
const resolved = path.resolve(bundlePath);
|
|
99
|
+
if (!fs.existsSync(resolved)) {
|
|
100
|
+
cliError(`Bundle not found: ${bundlePath}`, 4, { name: "E_NOT_FOUND" });
|
|
101
|
+
process.exitCode = 4;
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const encrypted = detectEncryption(resolved);
|
|
105
|
+
if (encrypted) {
|
|
106
|
+
const passphrase = process.env["CLEO_BACKUP_PASSPHRASE"];
|
|
107
|
+
if (!passphrase) {
|
|
108
|
+
humanLine(
|
|
109
|
+
[
|
|
110
|
+
`Bundle: ${bundlePath}`,
|
|
111
|
+
"Encrypted: yes",
|
|
112
|
+
"",
|
|
113
|
+
"Bundle is encrypted. Set the CLEO_BACKUP_PASSPHRASE environment variable",
|
|
114
|
+
"to decrypt and inspect the manifest contents.",
|
|
115
|
+
"",
|
|
116
|
+
"Example:",
|
|
117
|
+
` CLEO_BACKUP_PASSPHRASE=<passphrase> cleo backup inspect ${bundlePath}`
|
|
118
|
+
].join("\n")
|
|
119
|
+
);
|
|
120
|
+
process.exitCode = 0;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const { decryptBundle } = await import("@cleocode/core/internal");
|
|
124
|
+
const encrypted_buf = fs.readFileSync(resolved);
|
|
125
|
+
if (encrypted_buf.length < ENC_MIN_LENGTH) {
|
|
126
|
+
cliError("Encrypted bundle payload too short", 70, { name: "E_DECRYPT_FAILED" });
|
|
127
|
+
process.exitCode = 70;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const versionByte = encrypted_buf[ENC_VERSION_OFFSET];
|
|
131
|
+
if (versionByte !== ENC_VERSION_SUPPORTED) {
|
|
132
|
+
cliError(
|
|
133
|
+
`Unsupported encrypted bundle version ${versionByte ?? "undefined"}; expected ${ENC_VERSION_SUPPORTED}`,
|
|
134
|
+
70,
|
|
135
|
+
{ name: "E_DECRYPT_FAILED" }
|
|
136
|
+
);
|
|
137
|
+
process.exitCode = 70;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
let decryptedBuf;
|
|
141
|
+
try {
|
|
142
|
+
decryptedBuf = decryptBundle(encrypted_buf, passphrase);
|
|
143
|
+
} catch (err) {
|
|
144
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
145
|
+
cliError(`Decryption failed: ${msg}`, 70, {
|
|
146
|
+
name: "E_DECRYPT_FAILED",
|
|
147
|
+
fix: "Verify CLEO_BACKUP_PASSPHRASE matches the bundle."
|
|
148
|
+
});
|
|
149
|
+
process.exitCode = 70;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const tmpPath = path.join(os.tmpdir(), `cleo-inspect-${process.pid}-${Date.now()}.tar.gz`);
|
|
153
|
+
try {
|
|
154
|
+
fs.writeFileSync(tmpPath, decryptedBuf);
|
|
155
|
+
await inspectTarball(tmpPath, resolved, encrypted);
|
|
156
|
+
} finally {
|
|
157
|
+
try {
|
|
158
|
+
fs.unlinkSync(tmpPath);
|
|
159
|
+
} catch {
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
await inspectTarball(resolved, resolved, false);
|
|
165
|
+
}
|
|
166
|
+
async function inspectTarball(tarPath, displayPath, encrypted) {
|
|
167
|
+
const compressedBuf = fs.readFileSync(tarPath);
|
|
168
|
+
let tarBuf;
|
|
169
|
+
try {
|
|
170
|
+
tarBuf = zlib.gunzipSync(compressedBuf);
|
|
171
|
+
} catch (err) {
|
|
172
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
173
|
+
cliError(`Failed to decompress bundle: ${msg}`, 71, { name: "E_DECOMPRESS_FAILED" });
|
|
174
|
+
process.exitCode = 71;
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const manifestContent = extractManifestFromTar(tarBuf);
|
|
178
|
+
if (!manifestContent) {
|
|
179
|
+
cliError("manifest.json not found in bundle", 74, { name: "E_MANIFEST_MISSING" });
|
|
180
|
+
process.exitCode = 74;
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
let manifest;
|
|
184
|
+
try {
|
|
185
|
+
manifest = JSON.parse(manifestContent);
|
|
186
|
+
} catch (err) {
|
|
187
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
188
|
+
cliError(`Failed to parse manifest.json: ${msg}`, 71, { name: "E_MANIFEST_PARSE" });
|
|
189
|
+
process.exitCode = 71;
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const integrityOk = verifyManifestHash(manifestContent, manifest);
|
|
193
|
+
const stat = fs.statSync(displayPath);
|
|
194
|
+
printInspectReport(displayPath, stat.size, encrypted, manifest, integrityOk);
|
|
195
|
+
process.exitCode = 0;
|
|
196
|
+
}
|
|
197
|
+
function resolveSnapshotPath(input) {
|
|
198
|
+
const absolute = path.resolve(input);
|
|
199
|
+
try {
|
|
200
|
+
return path.join(fs.realpathSync(path.dirname(absolute)), path.basename(absolute));
|
|
201
|
+
} catch {
|
|
202
|
+
return absolute;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
var backupInspectSubCommand = defineCommand({
|
|
206
|
+
meta: {
|
|
207
|
+
name: "inspect",
|
|
208
|
+
description: "Inspect a bundle manifest or an exact observation in a read-only SQLite snapshot"
|
|
209
|
+
},
|
|
210
|
+
args: {
|
|
211
|
+
bundle: {
|
|
212
|
+
type: "positional",
|
|
213
|
+
description: "Path to a backup bundle, or SQLite snapshot when --record-id is supplied",
|
|
214
|
+
required: true
|
|
215
|
+
},
|
|
216
|
+
"record-id": {
|
|
217
|
+
type: "string",
|
|
218
|
+
description: "Exact observation ID to inspect in the supplied SQLite snapshot"
|
|
219
|
+
},
|
|
220
|
+
"expected-project-id": {
|
|
221
|
+
type: "string",
|
|
222
|
+
description: "Expected stable identity; absent historical provenance remains unknown"
|
|
223
|
+
},
|
|
224
|
+
label: {
|
|
225
|
+
type: "string",
|
|
226
|
+
description: "Advisory original snapshot label; does not establish ownership"
|
|
227
|
+
},
|
|
228
|
+
"max-snapshot-bytes": {
|
|
229
|
+
type: "string",
|
|
230
|
+
description: "Positive integer source byte ceiling (default 512 MiB, maximum 1 GiB)"
|
|
231
|
+
},
|
|
232
|
+
"max-payload-bytes": {
|
|
233
|
+
type: "string",
|
|
234
|
+
description: "Positive integer payload byte ceiling (default 1 MiB, maximum 16 MiB)"
|
|
235
|
+
},
|
|
236
|
+
json: { type: "boolean", description: "Output structured JSON" },
|
|
237
|
+
human: { type: "boolean", description: "Force human-readable output" },
|
|
238
|
+
quiet: { type: "boolean", description: "Suppress non-essential output" }
|
|
239
|
+
},
|
|
240
|
+
async run({ args }) {
|
|
241
|
+
const recordId = args["record-id"];
|
|
242
|
+
if (recordId === void 0) {
|
|
243
|
+
if ([
|
|
244
|
+
args["expected-project-id"],
|
|
245
|
+
args.label,
|
|
246
|
+
args["max-snapshot-bytes"],
|
|
247
|
+
args["max-payload-bytes"]
|
|
248
|
+
].some((value) => value !== void 0)) {
|
|
249
|
+
cliError(
|
|
250
|
+
"Snapshot inspection flags require --record-id.",
|
|
251
|
+
ExitCode.VALIDATION_ERROR,
|
|
252
|
+
{ name: "E_BACKUP_INSPECT_INVALID_INPUT" },
|
|
253
|
+
{ operation: "backup.inspect" }
|
|
254
|
+
);
|
|
255
|
+
process.exitCode = ExitCode.VALIDATION_ERROR;
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
await inspectAction(args.bundle);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
try {
|
|
262
|
+
const result = await inspectBackupObservation({
|
|
263
|
+
snapshotPath: resolveSnapshotPath(args.bundle),
|
|
264
|
+
recordId,
|
|
265
|
+
expectedProjectId: args["expected-project-id"],
|
|
266
|
+
label: args.label,
|
|
267
|
+
maxSnapshotBytes: args["max-snapshot-bytes"] === void 0 ? void 0 : Number(args["max-snapshot-bytes"]),
|
|
268
|
+
maxPayloadBytes: args["max-payload-bytes"] === void 0 ? void 0 : Number(args["max-payload-bytes"])
|
|
269
|
+
});
|
|
270
|
+
cliOutput(result, { command: "backup", operation: "backup.inspect" });
|
|
271
|
+
} catch (error) {
|
|
272
|
+
cliError(
|
|
273
|
+
error instanceof Error ? error.message : String(error),
|
|
274
|
+
ExitCode.VALIDATION_ERROR,
|
|
275
|
+
{
|
|
276
|
+
name: error instanceof BackupObservationInspectionError ? `E_BACKUP_INSPECT_${error.code}` : "E_BACKUP_INSPECT_FAILED"
|
|
277
|
+
},
|
|
278
|
+
{ operation: "backup.inspect" }
|
|
279
|
+
);
|
|
280
|
+
process.exitCode = ExitCode.VALIDATION_ERROR;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
export {
|
|
286
|
+
backupInspectSubCommand
|
|
287
|
+
};
|
|
288
|
+
//# sourceMappingURL=chunk-QJJWWCIC.js.map
|
|
@@ -0,0 +1,93 @@
|
|
|
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/describe-context.ts
|
|
18
|
+
var describeRequested = false;
|
|
19
|
+
function setDescribeMode(requested) {
|
|
20
|
+
describeRequested = requested;
|
|
21
|
+
}
|
|
22
|
+
function isDescribeMode() {
|
|
23
|
+
return describeRequested;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// packages/cleo/src/cli/idempotency-context.ts
|
|
27
|
+
var currentIdempotencyKey;
|
|
28
|
+
function setIdempotencyKeyContext(key) {
|
|
29
|
+
currentIdempotencyKey = key;
|
|
30
|
+
}
|
|
31
|
+
function getIdempotencyKeyContext() {
|
|
32
|
+
return currentIdempotencyKey;
|
|
33
|
+
}
|
|
34
|
+
function extractIdempotencyKeyArg(argv) {
|
|
35
|
+
const sanitized = [];
|
|
36
|
+
let idempotencyKey;
|
|
37
|
+
for (let i = 0; i < argv.length; i++) {
|
|
38
|
+
const token = argv[i];
|
|
39
|
+
if (token === "--") {
|
|
40
|
+
sanitized.push(...argv.slice(i));
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
if (token === "--idempotency-key") {
|
|
44
|
+
const next = argv[i + 1];
|
|
45
|
+
if (next !== void 0 && !next.startsWith("--")) {
|
|
46
|
+
idempotencyKey = next;
|
|
47
|
+
i++;
|
|
48
|
+
}
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (token?.startsWith("--idempotency-key=")) {
|
|
52
|
+
idempotencyKey = token.slice("--idempotency-key=".length);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (token !== void 0) sanitized.push(token);
|
|
56
|
+
}
|
|
57
|
+
return { argv: sanitized, idempotencyKey };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// packages/cleo/src/cli/lib/settle-then-exit.ts
|
|
61
|
+
async function settleThenExit(code, settle = settleWithCore, exit = (c) => process.exit(c)) {
|
|
62
|
+
process.exitCode = code;
|
|
63
|
+
try {
|
|
64
|
+
await settle();
|
|
65
|
+
} catch {
|
|
66
|
+
}
|
|
67
|
+
return exit(code);
|
|
68
|
+
}
|
|
69
|
+
async function settleWithCore() {
|
|
70
|
+
const { settleBeforeExit } = await import("@cleocode/core/shutdown");
|
|
71
|
+
return settleBeforeExit();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// packages/cleo/src/cli/projection-context.ts
|
|
75
|
+
var currentOptOut = false;
|
|
76
|
+
function setProjectionOptOut(optOut) {
|
|
77
|
+
currentOptOut = optOut;
|
|
78
|
+
}
|
|
79
|
+
function getProjectionOptOut() {
|
|
80
|
+
return currentOptOut;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export {
|
|
84
|
+
setDescribeMode,
|
|
85
|
+
isDescribeMode,
|
|
86
|
+
setIdempotencyKeyContext,
|
|
87
|
+
getIdempotencyKeyContext,
|
|
88
|
+
extractIdempotencyKeyArg,
|
|
89
|
+
settleThenExit,
|
|
90
|
+
setProjectionOptOut,
|
|
91
|
+
getProjectionOptOut
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=chunk-QKMBWYAS.js.map
|
|
@@ -0,0 +1,84 @@
|
|
|
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/dispatch/adapters/typed.ts
|
|
18
|
+
async function typedDispatch(handler, op, rawParams) {
|
|
19
|
+
return handler.operations[op](rawParams);
|
|
20
|
+
}
|
|
21
|
+
function defineTypedHandler(domain, operations) {
|
|
22
|
+
return { domain, operations };
|
|
23
|
+
}
|
|
24
|
+
function lafsSuccess(data, _operation, extra) {
|
|
25
|
+
return {
|
|
26
|
+
success: true,
|
|
27
|
+
data,
|
|
28
|
+
...extra?.page ? { page: extra.page } : {}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function lafsError(code, message, _operation, fix, details) {
|
|
32
|
+
const error = { code, message };
|
|
33
|
+
if (fix !== void 0) error.fix = fix;
|
|
34
|
+
if (details !== void 0) error.details = details;
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
error
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function wrapCoreResult(result, opName, fallback) {
|
|
41
|
+
if (!result.success) {
|
|
42
|
+
const e = result.error;
|
|
43
|
+
const errorObj = {
|
|
44
|
+
code: String(e?.code ?? "E_INTERNAL"),
|
|
45
|
+
message: e?.message ?? "Unknown error"
|
|
46
|
+
};
|
|
47
|
+
if (e?.exitCode !== void 0) errorObj.exitCode = e.exitCode;
|
|
48
|
+
if (e?.details !== void 0) errorObj.details = e.details;
|
|
49
|
+
if (e?.fix !== void 0) errorObj.fix = e.fix;
|
|
50
|
+
if (e?.alternatives) {
|
|
51
|
+
errorObj.alternatives = e.alternatives;
|
|
52
|
+
}
|
|
53
|
+
if (e?.problemDetails !== void 0) errorObj.problemDetails = e.problemDetails;
|
|
54
|
+
return { success: false, error: errorObj };
|
|
55
|
+
}
|
|
56
|
+
return lafsSuccess(result.data ?? fallback, opName);
|
|
57
|
+
}
|
|
58
|
+
async function wrapConduitImpl(fn, opName) {
|
|
59
|
+
try {
|
|
60
|
+
const result = await fn();
|
|
61
|
+
if (!result.success) {
|
|
62
|
+
return lafsError(
|
|
63
|
+
String(result.error?.code ?? "E_CONDUIT"),
|
|
64
|
+
result.error?.message ?? "Unknown error",
|
|
65
|
+
opName
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
return lafsSuccess(result.data ?? {}, opName);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
if (!(error instanceof Error)) return lafsError("E_CONDUIT", String(error), opName);
|
|
71
|
+
const code = "code" in error && typeof error.code === "string" ? error.code : "";
|
|
72
|
+
return lafsError(/^E_[A-Z0-9_]+$/.test(code) ? code : "E_CONDUIT", error.message, opName);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export {
|
|
77
|
+
typedDispatch,
|
|
78
|
+
defineTypedHandler,
|
|
79
|
+
lafsSuccess,
|
|
80
|
+
lafsError,
|
|
81
|
+
wrapCoreResult,
|
|
82
|
+
wrapConduitImpl
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=chunk-QWNKLLLG.js.map
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
cliError,
|
|
21
|
+
cliOutput
|
|
22
|
+
} from "./chunk-4RGSNUUP.js";
|
|
23
|
+
|
|
24
|
+
// packages/cleo/src/cli/commands/auth/remove.ts
|
|
25
|
+
function emitLlmCredentialRemoval(outcome, command, operation) {
|
|
26
|
+
if (!outcome.ok) {
|
|
27
|
+
cliError(outcome.message, outcome.exitCode, { name: outcome.code, fix: outcome.fix });
|
|
28
|
+
process.exit(outcome.exitCode);
|
|
29
|
+
}
|
|
30
|
+
for (const path of outcome.result.cleaned) process.stderr.write(`cleaned: ${path}
|
|
31
|
+
`);
|
|
32
|
+
for (const hint of outcome.result.hints) process.stderr.write(`hint: ${hint}
|
|
33
|
+
`);
|
|
34
|
+
cliOutput(outcome.result, { command, operation });
|
|
35
|
+
}
|
|
36
|
+
var authRemoveCommand = defineCommand({
|
|
37
|
+
meta: {
|
|
38
|
+
name: "remove",
|
|
39
|
+
description: "Remove a credential by (provider, label) and suppress its source from future re-seeding. Dispatches to the per-source RemovalStep so claude-code (et al.) entries are handled correctly without deleting external files."
|
|
40
|
+
},
|
|
41
|
+
args: {
|
|
42
|
+
provider: {
|
|
43
|
+
type: "positional",
|
|
44
|
+
description: "Provider id (e.g. anthropic, openai, gemini)",
|
|
45
|
+
required: true
|
|
46
|
+
},
|
|
47
|
+
label: {
|
|
48
|
+
type: "positional",
|
|
49
|
+
description: "Label of the credential to remove (unique within provider)",
|
|
50
|
+
required: true
|
|
51
|
+
},
|
|
52
|
+
json: {
|
|
53
|
+
type: "boolean",
|
|
54
|
+
description: "Output as JSON envelope"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
async run({ args }) {
|
|
58
|
+
const a = args;
|
|
59
|
+
const provider = String(a["provider"] ?? "");
|
|
60
|
+
const label = String(a["label"] ?? "");
|
|
61
|
+
if (!provider) {
|
|
62
|
+
cliError("provider is required", 6, { name: "E_INVALID_INPUT" });
|
|
63
|
+
process.exit(6);
|
|
64
|
+
}
|
|
65
|
+
if (!label) {
|
|
66
|
+
cliError("label is required", 6, { name: "E_INVALID_INPUT" });
|
|
67
|
+
process.exit(6);
|
|
68
|
+
}
|
|
69
|
+
const { removeLlmCredential } = await import(
|
|
70
|
+
/* webpackIgnore: true */
|
|
71
|
+
"@cleocode/core/llm/credential-remove-entry.js"
|
|
72
|
+
);
|
|
73
|
+
emitLlmCredentialRemoval(
|
|
74
|
+
await removeLlmCredential(provider, label),
|
|
75
|
+
"auth-remove",
|
|
76
|
+
"auth.remove"
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
export {
|
|
82
|
+
emitLlmCredentialRemoval,
|
|
83
|
+
authRemoveCommand
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=chunk-QWUFFDL3.js.map
|