@iowarp/clio-coder 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +407 -375
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-G5WJBNCT.js → acp-TMDQZDIG.js} +14 -14
  6. package/dist/{agents-FMV2Q5G4.js → agents-5N5NG3XG.js} +45 -34
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-3IDSJEIK.js → auth-Z5CCBXKQ.js} +22 -21
  9. package/dist/{builtins-XCZWXSC7.js → builtins-K6TNDT24.js} +6 -6
  10. package/dist/{chunk-GR5G2PVF.js → chunk-2HFQNRV3.js} +15 -10
  11. package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
  12. package/dist/{chunk-HJJTYUHX.js → chunk-2NHR3NAY.js} +168 -1406
  13. package/dist/chunk-2X4RYJTJ.js +39 -0
  14. package/dist/{chunk-UXMFQ54G.js → chunk-2Z2IKEXI.js} +39 -43
  15. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  16. package/dist/chunk-34BHNEE3.js +1846 -0
  17. package/dist/{chunk-YJX4SHTD.js → chunk-35MSIRKH.js} +9 -4
  18. package/dist/chunk-3EBYEESD.js +314 -0
  19. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  20. package/dist/chunk-3KIPBMUA.js +308 -0
  21. package/dist/chunk-3M6DQK6S.js +362 -0
  22. package/dist/{chunk-BPKCPIL7.js → chunk-462T4EGZ.js} +3 -3
  23. package/dist/{chunk-QLFS5GO2.js → chunk-4JDLP6ZS.js} +44 -37
  24. package/dist/{chunk-LDQ2ZF2M.js → chunk-4O6MANBS.js} +6 -6
  25. package/dist/{chunk-O6TL7WWY.js → chunk-54ODD65L.js} +6 -6
  26. package/dist/{chunk-JDG2WCRO.js → chunk-5KW52TEP.js} +5 -5
  27. package/dist/{chunk-NHLBIGRH.js → chunk-5PFYMY2V.js} +41 -18
  28. package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
  29. package/dist/chunk-77QIVUZB.js +1334 -0
  30. package/dist/{chunk-HWHKMHUA.js → chunk-7BHIY2MW.js} +9 -15
  31. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  32. package/dist/{chunk-VAZSBTKF.js → chunk-AZ4WMN4W.js} +2 -2
  33. package/dist/{chunk-B7OBL7PK.js → chunk-B74PXLU7.js} +21 -11
  34. package/dist/{chunk-CY6FY24N.js → chunk-B7HM5Z7T.js} +15 -15
  35. package/dist/{chunk-ULC6OTWO.js → chunk-BO7Y52RY.js} +88 -27
  36. package/dist/chunk-BTK3SSSK.js +67 -0
  37. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  38. package/dist/{chunk-DQITNCXG.js → chunk-BYMNWQ7O.js} +149 -159
  39. package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
  40. package/dist/{chunk-Z4TXYIEG.js → chunk-CRFOIAX3.js} +10 -10
  41. package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
  42. package/dist/{chunk-3BT2XMV4.js → chunk-CYZW7JHJ.js} +53 -60
  43. package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
  44. package/dist/chunk-D7E7WCDF.js +27 -0
  45. package/dist/{chunk-X3YGUTOB.js → chunk-DYHAXKHD.js} +90 -62
  46. package/dist/{chunk-QBJA7R7N.js → chunk-DZAW46HP.js} +3 -3
  47. package/dist/{chunk-MLKNTWH2.js → chunk-DZEK6CJN.js} +22 -22
  48. package/dist/{chunk-K5C3NCBD.js → chunk-E7GT7O5N.js} +5 -5
  49. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  50. package/dist/chunk-F2I26BDK.js +66 -0
  51. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  52. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  53. package/dist/{chunk-32KWKNSF.js → chunk-FVDGR2ZL.js} +4 -4
  54. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  55. package/dist/{chunk-SJ5ZKQ4S.js → chunk-HIICAHCJ.js} +2 -2
  56. package/dist/chunk-HJWWJ6IL.js +184 -0
  57. package/dist/{chunk-WZR7K7ZX.js → chunk-HKMD33FO.js} +32 -83
  58. package/dist/chunk-HLAFFSEK.js +360 -0
  59. package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
  60. package/dist/{chunk-KFZI4NIL.js → chunk-I64IFBLB.js} +152 -31
  61. package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
  62. package/dist/{chunk-BUMFYQFY.js → chunk-I66ZTYNP.js} +543 -267
  63. package/dist/{chunk-2OQE55CK.js → chunk-I7XBWTYH.js} +2 -2
  64. package/dist/{chunk-GKF55TAZ.js → chunk-IDNA72AH.js} +104 -3
  65. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  66. package/dist/{chunk-J4W7KFM7.js → chunk-IKSLQ4XV.js} +5439 -3475
  67. package/dist/{chunk-6DB53AJS.js → chunk-IMXMHHMQ.js} +171 -30
  68. package/dist/{chunk-AB44T6BB.js → chunk-JBCS7CRR.js} +8 -7
  69. package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
  70. package/dist/{chunk-SP2RXXYO.js → chunk-JWJGP5DQ.js} +10 -10
  71. package/dist/{chunk-HZHHCK24.js → chunk-KKOJXO6R.js} +527 -325
  72. package/dist/chunk-KPXDY6QF.js +47 -0
  73. package/dist/{chunk-LQ3DZAMX.js → chunk-LJID3DYZ.js} +8 -2
  74. package/dist/{chunk-7MCTRUCE.js → chunk-M2DAX4F6.js} +2 -2
  75. package/dist/{chunk-VEO4AP2K.js → chunk-M2WXEHER.js} +4 -3
  76. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  77. package/dist/{chunk-YDFRH54B.js → chunk-MCMZMDAC.js} +4 -4
  78. package/dist/{chunk-J5Q24KAG.js → chunk-MNJGS2IN.js} +5 -6
  79. package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
  80. package/dist/chunk-NDDGJUXD.js +81 -0
  81. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  82. package/dist/chunk-NMJXSHBJ.js +283 -0
  83. package/dist/{chunk-VYMXRQI6.js → chunk-O3YUNJZ2.js} +88 -100
  84. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  85. package/dist/{chunk-Z2RR6MAK.js → chunk-P75RZCJW.js} +28 -6
  86. package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
  87. package/dist/{chunk-DYJP44XW.js → chunk-PGF63K6I.js} +2 -2
  88. package/dist/chunk-PJX3WQUQ.js +42 -0
  89. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  90. package/dist/{chunk-2JDWVJND.js → chunk-Q4XWMHX6.js} +5 -7
  91. package/dist/{chunk-W5VSYASO.js → chunk-QQLGQY2A.js} +46 -87
  92. package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
  93. package/dist/{chunk-C2LTL2W6.js → chunk-RLYRBIYQ.js} +463 -180
  94. package/dist/{chunk-4ZG3XFUR.js → chunk-S66XZJOF.js} +14 -23
  95. package/dist/{chunk-I5VEOC6I.js → chunk-SSEYRH53.js} +13 -14
  96. package/dist/chunk-SZAA6XDG.js +30 -0
  97. package/dist/{chunk-CODPRO7Q.js → chunk-TPEQIQIE.js} +7 -7
  98. package/dist/{chunk-QLL7ILRG.js → chunk-UBRFI4HS.js} +1151 -614
  99. package/dist/{chunk-O4XIVISU.js → chunk-UH347SHR.js} +227 -47
  100. package/dist/{chunk-OQBA45DZ.js → chunk-UH632ZYL.js} +2 -2
  101. package/dist/chunk-UXCU4E3T.js +303 -0
  102. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  103. package/dist/{chunk-IQ7KR472.js → chunk-VIA6RFQZ.js} +8 -13
  104. package/dist/{chunk-V5DHCITQ.js → chunk-VKPAQYEB.js} +49 -19
  105. package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
  106. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  107. package/dist/{chunk-3XML7CDN.js → chunk-W4YEMFBX.js} +3 -3
  108. package/dist/{chunk-U77AMWDL.js → chunk-W6NIE6OW.js} +44 -23
  109. package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
  110. package/dist/{chunk-QREDIESB.js → chunk-X7IARSHT.js} +15 -9
  111. package/dist/{chunk-3URVFKWK.js → chunk-XE3PCIXH.js} +5 -5
  112. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  113. package/dist/{chunk-F4CKPOEQ.js → chunk-XOXV5GKE.js} +119 -38
  114. package/dist/chunk-XQRY4DTA.js +657 -0
  115. package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
  116. package/dist/{chunk-NQQH3YT7.js → chunk-YJISEZKC.js} +3 -3
  117. package/dist/{chunk-X75E3D2N.js → chunk-ZGNYYXQ6.js} +18 -16
  118. package/dist/{chunk-LY4S7GJC.js → chunk-ZNT2M6TG.js} +20 -18
  119. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  120. package/dist/{chunk-IBEBSCYA.js → chunk-ZW4HH5JJ.js} +43 -34
  121. package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
  122. package/dist/cli/index.js +38 -37
  123. package/dist/{clio-2JXHBBY5.js → clio-7VB377CC.js} +12 -13
  124. package/dist/{code-nav-3YYRMYNF.js → code-nav-YVLCYA7V.js} +86 -18
  125. package/dist/codewiki/build-worker.js +1 -1
  126. package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
  127. package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
  128. package/dist/{config-QZPCMYSO.js → config-4HVOS65E.js} +112 -63
  129. package/dist/{configure-TEGEBYCA.js → configure-PIWO7B24.js} +25 -22
  130. package/dist/{context-E6H5RNMC.js → context-IYEHL3WQ.js} +53 -47
  131. package/dist/{context-GSXUE4CT.js → context-KQYIWPWT.js} +68 -42
  132. package/dist/{context-AV7OEZ4D.js → context-N6ZE3LGJ.js} +11 -11
  133. package/dist/{context-clear-SHIBYK6T.js → context-clear-G4OGZJDS.js} +53 -47
  134. package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-BWLF6LJP.js} +12 -11
  135. package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-2QQAITS3.js} +67 -58
  136. package/dist/{docs-23KQS3XK.js → docs-PD3EXDKU.js} +20 -25
  137. package/dist/doctor-LHBD36VU.js +773 -0
  138. package/dist/{eval-TFBYQH4H.js → eval-C45FYRJ6.js} +68 -49
  139. package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-6DEJPLBF.js} +7 -8
  140. package/dist/{evidence-ERGESKGN.js → evidence-6SHONYAF.js} +50 -44
  141. package/dist/{evolve-VDXTSYCJ.js → evolve-KRKMV72X.js} +49 -43
  142. package/dist/{extensions-7BGBHN57.js → extensions-KPZ2UHBB.js} +8 -6
  143. package/dist/{fleet-2RRVDF2V.js → fleet-IVTCKDHT.js} +93 -79
  144. package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EDWL3IT7.js} +10 -9
  145. package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-YP3YEFGK.js} +6 -6
  146. package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-ZFWKHY2M.js} +19 -15
  147. package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-FVUNCBML.js} +50 -45
  148. package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-UN5XED4R.js} +5 -9
  149. package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-XOWC4HSX.js} +22 -17
  150. package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-UN3SODEL.js} +48 -43
  151. package/dist/fleet-view-TWHJKCN6.js +96 -0
  152. package/dist/{init-DN2WWLFE.js → init-T2QORQ3Y.js} +72 -66
  153. package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
  154. package/dist/{interop-OZBKXAYL.js → interop-IN5I2A66.js} +13 -11
  155. package/dist/{library-YWZG7IMW.js → library-LSCATDLZ.js} +23 -18
  156. package/dist/{memory-I4C4HMLW.js → memory-HYOKAGGJ.js} +51 -45
  157. package/dist/{models-CEYXJBO6.js → models-2GPMFYCM.js} +42 -33
  158. package/dist/{monitor-NZ6GCI3P.js → monitor-E4ASVUJH.js} +56 -50
  159. package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-DDMPR3PY.js} +2676 -1507
  160. package/dist/{panes-KY6W3V2E.js → panes-E3RUXOW5.js} +5 -5
  161. package/dist/panes-IXKLOKA2.js +75 -0
  162. package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
  163. package/dist/{reset-DQ6FGCSH.js → reset-OAQP3W4O.js} +7 -8
  164. package/dist/{resources-BB3MVJMD.js → resources-OTRSN34L.js} +23 -17
  165. package/dist/{run-H2GQDUER.js → run-5DEYH5QK.js} +95 -84
  166. package/dist/{share-GTJN6A5O.js → share-IHWTLO3M.js} +26 -19
  167. package/dist/{skills-L55TEW6R.js → skills-IYMXMKW4.js} +25 -20
  168. package/dist/{skills-eval-XVXPH2JI.js → skills-eval-DROHSJAR.js} +63 -65
  169. package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-D7X4L4ZX.js} +21 -16
  170. package/dist/{slash-commands-ZSGASKJC.js → slash-commands-QBM7UZ3B.js} +38 -33
  171. package/dist/{steer-RZGSCY4R.js → steer-Z5DO23FJ.js} +3 -3
  172. package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
  173. package/dist/{targets-NCPZ644J.js → targets-P2FUC4IL.js} +64 -61
  174. package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-YREJ3JX2.js} +15 -10
  175. package/dist/{tools-DAF3DI3C.js → tools-5B7RO6MV.js} +10 -8
  176. package/dist/{trace-FYVW2MQA.js → trace-YMGMUM6A.js} +101 -8
  177. package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
  178. package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
  179. package/dist/{upgrade-3XPP6OQL.js → upgrade-PXK3S2YM.js} +36 -61
  180. package/dist/{usage-3NLHGTU2.js → usage-ME5MPXGX.js} +58 -53
  181. package/dist/{verifiers-SSQONKRT.js → verifiers-BVZ7IWOO.js} +10 -9
  182. package/dist/{verify-3U6J7FZI.js → verify-5K7ZKQFC.js} +9 -8
  183. package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPARV2K7.js} +2 -3
  184. package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-F5W5QTYY.js} +74 -70
  185. package/dist/{with-panes-MKB46MPQ.js → with-panes-BYOJCLAM.js} +78 -246
  186. package/dist/worker/entry.js +83 -63
  187. package/docs/README.md +176 -81
  188. package/docs/{acp.md → architecture/acp.md} +36 -20
  189. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  190. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  191. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  192. package/docs/architecture/artifact-versions.md +90 -0
  193. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  194. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  195. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  196. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  197. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  198. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  199. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  200. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  201. package/docs/{observability.md → architecture/observability.md} +26 -13
  202. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  203. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  204. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  205. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  206. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  207. package/docs/architecture/time-conventions.md +125 -0
  208. package/docs/{trace-store.md → architecture/trace-store.md} +26 -13
  209. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  210. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  211. package/docs/{built-in-agents.md → guide/built-in-agents.md} +70 -46
  212. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +73 -62
  213. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -444
  214. package/docs/guide/configuration-reference.md +1158 -0
  215. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -27
  216. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +8 -3
  217. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  218. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +47 -49
  219. package/docs/{glossary.md → guide/glossary.md} +14 -11
  220. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +45 -14
  221. package/docs/guide/panes-and-files.md +290 -0
  222. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  223. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  224. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  225. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  226. package/docs/{troubleshooting.md → guide/troubleshooting.md} +10 -5
  227. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +13 -10
  228. package/docs/history/release-cut-checklist.md +207 -0
  229. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  230. package/docs/process/documentation-coverage.md +100 -0
  231. package/docs/process/documentation-guide.md +187 -0
  232. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  233. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  234. package/docs/{evolution.md → process/evolution.md} +2 -2
  235. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +17 -10
  236. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  237. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  238. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  239. package/evals/README.md +5 -0
  240. package/evals/behavioral-corpus-grader.mjs +103 -0
  241. package/evals/behavioral-machinery-baseline.json +2276 -0
  242. package/evals/behavioral-machinery-driver.ts +250 -0
  243. package/evals/behavioral-machinery-support.ts +253 -0
  244. package/evals/behavioral-machinery.yaml +614 -0
  245. package/evals/behavioral-model-negative-control.yaml +68 -0
  246. package/evals/behavioral-model.yaml +216 -0
  247. package/evals/fixtures/behavioral-facts.txt +3 -0
  248. package/evals/fixtures/behavioral-main.ts +7 -0
  249. package/evals/fixtures/decoy/note.txt +2 -0
  250. package/evals/fixtures/private/credentials.txt +1 -0
  251. package/evals/tracked-metrics-baseline.yaml +229 -0
  252. package/evals/tracked-metrics-grader.mjs +129 -0
  253. package/package.json +13 -21
  254. package/skills/README.md +51 -42
  255. package/skills/coding/ast-grep/SKILL.md +9 -3
  256. package/skills/coding/coding-standards/SKILL.md +9 -3
  257. package/skills/coding/prototype/SKILL.md +9 -3
  258. package/skills/coding/tdd/SKILL.md +9 -3
  259. package/skills/context/context-handoff/SKILL.md +13 -4
  260. package/skills/context/context-handoff/evals.md +3 -3
  261. package/skills/context/context-prime/SKILL.md +9 -3
  262. package/skills/context/context-prime/evals.md +2 -2
  263. package/skills/git/file-ticket/SKILL.md +10 -5
  264. package/skills/git/file-ticket/evals.md +2 -2
  265. package/skills/git/fix-issue/SKILL.md +12 -5
  266. package/skills/git/fix-issue/evals.md +4 -4
  267. package/skills/git/resolve-merge-conflicts/SKILL.md +9 -3
  268. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  269. package/skills/git/ship/SKILL.md +10 -4
  270. package/skills/git/ship/evals.md +4 -4
  271. package/skills/git/worktree-create/SKILL.md +8 -3
  272. package/skills/git/worktree-create/evals.md +6 -6
  273. package/skills/git/worktree-merge/SKILL.md +8 -3
  274. package/skills/git/worktree-merge/evals.md +6 -6
  275. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +22 -12
  276. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +5 -4
  277. package/skills/meta/clio-coder-test/SKILL.md +146 -0
  278. package/skills/meta/{clio-test → clio-coder-test}/evals.md +10 -5
  279. package/skills/meta/clio-coder-test/references/harness.md +102 -0
  280. package/skills/meta/clio-coder-test/references/test-map.md +96 -0
  281. package/skills/meta/credentials/SKILL.md +10 -3
  282. package/skills/meta/find-skills/SKILL.md +9 -3
  283. package/skills/meta/herdr/SKILL.md +9 -3
  284. package/skills/meta/skill-craft/SKILL.md +39 -16
  285. package/skills/planning/architecture/SKILL.md +9 -3
  286. package/skills/planning/backlog/SKILL.md +9 -3
  287. package/skills/planning/prd/SKILL.md +9 -3
  288. package/skills/planning/product-intent/SKILL.md +9 -3
  289. package/skills/planning/tech-spec/SKILL.md +9 -3
  290. package/skills/registry.yaml +66 -66
  291. package/skills/research/arxiv-literature/SKILL.md +9 -3
  292. package/skills/research/experiment-protocol/SKILL.md +10 -3
  293. package/skills/research/scientific-debugging/SKILL.md +10 -3
  294. package/skills/research/scientific-debugging/evals.md +2 -2
  295. package/skills/research/scientific-modernization/SKILL.md +10 -3
  296. package/skills/skill-marketplace.json +285 -66
  297. package/skills/workflow/cut-it/SKILL.md +11 -3
  298. package/skills/workflow/design-council/SKILL.md +12 -3
  299. package/skills/workflow/grill-me/SKILL.md +9 -3
  300. package/skills/workflow/workflow-distiller/SKILL.md +9 -3
  301. package/src/cli/acp.ts +2 -2
  302. package/src/cli/args.ts +2 -2
  303. package/src/cli/auth.ts +2 -2
  304. package/src/cli/bootstrap-generate.ts +6 -6
  305. package/src/cli/clio.ts +6 -1
  306. package/src/cli/config-inspect.ts +68 -15
  307. package/src/cli/configure-interop.ts +1 -1
  308. package/src/cli/configure.ts +27 -31
  309. package/src/cli/default-target.ts +1 -1
  310. package/src/cli/docs.ts +28 -20
  311. package/src/cli/doctor-naming.ts +323 -0
  312. package/src/cli/doctor-panes.ts +46 -14
  313. package/src/cli/doctor-toolchain.ts +31 -10
  314. package/src/cli/doctor.ts +15 -1
  315. package/src/cli/eval-inventory.ts +8 -8
  316. package/src/cli/eval.ts +1 -2
  317. package/src/cli/evidence-detail.ts +1 -1
  318. package/src/cli/evidence-inventory.ts +1 -1
  319. package/src/cli/extensions.ts +2 -1
  320. package/src/cli/fleet-decisions.ts +1 -1
  321. package/src/cli/fleet-inspect.ts +1 -1
  322. package/src/cli/fleet-preflight.ts +1 -1
  323. package/src/cli/fleet-verify.ts +1 -1
  324. package/src/cli/fleet-view.ts +40 -23
  325. package/src/cli/fleet.ts +9 -6
  326. package/src/cli/index.ts +2 -1
  327. package/src/cli/internal-dispatch.ts +3 -4
  328. package/src/cli/interop-inspect.ts +2 -2
  329. package/src/cli/models.ts +3 -3
  330. package/src/cli/modes/print.ts +1 -1
  331. package/src/cli/panes.ts +19 -5
  332. package/src/cli/reset.ts +1 -1
  333. package/src/cli/run.ts +13 -17
  334. package/src/cli/share.ts +6 -2
  335. package/src/cli/skills-eval.ts +14 -14
  336. package/src/cli/targets.ts +25 -30
  337. package/src/cli/trace-inspect.ts +1 -1
  338. package/src/cli/trace.ts +96 -4
  339. package/src/cli/uninstall.ts +2 -2
  340. package/src/cli/upgrade.ts +29 -34
  341. package/src/cli/usage.ts +2 -2
  342. package/src/cli/validate-model.ts +1 -1
  343. package/src/cli/verifiers-inspect.ts +1 -1
  344. package/src/cli/wiki-generate.ts +6 -6
  345. package/src/core/artifact-paths.ts +1 -1
  346. package/src/core/bash-exec.ts +132 -87
  347. package/src/core/boot-trace.ts +3 -3
  348. package/src/core/bus-events.ts +51 -6
  349. package/src/core/bus-trace.ts +2 -2
  350. package/src/core/compile-cache.ts +1 -1
  351. package/src/core/config.ts +1066 -886
  352. package/src/core/defaults.ts +326 -530
  353. package/src/core/dispatch-outcome.ts +16 -0
  354. package/src/core/domain-loader.ts +6 -4
  355. package/src/core/event-bus.ts +1 -1
  356. package/src/core/file-references.ts +78 -88
  357. package/src/core/git-commit-attribution.ts +3 -9
  358. package/src/core/guardrails.ts +33 -52
  359. package/src/core/naming-compat.ts +45 -0
  360. package/src/core/naming-events.ts +62 -0
  361. package/src/core/prompt-hint.ts +9 -0
  362. package/src/core/recent-models.ts +1 -7
  363. package/src/core/residency-protection.ts +4 -8
  364. package/src/core/resolve-config-value.ts +1 -1
  365. package/src/core/response-model-id.ts +0 -14
  366. package/src/core/session-routing.ts +84 -74
  367. package/src/core/skill-activation.ts +18 -0
  368. package/src/core/termination.ts +4 -4
  369. package/src/core/timers.ts +2 -12
  370. package/src/domains/agents/builtins/architect.md +2 -3
  371. package/src/domains/agents/builtins/coder.md +3 -2
  372. package/src/domains/agents/builtins/debugger.md +2 -2
  373. package/src/domains/agents/builtins/documenter.md +2 -2
  374. package/src/domains/agents/builtins/git-master.md +1 -1
  375. package/src/domains/agents/builtins/oracle.md +1 -1
  376. package/src/domains/agents/builtins/provenance.md +1 -1
  377. package/src/domains/agents/builtins/researcher.md +1 -1
  378. package/src/domains/agents/builtins/scout.md +1 -1
  379. package/src/domains/agents/builtins/tester.md +2 -2
  380. package/src/domains/agents/builtins/verifier.md +2 -2
  381. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  382. package/src/domains/agents/catalog.ts +14 -26
  383. package/src/domains/agents/contract.ts +2 -0
  384. package/src/domains/agents/extension.ts +26 -4
  385. package/src/domains/agents/registry.ts +7 -7
  386. package/src/domains/agents/result-contract.ts +1 -1
  387. package/src/domains/agents/spec.ts +0 -11
  388. package/src/domains/config/classify.ts +35 -47
  389. package/src/domains/config/extension.ts +5 -5
  390. package/src/domains/config/keybindings.ts +56 -47
  391. package/src/domains/config/watcher.ts +1 -1
  392. package/src/domains/context/codewiki/indexer.ts +1 -1
  393. package/src/domains/context/extension.ts +3 -6
  394. package/src/domains/context/prompt-context.ts +1 -1
  395. package/src/domains/context/wiki/assemble.ts +2 -2
  396. package/src/domains/context/working-set/path-index.ts +1 -0
  397. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  398. package/src/domains/context/working-set/replay/report.ts +1 -1
  399. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  400. package/src/domains/dispatch/active-route-planner.ts +2 -2
  401. package/src/domains/dispatch/agent-candidates.ts +1 -1
  402. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  403. package/src/domains/dispatch/agent-ledger.ts +1 -1
  404. package/src/domains/dispatch/assignment.ts +5 -5
  405. package/src/domains/dispatch/capability-match.ts +10 -0
  406. package/src/domains/dispatch/capacity-lease.ts +2 -5
  407. package/src/domains/dispatch/code-step.ts +1 -1
  408. package/src/domains/dispatch/contract.ts +2 -2
  409. package/src/domains/dispatch/extension.ts +169 -82
  410. package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
  411. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  412. package/src/domains/dispatch/fleet-run.ts +0 -7
  413. package/src/domains/dispatch/gate-decisions.ts +25 -14
  414. package/src/domains/dispatch/host-verification.ts +435 -39
  415. package/src/domains/dispatch/intent-requirements.ts +10 -0
  416. package/src/domains/dispatch/intent.ts +18 -1
  417. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  418. package/src/domains/dispatch/path-scope.ts +220 -70
  419. package/src/domains/dispatch/placement.ts +2 -2
  420. package/src/domains/dispatch/receipt-findings.ts +1 -1
  421. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  422. package/src/domains/dispatch/reservation-store.ts +0 -23
  423. package/src/domains/dispatch/route-decision.ts +1 -1
  424. package/src/domains/dispatch/route-history.ts +1 -1
  425. package/src/domains/dispatch/route-policy.ts +1 -1
  426. package/src/domains/dispatch/route-readiness.ts +0 -28
  427. package/src/domains/dispatch/run-event-journal.ts +9 -19
  428. package/src/domains/dispatch/state.ts +2 -3
  429. package/src/domains/dispatch/tool-stats.ts +1 -1
  430. package/src/domains/dispatch/transport.ts +47 -40
  431. package/src/domains/dispatch/types.ts +58 -6
  432. package/src/domains/dispatch/worker-protocol.ts +2 -2
  433. package/src/domains/eval/artifacts/store.ts +10 -4
  434. package/src/domains/eval/compare/thresholds.ts +0 -8
  435. package/src/domains/eval/execution-provenance.ts +1 -1
  436. package/src/domains/eval/metrics/token-stream.ts +0 -7
  437. package/src/domains/eval/report.ts +1 -1
  438. package/src/domains/eval/runner.ts +1 -1
  439. package/src/domains/eval/runners/clio-run.ts +7 -6
  440. package/src/domains/eval/runners/external-command.ts +4 -3
  441. package/src/domains/eval/schema/artifact.ts +1 -1
  442. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  443. package/src/domains/eval/schema/behavioral.ts +7 -6
  444. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  445. package/src/domains/eval/schema/naming.ts +10 -0
  446. package/src/domains/eval/schema/suite.ts +2 -2
  447. package/src/domains/eval/schema/validate.ts +9 -5
  448. package/src/domains/eval/schema/verdict.ts +4 -2
  449. package/src/domains/eval/store.ts +20 -3
  450. package/src/domains/eval/suites/run.ts +12 -6
  451. package/src/domains/eval/types.ts +1 -1
  452. package/src/domains/eval/workspaces/git.ts +1 -1
  453. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  454. package/src/domains/evidence/build.ts +13 -5
  455. package/src/domains/evidence/trust-status.ts +10 -1
  456. package/src/domains/extensions/contract.ts +15 -1
  457. package/src/domains/extensions/discovery.ts +238 -41
  458. package/src/domains/extensions/extension.ts +105 -6
  459. package/src/domains/extensions/index.ts +24 -0
  460. package/src/domains/extensions/integrity.ts +189 -0
  461. package/src/domains/extensions/manager.ts +17 -1
  462. package/src/domains/extensions/resource-path.ts +27 -0
  463. package/src/domains/extensions/resources.ts +18 -38
  464. package/src/domains/extensions/snapshot-store.ts +39 -0
  465. package/src/domains/extensions/snapshot.ts +180 -0
  466. package/src/domains/extensions/state.ts +385 -57
  467. package/src/domains/extensions/types.ts +118 -1
  468. package/src/domains/interop/consent.ts +7 -7
  469. package/src/domains/interop/extension.ts +1 -1
  470. package/src/domains/lifecycle/doctor.ts +27 -21
  471. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  472. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  473. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  474. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  475. package/src/domains/lifecycle/migrations/index.ts +22 -1
  476. package/src/domains/lifecycle/naming-history.ts +153 -0
  477. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  478. package/src/domains/lifecycle/naming-resources.ts +276 -0
  479. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  480. package/src/domains/lifecycle/naming-yazi.ts +86 -0
  481. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  482. package/src/domains/memory/task-memory-handoff.ts +6 -3
  483. package/src/domains/middleware/contract.ts +26 -0
  484. package/src/domains/middleware/extension.ts +24 -24
  485. package/src/domains/middleware/hook-receipts.ts +27 -4
  486. package/src/domains/middleware/hooks-io.ts +65 -32
  487. package/src/domains/middleware/hooks.ts +64 -0
  488. package/src/domains/middleware/index.ts +35 -4
  489. package/src/domains/middleware/marketplace-offer.ts +339 -0
  490. package/src/domains/middleware/registrations.ts +326 -0
  491. package/src/domains/middleware/runtime.ts +30 -2
  492. package/src/domains/middleware/snapshot.ts +20 -7
  493. package/src/domains/mux/contract.ts +195 -25
  494. package/src/domains/mux/detect.ts +23 -6
  495. package/src/domains/mux/dock-controller.ts +365 -0
  496. package/src/domains/mux/extension.ts +7 -1
  497. package/src/domains/mux/index.ts +21 -1
  498. package/src/domains/mux/operations.ts +72 -5
  499. package/src/domains/mux/protocol.ts +19 -6
  500. package/src/domains/mux/socket-client.ts +167 -19
  501. package/src/domains/mux/types.ts +49 -6
  502. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  503. package/src/domains/mux/yazi/event-stream.ts +6 -4
  504. package/src/domains/mux/yazi/profile.ts +1 -1
  505. package/src/domains/mux/yazi/session.ts +79 -7
  506. package/src/domains/mux/yazi/theme.ts +117 -17
  507. package/src/domains/observability/contract.ts +10 -11
  508. package/src/domains/observability/extension.ts +12 -4
  509. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  510. package/src/domains/observability/projection.ts +15 -91
  511. package/src/domains/observability/trace-store.ts +65 -19
  512. package/src/domains/prompts/compiler.ts +75 -55
  513. package/src/domains/prompts/contract.ts +15 -3
  514. package/src/domains/prompts/extension.ts +100 -12
  515. package/src/domains/prompts/fragments/identity/clio-worker.md +2 -4
  516. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  517. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  518. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  519. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  520. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  521. package/src/domains/prompts/fragments/operating/skills.md +11 -18
  522. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  523. package/src/domains/providers/extension.ts +5 -5
  524. package/src/domains/providers/index.ts +1 -1
  525. package/src/domains/providers/knowledge-base-path.ts +1 -1
  526. package/src/domains/providers/model-runtime-capabilities.ts +99 -23
  527. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  528. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +671 -106
  529. package/src/domains/providers/plugins.ts +1 -1
  530. package/src/domains/providers/resolver.ts +1 -1
  531. package/src/domains/providers/runtime-resolution.ts +31 -0
  532. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  533. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  534. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  535. package/src/domains/providers/runtimes/common/probe-helpers.ts +9 -4
  536. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  537. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  538. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  539. package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
  540. package/src/domains/providers/types/cost-provenance.ts +19 -0
  541. package/src/domains/providers/types/knowledge-base.ts +13 -0
  542. package/src/domains/providers/types/local-model-quirks.ts +87 -39
  543. package/src/domains/providers/types/target-descriptor.ts +3 -3
  544. package/src/domains/resources/extension.ts +1 -1
  545. package/src/domains/resources/library.ts +6 -6
  546. package/src/domains/resources/prompts/loader.ts +1 -1
  547. package/src/domains/resources/skills/content-hash.ts +7 -6
  548. package/src/domains/resources/skills/evals.ts +1 -1
  549. package/src/domains/resources/skills/install.ts +36 -12
  550. package/src/domains/resources/skills/loader.ts +41 -18
  551. package/src/domains/resources/skills/marketplace.ts +21 -2
  552. package/src/domains/resources/skills/promotion.ts +214 -0
  553. package/src/domains/safety/audit.ts +2 -2
  554. package/src/domains/safety/call-target.ts +1 -1
  555. package/src/domains/safety/finish-contract.ts +2 -1
  556. package/src/domains/safety/loop-detector.ts +7 -4
  557. package/src/domains/safety/run-effects.ts +1 -1
  558. package/src/domains/scheduling/extension.ts +4 -4
  559. package/src/domains/session/archive-readers.ts +9 -1
  560. package/src/domains/session/compaction/branch-summary.ts +4 -0
  561. package/src/domains/session/compaction/compact.ts +1 -1
  562. package/src/domains/session/compaction/tokens.ts +4 -0
  563. package/src/domains/session/context-accounting.ts +1 -1
  564. package/src/domains/session/decision-board.ts +1 -1
  565. package/src/domains/session/extension.ts +1 -1
  566. package/src/domains/session/handoff.ts +2 -2
  567. package/src/domains/session/prompt-manifest.ts +0 -5
  568. package/src/domains/session/protected-artifact-journal.ts +12 -6
  569. package/src/domains/session/retry.ts +1 -1
  570. package/src/domains/session/task-board.ts +10 -9
  571. package/src/domains/share/archive.ts +249 -43
  572. package/src/domains/toolchain/install.ts +1 -1
  573. package/src/engine/acp/adapter.ts +3 -3
  574. package/src/engine/acp/event-mapper.ts +3 -3
  575. package/src/engine/acp/server.ts +89 -35
  576. package/src/engine/acp/tool-mediator.ts +2 -2
  577. package/src/engine/acp/types.ts +1 -1
  578. package/src/engine/alcf-oauth.ts +5 -5
  579. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  580. package/src/engine/api-registry.ts +1 -1
  581. package/src/engine/apis/llamacpp-residency.ts +4 -23
  582. package/src/engine/apis/lmstudio.ts +4 -9
  583. package/src/engine/apis/ollama-native.ts +9 -9
  584. package/src/engine/apis/openai-completions.ts +30 -27
  585. package/src/engine/apis/output-budget.ts +8 -18
  586. package/src/engine/apis/residency.ts +10 -35
  587. package/src/engine/claude/sdk-module.ts +1 -12
  588. package/src/engine/claude/sdk-runtime.ts +6 -6
  589. package/src/engine/claude/subprocess-runtime.ts +1 -1
  590. package/src/engine/claude/tool-safety.ts +4 -4
  591. package/src/engine/gemma-channel-filter.ts +19 -0
  592. package/src/engine/loop-guard.ts +92 -17
  593. package/src/engine/session.ts +14 -7
  594. package/src/engine/tui-primitives.ts +1 -1
  595. package/src/engine/worker-events.ts +6 -6
  596. package/src/engine/worker-runtime.ts +54 -24
  597. package/src/engine/worker-tools.ts +3 -1
  598. package/src/entry/extension-hook-sources.ts +28 -0
  599. package/src/entry/extension-reload.ts +309 -0
  600. package/src/entry/orchestrator.ts +163 -120
  601. package/src/interactive/application-controller.ts +23 -22
  602. package/src/interactive/bus-notices.ts +10 -3
  603. package/src/interactive/chat-loop-messages.ts +3 -13
  604. package/src/interactive/chat-loop.ts +18 -9
  605. package/src/interactive/chat-panel.ts +37 -14
  606. package/src/interactive/chat-renderer.ts +71 -7
  607. package/src/interactive/clio-editor.ts +105 -1
  608. package/src/interactive/context-activity.ts +8 -6
  609. package/src/interactive/context-meter.ts +3 -6
  610. package/src/interactive/context-overlay.ts +1 -1
  611. package/src/interactive/cost-overlay.ts +1 -1
  612. package/src/interactive/council-grid.ts +2 -2
  613. package/src/interactive/dispatch-board.ts +36 -44
  614. package/src/interactive/editor-bash.ts +21 -0
  615. package/src/interactive/editor-steer.ts +9 -4
  616. package/src/interactive/editor-submit.ts +24 -18
  617. package/src/interactive/external-editor.ts +1 -1
  618. package/src/interactive/file-reference-completion.ts +360 -0
  619. package/src/interactive/footer/dashboard.ts +15 -17
  620. package/src/interactive/footer/notifications.ts +14 -8
  621. package/src/interactive/footer/widgets.ts +15 -44
  622. package/src/interactive/interactive-application.ts +116 -61
  623. package/src/interactive/interactive-event-projection.ts +1 -1
  624. package/src/interactive/interactive-input-runtime.ts +6 -2
  625. package/src/interactive/interactive-presentation.ts +22 -17
  626. package/src/interactive/interactive-shell.ts +2 -2
  627. package/src/interactive/interactive-slash-runtime.ts +65 -17
  628. package/src/interactive/interactive-subscriptions.ts +1 -1
  629. package/src/interactive/interactive-tickers.ts +1 -1
  630. package/src/interactive/keybinding-manager.ts +4 -4
  631. package/src/interactive/layout.ts +1 -1
  632. package/src/interactive/memory-overlay.ts +2 -2
  633. package/src/interactive/modal-marker.ts +2 -21
  634. package/src/interactive/mutation-preview.ts +1 -1
  635. package/src/interactive/overlay-frame.ts +4 -12
  636. package/src/interactive/overlay-general-openers.ts +6 -2
  637. package/src/interactive/overlay-key-routing.ts +7 -7
  638. package/src/interactive/overlay-lifecycle.ts +1 -1
  639. package/src/interactive/overlay-model-selectors.ts +3 -3
  640. package/src/interactive/overlays/agents.ts +2 -2
  641. package/src/interactive/overlays/ask-user.ts +25 -11
  642. package/src/interactive/overlays/context-reset.ts +28 -4
  643. package/src/interactive/overlays/cwd-fallback.ts +28 -4
  644. package/src/interactive/overlays/decisions.ts +4 -2
  645. package/src/interactive/overlays/extensions.ts +9 -1
  646. package/src/interactive/overlays/fleet-run-approval.ts +3 -3
  647. package/src/interactive/overlays/handoff-review.ts +2 -2
  648. package/src/interactive/overlays/help-reference.ts +13 -0
  649. package/src/interactive/overlays/interop.ts +1 -1
  650. package/src/interactive/overlays/library-install-confirm.ts +1 -1
  651. package/src/interactive/overlays/message-picker.ts +1 -1
  652. package/src/interactive/overlays/model-selector.ts +39 -31
  653. package/src/interactive/overlays/prompts.ts +10 -4
  654. package/src/interactive/overlays/session-selector.ts +2 -2
  655. package/src/interactive/overlays/settings.ts +360 -303
  656. package/src/interactive/overlays/side-question.ts +2 -2
  657. package/src/interactive/overlays/skills-hub.ts +8 -8
  658. package/src/interactive/overlays/tree-selector.ts +2 -2
  659. package/src/interactive/panes-runtime.ts +145 -43
  660. package/src/interactive/permission-overlay.ts +2 -2
  661. package/src/interactive/prompt-cache-identity.ts +88 -0
  662. package/src/interactive/renderers/retry-status.ts +12 -4
  663. package/src/interactive/renderers/tool-execution.ts +4 -4
  664. package/src/interactive/session-transcript.ts +3 -3
  665. package/src/interactive/slash-autocomplete.ts +454 -165
  666. package/src/interactive/slash-commands.ts +401 -190
  667. package/src/interactive/slash-spec.ts +160 -17
  668. package/src/interactive/status/controller.ts +2 -2
  669. package/src/interactive/stream-pacing-policy.ts +1 -24
  670. package/src/interactive/tasks-overlay.ts +20 -13
  671. package/src/interactive/terminal-lease.ts +6 -7
  672. package/src/interactive/turn-context.ts +41 -26
  673. package/src/interactive/turn-persistence.ts +2 -2
  674. package/src/interactive/turn-prewarm.ts +2 -2
  675. package/src/interactive/turn-runtime.ts +8 -8
  676. package/src/interactive/turn-state.ts +1 -1
  677. package/src/interactive/view/artifacts.ts +12 -9
  678. package/src/interactive/view/view-overlay.ts +13 -10
  679. package/src/interactive/watch-pane.ts +38 -10
  680. package/src/interactive/welcome-dashboard.ts +15 -15
  681. package/src/interactive/worker-progress.ts +4 -4
  682. package/src/interactive/worker-receipts.ts +1 -1
  683. package/src/interactive/worker-stream.ts +1 -4
  684. package/src/interactive/yazi-bridge.ts +72 -11
  685. package/src/tools/agent-tools.ts +30 -1
  686. package/src/tools/artifact.ts +2 -2
  687. package/src/tools/ask-user.ts +6 -6
  688. package/src/tools/bash.ts +2 -2
  689. package/src/tools/bootstrap.ts +4 -0
  690. package/src/tools/builtin-tool-catalog.ts +52 -22
  691. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  692. package/src/tools/codewiki/code-nav.ts +99 -13
  693. package/src/tools/compete-worktrees.ts +27 -17
  694. package/src/tools/context/docs-engine.ts +20 -7
  695. package/src/tools/context/index.ts +44 -13
  696. package/src/tools/core-bootstrap.ts +28 -6
  697. package/src/tools/credential-present.ts +1 -2
  698. package/src/tools/dispatch-admission.ts +4 -2
  699. package/src/tools/dispatch-arguments.ts +6 -2
  700. package/src/tools/dispatch-plan.ts +48 -15
  701. package/src/tools/dispatch-run-events.ts +13 -11
  702. package/src/tools/dispatch-runner.ts +11 -6
  703. package/src/tools/dispatch-schema.ts +338 -0
  704. package/src/tools/dispatch-types.ts +3 -0
  705. package/src/tools/dispatch.ts +9 -254
  706. package/src/tools/find.ts +1 -6
  707. package/src/tools/ledger.ts +3 -5
  708. package/src/tools/monitor-surface.ts +5 -13
  709. package/src/tools/monitor.ts +4 -4
  710. package/src/tools/observation.ts +4 -5
  711. package/src/tools/observers.ts +0 -33
  712. package/src/tools/panes-surface.ts +4 -11
  713. package/src/tools/panes.ts +4 -2
  714. package/src/tools/policy.ts +15 -2
  715. package/src/tools/read.ts +5 -6
  716. package/src/tools/registry.ts +30 -7
  717. package/src/tools/result-shaping.ts +18 -14
  718. package/src/tools/steer-surface.ts +1 -1
  719. package/src/tools/task-worktree.ts +28 -7
  720. package/src/tools/tasks.ts +1 -1
  721. package/src/tools/truncate.ts +6 -5
  722. package/src/tools/verify/authoring.ts +3 -6
  723. package/src/tools/verify/frontend.ts +1 -1
  724. package/src/tools/verify/surface.ts +6 -12
  725. package/src/tools/web-fetch-surface.ts +1 -3
  726. package/src/tools/web-fetch.ts +1 -1
  727. package/src/worker/entry.ts +4 -3
  728. package/src/worker/protocol.ts +16 -14
  729. package/src/worker/spec-contract.ts +2 -2
  730. package/src/worker/stdin-demux.ts +2 -2
  731. package/dist/chunk-36EJLSQQ.js +0 -814
  732. package/dist/chunk-GXNLGKAB.js +0 -571
  733. package/dist/chunk-K7VKOLQQ.js +0 -15
  734. package/dist/chunk-PMZCIOCJ.js +0 -25
  735. package/dist/chunk-SUCTJL45.js +0 -45
  736. package/dist/chunk-SUW5DORT.js +0 -819
  737. package/dist/chunk-TZ3SGWZZ.js +0 -48
  738. package/dist/chunk-UOV2BYIW.js +0 -107
  739. package/dist/chunk-VFA6GDY5.js +0 -1625
  740. package/dist/doctor-QOA5FNY5.js +0 -313
  741. package/dist/fleet-view-ZCON35AG.js +0 -102
  742. package/dist/panes-HMABYVO4.js +0 -58
  743. package/docs/artifact-versions.md +0 -67
  744. package/docs/documentation-coverage.md +0 -46
  745. package/docs/documentation-guide.md +0 -167
  746. package/docs/release-cut-checklist.md +0 -193
  747. package/docs/time-conventions.md +0 -101
  748. package/skills/meta/clio-test/SKILL.md +0 -133
  749. package/skills/meta/clio-test/references/harness.md +0 -126
  750. package/skills/meta/clio-test/references/test-map.md +0 -69
  751. package/src/engine/apis/degraded-inference.ts +0 -95
@@ -1,3 +1,4 @@
1
+ import { BusChannels } from "../../core/bus-events.js";
1
2
  import type { DomainBundle, DomainContext, DomainExtension } from "../../core/domain-loader.js";
2
3
  import { assertAgentIdNamespace } from "../config/agent-namespace.js";
3
4
  import type { ConfigContract } from "../config/contract.js";
@@ -10,25 +11,46 @@ export function createAgentsBundle(_context: DomainContext): DomainBundle<Agents
10
11
  let recipes: ReadonlyArray<AgentRecipe> = [];
11
12
  let specs: ReadonlyArray<AgentSpec> = [];
12
13
  let diagnostics: ReadonlyArray<AgentRecipeDiagnostic> = [];
14
+ let revision = 0;
13
15
 
14
16
  function discover(): void {
15
17
  const nextDiagnostics: AgentRecipeDiagnostic[] = [];
16
18
  const merged = discoverAgentRecipes(process.cwd(), nextDiagnostics);
17
19
  const config = _context.getContract<ConfigContract>("config");
18
- assertAgentIdNamespace(merged, config?.get()?.delegation?.agents ?? []);
20
+ assertAgentIdNamespace(merged, config?.get()?.integrations.externalAgents?.entries ?? []);
19
21
  recipes = merged;
20
22
  specs = recipes.map(normalizeAgentSpec);
21
23
  diagnostics = nextDiagnostics;
24
+ revision += 1;
22
25
  }
23
26
 
27
+ let unsubscribeExtensionsReload: (() => void) | null = null;
24
28
  const extension: DomainExtension = {
25
29
  async start() {
26
30
  discover();
31
+ // Recipes are cached at start; extension agent roots come from the
32
+ // committed extension generation, so a changed generation rediscovers.
33
+ unsubscribeExtensionsReload = _context.bus.on(BusChannels.ExtensionsReloaded, (payload: unknown) => {
34
+ if ((payload as { changed?: unknown } | undefined)?.changed !== true) return;
35
+ try {
36
+ discover();
37
+ } catch (error) {
38
+ process.stderr.write(
39
+ `[clio-coder:agents] rediscovery after extension reload failed: ${error instanceof Error ? error.message : String(error)}\n`,
40
+ );
41
+ }
42
+ });
43
+ },
44
+ async stop() {
45
+ unsubscribeExtensionsReload?.();
46
+ unsubscribeExtensionsReload = null;
27
47
  },
28
- async stop() {},
29
48
  };
30
49
 
31
50
  const contract: AgentsContract = {
51
+ revision() {
52
+ return revision;
53
+ },
32
54
  list() {
33
55
  return recipes;
34
56
  },
@@ -40,7 +62,7 @@ export function createAgentsBundle(_context: DomainContext): DomainBundle<Agents
40
62
  },
41
63
  listSpecs() {
42
64
  const config = _context.getContract<ConfigContract>("config");
43
- const delegationAgents = config?.get()?.delegation?.agents ?? [];
65
+ const delegationAgents = config?.get()?.integrations.externalAgents?.entries ?? [];
44
66
  const delegationSpecs = delegationAgents.map((agent) => ({
45
67
  version: 1 as const,
46
68
  id: agent.id,
@@ -67,7 +89,7 @@ export function createAgentsBundle(_context: DomainContext): DomainBundle<Agents
67
89
  const found = specs.find((r) => r.id === id);
68
90
  if (found) return found;
69
91
  const config = _context.getContract<ConfigContract>("config");
70
- const agent = config?.get()?.delegation?.agents?.find((entry) => entry.id === id);
92
+ const agent = config?.get()?.integrations.externalAgents?.entries?.find((entry) => entry.id === id);
71
93
  if (agent) {
72
94
  return {
73
95
  version: 1 as const,
@@ -94,7 +94,7 @@ export function loadRecipesFromDir(
94
94
  if (source.source === "builtin") throw error;
95
95
  const message = error instanceof Error ? error.message : String(error);
96
96
  diagnostics.push({ source: source.source, filepath, message });
97
- process.stderr.write(`[clio:agents] quarantine path=${filepath} source=${source.source} reason=${message}\n`);
97
+ process.stderr.write(`[clio-coder:agents] quarantine path=${filepath} source=${source.source} reason=${message}\n`);
98
98
  }
99
99
  }
100
100
 
@@ -102,7 +102,7 @@ export function loadRecipesFromDir(
102
102
  return recipes;
103
103
  }
104
104
 
105
- export function mergeRecipes(...sources: ReadonlyArray<ReadonlyArray<AgentRecipe>>): ReadonlyArray<AgentRecipe> {
105
+ function mergeRecipes(...sources: ReadonlyArray<ReadonlyArray<AgentRecipe>>): ReadonlyArray<AgentRecipe> {
106
106
  const byId = new Map<string, AgentRecipe>();
107
107
  const builtinById = new Map<string, AgentRecipe>();
108
108
  for (const group of sources) {
@@ -113,23 +113,23 @@ export function mergeRecipes(...sources: ReadonlyArray<ReadonlyArray<AgentRecipe
113
113
  for (const group of sources) {
114
114
  for (const recipe of group) {
115
115
  if (recipe.source !== "builtin" && RESERVED_CUSTOM_AGENT_IDS.has(recipe.id)) {
116
- process.stderr.write(`[clio:agents] ignore id=${recipe.id} by=${recipe.source} reason=reserved-agent-id\n`);
116
+ process.stderr.write(`[clio-coder:agents] ignore id=${recipe.id} by=${recipe.source} reason=reserved-agent-id\n`);
117
117
  continue;
118
118
  }
119
119
  const builtin = builtinById.get(recipe.id);
120
120
  if (recipe.source === "extension" && builtin) {
121
- process.stderr.write(`[clio:agents] ignore override id=${recipe.id} by=extension reason=reserved-builtin\n`);
121
+ process.stderr.write(`[clio-coder:agents] ignore override id=${recipe.id} by=extension reason=reserved-builtin\n`);
122
122
  continue;
123
123
  }
124
124
  if (recipe.source === "user" && builtin && isShadowAgent(normalizeAgentSpec(builtin))) {
125
- process.stderr.write(`[clio:agents] ignore override id=${recipe.id} by=user reason=reserved-shadow\n`);
125
+ process.stderr.write(`[clio-coder:agents] ignore override id=${recipe.id} by=user reason=reserved-shadow\n`);
126
126
  continue;
127
127
  }
128
128
  if (recipe.source === "project" && builtin) {
129
- process.stderr.write(`[clio:agents] ignore override id=${recipe.id} by=project reason=reserved-builtin\n`);
129
+ process.stderr.write(`[clio-coder:agents] ignore override id=${recipe.id} by=project reason=reserved-builtin\n`);
130
130
  continue;
131
131
  }
132
- if (byId.has(recipe.id)) process.stderr.write(`[clio:agents] override id=${recipe.id} by=${recipe.source}\n`);
132
+ if (byId.has(recipe.id)) process.stderr.write(`[clio-coder:agents] override id=${recipe.id} by=${recipe.source}\n`);
133
133
  byId.set(recipe.id, recipe);
134
134
  }
135
135
  }
@@ -1601,7 +1601,7 @@ export interface ResultContractRepairInput {
1601
1601
  * One repair directive. It states the validator's reason and exact shape. Tool
1602
1602
  * use remains closed unless dispatch preauthorized a larger revision phase.
1603
1603
  */
1604
- export function resultContractRepairMessage(input: ResultContractRepairInput): string {
1604
+ function resultContractRepairMessage(input: ResultContractRepairInput): string {
1605
1605
  const last = input.attempt >= RESULT_CONTRACT_REPAIR_LIMIT;
1606
1606
  const lines = [
1607
1607
  last
@@ -137,17 +137,6 @@ export function isAgentProduct(value: unknown): value is AgentProduct {
137
137
  return includes(AGENT_PRODUCTS, value);
138
138
  }
139
139
 
140
- /**
141
- * Default tier per capability class. Reproduces the historical dispatch
142
- * allowlist byte-for-byte: workers that act on the workspace get the bounded
143
- * projection; read-only, orchestration, and internal classes get none.
144
- */
145
- export function defaultProjectContextTier(capability: AgentCapabilityClass): AgentProjectContextTier {
146
- return capability === "workspace-edit" || capability === "verification" || capability === "artifact-write"
147
- ? "bounded"
148
- : "none";
149
- }
150
-
151
140
  function actionClassesForTools(tools: ReadonlyArray<ToolName>): ReadonlySet<ActionClass> {
152
141
  const actions = new Set<ActionClass>();
153
142
  for (const tool of tools) actions.add(classify({ tool }).actionClass);
@@ -1,13 +1,10 @@
1
1
  import type { ClioSettings } from "../../core/config.js";
2
2
 
3
3
  /**
4
- * Classifies a settings change into one of three buckets per spec §13:
5
- * - hotReload : theme, keybindings, safety rules, prompt fragments,
6
- * audit verbosity. Apply immediately (≤100ms).
7
- * - nextTurn : model selection, thinking level, budget ceiling. Apply before the
8
- * next turn starts.
9
- * - restartRequired : provider credentials, active provider list, runtime enable/disable,
10
- * engine settings. Needs a restart nudge.
4
+ * Classifies a version-2 settings change into one of three effect buckets:
5
+ * - hotReload: a live reader observes the value without rebuilding runtime state.
6
+ * - nextTurn: the next request, dispatch, or explicit open observes the value.
7
+ * - restartRequired: process or pane-host setup must be rebuilt.
11
8
  *
12
9
  * Output is an exhaustive per-bucket list. A single patch can touch multiple buckets;
13
10
  * the caller emits the event(s) for every non-empty bucket.
@@ -22,59 +19,50 @@ export interface ConfigDiff {
22
19
  }
23
20
 
24
21
  const HOT_RELOAD_FIELDS = new Set<string>([
25
- "theme",
26
- "keybindings",
27
- "autonomy",
28
- "modelSelector",
29
- "terminal.smoothStreaming",
30
- "attribution.gitCommits",
22
+ "interface.keybindings",
23
+ "safety.autonomy",
24
+ "chat.modelPicker",
25
+ "interface.smoothStreaming",
26
+ "interface.panes.notifications",
27
+ "integrations.git.commitAttribution",
31
28
  // The bridge reads these on every explicit open; no mux re-detection is
32
29
  // needed because the host capability rung remains `panes.enabled`.
33
- "panes.yazi",
30
+ "interface.panes.files",
34
31
  // The watchdog registration reads its settings live on every trigger, so
35
32
  // enabling it, retargeting it, or changing its cadence takes effect on the
36
33
  // next turn boundary without a restart or a session-routing patch.
37
- "watchdog",
34
+ "safety.review",
38
35
  ]);
39
36
 
40
37
  const NEXT_TURN_FIELDS = new Set<string>([
41
- "identity",
42
38
  "targets",
43
- "orchestrator.target",
44
- "orchestrator.model",
45
- "orchestrator.thinkingLevel",
46
- "background.target",
47
- "background.model",
48
- "background.thinkingLevel",
49
- "memory",
50
- "workers.default.target",
51
- "workers.default.model",
52
- "workers.default.thinkingLevel",
53
- "workers.profiles",
54
- "workers.agentBindings",
55
- "workers.maxRetries",
56
- "workers.onPermission",
57
- "fleet",
58
- "routing",
59
- "scope",
60
- "budget.sessionCeilingUsd",
61
- "defaults",
62
- "terminal",
63
- "skills",
64
- "delegation",
65
- "compaction",
39
+ "chat",
40
+ "fleet.default",
41
+ "fleet.profiles",
42
+ "fleet.rosters",
43
+ "fleet.agentProfiles",
44
+ "fleet.adaptiveRouting",
45
+ "fleet.nodes",
46
+ "fleet.permissions",
47
+ "fleet.retry",
48
+ "fleet.limits",
49
+ "fleet.history",
66
50
  "context",
67
- // The pre-warm reads its setting when a trigger fires, and every trigger sits
68
- // on a turn boundary, so a change takes effect before the next turn runs.
69
- "prewarm",
70
- "retry",
51
+ "safety.limits",
52
+ "interface.outputDetail",
53
+ "interface.terminalProgress",
54
+ "interface.desktopNotifications",
55
+ "integrations.projectResources",
56
+ "integrations.externalAgents",
57
+ "integrations.library",
71
58
  ]);
72
59
 
73
60
  const RESTART_REQUIRED_FIELDS = new Set<string>([
74
- "budget.concurrency",
75
- "runtimePlugins",
76
- "terminal.tuiMode",
77
- "terminal.fullscreenScrollbar",
61
+ "fleet.concurrency",
62
+ "interface.mode",
63
+ "interface.fullscreenScrollbar",
64
+ "interface.panes.enabled",
65
+ "integrations.runtimePlugins",
78
66
  ]);
79
67
 
80
68
  function matchesPrefix(path: string, fields: Set<string>): boolean {
@@ -29,7 +29,7 @@ export function createConfigBundle(
29
29
 
30
30
  function assertAgentNamespace(settings: Readonly<ClioSettings>): void {
31
31
  const agents = context.getContract<NativeAgentNamespace>("agents");
32
- if (agents) assertAgentIdNamespace(agents.list(), settings.delegation.agents);
32
+ if (agents) assertAgentIdNamespace(agents.list(), settings.integrations.externalAgents.entries);
33
33
  }
34
34
 
35
35
  function dispatch(kind: ChangeKind, payload: ConfigChangePayload): void {
@@ -45,7 +45,7 @@ export function createConfigBundle(
45
45
  try {
46
46
  listener(payload);
47
47
  } catch (err) {
48
- console.error(`[clio:config] listener for ${kind} threw:`, err);
48
+ console.error(`[clio-coder:config] listener for ${kind} threw:`, err);
49
49
  }
50
50
  }
51
51
  }
@@ -84,7 +84,7 @@ export function createConfigBundle(
84
84
  }
85
85
  publishReloadFailure(null);
86
86
  snapshot = next;
87
- setGitCommitAttributionEnabled(next.attribution.gitCommits);
87
+ setGitCommitAttributionEnabled(next.integrations.git.commitAttribution);
88
88
  if (!prev) return;
89
89
  const diff = diffSettings(prev, next);
90
90
  if (diff.hotReload.length > 0) dispatch("hotReload", { diff, settings: next });
@@ -96,7 +96,7 @@ export function createConfigBundle(
96
96
  async start() {
97
97
  if (initialSettings) snapshot = structuredClone(initialSettings);
98
98
  else snapshot = readStrictLayeredSettings(process.cwd()).settings;
99
- setGitCommitAttributionEnabled(snapshot.attribution.gitCommits);
99
+ setGitCommitAttributionEnabled(snapshot.integrations.git.commitAttribution);
100
100
  watcher = startConfigWatcher(() => onWatcherFire());
101
101
  },
102
102
  async stop() {
@@ -124,7 +124,7 @@ export function createConfigBundle(
124
124
  // a route may name a target supplied only by this workspace.
125
125
  const normalized = updateLayeredSettings(process.cwd(), mutate);
126
126
  snapshot = normalized;
127
- setGitCommitAttributionEnabled(normalized.attribution.gitCommits);
127
+ setGitCommitAttributionEnabled(normalized.integrations.git.commitAttribution);
128
128
  const diff = diffSettings(previous, normalized);
129
129
  if (diff.hotReload.length > 0) dispatch("hotReload", { diff, settings: normalized });
130
130
  if (diff.nextTurn.length > 0) dispatch("nextTurn", { diff, settings: normalized });
@@ -4,8 +4,9 @@
4
4
  * can resolve both against user overrides stored in `settings.yaml`.
5
5
  *
6
6
  * The `Keybindings` interface in pi-tui is extensible via declaration merging.
7
- * Adding `clio.*` ids here makes them typed everywhere the manager is used:
8
- * pass a wrong id to `matches("clio.typo", ...)` and the compiler complains.
7
+ * Adding `clio-coder.*` ids here makes them typed everywhere the manager is
8
+ * used: pass a wrong id to `matches("clio-coder.typo", ...)` and the compiler
9
+ * complains.
9
10
  */
10
11
 
11
12
  import type { KeybindingDefinitions } from "../../engine/tui.js";
@@ -18,28 +19,29 @@ import { TUI_KEYBINDINGS } from "../../engine/tui.js";
18
19
  * live in `resolveCtrlCAction` and are not a simple keybinding.
19
20
  */
20
21
  export interface ClioAppKeybindings {
21
- "clio.thinking.cycle": true;
22
- "clio.exit": true;
23
- "clio.status.toggle": true;
24
- "clio.session.tree": true;
25
- "clio.dispatchBoard.toggle": true;
26
- "clio.tasks.open": true;
27
- "clio.decisions.open": true;
28
- "clio.dispatch.background": true;
29
- "clio.model.select": true;
30
- "clio.model.cycleForward": true;
31
- "clio.model.cycleBackward": true;
32
- "clio.tool.expand": true;
33
- "clio.tool.expandAll": true;
34
- "clio.tool.liveOutput": true;
35
- "clio.thinking.expand": true;
36
- "clio.thinking.expandAll": true;
37
- "clio.editor.external": true;
38
- "clio.message.followUp": true;
39
- "clio.message.interrupt": true;
40
- "clio.message.dequeue": true;
41
- "clio.notifications.dismiss": true;
42
- "clio.leader": true;
22
+ "clio-coder.thinking.cycle": true;
23
+ "clio-coder.exit": true;
24
+ "clio-coder.status.toggle": true;
25
+ "clio-coder.session.tree": true;
26
+ "clio-coder.dispatchBoard.toggle": true;
27
+ "clio-coder.files.toggle": true;
28
+ "clio-coder.tasks.open": true;
29
+ "clio-coder.decisions.open": true;
30
+ "clio-coder.dispatch.background": true;
31
+ "clio-coder.model.select": true;
32
+ "clio-coder.model.cycleForward": true;
33
+ "clio-coder.model.cycleBackward": true;
34
+ "clio-coder.tool.expand": true;
35
+ "clio-coder.tool.expandAll": true;
36
+ "clio-coder.tool.liveOutput": true;
37
+ "clio-coder.thinking.expand": true;
38
+ "clio-coder.thinking.expandAll": true;
39
+ "clio-coder.editor.external": true;
40
+ "clio-coder.message.followUp": true;
41
+ "clio-coder.message.interrupt": true;
42
+ "clio-coder.message.dequeue": true;
43
+ "clio-coder.notifications.dismiss": true;
44
+ "clio-coder.leader": true;
43
45
  }
44
46
 
45
47
  export type ClioKeybinding = keyof ClioAppKeybindings;
@@ -47,7 +49,7 @@ export type ClioKeybinding = keyof ClioAppKeybindings;
47
49
  /**
48
50
  * Declaration merge: pi-tui's `Keybindings` interface is open so downstream
49
51
  * packages register their action ids. After this block, `KeybindingsManager`
50
- * returned from `createKeybindingManager` accepts `clio.*` ids with full
52
+ * returned from `createKeybindingManager` accepts `clio-coder.*` ids with full
51
53
  * TypeScript checking.
52
54
  */
53
55
  declare module "@earendil-works/pi-tui" {
@@ -69,37 +71,44 @@ declare module "@earendil-works/pi-tui" {
69
71
  * net for user rebinds.
70
72
  */
71
73
  export const CLIO_APP_KEYBINDINGS = {
72
- "clio.thinking.cycle": {
74
+ "clio-coder.thinking.cycle": {
73
75
  defaultKeys: "shift+tab",
74
76
  description: "Cycle orchestrator thinking level",
75
77
  },
76
- "clio.exit": {
78
+ "clio-coder.exit": {
77
79
  defaultKeys: "ctrl+d",
78
80
  description: "Exit when the editor is empty",
79
81
  },
80
- "clio.status.toggle": {
82
+ "clio-coder.status.toggle": {
81
83
  defaultKeys: "alt+u",
82
84
  description: "Toggle the footer dashboard (compact / expanded)",
83
85
  },
84
- "clio.session.tree": {
86
+ "clio-coder.session.tree": {
85
87
  defaultKeys: "alt+t",
86
88
  description: "Open the /tree navigator",
87
89
  },
88
- "clio.dispatchBoard.toggle": {
90
+ "clio-coder.dispatchBoard.toggle": {
89
91
  defaultKeys: "alt+w",
90
92
  description: "Toggle the dispatch (workers) board overlay",
91
93
  },
92
- "clio.tasks.open": {
94
+ "clio-coder.files.toggle": {
95
+ // Alt+F is a pi-tui editor reserve (word-forward), so the files pane
96
+ // takes the next letter that reads as "explorer" and stays inside the
97
+ // Alt+<letter> scheme, which also earns it the Ctrl+G leader fallback.
98
+ defaultKeys: "alt+e",
99
+ description: "Toggle the files pane beside the session (a --with-panes session inside herdr)",
100
+ },
101
+ "clio-coder.tasks.open": {
93
102
  // Approved application-boundary override of pi-tui editor word-back.
94
103
  defaultKeys: "alt+b",
95
104
  description: "Open the composite session and operator task board",
96
105
  },
97
- "clio.decisions.open": {
106
+ "clio-coder.decisions.open": {
98
107
  // Approved application-boundary override of pi-tui editor word-delete.
99
108
  defaultKeys: "alt+d",
100
109
  description: "Open the settled interview decision board",
101
110
  },
102
- "clio.dispatch.background": {
111
+ "clio-coder.dispatch.background": {
103
112
  // Ctrl+B alone is pi-tui's editor cursor-left, so the Claude Code chord
104
113
  // cannot be the primary here. Alt+S ("send to background") keeps the app
105
114
  // scheme and earns the Ctrl+G leader fallback, which only alt+<letter>
@@ -107,56 +116,56 @@ export const CLIO_APP_KEYBINDINGS = {
107
116
  defaultKeys: ["alt+s", "ctrl+alt+b"],
108
117
  description: "Send the running attached dispatch to the background as a detached batch",
109
118
  },
110
- "clio.model.select": {
119
+ "clio-coder.model.select": {
111
120
  defaultKeys: "alt+l",
112
121
  description: "Open the model + targets selector",
113
122
  },
114
- "clio.model.cycleForward": {
123
+ "clio-coder.model.cycleForward": {
115
124
  defaultKeys: "alt+j",
116
125
  description: "Cycle to next scoped model",
117
126
  },
118
- "clio.model.cycleBackward": {
127
+ "clio-coder.model.cycleBackward": {
119
128
  defaultKeys: "alt+k",
120
129
  description: "Cycle to previous scoped model",
121
130
  },
122
- "clio.tool.expand": {
131
+ "clio-coder.tool.expand": {
123
132
  defaultKeys: "alt+o",
124
133
  description:
125
134
  "Fold or unfold the newest tool call or worker block between its one-line summary and full details, overriding the /output level for that block",
126
135
  },
127
- "clio.tool.expandAll": {
136
+ "clio-coder.tool.expandAll": {
128
137
  // Alt+Shift+letter is commonly consumed by OS keyboard-layout switching.
129
138
  // Keep it discoverable, but pair it with the legacy-safe Ctrl+Alt form.
130
139
  defaultKeys: ["ctrl+alt+o", "alt+shift+o"],
131
140
  description:
132
141
  "Fold or unfold every tool call and worker block at once, overriding the /output level; changing /output clears the overrides",
133
142
  },
134
- "clio.tool.liveOutput": {
143
+ "clio-coder.tool.liveOutput": {
135
144
  defaultKeys: "alt+p",
136
145
  description: "Toggle streaming partial tool output in expanded tool bodies",
137
146
  },
138
- "clio.thinking.expand": {
147
+ "clio-coder.thinking.expand": {
139
148
  defaultKeys: "alt+r",
140
149
  description:
141
150
  "Toggle the latest thinking block between hidden marker and full body (no effect while /output verbose pins it open)",
142
151
  },
143
- "clio.thinking.expandAll": {
152
+ "clio-coder.thinking.expandAll": {
144
153
  // Ctrl+Alt+R is the fallback for terminals/OSes that do not forward
145
154
  // Alt+Shift+R as a distinct key event.
146
155
  defaultKeys: ["ctrl+alt+r", "alt+shift+r"],
147
156
  description:
148
157
  "Toggle all thinking blocks between hidden markers and full bodies, overriding the /output level; changing /output clears the overrides",
149
158
  },
150
- "clio.editor.external": {
159
+ "clio-coder.editor.external": {
151
160
  defaultKeys: "alt+g",
152
161
  description: "Open the current input in an external editor",
153
162
  },
154
- "clio.message.followUp": {
163
+ "clio-coder.message.followUp": {
155
164
  defaultKeys: "alt+enter",
156
165
  description:
157
166
  "End of turn: queue the current input for delivery when the active run settles (Enter delivers it at the next slot, between tool batches)",
158
167
  },
159
- "clio.message.interrupt": {
168
+ "clio-coder.message.interrupt": {
160
169
  // Alt+I keeps the app scheme and earns the Ctrl+G leader fallback. A
161
170
  // Ctrl+Enter chord was rejected because legacy terminals send it as a
162
171
  // plain Enter, which would turn every send into a cancel.
@@ -164,15 +173,15 @@ export const CLIO_APP_KEYBINDINGS = {
164
173
  description:
165
174
  "Interrupt: cancel the active run and deliver the current input now (refused while an attached dispatch runs or a permission ask is parked; the input then queues for the next slot)",
166
175
  },
167
- "clio.message.dequeue": {
176
+ "clio-coder.message.dequeue": {
168
177
  defaultKeys: "alt+up",
169
178
  description: "Restore queued steering and follow-up messages to the editor",
170
179
  },
171
- "clio.notifications.dismiss": {
180
+ "clio-coder.notifications.dismiss": {
172
181
  defaultKeys: "alt+x",
173
182
  description: "Dismiss footer notifications",
174
183
  },
175
- "clio.leader": {
184
+ "clio-coder.leader": {
176
185
  defaultKeys: "ctrl+g",
177
186
  description: "Start portable leader-key fallback for Alt shortcuts",
178
187
  },
@@ -28,7 +28,7 @@ export function startConfigWatcher(cb: WatcherCallback): ConfigWatcher {
28
28
  }, 80);
29
29
  });
30
30
  } catch (err) {
31
- console.error("[clio:config] watcher setup failed:", err);
31
+ console.error("[clio-coder:config] watcher setup failed:", err);
32
32
  }
33
33
 
34
34
  return {
@@ -752,7 +752,7 @@ function mergeTreeSitterWithRegexImports(
752
752
  };
753
753
  }
754
754
 
755
- export function fallbackExtraction(language: CodewikiLanguage, relPath: string, text: string): LanguageExtraction {
755
+ function fallbackExtraction(language: CodewikiLanguage, relPath: string, text: string): LanguageExtraction {
756
756
  return extractWithExtractors(fallbackExtractors, language, relPath, text);
757
757
  }
758
758
 
@@ -59,9 +59,6 @@ function persistState(
59
59
  * because nothing inside it awaited.
60
60
  */
61
61
  async function ensureCodewikiFresh(cwd: string): Promise<void> {
62
- // The bootstrap model-generation child runs a headless session purely to draft
63
- // CLIO-CODER.md; it must not re-index while the parent context-init owns the rebuild.
64
- if (process.env.CLIO_CODER_BOOTSTRAP_GENERATE_CHILD === "1") return;
65
62
  const state = readClioState(cwd);
66
63
  if (!state && !existsSync(codewikiPath(cwd))) return;
67
64
  const indexedAt = new Date().toISOString();
@@ -146,15 +143,15 @@ function collectStartupHints(cwd: string, options: ContextBundleOptions = {}): s
146
143
  projectType !== "unknown" &&
147
144
  options.noContextFiles !== true
148
145
  ) {
149
- hints.push("clio: No CLIO-CODER.md detected. Run /context init to explore the repo and bootstrap context.");
146
+ hints.push("clio-coder: No CLIO-CODER.md detected. Run /context init to explore the repo and bootstrap context.");
150
147
  }
151
148
  for (const issue of clio.errors) {
152
- hints.push(`clio: malformed ${issue.path} ignored: ${issue.error}`);
149
+ hints.push(`clio-coder: malformed ${issue.path} ignored: ${issue.error}`);
153
150
  }
154
151
  const state = readClioState(cwd);
155
152
  if (!state) return hints;
156
153
  if (state.contextSources !== undefined && adoptionSourcesChanged(state.contextSources, { cwd })) {
157
- hints.push("clio: Imported agent context changed. Run /context init --adopt to refresh.");
154
+ hints.push("clio-coder: Imported agent context changed. Run /context init --adopt to refresh.");
158
155
  }
159
156
  return hints;
160
157
  }
@@ -32,7 +32,7 @@ export function renderPromptContext(cwd: string): ProjectPromptContext {
32
32
  const clioMd: ParsedClioMd | null = loadedClioMd.value;
33
33
  for (const file of loadedClioMd.files) pieces.push(renderProjectContextFragment(file.value, file.path));
34
34
  for (const issue of loadedClioMd.errors) {
35
- warnings.push(`clio: malformed ${issue.path} ignored: ${issue.error}`);
35
+ warnings.push(`clio-coder: malformed ${issue.path} ignored: ${issue.error}`);
36
36
  }
37
37
  // Said where the handbook would have been: a model that sees no project
38
38
  // context spends its first tool call reading CLIO-CODER.md and gets
@@ -39,7 +39,7 @@ const SOURCE_CITATION =
39
39
  const INTERNAL_LINK = /\[[^\]]*\]\((?![a-z][a-z\d+.-]*:|\/\/|#)([^)\s]+\.md)(?:#[^)\s]*)?\)/gi;
40
40
 
41
41
  /** Marker line carrying a page's unrepaired references; regenerated every pass. */
42
- const REPAIR_NOTE = /^<!-- clio:wiki .*-->$/gm;
42
+ const REPAIR_NOTE = /^<!-- (?:clio-coder|clio):wiki .*-->$/gm;
43
43
 
44
44
  export interface WikiPageIssue {
45
45
  page: string;
@@ -79,7 +79,7 @@ function renderRepairNote(issues: ReadonlyArray<WikiPageIssue>): string {
79
79
  const parts: string[] = [];
80
80
  if (links.length > 0) parts.push(`unresolved links: ${[...new Set(links)].join(", ")}`);
81
81
  if (citations.length > 0) parts.push(`unresolved sources: ${[...new Set(citations)].join(", ")}`);
82
- return parts.length === 0 ? "" : `\n<!-- clio:wiki ${parts.join("; ")} -->\n`;
82
+ return parts.length === 0 ? "" : `\n<!-- clio-coder:wiki ${parts.join("; ")} -->\n`;
83
83
  }
84
84
 
85
85
  /**
@@ -241,6 +241,7 @@ function observedPath(op: PathOp, args: Record<string, unknown> | null, cwd: str
241
241
  return explicit === null ? "" : canonicalize(explicit, cwd);
242
242
  }
243
243
  if (op === "code_nav") {
244
+ if (stringField(args, "source") === "clio") return "";
244
245
  const mode = stringField(args, "mode");
245
246
  if (mode === null || !CODE_NAV_PATH_MODES.has(mode)) return "";
246
247
  const query = stringField(args, "query");
@@ -144,10 +144,6 @@ function measure(input: ReplayMeasurement): MeasuredTrace {
144
144
  };
145
145
  }
146
146
 
147
- export function measureReplayTrace(input: ReplayMeasurement): ReplayMetrics {
148
- return measure(input).metrics;
149
- }
150
-
151
147
  function mean(values: ReadonlyArray<number>): number {
152
148
  return values.length === 0 ? 0 : values.reduce((sum, value) => sum + value, 0) / values.length;
153
149
  }
@@ -49,7 +49,7 @@ function metricObject(metrics: ReplayMetrics, turnsToFirstSummaryCount: number):
49
49
  export function renderReplayJson(input: ReplayReportInput): string {
50
50
  const filtered = Object.fromEntries(Object.entries(input.cascade.filtered).sort(([a], [b]) => a.localeCompare(b)));
51
51
  const artifact = {
52
- schema: "clio-context-replay-v2",
52
+ schema: "clio-coder-context-replay-v2",
53
53
  config: {
54
54
  policies: [...input.config.policies],
55
55
  budgets: [...input.config.budgets],
@@ -93,7 +93,7 @@ export const SYNTHETIC_CORPORA: ReadonlyArray<SyntheticCorpusSpec> = [
93
93
  },
94
94
  ];
95
95
 
96
- export function syntheticCorpus(id: string): SyntheticCorpusSpec | undefined {
96
+ function syntheticCorpus(id: string): SyntheticCorpusSpec | undefined {
97
97
  return SYNTHETIC_CORPORA.find((spec) => spec.id === id);
98
98
  }
99
99
 
@@ -258,7 +258,7 @@ function testOutput(files: ReadonlyArray<RepoFile>, failing: RepoFile | null): s
258
258
  }
259
259
 
260
260
  /** Generate one trace of the corpus. `index` selects the trace; the spec's seed and index fix every byte. */
261
- export function generateSyntheticTrace(spec: SyntheticCorpusSpec, index: number): Trace {
261
+ function generateSyntheticTrace(spec: SyntheticCorpusSpec, index: number): Trace {
262
262
  const rnd = mulberry32(spec.seed * 1000 + index);
263
263
  const between = (low: number, high: number): number => low + Math.floor(rnd() * (high - low + 1));
264
264
  const pick = <T>(items: ReadonlyArray<T>): T => items[Math.floor(rnd() * items.length)] as T;