@iowarp/clio-coder 0.4.0 → 0.4.1

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.
Files changed (581) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +116 -16
  3. package/dist/{acp-G5WJBNCT.js → acp-ZILU3AUO.js} +14 -14
  4. package/dist/{agents-FMV2Q5G4.js → agents-HYWGBGQR.js} +40 -29
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-3IDSJEIK.js → auth-N3QT7CBO.js} +21 -19
  7. package/dist/{builtins-XCZWXSC7.js → builtins-UJLMOVOV.js} +6 -6
  8. package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
  9. package/dist/{chunk-3BT2XMV4.js → chunk-2NM363SV.js} +50 -57
  10. package/dist/{chunk-J4W7KFM7.js → chunk-2VG7KLYV.js} +24 -279
  11. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  12. package/dist/{chunk-K5C3NCBD.js → chunk-3I5NY75V.js} +5 -5
  13. package/dist/{chunk-VAZSBTKF.js → chunk-3QSOM6PA.js} +2 -2
  14. package/dist/{chunk-TZ3SGWZZ.js → chunk-5QIAJV2D.js} +2 -2
  15. package/dist/{chunk-OQBA45DZ.js → chunk-5YHDIDBP.js} +2 -2
  16. package/dist/{chunk-NHLBIGRH.js → chunk-6CCS4G3W.js} +40 -17
  17. package/dist/{chunk-2JDWVJND.js → chunk-6DWBAZ5U.js} +2 -2
  18. package/dist/{chunk-LDQ2ZF2M.js → chunk-6FN3E6KX.js} +5 -5
  19. package/dist/{chunk-X3YGUTOB.js → chunk-6HMJX2VU.js} +59 -59
  20. package/dist/{chunk-VEO4AP2K.js → chunk-6I5ILFOF.js} +3 -2
  21. package/dist/{chunk-B7OBL7PK.js → chunk-6NJQITNH.js} +18 -11
  22. package/dist/{chunk-IQ7KR472.js → chunk-6VC4OV3Z.js} +6 -3
  23. package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
  24. package/dist/{chunk-AB44T6BB.js → chunk-74YWRRU5.js} +8 -7
  25. package/dist/{chunk-SJ5ZKQ4S.js → chunk-7EPLI7VL.js} +2 -2
  26. package/dist/{chunk-HWHKMHUA.js → chunk-7OBGU7UB.js} +3 -3
  27. package/dist/{chunk-2OQE55CK.js → chunk-7PWAODYW.js} +2 -2
  28. package/dist/{chunk-IBEBSCYA.js → chunk-7RY5VZPH.js} +42 -33
  29. package/dist/{chunk-LQ3DZAMX.js → chunk-ABLSQ6JX.js} +2 -2
  30. package/dist/{chunk-QLFS5GO2.js → chunk-AFKWHWXF.js} +12 -22
  31. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  32. package/dist/{chunk-O6TL7WWY.js → chunk-AKB4GYDL.js} +4 -4
  33. package/dist/chunk-AP73CFDC.js +308 -0
  34. package/dist/{chunk-JDG2WCRO.js → chunk-BBTJOK6Y.js} +5 -5
  35. package/dist/{chunk-SP2RXXYO.js → chunk-BDPT6GTK.js} +10 -10
  36. package/dist/{chunk-NQQH3YT7.js → chunk-BJGUKIG4.js} +3 -3
  37. package/dist/{chunk-O4XIVISU.js → chunk-BTGG6BG2.js} +79 -38
  38. package/dist/chunk-BTK3SSSK.js +67 -0
  39. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  40. package/dist/chunk-BWW4HLO4.js +301 -0
  41. package/dist/{chunk-I5VEOC6I.js → chunk-C537JADH.js} +10 -10
  42. package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
  43. package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
  44. package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
  45. package/dist/chunk-D7E7WCDF.js +27 -0
  46. package/dist/{chunk-WZR7K7ZX.js → chunk-E67WX76H.js} +6 -6
  47. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  48. package/dist/chunk-EIMVLWB3.js +1842 -0
  49. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  50. package/dist/{chunk-MLKNTWH2.js → chunk-FYUN5KZ3.js} +21 -21
  51. package/dist/{chunk-YJX4SHTD.js → chunk-GIZNH63R.js} +1 -1
  52. package/dist/{chunk-X75E3D2N.js → chunk-GPPB3JBE.js} +18 -16
  53. package/dist/{chunk-GR5G2PVF.js → chunk-GVQJ5CCZ.js} +15 -10
  54. package/dist/chunk-HJWWJ6IL.js +184 -0
  55. package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
  56. package/dist/{chunk-VYMXRQI6.js → chunk-HUAS7ITX.js} +89 -93
  57. package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
  58. package/dist/{chunk-DYJP44XW.js → chunk-IG7BCQBA.js} +1 -1
  59. package/dist/{chunk-32KWKNSF.js → chunk-IXJT6DCX.js} +3 -3
  60. package/dist/{chunk-C2LTL2W6.js → chunk-J4HBWF6Y.js} +360 -172
  61. package/dist/chunk-J5LZHVIT.js +284 -0
  62. package/dist/{chunk-QLL7ILRG.js → chunk-JA5QWE4Z.js} +510 -202
  63. package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
  64. package/dist/{chunk-36EJLSQQ.js → chunk-JZWT5J3Y.js} +4 -4
  65. package/dist/{chunk-HZHHCK24.js → chunk-K6BF4U2H.js} +476 -322
  66. package/dist/{chunk-Z2RR6MAK.js → chunk-MA3H6DM5.js} +6 -6
  67. package/dist/{chunk-CODPRO7Q.js → chunk-MOPSG2X7.js} +6 -6
  68. package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
  69. package/dist/{chunk-YDFRH54B.js → chunk-N5UK64DP.js} +4 -4
  70. package/dist/chunk-NDDGJUXD.js +81 -0
  71. package/dist/{chunk-4ZG3XFUR.js → chunk-NLFAQR7Z.js} +12 -1
  72. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  73. package/dist/{chunk-W5VSYASO.js → chunk-OJTRZGR3.js} +46 -87
  74. package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
  75. package/dist/{chunk-3URVFKWK.js → chunk-PJJ6MY27.js} +5 -5
  76. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  77. package/dist/{chunk-GKF55TAZ.js → chunk-PVAMAVBB.js} +3 -2
  78. package/dist/{chunk-6DB53AJS.js → chunk-QKIFBZKT.js} +7 -7
  79. package/dist/{chunk-HJJTYUHX.js → chunk-QMXC4JB7.js} +20 -20
  80. package/dist/chunk-QTFGO774.js +644 -0
  81. package/dist/{chunk-CY6FY24N.js → chunk-R23Z6K6I.js} +2 -2
  82. package/dist/{chunk-ULC6OTWO.js → chunk-R32CLGZ6.js} +13 -13
  83. package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
  84. package/dist/{chunk-F4CKPOEQ.js → chunk-SCYB3HA4.js} +72 -26
  85. package/dist/{chunk-LY4S7GJC.js → chunk-SINK3QR6.js} +18 -16
  86. package/dist/{chunk-U77AMWDL.js → chunk-TD3PGPQA.js} +43 -22
  87. package/dist/{chunk-QBJA7R7N.js → chunk-THYWACCR.js} +2 -2
  88. package/dist/{chunk-QREDIESB.js → chunk-TVH4ONAM.js} +14 -8
  89. package/dist/chunk-U2WB7TZS.js +271 -0
  90. package/dist/{chunk-KFZI4NIL.js → chunk-UAPGZHYC.js} +145 -31
  91. package/dist/{chunk-DQITNCXG.js → chunk-UEDMSP56.js} +29 -14
  92. package/dist/{chunk-3XML7CDN.js → chunk-UXN6JT4W.js} +2 -2
  93. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  94. package/dist/{chunk-BPKCPIL7.js → chunk-VEGN6WIQ.js} +2 -2
  95. package/dist/chunk-VKFQTNDV.js +66 -0
  96. package/dist/{chunk-7MCTRUCE.js → chunk-VKRH2TCS.js} +2 -2
  97. package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
  98. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  99. package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
  100. package/dist/{chunk-SUCTJL45.js → chunk-WR6U3OVP.js} +3 -3
  101. package/dist/{chunk-BUMFYQFY.js → chunk-XKA2ICR3.js} +124 -113
  102. package/dist/{chunk-UXMFQ54G.js → chunk-Y45G3AXC.js} +39 -39
  103. package/dist/{chunk-J5Q24KAG.js → chunk-Y4CAGMM6.js} +2 -2
  104. package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
  105. package/dist/{chunk-V5DHCITQ.js → chunk-ZAZB4JMW.js} +23 -12
  106. package/dist/{chunk-Z4TXYIEG.js → chunk-ZJLUDYFY.js} +9 -9
  107. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  108. package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
  109. package/dist/cli/index.js +36 -36
  110. package/dist/{clio-2JXHBBY5.js → clio-IT3G3VQH.js} +12 -13
  111. package/dist/{code-nav-3YYRMYNF.js → code-nav-RK6S7F6E.js} +5 -5
  112. package/dist/codewiki/build-worker.js +1 -1
  113. package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
  114. package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
  115. package/dist/{config-QZPCMYSO.js → config-3QZRWZJF.js} +53 -49
  116. package/dist/{configure-TEGEBYCA.js → configure-FL7Y3KJF.js} +25 -22
  117. package/dist/{context-E6H5RNMC.js → context-5HE7ODYK.js} +47 -43
  118. package/dist/{context-AV7OEZ4D.js → context-KYQFRVDC.js} +11 -11
  119. package/dist/{context-GSXUE4CT.js → context-XNHL75JV.js} +32 -19
  120. package/dist/{context-clear-SHIBYK6T.js → context-clear-N545L53A.js} +47 -43
  121. package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-QHKXSV2F.js} +10 -9
  122. package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-RGIE5PCT.js} +56 -47
  123. package/dist/{docs-23KQS3XK.js → docs-5NAF6AU7.js} +5 -11
  124. package/dist/doctor-ZGPEGHIP.js +772 -0
  125. package/dist/{eval-TFBYQH4H.js → eval-GXLL44RD.js} +63 -45
  126. package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-HBWSWQOK.js} +7 -8
  127. package/dist/{evidence-ERGESKGN.js → evidence-HWLBRH3Q.js} +44 -40
  128. package/dist/{evolve-VDXTSYCJ.js → evolve-FTZBMNVW.js} +43 -39
  129. package/dist/{extensions-7BGBHN57.js → extensions-VHRBEID7.js} +4 -4
  130. package/dist/{fleet-2RRVDF2V.js → fleet-CKZHJWZJ.js} +86 -73
  131. package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EXDXBMV6.js} +10 -9
  132. package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-OTHB6KRL.js} +5 -5
  133. package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-YTEZUCUT.js} +13 -11
  134. package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-SS6YMDCK.js} +44 -41
  135. package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-PBY4VYOM.js} +5 -9
  136. package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-KMEM5L3S.js} +16 -13
  137. package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-QD5M7E7Q.js} +42 -39
  138. package/dist/{fleet-view-ZCON35AG.js → fleet-view-WAMJYNDT.js} +44 -52
  139. package/dist/{init-DN2WWLFE.js → init-5XQRBOFV.js} +63 -58
  140. package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
  141. package/dist/{interop-OZBKXAYL.js → interop-34TVO25M.js} +13 -11
  142. package/dist/{library-YWZG7IMW.js → library-3QY6KF57.js} +17 -14
  143. package/dist/{memory-I4C4HMLW.js → memory-L4UTIIIW.js} +45 -41
  144. package/dist/{models-CEYXJBO6.js → models-ZVX3QOWE.js} +39 -31
  145. package/dist/{monitor-NZ6GCI3P.js → monitor-CEKVSYTS.js} +50 -46
  146. package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-77BAP6BC.js} +1807 -1039
  147. package/dist/{panes-KY6W3V2E.js → panes-7STHOAUJ.js} +4 -4
  148. package/dist/{panes-HMABYVO4.js → panes-SHAUIRXY.js} +10 -8
  149. package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
  150. package/dist/{reset-DQ6FGCSH.js → reset-EOLM7GVE.js} +7 -8
  151. package/dist/{resources-BB3MVJMD.js → resources-74GKTLSF.js} +17 -13
  152. package/dist/{run-H2GQDUER.js → run-HBAUJNNZ.js} +86 -76
  153. package/dist/{share-GTJN6A5O.js → share-G3APVLVP.js} +17 -14
  154. package/dist/{skills-L55TEW6R.js → skills-35HHUKCR.js} +19 -16
  155. package/dist/{skills-eval-XVXPH2JI.js → skills-eval-QN4HSHDC.js} +55 -57
  156. package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-J357J34F.js} +15 -12
  157. package/dist/{slash-commands-ZSGASKJC.js → slash-commands-JZZCQA32.js} +31 -29
  158. package/dist/{steer-RZGSCY4R.js → steer-XAVHJM22.js} +3 -3
  159. package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
  160. package/dist/{targets-NCPZ644J.js → targets-DSM6CY3M.js} +59 -53
  161. package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-JOPFUVEM.js} +14 -9
  162. package/dist/{tools-DAF3DI3C.js → tools-MKNWVPBH.js} +10 -8
  163. package/dist/{trace-FYVW2MQA.js → trace-ECQ7TIYZ.js} +48 -3
  164. package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
  165. package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
  166. package/dist/{upgrade-3XPP6OQL.js → upgrade-H7TOM7YL.js} +35 -62
  167. package/dist/{usage-3NLHGTU2.js → usage-X52N3IDJ.js} +51 -48
  168. package/dist/{verifiers-SSQONKRT.js → verifiers-EJTVVSMA.js} +10 -9
  169. package/dist/{verify-3U6J7FZI.js → verify-YJL6XET2.js} +9 -8
  170. package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPIFL3LL.js} +1 -2
  171. package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-4NDZTQ4B.js} +66 -63
  172. package/dist/{with-panes-MKB46MPQ.js → with-panes-OBOBFIIR.js} +62 -26
  173. package/dist/worker/entry.js +57 -52
  174. package/docs/acp.md +1 -1
  175. package/docs/built-in-agents.md +40 -32
  176. package/docs/commands-and-modes.md +9 -3
  177. package/docs/config-knobs-audit.md +3 -0
  178. package/docs/configuration-and-targets.md +105 -164
  179. package/docs/environment-variables.md +2 -1
  180. package/docs/exit-codes-and-output.md +2 -0
  181. package/docs/fleet-demo-runbook.md +6 -3
  182. package/docs/fleet-dispatch.md +8 -6
  183. package/docs/installation-and-lifecycle.md +1 -1
  184. package/docs/release-cut-checklist.md +164 -177
  185. package/docs/trace-store.md +15 -10
  186. package/docs/troubleshooting.md +1 -1
  187. package/evals/README.md +5 -0
  188. package/evals/behavioral-corpus-grader.mjs +103 -0
  189. package/evals/behavioral-machinery-baseline.json +2276 -0
  190. package/evals/behavioral-machinery-driver.ts +250 -0
  191. package/evals/behavioral-machinery-support.ts +253 -0
  192. package/evals/behavioral-machinery.yaml +614 -0
  193. package/evals/behavioral-model-negative-control.yaml +68 -0
  194. package/evals/behavioral-model.yaml +216 -0
  195. package/evals/fixtures/behavioral-facts.txt +3 -0
  196. package/evals/fixtures/behavioral-main.ts +7 -0
  197. package/evals/fixtures/decoy/note.txt +2 -0
  198. package/evals/fixtures/private/credentials.txt +1 -0
  199. package/evals/tracked-metrics-baseline.yaml +229 -0
  200. package/evals/tracked-metrics-grader.mjs +129 -0
  201. package/package.json +5 -15
  202. package/skills/README.md +6 -6
  203. package/skills/coding/ast-grep/SKILL.md +8 -2
  204. package/skills/coding/coding-standards/SKILL.md +8 -2
  205. package/skills/coding/prototype/SKILL.md +8 -2
  206. package/skills/coding/tdd/SKILL.md +8 -2
  207. package/skills/context/context-handoff/SKILL.md +12 -3
  208. package/skills/context/context-handoff/evals.md +3 -3
  209. package/skills/context/context-prime/SKILL.md +8 -2
  210. package/skills/context/context-prime/evals.md +2 -2
  211. package/skills/git/file-ticket/SKILL.md +9 -4
  212. package/skills/git/file-ticket/evals.md +2 -2
  213. package/skills/git/fix-issue/SKILL.md +12 -5
  214. package/skills/git/fix-issue/evals.md +4 -4
  215. package/skills/git/resolve-merge-conflicts/SKILL.md +8 -2
  216. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  217. package/skills/git/ship/SKILL.md +9 -3
  218. package/skills/git/ship/evals.md +4 -4
  219. package/skills/git/worktree-create/SKILL.md +7 -2
  220. package/skills/git/worktree-create/evals.md +6 -6
  221. package/skills/git/worktree-merge/SKILL.md +7 -2
  222. package/skills/git/worktree-merge/evals.md +6 -6
  223. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +14 -8
  224. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +3 -3
  225. package/skills/meta/{clio-test → clio-coder-test}/SKILL.md +11 -5
  226. package/skills/meta/{clio-test → clio-coder-test}/evals.md +1 -1
  227. package/skills/meta/credentials/SKILL.md +9 -2
  228. package/skills/meta/find-skills/SKILL.md +8 -2
  229. package/skills/meta/herdr/SKILL.md +8 -2
  230. package/skills/meta/skill-craft/SKILL.md +21 -4
  231. package/skills/planning/architecture/SKILL.md +9 -3
  232. package/skills/planning/backlog/SKILL.md +8 -2
  233. package/skills/planning/prd/SKILL.md +8 -2
  234. package/skills/planning/product-intent/SKILL.md +8 -2
  235. package/skills/planning/tech-spec/SKILL.md +9 -3
  236. package/skills/registry.yaml +66 -66
  237. package/skills/research/arxiv-literature/SKILL.md +8 -2
  238. package/skills/research/experiment-protocol/SKILL.md +9 -2
  239. package/skills/research/scientific-debugging/SKILL.md +9 -2
  240. package/skills/research/scientific-debugging/evals.md +2 -2
  241. package/skills/research/scientific-modernization/SKILL.md +9 -2
  242. package/skills/skill-marketplace.json +257 -38
  243. package/skills/workflow/cut-it/SKILL.md +10 -2
  244. package/skills/workflow/design-council/SKILL.md +11 -2
  245. package/skills/workflow/grill-me/SKILL.md +8 -2
  246. package/skills/workflow/workflow-distiller/SKILL.md +8 -2
  247. package/src/cli/acp.ts +2 -2
  248. package/src/cli/auth.ts +2 -2
  249. package/src/cli/bootstrap-generate.ts +5 -5
  250. package/src/cli/clio.ts +6 -1
  251. package/src/cli/config-inspect.ts +3 -3
  252. package/src/cli/configure-interop.ts +1 -1
  253. package/src/cli/configure.ts +27 -27
  254. package/src/cli/default-target.ts +1 -1
  255. package/src/cli/docs.ts +6 -6
  256. package/src/cli/doctor-naming.ts +323 -0
  257. package/src/cli/doctor-panes.ts +46 -14
  258. package/src/cli/doctor-toolchain.ts +29 -8
  259. package/src/cli/doctor.ts +15 -1
  260. package/src/cli/eval-inventory.ts +8 -8
  261. package/src/cli/evidence-detail.ts +1 -1
  262. package/src/cli/evidence-inventory.ts +1 -1
  263. package/src/cli/fleet-decisions.ts +1 -1
  264. package/src/cli/fleet-inspect.ts +1 -1
  265. package/src/cli/fleet-preflight.ts +1 -1
  266. package/src/cli/fleet-verify.ts +1 -1
  267. package/src/cli/fleet-view.ts +40 -23
  268. package/src/cli/fleet.ts +8 -5
  269. package/src/cli/interop-inspect.ts +2 -2
  270. package/src/cli/models.ts +3 -3
  271. package/src/cli/modes/print.ts +1 -1
  272. package/src/cli/reset.ts +1 -1
  273. package/src/cli/run.ts +11 -15
  274. package/src/cli/share.ts +1 -1
  275. package/src/cli/skills-eval.ts +11 -11
  276. package/src/cli/targets.ts +23 -24
  277. package/src/cli/trace-inspect.ts +1 -1
  278. package/src/cli/trace.ts +41 -0
  279. package/src/cli/uninstall.ts +2 -2
  280. package/src/cli/upgrade.ts +29 -34
  281. package/src/cli/usage.ts +2 -2
  282. package/src/cli/validate-model.ts +1 -1
  283. package/src/cli/verifiers-inspect.ts +1 -1
  284. package/src/cli/wiki-generate.ts +5 -5
  285. package/src/core/bash-exec.ts +1 -1
  286. package/src/core/boot-trace.ts +3 -3
  287. package/src/core/bus-trace.ts +2 -2
  288. package/src/core/compile-cache.ts +1 -1
  289. package/src/core/config.ts +1062 -886
  290. package/src/core/defaults.ts +321 -528
  291. package/src/core/domain-loader.ts +6 -4
  292. package/src/core/event-bus.ts +1 -1
  293. package/src/core/file-references.ts +78 -88
  294. package/src/core/git-commit-attribution.ts +3 -9
  295. package/src/core/guardrails.ts +24 -4
  296. package/src/core/naming-compat.ts +45 -0
  297. package/src/core/naming-events.ts +62 -0
  298. package/src/core/recent-models.ts +1 -7
  299. package/src/core/residency-protection.ts +4 -8
  300. package/src/core/resolve-config-value.ts +1 -1
  301. package/src/core/response-model-id.ts +0 -14
  302. package/src/core/session-routing.ts +84 -74
  303. package/src/core/skill-activation.ts +18 -0
  304. package/src/core/termination.ts +4 -4
  305. package/src/core/timers.ts +2 -12
  306. package/src/domains/agents/catalog.ts +2 -12
  307. package/src/domains/agents/extension.ts +3 -3
  308. package/src/domains/agents/registry.ts +7 -7
  309. package/src/domains/agents/result-contract.ts +1 -1
  310. package/src/domains/agents/spec.ts +0 -11
  311. package/src/domains/config/classify.ts +35 -47
  312. package/src/domains/config/extension.ts +5 -5
  313. package/src/domains/config/keybindings.ts +48 -47
  314. package/src/domains/config/watcher.ts +1 -1
  315. package/src/domains/context/codewiki/indexer.ts +1 -1
  316. package/src/domains/context/extension.ts +3 -3
  317. package/src/domains/context/prompt-context.ts +1 -1
  318. package/src/domains/context/wiki/assemble.ts +2 -2
  319. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  320. package/src/domains/context/working-set/replay/report.ts +1 -1
  321. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  322. package/src/domains/dispatch/active-route-planner.ts +2 -2
  323. package/src/domains/dispatch/agent-candidates.ts +1 -1
  324. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  325. package/src/domains/dispatch/agent-ledger.ts +1 -1
  326. package/src/domains/dispatch/assignment.ts +5 -5
  327. package/src/domains/dispatch/capacity-lease.ts +2 -5
  328. package/src/domains/dispatch/code-step.ts +1 -1
  329. package/src/domains/dispatch/contract.ts +2 -2
  330. package/src/domains/dispatch/extension.ts +65 -61
  331. package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
  332. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  333. package/src/domains/dispatch/fleet-run.ts +0 -7
  334. package/src/domains/dispatch/gate-decisions.ts +25 -14
  335. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  336. package/src/domains/dispatch/path-scope.ts +0 -61
  337. package/src/domains/dispatch/placement.ts +2 -2
  338. package/src/domains/dispatch/receipt-findings.ts +1 -1
  339. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  340. package/src/domains/dispatch/reservation-store.ts +0 -23
  341. package/src/domains/dispatch/route-decision.ts +1 -1
  342. package/src/domains/dispatch/route-history.ts +1 -1
  343. package/src/domains/dispatch/route-policy.ts +1 -1
  344. package/src/domains/dispatch/route-readiness.ts +0 -28
  345. package/src/domains/dispatch/run-event-journal.ts +6 -5
  346. package/src/domains/dispatch/tool-stats.ts +1 -1
  347. package/src/domains/dispatch/transport.ts +2 -19
  348. package/src/domains/dispatch/types.ts +3 -3
  349. package/src/domains/dispatch/worker-protocol.ts +2 -2
  350. package/src/domains/eval/artifacts/store.ts +5 -4
  351. package/src/domains/eval/compare/thresholds.ts +0 -8
  352. package/src/domains/eval/execution-provenance.ts +1 -1
  353. package/src/domains/eval/metrics/token-stream.ts +0 -7
  354. package/src/domains/eval/report.ts +1 -1
  355. package/src/domains/eval/runner.ts +1 -1
  356. package/src/domains/eval/runners/clio-run.ts +7 -6
  357. package/src/domains/eval/runners/external-command.ts +4 -3
  358. package/src/domains/eval/schema/artifact.ts +1 -1
  359. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  360. package/src/domains/eval/schema/behavioral.ts +7 -6
  361. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  362. package/src/domains/eval/schema/naming.ts +10 -0
  363. package/src/domains/eval/schema/suite.ts +2 -2
  364. package/src/domains/eval/schema/validate.ts +9 -5
  365. package/src/domains/eval/schema/verdict.ts +4 -2
  366. package/src/domains/eval/store.ts +12 -2
  367. package/src/domains/eval/suites/run.ts +12 -6
  368. package/src/domains/eval/types.ts +1 -1
  369. package/src/domains/eval/workspaces/git.ts +1 -1
  370. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  371. package/src/domains/evidence/build.ts +13 -5
  372. package/src/domains/interop/consent.ts +7 -7
  373. package/src/domains/interop/extension.ts +1 -1
  374. package/src/domains/lifecycle/doctor.ts +27 -21
  375. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  376. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  377. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  378. package/src/domains/lifecycle/migrations/index.ts +20 -1
  379. package/src/domains/lifecycle/naming-history.ts +153 -0
  380. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  381. package/src/domains/lifecycle/naming-resources.ts +261 -0
  382. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  383. package/src/domains/lifecycle/naming-yazi.ts +81 -0
  384. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  385. package/src/domains/memory/task-memory-handoff.ts +6 -3
  386. package/src/domains/middleware/index.ts +7 -0
  387. package/src/domains/middleware/marketplace-offer.ts +339 -0
  388. package/src/domains/middleware/runtime.ts +2 -2
  389. package/src/domains/mux/contract.ts +157 -25
  390. package/src/domains/mux/detect.ts +29 -5
  391. package/src/domains/mux/dock-controller.ts +365 -0
  392. package/src/domains/mux/extension.ts +7 -1
  393. package/src/domains/mux/index.ts +20 -0
  394. package/src/domains/mux/operations.ts +28 -0
  395. package/src/domains/mux/protocol.ts +19 -6
  396. package/src/domains/mux/socket-client.ts +167 -19
  397. package/src/domains/mux/types.ts +49 -6
  398. package/src/domains/mux/yazi/event-stream.ts +6 -4
  399. package/src/domains/mux/yazi/profile.ts +1 -1
  400. package/src/domains/mux/yazi/session.ts +26 -3
  401. package/src/domains/observability/extension.ts +1 -1
  402. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  403. package/src/domains/observability/projection.ts +1 -1
  404. package/src/domains/observability/trace-store.ts +22 -12
  405. package/src/domains/prompts/compiler.ts +2 -2
  406. package/src/domains/prompts/extension.ts +3 -3
  407. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -1
  408. package/src/domains/prompts/fragments/operating/skills.md +25 -18
  409. package/src/domains/providers/extension.ts +5 -5
  410. package/src/domains/providers/knowledge-base-path.ts +1 -1
  411. package/src/domains/providers/model-runtime-capabilities.ts +14 -2
  412. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  413. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +4 -4
  414. package/src/domains/providers/plugins.ts +1 -1
  415. package/src/domains/providers/resolver.ts +1 -1
  416. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  417. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  418. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  419. package/src/domains/providers/runtimes/common/probe-helpers.ts +2 -2
  420. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  421. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  422. package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
  423. package/src/domains/providers/types/knowledge-base.ts +13 -0
  424. package/src/domains/providers/types/local-model-quirks.ts +2 -2
  425. package/src/domains/providers/types/target-descriptor.ts +3 -3
  426. package/src/domains/resources/extension.ts +1 -1
  427. package/src/domains/resources/library.ts +6 -6
  428. package/src/domains/resources/prompts/loader.ts +1 -1
  429. package/src/domains/resources/skills/content-hash.ts +7 -6
  430. package/src/domains/resources/skills/evals.ts +1 -1
  431. package/src/domains/resources/skills/install.ts +36 -12
  432. package/src/domains/resources/skills/loader.ts +39 -13
  433. package/src/domains/resources/skills/marketplace.ts +21 -2
  434. package/src/domains/resources/skills/promotion.ts +214 -0
  435. package/src/domains/safety/audit.ts +2 -2
  436. package/src/domains/safety/finish-contract.ts +2 -1
  437. package/src/domains/safety/run-effects.ts +1 -1
  438. package/src/domains/scheduling/extension.ts +4 -4
  439. package/src/domains/session/archive-readers.ts +9 -1
  440. package/src/domains/session/compaction/branch-summary.ts +4 -0
  441. package/src/domains/session/compaction/compact.ts +1 -1
  442. package/src/domains/session/compaction/tokens.ts +4 -0
  443. package/src/domains/session/context-accounting.ts +1 -1
  444. package/src/domains/session/decision-board.ts +1 -1
  445. package/src/domains/session/extension.ts +1 -1
  446. package/src/domains/session/handoff.ts +2 -2
  447. package/src/domains/session/prompt-manifest.ts +0 -5
  448. package/src/domains/session/protected-artifact-journal.ts +12 -6
  449. package/src/domains/session/retry.ts +1 -1
  450. package/src/domains/share/archive.ts +85 -36
  451. package/src/domains/toolchain/install.ts +1 -1
  452. package/src/engine/acp/adapter.ts +3 -3
  453. package/src/engine/acp/event-mapper.ts +3 -3
  454. package/src/engine/acp/server.ts +27 -26
  455. package/src/engine/acp/tool-mediator.ts +2 -2
  456. package/src/engine/acp/types.ts +1 -1
  457. package/src/engine/alcf-oauth.ts +5 -5
  458. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  459. package/src/engine/api-registry.ts +1 -1
  460. package/src/engine/apis/llamacpp-residency.ts +1 -19
  461. package/src/engine/apis/lmstudio.ts +1 -6
  462. package/src/engine/apis/ollama-native.ts +3 -3
  463. package/src/engine/apis/openai-completions.ts +2 -2
  464. package/src/engine/apis/residency.ts +3 -9
  465. package/src/engine/claude/sdk-module.ts +1 -12
  466. package/src/engine/claude/sdk-runtime.ts +6 -6
  467. package/src/engine/claude/subprocess-runtime.ts +1 -1
  468. package/src/engine/claude/tool-safety.ts +4 -4
  469. package/src/engine/loop-guard.ts +0 -5
  470. package/src/engine/session.ts +14 -7
  471. package/src/engine/tui-primitives.ts +1 -1
  472. package/src/engine/worker-events.ts +6 -6
  473. package/src/engine/worker-runtime.ts +14 -13
  474. package/src/entry/orchestrator.ts +107 -88
  475. package/src/interactive/application-controller.ts +21 -21
  476. package/src/interactive/bus-notices.ts +2 -2
  477. package/src/interactive/chat-loop.ts +8 -8
  478. package/src/interactive/chat-panel.ts +1 -1
  479. package/src/interactive/clio-editor.ts +105 -1
  480. package/src/interactive/context-activity.ts +8 -6
  481. package/src/interactive/context-meter.ts +3 -6
  482. package/src/interactive/context-overlay.ts +1 -1
  483. package/src/interactive/cost-overlay.ts +1 -1
  484. package/src/interactive/council-grid.ts +2 -2
  485. package/src/interactive/dispatch-board.ts +30 -33
  486. package/src/interactive/editor-bash.ts +21 -0
  487. package/src/interactive/editor-steer.ts +9 -4
  488. package/src/interactive/editor-submit.ts +24 -18
  489. package/src/interactive/external-editor.ts +1 -1
  490. package/src/interactive/file-reference-completion.ts +360 -0
  491. package/src/interactive/footer/dashboard.ts +15 -17
  492. package/src/interactive/footer/notifications.ts +14 -8
  493. package/src/interactive/footer/widgets.ts +2 -44
  494. package/src/interactive/interactive-application.ts +79 -59
  495. package/src/interactive/interactive-event-projection.ts +1 -1
  496. package/src/interactive/interactive-input-runtime.ts +2 -2
  497. package/src/interactive/interactive-presentation.ts +21 -16
  498. package/src/interactive/interactive-shell.ts +2 -2
  499. package/src/interactive/interactive-slash-runtime.ts +63 -17
  500. package/src/interactive/interactive-subscriptions.ts +1 -1
  501. package/src/interactive/interactive-tickers.ts +1 -1
  502. package/src/interactive/keybinding-manager.ts +4 -4
  503. package/src/interactive/layout.ts +1 -1
  504. package/src/interactive/memory-overlay.ts +2 -2
  505. package/src/interactive/modal-marker.ts +2 -21
  506. package/src/interactive/mutation-preview.ts +1 -1
  507. package/src/interactive/overlay-frame.ts +4 -12
  508. package/src/interactive/overlay-general-openers.ts +6 -2
  509. package/src/interactive/overlay-key-routing.ts +7 -7
  510. package/src/interactive/overlay-lifecycle.ts +1 -1
  511. package/src/interactive/overlay-model-selectors.ts +3 -3
  512. package/src/interactive/overlays/agents.ts +2 -2
  513. package/src/interactive/overlays/ask-user.ts +25 -11
  514. package/src/interactive/overlays/context-reset.ts +28 -4
  515. package/src/interactive/overlays/cwd-fallback.ts +28 -4
  516. package/src/interactive/overlays/decisions.ts +4 -2
  517. package/src/interactive/overlays/fleet-run-approval.ts +3 -3
  518. package/src/interactive/overlays/handoff-review.ts +2 -2
  519. package/src/interactive/overlays/interop.ts +1 -1
  520. package/src/interactive/overlays/library-install-confirm.ts +1 -1
  521. package/src/interactive/overlays/message-picker.ts +1 -1
  522. package/src/interactive/overlays/model-selector.ts +39 -31
  523. package/src/interactive/overlays/prompts.ts +10 -4
  524. package/src/interactive/overlays/session-selector.ts +2 -2
  525. package/src/interactive/overlays/settings.ts +339 -293
  526. package/src/interactive/overlays/side-question.ts +2 -2
  527. package/src/interactive/overlays/skills-hub.ts +8 -8
  528. package/src/interactive/overlays/tree-selector.ts +2 -2
  529. package/src/interactive/panes-runtime.ts +36 -10
  530. package/src/interactive/permission-overlay.ts +2 -2
  531. package/src/interactive/renderers/retry-status.ts +12 -4
  532. package/src/interactive/renderers/tool-execution.ts +4 -4
  533. package/src/interactive/session-transcript.ts +3 -3
  534. package/src/interactive/slash-autocomplete.ts +454 -165
  535. package/src/interactive/slash-commands.ts +279 -183
  536. package/src/interactive/slash-spec.ts +160 -17
  537. package/src/interactive/status/controller.ts +2 -2
  538. package/src/interactive/stream-pacing-policy.ts +1 -1
  539. package/src/interactive/tasks-overlay.ts +20 -13
  540. package/src/interactive/terminal-lease.ts +6 -7
  541. package/src/interactive/turn-context.ts +11 -11
  542. package/src/interactive/turn-persistence.ts +2 -2
  543. package/src/interactive/turn-prewarm.ts +2 -2
  544. package/src/interactive/turn-runtime.ts +8 -8
  545. package/src/interactive/turn-state.ts +1 -1
  546. package/src/interactive/view/artifacts.ts +12 -9
  547. package/src/interactive/view/view-overlay.ts +13 -10
  548. package/src/interactive/watch-pane.ts +38 -10
  549. package/src/interactive/welcome-dashboard.ts +15 -15
  550. package/src/interactive/worker-progress.ts +4 -4
  551. package/src/interactive/worker-receipts.ts +1 -1
  552. package/src/interactive/worker-stream.ts +1 -4
  553. package/src/interactive/yazi-bridge.ts +12 -5
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/builtin-tool-catalog.ts +1 -1
  557. package/src/tools/compete-worktrees.ts +27 -17
  558. package/src/tools/context/index.ts +15 -1
  559. package/src/tools/dispatch-admission.ts +4 -2
  560. package/src/tools/dispatch-arguments.ts +1 -1
  561. package/src/tools/dispatch-plan.ts +0 -11
  562. package/src/tools/dispatch-run-events.ts +12 -10
  563. package/src/tools/dispatch-runner.ts +11 -6
  564. package/src/tools/dispatch.ts +1 -1
  565. package/src/tools/find.ts +1 -6
  566. package/src/tools/monitor.ts +4 -4
  567. package/src/tools/observers.ts +0 -33
  568. package/src/tools/task-worktree.ts +28 -7
  569. package/src/tools/verify/authoring.ts +3 -6
  570. package/src/tools/verify/frontend.ts +1 -1
  571. package/src/tools/web-fetch.ts +1 -1
  572. package/src/worker/entry.ts +4 -3
  573. package/src/worker/protocol.ts +16 -14
  574. package/src/worker/spec-contract.ts +2 -2
  575. package/src/worker/stdin-demux.ts +2 -2
  576. package/dist/chunk-GXNLGKAB.js +0 -571
  577. package/dist/chunk-VFA6GDY5.js +0 -1625
  578. package/dist/doctor-QOA5FNY5.js +0 -313
  579. package/src/engine/apis/degraded-inference.ts +0 -95
  580. /package/skills/meta/{clio-test → clio-coder-test}/references/harness.md +0 -0
  581. /package/skills/meta/{clio-test → clio-coder-test}/references/test-map.md +0 -0
@@ -9,7 +9,7 @@
9
9
  import { DEFAULT_WORKING_SET_SETTINGS } from "../domains/context/working-set/defaults.js";
10
10
  import type { TargetDescriptor } from "../domains/providers/types/target-descriptor.js";
11
11
  import type { AutonomyLevel } from "../domains/safety/autonomy.js";
12
- import { GUARDRAIL_DEFAULTS, type GuardrailValues } from "./guardrails.js";
12
+ import { GUARDRAIL_DEFAULTS } from "./guardrails.js";
13
13
 
14
14
  export type { TargetDescriptor } from "../domains/providers/types/target-descriptor.js";
15
15
  export type { AutonomyLevel } from "../domains/safety/autonomy.js";
@@ -55,12 +55,12 @@ export interface WorkerRosterMember {
55
55
  label: string;
56
56
  target: string;
57
57
  model?: string;
58
- thinking?: ThinkingLevel;
58
+ thinkingLevel?: ThinkingLevel;
59
59
  color?: ThemeNamedColor | string;
60
60
  }
61
61
  export type WorkerRosters = Record<string, { members: WorkerRosterMember[] }>;
62
- /** Map of agent id -> workers.profiles key. Empty means no agent is pinned to a profile. */
63
- export type WorkerAgentBindings = Record<string, string>;
62
+ /** Map of native agent id -> fleet.profiles key. Empty means no agent is pinned to a profile. */
63
+ export type FleetAgentProfiles = Record<string, string>;
64
64
 
65
65
  /**
66
66
  * Non-stall posture for dispatched native workers. A worker tool call that
@@ -80,22 +80,31 @@ export interface WorkerEscalationSettings {
80
80
  fallback: "deny" | "fail";
81
81
  }
82
82
 
83
- export interface WorkersSettings {
83
+ export interface FleetPermissionsSettings {
84
+ mode: WorkerPermissionMode;
85
+ escalation: WorkerEscalationSettings;
86
+ }
87
+
88
+ export interface FleetRetrySettings {
89
+ maxRetries: number;
90
+ routeCooldownMs: number;
91
+ }
92
+
93
+ export interface FleetLimitsSettings {
94
+ toolCallsPerRun: number;
95
+ internalRunTimeoutMs: number;
96
+ }
97
+
98
+ export interface FleetHistorySettings {
99
+ maxRuns: number;
100
+ journal: boolean;
101
+ }
102
+
103
+ export interface FleetRouteSettings {
84
104
  default: WorkerTarget;
85
105
  profiles: WorkerProfiles;
86
106
  rosters: WorkerRosters;
87
- agentBindings: WorkerAgentBindings;
88
- /**
89
- * Bounded automatic retries for a dispatched worker run whose outcome is
90
- * retryable. 0 disables. This is the sole governor of a dispatch assignment's
91
- * retry chain; the unrelated top-level `retry` block governs the interactive
92
- * session's own provider calls.
93
- */
94
- maxRetries: number;
95
- onPermission: WorkerPermissionMode;
96
- /** Escalate-posture bounds; defaults 120000 ms with a deny fallback. */
97
- escalation?: WorkerEscalationSettings;
98
- resilienceCooldownMs?: number;
107
+ agentProfiles: FleetAgentProfiles;
99
108
  }
100
109
 
101
110
  /**
@@ -111,11 +120,9 @@ export interface WorkersSettings {
111
120
  * - threshold: context pressure (estimated_tokens / context_window, 0..1)
112
121
  * at which compaction acts: stale observations are masked first, and a
113
122
  * full LLM summary runs if pressure stays above the threshold.
114
- * - excludeLastTurns: number of recent user turns protected from
115
- * observation masking.
116
123
  * - model: optional pattern (e.g. "provider/summary-model-id") used to
117
- * resolve a dedicated summarization model. Falls back to the orchestrator
118
- * target when absent.
124
+ * resolve a dedicated summarization model. Falls back to the Chat target
125
+ * when absent.
119
126
  * - systemPrompt: optional path to a prompt-override file; resolved to
120
127
  * text at call time, not at settings load.
121
128
  */
@@ -127,6 +134,9 @@ export interface CompactionSettings {
127
134
  systemPrompt?: string;
128
135
  }
129
136
 
137
+ /** Durable v2 compaction settings. The legacy mask keeps its own compiled recent-turn fallback. */
138
+ export type DurableCompactionSettings = Omit<CompactionSettings, "excludeLastTurns">;
139
+
130
140
  /**
131
141
  * Working-set layer settings (`context.workingSet`). The layer decides which
132
142
  * tool-result bodies and thinking blocks leave the model's working set when
@@ -154,29 +164,16 @@ export interface WorkingSetSettings {
154
164
  }
155
165
 
156
166
  /**
157
- * Prompt pre-warm settings (`prewarm`). On a local server prefill is the cost,
167
+ * Prompt pre-warm (`chat.prewarm`). On a local server prefill is the cost,
158
168
  * and the prefix the next turn will send is fully known before the operator
159
169
  * types anything: at session start, after a resume rebuilds the message array,
160
170
  * and after a compaction settles. Clio sends that prefix to the backend right
161
171
  * then so the slot's prefix cache already holds it when the real turn arrives.
162
172
  *
163
- * - enabled: master switch. The feature is off on every tier but
173
+ * The boolean is the master switch. The feature is off on every tier but
164
174
  * `local-native` whatever this says, and off for workers and headless runs,
165
175
  * because it buys latency for an operator watching a local server.
166
176
  */
167
- export interface PrewarmSettings {
168
- enabled: boolean;
169
- }
170
-
171
- /**
172
- * The pane layer's settings block.
173
- *
174
- * `journal` is the durable half: the run event journal, which every other pane
175
- * surface reads and which the standalone run viewer needs whether or not a pane
176
- * host is installed. The run-view settings govern the live projection. The
177
- * Yazi chooser remains useful without a pane host because it can borrow the
178
- * terminal for one selection.
179
- */
180
177
  export interface PanesSettings {
181
178
  /**
182
179
  * Capability rung the pane layer may reach. `auto` takes guest mode when a
@@ -186,20 +183,32 @@ export interface PanesSettings {
186
183
  enabled: "auto" | "embedded" | "off";
187
184
  /** Which terminal run states raise a pane-host toast. */
188
185
  notifications: "failures" | "all" | "off";
189
- journal: boolean;
186
+ /**
187
+ * What composes itself at interactive boot in guest mode. `off` opens
188
+ * nothing (docks still open on demand); `workers` opens the workers dock;
189
+ * `cockpit` opens workers and files both.
190
+ */
191
+ layout: "off" | "workers" | "cockpit";
192
+ /** Workers dock: the live run viewer split right of the Clio pane. */
193
+ workers: {
194
+ /** Share of the width the dock takes, clamped to at most half. */
195
+ ratio: number;
196
+ };
190
197
  /** File-pane round-trip settings read live for each explicit open. */
191
- yazi: {
198
+ files: {
192
199
  enabled: boolean;
193
200
  mode: "companion" | "chooser";
194
201
  profile: "managed" | "user";
195
202
  followCwd: boolean;
203
+ /** Share of the height the files dock takes, clamped to at most half. */
204
+ ratio: number;
196
205
  };
197
206
  }
198
207
 
199
208
  /**
200
209
  * Transient provider retry controls for the interactive chat loop. These are
201
210
  * intentionally small and mirror the session retry helper defaults. Dispatched
202
- * worker runs are governed by `workers.maxRetries` instead; the two never meet.
211
+ * worker runs are governed by `fleet.retry.maxRetries` instead; the two never meet.
203
212
  */
204
213
  export interface RetrySettings {
205
214
  enabled: boolean;
@@ -215,12 +224,12 @@ export type TuiMode = "regular" | "fullscreen";
215
224
  export type FullscreenScrollbar = "hidden" | "auto" | "always";
216
225
  export type SmoothStreaming = "off" | "auto" | "on";
217
226
 
218
- export interface TerminalSettings {
219
- showTerminalProgress: boolean;
227
+ export interface InterfaceSettings {
228
+ terminalProgress: boolean;
220
229
  /** Transcript detail: collapsed, balanced, or fully transparent. */
221
- outputVerbosity: OutputVerbosity;
230
+ outputDetail: OutputVerbosity;
222
231
  /** Regular scrollback-preserving renderer or alternate-screen sticky layout. */
223
- tuiMode: TuiMode;
232
+ mode: TuiMode;
224
233
  /** Fullscreen transcript scrollbar visibility. */
225
234
  fullscreenScrollbar: FullscreenScrollbar;
226
235
  /** Presentation-only pacing for streamed assistant text and thinking. */
@@ -230,7 +239,9 @@ export interface TerminalSettings {
230
239
  * and a parked approval. Interactive TTY runs only; headless, ACP, and
231
240
  * non-TTY runs never emit one.
232
241
  */
233
- notify: boolean;
242
+ desktopNotifications: boolean;
243
+ panes: PanesSettings;
244
+ keybindings: Record<string, string | string[]>;
234
245
  }
235
246
 
236
247
  /**
@@ -241,7 +252,7 @@ export interface TerminalSettings {
241
252
  * additionally fires the watchdog every N tool calls inside a turn, which is
242
253
  * how mid-turn scope drift becomes visible before the turn ends.
243
254
  */
244
- export interface WatchdogSettings {
255
+ export interface ReviewSettings {
245
256
  enabled: boolean;
246
257
  /** Target id the watchdog run is dispatched to; the session's active target when unset. */
247
258
  target?: string;
@@ -250,22 +261,24 @@ export interface WatchdogSettings {
250
261
  }
251
262
 
252
263
  export interface ModelSelectorSettings {
264
+ /** Exact target/model refs cycled by Alt+J/Alt+K. */
265
+ cycleSet: string[];
253
266
  /** Exact target/model refs shown in the focused model picker. */
254
267
  favorites: string[];
255
268
  /** Maximum number of recently selected target/model refs to retain. */
256
269
  recentLimit: number;
257
270
  }
258
271
 
259
- export interface SkillsSettings {
260
- trustProjectCompatRoots: boolean;
272
+ export interface ProjectResourcesSettings {
273
+ trustProjectImports: boolean;
261
274
  }
262
275
 
263
- export interface AttributionSettings {
276
+ export interface GitIntegrationSettings {
264
277
  /** Evidence-aware role trailers on commits created through Clio. */
265
- gitCommits: boolean;
278
+ commitAttribution: boolean;
266
279
  }
267
280
 
268
- export type DelegationToolGovernance = "clio-policy" | "agent-managed" | "deny-all";
281
+ export type DelegationToolGovernance = "clio-coder-policy" | "agent-managed" | "deny-all";
269
282
 
270
283
  /**
271
284
  * Application-level ACP request bounds. Unlike the separate stall watchdog,
@@ -310,8 +323,8 @@ export interface DelegationDefaults {
310
323
  toolGovernance: DelegationToolGovernance;
311
324
  }
312
325
 
313
- export interface DelegationSettings {
314
- agents: DelegationAgentConfig[];
326
+ export interface ExternalAgentsSettings {
327
+ entries: DelegationAgentConfig[];
315
328
  defaults: DelegationDefaults;
316
329
  }
317
330
 
@@ -345,8 +358,14 @@ export interface FleetNodeSettings {
345
358
  residency?: FleetNodeResidency;
346
359
  }
347
360
 
348
- export interface FleetSettings {
361
+ export interface FleetSettings extends FleetRouteSettings {
349
362
  nodes: FleetNodeSettings[];
363
+ adaptiveRouting: AdaptiveRoutingSettings;
364
+ permissions: FleetPermissionsSettings;
365
+ concurrency: "auto" | number;
366
+ retry: FleetRetrySettings;
367
+ limits: FleetLimitsSettings;
368
+ history: FleetHistorySettings;
350
369
  }
351
370
 
352
371
  /** Roles whose authority is narrow enough for Slice 9 active joint routing. */
@@ -365,57 +384,86 @@ export interface ActiveAgentRole {
365
384
  executionRole: ActiveAgentAutomationRole;
366
385
  }
367
386
 
368
- export interface AgentAutomationActivationSettings {
387
+ export interface AdaptiveRoutingSettings {
388
+ roles: ActiveRoutingRole[];
389
+ postures: ActiveRoutingPosture[];
369
390
  /** Exact pairs only; independent agent and role lists would authorize their cross-product. */
370
- activeAgentRoles: ActiveAgentRole[];
391
+ agentRoles: ActiveAgentRole[];
392
+ }
393
+
394
+ /** Compatibility type name for the dispatch planner; its fields are the canonical v2 fields. */
395
+ export type RoutingActivationSettings = AdaptiveRoutingSettings;
396
+
397
+ export interface ChatSettings extends WorkerTarget {
398
+ modelPicker: ModelSelectorSettings;
399
+ maxOutputTokens: number;
400
+ prewarm: boolean;
401
+ retry: RetrySettings;
402
+ }
403
+
404
+ export interface MemorySettings {
405
+ enabled: boolean;
406
+ target: string | null;
407
+ model: string | null;
408
+ cadenceToolCalls: number;
409
+ trajectorySteps: number;
410
+ maxOutputTokens: number;
411
+ timeoutMs: number;
412
+ }
413
+
414
+ export interface ContextSettings {
415
+ workingSet: WorkingSetSettings;
416
+ compaction: DurableCompactionSettings;
417
+ memory: MemorySettings;
371
418
  }
372
419
 
373
- export interface RoutingActivationSettings {
374
- activeRoles: ActiveRoutingRole[];
375
- activePostures: ActiveRoutingPosture[];
376
- agentAutomation: AgentAutomationActivationSettings;
420
+ export interface SafetySettings {
421
+ autonomy: AutonomyLevel;
422
+ limits: {
423
+ sessionCostUsd: number;
424
+ chatToolCallsPerTurn: number;
425
+ readBytesPerCall: number;
426
+ observationBytesPerTurn: number;
427
+ };
428
+ review: ReviewSettings;
429
+ }
430
+
431
+ export interface IntegrationsSettings {
432
+ projectResources: ProjectResourcesSettings;
433
+ externalAgents: ExternalAgentsSettings;
434
+ runtimePlugins: string[];
435
+ library: {
436
+ catalog: string | null;
437
+ remote: string | null;
438
+ confirmedRemote: string | null;
439
+ sync: boolean;
440
+ };
441
+ git: GitIntegrationSettings;
377
442
  }
378
443
 
379
444
  export const DEFAULT_SETTINGS = {
380
- version: 1 as const,
381
- autonomy: "auto-edit" as AutonomyLevel,
445
+ version: 2 as const,
382
446
  targets: [] as TargetDescriptor[],
383
- runtimePlugins: [] as string[],
384
- orchestrator: {
447
+ chat: {
385
448
  target: null as string | null,
386
449
  model: null as string | null,
387
450
  thinkingLevel: "off" as ThinkingLevel,
388
- },
389
- // Optional small-model plane for task-memory maintenance. An unset target
390
- // keeps proactive memory in its deterministic rules-only tier.
391
- background: {
392
- target: null as string | null,
393
- model: null as string | null,
394
- thinkingLevel: "off" as ThinkingLevel,
395
- },
396
- memory: {
397
- intervention: {
451
+ modelPicker: {
452
+ cycleSet: [] as string[],
453
+ favorites: [] as string[],
454
+ recentLimit: 12,
455
+ } as ModelSelectorSettings,
456
+ maxOutputTokens: 32768,
457
+ prewarm: true,
458
+ retry: {
398
459
  enabled: true,
399
- everyNTools: 10,
400
- windowSteps: 8,
401
- // Budget for the answer and any reasoning tokens that precede it.
402
- // An always-on-thinking 35B spent the measured 400/400 completion
403
- // tokens on reasoning and stopped with finish_reason=length before it
404
- // emitted content, so the old budget made a useful step unreachable.
405
- maxTokens: 2000,
406
- // A memory step runs detached from the turn that triggered it, but it
407
- // runs on a real inference endpoint that the operator's own turns and
408
- // dispatched workers also queue against. The operator's ledger over 14
409
- // days recorded 60 llm-tier steps spending 1,666 seconds of model time
410
- // for 6 injections, with one step holding a local server for 102.5
411
- // seconds to answer nothing. A viable output budget earns one minute,
412
- // while consecutive timeouts degrade the plane to its free rules tier
413
- // instead of repeatedly occupying the endpoint for that full minute.
414
- timeoutMs: 60_000,
415
- },
416
- },
417
- watchdog: { enabled: false } as WatchdogSettings,
418
- workers: {
460
+ maxRetries: 3,
461
+ baseDelayMs: 2000,
462
+ maxDelayMs: 60000,
463
+ streamStallMs: 180000,
464
+ } as RetrySettings,
465
+ } as ChatSettings,
466
+ fleet: {
419
467
  default: {
420
468
  target: null as string | null,
421
469
  model: null as string | null,
@@ -423,410 +471,160 @@ export const DEFAULT_SETTINGS = {
423
471
  } as WorkerTarget,
424
472
  profiles: {} as WorkerProfiles,
425
473
  rosters: {} as WorkerRosters,
426
- agentBindings: {} as WorkerAgentBindings,
427
- maxRetries: 2,
428
- onPermission: "deny" as WorkerPermissionMode,
429
- escalation: { timeoutMs: 120000, fallback: "deny" } as WorkerEscalationSettings,
430
- resilienceCooldownMs: 15000,
431
- } as WorkersSettings,
432
- fleet: {
474
+ agentProfiles: {} as FleetAgentProfiles,
433
475
  nodes: [] as FleetNodeSettings[],
434
- } as FleetSettings,
435
- routing: {
436
- activeRoles: [] as ActiveRoutingRole[],
437
- activePostures: [] as ActiveRoutingPosture[],
438
- agentAutomation: { activeAgentRoles: [] as ActiveAgentRole[] },
439
- } as RoutingActivationSettings,
440
- scope: [] as string[],
441
- modelSelector: {
442
- favorites: [] as string[],
443
- recentLimit: 12,
444
- } as ModelSelectorSettings,
445
- budget: {
446
- sessionCeilingUsd: 5,
476
+ adaptiveRouting: {
477
+ roles: [] as ActiveRoutingRole[],
478
+ postures: [] as ActiveRoutingPosture[],
479
+ agentRoles: [] as ActiveAgentRole[],
480
+ } as AdaptiveRoutingSettings,
481
+ permissions: {
482
+ mode: "deny" as WorkerPermissionMode,
483
+ escalation: { timeoutMs: 120000, fallback: "deny" } as WorkerEscalationSettings,
484
+ },
447
485
  concurrency: "auto" as "auto" | number,
448
- },
449
- defaults: {
450
- // Output tokens requested per turn, applied to every target. The value is
451
- // always clamped down to the model's known max-output cap and the
452
- // remaining context window at request time, so a model that supports less
453
- // automatically gets less. 0 disables the global default and falls back to
454
- // per-model caps only.
455
- maxTokens: 32768,
456
- },
457
- theme: "default",
458
- terminal: {
459
- showTerminalProgress: false,
460
- outputVerbosity: "default",
461
- tuiMode: "regular",
462
- fullscreenScrollbar: "auto",
463
- smoothStreaming: "off",
464
- notify: false,
465
- } as TerminalSettings,
466
- skills: {
467
- trustProjectCompatRoots: false,
468
- } as SkillsSettings,
469
- library: {
470
- catalog: null as string | null,
471
- remote: null as string | null,
472
- confirmedRemote: null as string | null,
473
- sync: false,
474
- },
475
- attribution: {
476
- gitCommits: true,
477
- } as AttributionSettings,
478
- delegation: {
479
- agents: [] as DelegationAgentConfig[],
480
- defaults: {
481
- connectTimeoutMs: DEFAULT_DELEGATION_CONNECT_TIMEOUT_MS,
482
- turnTimeoutMs: DEFAULT_DELEGATION_TURN_TIMEOUT_MS,
483
- permissionTimeoutMs: DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS,
484
- toolGovernance: "clio-policy" as DelegationToolGovernance,
486
+ retry: { maxRetries: 2, routeCooldownMs: 15000 },
487
+ limits: {
488
+ toolCallsPerRun: GUARDRAIL_DEFAULTS.workerToolCallCap,
489
+ internalRunTimeoutMs: GUARDRAIL_DEFAULTS.internalDispatchTimeoutMs,
485
490
  },
486
- } as DelegationSettings,
487
- // User keybinding overrides. Each id maps to a single KeyId string or a
488
- // list of KeyIds. The interactive keybinding manager reads this table
489
- // and layers it on top of CLIO_KEYBINDINGS defaults (src/domains/config/
490
- // keybindings.ts).
491
- keybindings: {} as Record<string, string | string[]>,
492
- compaction: {
493
- auto: true,
494
- threshold: 0.8,
495
- excludeLastTurns: 6,
496
- } as CompactionSettings,
491
+ history: { maxRuns: GUARDRAIL_DEFAULTS.maxDispatchRuns, journal: true },
492
+ } as FleetSettings,
497
493
  context: {
498
494
  workingSet: DEFAULT_WORKING_SET_SETTINGS,
499
- },
500
- prewarm: {
501
- enabled: true,
502
- } as PrewarmSettings,
503
- panes: {
504
- /**
505
- * Off: a plain `clio-coder` performs zero pane-host work, and none of the
506
- * mux domain even loads. The extension is activated per session with
507
- * `clio-coder --with-panes`, or durably by setting this to `auto` (guest
508
- * mode when a pane host is detected). The flag beats the setting in both
509
- * directions.
510
- */
511
- enabled: "off",
512
- /** A toast per finished run is noise; a toast per failure is the signal. */
513
- notifications: "failures",
514
- /**
515
- * Tee every dispatched run's display event tail to
516
- * `<state>/runs/<runId>/events.ndjson`. The live tail is otherwise
517
- * in-process only, so this is what lets `clio-coder fleet view` follow a
518
- * run from a second terminal. Written regardless of any pane host being
519
- * present; turning it off costs the viewer its transcript and nothing else.
520
- */
521
- journal: true,
522
- yazi: {
495
+ compaction: {
496
+ auto: true,
497
+ threshold: 0.8,
498
+ } as DurableCompactionSettings,
499
+ memory: {
523
500
  enabled: true,
524
- mode: "companion",
525
- profile: "managed",
526
- followCwd: true,
501
+ target: null as string | null,
502
+ model: null as string | null,
503
+ cadenceToolCalls: 10,
504
+ trajectorySteps: 8,
505
+ maxOutputTokens: 2000,
506
+ timeoutMs: 60_000,
507
+ } as MemorySettings,
508
+ } as ContextSettings,
509
+ safety: {
510
+ autonomy: "auto-edit" as AutonomyLevel,
511
+ limits: {
512
+ sessionCostUsd: 5,
513
+ chatToolCallsPerTurn: GUARDRAIL_DEFAULTS.turnToolCallBudget,
514
+ readBytesPerCall: GUARDRAIL_DEFAULTS.readMaxBytes,
515
+ observationBytesPerTurn: GUARDRAIL_DEFAULTS.observationTurnBudgetBytes,
516
+ },
517
+ review: { enabled: false } as ReviewSettings,
518
+ } as SafetySettings,
519
+ interface: {
520
+ terminalProgress: false,
521
+ outputDetail: "default",
522
+ mode: "regular",
523
+ fullscreenScrollbar: "auto",
524
+ smoothStreaming: "off",
525
+ desktopNotifications: false,
526
+ panes: {
527
+ enabled: "off",
528
+ notifications: "failures",
529
+ layout: "off",
530
+ workers: { ratio: 0.34 },
531
+ files: {
532
+ enabled: false,
533
+ mode: "companion",
534
+ profile: "managed",
535
+ followCwd: true,
536
+ ratio: 0.3,
537
+ },
538
+ } as PanesSettings,
539
+ keybindings: {} as Record<string, string | string[]>,
540
+ } as InterfaceSettings,
541
+ integrations: {
542
+ projectResources: { trustProjectImports: false },
543
+ externalAgents: {
544
+ entries: [] as DelegationAgentConfig[],
545
+ defaults: {
546
+ connectTimeoutMs: DEFAULT_DELEGATION_CONNECT_TIMEOUT_MS,
547
+ turnTimeoutMs: DEFAULT_DELEGATION_TURN_TIMEOUT_MS,
548
+ permissionTimeoutMs: DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS,
549
+ toolGovernance: "clio-coder-policy" as DelegationToolGovernance,
550
+ },
551
+ } as ExternalAgentsSettings,
552
+ runtimePlugins: [] as string[],
553
+ library: {
554
+ catalog: null as string | null,
555
+ remote: null as string | null,
556
+ confirmedRemote: null as string | null,
557
+ sync: false,
527
558
  },
528
- } as PanesSettings,
529
- retry: {
530
- enabled: true,
531
- maxRetries: 3,
532
- baseDelayMs: 2000,
533
- maxDelayMs: 60000,
534
- streamStallMs: 180000,
535
- } as RetrySettings,
536
- // Numeric backstops that bound runaway agent behavior. Settings are the
537
- // primary home; each value also has a per-process env override for CI and
538
- // one-off experiments (core/guardrails.ts documents both).
539
- guardrails: { ...GUARDRAIL_DEFAULTS } as GuardrailValues,
559
+ git: { commitAttribution: true },
560
+ } as IntegrationsSettings,
540
561
  };
541
562
 
542
563
  export type DefaultSettings = typeof DEFAULT_SETTINGS;
543
564
 
544
565
  /**
545
566
  * Raw YAML document written to the resolved config directory's settings.yaml on
546
- * first install. Mirrors every field of DEFAULT_SETTINGS at the same key path
547
- * and carries fully commented example target blocks that a new user can
548
- * uncomment to point Clio Coder at a local llama-server or LM Studio.
567
+ * first install. Mirrors every field of DEFAULT_SETTINGS at the same key path.
549
568
  *
550
569
  * The settings file is machine-owned after this first write: programmatic
551
570
  * writers serialize the schema directly, and comments do not survive the
552
571
  * first programmatic write.
553
572
  */
554
573
  export const DEFAULT_SETTINGS_YAML = `# Clio Coder settings. Written once on first install.
555
- # The file is machine-owned: \`clio-coder configure\`, \`clio-coder targets\`, and the TUI
556
- # rewrite it whole, and comments (including these) do not survive that write.
574
+ # This file uses the version-2 human information architecture.
557
575
  # Docs: https://github.com/iowarp/clio-coder
558
- #
559
- # Default location:
560
- # Linux: ~/.config/clio-coder/settings.yaml
561
- # macOS: ~/Library/Application Support/clio-coder/config/settings.yaml
562
- # Windows: %APPDATA%/clio-coder/config/settings.yaml
563
- # Set CLIO_CODER_HOME for a single-tree install, or CLIO_CODER_CONFIG_DIR / CLIO_CODER_DATA_DIR /
564
- # CLIO_CODER_STATE_DIR / CLIO_CODER_CACHE_DIR to override each directory separately.
565
- #
566
- # Common first run after installation:
567
- # 1. Repair/create local state: clio-coder doctor --fix
568
- # 2. List runtimes: clio-coder configure --list
569
- # 3. Configure one target with your runtime/model (examples below).
570
- # 4. Select and probe it: clio-coder targets use <id> && clio-coder targets --probe
571
- # 5. Launch: clio-coder
572
-
573
- version: 1
574
- autonomy: auto-edit # read-only | suggest | auto-edit | full-auto
575
-
576
- # Inference targets. Each entry becomes selectable for chat and workers.
577
- # Add entries via \`clio-coder configure\` or \`clio-coder targets add\`
578
- # or hand-edit. \`runtime\` must match an id registered in the runtime registry
579
- # (cloud APIs, local HTTP engines, or third-party plugins in the \`runtimes/\`
580
- # directory next to this file).
576
+
577
+ version: 2
578
+
579
+ # Configured inference endpoints. Target descriptor leaves are unchanged in v2.
581
580
  targets: []
582
- # Local runtime examples (uncomment/adapt one; replace your-model-id):
583
- # clio-coder configure --id local-lmstudio --runtime lmstudio --url http://localhost:1234 --model your-model-id --set-orchestrator --set-fleet-default
584
- # clio-coder configure --id local-ollama --runtime ollama-native --url http://localhost:11434 --model your-model-id --set-orchestrator --set-fleet-default
585
- # clio-coder configure --id local-llamacpp --runtime llamacpp --url http://127.0.0.1:8080 --model your-model-id --set-orchestrator --set-fleet-default
586
- # clio-coder configure --id local-vllm --runtime vllm --url http://localhost:8000 --model your-model-id --set-orchestrator --set-fleet-default
587
- # clio-coder configure --id local-sglang --runtime sglang --url http://localhost:30000 --model your-model-id --set-orchestrator --set-fleet-default
588
- # Add --context-window <tokens>, --max-tokens <tokens>, or --reasoning true
589
- # only when you have runtime/model-specific values to override probe results.
590
- #
591
- # Example target block equivalent to one configured local runtime:
592
- # targets:
593
- # - id: local-lmstudio
594
- # runtime: lmstudio
595
- # url: http://localhost:1234
596
- # defaultModel: your-model-id
597
- # capabilities:
598
- # reasoning: true
599
-
600
- # Optional npm packages that export clioRuntimes: RuntimeDescriptor[].
601
- runtimePlugins: []
602
-
603
- # Orchestrator target for the interactive loop. \`target\` refers to
604
- # targets[].id; \`model\` is the wire model id to request.
605
- # Keep thinkingLevel off unless a target/model supports explicit reasoning levels.
606
- orchestrator:
607
- target: null
608
- model: null
609
- thinkingLevel: off
610
581
 
611
- # Optional background target for proactive task memory. Leave unset for the
612
- # zero-cost rules-only tier; setting it opts this session into LLM memory steps.
613
- background:
582
+ chat:
614
583
  target: null
615
584
  model: null
616
585
  thinkingLevel: off
617
-
618
- memory:
619
- intervention:
586
+ modelPicker:
587
+ cycleSet: []
588
+ favorites: []
589
+ recentLimit: 12
590
+ maxOutputTokens: 32768
591
+ prewarm: true
592
+ retry:
620
593
  enabled: true
621
- everyNTools: 10
622
- windowSteps: 8
623
- # Covers the answer and any thinking before it. An always-on-thinking 35B
624
- # spent the measured 400/400 tokens on reasoning, then stopped at length.
625
- maxTokens: 2000
626
- timeoutMs: 60000
594
+ maxRetries: 3
595
+ baseDelayMs: 2000
596
+ maxDelayMs: 60000
597
+ streamStallMs: 180000
627
598
 
628
- # Opt-in turn-end watchdog. When enabled, a turn that changed the tree is
629
- # reviewed by one read-only verifier run briefed with the turn's coalesced diff
630
- # and the task board's current scope; its blockers become one transcript notice
631
- # and nothing else. Set target to route the run at a cheap local model. Set
632
- # cadenceToolCalls to also fire every N tool calls inside a turn. Headless and
633
- # ACP runs never fire it.
634
- watchdog:
635
- enabled: false
636
- # target: local-lmstudio
637
- # cadenceToolCalls: 20
638
-
639
- # Worker targets for dispatch. \`default\` preserves the legacy behavior when a
640
- # recipe or request does not specify an override. \`profiles\` are named
641
- # target/model/thinking choices. \`agentBindings\` pins native Clio agents,
642
- # including shadow agents such as scout/researcher/provenance, to a profile.
643
- workers:
599
+ fleet:
644
600
  default:
645
601
  target: null
646
602
  model: null
647
603
  thinkingLevel: off
648
604
  profiles: {}
649
605
  rosters: {}
650
- # Example profile entry:
651
- # profiles:
652
- # fast-local:
653
- # target: local-lmstudio
654
- # model: your-model-id
655
- # thinkingLevel: off
656
- # agentBindings maps agent id -> profiles key, e.g. scout: fast-local.
657
- agentBindings: {}
658
- maxRetries: 2
659
- # onPermission: what a worker does when a tool call needs interactive
660
- # permission. "deny" turns it into a structured tool denial and the run
661
- # continues; "fail" finalizes the run as failed/permission_required;
662
- # "escalate" hands the ask to the interactive operator (timeout fallback
663
- # below keeps the run non-stall).
664
- onPermission: deny
665
- # escalation: bounds for the escalate posture. A parked ask with no operator
666
- # decision within timeoutMs applies the fallback deny/fail.
667
- escalation:
668
- timeoutMs: 120000
669
- fallback: deny
670
- resilienceCooldownMs: 15000
671
-
672
- # Fleet worker nodes reachable over SSH. The implicit \`local\` node always
673
- # exists and is never declared. A node becomes dispatch-eligible only after
674
- # \`clio-coder doctor\` verifies SSH reachability, a version-matched clio-coder, path
675
- # parity for the project root (shared filesystem), and a writable state dir.
676
- # residency defaults to observe: remote workers never evict models resident
677
- # on their node (set manage per node to opt into the reconciler).
678
- fleet:
606
+ agentProfiles: {}
607
+ adaptiveRouting:
608
+ roles: []
609
+ postures: []
610
+ agentRoles: []
679
611
  nodes: []
680
- # - id: node-a
681
- # host: node-a.example.net
682
- # user: me
683
- # identityFile: ~/.ssh/id_fleet
684
- # labels: [cpu]
685
- # maxWorkers: 2
686
- # - id: node-b
687
- # host: node-b.example.net
688
- # maxWorkers: 1
689
- # residency: observe
690
-
691
- # Joint route selection is shadow-only unless both the execution role and the
692
- # requested posture are named here. Manual pins remain exact and fail closed.
693
- routing:
694
- activeRoles: [] # researcher | verifier | reviewer | judge
695
- activePostures: [] # quality | balanced | latency | economy
696
- # Agent changes remain advisory unless the concrete agent/role pair appears
697
- # here. Exact pairs avoid implicitly approving an agents × roles cross-product.
698
- agentAutomation:
699
- activeAgentRoles: []
700
-
701
- # Alt+J / Alt+K cycling order: plain target ids or "target/model" refs.
702
- scope: []
703
-
704
- # /model focused picker. Favorites are exact "target/model" refs shown before
705
- # the full search catalog. Recently selected models are runtime state and live
706
- # in the state dir (recent-models.json), not in this file.
707
- modelSelector:
708
- favorites: []
709
- recentLimit: 12
710
-
711
- # Session budget guardrails.
712
- budget:
713
- sessionCeilingUsd: 5
714
- concurrency: auto # auto or a positive integer
715
-
716
- # Global request defaults applied to every target.
717
- # maxTokens output tokens requested per turn. Always clamped down to the
718
- # model's known max-output cap and the remaining context window,
719
- # so models that support less automatically get less. Set 0 to
720
- # fall back to per-model caps only.
721
- defaults:
722
- maxTokens: 32768
723
-
724
- theme: default
725
- terminal:
726
- # OSC 9;4 terminal progress badges are opt-in; some terminals surface these
727
- # in taskbars/tabs and keep them visible for long-running agent work.
728
- showTerminalProgress: false
729
- # Transcript detail: minimal, default, or verbose. Also changeable with /output.
730
- outputVerbosity: default
731
- # regular preserves terminal scrollback; fullscreen keeps the editor/footer
732
- # sticky above an independently scrollable alternate-screen transcript.
733
- tuiMode: regular
734
- # hidden, auto (visible while scrolling), or always in fullscreen mode.
735
- fullscreenScrollbar: auto
736
- # off preserves immediate 16ms coalescing; auto paces only on a capable,
737
- # accessibility-safe local TTY; on requests pacing but still honors stdout
738
- # backpressure. CLIO_CODER_SMOOTH_STREAM overrides this for one process.
739
- smoothStreaming: off
740
- # Content-free desktop notification (OSC 777, or OSC 9 on iTerm2, Windows
741
- # Terminal, and ConEmu) when a turn ends, a detached batch settles, or an
742
- # approval parks. Interactive TTY runs only; the body never carries prompt
743
- # text, file paths, or model output.
744
- notify: false
745
-
746
- # Skills are local prompt resources. Project-local compatibility roots such as
747
- # .agents/skills, .claude/skills, .codex/skills, .github/skills, and
748
- # .opencode/skills stay hidden from model invocation unless this is true or
749
- # CLIO_CODER_TRUST_PROJECT_SKILLS=1 is set for the process.
750
- skills:
751
- trustProjectCompatRoots: false
752
-
753
- # The private resource catalog stays local unless sync is explicitly enabled.
754
- library:
755
- catalog: null
756
- remote: null
757
- confirmedRemote: null
758
- sync: false
759
-
760
- # Evidence-aware Git commit provenance. The identity and trailer semantics are
761
- # compiled into Clio; this switch only enables or disables attribution.
762
- attribution:
763
- gitCommits: true
764
-
765
- # External coding agents that speak Agent Client Protocol v1 over stdio.
766
- # These are delegated harnesses, not model targets, so they stay outside
767
- # targets[], orchestrator, workers, and model pickers.
768
- delegation:
769
- defaults:
770
- connectTimeoutMs: ${DEFAULT_DELEGATION_CONNECT_TIMEOUT_MS}
771
- turnTimeoutMs: ${DEFAULT_DELEGATION_TURN_TIMEOUT_MS}
772
- permissionTimeoutMs: ${DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS}
773
- toolGovernance: clio-policy # clio-policy | agent-managed | deny-all
774
- agents: []
775
- # OpenCode native ACP:
776
- # - id: opencode
777
- # command: opencode
778
- # args: [acp, --cwd, .]
779
- # toolGovernance: clio-policy
780
- # labels:
781
- # specialty: coding
782
- #
783
- # Codex via an ACP adapter:
784
- # - id: codex
785
- # command: npx
786
- # args: [-y, "@agentclientprotocol/codex-acp"]
787
- # toolGovernance: clio-policy
788
- # labels:
789
- # specialty: coding
790
- #
791
- # Claude Code via its ACP adapter (runs on your Claude Pro/Max subscription;
792
- # the claude CLI has no ACP of its own, so this adapter bridges the Claude
793
- # Code SDK). Tool calls are gated by Clio safety under clio-policy; switch to
794
- # agent-managed to let Claude Code govern its own tools.
795
- # - id: claude-code
796
- # command: npx
797
- # args: [-y, "@zed-industries/claude-code-acp"]
798
- # toolGovernance: clio-policy
799
- # labels:
800
- # specialty: coding
801
-
802
- keybindings: {}
803
-
804
- # Context compaction controls.
805
- # auto master switch for the pre-request compaction trigger.
806
- # Manual /context compact always runs the LLM summary.
807
- # threshold pressure = estimated_tokens / context_window. Crossing
808
- # it evicts from the working set first, then runs a full
809
- # LLM summary if pressure stays above the threshold.
810
- # excludeLastTurns recent turns protected only by the temporary legacy mask.
811
- # model optional pattern (e.g. provider/summary-model-id) for a
812
- # dedicated summarization model. Absent ⇒ orchestrator target.
813
- # systemPrompt optional path to a prompt-override file.
814
- compaction:
815
- auto: true
816
- threshold: 0.8
817
- excludeLastTurns: 6
818
- # model: provider/summary-model-id
819
- # systemPrompt: ~/.config/clio-coder/prompts/compaction.md
820
-
821
- # Non-destructive working-set eviction before summary compaction.
822
- # enabled false skips eviction and goes directly to the summary stage.
823
- # policy structural-v1 evicts by what the session did since
824
- # (re-reads, edits, resolved failures, consumed listings)
825
- # and falls back to age only under pressure;
826
- # age-horizon is the previous age-based selection.
827
- # target pressure ratio an applied eviction batches down to.
828
- # protectLastTurns recent user turns whose observations remain in the working set.
829
- # minEvictableTokens entries below this estimate remain in the working set.
612
+ permissions:
613
+ mode: deny
614
+ escalation:
615
+ timeoutMs: 120000
616
+ fallback: deny
617
+ concurrency: auto
618
+ retry:
619
+ maxRetries: 2
620
+ routeCooldownMs: 15000
621
+ limits:
622
+ toolCallsPerRun: 150
623
+ internalRunTimeoutMs: 900000
624
+ history:
625
+ maxRuns: 1000
626
+ journal: true
627
+
830
628
  context:
831
629
  workingSet:
832
630
  enabled: true
@@ -834,70 +632,65 @@ context:
834
632
  target: 0.6
835
633
  protectLastTurns: 6
836
634
  minEvictableTokens: 200
837
-
838
- # Prompt pre-warm. At session start, after a resume rebuilds the message array,
839
- # and after a compaction settles, Clio sends the prefix the next turn would send
840
- # (minus your text) so a local server has already prefilled it when you press
841
- # Enter. Local-native targets only, interactive sessions only, and never while a
842
- # turn or a dispatch is running.
843
- prewarm:
844
- enabled: true
845
-
846
- # The pane layer. Off by default: plain \`clio-coder\` does no pane-host work at
847
- # all. Start \`clio-coder --with-panes\` to activate the extension for one
848
- # session, or set enabled: auto to activate it whenever a pane host is
849
- # detected (embedded, a Clio-owned private session, is not implemented yet).
850
- # The command-line flag beats this setting in both directions. notifications
851
- # picks which terminal run states raise a toast. journal tees every dispatched
852
- # run's event tail to <state>/runs/<runId>/events.ndjson so
853
- # \`clio-coder fleet view <runId> --follow\` can watch a run from a second
854
- # terminal; it is written regardless of any pane host being present. Journal
855
- # directories are removed when their run leaves the run ledger ring, and
856
- # \`clio-coder reset --state\` clears them with the rest of the state root.
857
- panes:
858
- enabled: off
859
- notifications: failures
860
- journal: true
861
- # The files pane uses a managed, reproducible Yazi profile by default.
862
- # profile: user preserves the operator's Yazi configuration and therefore
863
- # forces one-shot chooser mode, since that profile has no Clio pick chord.
864
- yazi:
635
+ compaction:
636
+ auto: true
637
+ threshold: 0.8
638
+ memory:
865
639
  enabled: true
866
- mode: companion
867
- profile: managed
868
- followCwd: true
869
-
870
- # Transient provider/stream retry controls for interactive chat.
871
- # Retryable errors include overloads, rate limits, 5xx responses, network
872
- # resets, and timeouts. Context overflow uses compaction recovery instead.
873
- # Dispatched worker runs retry under workers.maxRetries, not this block.
874
- retry:
875
- enabled: true
876
- maxRetries: 3
877
- baseDelayMs: 2000
878
- maxDelayMs: 60000
879
- streamStallMs: 180000
880
-
881
- # Guardrails: numeric backstops that bound runaway agent behavior.
882
- # turnToolCallBudget orchestrator per-turn soft tool-call budget;
883
- # the hard interrupt ceiling sits 15 above it.
884
- # workerToolCallCap ceiling on tool calls a dispatched worker may
885
- # execute; the agent recipe's own budget is what
886
- # normally binds, and refused calls never spend it.
887
- # maxDispatchRuns dispatch run-ledger retention cap.
888
- # readMaxBytes per-call byte cap for the read tool.
889
- # observationTurnBudgetBytes shared per-turn byte pool for observation tools.
890
- # internalDispatchTimeoutMs wall-clock cap for one internal generator
891
- # dispatch (wiki documenter, bootstrap scout).
892
- # Each value also has a per-process env override (CLIO_CODER_TURN_TOOL_CALL_BUDGET,
893
- # CLIO_CODER_WORKER_TOOL_CALL_CAP, CLIO_CODER_MAX_DISPATCH_RUNS, CLIO_CODER_READ_MAX_BYTES,
894
- # CLIO_CODER_OBSERVATION_TURN_BUDGET_BYTES, CLIO_CODER_INTERNAL_DISPATCH_TIMEOUT_MS) meant
895
- # for CI and one-off experiments.
896
- guardrails:
897
- turnToolCallBudget: 60
898
- workerToolCallCap: 150
899
- maxDispatchRuns: 1000
900
- readMaxBytes: 51200
901
- observationTurnBudgetBytes: 196608
902
- internalDispatchTimeoutMs: 900000
640
+ target: null
641
+ model: null
642
+ cadenceToolCalls: 10
643
+ trajectorySteps: 8
644
+ maxOutputTokens: 2000
645
+ timeoutMs: 60000
646
+
647
+ safety:
648
+ autonomy: auto-edit
649
+ limits:
650
+ sessionCostUsd: 5
651
+ chatToolCallsPerTurn: 60
652
+ readBytesPerCall: 51200
653
+ observationBytesPerTurn: 196608
654
+ review:
655
+ enabled: false
656
+
657
+ interface:
658
+ outputDetail: default
659
+ smoothStreaming: off
660
+ mode: regular
661
+ fullscreenScrollbar: auto
662
+ terminalProgress: false
663
+ desktopNotifications: false
664
+ panes:
665
+ enabled: off
666
+ notifications: failures
667
+ layout: off
668
+ workers:
669
+ ratio: 0.34
670
+ files:
671
+ enabled: false
672
+ mode: companion
673
+ profile: managed
674
+ followCwd: true
675
+ ratio: 0.3
676
+ keybindings: {}
677
+
678
+ integrations:
679
+ projectResources:
680
+ trustProjectImports: false
681
+ externalAgents:
682
+ entries: []
683
+ defaults:
684
+ connectTimeoutMs: 30000
685
+ turnTimeoutMs: 300000
686
+ permissionTimeoutMs: 120000
687
+ toolGovernance: clio-coder-policy
688
+ runtimePlugins: []
689
+ library:
690
+ catalog: null
691
+ remote: null
692
+ confirmedRemote: null
693
+ sync: false
694
+ git:
695
+ commitAttribution: true
903
696
  `;