@iowarp/clio-coder 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +404 -472
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
  6. package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
  9. package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
  10. package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
  11. package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
  12. package/dist/chunk-2X4RYJTJ.js +39 -0
  13. package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
  14. package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
  15. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  16. package/dist/chunk-3EBYEESD.js +314 -0
  17. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  18. package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
  19. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  20. package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
  21. package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
  22. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  23. package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
  24. package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
  25. package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
  26. package/dist/chunk-77QIVUZB.js +1334 -0
  27. package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
  28. package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
  29. package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
  30. package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
  31. package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
  32. package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
  33. package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
  34. package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
  35. package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
  36. package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
  37. package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
  38. package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
  39. package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
  40. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  41. package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
  42. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  43. package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
  44. package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
  45. package/dist/chunk-HLAFFSEK.js +360 -0
  46. package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
  47. package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
  48. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  49. package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
  50. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  51. package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
  52. package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
  53. package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
  54. package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
  55. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  56. package/dist/chunk-KPXDY6QF.js +47 -0
  57. package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
  58. package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
  59. package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
  60. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  61. package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
  62. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  63. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  64. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  65. package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
  66. package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
  67. package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
  68. package/dist/chunk-PJX3WQUQ.js +42 -0
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
  70. package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
  71. package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
  72. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  73. package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
  74. package/dist/chunk-SZAA6XDG.js +30 -0
  75. package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
  76. package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
  77. package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
  78. package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
  79. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  80. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  81. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  82. package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
  83. package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
  84. package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
  85. package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
  86. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  87. package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
  88. package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
  89. package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
  90. package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
  91. package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
  92. package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
  93. package/dist/cli/index.js +33 -32
  94. package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
  95. package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
  96. package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
  97. package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
  98. package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
  99. package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
  100. package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
  101. package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
  102. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
  103. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
  104. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  105. package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
  106. package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
  107. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
  108. package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
  109. package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
  110. package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
  111. package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
  112. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
  113. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
  114. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
  115. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
  116. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
  117. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
  118. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
  119. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
  120. package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
  121. package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
  122. package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
  123. package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
  124. package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
  125. package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
  126. package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
  127. package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
  128. package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
  129. package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
  130. package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
  131. package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
  132. package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
  133. package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
  134. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
  135. package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
  136. package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
  137. package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
  138. package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
  139. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
  140. package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
  141. package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
  142. package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
  143. package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
  144. package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
  145. package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
  146. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  147. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
  148. package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
  149. package/dist/worker/entry.js +45 -30
  150. package/docs/README.md +176 -81
  151. package/docs/{acp.md → architecture/acp.md} +36 -20
  152. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  153. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  154. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  155. package/docs/architecture/artifact-versions.md +90 -0
  156. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  157. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  158. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  159. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  160. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  161. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  162. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  163. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  164. package/docs/{observability.md → architecture/observability.md} +26 -13
  165. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  166. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  167. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  168. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  169. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  170. package/docs/architecture/time-conventions.md +125 -0
  171. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  172. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  173. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  174. package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
  175. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
  176. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
  177. package/docs/guide/configuration-reference.md +1158 -0
  178. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
  179. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  180. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  181. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  182. package/docs/{glossary.md → guide/glossary.md} +14 -11
  183. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
  184. package/docs/guide/panes-and-files.md +290 -0
  185. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  186. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  187. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  188. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  189. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  190. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  191. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  192. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  193. package/docs/process/documentation-coverage.md +100 -0
  194. package/docs/process/documentation-guide.md +187 -0
  195. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  196. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  197. package/docs/{evolution.md → process/evolution.md} +2 -2
  198. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  199. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  200. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  201. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  202. package/evals/README.md +2 -2
  203. package/package.json +9 -7
  204. package/skills/README.md +46 -37
  205. package/skills/coding/ast-grep/SKILL.md +2 -2
  206. package/skills/coding/coding-standards/SKILL.md +2 -2
  207. package/skills/coding/prototype/SKILL.md +2 -2
  208. package/skills/coding/tdd/SKILL.md +2 -2
  209. package/skills/context/context-handoff/SKILL.md +2 -2
  210. package/skills/context/context-prime/SKILL.md +2 -2
  211. package/skills/git/file-ticket/SKILL.md +2 -2
  212. package/skills/git/fix-issue/SKILL.md +3 -3
  213. package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
  214. package/skills/git/ship/SKILL.md +2 -2
  215. package/skills/git/worktree-create/SKILL.md +2 -2
  216. package/skills/git/worktree-merge/SKILL.md +2 -2
  217. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  218. package/skills/meta/clio-coder-dev/evals.md +3 -2
  219. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  220. package/skills/meta/clio-coder-test/evals.md +9 -4
  221. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  222. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  223. package/skills/meta/credentials/SKILL.md +2 -2
  224. package/skills/meta/find-skills/SKILL.md +2 -2
  225. package/skills/meta/herdr/SKILL.md +2 -2
  226. package/skills/meta/skill-craft/SKILL.md +22 -16
  227. package/skills/planning/architecture/SKILL.md +2 -2
  228. package/skills/planning/backlog/SKILL.md +2 -2
  229. package/skills/planning/prd/SKILL.md +2 -2
  230. package/skills/planning/product-intent/SKILL.md +2 -2
  231. package/skills/planning/tech-spec/SKILL.md +2 -2
  232. package/skills/registry.yaml +62 -62
  233. package/skills/research/arxiv-literature/SKILL.md +2 -2
  234. package/skills/research/experiment-protocol/SKILL.md +2 -2
  235. package/skills/research/scientific-debugging/SKILL.md +2 -2
  236. package/skills/research/scientific-modernization/SKILL.md +2 -2
  237. package/skills/skill-marketplace.json +62 -62
  238. package/skills/workflow/cut-it/SKILL.md +2 -2
  239. package/skills/workflow/design-council/SKILL.md +2 -2
  240. package/skills/workflow/grill-me/SKILL.md +2 -2
  241. package/skills/workflow/workflow-distiller/SKILL.md +2 -2
  242. package/src/cli/args.ts +2 -2
  243. package/src/cli/bootstrap-generate.ts +1 -1
  244. package/src/cli/config-inspect.ts +65 -12
  245. package/src/cli/configure.ts +0 -4
  246. package/src/cli/docs.ts +22 -14
  247. package/src/cli/doctor-naming.ts +5 -5
  248. package/src/cli/doctor-toolchain.ts +3 -3
  249. package/src/cli/eval.ts +1 -2
  250. package/src/cli/extensions.ts +2 -1
  251. package/src/cli/fleet.ts +1 -1
  252. package/src/cli/index.ts +2 -1
  253. package/src/cli/internal-dispatch.ts +3 -4
  254. package/src/cli/panes.ts +19 -5
  255. package/src/cli/run.ts +2 -2
  256. package/src/cli/share.ts +5 -1
  257. package/src/cli/skills-eval.ts +3 -3
  258. package/src/cli/targets.ts +2 -6
  259. package/src/cli/trace.ts +55 -4
  260. package/src/cli/wiki-generate.ts +1 -1
  261. package/src/core/artifact-paths.ts +1 -1
  262. package/src/core/bash-exec.ts +131 -86
  263. package/src/core/bus-events.ts +51 -6
  264. package/src/core/config.ts +5 -1
  265. package/src/core/defaults.ts +7 -4
  266. package/src/core/dispatch-outcome.ts +16 -0
  267. package/src/core/guardrails.ts +10 -49
  268. package/src/core/prompt-hint.ts +9 -0
  269. package/src/domains/agents/builtins/architect.md +2 -3
  270. package/src/domains/agents/builtins/coder.md +3 -2
  271. package/src/domains/agents/builtins/debugger.md +2 -2
  272. package/src/domains/agents/builtins/documenter.md +2 -2
  273. package/src/domains/agents/builtins/git-master.md +1 -1
  274. package/src/domains/agents/builtins/oracle.md +1 -1
  275. package/src/domains/agents/builtins/provenance.md +1 -1
  276. package/src/domains/agents/builtins/researcher.md +1 -1
  277. package/src/domains/agents/builtins/scout.md +1 -1
  278. package/src/domains/agents/builtins/tester.md +2 -2
  279. package/src/domains/agents/builtins/verifier.md +2 -2
  280. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  281. package/src/domains/agents/catalog.ts +12 -14
  282. package/src/domains/agents/contract.ts +2 -0
  283. package/src/domains/agents/extension.ts +23 -1
  284. package/src/domains/config/keybindings.ts +8 -0
  285. package/src/domains/context/extension.ts +0 -3
  286. package/src/domains/context/working-set/path-index.ts +1 -0
  287. package/src/domains/dispatch/capability-match.ts +10 -0
  288. package/src/domains/dispatch/extension.ts +105 -22
  289. package/src/domains/dispatch/host-verification.ts +435 -39
  290. package/src/domains/dispatch/intent-requirements.ts +10 -0
  291. package/src/domains/dispatch/intent.ts +18 -1
  292. package/src/domains/dispatch/path-scope.ts +235 -24
  293. package/src/domains/dispatch/run-event-journal.ts +4 -15
  294. package/src/domains/dispatch/state.ts +2 -3
  295. package/src/domains/dispatch/transport.ts +45 -21
  296. package/src/domains/dispatch/types.ts +55 -3
  297. package/src/domains/eval/artifacts/store.ts +5 -0
  298. package/src/domains/eval/store.ts +8 -1
  299. package/src/domains/evidence/trust-status.ts +10 -1
  300. package/src/domains/extensions/contract.ts +15 -1
  301. package/src/domains/extensions/discovery.ts +238 -41
  302. package/src/domains/extensions/extension.ts +105 -6
  303. package/src/domains/extensions/index.ts +24 -0
  304. package/src/domains/extensions/integrity.ts +189 -0
  305. package/src/domains/extensions/manager.ts +17 -1
  306. package/src/domains/extensions/resource-path.ts +27 -0
  307. package/src/domains/extensions/resources.ts +18 -38
  308. package/src/domains/extensions/snapshot-store.ts +39 -0
  309. package/src/domains/extensions/snapshot.ts +180 -0
  310. package/src/domains/extensions/state.ts +385 -57
  311. package/src/domains/extensions/types.ts +118 -1
  312. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  313. package/src/domains/lifecycle/migrations/index.ts +2 -0
  314. package/src/domains/lifecycle/naming-resources.ts +19 -4
  315. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  316. package/src/domains/middleware/contract.ts +26 -0
  317. package/src/domains/middleware/extension.ts +24 -24
  318. package/src/domains/middleware/hook-receipts.ts +27 -4
  319. package/src/domains/middleware/hooks-io.ts +65 -32
  320. package/src/domains/middleware/hooks.ts +64 -0
  321. package/src/domains/middleware/index.ts +28 -4
  322. package/src/domains/middleware/registrations.ts +326 -0
  323. package/src/domains/middleware/runtime.ts +28 -0
  324. package/src/domains/middleware/snapshot.ts +20 -7
  325. package/src/domains/mux/contract.ts +38 -0
  326. package/src/domains/mux/detect.ts +6 -13
  327. package/src/domains/mux/index.ts +1 -1
  328. package/src/domains/mux/operations.ts +44 -5
  329. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  330. package/src/domains/mux/yazi/session.ts +53 -4
  331. package/src/domains/mux/yazi/theme.ts +117 -17
  332. package/src/domains/observability/contract.ts +10 -11
  333. package/src/domains/observability/extension.ts +11 -3
  334. package/src/domains/observability/projection.ts +14 -90
  335. package/src/domains/observability/trace-store.ts +43 -7
  336. package/src/domains/prompts/compiler.ts +73 -53
  337. package/src/domains/prompts/contract.ts +15 -3
  338. package/src/domains/prompts/extension.ts +97 -9
  339. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  340. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  341. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  342. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  343. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  344. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  345. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  346. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  347. package/src/domains/providers/index.ts +1 -1
  348. package/src/domains/providers/model-runtime-capabilities.ts +85 -21
  349. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
  350. package/src/domains/providers/runtime-resolution.ts +31 -0
  351. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  352. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  353. package/src/domains/providers/types/cost-provenance.ts +19 -0
  354. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  355. package/src/domains/resources/skills/loader.ts +16 -19
  356. package/src/domains/safety/call-target.ts +1 -1
  357. package/src/domains/safety/loop-detector.ts +7 -4
  358. package/src/domains/session/task-board.ts +10 -9
  359. package/src/domains/share/archive.ts +164 -7
  360. package/src/engine/acp/server.ts +62 -9
  361. package/src/engine/apis/llamacpp-residency.ts +3 -4
  362. package/src/engine/apis/lmstudio.ts +3 -3
  363. package/src/engine/apis/ollama-native.ts +6 -6
  364. package/src/engine/apis/openai-completions.ts +28 -25
  365. package/src/engine/apis/output-budget.ts +8 -18
  366. package/src/engine/apis/residency.ts +8 -27
  367. package/src/engine/gemma-channel-filter.ts +19 -0
  368. package/src/engine/loop-guard.ts +92 -12
  369. package/src/engine/worker-runtime.ts +40 -11
  370. package/src/engine/worker-tools.ts +3 -1
  371. package/src/entry/extension-hook-sources.ts +28 -0
  372. package/src/entry/extension-reload.ts +309 -0
  373. package/src/entry/orchestrator.ts +59 -35
  374. package/src/interactive/application-controller.ts +2 -1
  375. package/src/interactive/bus-notices.ts +8 -1
  376. package/src/interactive/chat-loop-messages.ts +3 -13
  377. package/src/interactive/chat-loop.ts +10 -1
  378. package/src/interactive/chat-panel.ts +36 -13
  379. package/src/interactive/chat-renderer.ts +71 -7
  380. package/src/interactive/dispatch-board.ts +6 -11
  381. package/src/interactive/footer/widgets.ts +13 -0
  382. package/src/interactive/interactive-application.ts +39 -4
  383. package/src/interactive/interactive-input-runtime.ts +4 -0
  384. package/src/interactive/interactive-presentation.ts +2 -2
  385. package/src/interactive/interactive-slash-runtime.ts +2 -0
  386. package/src/interactive/overlays/extensions.ts +9 -1
  387. package/src/interactive/overlays/help-reference.ts +13 -0
  388. package/src/interactive/overlays/settings.ts +27 -16
  389. package/src/interactive/panes-runtime.ts +111 -35
  390. package/src/interactive/prompt-cache-identity.ts +88 -0
  391. package/src/interactive/slash-commands.ts +129 -14
  392. package/src/interactive/stream-pacing-policy.ts +0 -23
  393. package/src/interactive/turn-context.ts +30 -15
  394. package/src/interactive/yazi-bridge.ts +60 -6
  395. package/src/tools/agent-tools.ts +30 -1
  396. package/src/tools/artifact.ts +2 -2
  397. package/src/tools/ask-user.ts +3 -3
  398. package/src/tools/bash.ts +1 -1
  399. package/src/tools/bootstrap.ts +4 -0
  400. package/src/tools/builtin-tool-catalog.ts +52 -22
  401. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  402. package/src/tools/codewiki/code-nav.ts +99 -13
  403. package/src/tools/context/docs-engine.ts +20 -7
  404. package/src/tools/context/index.ts +29 -12
  405. package/src/tools/core-bootstrap.ts +28 -6
  406. package/src/tools/credential-present.ts +1 -2
  407. package/src/tools/dispatch-arguments.ts +5 -1
  408. package/src/tools/dispatch-plan.ts +48 -4
  409. package/src/tools/dispatch-run-events.ts +1 -1
  410. package/src/tools/dispatch-schema.ts +338 -0
  411. package/src/tools/dispatch-types.ts +3 -0
  412. package/src/tools/dispatch.ts +9 -254
  413. package/src/tools/ledger.ts +3 -5
  414. package/src/tools/monitor-surface.ts +5 -13
  415. package/src/tools/observation.ts +4 -5
  416. package/src/tools/panes-surface.ts +4 -11
  417. package/src/tools/panes.ts +4 -2
  418. package/src/tools/policy.ts +15 -2
  419. package/src/tools/read.ts +5 -6
  420. package/src/tools/registry.ts +30 -7
  421. package/src/tools/result-shaping.ts +18 -14
  422. package/src/tools/steer-surface.ts +1 -1
  423. package/src/tools/tasks.ts +1 -1
  424. package/src/tools/truncate.ts +6 -5
  425. package/src/tools/verify/surface.ts +6 -12
  426. package/src/tools/web-fetch-surface.ts +1 -3
  427. package/dist/chunk-5QIAJV2D.js +0 -48
  428. package/dist/chunk-JZWT5J3Y.js +0 -814
  429. package/dist/chunk-K7VKOLQQ.js +0 -15
  430. package/dist/chunk-PMZCIOCJ.js +0 -25
  431. package/dist/chunk-SUW5DORT.js +0 -819
  432. package/dist/chunk-UOV2BYIW.js +0 -107
  433. package/dist/chunk-WR6U3OVP.js +0 -45
  434. package/docs/artifact-versions.md +0 -67
  435. package/docs/documentation-coverage.md +0 -46
  436. package/docs/documentation-guide.md +0 -167
  437. package/docs/time-conventions.md +0 -101
package/README.md CHANGED
@@ -21,385 +21,362 @@
21
21
 
22
22
  ---
23
23
 
24
- Clio Coder is a terminal coding agent built for scientific and HPC software:
25
- simulation kernels, data pipelines, numerical libraries, and build systems that
26
- take twenty minutes and break in ways no cloud model has ever seen.
27
-
28
- You bring the model. A llama.cpp, Ollama, LM Studio, vLLM, or SGLang server on
29
- your own GPU; a cloud API; your ChatGPT or Claude subscription; or an Argonne
30
- Leadership Computing Facility inference gateway. Clio brings the harness around
31
- it: a terminal UI that stays out of your way, twenty typed tools instead of a
32
- raw shell, a fleet of bounded worker agents that can run across your whole
33
- cluster over SSH, durable sessions, and a sealed receipt for every run.
24
+ Clio Coder is an open-source terminal coding agent built with scientific and
25
+ high-performance computing software in mind. It is comfortable in the places
26
+ where research code actually lives: simulation kernels, numerical libraries,
27
+ data pipelines, mixed-language repositories, remote machines, and build or
28
+ test cycles that cannot be replaced by a toy example.
29
+
30
+ You choose the model and where it runs. Clio can use a local server on your own
31
+ GPU, a lab gateway, a cloud API, a supported subscription, or different targets
32
+ for interactive work and delegated jobs. Around that model it provides project
33
+ context, bounded tools, worker agents, durable sessions, safety controls, and
34
+ evidence you can inspect after the work is done.
34
35
 
35
36
  CLIO stands for Context Layer for Input/Output. Clio Coder is the interactive
36
- coding agent in IOWarp's ecosystem of agentic science, named for the Greek muse
37
- of history and built by the Gnosis Research Center at Illinois Tech.
37
+ coding agent in IOWarp's ecosystem of agentic science, developed by the Gnosis
38
+ Research Center at Illinois Tech and named for the Greek muse of history.
38
39
 
39
40
  ## Get started
40
41
 
41
42
  ```bash
42
43
  npm install -g @iowarp/clio-coder
43
- clio-coder configure # pick a model provider or a local server
44
- clio-coder # start the interactive session in any project directory
44
+ clio-coder configure
45
+ cd /path/to/your/project
46
+ clio-coder
47
+ ```
48
+
49
+ Clio requires Node.js `>=22.19.0`. The configuration wizard helps you choose a
50
+ provider or local inference server, verifies the connection, and saves the
51
+ target. Starting `clio-coder` with no usable target opens the same setup flow.
52
+
53
+ In your first session, describe what you want in plain language. Type `/help`
54
+ for the command palette, `/settings` to change the active model or operating
55
+ posture, and `/quit` when you are done. If anything about the installation
56
+ looks wrong, `clio-coder doctor` performs a read-only health check.
57
+
58
+ > [!NOTE]
59
+ > Add `--omit=optional` to the npm install to skip the Claude Agent SDK's large
60
+ > optional binary. Only the `claude-sdk` worker runtime needs it. See
61
+ > [Optional dependencies](docs/guide/installation-and-lifecycle.md#optional-dependency-the-claude-agent-sdk).
62
+
63
+ | If you are… | Continue with… |
64
+ | --- | --- |
65
+ | Trying Clio on a project | [A first session](#a-first-session) and [Choose where models run](#choose-where-models-run) |
66
+ | Responsible for sensitive or expensive work | [Safety and evidence](#safety-and-evidence) |
67
+ | Bringing Clio to a workstation or cluster | [Project context](#project-context-that-stays-with-the-project) and [Delegation](#delegate-with-bounds) |
68
+ | An agent entering this repository | [For agents working on Clio Coder](#for-agents-working-on-clio-coder) |
69
+ | Planning to contribute | [For contributors](#for-contributors) |
70
+
71
+ ## Built for real research software
72
+
73
+ Clio is not limited to scientific repositories, but research software shapes
74
+ its priorities:
75
+
76
+ - **Bring your own inference.** Run locally with llama.cpp, LM Studio, Ollama,
77
+ vLLM, SGLang, or Lemonade; connect a compatible gateway or cloud provider;
78
+ or use supported ChatGPT and Claude subscription routes. Chat and worker
79
+ fleets can use different targets.
80
+ - **Understand before changing.** A project handbook and structural code index
81
+ give the model durable orientation without pouring the whole repository into
82
+ every prompt. Context use, compaction, and recall remain visible.
83
+ - **Delegate focused work.** Built-in worker recipes receive explicit tools,
84
+ limits, scopes, and result contracts. Fleet contracts can add review gates,
85
+ resumable steps, and placement across machines over SSH.
86
+ - **Keep authority with the operator.** Read-only, suggest, auto-edit, and
87
+ full-auto modes all pass through the same policy boundary. Bash is
88
+ default-deny, and project rules can narrow access further.
89
+ - **Leave evidence, not just prose.** Runs record tool activity, model usage,
90
+ routing, safety decisions, timing, and result conformance in receipts and
91
+ durable ledgers that can be inspected later.
92
+ - **Fit into existing tools.** Use the interactive terminal, one-shot headless
93
+ commands, JSONL event streams, or the Agent Client Protocol for editor hosts.
94
+
95
+ The goal is not to make a model infallible. It is to make useful work easier to
96
+ direct, easier to constrain, and easier to verify.
97
+
98
+ ## A first session
99
+
100
+ Run Clio from the repository you want it to work on:
101
+
102
+ ```bash
103
+ cd /path/to/your/project
104
+ clio-coder
45
105
  ```
46
106
 
47
- Requires Node.js `>=22.19.0`. `configure` lists the runtimes, asks for the
48
- endpoint and model, probes it, and saves it as the chat and fleet default; bare
49
- `clio-coder` opens the same wizard when nothing usable is configured yet. In the
50
- first session, type a request in plain words or `/help` for the command
51
- palette. `/settings` changes the model later, `/quit` leaves, and
52
- `clio-coder doctor` reports the install's health at any time.
53
-
54
- Adding `--omit=optional` to that install skips the Claude Agent SDK's 224MB
55
- proprietary binary, taking the tree from 387MB to 143MB. Everything but the
56
- `claude-sdk` worker runtime works without it. See
57
- [Installation and Lifecycle](docs/installation-and-lifecycle.md#optional-dependency-the-claude-agent-sdk).
58
-
59
- ## What changed in v0.4.1
60
-
61
- - **`settings.yaml` v2** replaces the accumulated legacy layout with seven
62
- durable areas: `chat`, `fleet`, `targets`, `context`, `safety`, `interface`,
63
- and `integrations`. `clio-coder upgrade` automatically migrates a v1 (or
64
- unversioned pre-v2) file once, writes it atomically, and keeps the original as
65
- `settings.yaml.v1.bak`.
66
- - **The interactive command surface is smaller and explicit.** `/settings`
67
- accepts the same seven area names, resources meet under `/resources`, and
68
- retired slash commands stop at targeted tombstones instead of falling
69
- through to the model.
70
- - **The editor operator family is honest about context.** `@` opens a
71
- workspace-aware file picker, `!` runs a public shell command whose result can
72
- enter model context, and `!!` runs a context-excluded shell command that
73
- remains visible to you but is never sent to a model.
74
- - **The local skills marketplace can meet a request in flight.** Clio may offer
75
- a matching uninstalled skill, but every install initiated by that promotion
76
- flow is hard-gated to Clio's own shipped catalog or the
77
- `iowarp/clio-coder` repository. A public registry or foreign GitHub source is
78
- refused before the installer runs.
79
- - **Evaluation and release validation each have one path.** The product eval
80
- engine remains under `src/domains/eval/`, runnable reference suites ship
81
- under `evals/`, and evals stay outside CI and release gates. The automated
82
- gate is now 35 focused test files driven directly by `node --test` through a
83
- single fast CI job.
84
- - **Machine-facing names use the Clio Coder namespace.** New paths, schemas,
85
- tags, environment variables, Git refs, and manifests use syntax-appropriate
86
- `clio-coder`, `clio_coder`, or `CLIO_CODER` forms. Upgrade records one naming
87
- migration, and readers retain the released legacy spellings through v0.5 and
88
- v0.6. The Clio persona and operator-facing identity text are unchanged.
89
-
90
- The release also hardens the surfaces that tend to fail outside unit tests:
91
- plain `doctor` is read-only again, configure cancellation exits correctly,
92
- trace empty states preserve their JSON contracts, fleet views wrap and honor
93
- `NO_COLOR`, Settings and other interactive prose stop losing remedy text, and
94
- the Workbench lifecycle closes its timing and recovery gaps.
95
-
96
- | | You are | Start here |
97
- | --- | --- | --- |
98
- | 🔬 | A researcher or developer who wants to use it | [Your models](#your-models-your-choice) → [At the keyboard](#at-the-keyboard) → [Safety](#safety-you-can-read) |
99
- | 🤖 | An AI agent that just landed in this repository | [For agents](#for-agents) |
100
- | 🛠️ | A developer who wants to contribute | [For contributors](#for-contributors) |
101
-
102
- ## Why Clio
103
-
104
- Most coding agents ask you to trust a remote model with a shell. Clio makes a
105
- different bet: the harness should be strong enough that a 20B model on your own
106
- GPU is genuinely useful, and honest enough that you can reconstruct every
107
- decision afterward.
108
-
109
- - **The model never gets a shell by default.** Twenty typed tools in seven
110
- policy planes. Bash is default-deny behind
111
- [damage-control rules](damage-control-rules.yaml) and per-project policy,
112
- reads are bounded, writes are queued and reviewable, and every privileged
113
- call passes through one admission path the model cannot talk its way around.
114
- - **Local models are the design target, not a fallback.** Clio keeps the
115
- compiled prompt and tool schemas byte-stable so a llama.cpp prefix cache
116
- stays hot across turns and sessions, bounds every tool result so one `grep`
117
- cannot blow the window, and records a per-call cache verdict in the ledger
118
- so you can see when and why the cache went cold. It also sends that prefix
119
- ahead of your first keystroke on a session start, a resume, or a compaction,
120
- and counts request slots per inference endpoint rather than per node, so a
121
- fleet cannot admit four workers onto a one-slot server the orchestrator is
122
- already streaming against.
123
- - **Work goes to bounded workers, not one long context.** The orchestrator
124
- dispatches focused agents with explicit tool profiles, call budgets, cost
125
- ceilings, and typed result contracts. A worker that cannot produce a
126
- conforming answer fails loudly instead of returning confident prose.
127
- - **Your cluster is the runtime.** Declare your nodes and the same worker
128
- protocol tunnels over SSH with the same prompts, the same safety matrix, and
129
- the same receipts. Placement is deterministic and pinnable; capacity is
130
- governed by durable leases that survive process death.
131
- - **Everything is auditable.** Every run seals a receipt covering tokens,
132
- priced cost, tool activity, safety decisions, routing, worker attestation,
133
- and result conformance. Default-on scientific commit provenance adds only
134
- the assistance, testing, review, and contributor trailers that this evidence
135
- justifies; it never replaces the human author. Nothing in the audit trail is
136
- reconstructed from prose.
137
- - **Science is a first-class domain.**
138
- [clio-kit](https://github.com/iowarp/clio-kit) adds MCP servers for HDF5,
139
- Slurm, ParaView, Pandas, NetCDF, FITS, Zarr, and ArXiv, and the shipped
140
- skills catalog includes scientific debugging and experiment-protocol guides.
141
-
142
- ## Your models, your choice
143
-
144
- Clio treats models as named **targets**: a runtime, an endpoint, a model, and
145
- credentials. Interactive chat and fleet dispatch can route through different
146
- targets independently, so a strong orchestrator can direct cheap local muscle,
147
- or the reverse.
148
-
149
- | Runtime id | Serves |
107
+ The header shows the workspace, active route, and project-context status. Tool
108
+ calls appear as they run, edits render as diffs, and the footer keeps context
109
+ and activity visible without taking over the terminal.
110
+
111
+ | You want to… | Use… |
112
+ | --- | --- |
113
+ | Change the chat model, fleet route, autonomy, or interface | `/settings` |
114
+ | Inspect context use or cost | `/context`, `/cost` |
115
+ | Reference a workspace file | Type `@` and choose a path |
116
+ | Run a shell command whose result may enter model context | `! command` |
117
+ | Run a private shell command that is never sent to the model | `!! command` |
118
+ | Ask a side question without changing the main session | `/btw <question>` |
119
+ | Request a read-only second opinion | `/oracle <question>` |
120
+ | Delegate a focused task | `/run coder "..."` |
121
+ | Inspect delegated work | `/tasks` or `Alt+W` |
122
+ | Branch or resume a conversation | `/tree`, `/fork`, `/resume`, `/new` |
123
+ | Carry current state into a fresh session | `/handoff <goal>` |
124
+ | Browse agents, prompts, fleets, extensions, and skills | `/resources` |
125
+ | Save a self-contained transcript | `/export` |
126
+
127
+ Pressing Enter while Clio is working steers the active turn; `Alt+Enter` queues
128
+ a follow-up; `Esc` cancels. Pasted or multiline text beginning with `!` or `!!`
129
+ is treated as prompt text, so a pasted command does not execute unexpectedly.
130
+ Private `!!` command and output bytes remain visible in your transcript but are
131
+ excluded from model replay, compaction, and context accounting.
132
+
133
+ The complete interactive and CLI reference is
134
+ [Commands and Modes](docs/guide/commands-and-modes.md).
135
+
136
+ ## Choose where models run
137
+
138
+ Clio stores each model connection as a named **target**: runtime, endpoint,
139
+ model, credentials, and any verified capability overrides. Interactive chat,
140
+ proactive memory, fleet defaults, and individual worker profiles can route
141
+ independently.
142
+
143
+ | Target family | Supported routes |
150
144
  | --- | --- |
151
- | `llamacpp`, `llamacpp-anthropic`, `llamacpp-completion` | llama.cpp and llama-swap routers |
152
- | `lmstudio` | LM Studio |
153
- | `ollama-native` | Ollama |
154
- | `vllm`, `sglang` | vLLM and SGLang |
155
- | `litellm` | LiteLLM gateways with per-alias capability discovery and routed-model attribution |
156
- | `lemonade`, `lemonade-anthropic` | Lemonade |
157
- | `openai-compat`, `anthropic-compat` | Any OpenAI- or Anthropic-shaped endpoint |
158
- | `openai`, `anthropic`, `google`, `groq`, `mistral`, `deepseek`, `openrouter`, `bedrock` | Cloud APIs |
159
- | `alcf` | Argonne's Sophia and Metis gateways over Globus OAuth ([guide](docs/alcf-provider.md)) |
160
- | `anthropic-max`, `openai-codex` | Your Claude Pro/Max or ChatGPT Plus/Pro subscription |
161
- | `claude-sdk`, `claude-code`, `antigravity-code` | Claude Code and Google Antigravity as workers behind Clio's permission gate |
162
-
163
- **One GPU with 24 GB or more?** Serve **Qwen3.8-27B** (the
164
- `unsloth/Qwen3.8-27B-GGUF` quantizations) and point both the chat and fleet
165
- targets at it. It is the model this release was hardened against on llama.cpp
166
- and LM Studio: a 4-bit quantization at 131072 context fits in 24 GB with a
167
- q8_0 KV cache, tool calls and reasoning parse cleanly on both runtimes, and
168
- Clio's `thinkingLevel` drives the model's reasoning effort per request. Start
169
- llama.cpp with `--jinja --reasoning on`; LM Studio needs nothing beyond loading
170
- the model. Quantization and context-window details for this and other families
171
- live in [docs/model-catalog.md](docs/model-catalog.md).
172
-
173
- Scripting the same setup the wizard performs:
145
+ | Local inference | llama.cpp, LM Studio, Ollama, vLLM, SGLang, Lemonade |
146
+ | Compatible endpoints | OpenAI-compatible and Anthropic-compatible servers; LiteLLM gateways |
147
+ | Cloud APIs | OpenAI, Anthropic, Google, Groq, Mistral, DeepSeek, OpenRouter, Amazon Bedrock |
148
+ | Institutional gateways | Argonne ALCF Sophia and Metis over Globus OAuth |
149
+ | Subscriptions | ChatGPT Plus/Pro through `openai-codex`; Claude Pro/Max through `anthropic-max` |
150
+ | Worker integrations | Claude SDK, Claude Code, Google Antigravity, and configured ACP agents |
151
+
152
+ The interactive wizard is the easiest path:
174
153
 
175
154
  ```bash
176
- clio-coder configure --id local-lmstudio --runtime lmstudio \
177
- --url http://localhost:1234 --model qwen3.8-27b \
178
- --set-orchestrator --set-fleet-default
155
+ clio-coder configure
179
156
  clio-coder targets --probe
157
+ ```
180
158
 
181
- clio-coder auth login anthropic-max # or: openai-codex
182
- clio-coder configure --id claude-sub --runtime anthropic-max --model claude-sonnet-5 --set-orchestrator
159
+ The same setup can be scripted. The model id must match what the server
160
+ advertises unless you deliberately pass `--force`:
161
+
162
+ ```bash
163
+ clio-coder configure \
164
+ --id local-lmstudio \
165
+ --runtime lmstudio \
166
+ --url http://127.0.0.1:1234 \
167
+ --model your-model-id \
168
+ --set-orchestrator \
169
+ --set-fleet-default
170
+
171
+ clio-coder targets use local-lmstudio
172
+ clio-coder targets --probe
183
173
  ```
184
174
 
185
- `--model` must name an id the server advertises; `configure` asks the server
186
- and refuses one it does not list, naming the ids it does. `qwen3.8-27b` is the
187
- id LM Studio gives the recommended model above; substitute whatever `lms ls`
188
- shows for yours.
175
+ Local hardware, quantization, context windows, tool calling, and reasoning
176
+ behavior vary substantially by model and serving runtime. Clio records what it
177
+ can probe, but it does not turn one successful configuration into a universal
178
+ claim. Start with the measured field notes in the
179
+ [Model Catalog](docs/architecture/model-catalog.md), then keep the serving configuration with
180
+ your own results.
189
181
 
190
182
  > [!NOTE]
191
- > Connecting a Claude Pro/Max subscription over OAuth uses the same path as
192
- > Claude Code. Using subscription credentials outside a vendor's first-party
193
- > apps may not align with their terms of service. Enable at your own
194
- > discretion.
183
+ > Subscription OAuth routes use the vendors' existing coding-agent credential
184
+ > paths. Whether a subscription may be used outside a vendor's first-party
185
+ > application depends on that vendor's current terms. Enable those routes at
186
+ > your discretion.
187
+
188
+ The full target, auth, profile, and routing reference is
189
+ [Configuration and Targets](docs/guide/configuration-and-targets.md). The ALCF route
190
+ has a separate [setup guide](docs/architecture/alcf-provider.md).
191
+
192
+ ## Project context that stays with the project
193
+
194
+ Clio uses several layers of context, each with a different job:
195
+
196
+ - **`CLIO-CODER.md`** is the human-owned project handbook loaded for each
197
+ session. `clio-coder context init` can draft it from the repository and adopt
198
+ existing `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, Cursor, or Copilot guidance
199
+ with provenance. You can edit and version it like any other project file.
200
+ - **The codewiki** is a structural index produced by
201
+ `clio-coder context index`. It lets `code_nav` locate files and symbols
202
+ without broad, expensive reads.
203
+ - **The working set** keeps durable tool results in the session ledger while
204
+ controlling which bodies remain in the model window. Evicted content can be
205
+ recalled by reference; history is not silently rewritten.
206
+ - **Skills** are focused `SKILL.md` procedures loaded when needed. The shipped
207
+ catalog pins content hashes, and `clio-coder skills eval <name>` can run a
208
+ skill's executable checks.
209
+ - **Task memory** surfaces bounded reminders during long work and keeps durable
210
+ lessons behind explicit review and approval.
211
+
212
+ Start with:
195
213
 
196
- The full reference, including fleet profiles, per-agent target bindings, and
197
- keeping a small scout model resident beside your main model, is
198
- [docs/configuration-and-targets.md](docs/configuration-and-targets.md).
214
+ ```bash
215
+ clio-coder context init
216
+ clio-coder context
217
+ ```
199
218
 
200
- ## At the keyboard
219
+ Project-generated runtime state lives under the gitignored `.clio-coder/`
220
+ directory. See [Context Engine](docs/architecture/context-engine.md),
221
+ [Working Set](docs/architecture/context-working-set.md), and
222
+ [Proactive Memory](docs/guide/proactive-memory.md) for the detailed contracts.
201
223
 
202
- Run `clio-coder` from the repository you want to work on. The session opens on a
203
- one-line header that names where Clio is working, which route answers, and
204
- whether project context is ready, and then the transcript owns the screen.
205
- Tool calls render as live rows with their verdicts, successful edits render as
206
- numbered diffs, and editor operators put files and local shell output in the
207
- same transcript.
224
+ The local skills marketplace may offer a matching shipped skill during a
225
+ request. Promotion installs are restricted to Clio's own catalog or this
226
+ repository and do not activate the skill automatically. Manual installs remain
227
+ available for a source you deliberately choose. See
228
+ [Skills Marketplace](docs/guide/skills-marketplace.md).
208
229
 
209
- | You want to | Type |
210
- | --- | --- |
211
- | Change model, target, thinking level, autonomy, or terminal options | `/settings [chat\|fleet\|targets\|context\|safety\|interface\|integrations]`, `/model`, `/thinking` |
212
- | See what is in the context window and what it costs | `/context`, `/cost` |
213
- | Branch, revisit, or pick up a session | `/tree`, `/fork`, `/resume`, `/new` |
214
- | Delegate to a fleet agent and watch it work | `/run coder "..."`, `/tasks`, `Alt+W` |
215
- | Load a skill or bootstrap project context | `/skill <name>`, `/context init` |
216
- | Ask a side question without touching the session, or get a read-only second opinion | `/btw <question>`, `/oracle <question>` |
217
- | Put the same question to several models at once and read one synthesis | `/council --synthesis vote "..."` |
218
- | Preview and run a multi-step fleet contract, resumable from the CLI | `/fleet run <name>` |
219
- | Browse or install agents, prompts, fleets, extensions, and skills | `/resources`, `/resources library agent` |
220
- | Carry the working state into a fresh session | `/handoff <goal>` |
221
- | Save a self-contained HTML transcript | `/export` (an explicit `.md` path keeps Markdown) |
222
- | Everything else | `/help` |
223
-
224
- Enter while Clio is running steers the current turn; `Alt+Enter` queues a
225
- follow-up; `Esc` cancels. `/settings interface` opens the Terminal options,
226
- including an opt-in fullscreen mode with a sticky composer beneath an
227
- independently scrollable transcript; regular terminal scrollback is the
228
- default. The complete command and keybinding reference is
229
- [docs/commands-and-modes.md](docs/commands-and-modes.md).
230
-
231
- ### Settings v2 and the seven areas
232
-
233
- The user config is a strict `version: 2` YAML document. Its seven top-level
234
- areas match the seven arguments accepted by `/settings`. Those arguments are
235
- stable deep links into the current Settings Center; the overlay still divides
236
- the detailed editor into its existing subsections, while the durable paths on
237
- disk use the seven-area vocabulary below.
238
-
239
- | Area | What it owns |
240
- | --- | --- |
241
- | `chat` | Active target and model, thinking, model-picker state, output limits, prewarm, and interactive retry |
242
- | `fleet` | Worker defaults and profiles, rosters, agent bindings, routing, nodes, permissions, limits, retry, and run history |
243
- | `targets` | Provider/runtime connections, advertised models, capabilities, and routing roles |
244
- | `context` | Working-set eviction, compaction, and proactive task memory |
245
- | `safety` | Autonomy, cost/tool/read ceilings, and the review watchdog |
246
- | `interface` | Output detail, terminal mode, streaming, notifications, and keybindings |
247
- | `integrations` | Project resource trust, external agents, runtime plugins, resource libraries, and Git attribution |
248
-
249
- When upgrading an existing install, run `clio-coder upgrade`. The v1-to-v2
250
- migration runs before strict v2 consumers load, records its migration id so it
251
- does not run twice, writes through an atomic rename, and leaves the byte-exact
252
- v1 file beside the result as `settings.yaml.v1.bak`. If old and new paths
253
- collide, it refuses the migration and leaves the original untouched instead of
254
- guessing which value should win.
255
-
256
- The removed slash spellings are non-executing tombstones with exact remedies:
257
- `/targets` points to `/settings targets`, `/scoped-models` points to
258
- `/settings chat model-picker`, and `/library`, `/prompts`, and `/extensions`
259
- point to their `/resources` equivalents. The `clio-coder targets`,
260
- `clio-coder skills`, and other CLI command families remain available; this
261
- cleanup applies to slash commands inside the interactive session.
262
-
263
- ### The operator family today
264
-
265
- | Operator | Behavior |
266
- | --- | --- |
267
- | `@` | Opens the workspace-aware picker. A bare `@` starts at the workspace root, a name fuzzily searches visible paths, and directory prefixes drill into the tree. Selecting a file inserts a reference that is expanded into the request when submitted. |
268
- | `! command` | Runs one shell command in the interactive working directory. The durable transcript entry, command, and output are available to model replay and compaction. |
269
- | `!! command` | Runs the same shell path and keeps the result visible and durable, but marks both command and output `not sent to model`; replay, compaction, and context accounting all exclude it. |
230
+ ## Delegate with bounds
270
231
 
271
- Bang operators arm only for a non-empty, typed, single-line draft. A
272
- bracketed-pasted `!` or `!!` line, or any multiline draft beginning with one,
273
- is treated as literal prompt text rather than executed.
232
+ Clio's orchestrator can send focused assignments to worker agents instead of
233
+ stretching one conversation across every task. A worker receives a declared
234
+ role, tool profile, scope, budget, target, and typed result contract. Reviewers
235
+ and judges remain read-only.
274
236
 
275
- Panes, docks, and Yazi integration are experimental and opt-in in v0.4.1; enable them explicitly under `interface.panes` in `settings.yaml`.
237
+ On one machine:
238
+
239
+ ```text
240
+ /run tester "Run the focused tests for the parser and explain any failure."
241
+ /tasks
242
+ ```
276
243
 
277
- Outside the TUI, the same engine runs headless and speaks to editors:
244
+ For repeatable workflows, fleet contracts describe steps, dependencies,
245
+ writers, and review gates:
278
246
 
279
247
  ```bash
280
- clio-coder run "Summarize this repository layout and its entry points." # one turn
281
- clio-coder run "<task>" --json # JSONL events for scripts
282
- clio-coder run "<task>" --agent coder # one fleet agent, with a receipt
283
- clio-coder acp # Agent Client Protocol over stdio
248
+ clio-coder fleet new validation-pass --from build-test
249
+ clio-coder fleet validate validation-pass
250
+ clio-coder fleet graph validation-pass
251
+ clio-coder fleet run validation-pass
284
252
  ```
285
253
 
286
- ## Safety you can read
254
+ The same worker protocol can run over SSH on declared nodes. Placement and
255
+ capacity are explicit, a node can be drained without killing active work, and
256
+ completed steps can be resumed from durable evidence. Shared workspaces must
257
+ appear at the same absolute path on every node, and `localhost` always means
258
+ the node where that worker runs.
287
259
 
288
- One tool surface, one admission path. What changes is the autonomy level, set
289
- in `/settings` or per run with `--autonomy`.
260
+ Read [Fleet Dispatch](docs/guide/fleet-dispatch.md) for configuration and invariants,
261
+ or follow the [Fleet Demo Runbook](docs/process/fleet-demo-runbook.md) for an end-to-end
262
+ example.
290
263
 
291
- | Level | Behavior |
264
+ ## Safety and evidence
265
+
266
+ Clio has one tool-admission path and four operator-visible autonomy levels:
267
+
268
+ | Level | What Clio may do |
292
269
  | --- | --- |
293
- | `read-only` | Inspection only. Every mutation and execution is denied. |
294
- | `suggest` | Mutations are proposed and parked for your approval. |
295
- | `auto-edit` | File edits proceed; execution and dispatch still gate. |
296
- | `full-auto` | Approved classes proceed unattended, still inside damage-control rules. |
297
-
298
- Every notice names its mechanism so you always know who stopped a call:
299
- `[safety-net]` for level-independent blocks, `[approval]` for parked calls,
300
- `[autonomy]` for read-only denials, and `[middleware]` for hook diagnostics.
301
- Workers can never exceed the orchestrator's authority; a dispatch can only
302
- narrow it, and reviewers and judges always run read-only. Details:
303
- [docs/safety-model.md](docs/safety-model.md).
304
-
305
- ## One machine or the whole cluster
306
-
307
- Clio's orchestrator delegates to bounded workers. Declare a fleet and those
308
- workers run on other machines over SSH while every guarantee holds: one
309
- admission path, one autonomy matrix, one receipt chain. The implicit `local`
310
- node is always present.
311
-
312
- ```yaml
313
- fleet:
314
- nodes:
315
- - id: node-a
316
- host: node-a.example.net
317
- maxWorkers: 2
318
- - id: node-b
319
- host: node-b.example.net
320
- maxWorkers: 1
270
+ | `read-only` | Inspect only; execution and mutation are denied. |
271
+ | `suggest` | Prepare mutations and wait for approval. |
272
+ | `auto-edit` | Apply file edits; execution and dispatch still pass their gates. |
273
+ | `full-auto` | Run approved action classes unattended, still inside safety-net and project-policy limits. |
274
+
275
+ The safety net applies at every level. Bash starts from a default-deny rule
276
+ pack; reads and observations are bounded; writes are serialized; protected
277
+ paths and project policy can narrow authority further. A worker can never gain
278
+ more authority than the process that dispatched it.
279
+
280
+ Every completed run seals a receipt over the facts Clio actually observed:
281
+ routing, model usage, priced cost where known, tool calls, safety decisions,
282
+ worker identity, timing, and result conformance. Inspect the same evidence from
283
+ the CLI or TUI:
284
+
285
+ ```bash
286
+ clio-coder evidence list
287
+ clio-coder evidence inspect <evidence-id>
288
+ clio-coder trace phases <run-id>
289
+ clio-coder trace tail <run-id>
321
290
  ```
322
291
 
323
- `clio-coder doctor` preflights every node. `clio-coder fleet list` names the
324
- builtin and discovered contracts, `clio-coder fleet new|validate|graph`
325
- authors a fleet contract from a builtin and checks it without dispatching
326
- anything, `clio-coder fleet run|status` drives and observes work (`fleet run
327
- --resume <runId>` replays a settled prefix), and `clio-coder fleet
328
- drain|resume` closes or reopens admission without interrupting running work.
329
- Contracts may declare a single writer, a gate step that must go red before the
330
- author is trusted, and a plan step whose architect delegates bounded tasks to
331
- a roster at run time. Nodes share the project
332
- filesystem at the same absolute path, and a target URL resolves on the node the
333
- worker runs on, so `localhost` means that node's own inference server. The
334
- end-to-end walkthrough, including a recorded multi-node demo, is in
335
- [docs/fleet-dispatch.md](docs/fleet-dispatch.md) and
336
- [docs/fleet-demo-runbook.md](docs/fleet-demo-runbook.md).
337
-
338
- ## Teach it your project
339
-
340
- **`CLIO-CODER.md`** is the project handbook Clio loads on every session.
341
- `clio-coder context init` drafts one from your actual source tree and can adopt
342
- existing `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, Cursor, and Copilot context
343
- with provenance. It is yours to edit and version; Clio's own runtime state
344
- stays in a gitignored `.clio-coder/`. A `CLIO-CODER.override.md` in a
345
- subdirectory replaces inherited guidance for that subtree.
346
-
347
- **The codewiki** from `clio-coder context index` is a structural map the
348
- `code_nav` tool navigates, so a model finds a symbol without reading half the
349
- repository into its window.
350
-
351
- **Skills** are reusable `SKILL.md` guides the model loads on demand, discovered
352
- from per-user and per-project roots including `.claude/skills` and
353
- `.codex/skills`. The shipped [catalog](skills/README.md) pins content hashes so
354
- an installed copy verifies against its audited source, and
355
- `clio-coder skills eval <name>` runs a skill's executable evals instead of
356
- trusting the prose.
357
-
358
- The catalog is also a local marketplace. On a request that matches an
359
- uninstalled skill and is not already covered by an installed one, the
360
- coordinator can offer project install, user install, not now, or never for that
361
- skill version, then continue the task in the same turn. Matching is local and
362
- lexical; request text does not leave the machine. Full-auto may skip the
363
- question, but it cannot skip the source gate: consented and autonomous
364
- promotion installs both accept only the shipped local catalog or this
365
- repository's own tree, and they install without activating. Dispatch workers
366
- never receive offers, and only the operator activates a skill with `/skill`.
367
- Manual `clio-coder skills install <path|github-url>` remains available for a
368
- source you deliberately choose; the own-marketplace guarantee governs what
369
- Clio installs on its own initiative.
370
-
371
- **Task memory** keeps long runs from drifting: a rules-only tier with no model
372
- calls watches tool and lifecycle hooks and surfaces advisory reminders at the
373
- right boundaries, `/memory` inspects it, and durable lessons are reviewed with
374
- `clio-coder memory list|propose|approve|reject|prune`. Design notes:
375
- [docs/proactive-memory.md](docs/proactive-memory.md).
292
+ Evidence helps you audit a run; it does not prove that generated code is
293
+ scientifically correct. Domain validation, reference results, and human review
294
+ remain part of the job. The detailed boundaries are in
295
+ [Safety Model](docs/architecture/safety-model.md), [Observability](docs/architecture/observability.md),
296
+ and [Scientific Validation](docs/process/scientific-validation.md).
297
+
298
+ ## Headless and editor use
299
+
300
+ The interactive TUI and automation surfaces use the same engine:
301
+
302
+ ```bash
303
+ clio-coder run "Summarize this repository's entry points."
304
+ clio-coder run "<task>" --json
305
+ clio-coder run "<task>" --agent coder
306
+ clio-coder acp
307
+ ```
308
+
309
+ Text mode reserves stdout for the final answer. `--json` emits JSONL events for
310
+ scripts, and `acp` serves Clio over stdio to Agent Client Protocol hosts. Exit
311
+ codes and output guarantees are documented in
312
+ [Exit Codes and Output](docs/guide/exit-codes-and-output.md) and
313
+ [ACP](docs/architecture/acp.md).
314
+
315
+ ## Settings and local state
316
+
317
+ User configuration is a strict `version: 2` YAML document organized into seven
318
+ durable areas: `chat`, `fleet`, `targets`, `context`, `safety`, `interface`, and
319
+ `integrations`. The same names are accepted as `/settings` deep links. Use the
320
+ Settings Center for ordinary changes; use the YAML inventory when you need a
321
+ reviewable lab or fleet configuration.
322
+
323
+ `clio-coder upgrade` migrates older settings before strict readers load them,
324
+ writes the result atomically, and keeps the original `settings.yaml.v1.bak`.
325
+ Conflicting old and new paths stop the migration instead of guessing.
326
+
327
+ Experimental pane, dock, and files-pane integrations are opt-in and off by default;
328
+ Clio does not start or download them unless you explicitly enable
329
+ `interface.panes`.
330
+
331
+ Use `clio-coder paths --json` to locate configuration, durable data, state, and
332
+ cache on the current machine. See the complete
333
+ [Settings Inventory](docs/guide/configuration-and-targets.md#settings-inventory) and
334
+ [Artifact Placement](docs/architecture/artifact-placement.md).
376
335
 
377
336
  ## Install
378
337
 
338
+ Requirements:
339
+
379
340
  - Node.js `>=22.19.0` and npm
380
- - Linux or macOS. Windows is best effort until a stable release.
381
- - At least one model target from the table above
341
+ - Linux or macOS; Windows support is currently best effort
342
+ - At least one local, institutional, subscription, or cloud model target
343
+
344
+ ### Install from npm
345
+
346
+ ```bash
347
+ npm install -g @iowarp/clio-coder
348
+ clio-coder configure
349
+ clio-coder --version
350
+ ```
382
351
 
383
- From npm, [Get started](#get-started) is the whole install. `clio-coder upgrade`
384
- moves an existing install to the latest release; `--channel=beta` follows a
385
- dist-tag instead.
352
+ ### Install from source
386
353
 
387
- From source, pinned to this release:
354
+ From source, pinned to this version:
388
355
 
389
356
  ```bash
390
- git clone --branch v0.4.1 https://github.com/iowarp/clio-coder.git
357
+ git clone --branch v0.4.2 https://github.com/iowarp/clio-coder.git
391
358
  cd clio-coder
359
+ npm ci
392
360
  npm run install:local
393
361
  export PATH="$HOME/.local/bin:$PATH"
394
362
  hash -r
395
363
  "$HOME/.local/bin/clio-coder" --version
396
364
  ```
397
365
 
398
- `npm run install:local` builds the CLI, links it at
399
- `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`, and initializes the home.
400
- Put the `export PATH` line in your shell profile. If an older install is on your
401
- `PATH`, `command -v clio-coder` shows which file the bare name reaches; the
402
- installer warns when it finds one.
366
+ `npm run install:local` builds and links the launcher at
367
+ `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`. Run
368
+ `command -v clio-coder` to see which installation the bare command reaches;
369
+ your shell may otherwise keep resolving an older launcher earlier on `PATH`.
370
+ Clone the default branch instead only when you deliberately want the current
371
+ development tree.
372
+
373
+ Upgrade and diagnose without deleting state:
374
+
375
+ ```bash
376
+ clio-coder upgrade
377
+ clio-coder doctor
378
+ clio-coder doctor --fix
379
+ ```
403
380
 
404
381
  To remove it, preview first:
405
382
 
@@ -408,180 +385,135 @@ clio-coder uninstall --dry-run
408
385
  clio-coder uninstall --remove-binary --force
409
386
  ```
410
387
 
411
- Full lifecycle details, including `reset` and the upgrade path, are in
412
- [docs/installation-and-lifecycle.md](docs/installation-and-lifecycle.md).
388
+ The full directory, permission, reset, migration, and uninstall behavior is in
389
+ [Installation and Lifecycle](docs/guide/installation-and-lifecycle.md).
413
390
 
414
- ## Status
391
+ ## Project status
415
392
 
416
- The current release is **v0.4.1**, installable from npm as
417
- [`@iowarp/clio-coder`](https://www.npmjs.com/package/@iowarp/clio-coder) or
418
- from source. Clio Coder is still experimental: we ship quickly, interfaces may
419
- change between minor versions, and model-specific behavior varies by target, so
420
- keep important repositories under version control and review what it proposes.
421
- Release notes live in the [CHANGELOG](CHANGELOG.md); every release is gated by
422
- the deterministic `npm run ci:release` suite.
393
+ The latest release is available from npm as
394
+ [`@iowarp/clio-coder`](https://www.npmjs.com/package/@iowarp/clio-coder) and
395
+ from [GitHub Releases](https://github.com/iowarp/clio-coder/releases/latest).
396
+ The exact release history belongs in the [CHANGELOG](CHANGELOG.md).
397
+
398
+ Clio Coder is still experimental. Interfaces may change between minor
399
+ versions, and model behavior varies by target and serving configuration. Keep
400
+ important work under version control, review proposed changes, and treat
401
+ model-dependent results as measurements rather than promises.
423
402
 
424
403
  ### Troubleshooting
425
404
 
426
- | Problem | Try this |
405
+ | Problem | First check |
427
406
  | --- | --- |
428
- | `clio-coder: command not found` | Run `npm run install:local`, then `hash -r`; confirm `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}` is on `PATH`. |
429
- | No model target is available | Run `clio-coder configure`, then `clio-coder targets --probe`. |
430
- | Local model does not respond | Confirm the server is running and the target URL is correct; `clio-coder targets` shows what Clio sees. |
431
- | Cloud model auth fails | Check `clio-coder auth status <target>` and verify the API key or login flow. |
432
- | A fleet node never gets work | Run `clio-coder doctor`; per-node preflight reports filesystem parity and target facts. |
433
- | State appears corrupted | Run `clio-coder doctor`, then `clio-coder doctor --fix`. |
434
-
435
- When filing an issue, include `clio-coder --version`, `node --version`,
436
- `clio-coder doctor`, and `clio-coder targets`. Redact secrets, private prompts,
437
- logs, and proprietary code. [docs/troubleshooting.md](docs/troubleshooting.md)
438
- is keyed by exact user-facing messages.
439
-
440
- ---
441
-
442
- # For agents
443
-
444
- If you are an AI agent operating inside this repository or driving Clio as a
445
- tool, start here.
446
-
447
- **Orient from the index, not from a wide read.** `clio-coder context index`
448
- builds a codewiki over the source and test tree; use `code_nav` in `entries`,
449
- `path`, or `symbol` mode first. The indexed entry points are
450
- `src/cli/index.ts`, `src/domains/agents/index.ts`,
451
- `src/domains/components/index.ts`, `src/domains/config/index.ts`,
452
- `src/domains/context/bootstrap.ts`, `src/domains/context/index.ts`,
453
- `src/domains/dispatch/index.ts`, and `src/domains/eval/index.ts`. Then read the
454
- local `CLIO-CODER.md`; it carries the project-specific invariants and traps
455
- that are not obvious from the source. `docs/` is source-aligned: when prose and
456
- source disagree, trust source, tests, and `CHANGELOG.md`.
457
-
458
- **The tool surface** is twenty tools in seven planes. Each plane is one policy
459
- unit covering action class, size posture, result schema, and concurrency rule.
460
-
461
- | Plane | Tools | Posture |
462
- | --- | --- | --- |
463
- | OBSERVE | `read`, `grep`, `find`, `ls`, `code_nav`, `context`, `credential_present` | Read class, parallel, bounded by a truncation envelope |
464
- | MUTATE | `write`, `edit` | Write class, sequential, queued through the file-mutation queue |
465
- | EXECUTE | `bash`, `git`, `verify` | Containment posture; `bash` is default-deny, `git` is read-only inspection |
466
- | ORCHESTRATE | `dispatch`, `monitor`, `steer`, `tasks`, `ledger` | Dispatch class, sequential except read-only `monitor` |
467
- | RETRIEVE | `web_fetch` | Network read, parallel |
468
- | INTERACT | `ask_user` | Host-owned operator interview |
469
- | ARTIFACT | `artifact` | Plans, reviews, and reports as durable artifacts |
470
-
471
- Every observation carries a truncation envelope with offload paths and next
472
- hints, so a large result is bounded rather than silently cut. Parameters and
473
- payloads: [docs/tool-usage.md](docs/tool-usage.md).
474
-
475
- **Dispatch** goes through one tool, one admission chain, and one autonomy
476
- matrix. `task` runs one assignment; `tasks: [...]` fans out; `mode:
477
- "sequential"` and `mode: "pipeline"` chain steps; `detach: true` returns ids to
478
- collect later with `monitor` in `collect` mode; `review: {...}` adds a
479
- read-only verifier gate; `mode: "compete"` runs two to four candidates in
480
- scratch worktrees behind a read-only judge. Every dispatch carries a typed
481
- `ExecutionRole` and answers a typed result contract; a cited line in a
482
- `scout-report` must fall inside a span the run actually read. The built-in
483
- fleet is `architect`, `coder`, `tester`, `verifier`, `debugger`, `documenter`,
484
- `scout`, `researcher`, `provenance`, and `git-master`
485
- ([docs/built-in-agents.md](docs/built-in-agents.md)); pin an id from it, since
486
- `agent: "auto"` is a fallback, not a router.
487
-
488
- **Every run seals a receipt** covering routing intent, the resolved route,
489
- worker attestation, priced cost, phase timing, tool activity, safety decisions,
490
- and result conformance. `clio-coder evidence inspect` and `/view verify <runId>`
491
- check them; `clio-coder trace` reads the same store.
492
- [docs/observability.md](docs/observability.md) has the shapes.
493
-
494
- ```bash
495
- clio-coder run "<task>" --json # one headless turn, JSONL events
496
- clio-coder acp # ACP v1 over stdio
497
- clio-coder fleet run <contract> # run a fleet DAG contract
498
- clio-coder evidence build|inspect|list # deterministic evidence artifacts
499
- clio-coder eval validate|run|report|compare|gate
500
- ```
501
-
502
- ---
407
+ | `clio-coder: command not found` | Run `command -v clio-coder`; make sure the npm global bin or `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}` is on `PATH`, then run `hash -r`. |
408
+ | No usable model target | Run `clio-coder configure`, then `clio-coder targets --probe`. |
409
+ | A local server does not answer | Verify the server process, URL, advertised model id, and `clio-coder targets` health row. |
410
+ | Cloud or subscription authentication fails | Run `clio-coder auth status <target-or-runtime>` and repeat the appropriate login flow. |
411
+ | A fleet node receives no work | Run `clio-coder doctor`; inspect node preflight, shared path, target reachability, and drain status. |
412
+ | Local state appears damaged | Run read-only `clio-coder doctor` first; use `doctor --fix` only for the repairs it offers. |
413
+
414
+ When reporting a problem, include `clio-coder --version`, `node --version`,
415
+ `clio-coder doctor`, and `clio-coder targets`. Redact credentials, private
416
+ prompts, proprietary code, and sensitive logs. The
417
+ [Troubleshooting Guide](docs/guide/troubleshooting.md) is keyed to user-facing errors.
418
+
419
+ ## For agents working on Clio Coder
420
+
421
+ If you are an AI agent entering this repository, orient narrowly before making
422
+ changes:
423
+
424
+ 1. Read [CONTRIBUTING.md](CONTRIBUTING.md), then the guide for the subsystem you
425
+ will touch in the [documentation index](docs/README.md). If a local
426
+ `CLIO-CODER.md` exists, read it for checkout-specific instructions.
427
+ 2. Start at the owning entry point. The main source roots are `src/cli/`,
428
+ `src/core/`, `src/domains/`, `src/engine/`, `src/entry/`,
429
+ `src/interactive/`, `src/tools/`, and `src/worker/`.
430
+ 3. Use `rg` and focused reads. Do not infer current behavior from release notes
431
+ or a similarly named legacy path.
432
+ 4. Treat source, schema validation, and contract tests as authoritative when a
433
+ document disagrees. Fix the document in the same change.
434
+ 5. Run the narrowest relevant test while iterating, then the repository gate
435
+ before handing work back.
436
+
437
+ Useful orientation:
438
+
439
+ | Concern | Start here |
440
+ | --- | --- |
441
+ | Source layout and domain boundaries | [Architecture](docs/architecture/architecture.md) |
442
+ | CLI and slash-command contracts | [Commands and Modes](docs/guide/commands-and-modes.md) |
443
+ | Tool schemas and bounded results | [Tool Usage](docs/guide/tool-usage.md) |
444
+ | Dispatch admission and worker mechanics | [Fleet Dispatch](docs/guide/fleet-dispatch.md), [Worker Dispatch](docs/architecture/worker-dispatch-mechanics.md) |
445
+ | Configuration schema and target resolution | [Configuration and Targets](docs/guide/configuration-and-targets.md) |
446
+ | Sessions, context, and persistence | [Session Lifecycle](docs/architecture/session-lifecycle.md), [Context Engine](docs/architecture/context-engine.md) |
447
+ | Safety and evidence | [Safety Model](docs/architecture/safety-model.md), [Observability](docs/architecture/observability.md) |
503
448
 
504
- # For contributors
449
+ ## For contributors
505
450
 
506
- The fastest way in is to fix something you hit while using Clio on your own
507
- research code. [CONTRIBUTING.md](CONTRIBUTING.md) covers setup, architecture
508
- invariants, branch and commit conventions, and the review rubric; security
509
- reports go through [SECURITY.md](SECURITY.md), not public issues.
451
+ The most valuable contributions often begin with a real obstacle in your own
452
+ research or software work. [CONTRIBUTING.md](CONTRIBUTING.md) covers setup,
453
+ architecture boundaries, commit conventions, and review expectations. Report
454
+ security issues through [SECURITY.md](SECURITY.md), not a public issue.
510
455
 
511
456
  ```bash
512
457
  npm ci
513
- npm run dev # tsup watch build
514
- npm run ci # typecheck, lint and hygiene, skills pin check, build, tests
515
- npm run ci:release # ci plus the dist and package audit that gates a release
458
+ npm run dev # rebuild on source changes
459
+ npm run ci # types, hygiene, build, deterministic tests
460
+ npm run ci:release # CI plus distribution and package audit
516
461
  ```
517
462
 
518
463
  | Check | Command |
519
464
  | --- | --- |
520
465
  | Types | `npm run typecheck` |
521
- | Style and domain boundaries | `npm run lint` |
522
- | One suite | `npm run test:file -- tests/contracts/<name>.test.ts` |
523
- | Everything | `npm run test` |
524
-
525
- Conventions worth knowing before your first PR: local imports end in `.js`,
526
- tests use `node:test`, `any` needs a tracking issue, and compile-time
527
- boundaries between domains are enforced by the hygiene lint rather than by
528
- convention. Read [docs/architecture.md](docs/architecture.md) before adding a
529
- cross-domain import. Live model validation
530
- (`npm run live:smoke -- --target <id>`) and the runnable reference suites under
531
- `evals/` are explicit, opt-in measurements. Neither runs in CI or the release
532
- gate, because no deterministic suite can promise that every local model
533
- behaves identically.
466
+ | Formatting, lint, and architecture hygiene | `npm run lint` |
467
+ | One contract file | `npm run test:file -- tests/contracts/<name>.test.ts` |
468
+ | Deterministic suite | `npm test` |
469
+ | Distribution package | `node scripts/check-release.mjs` |
470
+
471
+ Local imports end in `.js`, tests use `node:test`, and compile-time domain
472
+ boundaries are enforced by repository hygiene checks. Live target measurements
473
+ and the reference suites under `evals/` are explicit operator runs; they are
474
+ not hidden inside deterministic CI.
534
475
 
535
476
  ## Documentation
536
477
 
537
- The full set lives under [docs/](docs/README.md); from a source checkout,
538
- `clio-coder docs` serves the interactive blueprints locally. The pages people
539
- reach for most:
478
+ The [documentation index](docs/README.md) groups guides for users, operators,
479
+ researchers, and contributors. From a source checkout, `clio-coder docs` serves
480
+ the interactive blueprints locally. Frequently used pages:
540
481
 
541
482
  | Topic | Guide |
542
483
  | --- | --- |
543
- | Commands, slash commands, keybindings, operating posture | [commands-and-modes.md](docs/commands-and-modes.md) |
544
- | Targets, local model configuration, fleet profiles, auth | [configuration-and-targets.md](docs/configuration-and-targets.md) |
545
- | Model catalog, quantizations, context windows, quirks | [model-catalog.md](docs/model-catalog.md) |
546
- | Safety posture, default-deny Bash, damage-control rules | [safety-model.md](docs/safety-model.md) |
547
- | Multi-node fleet dispatch and the demo runbook | [fleet-dispatch.md](docs/fleet-dispatch.md), [fleet-demo-runbook.md](docs/fleet-demo-runbook.md) |
548
- | Built-in agents and dispatch admission | [built-in-agents.md](docs/built-in-agents.md) |
549
- | Context window, token accounting, compaction | [context-engine.md](docs/context-engine.md) |
550
- | Sessions, the ledger, `/tree`, `/fork`, `/resume` | [session-lifecycle.md](docs/session-lifecycle.md) |
551
- | Receipts, evidence, and `clio-coder trace` | [observability.md](docs/observability.md) |
552
- | The twenty tools, parameter by parameter | [tool-usage.md](docs/tool-usage.md) |
553
- | Exit codes, `--help`, and `--json` contracts | [exit-codes-and-output.md](docs/exit-codes-and-output.md) |
554
- | Install, upgrade, reset, uninstall | [installation-and-lifecycle.md](docs/installation-and-lifecycle.md) |
555
- | Adding a runtime or inference server | [provider-adapter-cookbook.md](docs/provider-adapter-cookbook.md) |
556
- | Source layout and domain boundaries | [architecture.md](docs/architecture.md) |
484
+ | Install, upgrade, reset, uninstall | [Installation and Lifecycle](docs/guide/installation-and-lifecycle.md) |
485
+ | Targets, auth, settings, fleet profiles | [Configuration and Targets](docs/guide/configuration-and-targets.md) |
486
+ | Commands, keybindings, and modes | [Commands and Modes](docs/guide/commands-and-modes.md) |
487
+ | Project context and context windows | [Context Engine](docs/architecture/context-engine.md) |
488
+ | Safety rules and autonomy | [Safety Model](docs/architecture/safety-model.md) |
489
+ | Fleet and multi-node execution | [Fleet Dispatch](docs/guide/fleet-dispatch.md) |
490
+ | Receipts, traces, and evidence | [Observability](docs/architecture/observability.md) |
491
+ | Exact CLI output contracts | [Exit Codes and Output](docs/guide/exit-codes-and-output.md) |
557
492
 
558
493
  ## Heritage
559
494
 
560
- Clio Coder is developed by the [Gnosis Research Center](https://grc.iit.edu)
561
- at the [Illinois Institute of Technology](https://www.iit.edu) in collaboration
562
- with the University of Utah. IOWarp and the CLIO architecture are funded by the
495
+ Clio Coder is developed by the
496
+ [Gnosis Research Center](https://grc.iit.edu) at the
497
+ [Illinois Institute of Technology](https://www.iit.edu) in collaboration with
498
+ the University of Utah. IOWarp and the CLIO architecture are funded by the
563
499
  National Science Foundation under
564
500
  [Award #2411318](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318) for
565
501
  2024 through 2029. Principal Investigator: Dr. Xian-He Sun. Co-Principal
566
502
  Investigators: Dr. Anthony Kougkas, Dr. Jake Hochhalter, and Dr. Vivek
567
503
  Srikumar.
568
504
 
569
- Clio Coder is the interactive coding orchestrator in a larger ecosystem:
505
+ Clio Coder is one part of a larger ecosystem:
570
506
  [clio-core](https://github.com/iowarp/clio-core) is the tiered data and context
571
- storage layer, and [clio-kit](https://github.com/iowarp/clio-kit) is a suite of
572
- [Model Context Protocol](https://modelcontextprotocol.io) servers exposing 150+
573
- tools for scientific computing.
574
-
575
- It is built on the **Pi Agent Framework** from
576
- [Earendil Works](https://github.com/earendil-works)
577
- ([pi-ai](https://www.npmjs.com/package/@earendil-works/pi-ai),
578
- [pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui), and
579
- [pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core)),
580
- the **Anthropic Claude Agent SDK** for Claude Code worker runs, the **Agent
581
- Client Protocol** for editor frontends, and **Globus Auth** for ALCF's inference
582
- gateways. Subagents and prompt techniques are evaluated against
583
- [SWE-bench](https://www.swebench.com) and SciCode, with structured execution
584
- evidence matched against baselines to catch silent regressions.
507
+ storage layer, and [clio-kit](https://github.com/iowarp/clio-kit) provides
508
+ [Model Context Protocol](https://modelcontextprotocol.io) servers for
509
+ scientific data and computing tools.
510
+
511
+ It builds on the **Pi Agent Framework** from
512
+ [Earendil Works](https://github.com/earendil-works), the **Anthropic Claude
513
+ Agent SDK** for supported Claude worker runs, the **Agent Client Protocol** for
514
+ editor frontends, and **Globus Auth** for ALCF inference gateways. The repository
515
+ also ships a local eval engine and reviewable reference suites under `evals/`
516
+ for reproducible, operator-run measurements.
585
517
 
586
518
  ---
587
519