@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
@@ -46,6 +46,7 @@ import type { createMuxBridge } from "./mux-bridge.js";
46
46
  import { createOverlayLifecycle, type OverlayLifecycleController, type OverlayState } from "./overlay-lifecycle.js";
47
47
  import { interopOverlaySurface } from "./overlays/interop.js";
48
48
  import { paneWatchDecision } from "./pane-policy.js";
49
+ import { describePanesLeftBehind } from "./panes-runtime.js";
49
50
  import { writeInputWedgeDump } from "./render-trace.js";
50
51
  import { settleChatBeforeSessionSwitch } from "./session-switch-settlement.js";
51
52
  import { createSessionTranscript } from "./session-transcript.js";
@@ -53,9 +54,11 @@ import type {
53
54
  ContextClearCommandOptions,
54
55
  InitCommandOptions,
55
56
  RunIo,
57
+ SettingsAreaId,
58
+ SlashCommandContext,
56
59
  TaskMemorySeedCommandResult,
57
60
  } from "./slash-commands.js";
58
- import { processAutoPacingAllowed, resolveSmoothStreamingMode } from "./stream-pacing-policy.js";
61
+ import { processAutoPacingAllowed } from "./stream-pacing-policy.js";
59
62
  import type { TerminalLease } from "./terminal-lease.js";
60
63
  import type { createWatchPaneController } from "./watch-pane.js";
61
64
  import { createWorkspaceFacts } from "./workspace-facts.js";
@@ -91,20 +94,6 @@ export {
91
94
  type SlashCommandKind,
92
95
  } from "./slash-commands.js";
93
96
 
94
- export function shouldAnnouncePermissionRequest(
95
- seenRequestIds: Set<string>,
96
- requestId: string,
97
- maxSize = 2048,
98
- ): boolean {
99
- if (seenRequestIds.has(requestId)) return false;
100
- seenRequestIds.add(requestId);
101
- if (seenRequestIds.size > maxSize) {
102
- const oldest = seenRequestIds.values().next().value;
103
- if (oldest !== undefined) seenRequestIds.delete(oldest);
104
- }
105
- return true;
106
- }
107
-
108
97
  export function isLiveWorkerEscalationRequest(payload: PermissionRequestedPayload): boolean {
109
98
  if (typeof payload.requestId !== "string") return false;
110
99
  if (payload.escalation !== true) return false;
@@ -134,6 +123,8 @@ export interface InteractiveDeps {
134
123
  initialNotices?: ReadonlyArray<string>;
135
124
  resources?: ResourcesContract;
136
125
  extensions?: ExtensionsContract;
126
+ /** `/resources extensions reload` seam; the composition root supplies the coordinator. */
127
+ reloadExtensions?: SlashCommandContext["reloadExtensions"];
137
128
  interop?: InteropContract;
138
129
  share?: ShareContract;
139
130
  /**
@@ -243,7 +234,7 @@ export interface InteractiveDeps {
243
234
  onForkSession?: (parentTurnId: string) => void;
244
235
  /**
245
236
  * Run `/context compact` for the current session. Resolves the compaction model
246
- * (settings.compaction.model with fallback to the orchestrator target),
237
+ * (settings.context.compaction.model with fallback to the chat target),
247
238
  * reads session entries, streams a summary via the session compaction
248
239
  * engine, and persists a compactionSummary entry.
249
240
  */
@@ -282,7 +273,7 @@ export interface InteractiveSubmitExpansion {
282
273
  pendingSkillRequests: PendingSkillRequest[];
283
274
  }
284
275
 
285
- export async function expandInteractiveSubmitAsync(
276
+ async function expandInteractiveSubmitAsync(
286
277
  text: string,
287
278
  resources: ResourcesContract | undefined,
288
279
  cwd = process.cwd(),
@@ -314,7 +305,7 @@ function availableInteractiveThinkingLevels(deps: InteractiveDeps): ReadonlyArra
314
305
  export interface KeyBindingDeps {
315
306
  /**
316
307
  * Keybinding lookup injected by startInteractive. Defaults come from
317
- * CLIO_KEYBINDINGS; user overrides from settings.keybindings. Tests may
308
+ * CLIO_KEYBINDINGS; user overrides from settings.interface.keybindings. Tests may
318
309
  * substitute a narrower matcher via createKeybindingManagerForTesting.
319
310
  */
320
311
  matches: (data: string, id: ClioKeybinding) => boolean;
@@ -324,6 +315,8 @@ export interface KeyBindingDeps {
324
315
  requestShutdown: () => void;
325
316
  toggleStatus: () => void;
326
317
  toggleDispatchBoard: () => void;
318
+ /** `/files` as a key: open the files pane when closed, close it when open. */
319
+ toggleFilesPane: () => void;
327
320
  openTasks: () => void;
328
321
  openDecisions: () => void;
329
322
  backgroundDispatch: () => void;
@@ -365,73 +358,76 @@ export function resolveCtrlCAction(deps: CtrlCActionDeps): CtrlCAction {
365
358
  return "arm-shutdown";
366
359
  }
367
360
 
368
- export function dispatchInteractiveAction(id: ClioKeybinding, deps: KeyBindingDeps): boolean {
361
+ function dispatchInteractiveAction(id: ClioKeybinding, deps: KeyBindingDeps): boolean {
369
362
  switch (id) {
370
- case "clio.notifications.dismiss":
363
+ case "clio-coder.notifications.dismiss":
371
364
  deps.dismissNotifications();
372
365
  return true;
373
- case "clio.tool.expand":
366
+ case "clio-coder.tool.expand":
374
367
  deps.toggleToolExpansion();
375
368
  return true;
376
- case "clio.tool.expandAll":
369
+ case "clio-coder.tool.expandAll":
377
370
  deps.toggleAllToolExpansion();
378
371
  return true;
379
- case "clio.tool.liveOutput":
372
+ case "clio-coder.tool.liveOutput":
380
373
  deps.toggleLiveToolOutput();
381
374
  return true;
382
- case "clio.editor.external":
375
+ case "clio-coder.editor.external":
383
376
  deps.openExternalEditor();
384
377
  return true;
385
- case "clio.message.followUp":
378
+ case "clio-coder.message.followUp":
386
379
  deps.queueFollowUp();
387
380
  return true;
388
- case "clio.message.interrupt":
381
+ case "clio-coder.message.interrupt":
389
382
  deps.interruptWithMessage();
390
383
  return true;
391
- case "clio.message.dequeue":
384
+ case "clio-coder.message.dequeue":
392
385
  deps.restoreQueuedFollowUps();
393
386
  return true;
394
- case "clio.thinking.expand":
387
+ case "clio-coder.thinking.expand":
395
388
  deps.toggleThinkingExpansion();
396
389
  return true;
397
- case "clio.thinking.expandAll":
390
+ case "clio-coder.thinking.expandAll":
398
391
  deps.toggleAllThinkingExpansion();
399
392
  return true;
400
- case "clio.status.toggle":
393
+ case "clio-coder.status.toggle":
401
394
  deps.toggleStatus();
402
395
  return true;
403
- case "clio.thinking.cycle":
396
+ case "clio-coder.thinking.cycle":
404
397
  deps.cycleThinking();
405
398
  return true;
406
- case "clio.session.tree":
399
+ case "clio-coder.session.tree":
407
400
  deps.openTree();
408
401
  return true;
409
- case "clio.dispatchBoard.toggle":
402
+ case "clio-coder.dispatchBoard.toggle":
410
403
  deps.toggleDispatchBoard();
411
404
  return true;
412
- case "clio.tasks.open":
405
+ case "clio-coder.files.toggle":
406
+ deps.toggleFilesPane();
407
+ return true;
408
+ case "clio-coder.tasks.open":
413
409
  deps.openTasks();
414
410
  return true;
415
- case "clio.decisions.open":
411
+ case "clio-coder.decisions.open":
416
412
  deps.openDecisions();
417
413
  return true;
418
- case "clio.dispatch.background":
414
+ case "clio-coder.dispatch.background":
419
415
  deps.backgroundDispatch();
420
416
  return true;
421
- case "clio.model.select":
417
+ case "clio-coder.model.select":
422
418
  deps.openModelSelector();
423
419
  return true;
424
- case "clio.model.cycleBackward":
420
+ case "clio-coder.model.cycleBackward":
425
421
  deps.cycleScopedModelBackward();
426
422
  return true;
427
- case "clio.model.cycleForward":
423
+ case "clio-coder.model.cycleForward":
428
424
  deps.cycleScopedModelForward();
429
425
  return true;
430
- case "clio.exit":
426
+ case "clio-coder.exit":
431
427
  if (deps.canExit && !deps.canExit()) return false;
432
428
  deps.requestShutdown();
433
429
  return true;
434
- case "clio.leader":
430
+ case "clio-coder.leader":
435
431
  return false;
436
432
  }
437
433
  }
@@ -439,20 +435,21 @@ export function dispatchInteractiveAction(id: ClioKeybinding, deps: KeyBindingDe
439
435
  /** Pure key router: returns true when the input was consumed. */
440
436
  export function routeInteractiveKey(data: string, deps: KeyBindingDeps): boolean {
441
437
  const order: ClioKeybinding[] = [
442
- "clio.status.toggle",
443
- "clio.thinking.cycle",
444
- "clio.session.tree",
445
- "clio.dispatchBoard.toggle",
446
- "clio.tasks.open",
447
- "clio.decisions.open",
448
- "clio.dispatch.background",
449
- "clio.model.select",
438
+ "clio-coder.status.toggle",
439
+ "clio-coder.thinking.cycle",
440
+ "clio-coder.session.tree",
441
+ "clio-coder.dispatchBoard.toggle",
442
+ "clio-coder.files.toggle",
443
+ "clio-coder.tasks.open",
444
+ "clio-coder.decisions.open",
445
+ "clio-coder.dispatch.background",
446
+ "clio-coder.model.select",
450
447
  // Match cycleBackward before cycleForward so a user rebind where one key
451
448
  // is a prefix of the other resolves to the more specific binding first.
452
449
  // The defaults (alt+k / alt+j) do not prefix-match each other.
453
- "clio.model.cycleBackward",
454
- "clio.model.cycleForward",
455
- "clio.exit",
450
+ "clio-coder.model.cycleBackward",
451
+ "clio-coder.model.cycleForward",
452
+ "clio-coder.exit",
456
453
  ];
457
454
  for (const id of order) {
458
455
  if (deps.matches(data, id)) return dispatchInteractiveAction(id, deps);
@@ -461,13 +458,13 @@ export function routeInteractiveKey(data: string, deps: KeyBindingDeps): boolean
461
458
  }
462
459
 
463
460
  export async function createInteractiveApplication(deps: InteractiveDeps): Promise<number> {
464
- const initialSmoothStreaming = resolveSmoothStreamingMode(deps.getSettings?.().terminal.smoothStreaming ?? "off");
461
+ const initialSmoothStreaming = deps.getSettings?.().interface.smoothStreaming ?? "off";
465
462
  const initialAutoPacingAllowed = processAutoPacingAllowed(false);
466
463
  const lease = deps.terminalLease;
467
464
  const shell =
468
465
  lease?.shell ??
469
466
  createProcessInteractiveShell({
470
- tuiMode: deps.getSettings?.().terminal.tuiMode ?? "regular",
467
+ tuiMode: deps.getSettings?.().interface.mode ?? "regular",
471
468
  streamPacingActive:
472
469
  initialSmoothStreaming === "on" || (initialSmoothStreaming === "auto" && initialAutoPacingAllowed),
473
470
  ...(deps.onFirstFrameCommit ? { onFirstFrameCommit: deps.onFirstFrameCommit } : {}),
@@ -619,10 +616,10 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
619
616
  getDraft: () => editor.getText(),
620
617
  setDraft: (text) => editor.setText(text),
621
618
  requestRender: () => tui.requestRender(),
622
- notice: (level, text) => notify(level, text, `yazi:${level}`),
619
+ notice: (level, text) => notify(level, text, `files:${level}`),
623
620
  getCwd: () => process.cwd(),
624
621
  getSettings: () =>
625
- deps.getSettings?.().panes.yazi ?? {
622
+ deps.getSettings?.().interface.panes.files ?? {
626
623
  mode: "companion",
627
624
  profile: "managed",
628
625
  followCwd: true,
@@ -643,7 +640,7 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
643
640
  // `CLIO_CODER_INTERACTIVE=1` forced the interactive surface on.
644
641
  const desktopNotifications = createInteractiveDesktopNotifications({
645
642
  write: (data) => terminal.write(data),
646
- enabled: () => deps.getSettings?.().terminal.notify ?? false,
643
+ enabled: () => deps.getSettings?.().interface.desktopNotifications ?? false,
647
644
  interactiveTty: () => process.stdout.isTTY === true,
648
645
  getOpenBatches: () => openDetachedBatchViews(deps.dispatch),
649
646
  });
@@ -685,7 +682,7 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
685
682
  appendTranscriptNotice: (level, text) => appendNotice(level, text, busNoticeSink),
686
683
  refreshSettingsOverlay: () => overlayLifecycle.refreshSettingsOverlay(),
687
684
  onConfigHotReload: (settings) => {
688
- const mode = resolveSmoothStreamingMode(settings.terminal.smoothStreaming);
685
+ const mode = settings.interface.smoothStreaming;
689
686
  const autoAllowed = processAutoPacingAllowed(shell.hasObservedBackpressure());
690
687
  chatRenderer.setSmoothStreamingMode(mode);
691
688
  shell.setStreamPacingActive(mode === "on" || (mode === "auto" && autoAllowed));
@@ -715,6 +712,7 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
715
712
  settleVisibleFrame: (reason) => chatRenderer.flushAndCommit(reason),
716
713
  ...(deps.resources ? { resources: deps.resources } : {}),
717
714
  ...(deps.extensions ? { extensions: deps.extensions } : {}),
715
+ ...(deps.reloadExtensions ? { reloadExtensions: deps.reloadExtensions } : {}),
718
716
  ...(interopSurface ? { interop: interopSurface } : {}),
719
717
  ...(deps.agents ? { agents: deps.agents } : {}),
720
718
  ...(deps.share ? { share: deps.share } : {}),
@@ -742,6 +740,7 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
742
740
  openSideQuestion: (question) => openSideQuestionOverlayState(question),
743
741
  startHandoff: (goal) => startHandoffState(goal),
744
742
  startFleetRun: (name, vars) => startFleetRunState(name, vars),
743
+ openFleetRuns: () => toggleDispatchBoardOverlay(),
745
744
  ...(toolRegistry ? { runCouncilDispatch: (args) => dispatchCouncilThroughRegistry(toolRegistry, args) } : {}),
746
745
  openContextView: () => openContextViewOverlayState(),
747
746
  openTasks: () => openTasksOverlayState(),
@@ -752,7 +751,22 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
752
751
  ...(deps.panes ? { panes: deps.panes } : {}),
753
752
  openModel: () => openModelOverlayState(),
754
753
  openModelScope: (ref) => openModelScopeState(ref),
755
- openSettings: (section, rowId) => openSettingsOverlayState(section, rowId),
754
+ openSettings: (area, group) => {
755
+ if (!area) return openSettingsOverlayState();
756
+ // Compatibility adapter until the seven-area Settings shell replaces
757
+ // the legacy section ids. Slash grammar never exposes these old names.
758
+ if (area === "chat" && group === "model-picker") return openSettingsOverlayState("models", "scope");
759
+ const section = {
760
+ chat: "orchestrator",
761
+ fleet: "fleet",
762
+ targets: "targets",
763
+ context: "compaction",
764
+ safety: "safety",
765
+ interface: "terminal",
766
+ integrations: "advanced",
767
+ } satisfies Record<SettingsAreaId, Parameters<typeof openSettingsOverlayState>[0]>;
768
+ openSettingsOverlayState(section[area]);
769
+ },
756
770
  openResume: () => openResumeOverlayState(),
757
771
  startNewSession: () => startNewSession(),
758
772
  openTree: () => openTreeOverlayState(),
@@ -870,6 +884,7 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
870
884
  openPromptsOverlayState,
871
885
  openExtensionsOverlayState,
872
886
  openInteropOverlayState,
887
+ toggleDispatchBoardOverlay,
873
888
  } = overlayLifecycle;
874
889
 
875
890
  const dispatchSteering = createDispatchSteering({
@@ -947,7 +962,7 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
947
962
  ? deps.createMuxBridge({
948
963
  bus: deps.bus,
949
964
  mux,
950
- notificationsPolicy: () => deps.getSettings?.().panes.notifications ?? "failures",
965
+ notificationsPolicy: () => deps.getSettings?.().interface.panes.notifications ?? "failures",
951
966
  log: (level, message) => {
952
967
  if (level === "warning") notify("warning", message, "mux:bridge");
953
968
  },
@@ -959,9 +974,25 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
959
974
  // tool drive the same controller through the shared operations object.
960
975
  const watchPane =
961
976
  mux && mux.mode !== "none" && deps.createWatchPane
962
- ? deps.createWatchPane({ mux, getCwd: () => process.cwd() })
977
+ ? deps.createWatchPane({
978
+ mux,
979
+ getCwd: () => process.cwd(),
980
+ getWorkersRatio: () => deps.getSettings?.().interface.panes.workers.ratio ?? 0.34,
981
+ })
963
982
  : null;
964
983
  const detachWatchPane = watchPane ? deps.attachWatchPane?.(watchPane) : undefined;
984
+ // Boot composition per `interface.panes.layout`: `workers` opens the workers
985
+ // dock parked on "no selection"; `cockpit` adds the files dock. Fire and
986
+ // forget, and only against a live pane host: a boot must never fall through
987
+ // to the in-terminal chooser or block the first paint on socket traffic.
988
+ {
989
+ const bootSettings = deps.getSettings?.();
990
+ const layout = bootSettings?.interface.panes.layout ?? "off";
991
+ if (layout !== "off" && mux?.available()) {
992
+ void watchPane?.ensureOpen();
993
+ if (layout === "cockpit" && bootSettings?.interface.panes.files.enabled) void yaziBridge?.open();
994
+ }
995
+ }
965
996
  const selectedWatchableRun = (): { runId: string; agentId: string } | null => {
966
997
  if (!watchPane) return null;
967
998
  const row = dispatchBoard.selectedRow();
@@ -1036,6 +1067,25 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
1036
1067
  if (deps.onCycleScopedModelBackward?.() === false) announceEmptyScopedSet();
1037
1068
  },
1038
1069
  backgroundActiveDispatch,
1070
+ toggleFilesPane: () => {
1071
+ const panes = deps.panes;
1072
+ if (!panes) {
1073
+ notify(
1074
+ "info",
1075
+ "the files pane is inactive: this session started without panes. Restart with `clio-coder --with-panes`, or set interface.panes.enabled=auto",
1076
+ "files:info",
1077
+ );
1078
+ return;
1079
+ }
1080
+ void panes.files("toggle").then((result) => {
1081
+ if (result.status === "opened") {
1082
+ if (result.paneId !== null)
1083
+ notify("success", `files pane ${result.existing ? "focused" : "opened"}`, "files:open");
1084
+ } else if (result.status === "closed") notify("info", "files pane closed", "files:close");
1085
+ else if (result.status === "missing-binary") notify("warning", result.detail, "files:missing");
1086
+ else notify("warning", result.reason, "files:refused");
1087
+ });
1088
+ },
1039
1089
  },
1040
1090
  overlay: overlayLifecycle,
1041
1091
  refreshFooter: () => footer.refresh(),
@@ -1117,6 +1167,11 @@ export async function createInteractiveApplication(deps: InteractiveDeps): Promi
1117
1167
  },
1118
1168
  cancelParkedCalls: (reason) => deps.toolRegistry?.cancelParkedCalls(reason),
1119
1169
  onShutdown: async () => {
1170
+ // The terminal is already stopped here and the domains have not, so this
1171
+ // is the one moment a plain line about the pane host can both be read
1172
+ // and still see the registry that shutdown is about to forget.
1173
+ const leftBehind = mux && mux.mode !== "none" && mux.available() ? describePanesLeftBehind(mux) : null;
1174
+ if (leftBehind !== null) process.stderr.write(`${leftBehind}\n`);
1120
1175
  try {
1121
1176
  if (dumpInputWedgeOnTerminate) process.off("SIGTERM", dumpInputWedgeOnTerminate);
1122
1177
  await deps.onShutdown();
@@ -218,7 +218,7 @@ export function createInteractiveEventProjection(deps: InteractiveEventProjectio
218
218
 
219
219
  remainingUnsubscribers.push(
220
220
  deps.chat.onEvent((event) => {
221
- const showProgress = deps.getSettings?.().terminal.showTerminalProgress ?? false;
221
+ const showProgress = deps.getSettings?.().interface.terminalProgress ?? false;
222
222
  if (event.type === "agent_start" && showProgress) deps.startTerminalProgress();
223
223
  else if (event.type === "agent_end") {
224
224
  deps.stopTerminalProgress();
@@ -21,6 +21,7 @@ export interface InteractiveInputKeyActionDeps {
21
21
  requestShutdown: () => void;
22
22
  toggleStatus: () => void;
23
23
  toggleDispatchBoard: () => void;
24
+ toggleFilesPane: () => void;
24
25
  openTasks: () => void;
25
26
  openDecisions: () => void;
26
27
  backgroundDispatch: () => void;
@@ -54,6 +55,8 @@ export interface InteractiveInputRuntimeDeps {
54
55
  cycleScopedModelBackward(): void;
55
56
  /** Convert the newest attached dispatch into a detached batch and notice the outcome. */
56
57
  backgroundActiveDispatch(): void;
58
+ /** Toggle the files pane; the application decides what "inactive" says. */
59
+ toggleFilesPane(): void;
57
60
  };
58
61
  overlay: {
59
62
  getState(): OverlayState;
@@ -154,6 +157,7 @@ export function createInteractiveInputRuntime(deps: InteractiveInputRuntimeDeps)
154
157
  openTasks: deps.overlay.openTasksOverlayState,
155
158
  openDecisions: deps.overlay.openDecisionsOverlayState,
156
159
  backgroundDispatch: deps.actions.backgroundActiveDispatch,
160
+ toggleFilesPane: deps.actions.toggleFilesPane,
157
161
  openModelSelector: deps.overlay.openModelOverlayState,
158
162
  openTree: deps.overlay.openTreeOverlayState,
159
163
  cycleScopedModelForward: () => {
@@ -185,7 +189,7 @@ export function createInteractiveInputRuntime(deps: InteractiveInputRuntimeDeps)
185
189
  restoreQueuedFollowUps: deps.editorSubmit.restoreQueuedFollowUpsToEditor,
186
190
  });
187
191
  const leaderKeys = createLeaderKeyController({
188
- matchesLeader: (input) => deps.keybindings.matches(input, "clio.leader"),
192
+ matchesLeader: (input) => deps.keybindings.matches(input, "clio-coder.leader"),
189
193
  leaderTargets: () => deps.keybindings.leaderTargets(),
190
194
  dispatchAction: (id) => deps.dispatchAction(id, keyActionDeps()),
191
195
  isRelease: isKeyRelease,
@@ -302,7 +306,7 @@ export function createInteractiveInputRuntime(deps: InteractiveInputRuntimeDeps)
302
306
  deps.reportShutdownFailure ??
303
307
  ((step, error) => {
304
308
  process.stderr.write(
305
- `[clio:interactive] ${step} failed: ${error instanceof Error ? error.message : String(error)}\n`,
309
+ `[clio-coder:interactive] ${step} failed: ${error instanceof Error ? error.message : String(error)}\n`,
306
310
  );
307
311
  }),
308
312
  });
@@ -1,5 +1,6 @@
1
1
  import { performance } from "node:perf_hooks";
2
2
  import type { ClioSettings } from "../core/config.js";
3
+ import { DEFAULT_SETTINGS } from "../core/defaults.js";
3
4
  import type { SafeEventBus } from "../core/event-bus.js";
4
5
  import type { ContextState } from "../domains/context/index.js";
5
6
  import type { DispatchContract } from "../domains/dispatch/contract.js";
@@ -36,7 +37,7 @@ import { createSlashCommandAutocompleteProvider } from "./slash-autocomplete.js"
36
37
  import { parseSlashCommand, type RunIo } from "./slash-commands.js";
37
38
  import { createStatusController, type StatusController, type TurnSummary } from "./status/index.js";
38
39
  import type { SmoothStreamingMode } from "./stream-pacer.js";
39
- import { processAutoPacingAllowed, resolveSmoothStreamingMode } from "./stream-pacing-policy.js";
40
+ import { processAutoPacingAllowed } from "./stream-pacing-policy.js";
40
41
  import { formatTargetLabel } from "./theme/index.js";
41
42
  import { createWelcomeDashboard, type WelcomeDashboardComponent } from "./welcome-dashboard.js";
42
43
  import { readWorkerReceiptFacts } from "./worker-receipts.js";
@@ -209,7 +210,7 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
209
210
  const getCwd = deps.getCwd ?? (() => process.cwd());
210
211
  const now = deps.now ?? performance.now.bind(performance);
211
212
  const requestRender = (): void => deps.tui.requestRender();
212
- const settings = deps.getSettings?.() ?? ({ keybindings: {} } as ClioSettings);
213
+ const settings = deps.getSettings?.() ?? structuredClone(DEFAULT_SETTINGS);
213
214
  const keybindings = deps.keybindings ?? factories.createKeybindings(settings);
214
215
  const { getExtensionStats, getLiveWorkspaceSnapshot, getWorkspaceSnapshot, refreshLiveWorkspaceGit } =
215
216
  deps.workspaceFacts;
@@ -229,15 +230,15 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
229
230
  const renderTrace = getActiveRenderTrace();
230
231
  const chatPanel = factories.createChatPanel({
231
232
  getToolExpandKey: () => {
232
- const first = keybindings.getKeys("clio.tool.expand")[0];
233
+ const first = keybindings.getKeys("clio-coder.tool.expand")[0];
233
234
  return typeof first === "string" && first.length > 0 ? first : undefined;
234
235
  },
235
- getOutputVerbosity: () => deps.getSettings?.().terminal.outputVerbosity ?? "default",
236
+ getOutputVerbosity: () => deps.getSettings?.().interface.outputDetail ?? "default",
236
237
  ...(renderTrace ? { onRenderMetrics: (metrics) => renderTrace.recordPanelRender(metrics) } : {}),
237
238
  });
238
239
  const followUpQueuePanel = factories.createFollowUpQueuePanel({
239
240
  getDequeueKey: () => {
240
- const first = keybindings.getKeys("clio.message.dequeue")[0];
241
+ const first = keybindings.getKeys("clio-coder.message.dequeue")[0];
241
242
  return typeof first === "string" && first.length > 0 ? first : undefined;
242
243
  },
243
244
  });
@@ -320,8 +321,8 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
320
321
  outputTokens,
321
322
  durationMs,
322
323
  ttftMs: Math.max(0, liveThroughput.firstDeltaAt - liveThroughput.startedAt),
323
- providerId: settings?.orchestrator?.target ?? "",
324
- modelId: settings?.orchestrator?.model ?? "",
324
+ providerId: settings?.chat?.target ?? "",
325
+ modelId: settings?.chat?.model ?? "",
325
326
  recordedAt: Date.now(),
326
327
  };
327
328
  };
@@ -337,7 +338,11 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
337
338
  };
338
339
  const dismissContextBootstrapNotices = (): void => {
339
340
  for (const notice of notifications.list()) {
340
- if (/^clio: (No CLIO\.md detected|malformed CLIO\.md ignored|Imported agent context changed)/.test(notice.text)) {
341
+ if (
342
+ /^(?:clio-coder|clio): (No CLIO(?:-CODER)?\.md detected|malformed CLIO(?:-CODER)?\.md ignored|Imported agent context changed)/.test(
343
+ notice.text,
344
+ )
345
+ ) {
341
346
  notifications.dismiss(notice.id);
342
347
  }
343
348
  }
@@ -390,7 +395,7 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
390
395
  },
391
396
  getLastTurnSummary: () => lastTurnSummary,
392
397
  getNotifications: () => notifications.list(),
393
- dismissKeyLabel: formatKeyLabel(keybindings.getKeys("clio.notifications.dismiss")[0]),
398
+ dismissKeyLabel: formatKeyLabel(keybindings.getKeys("clio-coder.notifications.dismiss")[0]),
394
399
  };
395
400
  footer = factories.buildFooter(footerDeps);
396
401
  const unsubscribeObservability = deps.observability.subscribe((snapshot) => {
@@ -403,18 +408,18 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
403
408
  getModelLabel: () => {
404
409
  const current = deps.getSettings?.();
405
410
  // The rail is the narrowest of the three, so it drops the spaces.
406
- return formatTargetLabel(current?.orchestrator?.target, current?.orchestrator?.model, { separator: "·" });
411
+ return formatTargetLabel(current?.chat?.target, current?.chat?.model, { separator: "·" });
407
412
  },
408
413
  getThinkingLabel: () => {
409
414
  const current = deps.getSettings?.();
410
415
  return (
411
416
  resolveModelRuntimeCapabilitiesForProviders(
412
417
  deps.providers,
413
- current?.orchestrator?.target,
414
- current?.orchestrator?.model,
415
- current?.orchestrator?.thinkingLevel ?? "off",
418
+ current?.chat?.target,
419
+ current?.chat?.model,
420
+ current?.chat?.thinkingLevel ?? "off",
416
421
  )?.thinking.display ??
417
- current?.orchestrator?.thinkingLevel ??
422
+ current?.chat?.thinkingLevel ??
418
423
  "off"
419
424
  );
420
425
  },
@@ -447,7 +452,7 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
447
452
  ? {
448
453
  streamIngress: deps.resolveStreamIngress,
449
454
  getSmoothStreamingMode: () => {
450
- const mode = resolveSmoothStreamingMode(deps.getSettings?.().terminal.smoothStreaming ?? "off");
455
+ const mode = deps.getSettings?.().interface.smoothStreaming ?? "off";
451
456
  const autoAllowed = processAutoPacingAllowed(deps.hasObservedBackpressure?.() ?? false);
452
457
  deps.onSmoothStreamingMode?.(mode, mode === "on" || (mode === "auto" && autoAllowed));
453
458
  return mode;
@@ -487,8 +492,8 @@ export function createInteractivePresentation(deps: InteractivePresentationDeps)
487
492
  footer: footer.view,
488
493
  },
489
494
  {
490
- mode: settings.terminal?.tuiMode ?? "regular",
491
- fullscreenScrollbar: settings.terminal?.fullscreenScrollbar ?? "auto",
495
+ mode: settings.interface?.mode ?? "regular",
496
+ fullscreenScrollbar: settings.interface?.fullscreenScrollbar ?? "auto",
492
497
  },
493
498
  );
494
499
  deps.mount?.(root, editor);
@@ -70,7 +70,7 @@ const KEEP_ALIVE_INTERVAL_MS = 1 << 30;
70
70
  * before the keep-alive anchor. Keeping that seam explicit prevents an
71
71
  * extraction from silently changing initialization order.
72
72
  */
73
- export function createInteractiveShell<TTerminal extends Terminal, TTui extends InteractiveShellTui>(
73
+ function createInteractiveShell<TTerminal extends Terminal, TTui extends InteractiveShellTui>(
74
74
  deps: InteractiveShellDeps<TTerminal, TTui>,
75
75
  ): InteractiveShell<TTerminal, TTui> {
76
76
  const terminal = deps.createTerminal();
@@ -175,7 +175,7 @@ export function getActiveRenderTrace(): RenderTrace | null {
175
175
  * model state. After the finite pre-render bound, exactly one caller-supplied
176
176
  * final frame is still issued; a post-render drain wait is likewise bounded.
177
177
  */
178
- export async function settleLatestInteractiveFrame(
178
+ async function settleLatestInteractiveFrame(
179
179
  gate: Pick<StdoutBackpressureGate, "whenWritable"> | null,
180
180
  timeoutMs: number,
181
181
  renderFrame: () => Promise<number>,