@iowarp/clio-coder 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1187) hide show
  1. package/CHANGELOG.md +123 -2
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +295 -627
  4. package/dist/acp-BIYHVZIM.js +128 -0
  5. package/dist/{agents-Q4MYPMUW.js → agents-YT6SSRIT.js} +52 -27
  6. package/dist/assets/codewiki.json +1 -0
  7. package/dist/assets/grammars/notices/@vscode__tree-sitter-wasm/LICENSE +21 -0
  8. package/dist/assets/grammars/notices/@vscode__tree-sitter-wasm/cgmanifest.json +16 -0
  9. package/dist/assets/grammars/notices/tree-sitter-wasms/LICENSE +24 -0
  10. package/dist/assets/grammars/tree-sitter-c-sharp.wasm +0 -0
  11. package/dist/assets/grammars/tree-sitter-c.wasm +0 -0
  12. package/dist/assets/grammars/tree-sitter-cpp.wasm +0 -0
  13. package/dist/assets/grammars/tree-sitter-go.wasm +0 -0
  14. package/dist/assets/grammars/tree-sitter-java.wasm +0 -0
  15. package/dist/assets/grammars/tree-sitter-javascript.wasm +0 -0
  16. package/dist/assets/grammars/tree-sitter-python.wasm +0 -0
  17. package/dist/assets/grammars/tree-sitter-ruby.wasm +0 -0
  18. package/dist/assets/grammars/tree-sitter-rust.wasm +0 -0
  19. package/dist/assets/grammars/tree-sitter-tsx.wasm +0 -0
  20. package/dist/assets/grammars/tree-sitter-typescript.wasm +0 -0
  21. package/dist/assets/grammars/tree-sitter.wasm +0 -0
  22. package/dist/{auth-O6HYIJ6J.js → auth-5TWEIYDN.js} +30 -15
  23. package/dist/chunk-2EHAIA3X.js +481 -0
  24. package/dist/{chunk-ME6DNWIU.js → chunk-2IR2NMPA.js} +12 -4
  25. package/dist/chunk-2SFS6XQE.js +122 -0
  26. package/dist/{chunk-KKKPTZLM.js → chunk-2STGEDFV.js} +8 -1
  27. package/dist/chunk-2VTFPG5O.js +48 -0
  28. package/dist/chunk-3I7MS7N2.js +40 -0
  29. package/dist/chunk-3R73A4XB.js +69 -0
  30. package/dist/{chunk-JPOWPFCU.js → chunk-3ZXDFGR5.js} +52 -23
  31. package/dist/chunk-4BJ5BYCE.js +61 -0
  32. package/dist/{chunk-26BZQOAD.js → chunk-4BPJXDWC.js} +161 -260
  33. package/dist/chunk-4KLWL3UC.js +18 -0
  34. package/dist/{chunk-5LDRNKX2.js → chunk-4VP4KH3K.js} +161 -262
  35. package/dist/chunk-4ZG3XFUR.js +77 -0
  36. package/dist/chunk-5B2AEOW5.js +5407 -0
  37. package/dist/chunk-5TSRNF4G.js +510 -0
  38. package/dist/{chunk-WD6AJM35.js → chunk-5UUP6MWO.js} +48 -69
  39. package/dist/{chunk-X3BR7HWV.js → chunk-5WIGXA4T.js} +7 -1
  40. package/dist/chunk-65DEGPJ6.js +52 -0
  41. package/dist/chunk-6EJMN2Y3.js +17 -0
  42. package/dist/chunk-6EJV5X2W.js +16405 -0
  43. package/dist/chunk-6N5PTWMY.js +136 -0
  44. package/dist/chunk-6XLNIQDB.js +27 -0
  45. package/dist/{chunk-XNISANGE.js → chunk-77VKQEHF.js} +171 -74
  46. package/dist/chunk-7CR24IG7.js +242 -0
  47. package/dist/{chunk-UWIJNAOB.js → chunk-7EYHLWU7.js} +907 -638
  48. package/dist/chunk-7MNJORFF.js +22 -0
  49. package/dist/{chunk-JWHCJDCI.js → chunk-A3CYT5EX.js} +257 -79
  50. package/dist/chunk-AGYYIBLL.js +1069 -0
  51. package/dist/chunk-AO4RKG4M.js +277 -0
  52. package/dist/chunk-APJ265NV.js +7410 -0
  53. package/dist/chunk-ARBGF5F7.js +174 -0
  54. package/dist/{chunk-TFSSEXL6.js → chunk-BMEMKKIT.js} +14 -4
  55. package/dist/{chunk-X3NE4WVW.js → chunk-BNAZZHFG.js} +7 -1
  56. package/dist/chunk-CBCAPZAA.js +229 -0
  57. package/dist/{chunk-QV47YRF4.js → chunk-CGKSTWHD.js} +7 -1
  58. package/dist/chunk-CMZWFGD2.js +352 -0
  59. package/dist/chunk-ECH6PKUQ.js +39 -0
  60. package/dist/{chunk-67MTHP2E.js → chunk-ED4KHGC3.js} +13 -5
  61. package/dist/chunk-EKMEHE4H.js +340 -0
  62. package/dist/{chunk-O4EJEDHO.js → chunk-EPVUXGXG.js} +50 -35
  63. package/dist/chunk-FCSXB6T2.js +338 -0
  64. package/dist/chunk-FJ3H4MN5.js +48 -0
  65. package/dist/chunk-FQ4SKYE4.js +29 -0
  66. package/dist/chunk-G2DE3C7R.js +644 -0
  67. package/dist/chunk-G4BMMOKF.js +182 -0
  68. package/dist/{chunk-7BHLZB3A.js → chunk-GGXXDWE4.js} +190 -1218
  69. package/dist/chunk-HC4CLZ2Y.js +68 -0
  70. package/dist/{chunk-E3NYWENM.js → chunk-HFSBBKSQ.js} +55 -61
  71. package/dist/chunk-HKIYEGME.js +30 -0
  72. package/dist/chunk-I4HZDVNP.js +73 -0
  73. package/dist/chunk-IGLFWIYI.js +161 -0
  74. package/dist/chunk-IHXBNWMM.js +137 -0
  75. package/dist/chunk-IKCO5N3L.js +162 -0
  76. package/dist/chunk-IR4CFBFN.js +56 -0
  77. package/dist/{chunk-DXQNI4PC.js → chunk-IWHMRKLL.js} +8 -1
  78. package/dist/{chunk-VOO7NYPP.js → chunk-J5HN4RYU.js} +27 -9
  79. package/dist/{chunk-4UQA7NCT.js → chunk-J5Q24KAG.js} +7 -2
  80. package/dist/{chunk-KBR4MZZR.js → chunk-JVCV3ICN.js} +7 -1
  81. package/dist/chunk-KJ5LWLOE.js +1077 -0
  82. package/dist/chunk-LBMZMYH2.js +285 -0
  83. package/dist/{chunk-3DANZDGR.js → chunk-LBNRH5WM.js} +100 -161
  84. package/dist/{chunk-TKHQ4DGZ.js → chunk-LZSJBIVT.js} +7358 -7414
  85. package/dist/{chunk-UGYAX5YI.js → chunk-M6SHUN7Q.js} +13 -8
  86. package/dist/chunk-MAW544W2.js +1882 -0
  87. package/dist/chunk-MBS4V7ZP.js +217 -0
  88. package/dist/{chunk-2J63S4SF.js → chunk-MFFY33HR.js} +167 -140
  89. package/dist/chunk-MNA4JGU4.js +255 -0
  90. package/dist/chunk-MQSRRFWA.js +3428 -0
  91. package/dist/{chunk-RQDWMVRB.js → chunk-MVVUPGPW.js} +138 -137
  92. package/dist/chunk-OAO4GE4M.js +619 -0
  93. package/dist/chunk-OHHN2SO4.js +5135 -0
  94. package/dist/chunk-OKGUZO2U.js +34 -0
  95. package/dist/{chunk-BBUH4VAA.js → chunk-OOJYHWRB.js} +60 -361
  96. package/dist/{chunk-D5YD55AR.js → chunk-OQ33BKR3.js} +12 -1
  97. package/dist/chunk-OQE5J4C6.js +73 -0
  98. package/dist/{chunk-AMFR5YA3.js → chunk-ORBHGJC5.js} +26 -12
  99. package/dist/chunk-POHLU5DW.js +1186 -0
  100. package/dist/chunk-QKMUKYO7.js +4961 -0
  101. package/dist/{chunk-7RBKDI66.js → chunk-QTYWRVRA.js} +104 -12
  102. package/dist/{chunk-5N2FG33Q.js → chunk-R346GLFC.js} +7 -1
  103. package/dist/chunk-SRF2PJNW.js +184 -0
  104. package/dist/chunk-SST6Z5JA.js +80 -0
  105. package/dist/{chunk-XV4ZJ6ZM.js → chunk-STBPMHSX.js} +473 -1194
  106. package/dist/{chunk-HBU5MTAM.js → chunk-SVNXH4L2.js} +7 -1
  107. package/dist/chunk-T6YILFSB.js +80 -0
  108. package/dist/chunk-TXOTCRLG.js +15 -0
  109. package/dist/chunk-TZTZS7QK.js +227 -0
  110. package/dist/chunk-UOV2BYIW.js +107 -0
  111. package/dist/{chunk-527KG6XR.js → chunk-V4RXGQ5Q.js} +72 -185
  112. package/dist/chunk-VAKQQHWR.js +434 -0
  113. package/dist/chunk-VG7TBQIY.js +128 -0
  114. package/dist/chunk-VJWL6YS5.js +244 -0
  115. package/dist/chunk-WEH5XRJQ.js +32 -0
  116. package/dist/{chunk-VPAWTYLY.js → chunk-WEPFGWHJ.js} +7 -1
  117. package/dist/chunk-WMSVI4G2.js +2095 -0
  118. package/dist/chunk-WVO7V2QY.js +797 -0
  119. package/dist/chunk-X4RCMKVQ.js +641 -0
  120. package/dist/chunk-X75S7HFS.js +374 -0
  121. package/dist/chunk-XN3L4EYL.js +46 -0
  122. package/dist/{chunk-HMYNFFY4.js → chunk-XPLRXC72.js} +7 -2
  123. package/dist/{chunk-PIDUD6M2.js → chunk-YCWGATWI.js} +12 -5
  124. package/dist/chunk-YHZX5GEU.js +193 -0
  125. package/dist/chunk-YXLYO42X.js +91 -0
  126. package/dist/{chunk-UHTSULZS.js → chunk-ZDOOVTXZ.js} +38 -73
  127. package/dist/chunk-ZI647VB5.js +37 -0
  128. package/dist/{chunk-CLJ5HLUD.js → chunk-ZWLZP4ZT.js} +25 -6
  129. package/dist/cli/index.js +70 -56
  130. package/dist/clio-4LY5K2AC.js +25 -0
  131. package/dist/code-nav-7AX6FYE6.js +600 -0
  132. package/dist/codewiki/build-worker.js +66 -0
  133. package/dist/compile-cache-CVJMMODC.js +18 -0
  134. package/dist/{components-JVHMUBEB.js → components-KELWS457.js} +31 -9
  135. package/dist/{config-ZFCDBMDC.js → config-GTLUW2PR.js} +104 -56
  136. package/dist/configure-R6A64DHX.js +42 -0
  137. package/dist/context-5VKGUVJJ.js +866 -0
  138. package/dist/{context-CDXTP2MP.js → context-JFZEJ7W5.js} +21 -13
  139. package/dist/{context-E3KIFVXI.js → context-RW5HC47S.js} +77 -36
  140. package/dist/{context-clear-3F4PLXOS.js → context-clear-6ZHBAZZT.js} +64 -30
  141. package/dist/{context-index-Q7YSYTR3.js → context-index-BZ4UYMTC.js} +36 -24
  142. package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
  143. package/dist/{docs-YIETIWZI.js → docs-2C2LTVT2.js} +32 -13
  144. package/dist/doctor-KI767GSN.js +87 -0
  145. package/dist/{eval-B3KZZESM.js → eval-XSSNATB4.js} +93 -27
  146. package/dist/{evidence-V67CHM35.js → evidence-UA6AWDQQ.js} +55 -27
  147. package/dist/{evolve-YDZSUQYA.js → evolve-QNTFGV6Z.js} +59 -26
  148. package/dist/{extensions-SRG7XCAH.js → extensions-QVDOHDGJ.js} +23 -8
  149. package/dist/{fleet-CA2CRTVG.js → fleet-Q7UOMUSG.js} +173 -56
  150. package/dist/fleet-preflight-DDN536IT.js +26 -0
  151. package/dist/{init-2OZDJE2D.js → init-WBB65ZHQ.js} +79 -34
  152. package/dist/{memory-3PIQQAKX.js → memory-MD3O64RI.js} +57 -28
  153. package/dist/{models-DY35XI7Y.js → models-BZU34YWD.js} +49 -24
  154. package/dist/monitor-MEQA5C3I.js +661 -0
  155. package/dist/{chunk-PS4PFJQP.js → orchestrator-CGFKEP27.js} +22837 -18564
  156. package/dist/{paths-5OMXW7Z4.js → paths-UXLN5YYZ.js} +17 -6
  157. package/dist/preload-P6DGH2PZ.js +13 -0
  158. package/dist/{reset-PIFYNOS3.js → reset-L2FQEE3E.js} +25 -13
  159. package/dist/{run-3VSPP24F.js → run-IV4Q6RLN.js} +115 -63
  160. package/dist/{share-D36RQCXM.js → share-S5BZQC5I.js} +23 -10
  161. package/dist/{skills-F2MRLELY.js → skills-LQEKRDTN.js} +42 -15
  162. package/dist/{skills-eval-E2ZTW4PL.js → skills-eval-3DC4HEWS.js} +90 -45
  163. package/dist/steer-GGWFUJUD.js +77 -0
  164. package/dist/{targets-DZMEZAH4.js → targets-C4SSGQOB.js} +78 -60
  165. package/dist/terminal-lease-IT5JW2NR.js +395 -0
  166. package/dist/{trace-7NYCUI2J.js → trace-PNCASAXC.js} +48 -17
  167. package/dist/tree-sitter-HGKH6LG4.js +4673 -0
  168. package/dist/{uninstall-AD3JWHBB.js → uninstall-FZCQCDKC.js} +19 -8
  169. package/dist/{upgrade-WYYBKGDY.js → upgrade-7TT7SQ3G.js} +66 -24
  170. package/dist/{usage-ULIDAGFF.js → usage-GV4PKT3M.js} +71 -32
  171. package/dist/verify-G6V4D2G7.js +716 -0
  172. package/dist/version-KGEG7EPO.js +21 -0
  173. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  174. package/dist/{wiki-generate-PKFIX6OB.js → wiki-generate-DQF6Z66B.js} +98 -48
  175. package/dist/worker/entry.js +297 -54
  176. package/dist/workspace-G4ZWUIPR.js +22 -0
  177. package/docs/README.md +29 -21
  178. package/docs/acp.md +191 -16
  179. package/docs/alcf-provider.md +1 -1
  180. package/docs/architecture.md +157 -7
  181. package/docs/artifact-placement.md +101 -0
  182. package/docs/artifact-versions.md +1 -1
  183. package/docs/built-in-agents.md +4 -2
  184. package/docs/capacity-and-scheduling.md +1 -1
  185. package/docs/commands-and-modes.md +224 -97
  186. package/docs/config-knobs-audit.md +1 -3
  187. package/docs/configuration-and-targets.md +236 -38
  188. package/docs/context-engine.md +34 -7
  189. package/docs/development-pipeline.md +102 -0
  190. package/docs/dispatch-architecture-rationale.md +1 -1
  191. package/docs/documentation-coverage.md +4 -4
  192. package/docs/documentation-guide.md +3 -3
  193. package/docs/environment-variables.md +15 -6
  194. package/docs/eval-runner.md +3 -3
  195. package/docs/evals-internal.md +2 -2
  196. package/docs/evidence-and-memory.md +10 -2
  197. package/docs/evolution.md +2 -2
  198. package/docs/exit-codes-and-output.md +15 -9
  199. package/docs/extensions-and-sharing.md +25 -18
  200. package/docs/fleet-demo-runbook.md +22 -23
  201. package/docs/fleet-dispatch.md +117 -16
  202. package/docs/git-commit-provenance.md +120 -0
  203. package/docs/glossary.md +107 -15
  204. package/docs/installation-and-lifecycle.md +75 -17
  205. package/docs/middleware-and-components.md +1 -1
  206. package/docs/model-catalog.md +46 -15
  207. package/docs/observability.md +8 -5
  208. package/docs/performance-methodology.md +491 -0
  209. package/docs/pi-boundary.md +72 -0
  210. package/docs/proactive-memory.md +14 -14
  211. package/docs/prompt-envelope-and-tools.md +25 -4
  212. package/docs/provider-adapter-cookbook.md +57 -4
  213. package/docs/release-cut-checklist.md +129 -111
  214. package/docs/safety-model.md +28 -8
  215. package/docs/scientific-validation.md +3 -3
  216. package/docs/session-lifecycle.md +55 -12
  217. package/docs/skills-marketplace.md +12 -8
  218. package/docs/time-conventions.md +101 -0
  219. package/docs/tool-usage.md +6 -5
  220. package/docs/trace-store.md +1 -1
  221. package/docs/troubleshooting.md +10 -7
  222. package/docs/tui-design.md +121 -28
  223. package/docs/worker-dispatch-mechanics.md +3 -3
  224. package/package.json +33 -36
  225. package/skills/README.md +5 -6
  226. package/skills/coding/ast-grep/SKILL.md +136 -0
  227. package/skills/coding/ast-grep/evals.md +56 -0
  228. package/skills/coding/ast-grep/references/rule_reference.md +297 -0
  229. package/skills/coding/coding-standards/SKILL.md +113 -0
  230. package/skills/coding/coding-standards/evals.md +34 -0
  231. package/skills/coding/prototype/SKILL.md +86 -0
  232. package/skills/coding/prototype/evals.md +42 -0
  233. package/skills/coding/prototype/references/LOGIC.md +67 -0
  234. package/skills/coding/prototype/references/UI.md +112 -0
  235. package/skills/coding/tdd/SKILL.md +101 -0
  236. package/skills/coding/tdd/evals.md +41 -0
  237. package/skills/coding/tdd/references/mocking.md +59 -0
  238. package/skills/coding/tdd/references/tests.md +77 -0
  239. package/skills/context/context-handoff/SKILL.md +126 -0
  240. package/skills/context/context-handoff/evals.md +57 -0
  241. package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
  242. package/skills/context/context-prime/SKILL.md +95 -0
  243. package/skills/context/context-prime/evals.md +54 -0
  244. package/skills/git/file-ticket/SKILL.md +107 -0
  245. package/skills/git/file-ticket/evals.md +54 -0
  246. package/skills/git/fix-issue/SKILL.md +106 -0
  247. package/skills/git/fix-issue/evals.md +71 -0
  248. package/skills/git/ship/SKILL.md +92 -0
  249. package/skills/git/ship/evals.md +72 -0
  250. package/skills/meta/clio-dev/SKILL.md +91 -0
  251. package/skills/meta/clio-dev/evals.md +45 -0
  252. package/skills/meta/clio-test/SKILL.md +130 -0
  253. package/skills/meta/clio-test/evals.md +43 -0
  254. package/skills/meta/clio-test/references/harness.md +97 -0
  255. package/skills/meta/clio-test/references/test-map.md +59 -0
  256. package/skills/meta/credentials/SKILL.md +125 -0
  257. package/skills/meta/credentials/evals.md +104 -0
  258. package/skills/meta/find-skills/SKILL.md +72 -0
  259. package/skills/meta/find-skills/evals.md +47 -0
  260. package/skills/meta/herdr/SKILL.md +127 -0
  261. package/skills/meta/herdr/evals.md +38 -0
  262. package/skills/meta/skill-craft/SKILL.md +102 -0
  263. package/skills/meta/skill-craft/evals.md +41 -0
  264. package/skills/planning/architecture/SKILL.md +129 -0
  265. package/skills/planning/architecture/evals.md +36 -0
  266. package/skills/planning/backlog/SKILL.md +90 -0
  267. package/skills/planning/backlog/evals.md +43 -0
  268. package/skills/planning/prd/SKILL.md +82 -0
  269. package/skills/planning/prd/evals.md +49 -0
  270. package/skills/planning/product-intent/SKILL.md +112 -0
  271. package/skills/planning/product-intent/evals.md +36 -0
  272. package/skills/planning/tech-spec/SKILL.md +115 -0
  273. package/skills/planning/tech-spec/evals.md +47 -0
  274. package/skills/registry.yaml +136 -0
  275. package/skills/research/arxiv-literature/SKILL.md +104 -0
  276. package/skills/research/arxiv-literature/evals.md +58 -0
  277. package/skills/research/experiment-protocol/SKILL.md +122 -0
  278. package/skills/research/experiment-protocol/evals.md +91 -0
  279. package/skills/research/scientific-debugging/SKILL.md +119 -0
  280. package/skills/research/scientific-debugging/evals.md +138 -0
  281. package/skills/research/scientific-modernization/SKILL.md +138 -0
  282. package/skills/research/scientific-modernization/evals.md +84 -0
  283. package/skills/skill-marketplace.json +12 -20
  284. package/skills/workflow/design-council/SKILL.md +139 -0
  285. package/skills/workflow/design-council/evals.md +97 -0
  286. package/skills/workflow/grill-me/SKILL.md +186 -0
  287. package/skills/workflow/grill-me/evals.md +78 -0
  288. package/skills/workflow/workflow-distiller/SKILL.md +136 -0
  289. package/skills/workflow/workflow-distiller/evals.md +107 -0
  290. package/src/cli/acp.ts +115 -0
  291. package/src/cli/agents.ts +60 -0
  292. package/src/cli/args.ts +280 -0
  293. package/src/cli/argv.ts +170 -0
  294. package/src/cli/ask.ts +34 -0
  295. package/src/cli/auth.ts +468 -0
  296. package/src/cli/bootstrap-generate.ts +498 -0
  297. package/src/cli/clio.ts +96 -0
  298. package/src/cli/components.ts +195 -0
  299. package/src/cli/config-inspect.ts +336 -0
  300. package/src/cli/config.ts +72 -0
  301. package/src/cli/configure-interop.ts +67 -0
  302. package/src/cli/configure-layout.ts +172 -0
  303. package/src/cli/configure.ts +1525 -0
  304. package/src/cli/context-clear.ts +76 -0
  305. package/src/cli/context-index.ts +100 -0
  306. package/src/cli/context.ts +321 -0
  307. package/src/cli/default-target.ts +55 -0
  308. package/src/cli/docs.ts +346 -0
  309. package/src/cli/doctor.ts +54 -0
  310. package/src/cli/eval.ts +315 -0
  311. package/src/cli/evidence.ts +225 -0
  312. package/src/cli/evolve.ts +219 -0
  313. package/src/cli/extensions.ts +214 -0
  314. package/src/cli/fleet.ts +868 -0
  315. package/src/cli/index.ts +338 -0
  316. package/src/cli/init.ts +219 -0
  317. package/src/cli/initial-message.ts +47 -0
  318. package/src/cli/internal-dispatch.ts +55 -0
  319. package/src/cli/memory.ts +182 -0
  320. package/src/cli/models.ts +257 -0
  321. package/src/cli/modes/json-stream.ts +121 -0
  322. package/src/cli/modes/jsonl.ts +9 -0
  323. package/src/cli/modes/print.ts +604 -0
  324. package/src/cli/oauth-manual-input.ts +72 -0
  325. package/src/cli/oauth-select.ts +36 -0
  326. package/src/cli/output-guard.ts +48 -0
  327. package/src/cli/paths.ts +44 -0
  328. package/src/cli/provider-target.ts +113 -0
  329. package/src/cli/removal.ts +72 -0
  330. package/src/cli/reset.ts +253 -0
  331. package/src/cli/run.ts +497 -0
  332. package/src/cli/share.ts +243 -0
  333. package/src/cli/shared.ts +60 -0
  334. package/src/cli/skills-eval.ts +1240 -0
  335. package/src/cli/skills.ts +485 -0
  336. package/src/cli/steer-channel.ts +86 -0
  337. package/src/cli/targets.ts +1154 -0
  338. package/src/cli/text-layout.ts +112 -0
  339. package/src/cli/trace.ts +322 -0
  340. package/src/cli/uninstall.ts +405 -0
  341. package/src/cli/upgrade.ts +286 -0
  342. package/src/cli/usage.ts +876 -0
  343. package/src/cli/validate-model.ts +28 -0
  344. package/src/cli/version.ts +7 -0
  345. package/src/cli/wiki-generate.ts +510 -0
  346. package/src/core/agent-environment.ts +7 -0
  347. package/src/core/artifact-paths.ts +43 -0
  348. package/src/core/bash-exec.ts +313 -0
  349. package/src/core/boot-trace.ts +42 -0
  350. package/src/core/bus-events.ts +744 -0
  351. package/src/core/bus-trace.ts +53 -0
  352. package/src/core/c-header-language.ts +265 -0
  353. package/src/core/clio-repo.ts +78 -0
  354. package/src/core/commit-attribution.ts +157 -0
  355. package/src/core/compile-cache.ts +159 -0
  356. package/src/core/config.ts +1722 -0
  357. package/src/core/context-floor.ts +33 -0
  358. package/src/core/defaults.ts +659 -0
  359. package/src/core/domain-loader.ts +177 -0
  360. package/src/core/event-bus.ts +94 -0
  361. package/src/core/file-references.ts +282 -0
  362. package/src/core/git-commit-attribution.ts +362 -0
  363. package/src/core/guardrails.ts +185 -0
  364. package/src/core/headless-permission.ts +21 -0
  365. package/src/core/incomplete-installation.ts +45 -0
  366. package/src/core/init.ts +223 -0
  367. package/src/core/json-payload.ts +58 -0
  368. package/src/core/package-root.ts +54 -0
  369. package/src/core/path-canonical.ts +37 -0
  370. package/src/core/process-identity.ts +41 -0
  371. package/src/core/recent-models.ts +91 -0
  372. package/src/core/residency-protection.ts +56 -0
  373. package/src/core/resolve-config-value.ts +88 -0
  374. package/src/core/response-schema.ts +279 -0
  375. package/src/core/run-overrides.ts +77 -0
  376. package/src/core/safe-exec.ts +205 -0
  377. package/src/core/safe-id.ts +37 -0
  378. package/src/core/safe-resource-write.ts +162 -0
  379. package/src/core/session-routing.ts +339 -0
  380. package/src/core/settings-layers.ts +354 -0
  381. package/src/core/shared-bus.ts +8 -0
  382. package/src/core/shell-quote.ts +26 -0
  383. package/src/core/skill-activation.ts +190 -0
  384. package/src/core/startup-timer.ts +37 -0
  385. package/src/core/state-file-lock.ts +219 -0
  386. package/src/core/termination.ts +275 -0
  387. package/src/core/timers.ts +38 -0
  388. package/src/core/tool-names.ts +65 -0
  389. package/src/core/verification-scripts.ts +13 -0
  390. package/src/core/workspace-files.ts +492 -0
  391. package/src/core/xdg.ts +177 -0
  392. package/src/domains/agents/builtins/architect.md +4 -4
  393. package/src/domains/agents/builtins/coder.md +3 -2
  394. package/src/domains/agents/builtins/debugger.md +1 -1
  395. package/src/domains/agents/builtins/documenter.md +1 -1
  396. package/src/domains/agents/builtins/git-master.md +3 -3
  397. package/src/domains/agents/builtins/provenance.md +1 -1
  398. package/src/domains/agents/builtins/researcher.md +1 -1
  399. package/src/domains/agents/builtins/scout.md +1 -1
  400. package/src/domains/agents/builtins/tester.md +1 -1
  401. package/src/domains/agents/builtins/verifier.md +1 -1
  402. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  403. package/src/domains/agents/catalog.ts +172 -0
  404. package/src/domains/agents/contract.ts +16 -0
  405. package/src/domains/agents/extension.ts +110 -0
  406. package/src/domains/agents/fleet-commands.ts +154 -0
  407. package/src/domains/agents/fleet-contract.ts +797 -0
  408. package/src/domains/agents/frontmatter.ts +40 -0
  409. package/src/domains/agents/index.ts +102 -0
  410. package/src/domains/agents/manifest.ts +6 -0
  411. package/src/domains/agents/recipe-schema.ts +202 -0
  412. package/src/domains/agents/recipe.ts +125 -0
  413. package/src/domains/agents/registry.ts +111 -0
  414. package/src/domains/agents/result-contract.ts +1265 -0
  415. package/src/domains/agents/spec.ts +371 -0
  416. package/src/domains/agents/write-boundary.ts +109 -0
  417. package/src/domains/components/diff.ts +99 -0
  418. package/src/domains/components/hash.ts +21 -0
  419. package/src/domains/components/index.ts +3 -0
  420. package/src/domains/components/scan.ts +304 -0
  421. package/src/domains/components/snapshot.ts +108 -0
  422. package/src/domains/components/types.ts +82 -0
  423. package/src/domains/config/agent-namespace.ts +13 -0
  424. package/src/domains/config/classify.ts +106 -0
  425. package/src/domains/config/contract.ts +22 -0
  426. package/src/domains/config/extension.ts +142 -0
  427. package/src/domains/config/index.ts +23 -0
  428. package/src/domains/config/keybindings.ts +200 -0
  429. package/src/domains/config/manifest.ts +6 -0
  430. package/src/domains/config/watcher.ts +41 -0
  431. package/src/domains/context/adoption.ts +880 -0
  432. package/src/domains/context/bootstrap-prompt.ts +273 -0
  433. package/src/domains/context/bootstrap.ts +1502 -0
  434. package/src/domains/context/clear.ts +91 -0
  435. package/src/domains/context/clio-md.ts +429 -0
  436. package/src/domains/context/codewiki/artifact.ts +400 -0
  437. package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
  438. package/src/domains/context/codewiki/build-worker.ts +54 -0
  439. package/src/domains/context/codewiki/cmake.ts +356 -0
  440. package/src/domains/context/codewiki/cooperative.ts +46 -0
  441. package/src/domains/context/codewiki/coordinator.ts +182 -0
  442. package/src/domains/context/codewiki/digest.ts +135 -0
  443. package/src/domains/context/codewiki/grammar-assets.ts +33 -0
  444. package/src/domains/context/codewiki/indexer.ts +1529 -0
  445. package/src/domains/context/codewiki/paths.ts +67 -0
  446. package/src/domains/context/codewiki/schema.ts +80 -0
  447. package/src/domains/context/codewiki/tree-sitter.ts +771 -0
  448. package/src/domains/context/contract.ts +68 -0
  449. package/src/domains/context/excluded-dirs.ts +1 -0
  450. package/src/domains/context/extension.ts +358 -0
  451. package/src/domains/context/fingerprint.ts +198 -0
  452. package/src/domains/context/index.ts +154 -0
  453. package/src/domains/context/init-options.ts +69 -0
  454. package/src/domains/context/manifest.ts +6 -0
  455. package/src/domains/context/operator-profile.ts +157 -0
  456. package/src/domains/context/project-metadata.ts +529 -0
  457. package/src/domains/context/project-rules.ts +227 -0
  458. package/src/domains/context/prompt-context.ts +61 -0
  459. package/src/domains/context/refresh.ts +178 -0
  460. package/src/domains/context/runtime.ts +17 -0
  461. package/src/domains/context/sibling-files.ts +10 -0
  462. package/src/domains/context/state.ts +237 -0
  463. package/src/domains/context/wiki/assemble.ts +303 -0
  464. package/src/domains/context/wiki/frontmatter.ts +210 -0
  465. package/src/domains/context/wiki/generate.ts +595 -0
  466. package/src/domains/context/wiki/layout.ts +111 -0
  467. package/src/domains/context/wiki/meta.ts +221 -0
  468. package/src/domains/context/wiki/plan-store.ts +217 -0
  469. package/src/domains/context/wiki/plan.ts +250 -0
  470. package/src/domains/context/wiki/prompts.ts +283 -0
  471. package/src/domains/context/wiki/staleness.ts +198 -0
  472. package/src/domains/dispatch/active-route-planner.ts +168 -0
  473. package/src/domains/dispatch/admission-queue.ts +150 -0
  474. package/src/domains/dispatch/admission.ts +334 -0
  475. package/src/domains/dispatch/agent-candidates.ts +307 -0
  476. package/src/domains/dispatch/agent-ledger-hub.ts +71 -0
  477. package/src/domains/dispatch/agent-ledger-store.ts +257 -0
  478. package/src/domains/dispatch/agent-ledger.ts +212 -0
  479. package/src/domains/dispatch/agent-plan-adapter.ts +85 -0
  480. package/src/domains/dispatch/assignment-events.ts +132 -0
  481. package/src/domains/dispatch/assignment-reconcile.ts +76 -0
  482. package/src/domains/dispatch/assignment-store.ts +162 -0
  483. package/src/domains/dispatch/assignment.ts +278 -0
  484. package/src/domains/dispatch/backoff.ts +59 -0
  485. package/src/domains/dispatch/batch-store.ts +134 -0
  486. package/src/domains/dispatch/batch-tracker.ts +66 -0
  487. package/src/domains/dispatch/capability-match.ts +155 -0
  488. package/src/domains/dispatch/capacity-lease.ts +413 -0
  489. package/src/domains/dispatch/code-step-store.ts +52 -0
  490. package/src/domains/dispatch/code-step.ts +387 -0
  491. package/src/domains/dispatch/contract.ts +278 -0
  492. package/src/domains/dispatch/dedup.ts +133 -0
  493. package/src/domains/dispatch/event-pump.ts +251 -0
  494. package/src/domains/dispatch/execution-handoff.ts +29 -0
  495. package/src/domains/dispatch/execution-plan.ts +328 -0
  496. package/src/domains/dispatch/execution-role.ts +277 -0
  497. package/src/domains/dispatch/execution-scheduler.ts +583 -0
  498. package/src/domains/dispatch/extension.ts +6006 -0
  499. package/src/domains/dispatch/failure-classification.ts +147 -0
  500. package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
  501. package/src/domains/dispatch/fleet-plan.ts +225 -0
  502. package/src/domains/dispatch/fleet-preflight.ts +394 -0
  503. package/src/domains/dispatch/gate-decisions.ts +1040 -0
  504. package/src/domains/dispatch/gate-role-prompts.ts +58 -0
  505. package/src/domains/dispatch/heartbeat.ts +27 -0
  506. package/src/domains/dispatch/index.ts +137 -0
  507. package/src/domains/dispatch/joint-route-adapter.ts +114 -0
  508. package/src/domains/dispatch/joint-route-resolver.ts +283 -0
  509. package/src/domains/dispatch/manifest.ts +6 -0
  510. package/src/domains/dispatch/orphan-recovery.ts +266 -0
  511. package/src/domains/dispatch/outcome.ts +109 -0
  512. package/src/domains/dispatch/phase-timing.ts +47 -0
  513. package/src/domains/dispatch/placement.ts +202 -0
  514. package/src/domains/dispatch/receipt-findings.ts +255 -0
  515. package/src/domains/dispatch/receipt-integrity.ts +383 -0
  516. package/src/domains/dispatch/recovery-candidates.ts +74 -0
  517. package/src/domains/dispatch/reproducibility.ts +48 -0
  518. package/src/domains/dispatch/reservation-store.ts +501 -0
  519. package/src/domains/dispatch/route-approval.ts +177 -0
  520. package/src/domains/dispatch/route-candidates.ts +57 -0
  521. package/src/domains/dispatch/route-decision.ts +1079 -0
  522. package/src/domains/dispatch/route-facts.ts +187 -0
  523. package/src/domains/dispatch/route-history.ts +238 -0
  524. package/src/domains/dispatch/route-observer.ts +488 -0
  525. package/src/domains/dispatch/route-policy.ts +327 -0
  526. package/src/domains/dispatch/route-quality.ts +256 -0
  527. package/src/domains/dispatch/route-readiness.ts +120 -0
  528. package/src/domains/dispatch/routing-intent.ts +287 -0
  529. package/src/domains/dispatch/run-identity.ts +56 -0
  530. package/src/domains/dispatch/scout-transition.ts +130 -0
  531. package/src/domains/dispatch/state.ts +302 -0
  532. package/src/domains/dispatch/tool-stats.ts +132 -0
  533. package/src/domains/dispatch/transport.ts +210 -0
  534. package/src/domains/dispatch/types.ts +799 -0
  535. package/src/domains/dispatch/validation-grounding.ts +154 -0
  536. package/src/domains/dispatch/validation.ts +721 -0
  537. package/src/domains/dispatch/worker-protocol.ts +275 -0
  538. package/src/domains/dispatch/worker-spawn.ts +585 -0
  539. package/src/domains/dispatch/write-boundary-enforcer.ts +97 -0
  540. package/src/domains/dispatch/write-boundary.ts +426 -0
  541. package/src/domains/eval/artifacts/redact.ts +42 -0
  542. package/src/domains/eval/artifacts/store.ts +173 -0
  543. package/src/domains/eval/compare/compare.ts +33 -0
  544. package/src/domains/eval/compare/gates.ts +66 -0
  545. package/src/domains/eval/compare/thresholds.ts +92 -0
  546. package/src/domains/eval/harness-metrics.ts +62 -0
  547. package/src/domains/eval/index.ts +66 -0
  548. package/src/domains/eval/metrics/chaos-stream.ts +93 -0
  549. package/src/domains/eval/metrics/context.ts +34 -0
  550. package/src/domains/eval/metrics/coverage.ts +21 -0
  551. package/src/domains/eval/metrics/evidence.ts +182 -0
  552. package/src/domains/eval/metrics/fleet-loop-stream.ts +196 -0
  553. package/src/domains/eval/metrics/invariants.ts +736 -0
  554. package/src/domains/eval/metrics/latency.ts +4 -0
  555. package/src/domains/eval/metrics/token-stream.ts +139 -0
  556. package/src/domains/eval/metrics/tokens.ts +51 -0
  557. package/src/domains/eval/metrics/tool-calls.ts +7 -0
  558. package/src/domains/eval/proactive-memory.ts +279 -0
  559. package/src/domains/eval/provenance.ts +35 -0
  560. package/src/domains/eval/report.ts +234 -0
  561. package/src/domains/eval/reports/json.ts +5 -0
  562. package/src/domains/eval/reports/junit.ts +23 -0
  563. package/src/domains/eval/reports/markdown.ts +20 -0
  564. package/src/domains/eval/reports/swe-jsonl.ts +16 -0
  565. package/src/domains/eval/reports/text.ts +25 -0
  566. package/src/domains/eval/run-compare.ts +274 -0
  567. package/src/domains/eval/runner.ts +244 -0
  568. package/src/domains/eval/runners/clio-run.ts +148 -0
  569. package/src/domains/eval/runners/context-index.ts +56 -0
  570. package/src/domains/eval/runners/context-init.ts +203 -0
  571. package/src/domains/eval/runners/external-command.ts +350 -0
  572. package/src/domains/eval/runtime-paths.ts +171 -0
  573. package/src/domains/eval/schema/artifact.ts +75 -0
  574. package/src/domains/eval/schema/suite.ts +235 -0
  575. package/src/domains/eval/schema/validate.ts +339 -0
  576. package/src/domains/eval/store.ts +392 -0
  577. package/src/domains/eval/suites/load.ts +74 -0
  578. package/src/domains/eval/suites/matrix.ts +19 -0
  579. package/src/domains/eval/suites/resolve.ts +44 -0
  580. package/src/domains/eval/suites/run.ts +325 -0
  581. package/src/domains/eval/task-file.ts +186 -0
  582. package/src/domains/eval/types.ts +140 -0
  583. package/src/domains/eval/verifiers/command.ts +27 -0
  584. package/src/domains/eval/verifiers/file-exists.ts +6 -0
  585. package/src/domains/eval/verifiers/patch.ts +22 -0
  586. package/src/domains/eval/workspaces/git.ts +41 -0
  587. package/src/domains/eval/workspaces/local.ts +17 -0
  588. package/src/domains/eval/workspaces/temp-copy.ts +29 -0
  589. package/src/domains/evidence/build.ts +1754 -0
  590. package/src/domains/evidence/eval.ts +605 -0
  591. package/src/domains/evidence/failure-attribution.ts +54 -0
  592. package/src/domains/evidence/finish-contract-map.ts +42 -0
  593. package/src/domains/evidence/index.ts +55 -0
  594. package/src/domains/evidence/provenance.ts +200 -0
  595. package/src/domains/evidence/redact.ts +81 -0
  596. package/src/domains/evidence/store.ts +291 -0
  597. package/src/domains/evidence/types.ts +325 -0
  598. package/src/domains/evolution/SELF_EDIT_GATE.md +91 -0
  599. package/src/domains/evolution/index.ts +26 -0
  600. package/src/domains/evolution/manifest.ts +154 -0
  601. package/src/domains/evolution/validate.ts +304 -0
  602. package/src/domains/extensions/contract.ts +22 -0
  603. package/src/domains/extensions/discovery.ts +193 -0
  604. package/src/domains/extensions/extension.ts +46 -0
  605. package/src/domains/extensions/index.ts +34 -0
  606. package/src/domains/extensions/manager.ts +30 -0
  607. package/src/domains/extensions/manifest.ts +6 -0
  608. package/src/domains/extensions/resources.ts +38 -0
  609. package/src/domains/extensions/state.ts +224 -0
  610. package/src/domains/extensions/types.ts +83 -0
  611. package/src/domains/interop/consent.ts +185 -0
  612. package/src/domains/interop/contract.ts +29 -0
  613. package/src/domains/interop/detect.ts +173 -0
  614. package/src/domains/interop/extension.ts +59 -0
  615. package/src/domains/interop/index.ts +34 -0
  616. package/src/domains/interop/manifest.ts +6 -0
  617. package/src/domains/interop/registry.ts +139 -0
  618. package/src/domains/interop/state.ts +92 -0
  619. package/src/domains/interop/types.ts +109 -0
  620. package/src/domains/lifecycle/contract.ts +11 -0
  621. package/src/domains/lifecycle/doctor.ts +536 -0
  622. package/src/domains/lifecycle/extension.ts +23 -0
  623. package/src/domains/lifecycle/index.ts +21 -0
  624. package/src/domains/lifecycle/install-method.ts +51 -0
  625. package/src/domains/lifecycle/manifest.ts +6 -0
  626. package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
  627. package/src/domains/lifecycle/migrations/index.ts +114 -0
  628. package/src/domains/lifecycle/state.ts +93 -0
  629. package/src/domains/lifecycle/upgrade-notice.ts +35 -0
  630. package/src/domains/lifecycle/version.ts +35 -0
  631. package/src/domains/memory/index.ts +128 -0
  632. package/src/domains/memory/operations.ts +143 -0
  633. package/src/domains/memory/prompt-section.ts +86 -0
  634. package/src/domains/memory/proposal.ts +180 -0
  635. package/src/domains/memory/store.ts +163 -0
  636. package/src/domains/memory/task-bank.ts +229 -0
  637. package/src/domains/memory/task-memory-handoff.ts +222 -0
  638. package/src/domains/memory/task-memory-policy.ts +602 -0
  639. package/src/domains/memory/task-memory-status.ts +58 -0
  640. package/src/domains/memory/task-memory-telemetry.ts +346 -0
  641. package/src/domains/memory/task-memory-trace.ts +89 -0
  642. package/src/domains/memory/types.ts +74 -0
  643. package/src/domains/memory/validate.ts +297 -0
  644. package/src/domains/middleware/budget.ts +216 -0
  645. package/src/domains/middleware/contract.ts +35 -0
  646. package/src/domains/middleware/dispatch-nudge.ts +469 -0
  647. package/src/domains/middleware/extension.ts +129 -0
  648. package/src/domains/middleware/hook-receipts.ts +70 -0
  649. package/src/domains/middleware/hooks-io.ts +186 -0
  650. package/src/domains/middleware/hooks.ts +432 -0
  651. package/src/domains/middleware/index.ts +154 -0
  652. package/src/domains/middleware/manifest.ts +6 -0
  653. package/src/domains/middleware/memory-intervention.ts +701 -0
  654. package/src/domains/middleware/rules.ts +42 -0
  655. package/src/domains/middleware/runtime.ts +333 -0
  656. package/src/domains/middleware/skills-reminder.ts +202 -0
  657. package/src/domains/middleware/snapshot.ts +71 -0
  658. package/src/domains/middleware/stalled-turn.ts +71 -0
  659. package/src/domains/middleware/task-board-reminder.ts +87 -0
  660. package/src/domains/middleware/task-nudge.ts +77 -0
  661. package/src/domains/middleware/tool-choice-control.ts +42 -0
  662. package/src/domains/middleware/types.ts +131 -0
  663. package/src/domains/middleware/validate.ts +329 -0
  664. package/src/domains/observability/accountability.ts +67 -0
  665. package/src/domains/observability/contract.ts +168 -0
  666. package/src/domains/observability/cost.ts +206 -0
  667. package/src/domains/observability/evidence-index.ts +123 -0
  668. package/src/domains/observability/extension.ts +281 -0
  669. package/src/domains/observability/index.ts +78 -0
  670. package/src/domains/observability/manifest.ts +10 -0
  671. package/src/domains/observability/metrics.ts +37 -0
  672. package/src/domains/observability/projection.ts +477 -0
  673. package/src/domains/observability/telemetry.ts +89 -0
  674. package/src/domains/observability/trace-store.ts +1454 -0
  675. package/src/domains/prompts/compiler.ts +614 -0
  676. package/src/domains/prompts/contract.ts +46 -0
  677. package/src/domains/prompts/extension.ts +336 -0
  678. package/src/domains/prompts/fragment-loader.ts +138 -0
  679. package/src/domains/prompts/fragments/identity/clio.md +5 -6
  680. package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
  681. package/src/domains/prompts/fragments/identity/self-awareness.md +19 -0
  682. package/src/domains/prompts/fragments/operating/contract.md +4 -41
  683. package/src/domains/prompts/fragments/operating/delegation.md +42 -0
  684. package/src/domains/prompts/fragments/operating/skills.md +26 -0
  685. package/src/domains/prompts/fragments/operating/worker.md +16 -0
  686. package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
  687. package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
  688. package/src/domains/prompts/fragments/safety/read-only.md +4 -4
  689. package/src/domains/prompts/fragments/safety/suggest.md +2 -2
  690. package/src/domains/prompts/fragments/wiki/page.md +10 -0
  691. package/src/domains/prompts/fragments/wiki/plan.md +10 -0
  692. package/src/domains/prompts/hash.ts +73 -0
  693. package/src/domains/prompts/index.ts +32 -0
  694. package/src/domains/prompts/manifest.ts +8 -0
  695. package/src/domains/prompts/memory-intervention.ts +57 -0
  696. package/src/domains/prompts/preload.ts +82 -0
  697. package/src/domains/providers/auth/api-key.ts +47 -0
  698. package/src/domains/providers/auth/backend-file.ts +79 -0
  699. package/src/domains/providers/auth/backend-memory.ts +72 -0
  700. package/src/domains/providers/auth/boot-status.ts +65 -0
  701. package/src/domains/providers/auth/index.ts +37 -0
  702. package/src/domains/providers/auth/oauth.ts +37 -0
  703. package/src/domains/providers/auth/storage.ts +726 -0
  704. package/src/domains/providers/capabilities.ts +58 -0
  705. package/src/domains/providers/catalog.ts +162 -0
  706. package/src/domains/providers/contract.ts +162 -0
  707. package/src/domains/providers/credentials.ts +20 -0
  708. package/src/domains/providers/eligibility.ts +24 -0
  709. package/src/domains/providers/errors.ts +64 -0
  710. package/src/domains/providers/extension.ts +548 -0
  711. package/src/domains/providers/index.ts +142 -0
  712. package/src/domains/providers/knowledge-base-path.ts +102 -0
  713. package/src/domains/providers/manifest.ts +6 -0
  714. package/src/domains/providers/model-capabilities.ts +136 -0
  715. package/src/domains/providers/model-discovery.ts +144 -0
  716. package/src/domains/providers/model-family.ts +32 -0
  717. package/src/domains/providers/model-runtime-capabilities.ts +723 -0
  718. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +120 -37
  719. package/src/domains/providers/plugins.ts +61 -0
  720. package/src/domains/providers/probe/fingerprint.ts +64 -0
  721. package/src/domains/providers/probe/http.ts +114 -0
  722. package/src/domains/providers/probe/reasoning.ts +111 -0
  723. package/src/domains/providers/registry.ts +187 -0
  724. package/src/domains/providers/resolver.ts +156 -0
  725. package/src/domains/providers/runtime-resolution.ts +720 -0
  726. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +90 -0
  727. package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
  728. package/src/domains/providers/runtimes/builtins.ts +78 -0
  729. package/src/domains/providers/runtimes/claude/claude-code.ts +38 -0
  730. package/src/domains/providers/runtimes/claude/claude-sdk.ts +38 -0
  731. package/src/domains/providers/runtimes/claude/common.ts +55 -0
  732. package/src/domains/providers/runtimes/cloud/alcf.ts +171 -0
  733. package/src/domains/providers/runtimes/cloud/anthropic-max.ts +71 -0
  734. package/src/domains/providers/runtimes/cloud/anthropic.ts +43 -0
  735. package/src/domains/providers/runtimes/cloud/bedrock.ts +35 -0
  736. package/src/domains/providers/runtimes/cloud/deepseek.ts +50 -0
  737. package/src/domains/providers/runtimes/cloud/google.ts +41 -0
  738. package/src/domains/providers/runtimes/cloud/groq.ts +46 -0
  739. package/src/domains/providers/runtimes/cloud/mistral.ts +46 -0
  740. package/src/domains/providers/runtimes/cloud/openai-codex.ts +49 -0
  741. package/src/domains/providers/runtimes/cloud/openai.ts +46 -0
  742. package/src/domains/providers/runtimes/cloud/openrouter.ts +111 -0
  743. package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
  744. package/src/domains/providers/runtimes/common/local-synth.ts +164 -0
  745. package/src/domains/providers/runtimes/common/probe-helpers.ts +474 -0
  746. package/src/domains/providers/runtimes/local-native/lemonade-anthropic.ts +27 -0
  747. package/src/domains/providers/runtimes/local-native/lemonade-openai.ts +26 -0
  748. package/src/domains/providers/runtimes/local-native/llamacpp-anthropic.ts +88 -0
  749. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +207 -0
  750. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +180 -0
  751. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +126 -0
  752. package/src/domains/providers/runtimes/local-native/llamacpp.ts +98 -0
  753. package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
  754. package/src/domains/providers/runtimes/local-native/ollama-native.ts +117 -0
  755. package/src/domains/providers/runtimes/local-native/sglang.ts +26 -0
  756. package/src/domains/providers/runtimes/local-native/vllm.ts +27 -0
  757. package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +104 -0
  758. package/src/domains/providers/runtimes/protocol/anthropic-messages.ts +28 -0
  759. package/src/domains/providers/runtimes/protocol/bedrock.ts +26 -0
  760. package/src/domains/providers/runtimes/protocol/google.ts +27 -0
  761. package/src/domains/providers/runtimes/protocol/openai-compat.ts +145 -0
  762. package/src/domains/providers/support.ts +241 -0
  763. package/src/domains/providers/thinking-control-policy.ts +85 -0
  764. package/src/domains/providers/types/capability-flags.ts +114 -0
  765. package/src/domains/providers/types/cost-provenance.ts +7 -0
  766. package/src/domains/providers/types/inference.ts +41 -0
  767. package/src/domains/providers/types/knowledge-base.ts +156 -0
  768. package/src/domains/providers/types/local-model-quirks.ts +216 -0
  769. package/src/domains/providers/types/runtime-descriptor.ts +181 -0
  770. package/src/domains/providers/types/target-descriptor.ts +60 -0
  771. package/src/domains/resources/collision.ts +92 -0
  772. package/src/domains/resources/common-loader.ts +140 -0
  773. package/src/domains/resources/contract.ts +24 -0
  774. package/src/domains/resources/extension.ts +59 -0
  775. package/src/domains/resources/index.ts +74 -0
  776. package/src/domains/resources/loader.ts +85 -0
  777. package/src/domains/resources/manifest.ts +6 -0
  778. package/src/domains/resources/prompts/loader.ts +246 -0
  779. package/src/domains/resources/prompts/substitute.ts +1 -0
  780. package/src/domains/resources/skills/content-hash.ts +107 -0
  781. package/src/domains/resources/skills/evals.ts +175 -0
  782. package/src/domains/resources/skills/install.ts +427 -0
  783. package/src/domains/resources/skills/loader.ts +985 -0
  784. package/src/domains/resources/skills/marketplace.ts +301 -0
  785. package/src/domains/resources/skills/provenance-pin.ts +115 -0
  786. package/src/domains/safety/action-classifier.ts +270 -0
  787. package/src/domains/safety/approval-axis.ts +23 -0
  788. package/src/domains/safety/audit.ts +493 -0
  789. package/src/domains/safety/autonomy.ts +174 -0
  790. package/src/domains/safety/call-target.ts +59 -0
  791. package/src/domains/safety/contract.ts +65 -0
  792. package/src/domains/safety/damage-control.ts +44 -0
  793. package/src/domains/safety/default-path-policy.ts +117 -0
  794. package/src/domains/safety/extension.ts +383 -0
  795. package/src/domains/safety/finish-contract-registration.ts +128 -0
  796. package/src/domains/safety/finish-contract.ts +554 -0
  797. package/src/domains/safety/index.ts +44 -0
  798. package/src/domains/safety/loop-detector.ts +143 -0
  799. package/src/domains/safety/manifest.ts +6 -0
  800. package/src/domains/safety/path-policy.ts +164 -0
  801. package/src/domains/safety/policy-engine.ts +994 -0
  802. package/src/domains/safety/project-policy.ts +391 -0
  803. package/src/domains/safety/protected-artifacts-registration.ts +189 -0
  804. package/src/domains/safety/protected-artifacts.ts +993 -0
  805. package/src/domains/safety/rejection-feedback.ts +102 -0
  806. package/src/domains/safety/rigor.ts +72 -0
  807. package/src/domains/safety/rule-compiler.ts +48 -0
  808. package/src/domains/safety/rule-pack-loader.ts +92 -0
  809. package/src/domains/safety/run-effects.ts +197 -0
  810. package/src/domains/safety/scope.ts +61 -0
  811. package/src/domains/scheduling/budget.ts +35 -0
  812. package/src/domains/scheduling/cluster.ts +175 -0
  813. package/src/domains/scheduling/contract.ts +30 -0
  814. package/src/domains/scheduling/extension.ts +91 -0
  815. package/src/domains/scheduling/index.ts +12 -0
  816. package/src/domains/scheduling/manifest.ts +6 -0
  817. package/src/domains/session/archive-readers.ts +208 -0
  818. package/src/domains/session/checkpoint.ts +38 -0
  819. package/src/domains/session/compaction/auto.ts +89 -0
  820. package/src/domains/session/compaction/branch-summary.ts +187 -0
  821. package/src/domains/session/compaction/compact.ts +493 -0
  822. package/src/domains/session/compaction/cut-point.ts +172 -0
  823. package/src/domains/session/compaction/defaults.ts +34 -0
  824. package/src/domains/session/compaction/mask-observations.ts +265 -0
  825. package/src/domains/session/compaction/session-entries.ts +18 -0
  826. package/src/domains/session/compaction/tokens.ts +148 -0
  827. package/src/domains/session/context-accounting.ts +583 -0
  828. package/src/domains/session/context-ledger.ts +362 -0
  829. package/src/domains/session/contract.ts +159 -0
  830. package/src/domains/session/cwd-fallback.ts +65 -0
  831. package/src/domains/session/decision-board.ts +190 -0
  832. package/src/domains/session/entries.ts +572 -0
  833. package/src/domains/session/extension.ts +403 -0
  834. package/src/domains/session/history.ts +172 -0
  835. package/src/domains/session/index.ts +84 -0
  836. package/src/domains/session/manager.ts +128 -0
  837. package/src/domains/session/manifest.ts +6 -0
  838. package/src/domains/session/migrations/index.ts +27 -0
  839. package/src/domains/session/prompt-manifest.ts +173 -0
  840. package/src/domains/session/protected-artifact-journal.ts +241 -0
  841. package/src/domains/session/protected-artifacts.ts +90 -0
  842. package/src/domains/session/retry.ts +230 -0
  843. package/src/domains/session/session-artifacts.ts +107 -0
  844. package/src/domains/session/task-board.ts +569 -0
  845. package/src/domains/session/tree/active-path.ts +137 -0
  846. package/src/domains/session/tree/fork.ts +159 -0
  847. package/src/domains/session/tree/manager.ts +128 -0
  848. package/src/domains/session/tree/navigator.ts +177 -0
  849. package/src/domains/session/tree/preview.ts +259 -0
  850. package/src/domains/session/usage.ts +148 -0
  851. package/src/domains/session/workspace/git-probe.ts +167 -0
  852. package/src/domains/session/workspace/index.ts +4 -0
  853. package/src/domains/session/workspace/project-type.ts +217 -0
  854. package/src/domains/session/workspace/snapshot.ts +74 -0
  855. package/src/domains/share/archive.ts +684 -0
  856. package/src/domains/share/contract.ts +9 -0
  857. package/src/domains/share/extension.ts +26 -0
  858. package/src/domains/share/index.ts +28 -0
  859. package/src/domains/share/manifest.ts +6 -0
  860. package/src/domains/user-tasks/store.ts +297 -0
  861. package/src/engine/acp/adapter.ts +397 -0
  862. package/src/engine/acp/errors.ts +128 -0
  863. package/src/engine/acp/event-mapper.ts +154 -0
  864. package/src/engine/acp/server.ts +2238 -0
  865. package/src/engine/acp/tool-mediator.ts +686 -0
  866. package/src/engine/acp/transport.ts +775 -0
  867. package/src/engine/acp/types.ts +196 -0
  868. package/src/engine/agent.ts +29 -0
  869. package/src/engine/ai.ts +207 -0
  870. package/src/engine/alcf-oauth.ts +205 -0
  871. package/src/engine/antigravity/subprocess-runtime.ts +205 -0
  872. package/src/engine/api-registry.ts +223 -0
  873. package/src/engine/apis/degraded-inference.ts +95 -0
  874. package/src/engine/apis/index.ts +16 -0
  875. package/src/engine/apis/llamacpp-residency.ts +292 -0
  876. package/src/engine/apis/lmstudio-residency.ts +76 -0
  877. package/src/engine/apis/lmstudio.ts +243 -0
  878. package/src/engine/apis/ollama-native.ts +528 -0
  879. package/src/engine/apis/openai-completions.ts +795 -0
  880. package/src/engine/apis/output-budget.ts +99 -0
  881. package/src/engine/apis/residency-lock.ts +29 -0
  882. package/src/engine/apis/residency.ts +776 -0
  883. package/src/engine/apis/resident-models.ts +42 -0
  884. package/src/engine/apis/sampling-overrides.ts +38 -0
  885. package/src/engine/apis/types.ts +16 -0
  886. package/src/engine/claude/sdk-runtime.ts +685 -0
  887. package/src/engine/claude/session-id.ts +5 -0
  888. package/src/engine/claude/subprocess-runtime.ts +316 -0
  889. package/src/engine/claude/tool-safety.ts +400 -0
  890. package/src/engine/env-api-keys.ts +98 -0
  891. package/src/engine/external-subprocess.ts +23 -0
  892. package/src/engine/gemma-channel-filter.ts +223 -0
  893. package/src/engine/harmony-response.ts +165 -0
  894. package/src/engine/instrumented-tui.ts +192 -0
  895. package/src/engine/loop-guard.ts +1127 -0
  896. package/src/engine/messages.ts +14 -0
  897. package/src/engine/models.ts +42 -0
  898. package/src/engine/oauth.ts +196 -0
  899. package/src/engine/pi-mono-names.ts +13 -0
  900. package/src/engine/prompt-templates.ts +1 -0
  901. package/src/engine/provider-payload.ts +272 -0
  902. package/src/engine/select-list.ts +53 -0
  903. package/src/engine/session.ts +834 -0
  904. package/src/engine/strip-tokenizer-sentinels.ts +125 -0
  905. package/src/engine/truncate.ts +9 -0
  906. package/src/engine/tui.ts +111 -0
  907. package/src/engine/types.ts +63 -0
  908. package/src/engine/worker-events.ts +100 -0
  909. package/src/engine/worker-runtime-capabilities.ts +5 -0
  910. package/src/engine/worker-runtime.ts +1022 -0
  911. package/src/engine/worker-tools.ts +208 -0
  912. package/src/entry/boot-options.ts +50 -0
  913. package/src/entry/orchestrator.ts +2011 -0
  914. package/src/interactive/application-controller.ts +433 -0
  915. package/src/interactive/bus-notices.ts +265 -0
  916. package/src/interactive/chat-loop-messages.ts +626 -0
  917. package/src/interactive/chat-loop-policy.ts +18 -0
  918. package/src/interactive/chat-loop.ts +1090 -0
  919. package/src/interactive/chat-panel.ts +1820 -0
  920. package/src/interactive/chat-renderer.ts +1228 -0
  921. package/src/interactive/clio-editor.ts +161 -0
  922. package/src/interactive/command-fallbacks.ts +23 -0
  923. package/src/interactive/command-output.ts +85 -0
  924. package/src/interactive/context-activity.ts +203 -0
  925. package/src/interactive/context-meter.ts +223 -0
  926. package/src/interactive/context-overlay.ts +246 -0
  927. package/src/interactive/cost-overlay.ts +279 -0
  928. package/src/interactive/dispatch-board.ts +1319 -0
  929. package/src/interactive/dispatch-steering.ts +86 -0
  930. package/src/interactive/editor-bash.ts +46 -0
  931. package/src/interactive/editor-steer.ts +51 -0
  932. package/src/interactive/editor-submit.ts +507 -0
  933. package/src/interactive/export-html/ansi-to-html.ts +161 -0
  934. package/src/interactive/export-html/index.ts +51 -0
  935. package/src/interactive/export-html/template.ts +45 -0
  936. package/src/interactive/export-html/tool-renderer.ts +54 -0
  937. package/src/interactive/external-editor.ts +67 -0
  938. package/src/interactive/follow-up-queue-panel.ts +75 -0
  939. package/src/interactive/footer/dashboard.ts +538 -0
  940. package/src/interactive/footer/notifications.ts +275 -0
  941. package/src/interactive/footer/widgets.ts +1264 -0
  942. package/src/interactive/footer-panel.ts +187 -0
  943. package/src/interactive/format-time.ts +97 -0
  944. package/src/interactive/index.ts +11 -0
  945. package/src/interactive/interactive-application.ts +939 -0
  946. package/src/interactive/interactive-event-projection.ts +385 -0
  947. package/src/interactive/interactive-input-runtime.ts +307 -0
  948. package/src/interactive/interactive-presentation.ts +584 -0
  949. package/src/interactive/interactive-shell.ts +388 -0
  950. package/src/interactive/interactive-slash-runtime.ts +554 -0
  951. package/src/interactive/interactive-subscriptions.ts +111 -0
  952. package/src/interactive/interactive-tickers.ts +183 -0
  953. package/src/interactive/keybinding-manager.ts +496 -0
  954. package/src/interactive/layout.ts +57 -0
  955. package/src/interactive/leader-key.ts +143 -0
  956. package/src/interactive/loop-guard-interrupt.ts +101 -0
  957. package/src/interactive/memory-overlay.ts +280 -0
  958. package/src/interactive/overlay-ask-user-lifecycle.ts +110 -0
  959. package/src/interactive/overlay-auth-lifecycle.ts +308 -0
  960. package/src/interactive/overlay-frame.ts +502 -0
  961. package/src/interactive/overlay-general-openers.ts +274 -0
  962. package/src/interactive/overlay-key-routing.ts +216 -0
  963. package/src/interactive/overlay-lifecycle.ts +426 -0
  964. package/src/interactive/overlay-model-selectors.ts +127 -0
  965. package/src/interactive/overlay-permission-lifecycle.ts +345 -0
  966. package/src/interactive/overlay-resource-openers.ts +112 -0
  967. package/src/interactive/overlay-session-lifecycle.ts +327 -0
  968. package/src/interactive/overlay-transitions.ts +57 -0
  969. package/src/interactive/overlays/agents.ts +69 -0
  970. package/src/interactive/overlays/ask-user.ts +921 -0
  971. package/src/interactive/overlays/auth-dialog.ts +221 -0
  972. package/src/interactive/overlays/context-reset.ts +108 -0
  973. package/src/interactive/overlays/cwd-fallback.ts +141 -0
  974. package/src/interactive/overlays/decisions.ts +300 -0
  975. package/src/interactive/overlays/extensions.ts +54 -0
  976. package/src/interactive/overlays/help-reference.ts +145 -0
  977. package/src/interactive/overlays/interop.ts +139 -0
  978. package/src/interactive/overlays/keybinding-detail.ts +90 -0
  979. package/src/interactive/overlays/list-overlay.ts +606 -0
  980. package/src/interactive/overlays/message-picker.ts +155 -0
  981. package/src/interactive/overlays/model-selector.ts +1109 -0
  982. package/src/interactive/overlays/prompts.ts +72 -0
  983. package/src/interactive/overlays/session-selector-search.ts +31 -0
  984. package/src/interactive/overlays/session-selector.ts +284 -0
  985. package/src/interactive/overlays/settings.ts +3451 -0
  986. package/src/interactive/overlays/skills-hub.ts +237 -0
  987. package/src/interactive/overlays/tree-selector.ts +422 -0
  988. package/src/interactive/permission-overlay.ts +170 -0
  989. package/src/interactive/render-trace.ts +534 -0
  990. package/src/interactive/renderers/branch-summary.ts +86 -0
  991. package/src/interactive/renderers/code-ink.ts +420 -0
  992. package/src/interactive/renderers/compaction-summary.ts +112 -0
  993. package/src/interactive/renderers/diff.ts +137 -0
  994. package/src/interactive/renderers/mermaid.ts +53 -0
  995. package/src/interactive/renderers/notice.ts +28 -0
  996. package/src/interactive/renderers/retry-status.ts +31 -0
  997. package/src/interactive/renderers/structured.ts +89 -0
  998. package/src/interactive/renderers/tool-execution.ts +1357 -0
  999. package/src/interactive/renderers/worker-entry.ts +280 -0
  1000. package/src/interactive/session-last-turn.ts +186 -0
  1001. package/src/interactive/session-switch-settlement.ts +10 -0
  1002. package/src/interactive/session-transcript.ts +105 -0
  1003. package/src/interactive/session-usage-reseed.ts +74 -0
  1004. package/src/interactive/slash-autocomplete.ts +256 -0
  1005. package/src/interactive/slash-commands.ts +1407 -0
  1006. package/src/interactive/slash-spec.ts +424 -0
  1007. package/src/interactive/status/controller.ts +260 -0
  1008. package/src/interactive/status/index.ts +23 -0
  1009. package/src/interactive/status/state-machine.ts +530 -0
  1010. package/src/interactive/status/summary.ts +170 -0
  1011. package/src/interactive/status/types.ts +121 -0
  1012. package/src/interactive/status/verbs.ts +163 -0
  1013. package/src/interactive/status/watchdog.ts +24 -0
  1014. package/src/interactive/stdout-backpressure.ts +99 -0
  1015. package/src/interactive/stream-pacer.ts +530 -0
  1016. package/src/interactive/stream-pacing-policy.ts +66 -0
  1017. package/src/interactive/tasks-overlay.ts +540 -0
  1018. package/src/interactive/terminal-lease.ts +485 -0
  1019. package/src/interactive/theme/components.ts +55 -0
  1020. package/src/interactive/theme/glyphs.ts +70 -0
  1021. package/src/interactive/theme/index.ts +15 -0
  1022. package/src/interactive/theme/labels.ts +88 -0
  1023. package/src/interactive/theme/rules.ts +138 -0
  1024. package/src/interactive/theme/segments.ts +88 -0
  1025. package/src/interactive/theme/tokens.ts +121 -0
  1026. package/src/interactive/thinking-level-policy.ts +6 -0
  1027. package/src/interactive/tool-prose-loop.ts +122 -0
  1028. package/src/interactive/tool-prose-registration.ts +48 -0
  1029. package/src/interactive/turn-context.ts +855 -0
  1030. package/src/interactive/turn-middleware.ts +283 -0
  1031. package/src/interactive/turn-persistence.ts +458 -0
  1032. package/src/interactive/turn-queues.ts +181 -0
  1033. package/src/interactive/turn-recovery.ts +323 -0
  1034. package/src/interactive/turn-runtime.ts +869 -0
  1035. package/src/interactive/turn-state.ts +133 -0
  1036. package/src/interactive/view/artifacts.ts +1452 -0
  1037. package/src/interactive/view/view-overlay.ts +735 -0
  1038. package/src/interactive/welcome-dashboard.ts +537 -0
  1039. package/src/interactive/worker-receipts.ts +143 -0
  1040. package/src/interactive/worker-replay.ts +111 -0
  1041. package/src/interactive/worker-share.ts +100 -0
  1042. package/src/interactive/worker-stream.ts +446 -0
  1043. package/src/interactive/workspace-facts.ts +141 -0
  1044. package/src/tools/agent-tools.ts +402 -0
  1045. package/src/tools/artifact.ts +103 -0
  1046. package/src/tools/ask-user.ts +666 -0
  1047. package/src/tools/bash.ts +204 -0
  1048. package/src/tools/bootstrap.ts +77 -0
  1049. package/src/tools/builtin-tool-catalog.ts +265 -0
  1050. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  1051. package/src/tools/codewiki/code-nav.ts +549 -0
  1052. package/src/tools/codewiki/shared.ts +118 -0
  1053. package/src/tools/compete-worktrees.ts +898 -0
  1054. package/src/tools/context/docs-engine.ts +630 -0
  1055. package/src/tools/context/index.ts +514 -0
  1056. package/src/tools/context/surface.ts +19 -0
  1057. package/src/tools/core-bootstrap.ts +168 -0
  1058. package/src/tools/credential-present.ts +151 -0
  1059. package/src/tools/dispatch-admission.ts +533 -0
  1060. package/src/tools/dispatch-arguments.ts +228 -0
  1061. package/src/tools/dispatch-background.ts +54 -0
  1062. package/src/tools/dispatch-event-text.ts +6 -0
  1063. package/src/tools/dispatch-plan.ts +746 -0
  1064. package/src/tools/dispatch-run-events.ts +238 -0
  1065. package/src/tools/dispatch-runner.ts +2370 -0
  1066. package/src/tools/dispatch-scout-admission.ts +295 -0
  1067. package/src/tools/dispatch-scout.ts +461 -0
  1068. package/src/tools/dispatch-types.ts +77 -0
  1069. package/src/tools/dispatch.ts +244 -0
  1070. package/src/tools/edit-diff.ts +534 -0
  1071. package/src/tools/edit.ts +128 -0
  1072. package/src/tools/executables.ts +22 -0
  1073. package/src/tools/file-mutation-queue.ts +35 -0
  1074. package/src/tools/find.ts +294 -0
  1075. package/src/tools/grep.ts +495 -0
  1076. package/src/tools/ignore-policy.ts +169 -0
  1077. package/src/tools/lazy-tool.ts +60 -0
  1078. package/src/tools/ledger.ts +206 -0
  1079. package/src/tools/ls.ts +110 -0
  1080. package/src/tools/monitor-surface.ts +36 -0
  1081. package/src/tools/monitor.ts +767 -0
  1082. package/src/tools/network-policy.ts +29 -0
  1083. package/src/tools/observation.ts +421 -0
  1084. package/src/tools/observers.ts +99 -0
  1085. package/src/tools/path-utils.ts +79 -0
  1086. package/src/tools/policy.ts +154 -0
  1087. package/src/tools/profiles.ts +108 -0
  1088. package/src/tools/read.ts +173 -0
  1089. package/src/tools/registry.ts +1169 -0
  1090. package/src/tools/result-shaping.ts +204 -0
  1091. package/src/tools/safe-exec.ts +128 -0
  1092. package/src/tools/spawn-hygiene.ts +182 -0
  1093. package/src/tools/steer-surface.ts +17 -0
  1094. package/src/tools/steer.ts +77 -0
  1095. package/src/tools/tasks.ts +265 -0
  1096. package/src/tools/truncate-utf8.ts +17 -0
  1097. package/src/tools/truncate.ts +43 -0
  1098. package/src/tools/verify/frontend.ts +687 -0
  1099. package/src/tools/verify/index.ts +31 -0
  1100. package/src/tools/verify/scripts.ts +108 -0
  1101. package/src/tools/verify/surface.ts +46 -0
  1102. package/src/tools/web-fetch-surface.ts +23 -0
  1103. package/src/tools/web-fetch.ts +759 -0
  1104. package/src/tools/worker-evidence.ts +215 -0
  1105. package/src/tools/write.ts +57 -0
  1106. package/src/utils/exif-orientation.ts +192 -0
  1107. package/src/utils/git.ts +24 -0
  1108. package/src/utils/image-resize.ts +148 -0
  1109. package/src/utils/photon.ts +103 -0
  1110. package/src/worker/control-lane.ts +22 -0
  1111. package/src/worker/entry.ts +294 -0
  1112. package/src/worker/event-projection.ts +56 -0
  1113. package/src/worker/heartbeat.ts +24 -0
  1114. package/src/worker/ledger-mirror.ts +95 -0
  1115. package/src/worker/ndjson.ts +40 -0
  1116. package/src/worker/protocol.ts +529 -0
  1117. package/src/worker/resource-facts.ts +79 -0
  1118. package/src/worker/runtime-registry.ts +12 -0
  1119. package/src/worker/spec-contract.ts +675 -0
  1120. package/src/worker/stdin-demux.ts +316 -0
  1121. package/dist/acp-UMLFVA3F.js +0 -92
  1122. package/dist/chunk-262G75JS.js +0 -35
  1123. package/dist/chunk-6CWDTGUC.js +0 -20
  1124. package/dist/chunk-BYEU76JP.js +0 -899
  1125. package/dist/chunk-GNGDQYDU.js +0 -34688
  1126. package/dist/chunk-GOTUR54M.js +0 -9
  1127. package/dist/chunk-NI4DEJMC.js +0 -88
  1128. package/dist/chunk-TPOCL34A.js +0 -2876
  1129. package/dist/chunk-UU3R62TT.js +0 -128
  1130. package/dist/clio-KIQ5SNDS.js +0 -53
  1131. package/dist/configure-G4E3A2PG.js +0 -27
  1132. package/dist/doctor-M5HJJZOL.js +0 -61
  1133. package/dist/domains/agents/builtins/architect.md +0 -33
  1134. package/dist/domains/agents/builtins/coder.md +0 -31
  1135. package/dist/domains/agents/builtins/context-bootstrap.md +0 -38
  1136. package/dist/domains/agents/builtins/debugger.md +0 -30
  1137. package/dist/domains/agents/builtins/documenter.md +0 -31
  1138. package/dist/domains/agents/builtins/git-master.md +0 -30
  1139. package/dist/domains/agents/builtins/provenance.md +0 -30
  1140. package/dist/domains/agents/builtins/researcher.md +0 -71
  1141. package/dist/domains/agents/builtins/scout.md +0 -42
  1142. package/dist/domains/agents/builtins/tester.md +0 -31
  1143. package/dist/domains/agents/builtins/verifier.md +0 -30
  1144. package/dist/domains/agents/builtins/wiki-writer.md +0 -41
  1145. package/dist/fleet-preflight-CLIAX7YR.js +0 -21
  1146. package/dist/preload-KZVHET2B.js +0 -11
  1147. package/dist/version-ROZ6CZKH.js +0 -16
  1148. package/docs/html/agents_blueprint.html +0 -936
  1149. package/docs/html/alcf_blueprint.html +0 -324
  1150. package/docs/html/architecture_blueprint.html +0 -850
  1151. package/docs/html/commands_blueprint.html +0 -794
  1152. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  1153. package/docs/html/configuration_blueprint.html +0 -1080
  1154. package/docs/html/context_blueprint.html +0 -603
  1155. package/docs/html/documentation_blueprint.html +0 -832
  1156. package/docs/html/environment_blueprint.html +0 -404
  1157. package/docs/html/eval_blueprint.html +0 -743
  1158. package/docs/html/evals_internal_blueprint.html +0 -190
  1159. package/docs/html/evolution_blueprint.html +0 -674
  1160. package/docs/html/extensions_blueprint.html +0 -2065
  1161. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  1162. package/docs/html/index.html +0 -919
  1163. package/docs/html/lifecycle_blueprint.html +0 -723
  1164. package/docs/html/memory_blueprint.html +0 -699
  1165. package/docs/html/middleware_blueprint.html +0 -664
  1166. package/docs/html/models_blueprint.html +0 -2366
  1167. package/docs/html/observability_blueprint.html +0 -683
  1168. package/docs/html/provider_adapter_blueprint.html +0 -245
  1169. package/docs/html/safety_blueprint.html +0 -1386
  1170. package/docs/html/shared.css +0 -571
  1171. package/docs/html/shared.js +0 -143
  1172. package/docs/html/skills_blueprint.html +0 -671
  1173. package/docs/html/soak_blueprint.html +0 -182
  1174. package/docs/html/tool_usage_blueprint.html +0 -350
  1175. package/docs/html/tools_blueprint.html +0 -2249
  1176. package/docs/html/trace_blueprint.html +0 -235
  1177. package/docs/html/tui_design_blueprint.html +0 -314
  1178. package/docs/html/validation_blueprint.html +0 -961
  1179. package/docs/html/worker_dispatch_blueprint.html +0 -231
  1180. package/skills/git/commit-crafting/SKILL.md +0 -79
  1181. package/skills/git/commit-crafting/evals.md +0 -92
  1182. package/skills/git/create-pr/SKILL.md +0 -116
  1183. package/skills/git/create-pr/evals.md +0 -114
  1184. package/skills/git/investigate-issue/SKILL.md +0 -139
  1185. package/skills/git/investigate-issue/evals.md +0 -94
  1186. package/skills/git/review-changes/SKILL.md +0 -103
  1187. package/skills/git/review-changes/evals.md +0 -85
package/README.md CHANGED
@@ -7,295 +7,181 @@
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.0 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.
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.
38
+
39
+ ## Get started
40
+
41
+ ```bash
42
+ npm install -g @iowarp/clio-coder
43
+ clio-coder configure # pick a model provider or a local server
44
+ clio-coder # start the interactive session in any project directory
45
+ ```
44
46
 
45
- ### 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.
46
53
 
47
54
  | | You are | Start here |
48
55
  | --- | --- | --- |
49
- | 🔬 | 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) |
50
57
  | 🤖 | An AI agent that just landed in this repository | [For agents](#for-agents) |
51
58
  | 🛠️ | A developer who wants to contribute | [For contributors](#for-contributors) |
52
59
 
53
- ---
54
-
55
- ## Why Clio is different
60
+ ## Why Clio
56
61
 
57
62
  Most coding agents ask you to trust a remote model with a shell. Clio makes a
58
- different bet: the harness should be strong enough that a 20B model running on
59
- 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
60
65
  decision afterward.
61
66
 
62
- **The model never gets a shell by default.** The tool surface is twenty
63
- typed tools organized into seven policy planes. Bash is default-deny, filtered
64
- through [damage-control rules](damage-control-rules.yaml) and per-project
65
- policy. Reads are bounded, writes are queued and reviewable, and every
66
- privileged call passes through one admission path that cannot be widened by
67
- the model asking nicely.
68
-
69
- **Local models are the design target, not a fallback.** llama.cpp and similar
70
- servers expose a single prefix-cache slot. Clio keeps the compiled prompt and
71
- provider tool schemas byte-stable so that slot stays hot across turns and
72
- sessions, bounds every tool result so one `grep` cannot blow the window, and
73
- records a per-call cache verdict (`hot`, `partial`, `cold`, `small`) in the
74
- session ledger so you can see when and why the cache went cold.
75
-
76
- **Work is delegated to bounded workers, not to one long context.** The
77
- orchestrator dispatches focused agents with explicit tool profiles, call
78
- budgets, cost ceilings, and typed result contracts. A worker that cannot
79
- produce a conforming answer fails loudly instead of returning confident prose.
80
-
81
- **Your cluster is the runtime.** Declare your nodes and the same worker
82
- protocol tunnels over SSH. A remote worker gets the same prompts, the same
83
- safety matrix, the same receipts. Placement is deterministic and pinnable, and
84
- capacity is governed by durable expiring leases that survive process death.
85
-
86
- **Everything is auditable.** Each run seals a receipt covering token usage,
87
- priced cost, tool activity, safety decisions, routing intent, the resolved
88
- route, worker attestation, and result-contract conformance. `clio-coder evidence`
89
- and `/view verify` check them; nothing in the audit trail is reconstructed
90
- from prose.
91
-
92
- **Science is a first-class domain.** [clio-kit](https://github.com/iowarp/clio-kit)
93
- contributes MCP servers for HDF5, Slurm, ParaView, Pandas, NetCDF, FITS, Zarr,
94
- and ArXiv, and the shipped skills catalog includes scientific debugging and
95
- experiment-protocol guides.
96
-
97
- ---
98
-
99
- # For humans
100
-
101
- ## Requirements
102
-
103
- - Node.js `>=22.19.0` and npm
104
- - Linux or macOS. Windows is best effort until a stable release.
105
- - At least one model target: a local OpenAI-compatible server, Ollama, LM
106
- Studio, llama.cpp, vLLM, SGLang, a cloud API key, a ChatGPT or Claude
107
- subscription login, an ALCF Globus account, or an installed `claude` command
108
-
109
- ## Install
110
-
111
- From npm:
112
-
113
- ```bash
114
- npm install -g @iowarp/clio-coder
115
- clio-coder --version
116
- ```
117
-
118
- From source, pinned to this release:
119
-
120
- ```bash
121
- git clone --branch v0.3.0 https://github.com/iowarp/clio-coder.git
122
- cd clio-coder
123
- npm run install:local
124
- export PATH="$HOME/.local/bin:$PATH"
125
- hash -r
126
- "$HOME/.local/bin/clio-coder" --version
127
- ```
128
-
129
- The clone is pinned to `v0.3.0`, the release these instructions describe.
130
- Without `--branch` you get the default branch, which is ahead of the release and
131
- is not what the rest of this page documents.
132
-
133
- `npm run install:local` verifies dependencies, builds the CLI, installs a
134
- symlink at `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`, and runs the installed
135
- CLI's structure repair so a fresh install passes plain `clio-coder doctor` with no
136
- manual steps. It warns if the bin directory is not on your `PATH` and prints the
137
- `export` line above; the line is a no-op for the shell that already has it, and
138
- it is what makes a bare `clio-coder` resolve in the shell that does not. Put it in
139
- your shell profile to keep it across sessions. The symlink executes
140
- `dist/cli/index.js`, so re-run `npm run build` after editing TypeScript sources.
141
-
142
- The last line runs the launcher by its full path on purpose. A bare `clio-coder` may
143
- resolve to an older install earlier on your `PATH`, so it verifies whichever one
144
- that is rather than the one you just installed; the installer warns when it
145
- finds that shadowing, and names the other path.
146
-
147
- Before you switch to the bare name, ask which file it reaches:
148
-
149
- ```bash
150
- command -v clio-coder # expect $HOME/.local/bin/clio-coder
151
- ```
152
-
153
- Comparing `clio-coder --version` against `"$HOME/.local/bin/clio-coder" --version` does not
154
- answer that. Two installs of the same release print the same version, so the
155
- versions agree while the name still resolves to the other one. The path is the
156
- question.
157
-
158
- To remove it, preview first:
159
-
160
- ```bash
161
- clio-coder uninstall --dry-run
162
- clio-coder uninstall --remove-binary --force
163
- hash -r
164
- ```
165
-
166
- For selective wipes that keep settings or credentials, use `clio-coder reset`. Full
167
- details live in [docs/installation-and-lifecycle.md](docs/installation-and-lifecycle.md).
168
-
169
- ## Five-minute start
170
-
171
- Run Clio from the repository you want to work on and point one target at a
172
- running model server. This example uses LM Studio; other local runtime ids
173
- include `ollama-native`, `llamacpp`, `vllm`, and `sglang`.
174
-
175
- ```bash
176
- cd /path/to/your/repo
177
-
178
- clio-coder configure \
179
- --id local-lmstudio \
180
- --runtime lmstudio-native \
181
- --url http://localhost:1234 \
182
- --model your-model-id \
183
- --set-orchestrator \
184
- --set-fleet-default
185
-
186
- clio-coder targets use local-lmstudio
187
- clio-coder targets --probe
188
- ```
189
-
190
- Once the target probes healthy, teach Clio about your project, try a headless
191
- turn, then open the TUI:
192
-
193
- ```bash
194
- clio-coder context init # bootstraps local generated CLIO-CODER.md context from your real source tree
195
- clio-coder run "Summarize this repository layout and identify the main entry points."
196
- clio-coder # interactive terminal UI
197
- ```
198
-
199
- Inside the TUI, `/targets`, `/agents`, `/fleet`, and `/skill` confirm what the
200
- session can see. `/help` opens the interactive help center.
201
-
202
- ## Bring your own model
203
-
204
- Clio treats models as named **targets**. A target is a runtime plus an
205
- endpoint plus a model plus credentials, and you can route interactive chat and
206
- fleet dispatch through different targets independently.
207
-
208
- ### Local runtimes
209
-
210
- | 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 |
211
104
  | --- | --- |
212
105
  | `llamacpp`, `llamacpp-anthropic`, `llamacpp-completion` | llama.cpp and llama-swap routers |
213
- | `lmstudio-native` | LM Studio |
106
+ | `lmstudio` | LM Studio |
214
107
  | `ollama-native` | Ollama |
215
108
  | `vllm`, `sglang` | vLLM and SGLang |
216
109
  | `lemonade`, `lemonade-anthropic` | Lemonade |
217
110
  | `openai-compat`, `anthropic-compat` | Any OpenAI- or Anthropic-shaped endpoint |
218
-
219
- ### Cloud APIs
220
-
221
- `openai`, `anthropic`, `google`, `groq`, `mistral`, `deepseek`, `openrouter`,
222
- `bedrock`, and `alcf` for Argonne's Sophia and Metis gateways over Globus
223
- OAuth. See [docs/alcf-provider.md](docs/alcf-provider.md) for the HPC path.
224
-
225
- ### Subscriptions
226
-
227
- You can drive Clio from a ChatGPT Plus/Pro or Claude Pro/Max subscription
228
- 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:
229
127
 
230
128
  ```bash
231
- clio-coder auth login anthropic-max # Claude Pro/Max OAuth
232
- 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
233
133
 
234
- clio-coder configure --id claude-sub --runtime anthropic-max --model claude-sonnet-5 --set-orchestrator
235
- 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
236
136
  ```
237
137
 
238
- Pick model ids from `clio-coder models --target <id>` after login.
239
-
240
138
  > [!NOTE]
241
139
  > Connecting a Claude Pro/Max subscription over OAuth uses the same path as
242
140
  > Claude Code. Using subscription credentials outside a vendor's first-party
243
141
  > apps may not align with their terms of service. Enable at your own
244
142
  > discretion.
245
143
 
246
- ### Subscription-backed workers
247
-
248
- Clio can also drive other coding agents as workers while keeping its own
249
- permission gating in front of them.
250
-
251
- ```bash
252
- claude auth login # authenticate the official Claude CLI first
253
-
254
- # Claude Code SDK worker, with enforced per-tool safety
255
- clio-coder configure --id claude-sdk-worker --runtime claude-sdk --model sonnet --set-fleet-default
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).
256
147
 
257
- # claude -p subprocess worker, advisory permission-mode gating only
258
- clio-coder configure --id claude-code-worker --runtime claude-code --model sonnet
148
+ ## At the keyboard
259
149
 
260
- # Google Antigravity subprocess worker, under your existing agy login
261
- clio-coder configure --id agy-worker --runtime antigravity-code --model "Gemini 3.5 Flash (High)"
262
- ```
263
-
264
- ### Mixing them
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.
265
155
 
266
- The interesting configuration is a strong orchestrator with cheap local
267
- 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:
268
173
 
269
174
  ```bash
270
- clio-coder configure --id chatgpt-orch --runtime openai-codex --model gpt-5.4 --set-orchestrator
271
- clio-coder configure --id claude-worker --runtime claude-sdk --model sonnet
272
- clio-coder configure --id local-fleet --runtime lmstudio-native --url http://localhost:1234 \
273
- --model qwen-7b --set-fleet-default
274
-
275
- clio-coder targets profile claude-sdk claude-worker --model sonnet
276
- 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
277
179
  ```
278
180
 
279
- Full reference: [docs/configuration-and-targets.md](docs/configuration-and-targets.md).
280
-
281
- ### Keeping a scout model resident
181
+ ## Safety you can read
282
182
 
283
- Fast scout agents work best when a small scout model is already loaded beside
284
- your main coding model on a local router. This is only safe when the combined
285
- weights, KV caches, context windows, and parallel slots fit in GPU memory. If
286
- the router spills into CPU RAM, both scout calls and main turns get slow.
287
-
288
- Load both models manually on the target host, then point the orchestrator and
289
- the scout worker profile at them. On llama.cpp routers, keep `max_instances`
290
- at least as high as the number of models you want resident. Clio can see which
291
- router instances are loaded and the router's instance limit, but current
292
- llama.cpp router responses do not expose free VRAM, so confirming the loaded
293
- set fits remains the operator's job. Workers on other nodes are unaffected.
294
-
295
- ## Safety and autonomy
296
-
297
- There is one tool surface and one admission path. What changes is the autonomy
298
- 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`.
299
185
 
300
186
  | Level | Behavior |
301
187
  | --- | --- |
@@ -304,188 +190,149 @@ level, set in `/settings` or overridden for a single run with `--autonomy`.
304
190
  | `auto-edit` | File edits proceed; execution and dispatch still gate. |
305
191
  | `full-auto` | Approved classes proceed unattended, still inside damage-control rules. |
306
192
 
307
- 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:
308
194
  `[safety-net]` for level-independent blocks, `[approval]` for parked calls,
309
195
  `[autonomy]` for read-only denials, and `[middleware]` for hook diagnostics.
310
-
311
- Workers can never exceed the orchestrator's authority. A dispatch request can
312
- only narrow it, and reviewers and judges always run read-only. A `&&` chain is
313
- judged at its most restrictive recognized member and refused whole if any
314
- member is unrecognized, and `/tmp`, `/var/tmp`, and `/var/folders` are scratch
315
- 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:
316
198
  [docs/safety-model.md](docs/safety-model.md).
317
199
 
318
- ## The fleet: one machine or your whole cluster
319
-
320
- Clio's orchestrator delegates work to bounded workers. With a fleet declared,
321
- those workers run on other machines over SSH while every guarantee holds: one
322
- admission path, one autonomy matrix, one receipt chain.
323
-
324
- ```mermaid
325
- flowchart LR
326
- U["you"] --> O["orchestrator TUI"]
327
- O --> P["execution plan<br/>hashed DAG, capacity waves"]
328
- P --> A["admission<br/>leases, queue, cost ceiling"]
329
- A --> L["local worker"]
330
- A --> S1["ssh node: blade"]
331
- A --> S2["ssh node: dragon"]
332
- L --> R["receipts and evidence"]
333
- S1 --> R
334
- S2 --> R
335
- R --> O
336
- ```
200
+ ## One machine or the whole cluster
337
201
 
338
- Declare nodes in `settings.yaml` and the implicit `local` node is always
339
- 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.
340
206
 
341
207
  ```yaml
342
208
  fleet:
343
209
  nodes:
344
- - id: blade
345
- host: blade.example.net
210
+ - id: node-a
211
+ host: node-a.example.net
346
212
  maxWorkers: 2
347
- residency: observe
348
- - id: dragon
349
- host: dragon.example.net
213
+ - id: node-b
214
+ host: node-b.example.net
350
215
  maxWorkers: 1
351
216
  ```
352
217
 
353
- Then `clio-coder doctor` runs a per-node preflight, `clio-coder fleet list|run|status`
354
- drives and observes contracts, and `clio-coder fleet drain|resume` closes or reopens
355
- durable dispatch admission. A drain preserves running work, rejects every new
356
- execution start, and expires after one hour unless renewed. The `/fleet`
357
- overlay shows nodes, profiles, bindings, and live runs. Nodes must share the
358
- project filesystem at the same absolute path; hosts that do not fail admission
359
- with a clear reason. Target URLs resolve on the node the worker runs on, so
360
- `localhost` means that node's own inference server and there is no central
361
- proxy.
362
-
363
- Everything you need to reproduce it end to end, including a recorded
364
- multi-node demo script, is in [docs/fleet-dispatch.md](docs/fleet-dispatch.md)
365
- and [docs/fleet-demo-runbook.md](docs/fleet-demo-runbook.md).
366
-
367
- Routing is measured but conservative. Every dispatch records a joint decision
368
- over agent, target, model, runtime, and node, while shadow mode leaves the
369
- explicit route unchanged. Operators can activate only named read-only and
370
- quality roles, and only after the exact tuple has enough integrity-valid
371
- quality, reliability, cost, freshness, and decision-latency evidence:
372
-
373
- ```yaml
374
- routing:
375
- activeRoles: [researcher, verifier, reviewer, judge]
376
- activePostures: [quality, balanced]
377
- agentAutomation:
378
- activeAgentRoles: [] # stays advisory until exact agent/role pairs are named
379
- ```
380
-
381
- Manual pins and `failover: none` remain exact. Active mode fails closed when
382
- no route is ready. `agent: auto` is separately bounded by recipe audience,
383
- authority, tools, skills, result contract, locality, and approved governance;
384
- changing from a read-only Scout phase to workspace editing requires an
385
- authenticated plan approval or authority already granted by full-auto policy.
386
-
387
- ## Project context: CLIO-CODER.md
388
-
389
- Clio loads a local `CLIO-CODER.md` as generated project context on every session.
390
- `clio-coder context init` grounds a draft in the actual source tree, preserves an
391
- existing handbook until an explicit replacement action, and can adopt existing
392
- `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, Cursor, and Copilot context with
393
- provenance and conflict reporting. `CLIO-CODER.md` is a gitignored runtime artifact,
394
- 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).
395
252
 
396
- Alongside it, `clio-coder context index` builds a structural codewiki that the
397
- `code_nav` tool navigates, so a model can find a symbol without reading half
398
- the repository into its window.
253
+ ## Install
399
254
 
400
- ## 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
401
258
 
402
- Skills are reusable `SKILL.md` guides the model loads on demand. Clio
403
- discovers them from per-user and per-project roots, including `.clio-coder/skills`
404
- and cross-harness layouts such as `.claude/skills` and `.codex/skills`. A
405
- skill's `allowed-tools` declaration is enforced at tool admission, and a skill
406
- can ship executable RED-GREEN evals that `clio-coder skills eval <name>` runs
407
- 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.
408
262
 
409
- This repository ships a curated catalog under [skills/](skills/README.md) with
410
- provenance frontmatter, evals, and content hashes pinned in
411
- `skills/registry.yaml`, so an installed copy verifies against its audited
412
- source at activation. Nothing auto-loads.
263
+ From source, pinned to this release:
413
264
 
414
265
  ```bash
415
- clio-coder skills install context-handoff # copy into .clio-coder/skills
416
- clio-coder skills list # confirm Clio sees it
266
+ git clone --branch v0.3.2 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
417
272
  ```
418
273
 
419
- The catalog includes [`find-skills`](skills/meta/find-skills/), which routes
420
- discovery through `clio-coder skills search` and `clio-coder skills install`. Install it
421
- with `clio-coder skills install find-skills --user` so it outranks the community
422
- 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.
423
279
 
424
- ## Memory that survives long tasks
280
+ To remove it, preview first:
425
281
 
426
- Long agentic runs decay: a requirement or a failed attempt is still in the
427
- transcript but no longer influences the next action. Clio's proactive task
428
- memory watches tool and lifecycle hooks, keeps a session task bank, and
429
- surfaces visible advisory reminders at trigger boundaries.
282
+ ```bash
283
+ clio-coder uninstall --dry-run
284
+ clio-coder uninstall --remove-binary --force
285
+ ```
430
286
 
431
- The default tier is rules-only and makes no model calls. An LLM memory tier is
432
- opt-in through an independent background route. The action agent's prompt and
433
- tool surface never change, `/memory` inspects the bank, and disabling
434
- `memory.intervention.enabled` removes the whole mechanism. Durable lessons are
435
- separate, scoped, evidence-linked, and managed through `clio-coder memory
436
- list|propose|approve|reject|prune`. Design notes:
437
- [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).
438
289
 
439
290
  ## Status
440
291
 
441
- Clio Coder is experimental software in a soft beta. The current release is
442
- **v0.3.0**, installable from npm as
292
+ The current release is **v0.3.2**, installable from npm as
443
293
  [`@iowarp/clio-coder`](https://www.npmjs.com/package/@iowarp/clio-coder) or
444
- from source. Interfaces may still move between minor versions, and
445
- model-specific behavior varies by target.
446
-
447
- Release notes live in the [CHANGELOG](CHANGELOG.md), the implementation detail
448
- 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
449
298
  the deterministic `npm run ci:release` suite.
450
299
 
451
- ## Troubleshooting
300
+ ### Troubleshooting
452
301
 
453
302
  | Problem | Try this |
454
303
  | --- | --- |
455
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`. |
456
305
  | No model target is available | Run `clio-coder configure`, then `clio-coder targets --probe`. |
457
- | 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. |
458
307
  | Cloud model auth fails | Check `clio-coder auth status <target>` and verify the API key or login flow. |
459
308
  | A fleet node never gets work | Run `clio-coder doctor`; per-node preflight reports filesystem parity and target facts. |
460
- | Source changes do not appear | Re-run `npm run build`; the linked CLI points at `dist/`. |
461
309
  | State appears corrupted | Run `clio-coder doctor`, then `clio-coder doctor --fix`. |
462
310
 
463
- When filing an issue, include the output of `clio-coder --version`, `node
464
- --version`, `clio-coder doctor`, and `clio-coder targets`. Redact secrets, private
465
- 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.
466
315
 
467
316
  ---
468
317
 
469
318
  # For agents
470
319
 
471
320
  If you are an AI agent operating inside this repository or driving Clio as a
472
- tool, this section is the orientation you need.
473
-
474
- ## Orienting in this repository
321
+ tool, start here.
475
322
 
476
- Do not read broadly. Start from the codewiki, which indexes 927 source files.
477
- Use `code_nav` in `entries`, `path`, or `symbol` mode before any wide read.
478
- 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`,
479
327
  `src/domains/components/index.ts`, `src/domains/config/index.ts`,
480
328
  `src/domains/context/bootstrap.ts`, `src/domains/context/index.ts`,
481
- `src/domains/dispatch/index.ts`, and `src/domains/eval/index.ts`. When present,
482
- read the local generated `CLIO-CODER.md` after that index-led orientation; it carries
483
- the project-specific invariants and traps that are not obvious from the source.
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`.
484
333
 
485
- ## The tool surface
486
-
487
- Twenty tools in seven planes. Each plane is one policy unit covering action
488
- 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.
489
336
 
490
337
  | Plane | Tools | Posture |
491
338
  | --- | --- | --- |
@@ -498,297 +345,118 @@ class, size posture, result schema, and concurrency rule.
498
345
  | ARTIFACT | `artifact` | Plans, reviews, and reports as durable artifacts |
499
346
 
500
347
  Every observation carries a truncation envelope with offload paths and next
501
- hints, so a large result is bounded rather than silently cut. Full parameter
502
- and payload reference: [docs/tool-usage.md](docs/tool-usage.md).
503
-
504
- ## Dispatch topologies
505
-
506
- All topologies go through the same tool, admission chain, and autonomy matrix.
507
-
508
- | Topology | Invocation | Semantics |
509
- | --- | --- | --- |
510
- | Singular | `task: "..."` | One assignment, with an optional separate `briefing`. |
511
- | Parallel | `tasks: [...]` | Fan out, wait for all, one summary. |
512
- | Sequential | `mode: "sequential"` | One at a time, stop reporting on timeout or abort. |
513
- | Pipeline | `mode: "pipeline"` | Each step receives the previous step's output as data. |
514
- | Detached | `detach: true` | Return assignment ids immediately and collect later. |
515
- | Review gate | `review: {reviewer?, max_cycles?}` | Builder, read-only verifier verdict, bounded revise loop. |
516
- | Compete | `mode: "compete", candidates: 2..4` | N candidates in scratch worktrees, read-only judge, winner applied. |
517
-
518
- Detached batches are durable, so collection survives session exit. Use
519
- `monitor` with `mode="collect"` as the authoritative terminal barrier over a
520
- batch, and collect every detached batch before final synthesis; `mode="tools"`
521
- reports what a run actually executed. `Alt+S` sends a running attached dispatch
522
- to the background as a detached batch, which review gates, compete, pipelines,
523
- and time-boxed calls refuse with a reason.
524
-
525
- Admission refuses a pairing it can prove impossible, such as a pinned read-only
526
- recipe aimed at mutation work, and flags the receipt where it is unsure rather
527
- than blocking. Claimed file changes and validation commands are checked against
528
- the run's own tool events, so a path the run never wrote cannot seal as done.
529
-
530
- ## Execution roles and typed results
531
-
532
- Every dispatch carries an `ExecutionRole`: `builder`, `reviewer`, `judge`,
533
- `researcher`, `verifier`, or `recovery`. The role is typed on every request,
534
- ledger envelope, receipt, route candidate, plan task, and route decision.
535
- Route statistics never mix roles, and any attempt after the first is
536
- `recovery`.
537
-
538
- Workers answer typed terminal contracts, not trailing prose. A `scout-report`
539
- carries findings as `{claim, path, line}`, and grounding is structural rather
540
- than a regex over prose: a cited line must fall inside a span this run
541
- actually read, so an estimated line number cannot pass as an observation. A
542
- worker validates its own result and spends a bounded number of repair rounds
543
- before failing the run; the orchestrator's sealed validation is the authority.
544
-
545
- Review and compete gates default to the builtin `verifier` and never fall back
546
- to the builder agent. A gate decider's postcondition is the gate result
547
- contract, not its own recipe contract.
548
-
549
- ## The built-in fleet
550
-
551
- `architect`, `coder`, `tester`, `verifier`, `debugger`, `documenter`, `scout`,
552
- `researcher`, `provenance`, and `git-master`. Each is a versioned frontmatter
553
- recipe with an explicit tool profile, call and cost budget, and result
554
- contract. Malformed custom recipes are quarantined with a diagnostic; malformed
555
- builtins fail startup. Reference:
556
- [docs/built-in-agents.md](docs/built-in-agents.md).
557
-
558
- This roster is compiled into the session prompt whenever the dispatch tool is
559
- available, so pin an id from it. `agent: "auto"` baselines from task shape and
560
- is a fallback, not a router.
561
-
562
- ## 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.
563
369
 
564
370
  ```bash
565
371
  clio-coder run "<task>" --json # one headless turn, JSONL events
566
- clio-coder run "<task>" --agent coder # one explicit fleet agent, writes a receipt
567
- clio-coder acp # serve ACP v1 over stdio for ACP frontends
372
+ clio-coder acp # ACP v1 over stdio
568
373
  clio-coder fleet run <contract> # run a fleet DAG contract
569
- clio-coder fleet drain # pause new execution starts for up to one hour
570
- clio-coder fleet resume # reopen durable dispatch admission
571
374
  clio-coder evidence build|inspect|list # deterministic evidence artifacts
572
375
  clio-coder eval validate|run|report|compare|gate
573
376
  ```
574
377
 
575
- Dispatch can also delegate to external ACP agents while Clio mediates
576
- permissions. Clio implements the
577
- [Agent Client Protocol](https://agentclientprotocol.com) so the engine stays
578
- decoupled from IDE frontends.
579
-
580
- ## What gets recorded
581
-
582
- Every run seals a receipt. Receipt integrity is at v15 and covers normalized
583
- routing intent, the resolved route, worker attestation, priced cost, phase
584
- timing, tool activity, safety decisions, and result-contract conformance.
585
- Gate decisions are v2 artifacts that seal route correlation across agent,
586
- target, model family, runtime, and node, and they cross a staged durable
587
- boundary rather than being written directly.
588
-
589
- A worker attests its protocol version, pid, process-group id, host, settings
590
- fingerprint, WorkerSpec digest, runtime, target, endpoint identity hash, wire
591
- model, effective tool signature, and bounded resource facts before any model
592
- call. Any drift from the approved identity kills the worker.
593
-
594
- `clio-coder trace` reads the same store and now records interactive turns beside
595
- dispatched runs, one event per tool call with its verdict.
596
-
597
- Verify from the TUI with `/view verify <runId>`, or from the shell with `clio-coder evidence inspect`. See [docs/observability.md](docs/observability.md).
598
-
599
378
  ---
600
379
 
601
380
  # For contributors
602
381
 
603
- Contributions are welcome, and the fastest way in is to fix something you hit
604
- while using it on your own research code.
605
-
606
- ## Architecture at a glance
607
-
608
- ```mermaid
609
- flowchart TB
610
- CLI["src/cli"] --> ENG["src/engine"]
611
- TUI["src/interactive"] --> ENG
612
- ENG --> TOOLS["src/tools<br/>20 typed tools, 7 planes"]
613
- ENG --> DOM["src/domains"]
614
- DOM --> DISP["dispatch<br/>plans, leases, routing, receipts"]
615
- DOM --> CTX["context<br/>codewiki, compaction, CLIO-CODER.md"]
616
- DOM --> PROV["providers<br/>runtimes, auth, catalog"]
617
- DOM --> SAFE["safety<br/>damage control, policy"]
618
- DISP --> WORK["src/worker<br/>bounded worker runtime"]
619
- ```
620
-
621
- The largest indexed areas are `src/domains` (392 files), `tests/contracts`
622
- (236), `src/interactive` (83), `src/cli` (48), `src/tools` (42), `src/engine`
623
- (40), and `src/core` (35). Compile-time boundaries between domains are
624
- enforced by a test suite, not by convention. Read
625
- [docs/architecture.md](docs/architecture.md) before adding a cross-domain
626
- import.
627
-
628
- ## 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.
629
386
 
630
387
  ```bash
631
388
  npm ci
632
- npm run dev # tsup watch build
633
- 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
634
392
  ```
635
393
 
636
- Targeted checks when the risk is narrower:
637
-
638
394
  | Check | Command |
639
395
  | --- | --- |
640
396
  | Types | `npm run typecheck` |
641
- | Style | `npm run lint` |
642
- | Contracts | `npm run test:contracts` |
643
- | Smoke flows | `npm run test:smoke` |
644
- | 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` |
645
399
  | Everything | `npm run test` |
646
400
 
647
401
  Conventions worth knowing before your first PR: local imports end in `.js`,
648
- tests use `node:test`, and `any` needs a tracking issue.
649
-
650
- ## Release verification
651
-
652
- ```bash
653
- npm run ci:release
654
- ```
655
-
656
- That runs typecheck, Biome, the skills pin check, the production build, the
657
- contract, smoke, and boundary suites, and the `check-release` dist and package
658
- audit. Live model validation is separate, manual, and opt-in, because no
659
- deterministic suite can promise that every local model behaves identically:
660
-
661
- ```bash
662
- CLIO_CODER_LIVE_SMOKE=1 \
663
- CLIO_CODER_LIVE_TARGET=openai-compat \
664
- CLIO_CODER_LIVE_RUNTIME=openai-compat \
665
- CLIO_CODER_LIVE_MODEL=your-model \
666
- CLIO_CODER_LIVE_BASE_URL=http://localhost:8080/v1 \
667
- npm run test:live
668
-
669
- CLIO_CODER_LIVE_SMOKE=1 npm run test:live -- --delegation # needs local opencode and copilot
670
- npm run test:live-eval:fleet-dispatch # multi-node dispatch regression
671
- ```
672
-
673
- Benchmarks against public suites live under `benchmarks/`:
674
-
675
- ```bash
676
- npm run bench:swe # SWE-bench Lite
677
- npm run bench:scicode # SciCode
678
- ```
679
-
680
- ## Where to start
681
-
682
- Read [CONTRIBUTING.md](CONTRIBUTING.md) for setup, architecture invariants,
683
- branch and commit conventions, and the review rubric. Good first areas:
684
- provider adapters for a runtime you use
685
- ([cookbook](docs/provider-adapter-cookbook.md)), skills for a scientific
686
- domain you know ([catalog](skills/README.md)), and documentation gaps you hit
687
- during onboarding.
688
-
689
- Security reports go through [SECURITY.md](SECURITY.md), not public issues.
690
-
691
- ---
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.
692
409
 
693
410
  ## Documentation
694
411
 
695
- The full set lives under [docs/](docs/README.md), and `clio-coder docs` serves it
696
- 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:
697
415
 
698
416
  | Topic | Guide |
699
417
  | --- | --- |
700
- | Commands, slash commands, operating posture, keybindings, dispatch, verification, troubleshooting | [commands-and-modes.md](docs/commands-and-modes.md) |
701
- | Multi-node fleet dispatch: SSH transport, doctor preflight, placement, topologies, receipts | [fleet-dispatch.md](docs/fleet-dispatch.md) |
702
- | Executable multi-node demo with a reviewer gate and receipt provenance walkthrough | [fleet-demo-runbook.md](docs/fleet-demo-runbook.md) |
703
- | NDJSON parent-child protocols, watchdog timers, and exit status mapping | [worker-dispatch-mechanics.md](docs/worker-dispatch-mechanics.md) |
704
- | Built-in agent recipes, discovery roots, frontmatter schema, dispatch admission | [built-in-agents.md](docs/built-in-agents.md) |
705
- | Context window resolution, probe capabilities, token accounting, compaction, priming | [context-engine.md](docs/context-engine.md) |
706
- | Proactive task memory, session task bank, intervention rules, handoff carrying | [proactive-memory.md](docs/proactive-memory.md) |
707
- | Runtime targets, local model configuration, fleet profiles, auth | [configuration-and-targets.md](docs/configuration-and-targets.md) |
708
- | Argonne ALCF Sophia and Metis inference targets over Globus OAuth | [alcf-provider.md](docs/alcf-provider.md) |
709
- | Safety posture, default-deny Bash, project policy, damage-control rules, typed validation | [safety-model.md](docs/safety-model.md) |
710
- | Source layout, compile-time boundaries, domain loading, runtime data flow | [architecture.md](docs/architecture.md) |
711
- | Reference for all 19 worker tools: parameters, payloads, error examples | [tool-usage.md](docs/tool-usage.md) |
712
- | Prompt envelope reuse, provider tool delivery, bounded tool results | [prompt-envelope-and-tools.md](docs/prompt-envelope-and-tools.md) |
713
- | Implementing custom model runtimes and inference server integrations | [provider-adapter-cookbook.md](docs/provider-adapter-cookbook.md) |
714
- | Artifact browsing, receipt verification, dispatch diagnostics, observability routing | [observability.md](docs/observability.md) |
715
- | Evidence directory structures, findings, operator-approved memory retrieval | [evidence-and-memory.md](docs/evidence-and-memory.md) |
716
- | Local YAML eval suites, reports, comparisons, command evidence | [eval-runner.md](docs/eval-runner.md) |
717
- | Installation, upgrade, reset, uninstallation, configuration folders, permissions | [installation-and-lifecycle.md](docs/installation-and-lifecycle.md) |
718
- | Every environment variable the runtime reads | [environment-variables.md](docs/environment-variables.md) |
719
- | Prompt and skill resources, extension manifests, portable share archives | [extensions-and-sharing.md](docs/extensions-and-sharing.md) |
720
- | Skills Hub marketplace discovery, install actions, publishing | [skills-marketplace.md](docs/skills-marketplace.md) |
721
- | Runtime model refresh, catalog sources, local and cloud model quirks | [model-catalog.md](docs/model-catalog.md) |
722
- | Active component snapshots and the experimental middleware hook contract | [middleware-and-components.md](docs/middleware-and-components.md) |
723
- | Advisory validation-contract patterns for scientific artifacts and HPC assumptions | [scientific-validation.md](docs/scientific-validation.md) |
724
- | Falsifiable Change Manifest templates, auditability, and `clio-coder evolve` | [evolution.md](docs/evolution.md) |
725
- | Interface layout, palette, Unicode vocabulary, drawing choreography | [tui-design.md](docs/tui-design.md) |
726
- | Source-first docs workflow, mapping matrix, alpha wording guidance | [documentation-guide.md](docs/documentation-guide.md) |
727
- | Private context index determinism and target smoke matrices (internal) | [evals-internal.md](docs/evals-internal.md) |
728
- | Point-in-time inventory of legacy environment variables (historical) | [config-knobs-audit.md](docs/config-knobs-audit.md) |
729
-
730
- ## Measuring local model performance
731
-
732
- llama.cpp and similar backends often expose a single prefix-cache slot. When
733
- dispatch traffic or compaction invalidates it, the next turn records the
734
- expected-cold reasons and shows one dim notice. Per-call cache verdicts
735
- (`hot`, `partial`, `cold`, `small`) are persisted with timing and prompt-cache
736
- counters in each session's `context-snapshots.jsonl`, so a slow session can be
737
- diagnosed from the ledger alone.
738
-
739
- ```bash
740
- clio-coder usage report --days 7 # cost and token facts with cited run ids
741
- ```
742
-
743
- Inside the TUI, `/cost` shows session totals and `/context` opens the
744
- context-window ledger. See [docs/context-engine.md](docs/context-engine.md)
745
- for how the context engine measures and protects the prompt prefix.
746
-
747
- ---
748
-
749
- ## Heritage, lineage, and funding
750
-
751
- Clio Coder is developed under the [IOWarp](https://iowarp.ai) project by the
752
- [Gnosis Research Center](https://grc.iit.edu) at the
753
- [Illinois Institute of Technology](https://www.iit.edu) in collaboration with
754
- the University of Utah.
755
-
756
- IOWarp and the CLIO (Context Layer for Input/Output) architecture are funded by
757
- 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
758
439
  [Award #2411318](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318) for
759
440
  2024 through 2029. Principal Investigator: Dr. Xian-He Sun. Co-Principal
760
441
  Investigators: Dr. Anthony Kougkas, Dr. Jake Hochhalter, and Dr. Vivek
761
442
  Srikumar.
762
443
 
763
444
  Clio Coder is the interactive coding orchestrator in a larger ecosystem:
764
-
765
- - [clio-core](https://github.com/iowarp/clio-core) is the foundational storage
766
- layer using Chimaera-based tiered data and context storage.
767
- - [clio-kit](https://github.com/iowarp/clio-kit) is a suite of 15+
768
- [Model Context Protocol](https://modelcontextprotocol.io) servers exposing
769
- 150+ tools for scientific computing domains including HDF5, Slurm, ParaView,
770
- Pandas, ArXiv, NetCDF, FITS, and Zarr.
771
-
772
- ### Built on
773
-
774
- - **Pi Agent Framework** from [Earendil Works](https://github.com/earendil-works):
775
- the [@earendil-works/pi-ai](https://www.npmjs.com/package/@earendil-works/pi-ai)
776
- execution engine, [@earendil-works/pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui)
777
- terminal rendering, and [@earendil-works/pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core)
778
- subagent orchestration.
779
- - **Anthropic Claude Agent SDK** through
780
- [@anthropic-ai/claude-agent-sdk](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk)
781
- for Claude Code worker runs under Pro/Max subscriptions.
782
- - **Agent Client Protocol** for decoupling the engine from IDE frontends.
783
- - **Globus Auth** for authenticating against ALCF's Sophia and Metis inference
784
- gateways.
785
-
786
- ### Evaluation
787
-
788
- Subagents and prompt techniques are evaluated against
789
- [SWE-bench](https://www.swebench.com) and SciCode. Every subagent run produces
790
- structured execution evidence, matched against baseline and candidate
791
- 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.
792
460
 
793
461
  ---
794
462