@iowarp/clio-coder 0.4.1 → 0.4.3
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 +127 -0
- package/CONTRIBUTING.md +142 -52
- package/README.md +434 -473
- package/SECURITY.md +2 -1
- package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
- package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
- package/dist/builtins-IA7V7FUC.js +22 -0
- package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
- package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
- package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
- package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
- package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
- package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
- package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
- package/dist/chunk-3EBYEESD.js +314 -0
- package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
- package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
- package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
- package/dist/chunk-4UVU7BJ5.js +39 -0
- package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
- package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
- package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
- package/dist/chunk-5MEZN6CB.js +1334 -0
- package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
- package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
- package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
- package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
- package/dist/chunk-7DRAWPTZ.js +360 -0
- package/dist/chunk-7E7I3WLS.js +3762 -0
- package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
- package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
- package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
- package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
- package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
- package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
- package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
- package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
- package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
- package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
- package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
- package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
- package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
- package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
- package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
- package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
- package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
- package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
- package/dist/chunk-GYV6VZOC.js +26 -0
- package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
- package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
- package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
- package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
- package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
- package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
- package/dist/chunk-IJNZMHLA.js +101 -0
- package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
- package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
- package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
- package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
- package/dist/chunk-JEQ3XTHC.js +42 -0
- package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
- package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
- package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
- package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
- package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
- package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
- package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
- package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
- package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
- package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
- package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
- package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
- package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
- package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
- package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
- package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
- package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
- package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
- package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
- package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
- package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
- package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
- package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
- package/dist/chunk-R6Q67RJH.js +134 -0
- package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
- package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
- package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
- package/dist/chunk-SKHCAU7K.js +385 -0
- package/dist/chunk-SZAA6XDG.js +30 -0
- package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
- package/dist/chunk-UOIZ7DA4.js +41 -0
- package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
- package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
- package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
- package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
- package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
- package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
- package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
- package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
- package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
- package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
- package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
- package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
- package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
- package/dist/chunk-XRZT5WY5.js +47 -0
- package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
- package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
- package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
- package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
- package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
- package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
- package/dist/cli/index.js +41 -39
- package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
- package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
- package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
- package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
- package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
- package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
- package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
- package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
- package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
- package/dist/context-map-COB37XXN.js +505 -0
- package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
- package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
- package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
- package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
- package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
- package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
- package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
- package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
- package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
- package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
- package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
- package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
- package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
- package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
- package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
- package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
- package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
- package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
- package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
- package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
- package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
- package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
- package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
- package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
- package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
- package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
- package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
- package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
- package/dist/reset-EAJFFJVB.js +344 -0
- package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
- package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
- package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
- package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
- package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
- package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
- package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
- package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
- package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
- package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
- package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
- package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
- package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
- package/dist/uninstall-5PEVOE5B.js +408 -0
- package/dist/upgrade-M4WXY6KN.js +303 -0
- package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
- package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
- package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
- package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
- package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
- package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
- package/dist/worker/entry.js +90 -74
- 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} +27 -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} +29 -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} +61 -27
- package/docs/{observability.md → architecture/observability.md} +38 -14
- package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
- package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
- package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
- package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
- 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} +13 -5
- 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} +65 -35
- package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
- package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
- package/docs/guide/configuration-reference.md +1163 -0
- package/docs/{environment-variables.md → guide/environment-variables.md} +33 -28
- package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
- package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
- package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
- package/docs/{glossary.md → guide/glossary.md} +14 -11
- package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +81 -17
- package/docs/guide/panes-and-files.md +290 -0
- package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
- package/docs/{resource-library.md → guide/resource-library.md} +13 -4
- package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -3
- package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
- package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
- package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
- package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
- package/docs/process/development-pipeline.md +152 -0
- 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} +108 -53
- 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} +11 -7
- 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 +2 -2
- package/evals/behavioral-model.yaml +3 -2
- package/package.json +10 -8
- package/skills/README.md +52 -41
- package/skills/coding/ast-grep/SKILL.md +102 -31
- package/skills/coding/ast-grep/evals.md +26 -0
- package/skills/coding/coding-standards/SKILL.md +41 -6
- package/skills/coding/coding-standards/evals.md +23 -0
- package/skills/coding/prototype/SKILL.md +88 -29
- package/skills/coding/prototype/evals.md +19 -0
- package/skills/coding/tdd/SKILL.md +81 -54
- package/skills/coding/tdd/evals.md +20 -0
- package/skills/context/context-handoff/SKILL.md +44 -3
- package/skills/context/context-handoff/evals.md +44 -0
- package/skills/context/context-prime/SKILL.md +46 -16
- package/skills/context/context-prime/evals.md +45 -0
- package/skills/git/branch-closeout/SKILL.md +132 -0
- package/skills/git/branch-closeout/evals.md +133 -0
- package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
- package/skills/git/file-ticket/SKILL.md +78 -64
- package/skills/git/file-ticket/assets/issue-template.md +22 -0
- package/skills/git/file-ticket/evals.md +31 -26
- package/skills/git/file-ticket/references/issue-discovery.md +49 -0
- package/skills/git/fix-issue/SKILL.md +88 -65
- package/skills/git/fix-issue/evals.md +35 -31
- package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
- package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
- package/skills/git/resolve-merge-conflicts/evals.md +52 -25
- package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
- package/skills/git/ship/SKILL.md +103 -67
- package/skills/git/ship/assets/pr-template.md +21 -0
- package/skills/git/ship/evals.md +44 -28
- package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
- package/skills/git/worktree-create/SKILL.md +80 -50
- package/skills/git/worktree-create/evals.md +40 -33
- package/skills/git/worktree-create/references/worktree-setup.md +62 -66
- package/skills/git/worktree-merge/SKILL.md +112 -65
- package/skills/git/worktree-merge/evals.md +42 -34
- package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
- package/skills/meta/clio-coder-dev/SKILL.md +9 -5
- package/skills/meta/clio-coder-dev/evals.md +3 -2
- package/skills/meta/clio-coder-test/SKILL.md +102 -95
- package/skills/meta/clio-coder-test/evals.md +9 -4
- package/skills/meta/clio-coder-test/references/harness.md +100 -124
- package/skills/meta/clio-coder-test/references/test-map.md +77 -50
- package/skills/meta/credentials/SKILL.md +2 -2
- package/skills/meta/find-skills/SKILL.md +2 -2
- package/skills/meta/herdr/SKILL.md +2 -2
- package/skills/meta/skill-craft/SKILL.md +22 -16
- package/skills/planning/archify/SKILL.md +196 -0
- package/skills/planning/archify/evals.md +65 -0
- package/skills/planning/architecture/SKILL.md +62 -13
- package/skills/planning/architecture/evals.md +65 -0
- package/skills/planning/backlog/SKILL.md +131 -15
- package/skills/planning/backlog/evals.md +142 -0
- package/skills/planning/prd/SKILL.md +47 -7
- package/skills/planning/prd/evals.md +54 -0
- package/skills/planning/product-intent/SKILL.md +58 -3
- package/skills/planning/product-intent/evals.md +70 -0
- package/skills/planning/tech-spec/SKILL.md +54 -3
- package/skills/planning/tech-spec/evals.md +73 -0
- package/skills/registry.yaml +70 -62
- package/skills/remote.yaml +13 -0
- package/skills/research/arxiv-literature/SKILL.md +77 -19
- package/skills/research/arxiv-literature/evals.md +50 -0
- package/skills/research/experiment-protocol/SKILL.md +21 -2
- package/skills/research/experiment-protocol/evals.md +23 -0
- package/skills/research/scientific-debugging/SKILL.md +24 -2
- package/skills/research/scientific-debugging/evals.md +18 -0
- package/skills/research/scientific-modernization/SKILL.md +27 -2
- package/skills/research/scientific-modernization/evals.md +27 -0
- package/skills/skill-marketplace.json +97 -62
- package/skills/workflow/cut-it/SKILL.md +66 -6
- package/skills/workflow/cut-it/evals.md +101 -0
- package/skills/workflow/design-council/SKILL.md +118 -28
- package/skills/workflow/design-council/evals.md +161 -0
- package/skills/workflow/grill-me/SKILL.md +87 -11
- package/skills/workflow/grill-me/evals.md +153 -0
- package/skills/workflow/workflow-distiller/SKILL.md +77 -18
- package/skills/workflow/workflow-distiller/evals.md +118 -0
- package/src/cli/args.ts +2 -2
- package/src/cli/bootstrap-generate.ts +1 -1
- package/src/cli/config-inspect.ts +65 -12
- package/src/cli/configure-interop.ts +105 -13
- package/src/cli/configure-oauth.ts +57 -0
- package/src/cli/configure-onboarding.ts +980 -0
- package/src/cli/configure-target.ts +594 -0
- package/src/cli/configure.ts +1082 -532
- package/src/cli/context-map.ts +114 -0
- package/src/cli/context.ts +4 -0
- package/src/cli/docs.ts +22 -14
- package/src/cli/doctor-naming.ts +5 -5
- package/src/cli/doctor-toolchain.ts +3 -3
- package/src/cli/eval.ts +1 -2
- package/src/cli/extensions.ts +2 -1
- package/src/cli/fleet.ts +1 -1
- package/src/cli/index.ts +3 -1
- package/src/cli/internal-dispatch.ts +3 -4
- package/src/cli/lifecycle-presenter.ts +436 -0
- package/src/cli/models.ts +10 -2
- package/src/cli/modes/print.ts +5 -1
- package/src/cli/panes.ts +19 -5
- package/src/cli/reset.ts +228 -106
- package/src/cli/run.ts +9 -4
- package/src/cli/select.ts +664 -0
- package/src/cli/share.ts +5 -1
- package/src/cli/skills-eval.ts +3 -3
- package/src/cli/skills.ts +9 -2
- package/src/cli/targets.ts +5 -6
- package/src/cli/trace.ts +55 -4
- package/src/cli/uninstall.ts +233 -165
- package/src/cli/upgrade.ts +204 -149
- package/src/cli/usage.ts +86 -27
- package/src/cli/validate-model.ts +3 -3
- package/src/cli/wiki-generate.ts +1 -1
- package/src/core/artifact-paths.ts +1 -1
- package/src/core/bash-exec.ts +131 -86
- package/src/core/bus-events.ts +51 -6
- package/src/core/config.ts +61 -1
- package/src/core/defaults.ts +7 -4
- package/src/core/dispatch-outcome.ts +16 -0
- package/src/core/external-diagnostic.ts +44 -0
- package/src/core/gateway-routing.ts +157 -0
- package/src/core/guardrails.ts +10 -49
- package/src/core/prompt-hint.ts +9 -0
- package/src/core/safe-exec.ts +17 -2
- package/src/core/skill-activation.ts +89 -2
- 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/builtins/world-knowledge.md +31 -0
- package/src/domains/agents/catalog.ts +13 -15
- package/src/domains/agents/contract.ts +2 -0
- package/src/domains/agents/extension.ts +23 -1
- package/src/domains/agents/result-contract.ts +70 -0
- package/src/domains/config/keybindings.ts +8 -0
- package/src/domains/context/extension.ts +0 -3
- package/src/domains/context/wiki/map-seed.ts +589 -0
- package/src/domains/context/wiki/plan.ts +2 -2
- package/src/domains/context/working-set/path-index.ts +1 -0
- package/src/domains/dispatch/admission.ts +29 -0
- package/src/domains/dispatch/agent-candidates.ts +10 -0
- package/src/domains/dispatch/budget-envelope.ts +86 -1
- package/src/domains/dispatch/capability-match.ts +11 -0
- package/src/domains/dispatch/capacity-lease.ts +17 -0
- package/src/domains/dispatch/contract.ts +11 -1
- package/src/domains/dispatch/extension.ts +237 -49
- 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/path-scope.ts +235 -24
- package/src/domains/dispatch/run-event-journal.ts +4 -15
- package/src/domains/dispatch/state.ts +2 -3
- package/src/domains/dispatch/transport.ts +45 -21
- package/src/domains/dispatch/types.ts +58 -3
- package/src/domains/dispatch/worker-model-metadata.ts +38 -0
- package/src/domains/eval/artifacts/store.ts +5 -0
- package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
- package/src/domains/eval/metrics/token-stream.ts +201 -31
- package/src/domains/eval/metrics/tracked.ts +40 -4
- package/src/domains/eval/runners/clio-run.ts +5 -2
- package/src/domains/eval/schema/suite.ts +28 -0
- package/src/domains/eval/schema/verdict.ts +2 -2
- package/src/domains/eval/store.ts +8 -1
- package/src/domains/eval/suites/resolve.ts +13 -1
- package/src/domains/eval/suites/run.ts +24 -3
- 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/registry.ts +6 -2
- package/src/domains/interop/types.ts +4 -0
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
- package/src/domains/lifecycle/migrations/index.ts +6 -0
- package/src/domains/lifecycle/naming-resources.ts +19 -4
- package/src/domains/lifecycle/naming-yazi.ts +10 -5
- package/src/domains/memory/task-memory-policy.ts +70 -26
- package/src/domains/memory/task-memory-telemetry.ts +1 -0
- 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 +28 -5
- package/src/domains/middleware/marketplace-offer.ts +3 -35
- package/src/domains/middleware/memory-intervention.ts +127 -32
- package/src/domains/middleware/memory-step-endpoint.ts +3 -2
- package/src/domains/middleware/registrations.ts +326 -0
- package/src/domains/middleware/runtime.ts +28 -0
- package/src/domains/middleware/skills-reminder.ts +31 -2
- package/src/domains/middleware/snapshot.ts +20 -7
- package/src/domains/mux/contract.ts +38 -0
- package/src/domains/mux/detect.ts +6 -13
- package/src/domains/mux/index.ts +1 -1
- package/src/domains/mux/operations.ts +44 -5
- package/src/domains/mux/yazi/assets/yazi.toml +2 -2
- package/src/domains/mux/yazi/session.ts +53 -4
- package/src/domains/mux/yazi/theme.ts +117 -17
- package/src/domains/observability/compaction-usage.ts +118 -0
- package/src/domains/observability/contract.ts +10 -11
- package/src/domains/observability/cost.ts +1 -1
- package/src/domains/observability/extension.ts +17 -4
- package/src/domains/observability/out-of-turn-usage.ts +52 -21
- package/src/domains/observability/projection.ts +14 -90
- package/src/domains/observability/trace-store.ts +43 -7
- package/src/domains/prompts/compiler.ts +73 -53
- package/src/domains/prompts/contract.ts +15 -3
- package/src/domains/prompts/extension.ts +97 -9
- package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
- 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 +10 -24
- package/src/domains/prompts/fragments/operating/worker.md +1 -8
- package/src/domains/providers/contract.ts +4 -1
- package/src/domains/providers/extension.ts +40 -9
- package/src/domains/providers/index.ts +1 -1
- package/src/domains/providers/model-capabilities.ts +9 -0
- package/src/domains/providers/model-discovery.ts +2 -0
- package/src/domains/providers/model-runtime-capabilities.ts +99 -25
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
- package/src/domains/providers/runtime-resolution.ts +31 -0
- package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
- package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
- package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
- package/src/domains/providers/support.ts +11 -5
- package/src/domains/providers/target-model-cache.ts +25 -2
- package/src/domains/providers/types/capability-flags.ts +2 -0
- package/src/domains/providers/types/cost-provenance.ts +19 -0
- package/src/domains/providers/types/local-model-quirks.ts +85 -37
- package/src/domains/providers/types/runtime-descriptor.ts +20 -1
- package/src/domains/providers/types/target-descriptor.ts +19 -0
- package/src/domains/resources/index.ts +3 -0
- package/src/domains/resources/skills/install.ts +72 -7
- package/src/domains/resources/skills/loader.ts +23 -19
- package/src/domains/resources/skills/marketplace.ts +63 -11
- package/src/domains/safety/autonomy.ts +15 -0
- package/src/domains/safety/call-target.ts +1 -1
- package/src/domains/safety/index.ts +1 -0
- package/src/domains/safety/loop-detector.ts +7 -4
- package/src/domains/safety/path-policy.ts +1 -1
- package/src/domains/safety/policy-engine.ts +34 -11
- package/src/domains/safety/protected-artifacts.ts +191 -88
- package/src/domains/safety/run-effects.ts +2 -22
- package/src/domains/safety/skill-authority.ts +55 -0
- package/src/domains/session/compaction/compact.ts +72 -22
- package/src/domains/session/entries.ts +6 -0
- package/src/domains/session/task-board.ts +10 -9
- package/src/domains/session/usage.ts +3 -3
- package/src/domains/share/archive.ts +164 -7
- package/src/engine/acp/server.ts +62 -9
- package/src/engine/agent.ts +13 -3
- package/src/engine/ai.ts +26 -8
- package/src/engine/antigravity/subprocess-runtime.ts +386 -120
- package/src/engine/api-registry.ts +3 -0
- package/src/engine/apis/llamacpp-residency.ts +3 -4
- package/src/engine/apis/lmstudio.ts +3 -3
- package/src/engine/apis/ollama-native.ts +6 -6
- package/src/engine/apis/openai-completions.ts +145 -39
- package/src/engine/apis/output-budget.ts +8 -18
- package/src/engine/apis/residency.ts +8 -27
- package/src/engine/external-subprocess.ts +114 -6
- package/src/engine/gemma-channel-filter.ts +19 -0
- package/src/engine/loop-guard.ts +92 -12
- package/src/engine/worker-runtime.ts +40 -11
- package/src/engine/worker-tools.ts +3 -1
- package/src/entry/background-model-metadata.ts +18 -0
- package/src/entry/compaction-prompt.ts +57 -0
- package/src/entry/extension-hook-sources.ts +28 -0
- package/src/entry/extension-reload.ts +309 -0
- package/src/entry/orchestrator.ts +464 -251
- package/src/entry/task-memory-lifecycle.ts +35 -0
- package/src/interactive/application-controller.ts +2 -1
- package/src/interactive/bus-notices.ts +8 -1
- package/src/interactive/chat-loop-messages.ts +16 -17
- package/src/interactive/chat-loop.ts +75 -3
- package/src/interactive/chat-panel.ts +36 -13
- package/src/interactive/chat-renderer.ts +72 -7
- package/src/interactive/cost-overlay.ts +26 -2
- package/src/interactive/dispatch-board.ts +6 -11
- package/src/interactive/footer/widgets.ts +13 -0
- package/src/interactive/interactive-application.ts +39 -4
- package/src/interactive/interactive-input-runtime.ts +4 -0
- package/src/interactive/interactive-presentation.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +4 -1
- package/src/interactive/overlays/extensions.ts +9 -1
- package/src/interactive/overlays/help-reference.ts +13 -0
- package/src/interactive/overlays/settings.ts +27 -16
- package/src/interactive/panes-runtime.ts +111 -35
- package/src/interactive/prompt-cache-identity.ts +88 -0
- package/src/interactive/renderers/worker-entry.ts +32 -0
- package/src/interactive/slash-commands.ts +153 -20
- package/src/interactive/stream-pacing-policy.ts +0 -23
- package/src/interactive/theme/labels.ts +19 -13
- package/src/interactive/turn-context.ts +39 -20
- package/src/interactive/turn-recovery.ts +8 -0
- package/src/interactive/turn-runtime.ts +27 -11
- package/src/interactive/turn-state.ts +7 -0
- package/src/interactive/worker-receipts.ts +1 -0
- package/src/interactive/worker-stream.ts +6 -1
- package/src/interactive/yazi-bridge.ts +60 -6
- package/src/tools/agent-tools.ts +30 -1
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +3 -3
- package/src/tools/bash.ts +1 -1
- 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/context/docs-engine.ts +20 -7
- package/src/tools/context/index.ts +59 -21
- package/src/tools/core-bootstrap.ts +28 -6
- package/src/tools/credential-present.ts +1 -2
- package/src/tools/dispatch-arguments.ts +6 -1
- package/src/tools/dispatch-event-text.ts +10 -0
- package/src/tools/dispatch-plan.ts +49 -4
- package/src/tools/dispatch-run-events.ts +1 -1
- package/src/tools/dispatch-runner.ts +12 -0
- 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/ledger.ts +3 -5
- package/src/tools/monitor-surface.ts +5 -13
- package/src/tools/observation.ts +4 -5
- 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 +41 -12
- package/src/tools/result-shaping.ts +18 -14
- package/src/tools/steer-surface.ts +1 -1
- package/src/tools/tasks.ts +1 -1
- package/src/tools/truncate.ts +6 -5
- package/src/tools/verify/surface.ts +6 -12
- package/src/tools/web-fetch-surface.ts +1 -3
- package/src/tools/worker-evidence.ts +3 -1
- package/src/worker/spec-contract.ts +4 -0
- package/dist/builtins-UJLMOVOV.js +0 -17
- package/dist/chunk-5QIAJV2D.js +0 -48
- package/dist/chunk-JZWT5J3Y.js +0 -814
- package/dist/chunk-K7VKOLQQ.js +0 -15
- package/dist/chunk-PMZCIOCJ.js +0 -25
- package/dist/chunk-SUW5DORT.js +0 -819
- package/dist/chunk-UOV2BYIW.js +0 -107
- package/dist/chunk-WR6U3OVP.js +0 -45
- package/dist/chunk-Y45G3AXC.js +0 -1558
- package/dist/reset-EOLM7GVE.js +0 -230
- package/dist/uninstall-N34PCTGJ.js +0 -331
- package/dist/upgrade-H7TOM7YL.js +0 -323
- package/docs/artifact-versions.md +0 -67
- package/docs/development-pipeline.md +0 -121
- package/docs/documentation-coverage.md +0 -46
- package/docs/documentation-guide.md +0 -167
- package/docs/time-conventions.md +0 -101
|
@@ -0,0 +1,1163 @@
|
|
|
1
|
+
# Configuration reference
|
|
2
|
+
|
|
3
|
+
> **Visual blueprint:** The source checkout includes the complete
|
|
4
|
+
> [Configuration reference visual reference](https://github.com/iowarp/clio-coder/blob/main/docs/html/configuration_reference_blueprint.html).
|
|
5
|
+
|
|
6
|
+
Every switch that changes what Clio Coder does, in one place: settings keys, environment variables, CLI flags, project files under `.clio-coder/`, recipe and prompt-fragment frontmatter, tool arguments the model can send, and model knowledge-base tags. The source of truth is `src/`; this page is the audited inventory of what the code read at the 0.4.2 cut and is maintained by hand with each release. The narrative guide is [configuration-and-targets.md](configuration-and-targets.md); operator prose for each environment variable is in [environment-variables.md](environment-variables.md).
|
|
7
|
+
|
|
8
|
+
Precedence, where several surfaces set the same value: a one-run CLI flag beats a session override (`/settings`, `/model`, `/thinking`), which beats `.clio-coder/settings.local.yaml`, which beats `.clio-coder/settings.yaml`, which beats the user `settings.yaml`, which beats the compiled default. Entries whose order differs say so in their precedence column.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Settings keys
|
|
12
|
+
|
|
13
|
+
`settings.yaml` (user, project, and project-local) and the `/settings` overlay. Defaults come from `src/core/defaults.ts`.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
| Name | Default | Controls | Precedence |
|
|
17
|
+
|---|---|---|---|
|
|
18
|
+
| `chat.maxOutputTokens` | `0` | Global output-token budget requested on every chat turn (integer >= 0, `0` means per-model caps only); clamped to the model's max-output cap and remaining context window, with the product's 32,768-token ceiling used when the model cap is unknown; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
19
|
+
| `chat.model` | `null` | Saved default chat model id (string or null); null with a target set rebases to that target's `defaultModel` at validation; applies next session. | `run --model` > session routing (`/model`, `/thinking`, Alt+J/K, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
20
|
+
| `chat.modelPicker.cycleSet` | `[]` | Exact `target` or `target/model` refs Alt+J/Alt+K cycle through (refs with an empty target part are dropped); session-owned routing state, immediate this session, saved default next session. | session routing (Alt+J/K, `/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
21
|
+
| `chat.modelPicker.favorites` | `[]` | Exact `target/model` refs pinned in the focused model picker; refs naming an unconfigured target are dropped at validation; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
22
|
+
| `chat.modelPicker.recentLimit` | `12` | How many recently selected `target/model` refs `recent-models.json` keeps (integer >= 1); applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
23
|
+
| `chat.prewarm` | `true` | Whether the known prompt prefix is sent to a `local-native` server at session start, after resume, and after compaction to fill its prefix cache (boolean; no effect on other tiers, workers, headless); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
24
|
+
| `chat.retry.baseDelayMs` | `2000` | First backoff delay in ms for chat-loop retries, doubled per attempt up to `maxDelayMs` (integer >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
25
|
+
| `chat.retry.enabled` | `true` | Master switch for transient-provider retries in the interactive chat loop (boolean); dispatched workers use `fleet.retry.maxRetries` instead; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
26
|
+
| `chat.retry.maxDelayMs` | `60000` | Ceiling in ms on the exponential backoff between chat-loop retries (integer >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
27
|
+
| `chat.retry.maxRetries` | `3` | Maximum retry attempts for one transient provider failure in the chat loop (integer >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
28
|
+
| `chat.retry.streamStallMs` | `180000` | Silence on an in-flight stream longer than this many ms is treated as a wedged backend and the turn is aborted and retried (integer >= 0, `0` disables the stall timer); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
29
|
+
| `chat.target` | `null` | Saved default chat target id (configured id or null); a dangling id normalizes to null and clears `chat.model`; seeds session routing at launch, so applies next session. | `run --target` > session routing (`/model`, `/thinking`, Alt+J/K, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
30
|
+
| `chat.thinkingLevel` | `low` | Saved default reasoning effort for the chat model: `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`, clamped to what the model supports at request time; applies next session. | `run --thinking` > session routing (`/model`, `/thinking`, Alt+J/K, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
31
|
+
| `context.compaction.auto` | `true` | Master switch for the pre-request compaction trigger when context pressure crosses `threshold` (boolean); manual `/context compact` still works when off; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
32
|
+
| `context.compaction.model` | | Optional model pattern (prefer exact `target/model`) resolved when compaction runs. Must uniquely match an available HTTP chat model; invalid, ambiguous, unavailable, and worker-only selections fail explicitly. Absent means the current chat route summarizes. | |
|
|
33
|
+
| `context.compaction.systemPrompt` | | Optional UTF-8 prompt file read on every compaction to replace the built-in system prompt. Relative paths use the current session workspace (`cwd`); absolute paths are supported. Must be a nonempty regular file of at most 65,536 bytes; read failures are explicit. `/context compact` focus instructions remain separate. | |
|
|
34
|
+
| `context.compaction.threshold` | `0.8` | Context pressure (estimated tokens over the context window, 0 through 1) at which eviction and then LLM summary compaction run; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
35
|
+
| `context.toolResultMaxBytes` | `65536` | Maximum bytes returned from one tool result before the complete text spills to the session scratch file (integer >= 4096); applies to the next tool result. The unchanged `safety.limits.observationBytesPerTurn` default is 196608 bytes, so three full-size results consume the shared pool and a fourth finds it filled. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
36
|
+
| `context.memory.cadenceToolCalls` | `10` | Tool calls between proactive memory interventions inside a turn (integer >= 2); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
37
|
+
| `context.memory.enabled` | `true` | Master switch for proactive memory intervention during a turn (boolean); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
38
|
+
| `context.memory.maxOutputTokens` | `2000` | Output-token cap for one memory model call (integer >= 1); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
39
|
+
| `context.memory.model` | `null` | Model id for the background memory model (string or null); null rebases to the target's `defaultModel`; session routing state, applies next turn. | session routing (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
40
|
+
| `context.memory.target` | `null` | Target id for the background memory model (configured id or null); null means deterministic rules-only memory; session routing state, applies next turn. | session routing (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
41
|
+
| `context.memory.timeoutMs` | `60000` | Timeout in ms for one memory model call (integer >= 1); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
42
|
+
| `context.memory.trajectorySteps` | `8` | Recent trajectory steps handed to the memory model per intervention (integer >= 1); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
43
|
+
| `context.workingSet.enabled` | `true` | Master switch for working-set eviction of stale tool results and thinking before summary compaction (boolean); off goes straight to summary compaction; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
44
|
+
| `context.workingSet.minEvictableTokens` | `200` | Tool results estimated below this many tokens are never evicted because the marker would cost more than it saves (integer >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
45
|
+
| `context.workingSet.policy` | `structural-v1` | Eviction candidate rule set: `structural-v1` or `age-horizon`; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
46
|
+
| `context.workingSet.protectLastTurns` | `6` | Most recent user turns whose observations are never evicted (integer >= 1); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
47
|
+
| `context.workingSet.target` | `0.6` | Used/window ratio an applied eviction batch reduces context to (number > 0 and < 1); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
48
|
+
| `fleet.adaptiveRouting.agentRoles` | `[]` | Exact `{agentId, executionRole}` pairs for which an `agent: auto` request may swap agents (no cross-product, `auto` reserved, duplicate pairs rejected); applies next dispatch. | |
|
|
49
|
+
| `fleet.adaptiveRouting.agentRoles[].agentId` | | Native agent id the pair authorizes for automatic agent selection; required, `auto` is reserved. | |
|
|
50
|
+
| `fleet.adaptiveRouting.agentRoles[].executionRole` | | Execution role of the pair: `builder`, `researcher`, `verifier`, `reviewer`, `judge`; required. | |
|
|
51
|
+
| `fleet.adaptiveRouting.postures` | `[]` | Requested postures (`quality`, `balanced`, `latency`, `economy`) for which joint routing is active; both the role and the posture must be listed; applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
52
|
+
| `fleet.adaptiveRouting.roles` | `[]` | Execution roles (`researcher`, `verifier`, `reviewer`, `judge`) for which measured joint routing may change execution; unlisted roles only record a shadow recommendation; applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
53
|
+
| `fleet.agentProfiles` | `{}` | Map of native agent id to a `fleet.profiles` name so that agent's dispatches use that route (`auto` is reserved; ACP agents cannot be bound); applies next dispatch. | `run --target` > `run --agent-profile` > session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
54
|
+
| `fleet.agentProfiles.<key>` | | One binding: the key is the native agent id, the value the `fleet.profiles` name used when that agent is dispatched without an explicit profile; applies next dispatch. | |
|
|
55
|
+
| `fleet.concurrency` | `auto` | Maximum concurrently running local workers: `auto` currently resolves to the compiled default of 4, or set an integer >= 1; applies at restart. | |
|
|
56
|
+
| `fleet.default.model` | `null` | Saved default model id for workers (string or null; null rebases to the target's `defaultModel`); applies next session. | `run --model` > selected `fleet.profiles` route model > session routing (`/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
57
|
+
| `fleet.default.target` | `null` | Saved default target id for dispatched workers and `/run` (configured id or null; dangling ids become null); seeds session routing, so applies next session. | `run --target` > `run --agent-profile`/`--agent-runtime` > `fleet.agentProfiles` binding to a `fleet.profiles` route > session routing (`/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
58
|
+
| `fleet.default.thinkingLevel` | `off` | Saved default thinking level for workers (`off` through `max`); applies next session. | `run --thinking` > selected `fleet.profiles` route thinkingLevel > session routing (`/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
59
|
+
| `fleet.history.journal` | `true` | Whether each dispatched run writes an `events.ndjson` journal under the state `runs/` directory (boolean); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
60
|
+
| `fleet.history.maxRuns` | `1000` | Retention cap on the durable dispatch run ledger (integer >= 1); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
61
|
+
| `fleet.limits.internalRunTimeoutMs` | `900000` | Wall-clock cap in ms for one internal generator dispatch such as the wiki documenter or the bootstrap scout (integer >= 1); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
62
|
+
| `fleet.limits.toolCallsPerRun` | `150` | Lifetime cap on admitted tool calls for one dispatched worker (integer >= 1); a recipe budget can only narrow it; read from effective settings at dispatch, so applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
63
|
+
| `fleet.nodes` | `[]` | SSH-reachable worker nodes (the implicit `local` node is never listed); a node becomes dispatch-eligible only after the doctor fleet preflight passes; applies next dispatch. | |
|
|
64
|
+
| `fleet.nodes[].clioCoderEntry` | `clio-coder worker` | Remote worker-entry invocation run after `cd <projectRoot>`; also version-probed by the fleet preflight; defaults to `clio-coder worker` on the remote PATH. | |
|
|
65
|
+
| `fleet.nodes[].host` | | SSH destination host (name or address); required. | |
|
|
66
|
+
| `fleet.nodes[].id` | | Stable node id used in placement, receipts, and operator surfaces; required, `local` is reserved, duplicates are rejected. | |
|
|
67
|
+
| `fleet.nodes[].identityFile` | | Private key path passed as `ssh -i`; absent defers to the SSH config. | |
|
|
68
|
+
| `fleet.nodes[].labels` | | Advisory routing labels (e.g. `gpu`, `high-memory`) exported to the worker as `CLIO_CODER_WORKER_LABELS` and shown in fleet status; no scheduler constraint. | |
|
|
69
|
+
| `fleet.nodes[].maxWorkers` | `2` | Per-node cap on concurrent workers (integer >= 1); defaults to 2 when absent. | |
|
|
70
|
+
| `fleet.nodes[].port` | | SSH port passed as `ssh -p` (integer >= 1); absent omits the flag and defers to the SSH config. | |
|
|
71
|
+
| `fleet.nodes[].residency` | `observe` | Residency posture projected into the remote worker target lifecycle: `observe` (default) sets `user-managed`; `manage` sets `clio-coder-managed` unless the target already says `user-managed`. | |
|
|
72
|
+
| `fleet.nodes[].user` | | SSH login user passed as `ssh -l`; absent defers to the SSH config. | |
|
|
73
|
+
| `fleet.permissions.escalation.fallback` | `deny` | Posture applied when an escalated call times out or no operator channel exists: `deny` or `fail`; applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
74
|
+
| `fleet.permissions.escalation.timeoutMs` | `120000` | Wall-clock ms a parked `escalate` call waits for an operator decision before the fallback applies (integer >= 1); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
75
|
+
| `fleet.permissions.mode` | `deny` | What a noninteractive worker does with a tool call that asks for permission: `deny` returns a structured denial, `fail` ends the run (exit 3), `escalate` parks it for the operator; applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
76
|
+
| `fleet.profiles` | `{}` | Named worker routes (`target`, `model`, `thinkingLevel`, `node` pin) picked by `run --agent-profile`, `fleet.agentProfiles`, or dispatch `workerProfile`; a null or unknown target drops the profile; applies next dispatch. | `run --target` (profile ignored) > `run --agent-profile`/`--agent-runtime` > `fleet.agentProfiles` binding > session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
77
|
+
| `fleet.profiles.<key>.model` | | Model id for the profile (string or null); null rebases to the target's `defaultModel` at validation; applies next dispatch. | |
|
|
78
|
+
| `fleet.profiles.<key>.node` | | Optional fleet node pin (`local` or a `fleet.nodes[].id`; unknown ids are dropped): workers routed through this profile are placed on that node unless a failover excluded it; applies next dispatch. | |
|
|
79
|
+
| `fleet.profiles.<key>.target` | | Configured target id the profile routes workers to; effectively required, because a profile whose target is null or unknown is dropped at validation; applies next dispatch. | |
|
|
80
|
+
| `fleet.profiles.<key>.thinkingLevel` | `off` | Thinking level for workers routed through this profile (`off` through `max`); `off` when absent; applies next dispatch. | |
|
|
81
|
+
| `fleet.retry.maxRetries` | `2` | Automated retries for retryable fleet run failures (integer >= 0, `0` disables retries); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
82
|
+
| `fleet.retry.routeCooldownMs` | `15000` | Cooldown in ms before a failed route is eligible again for retry placement (integer >= 0); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
83
|
+
| `fleet.rosters` | `{}` | Named councils for `/council` and roster dispatch: map of roster name to `members` (2 to 5 entries with unique labels and configured targets); a roster with any invalid member is dropped; applies next dispatch. | |
|
|
84
|
+
| `fleet.rosters.<key>.members[].color` | | Optional display color for the member: a theme color name (`accent`, `success`, `warning`, `error`, ...) or a 6-digit hex `#rrggbb`; absent takes the accent color. | |
|
|
85
|
+
| `fleet.rosters.<key>.members[].label` | | Council member label shown in council output, matching `[a-z][a-z0-9_-]{0,31}` and unique within the roster; required. | |
|
|
86
|
+
| `fleet.rosters.<key>.members[].model` | | Optional model id for this member; absent means the target's default model. | |
|
|
87
|
+
| `fleet.rosters.<key>.members[].target` | | Configured target id the council member runs on; required, and an unknown id is a validation error. | |
|
|
88
|
+
| `fleet.rosters.<key>.members[].thinkingLevel` | | Optional thinking level for this member (`off` through `max`); absent means the dispatch default. | |
|
|
89
|
+
| `integrations.externalAgents.defaults.connectTimeoutMs` | `30000` | Default ms an ACP agent has to answer `initialize` (integer >= 1, at most the max timer delay); never zero-disabled; applies next dispatch. | |
|
|
90
|
+
| `integrations.externalAgents.defaults.permissionTimeoutMs` | `120000` | Default ms an ACP permission request may wait for an operator (integer >= 1); applies next dispatch. | |
|
|
91
|
+
| `integrations.externalAgents.defaults.toolGovernance` | `clio-coder-policy` | Default governance for ACP agents without their own: `clio-coder-policy`, `agent-managed`, `deny-all` (legacy `clio-policy` is normalized with a warning); applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
92
|
+
| `integrations.externalAgents.defaults.turnTimeoutMs` | `300000` | Default ms one ACP turn may take before it is cancelled (integer >= 1); applies next dispatch. | |
|
|
93
|
+
| `integrations.externalAgents.entries` | `[]` | ACP delegation agents for `/delegate` and dispatch: list of stdio agent definitions with unique ids (`auto` reserved), each inheriting `defaults.*` where unset; applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
94
|
+
| `integrations.externalAgents.entries[].args` | `[]` | Argument list for the ACP stdio command (list of strings, duplicates dropped); empty when absent. | |
|
|
95
|
+
| `integrations.externalAgents.entries[].command` | | ACP stdio command spawned for the agent (newline-delimited JSON-RPC per ACP v1); required. | |
|
|
96
|
+
| `integrations.externalAgents.entries[].connectTimeoutMs` | | Per-agent ms allowed for ACP `initialize` (integer 1 through the max timer delay); absent inherits `defaults.connectTimeoutMs`. | |
|
|
97
|
+
| `integrations.externalAgents.entries[].cwd` | | Working directory the ACP agent process starts in; absent uses the dispatch working directory. | |
|
|
98
|
+
| `integrations.externalAgents.entries[].env.<key>` | | Extra environment variable passed to the ACP agent process (string values only); absent inherits the dispatch environment. | |
|
|
99
|
+
| `integrations.externalAgents.entries[].id` | | Stable id used by `/delegate`, `fleet` routing checks, and dispatch receipts; required, unique, `auto` is reserved. | |
|
|
100
|
+
| `integrations.externalAgents.entries[].labels.<key>` | | Free-form string label shown on the agent's row in `/agents`; no routing effect. | |
|
|
101
|
+
| `integrations.externalAgents.entries[].permissionTimeoutMs` | | Per-agent ms an ACP permission request may wait for an operator (integer >= 1); absent inherits `defaults.permissionTimeoutMs`. | |
|
|
102
|
+
| `integrations.externalAgents.entries[].projectContext` | `none` | Project context sent to this agent as a dynamic message: `none` (default; repo conventions never leave the machine) or `bounded` (the bounded projection). | |
|
|
103
|
+
| `integrations.externalAgents.entries[].stallTimeoutMs` | `300000` | Event-inactivity stall window in ms: when no `session/update` arrives for this long the reconciler cancels the turn and finalizes the run as stalled; `<= 0` disables; 300000 when absent. | |
|
|
104
|
+
| `integrations.externalAgents.entries[].toolGovernance` | | Who governs the agent's tool calls: `clio-coder-policy` (Clio's autonomy matrix), `agent-managed`, `deny-all`; absent inherits `defaults.toolGovernance`; `agent-managed` refuses `run --autonomy`. | |
|
|
105
|
+
| `integrations.externalAgents.entries[].turnTimeoutMs` | | Per-agent ms one ACP turn may take before cancellation (integer >= 1); absent inherits `defaults.turnTimeoutMs`. | |
|
|
106
|
+
| `integrations.git.commitAttribution` | `true` | Evidence-aware role trailers on commits created through Clio (boolean); applies immediately for subsequent commits. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
107
|
+
| `integrations.library.catalog` | `null` | Path of the private resource-library catalog (string or null); null means `<configDir>/library.yaml`; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
108
|
+
| `integrations.library.confirmedRemote` | `null` | Remote URL written by `clio-coder library remote confirm <url>`; must equal `remote` before sync or push may run (string or null); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
109
|
+
| `integrations.library.remote` | `null` | Git remote URL of the library repository (string or null); the catalog repository must name that remote `library`; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
110
|
+
| `integrations.library.sync` | `false` | Whether `library sync` and `library push` may spawn Git at all (boolean); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
111
|
+
| `integrations.projectResources.trustProjectImports` | `false` | Whether project-scope skills and prompts from other agents' compat roots become model-visible (boolean); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
112
|
+
| `integrations.runtimePlugins` | `[]` | npm package names loaded as provider runtime plugins at boot (list of strings); applies at restart. | |
|
|
113
|
+
| `interface.desktopNotifications` | `false` | Content-free desktop notifications on turn end, detached batch settlement, and a parked approval, interactive TTY runs only (boolean); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
114
|
+
| `interface.fullscreenScrollbar` | `auto` | Fullscreen transcript scrollbar visibility: `hidden`, `auto`, `always`; applies at restart. | |
|
|
115
|
+
| `interface.keybindings` | `{}` | Map of binding id (`clio-coder.*`; legacy `clio.*` ids are renamed) to a key string or list of key strings; invalid bindings are reported at boot; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
116
|
+
| `interface.keybindings.<key>` | | One rebinding: the key is a binding id such as `clio-coder.notifications.dismiss`, the value a key string or a list of alternatives; applies immediately. | |
|
|
117
|
+
| `interface.mode` | `regular` | Renderer: `regular` keeps scrollback, `fullscreen` uses the alternate screen with a sticky layout; applies at restart. | |
|
|
118
|
+
| `interface.outputDetail` | `default` | Transcript detail level: `minimal`, `default`, `verbose`; applies next turn. | session override (`/output`, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
119
|
+
| `interface.panes.enabled` | `off` | Pane-host rung: `auto` detects a guest pane host, `embedded` asks Clio to own a session (behaves as `auto` until implemented), `off` skips detection; applies at restart. | `--no-panes` / `--with-panes` (`--with-panes` keeps a saved `embedded`, otherwise `auto`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
120
|
+
| `interface.panes.files.enabled` | `false` | Whether the files pane (yazi) may open (boolean); applies on the next files-pane open. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
121
|
+
| `interface.panes.files.followCwd` | `true` | Whether the files pane follows the conversation's working directory (boolean); applies on the next files-pane open. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
122
|
+
| `interface.panes.files.mode` | `companion` | Files pane mode: `companion` (picks flow back to the prompt) or `chooser`; applies on the next files-pane open. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
123
|
+
| `interface.panes.files.profile` | `managed` | Yazi configuration profile for the files pane: `managed` (Clio-owned) or `user`; applies on the next files-pane open. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
124
|
+
| `interface.panes.files.ratio` | `0.3` | Share of terminal height the files dock takes (number 0.05 through 0.5); applies at restart. | |
|
|
125
|
+
| `interface.panes.layout` | `off` | Docks composed at interactive boot in guest mode: `off` opens nothing, `workers` opens the workers dock, `cockpit` opens workers and files; applies at restart. | |
|
|
126
|
+
| `interface.panes.notifications` | `failures` | Which terminal run states raise a pane-host toast: `failures`, `all`, `off`; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
127
|
+
| `interface.panes.workers.ratio` | `0.34` | Share of terminal width the workers dock takes (number 0.05 through 0.5); applies at restart. | |
|
|
128
|
+
| `interface.smoothStreaming` | `off` | Presentation-only pacing of streamed assistant text and thinking: `off`, `auto` (TTY heuristics), `on`; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
129
|
+
| `interface.terminalProgress` | `false` | Whether terminal progress (OSC progress) is emitted while a turn runs (boolean); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
130
|
+
| `safety.autonomy` | `auto-edit` | Baseline autonomy for tool admission: `read-only`, `suggest`, `auto-edit`, `full-auto`; applies immediately (an ACP session's own autonomy wins inside that session). | `run --autonomy` (stored as the session override `safety.autonomy`) > session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
131
|
+
| `safety.limits.chatToolCallsPerTurn` | `60` | Soft per-turn tool-call budget for the chat agent (integer >= 1); crossing it blocks further calls with a stop-and-summarize directive, the hard ceiling sits 15 above; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
132
|
+
| `safety.limits.observationBytesPerTurn` | `196608` | Shared per-turn byte pool across all observation-producing tools (integer >= 1); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
133
|
+
| `safety.limits.readBytesPerCall` | `51200` | Per-call byte cap for the read tool (integer >= 1; the tool clamps to a 1024-byte floor); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
134
|
+
| `safety.limits.sessionCostUsd` | `5` | Session spend ceiling in USD enforced by the scheduling budget (number >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
135
|
+
| `safety.review.cadenceToolCalls` | | Also fire the watchdog review every this many tool calls inside a turn (integer of at least 2); absent means turn end only; applies next turn. | |
|
|
136
|
+
| `safety.review.enabled` | `false` | Opt-in turn-end review watchdog that dispatches a worker run after each mutating turn (boolean); applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
137
|
+
| `safety.review.target` | | Target id the turn-end watchdog review run is dispatched to when `safety.review.enabled` is true; absent means the session's active target; applies next dispatch. | |
|
|
138
|
+
| `targets` | `[]` | Configured inference endpoints: a list of target descriptors with unique ids and registered runtime ids; a higher layer's list replaces the whole list; catalog applies next turn, saved routing next session. | |
|
|
139
|
+
| `targets[].auth.apiKeyEnvVar` | | Environment variable read at call time for the API key (set by `--api-key-env`); the whole `auth` block is stripped from project layers. | |
|
|
140
|
+
| `targets[].auth.apiKeyRef` | | Name of a stored credential in `credentials.yaml` that supplies the API key. | |
|
|
141
|
+
| `targets[].auth.headers.<key>` | | Extra HTTP header sent on every request to this target (string map); stripped from project layers as a credential. | |
|
|
142
|
+
| `targets[].auth.oauthProfile` | | OAuth profile name in `credentials.yaml` used for token minting and refresh on OAuth runtimes. | |
|
|
143
|
+
| `targets[].capabilities.audio` | | Capability override: audio input support (boolean); shown in target details and badges only. | |
|
|
144
|
+
| `targets[].capabilities.chat` | | Capability override: whether the model serves chat completions (boolean); overrides probe and catalog values. | |
|
|
145
|
+
| `targets[].capabilities.contextWindow` | | Capability override for the context window in tokens (integer >= 0), reported with provenance `configured`; set with `configure --context-window`. | |
|
|
146
|
+
| `targets[].capabilities.embeddings` | | Capability override: embeddings endpoint support (boolean); shown as the `E` badge. | |
|
|
147
|
+
| `targets[].capabilities.fim` | | Capability override: fill-in-the-middle completion support (boolean); shown as the `F` badge. | |
|
|
148
|
+
| `targets[].capabilities.maxTokens` | | Capability override for the model's max output tokens (integer >= 0); `chat.maxOutputTokens` is clamped to it; set with `configure --max-tokens`. | |
|
|
149
|
+
| `targets[].capabilities.reasoning` | | Capability override: whether the model supports thinking (boolean); false pins the available thinking levels to `off`. | |
|
|
150
|
+
| `targets[].capabilities.rerank` | | Capability override: rerank endpoint support (boolean); shown as the `K` badge. | |
|
|
151
|
+
| `targets[].capabilities.structuredOutputs` | | Capability override for structured output mode: `json-schema`, `gbnf`, `xgrammar`, `none`; read by the worker runtime for schema-locked outputs. | |
|
|
152
|
+
| `targets[].capabilities.thinkingFormat` | | Capability override for how thinking is requested: `qwen-chat-template`, `openrouter`, `zai`, `anthropic-extended`, `deepseek-r1`, `openai-codex`, `harmony`; also narrows the offered thinking levels. | |
|
|
153
|
+
| `targets[].capabilities.toolCallFormat` | | Capability override for the tool-call wire format: `openai`, `anthropic`, `hermes`, `llama3-json`, `mistral`, `qwen`, `xml`; carried into the worker spec model capabilities. | |
|
|
154
|
+
| `targets[].capabilities.tools` | | Capability override: whether the model supports tool calling (boolean); false excludes it from tool-requiring dispatch. | |
|
|
155
|
+
| `targets[].capabilities.vision` | | Capability override: image input support (boolean); drives the catalog input modalities and picker badges. | |
|
|
156
|
+
| `targets[].defaultModel` | | Default wire model id for the target; absent takes the first `wireModels` entry; routing keys with a null model rebase onto it; must be an id the server advertises unless `--force`. | |
|
|
157
|
+
| `targets[].gateway` | | Marks the target as a gateway (boolean, set by `configure --gateway`); carried into runtime metadata and shown as a `gateway` badge by `clio-coder targets`; no runtime behavior keys on it. | |
|
|
158
|
+
| `targets[].id` | | Stable user-facing target id referenced by routing keys, profiles, rosters, and CLI commands; required and unique. | |
|
|
159
|
+
| `targets[].lifecycle` | | Residency policy: `user-managed` makes Clio observe-only on this target (never load or unload models), `clio-coder-managed` (legacy `clio-managed`) opts in; absent means managed. | .clio-coder/settings.local.yaml > .clio-coder/settings.yaml > user settings.yaml > default (managed); SSH node `residency: observe` narrows the remote WorkerSpec to `user-managed`, while an explicit target `user-managed` also wins over node `manage` |
|
|
160
|
+
| `targets[].lmstudio.load.contextLength` | | LM Studio `context_length` sent on `POST /api/v1/models/load` when the model is not resident (integer >= 1); leave `lmstudio.load` absent to keep just-in-time loading. | |
|
|
161
|
+
| `targets[].lmstudio.load.evalBatchSize` | | LM Studio `eval_batch_size` load field (integer >= 1); sent only when set. | |
|
|
162
|
+
| `targets[].lmstudio.load.flashAttention` | | LM Studio `flash_attention` load field (boolean); sent only when set. | |
|
|
163
|
+
| `targets[].lmstudio.load.numExperts` | | LM Studio `num_experts` load field for MoE models (integer >= 1); sent only when set. | |
|
|
164
|
+
| `targets[].lmstudio.load.offloadKvCacheToGpu` | | LM Studio `offload_kv_cache_to_gpu` load field (boolean); sent only when set. | |
|
|
165
|
+
| `targets[].lmstudio.request.draftModel` | | Sends `draft_model` on OpenAI-compatible chat requests for speculative decoding (model id string). | |
|
|
166
|
+
| `targets[].lmstudio.request.reasoning` | | How `reasoning_effort` is sent: `auto` maps the active thinking level, `off` sends `none`, `on` sends `low`, `low`/`medium`/`high` are literal but clamped to the efforts the model advertises. | |
|
|
167
|
+
| `targets[].lmstudio.request.ttlSeconds` | | Sends `ttl` on chat requests so LM Studio auto-evicts the model after this idle time in seconds (integer >= 1). | |
|
|
168
|
+
| `targets[].litellm.request.numRetries` | | Optional LiteLLM router retry override sent as `x-litellm-num-retries` (integer >= 0); use `0` for deterministic physical routes. The OpenAI SDK and Clio interactive transient-retry layers remain disabled for LiteLLM failures. | |
|
|
169
|
+
| `targets[].litellm.request.sendSessionId` | `true` | Whether Clio forwards its stable session id as `x-litellm-session-id` (boolean); applies when the next LiteLLM agent runtime is created. | |
|
|
170
|
+
| `targets[].litellm.request.streamTimeoutSeconds` | | Optional LiteLLM streaming timeout override sent as `x-litellm-stream-timeout` (number from 0.001 through 86400); omit it to keep gateway policy. | |
|
|
171
|
+
| `targets[].litellm.request.tags` | `[clio-coder]` | Additional LiteLLM request tags (list of non-empty strings without commas); Clio always adds `clio-coder`. | |
|
|
172
|
+
| `targets[].litellm.request.timeoutSeconds` | | Optional LiteLLM request/upstream timeout override sent as `x-litellm-timeout` (number from 0.001 through 86400); omit it to keep gateway policy. | |
|
|
173
|
+
| `targets[].maxConcurrentRequests` | | Explicit request-slot limit for this inference endpoint (integer >= 1); overrides live slot discovery and is shared by every target on the same normalized URL; applies next turn. | |
|
|
174
|
+
| `targets[].pricing.cacheRead` | `0` | USD rate for cache-read tokens (number >= 0); 0 when absent. | |
|
|
175
|
+
| `targets[].pricing.cacheWrite` | `0` | USD rate for cache-write tokens (number >= 0); 0 when absent. | |
|
|
176
|
+
| `targets[].pricing.input` | | USD rate per input token unit used for cost accounting when set, taking precedence over catalog pricing (number >= 0); required together with `output`. | |
|
|
177
|
+
| `targets[].pricing.output` | | USD rate per output token unit for cost accounting (number >= 0); required together with `input`. | |
|
|
178
|
+
| `targets[].runtime` | | Runtime descriptor id such as `lmstudio`, `llamacpp`, `openai-compat`, `anthropic`, `claude-sdk` (aliases like `lmstudio-native` are accepted); required. | |
|
|
179
|
+
| `targets[].url` | | Base URL for HTTP runtimes, the server root or its `/v1` mount; absent uses the runtime's default URL. | |
|
|
180
|
+
| `targets[].wireModels` | | Wire model ids the target advertises for routing and the picker (list of strings, deduplicated); merged with probe and catalog discovery. | |
|
|
181
|
+
| `version` | `2` | Schema version of the settings document; must be the integer `2` (a version-1 document is refused with a `clio-coder upgrade` hint); applies at restart. | |
|
|
182
|
+
|
|
183
|
+
## Environment variables
|
|
184
|
+
|
|
185
|
+
Read from the process environment at boot unless the row says otherwise.
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
| Name | Default | Controls | Precedence |
|
|
189
|
+
|---|---|---|---|
|
|
190
|
+
| `AI_AGENT` | `unset` | Clio exports `clio-coder` into every child it spawns (bash tool, workers, code steps, hooks) so child tooling can identify the launching agent; Clio itself only checks it inside the managed git hook. | |
|
|
191
|
+
| `APPDATA` | `~\AppData\Roaming` | Windows-only base directory for the config and data roots (`%APPDATA%\clio-coder\config`, `%APPDATA%\clio-coder\data`); ignored on other platforms. | |
|
|
192
|
+
| `CI` | `unset` | Any non-empty value marks a CI run and makes smooth-streaming `auto` fall back to the immediate coalescer instead of paced animation; explicit `on` is unaffected. | |
|
|
193
|
+
| `CLIO_CODER_ALLOW_EXTERNAL_FULL_ACCESS` | `unset (disabled)` | Exactly `1` lets a `full-auto` dispatch to the claude-code or antigravity-code subprocess runtime pass their dangerous skip-permissions flag; any other value keeps the bypass closed. | |
|
|
194
|
+
| `CLIO_CODER_BIN_DIR` | `~/.local/bin` | Directory holding the `clio-coder` launcher symlink that uninstall removes and the install script creates; a path, defaulting to `~/.local/bin`. | |
|
|
195
|
+
| `CLIO_CODER_BUS_TRACE` | `unset (disabled)` | Exactly `1` subscribes a tracer to the shutdown, session-end, and domain lifecycle bus channels and writes one `[clio-coder:bus]` line per event to stderr. | |
|
|
196
|
+
| `CLIO_CODER_CACHE_DIR` | `platform default (`$XDG_CACHE_HOME/clio-coder`, else `~/.cache/clio-coder`)` | Absolute path for the cache root; beats `CLIO_CODER_HOME/cache` and the platform default, and the fleet-view pane child re-pins it from argv. | env > `CLIO_CODER_HOME/cache` > `XDG_CACHE_HOME` or platform default |
|
|
197
|
+
| `CLIO_CODER_COMMIT_ASSISTED` | `unset` | Set by Clio to `1`/`0` per spawn from the run's attribution evidence; the managed `prepare-commit-msg` hook reads it to append the assisted trailer, and nested seams strip it. | |
|
|
198
|
+
| `CLIO_CODER_COMMIT_AUTHORED` | `unset` | Set by Clio to `1`/`0` per spawn from the run's attribution evidence; the managed `prepare-commit-msg` hook reads `1` to add the co-authored trailer, and nested seams strip it. | |
|
|
199
|
+
| `CLIO_CODER_CONFIG_DIR` | `platform default (`$XDG_CONFIG_HOME/clio-coder`, else `~/.config/clio-coder`)` | Absolute path for the config root; beats `CLIO_CODER_HOME/config` and the platform default, and the fleet-view pane child re-pins it from argv. | env > `CLIO_CODER_HOME/config` > `XDG_CONFIG_HOME` or platform default |
|
|
200
|
+
| `CLIO_CODER_DATA_DIR` | `platform default (`$XDG_DATA_HOME/clio-coder`, else `~/.local/share/clio-coder`)` | Absolute path for the data root; beats `CLIO_CODER_HOME/data` and the platform default, and the fleet-view pane child re-pins it from argv. | env > `CLIO_CODER_HOME/data` > `XDG_DATA_HOME` or platform default |
|
|
201
|
+
| `CLIO_CODER_DEBUG_SHUTDOWN` | `unset (disabled)` | Exactly `1` prints timed `[clio-coder:shutdown]` phase lines and full stack traces of failing domain `stop()` hooks to stderr during shutdown. | |
|
|
202
|
+
| `CLIO_CODER_ENDPOINT_SLOTS_TTL_MS` | `86400000` | Positive integer milliseconds a persisted endpoint slot count stays valid for an endpoint this process has not probed; older records are ignored and pruned. | env > built-in default (no settings key) |
|
|
203
|
+
| `CLIO_CODER_EVAL_RUNNER_STDOUT_FILE` | `unset` | Set by the eval suite runner to the path of the captured runner stdout JSONL for a task's measure step; read only by external graders (evals/behavioral-corpus-grader.mjs), never by src. | |
|
|
204
|
+
| `CLIO_CODER_FORCE_COMPACT` | `unset (disabled)` | Exactly `1` on the interactive process forces the pre-submit compaction to run on every turn while set, regardless of the context threshold. | |
|
|
205
|
+
| `CLIO_CODER_GIT_COMMITS_ENABLED` | `unset (in-process reads treat it as enabled; the hook requires exactly `1`)` | Set by Clio to `1`/`0` from `integrations.git.commitAttribution` for itself and child seams; the managed hook exits unless it is exactly `1`, while absent counts as enabled in process. | `integrations.git.commitAttribution` writes it; env is the transport, not an operator override |
|
|
206
|
+
| `CLIO_CODER_GIT_CONFIG_BASE_COUNT` | `unset` | Set by Clio to the `GIT_CONFIG_COUNT` value before it appended its `core.hooksPath` pair; the hook wrapper and nested seams use it to strip only that pair. | |
|
|
207
|
+
| `CLIO_CODER_GIT_DEFAULT_HOOKS_EQUIVALENT` | `unset` | Set by Clio to the repository's explicitly configured `core.hooksPath` when it equals the default hooks directory, so the hook wrapper can chain the repo's own hook. | |
|
|
208
|
+
| `CLIO_CODER_HOME` | `unset` | Single-tree install root; each role resolves to `<home>/<config\|data\|state\|cache>` unless its per-role `CLIO_CODER_*_DIR` variable is set. | `CLIO_CODER_<ROLE>_DIR` > `CLIO_CODER_HOME/<role>` > XDG or platform default |
|
|
209
|
+
| `CLIO_CODER_HOOK_BUDGET_<PHASE>_MS` | `per-phase built-ins (before_tool 25, after_tool 25, turn_start 50, turn_end 75, on_compaction 150 ms)` | Positive milliseconds budget for one middleware phase (`BEFORE_TOOL`, `AFTER_TOOL`, `TURN_START`, `TURN_END`, `ON_COMPACTION`); beats the global variable for that phase. | `CLIO_CODER_HOOK_BUDGET_<PHASE>_MS` > `CLIO_CODER_HOOK_BUDGET_MS` > built-in per-phase default |
|
|
210
|
+
| `CLIO_CODER_HOOK_BUDGET_DEBUG` | `unset (disabled)` | Exactly `1` prints every post-warmup hook-budget overrun to stderr instead of only steady-state slowness. | |
|
|
211
|
+
| `CLIO_CODER_HOOK_BUDGET_MS` | `per-phase built-ins (before_tool 25, after_tool 25, turn_start 50, turn_end 75, on_compaction 150 ms)` | Positive milliseconds applied to every middleware phase that has no per-phase override; invalid or non-positive values are ignored. | `CLIO_CODER_HOOK_BUDGET_<PHASE>_MS` > `CLIO_CODER_HOOK_BUDGET_MS` > built-in per-phase default |
|
|
212
|
+
| `CLIO_CODER_HOOK_BUDGET_THRESHOLD` | `3` | Positive integer count of overruns within the rolling window that triggers a steady-state slow-hook warning. | |
|
|
213
|
+
| `CLIO_CODER_HOOK_BUDGET_WARMUP_CALLS` | `1` | Non-negative integer number of initial calls per registration and phase that are exempt from budget accounting. | |
|
|
214
|
+
| `CLIO_CODER_HOOK_BUDGET_WINDOW` | `5` | Positive integer size of the rolling post-warmup call window examined for steady-state hook slowness. | |
|
|
215
|
+
| `CLIO_CODER_INJECTED_COMPILE_CACHE` | `unset` | Set by the native worker spawn beside an injected `NODE_COMPILE_CACHE`; the worker entry deletes both when they match, and the `worker` subcommand strips a foreign marker. | |
|
|
216
|
+
| `CLIO_CODER_INSTANT_SHELL` | `unset (enabled)` | Exactly `0` disables the Stage 0 instant interactive shell mounted before service hydration; any other value or unset keeps it on. | |
|
|
217
|
+
| `CLIO_CODER_INTERACTIVE` | `unset (Clio sets `1` itself when stdin is a TTY)` | Exactly `1` marks and forces the interactive TUI; Clio sets it when stdin is a TTY, any other value suppresses the TUI, and bash-tool children never inherit it. | |
|
|
218
|
+
| `CLIO_CODER_LEGACY_MASK` | `unset (disabled)` | Exactly `1` re-enables the destructive stale-observation mask stage before summary compaction; a one-release compatibility escape hatch. | |
|
|
219
|
+
| `CLIO_CODER_LMSTUDIO_CORESIDENT_CONTEXT` | `131072` | Positive integer ceiling on the context length requested when loading an LM Studio model next to another resident model; `off`, `0`, or `false` disables the clamp. | |
|
|
220
|
+
| `CLIO_CODER_MEMORY_TRACE` | `unset (disabled)` | File path for a JSONL trace of proactive task-memory step envelopes including up to 8000 chars of model text per step; off when unset or empty. | |
|
|
221
|
+
| `CLIO_CODER_MODEL_CATALOG_DIRS` | `unset` | PATH-delimited list of extra model-catalog overlay directories, applied after the user and project overlays with the highest precedence. | |
|
|
222
|
+
| `CLIO_CODER_NO_NETWORK_TOOLS` | `unset (disabled)` | Exactly `1` removes the network (RETRIEVE) tools from every registry built in the process; `clio-coder skills-eval` sets it for hermetic arms and `--allow-network` deletes it. | `skills-eval --allow-network` clears it for child arms; otherwise env only |
|
|
223
|
+
| `CLIO_CODER_PACKAGE_ROOT` | `auto-detected` | Path used as the package root for bundled assets and docs instead of walking up to package.json; the docs engine re-reads it live, other callers cache the first answer. | |
|
|
224
|
+
| `CLIO_CODER_REDUCE_MOTION` | `unset (disabled)` | Exactly `1` makes smooth-streaming `auto` use the immediate coalescer; explicit `on` is unaffected. | |
|
|
225
|
+
| `CLIO_CODER_RENDER_TRACE` | `unset (disabled)` | File path for the versioned JSONL render-pipeline trace (timing only, no conversation text), truncated on open; off when unset or empty. | |
|
|
226
|
+
| `CLIO_CODER_REQUIRE_HOME_PREFIX` | `unset (disabled)` | Exactly `1` aborts startup when any resolved Clio directory lies outside `CLIO_CODER_HOME`; a test-harness guardrail that does nothing when `CLIO_CODER_HOME` is unset. | |
|
|
227
|
+
| `CLIO_CODER_RIGOR` | `repo-derived` | `high` or `normal` (case-insensitive) overrides the finish-contract evidence bar for the orchestrator and dispatched workers; any other value means no override. | env > workspace validation contract file (`.clio-coder/validation.yaml`, `validation.yaml`, `VALIDATION.md` raise it to `high`) > `normal`; no settings key |
|
|
228
|
+
| `CLIO_CODER_RUN_OVERRIDES` | `unset` | JSON object (`maxContextTokens`, `kvCacheMode`, `sampling`) that `clio-coder run` and print modes write via `withRunOverrides` for the run's scope; workers inherit it and malformed input is dropped. | |
|
|
229
|
+
| `CLIO_CODER_SCREEN_READER` | `unset (disabled)` | Exactly `1` makes smooth-streaming `auto` use the immediate coalescer so a screen reader gets the low-motion update behavior; explicit `on` is unaffected. | |
|
|
230
|
+
| `CLIO_CODER_SHUTDOWN_HOOK_MS` | `500` | Positive integer milliseconds each shutdown and domain `stop()` hook may run before the coordinator moves on; non-positive or unparsable values use the default. | |
|
|
231
|
+
| `CLIO_CODER_SKILL_CATALOG_DIR` | `unset` | Path to a local skill catalog used by the marketplace and the provenance pin manifest; beats `<cwd>/skills` and the packaged catalog but not an explicit catalogDir option. | explicit catalogDir option > env > `<cwd>/skills` > packaged catalog |
|
|
232
|
+
| `CLIO_CODER_SKILL_MARKETPLACE_INDEX` | `unset` | Path to a skill-marketplace index file consulted after the catalog; an explicit indexPath option beats it and the built-in index path is the fallback. | explicit indexPath option > env > default index path |
|
|
233
|
+
| `CLIO_CODER_STATE_DIR` | `platform default (`$XDG_STATE_HOME/clio-coder`, else `~/.local/state/clio-coder`)` | Absolute path for the state root; beats `CLIO_CODER_HOME/state` and the platform default, and the fleet-view pane child re-pins it from argv. | env > `CLIO_CODER_HOME/state` > `XDG_STATE_HOME` or platform default |
|
|
234
|
+
| `CLIO_CODER_STATUS_STUCK_MS` | `180000` | Positive number of milliseconds of elapsed turn time after which the status watchdog reports the turn as stuck (tier 4). | |
|
|
235
|
+
| `CLIO_CODER_TEST_STAGE1_DELAY_MS` | `0` | Under `NODE_ENV=test` only, integer milliseconds (clamped to 0..5000) to sleep between the Stage 0 shell mount and Stage 1 hydration for PTY tests. | |
|
|
236
|
+
| `CLIO_CODER_TEST_STAGE1_FAIL` | `unset (disabled)` | Under `NODE_ENV=test` only, exactly `1` throws an injected Stage 1 hydration failure after the instant shell mounts. | |
|
|
237
|
+
| `CLIO_CODER_TEST_UPGRADE_NO_NETWORK` | `unset (disabled)` | Any non-empty value makes `clio-coder upgrade` skip the npm install step so upgrade tests run offline. | |
|
|
238
|
+
| `CLIO_CODER_TIMING` | `unset (disabled)` | Exactly `1` prints the startup timer report after the banner, but only on the bannered non-interactive boot (not the TUI, headless, or ACP paths). | |
|
|
239
|
+
| `CLIO_CODER_TRACE_BOOT` | `unset (disabled)` | Exactly `1` writes a `[clio-coder:boot] +<ms> <phase>` line to stderr for every boot phase marker, including startup-timer marks. | |
|
|
240
|
+
| `CLIO_CODER_TRACE_MAX_BYTES` | `134217728` | Integer of at least 1048576 bytes the SQLite trace mirror may occupy before the oldest terminal runs are pruned; smaller or invalid values fall back. | env > built-in default (no settings key) |
|
|
241
|
+
| `CLIO_CODER_TRACE_RETENTION_DAYS` | `30` | Integer of at least 1 giving the maximum age in days of terminal rows kept in the SQLite trace mirror; invalid values fall back. | env > built-in default (no settings key) |
|
|
242
|
+
| `CLIO_CODER_WORKER_FAUX` | `unset (disabled)` | Exactly `1` registers the pi-ai faux provider and queues one deterministic assistant reply so a worker subprocess runs end to end without credentials (tests only). | |
|
|
243
|
+
| `CLIO_CODER_WORKER_FAUX_ERROR_MESSAGE` | `unset` | Optional assistant `errorMessage` attached to the faux worker reply when `CLIO_CODER_WORKER_FAUX=1`; empty means no error. | |
|
|
244
|
+
| `CLIO_CODER_WORKER_FAUX_MODEL` | `faux-model` | Model id registered under the faux provider when `CLIO_CODER_WORKER_FAUX=1`. | |
|
|
245
|
+
| `CLIO_CODER_WORKER_FAUX_STOP_REASON` | `stop` | Assistant `stopReason` of the faux reply when `CLIO_CODER_WORKER_FAUX=1`, cast unchecked to the engine stop-reason type. | |
|
|
246
|
+
| `CLIO_CODER_WORKER_FAUX_TEXT` | `ok` | Assistant response text of the faux reply when `CLIO_CODER_WORKER_FAUX=1`. | |
|
|
247
|
+
| `CLIO_CODER_WORKER_LABELS` | `unset (no labels)` | Set by the SSH transport from the node's configured `labels`; the worker entry splits the comma-separated list and attests it on the control lane. | |
|
|
248
|
+
| `CLIO_CODER_WORKER_PGID` | `worker's own pid (null on Windows)` | Set by the SSH transport to the login shell's pid (`$$`); the worker entry announces it as the process group an abort must signal, else its own pid. | |
|
|
249
|
+
| `CLIO_CODER_WORKER_RUN` | `unset` | Set to `1` by the worker entry on itself so every child sees it; `installSkillFromSource` stamps `installed-by: worker` when it is exactly `1`. | |
|
|
250
|
+
| `CLIO_CODER_YAZI_PICK_TOKEN` | `unset` | Set by the Yazi companion session to a random UUID (both spellings) in Yazi's env; the generated keymap expands `$CLIO_CODER_YAZI_PICK_TOKEN` into the pick event Clio matches. | |
|
|
251
|
+
| `COLORTERM` | `unset` | A value containing `truecolor` or `24bit` switches the theme to 24-bit SGR colors; otherwise 256-color codes are used unless `TERM` says truecolor. | |
|
|
252
|
+
| `COLUMNS` | `80` | When stdout is not a TTY, a positive number sets the table width for CLI listings (minimum 20); the TTY width wins when present and 80 is the fallback. | |
|
|
253
|
+
| `EDITOR` | `first of `nano`, `vi` on PATH` | External editor command for the TUI editor handoff, used when `VISUAL` is unset; falls back to the first of `nano` or `vi` found on PATH. | `VISUAL` > `EDITOR` > `nano` > `vi` |
|
|
254
|
+
| `GIT_CONFIG_COUNT` | `unset (treated as 0)` | Git's config-entry count; Clio appends its `core.hooksPath` pair at that index (skipping attribution when invalid or above 1024) and nested seams restore it. | |
|
|
255
|
+
| `HERDR_ENV` | `unset` | Must be exactly `1` for Clio to treat itself as running inside a herdr pane host; otherwise pane detection reports none. | `interface.panes.enabled` gates the probe first; then env |
|
|
256
|
+
| `HERDR_SESSION` | `unset` | Names the herdr session whose socket (`<herdr config>/sessions/<id>/herdr.sock`) is tried after `HERDR_SOCKET_PATH` and before the global socket. | |
|
|
257
|
+
| `HERDR_SOCKET_PATH` | `unset` | Explicit herdr socket path tried first when connecting to the pane host. | |
|
|
258
|
+
| `HOME` | `unset (os.homedir() where a fallback exists)` | Home directory used to strip the home prefix from eval artifacts, to collapse displayed paths to `~`, and as the herdr config base when `XDG_CONFIG_HOME` is unset. | |
|
|
259
|
+
| `LOCALAPPDATA` | `~\AppData\Local` | Windows-only base directory for the state and cache roots (`%LOCALAPPDATA%\clio-coder\state`, `%LOCALAPPDATA%\clio-coder\cache`); ignored on other platforms. | |
|
|
260
|
+
| `LOGNAME` | `unknown` | Fallback user name for run identity when `os.userInfo()` throws and `USER` is empty; otherwise `unknown`. | |
|
|
261
|
+
| `LSB_JOBID` | `unset` | Non-empty value records an LSF job in the run identity (`scheduler: lsf`), checked after the SLURM and PBS job ids. | |
|
|
262
|
+
| `LSB_JOBNAME` | `unset` | Job name recorded beside `LSB_JOBID` in the LSF run identity; ignored without it. | |
|
|
263
|
+
| `LSF_CLUSTER_NAME` | `unset` | Cluster name recorded beside `LSB_JOBID` in the LSF run identity; ignored without it. | |
|
|
264
|
+
| `NO_COLOR` | `unset` | Any non-empty value drops every foreground and background SGR color from the theme; bold, dim, italic, and underline stay. | |
|
|
265
|
+
| `NODE_COMPILE_CACHE` | `unset (Clio uses `<cache>/v8-compile-cache` once the cache root exists)` | Presence (even empty) means the operator owns the V8 compile cache: Clio calls `enableCompileCache()` with no directory and never injects its own cache into workers. | |
|
|
266
|
+
| `NODE_DISABLE_COMPILE_CACHE` | `unset` | Presence disables Clio's compile cache for this process and stops the worker spawn from injecting one. | |
|
|
267
|
+
| `NODE_ENV` | `unset` | Exactly `test` unlocks the Stage 1 interleaving seams (`CLIO_CODER_TEST_STAGE1_DELAY_MS`, `CLIO_CODER_TEST_STAGE1_FAIL`); no other value matters. | |
|
|
268
|
+
| `NODE_OPTIONS` | `unset` | Scanned for `--trace-warnings`; when present, the trace store stops suppressing Node's `node:sqlite` ExperimentalWarning. | |
|
|
269
|
+
| `OLLAMA_NUM_PARALLEL` | `1` | Positive integer parallel slot count assumed for a local Ollama server during discovery; anything else counts as 1. | |
|
|
270
|
+
| `PATH` | `unset` | Searched for executables by interop CLI detection, toolchain resolution, the uninstall shadow check, and editor probing; the bash tool's login-env capture is discarded without it. | |
|
|
271
|
+
| `PBS_JOBID` | `unset` | Non-empty value records a PBS job in the run identity (`scheduler: pbs`), checked after the SLURM id and before LSF. | |
|
|
272
|
+
| `PBS_JOBNAME` | `unset` | Job name recorded beside `PBS_JOBID` in the PBS run identity; ignored without it. | |
|
|
273
|
+
| `PBS_O_HOST` | `unset` | Submission host recorded as the cluster beside `PBS_JOBID` in the PBS run identity; ignored without it. | |
|
|
274
|
+
| `SHELL` | `/bin/sh` | Shell run with `-lc` for the external editor command and for shell-expanded config values on POSIX; defaults to `/bin/sh` (Windows uses `ComSpec`). | |
|
|
275
|
+
| `SLURM_CLUSTER_NAME` | `unset` | Cluster name recorded beside `SLURM_JOB_ID` in the SLURM run identity; ignored without it. | |
|
|
276
|
+
| `SLURM_JOB_ID` | `unset` | Non-empty value records a SLURM job in the run identity (`scheduler: slurm`); it takes priority over the PBS and LSF ids. | |
|
|
277
|
+
| `SLURM_JOB_NAME` | `unset` | Job name recorded beside `SLURM_JOB_ID` in the SLURM run identity; ignored without it. | |
|
|
278
|
+
| `SSH_CONNECTION` | `unset` | Any non-empty value marks a remote session and makes smooth-streaming `auto` use the immediate coalescer. | |
|
|
279
|
+
| `SSH_TTY` | `unset` | Any non-empty value marks a remote TTY and makes smooth-streaming `auto` use the immediate coalescer. | |
|
|
280
|
+
| `STY` | `unset` | Any non-empty value (GNU screen) makes smooth-streaming `auto` use the immediate coalescer. | |
|
|
281
|
+
| `TERM` | `unset` | Empty, `dumb`, or `unknown` disables smooth-streaming `auto`; a value containing `truecolor` or `24bit` enables 24-bit theme colors. | |
|
|
282
|
+
| `TERM_PROGRAM` | `unset` | Terminal program name; `WezTerm`, `iTerm.app`, and Windows Terminal (with `WT_SESSION`) route desktop notifications through OSC 9 (src/interactive/footer/notifications.ts). | |
|
|
283
|
+
| `TMUX` | `unset` | Any non-empty value (inside tmux) makes smooth-streaming `auto` use the immediate coalescer. | |
|
|
284
|
+
| `TZ` | `unset (system zone)` | Time zone used to name the local-date audit log file; the formatter is rebuilt whenever the value changes mid-process. | |
|
|
285
|
+
| `USER` | `unknown` | Fallback user name for run identity when `os.userInfo()` throws, checked before `LOGNAME`; otherwise `unknown`. | |
|
|
286
|
+
| `VISUAL` | `unset` | Preferred external editor command for the TUI editor handoff, checked before `EDITOR`. | `VISUAL` > `EDITOR` > `nano` > `vi` |
|
|
287
|
+
| `WT_SESSION` | `unset` | Any non-empty value (Windows Terminal) routes desktop notifications to OSC 9 instead of OSC 777. | |
|
|
288
|
+
| `XDG_CACHE_HOME` | `~/.cache` | Linux base for the default cache root (`$XDG_CACHE_HOME/clio-coder`) when neither `CLIO_CODER_CACHE_DIR` nor `CLIO_CODER_HOME` is set. | |
|
|
289
|
+
| `XDG_CONFIG_HOME` | `~/.config` | Linux base for the default config root, the herdr config directory, and (when absolute) the user's own Yazi config directory. | |
|
|
290
|
+
| `XDG_DATA_HOME` | `~/.local/share` | Linux base for the default data root (`$XDG_DATA_HOME/clio-coder`) when neither `CLIO_CODER_DATA_DIR` nor `CLIO_CODER_HOME` is set. | |
|
|
291
|
+
| `XDG_STATE_HOME` | `~/.local/state` | Linux base for the default state root (`$XDG_STATE_HOME/clio-coder`) when neither `CLIO_CODER_STATE_DIR` nor `CLIO_CODER_HOME` is set. | |
|
|
292
|
+
|
|
293
|
+
## CLI flags
|
|
294
|
+
|
|
295
|
+
Grouped by command. Global flags appear under `global`.
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
### `acp`
|
|
299
|
+
|
|
300
|
+
| Flag | Controls |
|
|
301
|
+
|---|---|
|
|
302
|
+
| `--acp` | Tolerated as a leading no-op so another dispatcher can hand the `acp` command the flag spelling; Clio's own argv parser already rewrites a global `--acp` into the command. |
|
|
303
|
+
| `--cwd` | Workspace root the ACP server boots in and opens sessions at; resolved and canonicalized through realpath at boot. |
|
|
304
|
+
| `--help` | Print the command's usage and exit. |
|
|
305
|
+
| `--permission-timeout` | Milliseconds a mediated permission request may wait for the ACP client before it expires; whole number from 1 to the timer maximum. |
|
|
306
|
+
| `-h` | Short form of --help. |
|
|
307
|
+
|
|
308
|
+
### `agents`
|
|
309
|
+
|
|
310
|
+
| Flag | Controls |
|
|
311
|
+
|---|---|
|
|
312
|
+
| `--all` | Include shadow and internal agent specs reserved for Clio orchestration in the `agents` listing. |
|
|
313
|
+
| `--help` | Print the command's usage and exit. |
|
|
314
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
315
|
+
| `-h` | Short form of --help. |
|
|
316
|
+
|
|
317
|
+
### `auth`
|
|
318
|
+
|
|
319
|
+
| Flag | Controls |
|
|
320
|
+
|---|---|
|
|
321
|
+
| `--api-key` | For `auth login`, store this literal API key for the named target or runtime instead of running the interactive credential flow. |
|
|
322
|
+
| `--help` | Print the auth usage and exit; accepted by `auth list`, `status`, `login`, and `logout`. |
|
|
323
|
+
| `-h` | Short form of --help. |
|
|
324
|
+
|
|
325
|
+
### `components`
|
|
326
|
+
|
|
327
|
+
| Flag | Controls |
|
|
328
|
+
|---|---|
|
|
329
|
+
| `--from` | For `dev components diff`, path of the baseline snapshot JSON. |
|
|
330
|
+
| `--help` | Print the command's usage and exit. |
|
|
331
|
+
| `--json` | Emit JSON for `dev components list` and `dev components diff` instead of the text rendering. |
|
|
332
|
+
| `--out` | For `dev components snapshot`, path where the component snapshot JSON is written (required). |
|
|
333
|
+
| `--to` | For `dev components diff`, path of the candidate snapshot JSON. |
|
|
334
|
+
| `-h` | Short form of --help. |
|
|
335
|
+
|
|
336
|
+
### `config`
|
|
337
|
+
|
|
338
|
+
| Flag | Controls |
|
|
339
|
+
|---|---|
|
|
340
|
+
| `--help` | Print the command's usage and exit. |
|
|
341
|
+
| `--json` | For `config inspect`, emit the customization graph as JSON. |
|
|
342
|
+
| `-h` | Short form of --help. |
|
|
343
|
+
|
|
344
|
+
### `configure`
|
|
345
|
+
|
|
346
|
+
| Flag | Controls |
|
|
347
|
+
|---|---|
|
|
348
|
+
| `--agent-profile` | Save the target as a named `fleet.profiles` entry under this name (non-interactive; mutually exclusive with `--fleet-model`); `targets add` forwards the same flags. |
|
|
349
|
+
| `--agent-profile-model` | Model id stored on the fleet profile created by `--agent-profile`. |
|
|
350
|
+
| `--all` | With `--list`, list every registered runtime including aliases instead of only the user-facing ones. |
|
|
351
|
+
| `--api-key` | Store this literal API key in credentials.yaml for the target being registered. |
|
|
352
|
+
| `--api-key-env` | Name of the environment variable read for the target's API key at call time, instead of storing a literal. |
|
|
353
|
+
| `--background-model` | Model id to use when this target is set as the proactive task-memory (background) target. |
|
|
354
|
+
| `--context-window` | Capability override: positive integer context window in tokens recorded on the target instead of the probed or catalog value. |
|
|
355
|
+
| `--fleet-model` | Model id stored as the fleet default model when this target becomes the fleet default target (mutually exclusive with `--agent-profile`). |
|
|
356
|
+
| `--force` | Save a model outside the runtime catalog, or one the target does not advertise, without refusing. |
|
|
357
|
+
| `--gateway` | Mark the registered target as a gateway. |
|
|
358
|
+
| `--help` | Print the command's usage and exit. |
|
|
359
|
+
| `--id` | Target id to register non-interactively (required with `--runtime`); `targets add` forwards the same flags. |
|
|
360
|
+
| `--interop` | Review coding agents detected on this machine and connect one as a delegation peer; without a TTY it prints the proposals and writes nothing. |
|
|
361
|
+
| `--lifecycle` | Resident-model lifecycle policy stored on the target: `user-managed` or `clio-coder-managed`. |
|
|
362
|
+
| `--list` | List target runtimes (user-facing only unless `--all`) and exit without configuring anything. |
|
|
363
|
+
| `--max-tokens` | Capability override: positive integer output-token limit recorded on the target. |
|
|
364
|
+
| `--model` | Default wire model id stored on the target being registered. |
|
|
365
|
+
| `--orchestrator-model` | Model id to use when this target is set as the chat (orchestrator) target. |
|
|
366
|
+
| `--reasoning` | Capability override: `true` or `false` for whether the target's model supports reasoning. |
|
|
367
|
+
| `--remove` | Remove the target with this id from settings.yaml and exit; `targets remove <id>` is the documented form. |
|
|
368
|
+
| `--rename` | Takes two values, old id and new id, and renames that target in settings.yaml; `targets rename <old> <new>` is the documented form. |
|
|
369
|
+
| `--runtime` | Runtime id for the target registered non-interactively with `--id`. |
|
|
370
|
+
| `--set-background` | Make the registered target the proactive task-memory (background) target. |
|
|
371
|
+
| `--set-fleet-default` | Make the registered target the fleet default dispatch target. |
|
|
372
|
+
| `--set-orchestrator` | Make the registered target the chat (orchestrator) target. |
|
|
373
|
+
| `--url` | Target base URL (http(s):// or ws://) for the runtime being registered. |
|
|
374
|
+
| `-h` | Short form of --help. |
|
|
375
|
+
|
|
376
|
+
### `context`
|
|
377
|
+
|
|
378
|
+
| Flag | Controls |
|
|
379
|
+
|---|---|
|
|
380
|
+
| `--all` | For `context reset`, also remove the local CLIO-CODER.md after a second confirmation; override files stay human-owned. |
|
|
381
|
+
| `--budgets` | For `context replay`, comma-separated positive-integer token budgets each policy is replayed against. |
|
|
382
|
+
| `--depth` | For `context wiki`, generation depth: `auto`, `simple`, `medium`, or `detailed`. |
|
|
383
|
+
| `--help` | Print the command's usage and exit. |
|
|
384
|
+
| `--json` | For `context index`, emit JSON; for `context replay`, `--json <path>` writes the stable JSON report to that path instead. |
|
|
385
|
+
| `--md` | For `context replay`, path to write the Markdown report to instead of printing it. |
|
|
386
|
+
| `--min-evictable-tokens` | For `context replay`, non-negative integer tool-result size in tokens below which results are never evicted. |
|
|
387
|
+
| `--model` | For `context wiki`, wire model id for the documenter model instead of the configured one; pair with `--target`. |
|
|
388
|
+
| `--no-filter` | For `context replay`, include every readable transcript instead of only the filtered active-path sessions. |
|
|
389
|
+
| `--policies` | For `context replay`, comma-separated policy ids from none, random, age-horizon, structural-v1, oracle. |
|
|
390
|
+
| `--protect-last-turns` | For `context replay`, integer (at least 1) count of recent user turns whose observations are never evicted. |
|
|
391
|
+
| `--seed` | For `context replay`, integer seed for the deterministic random policy. |
|
|
392
|
+
| `--session` | For `context working-set`, the session id or path whose working-set fold and path index are printed (required). |
|
|
393
|
+
| `--sessions` | For `context replay`, one or more session directories, sessions roots, or ledger JSONL files; consumes values until the next `--` flag. |
|
|
394
|
+
| `--status` | For `context wiki`, print the wiki's presence, page count, git head, and staleness instead of generating. |
|
|
395
|
+
| `--synthetic` | For `context replay`, comma-separated procedural corpus ids to replay instead of, or alongside, `--sessions`. |
|
|
396
|
+
| `--target` | For `context replay`, post-eviction pressure ratio (above 0, below 1 and below `--threshold`); for `context wiki`, the target id for the documenter model. |
|
|
397
|
+
| `--thinking` | For `context wiki`, documenter thinking level: `off`, `low`, `medium`, or `high`; pair with `--target`. |
|
|
398
|
+
| `--threshold` | For `context replay`, pressure ratio (above 0, at most 1) at which eviction triggers. |
|
|
399
|
+
| `--update` | For `context wiki`, force an update pass over the existing wiki instead of the default generate-or-noop. |
|
|
400
|
+
| `--wiki` | For `context refresh`, also update the existing Markdown wiki after re-indexing the codewiki. |
|
|
401
|
+
| `--yes` | For `context reset`, answer every confirmation yes; required when stdin is not a terminal. |
|
|
402
|
+
| `-h` | Short form of --help. |
|
|
403
|
+
| `-y` | Short form of --yes for `context reset`. |
|
|
404
|
+
|
|
405
|
+
### `docs`
|
|
406
|
+
|
|
407
|
+
| Flag | Controls |
|
|
408
|
+
|---|---|
|
|
409
|
+
| `--help` | Print the command's usage and exit. |
|
|
410
|
+
| `--no-open` | Do not launch a browser; print the local documentation URL only. |
|
|
411
|
+
| `-h` | Short form of --help. |
|
|
412
|
+
|
|
413
|
+
### `doctor`
|
|
414
|
+
|
|
415
|
+
| Flag | Controls |
|
|
416
|
+
|---|---|
|
|
417
|
+
| `--fix` | Repair structure (missing directories and template files, credential file permissions) instead of the read-only diagnosis. |
|
|
418
|
+
| `--help` | Print the command's usage and exit. |
|
|
419
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
420
|
+
| `-h` | Short form of --help. |
|
|
421
|
+
|
|
422
|
+
### `eval`
|
|
423
|
+
|
|
424
|
+
| Flag | Controls |
|
|
425
|
+
|---|---|
|
|
426
|
+
| `--allow-config-drift` | For `eval compare`, proceed when the two artifacts' configs differ and label the comparison as config drift allowed. |
|
|
427
|
+
| `--baseline` | For `eval gate`, the baseline eval id the candidate is gated against (required). |
|
|
428
|
+
| `--clio-coder-entry` | For `eval run`, path to the clio-coder CLI entry the runner executes; a relative path is pinned to the invoking directory. |
|
|
429
|
+
| `--format` | For `eval report`: `text`, `json`, `md`, `swe-jsonl`, or `junit`; for `eval compare`: `text`, `json`, `md`, or `junit`. |
|
|
430
|
+
| `--help` | Print the command's usage and exit. |
|
|
431
|
+
| `--json` | For `eval inventory`, the only accepted argument; emits the bounded machine-readable inventory. |
|
|
432
|
+
| `--metric` | For `eval compare`, the behavioral metric or metric family the comparison is scored on. |
|
|
433
|
+
| `--model` | For `eval run`, wire model id that overrides the suite's model. |
|
|
434
|
+
| `--out` | For `eval run`, path where the eval artifact is written. |
|
|
435
|
+
| `--repeat` | For `eval run --task-file`, positive integer repetitions per v1 task. |
|
|
436
|
+
| `--suite` | For `eval validate` and `eval run`, path to the Suite v2 YAML; run takes exactly one of `--suite` or `--task-file`. |
|
|
437
|
+
| `--target` | For `eval run`, target id that overrides the suite's target. |
|
|
438
|
+
| `--task-file` | For `eval run`, path to a compatibility v1 task file loaded as a suite. |
|
|
439
|
+
| `--thresholds` | For `eval gate`, path to a thresholds file replacing the built-in gate thresholds. |
|
|
440
|
+
| `--trials` | For `eval run`, positive integer overriding the suite's `matrix.repeats` and requesting a fresh workspace per matrix item. |
|
|
441
|
+
| `-h` | Short form of --help. |
|
|
442
|
+
|
|
443
|
+
### `evidence`
|
|
444
|
+
|
|
445
|
+
| Flag | Controls |
|
|
446
|
+
|---|---|
|
|
447
|
+
| `--eval` | For `evidence build`, the eval id to build evidence from. |
|
|
448
|
+
| `--help` | Print the command's usage and exit. |
|
|
449
|
+
| `--json` | Emit JSON for `evidence inspect`; for `evidence inventory` it is the only accepted argument. |
|
|
450
|
+
| `--run` | For `evidence build`, the run id to build evidence from. |
|
|
451
|
+
| `--session` | For `evidence build`, the session id to build evidence from. |
|
|
452
|
+
| `-h` | Short form of --help. |
|
|
453
|
+
|
|
454
|
+
### `evolve`
|
|
455
|
+
|
|
456
|
+
| Flag | Controls |
|
|
457
|
+
|---|---|
|
|
458
|
+
| `--help` | Print the `dev evolve manifest` usage and exit. |
|
|
459
|
+
| `-h` | Short form of --help for `dev evolve`. |
|
|
460
|
+
|
|
461
|
+
### `extensions`
|
|
462
|
+
|
|
463
|
+
| Flag | Controls |
|
|
464
|
+
|---|---|
|
|
465
|
+
| `--all` | For `extensions list`, include every installed record instead of only effective ones plus invalid or incompatible ones. |
|
|
466
|
+
| `--force` | For `extensions install`, overwrite an already installed extension with the same id. |
|
|
467
|
+
| `--help` | Print the command's usage and exit. |
|
|
468
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
469
|
+
| `--project` | Scope list, install, enable, disable, or remove to the project extension store; mutually exclusive with `--user`. |
|
|
470
|
+
| `--user` | Scope list, install, enable, disable, or remove to the user extension store; mutually exclusive with `--project`. |
|
|
471
|
+
| `-f` | Short form of --force for `extensions install`. |
|
|
472
|
+
| `-h` | Short form of --help. |
|
|
473
|
+
|
|
474
|
+
### `fleet`
|
|
475
|
+
|
|
476
|
+
| Flag | Controls |
|
|
477
|
+
|---|---|
|
|
478
|
+
| `--cache-dir` | For `fleet view`, absolute cache directory pinned for this self-invocation; sets CLIO_CODER_CACHE_DIR before any read (internal pane-shell flag). |
|
|
479
|
+
| `--config-dir` | For `fleet view`, absolute config directory pinned for this self-invocation; sets CLIO_CODER_CONFIG_DIR before any read (internal pane-shell flag). |
|
|
480
|
+
| `--data-dir` | For `fleet view`, absolute data directory pinned for this self-invocation; sets CLIO_CODER_DATA_DIR before any read (internal pane-shell flag). |
|
|
481
|
+
| `--follow` | For `fleet view <runId>`, keep tailing the run journal until its terminal line, then stay open until q. |
|
|
482
|
+
| `--from` | For `fleet new <name>`, the shipped builtin contract to copy: `build-review`, `build-test`, or `sdlc` (required). |
|
|
483
|
+
| `--help` | Print the command's usage and exit. |
|
|
484
|
+
| `--json` | Emit JSON for `fleet validate`, `graph`, `run` (step receipts), `status`, `drain`, and `resume`; the only accepted argument for `inspect` and `decisions`. |
|
|
485
|
+
| `--resume` | For `fleet run`, run id of a prior run of the same plan whose completed prefix is replayed before the rest executes. |
|
|
486
|
+
| `--state-dir` | For `fleet view`, absolute state directory pinned for this self-invocation; sets CLIO_CODER_STATE_DIR before any read (internal pane-shell flag). |
|
|
487
|
+
| `--var` | For `fleet run`, one `key=value` template variable for the contract; repeatable. |
|
|
488
|
+
| `--watch` | For `fleet view`, path of a one-line selection file naming the run id to follow, retargeting live as it changes; takes no run id and excludes `--follow`. |
|
|
489
|
+
| `-f` | Short form of --follow for `fleet view`. |
|
|
490
|
+
| `-h` | Short form of --help. |
|
|
491
|
+
|
|
492
|
+
### `global`
|
|
493
|
+
|
|
494
|
+
| Flag | Controls |
|
|
495
|
+
|---|---|
|
|
496
|
+
| `--acp` | Startup alias for the `acp` subcommand: rewrites the rest of the line onto `clio-coder acp`, so every trailing option is parsed by the ACP parser. |
|
|
497
|
+
| `--all` | With `--help`, appends the `clio-coder dev` command list (components, evolve, share) to the top-level help; no effect otherwise. |
|
|
498
|
+
| `--api-key` | Startup flag taking a literal key that overrides the stored credential for the target this invocation resolves; must precede the subcommand. |
|
|
499
|
+
| `--continue` | Refused before the subcommand: exits 2 with the hint that sessions are resumed from inside the app by typing /resume; nothing is parsed from it. `run --continue` is a separate flag. |
|
|
500
|
+
| `--help` | Print the top-level command list and exit 0 when given before any subcommand. |
|
|
501
|
+
| `--no-context-files` | Startup flag that skips CLIO-CODER.md project-context injection for this invocation; must precede the subcommand (run rejects it with a position hint). |
|
|
502
|
+
| `--no-panes` | Startup flag that disables guest pane integration for this invocation; must precede the subcommand. |
|
|
503
|
+
| `--no-skills` | Startup flag that disables skill discovery for this invocation while still honoring explicit `--skill` paths; also accepted after `run`. |
|
|
504
|
+
| `--resume` | Refused before the subcommand: exits 2 with the hint that sessions are resumed from inside the app by typing /resume; nothing is parsed from it. |
|
|
505
|
+
| `--skill` | Startup flag taking one skill file or directory to load for this invocation; repeatable, also accepted after `run`, and the value may not be a subcommand name. |
|
|
506
|
+
| `--version` | Print the installed version and exit; `clio-coder version` is the subcommand form. |
|
|
507
|
+
| `--with-panes` | Startup flag that activates guest pane integration for this invocation when a reachable herdr session exists; must precede the subcommand. |
|
|
508
|
+
| `-c` | Short form of --continue, refused with the same /resume hint. |
|
|
509
|
+
| `-h` | Short form of --help. |
|
|
510
|
+
| `-nc` | Short form of --no-context-files. |
|
|
511
|
+
| `-r` | Short form of --resume, refused with the same /resume hint. |
|
|
512
|
+
| `-v` | Short form of --version. |
|
|
513
|
+
|
|
514
|
+
### `init`
|
|
515
|
+
|
|
516
|
+
| Flag | Controls |
|
|
517
|
+
|---|---|
|
|
518
|
+
| `--help` | Print the `context init` usage and exit. |
|
|
519
|
+
| `--json` | For `context init`, emit one machine-readable result object on stdout and suppress the progress text. |
|
|
520
|
+
| `--model` | For `context init`, Scout wire model id override; requires `--target`. |
|
|
521
|
+
| `--target` | For `context init`, target id for the Scout exploration model instead of the configured one. |
|
|
522
|
+
| `--thinking` | For `context init`, Scout thinking level: off, minimal, low, medium, high, xhigh, or max; requires `--target`. |
|
|
523
|
+
| `--yes` | For `context init`, update .gitignore for Clio context artifacts without prompting. |
|
|
524
|
+
| `-h` | Short form of --help for `context init`. |
|
|
525
|
+
| `-y` | Short form of --yes for `context init`. |
|
|
526
|
+
|
|
527
|
+
### `interop`
|
|
528
|
+
|
|
529
|
+
| Flag | Controls |
|
|
530
|
+
|---|---|
|
|
531
|
+
| `--help` | Print the interop usage and exit. |
|
|
532
|
+
| `--json` | For `interop inspect`, the only accepted argument; emits the detected agent inventory with no native paths. |
|
|
533
|
+
| `-h` | Short form of --help. |
|
|
534
|
+
|
|
535
|
+
### `library`
|
|
536
|
+
|
|
537
|
+
| Flag | Controls |
|
|
538
|
+
|---|---|
|
|
539
|
+
| `--from` | For `library add`, a catalog directory or path to install from; the literal `catalog` selects the default catalog. |
|
|
540
|
+
| `--help` | Print the command's usage and exit. |
|
|
541
|
+
| `--json` | Emit JSON for `library list`, `search`, and `add`. |
|
|
542
|
+
| `--kind` | For `library list` and `library search`, restrict to one entry kind: `skill`, `agent`, `prompt`, or `fleet`. |
|
|
543
|
+
| `--with-requirements` | For `library add`, also install the entry's unsatisfied requirements instead of refusing. |
|
|
544
|
+
| `--yes` | For `library add`, confirm the install writes; without it the plan is printed and nothing is written. |
|
|
545
|
+
| `-h` | Short form of --help. |
|
|
546
|
+
|
|
547
|
+
### `memory`
|
|
548
|
+
|
|
549
|
+
| Flag | Controls |
|
|
550
|
+
|---|---|
|
|
551
|
+
| `--acknowledge-global` | For `memory propose`/`promote` with `--scope global`, the explicit acknowledgement required to create a global-scope record. |
|
|
552
|
+
| `--agent` | For `memory propose`/`promote` with `--scope agent`, the source agent id. |
|
|
553
|
+
| `--entry` | For `memory promote`, one handoff entry id to promote; repeatable, every entry when omitted. |
|
|
554
|
+
| `--from-evidence` | For `memory propose`, the evidence id the proposal is derived from (required). |
|
|
555
|
+
| `--from-handoff` | For `memory promote`, path of the reviewed task-memory handoff snapshot (required). |
|
|
556
|
+
| `--help` | Print the memory usage and exit. |
|
|
557
|
+
| `--repository` | For `memory propose`/`promote` with `--scope repo`, the canonical absolute repository path. |
|
|
558
|
+
| `--runtime` | For `memory propose`/`promote` with `--scope runtime`, the source runtime id. |
|
|
559
|
+
| `--scope` | For `memory propose`/`promote`, record scope: `repo`, `global`, `runtime`, or `agent` (required for promote). |
|
|
560
|
+
| `--stale` | For `memory prune`, the required switch that removes records past their retention window. |
|
|
561
|
+
| `-h` | Short form of --help. |
|
|
562
|
+
|
|
563
|
+
### `models`
|
|
564
|
+
|
|
565
|
+
| Flag | Controls |
|
|
566
|
+
|---|---|
|
|
567
|
+
| `--help` | Print the models usage and exit. |
|
|
568
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
569
|
+
| `--offline` | Use cached, configured, and catalog model hints without probing targets live. |
|
|
570
|
+
| `--target` | Restrict the model listing to one configured target id. |
|
|
571
|
+
| `-h` | Short form of --help. |
|
|
572
|
+
|
|
573
|
+
### `panes`
|
|
574
|
+
|
|
575
|
+
| Flag | Controls |
|
|
576
|
+
|---|---|
|
|
577
|
+
| `--help` | Print the command's usage and exit. |
|
|
578
|
+
| `-h` | Short form of --help. |
|
|
579
|
+
|
|
580
|
+
### `paths`
|
|
581
|
+
|
|
582
|
+
| Flag | Controls |
|
|
583
|
+
|---|---|
|
|
584
|
+
| `--help` | Print the command's usage and exit. |
|
|
585
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
586
|
+
| `-h` | Short form of --help. |
|
|
587
|
+
|
|
588
|
+
### `reset`
|
|
589
|
+
|
|
590
|
+
| Flag | Controls |
|
|
591
|
+
|---|---|
|
|
592
|
+
| `--all` | Reset all four roots (config, data, state, cache); cannot be combined with an individual level flag. |
|
|
593
|
+
| `--auth` | Reset credentials.yaml only; combinable with the other level flags. |
|
|
594
|
+
| `--cache` | Reset the cache root only; combinable with the other level flags. |
|
|
595
|
+
| `--config` | Reset settings.yaml only; combinable with the other level flags. |
|
|
596
|
+
| `--data` | Reset the data root only (memory, evidence, evals, vendored tools); combinable with the other level flags. |
|
|
597
|
+
| `--dry-run` | Print the listing of what each selected root holds and change nothing. |
|
|
598
|
+
| `--force` | Required for destructive execution; without it the command lists and refuses. |
|
|
599
|
+
| `--help` | Print the command's usage and exit. |
|
|
600
|
+
| `--state` | Reset the state root only (every session transcript and its audit trail); the default level when no level flag is given. |
|
|
601
|
+
| `-f` | Short form of --force. |
|
|
602
|
+
| `-h` | Short form of --help. |
|
|
603
|
+
|
|
604
|
+
### `run`
|
|
605
|
+
|
|
606
|
+
| Flag | Controls |
|
|
607
|
+
|---|---|
|
|
608
|
+
| `--agent` | Dispatch a fleet agent instead of the main agent. Unknown ids fail fast. |
|
|
609
|
+
| `--agent-profile` | Named `fleet.profiles` entry to dispatch through; requires `--agent`; ignored with a warning when `--target` is also given. |
|
|
610
|
+
| `--agent-runtime` | Runtime id whose first matching fleet profile is used for dispatch; requires `--agent`; ignored with a warning when `--target` is also given. |
|
|
611
|
+
| `--autonomy` | One-run autonomy override: `read-only`, `suggest`, `auto-edit`, or `full-auto`; it does not change saved settings. |
|
|
612
|
+
| `--continue` | Append this turn to the most recent session for the current working directory. |
|
|
613
|
+
| `--frequency-penalty` | One-run frequency-penalty override (number) when the selected runtime supports it. |
|
|
614
|
+
| `--help` | Print the command's usage and exit. |
|
|
615
|
+
| `--json` | Stream JSONL events for the main-agent turn (dispatch streams events plus the receipt JSON) instead of text output. |
|
|
616
|
+
| `--json-events` | Main-agent JSON stream mode: `full` or `terminal`; implies `--json`. |
|
|
617
|
+
| `--kv-cache-mode` | One-run KV-cache override for supported local runtimes: `f16`, `f32`, `none`, `false`, `q8_0`, `q4_0`, `q4_1`, `iq4_nl`, `q5_0`, or `q5_1`. |
|
|
618
|
+
| `--max-context-tokens` | One-run context-window override (positive integer tokens) for supported local runtimes. |
|
|
619
|
+
| `--min-p` | One-run min-p override (0 to 1) when the selected runtime supports it. |
|
|
620
|
+
| `--model` | Wire model id for this run's main agent or dispatched worker instead of the target's default. |
|
|
621
|
+
| `--no-skills` | Disable skill discovery for this run while still honoring explicit `--skill` paths. |
|
|
622
|
+
| `--presence-penalty` | One-run presence-penalty override (number) when the selected runtime supports it. |
|
|
623
|
+
| `--repeat-penalty` | One-run repeat-penalty override (number) when the selected runtime supports it. |
|
|
624
|
+
| `--require` | Require a target capability for dispatch. Repeatable. |
|
|
625
|
+
| `--session` | Append this turn to an existing session identified by `<id>`. |
|
|
626
|
+
| `--skill` | Load one explicit skill file or skill directory for this run. Repeatable. |
|
|
627
|
+
| `--steer-channel` | Read live steering lines from a FIFO or an appended regular file to steer the active run. |
|
|
628
|
+
| `--target` | Target id for this run's main agent or dispatched worker; an id missing from `settings.targets` exits 2 before the turn starts. |
|
|
629
|
+
| `--temperature` | One-run sampling temperature (number, at least 0) when the selected runtime supports it. |
|
|
630
|
+
| `--thinking` | Thinking level for this run: off, minimal, low, medium, high, xhigh, or max. |
|
|
631
|
+
| `--tool-profile` | Restrict dispatched-agent tools: `minimal-local`, `science-local`, or `full-agent`. |
|
|
632
|
+
| `--top-k` | One-run top-k override (integer, at least 0) when the selected runtime supports it. |
|
|
633
|
+
| `--top-p` | One-run nucleus-sampling override (0 to 1) when the selected runtime supports it. |
|
|
634
|
+
| `-h` | Short form of --help. |
|
|
635
|
+
|
|
636
|
+
### `share`
|
|
637
|
+
|
|
638
|
+
| Flag | Controls |
|
|
639
|
+
|---|---|
|
|
640
|
+
| `--agents` | For `dev share export`, include agent definitions in the archive. |
|
|
641
|
+
| `--all` | For `dev share export`, include every resource type (context, prompts, skills, agents, fleets, settings, extensions). |
|
|
642
|
+
| `--both` | For `dev share export`, export both the project and user scopes; mutually exclusive with `--project`/`--user`. |
|
|
643
|
+
| `--context` | For `dev share export`, include project context files in the archive. |
|
|
644
|
+
| `--dry-run` | For `dev share import`, plan the import and report conflicts without writing. |
|
|
645
|
+
| `--extensions` | For `dev share export`, include extension bundles in the archive. |
|
|
646
|
+
| `--fleets` | For `dev share export`, include fleet contracts in the archive. |
|
|
647
|
+
| `--force` | For `dev share import`, overwrite existing files the archive conflicts with. |
|
|
648
|
+
| `--help` | Print the command's usage and exit. |
|
|
649
|
+
| `--json` | Emit JSON for `dev share export`, `import`, and `inspect`. |
|
|
650
|
+
| `--out` | For `dev share export`, path of the archive to write (required). |
|
|
651
|
+
| `--project` | Limit `dev share export`/`import` to the project scope; mutually exclusive with `--user` and `--both`. |
|
|
652
|
+
| `--prompts` | For `dev share export`, include prompts in the archive. |
|
|
653
|
+
| `--settings` | For `dev share export`, include settings fragments in the archive. |
|
|
654
|
+
| `--skills` | For `dev share export`, include skills in the archive. |
|
|
655
|
+
| `--user` | Limit `dev share export`/`import` to the user scope; mutually exclusive with `--project` and `--both`. |
|
|
656
|
+
| `-f` | Short form of --force for `dev share import`. |
|
|
657
|
+
| `-h` | Short form of --help. |
|
|
658
|
+
|
|
659
|
+
### `skills`
|
|
660
|
+
|
|
661
|
+
| Flag | Controls |
|
|
662
|
+
|---|---|
|
|
663
|
+
| `--all` | For `skills list`, include skills the model cannot load; for `skills update`, update every installed skill. |
|
|
664
|
+
| `--allow-network` | For `skills eval`, keep the network tool plane available to the child runs instead of stripping it. |
|
|
665
|
+
| `--category` | For `skills install`, install every marketplace skill in this catalog category instead of naming sources. |
|
|
666
|
+
| `--force` | For `skills install`, `update`, and `sync`, overwrite an existing installed skill. |
|
|
667
|
+
| `--help` | Print the command's usage and exit. |
|
|
668
|
+
| `--json` | Emit JSON for `skills list`, `search`, `inspect`, `validate`, and `eval` (JSONL rows); the only accepted argument for `skills inventory`. |
|
|
669
|
+
| `--name` | For `skills install`, install the single source under this skill name. |
|
|
670
|
+
| `--project` | For `skills install`, choose the project skill root; mutually exclusive with `--user`. |
|
|
671
|
+
| `--scenario` | For `skills eval`, the evals.md scenario id (or bare number) to run instead of every scenario. |
|
|
672
|
+
| `--target` | For `skills eval`, target id used by the baseline, treatment, and judge runs instead of the default target. |
|
|
673
|
+
| `--timeout` | For `skills eval`, positive integer seconds allowed per child run. |
|
|
674
|
+
| `--trust-fixtures` | For `skills eval`, allow the fixture shell commands declared in evals.md to execute in the seed workspace. |
|
|
675
|
+
| `--user` | For `skills install`, choose the user skill root; mutually exclusive with `--project`. |
|
|
676
|
+
| `--workspace` | For `skills eval`, existing checkout copied into the throwaway seed workspace; the source is never mutated. |
|
|
677
|
+
| `-h` | Short form of --help. |
|
|
678
|
+
|
|
679
|
+
### `targets`
|
|
680
|
+
|
|
681
|
+
| Flag | Controls |
|
|
682
|
+
|---|---|
|
|
683
|
+
| `--background-model` | For `targets use`, model id recorded for the proactive task-memory (background) role on the target. |
|
|
684
|
+
| `--fleet-model` | For `targets use`, model id recorded as the fleet default model. |
|
|
685
|
+
| `--fleet-target` | For `targets use`, target id to use for fleet dispatch when it differs from the chat target. |
|
|
686
|
+
| `--force` | For `targets profile remove`, remove the profile even when agents are still bound to it. |
|
|
687
|
+
| `--help` | Print the command's usage and exit. |
|
|
688
|
+
| `--json` | Emit JSON for the `targets` listing, `targets fleet`, and `targets profile bindings`. |
|
|
689
|
+
| `--model` | For `targets use`, the chat model id; for `targets profile set`, the profile's model id. |
|
|
690
|
+
| `--orchestrator-model` | For `targets use`, model id recorded for the chat (orchestrator) role. |
|
|
691
|
+
| `--probe` | For the `targets` listing, probe every target live before rendering health and capabilities. |
|
|
692
|
+
| `--runtime` | For `targets convert <id>`, the runtime id the target is converted to (required). |
|
|
693
|
+
| `--target` | For the `targets` listing, show only this target id; an unknown id exits 2. |
|
|
694
|
+
| `--thinking` | For `targets profile set`, the profile's thinking level: off, minimal, low, medium, high, xhigh, or max. |
|
|
695
|
+
| `-h` | Short form of --help. |
|
|
696
|
+
|
|
697
|
+
### `tools`
|
|
698
|
+
|
|
699
|
+
| Flag | Controls |
|
|
700
|
+
|---|---|
|
|
701
|
+
| `--all` | For `tools remove`, remove every vendored tool in the pinned table; rejected on other subcommands. |
|
|
702
|
+
| `--force` | For `tools install`, force the download and vendoring even when the tool already resolves. |
|
|
703
|
+
| `--help` | Print the command's usage and exit. |
|
|
704
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
705
|
+
| `--reset-profile` | For `tools status <id>`, reset yazi's generated profile; rejected on other subcommands. |
|
|
706
|
+
| `-f` | Short form of --force for `tools install`. |
|
|
707
|
+
| `-h` | Short form of --help. |
|
|
708
|
+
|
|
709
|
+
### `trace`
|
|
710
|
+
|
|
711
|
+
| Flag | Controls |
|
|
712
|
+
|---|---|
|
|
713
|
+
| `--db` | Path of the trace SQLite database to read (also `--db=PATH`); every trace subcommand accepts it. |
|
|
714
|
+
| `--follow` | For `trace tail`, keep streaming events as they land instead of exiting after the current rows. |
|
|
715
|
+
| `--help` | Print the command's usage and exit. |
|
|
716
|
+
| `--json` | For `trace runs` and `trace prune`, emit JSON. |
|
|
717
|
+
| `--limit` | For `trace runs`, integer 1 to 500 number of runs to list (also `--limit=N`). |
|
|
718
|
+
| `--max-age-days` | For `trace prune`, integer 1 to 36500 retention age in days for this prune only (also `--max-age-days=N`). |
|
|
719
|
+
| `--max-bytes` | For `trace prune`, integer size ceiling in bytes, at least 1048576, for this prune only (also `--max-bytes=N`). |
|
|
720
|
+
| `--port` | For `trace ui`, TCP port for the localhost viewer, 0 to 65535 (also `--port=N`); 0 picks an ephemeral port. |
|
|
721
|
+
| `-h` | Short form of --help. |
|
|
722
|
+
|
|
723
|
+
### `uninstall`
|
|
724
|
+
|
|
725
|
+
| Flag | Controls |
|
|
726
|
+
|---|---|
|
|
727
|
+
| `--dry-run` | Print what would be removed, including the per-project directories, and change nothing. |
|
|
728
|
+
| `--force` | Required for destructive execution; without it the command lists and refuses. |
|
|
729
|
+
| `--help` | Print the command's usage and exit. |
|
|
730
|
+
| `--remove-binary` | Also remove the launcher symlink when it points at this installation; a real file or a link elsewhere is kept and reported. |
|
|
731
|
+
| `-f` | Short form of --force. |
|
|
732
|
+
| `-h` | Short form of --help. |
|
|
733
|
+
|
|
734
|
+
### `upgrade`
|
|
735
|
+
|
|
736
|
+
| Flag | Controls |
|
|
737
|
+
|---|---|
|
|
738
|
+
| `--channel` | npm dist-tag to install: `latest`, `beta`, or `dev`; only the `--channel=<chan>` form is parsed; npm installs only. |
|
|
739
|
+
| `--dry-run` | Print the planned npm install, migrations, and state refresh and change nothing. |
|
|
740
|
+
| `--help` | Print the command's usage and exit. |
|
|
741
|
+
| `--post-install` | Internal marker the upgrade passes to its re-exec of the newly installed binary: skip the npm install and run migrations and doctor checks. |
|
|
742
|
+
| `--skip-migrations` | Skip the data-dir migrations after the install step. |
|
|
743
|
+
| `-h` | Short form of --help. |
|
|
744
|
+
|
|
745
|
+
### `usage`
|
|
746
|
+
|
|
747
|
+
| Flag | Controls |
|
|
748
|
+
|---|---|
|
|
749
|
+
| `--days` | For `usage report`, positive integer report window in days. |
|
|
750
|
+
| `--help` | Print the command's usage and exit. |
|
|
751
|
+
| `--json` | For `usage report`, emit one JSONL row per fact and per opportunity (schema experimental). |
|
|
752
|
+
| `--repo` | For `usage report`, restrict sessions and runs to this repository path. |
|
|
753
|
+
| `-h` | Short form of --help. |
|
|
754
|
+
|
|
755
|
+
### `verifiers`
|
|
756
|
+
|
|
757
|
+
| Flag | Controls |
|
|
758
|
+
|---|---|
|
|
759
|
+
| `--command` | For `verifiers add` (required) and `edit`, the check's argv as a JSON string array. |
|
|
760
|
+
| `--cwd` | For `verifiers add`/`edit`, repository-relative working directory of the check. |
|
|
761
|
+
| `--description` | For `verifiers add` (required) and `edit`, the check's description text. |
|
|
762
|
+
| `--dry-run` | For `verifiers author`, a check id executed through the production verify path after the catalog is written; repeatable. |
|
|
763
|
+
| `--exclude` | For `verifiers author`, a discovered check id to drop from the draft; repeatable. |
|
|
764
|
+
| `--help` | Print the verifiers usage and exit. |
|
|
765
|
+
| `--id` | For `verifiers add`, the new check's id (required). |
|
|
766
|
+
| `--json` | For `verifiers inspect`, the only accepted argument; emits the fixed machine-readable catalog projection. |
|
|
767
|
+
| `--rename` | For `verifiers author`, an `<old>=<new>` rename of a discovered check id; repeatable. |
|
|
768
|
+
| `--tags` | For `verifiers add`/`edit`, comma-separated catalog tags. |
|
|
769
|
+
| `--timeout-ms` | For `verifiers add`/`edit`, positive integer timeout in milliseconds. |
|
|
770
|
+
| `--yes` | For mutating verifiers commands, confirm the write after the preview prints; without it nothing changes. |
|
|
771
|
+
| `-h` | Short form of --help. |
|
|
772
|
+
|
|
773
|
+
## Project files
|
|
774
|
+
|
|
775
|
+
Keys read from files under `.clio-coder/` in the repository.
|
|
776
|
+
|
|
777
|
+
|
|
778
|
+
### `.clio-coder/agents`
|
|
779
|
+
|
|
780
|
+
| Key | Controls | Precedence |
|
|
781
|
+
|---|---|---|
|
|
782
|
+
| `(recipe files)` | Project agent recipes (`<id>.md` with the recipe frontmatter schema); a project recipe must declare `audience: custom` and cannot override a shipped builtin. | For non-builtin ids: project `.clio-coder/agents/` > user agents > enabled-extension agents. Builtins remain protected; user recipes alone may customize a shipped base agent, never a shadow or internal agent. |
|
|
783
|
+
|
|
784
|
+
### `.clio-coder/fleets`
|
|
785
|
+
|
|
786
|
+
| Key | Controls | Precedence |
|
|
787
|
+
|---|---|---|
|
|
788
|
+
| `steps[]` | Ordered fleet steps, each with `id`, `kind`, `agent` or `roster`, `run` or `command` or `check`, `dependencies`, `scope`, `writes`, `maxAttempts`, `maxTasks`, `repair`, `commitFrom`, `proposals`, and `path`. | |
|
|
789
|
+
| `version` | Fleet contract schema version in a `<name>.md` frontmatter; the loader refuses another version. | |
|
|
790
|
+
|
|
791
|
+
### `.clio-coder/hooks.local.yaml`
|
|
792
|
+
|
|
793
|
+
| Key | Controls | Precedence |
|
|
794
|
+
|---|---|---|
|
|
795
|
+
| `(same keys as hooks.yaml)` | Uncommitted per-developer hooks with the same schema as `hooks.yaml`, layered above it by `id`. | |
|
|
796
|
+
|
|
797
|
+
### `.clio-coder/hooks.yaml`
|
|
798
|
+
|
|
799
|
+
| Key | Controls | Precedence |
|
|
800
|
+
|---|---|---|
|
|
801
|
+
| `hooks[]` | User hook declarations, either a bare list or `{hooks: [...]}`; a project hook with the same `id` as a user or extension hook replaces it, and `hooks.local.yaml` replaces both. | `hooks.local.yaml` > `hooks.yaml` > user hooks > extension hooks, by `id` |
|
|
802
|
+
| `hooks[].argv` | Argv list a `command` hook executes without a shell. | |
|
|
803
|
+
| `hooks[].as` | Where a `command` hook's output lands: `annotate` on the tool result or `reminder` as an injected reminder. | |
|
|
804
|
+
| `hooks[].cwd` | Working directory for a `command` hook, defaulting to the session cwd. | |
|
|
805
|
+
| `hooks[].effect` | The middleware effect object an `effect` hook emits, validated like a built-in middleware effect. | |
|
|
806
|
+
| `hooks[].enabled` | `false` keeps the declaration but never fires it, which is how a lower layer's hook is switched off. | |
|
|
807
|
+
| `hooks[].id` | Stable id used for overrides across layers; derived from the source and a content hash when absent. | |
|
|
808
|
+
| `hooks[].kind` | `command` runs an argv and injects its output, `prompt` injects a fixed reminder, `effect` emits one declared middleware effect. | |
|
|
809
|
+
| `hooks[].message` | Reminder text a `prompt` hook injects, truncated to 2000 characters. | |
|
|
810
|
+
| `hooks[].on` | Middleware phase the hook fires on (a `MiddlewareHook` name such as `turn_end` or `tool_result`). | |
|
|
811
|
+
| `hooks[].severity` | Reminder severity for a `prompt` hook (`info`, `warning`, ...), which decides how the reminder is rendered. | |
|
|
812
|
+
| `hooks[].timeoutMs` | Wall-clock cap for a `command` hook, clamped to 100 to 5000 ms. | |
|
|
813
|
+
| `hooks[].tools` | Tool names a tool-scoped hook applies to; absent means every tool. | |
|
|
814
|
+
|
|
815
|
+
### `.clio-coder/profile.yaml`
|
|
816
|
+
|
|
817
|
+
| Key | Controls | Precedence |
|
|
818
|
+
|---|---|---|
|
|
819
|
+
| `commitMessageStyle` | Commit message style Clio writes in, `conventional`, `descriptive`, or `terse`. | project `.clio-coder/profile.yaml` > user `<configDir>/profile.yaml`, field by field |
|
|
820
|
+
| `localOnlyPaths` | Paths the operator marks as never to leave the machine, at most 8 rendered into the prompt. | project `.clio-coder/profile.yaml` > user `<configDir>/profile.yaml`, field by field |
|
|
821
|
+
| `responsePosture` | Operator response posture rendered into the prompt, `concise`, `balanced`, or `thorough`. | project `.clio-coder/profile.yaml` > user `<configDir>/profile.yaml`, field by field |
|
|
822
|
+
| `validationPreference` | How the operator wants changes validated, `tests-first`, `manual`, or `trust`. | project `.clio-coder/profile.yaml` > user `<configDir>/profile.yaml`, field by field |
|
|
823
|
+
|
|
824
|
+
### `.clio-coder/prompts`
|
|
825
|
+
|
|
826
|
+
| Key | Controls | Precedence |
|
|
827
|
+
|---|---|---|
|
|
828
|
+
| `(prompt templates)` | Markdown prompt templates (`<name>.md`) that become slash commands named after the file, beside the user `prompts/` directory in the config dir. | project `.clio-coder/prompts/` > user `<configDir>/prompts/`, by name |
|
|
829
|
+
|
|
830
|
+
### `.clio-coder/rules`
|
|
831
|
+
|
|
832
|
+
| Key | Controls | Precedence |
|
|
833
|
+
|---|---|---|
|
|
834
|
+
| `description` | One-line summary shown by `clio-coder config inspect`. | |
|
|
835
|
+
| `enabled` | `false` keeps the rule file but never loads it. | |
|
|
836
|
+
| `excludes` | Globs a rule contributes to the project context-exclude set. | |
|
|
837
|
+
| `paths` | Activation globs in a rule's frontmatter; present means the rule loads only while a matching file is in working context, absent means it always loads with project context. | |
|
|
838
|
+
|
|
839
|
+
### `.clio-coder/safety.yaml`
|
|
840
|
+
|
|
841
|
+
| Key | Controls | Precedence |
|
|
842
|
+
|---|---|---|
|
|
843
|
+
| `commands[]` | Project-declared commands the bash tool may run under a declared action class; each entry is an id plus command line and its own bounds. | |
|
|
844
|
+
| `commands[].actionClass` | Action class (`read`, `edit`, `execute`, ...) the command is admitted as, which decides which autonomy level may run it without approval. | |
|
|
845
|
+
| `commands[].command` | The exact command line the entry admits; a bash call matches it verbatim. | |
|
|
846
|
+
| `commands[].comment` | Free-text note on the entry, informational. | |
|
|
847
|
+
| `commands[].cwd` | Working directory, relative to the workspace root, the command must run in. | |
|
|
848
|
+
| `commands[].env` | Environment policy for the command, `mode` (`none` or `allowlist`) plus `allow`, the variable names passed through. | |
|
|
849
|
+
| `commands[].env.allow` | Environment variable names passed through to the command when `mode` is `allowlist`. | |
|
|
850
|
+
| `commands[].env.mode` | `none` runs the command with the scrubbed base environment; `allowlist` adds the variables named in `allow`. | |
|
|
851
|
+
| `commands[].id` | Stable id the policy engine and receipts name the command by. | |
|
|
852
|
+
| `commands[].maxOutputBytes` | Output byte cap for the command before truncation. | |
|
|
853
|
+
| `commands[].owner` | Free-text owner of the entry, informational. | |
|
|
854
|
+
| `commands[].rationale` | Free-text reason shown beside the command in approvals and receipts. | |
|
|
855
|
+
| `commands[].requireConfirmation` | `true` parks the command for operator approval even at an autonomy level that would otherwise run it. | |
|
|
856
|
+
| `commands[].shellOperators` | `allow` admits pipes, redirects, and chaining in the command line; `deny` refuses them. | |
|
|
857
|
+
| `commands[].timeoutMs` | Wall-clock cap for the command; overrides the bash call's own `timeout_ms`. | |
|
|
858
|
+
| `disableDefaultPathPolicy` | `true` drops the built-in path policy (protected dotfiles, secrets, build outputs) so only the file's own path lists apply. | |
|
|
859
|
+
| `noDeletePaths` | Globs tools may read and write but never delete. | |
|
|
860
|
+
| `noWritePaths` | Globs tools may read and delete but never write. | |
|
|
861
|
+
| `readOnlyPaths` | Globs tools may read but never write or delete. | |
|
|
862
|
+
| `tasks` | Accepted root key reserved for task policy; nothing in the loader reads its value beyond accepting it. | |
|
|
863
|
+
| `version` | Policy file schema version; must be 1. | |
|
|
864
|
+
| `zeroAccessPaths` | Globs no tool may read, write, or list. | |
|
|
865
|
+
|
|
866
|
+
### `.clio-coder/settings.local.yaml`
|
|
867
|
+
|
|
868
|
+
| Key | Controls | Precedence |
|
|
869
|
+
|---|---|---|
|
|
870
|
+
| `(layered subset of settings.yaml)` | Per-developer, uncommitted settings layered over the project file; credential-bearing keys (`auth`, `apiKey`, `token`, `secret`, `password`) are stripped with a diagnostic. | CLI flags > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user `settings.yaml` > built-in default |
|
|
871
|
+
|
|
872
|
+
### `.clio-coder/settings.yaml`
|
|
873
|
+
|
|
874
|
+
| Key | Controls | Precedence |
|
|
875
|
+
|---|---|---|
|
|
876
|
+
| `(layered subset of settings.yaml)` | Committed team settings; any settings-v2 key except credentials, deep-merged over the user file with arrays replaced wholesale. | CLI flags > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user `settings.yaml` > built-in default |
|
|
877
|
+
|
|
878
|
+
### `.clio-coder/skills`
|
|
879
|
+
|
|
880
|
+
| Key | Controls | Precedence |
|
|
881
|
+
|---|---|---|
|
|
882
|
+
| `(skill directories)` | Project skills (`<name>/SKILL.md`); third-party imports are inert until `integrations.projectResources.trustProjectImports` trusts them. | explicit `--skill` paths > project skills > user skills > catalog skills, by name |
|
|
883
|
+
|
|
884
|
+
### `.clio-coder/validation.yaml`
|
|
885
|
+
|
|
886
|
+
| Key | Controls | Precedence |
|
|
887
|
+
|---|---|---|
|
|
888
|
+
| `(presence)` | The file's presence (also `validation.yml`, root `validation.yaml`, or `VALIDATION.md`) raises the repo-derived rigor default from `normal` to `high`; its content is not read. | `CLIO_CODER_RIGOR` > presence of a validation contract > `normal` |
|
|
889
|
+
|
|
890
|
+
### `.clio-coder/verifiers.yaml`
|
|
891
|
+
|
|
892
|
+
| Key | Controls | Precedence |
|
|
893
|
+
|---|---|---|
|
|
894
|
+
| `checks[]` | Declared verification checks the `verify` tool and `dispatch` intent may name by id, at most 128. | |
|
|
895
|
+
| `checks[].command` | Argv list (no shell) the check runs, at most 64 entries of 4096 bytes. | |
|
|
896
|
+
| `checks[].cwd` | Working directory relative to the workspace root, resolved and bounded to the workspace. | |
|
|
897
|
+
| `checks[].description` | One-line description shown in the `verify` listing, at most 512 bytes. | |
|
|
898
|
+
| `checks[].id` | Check id, at most 64 bytes; `frontend` is reserved for the built-in artifact check. | |
|
|
899
|
+
| `checks[].tags` | Free-form labels, at most 16 of 32 bytes, shown in the listing. | |
|
|
900
|
+
| `checks[].timeoutMs` | Required wall-clock cap for the check in ms, a positive integer at most 900000; a `verify` call may shorten it with `timeout_ms` but not exceed it. | |
|
|
901
|
+
| `version` | Catalog schema version; must equal the version this build speaks. | |
|
|
902
|
+
|
|
903
|
+
## Agent recipe frontmatter
|
|
904
|
+
|
|
905
|
+
Keys the recipe loader reads from `.clio-coder/agents/<id>.md` and the builtin recipes.
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
| Name | Default | Controls |
|
|
909
|
+
|---|---|---|
|
|
910
|
+
| `audience` | | Provenance enum `base \| shadow \| custom \| internal`: builtin recipes name any but `custom`, discovered ones must say `custom`, and it decides catalog visibility and user-origin dispatch reachability. |
|
|
911
|
+
| `budget` | | Required strict worker-loop phase policy object with `toolCalls`, `readReserve`, `synthesis` and optional `maximum`; admission builds the WorkerSpec budget from it under the operator cap. |
|
|
912
|
+
| `budget.maximum` | | Optional `{toolCalls, readReserve}` ceiling at or above the default phase; when present a dispatch may request any phase within it, when absent the recipe pins the default exactly. |
|
|
913
|
+
| `budget.maximum.readReserve` | | Largest read reserve a dispatch or `retryRevision` may request; it must be at least `budget.readReserve` and below `maximum.toolCalls`. |
|
|
914
|
+
| `budget.maximum.toolCalls` | | Largest tool-call phase a dispatch or `retryRevision` may request; it must be at least `budget.toolCalls` and is still clamped by the operator cap. |
|
|
915
|
+
| `budget.readReserve` | | Tail of the admitted phase reserved for canonical `read` plus delivery tools; the loop guard blocks other tools once `toolCalls` minus `readReserve` calls are admitted, and it is zero without `read`. |
|
|
916
|
+
| `budget.synthesis` | | Boolean where `true` locks tools at the boundary and grants a text-only synthesis round, and `false` fails the run with `worker agent budget reached` at the boundary. |
|
|
917
|
+
| `budget.toolCalls` | | Admitted tool calls before the final-response phase (must be > 0); the loop guard uses it as the worker's soft limit and derives the loop-block budget from it. |
|
|
918
|
+
| `capabilityClass` | | Enum `read-only \| artifact-write \| workspace-edit \| verification \| orchestration \| internal`; it is the authority a dispatch requests and approves and derives the default project-context tier. |
|
|
919
|
+
| `category` | | Enum `explore \| plan \| research \| implement \| quality \| science \| evolution \| operations \| internal` used to sort and label the catalog. |
|
|
920
|
+
| `description` | | Required non-empty string shown in the catalog and used to derive the fleet prompt purpose line. |
|
|
921
|
+
| `latencyClass` | | Enum `fast \| balanced \| deep` that sets the route prior when candidate agents are ranked for a dispatch. |
|
|
922
|
+
| `name` | | Required non-empty display name rendered in catalog and agent listings. |
|
|
923
|
+
| `product` | | Optional enum (only `orientation`) naming what the run delivers, which adds `code_nav` to the delivery tools admitted inside the read reserve; a misspelling is a parse error. |
|
|
924
|
+
| `projectContextTier` | | Enum `none \| bounded`; `bounded` injects the capped project name/conventions/invariants projection as a dynamic message and `none` skips the CLIO-CODER.md read. |
|
|
925
|
+
| `resultContract` | | Required object naming the typed result shape the worker must return; the terminal output is validated and repaired against it. |
|
|
926
|
+
| `resultContract.kind` | | One of twelve recipe-declarable report kinds (`scout-report`, `mutation-report`, `delegation-plan`, ...) or `architect-plan`; `council-ballot` may only arrive as a coordinator override. |
|
|
927
|
+
| `resultContract.path` | | Workspace-relative plan file path required only by `architect-plan` and refused for any other kind; absolute or `..` paths are rejected. |
|
|
928
|
+
| `skills` | | Array of unique skill names bound to files at registry load; they inject knowledge into the prompt, require the `context` tool, and never widen tool authority. |
|
|
929
|
+
| `tags` | | Array of unique lowercase routing hints shown in the catalog and matched against task signals when ranking candidate agents. |
|
|
930
|
+
| `tools` | | Object `{required, optional}` of unique tool names, where a required entry may be `{anyOf: [...]}`; a required tool that does not admit on the target makes the recipe unusable there. |
|
|
931
|
+
| `version` | | Recipe schema version; only the integer 1 is accepted. |
|
|
932
|
+
|
|
933
|
+
## Prompt fragment frontmatter
|
|
934
|
+
|
|
935
|
+
Keys the fragment loader reads.
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
| Name | Default | Controls |
|
|
939
|
+
|---|---|---|
|
|
940
|
+
| `description` | | Required non-empty string describing the fragment; the loader rejects a missing one and nothing downstream reads it. |
|
|
941
|
+
| `dynamic` | | Optional boolean marking a fragment as dynamic (rendered as a per-session message rather than part of the stable system prompt); it must be a boolean when present. |
|
|
942
|
+
| `id` | | Required dot-separated namespace id (`identity.clio`) the compiler looks fragments up by; a duplicate or non-matching id fails loading. |
|
|
943
|
+
| `version` | | Fragment schema version; the loader accepts only the integer 1. |
|
|
944
|
+
|
|
945
|
+
## Tool arguments
|
|
946
|
+
|
|
947
|
+
Arguments the model can send on `dispatch`, `bash`, `context`, and `verify`, grouped by tool. The `class` column is the admission class the argument belongs to.
|
|
948
|
+
|
|
949
|
+
|
|
950
|
+
### `bash`
|
|
951
|
+
|
|
952
|
+
| Argument | Class | Controls |
|
|
953
|
+
|---|---|---|
|
|
954
|
+
| `bash.command` | task | Bash command to execute. |
|
|
955
|
+
| `bash.cwd` | task | Omit unless the command must run in a subdirectory of the workspace root, given as a relative path; outside the root is blocked. |
|
|
956
|
+
| `bash.output_policy` | policy | Model-context disposition. Omit for bounded tail output. Use summary for noisy runs, metadata-only when only status and retrieval matter, and full only for known-small output. |
|
|
957
|
+
| `bash.timeout_ms` | policy | Timeout in milliseconds. |
|
|
958
|
+
|
|
959
|
+
### `context`
|
|
960
|
+
|
|
961
|
+
| Argument | Class | Controls |
|
|
962
|
+
|---|---|---|
|
|
963
|
+
| `context.include_tree` | policy | scope=skills: list files under the skill base_dir. |
|
|
964
|
+
| `context.limit` | policy | scope=docs: max sections (default 5, max 12). |
|
|
965
|
+
| `context.name` | task | scope=skills: skill name to load; omit to list. |
|
|
966
|
+
| `context.query` | task | scope=docs: question or terms; omit to list the corpus. |
|
|
967
|
+
| `context.ref` | task | scope=recall: ref of the evicted item, as named in its marker. |
|
|
968
|
+
| `context.scope` | policy | Context source. |
|
|
969
|
+
|
|
970
|
+
### `dispatch`
|
|
971
|
+
|
|
972
|
+
| Argument | Class | Controls |
|
|
973
|
+
|---|---|---|
|
|
974
|
+
| `dispatch.$defs.budget` | policy | Reusable tool-call budget object referenced from the top level and from every task; a budget outside the recipe's declared range is refused at admission. |
|
|
975
|
+
| `dispatch.$defs.budget.readReserve` | policy | Tail of the budget kept for verification reads and synthesis; non-read calls inside the reserve are blocked. |
|
|
976
|
+
| `dispatch.$defs.budget.retryRevision` | policy | Preauthorized budget for one retry or revision phase (a review `revise` re-run), so the re-run needs no second approval. |
|
|
977
|
+
| `dispatch.$defs.budget.retryRevision.readReserve` | policy | Read reserve for the retry or revision phase. |
|
|
978
|
+
| `dispatch.$defs.budget.retryRevision.toolCalls` | policy | Tool-call ceiling for the retry or revision phase. |
|
|
979
|
+
| `dispatch.$defs.budget.toolCalls` | policy | Tool calls the worker may spend before the synthesis reserve window opens; must sit within the recipe's `budget.toolCalls` to `budget.maximum.toolCalls` range. |
|
|
980
|
+
| `dispatch.$defs.intent` | policy | Repository-relative paths and outputs. Declare it on every dispatch: it selects the project rules that apply and pins worker context, where omitting it falls back to path tokens scraped from the task text. verification entries are declared check ids from package scripts or .clio-coder/verifiers.yaml. Per-task intent must fit inside the top-level intent. |
|
|
981
|
+
| `dispatch.$defs.intent.expected_outputs` | task | Paths the worker is expected to produce, so a missing output is reported instead of guessed. |
|
|
982
|
+
| `dispatch.$defs.intent.read_roots` | task | Repository-relative roots the worker may read; `.` means the repository root; at most 32 entries of 512 bytes. |
|
|
983
|
+
| `dispatch.$defs.intent.relevant_paths` | task | Paths the parent already knows matter; they pin worker context and select the project rules that apply. |
|
|
984
|
+
| `dispatch.$defs.intent.verification` | policy | Declared check ids to run after the receipt, at most 8, never shell commands; `[{check: "none"}]` normalizes to no checks. |
|
|
985
|
+
| `dispatch.$defs.intent.verification[].check` | task | Declared check id, never a shell command. |
|
|
986
|
+
| `dispatch.$defs.intent.verification[].timeout_ms` | policy | Within the check's declared bounds. |
|
|
987
|
+
| `dispatch.$defs.intent.write_roots` | task | Repository-relative roots the worker may write; the receipt's write set is held against them. |
|
|
988
|
+
| `dispatch.agent` | policy | Default recipe id for string tasks, or auto (default coder; researcher for council). |
|
|
989
|
+
| `dispatch.apply` | policy | merge (default) or preserve the worktree branch. |
|
|
990
|
+
| `dispatch.apply_winner` | policy | Merge a preserved compete winner and clean up its group; supervised autonomy parks this for operator confirmation. |
|
|
991
|
+
| `dispatch.apply_winner.branch` | task | Preserved winner branch: clio-coder/compete/<group>/<n>. |
|
|
992
|
+
| `dispatch.apply_winner.cwd` | task | Repository root (default: current directory). |
|
|
993
|
+
| `dispatch.briefing` | task | Parent context for task, or the shared default for tasks; never instructions. Max 12000 UTF-8 bytes. |
|
|
994
|
+
| `dispatch.budget` | policy | Default tool-call budget for the call (`$defs.budget`); a task's own `budget` overrides it. |
|
|
995
|
+
| `dispatch.candidates` | policy | Compete candidates, 2 to 4 (default 2). |
|
|
996
|
+
| `dispatch.cwd` | policy | Default worker working directory. |
|
|
997
|
+
| `dispatch.detach` | policy | Return run ids immediately and collect with monitor before final synthesis. Parallel mode only. |
|
|
998
|
+
| `dispatch.from_scout` | task | Compile a Scout split result into one approval-gated dependency plan; use with no other argument. |
|
|
999
|
+
| `dispatch.from_scout.receipt_digest` | task | Its sha256 receipt digest. |
|
|
1000
|
+
| `dispatch.from_scout.run_id` | task | Terminal Scout run id. |
|
|
1001
|
+
| `dispatch.gate` | policy | One declared check id, shorthand for intent.verification. |
|
|
1002
|
+
| `dispatch.intent` | policy | Batch-level intent (`$defs.intent`); every per-task intent must fit inside it, and omitting it falls back to path tokens scraped from the task text. |
|
|
1003
|
+
| `dispatch.judge` | policy | Read-only judge that ranks compete candidates. |
|
|
1004
|
+
| `dispatch.judge.agent` | policy | Judge recipe id (default: the builder's agent). |
|
|
1005
|
+
| `dispatch.judge.model` | policy | Model for the compete judge; defaults to the builder's model. |
|
|
1006
|
+
| `dispatch.judge.node` | policy | Fleet node pin for the judge. |
|
|
1007
|
+
| `dispatch.judge.target` | policy | Target id for the compete judge; defaults to the builder's target. |
|
|
1008
|
+
| `dispatch.list` | policy | List the agent roster instead of dispatching. |
|
|
1009
|
+
| `dispatch.max_output_bytes` | policy | Max summary bytes returned. |
|
|
1010
|
+
| `dispatch.members` | policy | Explicit council members, 2 to 5. |
|
|
1011
|
+
| `dispatch.members[].label` | task | Council member label, unique within the call, matching `^[a-z][a-z0-9_-]{0,31}$`. |
|
|
1012
|
+
| `dispatch.members[].model` | policy | Model this council member answers with. |
|
|
1013
|
+
| `dispatch.members[].target` | policy | Target id this council member runs on. |
|
|
1014
|
+
| `dispatch.members[].thinking` | policy | Thinking level for this council member: off, minimal, low, medium, high, xhigh, or max. |
|
|
1015
|
+
| `dispatch.mode` | policy | parallel (default); sequential; pipeline, where each task receives the previous output; compete, where candidates build the same task in scratch worktrees and a judge picks; council, where roster members answer the same question. |
|
|
1016
|
+
| `dispatch.model` | policy | Default model override. |
|
|
1017
|
+
| `dispatch.node` | policy | Default fleet node pin (omit for automatic placement). |
|
|
1018
|
+
| `dispatch.persona` | task | Default persona for the batch, max 8000 chars. |
|
|
1019
|
+
| `dispatch.review` | policy | Reviewer gate for one task: a read-only reviewer verdicts pass, revise, or fail, and revise re-runs the builder with the findings. |
|
|
1020
|
+
| `dispatch.review.max_cycles` | policy | Review/revise cycles before an operator decision (default 2, max 4). |
|
|
1021
|
+
| `dispatch.review.model` | policy | Model for the reviewer. |
|
|
1022
|
+
| `dispatch.review.node` | policy | Fleet node pin for the reviewer. |
|
|
1023
|
+
| `dispatch.review.reviewer` | policy | Reviewer recipe id (default: the builder's agent, read-only). |
|
|
1024
|
+
| `dispatch.review.target` | policy | Target for the reviewer. |
|
|
1025
|
+
| `dispatch.roster` | policy | Configured `fleet.rosters` name (council). |
|
|
1026
|
+
| `dispatch.rounds` | policy | Council rounds. |
|
|
1027
|
+
| `dispatch.routing` | policy | Advisory posture and hard routing bounds; exact target, model, and node pins stay manual. |
|
|
1028
|
+
| `dispatch.routing.deadlineMs` | policy | Hard latency bound in ms the planner must meet; routes predicted slower are excluded. |
|
|
1029
|
+
| `dispatch.routing.failover` | policy | `approved` lets a failed route fail over to the next admitted one; `none` fails the run. |
|
|
1030
|
+
| `dispatch.routing.locality` | policy | Whether the run may leave local endpoints: `local-only`, `prefer-local`, or `any`. |
|
|
1031
|
+
| `dispatch.routing.maxCostUsd` | policy | Hard USD bound per run for adaptive routing; a route whose estimate exceeds it is not admitted. |
|
|
1032
|
+
| `dispatch.routing.minimumQuality` | policy | Minimum quality score, 0 to 1, a candidate route must carry to be admitted. |
|
|
1033
|
+
| `dispatch.routing.posture` | policy | Advisory posture the joint route planner optimizes for; `manual` keeps exact pins, the adaptive postures apply only to roles enabled in `fleet.adaptiveRouting`. |
|
|
1034
|
+
| `dispatch.routing.requiredCapabilities` | policy | Capability ids (`tools`, `vision`, ...) a route's model must advertise. |
|
|
1035
|
+
| `dispatch.synthesis` | policy | Council synthesis. |
|
|
1036
|
+
| `dispatch.target` | policy | Default target id (omit for the fleet default). |
|
|
1037
|
+
| `dispatch.task` | task | One worker assignment. Use tasks for a batch. |
|
|
1038
|
+
| `dispatch.tasks` | task | Batch of assignments; one string or object is wrapped. |
|
|
1039
|
+
| `dispatch.tasks[].agent` | policy | Recipe id (default coder). |
|
|
1040
|
+
| `dispatch.tasks[].briefing` | task | Per-task parent context, max 12000 UTF-8 bytes. |
|
|
1041
|
+
| `dispatch.tasks[].budget` | policy | Per-task budget override (`$defs.budget`). |
|
|
1042
|
+
| `dispatch.tasks[].gate` | policy | One declared check id, shorthand for intent.verification. |
|
|
1043
|
+
| `dispatch.tasks[].intent` | policy | Per-task intent (`$defs.intent`); it must fit inside the batch `intent`. |
|
|
1044
|
+
| `dispatch.tasks[].model` | policy | Per-task model override. |
|
|
1045
|
+
| `dispatch.tasks[].node` | policy | Fleet node pin: local or a fleet.nodes id. |
|
|
1046
|
+
| `dispatch.tasks[].target` | policy | Per-task target id override. |
|
|
1047
|
+
| `dispatch.tasks[].task` | task | The assignment, with expected output and constraints. |
|
|
1048
|
+
| `dispatch.tasks[].worktree` | policy | Run this writer in an isolated git worktree. |
|
|
1049
|
+
| `dispatch.thinking_level` | policy | Thinking level for every worker in the call: off, minimal, low, medium, high, xhigh, or max. |
|
|
1050
|
+
| `dispatch.timeout_ms` | policy | Abort the dispatch after this many ms. |
|
|
1051
|
+
| `dispatch.tool_profile` | policy | Default worker tool profile. |
|
|
1052
|
+
| `dispatch.worktree` | policy | Run a singular writer task in an isolated git worktree. |
|
|
1053
|
+
| `dispatch.writers` | policy | Serialize writer admission in task order while readers run concurrently. |
|
|
1054
|
+
|
|
1055
|
+
### `verify`
|
|
1056
|
+
|
|
1057
|
+
| Argument | Class | Controls |
|
|
1058
|
+
|---|---|---|
|
|
1059
|
+
| `verify.args` | task | Package scripts only: arguments after --. |
|
|
1060
|
+
| `verify.browser` | policy | frontend: headless browser mode (default auto). |
|
|
1061
|
+
| `verify.check` | policy | Check id, package script (test*/lint*/build*/typecheck*/check*/format*/ci*), or "frontend"; omit to list. |
|
|
1062
|
+
| `verify.cwd` | task | Package scripts only: working directory. |
|
|
1063
|
+
| `verify.max_output_bytes` | policy | Output cap in bytes (default 600000). |
|
|
1064
|
+
| `verify.path` | task | frontend: artifact file under the workspace root. |
|
|
1065
|
+
| `verify.timeout_ms` | policy | Package and frontend checks only: timeout in ms. |
|
|
1066
|
+
|
|
1067
|
+
## Model knowledge-base tags
|
|
1068
|
+
|
|
1069
|
+
Keys of the local-model knowledge base in `src/domains/providers/models/local-models/`.
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
| Name | Default | Controls |
|
|
1073
|
+
|---|---|---|
|
|
1074
|
+
| `capabilities` | | Object of `CapabilityFlags` a knowledge-base entry contributes; it is merged over runtime defaults and under target overrides to build the synthesized model. |
|
|
1075
|
+
| `capabilities.audio` | | Boolean audio-input flag carried into CapabilityFlags for badges and dashboards; no request builder reads it. |
|
|
1076
|
+
| `capabilities.chat` | | Boolean saying the model serves chat; feeds runtime resolution and the `C` badge in `targets` and `models` output. |
|
|
1077
|
+
| `capabilities.contextWindow` | | Token context window of the synthesized model unless a probe or configured target value overrides it; drives compaction pressure and context-floor warnings. |
|
|
1078
|
+
| `capabilities.embeddings` | | Boolean embeddings flag carried into CapabilityFlags for the `E` badge and dashboards; no request builder reads it. |
|
|
1079
|
+
| `capabilities.fim` | | Boolean fill-in-the-middle flag for the `F` badge and dashboards; no request builder reads it. |
|
|
1080
|
+
| `capabilities.maxTokens` | | Default max output tokens of the synthesized model unless a probe or target override supplies one; bounds per-turn output and Anthropic-style thinking budgets. |
|
|
1081
|
+
| `capabilities.reasoning` | | Boolean that marks the synthesized model as reasoning-capable and, with `quirks.thinking.mechanism`, decides whether thinking fields are sent at all. |
|
|
1082
|
+
| `capabilities.rerank` | | Boolean rerank flag for the `K` badge and dashboards; no request builder reads it. |
|
|
1083
|
+
| `capabilities.structuredOutputs` | | Structured-output mode (`json-schema`, `gbnf`, `xgrammar`, `none`); only `json-schema` lets a dispatch `responseSchema` be enforced on the worker request. |
|
|
1084
|
+
| `capabilities.thinkingFormat` | | Thinking wire format (`qwen-chat-template`, `harmony`, `deepseek-r1`, ...) copied into the OpenAI compat block and used to infer the thinking mechanism when quirks omit one. |
|
|
1085
|
+
| `capabilities.toolCallFormat` | | Declared tool-call dialect (`openai`, `qwen`, `hermes`, ...) validated on targets and worker specs; no request builder currently branches on it. |
|
|
1086
|
+
| `capabilities.tools` | | Boolean tool-calling flag; `supportsTools` gates tool attachment and the `T` badge. |
|
|
1087
|
+
| `capabilities.vision` | | Boolean that sets the synthesized model's `input` to text plus image so image blocks are accepted. |
|
|
1088
|
+
| `family` | | Canonical family id; a pattern equal to it counts as a `family` match, and the id lands on `model.clioCoder.family`, where `openai-gpt-oss` selects Harmony handling. |
|
|
1089
|
+
| `matchPatterns` | | Lowercase substrings matched against the wire model id; the longest matching pattern across the whole knowledge base selects the entry. |
|
|
1090
|
+
| `quirks` | | Free-form object per entry; `extractLocalModelQuirks` narrows `sampling`, `thinking`, and accepted chat-template kwargs into `model.clioCoder.quirks`, while unrecognized keys remain provenance. |
|
|
1091
|
+
| `quirks.chatTemplate` | | Names the chat-template dialect (`gemma-channel`) a family uses; provenance only; nothing in src reads it. |
|
|
1092
|
+
| `quirks.gpuTiers` | | Map of GPU memory tier (`32gb`) to a free-text serving recommendation; provenance only; nothing in src reads it. |
|
|
1093
|
+
| `quirks.gpuTiers.<gpuTiers>` | | One tier's recommendation text keyed by memory class; provenance only; nothing in src reads it. |
|
|
1094
|
+
| `quirks.leakageNote` | | Free-text explanation of how a template leaks chain-of-thought markers into visible text; provenance only; nothing in src reads it. |
|
|
1095
|
+
| `quirks.llamaCpp` | | Recommended llama.cpp server-start profile for the family; provenance only; nothing in src reads it (the probe reads the running server's argv instead). |
|
|
1096
|
+
| `quirks.llamaCpp.batchSize` | | Recommended `--batch-size` for starting the server; provenance only; nothing in src reads it. |
|
|
1097
|
+
| `quirks.llamaCpp.cacheTypeK` | | Recommended `--cache-type-k` for starting the server; provenance only; nothing in src reads it. |
|
|
1098
|
+
| `quirks.llamaCpp.cacheTypeV` | | Recommended `--cache-type-v` for starting the server; provenance only; nothing in src reads it. |
|
|
1099
|
+
| `quirks.llamaCpp.chatTemplateKwargs` | | Recommended `--chat-template-kwargs` map for the server start (for example `enable_thinking: false`); provenance only; nothing in src reads it. |
|
|
1100
|
+
| `quirks.llamaCpp.chatTemplateKwargs.<chatTemplateKwargs>` | | One template kwarg name and its value; provenance only; nothing in src reads it. |
|
|
1101
|
+
| `quirks.llamaCpp.ctxSize` | | Recommended `--ctx-size`; provenance only; nothing in src reads it (the live window comes from the probe or `capabilities.contextWindow`). |
|
|
1102
|
+
| `quirks.llamaCpp.flashAttn` | | Recommended `--flash-attn`; provenance only; nothing in src reads it. |
|
|
1103
|
+
| `quirks.llamaCpp.mmproj` | | Says the server should load the multimodal projector (`--mmproj`); provenance only; nothing in src reads it (the probe infers vision from the running argv). |
|
|
1104
|
+
| `quirks.llamaCpp.nGpuLayers` | | Recommended `--n-gpu-layers`; provenance only; nothing in src reads it. |
|
|
1105
|
+
| `quirks.llamaCpp.parallel` | | Recommended `--parallel` slot count for starting the server; provenance only; nothing in src reads it, and admission uses the server's reported `total_slots` instead. |
|
|
1106
|
+
| `quirks.llamaCpp.parallelSlots` | | Free-text note on what `--parallel` means for admission and `--kv-unified`; provenance only; nothing in src reads it. |
|
|
1107
|
+
| `quirks.llamaCpp.reasoning` | | Recommended `--reasoning` server default (`on`); provenance only; nothing in src reads it. |
|
|
1108
|
+
| `quirks.llamaCpp.reasoningEffort` | | Recommended `--reasoning-effort` server default; provenance only; nothing in src reads it, and per-request effort comes from `quirks.thinking.effortByLevel`. |
|
|
1109
|
+
| `quirks.llamaCpp.specDraftNMax` | | Recommended `--spec-draft-n-max` for speculative decoding; provenance only; nothing in src reads it. |
|
|
1110
|
+
| `quirks.llamaCpp.specType` | | Recommended speculative decoding type (`draft-mtp`); provenance only; nothing in src reads it. |
|
|
1111
|
+
| `quirks.llamaCpp.ubatchSize` | | Recommended `--ubatch-size`; provenance only; nothing in src reads it. |
|
|
1112
|
+
| `quirks.measuredUnder` | | Provenance block naming the hardware, runtime, build and flags a family's quirks were measured under; nothing in src reads it, as the file header states. |
|
|
1113
|
+
| `quirks.measuredUnder.alsoMeasuredOn` | | Second host or runtime the same figures were confirmed on; provenance only; nothing in src reads it. |
|
|
1114
|
+
| `quirks.measuredUnder.build` | | Runtime build string of the measurement, or `unknown`; provenance only; nothing in src reads it. |
|
|
1115
|
+
| `quirks.measuredUnder.date` | | Date of the measurement, or `unknown`; provenance only; nothing in src reads it. |
|
|
1116
|
+
| `quirks.measuredUnder.hardware` | | GPU class the measurement ran on; provenance only; nothing in src reads it. |
|
|
1117
|
+
| `quirks.measuredUnder.llamaCpp` | | The llama.cpp argv or flag summary the measurement ran under; provenance only; nothing in src reads it. |
|
|
1118
|
+
| `quirks.measuredUnder.model` | | Exact quantized model file and architecture measured; provenance only; nothing in src reads it. |
|
|
1119
|
+
| `quirks.measuredUnder.note` | | Free-text caveats about which figures in the entry are actually measured; provenance only; nothing in src reads it. |
|
|
1120
|
+
| `quirks.measuredUnder.runtime` | | Runtime id the measurement used (`llamacpp`); provenance only; nothing in src reads it. |
|
|
1121
|
+
| `quirks.measuredUnder.source` | | Release note or report the figures were taken from, or `unknown`; provenance only; nothing in src reads it. |
|
|
1122
|
+
| `quirks.runtimePreference` | | Map of runtime id to a free-text recommendation on how to serve the family there; provenance only; nothing in src reads it. |
|
|
1123
|
+
| `quirks.runtimePreference.<runtimePreference>` | | One runtime's (`llamaCpp`, `openaiCompat`, `lmstudioOpenaiCompat`, ...) recommendation text; provenance only; nothing in src reads it. |
|
|
1124
|
+
| `quirks.sampling` | | Per-mode sampler profiles extracted into `model.clioCoder.quirks.sampling`; the OpenAI-completions and Ollama builders pick `thinking` when thinking is active, else `instruct`. |
|
|
1125
|
+
| `quirks.sampling.instruct` | | Sampler profile applied when the thinking level is `off`, and the fallback when no `thinking` profile exists. |
|
|
1126
|
+
| `quirks.sampling.instruct.minP` | | Sent as `min_p` in `samplingParams` on OpenAI-compatible requests when thinking is off; Ollama native ignores it. |
|
|
1127
|
+
| `quirks.sampling.instruct.presencePenalty` | | Sent as `presence_penalty` on OpenAI-compatible and Ollama requests when thinking is off, unless a run override sets it. |
|
|
1128
|
+
| `quirks.sampling.instruct.repeatPenalty` | | Sent as `repeat_penalty` on OpenAI-compatible and Ollama requests when thinking is off; preferred over `repetitionPenalty` when both are present. |
|
|
1129
|
+
| `quirks.sampling.instruct.repetitionPenalty` | | HF model-card spelling of `repeatPenalty`, accepted as an alias and sent as `repeat_penalty` when thinking is off. |
|
|
1130
|
+
| `quirks.sampling.instruct.temperature` | | Request `temperature` when thinking is off, applied only if the caller set none. |
|
|
1131
|
+
| `quirks.sampling.instruct.topK` | | Sent as `top_k` when thinking is off on OpenAI-compatible and Ollama requests. |
|
|
1132
|
+
| `quirks.sampling.instruct.topP` | | Sent as `top_p` when thinking is off on OpenAI-compatible and Ollama requests. |
|
|
1133
|
+
| `quirks.sampling.thinking` | | Sampler profile applied when the thinking level is not `off`. |
|
|
1134
|
+
| `quirks.sampling.thinking.minP` | | Sent as `min_p` in `samplingParams` on OpenAI-compatible requests while thinking is active; Ollama native ignores it. |
|
|
1135
|
+
| `quirks.sampling.thinking.presencePenalty` | | Sent as `presence_penalty` while thinking is active on OpenAI-compatible and Ollama requests. |
|
|
1136
|
+
| `quirks.sampling.thinking.reasoningBudget` | | Documented per-request reasoning budget; not a `SamplingProfile` field, so the extractor drops it and budgets come from `quirks.thinking.budgetByLevel` instead. |
|
|
1137
|
+
| `quirks.sampling.thinking.repeatPenalty` | | Sent as `repeat_penalty` on OpenAI-compatible and Ollama requests while thinking is active; preferred over `repetitionPenalty` when both are present. |
|
|
1138
|
+
| `quirks.sampling.thinking.repetitionPenalty` | | HF spelling of `repeatPenalty` for thinking mode, sent as `repeat_penalty`. |
|
|
1139
|
+
| `quirks.sampling.thinking.temperature` | | Request `temperature` while thinking is active, applied only if the caller set none. |
|
|
1140
|
+
| `quirks.sampling.thinking.topK` | | Sent as `top_k` while thinking is active on OpenAI-compatible and Ollama requests. |
|
|
1141
|
+
| `quirks.sampling.thinking.topP` | | Sent as `top_p` while thinking is active on OpenAI-compatible and Ollama requests. |
|
|
1142
|
+
| `quirks.serving` | | One-line free-text summary of the recommended serving profile; provenance only; nothing in src reads it. |
|
|
1143
|
+
| `quirks.thinking` | | Typed thinking-control block extracted into `model.clioCoder.quirks.thinking`; it decides which thinking fields a request carries and how the TUI labels levels. |
|
|
1144
|
+
| `quirks.thinking.budgetByLevel` | | Map of Clio thinking level to a token budget for the `budget-tokens` mechanism; it feeds `thinking_token_budget` on vLLM and Pi `thinkingBudgets`, and limits the selectable levels. |
|
|
1145
|
+
| `quirks.thinking.budgetByLevel.<budgetByLevel>` | | Integer budget for one of `minimal`, `low`, `medium`, `high`, `xhigh`; levels without an entry are not offered. |
|
|
1146
|
+
| `quirks.thinking.chatTemplateKwargs` | | Family-specific static and thinking-level template kwargs extracted into the request capability. Supported OpenAI-compatible adapters emit them as `chat_template_kwargs`; native LM Studio ignores that field, so the resolver names the keys as undeliverable and resolution prints one warning per target and model instead of sending them. Mechanism-owned thinking controls win key collisions. |
|
|
1147
|
+
| `quirks.thinking.chatTemplateKwargs.byLevel` | | Declares one template kwarg whose value is selected from the effective thinking level, falling back to the configured level when needed. |
|
|
1148
|
+
| `quirks.thinking.chatTemplateKwargs.byLevel.key` | | Non-empty wire key for the level-selected kwarg, such as `reasoning_strength`. |
|
|
1149
|
+
| `quirks.thinking.chatTemplateKwargs.byLevel.lmstudio` | | `unsupported` records that the family documents LM Studio as unable to carry the level-keyed kwarg, and the undeliverable-kwargs warning says so; any other text is retained as provenance. Native LM Studio never receives `chat_template_kwargs` either way. |
|
|
1150
|
+
| `quirks.thinking.chatTemplateKwargs.byLevel.values` | | Map from accepted Clio thinking levels to non-empty strings or finite numbers; for an `effort-levels` family, its keys also constrain the levels offered. |
|
|
1151
|
+
| `quirks.thinking.chatTemplateKwargs.byLevel.values.<thinkingLevel>` | | Wire value for one of `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`; unsupported keys and invalid values are dropped. |
|
|
1152
|
+
| `quirks.thinking.chatTemplateKwargs.lmstudio` | | `unsupported` records that the family documents LM Studio as unable to carry its kwargs, and the undeliverable-kwargs warning says so; any other string or string map is retained as provenance. Native LM Studio omits the template-kwargs map either way. |
|
|
1153
|
+
| `quirks.thinking.chatTemplateKwargs.static` | | Literal template kwargs merged into every request for the family before mechanism-owned thinking controls. Values may be booleans, non-empty strings, or finite numbers. |
|
|
1154
|
+
| `quirks.thinking.chatTemplateKwargs.static.<chatTemplateKwargs>` | | One literal wire key and value, such as `force_nonempty_content: true` or numeric `reasoning_budget: 16384`. |
|
|
1155
|
+
| `quirks.thinking.effortByLevel` | | Map of Clio thinking level to the vendor `reasoning_effort` string for the `effort-levels` mechanism; it sets `request.reasoningEffort` and limits the selectable levels. |
|
|
1156
|
+
| `quirks.thinking.effortByLevel.<effortByLevel>` | | Effort string sent for one of `off`, `minimal`, `low`, `medium`, `high`, `xhigh`; levels without an entry are not offered. |
|
|
1157
|
+
| `quirks.thinking.guidance` | | Two to five lines of model-stable thinking guidance rendered into the compiled system prompt's Runtime block through `thinkingGuidance`. |
|
|
1158
|
+
| `quirks.thinking.mechanism` | | One of `effort-levels`, `budget-tokens`, `on-off`, `always-on`, `none`; it picks the thinking payload shape, reasoning class and level labels, overriding inference from `thinkingFormat`. |
|
|
1159
|
+
| `quirks.thinkingControl` | | Free-text note on how a family's template gates thinking (for example a `<\|think\|>` system token); provenance only; nothing in src reads it. |
|
|
1160
|
+
|
|
1161
|
+
## Bounding constants
|
|
1162
|
+
|
|
1163
|
+
Compiled-in limits (context budgets, retry counts, cache sizes, timeouts) are code-owned invariants, not configuration. They live beside the code that enforces them and change only through a source change with a changelog line.
|