@iowarp/clio-coder 0.4.7 → 0.4.9
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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +111 -0
- package/CONTRIBUTING.md +83 -74
- package/README.md +69 -47
- package/dist/{acp-W3Y3TRHD.js → acp-ZWZCPS2A.js} +15 -15
- package/dist/{agents-J4ICNLQ3.js → agents-LYSOWZUE.js} +61 -59
- package/dist/assets/codewiki.json +1 -1
- package/dist/assets/web-notices/@hono__node-server-LICENSE +21 -0
- package/dist/assets/web-notices/hono-LICENSE +21 -0
- package/dist/{auth-X2UJUMOC.js → auth-WBQGKWQ5.js} +27 -27
- package/dist/background-BUMOBAQN.js +37 -0
- package/dist/{builtins-XLXWWSRF.js → builtins-ODRJOEDI.js} +7 -7
- package/dist/{chunk-C3G5PNUO.js → chunk-2DRRZ57Q.js} +36 -27
- package/dist/chunk-2JBZYUPY.js +105 -0
- package/dist/chunk-2KUBKL63.js +336 -0
- package/dist/chunk-2VBWFXYE.js +198 -0
- package/dist/{chunk-XZ6UFQ52.js → chunk-2X2R3UTH.js} +25 -15
- package/dist/{chunk-M6Z2V6YU.js → chunk-37LW32LZ.js} +5 -5
- package/dist/{chunk-6LRLOJHQ.js → chunk-3AND2EFU.js} +11 -62
- package/dist/{chunk-FQOOGXBH.js → chunk-3RDHGNU7.js} +101 -33
- package/dist/{chunk-D2T66PDV.js → chunk-3SUDBGEI.js} +41 -208
- package/dist/{chunk-5AJPUR72.js → chunk-3TQN67I2.js} +9 -9
- package/dist/{chunk-LBFQMYS3.js → chunk-3U4BL2EV.js} +5 -3
- package/dist/{chunk-UFYNOQK4.js → chunk-3UQADNG2.js} +7 -7
- package/dist/{chunk-V4ZKOKRB.js → chunk-434LRQ6Z.js} +61 -53
- package/dist/{chunk-NO7J45X6.js → chunk-4ATBOFRP.js} +713 -218
- package/dist/{chunk-ECOMVOHP.js → chunk-4DNL43EZ.js} +3 -3
- package/dist/{chunk-WT5TRMO4.js → chunk-4HFJKRGZ.js} +255 -82
- package/dist/{chunk-5A6XR3RJ.js → chunk-555E2WVV.js} +16 -2
- package/dist/{chunk-WURGVOZJ.js → chunk-5RTEFNBP.js} +18 -14
- package/dist/{config-YXARKGTX.js → chunk-64XJW7NT.js} +24 -268
- package/dist/{chunk-24S3DN22.js → chunk-6TKOFFGE.js} +4 -4
- package/dist/{chunk-YKRJTYNP.js → chunk-6UJ7RDI7.js} +4 -4
- package/dist/{chunk-MZNWZUJM.js → chunk-7FBCRWVT.js} +288 -288
- package/dist/{chunk-UA6W4XFJ.js → chunk-7JSOSVLP.js} +2 -2
- package/dist/chunk-7N3OLLSL.js +637 -0
- package/dist/{chunk-KKEYGFX4.js → chunk-7QQRPB2E.js} +11 -11
- package/dist/{chunk-N37QC5FV.js → chunk-A6DULIMH.js} +21 -9
- package/dist/{fleet-decisions-S3PTZV2D.js → chunk-AB3QXXBC.js} +5 -41
- package/dist/chunk-ACCECAH4.js +49 -0
- package/dist/{chunk-CP3HIR5H.js → chunk-AM6CEP2K.js} +20 -19
- package/dist/chunk-AUHVBIDW.js +19 -0
- package/dist/{chunk-BQQ5MXUC.js → chunk-AY4XE6GN.js} +19 -13
- package/dist/{chunk-ISNCCX42.js → chunk-BBA2TAWV.js} +10 -9
- package/dist/chunk-BFPHMSK7.js +169 -0
- package/dist/{chunk-LVFANMOH.js → chunk-BHJMMCXS.js} +4 -4
- package/dist/{chunk-DO7M3LSX.js → chunk-BMNVVKEW.js} +40 -93
- package/dist/{chunk-VTYHHQ57.js → chunk-CTGZCEI6.js} +2 -2
- package/dist/{chunk-RTLNFZMD.js → chunk-DIAJYJYG.js} +3 -3
- package/dist/chunk-EHZRAB4U.js +63 -0
- package/dist/{chunk-KS7ETA3P.js → chunk-EM2DIQAJ.js} +3 -3
- package/dist/{chunk-MNQN3X6Y.js → chunk-ETF4ROKH.js} +5 -5
- package/dist/{chunk-WN552PKN.js → chunk-F2YM3JY4.js} +744 -1134
- package/dist/{chunk-7EEGBKV4.js → chunk-FEBQWHJT.js} +24 -19
- package/dist/{chunk-4QKAITQT.js → chunk-FPS4R2RN.js} +74 -10
- package/dist/chunk-G5R53COU.js +68 -0
- package/dist/chunk-GHXGMFQ5.js +40 -0
- package/dist/{chunk-GFQ7P2UF.js → chunk-GJDRMBDI.js} +10 -10
- package/dist/{chunk-LZBMXNLP.js → chunk-GM4TY6VN.js} +43 -6
- package/dist/{chunk-NCCQ6DVS.js → chunk-GREYLTZ5.js} +8 -8
- package/dist/{chunk-HOX4YZ2K.js → chunk-H2WSCZZT.js} +19 -3
- package/dist/{chunk-3LXJOICS.js → chunk-H6IUCY6Q.js} +2 -2
- package/dist/{chunk-BO4XV5VX.js → chunk-H72DCH3E.js} +95 -206
- package/dist/{chunk-SEDI5K5B.js → chunk-H7TXJR23.js} +20 -20
- package/dist/chunk-HBJQQTKM.js +40 -0
- package/dist/chunk-HCVKSGNZ.js +990 -0
- package/dist/chunk-HVCAY2FH.js +67 -0
- package/dist/{chunk-34XHRVKG.js → chunk-I47EJPYL.js} +3 -3
- package/dist/{chunk-4N2RZ4TO.js → chunk-IALGWTLO.js} +3 -3
- package/dist/{chunk-IQCNVLO6.js → chunk-IALZJE37.js} +10 -7
- package/dist/{chunk-DLIYANB7.js → chunk-IC7JXLOM.js} +16 -11
- package/dist/{chunk-G4LGUTOE.js → chunk-IOSVTTCD.js} +5 -5
- package/dist/{chunk-DBREN25X.js → chunk-IPTPMLA6.js} +8 -3
- package/dist/{chunk-V552WL53.js → chunk-IZZI3SKQ.js} +3 -67
- package/dist/{chunk-TN5FW4XY.js → chunk-JIYWMQZ5.js} +12 -9
- package/dist/{chunk-T7QQBNLH.js → chunk-JKU34ACI.js} +10 -8
- package/dist/chunk-JOBN2YQQ.js +176 -0
- package/dist/chunk-JOL2QRLE.js +152 -0
- package/dist/{chunk-GXIWHXDB.js → chunk-JTR3VSV3.js} +3 -3
- package/dist/{chunk-T334FW2H.js → chunk-JU6MAMRJ.js} +7 -7
- package/dist/chunk-JURMQWVJ.js +15 -0
- package/dist/{chunk-CULVKYTK.js → chunk-K3XN4LZ4.js} +5 -5
- package/dist/{chunk-3T4DXWP6.js → chunk-KIVFXGBM.js} +27 -7
- package/dist/chunk-KKRXONXG.js +43 -0
- package/dist/{chunk-YPRSNUTC.js → chunk-KOAHT3N2.js} +2 -2
- package/dist/chunk-KP5BPXR3.js +73 -0
- package/dist/{chunk-UA3W4FGC.js → chunk-KRJQG47M.js} +6 -6
- package/dist/{chunk-GI5RRMAH.js → chunk-KW6OJ7IY.js} +19 -21
- package/dist/{chunk-A46ILRS2.js → chunk-L3NBWLSN.js} +4 -4
- package/dist/{chunk-MZHXENL7.js → chunk-L4RUTLRL.js} +8 -8
- package/dist/{chunk-P5SC4DLJ.js → chunk-LGTVWPRN.js} +2 -2
- package/dist/{chunk-65BGHOUR.js → chunk-LSQW6KZO.js} +5 -5
- package/dist/{chunk-TZHN5ITX.js → chunk-LWJYOHT3.js} +8 -8
- package/dist/{chunk-U3TPUXOQ.js → chunk-M6YLF66Z.js} +74 -40
- package/dist/chunk-MJ4QEJVT.js +185 -0
- package/dist/{chunk-T4TY5GG3.js → chunk-MO65K5CH.js} +5 -5
- package/dist/{chunk-TZ6UVP2H.js → chunk-MTOZEQHL.js} +8 -8
- package/dist/chunk-MZDPF35R.js +45 -0
- package/dist/{chunk-P4DL2LM5.js → chunk-MZKYVIWW.js} +8 -119
- package/dist/{chunk-KAFMW7WM.js → chunk-NBPA5QM6.js} +2 -2
- package/dist/{chunk-EUEXGXXR.js → chunk-NMBEW4PP.js} +5 -5
- package/dist/{chunk-SELG4SUR.js → chunk-NPLLK3HO.js} +72 -89
- package/dist/{chunk-VCRVEDUC.js → chunk-NSYGPIVW.js} +5 -5
- package/dist/{context-7HJEWTTP.js → chunk-NXTV5OI5.js} +36 -90
- package/dist/{chunk-IMOD2YPV.js → chunk-NYDG4QP4.js} +9 -19
- package/dist/{chunk-6CA2BHOR.js → chunk-OA2GDACN.js} +5 -5
- package/dist/{chunk-A67NR5AT.js → chunk-PJI57EC6.js} +14 -11
- package/dist/{chunk-IJMW64DX.js → chunk-PJJBUGMR.js} +50 -50
- package/dist/{chunk-CPXGJI2A.js → chunk-PNJE7JPS.js} +20 -5
- package/dist/chunk-PP23PZEV.js +1347 -0
- package/dist/chunk-PPIFDSBK.js +409 -0
- package/dist/{chunk-T52TPHYC.js → chunk-PTFISXQO.js} +8 -7
- package/dist/{chunk-C6GEXX4L.js → chunk-QB33Z5S7.js} +5 -5
- package/dist/{chunk-VMATUZB6.js → chunk-QGNII5VC.js} +10 -10
- package/dist/{chunk-TLTGZTXI.js → chunk-QI72X67S.js} +104 -27
- package/dist/chunk-QKHZZFKH.js +98 -0
- package/dist/{chunk-PFLOULP3.js → chunk-RDKX2PME.js} +4 -4
- package/dist/{chunk-B5ZTR6KZ.js → chunk-RL7LJYN4.js} +1 -1
- package/dist/chunk-RPMNIFRY.js +65 -0
- package/dist/{chunk-L3Z5ANCV.js → chunk-RQROVOV3.js} +13 -11
- package/dist/{chunk-6YHPAAZR.js → chunk-S34A7BSP.js} +3 -3
- package/dist/{chunk-5ZSZEYJK.js → chunk-SJETVJHX.js} +2 -2
- package/dist/{chunk-77CZRFTE.js → chunk-SJMNU4ZS.js} +2 -2
- package/dist/chunk-SLLG2G44.js +85 -0
- package/dist/{chunk-GVZFCJHE.js → chunk-SQAZN2V3.js} +48 -22
- package/dist/{chunk-2O2LVQQK.js → chunk-SQBT46OF.js} +2 -2
- package/dist/{chunk-ZGIGW4ZG.js → chunk-TCUOGIL2.js} +5 -5
- package/dist/{chunk-DACXIVVF.js → chunk-TIWPKCVO.js} +5 -5
- package/dist/{chunk-5CMARGPF.js → chunk-UIU7MGZ3.js} +11 -2
- package/dist/chunk-USBBEKHW.js +177 -0
- package/dist/{chunk-WLHX3MM5.js → chunk-V4XJWDHR.js} +21 -11
- package/dist/{chunk-MBJO5VNZ.js → chunk-VPWGADBG.js} +33 -33
- package/dist/{chunk-UUQ5G6EZ.js → chunk-VWFCAK34.js} +6 -6
- package/dist/{chunk-6CB2IL4N.js → chunk-W5RM7YAH.js} +1 -1
- package/dist/{chunk-4MFBBY2Z.js → chunk-W72LLZAV.js} +3 -3
- package/dist/{chunk-4UHVS5T7.js → chunk-WGRDABW7.js} +8 -8
- package/dist/{chunk-XR3XJN2M.js → chunk-WWRV5RJI.js} +4 -4
- package/dist/{chunk-24TOGHPO.js → chunk-X6FLVUM5.js} +4 -4
- package/dist/{chunk-6YA46L5A.js → chunk-XFLSL7BT.js} +2 -2
- package/dist/{chunk-QKWL7SYE.js → chunk-XJZEDCNT.js} +50 -39
- package/dist/{chunk-UWD3JD5X.js → chunk-XLLEL3K7.js} +10 -10
- package/dist/{chunk-2GPGAE5W.js → chunk-XNIZBOFV.js} +15 -1
- package/dist/chunk-XNZWWDC3.js +686 -0
- package/dist/{chunk-WBVKKTUT.js → chunk-XRECG65F.js} +2 -2
- package/dist/chunk-XTQ7MEJG.js +457 -0
- package/dist/{chunk-GEVQNST4.js → chunk-XZWSP67B.js} +2 -2
- package/dist/{chunk-WB7POC6M.js → chunk-Y3M2T5RO.js} +6 -6
- package/dist/{chunk-RXFPB32E.js → chunk-YJCCMYYT.js} +2 -2
- package/dist/{chunk-EUZRMP4Y.js → chunk-YPQOPFP7.js} +20 -20
- package/dist/{chunk-USZA7GWL.js → chunk-YQ3GFEUY.js} +2 -2
- package/dist/{chunk-BAU36233.js → chunk-YQYINEJI.js} +9 -9
- package/dist/{chunk-CE64C5K5.js → chunk-ZF6CV4WZ.js} +1356 -235
- package/dist/{chunk-3XE4NRLF.js → chunk-ZKJU55MX.js} +4 -2
- package/dist/{chunk-IZYTT3CD.js → chunk-ZKQ63XZ5.js} +16 -39
- package/dist/{chunk-6TAATXXH.js → chunk-ZKVMDNAN.js} +7 -7
- package/dist/chunk-ZST3FRCV.js +132 -0
- package/dist/cli/index.js +50 -38
- package/dist/{clio-L2P7S2R2.js → clio-JUDCLNHC.js} +11 -11
- package/dist/clio-context-tools-FT672MNZ.js +136 -0
- package/dist/{code-nav-B5LNX4KU.js → code-nav-7OVCTP2Z.js} +39 -37
- package/dist/{components-63MMQKUT.js → components-OZXZMDWU.js} +11 -11
- package/dist/config-P3ZQVF63.js +275 -0
- package/dist/config-graph-GKAOBAS5.js +160 -0
- package/dist/{configure-LMVQJ46J.js → configure-25LRYZJG.js} +56 -55
- package/dist/context-72VQV7JX.js +73 -0
- package/dist/{context-YG2LZDYZ.js → context-COWRWXP3.js} +89 -83
- package/dist/{context-XSZKKFBW.js → context-WB3D474G.js} +16 -16
- package/dist/{context-clear-AC5NXHM2.js → context-clear-Y4LYMWC6.js} +88 -82
- package/dist/{context-index-KKTPRV5G.js → context-index-W6A4V7OC.js} +4 -4
- package/dist/{context-map-T7ROR5D5.js → context-map-DKL3QT6D.js} +3 -3
- package/dist/{context-working-set-F4Q4J3NS.js → context-working-set-TMZYVC7A.js} +27 -25
- package/dist/data-tool-KMBWKKWR.js +2987 -0
- package/dist/{detail-H73BEF2N.js → detail-4GLROGY5.js} +89 -83
- package/dist/{dispatch-runner-3RY5FSJC.js → dispatch-runner-TR3LBP5P.js} +113 -107
- package/dist/docs-ZK777W2G.js +101 -0
- package/dist/{doctor-EQYJOGUG.js → doctor-WC4OV2OB.js} +76 -73
- package/dist/{eval-4P7O6CCE.js → eval-FUNWJNUJ.js} +88 -73
- package/dist/{eval-inventory-QOYZERXJ.js → eval-inventory-CX24K2JT.js} +5 -60
- package/dist/evals-L73EBHSU.js +104 -0
- package/dist/{evidence-O76QF7TZ.js → evidence-AVJ2RTHX.js} +99 -93
- package/dist/{evidence-D6GUSYJW.js → evidence-P4NZOAK7.js} +88 -82
- package/dist/evidence-Y55WKYHH.js +246 -0
- package/dist/{evolve-H47BCETS.js → evolve-MAWKRYWF.js} +93 -87
- package/dist/{extensions-NNL3ZOCU.js → extensions-PYQH3H47.js} +14 -13
- package/dist/fleet-M4H2QBWT.js +268 -0
- package/dist/{fleet-KMNS6NOM.js → fleet-ULBXXRDR.js} +146 -138
- package/dist/{fleet-commands-DOWSYCBX.js → fleet-commands-7NNC4JZU.js} +18 -17
- package/dist/fleet-decisions-EHEY7KPU.js +52 -0
- package/dist/{fleet-graph-F2DE2TME.js → fleet-graph-LQ2AHZT3.js} +24 -24
- package/dist/{fleet-inspect-EN2Q6IVB.js → fleet-inspect-5IGBIIYZ.js} +98 -258
- package/dist/{fleet-preflight-FRLETDD3.js → fleet-preflight-UTTNOKMG.js} +9 -4
- package/dist/{fleet-validate-B2XDLS57.js → fleet-validate-YGILJKA6.js} +29 -29
- package/dist/{fleet-verify-4JKUWGJ7.js → fleet-verify-AUWTCDKR.js} +88 -82
- package/dist/{fleet-view-BHJFW26B.js → fleet-view-TGUFCY5A.js} +90 -84
- package/dist/{init-XAT5N5YM.js → init-GFN2Z7NF.js} +111 -104
- package/dist/install-6PIF6F6W.js +19 -0
- package/dist/{interop-FVECHFKG.js → interop-EF5JUWWK.js} +29 -29
- package/dist/{inventory-7KFQGLCV.js → inventory-I6VJDDYF.js} +90 -84
- package/dist/library-3J5IO2OJ.js +75 -0
- package/dist/{library-QAPAO23R.js → library-IJTOFTDS.js} +20 -19
- package/dist/{library-NY2XOT75.js → library-Z3KZSHPE.js} +35 -35
- package/dist/{library-import-5Y6MAS3R.js → library-import-IMKFLDHX.js} +29 -29
- package/dist/{library-inventory-JT6HWITQ.js → library-inventory-CQP5D6GU.js} +21 -21
- package/dist/{library-validation-EQUH25DC.js → library-validation-33UTX7AI.js} +19 -19
- package/dist/mcp-5FWZKUS6.js +26 -0
- package/dist/{memory-DYVTTCP6.js → memory-36CWN67Y.js} +93 -87
- package/dist/{models-MASFJ6Y2.js → models-KQ6PQJJQ.js} +57 -56
- package/dist/{monitor-YMP4NXJJ.js → monitor-XX6ZD6KC.js} +98 -91
- package/dist/{orchestrator-AFQRRTEI.js → orchestrator-SK6HDAOP.js} +1537 -832
- package/dist/{panes-NICTHQCV.js → panes-L27QRXUH.js} +14 -14
- package/dist/{panes-D3Y2KFG5.js → panes-LXZIWNOZ.js} +4 -4
- package/dist/{paths-PSFAUIGO.js → paths-7DJDU4P4.js} +6 -6
- package/dist/{preload-5Q7VXRFJ.js → preload-K2TDYI4Y.js} +88 -82
- package/dist/{reset-7NKZK7JN.js → reset-73VU3XNT.js} +13 -13
- package/dist/{resources-NILSIZAT.js → resources-3BYJYVYL.js} +24 -24
- package/dist/{run-BPZGEBZV.js → run-AR7PY6GW.js} +144 -136
- package/dist/run-script-H2KUDIII.js +41 -0
- package/dist/settings-3VMBMWID.js +72 -0
- package/dist/{share-EZ6ERBMH.js → share-HVWH4FPF.js} +30 -30
- package/dist/{skills-BTVVNYVM.js → skills-5TYEY75Q.js} +30 -30
- package/dist/{skills-eval-UY34MNK7.js → skills-eval-CK3MD63Z.js} +114 -103
- package/dist/{skills-inventory-JDHSIA7I.js → skills-inventory-KSFYG3I6.js} +24 -24
- package/dist/{slash-commands-K4FNQ2AT.js → slash-commands-DMVHML7P.js} +60 -57
- package/dist/{steer-2B3EQGFH.js → steer-XCD6V3EW.js} +4 -4
- package/dist/{support-L2SOL3IE.js → support-JAZL6VBR.js} +7 -7
- package/dist/system-3TDQRMZZ.js +116 -0
- package/dist/{targets-44VKGFLN.js → targets-EZKHAYRN.js} +74 -72
- package/dist/{tasks-3KODKFU7.js → tasks-SNEFHWYW.js} +18 -18
- package/dist/{terminal-lease-LXA7MMPO.js → terminal-lease-BNLFA4OF.js} +8 -7
- package/dist/{tools-3UB7TEVR.js → tools-7IM6BDCE.js} +12 -12
- package/dist/{trace-TAMIU4OJ.js → trace-C3MBGD4S.js} +16 -65
- package/dist/{tui-primitives-A6MUW32V.js → tui-primitives-36BY2774.js} +2 -2
- package/dist/{uninstall-QYVRPEM4.js → uninstall-WWLOSZ42.js} +35 -10
- package/dist/{upgrade-7PMKM2JH.js → upgrade-ETK2JNSJ.js} +42 -51
- package/dist/{usage-6EQV7EQK.js → usage-S2HOB7BZ.js} +112 -102
- package/dist/{verifiers-JLITWSHU.js → verifiers-QDTEVH7R.js} +26 -24
- package/dist/{verify-T7NAEVIG.js → verify-SUKUK6XM.js} +16 -15
- package/dist/web/client/THIRD_PARTY_LICENSES.md +1809 -0
- package/dist/web/client/assets/abnfDiagram-VCTEODGH-BznNOe_I.js +1 -0
- package/dist/web/client/assets/arc-Pry-7G1_.js +1 -0
- package/dist/web/client/assets/architecture-7GRP2DOG-BQO9DL_y.js +1 -0
- package/dist/web/client/assets/architectureDiagram-5GKGNRK7-CKPbdvyx.js +36 -0
- package/dist/web/client/assets/array-BifhSqXX.js +1 -0
- package/dist/web/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
- package/dist/web/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
- package/dist/web/client/assets/blockDiagram-I7D4REHJ-prINbpbM.js +129 -0
- package/dist/web/client/assets/c4Diagram-7LVT6UL2-DkVRKtyU.js +38 -0
- package/dist/web/client/assets/channel-c4EeUUqA.js +1 -0
- package/dist/web/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web/client/assets/chunk-4HAMMTFA-CV0Z1ApC.js +62 -0
- package/dist/web/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web/client/assets/chunk-75Z2AOVW-D34Nohxq.js +2 -0
- package/dist/web/client/assets/chunk-DU6HZSFF-Das_cS-O.js +125 -0
- package/dist/web/client/assets/chunk-F27PBJKO-CmRojxkG.js +1 -0
- package/dist/web/client/assets/chunk-FOHPRMQF-CoA4358r.js +161 -0
- package/dist/web/client/assets/chunk-GMAD6QVW-ClYZmc73.js +72 -0
- package/dist/web/client/assets/chunk-GVQU2GXP-B2BiHFt-.js +1 -0
- package/dist/web/client/assets/chunk-IMKFNOWR-BGApZ8nP.js +231 -0
- package/dist/web/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web/client/assets/chunk-L3NEJ4N5-DIzCgpkY.js +1 -0
- package/dist/web/client/assets/chunk-OSK3NFVY-BPT-yePv.js +10 -0
- package/dist/web/client/assets/chunk-P2QGCYS3-BC1WTc2t.js +1 -0
- package/dist/web/client/assets/chunk-POPQ4Y6H-BSjzBmZU.js +1 -0
- package/dist/web/client/assets/chunk-PWAF6VOD-BIjLs86Z.js +1 -0
- package/dist/web/client/assets/chunk-SHT3W25Y-CduDz2cm.js +168 -0
- package/dist/web/client/assets/chunk-SVP7TREG-XUn4pPAP.js +88 -0
- package/dist/web/client/assets/chunk-TICWLB2K-DcBy2DKy.js +206 -0
- package/dist/web/client/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
- package/dist/web/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web/client/assets/classDiagram-ZZMXUADV-C0HR7YKN.js +1 -0
- package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-C0HR7YKN.js +1 -0
- package/dist/web/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
- package/dist/web/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
- package/dist/web/client/assets/cose-bilkent-JH36ORCC-CVh1icwb.js +1 -0
- package/dist/web/client/assets/cynefin-OW5HDTMX-BecPbyM6.js +1 -0
- package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-BzMzFwyT.js +62 -0
- package/dist/web/client/assets/cytoscape.esm-c2aL46s-.js +321 -0
- package/dist/web/client/assets/dagre-C-rnJpZF.js +1 -0
- package/dist/web/client/assets/dagre-GXQ25YYZ-CAWJmRMG.js +4 -0
- package/dist/web/client/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web/client/assets/diagram-S7CK7UJ4--lp0ALmn.js +30 -0
- package/dist/web/client/assets/diagram-UQ7AKVKN-gKUnsjcj.js +41 -0
- package/dist/web/client/assets/diagram-VSXAHHWV-BoN5D1Gh.js +3 -0
- package/dist/web/client/assets/diagram-VX7I27RA-BMtuswQ6.js +24 -0
- package/dist/web/client/assets/diagram-Z3DM3KII-DtU8LXrA.js +24 -0
- package/dist/web/client/assets/dist-v5Q1xZ2K.js +1 -0
- package/dist/web/client/assets/ebnfDiagram-PWID7BFC-DDcnv9BH.js +1 -0
- package/dist/web/client/assets/erDiagram-RLTQ6QDP-DvRb4iDL.js +99 -0
- package/dist/web/client/assets/eventmodeling-NTZA5JFV-01h4SbTc.js +1 -0
- package/dist/web/client/assets/flowDiagram-HODETNUW-Bll_YZ6T.js +1 -0
- package/dist/web/client/assets/framework-YGoR34M4.js +9 -0
- package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-DdFZ9hvH.js +292 -0
- package/dist/web/client/assets/gitGraph-4MIJSDKK-DjD_AAMj.js +1 -0
- package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CDyN9n2u.js +106 -0
- package/dist/web/client/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web/client/assets/index-CVcy0FAn.js +75 -0
- package/dist/web/client/assets/index-Dsi52apB.css +1 -0
- package/dist/web/client/assets/info-A6RAGUB7-C_XK8Hq0.js +1 -0
- package/dist/web/client/assets/infoDiagram-27XIBGKW-DIe4tJ1i.js +2 -0
- package/dist/web/client/assets/init-C-OQMol4.js +1 -0
- package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-CVl5unKI.js +70 -0
- package/dist/web/client/assets/journeyDiagram-3NMN7TZE-CPEB1Vt8.js +139 -0
- package/dist/web/client/assets/kanban-definition-UXKFOSKX-j-9WXjYQ.js +89 -0
- package/dist/web/client/assets/katex-ZlcWpGUi.js +257 -0
- package/dist/web/client/assets/line-BIDAcEtX.js +1 -0
- package/dist/web/client/assets/linear-SzVmGSw4.js +1 -0
- package/dist/web/client/assets/mermaid-parser.core-Ux4vssh0.js +7 -0
- package/dist/web/client/assets/mermaid.core-CDuwVKeh.js +44 -0
- package/dist/web/client/assets/mindmap-definition-YA3MSWOX-5MlQEeQ6.js +96 -0
- package/dist/web/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
- package/dist/web/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
- package/dist/web/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
- package/dist/web/client/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web/client/assets/packet-AYTQ26CC-DRO66c9Q.js +1 -0
- package/dist/web/client/assets/path-fybaL0A-.js +1 -0
- package/dist/web/client/assets/pegDiagram-XKGWAZYB-BakZnSjM.js +1 -0
- package/dist/web/client/assets/pie-WAS4IAKB-BEzcmhz8.js +1 -0
- package/dist/web/client/assets/pieDiagram-E7YTZNPT-DpmqgoPt.js +39 -0
- package/dist/web/client/assets/prism-bash-D6zCJ74D.js +1 -0
- package/dist/web/client/assets/prism-c-04YixN25.js +1 -0
- package/dist/web/client/assets/prism-clike-DapgWyxx.js +1 -0
- package/dist/web/client/assets/prism-core-BtsZdCS6.js +1 -0
- package/dist/web/client/assets/prism-cpp-C-lJbC-6.js +1 -0
- package/dist/web/client/assets/prism-css-CPgOzxXp.js +1 -0
- package/dist/web/client/assets/prism-diff-BF8m0_mq.js +3 -0
- package/dist/web/client/assets/prism-docker-DkT6yOFj.js +1 -0
- package/dist/web/client/assets/prism-fortran-Be5x3y1V.js +1 -0
- package/dist/web/client/assets/prism-go-C_8qAH5n.js +1 -0
- package/dist/web/client/assets/prism-ini-BESK3y0r.js +1 -0
- package/dist/web/client/assets/prism-javascript-BnO-swvr.js +1 -0
- package/dist/web/client/assets/prism-json-Dp_-W-Hv.js +1 -0
- package/dist/web/client/assets/prism-jsx-D-D0NWtC.js +1 -0
- package/dist/web/client/assets/prism-julia-DIjOgiAV.js +1 -0
- package/dist/web/client/assets/prism-latex-DNMbqcH_.js +1 -0
- package/dist/web/client/assets/prism-makefile-CRKWLQ8l.js +1 -0
- package/dist/web/client/assets/prism-markdown-C0FPJ1Iz.js +1 -0
- package/dist/web/client/assets/prism-markup-Cp04rIa1.js +1 -0
- package/dist/web/client/assets/prism-matlab-D-nk08al.js +1 -0
- package/dist/web/client/assets/prism-python-CfiSVtM6.js +1 -0
- package/dist/web/client/assets/prism-r-QmNGR8LX.js +1 -0
- package/dist/web/client/assets/prism-rust-Bu9N8X3N.js +1 -0
- package/dist/web/client/assets/prism-shell-session-Be4UuYoM.js +1 -0
- package/dist/web/client/assets/prism-sql-CYhVDMEE.js +1 -0
- package/dist/web/client/assets/prism-toml-DKb54GAT.js +1 -0
- package/dist/web/client/assets/prism-tsx-p6J2Kc_4.js +1 -0
- package/dist/web/client/assets/prism-typescript-BMqONzxf.js +1 -0
- package/dist/web/client/assets/prism-yaml-C0JHu8gr.js +1 -0
- package/dist/web/client/assets/purify.es-ChwZkWde.js +3 -0
- package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-DuMPwwV2.js +7 -0
- package/dist/web/client/assets/radar-RG4KPBEZ-Djm3oXl5.js +1 -0
- package/dist/web/client/assets/railroad-74A4TZTK-Cpvkwsao.js +1 -0
- package/dist/web/client/assets/railroad-abnf-HS5TGJTU-CpRQ3ruG.js +1 -0
- package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-1Rm5a5eJ.js +1 -0
- package/dist/web/client/assets/railroad-peg-WCYAUIDC-C8344cTh.js +1 -0
- package/dist/web/client/assets/railroadDiagram-O6MQD6OU-CgMS4B6R.js +1 -0
- package/dist/web/client/assets/requirementDiagram-BXWQKSXE-CX5eoNdN.js +84 -0
- package/dist/web/client/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/web/client/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-CODBX2N3.js +40 -0
- package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-eUhhF8OR.js +162 -0
- package/dist/web/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
- package/dist/web/client/assets/src-B6xuSHsQ.js +1 -0
- package/dist/web/client/assets/stateDiagram-D77RDMKH-vR6l0NC2.js +1 -0
- package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-BYUm8jLY.js +1 -0
- package/dist/web/client/assets/swimlanes-42K2YHIH-v9Tw_zX7.js +1 -0
- package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-B2jdCvhD.js +8 -0
- package/dist/web/client/assets/timeline-definition-24CTP7MA-DxianbhU.js +120 -0
- package/dist/web/client/assets/treeView-Q6P3EWNA-DLxnZb9R.js +1 -0
- package/dist/web/client/assets/treemap-WGGIJYW6-I7UnZ6xJ.js +1 -0
- package/dist/web/client/assets/vennDiagram-4TSXK5OY-Ar7M8Mrj.js +34 -0
- package/dist/web/client/assets/wardley-WFR3VGLG-B8ZSHeDu.js +1 -0
- package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-Qks2FmIn.js +78 -0
- package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BBBjRtiE.js +7 -0
- package/dist/web/client/clio-coder-logo.webp +0 -0
- package/dist/web/client/icon-192.png +0 -0
- package/dist/web/client/icon-512.png +0 -0
- package/dist/web/client/index.html +6 -0
- package/dist/web/client/manifest.webmanifest +15 -0
- package/dist/web/client/offline.css +55 -0
- package/dist/web/client/offline.html +5 -0
- package/dist/web/client/offline.js +27 -0
- package/dist/web/client/sw.js +34 -0
- package/dist/web/ops-worker.js +37 -0
- package/dist/web/reads-worker.js +1726 -0
- package/dist/web/server.js +8499 -0
- package/dist/web-EMGUGGEI.js +13 -0
- package/dist/{web-fetch-W4TNW4Q7.js → web-fetch-6BRRVQON.js} +22 -5
- package/dist/{wiki-generate-T2TJQJUA.js → wiki-generate-XHSJTDOP.js} +120 -113
- package/dist/{with-panes-CHFC7HGI.js → with-panes-Z6BTEHMZ.js} +12 -12
- package/dist/worker/entry.js +113 -99
- package/docs/README.md +28 -27
- package/docs/architecture/acp.md +5 -9
- package/docs/architecture/alcf-provider.md +0 -3
- package/docs/architecture/architecture.md +0 -3
- package/docs/architecture/artifact-placement.md +12 -4
- package/docs/architecture/artifact-versions.md +0 -3
- package/docs/architecture/capacity-and-scheduling.md +0 -3
- package/docs/architecture/context-engine.md +0 -3
- package/docs/architecture/context-working-set.md +0 -3
- package/docs/architecture/dispatch-architecture-rationale.md +0 -3
- package/docs/architecture/dispatch-typed-intent.md +0 -3
- package/docs/architecture/evidence-and-memory.md +0 -3
- package/docs/architecture/library.md +1 -3
- package/docs/architecture/middleware-and-components.md +0 -3
- package/docs/architecture/model-catalog.md +1 -4
- package/docs/architecture/observability.md +0 -3
- package/docs/architecture/pi-boundary.md +6 -9
- package/docs/architecture/prompt-envelope-and-tools.md +37 -30
- package/docs/architecture/provider-adapter-cookbook.md +1 -4
- package/docs/architecture/safety-model.md +19 -9
- package/docs/architecture/session-lifecycle.md +10 -7
- package/docs/architecture/time-conventions.md +0 -3
- package/docs/architecture/trace-store.md +28 -20
- package/docs/architecture/tui-design.md +38 -18
- package/docs/architecture/worker-context.md +1 -3
- package/docs/architecture/worker-dispatch-mechanics.md +1 -4
- package/docs/guide/authoring-plugins.md +1 -3
- package/docs/guide/built-in-agents.md +0 -3
- package/docs/guide/commands-and-modes.md +41 -25
- package/docs/guide/configuration-and-targets.md +204 -9
- package/docs/guide/configuration-reference.md +125 -17
- package/docs/guide/environment-variables.md +2 -8
- package/docs/guide/exit-codes-and-output.md +0 -3
- package/docs/guide/extensions-and-sharing.md +0 -3
- package/docs/guide/fleet-dispatch.md +3 -5
- package/docs/guide/glossary.md +1 -4
- package/docs/guide/harness-extensions.md +0 -2
- package/docs/guide/installation-and-lifecycle.md +3 -6
- package/docs/guide/interop.md +0 -2
- package/docs/guide/panes-and-files.md +0 -3
- package/docs/guide/plugins.md +0 -3
- package/docs/guide/proactive-memory.md +0 -3
- package/docs/guide/resource-library.md +1 -3
- package/docs/guide/skills-marketplace.md +0 -2
- package/docs/guide/tool-usage.md +166 -67
- package/docs/guide/troubleshooting.md +1 -4
- package/docs/history/config-knobs-audit.md +0 -3
- package/docs/history/release-cut-checklist.md +0 -3
- package/docs/process/development-pipeline.md +0 -3
- package/docs/process/documentation-coverage.md +3 -3
- package/docs/process/documentation-guide.md +16 -22
- package/docs/process/eval-runner.md +0 -3
- package/docs/process/evals-internal.md +0 -3
- package/docs/process/evolution.md +0 -3
- package/docs/process/fleet-demo-runbook.md +6 -9
- package/docs/process/git-commit-provenance.md +0 -3
- package/docs/process/performance-methodology.md +1 -4
- package/docs/process/release-cut-checklist.md +114 -221
- package/docs/process/scientific-validation.md +23 -6
- package/docs/process/tool-audit-v0.4.9.md +357 -0
- package/library/registry.yaml +2 -2
- package/library/skills/meta/clio-coder-test/SKILL.md +25 -15
- package/library/skills/meta/clio-coder-test/evals.md +16 -2
- package/library/skills/meta/clio-coder-test/plugin.json +1 -1
- package/library/skills/meta/clio-coder-test/references/test-map.md +19 -18
- package/library/skills/registry.yaml +2 -2
- package/library/skills/skill-marketplace.json +1 -1
- package/package.json +13 -11
- package/src/cli/argv.ts +31 -0
- package/src/cli/clio.ts +17 -13
- package/src/cli/config.ts +4 -0
- package/src/cli/docs.ts +65 -328
- package/src/cli/doctor-panes.ts +1 -1
- package/src/cli/doctor.ts +3 -1
- package/src/cli/index.ts +17 -2
- package/src/cli/mcp.ts +106 -0
- package/src/cli/skills-eval.ts +8 -2
- package/src/cli/trace.ts +4 -65
- package/src/cli/uninstall.ts +26 -0
- package/src/cli/upgrade.ts +34 -38
- package/src/cli/usage.ts +3 -0
- package/src/cli/verifiers.ts +1 -1
- package/src/cli/web.ts +79 -0
- package/src/core/bash-exec.ts +27 -4
- package/src/core/bus-events.ts +3 -4
- package/src/core/config.ts +73 -1
- package/src/core/defaults.ts +10 -1
- package/src/core/domain-loader.ts +37 -28
- package/src/core/event-bus.ts +1 -1
- package/src/core/run-records.ts +438 -0
- package/src/core/safe-exec.ts +506 -56
- package/src/core/skill-activation.ts +5 -3
- package/src/core/termination.ts +16 -12
- package/src/core/tool-names.ts +33 -12
- package/src/domains/agents/contract.ts +1 -1
- package/src/domains/agents/extension.ts +18 -10
- package/src/domains/config/extension.ts +5 -4
- package/src/domains/context/clio-md.ts +1 -1
- package/src/domains/context/worker/pressure.ts +6 -2
- package/src/domains/context/working-set/path-index.ts +7 -2
- package/src/domains/dispatch/code-step.ts +7 -2
- package/src/domains/dispatch/contract.ts +7 -0
- package/src/domains/dispatch/execution-role.ts +3 -3
- package/src/domains/dispatch/execution-scheduler.ts +204 -79
- package/src/domains/dispatch/extension.ts +206 -26
- package/src/domains/dispatch/fleet-preflight.ts +18 -3
- package/src/domains/dispatch/fleet-run.ts +1 -0
- package/src/domains/dispatch/gate-decisions.ts +3 -3
- package/src/domains/dispatch/heartbeat.ts +1 -1
- package/src/domains/dispatch/host-verification.ts +16 -14
- package/src/domains/dispatch/index.ts +1 -0
- package/src/domains/dispatch/orphan-recovery.ts +1 -0
- package/src/domains/dispatch/receipt-findings.ts +3 -4
- package/src/domains/dispatch/receipt-integrity.ts +3 -0
- package/src/domains/dispatch/reservation-store.ts +7 -9
- package/src/domains/dispatch/route-facts.ts +1 -1
- package/src/domains/dispatch/state.ts +4 -5
- package/src/domains/dispatch/types.ts +3 -1
- package/src/domains/eval/metrics/tracked.ts +22 -2
- package/src/domains/evidence/build.ts +35 -7
- package/src/domains/extensions/operator-runtime.ts +3 -1
- package/src/domains/gateway/mcp/client.ts +923 -0
- package/src/domains/gateway/mcp/config.ts +456 -0
- package/src/domains/gateway/mcp/index.ts +88 -0
- package/src/domains/gateway/mcp/protocol.ts +273 -0
- package/src/domains/gateway/mcp/trust.ts +263 -0
- package/src/domains/lifecycle/doctor.ts +17 -3
- package/src/domains/middleware/hooks.ts +2 -2
- package/src/domains/mux/contract.ts +5 -9
- package/src/domains/mux/detect.ts +1 -1
- package/src/domains/mux/extension.ts +1 -1
- package/src/domains/mux/protocol.ts +5 -7
- package/src/domains/mux/socket-client.ts +3 -3
- package/src/domains/observability/accountability.ts +2 -2
- package/src/domains/observability/background-memory-usage.ts +3 -0
- package/src/domains/observability/compaction-usage.ts +2 -0
- package/src/domains/observability/contract.ts +7 -3
- package/src/domains/observability/cost.ts +5 -0
- package/src/domains/observability/evidence-index.ts +2 -2
- package/src/domains/observability/extension.ts +1 -0
- package/src/domains/observability/out-of-turn-usage.ts +2 -0
- package/src/domains/observability/projection.ts +10 -0
- package/src/domains/observability/trace-store.ts +65 -5
- package/src/domains/prompts/compiler.ts +41 -23
- package/src/domains/prompts/extension.ts +4 -17
- package/src/domains/prompts/fragments/identity/docs-routing.md +2 -2
- package/src/domains/prompts/fragments/operating/skills.md +12 -10
- package/src/domains/providers/cache-deployment.ts +147 -0
- package/src/domains/providers/catalog.ts +12 -7
- package/src/domains/providers/extension.ts +27 -5
- package/src/domains/providers/index.ts +6 -1
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +42 -10
- package/src/domains/providers/plugins.ts +3 -13
- package/src/domains/providers/probe/http.ts +44 -59
- package/src/domains/providers/probe/reasoning.ts +2 -0
- package/src/domains/providers/runtimes/common/local-synth.ts +4 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +20 -31
- package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +9 -4
- package/src/domains/providers/types/target-descriptor.ts +17 -0
- package/src/domains/safety/action-classifier.ts +17 -1
- package/src/domains/safety/call-target.ts +14 -0
- package/src/domains/safety/contract.ts +1 -1
- package/src/domains/safety/finish-contract.ts +9 -3
- package/src/domains/safety/loop-detector.ts +1 -1
- package/src/domains/safety/policy-engine.ts +7 -0
- package/src/domains/safety/protected-artifacts.ts +3 -4
- package/src/domains/safety/rejection-feedback.ts +1 -1
- package/src/domains/safety/scope.ts +2 -3
- package/src/domains/safety/validation-contract.ts +3 -2
- package/src/domains/scheduling/budget.ts +5 -3
- package/src/domains/scheduling/contract.ts +2 -1
- package/src/domains/scheduling/extension.ts +3 -3
- package/src/domains/session/compaction/branch-summary.ts +1 -1
- package/src/domains/session/compaction/compact.ts +29 -3
- package/src/domains/session/compaction/cut-point.ts +1 -1
- package/src/domains/session/compaction/tokens.ts +5 -10
- package/src/domains/session/contract.ts +1 -1
- package/src/domains/session/cwd-fallback.ts +2 -2
- package/src/domains/session/entries.ts +1 -0
- package/src/domains/session/handoff.ts +5 -1
- package/src/domains/session/history.ts +6 -0
- package/src/domains/session/manager.ts +14 -7
- package/src/domains/session/retry.ts +2 -1
- package/src/domains/session/session-artifacts.ts +12 -7
- package/src/domains/session/task-board.ts +2 -3
- package/src/domains/session/usage.ts +6 -7
- package/src/engine/acp/server.ts +11 -0
- package/src/engine/ai.ts +2 -0
- package/src/engine/apis/openai-completions.ts +17 -4
- package/src/engine/loop-guard.ts +7 -0
- package/src/engine/prewarm.ts +232 -0
- package/src/engine/provider-diagnostics.ts +6 -1
- package/src/engine/provider-error-body.ts +65 -0
- package/src/engine/session.ts +118 -29
- package/src/engine/worker-runtime.ts +3 -0
- package/src/entry/boot-options.ts +2 -0
- package/src/entry/orchestrator.ts +38 -18
- package/src/interactive/chat-loop-messages.ts +3 -0
- package/src/interactive/chat-loop-policy.ts +1 -0
- package/src/interactive/chat-loop.ts +10 -12
- package/src/interactive/chat-panel.ts +23 -9
- package/src/interactive/chat-renderer.ts +33 -11
- package/src/interactive/clio-editor.ts +13 -5
- package/src/interactive/dispatch-board.ts +70 -30
- package/src/interactive/editor-submit.ts +30 -25
- package/src/interactive/footer/widgets.ts +12 -9
- package/src/interactive/interactive-presentation.ts +2 -3
- package/src/interactive/mux-bridge.ts +3 -7
- package/src/interactive/overlay-general-openers.ts +14 -7
- package/src/interactive/overlays/cwd-fallback.ts +1 -1
- package/src/interactive/overlays/library-model.ts +114 -35
- package/src/interactive/overlays/library.ts +52 -5
- package/src/interactive/overlays/list-overlay.ts +4 -1
- package/src/interactive/overlays/session-selector.ts +28 -23
- package/src/interactive/overlays/settings.ts +20 -1
- package/src/interactive/overlays/tree-selector.ts +47 -10
- package/src/interactive/panes-runtime.ts +1 -1
- package/src/interactive/prewarm.ts +11 -197
- package/src/interactive/renderers/compaction-summary.ts +1 -1
- package/src/interactive/renderers/provider-error.ts +118 -0
- package/src/interactive/renderers/retry-status.ts +59 -23
- package/src/interactive/renderers/tool-execution.ts +67 -7
- package/src/interactive/renderers/worker-answer.ts +198 -0
- package/src/interactive/renderers/worker-entry.ts +57 -163
- package/src/interactive/session-usage-reseed.ts +2 -0
- package/src/interactive/side-question.ts +2 -0
- package/src/interactive/slash-commands.ts +26 -1
- package/src/interactive/slash-spec.ts +2 -2
- package/src/interactive/theme/labels.ts +66 -30
- package/src/interactive/turn-context.ts +1 -0
- package/src/interactive/turn-persistence.ts +9 -1
- package/src/interactive/turn-prewarm.ts +126 -19
- package/src/interactive/turn-recovery.ts +2 -1
- package/src/interactive/turn-runtime.ts +36 -5
- package/src/interactive/view/artifacts.ts +3 -2
- package/src/interactive/view/view-overlay.ts +96 -20
- package/src/tools/agent-tools.ts +21 -7
- package/src/tools/artifact.ts +16 -8
- package/src/tools/bash.ts +90 -11
- package/src/tools/bootstrap.ts +42 -4
- package/src/tools/builtin-tool-catalog.ts +80 -11
- package/src/tools/context/index.ts +27 -31
- package/src/tools/context/library.ts +3 -1
- package/src/tools/context/surface.ts +12 -26
- package/src/tools/core-bootstrap.ts +72 -1
- package/src/tools/data/csv.ts +1189 -0
- package/src/tools/data/index.ts +308 -0
- package/src/tools/data/json.ts +1799 -0
- package/src/tools/data/jsonl.ts +561 -0
- package/src/tools/data/shared.ts +452 -0
- package/src/tools/edit-diff.ts +0 -7
- package/src/tools/edit.ts +115 -18
- package/src/tools/file-mutation-queue.ts +114 -4
- package/src/tools/find.ts +108 -29
- package/src/tools/gateway/caps.ts +11 -0
- package/src/tools/gateway/clio-context-surface.ts +41 -0
- package/src/tools/gateway/clio-context-tools.ts +77 -0
- package/src/tools/gateway/data-surface.ts +138 -0
- package/src/tools/gateway/data-tool.ts +201 -0
- package/src/tools/gateway/index.ts +342 -0
- package/src/tools/gateway/mcp-capabilities.ts +469 -0
- package/src/tools/grep.ts +88 -33
- package/src/tools/harness-extensions.ts +3 -0
- package/src/tools/ignore-policy.ts +7 -5
- package/src/tools/ls.ts +111 -20
- package/src/tools/policy.ts +35 -13
- package/src/tools/presentation.ts +6 -0
- package/src/tools/read.ts +634 -156
- package/src/tools/registry.ts +106 -8
- package/src/tools/run-script.ts +997 -0
- package/src/tools/spawn-hygiene.ts +157 -5
- package/src/tools/surface.ts +163 -0
- package/src/tools/verify/authoring.ts +8 -3
- package/src/tools/verify/catalog.ts +14 -1
- package/src/tools/verify/numeric.ts +367 -59
- package/src/tools/verify/perf.ts +171 -9
- package/src/tools/verify/scripts.ts +178 -26
- package/src/tools/web-fetch-surface.ts +22 -0
- package/src/tools/web-fetch.ts +26 -1
- package/src/tools/write.ts +45 -19
- package/src/worker/spec-contract.ts +27 -0
- package/dist/chunk-B6UM3OZC.js +0 -15
- package/dist/chunk-GJ24ODAX.js +0 -196
- package/dist/chunk-HRAKUPIH.js +0 -57
- package/dist/docs-BL7ROUFN.js +0 -292
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
# Configuration, Targets, Runtimes, and Auth
|
|
2
2
|
|
|
3
|
-
> **Visual blueprint:** The source checkout includes the complete
|
|
4
|
-
> [Configuration, Targets, Runtimes, and Auth visual reference](https://github.com/iowarp/clio-coder/blob/main/docs/html/configuration_blueprint.html).
|
|
5
|
-
|
|
6
3
|
Clio Coder is target-first: chat and fleet dispatch resolve through configured targets in `settings.yaml`, not through provider-specific ad hoc flags. Chat and print targets are HTTP and native engine-backed runtimes. Fleet dispatch can also target sanctioned subscription and external-worker runtimes described below.
|
|
7
4
|
|
|
8
5
|
Clio's engine is built on the pi SDK (see [docs/architecture/pi-boundary.md](../architecture/pi-boundary.md)). Broad provider/model support comes from engine-backed descriptors and from the generic `openai-compat` and `anthropic-compat` targets. Clio adds orchestration, local/native runtime ergonomics, target configuration, dispatch, safety, and receipts rather than creating a first-class descriptor for every provider.
|
|
@@ -399,7 +396,7 @@ Three behaviors in this release are gated on a runtime's tier being `local-nativ
|
|
|
399
396
|
|
|
400
397
|
The tier means "an inference server the operator runs, whose prefix cache and resident model Clio's own behavior can displace." That is what the three gates are actually asking:
|
|
401
398
|
|
|
402
|
-
- **Pre-warm**
|
|
399
|
+
- **Pre-warm** requires `chat.prewarm: true` and a verified, loaded and idle native deployment binding. The first supported path is the pinned llama.cpp deployment described below. Other native runtimes, unknown gateway routes and paid routes remain passive. Checks run before preparation and again before the request; a runtime tier alone grants no load or eviction authority.
|
|
403
400
|
- **Endpoint capacity** defaults to one slot here when discovery reports nothing, and to unbounded elsewhere. vLLM and SGLang are the deliberate exceptions inside the tier: both serve genuinely concurrent requests, so an undiscovered limit is left unbounded rather than guessed at one.
|
|
404
401
|
- **Five of the eight expected-cold reasons** are stamped only here, because a single-slot local cache is the only one an interleaved run actually displaces. The other three moved the prompt bytes themselves and are stamped on every tier. The full split is in [context-engine.md](../architecture/context-engine.md#cache-divergence-honesty).
|
|
405
402
|
|
|
@@ -610,10 +607,11 @@ paths and stop startup so stale configuration does not silently change runtime
|
|
|
610
607
|
behavior.
|
|
611
608
|
|
|
612
609
|
Plain `clio-coder doctor` is read-only. `clio-coder doctor --fix` creates missing
|
|
613
|
-
directories and template files, repairs credential permissions,
|
|
614
|
-
install metadata
|
|
615
|
-
schema but never rewrites removed
|
|
616
|
-
|
|
610
|
+
directories and template files, repairs credential permissions, refreshes
|
|
611
|
+
install metadata, and records fleet preflight results. It validates
|
|
612
|
+
`settings.yaml` directly against the current schema but never rewrites removed
|
|
613
|
+
keys or migrates an old settings shape. Any unknown or retired key remains a
|
|
614
|
+
validation error on that doctor run.
|
|
617
615
|
Registered `clio-coder upgrade` migrations are the narrow exception. Upgrade
|
|
618
616
|
moves a version-1 or unversioned settings document into the version-2 areas,
|
|
619
617
|
records the migration, and keeps the byte-exact original as
|
|
@@ -717,6 +715,7 @@ This is the version-2 durable schema shipped in `DEFAULT_SETTINGS`. Validation i
|
|
|
717
715
|
| `chat.retry.baseDelayMs` | `2000` | integer ≥ 0 | next turn |
|
|
718
716
|
| `chat.retry.maxDelayMs` | `60000` | integer ≥ 0 | next turn |
|
|
719
717
|
| `chat.retry.streamStallMs` | `180000` | integer ≥ 0; `0` disables the stall timer | next turn |
|
|
718
|
+
| `chat.retry.firstTokenStallMs` | `600000` | integer ≥ 0; silence allowed before a call's first token; `0` never aborts before the first token | next turn |
|
|
720
719
|
|
|
721
720
|
### Fleet
|
|
722
721
|
|
|
@@ -812,7 +811,7 @@ The safety-limit leaves have no one-process `CLIO_CODER_*` overrides in the curr
|
|
|
812
811
|
| `integrations.projectResources.trustProjectImports` | `false` | boolean | next turn |
|
|
813
812
|
| `integrations.externalAgents.entries` | `[]` | list of validated ACP agent definitions | next dispatch |
|
|
814
813
|
| `integrations.externalAgents.defaults.connectTimeoutMs` | `30000` | integer ≥ 1 | next dispatch |
|
|
815
|
-
| `integrations.externalAgents.defaults.turnTimeoutMs` | `
|
|
814
|
+
| `integrations.externalAgents.defaults.turnTimeoutMs` | `0` | integer ≥ 0; `0` disables the turn timeout | next dispatch |
|
|
816
815
|
| `integrations.externalAgents.defaults.permissionTimeoutMs` | `120000` | integer ≥ 1 | next dispatch |
|
|
817
816
|
| `integrations.externalAgents.defaults.toolGovernance` | `clio-coder-policy` | `clio-coder-policy`, `agent-managed`, `deny-all` | next dispatch |
|
|
818
817
|
| `integrations.runtimePlugins` | `[]` | list of plugin package names | restart |
|
|
@@ -1241,3 +1240,199 @@ When opening issues, include the Clio version, Node version, target id/runtime,
|
|
|
1241
1240
|
## Explicit Antigravity continuity
|
|
1242
1241
|
|
|
1243
1242
|
Antigravity resumes a conversation only when a caller explicitly supplies its conversation ID through the worker runtime. The dispatch tool exposes no resume argument. A nonempty ID must be at most 4096 UTF-8 bytes and contain no Unicode control characters; it is passed as a literal `--conversation` argument. Clio requires the first init conversation ID to match the requested ID and fails the run if agy starts a different conversation. An absent or empty ID starts fresh. Antigravity runs are never retried automatically.
|
|
1243
|
+
|
|
1244
|
+
## Exact prompt reuse and bounded warming
|
|
1245
|
+
|
|
1246
|
+
Normal provider caching does not require Clio to manage inference state. Pi
|
|
1247
|
+
serializes native requests and normalizes provider usage; Clio preserves those
|
|
1248
|
+
values through the session ledger, worker receipts and trace records. A matching
|
|
1249
|
+
serialized prefix is a reuse candidate. Only backend usage/timing evidence can
|
|
1250
|
+
establish an actual hit. A compiler memoization hit or a forked transcript cannot.
|
|
1251
|
+
|
|
1252
|
+
| Responsibility | Existing owner | Clio correction or limit |
|
|
1253
|
+
| --- | --- | --- |
|
|
1254
|
+
| Native request conversion, thinking history and cache controls | Pi 0.85.1 | Target retention reaches all instrumented native Pi APIs; explicit call options still win. |
|
|
1255
|
+
| Exclusive input/read/write buckets, cost tiers and one-hour write cost | Pi | Preserve the full catalog cost and per-call calculated total instead of flattening tiers or repricing an aggregate. |
|
|
1256
|
+
| Main, worker, failed/aborted and out-of-turn usage | Clio | Preserve optional `cacheWrite1h` as a subset of writes; retain billed failed calls. Missing provider usage remains unknown. |
|
|
1257
|
+
| Main and warm preparation | Pi public transforms and Clio payload hooks | Warm calls use the caller's transforms, ordered tools, thinking and payload replacement without executing tools or adding messages to history. |
|
|
1258
|
+
| Session transport identity | Pi/Clio session ownership | `sessionId` remains the real session id. No fleet-wide cache key replaces it. |
|
|
1259
|
+
| Distinct cross-session cache affinity, separately configured one-hour rate | SDK contract gap | No duplicate serializer or price calculator is introduced. Pi's supported provider pricing remains authoritative. |
|
|
1260
|
+
|
|
1261
|
+
A native Pi target can request retention without enabling warming:
|
|
1262
|
+
|
|
1263
|
+
```yaml
|
|
1264
|
+
targets:
|
|
1265
|
+
- id: direct-openai
|
|
1266
|
+
runtime: openai
|
|
1267
|
+
cache:
|
|
1268
|
+
retention: long
|
|
1269
|
+
```
|
|
1270
|
+
|
|
1271
|
+
Precedence is explicit request option, then target, then
|
|
1272
|
+
`CLIO_CODER_ANTHROPIC_CACHE_RETENTION` for native Anthropic Messages, then Pi's
|
|
1273
|
+
own environment/default. Targets reload on the next turn, including when the
|
|
1274
|
+
id and model stay the same. The active conversation survives the runtime refresh.
|
|
1275
|
+
There are no duplicate model, recipe or fleet retention knobs.
|
|
1276
|
+
|
|
1277
|
+
| API/deployment | Effective policy and current verification |
|
|
1278
|
+
| --- | --- |
|
|
1279
|
+
| Native OpenAI Responses, older supported models | Pi's model compatibility flags select `24h` for `long`. `none` omits controls; it does not universally disable automatic caching. Payload fixtures cover this path. |
|
|
1280
|
+
| Native OpenAI Responses, explicit-mode models | Pi selects `prompt_cache_options`; `none` requests explicit mode without breakpoints, and `long` selects `30m` TTL. Clio adds no extra breakpoints or weaker instruction roles. Payload fixtures cover this path. |
|
|
1281
|
+
| Native Anthropic Messages | Pi selects eligible short or one-hour cache-control blocks. `none` removes these controls. Real serializer/HTTP usage fixtures cover normalization and the one-hour subset. |
|
|
1282
|
+
| Direct llama.cpp | Normal calls retain `cache_prompt: true`; `retention: none` selects false. Optional warming requires the binding and evidence below. |
|
|
1283
|
+
| LiteLLM/generic OpenAI compatibility | Passive provider usage is retained. Generic synthesis does not advertise OpenAI `24h` retention. A declared route alone does not prove native controls or timings survive translation. Gateway warming stays disabled. |
|
|
1284
|
+
| vLLM | Normal inference and passive provider usage continue. A declared build can be checked, but version alone proves neither APC enablement nor idle scheduler/memory capacity. Warming stays disabled; no fixed-slot model is imposed. |
|
|
1285
|
+
| Claude Agent SDK, subscription/OAuth and other harnesses | Harness-specific transport and usage remain intact. Native Pi controls and direct API prices are not promises about another harness. |
|
|
1286
|
+
| Gemini explicit cache objects, Bedrock/platform cache administration | No new object lifecycle or administration is added. Existing Pi/provider support remains responsible for supported passive observations and requests. |
|
|
1287
|
+
|
|
1288
|
+
For a direct llama.cpp **already loaded** worker at the audited commit, an
|
|
1289
|
+
operator can opt into a bounded pilot. Use the worker's actual `build_info`,
|
|
1290
|
+
exact model alias and endpoint; the values below are examples, not deployment
|
|
1291
|
+
measurements:
|
|
1292
|
+
|
|
1293
|
+
```yaml
|
|
1294
|
+
chat:
|
|
1295
|
+
prewarm: true
|
|
1296
|
+
targets:
|
|
1297
|
+
- id: local-llama
|
|
1298
|
+
runtime: llamacpp
|
|
1299
|
+
url: http://127.0.0.1:8080
|
|
1300
|
+
lifecycle: user-managed
|
|
1301
|
+
cache:
|
|
1302
|
+
retention: short
|
|
1303
|
+
deployment:
|
|
1304
|
+
backend: llamacpp
|
|
1305
|
+
controlUrl: http://127.0.0.1:8080
|
|
1306
|
+
model: your-exact-model-id
|
|
1307
|
+
build: b1-c841aee
|
|
1308
|
+
warm:
|
|
1309
|
+
maxInputTokens: 8192
|
|
1310
|
+
maxDurationMs: 30000
|
|
1311
|
+
cooldownMs: 60000
|
|
1312
|
+
```
|
|
1313
|
+
|
|
1314
|
+
Discovery uses GET requests with a two-second total deadline and refuses
|
|
1315
|
+
redirects. The control endpoint receives no inferred credentials. An authenticated
|
|
1316
|
+
control endpoint therefore remains unavailable to this initial reader. For a
|
|
1317
|
+
router, Clio inspects `/models` before any model-qualified request. Sleeping,
|
|
1318
|
+
loading or unloaded models are ineligible; a build change, unknown model or busy
|
|
1319
|
+
slot also refuses warming. The verified llama protocol is commit `c841aee`.
|
|
1320
|
+
Other builds stay passive until their no-autoload and inspection behavior is
|
|
1321
|
+
verified. A missing process epoch stays unknown; discovery is repeated rather
|
|
1322
|
+
than persisting a warm handle across restarts.
|
|
1323
|
+
|
|
1324
|
+
A gateway declaration uses the same `deployment` map plus
|
|
1325
|
+
`gatewayDeploymentId`, with `model` set to the native model and `controlUrl` to
|
|
1326
|
+
its native endpoint. The reader compares a single matching LiteLLM route's id,
|
|
1327
|
+
model and API base before contacting that control endpoint. Failover or multiple
|
|
1328
|
+
replicas invalidate that binding. Even a matching route remains passive:
|
|
1329
|
+
end-to-end native control transport and reliable request affinity have not been
|
|
1330
|
+
validated on the configured gateway. No gateway credentials are forwarded to
|
|
1331
|
+
native discovery.
|
|
1332
|
+
|
|
1333
|
+
The warm owns one request and at most one newer pending trigger. Pending work
|
|
1334
|
+
expires after 30 seconds. The default bound is 8192 estimated input tokens and
|
|
1335
|
+
a 30-second client deadline, with a 60-second cooldown; configured deadlines
|
|
1336
|
+
cannot exceed two minutes. Context transforms run before the input estimate.
|
|
1337
|
+
The one-token output and dummy suffix do not enter the conversation. The warm
|
|
1338
|
+
uses observe-only residency and `autoload=false` on native llama requests, so
|
|
1339
|
+
it cannot use the ordinary turn's implicit administrative authority.
|
|
1340
|
+
|
|
1341
|
+
Admission retains the blanket active-dispatch refusal, checks shared Clio
|
|
1342
|
+
worker leases/reservations, and reads live native slots for foreign traffic.
|
|
1343
|
+
These are conservative admission observations, **not a global endpoint
|
|
1344
|
+
reservation**. Another process can begin work after the check. A foreground
|
|
1345
|
+
submit detaches a non-preemptible warm; its usage and local endpoint occupancy
|
|
1346
|
+
remain owned until the client round actually settles. Shutdown aborts detached
|
|
1347
|
+
rounds as well. Client cancellation never proves the server has stopped;
|
|
1348
|
+
subsequent admission must observe the backend again.
|
|
1349
|
+
|
|
1350
|
+
`prewarm` custom ledger entries contain the actual usage, backend timings and
|
|
1351
|
+
deployment observation. `prewarmSkipped` records changed refusal reasons such
|
|
1352
|
+
as `deployment-unbound`, `model-not-loaded`, `deployment-build-mismatch`,
|
|
1353
|
+
`gateway-route-mismatch`, `gateway-cache-transport-unverified`,
|
|
1354
|
+
`vllm-scheduler-unverified`, `cooldown` and `expired`. These records contain no
|
|
1355
|
+
prompt payloads. Diagnostic payload capture remains a separate explicit opt-in.
|
|
1356
|
+
|
|
1357
|
+
Turn off speculative work with `chat.prewarm: false`. Remove `cache.deployment`
|
|
1358
|
+
to return an individual target to passive operation. `cache.retention: none`
|
|
1359
|
+
selects the API's supported cache-off request policy and also refuses Clio
|
|
1360
|
+
warming; its exact effect on provider automatic caches is API-specific.
|
|
1361
|
+
Existing `chat.prewarm: true` configurations without deployment evidence now
|
|
1362
|
+
skip the speculative request. Ordinary inference remains available.
|
|
1363
|
+
|
|
1364
|
+
No paid warming or automatic sibling-worker warming is enabled. Native workers
|
|
1365
|
+
retain isolated/fork/splice context selection and share Pi serialization and
|
|
1366
|
+
accounting, but the worker's context guard and payload hooks must be included
|
|
1367
|
+
in any future headless warm composition. There is no main-to-worker cache
|
|
1368
|
+
transfer based on ancestry.
|
|
1369
|
+
|
|
1370
|
+
### Validation status for this change
|
|
1371
|
+
|
|
1372
|
+
Live validation on 2026-09-11 exercised mini's `ornith1.5-35b-moe` on
|
|
1373
|
+
llama.cpp (`b1-c841aee`) and dynamo's `qwen3.8-27b` on LM Studio, first directly
|
|
1374
|
+
and then through blade's LiteLLM 1.98.0. The selected models were allowed to
|
|
1375
|
+
wake/load for inference; no serving configuration or administrative API was
|
|
1376
|
+
changed. The same native models and thinking-off intent were retained.
|
|
1377
|
+
|
|
1378
|
+
Ten repetitions per route used about 2,850 tokens of public synthetic context
|
|
1379
|
+
and a bounded output. All useful requests in the corrected engine run returned
|
|
1380
|
+
exactly `OK`. Median client TTFT was:
|
|
1381
|
+
|
|
1382
|
+
| Route | New prefix | Repeated prefix | After a separate warm |
|
|
1383
|
+
| --- | ---: | ---: | ---: |
|
|
1384
|
+
| Mini native | 1,691 ms | 183 ms | 163 ms |
|
|
1385
|
+
| Dynamo native | 1,255 ms | 156 ms | 155 ms |
|
|
1386
|
+
| Mini through LiteLLM | 1,706 ms | 196 ms | 173 ms |
|
|
1387
|
+
| Dynamo through LiteLLM | 1,259 ms | 163 ms | 162 ms |
|
|
1388
|
+
|
|
1389
|
+
Mini reported roughly 2,834 cached tokens directly and 2,837 through the
|
|
1390
|
+
gateway after warming. Dynamo's OpenAI-compatible responses did not expose a
|
|
1391
|
+
cache-read breakdown; their normalized zero must not be presented as measured
|
|
1392
|
+
cache misses. Its timing improvement is an observation, not a per-request
|
|
1393
|
+
cache-token measurement. Gateway response metadata identified the expected
|
|
1394
|
+
models/deployments with no reported fallback or retry.
|
|
1395
|
+
|
|
1396
|
+
Including the warm itself, warm plus useful request took **10.6–12.4% more
|
|
1397
|
+
median elapsed time** than one first request. That fails the preregistered 5%
|
|
1398
|
+
maximum total-time regression. Automatic warming therefore remains off by
|
|
1399
|
+
default. This workload favors reuse from useful requests; the after-warm TTFT
|
|
1400
|
+
reduction alone is not a total-work improvement. An idle-time or foreground
|
|
1401
|
+
contention benefit requires its own controlled measurement before rollout.
|
|
1402
|
+
|
|
1403
|
+
Four full Clio main-agent CLI runs also completed with no tool calls and
|
|
1404
|
+
matching native/gateway outputs per model: mini returned `OK.`, dynamo `OK`.
|
|
1405
|
+
The punctuation means mini did not meet a literal exact-`OK` instruction in
|
|
1406
|
+
those full-prompt smoke runs; it is not hidden by the transport success. The
|
|
1407
|
+
engine workload above enforced the exact output separately.
|
|
1408
|
+
|
|
1409
|
+
Four custom-worker CLI runs then returned exactly `OK`, with zero tool calls
|
|
1410
|
+
and succeeded outcomes. Each emitted receipt matched its persisted receipt and
|
|
1411
|
+
passed Clio's integrity verifier against its persisted run envelope. The mini
|
|
1412
|
+
worker through LiteLLM reported 719 cache-read tokens in that verified receipt.
|
|
1413
|
+
These checks establish transport and accounting continuity; the synthetic
|
|
1414
|
+
worker's task quality was not independently graded.
|
|
1415
|
+
|
|
1416
|
+
The first exploratory driver omitted the public capability update that
|
|
1417
|
+
production applies after model synthesis. That made dynamo through LiteLLM
|
|
1418
|
+
spend its output budget on thinking. Those samples were preserved and marked
|
|
1419
|
+
invalid for semantic comparisons; the reported rerun includes the existing
|
|
1420
|
+
public update and checks visible output. This was a driver error, not a newly
|
|
1421
|
+
found production thinking regression.
|
|
1422
|
+
|
|
1423
|
+
Fixtures additionally cover OpenAI/Anthropic serializers, normalized usage,
|
|
1424
|
+
SDK pricing tiers, failed calls, selected-target refresh, warm hooks and
|
|
1425
|
+
lifecycle, and deployment invalidation. Isolated/fork/splice worker context
|
|
1426
|
+
contracts pass. vLLM live verification is explicitly outside this local pass;
|
|
1427
|
+
its scheduler and APC controls remain unverified and passive.
|
|
1428
|
+
|
|
1429
|
+
Raw local results are in `.clio-coder/artifacts/cache-live-2026-09-11T14-17-51.153Z/`,
|
|
1430
|
+
with full CLI events under `.clio-coder/artifacts/cache-cli-2026-09-11T14-20-44.264Z/`.
|
|
1431
|
+
Worker events and receipt verification are under
|
|
1432
|
+
`.clio-coder/artifacts/cache-worker-2026-09-11T14-26-13.738Z/`.
|
|
1433
|
+
The original preregistration is preserved separately from the schema-correct
|
|
1434
|
+
`.clio-coder/validation.yaml`. These artifacts are not distributed with a release.
|
|
1435
|
+
The run does not establish replica affinity guarantees, eviction/TTL behavior,
|
|
1436
|
+
foreign-traffic fairness, paid-provider savings, or a complete deployment pin
|
|
1437
|
+
for every model binary/tokenizer. Those limits prevent a general performance
|
|
1438
|
+
claim or enabling automatic gateway/worker warming.
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
# Configuration reference
|
|
2
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
3
|
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 current source reads and is maintained alongside the code. 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
4
|
|
|
8
5
|
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.
|
|
@@ -25,7 +22,8 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
25
22
|
| `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
23
|
| `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
24
|
| `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
|
|
25
|
+
| `chat.retry.streamStallMs` | `180000` | Silence after a call's first token 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 |
|
|
26
|
+
| `chat.retry.firstTokenStallMs` | `600000` | Silence allowed between sending a model call and its first token. It replaces `streamStallMs` for that window only, because a local server that slept reloads the model and prefills cold before it emits anything; the larger of the two values applies (integer >= 0, `0` never aborts a call that has not started streaming); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
29
27
|
| `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`, configured model-cycle actions, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
30
28
|
| `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`, configured model-cycle actions, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
31
29
|
| `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 |
|
|
@@ -60,7 +58,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
60
58
|
| `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
59
|
| `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
60
|
| `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
|
|
61
|
+
| `fleet.nodes` | `[]` | SSH-reachable worker nodes (the implicit `local` node is never listed); a node becomes dispatch-eligible only after `clio-coder doctor --fix` records a passing fleet preflight for the project root (plain `doctor` probes and reports without recording); applies next dispatch. | |
|
|
64
62
|
| `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
63
|
| `fleet.nodes[].host` | | SSH destination host (name or address); required. | |
|
|
66
64
|
| `fleet.nodes[].id` | | Stable node id used in placement, receipts, and operator surfaces; required, `local` is reserved, duplicates are rejected. | |
|
|
@@ -89,7 +87,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
89
87
|
| `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
88
|
| `integrations.externalAgents.defaults.permissionTimeoutMs` | `120000` | Default ms an ACP permission request may wait for an operator (integer >= 1); applies next dispatch. | |
|
|
91
89
|
| `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` | `
|
|
90
|
+
| `integrations.externalAgents.defaults.turnTimeoutMs` | `0` | Default ms one ACP turn may take before it is cancelled (integer >= 0; 0 disables); applies next dispatch. | |
|
|
93
91
|
| `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
92
|
| `integrations.externalAgents.entries[].args` | `[]` | Argument list for the ACP stdio command (list of strings, duplicates dropped); empty when absent. | |
|
|
95
93
|
| `integrations.externalAgents.entries[].command` | | ACP stdio command spawned for the agent (newline-delimited JSON-RPC per ACP v1); required. | |
|
|
@@ -102,7 +100,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
102
100
|
| `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
101
|
| `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
102
|
| `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 >=
|
|
103
|
+
| `integrations.externalAgents.entries[].turnTimeoutMs` | | Per-agent ms one ACP turn may take before cancellation (integer >= 0; 0 disables); absent inherits `defaults.turnTimeoutMs`. | |
|
|
106
104
|
| `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
105
|
| `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
106
|
| `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 |
|
|
@@ -171,6 +169,15 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
171
169
|
| `targets[].litellm.request.tags` | `[clio-coder]` | Additional LiteLLM request tags (list of non-empty strings without commas); Clio always adds `clio-coder`. | |
|
|
172
170
|
| `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
171
|
| `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. | |
|
|
172
|
+
| `targets[].cache.retention` | SDK default | Native Pi request cache policy: `none`, `short`, or `long`. Meaning depends on the selected API/model; this grants no management or paid-warming authority. | explicit call > target > Anthropic environment fallback > SDK default |
|
|
173
|
+
| `targets[].cache.deployment.backend` | unset | Read-only binding to `llamacpp` or `vllm`; absence leaves warming ineligible. | target |
|
|
174
|
+
| `targets[].cache.deployment.controlUrl` | unset | Explicit HTTP(S) discovery endpoint, without embedded credentials/query/fragment. No gateway credentials or administrative requests are sent here. | target |
|
|
175
|
+
| `targets[].cache.deployment.model` | unset | Exact native model id, distinct from a gateway route alias. | target |
|
|
176
|
+
| `targets[].cache.deployment.build` | unset | Expected worker build/version; a mismatch invalidates warm admission. Current llama warm protocol is verified against commit `c841aee`; other versions remain passive. | target |
|
|
177
|
+
| `targets[].cache.deployment.gatewayDeploymentId` | unset | LiteLLM deployment id to compare against a single current `/v1/model/info` route. A match alone does not establish cache-control transport support. | target |
|
|
178
|
+
| `targets[].cache.warm.maxInputTokens` | `8192` | Positive maximum estimated input tokens after engine context transforms; oversized warms are refused. This is an estimate, not a tokenizer or billing cap. | target |
|
|
179
|
+
| `targets[].cache.warm.maxDurationMs` | `30000` | Positive client warm deadline, capped at 120000 ms. Client cancellation is not proof that backend computation stopped. | target |
|
|
180
|
+
| `targets[].cache.warm.cooldownMs` | `60000` | Positive delay between completed warm requests; effective minimum 1000 ms. An identical prefix is suppressed for at least 60000 ms. | target |
|
|
174
181
|
| `targets[].pricing.cacheRead` | `0` | USD rate for cache-read tokens (number >= 0); 0 when absent. | |
|
|
175
182
|
| `targets[].pricing.cacheWrite` | `0` | USD rate for cache-write tokens (number >= 0); 0 when absent. | |
|
|
176
183
|
| `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`. | |
|
|
@@ -202,6 +209,7 @@ Read from the process environment at boot unless the row says otherwise.
|
|
|
202
209
|
| `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 |
|
|
203
210
|
| `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. | |
|
|
204
211
|
| `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) |
|
|
212
|
+
| `CLIO_CODER_ENTRY` | `unset` | Exported by the eval suite runner into a task runner's environment with the path of the Clio entry under evaluation (`src/domains/eval/suites/run.ts`). Clio itself never reads it. | |
|
|
205
213
|
| `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. | |
|
|
206
214
|
| `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. | |
|
|
207
215
|
| `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 |
|
|
@@ -237,9 +245,6 @@ Read from the process environment at boot unless the row says otherwise.
|
|
|
237
245
|
| `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 |
|
|
238
246
|
| `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 |
|
|
239
247
|
| `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). | |
|
|
240
|
-
| `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. | |
|
|
241
|
-
| `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. | |
|
|
242
|
-
| `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. | |
|
|
243
248
|
| `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). | |
|
|
244
249
|
| `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. | |
|
|
245
250
|
| `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) |
|
|
@@ -269,7 +274,6 @@ Read from the process environment at boot unless the row says otherwise.
|
|
|
269
274
|
| `NO_COLOR` | `unset` | Any non-empty value drops every foreground and background SGR color from the theme; bold, dim, italic, and underline stay. | |
|
|
270
275
|
| `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. | |
|
|
271
276
|
| `NODE_DISABLE_COMPILE_CACHE` | `unset` | Presence disables Clio's compile cache for this process and stops the worker spawn from injecting one. | |
|
|
272
|
-
| `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. | |
|
|
273
277
|
| `NODE_OPTIONS` | `unset` | Scanned for `--trace-warnings`; when present, the trace store stops suppressing Node's `node:sqlite` ExperimentalWarning. | |
|
|
274
278
|
| `OLLAMA_NUM_PARALLEL` | `1` | Positive integer parallel slot count assumed for a local Ollama server during discovery; anything else counts as 1. | |
|
|
275
279
|
| `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. | |
|
|
@@ -426,7 +430,7 @@ Grouped by command. Global flags appear under `global`.
|
|
|
426
430
|
|
|
427
431
|
| Flag | Controls |
|
|
428
432
|
|---|---|
|
|
429
|
-
| `--fix` | Repair structure (missing directories and template files, credential file permissions) instead of the read-only diagnosis. |
|
|
433
|
+
| `--fix` | Repair structure (missing directories and template files, credential file permissions) and record fleet preflight results instead of the read-only diagnosis. |
|
|
430
434
|
| `--help` | Print the command's usage and exit. |
|
|
431
435
|
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
432
436
|
| `-h` | Short form of --help. |
|
|
@@ -517,6 +521,7 @@ Grouped by command. Global flags appear under `global`.
|
|
|
517
521
|
| `--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. |
|
|
518
522
|
| `--all` | With `--help`, appends the `clio-coder dev` command list (components, evolve, share) to the top-level help; no effect otherwise. |
|
|
519
523
|
| `--api-key` | Startup flag taking a literal key that overrides the stored credential for the target this invocation resolves; must precede the subcommand. |
|
|
524
|
+
| `--autonomy` | Startup flag setting the interactive session's autonomy to `read-only`, `suggest`, `auto-edit`, or `full-auto` without modifying `settings.yaml`. Passing `--autonomy` before a subcommand is refused with exit 2 (`clio-coder run --autonomy` remains the headless form). |
|
|
520
525
|
| `--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. |
|
|
521
526
|
| `--help` | Print the top-level command list and exit 0 when given before any subcommand. |
|
|
522
527
|
| `--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). |
|
|
@@ -569,6 +574,19 @@ Grouped by command. Global flags appear under `global`.
|
|
|
569
574
|
| `--with-requirements` | For `library install`, also install the entry's unsatisfied requirements instead of refusing. |
|
|
570
575
|
| `-h` | Short form of --help. |
|
|
571
576
|
|
|
577
|
+
### `mcp`
|
|
578
|
+
|
|
579
|
+
Operator commands are `clio-coder mcp list [--json]`, `clio-coder mcp trust <id> [--action-class read|execute|unknown] [--json]`, and `clio-coder mcp untrust <id> [--json]`. `--help`/`-h` prints help even with `--json`. Interactive `/mcp list`, `/mcp trust <id> [read|execute|unknown]`, and `/mcp untrust <id>` use the same outcomes. These commands inspect configuration or mutate trust without launching a server.
|
|
580
|
+
|
|
581
|
+
| JSON response | Shape |
|
|
582
|
+
| --- | --- |
|
|
583
|
+
| list | `{servers: [...], diagnostics: [...], trustDiagnostics: [...]}`; servers include declaration and `trust: {status, actionClass, reason?}` |
|
|
584
|
+
| trust | `{ok: true, record: {projectRoot, id, digest, actionClass, trustedAt}}` |
|
|
585
|
+
| untrust | `{ok: true, removed: boolean}` |
|
|
586
|
+
| mutation or usage error | `{ok: false, message: string}` with a one-line reason |
|
|
587
|
+
|
|
588
|
+
Exit codes are 0 for success, 1 for operational failure, and 2 for invalid usage. List keeps its list response shape and exits 1 when config or trust diagnostics exist. CLI trust/untrust requires a declared project id; user declarations are trusted by authorship. Trust-file corruption is reported without overwriting it. See [the configuration contract](#local-stdio-mcp-configuration-and-trust).
|
|
589
|
+
|
|
572
590
|
### `memory`
|
|
573
591
|
|
|
574
592
|
| Flag | Controls |
|
|
@@ -599,7 +617,10 @@ Grouped by command. Global flags appear under `global`.
|
|
|
599
617
|
|
|
600
618
|
| Flag | Controls |
|
|
601
619
|
|---|---|
|
|
620
|
+
| `--force` | For `panes install`, overwrite an existing installation without prompting. |
|
|
602
621
|
| `--help` | Print the command's usage and exit. |
|
|
622
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
623
|
+
| `-f` | Short form of --force. |
|
|
603
624
|
| `-h` | Short form of --help. |
|
|
604
625
|
|
|
605
626
|
### `paths`
|
|
@@ -622,6 +643,7 @@ Grouped by command. Global flags appear under `global`.
|
|
|
622
643
|
| `--dry-run` | Print the listing of what each selected root holds and change nothing. |
|
|
623
644
|
| `--force` | Required for destructive execution; without it the command lists and refuses. |
|
|
624
645
|
| `--help` | Print the command's usage and exit. |
|
|
646
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
625
647
|
| `--state` | Reset the state root only (every session transcript and its audit trail); the default level when no level flag is given. |
|
|
626
648
|
| `-f` | Short form of --force. |
|
|
627
649
|
| `-h` | Short form of --help. |
|
|
@@ -698,6 +720,15 @@ Grouped by command. Global flags appear under `global`.
|
|
|
698
720
|
| `--thinking` | For `targets profile set`, the profile's thinking level: off, minimal, low, medium, high, xhigh, or max. |
|
|
699
721
|
| `-h` | Short form of --help. |
|
|
700
722
|
|
|
723
|
+
### `tasks`
|
|
724
|
+
|
|
725
|
+
| Flag | Controls |
|
|
726
|
+
|---|---|
|
|
727
|
+
| `--expect` | For `tasks add`, repeatable repository-relative output file path expected by the task. |
|
|
728
|
+
| `--help` | Print the command's usage and exit. |
|
|
729
|
+
| `--verify` | For `tasks add`, repeatable verification check id (with optional `:timeoutMs` suffix) declared in `package.json` or `.clio-coder/verifiers.yaml`. |
|
|
730
|
+
| `-h` | Short form of --help. |
|
|
731
|
+
|
|
701
732
|
### `tools`
|
|
702
733
|
|
|
703
734
|
| Flag | Controls |
|
|
@@ -721,7 +752,6 @@ Grouped by command. Global flags appear under `global`.
|
|
|
721
752
|
| `--limit` | For `trace runs`, integer 1 to 500 number of runs to list (also `--limit=N`). |
|
|
722
753
|
| `--max-age-days` | For `trace prune`, integer 1 to 36500 retention age in days for this prune only (also `--max-age-days=N`). |
|
|
723
754
|
| `--max-bytes` | For `trace prune`, integer size ceiling in bytes, at least 1048576, for this prune only (also `--max-bytes=N`). |
|
|
724
|
-
| `--port` | For `trace ui`, TCP port for the localhost viewer, 0 to 65535 (also `--port=N`); 0 picks an ephemeral port. |
|
|
725
755
|
| `-h` | Short form of --help. |
|
|
726
756
|
|
|
727
757
|
### `uninstall`
|
|
@@ -731,6 +761,9 @@ Grouped by command. Global flags appear under `global`.
|
|
|
731
761
|
| `--dry-run` | Print what would be removed, including the per-project directories, and change nothing. |
|
|
732
762
|
| `--force` | Required for destructive execution; without it the command lists and refuses. |
|
|
733
763
|
| `--help` | Print the command's usage and exit. |
|
|
764
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
765
|
+
| `--keep-config` | Preserve the configuration root (`settings.yaml`, credentials). |
|
|
766
|
+
| `--keep-data` | Preserve the data root (`memory`, evidence, vendored tools). |
|
|
734
767
|
| `--remove-binary` | Also remove the launcher symlink when it points at this installation; a real file or a link elsewhere is kept and reported. |
|
|
735
768
|
| `-f` | Short form of --force. |
|
|
736
769
|
| `-h` | Short form of --help. |
|
|
@@ -742,6 +775,7 @@ Grouped by command. Global flags appear under `global`.
|
|
|
742
775
|
| `--channel` | npm dist-tag to install: `latest`, `beta`, or `dev`; only the `--channel=<chan>` form is parsed; npm installs only. |
|
|
743
776
|
| `--dry-run` | Print the planned npm install, migrations, and state refresh and change nothing. |
|
|
744
777
|
| `--help` | Print the command's usage and exit. |
|
|
778
|
+
| `--json` | Emit JSON instead of the human-readable rendering. |
|
|
745
779
|
| `--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. |
|
|
746
780
|
| `--skip-migrations` | Skip the data-dir migrations after the install step. |
|
|
747
781
|
| `-h` | Short form of --help. |
|
|
@@ -760,6 +794,9 @@ Grouped by command. Global flags appear under `global`.
|
|
|
760
794
|
|
|
761
795
|
| Flag | Controls |
|
|
762
796
|
|---|---|
|
|
797
|
+
| `--baseline` | For `verifiers add`/`edit`, repository-relative baseline JSON path for a perf-budget check. |
|
|
798
|
+
| `--budget-ms` | For `verifiers add`/`edit`, wall-time bound in milliseconds for a perf-budget check. |
|
|
799
|
+
| `--budget-relative` | For `verifiers add`/`edit`, fractional headroom over the bound for a perf-budget check. |
|
|
763
800
|
| `--command` | For `verifiers add` (required) and `edit`, the check's argv as a JSON string array. |
|
|
764
801
|
| `--cwd` | For `verifiers add`/`edit`, repository-relative working directory of the check. |
|
|
765
802
|
| `--description` | For `verifiers add` (required) and `edit`, the check's description text. |
|
|
@@ -768,17 +805,54 @@ Grouped by command. Global flags appear under `global`.
|
|
|
768
805
|
| `--help` | Print the verifiers usage and exit. |
|
|
769
806
|
| `--id` | For `verifiers add`, the new check's id (required). |
|
|
770
807
|
| `--json` | For `verifiers inspect`, the only accepted argument; emits the fixed machine-readable catalog projection. |
|
|
808
|
+
| `--kind` | For `verifiers add`/`edit`, check kind: `command`, `numeric-compare`, or `perf-budget`. |
|
|
809
|
+
| `--reference` | For `verifiers add`/`edit`, repository-relative reference JSON path for a numeric-compare check. |
|
|
771
810
|
| `--rename` | For `verifiers author`, an `<old>=<new>` rename of a discovered check id; repeatable. |
|
|
772
811
|
| `--tags` | For `verifiers add`/`edit`, comma-separated catalog tags. |
|
|
773
812
|
| `--timeout-ms` | For `verifiers add`/`edit`, positive integer timeout in milliseconds. |
|
|
813
|
+
| `--tolerance` | For `verifiers add`/`edit`, tolerance JSON object specifying numeric or perf-budget bounds. |
|
|
774
814
|
| `--yes` | For mutating verifiers commands, confirm the write after the preview prints; without it nothing changes. |
|
|
775
815
|
| `-h` | Short form of --help. |
|
|
776
816
|
|
|
817
|
+
## Local stdio MCP configuration and trust
|
|
818
|
+
|
|
819
|
+
Source: `src/domains/gateway/mcp/config.ts`, `trust.ts`, and `client.ts`. The optional user file is `<Clio config directory>/mcp.yaml`; the project file is `<workspace>/.clio-coder/mcp.yaml`. `clio-coder paths` locates the config directory. A user declaration shadows a project declaration of the same id with a diagnostic. Malformed files contribute no servers. This release supports local stdio only, with no remote transport or OAuth fields.
|
|
820
|
+
|
|
821
|
+
```yaml
|
|
822
|
+
version: 1
|
|
823
|
+
servers:
|
|
824
|
+
- id: analysis
|
|
825
|
+
command: node
|
|
826
|
+
args: [tools/mcp-server.mjs]
|
|
827
|
+
cwd: .
|
|
828
|
+
env:
|
|
829
|
+
ANALYSIS_MODE: readonly
|
|
830
|
+
timeoutMs: 60000
|
|
831
|
+
```
|
|
832
|
+
|
|
833
|
+
| Field | Contract |
|
|
834
|
+
| --- | --- |
|
|
835
|
+
| `version`, `servers` | Required root fields; version 1, at most 32 server declarations per file. |
|
|
836
|
+
| `servers[].id` | Required, at most 32 characters, matches `[a-z0-9][a-z0-9_-]*`; duplicate ids fail within a file. |
|
|
837
|
+
| `servers[].command` | Required executable basename on PATH or absolute path, at most 512 bytes. Relative executable paths, shell command strings, and explicit shell executables are refused. |
|
|
838
|
+
| `servers[].args` | Optional string array, default empty; at most 64 entries of 4096 bytes each. |
|
|
839
|
+
| `servers[].cwd` | Optional, at most 512 bytes. Project cwd defaults to the workspace and must remain inside it, including symlinks. User cwd defaults to the config directory; it may be config-relative or absolute. |
|
|
840
|
+
| `servers[].env` | Optional string map, default empty; at most 64 keys matching `[A-Z_][A-Z0-9_]*`, with values at most 4096 bytes. Adds to the safe environment allowlist. |
|
|
841
|
+
| `servers[].timeoutMs` | Optional positive integer at most 900000; overrides request timeout. Default client request timeout is 60000 ms; initialize is bounded at 15000 ms. |
|
|
842
|
+
|
|
843
|
+
The YAML file is capped at 256 KiB; aliases and unknown fields are rejected. NUL-containing command/argument/environment/cwd values are refused. Launch-time canonical cwd checks are admission checks, not ongoing filesystem isolation.
|
|
844
|
+
|
|
845
|
+
User-scope declarations are trusted by authorship and get action class `unknown`. Project servers require `clio-coder mcp trust analysis` or `/mcp trust analysis`; an optional `--action-class read|execute|unknown` selects authority, with `unknown` as default. Trust is stored in user `<config>/mcp-trust.json`, version 1, mode 0600, with at most 256 records and 1 MiB. Each record binds canonical `projectRoot`, `id`, declaration `digest`, `actionClass`, and `trustedAt`. Editing command, arguments, cwd, environment, or timeout makes the record stale and requires review and re-trust. Trust does not come from a server annotation or a model-authored claim.
|
|
846
|
+
|
|
847
|
+
Gateway discovery is lazy and session-cached. Untrusted or stale project declarations never spawn; failed or cancelled discovery is not silently restarted in that session. Trust changes should be used by a new session, since the running source resolved configuration once. Cancelling discovery closes its shared connection and fails its waiters. Session shutdown awaits client-owned teardown; the exit backstop signals only a still-owned process group.
|
|
848
|
+
|
|
849
|
+
Transport bounds are 4 MiB per incoming JSON-RPC line, 4 MiB pending outbound bytes, 16 KiB stderr tail, 1 MiB normalized result text, and at most 500 tools or 100 pages per server discovery. Gateway result shaping bounds one MCP result to 16 KiB in model context, offloading larger results to disk artifacts with preview and reference. Request timeout or per-call abort can fail one call without closing a ready server; discovery cancellation closes the shared connection. Teardown uses TERM, a 3000 ms grace, KILL, and 2000 ms bounded confirmation, reporting incomplete cleanup. Launching an MCP server is not sandboxing; remote MCP/OAuth and general OS isolation are deferred.
|
|
850
|
+
|
|
777
851
|
## Project files
|
|
778
852
|
|
|
779
853
|
Keys read from files under `.clio-coder/` in the repository.
|
|
780
854
|
|
|
781
|
-
Project safety, hooks, and settings are ignored until the operator reviews them with `clio-coder config trust safety|hooks|settings` and approves the printed digest with `--hash`. Consent binds one canonical workspace and one surface's content and source location. Changes, local override additions, and safety-policy relocation require a new review. Startup names skipped files; `config inspect` shows effective safety provenance and
|
|
855
|
+
Project safety, hooks, and settings are ignored until the operator reviews them with `clio-coder config trust safety|hooks|settings` and approves the printed digest with `--hash`. Consent binds one canonical workspace and one surface's content and source location. Changes, local override additions, and safety-policy relocation require a new review. Startup names skipped files; `config inspect` shows effective safety provenance, trust, and names ignored project settings under the Settings header. Settings and safety apply on restart; new hooks apply after extension reload, while changed or revoked published hooks stop before their next execution. `CLIO-CODER.md` remains project text and does not grant configuration authority.
|
|
782
856
|
|
|
783
857
|
### `.clio-coder/agents`
|
|
784
858
|
|
|
@@ -972,11 +1046,43 @@ Arguments the model can send on `dispatch`, `bash`, `context`, and `verify`, gro
|
|
|
972
1046
|
| Argument | Class | Controls |
|
|
973
1047
|
|---|---|---|
|
|
974
1048
|
| `context.include_tree` | policy | scope=skills: list files under the skill base_dir. |
|
|
975
|
-
| `context.limit` | policy | scope=
|
|
1049
|
+
| `context.limit` | policy | scope=recall discovery: max refs (default 8, max 12). |
|
|
976
1050
|
| `context.name` | task | scope=skills: skill name to load; omit to list. |
|
|
977
|
-
| `context.query` | task | scope=
|
|
1051
|
+
| `context.query` | task | scope=recall discovery: path, tool, or ref terms; omit to list. |
|
|
978
1052
|
| `context.ref` | task | scope=recall: ref of the evicted item, as named in its marker. |
|
|
979
|
-
| `context.scope` | policy |
|
|
1053
|
+
| `context.scope` | policy | workspace, skills, or recall. |
|
|
1054
|
+
| `context.offset` | policy | Zero-based recall discovery offset; follow nextOffset. |
|
|
1055
|
+
|
|
1056
|
+
### `gateway`
|
|
1057
|
+
|
|
1058
|
+
| Argument | Class | Controls |
|
|
1059
|
+
| --- | --- | --- |
|
|
1060
|
+
| `gateway.op` | task | find, describe, or call. |
|
|
1061
|
+
| `gateway.query` | task | Case-insensitive find filter over name/description. |
|
|
1062
|
+
| `gateway.capability` | task | Name returned by find, required for describe/call. |
|
|
1063
|
+
| `gateway.args` | task | Capability arguments from its describe schema. |
|
|
1064
|
+
|
|
1065
|
+
### `run_script`
|
|
1066
|
+
|
|
1067
|
+
| Argument | Class | Controls |
|
|
1068
|
+
| --- | --- | --- |
|
|
1069
|
+
| `run_script.interpreter` | task | PATH name: python3, python, node, bash, sh, Rscript, julia, perl, ruby, octave. |
|
|
1070
|
+
| `run_script.script` | task | Regular script file inside the workspace; symlink escapes refused. |
|
|
1071
|
+
| `run_script.args` | task | Script argv, at most 64 entries, 4096 bytes each. |
|
|
1072
|
+
| `run_script.interpreter_args` | task | Pre-script argv with the same bounds; omitted defaults to Python -u or empty for other interpreters. |
|
|
1073
|
+
| `run_script.cwd` | task | Workspace-relative directory, default root. |
|
|
1074
|
+
| `run_script.timeout_ms` | policy | Positive integer, default 600000, clamped above 21600000. |
|
|
1075
|
+
| `run_script.inputs` | task | Up to 64 workspace-relative provenance references, not isolation. |
|
|
1076
|
+
| `run_script.outputs` | task | Up to 64 expected output references, observed after execution. |
|
|
1077
|
+
| `run_script.env` | task | Up to 32 uppercase/underscore keys, values at most 4096 bytes; manifest stores keys only. |
|
|
1078
|
+
|
|
1079
|
+
### Gateway capability arguments
|
|
1080
|
+
|
|
1081
|
+
`clio_docs` takes optional `query` and `limit` (default 5, max 12). `clio_library` takes `query`, `kind`, `ref`, `limit` (default 20, max 50), and zero-based `offset`. These replace context's docs/library scopes. `web_read` accepts `url`, `timeout_ms`, `max_bytes`, and `format`, without method, headers, or body. `web_fetch` retains the full HTTP surface.
|
|
1082
|
+
|
|
1083
|
+
`data` requires `op: inspect|select|validate` and `path`, with optional `format: csv|tsv|json|jsonl`, `delimiter`, `header: auto|true|false`, `sample_rows` (10, max 1000), `max_rows` (100000, null for all), zero-based `offset`, `limit` (50, max 1000), `columns` (CSV names/indices), and RFC 6901 `pointer` (JSON). All are nested under `gateway.args`; the capability is read-only.
|
|
1084
|
+
|
|
1085
|
+
`read.line_numbers` requests source line prefixes; tail numbering is refused above the 32 MiB line-count budget. For complete argument and result contracts, see [Tool usage](tool-usage.md).
|
|
980
1086
|
|
|
981
1087
|
### `dispatch`
|
|
982
1088
|
|
|
@@ -1171,6 +1277,8 @@ Keys of the local-model knowledge base in `src/domains/providers/models/local-mo
|
|
|
1171
1277
|
| `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`. |
|
|
1172
1278
|
| `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. |
|
|
1173
1279
|
|
|
1280
|
+
The measured `mini/qwopus3.8-27b-dense` LiteLLM route family has a narrow catalog entry for its reported `low`, `medium`, and `xhigh` effort vocabulary. On the `mini/qwopus3.8-27b-dense-q6` deployment, Clio omitted effort and the upstream template rejected `high`, behavior consistent with an incompatible deployment default; the precise upstream cause was not inspected. Clio maps configured `high` or `max` to `xhigh` and explicitly forwards the resolved effort through LiteLLM. This entry comes from the 2026-09-16 server diagnostic and same-route validation; it does not assign capabilities to other Qwopus models by name similarity or change the selected model.
|
|
1281
|
+
|
|
1174
1282
|
## Bounding constants
|
|
1175
1283
|
|
|
1176
1284
|
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.
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
# Environment Variables
|
|
2
2
|
|
|
3
|
-
> **Visual blueprint:** The source checkout includes the complete
|
|
4
|
-
> [Environment Variables visual reference](https://github.com/iowarp/clio-coder/blob/main/docs/html/environment_blueprint.html).
|
|
5
|
-
|
|
6
3
|
This page inventories Clio-specific runtime variables and the ambient variables that materially change documented operator behavior. `settings.yaml` is the durable home for operator policy; environment variables support per-process overrides, directory layout, debugging, credentials, terminal integration, and internal plumbing. When prose and source disagree, prefer the cited read site.
|
|
7
4
|
|
|
8
5
|
The `environment-variable-inventory` check in `scripts/check-hygiene.ts`, run by `pnpm run lint`, enforces coverage for Clio's `CLIO_*` variables and `NO_COLOR`. It intentionally does not treat every operating-system or provider convention as a Clio knob. Examples outside that enforced family include `PATH`, `HOME`, terminal capability variables, and provider API-key names selected dynamically by `src/engine/env-api-keys.ts`.
|
|
@@ -63,7 +60,7 @@ These names follow an upstream or operating-system convention. They are not subs
|
|
|
63
60
|
| `SSH_CONNECTION`, `SSH_TTY`, `TMUX`, `STY` | Remote-session and terminal-multiplexer detection used by the adaptive stream-pacing policy (`src/interactive/stream-pacing-policy.ts`). |
|
|
64
61
|
| `COLUMNS` | Fallback text width for non-TTY CLI output (`src/cli/text-layout.ts`). |
|
|
65
62
|
| `TZ` | Local timestamp formatting and daily audit-log date boundaries (`src/interactive/format-time.ts`, `src/domains/safety/audit.ts`). |
|
|
66
|
-
| `CI
|
|
63
|
+
| `CI` | CI-sensitive presentation behavior. It grants no tool authority. |
|
|
67
64
|
|
|
68
65
|
## Debug and trace toggles
|
|
69
66
|
|
|
@@ -105,6 +102,7 @@ Set by Clio for its own processes; not operator knobs.
|
|
|
105
102
|
| `CLIO_CODER_INTERACTIVE` | Marks the interactive TUI process; scrubbed from bash-tool children so nested invocations do not inherit it (`src/cli/clio.ts`, `src/core/bash-exec.ts`). |
|
|
106
103
|
| `CLIO_CODER_RUN_OVERRIDES` | JSON envelope for run-scoped CLI options (`--max-context-tokens`, sampling flags). One typed variable instead of one env var per option; worker subprocesses inherit it (`src/core/run-overrides.ts`). |
|
|
107
104
|
| `CLIO_CODER_EVAL_RUNNER_STDOUT_FILE` | Set by the eval runner for the `clio-coder run` child it spawns; the child appends its stdout to that path so the runner can read it after exit (`src/domains/eval/suites/run.ts`). |
|
|
105
|
+
| `CLIO_CODER_ENTRY` | Exported by the eval suite runner into a task runner's environment with the path of the Clio entry under evaluation (`src/domains/eval/suites/run.ts`). Clio itself never reads it. |
|
|
108
106
|
| `CLIO_CODER_YAZI_PICK_TOKEN` | Per-session token the yazi file-pane integration hands its yazi child and expects back on a pick, so a pick from another session is ignored (`src/domains/mux/yazi/session.ts`, `src/domains/mux/yazi/profile.ts`). |
|
|
109
107
|
| `CLIO_CODER_WORKER_LABELS` | Comma-separated labels a dispatched worker reports as its own (`src/domains/dispatch/transport.ts`, `src/worker/entry.ts`). |
|
|
110
108
|
| `CLIO_CODER_WORKER_PGID` | Process-group id the transport assigns a worker so its whole tree can be signalled (`src/domains/dispatch/transport.ts`, `src/worker/entry.ts`). |
|
|
@@ -116,10 +114,6 @@ Set by Clio for its own processes; not operator knobs.
|
|
|
116
114
|
| Variable | Purpose |
|
|
117
115
|
| --- | --- |
|
|
118
116
|
| `CLIO_CODER_WORKER_FAUX` (+ `_MODEL`, `_TEXT`, `_STOP_REASON`, `_ERROR_MESSAGE`) | Fake worker model for tests (`src/engine/ai.ts`). |
|
|
119
|
-
| `CLIO_CODER_TEST_UPGRADE_NO_NETWORK` | Skips npm install during upgrade tests (`src/cli/upgrade.ts`). |
|
|
120
|
-
| `CLIO_CODER_TEST_UPGRADE_AVAILABLE` | Sets mock available version for upgrade tests; `unreachable` stands for a registry that answered nothing (`src/cli/upgrade.ts`). |
|
|
121
|
-
| `CLIO_CODER_TEST_UPGRADE_FAIL` | Injects mock failures (`npm` or `migration`) for upgrade tests (`src/cli/upgrade.ts`). |
|
|
122
|
-
| `CLIO_CODER_TEST_STAGE1_DELAY_MS`, `CLIO_CODER_TEST_STAGE1_FAIL` | `NODE_ENV=test`-only, bounded instant-shell interleaving and injected hydration failure seams for the built PTY acceptance suite (`src/cli/clio.ts`). |
|
|
123
117
|
| `CLIO_CODER_REQUIRE_HOME_PREFIX` | Test guardrail: abort if resolved directories escape `CLIO_CODER_HOME` (`src/core/init.ts`). |
|
|
124
118
|
|
|
125
119
|
Variables used only by external benchmark harnesses or install scripts are not
|