@cleocode/cleo 2026.10.3 → 2026.10.4
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/bin/cleo.js +11 -1
- package/dist/cli/adapter-LVXHFBC4.js +158 -0
- package/dist/cli/add-WUAV7LDT.js +443 -0
- package/dist/cli/add-batch-U2DLKAQC.js +163 -0
- package/dist/cli/admin-I7BQYVZD.js +340 -0
- package/dist/cli/adr-K2THMQBS.js +171 -0
- package/dist/cli/agent-WQ6XY2DW.js +2366 -0
- package/dist/cli/agent-outputs-BJIYLVTU.js +84 -0
- package/dist/cli/analyze-PGQZWGOC.js +48 -0
- package/dist/cli/archive-5LZPF7C3.js +64 -0
- package/dist/cli/archive-stats-U6CYC6JM.js +100 -0
- package/dist/cli/attention-SOURWCNI.js +167 -0
- package/dist/cli/audit-FO2Y4LH2.js +122 -0
- package/dist/cli/auth-ED7TAIXI.js +491 -0
- package/dist/cli/backfill-32TRAYRD.js +156 -0
- package/dist/cli/backup-LEJMZJKL.js +587 -0
- package/dist/cli/backup-inspect-6HPLUEI2.js +26 -0
- package/dist/cli/backup-recover-2BTYBZU2.js +29 -0
- package/dist/cli/blockers-5JULUJTV.js +54 -0
- package/dist/cli/brain-273N3FW4.js +400 -0
- package/dist/cli/briefing-7H6OLECX.js +212 -0
- package/dist/cli/caamp-MFQVN6VU.js +181 -0
- package/dist/cli/cancel-SCMJTXZB.js +84 -0
- package/dist/cli/canon-NPF5RODM.js +142 -0
- package/dist/cli/canon-docs-2GTOLF7Y.js +26 -0
- package/dist/cli/cant-46XCUP4P.js +239 -0
- package/dist/cli/changeset-32NMBGG2.js +248 -0
- package/dist/cli/check-RWJLBCI2.js +907 -0
- package/dist/cli/checkpoint-37HMMKD7.js +128 -0
- package/dist/cli/chunk-2JIJD2I7.js +108 -0
- package/dist/cli/chunk-37NU2XDP.js +171 -0
- package/dist/cli/chunk-3IOQVUO7.js +17308 -0
- package/dist/cli/chunk-3PGH67MT.js +175 -0
- package/dist/cli/chunk-3ZO3M37V.js +1002 -0
- package/dist/cli/chunk-47JYZAMS.js +30 -0
- package/dist/cli/chunk-5J2VH3BC.js +66 -0
- package/dist/cli/chunk-5ZFFUFH7.js +92 -0
- package/dist/cli/chunk-6JSJNYH2.js +114 -0
- package/dist/cli/chunk-7INMKEAD.js +85 -0
- package/dist/cli/chunk-A2IUEIM5.js +278 -0
- package/dist/cli/chunk-AWCQH2W5.js +35 -0
- package/dist/cli/chunk-AYA6F4ZT.js +56 -0
- package/dist/cli/chunk-BCEXRFA2.js +76 -0
- package/dist/cli/chunk-BPEVD37G.js +124 -0
- package/dist/cli/chunk-C3B7C43W.js +16 -0
- package/dist/cli/chunk-DVTPIZJM.js +72 -0
- package/dist/cli/chunk-DYABOIHB.js +96 -0
- package/dist/cli/chunk-EBRZ76HS.js +51 -0
- package/dist/cli/chunk-EGOTK2HA.js +57 -0
- package/dist/cli/chunk-EOPQFCSR.js +148 -0
- package/dist/cli/chunk-FORFDPP5.js +288 -0
- package/dist/cli/chunk-GFGLLDXX.js +110 -0
- package/dist/cli/chunk-GH37QXW5.js +280 -0
- package/dist/cli/chunk-GZFVDR44.js +320 -0
- package/dist/cli/chunk-I3CRQQAD.js +225 -0
- package/dist/cli/chunk-J3ZFM3UQ.js +754 -0
- package/dist/cli/chunk-JNZJPIPJ.js +90 -0
- package/dist/cli/chunk-KHB52JNB.js +209 -0
- package/dist/cli/chunk-KJDWWQFY.js +46 -0
- package/dist/cli/chunk-LKNUA3SB.js +83 -0
- package/dist/cli/chunk-LVGIFMCV.js +163 -0
- package/dist/cli/chunk-LWQBJQSE.js +67 -0
- package/dist/cli/chunk-MNJRLSEQ.js +107 -0
- package/dist/cli/chunk-NRKWJLMS.js +91 -0
- package/dist/cli/chunk-NSHV2JNM.js +48 -0
- package/dist/cli/chunk-NWTATTEQ.js +210 -0
- package/dist/cli/chunk-OAPN46TC.js +89 -0
- package/dist/cli/chunk-OGV57L4J.js +59 -0
- package/dist/cli/chunk-OILHT47L.js +252 -0
- package/dist/cli/chunk-OPTEQKBB.js +258 -0
- package/dist/cli/chunk-PKKZPOOP.js +352 -0
- package/dist/cli/chunk-QA6T2LQ5.js +71 -0
- package/dist/cli/chunk-QFFQSKRC.js +4497 -0
- package/dist/cli/chunk-QPUY2HQZ.js +74 -0
- package/dist/cli/chunk-REUTEW3O.js +258 -0
- package/dist/cli/chunk-S24YI723.js +88 -0
- package/dist/cli/chunk-SXXOC6KZ.js +209 -0
- package/dist/cli/chunk-ULN4OKQQ.js +259 -0
- package/dist/cli/chunk-V5GBGOGM.js +46 -0
- package/dist/cli/chunk-VLEYOOPH.js +31 -0
- package/dist/cli/chunk-W33Q3FBH.js +66 -0
- package/dist/cli/chunk-W3JLYKKY.js +140 -0
- package/dist/cli/chunk-XRAX6XFP.js +48 -0
- package/dist/cli/chunk-YGKEECTI.js +78 -0
- package/dist/cli/chunk-YUZJI67I.js +108 -0
- package/dist/cli/chunk-YY66LFZF.js +29 -0
- package/dist/cli/chunk-ZBISIPCK.js +78 -0
- package/dist/cli/chunk-ZZTHTMQP.js +77 -0
- package/dist/cli/claim-KPENYHIQ.js +96 -0
- package/dist/cli/classify-DRVMCFQU.js +117 -0
- package/dist/cli/cli-T3CR7J57.js +48 -0
- package/dist/cli/cloud-PPQ4O5TX.js +565 -0
- package/dist/cli/cockpit-RZKLGYPN.js +790 -0
- package/dist/cli/code-Z5CTMVTD.js +178 -0
- package/dist/cli/complete-UBOCOBRB.js +34 -0
- package/dist/cli/complexity-BV2AGQRZ.js +56 -0
- package/dist/cli/compliance-32PD5Y47.js +276 -0
- package/dist/cli/conduit-VDKCH33F.js +307 -0
- package/dist/cli/config-I72JAXK4.js +516 -0
- package/dist/cli/consensus-LFILLSTK.js +121 -0
- package/dist/cli/context-XUUVFVTP.js +141 -0
- package/dist/cli/contribution-37NQ4N5R.js +111 -0
- package/dist/cli/curator-TFDXU2EX.js +139 -0
- package/dist/cli/current-C4SN5BWV.js +42 -0
- package/dist/cli/daemon-DV25JQ62.js +451 -0
- package/dist/cli/dash-TFU4RLQW.js +70 -0
- package/dist/cli/decide-5VPMNTSI.js +419 -0
- package/dist/cli/decompose-KOYEZNJL.js +77 -0
- package/dist/cli/decomposition-7OHUFIQN.js +121 -0
- package/dist/cli/delete-Q7YCAFY5.js +68 -0
- package/dist/cli/deps-6UZKLDGJ.js +463 -0
- package/dist/cli/detect-FERY35UL.js +45 -0
- package/dist/cli/detect-drift-UL2JTPUK.js +408 -0
- package/dist/cli/diagnostics-TI5QAZXR.js +132 -0
- package/dist/cli/docs-QI2PRN3T.js +3095 -0
- package/dist/cli/doctor-AX5TICQO.js +1253 -0
- package/dist/cli/doctor-ac-bindings-YPMYHU2G.js +26 -0
- package/dist/cli/doctor-acceptance-drift-PYNFGMKB.js +26 -0
- package/dist/cli/doctor-credentials-UZRIADKM.js +26 -0
- package/dist/cli/doctor-db-substrate-Q2TOYM2S.js +27 -0
- package/dist/cli/doctor-dep-cycles-GCVYZY6F.js +26 -0
- package/dist/cli/doctor-exodus-RO5SUTC2.js +26 -0
- package/dist/cli/doctor-exodus-residue-EM2AWQXP.js +26 -0
- package/dist/cli/doctor-fk-check-Q3FOLECE.js +26 -0
- package/dist/cli/doctor-global-delivery-TNOAQ3NP.js +26 -0
- package/dist/cli/doctor-heavy-command-hook-IO3QAQLG.js +26 -0
- package/dist/cli/doctor-legacy-backups-O2YH5VLS.js +26 -0
- package/dist/cli/doctor-legacy-reaper-VSEJEIFA.js +26 -0
- package/dist/cli/doctor-malformed-ids-LQ766V5K.js +26 -0
- package/dist/cli/doctor-manifest-rows-6FQDNHLH.js +26 -0
- package/dist/cli/doctor-memory-guard-J4PSEKB5.js +26 -0
- package/dist/cli/doctor-migrations-ONOH56YM.js +26 -0
- package/dist/cli/doctor-nexus-residency-FUQAX7PV.js +26 -0
- package/dist/cli/doctor-project-identity-GUDK3HYX.js +26 -0
- package/dist/cli/doctor-projects-7L3BNL4O.js +30 -0
- package/dist/cli/doctor-projects-registry-TEAVHFQU.js +26 -0
- package/dist/cli/doctor-release-readiness-IEGHX6SL.js +26 -0
- package/dist/cli/doctor-repair-NBONOSZU.js +26 -0
- package/dist/cli/doctor-skill-fixtures-7Y6L34A3.js +26 -0
- package/dist/cli/doctor-split-brain-TUKIGVHF.js +26 -0
- package/dist/cli/doctor-superseded-store-BHZY2B2L.js +26 -0
- package/dist/cli/doctor-tool-locks-REQMIVYK.js +26 -0
- package/dist/cli/doctor-twin-collapse-222GOSPE.js +26 -0
- package/dist/cli/doctor-worktree-stores-J7TCRVJ3.js +26 -0
- package/dist/cli/done-V3AOO65B.js +195 -0
- package/dist/cli/dynamic-RR4HB7BB.js +29 -0
- package/dist/cli/event-EGNPGE5A.js +372 -0
- package/dist/cli/exists-H4SDCBPL.js +65 -0
- package/dist/cli/exodus-KALO3B3X.js +401 -0
- package/dist/cli/export-ROFOCG4M.js +92 -0
- package/dist/cli/export-tasks-US3WBIEQ.js +96 -0
- package/dist/cli/federation-SUIB5QWT.js +145 -0
- package/dist/cli/find-YICG4BG6.js +177 -0
- package/dist/cli/focus-TKCZPKOM.js +55 -0
- package/dist/cli/gateway-H4HFDC3E.js +77 -0
- package/dist/cli/gateway-auto-start-EDK7XI6E.js +36 -0
- package/dist/cli/gc-5R2TUY5T.js +291 -0
- package/dist/cli/go-PRQFK5YG.js +206 -0
- package/dist/cli/goal-7CZRMLHC.js +212 -0
- package/dist/cli/grade-PY2YRPUS.js +56 -0
- package/dist/cli/graph-XIXMCFKG.js +878 -0
- package/dist/cli/history-EIXADPAD.js +137 -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-R73SO444.js +88 -0
- package/dist/cli/import-tasks-O22FZJ4U.js +108 -0
- package/dist/cli/index.js +419 -94612
- package/dist/cli/init-IHEJDQWU.js +40 -0
- package/dist/cli/inject-LSRVWNCP.js +82 -0
- package/dist/cli/install-global-4AZUCH6U.js +95 -0
- package/dist/cli/intelligence-2OSFOGD2.js +181 -0
- package/dist/cli/issue-IIWEDNFC.js +158 -0
- package/dist/cli/janitor-GPMC7VOR.js +111 -0
- package/dist/cli/labels-5NPOIQXN.js +87 -0
- package/dist/cli/lifecycle-4FFS2K2T.js +272 -0
- package/dist/cli/list-47KEUGPQ.js +108 -0
- package/dist/cli/llm-G5B3I6GD.js +703 -0
- package/dist/cli/llm-cost-S7RS6BVA.js +25 -0
- package/dist/cli/llm-stream-24A45NTS.js +27 -0
- package/dist/cli/log-XF6H2XSD.js +75 -0
- package/dist/cli/login-LBPLGHYG.js +43 -0
- package/dist/cli/logout-SX4JSJIV.js +74 -0
- package/dist/cli/manifest-NMCW4PIW.js +353 -0
- package/dist/cli/map-BU72KMGF.js +52 -0
- package/dist/cli/memory-UHYIVGVM.js +1956 -0
- package/dist/cli/migrate-agents-v2-OO7OILZK.js +33 -0
- package/dist/cli/migrate-claude-mem-EDNYUY3K.js +201 -0
- package/dist/cli/next-RZFRG5X7.js +56 -0
- package/dist/cli/nexus-4S4Z5EVU.js +2923 -0
- package/dist/cli/ops-KR7AWCG3.js +51 -0
- package/dist/cli/orchestrate-HOYZY3VX.js +948 -0
- package/dist/cli/otel-U7IIRBCT.js +188 -0
- package/dist/cli/phase-NYZFHUE5.js +220 -0
- package/dist/cli/pivot-FF2CVUZL.js +87 -0
- package/dist/cli/plan-3SL2NTRV.js +48 -0
- package/dist/cli/playbook-2FCBV7N3.js +229 -0
- package/dist/cli/project-WDX2TGMC.js +330 -0
- package/dist/cli/promote-YINYFBZY.js +52 -0
- package/dist/cli/provenance-C7AYD7WG.js +128 -0
- package/dist/cli/provider-QLJEDQBR.js +212 -0
- package/dist/cli/reason-JF5BHBM5.js +137 -0
- package/dist/cli/reconcile-NMISHDGX.js +127 -0
- package/dist/cli/refresh-memory-EY5YNICV.js +45 -0
- package/dist/cli/relates-R3ZPICAY.js +259 -0
- package/dist/cli/release-4ZJTMUUT.js +524 -0
- package/dist/cli/remote-QSONJDIK.js +279 -0
- package/dist/cli/renderers-64OR3IWX.js +37 -0
- package/dist/cli/reorder-J3DOE7ST.js +86 -0
- package/dist/cli/reparent-2OUMKEZX.js +58 -0
- package/dist/cli/req-TZB7OFKO.js +129 -0
- package/dist/cli/research-MTD7EX45.js +365 -0
- package/dist/cli/restore-VEUOX7NF.js +423 -0
- package/dist/cli/revert-3YF2IL5G.js +240 -0
- package/dist/cli/roadmap-7OOQLXKG.js +61 -0
- package/dist/cli/run-2U5NZV5Z.js +211 -0
- package/dist/cli/safestop-VR4VK56D.js +88 -0
- package/dist/cli/saga-SEWPIOX2.js +285 -0
- package/dist/cli/schema-C52WZ35V.js +195 -0
- package/dist/cli/self-update-GQIGUDPS.js +504 -0
- package/dist/cli/selfimprove-3Y5L4ECT.js +88 -0
- package/dist/cli/sentient-M4YMAVGV.js +1088 -0
- package/dist/cli/sequence-6UBMA4IF.js +93 -0
- package/dist/cli/service-5R7SILZ7.js +155 -0
- package/dist/cli/session-3C6AAC4Y.js +707 -0
- package/dist/cli/setup-BTUBW5PU.js +323 -0
- package/dist/cli/show-MXT2V7TF.js +122 -0
- package/dist/cli/skill-GFUZOU2C.js +84 -0
- package/dist/cli/skills-EDWLKAF3.js +928 -0
- package/dist/cli/smoke-provider-SKUFMZXU.js +218 -0
- package/dist/cli/snapshot-GUWMURCM.js +119 -0
- package/dist/cli/src-66GAKPXR.js +80 -0
- package/dist/cli/start-QFG56RGN.js +67 -0
- package/dist/cli/stats-GW55P7RR.js +95 -0
- package/dist/cli/status-46HTKNRR.js +157 -0
- package/dist/cli/sticky-2DUZOUGI.js +338 -0
- package/dist/cli/stop-J2QEUKHX.js +42 -0
- package/dist/cli/sync-GJP2QYT5.js +154 -0
- package/dist/cli/tasks-BNXTM7PB.js +174 -0
- package/dist/cli/telemetry-55Z2XJWL.js +120 -0
- package/dist/cli/templates-7O77TKPV.js +611 -0
- package/dist/cli/testing-37YTBNKP.js +146 -0
- package/dist/cli/token-UAVJMNUI.js +220 -0
- package/dist/cli/transcript-LORQTV5Z.js +440 -0
- package/dist/cli/tui-BPUFHYKK.js +51 -0
- package/dist/cli/update-NVCYV2FT.js +476 -0
- package/dist/cli/upgrade-OXJXOGEF.js +243 -0
- package/dist/cli/verify-LYLDHPT2.js +190 -0
- package/dist/cli/web-QP2RP266.js +275 -0
- package/dist/cli/workgraph-FXBSZDQE.js +232 -0
- package/dist/cli/worktree-6RXAJIST.js +370 -0
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{DMj27Pxj.js → Btgeq_wq.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{qq3pe1aT.js → CgBjxmu6.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{Dc2owyvE.js → DgEKqO6r.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +1 -0
- package/studio-dist/client/_app/immutable/entry/{app.CHWXLeE9.js → app.a02HWaRB.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.BreMSngo.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.DmKQGvFh.js → 0.nTXyRfc-.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DqJk_REO.js → 1.4zrWeHtl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.GUy6kdW1.js → 15.D9mk4JyY.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.CcnKZ8f9.js → 16._-wt-sQf.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.DAlQF3lQ.js → 17.CUu6LQDj.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.vQFr-vFj.js → 18.Dz4QRTkX.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.GVOj5j_r.js → 20.CJ2_EB0U.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.2-wC6DOh.js → 24.Igj2FS7k.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{25.D1vYaH8g.js → 25.BnATjVGN.js} +2 -2
- package/studio-dist/client/_app/immutable/nodes/{26.C3rNqzZF.js → 26.6iPyjT44.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.b-7pzc3M.js → 3.AA5GwNgP.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BaCce-O1.js → 0-DGmsoBYm.js} +3 -3
- package/studio-dist/server/chunks/1-8PfxPvlK.js +9 -0
- package/studio-dist/server/chunks/{15-DRMOSIC9.js → 15-Bg6YTndh.js} +3 -3
- package/studio-dist/server/chunks/{16-BulXhoZZ.js → 16-BObLwgyD.js} +3 -3
- package/studio-dist/server/chunks/{17-DUEOCM0H.js → 17-BNXGyAHX.js} +3 -3
- package/studio-dist/server/chunks/{18-DP7Q8zPs.js → 18-UqQFRIID.js} +3 -3
- package/studio-dist/server/chunks/{20-9ta6MI7q.js → 20-CMn8a_yP.js} +3 -3
- package/studio-dist/server/chunks/{24-DysdL1ab.js → 24-BuOTDzib.js} +3 -3
- package/studio-dist/server/chunks/{25-CYsps38R.js → 25-CIMSmjVx.js} +4 -4
- package/studio-dist/server/chunks/{26-Df4YXgg0.js → 26-DWGObn2T.js} +3 -3
- package/studio-dist/server/chunks/{3-BEhOhYpL.js → 3-CyiffdJZ.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-CnLcXYG-.js → _layout.svelte-DYtClaIk.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-HUqTICJR.js → _page.svelte-1h9E6s_f.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DOl0DGOO.js → _page.svelte-BNNF62Nm.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DzcZljiy.js → _page.svelte-BT1EUadj.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-Dv8tmDEC.js → _page.svelte-Bip079LT.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DGhXqeRc.js → _page.svelte-CEATWp_5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C0qgUvzA.js → _page.svelte-CV3xiD1y.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CbyEPj2j.js → _page.svelte-Cv_KVJDV.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-ui7LnWkL.js → _page.svelte-DSSy6LuK.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Da4q5l93.js → _page.svelte-TF795TAS.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-CnKVmf_s.js → _server.ts-BlhRFLY3.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-Cr57EKWf.js → _server.ts-C4w6UdU0.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-P4wVVksg.js → _server.ts-CzrwbhkQ.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-2BazvYRP.js → _server.ts-DWt8Dziu.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-C0evMKCk.js → _server.ts-Db6mEile.js} +3 -3
- package/studio-dist/server/chunks/{client-CPM4LrO2.js → client-D8f2k-H_.js} +2 -2
- package/studio-dist/server/chunks/{dist-CdoCt9zT.js → dist-B8xbIrdB.js} +3 -1
- package/studio-dist/server/chunks/{error.svelte-ShcZo43D.js → error.svelte-DbbOwIme.js} +3 -3
- package/studio-dist/server/chunks/{http-BiQjEmVU.js → http-1ftNGTs5.js} +2 -2
- package/studio-dist/server/chunks/{internal-Cgsrya1j.js → internal-CTULuLPB.js} +2 -2
- package/studio-dist/server/chunks/{stores-BGrpEDMK.js → stores-CS5XOReX.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/server/chunks/1-CVo7Nk6d.js +0 -9
|
@@ -0,0 +1,252 @@
|
|
|
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/did-you-mean.ts
|
|
18
|
+
function levenshteinDistance(input, candidate) {
|
|
19
|
+
const inputLen = input.length;
|
|
20
|
+
const candidateLen = candidate.length;
|
|
21
|
+
const matrix = Array.from({ length: inputLen + 1 }, (_, i) => [i]);
|
|
22
|
+
for (let j = 1; j <= candidateLen; j++) {
|
|
23
|
+
matrix[0][j] = j;
|
|
24
|
+
}
|
|
25
|
+
for (let i = 1; i <= inputLen; i++) {
|
|
26
|
+
for (let j = 1; j <= candidateLen; j++) {
|
|
27
|
+
const cost = input[i - 1] === candidate[j - 1] ? 0 : 1;
|
|
28
|
+
matrix[i][j] = Math.min(
|
|
29
|
+
matrix[i - 1][j] + 1,
|
|
30
|
+
// deletion
|
|
31
|
+
matrix[i][j - 1] + 1,
|
|
32
|
+
// insertion
|
|
33
|
+
matrix[i - 1][j - 1] + cost
|
|
34
|
+
// substitution
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return matrix[inputLen][candidateLen];
|
|
39
|
+
}
|
|
40
|
+
function didYouMean(input, candidates, maxDistance = 2) {
|
|
41
|
+
const suggestions = candidates.map((candidate) => ({
|
|
42
|
+
command: candidate,
|
|
43
|
+
distance: levenshteinDistance(input, candidate)
|
|
44
|
+
})).filter((item) => item.distance <= maxDistance).sort((a, b) => {
|
|
45
|
+
if (a.distance !== b.distance) {
|
|
46
|
+
return a.distance - b.distance;
|
|
47
|
+
}
|
|
48
|
+
return a.command.localeCompare(b.command);
|
|
49
|
+
}).map((item) => item.command);
|
|
50
|
+
return suggestions;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// packages/cleo/src/cli/lib/strict-args.ts
|
|
54
|
+
var E_UNKNOWN_FLAG = "E_UNKNOWN_FLAG";
|
|
55
|
+
var RETIRED_FLAG_GUIDANCE = /* @__PURE__ */ new Map([
|
|
56
|
+
[
|
|
57
|
+
"complete",
|
|
58
|
+
/* @__PURE__ */ new Map([
|
|
59
|
+
[
|
|
60
|
+
"--force",
|
|
61
|
+
'--force was removed by ADR-051. Record evidence instead: `cleo verify <id> --gate <gate> --evidence "<atoms>"`, then `cleo complete <id>`. For an audited emergency bypass, set CLEO_OWNER_OVERRIDE=1 on verify.'
|
|
62
|
+
]
|
|
63
|
+
])
|
|
64
|
+
]
|
|
65
|
+
]);
|
|
66
|
+
var RETIRED_FLAG_ALIASES = /* @__PURE__ */ new Map([["done", "complete"]]);
|
|
67
|
+
function retiredGuidanceFor(commandName, flag) {
|
|
68
|
+
const key = RETIRED_FLAG_ALIASES.get(commandName) ?? commandName;
|
|
69
|
+
return RETIRED_FLAG_GUIDANCE.get(key)?.get(flag);
|
|
70
|
+
}
|
|
71
|
+
var CLI_GLOBAL_FLAGS = Object.freeze([
|
|
72
|
+
"--json",
|
|
73
|
+
"--human",
|
|
74
|
+
"--quiet",
|
|
75
|
+
"--field",
|
|
76
|
+
"--fields",
|
|
77
|
+
"--mvi",
|
|
78
|
+
"--verbose",
|
|
79
|
+
"--full",
|
|
80
|
+
"--output",
|
|
81
|
+
"--summary",
|
|
82
|
+
"--describe",
|
|
83
|
+
"--idempotency-key",
|
|
84
|
+
"--help",
|
|
85
|
+
"--version"
|
|
86
|
+
]);
|
|
87
|
+
var CLI_GLOBAL_VALUE_FLAGS = Object.freeze([
|
|
88
|
+
"--field",
|
|
89
|
+
"--fields",
|
|
90
|
+
"--mvi",
|
|
91
|
+
"--output"
|
|
92
|
+
]);
|
|
93
|
+
function normalizeGlobalValueFlags(argv) {
|
|
94
|
+
const normalized = [];
|
|
95
|
+
for (let i = 0; i < argv.length; i++) {
|
|
96
|
+
const token = argv[i];
|
|
97
|
+
if (token === "--") {
|
|
98
|
+
normalized.push(...argv.slice(i));
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
if (token !== void 0 && CLI_GLOBAL_VALUE_FLAGS.includes(token) && i + 1 < argv.length) {
|
|
102
|
+
normalized.push(`${token}=${argv[i + 1]}`);
|
|
103
|
+
i++;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (token !== void 0) {
|
|
107
|
+
normalized.push(token);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return normalized;
|
|
111
|
+
}
|
|
112
|
+
var UnknownFlagError = class extends Error {
|
|
113
|
+
/** Stable LAFS error code string for envelope emission. */
|
|
114
|
+
code = E_UNKNOWN_FLAG;
|
|
115
|
+
/** The unknown flag token as it appeared in `rawArgs` (e.g. `--titel`, `-X`). */
|
|
116
|
+
flag;
|
|
117
|
+
/** Human-readable command label (e.g. `'docs add'`). */
|
|
118
|
+
command;
|
|
119
|
+
/** Did-you-mean suggestions, sorted by Levenshtein distance ascending. */
|
|
120
|
+
suggestions;
|
|
121
|
+
/** The full list of known flags accepted by the command (long form + short). */
|
|
122
|
+
knownFlags;
|
|
123
|
+
/** Suggested fix string for {@link CliErrorDetails.fix}. */
|
|
124
|
+
fix;
|
|
125
|
+
/** Set when the flag was REMOVED rather than mistyped. @task T12139 */
|
|
126
|
+
retiredGuidance;
|
|
127
|
+
/**
|
|
128
|
+
* @param input - Structured failure context: offending flag, command
|
|
129
|
+
* label, ranked suggestions, and the full known-flag set.
|
|
130
|
+
*/
|
|
131
|
+
constructor(input) {
|
|
132
|
+
const suggestionPart = input.suggestions.length > 0 ? ` Did you mean: ${input.suggestions.join(", ")}?` : "";
|
|
133
|
+
super(
|
|
134
|
+
`${E_UNKNOWN_FLAG}: unknown flag '${input.flag}' for '${input.command}'.${suggestionPart}`
|
|
135
|
+
);
|
|
136
|
+
this.name = "UnknownFlagError";
|
|
137
|
+
this.flag = input.flag;
|
|
138
|
+
this.command = input.command;
|
|
139
|
+
this.suggestions = input.suggestions;
|
|
140
|
+
this.knownFlags = input.knownFlags;
|
|
141
|
+
this.retiredGuidance = input.retiredGuidance;
|
|
142
|
+
this.fix = input.retiredGuidance ? input.retiredGuidance : input.suggestions.length > 0 ? `Try one of: ${input.suggestions.join(", ")}. Run \`cleo ${input.command} --help\` for the full flag list.` : `Run \`cleo ${input.command} --help\` for the full flag list.`;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
function collectKnownLongFlags(schema) {
|
|
146
|
+
const known = /* @__PURE__ */ new Set();
|
|
147
|
+
for (const [name, def] of Object.entries(schema)) {
|
|
148
|
+
if (!def) continue;
|
|
149
|
+
known.add(`--${name}`);
|
|
150
|
+
if (def.type === "positional") continue;
|
|
151
|
+
if (def.type === "boolean") {
|
|
152
|
+
known.add(`--no-${name}`);
|
|
153
|
+
}
|
|
154
|
+
const alias = def.alias;
|
|
155
|
+
if (typeof alias === "string" && alias.length > 0) {
|
|
156
|
+
known.add(alias.length === 1 ? `-${alias}` : `--${alias}`);
|
|
157
|
+
} else if (Array.isArray(alias)) {
|
|
158
|
+
for (const a of alias) {
|
|
159
|
+
if (typeof a !== "string" || a.length === 0) continue;
|
|
160
|
+
known.add(a.length === 1 ? `-${a}` : `--${a}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return known;
|
|
165
|
+
}
|
|
166
|
+
function collectSuggestionCandidates(schema) {
|
|
167
|
+
const candidates = [];
|
|
168
|
+
for (const [name, def] of Object.entries(schema)) {
|
|
169
|
+
if (!def || def.type === "positional") continue;
|
|
170
|
+
candidates.push(`--${name}`);
|
|
171
|
+
}
|
|
172
|
+
return candidates.sort();
|
|
173
|
+
}
|
|
174
|
+
function assertKnownFlags(rawArgs, schema, commandName) {
|
|
175
|
+
if (!rawArgs || rawArgs.length === 0) return;
|
|
176
|
+
if (schema === void 0) return;
|
|
177
|
+
if (typeof schema === "function" || typeof schema === "object" && schema !== null && "then" in schema) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const resolved = schema;
|
|
181
|
+
const known = collectKnownLongFlags(resolved);
|
|
182
|
+
for (const global of CLI_GLOBAL_FLAGS) known.add(global);
|
|
183
|
+
const candidates = collectSuggestionCandidates(resolved);
|
|
184
|
+
for (let i = 0; i < rawArgs.length; i++) {
|
|
185
|
+
const token = rawArgs[i];
|
|
186
|
+
if (token === void 0) continue;
|
|
187
|
+
if (token === "--") break;
|
|
188
|
+
if (!token.startsWith("-")) continue;
|
|
189
|
+
if (token === "-") continue;
|
|
190
|
+
if (token.startsWith("--")) {
|
|
191
|
+
const eqIdx = token.indexOf("=");
|
|
192
|
+
const flagName = eqIdx >= 0 ? token.slice(0, eqIdx) : token;
|
|
193
|
+
if (!known.has(flagName)) {
|
|
194
|
+
throw new UnknownFlagError({
|
|
195
|
+
retiredGuidance: retiredGuidanceFor(commandName, flagName),
|
|
196
|
+
flag: flagName,
|
|
197
|
+
command: commandName,
|
|
198
|
+
suggestions: didYouMean(flagName, candidates, 3),
|
|
199
|
+
knownFlags: [...known].sort()
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
const eqIdx = token.indexOf("=");
|
|
204
|
+
const body = eqIdx >= 0 ? token.slice(1, eqIdx) : token.slice(1);
|
|
205
|
+
const first = `-${body[0]}`;
|
|
206
|
+
if (!known.has(first)) {
|
|
207
|
+
throw new UnknownFlagError({
|
|
208
|
+
flag: first,
|
|
209
|
+
command: commandName,
|
|
210
|
+
suggestions: didYouMean(first, candidates, 3),
|
|
211
|
+
knownFlags: [...known].sort()
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
if (eqIdx < 0 && body.length > 1) {
|
|
215
|
+
const isBooleanShort = isBooleanAlias(resolved, body[0]);
|
|
216
|
+
if (isBooleanShort) {
|
|
217
|
+
for (let k = 1; k < body.length; k++) {
|
|
218
|
+
const ch = body[k];
|
|
219
|
+
if (ch === void 0) continue;
|
|
220
|
+
const short = `-${ch}`;
|
|
221
|
+
if (!known.has(short)) {
|
|
222
|
+
throw new UnknownFlagError({
|
|
223
|
+
flag: short,
|
|
224
|
+
command: commandName,
|
|
225
|
+
suggestions: didYouMean(short, candidates, 3),
|
|
226
|
+
knownFlags: [...known].sort()
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function isBooleanAlias(schema, letter) {
|
|
236
|
+
if (!letter) return false;
|
|
237
|
+
for (const def of Object.values(schema)) {
|
|
238
|
+
if (!def || def.type !== "boolean") continue;
|
|
239
|
+
const alias = def.alias;
|
|
240
|
+
if (alias === letter) return true;
|
|
241
|
+
if (Array.isArray(alias) && alias.includes(letter)) return true;
|
|
242
|
+
}
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export {
|
|
247
|
+
didYouMean,
|
|
248
|
+
normalizeGlobalValueFlags,
|
|
249
|
+
UnknownFlagError,
|
|
250
|
+
assertKnownFlags
|
|
251
|
+
};
|
|
252
|
+
//# sourceMappingURL=chunk-OILHT47L.js.map
|
|
@@ -0,0 +1,258 @@
|
|
|
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
|
+
runLoginFrontDoor
|
|
18
|
+
} from "./chunk-J3ZFM3UQ.js";
|
|
19
|
+
import {
|
|
20
|
+
ReadlineWizardIO
|
|
21
|
+
} from "./chunk-GZFVDR44.js";
|
|
22
|
+
import {
|
|
23
|
+
defineCommand
|
|
24
|
+
} from "./chunk-PKKZPOOP.js";
|
|
25
|
+
import {
|
|
26
|
+
cliError,
|
|
27
|
+
cliOutput,
|
|
28
|
+
isHumanOutput
|
|
29
|
+
} from "./chunk-3ZO3M37V.js";
|
|
30
|
+
|
|
31
|
+
// packages/cleo/src/cli/commands/init.ts
|
|
32
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
33
|
+
import { join } from "node:path";
|
|
34
|
+
import { fileURLToPath } from "node:url";
|
|
35
|
+
import {
|
|
36
|
+
CleoError,
|
|
37
|
+
getWorkflowTemplatesDir as getCoreWorkflowTemplatesDir,
|
|
38
|
+
initErrorCodeName,
|
|
39
|
+
initProject,
|
|
40
|
+
pushWarning,
|
|
41
|
+
scaffoldWorkflows
|
|
42
|
+
} from "@cleocode/core";
|
|
43
|
+
import { getCredentialPool } from "@cleocode/core/llm/credential-pool.js";
|
|
44
|
+
import { getTemplatesByKind } from "@cleocode/core/templates/registry";
|
|
45
|
+
function getGitignoreTemplate() {
|
|
46
|
+
try {
|
|
47
|
+
const thisFile = fileURLToPath(import.meta.url);
|
|
48
|
+
const packageRoot = join(thisFile, "..", "..", "..", "..");
|
|
49
|
+
const localTemplatePath = join(packageRoot, "templates", "cleo-gitignore");
|
|
50
|
+
const monorepoTemplatePath = join(packageRoot, "..", "..", "templates", "cleo-gitignore");
|
|
51
|
+
const templatePath = existsSync(localTemplatePath) ? localTemplatePath : monorepoTemplatePath;
|
|
52
|
+
if (existsSync(templatePath)) {
|
|
53
|
+
return readFileSync(templatePath, "utf-8");
|
|
54
|
+
}
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
return "# CLEO Project Data - Selective Git Tracking\nagent-outputs/\n";
|
|
58
|
+
}
|
|
59
|
+
function getWorkflowTemplatesDir() {
|
|
60
|
+
return getCoreWorkflowTemplatesDir();
|
|
61
|
+
}
|
|
62
|
+
var initCommand = defineCommand({
|
|
63
|
+
meta: { name: "init", description: "Initialize CLEO in a project directory" },
|
|
64
|
+
args: {
|
|
65
|
+
projectName: {
|
|
66
|
+
type: "positional",
|
|
67
|
+
description: "Project name (alternative to --name)",
|
|
68
|
+
required: false
|
|
69
|
+
},
|
|
70
|
+
name: {
|
|
71
|
+
type: "string",
|
|
72
|
+
description: "Project name"
|
|
73
|
+
},
|
|
74
|
+
force: {
|
|
75
|
+
type: "boolean",
|
|
76
|
+
description: "Re-initialize THIS directory's project: resets .cleo/config.json and project-info.json, rewrites .cleo/.gitignore and the managed git hooks. Snapshots databases and those files to .cleo/backups/sqlite/ first; never targets an ancestor or a worktree.",
|
|
77
|
+
default: false
|
|
78
|
+
},
|
|
79
|
+
detect: {
|
|
80
|
+
type: "boolean",
|
|
81
|
+
description: "Auto-detect project configuration",
|
|
82
|
+
default: false
|
|
83
|
+
},
|
|
84
|
+
"map-codebase": {
|
|
85
|
+
type: "boolean",
|
|
86
|
+
description: "Run codebase analysis and store findings to brain.db",
|
|
87
|
+
default: false
|
|
88
|
+
},
|
|
89
|
+
"install-seed-agents": {
|
|
90
|
+
type: "boolean",
|
|
91
|
+
description: "Install canonical CleoOS seed agent personas (.cant)",
|
|
92
|
+
default: false
|
|
93
|
+
},
|
|
94
|
+
workflows: {
|
|
95
|
+
type: "boolean",
|
|
96
|
+
/**
|
|
97
|
+
* @deprecated Use `cleo templates install --kind workflow` instead
|
|
98
|
+
* (T9886 / Saga T9855). Removal target: v2026.7.0. T9888.
|
|
99
|
+
*/
|
|
100
|
+
description: "[DEPRECATED \u2014 use `cleo templates install --kind workflow`] Scaffold release workflows into .github/workflows/. Will be removed in v2026.7.0.",
|
|
101
|
+
default: false
|
|
102
|
+
},
|
|
103
|
+
"dry-run": {
|
|
104
|
+
type: "boolean",
|
|
105
|
+
description: "With --workflows: print the rendered YAML without writing.",
|
|
106
|
+
default: false
|
|
107
|
+
},
|
|
108
|
+
"force-rebind": {
|
|
109
|
+
type: "boolean",
|
|
110
|
+
description: "Point the NEXUS registry at this checkout even though the project is registered at another path that still exists (T12470).",
|
|
111
|
+
default: false
|
|
112
|
+
},
|
|
113
|
+
here: {
|
|
114
|
+
type: "boolean",
|
|
115
|
+
description: "Initialize the current directory itself, even inside an ancestor CLEO project (T12562). A directory that is its own git root is targeted without it. At a directory a project was rerooted away from it requires --new-identity (T12558).",
|
|
116
|
+
default: false
|
|
117
|
+
},
|
|
118
|
+
"new-identity": {
|
|
119
|
+
type: "boolean",
|
|
120
|
+
description: "Mint a new project identity instead of re-linking a registered one (T12325). Never rewrites an existing .cleo/project-id \u2014 except with --here at a directory a project was rerooted away from, where that project's restored id is retired for the new one (T12558).",
|
|
121
|
+
default: false
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
async run({ args }) {
|
|
125
|
+
try {
|
|
126
|
+
if (args.workflows) {
|
|
127
|
+
pushWarning({
|
|
128
|
+
code: "W_INIT_WORKFLOWS_DEPRECATED",
|
|
129
|
+
message: "[deprecated] cleo init --workflows: use `cleo templates install --kind workflow` instead. This alias will be removed in v2026.7.0.",
|
|
130
|
+
severity: "warn",
|
|
131
|
+
deprecated: "cleo init --workflows",
|
|
132
|
+
replacement: "cleo templates install --kind workflow",
|
|
133
|
+
removeBy: "v2026.7.0",
|
|
134
|
+
context: { task: "T9888", saga: "T9855" }
|
|
135
|
+
});
|
|
136
|
+
const projectRoot = process.cwd();
|
|
137
|
+
const templatesDir = getWorkflowTemplatesDir();
|
|
138
|
+
const workflowEntries = getTemplatesByKind("workflow");
|
|
139
|
+
const templates = workflowEntries.map((entry) => entry.id).filter((id) => isWorkflowName(id));
|
|
140
|
+
const result2 = await scaffoldWorkflows({
|
|
141
|
+
projectRoot,
|
|
142
|
+
templatesDir,
|
|
143
|
+
...templates.length > 0 ? { templates } : {},
|
|
144
|
+
dryRun: !!args["dry-run"],
|
|
145
|
+
force: !!args.force
|
|
146
|
+
});
|
|
147
|
+
cliOutput(
|
|
148
|
+
{
|
|
149
|
+
scaffolded: result2.outcomes.map((o) => ({
|
|
150
|
+
template: o.template,
|
|
151
|
+
targetPath: o.targetPath,
|
|
152
|
+
status: o.status
|
|
153
|
+
})),
|
|
154
|
+
resolvedTools: result2.resolvedTools,
|
|
155
|
+
...args["dry-run"] ? { rendered: result2.outcomes.map((o) => o.rendered) } : {}
|
|
156
|
+
},
|
|
157
|
+
{ command: "init" }
|
|
158
|
+
);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const initOpts = {
|
|
162
|
+
name: args.name || args.projectName || void 0,
|
|
163
|
+
force: !!args.force,
|
|
164
|
+
detect: !!args.detect,
|
|
165
|
+
mapCodebase: !!args["map-codebase"],
|
|
166
|
+
installSeedAgents: !!args["install-seed-agents"],
|
|
167
|
+
newIdentity: !!args["new-identity"],
|
|
168
|
+
forceRebind: !!args["force-rebind"],
|
|
169
|
+
here: !!args.here
|
|
170
|
+
};
|
|
171
|
+
const result = await initProject(initOpts);
|
|
172
|
+
const nextSteps = [...result.nextSteps ?? []];
|
|
173
|
+
await maybeNudgeFirstRunLogin(nextSteps);
|
|
174
|
+
cliOutput(
|
|
175
|
+
{
|
|
176
|
+
initialized: result.initialized,
|
|
177
|
+
directory: result.directory,
|
|
178
|
+
created: result.created,
|
|
179
|
+
skipped: result.skipped,
|
|
180
|
+
...result.warnings.length > 0 ? { warnings: result.warnings } : {},
|
|
181
|
+
...result.updateDocsOnly ? { updateDocsOnly: true } : {},
|
|
182
|
+
// Phase 5 — greenfield/brownfield classification + LAFS nextSteps
|
|
183
|
+
...result.classification ? { classification: result.classification } : {},
|
|
184
|
+
...nextSteps.length > 0 ? { nextSteps } : {}
|
|
185
|
+
},
|
|
186
|
+
{ command: "init" }
|
|
187
|
+
);
|
|
188
|
+
} catch (err) {
|
|
189
|
+
if (err instanceof CleoError) {
|
|
190
|
+
cliError(`init failed: ${err.message}`, err.code, {
|
|
191
|
+
name: initErrorCodeName(err) ?? err.toLAFSError().code,
|
|
192
|
+
...err.fix !== void 0 ? { fix: err.fix } : {},
|
|
193
|
+
...err.alternatives !== void 0 ? { alternatives: err.alternatives } : {},
|
|
194
|
+
...err.details !== void 0 ? { details: err.details } : {}
|
|
195
|
+
});
|
|
196
|
+
process.exit(err.code);
|
|
197
|
+
}
|
|
198
|
+
throw err;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
var FIRST_RUN_LOGIN_NEXT_STEP = {
|
|
203
|
+
action: "Add an LLM credential to start using CLEO",
|
|
204
|
+
command: "cleo login"
|
|
205
|
+
};
|
|
206
|
+
async function isCredentialPoolEmpty() {
|
|
207
|
+
try {
|
|
208
|
+
const pool = getCredentialPool();
|
|
209
|
+
const entries = await pool.list();
|
|
210
|
+
return entries.length === 0;
|
|
211
|
+
} catch {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async function maybeNudgeFirstRunLogin(nextSteps) {
|
|
216
|
+
if (!await isCredentialPoolEmpty()) return;
|
|
217
|
+
nextSteps.push({ ...FIRST_RUN_LOGIN_NEXT_STEP });
|
|
218
|
+
if (!isHumanOutput() || process.stdin.isTTY !== true) return;
|
|
219
|
+
try {
|
|
220
|
+
const io = new ReadlineWizardIO(process.stdin, process.stderr);
|
|
221
|
+
let configureNow;
|
|
222
|
+
try {
|
|
223
|
+
configureNow = await io.confirm("No LLM credential found. Configure now?", true);
|
|
224
|
+
} finally {
|
|
225
|
+
io.close();
|
|
226
|
+
}
|
|
227
|
+
if (!configureNow) return;
|
|
228
|
+
const result = await runLoginFrontDoor({});
|
|
229
|
+
let note;
|
|
230
|
+
if (result.validated) {
|
|
231
|
+
note = ` Logged in to ${result.provider} as '${result.accountLabel}' \u2014 bound ${result.profileName ?? "default"} \u2192 ${result.provider}/${result.modelId}.
|
|
232
|
+
`;
|
|
233
|
+
} else {
|
|
234
|
+
const failed = result.steps.find((st) => st.status === "failed");
|
|
235
|
+
note = ` Login did not complete${failed?.detail ? `: ${failed.detail}` : "."} Run 'cleo login' to retry.
|
|
236
|
+
`;
|
|
237
|
+
}
|
|
238
|
+
process.stderr.write(note);
|
|
239
|
+
} catch (err) {
|
|
240
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
241
|
+
const note = ` Login skipped (${msg}). Run 'cleo login' to retry.
|
|
242
|
+
`;
|
|
243
|
+
process.stderr.write(note);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function isWorkflowName(id) {
|
|
247
|
+
return id === "release-prepare" || id === "release-publish" || id === "release-fanout" || id === "release-rollback";
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export {
|
|
251
|
+
getGitignoreTemplate,
|
|
252
|
+
getWorkflowTemplatesDir,
|
|
253
|
+
initCommand,
|
|
254
|
+
FIRST_RUN_LOGIN_NEXT_STEP,
|
|
255
|
+
isCredentialPoolEmpty,
|
|
256
|
+
maybeNudgeFirstRunLogin
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=chunk-OPTEQKBB.js.map
|