@iowarp/clio-coder 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/CHANGELOG.md +233 -373
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +284 -613
  4. package/dist/{acp-FPR54DGL.js → acp-P2AQILE2.js} +43 -53
  5. package/dist/{agents-OGPIHPJH.js → agents-72W3BI7I.js} +43 -26
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
  8. package/dist/chunk-2DJ2KNFG.js +2095 -0
  9. package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
  10. package/dist/chunk-2SFS6XQE.js +122 -0
  11. package/dist/{chunk-PV4JUBVJ.js → chunk-2TLUCQVG.js} +40 -21
  12. package/dist/chunk-2VTFPG5O.js +48 -0
  13. package/dist/chunk-4BJ5BYCE.js +61 -0
  14. package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
  15. package/dist/chunk-4VP4KH3K.js +962 -0
  16. package/dist/chunk-4XUGQOHA.js +797 -0
  17. package/dist/chunk-4ZG3XFUR.js +77 -0
  18. package/dist/chunk-5B2AEOW5.js +5407 -0
  19. package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
  20. package/dist/{chunk-4QKXUHSR.js → chunk-5UFT4SUX.js} +70 -20
  21. package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
  22. package/dist/chunk-65DEGPJ6.js +52 -0
  23. package/dist/chunk-6EJMN2Y3.js +17 -0
  24. package/dist/chunk-6N5PTWMY.js +136 -0
  25. package/dist/chunk-6SGHMWE3.js +277 -0
  26. package/dist/chunk-6XLNIQDB.js +27 -0
  27. package/dist/chunk-7CR24IG7.js +242 -0
  28. package/dist/chunk-7MNJORFF.js +22 -0
  29. package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
  30. package/dist/chunk-AGYYIBLL.js +1069 -0
  31. package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
  32. package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
  33. package/dist/chunk-CBCAPZAA.js +229 -0
  34. package/dist/chunk-CMZWFGD2.js +352 -0
  35. package/dist/chunk-COU2UHX6.js +400 -0
  36. package/dist/chunk-DSELYM6W.js +1077 -0
  37. package/dist/chunk-DUYJ5IO6.js +644 -0
  38. package/dist/chunk-ECH6PKUQ.js +39 -0
  39. package/dist/chunk-ED4KHGC3.js +143 -0
  40. package/dist/chunk-EKMEHE4H.js +340 -0
  41. package/dist/chunk-FCSXB6T2.js +338 -0
  42. package/dist/chunk-FJ3H4MN5.js +48 -0
  43. package/dist/{chunk-RPTR2H26.js → chunk-FNTMWMX5.js} +21 -15
  44. package/dist/chunk-FQ4SKYE4.js +29 -0
  45. package/dist/chunk-G4BMMOKF.js +182 -0
  46. package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
  47. package/dist/chunk-HC4CLZ2Y.js +68 -0
  48. package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
  49. package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
  50. package/dist/chunk-I4HZDVNP.js +73 -0
  51. package/dist/chunk-IKCO5N3L.js +162 -0
  52. package/dist/chunk-IR4CFBFN.js +56 -0
  53. package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
  54. package/dist/chunk-J7CWMCQD.js +255 -0
  55. package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
  56. package/dist/chunk-KZWTDYJF.js +217 -0
  57. package/dist/chunk-LBMZMYH2.js +285 -0
  58. package/dist/{chunk-G34LV2PF.js → chunk-LM5TQCJZ.js} +84 -170
  59. package/dist/chunk-LW6DSM3M.js +5135 -0
  60. package/dist/chunk-LWLEKMDQ.js +3482 -0
  61. package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
  62. package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
  63. package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
  64. package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
  65. package/dist/chunk-OAO4GE4M.js +619 -0
  66. package/dist/{chunk-Q3RUPKEJ.js → chunk-OC7FIQPC.js} +58 -189
  67. package/dist/chunk-OKGUZO2U.js +34 -0
  68. package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
  69. package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
  70. package/dist/chunk-OQE5J4C6.js +73 -0
  71. package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
  72. package/dist/{chunk-MAR7Y6HW.js → chunk-PAJK6MAQ.js} +23 -16
  73. package/dist/{chunk-M5T5VO65.js → chunk-PIWWS5BL.js} +837 -635
  74. package/dist/chunk-POHLU5DW.js +1186 -0
  75. package/dist/chunk-QKMUKYO7.js +4961 -0
  76. package/dist/chunk-SRDMMSEP.js +16405 -0
  77. package/dist/chunk-SST6Z5JA.js +80 -0
  78. package/dist/chunk-STBPMHSX.js +2456 -0
  79. package/dist/chunk-T6YILFSB.js +80 -0
  80. package/dist/chunk-TZK7PACC.js +174 -0
  81. package/dist/chunk-TZTZS7QK.js +227 -0
  82. package/dist/{chunk-ASND7OZK.js → chunk-UFIIWP2H.js} +13 -13
  83. package/dist/chunk-UOV2BYIW.js +107 -0
  84. package/dist/{chunk-PFEFKVGL.js → chunk-V6RTAOC2.js} +13 -11
  85. package/dist/chunk-VAKQQHWR.js +434 -0
  86. package/dist/chunk-VG7TBQIY.js +128 -0
  87. package/dist/chunk-VJWL6YS5.js +244 -0
  88. package/dist/{chunk-EYOKLTMF.js → chunk-VPAYEGVX.js} +17 -3
  89. package/dist/chunk-WEH5XRJQ.js +32 -0
  90. package/dist/chunk-X4RCMKVQ.js +641 -0
  91. package/dist/{chunk-TEKV33Q5.js → chunk-X6IAEBZR.js} +65 -33
  92. package/dist/chunk-XBXAASKX.js +18 -0
  93. package/dist/chunk-XN3L4EYL.js +46 -0
  94. package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
  95. package/dist/chunk-YHZX5GEU.js +193 -0
  96. package/dist/chunk-YXLYO42X.js +91 -0
  97. package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
  98. package/dist/chunk-ZI647VB5.js +37 -0
  99. package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
  100. package/dist/chunk-ZWMF7253.js +1882 -0
  101. package/dist/cli/index.js +62 -54
  102. package/dist/clio-JOU4FXVA.js +25 -0
  103. package/dist/code-nav-7AX6FYE6.js +600 -0
  104. package/dist/codewiki/build-worker.js +66 -0
  105. package/dist/compile-cache-CVJMMODC.js +18 -0
  106. package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
  107. package/dist/{config-IRUQ7SE4.js → config-XCDVKR23.js} +92 -55
  108. package/dist/configure-4GAP54ZW.js +42 -0
  109. package/dist/{context-5RADCKTR.js → context-4UOGGLQ5.js} +71 -35
  110. package/dist/context-5VKGUVJJ.js +866 -0
  111. package/dist/{context-3KWFLHJG.js → context-77FM5DV5.js} +15 -13
  112. package/dist/{context-clear-7TSNPAAI.js → context-clear-XXJRLCJJ.js} +54 -28
  113. package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
  114. package/dist/dispatch-runner-QPRDDBDX.js +1997 -0
  115. package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
  116. package/dist/{doctor-UC5NAJYQ.js → doctor-HR46URBJ.js} +27 -17
  117. package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
  118. package/dist/{evidence-YEGUW4L3.js → evidence-6HG2PY2B.js} +46 -26
  119. package/dist/{evolve-TXARCTPG.js → evolve-K7YU3NCY.js} +45 -25
  120. package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
  121. package/dist/{fleet-6G3DHNYE.js → fleet-VY3HHKN6.js} +163 -54
  122. package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
  123. package/dist/{init-KZ5QTF6M.js → init-JYGXI3FK.js} +69 -32
  124. package/dist/{memory-73ESV5YC.js → memory-WFZMGYHX.js} +48 -27
  125. package/dist/{models-A4PVNWJK.js → models-I5QWSEOM.js} +39 -25
  126. package/dist/monitor-GE4ID3IA.js +661 -0
  127. package/dist/{chunk-FCIH3BIZ.js → orchestrator-EM5MC3HM.js} +15979 -12407
  128. package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
  129. package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
  130. package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
  131. package/dist/{run-YTPEYQOH.js → run-ZU3QMZPZ.js} +101 -61
  132. package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
  133. package/dist/{skills-2V6RA3OQ.js → skills-X5VXCRNQ.js} +34 -14
  134. package/dist/{skills-eval-S2TVJO4F.js → skills-eval-WKIHWTHR.js} +70 -34
  135. package/dist/steer-GGWFUJUD.js +77 -0
  136. package/dist/{targets-TYXLPB23.js → targets-SNCPI2NR.js} +43 -27
  137. package/dist/terminal-lease-BNAHVHBS.js +395 -0
  138. package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
  139. package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
  140. package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
  141. package/dist/{upgrade-33G2LMM5.js → upgrade-JQHHPQ4K.js} +45 -25
  142. package/dist/{usage-ZAFSXKKG.js → usage-OR4O5SMZ.js} +62 -31
  143. package/dist/verify-375KUB3Y.js +716 -0
  144. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  145. package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-UEXP2ARI.js} +74 -34
  146. package/dist/worker/entry.js +221 -36
  147. package/dist/workspace-G4ZWUIPR.js +22 -0
  148. package/docs/README.md +22 -17
  149. package/docs/acp.md +168 -16
  150. package/docs/alcf-provider.md +1 -1
  151. package/docs/architecture.md +136 -7
  152. package/docs/artifact-versions.md +1 -1
  153. package/docs/built-in-agents.md +1 -1
  154. package/docs/capacity-and-scheduling.md +1 -1
  155. package/docs/commands-and-modes.md +114 -71
  156. package/docs/config-knobs-audit.md +1 -3
  157. package/docs/configuration-and-targets.md +174 -46
  158. package/docs/context-engine.md +29 -6
  159. package/docs/development-pipeline.md +26 -1
  160. package/docs/dispatch-architecture-rationale.md +1 -1
  161. package/docs/documentation-coverage.md +2 -2
  162. package/docs/documentation-guide.md +1 -1
  163. package/docs/environment-variables.md +13 -5
  164. package/docs/eval-runner.md +1 -1
  165. package/docs/evals-internal.md +1 -1
  166. package/docs/evidence-and-memory.md +6 -2
  167. package/docs/evolution.md +2 -2
  168. package/docs/exit-codes-and-output.md +15 -9
  169. package/docs/extensions-and-sharing.md +9 -9
  170. package/docs/fleet-dispatch.md +7 -5
  171. package/docs/git-commit-provenance.md +120 -0
  172. package/docs/glossary.md +1 -1
  173. package/docs/installation-and-lifecycle.md +34 -27
  174. package/docs/middleware-and-components.md +1 -1
  175. package/docs/model-catalog.md +45 -14
  176. package/docs/observability.md +8 -5
  177. package/docs/performance-methodology.md +491 -0
  178. package/docs/pi-boundary.md +72 -0
  179. package/docs/proactive-memory.md +3 -3
  180. package/docs/prompt-envelope-and-tools.md +24 -3
  181. package/docs/provider-adapter-cookbook.md +57 -4
  182. package/docs/release-cut-checklist.md +129 -115
  183. package/docs/safety-model.md +9 -5
  184. package/docs/scientific-validation.md +3 -3
  185. package/docs/session-lifecycle.md +55 -12
  186. package/docs/skills-marketplace.md +12 -8
  187. package/docs/time-conventions.md +1 -1
  188. package/docs/tool-usage.md +3 -3
  189. package/docs/trace-store.md +1 -1
  190. package/docs/troubleshooting.md +10 -7
  191. package/docs/tui-design.md +47 -10
  192. package/docs/worker-dispatch-mechanics.md +1 -1
  193. package/package.json +19 -22
  194. package/skills/coding/ast-grep/SKILL.md +136 -0
  195. package/skills/coding/ast-grep/evals.md +56 -0
  196. package/skills/coding/ast-grep/references/rule_reference.md +297 -0
  197. package/skills/coding/coding-standards/SKILL.md +113 -0
  198. package/skills/coding/coding-standards/evals.md +34 -0
  199. package/skills/coding/prototype/SKILL.md +86 -0
  200. package/skills/coding/prototype/evals.md +42 -0
  201. package/skills/coding/prototype/references/LOGIC.md +67 -0
  202. package/skills/coding/prototype/references/UI.md +112 -0
  203. package/skills/coding/tdd/SKILL.md +101 -0
  204. package/skills/coding/tdd/evals.md +41 -0
  205. package/skills/coding/tdd/references/mocking.md +59 -0
  206. package/skills/coding/tdd/references/tests.md +77 -0
  207. package/skills/context/context-handoff/SKILL.md +126 -0
  208. package/skills/context/context-handoff/evals.md +57 -0
  209. package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
  210. package/skills/context/context-prime/SKILL.md +95 -0
  211. package/skills/context/context-prime/evals.md +54 -0
  212. package/skills/meta/clio-dev/SKILL.md +91 -0
  213. package/skills/meta/clio-dev/evals.md +45 -0
  214. package/skills/meta/clio-test/SKILL.md +130 -0
  215. package/skills/meta/clio-test/evals.md +43 -0
  216. package/skills/meta/clio-test/references/harness.md +97 -0
  217. package/skills/meta/clio-test/references/test-map.md +59 -0
  218. package/skills/meta/credentials/SKILL.md +125 -0
  219. package/skills/meta/credentials/evals.md +104 -0
  220. package/skills/meta/find-skills/SKILL.md +72 -0
  221. package/skills/meta/find-skills/evals.md +47 -0
  222. package/skills/meta/herdr/SKILL.md +127 -0
  223. package/skills/meta/herdr/evals.md +38 -0
  224. package/skills/meta/skill-craft/SKILL.md +102 -0
  225. package/skills/meta/skill-craft/evals.md +41 -0
  226. package/skills/planning/architecture/SKILL.md +129 -0
  227. package/skills/planning/architecture/evals.md +36 -0
  228. package/skills/planning/backlog/SKILL.md +90 -0
  229. package/skills/planning/backlog/evals.md +43 -0
  230. package/skills/planning/prd/SKILL.md +82 -0
  231. package/skills/planning/prd/evals.md +49 -0
  232. package/skills/planning/product-intent/SKILL.md +112 -0
  233. package/skills/planning/product-intent/evals.md +36 -0
  234. package/skills/planning/tech-spec/SKILL.md +115 -0
  235. package/skills/planning/tech-spec/evals.md +47 -0
  236. package/skills/registry.yaml +136 -0
  237. package/skills/research/arxiv-literature/SKILL.md +104 -0
  238. package/skills/research/arxiv-literature/evals.md +58 -0
  239. package/skills/research/experiment-protocol/SKILL.md +122 -0
  240. package/skills/research/experiment-protocol/evals.md +91 -0
  241. package/skills/research/scientific-debugging/SKILL.md +119 -0
  242. package/skills/research/scientific-debugging/evals.md +138 -0
  243. package/skills/research/scientific-modernization/SKILL.md +138 -0
  244. package/skills/research/scientific-modernization/evals.md +84 -0
  245. package/skills/workflow/design-council/SKILL.md +139 -0
  246. package/skills/workflow/design-council/evals.md +97 -0
  247. package/skills/workflow/grill-me/SKILL.md +186 -0
  248. package/skills/workflow/grill-me/evals.md +78 -0
  249. package/skills/workflow/workflow-distiller/SKILL.md +136 -0
  250. package/skills/workflow/workflow-distiller/evals.md +107 -0
  251. package/src/cli/acp.ts +31 -4
  252. package/src/cli/clio.ts +68 -6
  253. package/src/cli/config-inspect.ts +28 -22
  254. package/src/cli/configure.ts +47 -9
  255. package/src/cli/context-clear.ts +2 -2
  256. package/src/cli/context-index.ts +21 -23
  257. package/src/cli/context.ts +13 -8
  258. package/src/cli/default-target.ts +9 -17
  259. package/src/cli/docs.ts +11 -5
  260. package/src/cli/evidence.ts +4 -1
  261. package/src/cli/extensions.ts +10 -1
  262. package/src/cli/fleet.ts +47 -6
  263. package/src/cli/index.ts +55 -26
  264. package/src/cli/memory.ts +3 -1
  265. package/src/cli/models.ts +1 -1
  266. package/src/cli/modes/json-stream.ts +37 -1
  267. package/src/cli/modes/print.ts +24 -9
  268. package/src/cli/run.ts +2 -2
  269. package/src/cli/skills-eval.ts +23 -8
  270. package/src/cli/skills.ts +19 -4
  271. package/src/cli/targets.ts +4 -0
  272. package/src/cli/text-layout.ts +15 -5
  273. package/src/cli/trace.ts +62 -14
  274. package/src/cli/upgrade.ts +18 -2
  275. package/src/cli/usage.ts +10 -3
  276. package/src/cli/wiki-generate.ts +2 -1
  277. package/src/core/agent-environment.ts +7 -0
  278. package/src/core/bash-exec.ts +72 -1
  279. package/src/core/boot-trace.ts +9 -4
  280. package/src/core/bus-events.ts +20 -4
  281. package/src/core/commit-attribution.ts +157 -0
  282. package/src/core/compile-cache.ts +159 -0
  283. package/src/core/config.ts +131 -2
  284. package/src/core/defaults.ts +39 -5
  285. package/src/core/domain-loader.ts +12 -5
  286. package/src/core/git-commit-attribution.ts +387 -0
  287. package/src/core/incomplete-installation.ts +45 -0
  288. package/src/core/response-schema.ts +1 -1
  289. package/src/core/safe-exec.ts +13 -1
  290. package/src/core/settings-layers.ts +155 -21
  291. package/src/core/skill-activation.ts +1 -1
  292. package/src/core/startup-timer.ts +3 -3
  293. package/src/core/state-file-lock.ts +13 -1
  294. package/src/core/termination.ts +78 -5
  295. package/src/domains/config/classify.ts +15 -3
  296. package/src/domains/config/extension.ts +19 -13
  297. package/src/domains/config/index.ts +10 -0
  298. package/src/domains/config/keybindings.ts +45 -9
  299. package/src/domains/context/bootstrap-prompt.ts +1 -1
  300. package/src/domains/context/bootstrap.ts +111 -18
  301. package/src/domains/context/clear.ts +16 -11
  302. package/src/domains/context/clio-md.ts +111 -9
  303. package/src/domains/context/codewiki/artifact.ts +400 -0
  304. package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
  305. package/src/domains/context/codewiki/build-worker.ts +54 -0
  306. package/src/domains/context/codewiki/coordinator.ts +182 -0
  307. package/src/domains/context/codewiki/indexer.ts +59 -144
  308. package/src/domains/context/codewiki/paths.ts +67 -0
  309. package/src/domains/context/codewiki/schema.ts +80 -0
  310. package/src/domains/context/codewiki/tree-sitter.ts +1 -1
  311. package/src/domains/context/contract.ts +11 -5
  312. package/src/domains/context/extension.ts +94 -143
  313. package/src/domains/context/fingerprint.ts +3 -1
  314. package/src/domains/context/index.ts +12 -22
  315. package/src/domains/context/project-metadata.ts +19 -0
  316. package/src/domains/context/prompt-context.ts +9 -10
  317. package/src/domains/context/refresh.ts +29 -21
  318. package/src/domains/context/runtime.ts +17 -0
  319. package/src/domains/context/wiki/generate.ts +39 -34
  320. package/src/domains/context/wiki/plan.ts +1 -1
  321. package/src/domains/context/wiki/prompts.ts +21 -8
  322. package/src/domains/dispatch/code-step.ts +20 -1
  323. package/src/domains/dispatch/extension.ts +158 -21
  324. package/src/domains/dispatch/failure-classification.ts +6 -0
  325. package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
  326. package/src/domains/dispatch/orphan-recovery.ts +50 -8
  327. package/src/domains/dispatch/receipt-integrity.ts +5 -0
  328. package/src/domains/dispatch/state.ts +31 -6
  329. package/src/domains/dispatch/transport.ts +2 -1
  330. package/src/domains/dispatch/types.ts +14 -0
  331. package/src/domains/dispatch/worker-spawn.ts +21 -2
  332. package/src/domains/eval/metrics/context.ts +1 -1
  333. package/src/domains/eval/types.ts +0 -1
  334. package/src/domains/evidence/build.ts +41 -1
  335. package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
  336. package/src/domains/lifecycle/migrations/index.ts +24 -4
  337. package/src/domains/middleware/hooks-io.ts +12 -0
  338. package/src/domains/middleware/skills-reminder.ts +30 -15
  339. package/src/domains/prompts/compiler.ts +142 -84
  340. package/src/domains/prompts/contract.ts +18 -2
  341. package/src/domains/prompts/extension.ts +39 -7
  342. package/src/domains/prompts/fragment-loader.ts +0 -1
  343. package/src/domains/prompts/fragments/identity/clio.md +2 -4
  344. package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
  345. package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
  346. package/src/domains/prompts/fragments/operating/contract.md +4 -50
  347. package/src/domains/prompts/fragments/operating/delegation.md +42 -0
  348. package/src/domains/prompts/fragments/operating/skills.md +26 -0
  349. package/src/domains/prompts/fragments/operating/worker.md +16 -0
  350. package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
  351. package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
  352. package/src/domains/prompts/fragments/safety/read-only.md +4 -4
  353. package/src/domains/prompts/fragments/safety/suggest.md +2 -2
  354. package/src/domains/prompts/fragments/wiki/page.md +10 -0
  355. package/src/domains/prompts/fragments/wiki/plan.md +10 -0
  356. package/src/domains/prompts/preload.ts +3 -3
  357. package/src/domains/providers/auth/api-key.ts +1 -1
  358. package/src/domains/providers/auth/backend-file.ts +20 -10
  359. package/src/domains/providers/auth/backend-memory.ts +59 -4
  360. package/src/domains/providers/auth/boot-status.ts +65 -0
  361. package/src/domains/providers/auth/oauth.ts +2 -1
  362. package/src/domains/providers/auth/storage.ts +97 -38
  363. package/src/domains/providers/capabilities.ts +12 -4
  364. package/src/domains/providers/contract.ts +15 -4
  365. package/src/domains/providers/extension.ts +18 -6
  366. package/src/domains/providers/model-runtime-capabilities.ts +15 -4
  367. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
  368. package/src/domains/providers/plugins.ts +5 -3
  369. package/src/domains/providers/probe/fingerprint.ts +25 -5
  370. package/src/domains/providers/registry.ts +31 -10
  371. package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
  372. package/src/domains/providers/runtimes/builtins.ts +2 -2
  373. package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
  374. package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
  375. package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
  376. package/src/domains/providers/support.ts +6 -3
  377. package/src/domains/providers/types/local-model-quirks.ts +7 -9
  378. package/src/domains/providers/types/runtime-descriptor.ts +12 -1
  379. package/src/domains/providers/types/target-descriptor.ts +22 -0
  380. package/src/domains/resources/contract.ts +0 -1
  381. package/src/domains/resources/extension.ts +1 -3
  382. package/src/domains/resources/loader.ts +3 -4
  383. package/src/domains/resources/prompts/loader.ts +16 -2
  384. package/src/domains/resources/prompts/substitute.ts +1 -65
  385. package/src/domains/resources/skills/content-hash.ts +2 -0
  386. package/src/domains/resources/skills/install.ts +17 -0
  387. package/src/domains/resources/skills/loader.ts +17 -10
  388. package/src/domains/resources/skills/marketplace.ts +55 -9
  389. package/src/domains/safety/action-classifier.ts +4 -2
  390. package/src/domains/safety/audit.ts +8 -2
  391. package/src/domains/safety/extension.ts +1 -1
  392. package/src/domains/session/compaction/branch-summary.ts +3 -2
  393. package/src/domains/session/compaction/cut-point.ts +2 -1
  394. package/src/domains/session/compaction/tokens.ts +2 -1
  395. package/src/domains/session/context-ledger.ts +14 -0
  396. package/src/domains/session/contract.ts +15 -0
  397. package/src/domains/session/decision-board.ts +190 -0
  398. package/src/domains/session/entries.ts +66 -3
  399. package/src/domains/session/extension.ts +93 -12
  400. package/src/domains/session/retry.ts +10 -18
  401. package/src/domains/session/session-artifacts.ts +107 -0
  402. package/src/domains/session/task-board.ts +207 -13
  403. package/src/domains/session/tree/active-path.ts +44 -5
  404. package/src/domains/session/tree/fork.ts +26 -27
  405. package/src/domains/session/tree/preview.ts +2 -2
  406. package/src/domains/session/workspace/git-probe.ts +17 -11
  407. package/src/domains/user-tasks/store.ts +297 -0
  408. package/src/engine/acp/errors.ts +96 -0
  409. package/src/engine/acp/server.ts +1728 -146
  410. package/src/engine/acp/transport.ts +135 -14
  411. package/src/engine/acp/types.ts +26 -0
  412. package/src/engine/agent.ts +3 -3
  413. package/src/engine/ai.ts +32 -27
  414. package/src/engine/alcf-oauth.ts +26 -19
  415. package/src/engine/api-registry.ts +223 -0
  416. package/src/engine/apis/index.ts +3 -7
  417. package/src/engine/apis/llamacpp-residency.ts +49 -9
  418. package/src/engine/apis/lmstudio-residency.ts +5 -21
  419. package/src/engine/apis/lmstudio.ts +243 -0
  420. package/src/engine/apis/ollama-native.ts +24 -3
  421. package/src/engine/apis/openai-completions.ts +170 -91
  422. package/src/engine/apis/residency.ts +139 -3
  423. package/src/engine/apis/types.ts +16 -0
  424. package/src/engine/env-api-keys.ts +98 -0
  425. package/src/engine/gemma-channel-filter.ts +223 -0
  426. package/src/engine/instrumented-tui.ts +192 -0
  427. package/src/engine/messages.ts +14 -0
  428. package/src/engine/models.ts +42 -0
  429. package/src/engine/oauth.ts +16 -12
  430. package/src/engine/prompt-templates.ts +1 -0
  431. package/src/engine/provider-payload.ts +16 -59
  432. package/src/engine/strip-tokenizer-sentinels.ts +1 -1
  433. package/src/engine/truncate.ts +9 -0
  434. package/src/engine/tui.ts +17 -9
  435. package/src/engine/types.ts +3 -6
  436. package/src/engine/worker-runtime-capabilities.ts +5 -0
  437. package/src/engine/worker-runtime.ts +1 -1
  438. package/src/engine/worker-tools.ts +9 -4
  439. package/src/entry/boot-options.ts +50 -0
  440. package/src/entry/orchestrator.ts +288 -150
  441. package/src/interactive/application-controller.ts +89 -2
  442. package/src/interactive/chat-loop.ts +266 -41
  443. package/src/interactive/chat-panel.ts +715 -278
  444. package/src/interactive/chat-renderer.ts +306 -85
  445. package/src/interactive/clio-editor.ts +3 -8
  446. package/src/interactive/command-fallbacks.ts +2 -2
  447. package/src/interactive/context-overlay.ts +27 -1
  448. package/src/interactive/editor-submit.ts +253 -24
  449. package/src/interactive/export-html/ansi-to-html.ts +161 -0
  450. package/src/interactive/export-html/index.ts +51 -0
  451. package/src/interactive/export-html/template.ts +45 -0
  452. package/src/interactive/export-html/tool-renderer.ts +54 -0
  453. package/src/interactive/footer/dashboard.ts +4 -0
  454. package/src/interactive/footer/notifications.ts +1 -1
  455. package/src/interactive/footer/widgets.ts +42 -22
  456. package/src/interactive/footer-panel.ts +8 -3
  457. package/src/interactive/format-time.ts +14 -2
  458. package/src/interactive/interactive-application.ts +203 -17
  459. package/src/interactive/interactive-event-projection.ts +18 -1
  460. package/src/interactive/interactive-input-runtime.ts +50 -4
  461. package/src/interactive/interactive-presentation.ts +151 -19
  462. package/src/interactive/interactive-shell.ts +268 -14
  463. package/src/interactive/interactive-slash-runtime.ts +184 -117
  464. package/src/interactive/interactive-tickers.ts +38 -7
  465. package/src/interactive/keybinding-manager.ts +1 -1
  466. package/src/interactive/layout.ts +40 -3
  467. package/src/interactive/overlay-frame.ts +1 -1
  468. package/src/interactive/overlay-general-openers.ts +58 -1
  469. package/src/interactive/overlay-key-routing.ts +3 -0
  470. package/src/interactive/overlay-lifecycle.ts +13 -0
  471. package/src/interactive/overlay-permission-lifecycle.ts +2 -1
  472. package/src/interactive/overlay-session-lifecycle.ts +69 -12
  473. package/src/interactive/overlays/ask-user.ts +146 -24
  474. package/src/interactive/overlays/decisions.ts +300 -0
  475. package/src/interactive/overlays/help-reference.ts +15 -10
  476. package/src/interactive/overlays/model-selector.ts +34 -16
  477. package/src/interactive/overlays/session-selector.ts +18 -0
  478. package/src/interactive/overlays/settings.ts +105 -17
  479. package/src/interactive/overlays/skills-hub.ts +4 -4
  480. package/src/interactive/overlays/tree-selector.ts +41 -6
  481. package/src/interactive/render-trace.ts +499 -90
  482. package/src/interactive/renderers/compaction-summary.ts +2 -2
  483. package/src/interactive/renderers/diff.ts +115 -104
  484. package/src/interactive/renderers/mermaid.ts +53 -0
  485. package/src/interactive/renderers/tool-execution.ts +516 -168
  486. package/src/interactive/renderers/worker-entry.ts +20 -4
  487. package/src/interactive/session-switch-settlement.ts +10 -0
  488. package/src/interactive/slash-autocomplete.ts +6 -114
  489. package/src/interactive/slash-commands.ts +135 -47
  490. package/src/interactive/slash-spec.ts +9 -38
  491. package/src/interactive/status/controller.ts +5 -1
  492. package/src/interactive/status/index.ts +12 -1
  493. package/src/interactive/status/reasoning.ts +87 -0
  494. package/src/interactive/status/summary.ts +13 -2
  495. package/src/interactive/stdout-backpressure.ts +99 -0
  496. package/src/interactive/stream-pacer.ts +530 -0
  497. package/src/interactive/stream-pacing-policy.ts +66 -0
  498. package/src/interactive/tasks-overlay.ts +368 -14
  499. package/src/interactive/terminal-lease.ts +485 -0
  500. package/src/interactive/theme/tokens.ts +1 -1
  501. package/src/interactive/transcript-detail.ts +120 -0
  502. package/src/interactive/turn-context.ts +4 -3
  503. package/src/interactive/turn-persistence.ts +30 -13
  504. package/src/interactive/turn-queues.ts +12 -0
  505. package/src/interactive/turn-recovery.ts +25 -8
  506. package/src/interactive/turn-runtime.ts +79 -12
  507. package/src/interactive/turn-state.ts +10 -0
  508. package/src/interactive/view/artifacts.ts +114 -4
  509. package/src/interactive/view/view-overlay.ts +3 -0
  510. package/src/interactive/welcome-dashboard.ts +17 -16
  511. package/src/interactive/worker-receipts.ts +52 -3
  512. package/src/interactive/worker-stream.ts +5 -1
  513. package/src/tools/agent-tools.ts +23 -3
  514. package/src/tools/artifact.ts +2 -2
  515. package/src/tools/ask-user.ts +23 -13
  516. package/src/tools/bash.ts +30 -2
  517. package/src/tools/bootstrap.ts +34 -431
  518. package/src/tools/builtin-tool-catalog.ts +271 -0
  519. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  520. package/src/tools/codewiki/code-nav.ts +8 -22
  521. package/src/tools/codewiki/shared.ts +41 -38
  522. package/src/tools/context/docs-engine.ts +14 -3
  523. package/src/tools/context/index.ts +107 -28
  524. package/src/tools/context/surface.ts +19 -0
  525. package/src/tools/core-bootstrap.ts +168 -0
  526. package/src/tools/credential-present.ts +5 -5
  527. package/src/tools/dispatch-admission.ts +533 -0
  528. package/src/tools/dispatch-background.ts +54 -0
  529. package/src/tools/dispatch-event-text.ts +6 -0
  530. package/src/tools/dispatch-plan.ts +9 -4
  531. package/src/tools/dispatch-run-events.ts +238 -0
  532. package/src/tools/dispatch-runner.ts +2370 -0
  533. package/src/tools/dispatch-scout-admission.ts +295 -0
  534. package/src/tools/dispatch-types.ts +77 -0
  535. package/src/tools/dispatch.ts +67 -3161
  536. package/src/tools/find.ts +4 -2
  537. package/src/tools/grep.ts +2 -2
  538. package/src/tools/lazy-tool.ts +60 -0
  539. package/src/tools/ledger.ts +3 -3
  540. package/src/tools/monitor-surface.ts +36 -0
  541. package/src/tools/monitor.ts +2 -32
  542. package/src/tools/observers.ts +2 -2
  543. package/src/tools/presentation.ts +107 -0
  544. package/src/tools/registry.ts +45 -27
  545. package/src/tools/safe-exec.ts +2 -2
  546. package/src/tools/steer-surface.ts +17 -0
  547. package/src/tools/steer.ts +2 -13
  548. package/src/tools/tasks.ts +108 -11
  549. package/src/tools/truncate.ts +25 -184
  550. package/src/tools/verify/frontend.ts +3 -1
  551. package/src/tools/verify/index.ts +3 -38
  552. package/src/tools/verify/surface.ts +46 -0
  553. package/src/tools/web-fetch-surface.ts +23 -0
  554. package/src/tools/web-fetch.ts +2 -20
  555. package/src/tools/write.ts +7 -2
  556. package/src/worker/entry.ts +39 -2
  557. package/src/worker/spec-contract.ts +26 -5
  558. package/dist/chunk-7SS2CTV2.js +0 -61361
  559. package/dist/chunk-DKGKUHFA.js +0 -924
  560. package/dist/chunk-GEP36Y4X.js +0 -12796
  561. package/dist/chunk-XYWBQRDM.js +0 -137
  562. package/dist/clio-BZVGEUFJ.js +0 -58
  563. package/dist/configure-S7S6F6CL.js +0 -32
  564. package/docs/html/agents_blueprint.html +0 -936
  565. package/docs/html/alcf_blueprint.html +0 -324
  566. package/docs/html/architecture_blueprint.html +0 -850
  567. package/docs/html/commands_blueprint.html +0 -939
  568. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  569. package/docs/html/configuration_blueprint.html +0 -1080
  570. package/docs/html/context_blueprint.html +0 -603
  571. package/docs/html/documentation_blueprint.html +0 -832
  572. package/docs/html/environment_blueprint.html +0 -404
  573. package/docs/html/eval_blueprint.html +0 -743
  574. package/docs/html/evals_internal_blueprint.html +0 -190
  575. package/docs/html/evolution_blueprint.html +0 -674
  576. package/docs/html/extensions_blueprint.html +0 -2065
  577. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  578. package/docs/html/index.html +0 -919
  579. package/docs/html/lifecycle_blueprint.html +0 -723
  580. package/docs/html/memory_blueprint.html +0 -699
  581. package/docs/html/middleware_blueprint.html +0 -664
  582. package/docs/html/models_blueprint.html +0 -2366
  583. package/docs/html/observability_blueprint.html +0 -683
  584. package/docs/html/provider_adapter_blueprint.html +0 -245
  585. package/docs/html/safety_blueprint.html +0 -1386
  586. package/docs/html/shared.css +0 -571
  587. package/docs/html/shared.js +0 -143
  588. package/docs/html/skills_blueprint.html +0 -671
  589. package/docs/html/soak_blueprint.html +0 -182
  590. package/docs/html/tool_usage_blueprint.html +0 -350
  591. package/docs/html/tools_blueprint.html +0 -2249
  592. package/docs/html/trace_blueprint.html +0 -235
  593. package/docs/html/tui_design_blueprint.html +0 -374
  594. package/docs/html/validation_blueprint.html +0 -961
  595. package/docs/html/worker_dispatch_blueprint.html +0 -231
  596. package/src/core/release.ts +0 -2
  597. package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
  598. package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
  599. package/src/engine/apis/lmstudio-native.ts +0 -1438
  600. package/src/engine/apis/thinking-replay.ts +0 -11
  601. package/src/tools/string-enum.ts +0 -15
package/README.md CHANGED
@@ -7,44 +7,36 @@
7
7
 
8
8
  <h1 align="center">Clio Coder</h1>
9
9
 
10
- <p align="center"><strong>A supervised coding agent for research software, built to run on your models, on your machines, with a receipt for everything it did.</strong></p>
10
+ <p align="center"><strong>The coding agent for the people who maintain the code that science runs on.</strong><br />Your models. Your machines. A receipt for everything it did.</p>
11
11
 
12
12
  <p align="center">
13
13
  <a href="https://github.com/iowarp/clio-coder/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/tag/iowarp/clio-coder?sort=semver&label=release&color=00d4db&style=flat-square" /></a>
14
14
  <a href="https://www.npmjs.com/package/@iowarp/clio-coder"><img alt="npm" src="https://img.shields.io/npm/v/%40iowarp%2Fclio-coder?label=npm&color=cb3837&style=flat-square" /></a>
15
15
  <a href="https://github.com/iowarp/clio-coder/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/iowarp/clio-coder/ci.yml?branch=main&label=ci&style=flat-square" /></a>
16
- <a href="#requirements"><img alt="Node >=22.19" src="https://img.shields.io/badge/node-%3E%3D22.19-147366?style=flat-square" /></a>
16
+ <a href="#install"><img alt="Node >=22.19" src="https://img.shields.io/badge/node-%3E%3D22.19-147366?style=flat-square" /></a>
17
17
  <a href="LICENSE"><img alt="License Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-241131?style=flat-square" /></a>
18
18
  <a href="https://iowarp.ai"><img alt="IOWarp CLIO" src="https://img.shields.io/badge/IOWarp-CLIO-00d4db?style=flat-square" /></a>
19
19
  <a href="https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318"><img alt="NSF #2411318" src="https://img.shields.io/badge/NSF-%232411318-241131?style=flat-square" /></a>
20
20
  </p>
21
21
 
22
- > [!WARNING]
23
- > **Experimental v0.3.1 release.** Clio Coder's behavior and interfaces may
24
- > break or change without notice. Use version control, review proposed changes,
25
- > and keep backups when operating on important repositories.
26
-
27
22
  ---
28
23
 
29
- Clio Coder is a terminal coding agent for people who work on real scientific
30
- and HPC codebases: simulation kernels, data pipelines, numerical libraries,
31
- build systems that take twenty minutes and break in ways no cloud model has
32
- ever seen.
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.
33
27
 
34
- You bring the model. A local llama.cpp, Ollama, LM Studio, vLLM, or SGLang
35
- server; a cloud API; your ChatGPT or Claude subscription; or an Argonne
36
- Leadership Computing Facility inference gateway. Clio brings the harness
37
- around it: a terminal UI, twenty typed tools instead of an unrestricted
38
- shell, a fleet of bounded worker agents that can run across your whole
39
- cluster over SSH, durable sessions, and an integrity-sealed receipt for every run.
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.
40
34
 
41
35
  CLIO stands for Context Layer for Input/Output. Clio Coder is the interactive
42
- coding agent in IOWarp's ecosystem of agentic science, named for the Greek
43
- muse of history and built by the Gnosis Research Center at Illinois Tech.
44
-
45
- ### Get started
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.
46
38
 
47
- Requires Node.js `>=22.19.0`. Three commands, in order:
39
+ ## Get started
48
40
 
49
41
  ```bash
50
42
  npm install -g @iowarp/clio-coder
@@ -52,245 +44,144 @@ clio-coder configure # pick a model provider or a local server
52
44
  clio-coder # start the interactive session in any project directory
53
45
  ```
54
46
 
55
- `configure` is the wizard: it lists the runtimes, asks for the endpoint and
56
- model, probes it, and saves it as the chat and worker target. Skip it and bare
57
- `clio-coder` starts the same wizard when no usable target is configured. In the
58
- first session, type a request in plain words, or `/help` for the command
59
- palette; `/settings` (or `/targets`) changes the model later; `/quit` leaves.
60
- `clio-coder doctor` reports the install's health, and on a home nothing has set
61
- up yet it says so in one row and exits 0.
62
-
63
- ### Pick your path
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 worker target; 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.
64
53
 
65
54
  | | You are | Start here |
66
55
  | --- | --- | --- |
67
- | 🔬 | A researcher or developer who wants to use it | [Install](#install) → [Five-minute start](#five-minute-start) → [Bring your own model](#bring-your-own-model) |
56
+ | 🔬 | 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) |
68
57
  | 🤖 | An AI agent that just landed in this repository | [For agents](#for-agents) |
69
58
  | 🛠️ | A developer who wants to contribute | [For contributors](#for-contributors) |
70
59
 
71
- ---
72
-
73
- ## Why Clio is different
60
+ ## Why Clio
74
61
 
75
62
  Most coding agents ask you to trust a remote model with a shell. Clio makes a
76
- different bet: the harness should be strong enough that a 20B model running on
77
- your own GPU is useful, and honest enough that you can reconstruct every
63
+ different bet: the harness should be strong enough that a 20B model on your own
64
+ GPU is genuinely useful, and honest enough that you can reconstruct every
78
65
  decision afterward.
79
66
 
80
- **The model never gets a shell by default.** The tool surface is twenty
81
- typed tools organized into seven policy planes. Bash is default-deny, filtered
82
- through [damage-control rules](damage-control-rules.yaml) and per-project
83
- policy. Reads are bounded, writes are queued and reviewable, and every
84
- privileged call passes through one admission path that cannot be widened by
85
- the model asking nicely.
86
-
87
- **Local models are the design target, not a fallback.** llama.cpp and similar
88
- servers expose a single prefix-cache slot. Clio keeps the compiled prompt and
89
- provider tool schemas byte-stable so that slot stays hot across turns and
90
- sessions, bounds every tool result so one `grep` cannot blow the window, and
91
- records a per-call cache verdict (`hot`, `partial`, `cold`, `small`) in the
92
- session ledger so you can see when and why the cache went cold.
93
-
94
- **Work is delegated to bounded workers, not to one long context.** The
95
- orchestrator dispatches focused agents with explicit tool profiles, call
96
- budgets, cost ceilings, and typed result contracts. A worker that cannot
97
- produce a conforming answer fails loudly instead of returning confident prose.
98
-
99
- **Your cluster is the runtime.** Declare your nodes and the same worker
100
- protocol tunnels over SSH. A remote worker gets the same prompts, the same
101
- safety matrix, the same receipts. Placement is deterministic and pinnable, and
102
- capacity is governed by durable expiring leases that survive process death.
103
-
104
- **Everything is auditable.** Each run seals a receipt covering token usage,
105
- priced cost, tool activity, safety decisions, routing intent, the resolved
106
- route, worker attestation, and result-contract conformance. `clio-coder evidence`
107
- and `/view verify` check them; nothing in the audit trail is reconstructed
108
- from prose.
109
-
110
- **Science is a first-class domain.** [clio-kit](https://github.com/iowarp/clio-kit)
111
- contributes MCP servers for HDF5, Slurm, ParaView, Pandas, NetCDF, FITS, Zarr,
112
- and ArXiv, and the shipped skills catalog includes scientific debugging and
113
- experiment-protocol guides.
114
-
115
- ---
116
-
117
- # For humans
118
-
119
- ## Requirements
120
-
121
- - Node.js `>=22.19.0` and npm
122
- - Linux or macOS. Windows is best effort until a stable release.
123
- - At least one model target: a local OpenAI-compatible server, Ollama, LM
124
- Studio, llama.cpp, vLLM, SGLang, a cloud API key, a ChatGPT or Claude
125
- subscription login, an ALCF Globus account, or an installed `claude` command
126
-
127
- ## Install
128
-
129
- From npm, [Get started](#get-started) is the whole install. `clio-coder upgrade`
130
- moves an existing install to the latest release; `--channel=beta` follows a
131
- dist-tag instead.
132
-
133
- From source, pinned to this release:
134
-
135
- ```bash
136
- git clone --branch v0.3.1 https://github.com/iowarp/clio-coder.git
137
- cd clio-coder
138
- npm run install:local
139
- export PATH="$HOME/.local/bin:$PATH"
140
- hash -r
141
- "$HOME/.local/bin/clio-coder" --version
142
- ```
143
-
144
- `npm run install:local` builds the CLI, links it at
145
- `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`, and initializes the home.
146
- Put the `export PATH` line in your shell profile. If an older install is on your
147
- `PATH`, `command -v clio-coder` shows which file the bare name reaches; the
148
- installer warns when it finds one.
149
-
150
- To remove it, preview first:
151
-
152
- ```bash
153
- clio-coder uninstall --dry-run
154
- clio-coder uninstall --remove-binary --force
155
- ```
156
-
157
- Full lifecycle details, including `reset` and the upgrade path, are in
158
- [docs/installation-and-lifecycle.md](docs/installation-and-lifecycle.md).
159
-
160
- ## Five-minute start
161
-
162
- Run Clio from the repository you want to work on and point one target at a
163
- running model server. The wizard under [Get started](#get-started) does this
164
- interactively; the flags below do the same thing from a script. This example
165
- uses LM Studio; other local runtime ids include `ollama-native`, `llamacpp`,
166
- `vllm`, and `sglang`.
167
-
168
- ```bash
169
- cd /path/to/your/repo
170
-
171
- clio-coder configure \
172
- --id local-lmstudio \
173
- --runtime lmstudio-native \
174
- --url http://localhost:1234 \
175
- --model your-model-id \
176
- --set-orchestrator \
177
- --set-fleet-default
178
-
179
- clio-coder targets use local-lmstudio
180
- clio-coder targets --probe
181
- ```
182
-
183
- Once the target probes healthy, teach Clio about your project, try a headless
184
- turn, then open the TUI:
185
-
186
- ```bash
187
- clio-coder context init # bootstraps local generated CLIO-CODER.md context from your real source tree
188
- clio-coder run "Summarize this repository layout and identify the main entry points."
189
- clio-coder # interactive terminal UI
190
- ```
191
-
192
- Inside the TUI, `/settings` shows the target, fleet, and routing the session
193
- uses (`/targets` and `/fleet` open straight into their sections), `/agents` and
194
- `/skill` list what it can dispatch and run, and `/help` opens the interactive
195
- help center.
196
-
197
- ## Bring your own model
198
-
199
- Clio treats models as named **targets**. A target is a runtime plus an
200
- endpoint plus a model plus credentials, and you can route interactive chat and
201
- fleet dispatch through different targets independently.
202
-
203
- ### Local runtimes
204
-
205
- | Runtime id | Server |
67
+ - **The model never gets a shell by default.** Twenty typed tools in seven
68
+ policy planes. Bash is default-deny behind
69
+ [damage-control rules](damage-control-rules.yaml) and per-project policy,
70
+ reads are bounded, writes are queued and reviewable, and every privileged
71
+ call passes through one admission path the model cannot talk its way around.
72
+ - **Local models are the design target, not a fallback.** Clio keeps the
73
+ compiled prompt and tool schemas byte-stable so a llama.cpp prefix cache
74
+ stays hot across turns and sessions, bounds every tool result so one `grep`
75
+ cannot blow the window, and records a per-call cache verdict in the ledger
76
+ so you can see when and why the cache went cold.
77
+ - **Work goes to bounded workers, not one long context.** The orchestrator
78
+ dispatches focused agents with explicit tool profiles, call budgets, cost
79
+ ceilings, and typed result contracts. A worker that cannot produce a
80
+ conforming answer fails loudly instead of returning confident prose.
81
+ - **Your cluster is the runtime.** Declare your nodes and the same worker
82
+ protocol tunnels over SSH with the same prompts, the same safety matrix, and
83
+ the same receipts. Placement is deterministic and pinnable; capacity is
84
+ governed by durable leases that survive process death.
85
+ - **Everything is auditable.** Every run seals a receipt covering tokens,
86
+ priced cost, tool activity, safety decisions, routing, worker attestation,
87
+ and result conformance. Default-on scientific commit provenance adds only
88
+ the assistance, testing, review, and contributor trailers that this evidence
89
+ justifies; it never replaces the human author. Nothing in the audit trail is
90
+ reconstructed from prose.
91
+ - **Science is a first-class domain.**
92
+ [clio-kit](https://github.com/iowarp/clio-kit) adds MCP servers for HDF5,
93
+ Slurm, ParaView, Pandas, NetCDF, FITS, Zarr, and ArXiv, and the shipped
94
+ skills catalog includes scientific debugging and experiment-protocol guides.
95
+
96
+ ## Your models, your choice
97
+
98
+ Clio treats models as named **targets**: a runtime, an endpoint, a model, and
99
+ credentials. Interactive chat and fleet dispatch can route through different
100
+ targets independently, so a strong orchestrator can direct cheap local muscle,
101
+ or the reverse.
102
+
103
+ | Runtime id | Serves |
206
104
  | --- | --- |
207
105
  | `llamacpp`, `llamacpp-anthropic`, `llamacpp-completion` | llama.cpp and llama-swap routers |
208
- | `lmstudio-native` | LM Studio |
106
+ | `lmstudio` | LM Studio |
209
107
  | `ollama-native` | Ollama |
210
108
  | `vllm`, `sglang` | vLLM and SGLang |
211
109
  | `lemonade`, `lemonade-anthropic` | Lemonade |
212
110
  | `openai-compat`, `anthropic-compat` | Any OpenAI- or Anthropic-shaped endpoint |
213
-
214
- ### Cloud APIs
215
-
216
- `openai`, `anthropic`, `google`, `groq`, `mistral`, `deepseek`, `openrouter`,
217
- `bedrock`, and `alcf` for Argonne's Sophia and Metis gateways over Globus
218
- OAuth. See [docs/alcf-provider.md](docs/alcf-provider.md) for the HPC path.
219
-
220
- ### Subscriptions
221
-
222
- You can drive Clio from a ChatGPT Plus/Pro or Claude Pro/Max subscription
223
- instead of an API key.
111
+ | `openai`, `anthropic`, `google`, `groq`, `mistral`, `deepseek`, `openrouter`, `bedrock` | Cloud APIs |
112
+ | `alcf` | Argonne's Sophia and Metis gateways over Globus OAuth ([guide](docs/alcf-provider.md)) |
113
+ | `anthropic-max`, `openai-codex` | Your Claude Pro/Max or ChatGPT Plus/Pro subscription |
114
+ | `claude-sdk`, `claude-code`, `antigravity-code` | Claude Code and Google Antigravity as workers behind Clio's permission gate |
115
+
116
+ **One GPU with 24 GB or more?** Serve **Qwen3.8-27B** (the
117
+ `unsloth/Qwen3.8-27B-GGUF` quantizations) and point both the chat and fleet
118
+ targets at it. It is the model this release was hardened against on llama.cpp
119
+ and LM Studio: a 4-bit quantization at 131072 context fits in 24 GB with a
120
+ q8_0 KV cache, tool calls and reasoning parse cleanly on both runtimes, and
121
+ Clio's `thinkingLevel` drives the model's reasoning effort per request. Start
122
+ llama.cpp with `--jinja --reasoning on`; LM Studio needs nothing beyond loading
123
+ the model. Quantization and context-window details for this and other families
124
+ live in [docs/model-catalog.md](docs/model-catalog.md).
125
+
126
+ Scripting the same setup the wizard performs:
224
127
 
225
128
  ```bash
226
- clio-coder auth login anthropic-max # Claude Pro/Max OAuth
227
- clio-coder auth login openai-codex # ChatGPT Plus/Pro OAuth
129
+ clio-coder configure --id local-lmstudio --runtime lmstudio \
130
+ --url http://localhost:1234 --model your-model-id \
131
+ --set-orchestrator --set-fleet-default
132
+ clio-coder targets --probe
228
133
 
229
- clio-coder configure --id claude-sub --runtime anthropic-max --model claude-sonnet-5 --set-orchestrator
230
- clio-coder configure --id chatgpt-sub --runtime openai-codex --model gpt-5.4 --set-orchestrator
134
+ clio-coder auth login anthropic-max # or: openai-codex
135
+ clio-coder configure --id claude-sub --runtime anthropic-max --model claude-sonnet-5 --set-orchestrator
231
136
  ```
232
137
 
233
- Pick model ids from `clio-coder models --target <id>` after login.
234
-
235
138
  > [!NOTE]
236
139
  > Connecting a Claude Pro/Max subscription over OAuth uses the same path as
237
140
  > Claude Code. Using subscription credentials outside a vendor's first-party
238
141
  > apps may not align with their terms of service. Enable at your own
239
142
  > discretion.
240
143
 
241
- ### Subscription-backed workers
242
-
243
- Clio can also drive other coding agents as workers while keeping its own
244
- permission gating in front of them.
245
-
246
- ```bash
247
- claude auth login # authenticate the official Claude CLI first
144
+ The full reference, including fleet profiles, per-agent target bindings, and
145
+ keeping a small scout model resident beside your main model, is
146
+ [docs/configuration-and-targets.md](docs/configuration-and-targets.md).
248
147
 
249
- # Claude Code SDK worker, with enforced per-tool safety
250
- clio-coder configure --id claude-sdk-worker --runtime claude-sdk --model sonnet --set-fleet-default
148
+ ## At the keyboard
251
149
 
252
- # claude -p subprocess worker, advisory permission-mode gating only
253
- clio-coder configure --id claude-code-worker --runtime claude-code --model sonnet
150
+ Run `clio-coder` from the repository you want to work on. The session opens on a
151
+ one-line header that names where Clio is working, which route answers, and
152
+ whether project context is ready, and then the transcript owns the screen.
153
+ Tool calls render as live rows with their verdicts, successful edits render as
154
+ numbered diffs, and `!` runs a shell command in the same transcript.
254
155
 
255
- # Google Antigravity subprocess worker, under your existing agy login
256
- clio-coder configure --id agy-worker --runtime antigravity-code --model "Gemini 3.5 Flash (High)"
257
- ```
258
-
259
- ### Mixing them
260
-
261
- The interesting configuration is a strong orchestrator with cheap local
262
- muscle, or the reverse.
156
+ | You want to | Type |
157
+ | --- | --- |
158
+ | Change model, target, thinking level, autonomy, or terminal options | `/settings`, `/model`, `/thinking` |
159
+ | See what is in the context window and what it costs | `/context`, `/cost` |
160
+ | Branch, revisit, or pick up a session | `/tree`, `/fork`, `/resume`, `/new` |
161
+ | Delegate to a fleet agent and watch it work | `/run coder "..."`, `/tasks`, `Alt+W` |
162
+ | Load a skill or bootstrap project context | `/skill <name>`, `/context init` |
163
+ | Save a self-contained HTML transcript | `/export` (an explicit `.md` path keeps Markdown) |
164
+ | Everything else | `/help` |
165
+
166
+ Enter while Clio is running steers the current turn; `Alt+Enter` queues a
167
+ follow-up; `Esc` cancels. Settings → Terminal offers an opt-in fullscreen mode
168
+ with a sticky composer beneath an independently scrollable transcript; regular
169
+ terminal scrollback is the default. The complete command and keybinding
170
+ reference is [docs/commands-and-modes.md](docs/commands-and-modes.md).
171
+
172
+ Outside the TUI, the same engine runs headless and speaks to editors:
263
173
 
264
174
  ```bash
265
- clio-coder configure --id chatgpt-orch --runtime openai-codex --model gpt-5.4 --set-orchestrator
266
- clio-coder configure --id claude-worker --runtime claude-sdk --model sonnet
267
- clio-coder configure --id local-fleet --runtime lmstudio-native --url http://localhost:1234 \
268
- --model qwen-7b --set-fleet-default
269
-
270
- clio-coder targets profile claude-sdk claude-worker --model sonnet
271
- clio-coder run --agent coder "Refactor src/engine/parser.ts"
175
+ clio-coder run "Summarize this repository layout and its entry points." # one turn
176
+ clio-coder run "<task>" --json # JSONL events for scripts
177
+ clio-coder run "<task>" --agent coder # one fleet agent, with a receipt
178
+ clio-coder acp # Agent Client Protocol over stdio
272
179
  ```
273
180
 
274
- Full reference: [docs/configuration-and-targets.md](docs/configuration-and-targets.md).
275
-
276
- ### Keeping a scout model resident
277
-
278
- Fast scout agents work best when a small scout model is already loaded beside
279
- your main coding model on a local router. This is only safe when the combined
280
- weights, KV caches, context windows, and parallel slots fit in GPU memory. If
281
- the router spills into CPU RAM, both scout calls and main turns get slow.
282
-
283
- Load both models manually on the target host, then point the orchestrator and
284
- the scout worker profile at them. On llama.cpp routers, keep `max_instances`
285
- at least as high as the number of models you want resident. Clio can see which
286
- router instances are loaded and the router's instance limit, but current
287
- llama.cpp router responses do not expose free VRAM, so confirming the loaded
288
- set fits remains the operator's job. Workers on other nodes are unaffected.
289
-
290
- ## Safety and autonomy
181
+ ## Safety you can read
291
182
 
292
- There is one tool surface and one admission path. What changes is the autonomy
293
- level, set in `/settings` or overridden for a single run with `--autonomy`.
183
+ One tool surface, one admission path. What changes is the autonomy level, set
184
+ in `/settings` or per run with `--autonomy`.
294
185
 
295
186
  | Level | Behavior |
296
187
  | --- | --- |
@@ -299,39 +190,19 @@ level, set in `/settings` or overridden for a single run with `--autonomy`.
299
190
  | `auto-edit` | File edits proceed; execution and dispatch still gate. |
300
191
  | `full-auto` | Approved classes proceed unattended, still inside damage-control rules. |
301
192
 
302
- Notices name their mechanism so you always know who stopped a call:
193
+ Every notice names its mechanism so you always know who stopped a call:
303
194
  `[safety-net]` for level-independent blocks, `[approval]` for parked calls,
304
195
  `[autonomy]` for read-only denials, and `[middleware]` for hook diagnostics.
305
-
306
- Workers can never exceed the orchestrator's authority. A dispatch request can
307
- only narrow it, and reviewers and judges always run read-only. A `&&` chain is
308
- judged at its most restrictive recognized member and refused whole if any
309
- member is unrecognized, and `/tmp`, `/var/tmp`, and `/var/folders` are scratch
310
- while the rest of the system roots stay protected. Details:
196
+ Workers can never exceed the orchestrator's authority; a dispatch can only
197
+ narrow it, and reviewers and judges always run read-only. Details:
311
198
  [docs/safety-model.md](docs/safety-model.md).
312
199
 
313
- ## The fleet: one machine or your whole cluster
314
-
315
- Clio's orchestrator delegates work to bounded workers. With a fleet declared,
316
- those workers run on other machines over SSH while every guarantee holds: one
317
- admission path, one autonomy matrix, one receipt chain.
318
-
319
- ```mermaid
320
- flowchart LR
321
- U["you"] --> O["orchestrator TUI"]
322
- O --> P["execution plan<br/>hashed DAG, capacity waves"]
323
- P --> A["admission<br/>leases, queue, cost ceiling"]
324
- A --> L["local worker"]
325
- A --> S1["ssh node: node-a"]
326
- A --> S2["ssh node: node-b"]
327
- L --> R["receipts and evidence"]
328
- S1 --> R
329
- S2 --> R
330
- R --> O
331
- ```
200
+ ## One machine or the whole cluster
332
201
 
333
- Declare nodes in `settings.yaml` and the implicit `local` node is always
334
- present:
202
+ Clio's orchestrator delegates to bounded workers. Declare a fleet and those
203
+ workers run on other machines over SSH while every guarantee holds: one
204
+ admission path, one autonomy matrix, one receipt chain. The implicit `local`
205
+ node is always present.
335
206
 
336
207
  ```yaml
337
208
  fleet:
@@ -339,149 +210,129 @@ fleet:
339
210
  - id: node-a
340
211
  host: node-a.example.net
341
212
  maxWorkers: 2
342
- residency: observe
343
213
  - id: node-b
344
214
  host: node-b.example.net
345
215
  maxWorkers: 1
346
216
  ```
347
217
 
348
- Then `clio-coder doctor` runs a per-node preflight, `clio-coder fleet list|run|status`
349
- drives and observes contracts, and `clio-coder fleet drain|resume` closes or reopens
350
- durable dispatch admission. A drain preserves running work, rejects every new
351
- execution start, and expires after one hour unless renewed. `/fleet` opens
352
- Settings Fleet with defaults, profiles, agent bindings, and node placement,
353
- and the `Alt+W` Fleet Runs board shows live runs. Nodes must share the
354
- project filesystem at the same absolute path; hosts that do not fail admission
355
- with a clear reason. Target URLs resolve on the node the worker runs on, so
356
- `localhost` means that node's own inference server and there is no central
357
- proxy.
358
-
359
- Everything you need to reproduce it end to end, including a recorded
360
- multi-node demo script, is in [docs/fleet-dispatch.md](docs/fleet-dispatch.md)
361
- and [docs/fleet-demo-runbook.md](docs/fleet-demo-runbook.md).
362
-
363
- Routing is measured but conservative. Every dispatch records a joint decision
364
- over agent, target, model, runtime, and node, while shadow mode leaves the
365
- explicit route unchanged. Operators can activate only named read-only and
366
- quality roles, and only after the exact tuple has enough integrity-valid
367
- quality, reliability, cost, freshness, and decision-latency evidence:
368
-
369
- ```yaml
370
- routing:
371
- activeRoles: [researcher, verifier, reviewer, judge]
372
- activePostures: [quality, balanced]
373
- agentAutomation:
374
- activeAgentRoles: [] # stays advisory until exact agent/role pairs are named
375
- ```
376
-
377
- Manual pins and `failover: none` remain exact. Active mode fails closed when
378
- no route is ready. `agent: auto` is separately bounded by recipe audience,
379
- authority, tools, skills, result contract, locality, and approved governance;
380
- changing from a read-only Scout phase to workspace editing requires an
381
- authenticated plan approval or authority already granted by full-auto policy.
382
-
383
- ## Project context: CLIO-CODER.md
384
-
385
- Clio loads a local `CLIO-CODER.md` as generated project context on every session.
386
- `clio-coder context init` grounds a draft in the actual source tree, preserves an
387
- existing handbook until an explicit replacement action, and can adopt existing
388
- `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, Cursor, and Copilot context with
389
- provenance and conflict reporting. `CLIO-CODER.md` is a gitignored runtime artifact,
390
- not canonical repository documentation.
218
+ `clio-coder doctor` preflights every node, `clio-coder fleet list|run|status`
219
+ drives and observes work, and `clio-coder fleet drain|resume` closes or reopens
220
+ admission without interrupting running work. Nodes share the project
221
+ filesystem at the same absolute path, and a target URL resolves on the node the
222
+ worker runs on, so `localhost` means that node's own inference server. The
223
+ end-to-end walkthrough, including a recorded multi-node demo, is in
224
+ [docs/fleet-dispatch.md](docs/fleet-dispatch.md) and
225
+ [docs/fleet-demo-runbook.md](docs/fleet-demo-runbook.md).
226
+
227
+ ## Teach it your project
228
+
229
+ **`CLIO-CODER.md`** is the project handbook Clio loads on every session.
230
+ `clio-coder context init` drafts one from your actual source tree and can adopt
231
+ existing `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, Cursor, and Copilot context
232
+ with provenance. It is yours to edit and version; Clio's own runtime state
233
+ stays in a gitignored `.clio-coder/`. A `CLIO-CODER.override.md` in a
234
+ subdirectory replaces inherited guidance for that subtree.
235
+
236
+ **The codewiki** from `clio-coder context index` is a structural map the
237
+ `code_nav` tool navigates, so a model finds a symbol without reading half the
238
+ repository into its window.
239
+
240
+ **Skills** are reusable `SKILL.md` guides the model loads on demand, discovered
241
+ from per-user and per-project roots including `.claude/skills` and
242
+ `.codex/skills`. The shipped [catalog](skills/README.md) pins content hashes so
243
+ an installed copy verifies against its audited source, and
244
+ `clio-coder skills eval <name>` runs a skill's executable evals instead of
245
+ trusting the prose.
246
+
247
+ **Task memory** keeps long runs from drifting: a rules-only tier with no model
248
+ calls watches tool and lifecycle hooks and surfaces advisory reminders at the
249
+ right boundaries, `/memory` inspects it, and durable lessons are reviewed with
250
+ `clio-coder memory list|propose|approve|reject|prune`. Design notes:
251
+ [docs/proactive-memory.md](docs/proactive-memory.md).
391
252
 
392
- Alongside it, `clio-coder context index` builds a structural codewiki that the
393
- `code_nav` tool navigates, so a model can find a symbol without reading half
394
- the repository into its window.
253
+ ## Install
395
254
 
396
- ## Skills
255
+ - Node.js `>=22.19.0` and npm
256
+ - Linux or macOS. Windows is best effort until a stable release.
257
+ - At least one model target from the table above
397
258
 
398
- Skills are reusable `SKILL.md` guides the model loads on demand. Clio
399
- discovers them from per-user and per-project roots, including `.clio-coder/skills`
400
- and cross-harness layouts such as `.claude/skills` and `.codex/skills`. A
401
- skill's `allowed-tools` declaration is enforced at tool admission, and a skill
402
- can ship executable RED-GREEN evals that `clio-coder skills eval <name>` runs
403
- instead of trusting the prose.
259
+ From npm, [Get started](#get-started) is the whole install. `clio-coder upgrade`
260
+ moves an existing install to the latest release; `--channel=beta` follows a
261
+ dist-tag instead.
404
262
 
405
- This repository ships a curated catalog under [skills/](skills/README.md) with
406
- provenance frontmatter, evals, and content hashes pinned in
407
- `skills/registry.yaml`, so an installed copy verifies against its audited
408
- source at activation. Nothing auto-loads.
263
+ From source, pinned to this release:
409
264
 
410
265
  ```bash
411
- clio-coder skills install context-handoff # copy into .clio-coder/skills
412
- clio-coder skills list # confirm Clio sees it
266
+ git clone --branch v0.3.3 https://github.com/iowarp/clio-coder.git
267
+ cd clio-coder
268
+ npm run install:local
269
+ export PATH="$HOME/.local/bin:$PATH"
270
+ hash -r
271
+ "$HOME/.local/bin/clio-coder" --version
413
272
  ```
414
273
 
415
- The catalog includes [`find-skills`](skills/meta/find-skills/), which routes
416
- discovery through `clio-coder skills search` and `clio-coder skills install`. Install it
417
- with `clio-coder skills install find-skills --user` so it outranks the community
418
- skill of the same name that other installers drop into compat roots.
274
+ `npm run install:local` builds the CLI, links it at
275
+ `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`, and initializes the home.
276
+ Put the `export PATH` line in your shell profile. If an older install is on your
277
+ `PATH`, `command -v clio-coder` shows which file the bare name reaches; the
278
+ installer warns when it finds one.
419
279
 
420
- ## Memory that survives long tasks
280
+ To remove it, preview first:
421
281
 
422
- Long agentic runs decay: a requirement or a failed attempt is still in the
423
- transcript but no longer influences the next action. Clio's proactive task
424
- memory watches tool and lifecycle hooks, keeps a session task bank, and
425
- surfaces visible advisory reminders at trigger boundaries.
282
+ ```bash
283
+ clio-coder uninstall --dry-run
284
+ clio-coder uninstall --remove-binary --force
285
+ ```
426
286
 
427
- The default tier is rules-only and makes no model calls. An LLM memory tier is
428
- opt-in through an independent background route. The action agent's prompt and
429
- tool surface never change, `/memory` inspects the bank, and disabling
430
- `memory.intervention.enabled` removes the whole mechanism. Durable lessons are
431
- separate, scoped, evidence-linked, and managed through `clio-coder memory
432
- list|propose|approve|reject|prune`. Design notes:
433
- [docs/proactive-memory.md](docs/proactive-memory.md).
287
+ Full lifecycle details, including `reset` and the upgrade path, are in
288
+ [docs/installation-and-lifecycle.md](docs/installation-and-lifecycle.md).
434
289
 
435
290
  ## Status
436
291
 
437
- Clio Coder is experimental software in a soft beta. The current release is
438
- **v0.3.1**, installable from npm as
292
+ The current release is **v0.3.3**, installable from npm as
439
293
  [`@iowarp/clio-coder`](https://www.npmjs.com/package/@iowarp/clio-coder) or
440
- from source. Interfaces may still move between minor versions, and
441
- model-specific behavior varies by target.
442
-
443
- Release notes live in the [CHANGELOG](CHANGELOG.md), the implementation detail
444
- behind each entry lives in the commit history, and every release is gated by
294
+ from source. Clio Coder is still experimental: we ship quickly, interfaces may
295
+ change between minor versions, and model-specific behavior varies by target, so
296
+ keep important repositories under version control and review what it proposes.
297
+ Release notes live in the [CHANGELOG](CHANGELOG.md); every release is gated by
445
298
  the deterministic `npm run ci:release` suite.
446
299
 
447
- ## Troubleshooting
300
+ ### Troubleshooting
448
301
 
449
302
  | Problem | Try this |
450
303
  | --- | --- |
451
304
  | `clio-coder: command not found` | Run `npm run install:local`, then `hash -r`; confirm `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}` is on `PATH`. |
452
305
  | No model target is available | Run `clio-coder configure`, then `clio-coder targets --probe`. |
453
- | Local model does not respond | Confirm the local runtime is running and the target URL is correct. |
306
+ | Local model does not respond | Confirm the server is running and the target URL is correct; `clio-coder targets` shows what Clio sees. |
454
307
  | Cloud model auth fails | Check `clio-coder auth status <target>` and verify the API key or login flow. |
455
308
  | A fleet node never gets work | Run `clio-coder doctor`; per-node preflight reports filesystem parity and target facts. |
456
- | Source changes do not appear | Re-run `npm run build`; the linked CLI points at `dist/`. |
457
309
  | State appears corrupted | Run `clio-coder doctor`, then `clio-coder doctor --fix`. |
458
310
 
459
- When filing an issue, include the output of `clio-coder --version`, `node
460
- --version`, `clio-coder doctor`, and `clio-coder targets`. Redact secrets, private
461
- prompts, logs, and proprietary code.
311
+ When filing an issue, include `clio-coder --version`, `node --version`,
312
+ `clio-coder doctor`, and `clio-coder targets`. Redact secrets, private prompts,
313
+ logs, and proprietary code. [docs/troubleshooting.md](docs/troubleshooting.md)
314
+ is keyed by exact user-facing messages.
462
315
 
463
316
  ---
464
317
 
465
318
  # For agents
466
319
 
467
320
  If you are an AI agent operating inside this repository or driving Clio as a
468
- tool, this section is the orientation you need.
321
+ tool, start here.
469
322
 
470
- ## Orienting in this repository
471
-
472
- Do not read broadly. Start from the codewiki, which indexes 927 source files.
473
- Use `code_nav` in `entries`, `path`, or `symbol` mode before any wide read.
474
- The indexed entry points are `src/cli/index.ts`, `src/domains/agents/index.ts`,
323
+ **Orient from the index, not from a wide read.** `clio-coder context index`
324
+ builds a codewiki over the roughly 1,200 source and test files; use `code_nav`
325
+ in `entries`, `path`, or `symbol` mode first. The indexed entry points are
326
+ `src/cli/index.ts`, `src/domains/agents/index.ts`,
475
327
  `src/domains/components/index.ts`, `src/domains/config/index.ts`,
476
328
  `src/domains/context/bootstrap.ts`, `src/domains/context/index.ts`,
477
- `src/domains/dispatch/index.ts`, and `src/domains/eval/index.ts`. When present,
478
- read the local generated `CLIO-CODER.md` after that index-led orientation; it carries
479
- the project-specific invariants and traps that are not obvious from the source.
480
-
481
- ## The tool surface
329
+ `src/domains/dispatch/index.ts`, and `src/domains/eval/index.ts`. Then read the
330
+ local `CLIO-CODER.md`; it carries the project-specific invariants and traps
331
+ that are not obvious from the source. `docs/` is source-aligned: when prose and
332
+ source disagree, trust source, tests, and `CHANGELOG.md`.
482
333
 
483
- Twenty tools in seven planes. Each plane is one policy unit covering action
484
- class, size posture, result schema, and concurrency rule.
334
+ **The tool surface** is twenty tools in seven planes. Each plane is one policy
335
+ unit covering action class, size posture, result schema, and concurrency rule.
485
336
 
486
337
  | Plane | Tools | Posture |
487
338
  | --- | --- | --- |
@@ -494,298 +345,118 @@ class, size posture, result schema, and concurrency rule.
494
345
  | ARTIFACT | `artifact` | Plans, reviews, and reports as durable artifacts |
495
346
 
496
347
  Every observation carries a truncation envelope with offload paths and next
497
- hints, so a large result is bounded rather than silently cut. Full parameter
498
- and payload reference: [docs/tool-usage.md](docs/tool-usage.md).
499
-
500
- ## Dispatch topologies
501
-
502
- All topologies go through the same tool, admission chain, and autonomy matrix.
503
-
504
- | Topology | Invocation | Semantics |
505
- | --- | --- | --- |
506
- | Singular | `task: "..."` | One assignment, with an optional separate `briefing`. |
507
- | Parallel | `tasks: [...]` | Fan out, wait for all, one summary. |
508
- | Sequential | `mode: "sequential"` | One at a time, stop reporting on timeout or abort. |
509
- | Pipeline | `mode: "pipeline"` | Each step receives the previous step's output as data. |
510
- | Detached | `detach: true` | Return assignment ids immediately and collect later. |
511
- | Review gate | `review: {reviewer?, max_cycles?}` | Builder, read-only verifier verdict, bounded revise loop. |
512
- | Compete | `mode: "compete", candidates: 2..4` | N candidates in scratch worktrees, read-only judge, winner applied. |
513
-
514
- Detached batches are durable, so collection survives session exit. Use
515
- `monitor` with `mode="collect"` as the authoritative terminal barrier over a
516
- batch, and collect every detached batch before final synthesis; `mode="tools"`
517
- reports what a run actually executed. `Alt+S` sends a running attached dispatch
518
- to the background as a detached batch, which review gates, compete, pipelines,
519
- and time-boxed calls refuse with a reason.
520
-
521
- Admission refuses a pairing it can prove impossible, such as a pinned read-only
522
- recipe aimed at mutation work, and flags the receipt where it is unsure rather
523
- than blocking. Claimed file changes and validation commands are checked against
524
- the run's own tool events, so a path the run never wrote cannot seal as done.
525
-
526
- ## Execution roles and typed results
527
-
528
- Every dispatch carries an `ExecutionRole`: `builder`, `reviewer`, `judge`,
529
- `researcher`, `verifier`, or `recovery`. The role is typed on every request,
530
- ledger envelope, receipt, route candidate, plan task, and route decision.
531
- Route statistics never mix roles, and any attempt after the first is
532
- `recovery`.
533
-
534
- Workers answer typed terminal contracts, not trailing prose. A `scout-report`
535
- carries findings as `{claim, path, line}`, and grounding is structural rather
536
- than a regex over prose: a cited line must fall inside a span this run
537
- actually read, so an estimated line number cannot pass as an observation. A
538
- worker validates its own result and spends a bounded number of repair rounds
539
- before failing the run; the orchestrator's sealed validation is the authority.
540
-
541
- Review and compete gates default to the builtin `verifier` and never fall back
542
- to the builder agent. A gate decider's postcondition is the gate result
543
- contract, not its own recipe contract.
544
-
545
- ## The built-in fleet
546
-
547
- `architect`, `coder`, `tester`, `verifier`, `debugger`, `documenter`, `scout`,
548
- `researcher`, `provenance`, and `git-master`. Each is a versioned frontmatter
549
- recipe with an explicit tool profile, call and cost budget, and result
550
- contract. Malformed custom recipes are quarantined with a diagnostic; malformed
551
- builtins fail startup. Reference:
552
- [docs/built-in-agents.md](docs/built-in-agents.md).
553
-
554
- This roster is compiled into the session prompt whenever the dispatch tool is
555
- available, so pin an id from it. `agent: "auto"` baselines from task shape and
556
- is a fallback, not a router.
557
-
558
- ## Programmatic interfaces
348
+ hints, so a large result is bounded rather than silently cut. Parameters and
349
+ payloads: [docs/tool-usage.md](docs/tool-usage.md).
350
+
351
+ **Dispatch** goes through one tool, one admission chain, and one autonomy
352
+ matrix. `task` runs one assignment; `tasks: [...]` fans out; `mode:
353
+ "sequential"` and `mode: "pipeline"` chain steps; `detach: true` returns ids to
354
+ collect later with `monitor` in `collect` mode; `review: {...}` adds a
355
+ read-only verifier gate; `mode: "compete"` runs two to four candidates in
356
+ scratch worktrees behind a read-only judge. Every dispatch carries a typed
357
+ `ExecutionRole` and answers a typed result contract; a cited line in a
358
+ `scout-report` must fall inside a span the run actually read. The built-in
359
+ fleet is `architect`, `coder`, `tester`, `verifier`, `debugger`, `documenter`,
360
+ `scout`, `researcher`, `provenance`, and `git-master`
361
+ ([docs/built-in-agents.md](docs/built-in-agents.md)); pin an id from it, since
362
+ `agent: "auto"` is a fallback, not a router.
363
+
364
+ **Every run seals a receipt** covering routing intent, the resolved route,
365
+ worker attestation, priced cost, phase timing, tool activity, safety decisions,
366
+ and result conformance. `clio-coder evidence inspect` and `/view verify <runId>`
367
+ check them; `clio-coder trace` reads the same store.
368
+ [docs/observability.md](docs/observability.md) has the shapes.
559
369
 
560
370
  ```bash
561
371
  clio-coder run "<task>" --json # one headless turn, JSONL events
562
- clio-coder run "<task>" --agent coder # one explicit fleet agent, writes a receipt
563
- clio-coder acp # serve ACP v1 over stdio for ACP frontends
372
+ clio-coder acp # ACP v1 over stdio
564
373
  clio-coder fleet run <contract> # run a fleet DAG contract
565
- clio-coder fleet drain # pause new execution starts for up to one hour
566
- clio-coder fleet resume # reopen durable dispatch admission
567
374
  clio-coder evidence build|inspect|list # deterministic evidence artifacts
568
375
  clio-coder eval validate|run|report|compare|gate
569
376
  ```
570
377
 
571
- Dispatch can also delegate to external ACP agents while Clio mediates
572
- permissions. Clio implements the
573
- [Agent Client Protocol](https://agentclientprotocol.com) so the engine stays
574
- decoupled from IDE frontends.
575
-
576
- ## What gets recorded
577
-
578
- Every run seals a receipt. Receipt integrity is at v15 and covers normalized
579
- routing intent, the resolved route, worker attestation, priced cost, phase
580
- timing, tool activity, safety decisions, and result-contract conformance.
581
- Gate decisions are v2 artifacts that seal route correlation across agent,
582
- target, model family, runtime, and node, and they cross a staged durable
583
- boundary rather than being written directly.
584
-
585
- A worker attests its protocol version, pid, process-group id, host, settings
586
- fingerprint, WorkerSpec digest, runtime, target, endpoint identity hash, wire
587
- model, effective tool signature, and bounded resource facts before any model
588
- call. Any drift from the approved identity kills the worker.
589
-
590
- `clio-coder trace` reads the same store and now records interactive turns beside
591
- dispatched runs, one event per tool call with its verdict.
592
-
593
- Verify from the TUI with `/view verify <runId>`, or from the shell with `clio-coder evidence inspect`. See [docs/observability.md](docs/observability.md).
594
-
595
378
  ---
596
379
 
597
380
  # For contributors
598
381
 
599
- Contributions are welcome, and the fastest way in is to fix something you hit
600
- while using it on your own research code.
601
-
602
- ## Architecture at a glance
603
-
604
- ```mermaid
605
- flowchart TB
606
- CLI["src/cli"] --> ENG["src/engine"]
607
- TUI["src/interactive"] --> ENG
608
- ENG --> TOOLS["src/tools<br/>20 typed tools, 7 planes"]
609
- ENG --> DOM["src/domains"]
610
- DOM --> DISP["dispatch<br/>plans, leases, routing, receipts"]
611
- DOM --> CTX["context<br/>codewiki, compaction, CLIO-CODER.md"]
612
- DOM --> PROV["providers<br/>runtimes, auth, catalog"]
613
- DOM --> SAFE["safety<br/>damage control, policy"]
614
- DISP --> WORK["src/worker<br/>bounded worker runtime"]
615
- ```
616
-
617
- The largest indexed areas are `src/domains` (392 files), `tests/contracts`
618
- (236), `src/interactive` (83), `src/cli` (48), `src/tools` (42), `src/engine`
619
- (40), and `src/core` (35). Compile-time boundaries between domains are
620
- enforced by a test suite, not by convention. Read
621
- [docs/architecture.md](docs/architecture.md) before adding a cross-domain
622
- import.
623
-
624
- ## Local development
382
+ The fastest way in is to fix something you hit while using Clio on your own
383
+ research code. [CONTRIBUTING.md](CONTRIBUTING.md) covers setup, architecture
384
+ invariants, branch and commit conventions, and the review rubric; security
385
+ reports go through [SECURITY.md](SECURITY.md), not public issues.
625
386
 
626
387
  ```bash
627
388
  npm ci
628
- npm run dev # tsup watch build
629
- npm run ci # the full local gate
389
+ npm run dev # tsup watch build
390
+ npm run ci # typecheck, lint and hygiene, skills pin check, build, tests
391
+ npm run ci:release # ci plus the dist and package audit that gates a release
630
392
  ```
631
393
 
632
- Targeted checks when the risk is narrower:
633
-
634
394
  | Check | Command |
635
395
  | --- | --- |
636
396
  | Types | `npm run typecheck` |
637
- | Style | `npm run lint` |
638
- | Contracts | `npm run test:contracts` |
639
- | Smoke flows | `npm run test:smoke` |
640
- | Domain boundaries | `npm run check:boundaries` |
397
+ | Style and domain boundaries | `npm run lint` |
398
+ | One suite | `npm run test:file -- tests/contracts/<name>.test.ts` |
641
399
  | Everything | `npm run test` |
642
400
 
643
401
  Conventions worth knowing before your first PR: local imports end in `.js`,
644
- tests use `node:test`, and `any` needs a tracking issue.
645
-
646
- ## Release verification
647
-
648
- ```bash
649
- npm run ci:release
650
- ```
651
-
652
- That runs typecheck, Biome, the skills pin check, the production build, the
653
- contract, smoke, and boundary suites, and the `check-release` dist and package
654
- audit. Live model validation is separate, manual, and opt-in, because no
655
- deterministic suite can promise that every local model behaves identically:
656
-
657
- ```bash
658
- CLIO_CODER_LIVE_SMOKE=1 \
659
- CLIO_CODER_LIVE_TARGET=openai-compat \
660
- CLIO_CODER_LIVE_RUNTIME=openai-compat \
661
- CLIO_CODER_LIVE_MODEL=your-model \
662
- CLIO_CODER_LIVE_BASE_URL=http://localhost:8080/v1 \
663
- npm run test:live
664
-
665
- CLIO_CODER_LIVE_SMOKE=1 npm run test:live -- --delegation # needs local opencode and copilot
666
- npm run test:live-eval:fleet-dispatch # multi-node dispatch regression
667
- ```
668
-
669
- Benchmarks against public suites live under `benchmarks/`:
670
-
671
- ```bash
672
- npm run bench:swe # SWE-bench Lite
673
- npm run bench:scicode # SciCode
674
- npm run bench:tb # Terminal-Bench
675
- ```
676
-
677
- ## Where to start
678
-
679
- Read [CONTRIBUTING.md](CONTRIBUTING.md) for setup, architecture invariants,
680
- branch and commit conventions, and the review rubric. Good first areas:
681
- provider adapters for a runtime you use
682
- ([cookbook](docs/provider-adapter-cookbook.md)), skills for a scientific
683
- domain you know ([catalog](skills/README.md)), and documentation gaps you hit
684
- during onboarding.
685
-
686
- Security reports go through [SECURITY.md](SECURITY.md), not public issues.
687
-
688
- ---
402
+ tests use `node:test`, `any` needs a tracking issue, and compile-time
403
+ boundaries between domains are enforced by the hygiene lint rather than by
404
+ convention. Read [docs/architecture.md](docs/architecture.md) before adding a
405
+ cross-domain import. Live model validation (`npm run test:live`) and the
406
+ SWE-bench, SciCode, and Terminal-Bench harnesses under `benchmarks/` are
407
+ separate and opt-in, because no deterministic suite can promise that every
408
+ local model behaves identically.
689
409
 
690
410
  ## Documentation
691
411
 
692
- The full set lives under [docs/](docs/README.md), and `clio-coder docs` serves it
693
- locally with interactive blueprints.
412
+ The full set lives under [docs/](docs/README.md); from a source checkout,
413
+ `clio-coder docs` serves the interactive blueprints locally. The pages people
414
+ reach for most:
694
415
 
695
416
  | Topic | Guide |
696
417
  | --- | --- |
697
- | Commands, slash commands, operating posture, keybindings, dispatch, verification, troubleshooting | [commands-and-modes.md](docs/commands-and-modes.md) |
698
- | Multi-node fleet dispatch: SSH transport, doctor preflight, placement, topologies, receipts | [fleet-dispatch.md](docs/fleet-dispatch.md) |
699
- | Executable multi-node demo with a reviewer gate and receipt provenance walkthrough | [fleet-demo-runbook.md](docs/fleet-demo-runbook.md) |
700
- | NDJSON parent-child protocols, watchdog timers, and exit status mapping | [worker-dispatch-mechanics.md](docs/worker-dispatch-mechanics.md) |
701
- | Built-in agent recipes, discovery roots, frontmatter schema, dispatch admission | [built-in-agents.md](docs/built-in-agents.md) |
702
- | Context window resolution, probe capabilities, token accounting, compaction, priming | [context-engine.md](docs/context-engine.md) |
703
- | Proactive task memory, session task bank, intervention rules, handoff carrying | [proactive-memory.md](docs/proactive-memory.md) |
704
- | Runtime targets, local model configuration, fleet profiles, auth | [configuration-and-targets.md](docs/configuration-and-targets.md) |
705
- | Argonne ALCF Sophia and Metis inference targets over Globus OAuth | [alcf-provider.md](docs/alcf-provider.md) |
706
- | Safety posture, default-deny Bash, project policy, damage-control rules, typed validation | [safety-model.md](docs/safety-model.md) |
707
- | Source layout, compile-time boundaries, domain loading, runtime data flow | [architecture.md](docs/architecture.md) |
708
- | Reference for all 20 worker tools: parameters, payloads, error examples | [tool-usage.md](docs/tool-usage.md) |
709
- | Prompt envelope reuse, provider tool delivery, bounded tool results | [prompt-envelope-and-tools.md](docs/prompt-envelope-and-tools.md) |
710
- | Implementing custom model runtimes and inference server integrations | [provider-adapter-cookbook.md](docs/provider-adapter-cookbook.md) |
711
- | Artifact browsing, receipt verification, dispatch diagnostics, observability routing | [observability.md](docs/observability.md) |
712
- | Evidence directory structures, findings, operator-approved memory retrieval | [evidence-and-memory.md](docs/evidence-and-memory.md) |
713
- | Local YAML eval suites, reports, comparisons, command evidence | [eval-runner.md](docs/eval-runner.md) |
714
- | Installation, upgrade, reset, uninstallation, configuration folders, permissions | [installation-and-lifecycle.md](docs/installation-and-lifecycle.md) |
715
- | Every environment variable the runtime reads | [environment-variables.md](docs/environment-variables.md) |
716
- | Prompt and skill resources, extension manifests, portable share archives | [extensions-and-sharing.md](docs/extensions-and-sharing.md) |
717
- | Skills Hub marketplace discovery, install actions, publishing | [skills-marketplace.md](docs/skills-marketplace.md) |
718
- | Runtime model refresh, catalog sources, local and cloud model quirks | [model-catalog.md](docs/model-catalog.md) |
719
- | Active component snapshots and the experimental middleware hook contract | [middleware-and-components.md](docs/middleware-and-components.md) |
720
- | Advisory validation-contract patterns for scientific artifacts and HPC assumptions | [scientific-validation.md](docs/scientific-validation.md) |
721
- | Falsifiable Change Manifest templates, auditability, and `clio-coder evolve` | [evolution.md](docs/evolution.md) |
722
- | Interface layout, palette, Unicode vocabulary, drawing choreography | [tui-design.md](docs/tui-design.md) |
723
- | Source-first docs workflow, mapping matrix, alpha wording guidance | [documentation-guide.md](docs/documentation-guide.md) |
724
- | Private context index determinism and target smoke matrices (internal) | [evals-internal.md](docs/evals-internal.md) |
725
- | Point-in-time inventory of legacy environment variables (historical) | [config-knobs-audit.md](docs/config-knobs-audit.md) |
726
-
727
- ## Measuring local model performance
728
-
729
- llama.cpp and similar backends often expose a single prefix-cache slot. When
730
- dispatch traffic or compaction invalidates it, the next turn records the
731
- expected-cold reasons and shows one dim notice. Per-call cache verdicts
732
- (`hot`, `partial`, `cold`, `small`) are persisted with timing and prompt-cache
733
- counters in each session's `context-snapshots.jsonl`, so a slow session can be
734
- diagnosed from the ledger alone.
735
-
736
- ```bash
737
- clio-coder usage report --days 7 # cost and token facts with cited run ids
738
- ```
739
-
740
- Inside the TUI, `/cost` shows session totals and `/context` opens the
741
- context-window ledger. See [docs/context-engine.md](docs/context-engine.md)
742
- for how the context engine measures and protects the prompt prefix.
743
-
744
- ---
745
-
746
- ## Heritage, lineage, and funding
747
-
748
- Clio Coder is developed under the [IOWarp](https://iowarp.ai) project by the
749
- [Gnosis Research Center](https://grc.iit.edu) at the
750
- [Illinois Institute of Technology](https://www.iit.edu) in collaboration with
751
- the University of Utah.
752
-
753
- IOWarp and the CLIO (Context Layer for Input/Output) architecture are funded by
754
- the National Science Foundation under
418
+ | Commands, slash commands, keybindings, operating posture | [commands-and-modes.md](docs/commands-and-modes.md) |
419
+ | Targets, local model configuration, fleet profiles, auth | [configuration-and-targets.md](docs/configuration-and-targets.md) |
420
+ | Model catalog, quantizations, context windows, quirks | [model-catalog.md](docs/model-catalog.md) |
421
+ | Safety posture, default-deny Bash, damage-control rules | [safety-model.md](docs/safety-model.md) |
422
+ | Multi-node fleet dispatch and the demo runbook | [fleet-dispatch.md](docs/fleet-dispatch.md), [fleet-demo-runbook.md](docs/fleet-demo-runbook.md) |
423
+ | Built-in agents and dispatch admission | [built-in-agents.md](docs/built-in-agents.md) |
424
+ | Context window, token accounting, compaction | [context-engine.md](docs/context-engine.md) |
425
+ | Sessions, the ledger, `/tree`, `/fork`, `/resume` | [session-lifecycle.md](docs/session-lifecycle.md) |
426
+ | Receipts, evidence, and `clio-coder trace` | [observability.md](docs/observability.md) |
427
+ | The twenty tools, parameter by parameter | [tool-usage.md](docs/tool-usage.md) |
428
+ | Exit codes, `--help`, and `--json` contracts | [exit-codes-and-output.md](docs/exit-codes-and-output.md) |
429
+ | Install, upgrade, reset, uninstall | [installation-and-lifecycle.md](docs/installation-and-lifecycle.md) |
430
+ | Adding a runtime or inference server | [provider-adapter-cookbook.md](docs/provider-adapter-cookbook.md) |
431
+ | Source layout and domain boundaries | [architecture.md](docs/architecture.md) |
432
+
433
+ ## Heritage
434
+
435
+ Clio Coder is developed by the [Gnosis Research Center](https://grc.iit.edu)
436
+ at the [Illinois Institute of Technology](https://www.iit.edu) in collaboration
437
+ with the University of Utah. IOWarp and the CLIO architecture are funded by the
438
+ National Science Foundation under
755
439
  [Award #2411318](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318) for
756
440
  2024 through 2029. Principal Investigator: Dr. Xian-He Sun. Co-Principal
757
441
  Investigators: Dr. Anthony Kougkas, Dr. Jake Hochhalter, and Dr. Vivek
758
442
  Srikumar.
759
443
 
760
444
  Clio Coder is the interactive coding orchestrator in a larger ecosystem:
761
-
762
- - [clio-core](https://github.com/iowarp/clio-core) is the foundational storage
763
- layer using Chimaera-based tiered data and context storage.
764
- - [clio-kit](https://github.com/iowarp/clio-kit) is a suite of 15+
765
- [Model Context Protocol](https://modelcontextprotocol.io) servers exposing
766
- 150+ tools for scientific computing domains including HDF5, Slurm, ParaView,
767
- Pandas, ArXiv, NetCDF, FITS, and Zarr.
768
-
769
- ### Built on
770
-
771
- - **Pi Agent Framework** from [Earendil Works](https://github.com/earendil-works):
772
- the [@earendil-works/pi-ai](https://www.npmjs.com/package/@earendil-works/pi-ai)
773
- execution engine, [@earendil-works/pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui)
774
- terminal rendering, and [@earendil-works/pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core)
775
- subagent orchestration.
776
- - **Anthropic Claude Agent SDK** through
777
- [@anthropic-ai/claude-agent-sdk](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk)
778
- for Claude Code worker runs under Pro/Max subscriptions.
779
- - **Agent Client Protocol** for decoupling the engine from IDE frontends.
780
- - **Globus Auth** for authenticating against ALCF's Sophia and Metis inference
781
- gateways.
782
-
783
- ### Evaluation
784
-
785
- Subagents and prompt techniques are evaluated against
786
- [SWE-bench](https://www.swebench.com) and SciCode. Every subagent run produces
787
- structured execution evidence, matched against baseline and candidate
788
- evaluations to catch silent regressions.
445
+ [clio-core](https://github.com/iowarp/clio-core) is the tiered data and context
446
+ storage layer, and [clio-kit](https://github.com/iowarp/clio-kit) is a suite of
447
+ [Model Context Protocol](https://modelcontextprotocol.io) servers exposing 150+
448
+ tools for scientific computing.
449
+
450
+ It is built on the **Pi Agent Framework** from
451
+ [Earendil Works](https://github.com/earendil-works)
452
+ ([pi-ai](https://www.npmjs.com/package/@earendil-works/pi-ai),
453
+ [pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui), and
454
+ [pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core)),
455
+ the **Anthropic Claude Agent SDK** for Claude Code worker runs, the **Agent
456
+ Client Protocol** for editor frontends, and **Globus Auth** for ALCF's inference
457
+ gateways. Subagents and prompt techniques are evaluated against
458
+ [SWE-bench](https://www.swebench.com) and SciCode, with structured execution
459
+ evidence matched against baselines to catch silent regressions.
789
460
 
790
461
  ---
791
462