@iowarp/clio-coder 0.4.9 → 0.5.0

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 (1172) hide show
  1. package/.claude-plugin/marketplace.json +11 -3
  2. package/CHANGELOG.md +153 -0
  3. package/CODE_OF_CONDUCT.md +10 -0
  4. package/CONTRIBUTING.md +208 -382
  5. package/NOTICE +8 -2
  6. package/README.md +199 -418
  7. package/ROADMAP.md +82 -0
  8. package/SECURITY.md +14 -11
  9. package/dist/acp-KS7ARGV6.js +132 -0
  10. package/dist/agents-YOGJ2YEJ.js +163 -0
  11. package/dist/assets/codewiki.json +1 -1
  12. package/dist/auth-CEDCO6O6.js +557 -0
  13. package/dist/background-YWTBPSQU.js +39 -0
  14. package/dist/builtins-GDYO4RTR.js +23 -0
  15. package/dist/chunk-27YTM2CV.js +175 -0
  16. package/dist/chunk-2AF6YC7Q.js +75 -0
  17. package/dist/chunk-2DTIWSAW.js +381 -0
  18. package/dist/chunk-2EMLKSCX.js +262 -0
  19. package/dist/chunk-2OJ3YZQP.js +665 -0
  20. package/dist/chunk-2VLYHHFT.js +35 -0
  21. package/dist/chunk-2WVPJF3Z.js +204 -0
  22. package/dist/chunk-33OASOS6.js +176 -0
  23. package/dist/chunk-3BD2LXYJ.js +19 -0
  24. package/dist/chunk-3JHUFKG7.js +30 -0
  25. package/dist/chunk-3JLTRPN7.js +711 -0
  26. package/dist/chunk-3LT34CAM.js +2796 -0
  27. package/dist/chunk-3O5JWP4L.js +1670 -0
  28. package/dist/chunk-3UW3KU4A.js +21 -0
  29. package/dist/chunk-4A6YRGV4.js +569 -0
  30. package/dist/chunk-4D2BRCZ3.js +67 -0
  31. package/dist/chunk-4SYHGVDE.js +668 -0
  32. package/dist/chunk-4VDHLCF5.js +66 -0
  33. package/dist/chunk-4WOOTKFD.js +637 -0
  34. package/dist/chunk-4WV4PI66.js +80 -0
  35. package/dist/chunk-53OXPRI6.js +195 -0
  36. package/dist/chunk-55RMDDFM.js +1347 -0
  37. package/dist/chunk-56XP4FJU.js +2025 -0
  38. package/dist/chunk-5B3RTYAK.js +123 -0
  39. package/dist/chunk-5CD243WE.js +45 -0
  40. package/dist/chunk-5JQR5B4D.js +709 -0
  41. package/dist/chunk-5KQEUIWM.js +597 -0
  42. package/dist/chunk-5LP5FNNR.js +915 -0
  43. package/dist/chunk-62UK7AGW.js +9344 -0
  44. package/dist/chunk-6CTHLZFB.js +563 -0
  45. package/dist/chunk-6EJYVCTN.js +23 -0
  46. package/dist/chunk-6OWUM2NC.js +12289 -0
  47. package/dist/chunk-6RJMYYIE.js +1023 -0
  48. package/dist/chunk-6W75D37F.js +643 -0
  49. package/dist/chunk-733ZBT5P.js +1721 -0
  50. package/dist/chunk-77DCC6JZ.js +3710 -0
  51. package/dist/chunk-7QXCO3AF.js +156 -0
  52. package/dist/chunk-7RET77VB.js +481 -0
  53. package/dist/chunk-A4MVRV4C.js +65 -0
  54. package/dist/chunk-ALJWT6O6.js +93 -0
  55. package/dist/chunk-AVSR2HKI.js +232 -0
  56. package/dist/chunk-B7GY6QER.js +42 -0
  57. package/dist/chunk-BFOSV5EZ.js +178 -0
  58. package/dist/chunk-BGOIM7NB.js +103 -0
  59. package/dist/chunk-BJH6WFIB.js +372 -0
  60. package/dist/chunk-BOBCCDJ6.js +1533 -0
  61. package/dist/chunk-BRCOSE7O.js +117 -0
  62. package/dist/chunk-BYFHHCFV.js +601 -0
  63. package/dist/chunk-C2CPOIH2.js +83 -0
  64. package/dist/chunk-C7AQTPCE.js +694 -0
  65. package/dist/chunk-CBAQPTDU.js +165 -0
  66. package/dist/chunk-CDQ2UC6W.js +125 -0
  67. package/dist/chunk-CN6SW5DC.js +177 -0
  68. package/dist/chunk-CRHPCPZP.js +132 -0
  69. package/dist/chunk-CTFPFW3H.js +44 -0
  70. package/dist/chunk-D3KWFOUT.js +103 -0
  71. package/dist/chunk-D65E25JG.js +185 -0
  72. package/dist/chunk-DCGHJQ2U.js +236 -0
  73. package/dist/chunk-DE2LU267.js +106 -0
  74. package/dist/chunk-DF6PI6GN.js +97 -0
  75. package/dist/chunk-DGC6X6XR.js +53 -0
  76. package/dist/chunk-DOUISWEE.js +526 -0
  77. package/dist/chunk-DR3TAEUA.js +188 -0
  78. package/dist/chunk-DVTBERFY.js +33 -0
  79. package/dist/chunk-DXSETN72.js +1051 -0
  80. package/dist/chunk-DZLR4UEH.js +128 -0
  81. package/dist/chunk-E6IPKW2E.js +77 -0
  82. package/dist/chunk-EG4ARXPC.js +139 -0
  83. package/dist/chunk-EKV4UBCM.js +652 -0
  84. package/dist/chunk-EOJPDNUP.js +1325 -0
  85. package/dist/chunk-EX57VVWW.js +4157 -0
  86. package/dist/chunk-EYTLV3W3.js +5937 -0
  87. package/dist/chunk-EZD2BXGP.js +475 -0
  88. package/dist/chunk-EZDCA34W.js +314 -0
  89. package/dist/chunk-FD2I4KBR.js +33 -0
  90. package/dist/chunk-FD3IAHQM.js +27 -0
  91. package/dist/chunk-FFYTC2KQ.js +416 -0
  92. package/dist/chunk-FGSQHUCK.js +110 -0
  93. package/dist/chunk-GCQFN7YI.js +32 -0
  94. package/dist/chunk-GGPF6LLE.js +38 -0
  95. package/dist/chunk-GGWI3OVM.js +215 -0
  96. package/dist/chunk-GLIQT7SU.js +172 -0
  97. package/dist/chunk-GN7QBEEI.js +95 -0
  98. package/dist/chunk-GRHOXDKB.js +1104 -0
  99. package/dist/chunk-HMN2C6YL.js +54 -0
  100. package/dist/chunk-HOEDA42N.js +310 -0
  101. package/dist/chunk-HOYZUKG7.js +192 -0
  102. package/dist/chunk-HQVN7G4F.js +1021 -0
  103. package/dist/chunk-HSQQFDB3.js +519 -0
  104. package/dist/chunk-I4ELN5BX.js +47 -0
  105. package/dist/chunk-I4Y4WKZR.js +386 -0
  106. package/dist/chunk-IFPDAD7R.js +797 -0
  107. package/dist/chunk-IN7DGBVS.js +582 -0
  108. package/dist/chunk-ISHUS7HC.js +396 -0
  109. package/dist/chunk-JPXLJSGR.js +191 -0
  110. package/dist/chunk-JQCLXSFI.js +69 -0
  111. package/dist/chunk-KBUTSJSR.js +61 -0
  112. package/dist/chunk-KW5HXKLJ.js +56 -0
  113. package/dist/chunk-L4APUGCT.js +139 -0
  114. package/dist/chunk-L7G7K4I2.js +505 -0
  115. package/dist/chunk-LAR7DX5E.js +1840 -0
  116. package/dist/chunk-LAVUQX3B.js +462 -0
  117. package/dist/chunk-LJRBX7QR.js +116 -0
  118. package/dist/chunk-LNOXCGN2.js +1864 -0
  119. package/dist/chunk-LTWH2ACR.js +23002 -0
  120. package/dist/chunk-LYJJ6546.js +661 -0
  121. package/dist/chunk-M2IPMWCN.js +457 -0
  122. package/dist/chunk-MGLRTOCK.js +101 -0
  123. package/dist/chunk-MZF5IKZT.js +160 -0
  124. package/dist/chunk-N24R6KWS.js +386 -0
  125. package/dist/chunk-NASYVWDB.js +604 -0
  126. package/dist/chunk-NBXFPI7U.js +195 -0
  127. package/dist/chunk-NDPF2N2L.js +400 -0
  128. package/dist/chunk-NFSK2VNU.js +446 -0
  129. package/dist/chunk-NG3QQSXY.js +43 -0
  130. package/dist/chunk-NOCSM22Y.js +63 -0
  131. package/dist/chunk-NVPXXW2H.js +1143 -0
  132. package/dist/chunk-O63U2I6I.js +30 -0
  133. package/dist/chunk-OJXOA6YU.js +98 -0
  134. package/dist/chunk-OPD7GL6F.js +1196 -0
  135. package/dist/chunk-OQ2EOAHA.js +14399 -0
  136. package/dist/chunk-OV62D6KO.js +688 -0
  137. package/dist/chunk-OZ76TLGU.js +740 -0
  138. package/dist/chunk-P4GNZPXO.js +1156 -0
  139. package/dist/chunk-PS6JAWJZ.js +78 -0
  140. package/dist/chunk-PXRCXGLK.js +1865 -0
  141. package/dist/chunk-QDUUOZ3S.js +108 -0
  142. package/dist/chunk-QG6I2T5E.js +1416 -0
  143. package/dist/chunk-QHSBROEW.js +308 -0
  144. package/dist/chunk-QNUQ7K7D.js +46 -0
  145. package/dist/chunk-QZTTRSJE.js +333 -0
  146. package/dist/chunk-R2UUNSNQ.js +1605 -0
  147. package/dist/chunk-R7FGRZNF.js +1794 -0
  148. package/dist/chunk-RNDCROSG.js +199 -0
  149. package/dist/chunk-S36CXHO2.js +302 -0
  150. package/dist/chunk-SJGS3GDI.js +575 -0
  151. package/dist/chunk-SQZHXUB3.js +510 -0
  152. package/dist/chunk-SUTLW6ND.js +686 -0
  153. package/dist/chunk-SYF7FVBL.js +179 -0
  154. package/dist/chunk-T2MDZES3.js +1577 -0
  155. package/dist/chunk-T33IYTZM.js +1146 -0
  156. package/dist/chunk-TDGYTWM6.js +49 -0
  157. package/dist/chunk-TGL5FZVD.js +132 -0
  158. package/dist/chunk-TGWZXJ7L.js +1205 -0
  159. package/dist/chunk-TKDRT2DF.js +114 -0
  160. package/dist/chunk-TV2EBCSQ.js +152 -0
  161. package/dist/chunk-U26XXPJS.js +367 -0
  162. package/dist/chunk-U5QU5ZOD.js +419 -0
  163. package/dist/chunk-U6YTUVOX.js +1011 -0
  164. package/dist/chunk-UCINIRHW.js +188 -0
  165. package/dist/chunk-UJD5MPP6.js +52 -0
  166. package/dist/chunk-URCXX7WJ.js +146 -0
  167. package/dist/chunk-UX2L5CUD.js +898 -0
  168. package/dist/chunk-UZVYEF57.js +114 -0
  169. package/dist/chunk-V35KZDUZ.js +218 -0
  170. package/dist/chunk-VESL6DQY.js +1058 -0
  171. package/dist/chunk-VKHLUZNO.js +986 -0
  172. package/dist/chunk-VOYUCAQF.js +584 -0
  173. package/dist/chunk-VYRQHORQ.js +414 -0
  174. package/dist/chunk-W53XSRQE.js +245 -0
  175. package/dist/chunk-X4CEFOSG.js +226 -0
  176. package/dist/chunk-XDHUDE5K.js +380 -0
  177. package/dist/chunk-XISLDHEL.js +1290 -0
  178. package/dist/chunk-XM34YQ2Y.js +169 -0
  179. package/dist/chunk-XMDBTYCH.js +661 -0
  180. package/dist/chunk-XS2QPZJE.js +449 -0
  181. package/dist/chunk-YBUECLAF.js +618 -0
  182. package/dist/chunk-YQ6XEFVK.js +332 -0
  183. package/dist/chunk-YYLCPDCC.js +990 -0
  184. package/dist/chunk-Z4GLJ6J4.js +1035 -0
  185. package/dist/chunk-ZARZ4POR.js +210 -0
  186. package/dist/chunk-ZJPORZTC.js +119 -0
  187. package/dist/chunk-ZNUZ3EXD.js +243 -0
  188. package/dist/chunk-ZPST2KQO.js +49 -0
  189. package/dist/chunk-ZR5YA6ZF.js +512 -0
  190. package/dist/chunk-ZU4JPCPR.js +319 -0
  191. package/dist/chunk-ZUKUCZYZ.js +39 -0
  192. package/dist/cli/index.js +56 -45
  193. package/dist/clio-K2PBVCEM.js +27 -0
  194. package/dist/clio-context-tools-GR4OHFSO.js +145 -0
  195. package/dist/code-nav-4X3OI6DK.js +715 -0
  196. package/dist/codewiki/build-worker.js +4 -4
  197. package/dist/compile-cache-YRB6QRO7.js +18 -0
  198. package/dist/components-RQOJ6NUR.js +675 -0
  199. package/dist/config-Q5J7UBAB.js +291 -0
  200. package/dist/config-XE7XYZLU.js +38 -0
  201. package/dist/config-graph-P3555574.js +175 -0
  202. package/dist/configure-KIJ32ZO6.js +104 -0
  203. package/dist/context-LFBQOSXT.js +344 -0
  204. package/dist/context-NNLBES2Y.js +82 -0
  205. package/dist/context-WBH3KSVR.js +302 -0
  206. package/dist/context-clear-YOHMQ6SQ.js +208 -0
  207. package/dist/context-index-X2N5UAIF.js +120 -0
  208. package/dist/context-map-HOSMGUG2.js +555 -0
  209. package/dist/context-working-set-MRAEVDNV.js +1564 -0
  210. package/dist/data-tool-JJPBGMQJ.js +2986 -0
  211. package/dist/detail-RHJOTGN4.js +139 -0
  212. package/dist/dispatch-runner-NC7PYNIO.js +2477 -0
  213. package/dist/docs-K4GBWRUX.js +342 -0
  214. package/dist/doctor-S5KZ2GTN.js +1138 -0
  215. package/dist/doctor-deep-2EJQSHIZ.js +130 -0
  216. package/dist/domain-loader-MB34FDPD.js +13 -0
  217. package/dist/eval-3D6M36N7.js +5220 -0
  218. package/dist/eval-inventory-SM3HNM47.js +260 -0
  219. package/dist/evals-FO6JEUCN.js +104 -0
  220. package/dist/evidence-6IYN52ET.js +262 -0
  221. package/dist/evidence-JVECPI3F.js +250 -0
  222. package/dist/evidence-XNVPPLVK.js +410 -0
  223. package/dist/evolve-TLPUDJDM.js +634 -0
  224. package/dist/extensions-ROZJ5X3J.js +311 -0
  225. package/dist/fleet-6RJWIOEO.js +284 -0
  226. package/dist/fleet-WKVBF5SZ.js +942 -0
  227. package/dist/fleet-commands-L6WFT7KZ.js +76 -0
  228. package/dist/fleet-decisions-BTQMWU5A.js +55 -0
  229. package/dist/fleet-graph-553DZ67Q.js +141 -0
  230. package/dist/fleet-inspect-236FZPRB.js +329 -0
  231. package/dist/fleet-new-CKUXP3CO.js +48 -0
  232. package/dist/fleet-preflight-NZQHABWO.js +95 -0
  233. package/dist/fleet-validate-7NLAE26R.js +96 -0
  234. package/dist/fleet-verify-E3RO6A5W.js +226 -0
  235. package/dist/fleet-view-KMZQY7YJ.js +144 -0
  236. package/dist/gui/client/assets/abnfDiagram-VCTEODGH-DPBWQwNn.js +1 -0
  237. package/dist/gui/client/assets/architecture-7GRP2DOG-D1w8FrFW.js +1 -0
  238. package/dist/gui/client/assets/architectureDiagram-5GKGNRK7-CVPgKd1-.js +36 -0
  239. package/dist/gui/client/assets/blockDiagram-I7D4REHJ-BLmnqkK5.js +129 -0
  240. package/dist/gui/client/assets/c4Diagram-7LVT6UL2-4AU9cfM7.js +38 -0
  241. package/dist/gui/client/assets/channel-DwFZ0m8S.js +1 -0
  242. package/dist/gui/client/assets/chunk-4HAMMTFA-EOWkKCav.js +62 -0
  243. package/dist/gui/client/assets/chunk-75Z2AOVW-CygeoIMl.js +2 -0
  244. package/dist/gui/client/assets/chunk-DU6HZSFF-s27fViLb.js +125 -0
  245. package/dist/gui/client/assets/chunk-F27PBJKO-BrHvwLsZ.js +1 -0
  246. package/dist/gui/client/assets/chunk-GMAD6QVW-DzPh-7jt.js +72 -0
  247. package/dist/gui/client/assets/chunk-GVQU2GXP-pIaQkIzm.js +1 -0
  248. package/dist/gui/client/assets/chunk-IMKFNOWR-BGJVE_Br.js +231 -0
  249. package/dist/gui/client/assets/chunk-L3NEJ4N5-B3YLuhww.js +1 -0
  250. package/dist/gui/client/assets/chunk-OSK3NFVY-BRj61HHU.js +10 -0
  251. package/dist/gui/client/assets/chunk-P2QGCYS3-Sno90KxP.js +1 -0
  252. package/dist/gui/client/assets/chunk-POPQ4Y6H-Cw8NTbxr.js +1 -0
  253. package/dist/gui/client/assets/chunk-PWAF6VOD-BIhHgz37.js +1 -0
  254. package/dist/gui/client/assets/chunk-SHT3W25Y-Cqv7npBj.js +168 -0
  255. package/dist/gui/client/assets/chunk-SVP7TREG-Hxzl6Dee.js +88 -0
  256. package/dist/gui/client/assets/chunk-TICWLB2K-CIFVyVP2.js +206 -0
  257. package/dist/gui/client/assets/classDiagram-ZZMXUADV-BJbAiI_w.js +1 -0
  258. package/dist/gui/client/assets/classDiagram-v2-VYDZK3BY-BJbAiI_w.js +1 -0
  259. package/dist/gui/client/assets/cynefin-OW5HDTMX-DecLWZ-y.js +1 -0
  260. package/dist/gui/client/assets/cynefinDiagram-5FMLGOSQ-CK-T2N-D.js +62 -0
  261. package/dist/gui/client/assets/dagre-GXQ25YYZ-C0dfg-OS.js +4 -0
  262. package/dist/gui/client/assets/diagram-S7CK7UJ4-EaJukVh-.js +30 -0
  263. package/dist/gui/client/assets/diagram-UQ7AKVKN-xcOucEtP.js +41 -0
  264. package/dist/gui/client/assets/diagram-VSXAHHWV-3AUJACMf.js +3 -0
  265. package/dist/gui/client/assets/diagram-VX7I27RA-TPknLqam.js +24 -0
  266. package/dist/gui/client/assets/diagram-Z3DM3KII-wa1q3YMF.js +24 -0
  267. package/dist/gui/client/assets/ebnfDiagram-PWID7BFC-JBCF2-s7.js +1 -0
  268. package/dist/gui/client/assets/erDiagram-RLTQ6QDP-CmXjXPc4.js +99 -0
  269. package/dist/gui/client/assets/eventmodeling-NTZA5JFV-D_1aJWYl.js +1 -0
  270. package/dist/gui/client/assets/flowDiagram-HODETNUW-BQtZlael.js +1 -0
  271. package/dist/gui/client/assets/framework-Bq-znqwW.js +9 -0
  272. package/dist/gui/client/assets/ganttDiagram-EL5Y4UJY-IPaL_kaa.js +292 -0
  273. package/dist/gui/client/assets/gitGraph-4MIJSDKK-Oy0Q3hoc.js +1 -0
  274. package/dist/gui/client/assets/gitGraphDiagram-WWUBYQGX-jtAuBmbc.js +106 -0
  275. package/dist/gui/client/assets/index-CuFuBEdL.css +1 -0
  276. package/dist/gui/client/assets/index-hMbEIsX0.js +87 -0
  277. package/dist/gui/client/assets/info-A6RAGUB7-UtEs1tv7.js +1 -0
  278. package/dist/gui/client/assets/infoDiagram-27XIBGKW-hlwR1pBW.js +2 -0
  279. package/dist/gui/client/assets/ishikawaDiagram-5VMMS53U-C6vMtfsd.js +70 -0
  280. package/dist/gui/client/assets/journeyDiagram-3NMN7TZE-EAwAl_PS.js +139 -0
  281. package/dist/gui/client/assets/kanban-definition-UXKFOSKX-CQOhRKHW.js +89 -0
  282. package/dist/gui/client/assets/line-DbcwGZTW.js +1 -0
  283. package/dist/gui/client/assets/mermaid-parser.core-C2QfVcHd.js +7 -0
  284. package/dist/gui/client/assets/mermaid.core-N9qUTre1.js +44 -0
  285. package/dist/gui/client/assets/mindmap-definition-YA3MSWOX-BR_FL9gK.js +96 -0
  286. package/dist/gui/client/assets/packet-AYTQ26CC-CbBJ2oAa.js +1 -0
  287. package/dist/gui/client/assets/pegDiagram-XKGWAZYB-BruU0IHM.js +1 -0
  288. package/dist/gui/client/assets/pie-WAS4IAKB-BWdSng4H.js +1 -0
  289. package/dist/gui/client/assets/pieDiagram-E7YTZNPT-CR3ljgdU.js +39 -0
  290. package/dist/gui/client/assets/quadrantDiagram-AXDQQJYC-C-boKslr.js +7 -0
  291. package/dist/gui/client/assets/radar-RG4KPBEZ-CGlOnAKG.js +1 -0
  292. package/dist/gui/client/assets/railroad-74A4TZTK-CDvuAlyC.js +1 -0
  293. package/dist/gui/client/assets/railroad-abnf-HS5TGJTU-CQUA9crC.js +1 -0
  294. package/dist/gui/client/assets/railroad-ebnf-LZEXJU2U-CD857gxq.js +1 -0
  295. package/dist/gui/client/assets/railroad-peg-WCYAUIDC-DUV4k35E.js +1 -0
  296. package/dist/gui/client/assets/railroadDiagram-O6MQD6OU-DMR4LXmA.js +1 -0
  297. package/dist/gui/client/assets/requirementDiagram-BXWQKSXE-DVltaF6c.js +84 -0
  298. package/dist/gui/client/assets/sankeyDiagram-P5KCCOFB-CHdNz472.js +40 -0
  299. package/dist/gui/client/assets/sequenceDiagram-WJ2MYXX4-DaMafIty.js +162 -0
  300. package/dist/gui/client/assets/stateDiagram-D77RDMKH-CEbBHqn3.js +1 -0
  301. package/dist/gui/client/assets/stateDiagram-v2-MP3YSRHH-B3JgDdFg.js +1 -0
  302. package/dist/gui/client/assets/swimlanes-42K2YHIH-BlPHndnJ.js +1 -0
  303. package/dist/gui/client/assets/swimlanesDiagram-VR7AAH4N-BPabHwsZ.js +8 -0
  304. package/dist/gui/client/assets/timeline-definition-24CTP7MA-E4Y1lPBI.js +120 -0
  305. package/dist/gui/client/assets/treeView-Q6P3EWNA-DrY0uhTN.js +1 -0
  306. package/dist/gui/client/assets/treemap-WGGIJYW6-CVotnLHf.js +1 -0
  307. package/dist/gui/client/assets/vennDiagram-4TSXK5OY-DJNrLIOF.js +34 -0
  308. package/dist/gui/client/assets/wardley-WFR3VGLG-ClOpAp5S.js +1 -0
  309. package/dist/gui/client/assets/wardleyDiagram-VM6X3IG4-qhMoKOXc.js +78 -0
  310. package/dist/gui/client/assets/xychartDiagram-S5SC5T6Z-CTuXoo9R.js +7 -0
  311. package/dist/gui/client/index.html +6 -0
  312. package/dist/gui/ops-worker.js +167 -0
  313. package/dist/gui/reads-worker.js +473 -0
  314. package/dist/gui/server.js +9780 -0
  315. package/dist/gui-QJS7XQMV.js +16 -0
  316. package/dist/init-DV5B6HQG.js +354 -0
  317. package/dist/install-6C45YXFP.js +19 -0
  318. package/dist/install-O7NSRU2W.js +13 -0
  319. package/dist/interactive-OXGYZYAS.js +22381 -0
  320. package/dist/interop-J7UOBOSF.js +254 -0
  321. package/dist/inventory-OEGIL6PY.js +144 -0
  322. package/dist/library-B3UPGY4V.js +83 -0
  323. package/dist/library-MXQA5DLT.js +309 -0
  324. package/dist/library-ROZAMUIL.js +496 -0
  325. package/dist/library-import-2LTWOVBD.js +190 -0
  326. package/dist/library-inventory-LJ3XHLWO.js +60 -0
  327. package/dist/library-validation-DARHHUNW.js +46 -0
  328. package/dist/mcp-2GSPYQ54.js +28 -0
  329. package/dist/memory-J3STUUIK.js +537 -0
  330. package/dist/models-Y3GMFJ2V.js +314 -0
  331. package/dist/monitor-LHNH577J.js +811 -0
  332. package/dist/orchestrator-DTAPXULA.js +12117 -0
  333. package/dist/panes-A743ONZ5.js +103 -0
  334. package/dist/panes-CTNO57ZY.js +76 -0
  335. package/dist/paths-3SBYJQDP.js +68 -0
  336. package/dist/preload-OJBMAIXF.js +140 -0
  337. package/dist/providers-CMETPZNS.js +232 -0
  338. package/dist/registry-37T4U6X2.js +15 -0
  339. package/dist/reset-O7EUCYWO.js +346 -0
  340. package/dist/resources-FY6XYFN2.js +189 -0
  341. package/dist/run-H64MEVTA.js +1067 -0
  342. package/dist/run-script-PQ5NRU3X.js +42 -0
  343. package/dist/settings-SNIQNXCW.js +73 -0
  344. package/dist/settings-controls-X6GMCPVG.js +202 -0
  345. package/dist/share-CAFMMQLM.js +299 -0
  346. package/dist/skills-ERKQUC7L.js +114 -0
  347. package/dist/skills-eval-CQ23MYQK.js +1099 -0
  348. package/dist/skills-inventory-TVUYJDVN.js +142 -0
  349. package/dist/slash-commands-ROG3KIFJ.js +107 -0
  350. package/dist/startup-background-KDWCQMWT.js +247 -0
  351. package/dist/steer-KKYXJSH4.js +77 -0
  352. package/dist/support-M3RCUUEL.js +40 -0
  353. package/dist/system-ZDW44ZGX.js +142 -0
  354. package/dist/target-runtimes-PWA22WVW.js +73 -0
  355. package/dist/targets-AJWA6E7Z.js +1207 -0
  356. package/dist/tasks-6L2JJRC5.js +39 -0
  357. package/dist/terminal-lease-YFUSDPAD.js +432 -0
  358. package/dist/tools-5XJUABRD.js +30 -0
  359. package/dist/trace-LA5MVR4Y.js +527 -0
  360. package/dist/tree-sitter-TQW3Y52T.js +4673 -0
  361. package/dist/tui-primitives-IUCVWLH5.js +19 -0
  362. package/dist/uninstall-SAWGGXAB.js +448 -0
  363. package/dist/upgrade-HSNSVTZG.js +300 -0
  364. package/dist/usage-XSILDHKF.js +1083 -0
  365. package/dist/verifiers-ECA5GIHL.js +633 -0
  366. package/dist/verify-R6QQCCEB.js +31 -0
  367. package/dist/version-PLZYB5KW.js +22 -0
  368. package/dist/web-fetch-PVZNMBOB.js +803 -0
  369. package/dist/wiki-generate-RP22WP5K.js +647 -0
  370. package/dist/with-panes-W3PAZPRF.js +629 -0
  371. package/dist/worker/entry.js +324 -284
  372. package/dist/workspace-check-3764ZKC2.js +83 -0
  373. package/docs/README.md +26 -10
  374. package/docs/architecture/acp.md +179 -12
  375. package/docs/architecture/artifact-placement.md +1 -1
  376. package/docs/architecture/capacity-and-scheduling.md +7 -8
  377. package/docs/architecture/context-engine.md +350 -95
  378. package/docs/architecture/model-catalog.md +18 -11
  379. package/docs/architecture/observability.md +1 -1
  380. package/docs/architecture/pi-boundary.md +59 -6
  381. package/docs/architecture/prompt-envelope-and-tools.md +147 -39
  382. package/docs/architecture/provider-adapter-cookbook.md +2 -2
  383. package/docs/architecture/safety-model.md +18 -4
  384. package/docs/architecture/trace-store.md +2 -2
  385. package/docs/architecture/tui-design.md +41 -81
  386. package/docs/architecture/worker-dispatch-mechanics.md +9 -1
  387. package/docs/gui/README.md +69 -0
  388. package/docs/gui/boundary-doctrine.md +104 -0
  389. package/docs/gui/chat-rendering-spec.md +1440 -0
  390. package/docs/gui/cli-surface-routing.md +148 -0
  391. package/docs/gui/delivery-order.md +53 -0
  392. package/docs/gui/event-bus-coverage.md +103 -0
  393. package/docs/gui/inspector-presentation.md +71 -0
  394. package/docs/gui/parity/01-cli-surface.md +74 -0
  395. package/docs/gui/parity/02-slash-and-surfaces.md +110 -0
  396. package/docs/gui/parity/03-domains-and-plan.md +69 -0
  397. package/docs/gui/performance-baseline.md +76 -0
  398. package/docs/gui/settings-write-surface.md +267 -0
  399. package/docs/gui/workflow-coverage.md +64 -0
  400. package/docs/guide/built-in-agents.md +1 -1
  401. package/docs/guide/commands-and-modes.md +256 -99
  402. package/docs/guide/configuration-and-targets.md +485 -124
  403. package/docs/guide/configuration-reference.md +165 -82
  404. package/docs/guide/doctor.md +127 -0
  405. package/docs/guide/environment-variables.md +1 -1
  406. package/docs/guide/exit-codes-and-output.md +3 -1
  407. package/docs/guide/extensions-and-sharing.md +3 -14
  408. package/docs/guide/fleet-dispatch.md +231 -45
  409. package/docs/guide/glossary.md +1 -1
  410. package/docs/guide/installation-and-lifecycle.md +27 -16
  411. package/docs/guide/interop.md +2 -2
  412. package/docs/guide/proactive-memory.md +154 -68
  413. package/docs/guide/resource-library.md +4 -0
  414. package/docs/guide/skills-marketplace.md +8 -4
  415. package/docs/guide/slurm.md +88 -0
  416. package/docs/guide/tool-usage.md +134 -11
  417. package/docs/guide/troubleshooting.md +4 -2
  418. package/docs/process/battletest-2026-09-20-fixes.md +161 -0
  419. package/docs/process/configure-tree-proposal.md +637 -0
  420. package/docs/process/documentation-coverage.md +8 -0
  421. package/docs/process/documentation-guide.md +18 -1
  422. package/docs/process/eval-runner.md +58 -14
  423. package/docs/process/performance-methodology.md +11 -3
  424. package/docs/process/release-cut-checklist.md +29 -3
  425. package/docs/process/tool-audit-v0.4.9.md +3 -0
  426. package/examples/extensions/README.md +1 -3
  427. package/examples/extensions/lab-status/clio-coder-extension.json +1 -1
  428. package/examples/extensions/measurements/clio-coder-extension.json +1 -1
  429. package/library/registry.yaml +30 -5
  430. package/library/skills/git/fix-issue/SKILL.md +2 -1
  431. package/library/skills/git/fix-issue/plugin.json +1 -1
  432. package/library/skills/git/ship/SKILL.md +2 -1
  433. package/library/skills/git/ship/plugin.json +1 -1
  434. package/library/skills/meta/clio-coder-test/SKILL.md +5 -6
  435. package/library/skills/meta/clio-coder-test/evals.md +2 -2
  436. package/library/skills/meta/clio-coder-test/references/test-map.md +2 -2
  437. package/library/skills/registry.yaml +9 -5
  438. package/library/skills/research/slurm-jobs/SKILL.md +110 -0
  439. package/library/skills/research/slurm-jobs/evals.md +39 -0
  440. package/library/skills/research/slurm-jobs/plugin.json +23 -0
  441. package/library/skills/skill-marketplace.json +18 -2
  442. package/package.json +15 -10
  443. package/src/cli/args.ts +59 -0
  444. package/src/cli/argv.ts +7 -0
  445. package/src/cli/clio.ts +9 -1
  446. package/src/cli/configure-controls.ts +136 -0
  447. package/src/cli/configure-onboarding.ts +24 -7
  448. package/src/cli/configure-quick.ts +32 -7
  449. package/src/cli/configure-target.ts +11 -1
  450. package/src/cli/configure.ts +253 -256
  451. package/src/cli/docs-server.ts +290 -0
  452. package/src/cli/docs.ts +60 -15
  453. package/src/cli/doctor-deep.ts +126 -0
  454. package/src/cli/doctor-hpc.ts +122 -0
  455. package/src/cli/doctor-slurm.ts +130 -0
  456. package/src/cli/doctor-task-worktrees.ts +88 -0
  457. package/src/cli/doctor.ts +165 -16
  458. package/src/cli/fleet-verify.ts +3 -2
  459. package/src/cli/gui.ts +111 -0
  460. package/src/cli/index.ts +14 -4
  461. package/src/cli/library.ts +2 -7
  462. package/src/cli/modes/json-stream.ts +4 -2
  463. package/src/cli/modes/print.ts +252 -25
  464. package/src/cli/run.ts +199 -71
  465. package/src/cli/skills.ts +25 -7
  466. package/src/cli/targets.ts +87 -9
  467. package/src/cli/uninstall.ts +28 -8
  468. package/src/cli/usage.ts +2 -1
  469. package/src/cli/workspace-check.ts +71 -0
  470. package/src/core/bash-exec.ts +8 -2
  471. package/src/core/bus-events.ts +32 -3
  472. package/src/core/cache-telemetry.ts +3 -2
  473. package/src/core/compile-cache.ts +11 -1
  474. package/src/core/config.ts +59 -6
  475. package/src/core/defaults.ts +27 -5
  476. package/src/core/diagnostics.ts +25 -0
  477. package/src/core/event-bus.ts +2 -1
  478. package/src/core/gateway-routing.ts +10 -3
  479. package/src/core/git-commit-attribution.ts +2 -1
  480. package/src/core/naming-compat.ts +6 -4
  481. package/src/core/package-root.ts +0 -9
  482. package/src/core/path-canonical.ts +143 -24
  483. package/src/core/residency-target-key.ts +2 -6
  484. package/src/core/run-overrides.ts +1 -1
  485. package/src/core/settings-awareness.ts +108 -0
  486. package/src/core/settings-controls.ts +673 -0
  487. package/src/core/settings-navigation.ts +116 -0
  488. package/src/core/theme-token-hex.ts +19 -9
  489. package/src/core/turn-constraints.ts +52 -0
  490. package/src/domains/agents/builtins/scout.md +7 -17
  491. package/src/domains/agents/catalog.ts +5 -1
  492. package/src/domains/agents/extension.ts +2 -1
  493. package/src/domains/agents/registry.ts +4 -3
  494. package/src/domains/agents/result-contract.ts +132 -1
  495. package/src/domains/config/classify.ts +11 -7
  496. package/src/domains/config/extension.ts +5 -1
  497. package/src/domains/config/keybindings.ts +2 -2
  498. package/src/domains/context/codewiki/coordinator.ts +10 -0
  499. package/src/domains/context/worker/snapshot.ts +6 -3
  500. package/src/domains/dispatch/active-route-planner.ts +2 -0
  501. package/src/domains/dispatch/agent-candidates.ts +5 -1
  502. package/src/domains/dispatch/capability-match.ts +1 -1
  503. package/src/domains/dispatch/contract.ts +28 -0
  504. package/src/domains/dispatch/event-pump.ts +37 -3
  505. package/src/domains/dispatch/extension.ts +391 -48
  506. package/src/domains/dispatch/failure-classification.ts +37 -2
  507. package/src/domains/dispatch/receipt-integrity.ts +3 -0
  508. package/src/domains/dispatch/run-identity.ts +10 -3
  509. package/src/domains/dispatch/target-breaker.ts +163 -0
  510. package/src/domains/dispatch/types.ts +29 -2
  511. package/src/domains/dispatch/worker-model-loads.ts +66 -0
  512. package/src/domains/dispatch/worker-protocol.ts +20 -1
  513. package/src/domains/dispatch/worker-spawn.ts +28 -2
  514. package/src/domains/eval/artifacts/redact.ts +9 -0
  515. package/src/domains/eval/metrics/noop.ts +61 -0
  516. package/src/domains/eval/reports/junit.ts +5 -1
  517. package/src/domains/eval/reports/text.ts +7 -0
  518. package/src/domains/eval/runners/clio-run.ts +19 -8
  519. package/src/domains/eval/runners/external-command.ts +29 -4
  520. package/src/domains/eval/schema/adapter.ts +6 -2
  521. package/src/domains/eval/schema/suite.ts +2 -0
  522. package/src/domains/eval/schema/validate.ts +3 -0
  523. package/src/domains/eval/suites/run.ts +167 -26
  524. package/src/domains/evidence/detail.ts +3 -2
  525. package/src/domains/extensions/operator-runtime.ts +11 -4
  526. package/src/domains/gateway/mcp/client.ts +1 -1
  527. package/src/domains/lifecycle/doctor.ts +42 -26
  528. package/src/domains/lifecycle/migrations/2026-09-18-ollama-runtime-id.ts +38 -0
  529. package/src/domains/lifecycle/migrations/index.ts +2 -0
  530. package/src/domains/middleware/demo-guidance.ts +36 -0
  531. package/src/domains/middleware/dispatch-nudge.ts +1 -1
  532. package/src/domains/middleware/memory-intervention.ts +51 -4
  533. package/src/domains/middleware/runtime.ts +5 -4
  534. package/src/domains/middleware/skills-reminder.ts +29 -52
  535. package/src/domains/middleware/task-nudge.ts +1 -0
  536. package/src/domains/middleware/watchdog.ts +4 -0
  537. package/src/domains/observability/extension.ts +2 -1
  538. package/src/domains/observability/out-of-turn-usage.ts +3 -2
  539. package/src/domains/observability/projection.ts +3 -2
  540. package/src/domains/observability/worker-progress.ts +48 -0
  541. package/src/domains/prompts/compiler.ts +148 -52
  542. package/src/domains/prompts/contract.ts +3 -3
  543. package/src/domains/prompts/demo-guidance.ts +8 -0
  544. package/src/domains/prompts/extension.ts +12 -7
  545. package/src/domains/prompts/fragments/identity/clio.md +2 -1
  546. package/src/domains/prompts/fragments/identity/docs-routing.md +2 -0
  547. package/src/domains/prompts/fragments/identity/self-awareness.md +4 -0
  548. package/src/domains/prompts/fragments/operating/contract.md +16 -7
  549. package/src/domains/prompts/fragments/operating/delegation.md +29 -13
  550. package/src/domains/prompts/fragments/operating/skills.md +18 -10
  551. package/src/domains/prompts/fragments/operating/worker.md +2 -0
  552. package/src/domains/providers/cache-deployment.ts +45 -2
  553. package/src/domains/providers/contract.ts +52 -11
  554. package/src/domains/providers/extension.ts +230 -53
  555. package/src/domains/providers/model-discovery.ts +22 -8
  556. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +5 -7
  557. package/src/domains/providers/plugins.ts +3 -4
  558. package/src/domains/providers/probe/fingerprint.ts +2 -2
  559. package/src/domains/providers/probe/reasoning.ts +9 -16
  560. package/src/domains/providers/probe/tool-call.ts +236 -0
  561. package/src/domains/providers/registry.ts +51 -8
  562. package/src/domains/providers/runtime-resolution.ts +60 -12
  563. package/src/domains/providers/runtimes/boot-manifest.ts +1 -1
  564. package/src/domains/providers/runtimes/builtins.ts +2 -2
  565. package/src/domains/providers/runtimes/common/lmstudio-http.ts +57 -41
  566. package/src/domains/providers/runtimes/common/local-synth.ts +3 -1
  567. package/src/domains/providers/runtimes/common/ollama-model-ids.ts +11 -0
  568. package/src/domains/providers/runtimes/common/probe-helpers.ts +53 -0
  569. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +3 -1
  570. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +7 -13
  571. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +7 -17
  572. package/src/domains/providers/runtimes/local-native/llamacpp.ts +1 -0
  573. package/src/domains/providers/runtimes/local-native/ollama.ts +211 -0
  574. package/src/domains/providers/runtimes/protocol/litellm.ts +77 -65
  575. package/src/domains/providers/support.ts +1 -1
  576. package/src/domains/providers/types/local-model-quirks.ts +2 -3
  577. package/src/domains/providers/types/runtime-descriptor.ts +23 -3
  578. package/src/domains/providers/types/target-descriptor.ts +15 -3
  579. package/src/domains/resources/collision.ts +7 -2
  580. package/src/domains/resources/index.ts +1 -0
  581. package/src/domains/resources/library-actions.ts +4 -2
  582. package/src/domains/resources/library-inventory.ts +6 -2
  583. package/src/domains/resources/prompts/loader.ts +20 -7
  584. package/src/domains/resources/skills/availability.ts +56 -0
  585. package/src/domains/resources/skills/loader.ts +20 -9
  586. package/src/domains/safety/action-classifier.ts +282 -31
  587. package/src/domains/safety/audit.ts +2 -1
  588. package/src/domains/safety/autonomy.ts +54 -11
  589. package/src/domains/safety/decision-presentation.ts +17 -4
  590. package/src/domains/safety/finish-contract-registration.ts +25 -1
  591. package/src/domains/safety/finish-contract.ts +20 -5
  592. package/src/domains/safety/path-policy.ts +6 -2
  593. package/src/domains/safety/policy-engine.ts +168 -48
  594. package/src/domains/safety/protected-artifacts.ts +527 -16
  595. package/src/domains/safety/read-scope.ts +120 -0
  596. package/src/domains/safety/skill-authority.ts +52 -16
  597. package/src/domains/scheduling/cluster.ts +14 -3
  598. package/src/domains/scheduling/contract.ts +7 -0
  599. package/src/domains/scheduling/extension.ts +20 -9
  600. package/src/domains/scheduling/local-capacity.ts +160 -0
  601. package/src/domains/session/context-accounting.ts +44 -31
  602. package/src/domains/session/context-ledger.ts +10 -3
  603. package/src/domains/session/entries.ts +4 -0
  604. package/src/domains/session/history.ts +1 -1
  605. package/src/domains/session/prompt-cache.ts +1 -0
  606. package/src/domains/session/prompt-manifest.ts +3 -1
  607. package/src/domains/session/retry.ts +4 -6
  608. package/src/domains/session/task-board.ts +19 -4
  609. package/src/domains/session/tree/preview.ts +3 -2
  610. package/src/engine/acp/commands.ts +653 -0
  611. package/src/engine/acp/server.ts +639 -20
  612. package/src/engine/acp/tool-mediator.ts +30 -7
  613. package/src/engine/acp/types.ts +58 -0
  614. package/src/engine/agent.ts +55 -10
  615. package/src/engine/ai.ts +11 -2
  616. package/src/engine/api-registry.ts +5 -4
  617. package/src/engine/apis/degraded-inference.ts +243 -0
  618. package/src/engine/apis/llamacpp-residency.ts +50 -6
  619. package/src/engine/apis/lmstudio-residency.ts +3 -5
  620. package/src/engine/apis/lmstudio.ts +137 -31
  621. package/src/engine/apis/ollama-http.ts +118 -0
  622. package/src/engine/apis/ollama-native.ts +216 -97
  623. package/src/engine/apis/openai-completions.ts +191 -189
  624. package/src/engine/apis/output-budget.ts +3 -1
  625. package/src/engine/apis/residency-lock.ts +2 -1
  626. package/src/engine/apis/residency.ts +339 -89
  627. package/src/engine/apis/sampling-overrides.ts +23 -2
  628. package/src/engine/apis/types.ts +1 -2
  629. package/src/engine/claude/tool-safety.ts +30 -5
  630. package/src/engine/context.ts +13 -0
  631. package/src/engine/env-api-keys.ts +2 -1
  632. package/src/engine/gemma-channel-filter.ts +3 -2
  633. package/src/engine/instrumented-tui.ts +25 -0
  634. package/src/engine/loop-guard.ts +172 -6
  635. package/src/engine/pi-mono-names.ts +16 -0
  636. package/src/engine/prewarm.ts +44 -15
  637. package/src/engine/provider-payload.ts +52 -14
  638. package/src/engine/session.ts +4 -2
  639. package/src/engine/worker-events.ts +9 -1
  640. package/src/engine/worker-runtime.ts +269 -42
  641. package/src/engine/worker-tools.ts +8 -3
  642. package/src/entry/boot-options.ts +23 -0
  643. package/src/entry/orchestrator.ts +207 -36
  644. package/src/interactive/assistant-generation-timing.ts +52 -0
  645. package/src/interactive/chat-loop-messages.ts +4 -1
  646. package/src/interactive/chat-loop.ts +59 -9
  647. package/src/interactive/chat-panel.ts +10 -1
  648. package/src/interactive/clio-editor.ts +51 -79
  649. package/src/interactive/context-meter.ts +1 -0
  650. package/src/interactive/context-overlay.ts +21 -8
  651. package/src/interactive/cost-overlay.ts +1 -1
  652. package/src/interactive/dispatch-board.ts +39 -8
  653. package/src/interactive/editor-bash.ts +0 -34
  654. package/src/interactive/editor-rails.ts +43 -0
  655. package/src/interactive/editor-submit.ts +34 -2
  656. package/src/interactive/footer/dashboard.ts +67 -38
  657. package/src/interactive/footer/demo-hints.ts +40 -0
  658. package/src/interactive/footer/key-hints.ts +21 -0
  659. package/src/interactive/footer/notifications.ts +1 -1
  660. package/src/interactive/footer/pages.ts +486 -0
  661. package/src/interactive/footer/system-metrics.ts +147 -0
  662. package/src/interactive/footer/widgets.ts +158 -63
  663. package/src/interactive/footer-panel.ts +29 -7
  664. package/src/interactive/interactive-application.ts +109 -21
  665. package/src/interactive/interactive-event-projection.ts +6 -2
  666. package/src/interactive/interactive-presentation.ts +25 -29
  667. package/src/interactive/interactive-slash-runtime.ts +32 -18
  668. package/src/interactive/interactive-subscriptions.ts +25 -5
  669. package/src/interactive/interactive-tickers.ts +21 -5
  670. package/src/interactive/keybinding-manager.ts +9 -0
  671. package/src/interactive/overlay-frame.ts +29 -7
  672. package/src/interactive/overlay-lifecycle.ts +5 -3
  673. package/src/interactive/overlay-model-selectors.ts +4 -0
  674. package/src/interactive/overlay-permission-lifecycle.ts +6 -5
  675. package/src/interactive/overlays/ask-user.ts +103 -110
  676. package/src/interactive/overlays/help-reference.ts +1 -0
  677. package/src/interactive/overlays/message-picker.ts +3 -29
  678. package/src/interactive/overlays/session-selector.ts +3 -2
  679. package/src/interactive/overlays/settings-sections.ts +2 -30
  680. package/src/interactive/overlays/settings.ts +310 -607
  681. package/src/interactive/permission-hint.ts +3 -3
  682. package/src/interactive/permission-overlay.ts +45 -27
  683. package/src/interactive/renderers/doctor-report.ts +43 -0
  684. package/src/interactive/renderers/tool-execution.ts +87 -62
  685. package/src/interactive/renderers/worker-entry.ts +76 -3
  686. package/src/interactive/side-question.ts +3 -1
  687. package/src/interactive/slash-commands.ts +78 -23
  688. package/src/interactive/startup-background.ts +131 -0
  689. package/src/interactive/startup-diagnostics.ts +16 -0
  690. package/src/interactive/status/state-machine.ts +16 -3
  691. package/src/interactive/status/types.ts +2 -0
  692. package/src/interactive/status/verbs.ts +1 -1
  693. package/src/interactive/terminal-lease.ts +26 -22
  694. package/src/interactive/theme/components.ts +1 -1
  695. package/src/interactive/theme/rules.ts +1 -1
  696. package/src/interactive/theme/tokens.ts +16 -10
  697. package/src/interactive/transcript-detail.ts +4 -0
  698. package/src/interactive/turn-context.ts +56 -20
  699. package/src/interactive/turn-middleware.ts +57 -9
  700. package/src/interactive/turn-prewarm.ts +121 -18
  701. package/src/interactive/turn-recovery.ts +10 -8
  702. package/src/interactive/turn-runtime.ts +74 -29
  703. package/src/interactive/turn-state.ts +3 -0
  704. package/src/interactive/welcome-art.ts +36 -0
  705. package/src/interactive/welcome-dashboard.ts +209 -49
  706. package/src/interactive/worker-replay.ts +4 -0
  707. package/src/interactive/worker-stream.ts +17 -2
  708. package/src/tools/agent-tools.ts +22 -1
  709. package/src/tools/builtin-tool-catalog.ts +2 -2
  710. package/src/tools/codewiki/code-nav.ts +1 -1
  711. package/src/tools/codewiki/shared.ts +39 -1
  712. package/src/tools/compete-worktrees.ts +8 -91
  713. package/src/tools/context/docs-engine.ts +44 -12
  714. package/src/tools/context/index.ts +126 -22
  715. package/src/tools/context/library.ts +1 -1
  716. package/src/tools/context/surface.ts +12 -7
  717. package/src/tools/core-bootstrap.ts +3 -0
  718. package/src/tools/dispatch-runner.ts +18 -0
  719. package/src/tools/dispatch-schema.ts +187 -206
  720. package/src/tools/edit.ts +46 -42
  721. package/src/tools/file-mutation-queue.ts +25 -26
  722. package/src/tools/gateway/clio-context-surface.ts +1 -1
  723. package/src/tools/gateway/index.ts +7 -3
  724. package/src/tools/gateway/mcp-capabilities.ts +5 -3
  725. package/src/tools/grep.ts +14 -2
  726. package/src/tools/ls.ts +1 -4
  727. package/src/tools/monitor.ts +14 -1
  728. package/src/tools/observation.ts +1 -3
  729. package/src/tools/path-utils.ts +51 -18
  730. package/src/tools/process-lease.ts +99 -0
  731. package/src/tools/read.ts +1 -1
  732. package/src/tools/registry.ts +71 -9
  733. package/src/tools/task-worktree.ts +296 -17
  734. package/src/tools/tasks.ts +29 -7
  735. package/src/tools/worker-evidence.ts +60 -1
  736. package/src/tools/worktree-root.ts +252 -0
  737. package/src/tools/write.ts +34 -30
  738. package/src/worker/entry.ts +18 -1
  739. package/src/worker/protocol.ts +54 -1
  740. package/src/worker/spec-contract.ts +22 -2
  741. package/dist/acp-ZWZCPS2A.js +0 -130
  742. package/dist/agents-LYSOWZUE.js +0 -150
  743. package/dist/auth-WBQGKWQ5.js +0 -551
  744. package/dist/background-BUMOBAQN.js +0 -37
  745. package/dist/builtins-ODRJOEDI.js +0 -22
  746. package/dist/chunk-2DRRZ57Q.js +0 -571
  747. package/dist/chunk-2JBZYUPY.js +0 -105
  748. package/dist/chunk-2VBWFXYE.js +0 -198
  749. package/dist/chunk-2X2R3UTH.js +0 -1018
  750. package/dist/chunk-32KJPXAM.js +0 -75
  751. package/dist/chunk-37LW32LZ.js +0 -32
  752. package/dist/chunk-3A3CUMKA.js +0 -54
  753. package/dist/chunk-3AND2EFU.js +0 -215
  754. package/dist/chunk-3RDHGNU7.js +0 -647
  755. package/dist/chunk-3SUDBGEI.js +0 -1323
  756. package/dist/chunk-3TQN67I2.js +0 -396
  757. package/dist/chunk-3U4BL2EV.js +0 -103
  758. package/dist/chunk-3UQADNG2.js +0 -302
  759. package/dist/chunk-434LRQ6Z.js +0 -13441
  760. package/dist/chunk-4ATBOFRP.js +0 -7802
  761. package/dist/chunk-4DNL43EZ.js +0 -139
  762. package/dist/chunk-4HFJKRGZ.js +0 -5250
  763. package/dist/chunk-555E2WVV.js +0 -322
  764. package/dist/chunk-5GZICIYO.js +0 -462
  765. package/dist/chunk-5PHVPU4G.js +0 -160
  766. package/dist/chunk-5RTEFNBP.js +0 -197
  767. package/dist/chunk-64XJW7NT.js +0 -380
  768. package/dist/chunk-6TKOFFGE.js +0 -1058
  769. package/dist/chunk-6UJ7RDI7.js +0 -1143
  770. package/dist/chunk-7FBCRWVT.js +0 -1801
  771. package/dist/chunk-7JSOSVLP.js +0 -283
  772. package/dist/chunk-7N3OLLSL.js +0 -637
  773. package/dist/chunk-7QQRPB2E.js +0 -915
  774. package/dist/chunk-A6DULIMH.js +0 -986
  775. package/dist/chunk-AB3QXXBC.js +0 -123
  776. package/dist/chunk-ACCECAH4.js +0 -49
  777. package/dist/chunk-AM6CEP2K.js +0 -2120
  778. package/dist/chunk-AUHVBIDW.js +0 -19
  779. package/dist/chunk-AY4XE6GN.js +0 -665
  780. package/dist/chunk-BBA2TAWV.js +0 -667
  781. package/dist/chunk-BFPHMSK7.js +0 -169
  782. package/dist/chunk-BMNVVKEW.js +0 -604
  783. package/dist/chunk-CKK25WN3.js +0 -72
  784. package/dist/chunk-CTGZCEI6.js +0 -33
  785. package/dist/chunk-DIAJYJYG.js +0 -446
  786. package/dist/chunk-DVNAPPXU.js +0 -27
  787. package/dist/chunk-DXVMLM3Z.js +0 -92
  788. package/dist/chunk-E3LEPLQ2.js +0 -68
  789. package/dist/chunk-EHZRAB4U.js +0 -63
  790. package/dist/chunk-EM2DIQAJ.js +0 -179
  791. package/dist/chunk-EM2WNQS2.js +0 -93
  792. package/dist/chunk-ETF4ROKH.js +0 -595
  793. package/dist/chunk-F2YM3JY4.js +0 -22513
  794. package/dist/chunk-FEBQWHJT.js +0 -1023
  795. package/dist/chunk-FPS4R2RN.js +0 -1975
  796. package/dist/chunk-GD55RTIW.js +0 -33
  797. package/dist/chunk-GJDRMBDI.js +0 -573
  798. package/dist/chunk-GREYLTZ5.js +0 -658
  799. package/dist/chunk-H2WSCZZT.js +0 -238
  800. package/dist/chunk-H6IUCY6Q.js +0 -117
  801. package/dist/chunk-H72DCH3E.js +0 -563
  802. package/dist/chunk-H7TXJR23.js +0 -705
  803. package/dist/chunk-HBJQQTKM.js +0 -40
  804. package/dist/chunk-HCVKSGNZ.js +0 -990
  805. package/dist/chunk-HVCAY2FH.js +0 -67
  806. package/dist/chunk-I47EJPYL.js +0 -1377
  807. package/dist/chunk-IALGWTLO.js +0 -36
  808. package/dist/chunk-IALZJE37.js +0 -1710
  809. package/dist/chunk-IC7JXLOM.js +0 -1577
  810. package/dist/chunk-IOSVTTCD.js +0 -108
  811. package/dist/chunk-IPTPMLA6.js +0 -475
  812. package/dist/chunk-IZZI3SKQ.js +0 -128
  813. package/dist/chunk-JABWPKFY.js +0 -27
  814. package/dist/chunk-JIYWMQZ5.js +0 -175
  815. package/dist/chunk-JKU34ACI.js +0 -693
  816. package/dist/chunk-JOBN2YQQ.js +0 -176
  817. package/dist/chunk-JOL2QRLE.js +0 -152
  818. package/dist/chunk-JTR3VSV3.js +0 -44
  819. package/dist/chunk-JU6MAMRJ.js +0 -362
  820. package/dist/chunk-JURMQWVJ.js +0 -15
  821. package/dist/chunk-K2BLQC5E.js +0 -262
  822. package/dist/chunk-K3XN4LZ4.js +0 -402
  823. package/dist/chunk-KIVFXGBM.js +0 -688
  824. package/dist/chunk-KKRXONXG.js +0 -43
  825. package/dist/chunk-KOAHT3N2.js +0 -395
  826. package/dist/chunk-KP5BPXR3.js +0 -73
  827. package/dist/chunk-KQ6IDQIB.js +0 -39
  828. package/dist/chunk-KRJQG47M.js +0 -1289
  829. package/dist/chunk-KW6OJ7IY.js +0 -221
  830. package/dist/chunk-L3NBWLSN.js +0 -314
  831. package/dist/chunk-L4RUTLRL.js +0 -59
  832. package/dist/chunk-LGTVWPRN.js +0 -47
  833. package/dist/chunk-LSQW6KZO.js +0 -200
  834. package/dist/chunk-LTR5QCLS.js +0 -446
  835. package/dist/chunk-LWJYOHT3.js +0 -165
  836. package/dist/chunk-M6YLF66Z.js +0 -2687
  837. package/dist/chunk-MJ4QEJVT.js +0 -185
  838. package/dist/chunk-MO65K5CH.js +0 -1148
  839. package/dist/chunk-MTOZEQHL.js +0 -637
  840. package/dist/chunk-MZDPF35R.js +0 -45
  841. package/dist/chunk-MZKYVIWW.js +0 -188
  842. package/dist/chunk-NBPA5QM6.js +0 -386
  843. package/dist/chunk-NMBEW4PP.js +0 -688
  844. package/dist/chunk-NPLLK3HO.js +0 -3610
  845. package/dist/chunk-NSYGPIVW.js +0 -39
  846. package/dist/chunk-NXTV5OI5.js +0 -1020
  847. package/dist/chunk-NYDG4QP4.js +0 -689
  848. package/dist/chunk-OA2GDACN.js +0 -146
  849. package/dist/chunk-PJI57EC6.js +0 -236
  850. package/dist/chunk-PJJBUGMR.js +0 -4484
  851. package/dist/chunk-PNJE7JPS.js +0 -50
  852. package/dist/chunk-PP23PZEV.js +0 -1347
  853. package/dist/chunk-PPIFDSBK.js +0 -409
  854. package/dist/chunk-PTFISXQO.js +0 -319
  855. package/dist/chunk-QB33Z5S7.js +0 -1865
  856. package/dist/chunk-QGNII5VC.js +0 -110
  857. package/dist/chunk-QH3ZTUOA.js +0 -113
  858. package/dist/chunk-QI72X67S.js +0 -481
  859. package/dist/chunk-QJMRYTCX.js +0 -56
  860. package/dist/chunk-QKHZZFKH.js +0 -98
  861. package/dist/chunk-RDKX2PME.js +0 -66
  862. package/dist/chunk-RL7LJYN4.js +0 -66
  863. package/dist/chunk-RPMNIFRY.js +0 -65
  864. package/dist/chunk-RQROVOV3.js +0 -670
  865. package/dist/chunk-S34A7BSP.js +0 -97
  866. package/dist/chunk-SJETVJHX.js +0 -119
  867. package/dist/chunk-SJMNU4ZS.js +0 -634
  868. package/dist/chunk-SL2RDHKO.js +0 -19
  869. package/dist/chunk-SLLG2G44.js +0 -85
  870. package/dist/chunk-SQAZN2V3.js +0 -2744
  871. package/dist/chunk-SQBT46OF.js +0 -814
  872. package/dist/chunk-SRCEQKQS.js +0 -165
  873. package/dist/chunk-TCUOGIL2.js +0 -52
  874. package/dist/chunk-TIWPKCVO.js +0 -42
  875. package/dist/chunk-U44YYLVV.js +0 -1529
  876. package/dist/chunk-UIU7MGZ3.js +0 -486
  877. package/dist/chunk-USBBEKHW.js +0 -177
  878. package/dist/chunk-VHKTOLEW.js +0 -1416
  879. package/dist/chunk-VPWGADBG.js +0 -3151
  880. package/dist/chunk-VQD7NH7Z.js +0 -356
  881. package/dist/chunk-VWFCAK34.js +0 -697
  882. package/dist/chunk-W5RM7YAH.js +0 -78
  883. package/dist/chunk-W72LLZAV.js +0 -243
  884. package/dist/chunk-WGRDABW7.js +0 -207
  885. package/dist/chunk-WWRV5RJI.js +0 -165
  886. package/dist/chunk-XCUDZQLX.js +0 -195
  887. package/dist/chunk-XFLSL7BT.js +0 -386
  888. package/dist/chunk-XJZEDCNT.js +0 -391
  889. package/dist/chunk-XLLEL3K7.js +0 -709
  890. package/dist/chunk-XNZWWDC3.js +0 -686
  891. package/dist/chunk-XRECG65F.js +0 -308
  892. package/dist/chunk-XTQ7MEJG.js +0 -457
  893. package/dist/chunk-XW2UZICE.js +0 -372
  894. package/dist/chunk-Y3M2T5RO.js +0 -891
  895. package/dist/chunk-YGDMBK7O.js +0 -567
  896. package/dist/chunk-YJCCMYYT.js +0 -125
  897. package/dist/chunk-YPQOPFP7.js +0 -797
  898. package/dist/chunk-YQYINEJI.js +0 -132
  899. package/dist/chunk-ZF6CV4WZ.js +0 -5614
  900. package/dist/chunk-ZKJU55MX.js +0 -326
  901. package/dist/chunk-ZKQ63XZ5.js +0 -1196
  902. package/dist/chunk-ZKVMDNAN.js +0 -962
  903. package/dist/chunk-ZST3FRCV.js +0 -132
  904. package/dist/clio-JUDCLNHC.js +0 -26
  905. package/dist/clio-context-tools-FT672MNZ.js +0 -136
  906. package/dist/code-nav-7OVCTP2Z.js +0 -688
  907. package/dist/compile-cache-WJEPUZEJ.js +0 -16
  908. package/dist/components-OZXZMDWU.js +0 -674
  909. package/dist/config-P3ZQVF63.js +0 -275
  910. package/dist/config-graph-GKAOBAS5.js +0 -160
  911. package/dist/configure-25LRYZJG.js +0 -86
  912. package/dist/context-72VQV7JX.js +0 -73
  913. package/dist/context-COWRWXP3.js +0 -286
  914. package/dist/context-WB3D474G.js +0 -344
  915. package/dist/context-clear-Y4LYMWC6.js +0 -192
  916. package/dist/context-index-W6A4V7OC.js +0 -120
  917. package/dist/context-map-DKL3QT6D.js +0 -555
  918. package/dist/context-working-set-TMZYVC7A.js +0 -1560
  919. package/dist/data-tool-KMBWKKWR.js +0 -2987
  920. package/dist/detail-4GLROGY5.js +0 -123
  921. package/dist/dispatch-runner-TR3LBP5P.js +0 -2446
  922. package/dist/docs-ZK777W2G.js +0 -101
  923. package/dist/doctor-WC4OV2OB.js +0 -814
  924. package/dist/eval-FUNWJNUJ.js +0 -5050
  925. package/dist/eval-inventory-CX24K2JT.js +0 -260
  926. package/dist/evals-L73EBHSU.js +0 -104
  927. package/dist/evidence-AVJ2RTHX.js +0 -392
  928. package/dist/evidence-P4NZOAK7.js +0 -233
  929. package/dist/evidence-Y55WKYHH.js +0 -246
  930. package/dist/evolve-MAWKRYWF.js +0 -617
  931. package/dist/extensions-PYQH3H47.js +0 -308
  932. package/dist/fleet-M4H2QBWT.js +0 -268
  933. package/dist/fleet-ULBXXRDR.js +0 -923
  934. package/dist/fleet-commands-7NNC4JZU.js +0 -76
  935. package/dist/fleet-decisions-EHEY7KPU.js +0 -52
  936. package/dist/fleet-graph-LQ2AHZT3.js +0 -136
  937. package/dist/fleet-inspect-5IGBIIYZ.js +0 -312
  938. package/dist/fleet-new-RCKGSRDV.js +0 -48
  939. package/dist/fleet-preflight-UTTNOKMG.js +0 -27
  940. package/dist/fleet-validate-YGILJKA6.js +0 -91
  941. package/dist/fleet-verify-AUWTCDKR.js +0 -210
  942. package/dist/fleet-view-TGUFCY5A.js +0 -127
  943. package/dist/init-GFN2Z7NF.js +0 -333
  944. package/dist/install-3RZDDP23.js +0 -13
  945. package/dist/install-6PIF6F6W.js +0 -19
  946. package/dist/interop-EF5JUWWK.js +0 -246
  947. package/dist/inventory-I6VJDDYF.js +0 -127
  948. package/dist/library-3J5IO2OJ.js +0 -75
  949. package/dist/library-IJTOFTDS.js +0 -307
  950. package/dist/library-Z3KZSHPE.js +0 -492
  951. package/dist/library-import-IMKFLDHX.js +0 -183
  952. package/dist/library-inventory-CQP5D6GU.js +0 -56
  953. package/dist/library-validation-33UTX7AI.js +0 -42
  954. package/dist/mcp-5FWZKUS6.js +0 -26
  955. package/dist/memory-36CWN67Y.js +0 -520
  956. package/dist/models-KQ6PQJJQ.js +0 -302
  957. package/dist/monitor-XX6ZD6KC.js +0 -785
  958. package/dist/orchestrator-SK6HDAOP.js +0 -42067
  959. package/dist/panes-L27QRXUH.js +0 -74
  960. package/dist/panes-LXZIWNOZ.js +0 -103
  961. package/dist/paths-7DJDU4P4.js +0 -67
  962. package/dist/preload-K2TDYI4Y.js +0 -124
  963. package/dist/registry-DESGAXWK.js +0 -11
  964. package/dist/reset-73VU3XNT.js +0 -345
  965. package/dist/resources-3BYJYVYL.js +0 -181
  966. package/dist/run-AR7PY6GW.js +0 -896
  967. package/dist/run-script-H2KUDIII.js +0 -41
  968. package/dist/settings-3VMBMWID.js +0 -72
  969. package/dist/share-HVWH4FPF.js +0 -293
  970. package/dist/skills-5TYEY75Q.js +0 -100
  971. package/dist/skills-eval-CK3MD63Z.js +0 -1083
  972. package/dist/skills-inventory-KSFYG3I6.js +0 -138
  973. package/dist/slash-commands-DMVHML7P.js +0 -98
  974. package/dist/steer-XCD6V3EW.js +0 -77
  975. package/dist/support-JAZL6VBR.js +0 -38
  976. package/dist/system-3TDQRMZZ.js +0 -116
  977. package/dist/targets-EZKHAYRN.js +0 -1117
  978. package/dist/tasks-SNEFHWYW.js +0 -36
  979. package/dist/terminal-lease-BNLFA4OF.js +0 -419
  980. package/dist/tools-7IM6BDCE.js +0 -28
  981. package/dist/trace-C3MBGD4S.js +0 -524
  982. package/dist/tree-sitter-AQUUOSYM.js +0 -4673
  983. package/dist/tui-primitives-36BY2774.js +0 -18
  984. package/dist/uninstall-WWLOSZ42.js +0 -432
  985. package/dist/upgrade-ETK2JNSJ.js +0 -297
  986. package/dist/usage-S2HOB7BZ.js +0 -1065
  987. package/dist/verifiers-QDTEVH7R.js +0 -632
  988. package/dist/verify-SUKUK6XM.js +0 -31
  989. package/dist/version-RFPKO6T7.js +0 -21
  990. package/dist/web/client/assets/abnfDiagram-VCTEODGH-BznNOe_I.js +0 -1
  991. package/dist/web/client/assets/architecture-7GRP2DOG-BQO9DL_y.js +0 -1
  992. package/dist/web/client/assets/architectureDiagram-5GKGNRK7-CKPbdvyx.js +0 -36
  993. package/dist/web/client/assets/blockDiagram-I7D4REHJ-prINbpbM.js +0 -129
  994. package/dist/web/client/assets/c4Diagram-7LVT6UL2-DkVRKtyU.js +0 -38
  995. package/dist/web/client/assets/channel-c4EeUUqA.js +0 -1
  996. package/dist/web/client/assets/chunk-4HAMMTFA-CV0Z1ApC.js +0 -62
  997. package/dist/web/client/assets/chunk-75Z2AOVW-D34Nohxq.js +0 -2
  998. package/dist/web/client/assets/chunk-DU6HZSFF-Das_cS-O.js +0 -125
  999. package/dist/web/client/assets/chunk-F27PBJKO-CmRojxkG.js +0 -1
  1000. package/dist/web/client/assets/chunk-GMAD6QVW-ClYZmc73.js +0 -72
  1001. package/dist/web/client/assets/chunk-GVQU2GXP-B2BiHFt-.js +0 -1
  1002. package/dist/web/client/assets/chunk-IMKFNOWR-BGApZ8nP.js +0 -231
  1003. package/dist/web/client/assets/chunk-L3NEJ4N5-DIzCgpkY.js +0 -1
  1004. package/dist/web/client/assets/chunk-OSK3NFVY-BPT-yePv.js +0 -10
  1005. package/dist/web/client/assets/chunk-P2QGCYS3-BC1WTc2t.js +0 -1
  1006. package/dist/web/client/assets/chunk-POPQ4Y6H-BSjzBmZU.js +0 -1
  1007. package/dist/web/client/assets/chunk-PWAF6VOD-BIjLs86Z.js +0 -1
  1008. package/dist/web/client/assets/chunk-SHT3W25Y-CduDz2cm.js +0 -168
  1009. package/dist/web/client/assets/chunk-SVP7TREG-XUn4pPAP.js +0 -88
  1010. package/dist/web/client/assets/chunk-TICWLB2K-DcBy2DKy.js +0 -206
  1011. package/dist/web/client/assets/classDiagram-ZZMXUADV-C0HR7YKN.js +0 -1
  1012. package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-C0HR7YKN.js +0 -1
  1013. package/dist/web/client/assets/cynefin-OW5HDTMX-BecPbyM6.js +0 -1
  1014. package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-BzMzFwyT.js +0 -62
  1015. package/dist/web/client/assets/dagre-GXQ25YYZ-CAWJmRMG.js +0 -4
  1016. package/dist/web/client/assets/diagram-S7CK7UJ4--lp0ALmn.js +0 -30
  1017. package/dist/web/client/assets/diagram-UQ7AKVKN-gKUnsjcj.js +0 -41
  1018. package/dist/web/client/assets/diagram-VSXAHHWV-BoN5D1Gh.js +0 -3
  1019. package/dist/web/client/assets/diagram-VX7I27RA-BMtuswQ6.js +0 -24
  1020. package/dist/web/client/assets/diagram-Z3DM3KII-DtU8LXrA.js +0 -24
  1021. package/dist/web/client/assets/ebnfDiagram-PWID7BFC-DDcnv9BH.js +0 -1
  1022. package/dist/web/client/assets/erDiagram-RLTQ6QDP-DvRb4iDL.js +0 -99
  1023. package/dist/web/client/assets/eventmodeling-NTZA5JFV-01h4SbTc.js +0 -1
  1024. package/dist/web/client/assets/flowDiagram-HODETNUW-Bll_YZ6T.js +0 -1
  1025. package/dist/web/client/assets/framework-YGoR34M4.js +0 -9
  1026. package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-DdFZ9hvH.js +0 -292
  1027. package/dist/web/client/assets/gitGraph-4MIJSDKK-DjD_AAMj.js +0 -1
  1028. package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CDyN9n2u.js +0 -106
  1029. package/dist/web/client/assets/index-CVcy0FAn.js +0 -75
  1030. package/dist/web/client/assets/index-Dsi52apB.css +0 -1
  1031. package/dist/web/client/assets/info-A6RAGUB7-C_XK8Hq0.js +0 -1
  1032. package/dist/web/client/assets/infoDiagram-27XIBGKW-DIe4tJ1i.js +0 -2
  1033. package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-CVl5unKI.js +0 -70
  1034. package/dist/web/client/assets/journeyDiagram-3NMN7TZE-CPEB1Vt8.js +0 -139
  1035. package/dist/web/client/assets/kanban-definition-UXKFOSKX-j-9WXjYQ.js +0 -89
  1036. package/dist/web/client/assets/line-BIDAcEtX.js +0 -1
  1037. package/dist/web/client/assets/mermaid-parser.core-Ux4vssh0.js +0 -7
  1038. package/dist/web/client/assets/mermaid.core-CDuwVKeh.js +0 -44
  1039. package/dist/web/client/assets/mindmap-definition-YA3MSWOX-5MlQEeQ6.js +0 -96
  1040. package/dist/web/client/assets/packet-AYTQ26CC-DRO66c9Q.js +0 -1
  1041. package/dist/web/client/assets/pegDiagram-XKGWAZYB-BakZnSjM.js +0 -1
  1042. package/dist/web/client/assets/pie-WAS4IAKB-BEzcmhz8.js +0 -1
  1043. package/dist/web/client/assets/pieDiagram-E7YTZNPT-DpmqgoPt.js +0 -39
  1044. package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-DuMPwwV2.js +0 -7
  1045. package/dist/web/client/assets/radar-RG4KPBEZ-Djm3oXl5.js +0 -1
  1046. package/dist/web/client/assets/railroad-74A4TZTK-Cpvkwsao.js +0 -1
  1047. package/dist/web/client/assets/railroad-abnf-HS5TGJTU-CpRQ3ruG.js +0 -1
  1048. package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-1Rm5a5eJ.js +0 -1
  1049. package/dist/web/client/assets/railroad-peg-WCYAUIDC-C8344cTh.js +0 -1
  1050. package/dist/web/client/assets/railroadDiagram-O6MQD6OU-CgMS4B6R.js +0 -1
  1051. package/dist/web/client/assets/requirementDiagram-BXWQKSXE-CX5eoNdN.js +0 -84
  1052. package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-CODBX2N3.js +0 -40
  1053. package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-eUhhF8OR.js +0 -162
  1054. package/dist/web/client/assets/stateDiagram-D77RDMKH-vR6l0NC2.js +0 -1
  1055. package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-BYUm8jLY.js +0 -1
  1056. package/dist/web/client/assets/swimlanes-42K2YHIH-v9Tw_zX7.js +0 -1
  1057. package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-B2jdCvhD.js +0 -8
  1058. package/dist/web/client/assets/timeline-definition-24CTP7MA-DxianbhU.js +0 -120
  1059. package/dist/web/client/assets/treeView-Q6P3EWNA-DLxnZb9R.js +0 -1
  1060. package/dist/web/client/assets/treemap-WGGIJYW6-I7UnZ6xJ.js +0 -1
  1061. package/dist/web/client/assets/vennDiagram-4TSXK5OY-Ar7M8Mrj.js +0 -34
  1062. package/dist/web/client/assets/wardley-WFR3VGLG-B8ZSHeDu.js +0 -1
  1063. package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-Qks2FmIn.js +0 -78
  1064. package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BBBjRtiE.js +0 -7
  1065. package/dist/web/client/index.html +0 -6
  1066. package/dist/web/ops-worker.js +0 -37
  1067. package/dist/web/reads-worker.js +0 -1726
  1068. package/dist/web/server.js +0 -8499
  1069. package/dist/web-EMGUGGEI.js +0 -13
  1070. package/dist/web-fetch-6BRRVQON.js +0 -805
  1071. package/dist/wiki-generate-XHSJTDOP.js +0 -627
  1072. package/dist/with-panes-Z6BTEHMZ.js +0 -628
  1073. package/evals/README.md +0 -9
  1074. package/evals/behavioral-corpus-grader.mjs +0 -236
  1075. package/evals/behavioral-machinery-baseline.json +0 -2276
  1076. package/evals/behavioral-machinery-driver.ts +0 -250
  1077. package/evals/behavioral-machinery-support.ts +0 -254
  1078. package/evals/behavioral-machinery.yaml +0 -614
  1079. package/evals/behavioral-model-negative-control.yaml +0 -69
  1080. package/evals/behavioral-model.yaml +0 -482
  1081. package/evals/fixtures/behavioral-facts.txt +0 -3
  1082. package/evals/fixtures/behavioral-main.ts +0 -7
  1083. package/evals/fixtures/decoy/note.txt +0 -2
  1084. package/evals/fixtures/docs-retrieval.json +0 -102
  1085. package/evals/fixtures/private/credentials.txt +0 -1
  1086. package/evals/fixtures/scalar-decision.json +0 -17
  1087. package/evals/fixtures/scout-citation-pipeline.json +0 -55
  1088. package/evals/fixtures/source-explanation.json +0 -74
  1089. package/evals/fixtures/tool-arguments.json +0 -18
  1090. package/evals/fixtures/tool-surface/read.txt +0 -4
  1091. package/evals/fixtures/tool-surface/subdir/keep.txt +0 -1
  1092. package/evals/no-edit-memory-grader.mjs +0 -149
  1093. package/evals/scalar-decision-grader.py +0 -41
  1094. package/evals/scalar-decision-machinery.ts +0 -145
  1095. package/evals/source-explanation-grader.mjs +0 -118
  1096. package/evals/tool-surface-grader.mjs +0 -53
  1097. package/evals/tool-surface-model.yaml +0 -274
  1098. package/evals/tracked-metrics-baseline.yaml +0 -229
  1099. package/evals/tracked-metrics-grader.mjs +0 -129
  1100. package/src/cli/web.ts +0 -79
  1101. package/src/domains/providers/runtimes/local-native/ollama-native.ts +0 -122
  1102. /package/dist/assets/{web-notices → gui-notices}/@hono__node-server-LICENSE +0 -0
  1103. /package/dist/assets/{web-notices → gui-notices}/hono-LICENSE +0 -0
  1104. /package/dist/{web → gui}/client/THIRD_PARTY_LICENSES.md +0 -0
  1105. /package/dist/{web → gui}/client/assets/arc-Pry-7G1_.js +0 -0
  1106. /package/dist/{web → gui}/client/assets/array-BifhSqXX.js +0 -0
  1107. /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
  1108. /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
  1109. /package/dist/{web → gui}/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +0 -0
  1110. /package/dist/{web → gui}/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +0 -0
  1111. /package/dist/{web → gui}/client/assets/chunk-FOHPRMQF-CoA4358r.js +0 -0
  1112. /package/dist/{web → gui}/client/assets/chunk-JWPE2WC7-DVXcaiue.js +0 -0
  1113. /package/dist/{web → gui}/client/assets/chunk-XXDRQBXY-DqAYeljN.js +0 -0
  1114. /package/dist/{web → gui}/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +0 -0
  1115. /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
  1116. /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
  1117. /package/dist/{web → gui}/client/assets/cose-bilkent-JH36ORCC-CVh1icwb.js +0 -0
  1118. /package/dist/{web → gui}/client/assets/cytoscape.esm-c2aL46s-.js +0 -0
  1119. /package/dist/{web → gui}/client/assets/dagre-C-rnJpZF.js +0 -0
  1120. /package/dist/{web → gui}/client/assets/defaultLocale-BFoDCU3G.js +0 -0
  1121. /package/dist/{web → gui}/client/assets/dist-v5Q1xZ2K.js +0 -0
  1122. /package/dist/{web → gui}/client/assets/graphlib-DS17s2tU.js +0 -0
  1123. /package/dist/{web → gui}/client/assets/init-C-OQMol4.js +0 -0
  1124. /package/dist/{web → gui}/client/assets/katex-ZlcWpGUi.js +0 -0
  1125. /package/dist/{web → gui}/client/assets/linear-SzVmGSw4.js +0 -0
  1126. /package/dist/{web → gui}/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
  1127. /package/dist/{web → gui}/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
  1128. /package/dist/{web → gui}/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
  1129. /package/dist/{web → gui}/client/assets/ordinal-BDEzSJ7C.js +0 -0
  1130. /package/dist/{web → gui}/client/assets/path-fybaL0A-.js +0 -0
  1131. /package/dist/{web → gui}/client/assets/prism-bash-D6zCJ74D.js +0 -0
  1132. /package/dist/{web → gui}/client/assets/prism-c-04YixN25.js +0 -0
  1133. /package/dist/{web → gui}/client/assets/prism-clike-DapgWyxx.js +0 -0
  1134. /package/dist/{web → gui}/client/assets/prism-core-BtsZdCS6.js +0 -0
  1135. /package/dist/{web → gui}/client/assets/prism-cpp-C-lJbC-6.js +0 -0
  1136. /package/dist/{web → gui}/client/assets/prism-css-CPgOzxXp.js +0 -0
  1137. /package/dist/{web → gui}/client/assets/prism-diff-BF8m0_mq.js +0 -0
  1138. /package/dist/{web → gui}/client/assets/prism-docker-DkT6yOFj.js +0 -0
  1139. /package/dist/{web → gui}/client/assets/prism-fortran-Be5x3y1V.js +0 -0
  1140. /package/dist/{web → gui}/client/assets/prism-go-C_8qAH5n.js +0 -0
  1141. /package/dist/{web → gui}/client/assets/prism-ini-BESK3y0r.js +0 -0
  1142. /package/dist/{web → gui}/client/assets/prism-javascript-BnO-swvr.js +0 -0
  1143. /package/dist/{web → gui}/client/assets/prism-json-Dp_-W-Hv.js +0 -0
  1144. /package/dist/{web → gui}/client/assets/prism-jsx-D-D0NWtC.js +0 -0
  1145. /package/dist/{web → gui}/client/assets/prism-julia-DIjOgiAV.js +0 -0
  1146. /package/dist/{web → gui}/client/assets/prism-latex-DNMbqcH_.js +0 -0
  1147. /package/dist/{web → gui}/client/assets/prism-makefile-CRKWLQ8l.js +0 -0
  1148. /package/dist/{web → gui}/client/assets/prism-markdown-C0FPJ1Iz.js +0 -0
  1149. /package/dist/{web → gui}/client/assets/prism-markup-Cp04rIa1.js +0 -0
  1150. /package/dist/{web → gui}/client/assets/prism-matlab-D-nk08al.js +0 -0
  1151. /package/dist/{web → gui}/client/assets/prism-python-CfiSVtM6.js +0 -0
  1152. /package/dist/{web → gui}/client/assets/prism-r-QmNGR8LX.js +0 -0
  1153. /package/dist/{web → gui}/client/assets/prism-rust-Bu9N8X3N.js +0 -0
  1154. /package/dist/{web → gui}/client/assets/prism-shell-session-Be4UuYoM.js +0 -0
  1155. /package/dist/{web → gui}/client/assets/prism-sql-CYhVDMEE.js +0 -0
  1156. /package/dist/{web → gui}/client/assets/prism-toml-DKb54GAT.js +0 -0
  1157. /package/dist/{web → gui}/client/assets/prism-tsx-p6J2Kc_4.js +0 -0
  1158. /package/dist/{web → gui}/client/assets/prism-typescript-BMqONzxf.js +0 -0
  1159. /package/dist/{web → gui}/client/assets/prism-yaml-C0JHu8gr.js +0 -0
  1160. /package/dist/{web → gui}/client/assets/purify.es-ChwZkWde.js +0 -0
  1161. /package/dist/{web → gui}/client/assets/rolldown-runtime-hePW80VL.js +0 -0
  1162. /package/dist/{web → gui}/client/assets/rough.esm-Dy-Kn_BL.js +0 -0
  1163. /package/dist/{web → gui}/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -0
  1164. /package/dist/{web → gui}/client/assets/src-B6xuSHsQ.js +0 -0
  1165. /package/dist/{web → gui}/client/clio-coder-logo.webp +0 -0
  1166. /package/dist/{web → gui}/client/icon-192.png +0 -0
  1167. /package/dist/{web → gui}/client/icon-512.png +0 -0
  1168. /package/dist/{web → gui}/client/manifest.webmanifest +0 -0
  1169. /package/dist/{web → gui}/client/offline.css +0 -0
  1170. /package/dist/{web → gui}/client/offline.html +0 -0
  1171. /package/dist/{web → gui}/client/offline.js +0 -0
  1172. /package/dist/{web → gui}/client/sw.js +0 -0
@@ -6,6 +6,20 @@ Clio's engine is built on the pi SDK (see [docs/architecture/pi-boundary.md](../
6
6
 
7
7
  Source of truth: `src/core/defaults.ts`, `src/core/config.ts`, `src/domains/providers/**`, `src/cli/configure.ts`, `src/cli/targets.ts`, `src/cli/models.ts`, and `src/cli/auth.ts`.
8
8
 
9
+ ### Start here
10
+
11
+ | If you want to | Go to |
12
+ | --- | --- |
13
+ | Get a first target working | [First-run flow](#first-run-flow), then `clio-coder configure` |
14
+ | Know what to set for a local server | [Recommended defaults](#recommended-defaults) |
15
+ | Look up one setting's default and validation | [Settings inventory](#settings-inventory) |
16
+ | Look up a flag, environment variable, or project file | [Configuration reference](configuration-reference.md) |
17
+ | Fix a target that will not connect | [Troubleshooting checklist](#troubleshooting-checklist) |
18
+ | Sign in to a subscription or OAuth provider | [Auth](#auth) |
19
+
20
+ The rest of this page is ordered from setup to reference. Deep mechanics sit in
21
+ collapsed sections; the tables stay open.
22
+
9
23
  ---
10
24
 
11
25
  ## Directory locations
@@ -71,7 +85,7 @@ Quick Connect detects LM Studio, Ollama, and LiteLLM where their discovery APIs
71
85
  are available; other servers use the OpenAI- or Anthropic-compatible protocol.
72
86
  It checks live model discovery, without sending a generation request. An
73
87
  unreachable endpoint or empty model list stays in setup with a useful error.
74
- Use **Settings → Targets & Auth → Add a target** for browser sign-in,
88
+ Use **Settings → Connections → Add a target** for browser sign-in,
75
89
  subscriptions, AWS credentials, explicit runtime selection, or a server that
76
90
  needs a manually entered model id.
77
91
 
@@ -96,7 +110,7 @@ These aim to make one coding session useful on a laptop or a shared endpoint:
96
110
  | --- | --- |
97
111
  | Connection | One endpoint and model for chat and the fleet default on first setup. No separate model assignments to learn. |
98
112
  | Autonomy | `auto-edit`: workspace edits are allowed; unrecognized commands need approval. The safety policy still applies. |
99
- | Parallel work | One worker at a time, so a single local model or shared endpoint is not flooded by default. Explicit `auto` still allows four workers. |
113
+ | Parallel work | `auto`: local workers are sized from usable CPUs, available memory, and any cgroup memory limit, up to eight. Per-endpoint slot limits still keep a single local model or shared endpoint from being flooded. Set a number for an exact limit. |
100
114
  | Worker permissions | Deny worker tool requests that need approval (`deny`), returning a structured denial so the worker can continue. This works across native and external runtimes. Interactive operator escalation is available for mediated runtimes in Settings. |
101
115
  | Cost | $5 tracked session budget. This depends on reported usage and known pricing; it is not a provider billing cap. |
102
116
  | Thinking | Low for chat, off for workers; actual support depends on the chosen model. |
@@ -109,8 +123,8 @@ These aim to make one coding session useful on a laptop or a shared endpoint:
109
123
 
110
124
  Newly initialized settings contain these values. Existing explicit values are
111
125
  preserved; omitted keys inherit the current shipped defaults. For this release,
112
- the changed defaults are worker concurrency `1`, prewarm `false`, and smooth
113
- streaming `auto`. See the
126
+ the changed default is worker concurrency `auto`; an explicit
127
+ `fleet.concurrency` already in `settings.yaml` is kept. See the
114
128
  [full settings reference](configuration-reference.md) for every key.
115
129
 
116
130
  ## Advanced settings
@@ -118,29 +132,56 @@ streaming `auto`. See the
118
132
  Choose **Settings**, or run `clio-coder configure --settings`, to open the full
119
133
  configuration menu:
120
134
 
121
- - **Targets & Auth**: add, edit, rename, or remove a target; choose chat, fleet,
122
- and background-memory defaults. Add and Edit share the full target wizard.
123
- Adding a target preserves existing defaults. Editing preserves its other
124
- capabilities, gateway settings, and role-specific model overrides. Rename
125
- updates the target name and its references together.
126
- - **Models & Thinking**, **Chat Defaults**, **Fleet**, **Permissions & Autonomy**,
127
- **Panes & Layout**, and **Skills & Extensions** cover common settings.
128
- - **Diagnostics** shows paths, runs the read-only doctor, and displays saved YAML.
129
- - **All Settings** opens a validated editor for every settings key, including
130
- fleet profiles, routing, memory, compaction, plugins, hooks, and keybindings.
131
-
132
- Escape returns to the parent menu, which remembers the selected row. Each
133
- accepted setting is saved immediately; leaving another field does not undo
134
- previously accepted settings. Clear a model override or list by deleting its
135
- prefilled text before accepting it. The full target wizard instead saves at
136
- **Save target** after review. Pasted keys wait for Save; browser sign-in stores
137
- credentials when sign-in succeeds. Optional delegation review follows Save.
135
+ The configure menu and TUI `/settings` use the same sections, in the same order:
136
+
137
+ | Section | What belongs here | Direct link |
138
+ | --- | --- | --- |
139
+ | **Connections** | Providers, endpoints, credentials, and available models | `targets` |
140
+ | **Chat** | Chat model, thinking, favorites, output tokens, and retries | `chat` |
141
+ | **Fleet** | Worker models, profiles, routing, concurrency, retries, and run limits | `fleet` |
142
+ | **Context & Memory** | Compaction, working set, context limits, and proactive memory | `context` |
143
+ | **Permissions & Limits** | Autonomy, worker approvals, external-agent governance, spending, and safety review | `safety` |
144
+ | **Appearance** | Display mode, streaming, notifications, panes, and keyboard shortcuts | `interface` |
145
+ | **Integrations** | Project skills, external agents, plugins, library, and Git attribution | `integrations` |
146
+ | **Advanced** | Diagnostics, configuration files, and the full settings editor | `advanced` |
147
+
148
+ Use `clio-coder configure --section <name>` or `/settings <name>` to open an
149
+ area directly. Previous names such as `models`, `permissions`, `panes`, and
150
+ `skills` remain aliases for their new homes. `/settings` groups related controls
151
+ within each section; `/` filters by label, description, or settings path.
152
+
153
+ Connections manages the provider inventory. Chat, Fleet, and Context & Memory
154
+ choose which connection and model their work uses. Adding a connection preserves
155
+ existing defaults. Editing preserves its other capabilities, gateway settings,
156
+ and role-specific model overrides. Rename updates references together.
157
+
158
+ Configure puts common actions first. **All controls in this section** opens the
159
+ complete shared catalog, grouped by purpose and searchable by name or settings
160
+ path. Each control explains its meaning, current value, shipped default, and
161
+ when changes take effect. Both interfaces validate edits against the existing
162
+ settings schema.
163
+
164
+ Collections such as keybinding overrides, remote nodes, and rosters accept JSON;
165
+ Connections and Fleet also retain their guided actions. Library remote confirmation
166
+ remains owned by the library's trust flow. Advanced opens the validated full-file
167
+ editor and diagnostics; the TUI links to those commands. The launcher retains a
168
+ Diagnostics shortcut, and `configure --section diagnostics` still opens that screen
169
+ directly.
170
+
171
+ Escape returns to the parent menu, which remembers the selected row. Common
172
+ actions save when accepted; the complete catalog asks you to review and save
173
+ each edit. Leaving another field does not undo previously saved settings. Clear
174
+ a model override or list by deleting its prefilled text before accepting it.
175
+
176
+ The full target wizard instead saves at **Save target** after review. Pasted keys
177
+ wait for Save; browser sign-in stores credentials when sign-in succeeds. Optional
178
+ delegation review follows Save.
138
179
 
139
180
  Open a section directly, or open the full editor:
140
181
 
141
182
  ```bash
142
183
  clio-coder configure --section targets
143
- clio-coder configure --section models
184
+ clio-coder configure --section chat
144
185
  clio-coder configure --edit
145
186
  ```
146
187
 
@@ -151,16 +192,41 @@ never replace the saved file. A save keeps the previous file at
151
192
  `settings.yaml.bak` and refuses to overwrite concurrent changes. `--edit` also
152
193
  works when malformed settings prevent the regular menu from loading.
153
194
 
154
- These commands edit user settings. Approved project settings and session
155
- choices can override them; use `clio-coder config inspect` to see the active
156
- sources. Without a terminal, `--section` prints its values and exits; `--json`
157
- and `--list` inspect settings and runtimes without initializing an installation.
158
- Dumb terminals retain the numbered prompt fallback; Quick Connect requires a
159
- regular interactive terminal. Use explicit flags for unattended target setup.
195
+ Configure saves user defaults globally. The TUI offers session-only or global
196
+ saves for live controls and identifies changes that require a restart.
197
+
198
+ Clio can explain these settings herself: ask “What can you do without asking?”
199
+ or “What are my worker limits?” Her `context(scope="settings")` tool reads the
200
+ running session's effective configuration, including overrides, and returns
201
+ specific `/settings` and configure commands.
202
+
203
+ Every response includes the chat and fleet default routes, configured profiles and
204
+ agent bindings, and target runtime IDs; these are configuration facts, not backend
205
+ health checks. Multiword searches rank partial matches. It reports configured
206
+ ceilings, not remaining spending or call counts. It omits credentials, endpoint
207
+ URLs, external-agent commands, and arbitrary free-form values. This tool is
208
+ read-only; Clio guides you through changes and does not raise permissions or
209
+ budgets to work around a denial. Workers without an authoritative settings
210
+ snapshot say so instead of assuming the parent's settings.
211
+
212
+ The shipped `auto-edit` level allows workspace edits, recognized checks, and
213
+ routine delegation. Unfamiliar commands, reads outside the permitted workspace
214
+ roots, declared outward actions, and larger dispatch plans need approval.
215
+ Worker mode `deny` only denies calls that need approval; permitted worker work
216
+ continues. Choose `escalate` when you want supported worker runtimes to ask you,
217
+ with a timeout and explicit fallback. `full-auto` skips autonomy approvals but
218
+ still passes through the safety policy. No level disables hard safety blocks.
219
+
220
+ Approved project settings and session choices can override them; use
221
+ `clio-coder config inspect` to see the active sources. Without a terminal,
222
+ `--section` prints its values and exits; `--json` and `--list` inspect settings
223
+ and runtimes without initializing an installation. Dumb terminals retain the
224
+ numbered prompt fallback; Quick Connect requires a regular interactive terminal.
225
+ Use explicit flags for unattended target setup.
160
226
 
161
227
  Start one local runtime and register exactly one target first. Clio integrates with popular local inference engines:
162
228
  - **[LM Studio](https://lmstudio.ai):** A desktop application to run LLMs locally. Target runtime ID: `lmstudio`.
163
- - **[Ollama](https://ollama.com):** A lightweight, extensible framework for building and running LLMs locally. Target runtime ID: `ollama-native`.
229
+ - **[Ollama](https://ollama.com):** A lightweight, extensible framework for building and running LLMs locally. Target runtime ID: `ollama`.
164
230
  - **[llama.cpp](https://github.com/ggerganov/llama.cpp):** A minimal C/C++ implementation for local LLM inference. Target runtime ID: `llamacpp`.
165
231
  - **[vLLM](https://github.com/vllm-project/vllm):** A high-throughput and memory-efficient LLM serving engine. Target runtime ID: `vllm`.
166
232
  - **[SGLang](https://github.com/sgl-project/sglang):** A fast serving framework for large language models. Target runtime ID: `sglang`.
@@ -179,7 +245,7 @@ Common local runtime IDs and default URLs are:
179
245
  | Runtime | Target runtime id | Example local URL |
180
246
  | --- | --- | --- |
181
247
  | LM Studio | `lmstudio` | `http://127.0.0.1:1234` |
182
- | Ollama | `ollama-native` | `http://127.0.0.1:11434` |
248
+ | Ollama | `ollama` | `http://127.0.0.1:11434` |
183
249
  | llama.cpp server | `llamacpp` | `http://127.0.0.1:8080` |
184
250
  | vLLM | `vllm` | `http://127.0.0.1:8000` |
185
251
  | SGLang | `sglang` | `http://127.0.0.1:30000` |
@@ -245,9 +311,10 @@ Terminology used in code and receipts:
245
311
  | Background target | Optional proactive-memory model target. Unset means deterministic rules-only memory. |
246
312
  | Worker target | Fleet dispatch target. HTTP/native engine-backed, or one of the sanctioned subscription worker runtimes such as `claude-sdk`, `claude-code`, or `antigravity-code`. |
247
313
 
248
- This abbreviated example uses the current version-2 information architecture.
249
- The [settings inventory](#settings-inventory) below lists every accepted leaf
250
- and its shipped default.
314
+ This abbreviated example illustrates the version-2 schema organization across targets, chat, fleet, context, safety, interface, and integrations. The [settings inventory](#settings-inventory) below details every accepted leaf key and its shipped default.
315
+
316
+ <details>
317
+ <summary>A complete annotated `settings.yaml`</summary>
251
318
 
252
319
  ```yaml
253
320
  version: 2
@@ -279,7 +346,7 @@ fleet:
279
346
  rosters: {}
280
347
  agentProfiles: {}
281
348
  nodes: []
282
- concurrency: 1
349
+ concurrency: auto
283
350
 
284
351
  context:
285
352
  workingSet:
@@ -330,12 +397,19 @@ integrations:
330
397
  commitAttribution: true
331
398
  ```
332
399
 
400
+ </details>
401
+
333
402
  Target capability overrides may include `chat`, `tools`, `toolCallFormat`, `reasoning`, `thinkingFormat`, `structuredOutputs`, `vision`, `audio`, `embeddings`, `rerank`, `fim`, `contextWindow`, and `maxTokens`.
334
403
 
335
404
  ### LiteLLM gateways
336
405
 
337
- Register LiteLLM with its first-class runtime so discovery reads
338
- `/v1/model/info` rather than treating routed names as bare OpenAI models. For a
406
+ Register LiteLLM with its first-class runtime. The authenticated `/v1/models`
407
+ listing controls selectable aliases. `/v1/model/info` (with `/model/info` fallback)
408
+ enriches matching aliases with capability and deployment metadata. An explicitly
409
+ empty inference listing stays empty; admin metadata cannot broaden it. If the
410
+ inference listing is unavailable, detail rows are unverified hints, not a healthy
411
+ catalog. A restricted `/health/liveliness` endpoint does not invalidate a successful
412
+ authenticated listing. For a
339
413
  gateway where placement matters, publish one deterministic `node/model` name
340
414
  per deployment instead of task categories such as `chat` or `code`:
341
415
 
@@ -344,7 +418,7 @@ targets:
344
418
  - id: ai-gateway
345
419
  runtime: litellm
346
420
  url: http://gateway.example:4000
347
- defaultModel: dynamo/qwen3.8-27b
421
+ defaultModel: node-1/qwen3.8-27b
348
422
  auth:
349
423
  apiKeyEnvVar: CLIO_AI_GATEWAY_KEY
350
424
  litellm:
@@ -361,47 +435,180 @@ Clio adds the `clio-coder` request tag and forwards its stable session id by
361
435
  default. Explicit `x-litellm-*` headers on the target or request take
362
436
  precedence. Set `sendSessionId: false` when the gateway must not correlate calls.
363
437
  The timeout values and `numRetries` become LiteLLM request headers and override
364
- the proxy's defaults only for this target. Clio disables the OpenAI SDK's
365
- client-side retry layer on LiteLLM requests. A failed interactive LiteLLM call
366
- also bypasses Clio's transient retry ladder even when `chat.retry` is enabled:
367
- the provider error names the selected route and tells the operator to choose a
368
- different one with `/model`. Configure `numRetries: 0` and no server fallback
369
- maps when `node/model` is a placement guarantee. Context-overflow compaction is
370
- still a local correction, not a route substitution.
371
-
372
- When the gateway reports these fields, Clio records LiteLLM's selected model group, physical model,
373
- sanitized upstream host, fallback/retry counts, and proxy timing in the session
374
- and worker receipt. A nonzero fallback or retry is also announced in the live
375
- transcript, making server-policy drift visible. Self-describing physical routes
376
- are summarized in probe diagnostics instead of expanding into a giant list of
377
- tautological mappings. If a genuine alias has multiple deployments, discovered
378
- capabilities are the conservative intersection and numerical limits are the
379
- smallest limits published by every deployment, so routing cannot select a
380
- weaker backend than Clio planned for. If `/v1/model/info` omits a capability,
381
- Clio does not invent it; that includes structured-output support.
382
-
383
- Upstream `model_info.runtime` declarations may identify the thinking-control dialect of a routed model. Clio accepts only recognized declarations shared by every deployment of that alias; unknown or mixed declarations remain unguessed. A resolved LM Studio dialect uses its explicit off effort, while llama.cpp uses template controls. This metadata does not turn the target into a native management endpoint: LiteLLM continues to own authentication, routing, loading and eviction. Thinking off is a request to the selected runtime/model, not evidence that the server complied or that every route has been live-validated.
438
+ the proxy's defaults only for this target.
439
+
440
+ Clio disables the OpenAI SDK's client-side retry layer on LiteLLM requests. A
441
+ failed interactive LiteLLM call also bypasses Clio's transient retry ladder even
442
+ when `chat.retry` is enabled: the provider error names the selected route and tells
443
+ the operator to choose a different one with `/model`. Configure `numRetries: 0`
444
+ and no server fallback maps when `node/model` is a placement guarantee.
445
+ Context-overflow compaction is still a local correction, not a route substitution.
446
+
447
+ When the gateway reports these fields, Clio records LiteLLM's selected model
448
+ group, physical model, sanitized upstream host, fallback/retry counts, and proxy
449
+ timing in the session and worker receipt. A nonzero fallback or retry is also
450
+ announced in the live transcript, making server-policy drift visible.
451
+ Self-describing physical routes are summarized in probe diagnostics instead of
452
+ expanding into a giant list of tautological mappings.
453
+
454
+ If a genuine alias has multiple deployments, discovered capabilities are the
455
+ conservative intersection and numerical limits are the smallest limits published
456
+ by every deployment, so routing cannot select a weaker backend than Clio planned
457
+ for. If `/v1/model/info` omits a capability, Clio does not invent it; that includes
458
+ structured-output support.
459
+
460
+ Upstream `model_info.runtime` declarations may identify the thinking-control
461
+ dialect of a routed model. Clio accepts only recognized declarations shared by
462
+ every deployment of that alias; unknown or mixed declarations remain unguessed.
463
+ A resolved LM Studio dialect uses its explicit off effort, while llama.cpp uses
464
+ template controls. This metadata does not turn the target into a native management
465
+ endpoint: LiteLLM continues to own authentication, routing, loading and eviction.
466
+ Thinking off is a request to the selected runtime/model, not evidence that the
467
+ server complied or that every route has been live-validated.
468
+
469
+ ### Current user and machine awareness
470
+
471
+ At session startup Clio includes the local OS account, machine hostname, and
472
+ workspace in the model’s prompt context. This lets it answer where it is running
473
+ without invoking `whoami` or a shell. The account name is not a verified personal
474
+ identity, and the machine is the Clio host, not the inference server. No new
475
+ configure question, stored profile, or settings migration is required.
476
+
477
+ ### Local inference and server management
478
+
479
+ Clio connects to running inference servers. The server remains responsible for
480
+ model downloads, runtime/driver installation, GPU placement, KV allocation, MTP,
481
+ and scheduling. Clio’s target configuration selects a protocol and model, applies
482
+ supported request controls, and uses available metadata for planning and admission.
483
+ It does not guarantee that a model fits in VRAM or that a requested knob took effect.
484
+
485
+ | Runtime | Chat transport | Additional controls and limits |
486
+ | --- | --- | --- |
487
+ | `ollama` | Native HTTP `/api/chat` | Native thinking, sampling, `num_ctx`, and owned-load keep-alive; `/api/ps` reports residency. |
488
+ | `lmstudio` | Shared OpenAI-compatible chat | REST catalog and optional explicit load settings; loaded-instance resolution. Use `reasoning_effort` for thinking control. |
489
+ | `llamacpp` | Shared OpenAI-compatible chat | Router residency, context/slot metadata and `cache_prompt`; server flags determine KV layout, MTP and parallelism. |
490
+ | `lemonade` | Shared OpenAI-compatible chat | Advertised model labels distinguish chat, tools, reasoning, vision, embedding and reranking support. Configure the backend and model loading in Lemonade. |
491
+ | `litellm` | Shared OpenAI-compatible chat | Gateway aliases and capability metadata; upstream loading and eviction remain the gateway/server’s responsibility. |
492
+
493
+ The hidden `lemonade-anthropic` runtime exposes Lemonade’s Anthropic-compatible
494
+ surface when that protocol is needed. Generic runtime defaults do not establish
495
+ capabilities for every model in a server’s catalog. Use a live tool/reasoning check
496
+ when those abilities matter to a workflow.
497
+
498
+ `lifecycle: user-managed` disables Clio’s explicit load/unload management. A chat
499
+ request may still trigger the server’s own automatic load policy. LM Studio REST
500
+ load options cover only the supported fields in the target schema; they do not
501
+ promise SDK-only GPU guardrails or KV quantization controls. If explicit loading
502
+ is required, unavailable management metadata is an error; otherwise Clio can
503
+ attempt inference despite a temporary metadata outage. Capacity-specific load
504
+ failures may trigger eviction of Clio-owned instances and bounded restoration on
505
+ failure. Authentication or invalid-option errors do not authorize eviction.
384
506
 
385
507
  ### `maxConcurrentRequests`
386
508
 
387
509
  `maxConcurrentRequests` is a per-target integer of at least 1, validated with the rest of the target block, and it is the operator's override for how many requests the inference endpoint behind that target can serve at once. It is not a settings-file default and has no shipped value, so it does not appear in the settings inventory below.
388
510
 
389
- Set it only when discovery is wrong. Clio resolves the limit in this order: this override; then a `parallelSlots` count cached on the target's probe result; then a persisted discovery result that is still fresh and matches the runtime; then one slot for any other `local-native` runtime; then no invented endpoint bound for a cloud runtime, LiteLLM, vLLM, or SGLang. llama.cpp discovery reads `total_slots` from the router's `/props`, falls back to the selected worker's `/props?model=<id>` when the router reports none, and falls back again to the `--parallel` argv on the selected `/v1/models` entry. LM Studio reads `config.parallel` off the loaded instance and otherwise reports one; Ollama reads `OLLAMA_NUM_PARALLEL` from the environment the Clio process can see and otherwise reports one.
511
+ Set it only when discovery is wrong. Clio resolves the limit in this order:
512
+
513
+ 1. this override;
514
+ 2. a `parallelSlots` count cached on the target's probe result;
515
+ 3. a persisted discovery result that is still fresh and matches the runtime;
516
+ 4. one slot for any other `local-native` runtime;
517
+ 5. no invented endpoint bound at all for a cloud runtime, LiteLLM, vLLM, or SGLang.
518
+
519
+ Per-runtime discovery differs. llama.cpp reads `total_slots` from the router's `/props`, falls back to the selected worker's `/props?model=<id>` when the router reports none, and falls back again to the `--parallel` argv on the selected `/v1/models` entry. LM Studio reads `config.parallel` off the loaded instance and otherwise reports one.
520
+
521
+ Ollama exposes no native API slot count, so Clio conservatively reports one. Set `maxConcurrentRequests` explicitly when the daemon supports more; the client process’s `OLLAMA_NUM_PARALLEL` does not describe the server.
390
522
 
391
523
  The limit is keyed on the endpoint rather than the target, so two targets pointed at the same normalized URL share it. Raising it above what the server will actually serve does not create capacity; it removes the refusal that would have told you the server was full. See [capacity-and-scheduling.md](../architecture/capacity-and-scheduling.md) for the admission model and the exact denial text.
392
524
 
393
525
  ### The `local-native` tier
394
526
 
395
- Three behaviors in this release are gated on a runtime's tier being `local-native` rather than on a target id or a server name, so it is worth stating what the tier is. It is a property of the runtime descriptor (`RuntimeTier` in `src/domains/providers/types/runtime-descriptor.ts`), and the runtimes that carry it are `llamacpp` with its completion, embedding, rerank, and Anthropic-surface variants, `lmstudio`, `ollama-native`, `vllm`, `sglang`, and the two `lemonade` surfaces. Everything else is `cloud`, `protocol`, or `subscription`.
527
+ Three behaviors in this release are gated on a runtime's tier being `local-native` rather than on a target id or a server name, so it is worth stating what the tier is. It is a property of the runtime descriptor (`RuntimeTier` in `src/domains/providers/types/runtime-descriptor.ts`), and the runtimes that carry it are `llamacpp` with its completion, embedding, rerank, and Anthropic-surface variants, `lmstudio`, `ollama`, `vllm`, `sglang`, and the two `lemonade` surfaces. Everything else is `cloud`, `protocol`, or `subscription`.
396
528
 
397
529
  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:
398
530
 
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.
531
+ - **Pre-warm** requires `chat.prewarm: true` and a verified deployment binding. Pinned llama.cpp deployments require a loaded, idle server. Local LM Studio deployments require an additional `cache.warm.startup: true` opt-in and verified residency/capacity, including when reached through LiteLLM. 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.
400
532
  - **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.
401
533
  - **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).
402
534
 
403
535
  The tool-prose-loop detector is keyed on the same tier, for the same reason: narrating a tool call instead of emitting one is a behavior of open-weight models served locally, and a list of server names would have left an Ollama or vLLM run with no cutoff at all.
404
536
 
537
+ ### Startup preparation
538
+
539
+ The terminal paints the welcome and accepts input before session initialization finishes. Submitted text waits for the normal safety, tools, and session setup. Routine initialization stays silent; failures remain visible. Opening a home, system, or shared root folder requires confirmation before project settings load. This confirmation applies to that launch and does not grant trust to project settings or hooks.
540
+
541
+ After the interactive frame commits and the session is idle, Clio prepares connections for up to four distinct local worker endpoints from the fleet default, profiles, and rosters. These are passive metadata requests, made sequentially with a 1.5-second timeout each. Cloud endpoints, remote-node profiles, and the main agent's endpoint are excluded. Headless commands and worker processes never run this interactive preparation. Node's compile cache is published while the parent is alive so worker processes can reuse it before the parent exits.
542
+
543
+ For an already loaded local worker model with a verified `cache.deployment` binding, opt into one tiny inference warm-up per endpoint per launch:
544
+
545
+ ```yaml
546
+ # Inside the worker target's existing cache configuration:
547
+ cache:
548
+ # Keep the verified deployment binding here.
549
+ warm:
550
+ startup: true
551
+ ```
552
+
553
+ `startup` defaults to false. The optional request has no system prompt, history, or tools, allows one output token, and is capped at 256 estimated input tokens and two seconds. Lower `maxInputTokens` or `maxDurationMs` bounds are honored. Paid routes, busy endpoints, and unknown or unsupported deployments remain ineligible. Usage is recorded under `prewarm`, including unknown usage when a request fails. This warms the serving path; it does not claim to cache a future worker's task-specific prompt. Server-side cancellation is backend-dependent, so even a bounded client request can briefly contend with a worker dispatched afterward.
554
+
555
+ ### Local LM Studio warming through LiteLLM
556
+
557
+ Bind the target to one local deployment; Clio checks the gateway's authenticated route inventory before warming. Model requests remain opt-in:
558
+
559
+ ```yaml
560
+ # Inside the existing target (runtime: litellm):
561
+ cache:
562
+ deployment:
563
+ backend: lmstudio
564
+ controlUrl: http://192.168.1.20:1234
565
+ model: my-local-model
566
+ gatewayDeploymentId: deployment-id-from-litellm
567
+ warm:
568
+ startup: true
569
+ maxInputTokens: 20000
570
+ maxDurationMs: 30000
571
+ cooldownMs: 60000
572
+ ```
573
+
574
+ The main agent also requires `chat.prewarm: true`. After a one-second startup delay, warming stands down for an editor draft, active turn, or dispatch. If the verified local model is absent, an opted-in tiny request may wake it. Once resident, Clio requires at least two configured LM Studio parallel slots before sending its actual instruction/tool prefix with one output token. The input budget includes tools; the default 8192-token limit may be too small for a full Clio prompt. Warm requests disable LiteLLM retries and fallbacks. Direct `runtime: lmstudio` targets use the same binding without `gatewayDeploymentId`.
575
+
576
+ LM Studio does not expose an idle-slot API. Configured parallelism and Clio's endpoint leases reduce contention but cannot detect all external traffic or guarantee immediate foreground service. Submitting detaches an already-running warm; it does not await it, and server-side loading/prefill may still finish. Warm-up never gates the welcome or hydration. Headless runs and worker processes do not schedule main-session warming. The interactive worker preparation described above may warm separately configured local bindings, but never the main deployment, including aliases that share its bound endpoint.
577
+
578
+ Results and skip reasons are written silently to `$XDG_STATE_HOME/clio-coder/startup/YYYY-MM-DD.jsonl` (normally `~/.local/state/clio-coder/startup/`), including before a session exists. Usage remains attributed to `prewarm`. A missing provider cache-read count is displayed as unknown, not a cold-cache claim. Old session records retain their original recorded verdicts.
579
+
580
+ ### Ollama runtime id
581
+
582
+ The canonical runtime id is `ollama`. The former `ollama-native` id remains an accepted alias scheduled for removal in v0.7.0. `--runtime ollama-native` still resolves and prints one deprecation warning naming `ollama`, a `settings.yaml` that still names `ollama-native` keeps loading unchanged, and `clio-coder upgrade` rewrites persisted targets to the canonical id. An unknown runtime id in `configure --runtime` or `targets convert --runtime` names the closest registered id when one is near.
583
+
584
+ ### Ollama context window (`ollama.numCtx`)
585
+
586
+ An `ollama` target sends no `num_ctx` by default, so Ollama opens the model at whatever window its server is configured for (`OLLAMA_CONTEXT_LENGTH`, a `num_ctx` in the Modelfile, or the server default). Clio reads that window back from `/api/ps` once the model is resident and plans against it. Before the model is resident, Clio plans against the smaller of the model maximum and 131,072 tokens. To ask for a specific window instead, set it on the target:
587
+
588
+ ```yaml
589
+ targets:
590
+ - id: local-ollama
591
+ runtime: ollama
592
+ url: http://127.0.0.1:11434
593
+ defaultModel: qwen3:30b-a3b-instruct-2507-q4_K_M
594
+ ollama:
595
+ numCtx: 65536
596
+ ```
597
+
598
+ `numCtx` is a positive integer. When it is set, every chat request carries `options.num_ctx`, and Clio plans against that number capped by the model maximum from `/api/show` and by any smaller `capabilities.contextWindow`. `clio-coder targets --probe` then prints `ctx 65536 (num_ctx; serving 32768; model max 262144)` until the first request reloads the model.
599
+
600
+ Ollama reloads a model whenever a request asks for a `num_ctx` different from the one it is loaded at. On a server other clients share, that reload evicts the window they opened it at, and the next request from them reloads it back, so two clients with different windows will thrash the model. Leave `numCtx` unset on a shared server and raise `OLLAMA_CONTEXT_LENGTH` there instead.
601
+
602
+ ### Ollama residency and release on exit
603
+
604
+ Requests for managed Ollama loads that Clio can own and release send `keep_alive: -1` to keep them warm between turns. Pre-existing, user-managed, and otherwise unowned models retain the server’s normal keep-alive policy; a failed preflight does not grant pinning authority. Ollama places and fits models itself, so Clio never unloads a model it did not load: models the operator or another client loaded, and models that were already resident when Clio first used them, stay loaded. When an interactive session switches models, Clio releases the model it loaded earlier before the next turn.
605
+
606
+ When the process exits, Clio sends `keep_alive: 0` for each model this process loaded and pinned, so a finished `clio-coder run` does not hold its weights after it ends. A model counts as loaded by Clio when it was absent from `/api/ps` before Clio's first request for it and that request then answered. The release runs on every coordinated exit: a headless run that completes or fails, `run --timeout` (exit 124), SIGINT, SIGTERM, interactive quit, and a `clio-coder acp` session whose client closes the connection. It is bounded at two seconds, and a server that is unreachable or slow leaves the model loaded without changing the exit code. A target with `lifecycle: user-managed` is observe-only, so nothing is released there.
607
+
608
+ Dispatched workers do not release on their own exit, because the next sequential dispatch would reload the model and a parallel sibling would lose it mid-turn. When a worker's request loads a model, the worker reports the target and model ids to the orchestrator over its control lane, and the orchestrator releases that model when it exits. Until then the model stays warm for later dispatches, and no chat or dispatch in the same session evicts it. The orchestrator reaches the server through its own settings for that target. A worker on a fleet node whose target URL is a loopback address loaded the model on that node, which the orchestrator cannot reach, so that model is not released. Fleet nodes observe residency by default and report nothing unless the node sets `residency: manage`.
609
+
610
+ A process that crashes or is killed with SIGKILL releases nothing, and its models stay pinned until something unloads them, for example `ollama stop <model>`. A model whose first request never answered, such as a load that failed or was interrupted before the first response, is not recorded as Clio's and is not released either.
611
+
405
612
  ### LM Studio transport and settings
406
613
 
407
614
  The canonical runtime id is `lmstudio`. The former `lmstudio-native` id remains an accepted alias scheduled for removal in v0.7.0,
@@ -416,8 +623,12 @@ use the native REST API, with `GET /api/v1/models` as the preferred catalog
416
623
  Leave `lmstudio.load` absent to preserve LM Studio's just-in-time loading behavior. Clio then observes
417
624
  residency but sends no explicit load request. When `lmstudio.load` is present and the selected model
418
625
  is unloaded, Clio calls `POST /api/v1/models/load` with `echo_load_config: true`; LM Studio documents
419
- the load operation at <https://lmstudio.ai/docs/developer/rest/load>. Clio sends only fields that the
420
- target explicitly configured:
626
+ the load operation at <https://lmstudio.ai/docs/developer/rest/load>.
627
+
628
+ <details>
629
+ <summary>Which settings key maps to which LM Studio load and chat field</summary>
630
+
631
+ Clio sends only fields that the target explicitly configured:
421
632
 
422
633
  | Settings key | REST load field |
423
634
  | --- | --- |
@@ -427,6 +638,16 @@ target explicitly configured:
427
638
  | `numExperts` | `num_experts` |
428
639
  | `offloadKvCacheToGpu` | `offload_kv_cache_to_gpu` |
429
640
 
641
+ The request settings map as follows:
642
+
643
+ | Settings key | Chat request behavior |
644
+ | --- | --- |
645
+ | `ttlSeconds` | Sends `ttl`, using LM Studio's auto-eviction TTL (<https://lmstudio.ai/docs/developer/core/ttl-and-auto-evict>). |
646
+ | `draftModel` | Sends `draft_model` on the OpenAI-compatible chat request (<https://lmstudio.ai/docs/developer/openai-compat/chat-completions>). |
647
+ | `reasoning` | `off` sends `reasoning_effort: none`; `on` sends `low`; a literal `low`, `medium`, or `high` outranks the thinking dial but is still clamped to the efforts the model advertises (a model reporting only `[off, on]` receives `low`); `auto` maps the active Clio thinking level. |
648
+
649
+ </details>
650
+
430
651
  Loaded instances are addressed by their instance ids when Clio calls
431
652
  `POST /api/v1/models/unload` (<https://lmstudio.ai/docs/developer/rest/unload>). Clio records the
432
653
  instance id returned by each successful load in this process and refuses to unload every other
@@ -436,14 +657,6 @@ the model key or one of its loaded instance ids. The probe reports both forms an
436
657
  instance's echoed load configuration from the native model listing
437
658
  (<https://lmstudio.ai/docs/developer/rest/list>).
438
659
 
439
- The request settings map as follows:
440
-
441
- | Settings key | Chat request behavior |
442
- | --- | --- |
443
- | `ttlSeconds` | Sends `ttl`, using LM Studio's auto-eviction TTL (<https://lmstudio.ai/docs/developer/core/ttl-and-auto-evict>). |
444
- | `draftModel` | Sends `draft_model` on the OpenAI-compatible chat request (<https://lmstudio.ai/docs/developer/openai-compat/chat-completions>). |
445
- | `reasoning` | `off` sends `reasoning_effort: none`; `on` sends `low`; a literal `low`, `medium`, or `high` outranks the thinking dial but is still clamped to the efforts the model advertises (a model reporting only `[off, on]` receives `low`); `auto` maps the active Clio thinking level. |
446
-
447
660
  Clio maps the active thinking level through the model family's runtime resolver map. If the model family specifies an explicit effort map (such as mapping `max` to `xhigh`), Clio sends that exact effort; otherwise it falls back to the default `off` to `none`, `minimal`/`low` to `low`, `medium` to `medium`, and `high`/`xhigh`/`max` to `high`. For model families that declare a `none` or `always-on` reasoning mechanism, the `reasoning_effort` field is omitted. A model reporting only `[off,on]` clamps every
448
661
  non-off level to `low`. Clio uses only `reasoning_effort` on LM Studio's documented chat surface
449
662
  (<https://lmstudio.ai/docs/developer/openai-compat/chat-completions>) and never sends
@@ -458,7 +671,12 @@ LM Studio can require bearer authentication for its HTTP APIs
458
671
 
459
672
  A model id on an LM Studio target is resolved against that host's loaded instances. A key with a loaded instance is never sent bare (which would JIT-load a second copy). An instance id reported loaded by two configured LM Studio targets on different hosts is an LM Link peer projection. When a bare model key is requested and multiple instances of it are loaded, Clio selects an instance in this order: the target's configured `defaultModel`, then an instance not cross-listed by another configured LM Studio target, and finally the first loaded instance. This behavior tracks issue #113.
460
673
 
461
- When the selected instance is also loaded on a peer, a request may be answered by that peer (#185). Clio separates the requested model id, the response observation, and the model id used for accounting. Every new assistant ledger entry carries `responseModelIdObservation` in one of these explicit shapes:
674
+ When the selected instance is also loaded on a peer, a request may be answered by that peer (#185). Clio separates the requested model id, the response observation, and the model id used for accounting.
675
+
676
+ <details>
677
+ <summary>The four `responseModelIdObservation` states and what each attributes cost to</summary>
678
+
679
+ Every new assistant ledger entry carries `responseModelIdObservation` in one of these explicit shapes:
462
680
 
463
681
  | State | Meaning | Accounting attribution |
464
682
  | --- | --- | --- |
@@ -467,8 +685,14 @@ When the selected instance is also loaded on a peer, a request may be answered b
467
685
  | `{ "state": "not-observed" }` | This provider path did not expose response model-id presence to the stream tap. | A differing `responseModel` when available, otherwise the requested model id. |
468
686
  | `{ "state": "legacy-difference-only", "differingModelId": "<id>" }` or the same shape with `null` | The ledger predates #193 and recorded only whether the response `model` differed from the request. This state is produced while reading historical rows; new rows do not write it. | The historical differing id when available, otherwise the requested model id. |
469
687
 
470
- The adapter retains `responseModel` as the differing response id because providers outside the stream tap still supply that fact. `clio-coder usage report` emits `attributedModelId`, `requestedModelIds`, and `responseModelIdObservationCounts`. Its text table and the `/cost` overlay use the labels `attributed model`, `requested model ids`, and `response model id observation`; requested ids are printed as ids rather than as `same`. The footer's last-turn line uses `response model id observation <state>`, with the id after `reported` or a historical `legacy difference-only` state. Dispatch receipt `upstreamResponses` entries carry `requestedModelId`, `responseModelIdObservation`, `differingResponseModelId`, and `providerResponseId`. The peer warning is said once per process per distinct fact (target, requested id, resolved instance, peer set), not once per turn.
688
+ </details>
689
+
690
+ The adapter retains `responseModel` as the differing response id because providers outside the stream tap still supply that fact. `clio-coder usage report` emits `attributedModelId`, `requestedModelIds`, and `responseModelIdObservationCounts`. Its text table and the `/cost` overlay use the labels `attributed model`, `requested model ids`, and `response model id observation`; requested ids are printed as ids rather than as `same`.
471
691
 
692
+ The footer's last-turn line uses `response model id observation <state>`, with the id after `reported` or a historical `legacy difference-only` state. Dispatch receipt `upstreamResponses` entries carry `requestedModelId`, `responseModelIdObservation`, `differingResponseModelId`, and `providerResponseId`. The peer warning is said once per process per distinct fact (target, requested id, resolved instance, peer set), not once per turn.
693
+
694
+
695
+ ### What LM Studio owns rather than Clio
472
696
 
473
697
  Prompt-template overrides, system prompts, GPU-offload ratios, KV-cache quantization, parallel slots,
474
698
  context checkpoints, and speculative-decoding variants are not writable through this Clio settings
@@ -478,6 +702,8 @@ block. Set them in LM Studio's My Models load settings or with `lms load`; the C
478
702
  configuration that `GET /api/v1/models` exposes instead of pretending it applied settings the REST
479
703
  load endpoint did not accept (<https://lmstudio.ai/docs/developer/rest/list>).
480
704
 
705
+ ### Output, tool-result, and retry budgets
706
+
481
707
  `chat.maxOutputTokens` is a global output budget requested for every turn. Its
482
708
  default `0` uses each model's known maximum-output cap, still clamped to the
483
709
  remaining context window. Models with no known cap use a 32,768-token ceiling
@@ -511,7 +737,10 @@ The `fleet.permissions.escalation` block defines parameters for escalation:
511
737
  - `fallback` (default `deny`): The fallback posture (`deny` or `fail`) applied upon timeout.
512
738
 
513
739
  `fleet.retry.routeCooldownMs` is the cooldown between retries on a failed
514
- route.
740
+ route. `fleet.retry.breakerThreshold` is how many consecutive target failures
741
+ open the route; after the cooldown one probe run tests it, and each failed
742
+ probe doubles the cooldown up to five minutes. See
743
+ [fleet-dispatch.md](fleet-dispatch.md#assignments-attempts-and-failover).
515
744
 
516
745
  `fleet.adaptiveRouting` controls the two independent activation boundaries for
517
746
  measured dispatch. Joint target/model/runtime/node selection becomes active
@@ -525,20 +754,25 @@ Agent automation is separately shadowed. Each
525
754
  `{agentId, executionRole}` pair. An `agent: auto` request may change agents only
526
755
  for a listed pair whose readiness report passes.
527
756
 
528
- Version 2 places numeric backstops beside the behavior they govern.
529
- `safety.limits.chatToolCallsPerTurn` (default `60`) is the main-agent soft
530
- tool-call budget; the hard interrupt ceiling remains 15 calls above it.
531
- `fleet.limits.toolCallsPerRun` (default `150`) is the independent lifetime cap
532
- for one worker and can only narrow a recipe budget. `fleet.history.maxRuns`
533
- (default `1000`) bounds durable dispatch history.
534
- `safety.limits.readBytesPerCall` (default `51200`) bounds one read, while
535
- `safety.limits.observationBytesPerTurn` (default `196608`) is the shared
536
- per-turn observation pool. `fleet.limits.internalRunTimeoutMs` (default
537
- `900000`) bounds an internal generator dispatch. These settings are the only
538
- operator-facing policy paths for the limits and refresh with the effective
539
- session view.
540
-
541
- Agent recipe budgets define a normal admitted-call phase inside `workerToolCallCap`; they do not replace it. A declared phase boundary is clamped down to the cap, and when the two are equal the last call may complete and the graceful synthesis transition happens without requiring an over-cap call. The recipe's `readReserve` is the tail of that phase. It admits canonical `read` plus whatever mutation tools the agent was actually granted, because the reserve exists to end broad discovery rather than to stop an agent from delivering: a writer whose product is files has to be able to write them in its last calls. An agent with no mutation tools keeps a read-only reserve and the request-level `require_tool(read)` lock. The reserve becomes zero when `read` is absent from the admitted schema surface, and never installs a nonexistent read requirement. Calls the reserve refuses are steering rather than work: they neither run nor spend the cap, and a model that keeps calling discovery tools there reaches the same bounded synthesis lockout a spent budget ends in.
757
+ Version 2 places numeric backstops beside the behavior they govern:
758
+
759
+ | Key | Default | What it bounds |
760
+ | --- | --- | --- |
761
+ | `safety.limits.chatToolCallsPerTurn` | `60` | The main agent's soft tool-call budget. The hard interrupt ceiling stays 15 calls above it. |
762
+ | `fleet.limits.toolCallsPerRun` | `150` | One worker's independent lifetime cap. It can only narrow a recipe budget. |
763
+ | `fleet.limits.internalRunTimeoutMs` | `900000` | One internal generator dispatch. |
764
+ | `fleet.history.maxRuns` | `1000` | Durable dispatch history. |
765
+ | `safety.limits.readBytesPerCall` | `51200` | One read. |
766
+ | `safety.limits.observationBytesPerTurn` | `196608` | The shared per-turn observation pool. |
767
+
768
+ These are the only operator-facing policy paths for those limits, and they
769
+ refresh with the effective session view.
770
+
771
+ Agent recipe budgets define a normal admitted-call phase inside `workerToolCallCap`; they do not replace it. A declared phase boundary is clamped down to the cap, and when the two are equal the last call may complete and the graceful synthesis transition happens without requiring an over-cap call.
772
+
773
+ The recipe's `readReserve` is the tail of that phase. It admits canonical `read` plus whatever mutation tools the agent was actually granted, because the reserve exists to end broad discovery rather than to stop an agent from delivering: a writer whose product is files has to be able to write them in its last calls. An agent with no mutation tools keeps a read-only reserve and the request-level `require_tool(read)` lock.
774
+
775
+ The reserve becomes zero when `read` is absent from the admitted schema surface, and never installs a nonexistent read requirement. Calls the reserve refuses are steering rather than work: they neither run nor spend the cap, and a model that keeps calling discovery tools there reaches the same bounded synthesis lockout a spent budget ends in.
542
776
 
543
777
  ### Local model co-residency and scouts
544
778
 
@@ -553,8 +787,13 @@ slower even though the target still responds.
553
787
  For llama.cpp router targets, Clio observes `/v1/models` and `/props`. It can
554
788
  tell which models are loaded and whether the resident count is within the
555
789
  router's `max_instances`, so an allowed two-model setup is reported as an
556
- informational co-residency notice. A model reporting a `sleeping` state counts as resident, because the router wakes it on the next inference request. Clio's residency manager never evicts a resident model when the requested replacement model is not in the router's catalog. The router response does not expose free
557
- VRAM or per-model loaded footprint, so Clio cannot prove the loaded set fits.
790
+ informational co-residency notice. A model reporting a `sleeping` state counts
791
+ as resident, because the router wakes it on the next inference request, and
792
+ Clio's residency manager never evicts a resident model when the requested
793
+ replacement is not in the router's catalog.
794
+
795
+ The router response does not expose free VRAM or per-model loaded footprint, so
796
+ Clio cannot prove the loaded set fits.
558
797
  Use host tools such as `nvidia-smi`, `rocm-smi`, Vulkan memory telemetry, or
559
798
  the runtime's own dashboard to confirm headroom after loading the main coding
560
799
  model and the scout model. Lower `--ctx-size`, KV cache precision, parallel
@@ -591,11 +830,16 @@ at CPU speed instead of failing.
591
830
  role and describe co-residency without claiming that an operator-owned model
592
831
  can be evicted.
593
832
 
594
- A turn whose token rate collapses below 2 tokens per second for 30 seconds
595
- surfaces a `degraded` notice listing what is resident on the target. That is
596
- what a spill to CPU looks like from outside, and it is reported while the turn
597
- is still running rather than left as an indefinite spinner. The notice never
598
- cancels the turn.
833
+ On Ollama, llama.cpp, and LM Studio targets, a turn whose output plus
834
+ reasoning token rate is still below 2 tokens per second 30 seconds after the
835
+ server starts answering surfaces one `degraded` warning for that turn. It names
836
+ the elapsed time, the token count, the rate, and the models resident on the
837
+ target at that moment, with the GPU share of each model when Ollama reports it.
838
+ That is what a spill to CPU looks like from outside, and it is reported while
839
+ the turn is still running rather than left as an indefinite spinner. The notice
840
+ never cancels the turn, and a turn aborted before the check emits none.
841
+ Interactive sessions show it as a notice, and headless runs and workers write
842
+ it to stderr.
599
843
 
600
844
 
601
845
  ---
@@ -612,6 +856,11 @@ install metadata, and records fleet preflight results. It validates
612
856
  `settings.yaml` directly against the current schema but never rewrites removed
613
857
  keys or migrates an old settings shape. Any unknown or retired key remains a
614
858
  validation error on that doctor run.
859
+
860
+ Doctor reports no dispatch breaker state, because the breaker lives in the
861
+ memory of the session that dispatches and a doctor process never dispatches. See
862
+ the targets rows in `/settings` inside the session instead.
863
+
615
864
  Registered `clio-coder upgrade` migrations are the narrow exception. Upgrade
616
865
  moves a version-1 or unversioned settings document into the version-2 areas,
617
866
  records the migration, and keeps the byte-exact original as
@@ -736,9 +985,11 @@ This is the version-2 durable schema shipped in `DEFAULT_SETTINGS`. Validation i
736
985
  | `fleet.permissions.mode` | `deny` | `deny`, `fail`, `escalate` | next dispatch |
737
986
  | `fleet.permissions.escalation.timeoutMs` | `120000` | integer ≥ 1 | next dispatch |
738
987
  | `fleet.permissions.escalation.fallback` | `deny` | `deny` or `fail` | next dispatch |
739
- | `fleet.concurrency` | `1` | `auto` or integer ≥ 1 | restart |
988
+ | `fleet.concurrency` | `auto` | `auto` or integer ≥ 1 | restart |
740
989
  | `fleet.retry.maxRetries` | `2` | integer ≥ 0 | next dispatch |
741
990
  | `fleet.retry.routeCooldownMs` | `15000` | integer ≥ 0 | next dispatch |
991
+ | `fleet.retry.breakerThreshold` | `1` | integer ≥ 1 | next dispatch |
992
+ | `fleet.worktrees.root` | `disk` | `disk`, `tmpfs`, `auto`, or an absolute path | next dispatch |
742
993
  | `fleet.limits.toolCallsPerRun` | `150` | integer ≥ 1 | next dispatch |
743
994
  | `fleet.limits.internalRunTimeoutMs` | `900000` | integer ≥ 1 | next dispatch |
744
995
  | `fleet.history.maxRuns` | `1000` | integer ≥ 1 | next dispatch |
@@ -766,7 +1017,9 @@ This is the version-2 durable schema shipped in `DEFAULT_SETTINGS`. Validation i
766
1017
  | `context.memory.maxOutputTokens` | `2000` | integer ≥ 1 | next turn |
767
1018
  | `context.memory.timeoutMs` | `60000` | integer ≥ 1 | next turn |
768
1019
 
769
- The compaction and memory controls serve different roles. An unset `context.compaction.model` uses active chat; an explicit model must uniquely resolve to an available eligible summary route or fail visibly. `context.compaction.systemPrompt` is a nonempty UTF-8 prompt file, at most 65,536 bytes, read at compaction time and resolved relative to the session workspace. Configure `context.memory.target` and `context.memory.model` to opt into model-based memory; unset roles remain rules-only. Memory prefers its dedicated route and can use active chat when that route is unavailable and request capacity permits. Known dedicated saturation skips the step rather than initiating failover; neither routing choice edits saved settings.
1020
+ The compaction and memory controls serve different roles. An unset `context.compaction.model` uses active chat; an explicit model must uniquely resolve to an available eligible summary route or fail visibly. `context.compaction.systemPrompt` is a nonempty UTF-8 prompt file, at most 65,536 bytes, read at compaction time and resolved relative to the session workspace.
1021
+
1022
+ Configure `context.memory.target` and `context.memory.model` to opt into model-based memory; unset roles remain rules-only. Memory prefers its dedicated route and can use active chat when that route is unavailable and request capacity permits. Known dedicated saturation skips the step rather than initiating failover; neither routing choice edits saved settings.
770
1023
 
771
1024
  ### Safety
772
1025
 
@@ -788,6 +1041,7 @@ The safety-limit leaves have no one-process `CLIO_CODER_*` overrides in the curr
788
1041
  | Key | Default | Validation | When it applies |
789
1042
  | --- | --- | --- | --- |
790
1043
  | `interface.terminalProgress` | `false` | boolean | next turn |
1044
+ | `interface.demo` | `true` | Project-work capability guidance and contextual footer tips; `--demo` / `--no-demo` override one interactive session | tips immediately; persona next turn |
791
1045
  | `interface.outputDetail` | `standard` | `compact`, `standard`, `detailed` | immediately |
792
1046
  | `interface.mode` | `regular` | `regular` or `fullscreen` | restart |
793
1047
  | `interface.fullscreenScrollbar` | `auto` | `hidden`, `auto`, `always` | restart |
@@ -981,6 +1235,20 @@ integrations:
981
1235
  ```
982
1236
  Then invoke it using `/delegate claude-code <task>`.
983
1237
 
1238
+ `/delegate [--share] <agent-id> <task>` does not accept `--model` in v0.5.0.
1239
+ `/run --model <id>` selects a model for a Clio fleet worker; it does not configure
1240
+ an external ACP session. External model selection depends on the adapter's own
1241
+ supported configuration. Clio does not currently expose an ACP model selector.
1242
+
1243
+ Antigravity's `antigravity-code` runtime is a separate subprocess integration;
1244
+ detection of the `agy` executable does not register an ACP delegation recipe.
1245
+ An ACP integration needs a verified ACP entry point or adapter, not merely a
1246
+ CLI that supports stream-JSON output. This describes Clio's current integration;
1247
+ it does not establish that every Antigravity version or third-party adapter lacks ACP.
1248
+ The `world-knowledge` shadow agent remains internal-dispatch-only, even when bound
1249
+ to an Antigravity target/profile: ask Clio to use it; do not invoke it with `/run`
1250
+ or `/delegate`.
1251
+
984
1252
  ### 5. Antigravity CLI — Experimental Local Delegation (Worker-Only)
985
1253
 
986
1254
  The `antigravity-code` runtime is a local external delegation agent. It lets Clio ask an official Antigravity CLI (`agy`) installed and authenticated by the operator for research, world knowledge, a second opinion, or a bounded subtask. It is deliberately **not** a Gemini chat provider and can never become the Clio orchestrator.
@@ -1047,7 +1315,7 @@ Useful flags:
1047
1315
  ## Target management
1048
1316
 
1049
1317
  ```bash
1050
- clio-coder targets [--json] [--probe] [--target <id>]
1318
+ clio-coder targets [--json] [--probe [--reasoning] [--tools [--tools-timeout <seconds>]]] [--target <id>]
1051
1319
  clio-coder targets add [configure flags]
1052
1320
  clio-coder targets use <id> [--model <id>] [--orchestrator-model <id>] [--background-model <id>]
1053
1321
  [--fleet-target <id>] [--fleet-model <id>]
@@ -1065,21 +1333,65 @@ clio-coder targets remove <id>
1065
1333
  clio-coder targets rename <old> <new>
1066
1334
  ```
1067
1335
 
1336
+ The `clio-coder targets` listing shows no breaker column, because the dispatch breaker lives in the memory of the session that dispatches and the listing process never dispatches. Inside a session, each `/settings` targets row shows its routes' breaker state: an open route takes over the health cell with its remaining cooldown (`○ open 42s`), a route whose probe is in flight shows `◐ probing`, and the row's detail line lists one phrase per route, such as `qwen open 42s after target-transient` or `coder 1 failure (target-overloaded)` for a closed route that has failed below the threshold.
1337
+
1338
+ `clio-coder targets --probe` checks reachability and model metadata without
1339
+ requesting generation. Two optional flags add generating checks, which cost
1340
+ tokens and can load a cold model, so they run only when asked:
1341
+
1342
+ | Flag | What it does | Timeout |
1343
+ | --- | --- | --- |
1344
+ | `--probe` | Reachability and model metadata. No generation. | 5s HTTP |
1345
+ | `--probe --reasoning` | Generating reasoning check. | Owned by the runtime descriptor's reasoning probe. |
1346
+ | `--probe --tools` | Generating tool-call check through the engine stream path. | 120s, set by `--tools-timeout <seconds>` |
1347
+
1348
+ Declared capabilities alone are not live verification. Reasoning generation that
1349
+ produces no reasoning, errors, or times out is inconclusive. `--target <id>`
1350
+ probes one target; SDK and subprocess runtimes report as skipped because they do
1351
+ not stream through the engine.
1352
+
1353
+ <details>
1354
+ <summary>What the tool probe sends, what counts as a pass, and what it leaves loaded</summary>
1355
+
1356
+ `clio-coder targets --probe --tools` sends one small request with a single
1357
+ typed tool through the same engine stream path a chat turn uses, against the
1358
+ chat model when the target is the chat target and the target's default model
1359
+ otherwise. It never picks another model.
1360
+
1361
+ The check passes only when the response streamed in more than one frame, carried
1362
+ a call to the probe tool, and the call's arguments parsed as JSON and matched the
1363
+ tool schema.
1364
+
1365
+ The result appears in the notes column as `tools verified (<model>, <ms>)` or
1366
+ `tools failed (<model>): <reason>`, and as `toolProbe` in `--json`. A verified
1367
+ probe marks `tools` true for that model and runtime resolution then reports the
1368
+ provenance as `toolsVerification`; a failed probe adds a `tools-probe-failed`
1369
+ warning to the next turn or dispatch on that model. The result lives only in the
1370
+ running process.
1371
+
1372
+ A model the probe loaded and pinned on a local server such as Ollama is released
1373
+ before the command returns, whether the probe passed, failed, or was cancelled. A
1374
+ model that was already resident before the probe is left loaded.
1375
+
1376
+ </details>
1377
+
1068
1378
  `clio-coder targets use <id>` sets the orchestrator target. It refuses any target whose runtime is not a registered HTTP/native runtime because the selected target must be valid for chat.
1069
1379
 
1070
1380
  Without `--fleet-target` the default fleet target follows the orchestrator, which is the single-node case. Pass `--fleet-target <id>` to keep them apart when one node orchestrates and another runs the fleet. The fleet target is validated for fleet dispatch through the same check a fleet profile uses, so it can be a worker-only runtime such as `claude-sdk`, `claude-code`, or `antigravity-code`. Its model defaults to that target's own default rather than the orchestrator's, because a model id resolved against one target means nothing on another; `--fleet-model <id>` names it explicitly. `clio-coder configure --set-fleet-default` and `clio-coder targets profile` remain the routes for per-agent fleet routing.
1071
1381
 
1072
1382
  ### Target-Profile Subcommands
1073
1383
 
1074
- The command `clio-coder targets profile` supports several subcommands to manage fleet worker profiles and agent bindings:
1384
+ `clio-coder targets profile` manages fleet worker profiles and agent bindings:
1075
1385
 
1076
- - **list**: Show configured fleet profiles. Use `clio-coder targets profile list [--json]` to output details in JSON format.
1077
- - **set**: Create or update a named fleet profile. Use `clio-coder targets profile set <name> <id> [--model <id>] [--thinking <level>]`; the compatibility form `clio-coder targets profile <name> <id> ...` is also accepted.
1078
- - **remove**: Remove a profile from settings. Use `clio-coder targets profile remove <name> [--force]`. The `--force` flag is required if the profile has active agent bindings.
1079
- - **rename**: Rename a fleet profile. Use `clio-coder targets profile rename <old> <new>`. Active agent bindings are updated to point to the new profile name automatically.
1080
- - **bind**: Bind an agent to a fleet profile. Use `clio-coder targets profile bind <agentId> <profileName>`. Active ACP delegation agents are rejected.
1081
- - **unbind**: Unbind an agent from its profile. Use `clio-coder targets profile unbind <agentId>`.
1082
- - **bindings**: List active agent-to-profile bindings. Use `clio-coder targets profile bindings [--json]` to output details in JSON format.
1386
+ | Command | Effect |
1387
+ | --- | --- |
1388
+ | `targets profile list [--json]` | Show configured fleet profiles. |
1389
+ | `targets profile set <name> <id> [--model <id>] [--thinking <level>]` | Create or update a named profile. The older `targets profile <name> <id> ...` form is still accepted. |
1390
+ | `targets profile remove <name> [--force]` | Remove a profile. `--force` is required when the profile has active agent bindings. |
1391
+ | `targets profile rename <old> <new>` | Rename a profile. Active bindings follow the new name automatically. |
1392
+ | `targets profile bind <agentId> <profileName>` | Bind a native agent to a profile. Active ACP delegation agents are rejected. |
1393
+ | `targets profile unbind <agentId>` | Remove an agent's binding. |
1394
+ | `targets profile bindings [--json]` | List active agent-to-profile bindings. |
1083
1395
 
1084
1396
  Inside the TUI, `/settings targets` opens the operational target console.
1085
1397
  Targets render with `HEALTH`, `ID`, `ROLES`, `RUNTIME`, and `LATENCY`, plus a
@@ -1097,12 +1409,31 @@ Target status resolution tracks provenance explicitly in `TargetStatus.contextWi
1097
1409
 
1098
1410
  When a probed target reports no context window, Clio uses the runtime descriptor default as an unverified guess. In `clio-coder targets` text output, this renders as `ctx <N> (unverified runtime default)`. In JSON output, `contextWindowProvenance` is set to `"runtime-default"`. During target creation via `clio-coder configure`, Clio emits a warning: `warning: the target reported no context window; Clio will use the runtime default as a guess. Set one with --context-window.`. This design ensures that a number the operator never chose and the server never claimed will not read like a verified capability.
1099
1411
 
1412
+ <details>
1413
+ <summary>How each runtime's probe resolves a window, and the Ollama cold-model cap</summary>
1414
+
1415
+ `capabilities.contextWindow` declares an existing serving limit; it does not
1416
+ resize the server or override a smaller observed limit. One-run context limits
1417
+ likewise cap Clio’s planning budget, not the server’s allocation. Slot count does
1418
+ not establish independent context capacity: a server may share one KV pool across
1419
+ several concurrent requests. Confirm allocation semantics in the server before
1420
+ multiplying a context figure by its slot count.
1421
+
1422
+ A runtime that reports the window a resident model is loaded at (LM Studio, and Ollama through `/api/ps`) bounds the session by that serving window, because a model open at 32,768 tokens rejects a longer prompt whatever its weights allow. The text output then names both numbers, as in `ctx 32768 (serving; model max 262144)`, so the operator can see which one a run is planned against. In JSON output the serving window is `discoveredModelStates.<model>.contextLength` and the maximum is `capabilities.contextWindow`.
1423
+
1424
+ An `ollama` probe reads the model maximum from `/api/show` for the target's default model, using `model_info["<architecture>.context_length"]` capped by any `num_ctx` baked into the Modelfile. When `/api/tags` rows carry `details.context_length`, as newer Ollama releases do, those maxima are recorded for every listed model. Ollama 0.18 does not report it there. When no model is resident, Clio plans against the smaller of that maximum and 131,072 tokens, because Ollama opens a cold model at `OLLAMA_CONTEXT_LENGTH` or its server default and no API reports that window before load. The text output names both, as in `ctx 131072 (cold; model max 262144)`; a model whose maximum is below the cap shows its maximum alone. Once `/api/ps` reports the model loaded, its serving window replaces the cold figure. Set `ollama.numCtx` to plan against a window Clio requests rather than one it infers; it applies whether or not the model is resident.
1425
+
1426
+ </details>
1427
+
1100
1428
  ---
1101
1429
 
1102
1430
  ## Local Model Quirks
1103
1431
 
1104
1432
  Local models often require specific engine configurations to perform optimally. Clio parses local model quirks from catalog entries and applies them during target execution. Keep target inventory in `settings.yaml` (`wireModels`, `defaultModel`, URL/auth), and keep per-model semantics in catalog YAML. For local experiments, use `$CLIO_CODER_CONFIG_DIR/model-catalog.d` or `.clio-coder/model-catalog.d`; promote entries into the bundled source catalog only after the model family is verified for broader Clio use.
1105
1433
 
1434
+ <details>
1435
+ <summary>Every quirk field: KV-cache quantization, sampling, and thinking mechanisms</summary>
1436
+
1106
1437
  ### 1. KV-Cache Quantization
1107
1438
  You can optimize the GPU memory usage of the key and value caches for local inference engines. Quirks parameters include:
1108
1439
  - `kQuant`: Quantization type for the key cache. Supported values are `f32`, `f16`, `q8_0`, `q4_0`, `q4_1`, `iq4_nl`, `q5_0`, and `q5_1`. Set to `false` to disable quantization and run in full precision.
@@ -1124,6 +1455,7 @@ Local models use different mechanisms to control and parse reasoning steps. The
1124
1455
  - `always-on`: The model emits chain-of-thought tokens unconditionally.
1125
1456
  - `none`: The model does not support thinking or reasoning states.
1126
1457
 
1458
+ </details>
1127
1459
 
1128
1460
  ### Local reasoning-token budgets
1129
1461
 
@@ -1176,7 +1508,7 @@ Representative built-in runtime IDs:
1176
1508
  | Protocol-compatible | `openai-compat`, `anthropic-compat` generic surfaces for additional OpenAI-compatible or Anthropic-compatible APIs, including APIs such as InceptionAI when configured with the appropriate base URL and credentials. |
1177
1509
  | Cloud | `alcf`, `anthropic`, `bedrock`, `deepseek`, `google`, `groq`, `mistral`, `openai`, `openrouter` |
1178
1510
  | Subscription and worker harnesses | `openai-codex` for ChatGPT OAuth, `anthropic-max` for Anthropic OAuth, `claude-sdk` for Claude Agent SDK workers, `claude-code` for `claude -p` subprocess workers, and `antigravity-code` for structured `agy` external delegation |
1179
- | Local native | `llamacpp`, `lmstudio`, `ollama-native`, `vllm`, `sglang`, `lemonade`, `lemonade-anthropic` |
1511
+ | Local native | `llamacpp`, `lmstudio`, `ollama`, `vllm`, `sglang`, `lemonade`, `lemonade-anthropic` |
1180
1512
 
1181
1513
  Some hidden aliases exist for backward compatibility or special surfaces; use `clio-coder configure --list --all` to see them.
1182
1514
 
@@ -1251,7 +1583,7 @@ establish an actual hit. A compiler memoization hit or a forked transcript canno
1251
1583
 
1252
1584
  | Responsibility | Existing owner | Clio correction or limit |
1253
1585
  | --- | --- | --- |
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. |
1586
+ | Native request conversion, thinking history and cache controls | Pi 0.86.1 | Target retention reaches all instrumented native Pi APIs; explicit call options still win. |
1255
1587
  | 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
1588
  | 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
1589
  | 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. |
@@ -1274,22 +1606,30 @@ own environment/default. Targets reload on the next turn, including when the
1274
1606
  id and model stay the same. The active conversation survives the runtime refresh.
1275
1607
  There are no duplicate model, recipe or fleet retention knobs.
1276
1608
 
1609
+ <details>
1610
+ <summary>Per-API cache retention policy and how each one was verified</summary>
1611
+
1277
1612
  | API/deployment | Effective policy and current verification |
1278
1613
  | --- | --- |
1279
1614
  | 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
1615
  | 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
1616
  | 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. |
1617
+ | Direct llama.cpp | Normal calls retain `cache_prompt: true`; `retention: none` selects false. Clio sends no `id_slot`. Optional warming requires the binding and evidence below. Slot selection, idle-slot eviction and hybrid-model checkpoints are in the [self-hosted prefix-cache contract](../architecture/context-engine.md#self-hosted-prefix-cache-contract). |
1283
1618
  | 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
1619
  | 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
1620
  | 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
1621
  | 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
1622
 
1623
+ </details>
1624
+
1288
1625
  For a direct llama.cpp **already loaded** worker at the audited commit, an
1289
1626
  operator can opt into a bounded pilot. Use the worker's actual `build_info`,
1290
1627
  exact model alias and endpoint; the values below are examples, not deployment
1291
1628
  measurements:
1292
1629
 
1630
+ <details>
1631
+ <summary>A pinned llama.cpp server configuration for reproducible prompt reuse</summary>
1632
+
1293
1633
  ```yaml
1294
1634
  chat:
1295
1635
  prewarm: true
@@ -1311,6 +1651,14 @@ targets:
1311
1651
  cooldownMs: 60000
1312
1652
  ```
1313
1653
 
1654
+ </details>
1655
+
1656
+ Warming only runs against a deployment Clio could inspect and bind, and every
1657
+ refusal is recorded rather than retried. The rules below are the whole gate.
1658
+
1659
+ <details>
1660
+ <summary>Deployment discovery, gateway binding, warm bounds, and admission checks</summary>
1661
+
1314
1662
  Discovery uses GET requests with a two-second total deadline and refuses
1315
1663
  redirects. The control endpoint receives no inferred credentials. An authenticated
1316
1664
  control endpoint therefore remains unavailable to this initial reader. For a
@@ -1331,9 +1679,12 @@ validated on the configured gateway. No gateway credentials are forwarded to
1331
1679
  native discovery.
1332
1680
 
1333
1681
  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.
1682
+ expires after 30 seconds. The default bound is 8192 estimated input tokens
1683
+ (`cache.warm.maxInputTokens`) and a 30-second client deadline
1684
+ (`cache.warm.maxDurationMs`), with a 60-second cooldown; configured deadlines
1685
+ cannot exceed two minutes. The separate LM Studio startup wake that
1686
+ `cache.warm.startup` enables is not the exact-prefix warm and is clamped to 256
1687
+ input tokens regardless of the configured bound. Context transforms run before the input estimate.
1337
1688
  The one-token output and dummy suffix do not enter the conversation. The warm
1338
1689
  uses observe-only residency and `autoload=false` on native llama requests, so
1339
1690
  it cannot use the ordinary turn's implicit administrative authority.
@@ -1354,6 +1705,8 @@ as `deployment-unbound`, `model-not-loaded`, `deployment-build-mismatch`,
1354
1705
  `vllm-scheduler-unverified`, `cooldown` and `expired`. These records contain no
1355
1706
  prompt payloads. Diagnostic payload capture remains a separate explicit opt-in.
1356
1707
 
1708
+ </details>
1709
+
1357
1710
  Turn off speculative work with `chat.prewarm: false`. Remove `cache.deployment`
1358
1711
  to return an individual target to passive operation. `cache.retention: none`
1359
1712
  selects the API's supported cache-off request policy and also refuses Clio
@@ -1367,11 +1720,17 @@ accounting, but the worker's context guard and payload hooks must be included
1367
1720
  in any future headless warm composition. There is no main-to-worker cache
1368
1721
  transfer based on ancestry.
1369
1722
 
1723
+ Automated warming is opt-in. The historical measurements below illustrate why
1724
+ faster first-token timing alone does not establish lower total work or cost.
1725
+
1726
+ <details>
1727
+ <summary>The dated 2026-09-11 TTFT run these settings were validated against</summary>
1728
+
1370
1729
  ### Validation status for this change
1371
1730
 
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
1731
+ Historical validation on 2026-09-11 exercised an example MoE model on llama.cpp
1732
+ (`b1-c841aee`) and a 27B model on LM Studio, first directly and then through an
1733
+ intermediate LiteLLM 1.98.0 gateway host. The selected models were allowed to
1375
1734
  wake/load for inference; no serving configuration or administrative API was
1376
1735
  changed. The same native models and thinking-off intent were retained.
1377
1736
 
@@ -1381,13 +1740,13 @@ exactly `OK`. Median client TTFT was:
1381
1740
 
1382
1741
  | Route | New prefix | Repeated prefix | After a separate warm |
1383
1742
  | --- | ---: | ---: | ---: |
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 |
1743
+ | llama.cpp (MoE) native | 1,691 ms | 183 ms | 163 ms |
1744
+ | LM Studio (27B) native | 1,255 ms | 156 ms | 155 ms |
1745
+ | llama.cpp through LiteLLM | 1,706 ms | 196 ms | 173 ms |
1746
+ | LM Studio through LiteLLM | 1,259 ms | 163 ms | 162 ms |
1388
1747
 
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
1748
+ llama.cpp reported roughly 2,834 cached tokens directly and 2,837 through the
1749
+ gateway after warming. LM Studio's OpenAI-compatible responses did not expose a
1391
1750
  cache-read breakdown; their normalized zero must not be presented as measured
1392
1751
  cache misses. Its timing improvement is an observation, not a per-request
1393
1752
  cache-token measurement. Gateway response metadata identified the expected
@@ -1401,20 +1760,20 @@ reduction alone is not a total-work improvement. An idle-time or foreground
1401
1760
  contention benefit requires its own controlled measurement before rollout.
1402
1761
 
1403
1762
  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
1763
+ matching native/gateway outputs per model: llama.cpp returned `OK.`, LM Studio `OK`.
1764
+ The punctuation means llama.cpp did not meet a literal exact-`OK` instruction in
1406
1765
  those full-prompt smoke runs; it is not hidden by the transport success. The
1407
1766
  engine workload above enforced the exact output separately.
1408
1767
 
1409
1768
  Four custom-worker CLI runs then returned exactly `OK`, with zero tool calls
1410
1769
  and succeeded outcomes. Each emitted receipt matched its persisted receipt and
1411
- passed Clio's integrity verifier against its persisted run envelope. The mini
1770
+ passed Clio's integrity verifier against its persisted run envelope. The llama.cpp
1412
1771
  worker through LiteLLM reported 719 cache-read tokens in that verified receipt.
1413
1772
  These checks establish transport and accounting continuity; the synthetic
1414
1773
  worker's task quality was not independently graded.
1415
1774
 
1416
1775
  The first exploratory driver omitted the public capability update that
1417
- production applies after model synthesis. That made dynamo through LiteLLM
1776
+ production applies after model synthesis. That made LM Studio through LiteLLM
1418
1777
  spend its output budget on thinking. Those samples were preserved and marked
1419
1778
  invalid for semantic comparisons; the reported rerun includes the existing
1420
1779
  public update and checks visible output. This was a driver error, not a newly
@@ -1436,3 +1795,5 @@ The run does not establish replica affinity guarantees, eviction/TTL behavior,
1436
1795
  foreign-traffic fairness, paid-provider savings, or a complete deployment pin
1437
1796
  for every model binary/tokenizer. Those limits prevent a general performance
1438
1797
  claim or enabling automatic gateway/worker warming.
1798
+
1799
+ </details>