@iowarp/clio-coder 0.4.0 → 0.4.2
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/CHANGELOG.md +131 -0
- package/CONTRIBUTING.md +59 -36
- package/README.md +407 -375
- package/SECURITY.md +2 -1
- package/dist/{acp-G5WJBNCT.js → acp-TMDQZDIG.js} +14 -14
- package/dist/{agents-FMV2Q5G4.js → agents-5N5NG3XG.js} +45 -34
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-3IDSJEIK.js → auth-Z5CCBXKQ.js} +22 -21
- package/dist/{builtins-XCZWXSC7.js → builtins-K6TNDT24.js} +6 -6
- package/dist/{chunk-GR5G2PVF.js → chunk-2HFQNRV3.js} +15 -10
- package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
- package/dist/{chunk-HJJTYUHX.js → chunk-2NHR3NAY.js} +168 -1406
- package/dist/chunk-2X4RYJTJ.js +39 -0
- package/dist/{chunk-UXMFQ54G.js → chunk-2Z2IKEXI.js} +39 -43
- package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
- package/dist/chunk-34BHNEE3.js +1846 -0
- package/dist/{chunk-YJX4SHTD.js → chunk-35MSIRKH.js} +9 -4
- package/dist/chunk-3EBYEESD.js +314 -0
- package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
- package/dist/chunk-3KIPBMUA.js +308 -0
- package/dist/chunk-3M6DQK6S.js +362 -0
- package/dist/{chunk-BPKCPIL7.js → chunk-462T4EGZ.js} +3 -3
- package/dist/{chunk-QLFS5GO2.js → chunk-4JDLP6ZS.js} +44 -37
- package/dist/{chunk-LDQ2ZF2M.js → chunk-4O6MANBS.js} +6 -6
- package/dist/{chunk-O6TL7WWY.js → chunk-54ODD65L.js} +6 -6
- package/dist/{chunk-JDG2WCRO.js → chunk-5KW52TEP.js} +5 -5
- package/dist/{chunk-NHLBIGRH.js → chunk-5PFYMY2V.js} +41 -18
- package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
- package/dist/chunk-77QIVUZB.js +1334 -0
- package/dist/{chunk-HWHKMHUA.js → chunk-7BHIY2MW.js} +9 -15
- package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
- package/dist/{chunk-VAZSBTKF.js → chunk-AZ4WMN4W.js} +2 -2
- package/dist/{chunk-B7OBL7PK.js → chunk-B74PXLU7.js} +21 -11
- package/dist/{chunk-CY6FY24N.js → chunk-B7HM5Z7T.js} +15 -15
- package/dist/{chunk-ULC6OTWO.js → chunk-BO7Y52RY.js} +88 -27
- package/dist/chunk-BTK3SSSK.js +67 -0
- package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
- package/dist/{chunk-DQITNCXG.js → chunk-BYMNWQ7O.js} +149 -159
- package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
- package/dist/{chunk-Z4TXYIEG.js → chunk-CRFOIAX3.js} +10 -10
- package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
- package/dist/{chunk-3BT2XMV4.js → chunk-CYZW7JHJ.js} +53 -60
- package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
- package/dist/chunk-D7E7WCDF.js +27 -0
- package/dist/{chunk-X3YGUTOB.js → chunk-DYHAXKHD.js} +90 -62
- package/dist/{chunk-QBJA7R7N.js → chunk-DZAW46HP.js} +3 -3
- package/dist/{chunk-MLKNTWH2.js → chunk-DZEK6CJN.js} +22 -22
- package/dist/{chunk-K5C3NCBD.js → chunk-E7GT7O5N.js} +5 -5
- package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
- package/dist/chunk-F2I26BDK.js +66 -0
- package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
- package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
- package/dist/{chunk-32KWKNSF.js → chunk-FVDGR2ZL.js} +4 -4
- package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
- package/dist/{chunk-SJ5ZKQ4S.js → chunk-HIICAHCJ.js} +2 -2
- package/dist/chunk-HJWWJ6IL.js +184 -0
- package/dist/{chunk-WZR7K7ZX.js → chunk-HKMD33FO.js} +32 -83
- package/dist/chunk-HLAFFSEK.js +360 -0
- package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
- package/dist/{chunk-KFZI4NIL.js → chunk-I64IFBLB.js} +152 -31
- package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
- package/dist/{chunk-BUMFYQFY.js → chunk-I66ZTYNP.js} +543 -267
- package/dist/{chunk-2OQE55CK.js → chunk-I7XBWTYH.js} +2 -2
- package/dist/{chunk-GKF55TAZ.js → chunk-IDNA72AH.js} +104 -3
- package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
- package/dist/{chunk-J4W7KFM7.js → chunk-IKSLQ4XV.js} +5439 -3475
- package/dist/{chunk-6DB53AJS.js → chunk-IMXMHHMQ.js} +171 -30
- package/dist/{chunk-AB44T6BB.js → chunk-JBCS7CRR.js} +8 -7
- package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
- package/dist/{chunk-SP2RXXYO.js → chunk-JWJGP5DQ.js} +10 -10
- package/dist/{chunk-HZHHCK24.js → chunk-KKOJXO6R.js} +527 -325
- package/dist/chunk-KPXDY6QF.js +47 -0
- package/dist/{chunk-LQ3DZAMX.js → chunk-LJID3DYZ.js} +8 -2
- package/dist/{chunk-7MCTRUCE.js → chunk-M2DAX4F6.js} +2 -2
- package/dist/{chunk-VEO4AP2K.js → chunk-M2WXEHER.js} +4 -3
- package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
- package/dist/{chunk-YDFRH54B.js → chunk-MCMZMDAC.js} +4 -4
- package/dist/{chunk-J5Q24KAG.js → chunk-MNJGS2IN.js} +5 -6
- package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
- package/dist/chunk-NDDGJUXD.js +81 -0
- package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
- package/dist/chunk-NMJXSHBJ.js +283 -0
- package/dist/{chunk-VYMXRQI6.js → chunk-O3YUNJZ2.js} +88 -100
- package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
- package/dist/{chunk-Z2RR6MAK.js → chunk-P75RZCJW.js} +28 -6
- package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
- package/dist/{chunk-DYJP44XW.js → chunk-PGF63K6I.js} +2 -2
- package/dist/chunk-PJX3WQUQ.js +42 -0
- package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
- package/dist/{chunk-2JDWVJND.js → chunk-Q4XWMHX6.js} +5 -7
- package/dist/{chunk-W5VSYASO.js → chunk-QQLGQY2A.js} +46 -87
- package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
- package/dist/{chunk-C2LTL2W6.js → chunk-RLYRBIYQ.js} +463 -180
- package/dist/{chunk-4ZG3XFUR.js → chunk-S66XZJOF.js} +14 -23
- package/dist/{chunk-I5VEOC6I.js → chunk-SSEYRH53.js} +13 -14
- package/dist/chunk-SZAA6XDG.js +30 -0
- package/dist/{chunk-CODPRO7Q.js → chunk-TPEQIQIE.js} +7 -7
- package/dist/{chunk-QLL7ILRG.js → chunk-UBRFI4HS.js} +1151 -614
- package/dist/{chunk-O4XIVISU.js → chunk-UH347SHR.js} +227 -47
- package/dist/{chunk-OQBA45DZ.js → chunk-UH632ZYL.js} +2 -2
- package/dist/chunk-UXCU4E3T.js +303 -0
- package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
- package/dist/{chunk-IQ7KR472.js → chunk-VIA6RFQZ.js} +8 -13
- package/dist/{chunk-V5DHCITQ.js → chunk-VKPAQYEB.js} +49 -19
- package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
- package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
- package/dist/{chunk-3XML7CDN.js → chunk-W4YEMFBX.js} +3 -3
- package/dist/{chunk-U77AMWDL.js → chunk-W6NIE6OW.js} +44 -23
- package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
- package/dist/{chunk-QREDIESB.js → chunk-X7IARSHT.js} +15 -9
- package/dist/{chunk-3URVFKWK.js → chunk-XE3PCIXH.js} +5 -5
- package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
- package/dist/{chunk-F4CKPOEQ.js → chunk-XOXV5GKE.js} +119 -38
- package/dist/chunk-XQRY4DTA.js +657 -0
- package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
- package/dist/{chunk-NQQH3YT7.js → chunk-YJISEZKC.js} +3 -3
- package/dist/{chunk-X75E3D2N.js → chunk-ZGNYYXQ6.js} +18 -16
- package/dist/{chunk-LY4S7GJC.js → chunk-ZNT2M6TG.js} +20 -18
- package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
- package/dist/{chunk-IBEBSCYA.js → chunk-ZW4HH5JJ.js} +43 -34
- package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
- package/dist/cli/index.js +38 -37
- package/dist/{clio-2JXHBBY5.js → clio-7VB377CC.js} +12 -13
- package/dist/{code-nav-3YYRMYNF.js → code-nav-YVLCYA7V.js} +86 -18
- package/dist/codewiki/build-worker.js +1 -1
- package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
- package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
- package/dist/{config-QZPCMYSO.js → config-4HVOS65E.js} +112 -63
- package/dist/{configure-TEGEBYCA.js → configure-PIWO7B24.js} +25 -22
- package/dist/{context-E6H5RNMC.js → context-IYEHL3WQ.js} +53 -47
- package/dist/{context-GSXUE4CT.js → context-KQYIWPWT.js} +68 -42
- package/dist/{context-AV7OEZ4D.js → context-N6ZE3LGJ.js} +11 -11
- package/dist/{context-clear-SHIBYK6T.js → context-clear-G4OGZJDS.js} +53 -47
- package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-BWLF6LJP.js} +12 -11
- package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-2QQAITS3.js} +67 -58
- package/dist/{docs-23KQS3XK.js → docs-PD3EXDKU.js} +20 -25
- package/dist/doctor-LHBD36VU.js +773 -0
- package/dist/{eval-TFBYQH4H.js → eval-C45FYRJ6.js} +68 -49
- package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-6DEJPLBF.js} +7 -8
- package/dist/{evidence-ERGESKGN.js → evidence-6SHONYAF.js} +50 -44
- package/dist/{evolve-VDXTSYCJ.js → evolve-KRKMV72X.js} +49 -43
- package/dist/{extensions-7BGBHN57.js → extensions-KPZ2UHBB.js} +8 -6
- package/dist/{fleet-2RRVDF2V.js → fleet-IVTCKDHT.js} +93 -79
- package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EDWL3IT7.js} +10 -9
- package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-YP3YEFGK.js} +6 -6
- package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-ZFWKHY2M.js} +19 -15
- package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-FVUNCBML.js} +50 -45
- package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-UN5XED4R.js} +5 -9
- package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-XOWC4HSX.js} +22 -17
- package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-UN3SODEL.js} +48 -43
- package/dist/fleet-view-TWHJKCN6.js +96 -0
- package/dist/{init-DN2WWLFE.js → init-T2QORQ3Y.js} +72 -66
- package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
- package/dist/{interop-OZBKXAYL.js → interop-IN5I2A66.js} +13 -11
- package/dist/{library-YWZG7IMW.js → library-LSCATDLZ.js} +23 -18
- package/dist/{memory-I4C4HMLW.js → memory-HYOKAGGJ.js} +51 -45
- package/dist/{models-CEYXJBO6.js → models-2GPMFYCM.js} +42 -33
- package/dist/{monitor-NZ6GCI3P.js → monitor-E4ASVUJH.js} +56 -50
- package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-DDMPR3PY.js} +2676 -1507
- package/dist/{panes-KY6W3V2E.js → panes-E3RUXOW5.js} +5 -5
- package/dist/panes-IXKLOKA2.js +75 -0
- package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
- package/dist/{reset-DQ6FGCSH.js → reset-OAQP3W4O.js} +7 -8
- package/dist/{resources-BB3MVJMD.js → resources-OTRSN34L.js} +23 -17
- package/dist/{run-H2GQDUER.js → run-5DEYH5QK.js} +95 -84
- package/dist/{share-GTJN6A5O.js → share-IHWTLO3M.js} +26 -19
- package/dist/{skills-L55TEW6R.js → skills-IYMXMKW4.js} +25 -20
- package/dist/{skills-eval-XVXPH2JI.js → skills-eval-DROHSJAR.js} +63 -65
- package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-D7X4L4ZX.js} +21 -16
- package/dist/{slash-commands-ZSGASKJC.js → slash-commands-QBM7UZ3B.js} +38 -33
- package/dist/{steer-RZGSCY4R.js → steer-Z5DO23FJ.js} +3 -3
- package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
- package/dist/{targets-NCPZ644J.js → targets-P2FUC4IL.js} +64 -61
- package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-YREJ3JX2.js} +15 -10
- package/dist/{tools-DAF3DI3C.js → tools-5B7RO6MV.js} +10 -8
- package/dist/{trace-FYVW2MQA.js → trace-YMGMUM6A.js} +101 -8
- package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
- package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
- package/dist/{upgrade-3XPP6OQL.js → upgrade-PXK3S2YM.js} +36 -61
- package/dist/{usage-3NLHGTU2.js → usage-ME5MPXGX.js} +58 -53
- package/dist/{verifiers-SSQONKRT.js → verifiers-BVZ7IWOO.js} +10 -9
- package/dist/{verify-3U6J7FZI.js → verify-5K7ZKQFC.js} +9 -8
- package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPARV2K7.js} +2 -3
- package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-F5W5QTYY.js} +74 -70
- package/dist/{with-panes-MKB46MPQ.js → with-panes-BYOJCLAM.js} +78 -246
- package/dist/worker/entry.js +83 -63
- package/docs/README.md +176 -81
- package/docs/{acp.md → architecture/acp.md} +36 -20
- package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
- package/docs/{architecture.md → architecture/architecture.md} +43 -22
- package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
- package/docs/architecture/artifact-versions.md +90 -0
- package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
- package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
- package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
- package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
- package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
- package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
- package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
- package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
- package/docs/{observability.md → architecture/observability.md} +26 -13
- package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
- package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
- package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
- package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
- package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
- package/docs/architecture/time-conventions.md +125 -0
- package/docs/{trace-store.md → architecture/trace-store.md} +26 -13
- package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
- package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
- package/docs/{built-in-agents.md → guide/built-in-agents.md} +70 -46
- package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +73 -62
- package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -444
- package/docs/guide/configuration-reference.md +1158 -0
- package/docs/{environment-variables.md → guide/environment-variables.md} +31 -27
- package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +8 -3
- package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
- package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +47 -49
- package/docs/{glossary.md → guide/glossary.md} +14 -11
- package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +45 -14
- package/docs/guide/panes-and-files.md +290 -0
- package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
- package/docs/{resource-library.md → guide/resource-library.md} +13 -4
- package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
- package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
- package/docs/{troubleshooting.md → guide/troubleshooting.md} +10 -5
- package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +13 -10
- package/docs/history/release-cut-checklist.md +207 -0
- package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
- package/docs/process/documentation-coverage.md +100 -0
- package/docs/process/documentation-guide.md +187 -0
- package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
- package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
- package/docs/{evolution.md → process/evolution.md} +2 -2
- package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +17 -10
- package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
- package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
- package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
- package/evals/README.md +5 -0
- package/evals/behavioral-corpus-grader.mjs +103 -0
- package/evals/behavioral-machinery-baseline.json +2276 -0
- package/evals/behavioral-machinery-driver.ts +250 -0
- package/evals/behavioral-machinery-support.ts +253 -0
- package/evals/behavioral-machinery.yaml +614 -0
- package/evals/behavioral-model-negative-control.yaml +68 -0
- package/evals/behavioral-model.yaml +216 -0
- package/evals/fixtures/behavioral-facts.txt +3 -0
- package/evals/fixtures/behavioral-main.ts +7 -0
- package/evals/fixtures/decoy/note.txt +2 -0
- package/evals/fixtures/private/credentials.txt +1 -0
- package/evals/tracked-metrics-baseline.yaml +229 -0
- package/evals/tracked-metrics-grader.mjs +129 -0
- package/package.json +13 -21
- package/skills/README.md +51 -42
- package/skills/coding/ast-grep/SKILL.md +9 -3
- package/skills/coding/coding-standards/SKILL.md +9 -3
- package/skills/coding/prototype/SKILL.md +9 -3
- package/skills/coding/tdd/SKILL.md +9 -3
- package/skills/context/context-handoff/SKILL.md +13 -4
- package/skills/context/context-handoff/evals.md +3 -3
- package/skills/context/context-prime/SKILL.md +9 -3
- package/skills/context/context-prime/evals.md +2 -2
- package/skills/git/file-ticket/SKILL.md +10 -5
- package/skills/git/file-ticket/evals.md +2 -2
- package/skills/git/fix-issue/SKILL.md +12 -5
- package/skills/git/fix-issue/evals.md +4 -4
- package/skills/git/resolve-merge-conflicts/SKILL.md +9 -3
- package/skills/git/resolve-merge-conflicts/evals.md +2 -2
- package/skills/git/ship/SKILL.md +10 -4
- package/skills/git/ship/evals.md +4 -4
- package/skills/git/worktree-create/SKILL.md +8 -3
- package/skills/git/worktree-create/evals.md +6 -6
- package/skills/git/worktree-merge/SKILL.md +8 -3
- package/skills/git/worktree-merge/evals.md +6 -6
- package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +22 -12
- package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +5 -4
- package/skills/meta/clio-coder-test/SKILL.md +146 -0
- package/skills/meta/{clio-test → clio-coder-test}/evals.md +10 -5
- package/skills/meta/clio-coder-test/references/harness.md +102 -0
- package/skills/meta/clio-coder-test/references/test-map.md +96 -0
- package/skills/meta/credentials/SKILL.md +10 -3
- package/skills/meta/find-skills/SKILL.md +9 -3
- package/skills/meta/herdr/SKILL.md +9 -3
- package/skills/meta/skill-craft/SKILL.md +39 -16
- package/skills/planning/architecture/SKILL.md +9 -3
- package/skills/planning/backlog/SKILL.md +9 -3
- package/skills/planning/prd/SKILL.md +9 -3
- package/skills/planning/product-intent/SKILL.md +9 -3
- package/skills/planning/tech-spec/SKILL.md +9 -3
- package/skills/registry.yaml +66 -66
- package/skills/research/arxiv-literature/SKILL.md +9 -3
- package/skills/research/experiment-protocol/SKILL.md +10 -3
- package/skills/research/scientific-debugging/SKILL.md +10 -3
- package/skills/research/scientific-debugging/evals.md +2 -2
- package/skills/research/scientific-modernization/SKILL.md +10 -3
- package/skills/skill-marketplace.json +285 -66
- package/skills/workflow/cut-it/SKILL.md +11 -3
- package/skills/workflow/design-council/SKILL.md +12 -3
- package/skills/workflow/grill-me/SKILL.md +9 -3
- package/skills/workflow/workflow-distiller/SKILL.md +9 -3
- package/src/cli/acp.ts +2 -2
- package/src/cli/args.ts +2 -2
- package/src/cli/auth.ts +2 -2
- package/src/cli/bootstrap-generate.ts +6 -6
- package/src/cli/clio.ts +6 -1
- package/src/cli/config-inspect.ts +68 -15
- package/src/cli/configure-interop.ts +1 -1
- package/src/cli/configure.ts +27 -31
- package/src/cli/default-target.ts +1 -1
- package/src/cli/docs.ts +28 -20
- package/src/cli/doctor-naming.ts +323 -0
- package/src/cli/doctor-panes.ts +46 -14
- package/src/cli/doctor-toolchain.ts +31 -10
- package/src/cli/doctor.ts +15 -1
- package/src/cli/eval-inventory.ts +8 -8
- package/src/cli/eval.ts +1 -2
- package/src/cli/evidence-detail.ts +1 -1
- package/src/cli/evidence-inventory.ts +1 -1
- package/src/cli/extensions.ts +2 -1
- package/src/cli/fleet-decisions.ts +1 -1
- package/src/cli/fleet-inspect.ts +1 -1
- package/src/cli/fleet-preflight.ts +1 -1
- package/src/cli/fleet-verify.ts +1 -1
- package/src/cli/fleet-view.ts +40 -23
- package/src/cli/fleet.ts +9 -6
- package/src/cli/index.ts +2 -1
- package/src/cli/internal-dispatch.ts +3 -4
- package/src/cli/interop-inspect.ts +2 -2
- package/src/cli/models.ts +3 -3
- package/src/cli/modes/print.ts +1 -1
- package/src/cli/panes.ts +19 -5
- package/src/cli/reset.ts +1 -1
- package/src/cli/run.ts +13 -17
- package/src/cli/share.ts +6 -2
- package/src/cli/skills-eval.ts +14 -14
- package/src/cli/targets.ts +25 -30
- package/src/cli/trace-inspect.ts +1 -1
- package/src/cli/trace.ts +96 -4
- package/src/cli/uninstall.ts +2 -2
- package/src/cli/upgrade.ts +29 -34
- package/src/cli/usage.ts +2 -2
- package/src/cli/validate-model.ts +1 -1
- package/src/cli/verifiers-inspect.ts +1 -1
- package/src/cli/wiki-generate.ts +6 -6
- package/src/core/artifact-paths.ts +1 -1
- package/src/core/bash-exec.ts +132 -87
- package/src/core/boot-trace.ts +3 -3
- package/src/core/bus-events.ts +51 -6
- package/src/core/bus-trace.ts +2 -2
- package/src/core/compile-cache.ts +1 -1
- package/src/core/config.ts +1066 -886
- package/src/core/defaults.ts +326 -530
- package/src/core/dispatch-outcome.ts +16 -0
- package/src/core/domain-loader.ts +6 -4
- package/src/core/event-bus.ts +1 -1
- package/src/core/file-references.ts +78 -88
- package/src/core/git-commit-attribution.ts +3 -9
- package/src/core/guardrails.ts +33 -52
- package/src/core/naming-compat.ts +45 -0
- package/src/core/naming-events.ts +62 -0
- package/src/core/prompt-hint.ts +9 -0
- package/src/core/recent-models.ts +1 -7
- package/src/core/residency-protection.ts +4 -8
- package/src/core/resolve-config-value.ts +1 -1
- package/src/core/response-model-id.ts +0 -14
- package/src/core/session-routing.ts +84 -74
- package/src/core/skill-activation.ts +18 -0
- package/src/core/termination.ts +4 -4
- package/src/core/timers.ts +2 -12
- package/src/domains/agents/builtins/architect.md +2 -3
- package/src/domains/agents/builtins/coder.md +3 -2
- package/src/domains/agents/builtins/debugger.md +2 -2
- package/src/domains/agents/builtins/documenter.md +2 -2
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/oracle.md +1 -1
- package/src/domains/agents/builtins/provenance.md +1 -1
- package/src/domains/agents/builtins/researcher.md +1 -1
- package/src/domains/agents/builtins/scout.md +1 -1
- package/src/domains/agents/builtins/tester.md +2 -2
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +1 -1
- package/src/domains/agents/catalog.ts +14 -26
- package/src/domains/agents/contract.ts +2 -0
- package/src/domains/agents/extension.ts +26 -4
- package/src/domains/agents/registry.ts +7 -7
- package/src/domains/agents/result-contract.ts +1 -1
- package/src/domains/agents/spec.ts +0 -11
- package/src/domains/config/classify.ts +35 -47
- package/src/domains/config/extension.ts +5 -5
- package/src/domains/config/keybindings.ts +56 -47
- package/src/domains/config/watcher.ts +1 -1
- package/src/domains/context/codewiki/indexer.ts +1 -1
- package/src/domains/context/extension.ts +3 -6
- package/src/domains/context/prompt-context.ts +1 -1
- package/src/domains/context/wiki/assemble.ts +2 -2
- package/src/domains/context/working-set/path-index.ts +1 -0
- package/src/domains/context/working-set/replay/metrics.ts +0 -4
- package/src/domains/context/working-set/replay/report.ts +1 -1
- package/src/domains/context/working-set/replay/synthetic.ts +2 -2
- package/src/domains/dispatch/active-route-planner.ts +2 -2
- package/src/domains/dispatch/agent-candidates.ts +1 -1
- package/src/domains/dispatch/agent-ledger-store.ts +1 -1
- package/src/domains/dispatch/agent-ledger.ts +1 -1
- package/src/domains/dispatch/assignment.ts +5 -5
- package/src/domains/dispatch/capability-match.ts +10 -0
- package/src/domains/dispatch/capacity-lease.ts +2 -5
- package/src/domains/dispatch/code-step.ts +1 -1
- package/src/domains/dispatch/contract.ts +2 -2
- package/src/domains/dispatch/extension.ts +169 -82
- package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
- package/src/domains/dispatch/fleet-preflight.ts +8 -17
- package/src/domains/dispatch/fleet-run.ts +0 -7
- package/src/domains/dispatch/gate-decisions.ts +25 -14
- package/src/domains/dispatch/host-verification.ts +435 -39
- package/src/domains/dispatch/intent-requirements.ts +10 -0
- package/src/domains/dispatch/intent.ts +18 -1
- package/src/domains/dispatch/joint-route-resolver.ts +1 -1
- package/src/domains/dispatch/path-scope.ts +220 -70
- package/src/domains/dispatch/placement.ts +2 -2
- package/src/domains/dispatch/receipt-findings.ts +1 -1
- package/src/domains/dispatch/receipt-integrity.ts +20 -8
- package/src/domains/dispatch/reservation-store.ts +0 -23
- package/src/domains/dispatch/route-decision.ts +1 -1
- package/src/domains/dispatch/route-history.ts +1 -1
- package/src/domains/dispatch/route-policy.ts +1 -1
- package/src/domains/dispatch/route-readiness.ts +0 -28
- package/src/domains/dispatch/run-event-journal.ts +9 -19
- package/src/domains/dispatch/state.ts +2 -3
- package/src/domains/dispatch/tool-stats.ts +1 -1
- package/src/domains/dispatch/transport.ts +47 -40
- package/src/domains/dispatch/types.ts +58 -6
- package/src/domains/dispatch/worker-protocol.ts +2 -2
- package/src/domains/eval/artifacts/store.ts +10 -4
- package/src/domains/eval/compare/thresholds.ts +0 -8
- package/src/domains/eval/execution-provenance.ts +1 -1
- package/src/domains/eval/metrics/token-stream.ts +0 -7
- package/src/domains/eval/report.ts +1 -1
- package/src/domains/eval/runner.ts +1 -1
- package/src/domains/eval/runners/clio-run.ts +7 -6
- package/src/domains/eval/runners/external-command.ts +4 -3
- package/src/domains/eval/schema/artifact.ts +1 -1
- package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
- package/src/domains/eval/schema/behavioral.ts +7 -6
- package/src/domains/eval/schema/execution-envelope.ts +4 -2
- package/src/domains/eval/schema/naming.ts +10 -0
- package/src/domains/eval/schema/suite.ts +2 -2
- package/src/domains/eval/schema/validate.ts +9 -5
- package/src/domains/eval/schema/verdict.ts +4 -2
- package/src/domains/eval/store.ts +20 -3
- package/src/domains/eval/suites/run.ts +12 -6
- package/src/domains/eval/types.ts +1 -1
- package/src/domains/eval/workspaces/git.ts +1 -1
- package/src/domains/eval/workspaces/temp-copy.ts +1 -1
- package/src/domains/evidence/build.ts +13 -5
- package/src/domains/evidence/trust-status.ts +10 -1
- package/src/domains/extensions/contract.ts +15 -1
- package/src/domains/extensions/discovery.ts +238 -41
- package/src/domains/extensions/extension.ts +105 -6
- package/src/domains/extensions/index.ts +24 -0
- package/src/domains/extensions/integrity.ts +189 -0
- package/src/domains/extensions/manager.ts +17 -1
- package/src/domains/extensions/resource-path.ts +27 -0
- package/src/domains/extensions/resources.ts +18 -38
- package/src/domains/extensions/snapshot-store.ts +39 -0
- package/src/domains/extensions/snapshot.ts +180 -0
- package/src/domains/extensions/state.ts +385 -57
- package/src/domains/extensions/types.ts +118 -1
- package/src/domains/interop/consent.ts +7 -7
- package/src/domains/interop/extension.ts +1 -1
- package/src/domains/lifecycle/doctor.ts +27 -21
- package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
- package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
- package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
- package/src/domains/lifecycle/migrations/index.ts +22 -1
- package/src/domains/lifecycle/naming-history.ts +153 -0
- package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
- package/src/domains/lifecycle/naming-resources.ts +276 -0
- package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
- package/src/domains/lifecycle/naming-yazi.ts +86 -0
- package/src/domains/lifecycle/upgrade-notice.ts +1 -1
- package/src/domains/memory/task-memory-handoff.ts +6 -3
- package/src/domains/middleware/contract.ts +26 -0
- package/src/domains/middleware/extension.ts +24 -24
- package/src/domains/middleware/hook-receipts.ts +27 -4
- package/src/domains/middleware/hooks-io.ts +65 -32
- package/src/domains/middleware/hooks.ts +64 -0
- package/src/domains/middleware/index.ts +35 -4
- package/src/domains/middleware/marketplace-offer.ts +339 -0
- package/src/domains/middleware/registrations.ts +326 -0
- package/src/domains/middleware/runtime.ts +30 -2
- package/src/domains/middleware/snapshot.ts +20 -7
- package/src/domains/mux/contract.ts +195 -25
- package/src/domains/mux/detect.ts +23 -6
- package/src/domains/mux/dock-controller.ts +365 -0
- package/src/domains/mux/extension.ts +7 -1
- package/src/domains/mux/index.ts +21 -1
- package/src/domains/mux/operations.ts +72 -5
- package/src/domains/mux/protocol.ts +19 -6
- package/src/domains/mux/socket-client.ts +167 -19
- package/src/domains/mux/types.ts +49 -6
- package/src/domains/mux/yazi/assets/yazi.toml +2 -2
- package/src/domains/mux/yazi/event-stream.ts +6 -4
- package/src/domains/mux/yazi/profile.ts +1 -1
- package/src/domains/mux/yazi/session.ts +79 -7
- package/src/domains/mux/yazi/theme.ts +117 -17
- package/src/domains/observability/contract.ts +10 -11
- package/src/domains/observability/extension.ts +12 -4
- package/src/domains/observability/out-of-turn-usage.ts +2 -2
- package/src/domains/observability/projection.ts +15 -91
- package/src/domains/observability/trace-store.ts +65 -19
- package/src/domains/prompts/compiler.ts +75 -55
- package/src/domains/prompts/contract.ts +15 -3
- package/src/domains/prompts/extension.ts +100 -12
- package/src/domains/prompts/fragments/identity/clio-worker.md +2 -4
- package/src/domains/prompts/fragments/identity/clio.md +6 -12
- package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
- package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
- package/src/domains/prompts/fragments/operating/contract.md +7 -15
- package/src/domains/prompts/fragments/operating/delegation.md +32 -34
- package/src/domains/prompts/fragments/operating/skills.md +11 -18
- package/src/domains/prompts/fragments/operating/worker.md +1 -8
- package/src/domains/providers/extension.ts +5 -5
- package/src/domains/providers/index.ts +1 -1
- package/src/domains/providers/knowledge-base-path.ts +1 -1
- package/src/domains/providers/model-runtime-capabilities.ts +99 -23
- package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
- package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +671 -106
- package/src/domains/providers/plugins.ts +1 -1
- package/src/domains/providers/resolver.ts +1 -1
- package/src/domains/providers/runtime-resolution.ts +31 -0
- package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
- package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
- package/src/domains/providers/runtimes/common/probe-helpers.ts +9 -4
- package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
- package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
- package/src/domains/providers/types/cost-provenance.ts +19 -0
- package/src/domains/providers/types/knowledge-base.ts +13 -0
- package/src/domains/providers/types/local-model-quirks.ts +87 -39
- package/src/domains/providers/types/target-descriptor.ts +3 -3
- package/src/domains/resources/extension.ts +1 -1
- package/src/domains/resources/library.ts +6 -6
- package/src/domains/resources/prompts/loader.ts +1 -1
- package/src/domains/resources/skills/content-hash.ts +7 -6
- package/src/domains/resources/skills/evals.ts +1 -1
- package/src/domains/resources/skills/install.ts +36 -12
- package/src/domains/resources/skills/loader.ts +41 -18
- package/src/domains/resources/skills/marketplace.ts +21 -2
- package/src/domains/resources/skills/promotion.ts +214 -0
- package/src/domains/safety/audit.ts +2 -2
- package/src/domains/safety/call-target.ts +1 -1
- package/src/domains/safety/finish-contract.ts +2 -1
- package/src/domains/safety/loop-detector.ts +7 -4
- package/src/domains/safety/run-effects.ts +1 -1
- package/src/domains/scheduling/extension.ts +4 -4
- package/src/domains/session/archive-readers.ts +9 -1
- package/src/domains/session/compaction/branch-summary.ts +4 -0
- package/src/domains/session/compaction/compact.ts +1 -1
- package/src/domains/session/compaction/tokens.ts +4 -0
- package/src/domains/session/context-accounting.ts +1 -1
- package/src/domains/session/decision-board.ts +1 -1
- package/src/domains/session/extension.ts +1 -1
- package/src/domains/session/handoff.ts +2 -2
- package/src/domains/session/prompt-manifest.ts +0 -5
- package/src/domains/session/protected-artifact-journal.ts +12 -6
- package/src/domains/session/retry.ts +1 -1
- package/src/domains/session/task-board.ts +10 -9
- package/src/domains/share/archive.ts +249 -43
- package/src/domains/toolchain/install.ts +1 -1
- package/src/engine/acp/adapter.ts +3 -3
- package/src/engine/acp/event-mapper.ts +3 -3
- package/src/engine/acp/server.ts +89 -35
- package/src/engine/acp/tool-mediator.ts +2 -2
- package/src/engine/acp/types.ts +1 -1
- package/src/engine/alcf-oauth.ts +5 -5
- package/src/engine/antigravity/subprocess-runtime.ts +2 -2
- package/src/engine/api-registry.ts +1 -1
- package/src/engine/apis/llamacpp-residency.ts +4 -23
- package/src/engine/apis/lmstudio.ts +4 -9
- package/src/engine/apis/ollama-native.ts +9 -9
- package/src/engine/apis/openai-completions.ts +30 -27
- package/src/engine/apis/output-budget.ts +8 -18
- package/src/engine/apis/residency.ts +10 -35
- package/src/engine/claude/sdk-module.ts +1 -12
- package/src/engine/claude/sdk-runtime.ts +6 -6
- package/src/engine/claude/subprocess-runtime.ts +1 -1
- package/src/engine/claude/tool-safety.ts +4 -4
- package/src/engine/gemma-channel-filter.ts +19 -0
- package/src/engine/loop-guard.ts +92 -17
- package/src/engine/session.ts +14 -7
- package/src/engine/tui-primitives.ts +1 -1
- package/src/engine/worker-events.ts +6 -6
- package/src/engine/worker-runtime.ts +54 -24
- package/src/engine/worker-tools.ts +3 -1
- package/src/entry/extension-hook-sources.ts +28 -0
- package/src/entry/extension-reload.ts +309 -0
- package/src/entry/orchestrator.ts +163 -120
- package/src/interactive/application-controller.ts +23 -22
- package/src/interactive/bus-notices.ts +10 -3
- package/src/interactive/chat-loop-messages.ts +3 -13
- package/src/interactive/chat-loop.ts +18 -9
- package/src/interactive/chat-panel.ts +37 -14
- package/src/interactive/chat-renderer.ts +71 -7
- package/src/interactive/clio-editor.ts +105 -1
- package/src/interactive/context-activity.ts +8 -6
- package/src/interactive/context-meter.ts +3 -6
- package/src/interactive/context-overlay.ts +1 -1
- package/src/interactive/cost-overlay.ts +1 -1
- package/src/interactive/council-grid.ts +2 -2
- package/src/interactive/dispatch-board.ts +36 -44
- package/src/interactive/editor-bash.ts +21 -0
- package/src/interactive/editor-steer.ts +9 -4
- package/src/interactive/editor-submit.ts +24 -18
- package/src/interactive/external-editor.ts +1 -1
- package/src/interactive/file-reference-completion.ts +360 -0
- package/src/interactive/footer/dashboard.ts +15 -17
- package/src/interactive/footer/notifications.ts +14 -8
- package/src/interactive/footer/widgets.ts +15 -44
- package/src/interactive/interactive-application.ts +116 -61
- package/src/interactive/interactive-event-projection.ts +1 -1
- package/src/interactive/interactive-input-runtime.ts +6 -2
- package/src/interactive/interactive-presentation.ts +22 -17
- package/src/interactive/interactive-shell.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +65 -17
- package/src/interactive/interactive-subscriptions.ts +1 -1
- package/src/interactive/interactive-tickers.ts +1 -1
- package/src/interactive/keybinding-manager.ts +4 -4
- package/src/interactive/layout.ts +1 -1
- package/src/interactive/memory-overlay.ts +2 -2
- package/src/interactive/modal-marker.ts +2 -21
- package/src/interactive/mutation-preview.ts +1 -1
- package/src/interactive/overlay-frame.ts +4 -12
- package/src/interactive/overlay-general-openers.ts +6 -2
- package/src/interactive/overlay-key-routing.ts +7 -7
- package/src/interactive/overlay-lifecycle.ts +1 -1
- package/src/interactive/overlay-model-selectors.ts +3 -3
- package/src/interactive/overlays/agents.ts +2 -2
- package/src/interactive/overlays/ask-user.ts +25 -11
- package/src/interactive/overlays/context-reset.ts +28 -4
- package/src/interactive/overlays/cwd-fallback.ts +28 -4
- package/src/interactive/overlays/decisions.ts +4 -2
- package/src/interactive/overlays/extensions.ts +9 -1
- package/src/interactive/overlays/fleet-run-approval.ts +3 -3
- package/src/interactive/overlays/handoff-review.ts +2 -2
- package/src/interactive/overlays/help-reference.ts +13 -0
- package/src/interactive/overlays/interop.ts +1 -1
- package/src/interactive/overlays/library-install-confirm.ts +1 -1
- package/src/interactive/overlays/message-picker.ts +1 -1
- package/src/interactive/overlays/model-selector.ts +39 -31
- package/src/interactive/overlays/prompts.ts +10 -4
- package/src/interactive/overlays/session-selector.ts +2 -2
- package/src/interactive/overlays/settings.ts +360 -303
- package/src/interactive/overlays/side-question.ts +2 -2
- package/src/interactive/overlays/skills-hub.ts +8 -8
- package/src/interactive/overlays/tree-selector.ts +2 -2
- package/src/interactive/panes-runtime.ts +145 -43
- package/src/interactive/permission-overlay.ts +2 -2
- package/src/interactive/prompt-cache-identity.ts +88 -0
- package/src/interactive/renderers/retry-status.ts +12 -4
- package/src/interactive/renderers/tool-execution.ts +4 -4
- package/src/interactive/session-transcript.ts +3 -3
- package/src/interactive/slash-autocomplete.ts +454 -165
- package/src/interactive/slash-commands.ts +401 -190
- package/src/interactive/slash-spec.ts +160 -17
- package/src/interactive/status/controller.ts +2 -2
- package/src/interactive/stream-pacing-policy.ts +1 -24
- package/src/interactive/tasks-overlay.ts +20 -13
- package/src/interactive/terminal-lease.ts +6 -7
- package/src/interactive/turn-context.ts +41 -26
- package/src/interactive/turn-persistence.ts +2 -2
- package/src/interactive/turn-prewarm.ts +2 -2
- package/src/interactive/turn-runtime.ts +8 -8
- package/src/interactive/turn-state.ts +1 -1
- package/src/interactive/view/artifacts.ts +12 -9
- package/src/interactive/view/view-overlay.ts +13 -10
- package/src/interactive/watch-pane.ts +38 -10
- package/src/interactive/welcome-dashboard.ts +15 -15
- package/src/interactive/worker-progress.ts +4 -4
- package/src/interactive/worker-receipts.ts +1 -1
- package/src/interactive/worker-stream.ts +1 -4
- package/src/interactive/yazi-bridge.ts +72 -11
- package/src/tools/agent-tools.ts +30 -1
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +6 -6
- package/src/tools/bash.ts +2 -2
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +52 -22
- package/src/tools/codewiki/code-nav-surface.ts +6 -0
- package/src/tools/codewiki/code-nav.ts +99 -13
- package/src/tools/compete-worktrees.ts +27 -17
- package/src/tools/context/docs-engine.ts +20 -7
- package/src/tools/context/index.ts +44 -13
- package/src/tools/core-bootstrap.ts +28 -6
- package/src/tools/credential-present.ts +1 -2
- package/src/tools/dispatch-admission.ts +4 -2
- package/src/tools/dispatch-arguments.ts +6 -2
- package/src/tools/dispatch-plan.ts +48 -15
- package/src/tools/dispatch-run-events.ts +13 -11
- package/src/tools/dispatch-runner.ts +11 -6
- package/src/tools/dispatch-schema.ts +338 -0
- package/src/tools/dispatch-types.ts +3 -0
- package/src/tools/dispatch.ts +9 -254
- package/src/tools/find.ts +1 -6
- package/src/tools/ledger.ts +3 -5
- package/src/tools/monitor-surface.ts +5 -13
- package/src/tools/monitor.ts +4 -4
- package/src/tools/observation.ts +4 -5
- package/src/tools/observers.ts +0 -33
- package/src/tools/panes-surface.ts +4 -11
- package/src/tools/panes.ts +4 -2
- package/src/tools/policy.ts +15 -2
- package/src/tools/read.ts +5 -6
- package/src/tools/registry.ts +30 -7
- package/src/tools/result-shaping.ts +18 -14
- package/src/tools/steer-surface.ts +1 -1
- package/src/tools/task-worktree.ts +28 -7
- package/src/tools/tasks.ts +1 -1
- package/src/tools/truncate.ts +6 -5
- package/src/tools/verify/authoring.ts +3 -6
- package/src/tools/verify/frontend.ts +1 -1
- package/src/tools/verify/surface.ts +6 -12
- package/src/tools/web-fetch-surface.ts +1 -3
- package/src/tools/web-fetch.ts +1 -1
- package/src/worker/entry.ts +4 -3
- package/src/worker/protocol.ts +16 -14
- package/src/worker/spec-contract.ts +2 -2
- package/src/worker/stdin-demux.ts +2 -2
- package/dist/chunk-36EJLSQQ.js +0 -814
- package/dist/chunk-GXNLGKAB.js +0 -571
- package/dist/chunk-K7VKOLQQ.js +0 -15
- package/dist/chunk-PMZCIOCJ.js +0 -25
- package/dist/chunk-SUCTJL45.js +0 -45
- package/dist/chunk-SUW5DORT.js +0 -819
- package/dist/chunk-TZ3SGWZZ.js +0 -48
- package/dist/chunk-UOV2BYIW.js +0 -107
- package/dist/chunk-VFA6GDY5.js +0 -1625
- package/dist/doctor-QOA5FNY5.js +0 -313
- package/dist/fleet-view-ZCON35AG.js +0 -102
- package/dist/panes-HMABYVO4.js +0 -58
- package/docs/artifact-versions.md +0 -67
- package/docs/documentation-coverage.md +0 -46
- package/docs/documentation-guide.md +0 -167
- package/docs/release-cut-checklist.md +0 -193
- package/docs/time-conventions.md +0 -101
- package/skills/meta/clio-test/SKILL.md +0 -133
- package/skills/meta/clio-test/references/harness.md +0 -126
- package/skills/meta/clio-test/references/test-map.md +0 -69
- package/src/engine/apis/degraded-inference.ts +0 -95
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: grill-me
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: Stress-tests a plan, design, or idea through a phased one-question-at-a-time interview before code is written, ending in a compact decision log. Not for a multi-perspective debate; use design-council.
|
|
4
|
+
triggers:
|
|
5
|
+
- grill me
|
|
6
|
+
- interview me about this plan
|
|
7
|
+
- stress-test this design
|
|
8
|
+
- poke holes in this idea
|
|
9
|
+
- clarify this plan one question at a time
|
|
10
|
+
version: 0.4.0
|
|
5
11
|
license: Apache-2.0
|
|
6
12
|
allowed-tools:
|
|
7
13
|
- read
|
|
@@ -12,7 +18,7 @@ allowed-tools:
|
|
|
12
18
|
- context
|
|
13
19
|
- code_nav
|
|
14
20
|
- ask_user
|
|
15
|
-
clio:
|
|
21
|
+
clio-coder:
|
|
16
22
|
registry-id: iowarp/clio-coder
|
|
17
23
|
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/workflow/grill-me
|
|
18
24
|
audit: pass
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflow-distiller
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: "Packages a workflow that just happened into a reusable SKILL.md: reconstructs it from the session record, checks overlap with installed skills, gates on approval, then writes it following skill-craft. Not for authoring a skill with no prior workflow; use skill-craft."
|
|
4
|
+
triggers:
|
|
5
|
+
- make this workflow a skill
|
|
6
|
+
- package what we just did
|
|
7
|
+
- turn this into a reusable workflow
|
|
8
|
+
- distill this repeated process
|
|
9
|
+
- create a skill from this session
|
|
10
|
+
version: 0.3.0
|
|
5
11
|
license: Apache-2.0
|
|
6
12
|
allowed-tools:
|
|
7
13
|
- read
|
|
@@ -13,7 +19,7 @@ allowed-tools:
|
|
|
13
19
|
- ask_user
|
|
14
20
|
requires:
|
|
15
21
|
- skill:skill-craft
|
|
16
|
-
clio:
|
|
22
|
+
clio-coder:
|
|
17
23
|
registry-id: iowarp/clio-coder
|
|
18
24
|
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/workflow/workflow-distiller
|
|
19
25
|
audit: pass
|
package/src/cli/acp.ts
CHANGED
|
@@ -58,7 +58,7 @@ function parseAcpFlags(args: ReadonlyArray<string>): AcpFlags | string {
|
|
|
58
58
|
* Throws when the path cannot be resolved, which the caller reports as an
|
|
59
59
|
* unusable `--cwd`.
|
|
60
60
|
*/
|
|
61
|
-
|
|
61
|
+
function resolveAcpCwd(value: string): string {
|
|
62
62
|
return realpathSync(path.resolve(value));
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -107,7 +107,7 @@ export async function runAcpCommand(
|
|
|
107
107
|
transportOptions: {
|
|
108
108
|
write: writeRawStdout,
|
|
109
109
|
diagnostics: (line) => {
|
|
110
|
-
process.stderr.write(`[clio:acp] ${line}\n`);
|
|
110
|
+
process.stderr.write(`[clio-coder:acp] ${line}\n`);
|
|
111
111
|
},
|
|
112
112
|
},
|
|
113
113
|
...(flags.permissionTimeoutMs === undefined ? {} : { permissionTimeoutMs: flags.permissionTimeoutMs }),
|
package/src/cli/args.ts
CHANGED
|
@@ -166,12 +166,12 @@ export function parseRunCliArgs(argv: ReadonlyArray<string>): RunCliArgs {
|
|
|
166
166
|
if (value !== null) parsed.agentId = value;
|
|
167
167
|
continue;
|
|
168
168
|
}
|
|
169
|
-
if (arg === "--agent-profile"
|
|
169
|
+
if (arg === "--agent-profile") {
|
|
170
170
|
const value = need(arg);
|
|
171
171
|
if (value !== null) parsed.agentProfile = value;
|
|
172
172
|
continue;
|
|
173
173
|
}
|
|
174
|
-
if (arg === "--agent-runtime"
|
|
174
|
+
if (arg === "--agent-runtime") {
|
|
175
175
|
const value = need(arg);
|
|
176
176
|
if (value !== null) parsed.agentRuntime = value;
|
|
177
177
|
continue;
|
package/src/cli/auth.ts
CHANGED
|
@@ -104,8 +104,8 @@ function renderStatusRows(rows: ReadonlyArray<ConnectableProviderRow>): string {
|
|
|
104
104
|
|
|
105
105
|
function defaultAuthTarget(rows: ReadonlyArray<ConnectableProviderRow>): string | undefined {
|
|
106
106
|
const settings = readSettings();
|
|
107
|
-
const activeTarget = settings.
|
|
108
|
-
? settings.targets.find((entry) => entry.id === settings.
|
|
107
|
+
const activeTarget = settings.chat.target
|
|
108
|
+
? settings.targets.find((entry) => entry.id === settings.chat.target)
|
|
109
109
|
: undefined;
|
|
110
110
|
if (activeTarget && rows.some((row) => row.entry.runtimeId === activeTarget.runtime)) {
|
|
111
111
|
return activeTarget.runtime;
|
|
@@ -79,9 +79,9 @@ export interface BootstrapRoute {
|
|
|
79
79
|
*/
|
|
80
80
|
export function resolveBootstrapRoute(settings: Readonly<ClioSettings>): BootstrapRoute {
|
|
81
81
|
for (const agentId of [CONTEXT_BOOTSTRAP_AGENT_ID, "scout"]) {
|
|
82
|
-
const profileName = settings.
|
|
82
|
+
const profileName = settings.fleet.agentProfiles[agentId];
|
|
83
83
|
if (!profileName) continue;
|
|
84
|
-
const profile = settings.
|
|
84
|
+
const profile = settings.fleet.profiles[profileName];
|
|
85
85
|
if (!profile) throw new Error(`bootstrap profile '${profileName}' is not configured (bound to '${agentId}')`);
|
|
86
86
|
if (!profile.target) throw new Error(`bootstrap profile '${profileName}' has no target (bound to '${agentId}')`);
|
|
87
87
|
return {
|
|
@@ -90,7 +90,7 @@ export function resolveBootstrapRoute(settings: Readonly<ClioSettings>): Bootstr
|
|
|
90
90
|
...(profile.thinkingLevel ? { thinkingLevel: profile.thinkingLevel } : {}),
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
-
const fallback = settings.
|
|
93
|
+
const fallback = settings.fleet.default;
|
|
94
94
|
if (!fallback?.target) {
|
|
95
95
|
throw new Error(
|
|
96
96
|
`bootstrap has no route: workers.agentBindings.${CONTEXT_BOOTSTRAP_AGENT_ID} is unbound and ` +
|
|
@@ -233,7 +233,7 @@ async function collectDispatchAssistantText(
|
|
|
233
233
|
message: "bootstrap agent started repository exploration",
|
|
234
234
|
});
|
|
235
235
|
}
|
|
236
|
-
if (isRecord(event) && event.type === "
|
|
236
|
+
if (isRecord(event) && event.type === "clio_coder_tool_start") {
|
|
237
237
|
const tool = toolNameFromEvent(event);
|
|
238
238
|
if (tool) {
|
|
239
239
|
input.progress?.({
|
|
@@ -244,7 +244,7 @@ async function collectDispatchAssistantText(
|
|
|
244
244
|
});
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
|
-
if (isRecord(event) && event.type === "
|
|
247
|
+
if (isRecord(event) && event.type === "clio_coder_tool_finish") {
|
|
248
248
|
const tool = toolNameFromEvent(event);
|
|
249
249
|
const outcome = toolOutcomeFromEvent(event) ?? "done";
|
|
250
250
|
if (tool) {
|
|
@@ -325,7 +325,7 @@ async function attemptBootstrapDispatch(
|
|
|
325
325
|
// and returned zero bytes at 29s. The wiki documenter in this same directory
|
|
326
326
|
// budgets minutes for the same shape of work. `internalDispatchTimeoutMs` is
|
|
327
327
|
// the operator's knob for slow targets; nothing here knows better than it does.
|
|
328
|
-
const deadline = armInternalDispatchDeadline(dispatch, handle.runId, "context bootstrap"
|
|
328
|
+
const deadline = armInternalDispatchDeadline(dispatch, handle.runId, "context bootstrap");
|
|
329
329
|
let text = "";
|
|
330
330
|
let receipt: RunReceipt | undefined;
|
|
331
331
|
let parserAttempted = false;
|
package/src/cli/clio.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { classifyDefaultTarget, describeVerdict } from "./default-target.js";
|
|
|
6
6
|
|
|
7
7
|
/** Headless and ACP keep their established non-TUI transports even when an
|
|
8
8
|
* embedding process leaves the interactive marker in the environment. */
|
|
9
|
-
|
|
9
|
+
function terminalLeaseEligible(
|
|
10
10
|
options: Pick<BootOptions, "headless" | "acp">,
|
|
11
11
|
env: Readonly<Record<string, string | undefined>> = process.env,
|
|
12
12
|
): boolean {
|
|
@@ -44,6 +44,11 @@ export async function runClioCommand(options: BootOptions = {}): Promise<number>
|
|
|
44
44
|
const configured = await runConfigureCommand([]);
|
|
45
45
|
if (configured !== 0) return configured;
|
|
46
46
|
startupSettings = readStrictLayeredSettings(process.cwd()).settings;
|
|
47
|
+
const configuredVerdict = classifyDefaultTarget(startupSettings);
|
|
48
|
+
if (configuredVerdict.kind !== "usable" && configuredVerdict.kind !== "missing-credential") {
|
|
49
|
+
process.stderr.write(`${describeVerdict(configuredVerdict)} Configuration did not complete; startup cancelled.\n`);
|
|
50
|
+
return 2;
|
|
51
|
+
}
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
let terminalLease: import("../interactive/terminal-lease.js").TerminalLease | undefined;
|
|
@@ -16,7 +16,7 @@ import { basename, join } from "node:path";
|
|
|
16
16
|
import type { ClioSettings } from "../core/config.js";
|
|
17
17
|
import { resolvePackageRoot } from "../core/package-root.js";
|
|
18
18
|
import { readLayeredSettings, type SettingsOrigin, settingsSourceFor } from "../core/settings-layers.js";
|
|
19
|
-
import { clioDataDir } from "../core/xdg.js";
|
|
19
|
+
import { clioDataDir, clioStateDir } from "../core/xdg.js";
|
|
20
20
|
import {
|
|
21
21
|
loadOperatorProfile,
|
|
22
22
|
loadProjectClioMd,
|
|
@@ -24,12 +24,18 @@ import {
|
|
|
24
24
|
renderOperatorProfile,
|
|
25
25
|
renderPromptContext,
|
|
26
26
|
} from "../domains/context/index.js";
|
|
27
|
-
import { listInstalledExtensions } from "../domains/extensions/index.js";
|
|
27
|
+
import { extensionSnapshotFor, listInstalledExtensions } from "../domains/extensions/index.js";
|
|
28
28
|
import { loadMemoryRecordsSync, memoryStorePath } from "../domains/memory/index.js";
|
|
29
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
HOOK_RECEIPT_LOG_CAPACITY,
|
|
31
|
+
loadUserHooks,
|
|
32
|
+
readHookSources,
|
|
33
|
+
readPersistedHookReceipts,
|
|
34
|
+
} from "../domains/middleware/index.js";
|
|
30
35
|
import { classifyProjectPreload } from "../domains/prompts/preload.js";
|
|
31
36
|
import { defaultScopedResourceRoots } from "../domains/resources/common-loader.js";
|
|
32
37
|
import { ceilChars } from "../domains/session/context-accounting.js";
|
|
38
|
+
import { capturedHookSourcesFor } from "../entry/extension-hook-sources.js";
|
|
33
39
|
|
|
34
40
|
export type CustomizationCategory =
|
|
35
41
|
| "settings"
|
|
@@ -45,7 +51,8 @@ export type CustomizationCategory =
|
|
|
45
51
|
| "safety"
|
|
46
52
|
| "memory";
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
/** `reload` means an explicit `/resources extensions reload` (or a restart) publishes the change. */
|
|
55
|
+
export type ReloadClass = "hot" | "next-turn" | "reload" | "restart" | "n/a";
|
|
49
56
|
|
|
50
57
|
export interface CustomizationEntry {
|
|
51
58
|
category: CustomizationCategory;
|
|
@@ -203,10 +210,13 @@ function inspectOperatorProfile(cwd: string, graph: CustomizationGraph): void {
|
|
|
203
210
|
|
|
204
211
|
function inspectHooks(cwd: string, graph: CustomizationGraph): void {
|
|
205
212
|
try {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const { batches, fileIssues } = readHookSources({
|
|
213
|
+
// Extension declarations come from the same captured bytes a booted
|
|
214
|
+
// session admits; an inspecting process without a bound store builds an
|
|
215
|
+
// ephemeral generation-0 projection.
|
|
216
|
+
const { batches, fileIssues } = readHookSources({
|
|
217
|
+
cwd,
|
|
218
|
+
capturedSources: capturedHookSourcesFor(extensionSnapshotFor(cwd)),
|
|
219
|
+
});
|
|
210
220
|
for (const issue of fileIssues) graph.issues.push(`hook ${issue.source.origin}: ${issue.message}`);
|
|
211
221
|
const loaded = loadUserHooks(batches, { workspaceRoot: cwd });
|
|
212
222
|
for (const issue of loaded.issues) {
|
|
@@ -221,7 +231,7 @@ function inspectHooks(cwd: string, graph: CustomizationGraph): void {
|
|
|
221
231
|
hash: hook.hash,
|
|
222
232
|
trust: hook.source.origin === "extension" ? "untrusted" : "trusted",
|
|
223
233
|
precedence: "winner",
|
|
224
|
-
reloadClass: "
|
|
234
|
+
reloadClass: "reload",
|
|
225
235
|
detail: { on: hook.on, kind: hook.spec.kind, enabled: hook.enabled, ...(hook.tools ? { tools: hook.tools } : {}) },
|
|
226
236
|
});
|
|
227
237
|
}
|
|
@@ -234,7 +244,7 @@ function inspectHooks(cwd: string, graph: CustomizationGraph): void {
|
|
|
234
244
|
hash: loser.hash,
|
|
235
245
|
trust: loser.source.origin === "extension" ? "untrusted" : "trusted",
|
|
236
246
|
precedence: "loser",
|
|
237
|
-
reloadClass: "
|
|
247
|
+
reloadClass: "reload",
|
|
238
248
|
detail: { on: loser.on, kind: loser.spec.kind },
|
|
239
249
|
});
|
|
240
250
|
}
|
|
@@ -243,6 +253,42 @@ function inspectHooks(cwd: string, graph: CustomizationGraph): void {
|
|
|
243
253
|
}
|
|
244
254
|
}
|
|
245
255
|
|
|
256
|
+
/**
|
|
257
|
+
* Rolls up the durable hook-execution receipt log (`<stateDir>/hook-receipts.json`,
|
|
258
|
+
* written by `createHookReceiptLog` in `src/domains/middleware/hook-receipts.ts`)
|
|
259
|
+
* into one entry, since this process never held the live in-memory ring a
|
|
260
|
+
* running session's own invocation writes through. One entry rather than one
|
|
261
|
+
* per receipt: this graph explains configuration provenance, and a couple
|
|
262
|
+
* hundred execution rows would swamp that rather than answer it.
|
|
263
|
+
*/
|
|
264
|
+
function inspectHookReceipts(graph: CustomizationGraph): void {
|
|
265
|
+
const path = join(clioStateDir(), "hook-receipts.json");
|
|
266
|
+
try {
|
|
267
|
+
const receipts = existsSync(path) ? readPersistedHookReceipts(path) : [];
|
|
268
|
+
const outcomes: Record<string, number> = {};
|
|
269
|
+
for (const receipt of receipts) outcomes[receipt.outcome] = (outcomes[receipt.outcome] ?? 0) + 1;
|
|
270
|
+
const last = receipts.at(-1);
|
|
271
|
+
graph.entries.push({
|
|
272
|
+
category: "hook",
|
|
273
|
+
id: "hook-receipts",
|
|
274
|
+
scope: "user",
|
|
275
|
+
sourcePath: path,
|
|
276
|
+
reloadClass: "n/a",
|
|
277
|
+
trust: "n/a",
|
|
278
|
+
precedence: "single",
|
|
279
|
+
detail: {
|
|
280
|
+
present: existsSync(path),
|
|
281
|
+
count: receipts.length,
|
|
282
|
+
capacity: HOOK_RECEIPT_LOG_CAPACITY,
|
|
283
|
+
outcomes,
|
|
284
|
+
...(last === undefined ? {} : { mostRecent: { at: last.at, hookId: last.hookId, outcome: last.outcome } }),
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
} catch (err) {
|
|
288
|
+
graph.issues.push(`hook-receipts: ${err instanceof Error ? err.message : String(err)}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
246
292
|
function inspectExtensions(cwd: string, graph: CustomizationGraph): void {
|
|
247
293
|
try {
|
|
248
294
|
for (const ext of listInstalledExtensions(cwd, { all: true })) {
|
|
@@ -254,8 +300,14 @@ function inspectExtensions(cwd: string, graph: CustomizationGraph): void {
|
|
|
254
300
|
hash: shortHash(`${ext.id}@${ext.version}`),
|
|
255
301
|
trust: "untrusted",
|
|
256
302
|
precedence: ext.effective ? "winner" : "loser",
|
|
257
|
-
reloadClass: "
|
|
258
|
-
detail: {
|
|
303
|
+
reloadClass: "reload",
|
|
304
|
+
detail: {
|
|
305
|
+
version: ext.version,
|
|
306
|
+
enabled: ext.enabled,
|
|
307
|
+
valid: ext.valid,
|
|
308
|
+
effective: ext.effective,
|
|
309
|
+
loadable: ext.loadable,
|
|
310
|
+
},
|
|
259
311
|
});
|
|
260
312
|
}
|
|
261
313
|
} catch (err) {
|
|
@@ -317,12 +369,12 @@ function inspectSafetyAndMemory(cwd: string, graph: CustomizationGraph): void {
|
|
|
317
369
|
const layered = readLayeredSettings(cwd);
|
|
318
370
|
graph.entries.push({
|
|
319
371
|
category: "safety",
|
|
320
|
-
id: "autonomy",
|
|
321
|
-
scope: settingsSourceFor(layered.sources, "autonomy"),
|
|
372
|
+
id: "safety.autonomy",
|
|
373
|
+
scope: settingsSourceFor(layered.sources, "safety.autonomy"),
|
|
322
374
|
reloadClass: "hot",
|
|
323
375
|
trust: "n/a",
|
|
324
376
|
precedence: "single",
|
|
325
|
-
detail: { autonomy: layered.settings.autonomy ?? "auto-edit" },
|
|
377
|
+
detail: { autonomy: layered.settings.safety.autonomy ?? "auto-edit" },
|
|
326
378
|
});
|
|
327
379
|
} catch (err) {
|
|
328
380
|
graph.issues.push(`safety: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -356,6 +408,7 @@ export function buildCustomizationGraph(cwd: string): CustomizationGraph {
|
|
|
356
408
|
inspectRules(cwd, graph);
|
|
357
409
|
inspectOperatorProfile(cwd, graph);
|
|
358
410
|
inspectHooks(cwd, graph);
|
|
411
|
+
inspectHookReceipts(graph);
|
|
359
412
|
inspectExtensions(cwd, graph);
|
|
360
413
|
inspectResourceRoots(cwd, graph);
|
|
361
414
|
inspectSafetyAndMemory(cwd, graph);
|
|
@@ -22,7 +22,7 @@ function describe(proposal: InteropProposal): string {
|
|
|
22
22
|
renderProposalEntry(proposal),
|
|
23
23
|
"",
|
|
24
24
|
`projectContext stays ${INHERITED_PROJECT_CONTEXT}: this agent receives your task text, never the project projection.`,
|
|
25
|
-
`toolGovernance is clio-policy: its tool calls are gated by Clio safety.`,
|
|
25
|
+
`toolGovernance is clio-coder-policy: its tool calls are gated by Clio safety.`,
|
|
26
26
|
];
|
|
27
27
|
if (proposal.needsNetworkInstall) {
|
|
28
28
|
lines.push(`The ACP adapter is not installed locally; npx fetches it the first time you delegate.`);
|
package/src/cli/configure.ts
CHANGED
|
@@ -80,7 +80,7 @@ Non-interactive flags:
|
|
|
80
80
|
--force save a model outside the runtime catalog, or one the
|
|
81
81
|
target does not advertise, without refusing
|
|
82
82
|
--gateway mark the target as a gateway
|
|
83
|
-
--lifecycle <user-managed|clio-managed>
|
|
83
|
+
--lifecycle <user-managed|clio-coder-managed>
|
|
84
84
|
resident model lifecycle policy
|
|
85
85
|
--set-orchestrator use this target for chat
|
|
86
86
|
--set-background use this target for proactive task memory
|
|
@@ -200,15 +200,12 @@ function parseSetupArgs(argv: ReadonlyArray<string>): ParsedArgs {
|
|
|
200
200
|
out.backgroundModel = need();
|
|
201
201
|
break;
|
|
202
202
|
case "--fleet-model":
|
|
203
|
-
case "--worker-model":
|
|
204
203
|
out.workerModel = need();
|
|
205
204
|
break;
|
|
206
205
|
case "--agent-profile":
|
|
207
|
-
case "--worker-profile":
|
|
208
206
|
out.workerProfile = need();
|
|
209
207
|
break;
|
|
210
208
|
case "--agent-profile-model":
|
|
211
|
-
case "--worker-profile-model":
|
|
212
209
|
out.workerProfileModel = need();
|
|
213
210
|
break;
|
|
214
211
|
case "--api-key-env":
|
|
@@ -225,8 +222,8 @@ function parseSetupArgs(argv: ReadonlyArray<string>): ParsedArgs {
|
|
|
225
222
|
break;
|
|
226
223
|
case "--lifecycle": {
|
|
227
224
|
const v = need();
|
|
228
|
-
if (v !== "user-managed" && v !== "clio-managed") {
|
|
229
|
-
throw new Error("--lifecycle must be user-managed or clio-managed");
|
|
225
|
+
if (v !== "user-managed" && v !== "clio-coder-managed") {
|
|
226
|
+
throw new Error("--lifecycle must be user-managed or clio-coder-managed");
|
|
230
227
|
}
|
|
231
228
|
out.lifecycle = v;
|
|
232
229
|
break;
|
|
@@ -238,7 +235,6 @@ function parseSetupArgs(argv: ReadonlyArray<string>): ParsedArgs {
|
|
|
238
235
|
out.setBackground = true;
|
|
239
236
|
break;
|
|
240
237
|
case "--set-fleet-default":
|
|
241
|
-
case "--set-worker-default":
|
|
242
238
|
out.setWorkerDefault = true;
|
|
243
239
|
break;
|
|
244
240
|
case "--context-window": {
|
|
@@ -485,13 +481,13 @@ function setOrchestratorPointer(settings: ClioSettings, descriptor: TargetDescri
|
|
|
485
481
|
`cannot use target '${descriptor.id}' as orchestrator target because runtime '${runtime.id}' is not an HTTP/native runtime`,
|
|
486
482
|
);
|
|
487
483
|
}
|
|
488
|
-
settings.
|
|
489
|
-
settings.
|
|
484
|
+
settings.chat.target = descriptor.id;
|
|
485
|
+
settings.chat.model = model ?? descriptor.defaultModel ?? null;
|
|
490
486
|
}
|
|
491
487
|
|
|
492
488
|
function setWorkerDefaultPointer(settings: ClioSettings, descriptor: TargetDescriptor, model?: string | null): void {
|
|
493
|
-
settings.
|
|
494
|
-
settings.
|
|
489
|
+
settings.fleet.default.target = descriptor.id;
|
|
490
|
+
settings.fleet.default.model = model ?? descriptor.defaultModel ?? null;
|
|
495
491
|
}
|
|
496
492
|
|
|
497
493
|
function setBackgroundPointer(settings: ClioSettings, descriptor: TargetDescriptor, model?: string | null): void {
|
|
@@ -501,13 +497,13 @@ function setBackgroundPointer(settings: ClioSettings, descriptor: TargetDescript
|
|
|
501
497
|
`cannot use target '${descriptor.id}' as background target because runtime '${descriptor.runtime}' is not an HTTP/native runtime`,
|
|
502
498
|
);
|
|
503
499
|
}
|
|
504
|
-
settings.
|
|
505
|
-
settings.
|
|
500
|
+
settings.context.memory.target = descriptor.id;
|
|
501
|
+
settings.context.memory.model = model ?? descriptor.defaultModel ?? null;
|
|
506
502
|
}
|
|
507
503
|
|
|
508
504
|
function assertOrchestratorReplacementEligible(settings: ClioSettings, descriptor: TargetDescriptor): void {
|
|
509
|
-
if (settings.
|
|
510
|
-
const role = settings.
|
|
505
|
+
if (settings.chat.target !== descriptor.id && settings.context.memory.target !== descriptor.id) return;
|
|
506
|
+
const role = settings.chat.target === descriptor.id ? "orchestrator" : "background";
|
|
511
507
|
const runtime = getRuntimeRegistry().get(descriptor.runtime);
|
|
512
508
|
if (!runtime) {
|
|
513
509
|
throw new Error(
|
|
@@ -527,7 +523,7 @@ function setWorkerProfilePointer(
|
|
|
527
523
|
): void {
|
|
528
524
|
const trimmed = name.trim();
|
|
529
525
|
if (trimmed.length === 0) throw new Error("fleet profile name must be non-empty");
|
|
530
|
-
settings.
|
|
526
|
+
settings.fleet.profiles[trimmed] = {
|
|
531
527
|
target: descriptor.id,
|
|
532
528
|
model: model ?? descriptor.defaultModel ?? null,
|
|
533
529
|
thinkingLevel: "off",
|
|
@@ -607,10 +603,10 @@ function printSummary(settings: ClioSettings, descriptor: TargetDescriptor, prob
|
|
|
607
603
|
for (const line of probeLines(descriptor, probe)) process.stdout.write(` ${line}\n`);
|
|
608
604
|
}
|
|
609
605
|
warnUndiscoveredContextWindow(descriptor, probe);
|
|
610
|
-
if (settings.
|
|
611
|
-
if (settings.
|
|
612
|
-
if (settings.
|
|
613
|
-
for (const [name, profile] of Object.entries(settings.
|
|
606
|
+
if (settings.chat.target === descriptor.id) process.stdout.write(" orchestrator target\n");
|
|
607
|
+
if (settings.context.memory.target === descriptor.id) process.stdout.write(" background memory target\n");
|
|
608
|
+
if (settings.fleet.default.target === descriptor.id) process.stdout.write(" fleet default\n");
|
|
609
|
+
for (const [name, profile] of Object.entries(settings.fleet.profiles)) {
|
|
614
610
|
if (profile.target === descriptor.id) process.stdout.write(` fleet profile ${name}\n`);
|
|
615
611
|
}
|
|
616
612
|
process.stdout.write(`\nsettings written to ${settingsPath()}\n`);
|
|
@@ -1155,7 +1151,7 @@ async function runInteractive(
|
|
|
1155
1151
|
let runtime = preselectedRuntime ?? (await pickRuntimeViaCategory(rl));
|
|
1156
1152
|
if (!runtime) {
|
|
1157
1153
|
printError("configuration cancelled");
|
|
1158
|
-
return
|
|
1154
|
+
return 130;
|
|
1159
1155
|
}
|
|
1160
1156
|
const auth = openAuthStorage();
|
|
1161
1157
|
const settings = readSettings();
|
|
@@ -1413,10 +1409,10 @@ async function runInteractive(
|
|
|
1413
1409
|
? false
|
|
1414
1410
|
: defaults.setOrchestrator
|
|
1415
1411
|
? true
|
|
1416
|
-
: await askYesNo(rl, "use as orchestrator (chat) target?", !settings.
|
|
1412
|
+
: await askYesNo(rl, "use as orchestrator (chat) target?", !settings.chat.target);
|
|
1417
1413
|
const setWorkerDefault = defaults.setWorkerDefault
|
|
1418
1414
|
? true
|
|
1419
|
-
: await askYesNo(rl, "use as fleet default?", !settings.
|
|
1415
|
+
: await askYesNo(rl, "use as fleet default?", !settings.fleet.default.target);
|
|
1420
1416
|
const setBackground = !isOrchestratorEligibleRuntime(runtime)
|
|
1421
1417
|
? false
|
|
1422
1418
|
: defaults.setBackground
|
|
@@ -1428,7 +1424,7 @@ async function runInteractive(
|
|
|
1428
1424
|
rl,
|
|
1429
1425
|
"Orchestrator model",
|
|
1430
1426
|
wireModels,
|
|
1431
|
-
settings.
|
|
1427
|
+
settings.chat.target === targetId ? (settings.chat.model ?? model) : model,
|
|
1432
1428
|
)))
|
|
1433
1429
|
: undefined;
|
|
1434
1430
|
if (orchestratorModel === null) return 0;
|
|
@@ -1438,7 +1434,7 @@ async function runInteractive(
|
|
|
1438
1434
|
rl,
|
|
1439
1435
|
"Fleet model",
|
|
1440
1436
|
wireModels,
|
|
1441
|
-
settings.
|
|
1437
|
+
settings.fleet.default.target === targetId ? (settings.fleet.default.model ?? model) : model,
|
|
1442
1438
|
)))
|
|
1443
1439
|
: undefined;
|
|
1444
1440
|
if (workerModel === null) return 0;
|
|
@@ -1448,7 +1444,7 @@ async function runInteractive(
|
|
|
1448
1444
|
rl,
|
|
1449
1445
|
"Background memory model",
|
|
1450
1446
|
wireModels,
|
|
1451
|
-
settings.
|
|
1447
|
+
settings.context.memory.target === targetId ? (settings.context.memory.model ?? model) : model,
|
|
1452
1448
|
)))
|
|
1453
1449
|
: undefined;
|
|
1454
1450
|
if (backgroundModel === null) return 0;
|
|
@@ -1498,13 +1494,13 @@ export function runTargetRename(oldId: string, newId: string): number {
|
|
|
1498
1494
|
const target = settings.targets.find((e) => e.id === oldId);
|
|
1499
1495
|
if (!target) return;
|
|
1500
1496
|
target.id = newId;
|
|
1501
|
-
if (settings.
|
|
1502
|
-
if (settings.
|
|
1503
|
-
if (settings.
|
|
1504
|
-
for (const profile of Object.values(settings.
|
|
1497
|
+
if (settings.chat.target === oldId) settings.chat.target = newId;
|
|
1498
|
+
if (settings.context.memory.target === oldId) settings.context.memory.target = newId;
|
|
1499
|
+
if (settings.fleet.default.target === oldId) settings.fleet.default.target = newId;
|
|
1500
|
+
for (const profile of Object.values(settings.fleet.profiles)) {
|
|
1505
1501
|
if (profile.target === oldId) profile.target = newId;
|
|
1506
1502
|
}
|
|
1507
|
-
settings.
|
|
1503
|
+
settings.chat.modelPicker.cycleSet = settings.chat.modelPicker.cycleSet.map((entry) => {
|
|
1508
1504
|
const [head, ...rest] = entry.split("/");
|
|
1509
1505
|
if (head !== oldId) return entry;
|
|
1510
1506
|
return rest.length === 0 ? newId : `${newId}/${rest.join("/")}`;
|
|
@@ -24,7 +24,7 @@ export type DefaultTargetVerdict =
|
|
|
24
24
|
| { kind: "missing-credential"; targetId: string; store: string };
|
|
25
25
|
|
|
26
26
|
export function classifyDefaultTarget(settings: Readonly<ClioSettings> = readSettings()): DefaultTargetVerdict {
|
|
27
|
-
const targetId = settings.
|
|
27
|
+
const targetId = settings.chat.target;
|
|
28
28
|
if (!targetId) return { kind: "no-target" };
|
|
29
29
|
// A chat target naming an id that is not in `targets` cannot arrive here:
|
|
30
30
|
// the schema normalizes dangling routing references to null so that
|