@iowarp/clio-coder 0.3.9 → 0.4.1

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 (733) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/NOTICE +33 -0
  3. package/README.md +121 -16
  4. package/dist/{acp-7LOELQFP.js → acp-ZILU3AUO.js} +19 -18
  5. package/dist/{agents-FIBG2SHA.js → agents-HYWGBGQR.js} +53 -39
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-OI4LIH2I.js → auth-N3QT7CBO.js} +24 -21
  8. package/dist/{builtins-AD25UL3C.js → builtins-UJLMOVOV.js} +6 -6
  9. package/dist/{chunk-I4HZDVNP.js → chunk-2LEAKD4C.js} +2 -3
  10. package/dist/{chunk-465CC7FK.js → chunk-2NM363SV.js} +60 -64
  11. package/dist/{chunk-4H6ULJ3H.js → chunk-2VG7KLYV.js} +1046 -1370
  12. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  13. package/dist/{chunk-NZU6YDNV.js → chunk-3I5NY75V.js} +5 -5
  14. package/dist/{chunk-47CMYGET.js → chunk-3QSOM6PA.js} +2 -2
  15. package/dist/chunk-42FMPA75.js +101 -0
  16. package/dist/{chunk-HAY4ZE2P.js → chunk-5PSMVOLM.js} +2 -2
  17. package/dist/{chunk-IHKBWSXF.js → chunk-5QIAJV2D.js} +3 -3
  18. package/dist/chunk-5YHDIDBP.js +97 -0
  19. package/dist/chunk-6CCS4G3W.js +1529 -0
  20. package/dist/{chunk-2JDWVJND.js → chunk-6DWBAZ5U.js} +2 -2
  21. package/dist/{chunk-BVDVID7E.js → chunk-6FN3E6KX.js} +6 -6
  22. package/dist/{chunk-DG4M6ZUE.js → chunk-6HMJX2VU.js} +59 -59
  23. package/dist/{chunk-3MRC2YSQ.js → chunk-6I5ILFOF.js} +3 -2
  24. package/dist/chunk-6NJQITNH.js +1412 -0
  25. package/dist/chunk-6VC4OV3Z.js +365 -0
  26. package/dist/{chunk-LU7P4LHA.js → chunk-72GZI5EV.js} +2 -2
  27. package/dist/{chunk-5T7RBWN2.js → chunk-74YWRRU5.js} +9 -8
  28. package/dist/{chunk-VPTUJU4P.js → chunk-7EPLI7VL.js} +2 -2
  29. package/dist/{chunk-CA42X6KT.js → chunk-7OBGU7UB.js} +7 -7
  30. package/dist/{chunk-56KB5IJP.js → chunk-7PWAODYW.js} +3 -3
  31. package/dist/chunk-7RY5VZPH.js +573 -0
  32. package/dist/{chunk-OEDBCISO.js → chunk-ABLSQ6JX.js} +3 -3
  33. package/dist/{chunk-5HFBWUMU.js → chunk-AFKWHWXF.js} +13 -23
  34. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  35. package/dist/{chunk-WXCJ7VME.js → chunk-AKB4GYDL.js} +7 -7
  36. package/dist/chunk-AP73CFDC.js +308 -0
  37. package/dist/{chunk-4LJX2PUC.js → chunk-BBTJOK6Y.js} +5 -5
  38. package/dist/{chunk-QQ7EKM72.js → chunk-BDPT6GTK.js} +13 -61
  39. package/dist/chunk-BJGUKIG4.js +302 -0
  40. package/dist/chunk-BMS5RKQY.js +27 -0
  41. package/dist/{chunk-TD7UE2L5.js → chunk-BTGG6BG2.js} +81 -40
  42. package/dist/chunk-BTK3SSSK.js +67 -0
  43. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  44. package/dist/chunk-BWW4HLO4.js +301 -0
  45. package/dist/{chunk-BNAZZHFG.js → chunk-BYP5D4HI.js} +1 -1
  46. package/dist/{chunk-HJB5IUKP.js → chunk-C537JADH.js} +18 -18
  47. package/dist/{chunk-774ILSRL.js → chunk-CDNVLKUX.js} +5 -4
  48. package/dist/{chunk-HPCTNZM2.js → chunk-CTJ4RNAA.js} +4 -4
  49. package/dist/{chunk-AEYBF3TB.js → chunk-CWVRRIEI.js} +2 -2
  50. package/dist/chunk-D4CJV46V.js +462 -0
  51. package/dist/chunk-D7E7WCDF.js +27 -0
  52. package/dist/{chunk-5PVQ4SRS.js → chunk-E67WX76H.js} +10 -126
  53. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  54. package/dist/chunk-EIMVLWB3.js +1842 -0
  55. package/dist/{chunk-AMKHQW3C.js → chunk-FEFIFZTL.js} +3 -3
  56. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  57. package/dist/{chunk-3DUR4WUA.js → chunk-FYUN5KZ3.js} +25 -25
  58. package/dist/{chunk-MV3K5QF2.js → chunk-GCSMB2KY.js} +2 -2
  59. package/dist/chunk-GIZNH63R.js +40 -0
  60. package/dist/chunk-GPPB3JBE.js +688 -0
  61. package/dist/{chunk-B5XRQOLB.js → chunk-GVQJ5CCZ.js} +17 -11
  62. package/dist/chunk-HHV2GANA.js +88 -0
  63. package/dist/chunk-HJWWJ6IL.js +184 -0
  64. package/dist/{chunk-RKRLDWD3.js → chunk-HLW2MRKE.js} +1 -1
  65. package/dist/chunk-HRQMFLJP.js +75 -0
  66. package/dist/{chunk-AD7Y7STJ.js → chunk-HUAS7ITX.js} +107 -97
  67. package/dist/{chunk-O6I4CIEU.js → chunk-I66EAJFY.js} +6 -6
  68. package/dist/{chunk-S4COXYBG.js → chunk-IG7BCQBA.js} +129 -106
  69. package/dist/{chunk-N3PBVRTZ.js → chunk-IXJT6DCX.js} +9 -7
  70. package/dist/chunk-J4HBWF6Y.js +2635 -0
  71. package/dist/chunk-J5LZHVIT.js +284 -0
  72. package/dist/{chunk-GAYUJ7LE.js → chunk-JA5QWE4Z.js} +544 -227
  73. package/dist/{chunk-B5CSFE7B.js → chunk-JIEGK6UF.js} +6 -174
  74. package/dist/{chunk-VKBMFOYV.js → chunk-JZWT5J3Y.js} +23 -27
  75. package/dist/chunk-K6BF4U2H.js +1785 -0
  76. package/dist/{chunk-CGKSTWHD.js → chunk-K6BSR66V.js} +2 -1
  77. package/dist/{chunk-YSEHGPCT.js → chunk-MA3H6DM5.js} +6 -6
  78. package/dist/{chunk-EBOC7MT3.js → chunk-MOPSG2X7.js} +9 -9
  79. package/dist/{chunk-KV2AOLDF.js → chunk-MQXIVJ35.js} +18 -29
  80. package/dist/{chunk-P3JGPQFL.js → chunk-N5UK64DP.js} +4 -4
  81. package/dist/chunk-NDDGJUXD.js +81 -0
  82. package/dist/chunk-NEKRRTYW.js +56 -0
  83. package/dist/{chunk-4ZG3XFUR.js → chunk-NLFAQR7Z.js} +12 -1
  84. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  85. package/dist/{chunk-T3Z6VAAF.js → chunk-OJTRZGR3.js} +53 -92
  86. package/dist/{chunk-5DQRIYDZ.js → chunk-PBP4B7XR.js} +3 -3
  87. package/dist/{chunk-NQ6UCCOD.js → chunk-PJJ6MY27.js} +8 -8
  88. package/dist/chunk-PMZCIOCJ.js +25 -0
  89. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  90. package/dist/{chunk-7C6RYZGQ.js → chunk-PVAMAVBB.js} +5 -4
  91. package/dist/chunk-QDC3K2U3.js +262 -0
  92. package/dist/{chunk-JEQQR47K.js → chunk-QKIFBZKT.js} +173 -14
  93. package/dist/{chunk-R7LNVMCS.js → chunk-QMXC4JB7.js} +70 -78
  94. package/dist/chunk-QSNYB6ZV.js +195 -0
  95. package/dist/chunk-QTFGO774.js +644 -0
  96. package/dist/{chunk-ODFEOB4F.js → chunk-R23Z6K6I.js} +27 -9
  97. package/dist/{chunk-3UUY7R3Z.js → chunk-R32CLGZ6.js} +14 -14
  98. package/dist/chunk-R346GLFC.js +31 -0
  99. package/dist/chunk-RKSR6VSF.js +132 -0
  100. package/dist/{chunk-N5XKWMDW.js → chunk-SCYB3HA4.js} +73 -27
  101. package/dist/{chunk-PZ4I4JE2.js → chunk-SINK3QR6.js} +135 -125
  102. package/dist/{chunk-5QKCQQ3E.js → chunk-SUW5DORT.js} +2 -2
  103. package/dist/chunk-T56WDKA5.js +183 -0
  104. package/dist/{chunk-ECUO3KDP.js → chunk-TD3PGPQA.js} +87 -26
  105. package/dist/{chunk-HKO36JWF.js → chunk-THYWACCR.js} +31 -3
  106. package/dist/{chunk-LXPJXFM5.js → chunk-TVH4ONAM.js} +18 -12
  107. package/dist/chunk-TVHHYFHE.js +255 -0
  108. package/dist/chunk-U2WB7TZS.js +271 -0
  109. package/dist/{chunk-NNNWO6F2.js → chunk-UAPGZHYC.js} +237 -33
  110. package/dist/{chunk-MIX5N5AC.js → chunk-UEDMSP56.js} +415 -160
  111. package/dist/{chunk-WIE7ZOSW.js → chunk-UXN6JT4W.js} +3 -3
  112. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  113. package/dist/{chunk-MV2VUEJC.js → chunk-VEGN6WIQ.js} +2 -2
  114. package/dist/chunk-VKFQTNDV.js +66 -0
  115. package/dist/{chunk-FALJGAWU.js → chunk-VKRH2TCS.js} +2 -2
  116. package/dist/{chunk-A2NJGIB3.js → chunk-VN3SHNBN.js} +2 -2
  117. package/dist/{chunk-XK56QHLX.js → chunk-VPKWYKEY.js} +19 -5
  118. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  119. package/dist/{chunk-EQ63NRB7.js → chunk-WNP7O5WZ.js} +3 -3
  120. package/dist/chunk-WR6U3OVP.js +45 -0
  121. package/dist/{chunk-TEO2TLVN.js → chunk-XKA2ICR3.js} +1051 -1196
  122. package/dist/{chunk-3V5AYSEQ.js → chunk-Y45G3AXC.js} +72 -65
  123. package/dist/{chunk-J5Q24KAG.js → chunk-Y4CAGMM6.js} +2 -2
  124. package/dist/chunk-YAKGTXEV.js +17 -0
  125. package/dist/{chunk-ZI647VB5.js → chunk-YPI3QQCF.js} +2 -2
  126. package/dist/{chunk-YW7UVM5V.js → chunk-ZAZB4JMW.js} +55 -11
  127. package/dist/{chunk-HCBCAYZU.js → chunk-ZJLUDYFY.js} +11 -11
  128. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  129. package/dist/{chunk-IFBNV6H6.js → chunk-ZW55JB7N.js} +3 -3
  130. package/dist/cli/index.js +48 -37
  131. package/dist/clio-IT3G3VQH.js +25 -0
  132. package/dist/{code-nav-LMW275PA.js → code-nav-RK6S7F6E.js} +8 -8
  133. package/dist/codewiki/build-worker.js +1 -1
  134. package/dist/{compile-cache-CVJMMODC.js → compile-cache-OQAVB7Y5.js} +3 -5
  135. package/dist/{components-ZFA3SAER.js → components-UBWCQSRW.js} +6 -6
  136. package/dist/{config-RXS5T3JT.js → config-3QZRWZJF.js} +73 -61
  137. package/dist/configure-FL7Y3KJF.js +54 -0
  138. package/dist/{context-MVOORGMF.js → context-5HE7ODYK.js} +61 -49
  139. package/dist/{context-I3BTOTCS.js → context-KYQFRVDC.js} +11 -11
  140. package/dist/{context-PALKKQYL.js → context-XNHL75JV.js} +43 -28
  141. package/dist/{context-clear-N2WOYZ2K.js → context-clear-N545L53A.js} +60 -48
  142. package/dist/{context-working-set-MIEVECVZ.js → context-working-set-QHKXSV2F.js} +15 -13
  143. package/dist/{dispatch-runner-VVA4SRRH.js → dispatch-runner-RGIE5PCT.js} +109 -72
  144. package/dist/{docs-7LQ23DLM.js → docs-5NAF6AU7.js} +7 -13
  145. package/dist/doctor-ZGPEGHIP.js +772 -0
  146. package/dist/{eval-IJ5VEZDJ.js → eval-GXLL44RD.js} +106 -86
  147. package/dist/eval-inventory-HBWSWQOK.js +315 -0
  148. package/dist/{evidence-L5APPXNV.js → evidence-HWLBRH3Q.js} +209 -51
  149. package/dist/{evolve-RGNKFJ52.js → evolve-FTZBMNVW.js} +57 -45
  150. package/dist/{extensions-7WYWUX5A.js → extensions-VHRBEID7.js} +7 -7
  151. package/dist/{fleet-6CNVBZZP.js → fleet-CKZHJWZJ.js} +215 -114
  152. package/dist/{fleet-commands-L2SXSYEI.js → fleet-commands-EXDXBMV6.js} +13 -12
  153. package/dist/fleet-decisions-OTHB6KRL.js +157 -0
  154. package/dist/{fleet-graph-2J3OOIPO.js → fleet-graph-YTEZUCUT.js} +20 -17
  155. package/dist/fleet-inspect-SS6YMDCK.js +445 -0
  156. package/dist/{fleet-preflight-CZRJ4JP5.js → fleet-preflight-PBY4VYOM.js} +6 -9
  157. package/dist/{fleet-validate-C5RI6DP7.js → fleet-validate-KMEM5L3S.js} +25 -20
  158. package/dist/fleet-verify-QD5M7E7Q.js +178 -0
  159. package/dist/fleet-view-WAMJYNDT.js +94 -0
  160. package/dist/{init-VBN2ACVA.js → init-5XQRBOFV.js} +79 -66
  161. package/dist/install-NKNG7KD4.js +13 -0
  162. package/dist/interop-34TVO25M.js +116 -0
  163. package/dist/{library-JHGUMLY2.js → library-3QY6KF57.js} +25 -21
  164. package/dist/{memory-K4OQIYWG.js → memory-L4UTIIIW.js} +59 -47
  165. package/dist/{models-2NCZUWDD.js → models-ZVX3QOWE.js} +47 -37
  166. package/dist/{monitor-MMVTJABD.js → monitor-CEKVSYTS.js} +67 -57
  167. package/dist/{orchestrator-ZKBPCHW6.js → orchestrator-77BAP6BC.js} +7633 -7699
  168. package/dist/panes-7STHOAUJ.js +103 -0
  169. package/dist/panes-SHAUIRXY.js +60 -0
  170. package/dist/{paths-DBXMZMDU.js → paths-L7LGY6RN.js} +6 -6
  171. package/dist/{reset-DD5JGOY3.js → reset-EOLM7GVE.js} +15 -14
  172. package/dist/resources-74GKTLSF.js +115 -0
  173. package/dist/{run-QEGNX7FL.js → run-HBAUJNNZ.js} +139 -98
  174. package/dist/{share-JKD3BQMW.js → share-G3APVLVP.js} +25 -21
  175. package/dist/{skills-LMQIKDOZ.js → skills-35HHUKCR.js} +37 -27
  176. package/dist/{skills-eval-I7X2774U.js → skills-eval-QN4HSHDC.js} +80 -73
  177. package/dist/skills-inventory-J357J34F.js +129 -0
  178. package/dist/slash-commands-JZZCQA32.js +79 -0
  179. package/dist/{steer-CF5TDANS.js → steer-XAVHJM22.js} +4 -4
  180. package/dist/{support-I7LOJLIF.js → support-U7QOWY26.js} +7 -7
  181. package/dist/{targets-RUSR6B5Z.js → targets-DSM6CY3M.js} +67 -59
  182. package/dist/{terminal-lease-QYVORFR4.js → terminal-lease-JOPFUVEM.js} +15 -10
  183. package/dist/tools-MKNWVPBH.js +29 -0
  184. package/dist/{trace-ODOQIVIW.js → trace-ECQ7TIYZ.js} +194 -7
  185. package/dist/tui-primitives-K5PASC3O.js +17 -0
  186. package/dist/{uninstall-ZJF5H5ZN.js → uninstall-N34PCTGJ.js} +6 -8
  187. package/dist/{upgrade-XANW3FXB.js → upgrade-H7TOM7YL.js} +37 -62
  188. package/dist/{usage-4H7ZRXQT.js → usage-X52N3IDJ.js} +70 -59
  189. package/dist/{verifiers-UZXNBZEB.js → verifiers-EJTVVSMA.js} +174 -14
  190. package/dist/{verify-BVKWTNDL.js → verify-YJL6XET2.js} +12 -11
  191. package/dist/{web-fetch-2YHJ3KTG.js → web-fetch-MPIFL3LL.js} +3 -4
  192. package/dist/{wiki-generate-MY7WV2QI.js → wiki-generate-4NDZTQ4B.js} +86 -75
  193. package/dist/with-panes-OBOBFIIR.js +818 -0
  194. package/dist/worker/entry.js +131 -91
  195. package/docs/README.md +3 -2
  196. package/docs/acp.md +25 -4
  197. package/docs/alcf-provider.md +1 -1
  198. package/docs/architecture.md +2 -2
  199. package/docs/artifact-versions.md +4 -1
  200. package/docs/built-in-agents.md +40 -32
  201. package/docs/capacity-and-scheduling.md +43 -5
  202. package/docs/commands-and-modes.md +39 -4
  203. package/docs/config-knobs-audit.md +3 -0
  204. package/docs/configuration-and-targets.md +138 -167
  205. package/docs/context-engine.md +1 -1
  206. package/docs/development-pipeline.md +19 -0
  207. package/docs/dispatch-typed-intent.md +385 -0
  208. package/docs/documentation-coverage.md +2 -2
  209. package/docs/documentation-guide.md +1 -1
  210. package/docs/environment-variables.md +3 -1
  211. package/docs/eval-runner.md +1 -1
  212. package/docs/evals-internal.md +1 -1
  213. package/docs/evidence-and-memory.md +2 -2
  214. package/docs/evolution.md +1 -1
  215. package/docs/exit-codes-and-output.md +3 -1
  216. package/docs/extensions-and-sharing.md +25 -1
  217. package/docs/fleet-demo-runbook.md +6 -3
  218. package/docs/fleet-dispatch.md +30 -7
  219. package/docs/installation-and-lifecycle.md +16 -3
  220. package/docs/middleware-and-components.md +1 -1
  221. package/docs/model-catalog.md +10 -1
  222. package/docs/observability.md +3 -3
  223. package/docs/proactive-memory.md +1 -1
  224. package/docs/prompt-envelope-and-tools.md +1 -1
  225. package/docs/provider-adapter-cookbook.md +1 -1
  226. package/docs/release-cut-checklist.md +164 -177
  227. package/docs/safety-model.md +2 -2
  228. package/docs/scientific-validation.md +3 -3
  229. package/docs/session-lifecycle.md +1 -1
  230. package/docs/skills-marketplace.md +1 -1
  231. package/docs/tool-usage.md +18 -8
  232. package/docs/trace-store.md +16 -11
  233. package/docs/troubleshooting.md +2 -2
  234. package/docs/tui-design.md +1 -1
  235. package/docs/worker-dispatch-mechanics.md +1 -1
  236. package/evals/README.md +5 -0
  237. package/evals/behavioral-corpus-grader.mjs +103 -0
  238. package/evals/behavioral-machinery-baseline.json +2276 -0
  239. package/evals/behavioral-machinery-driver.ts +250 -0
  240. package/evals/behavioral-machinery-support.ts +253 -0
  241. package/evals/behavioral-machinery.yaml +614 -0
  242. package/evals/behavioral-model-negative-control.yaml +68 -0
  243. package/evals/behavioral-model.yaml +216 -0
  244. package/evals/fixtures/behavioral-facts.txt +3 -0
  245. package/evals/fixtures/behavioral-main.ts +7 -0
  246. package/evals/fixtures/decoy/note.txt +2 -0
  247. package/evals/fixtures/private/credentials.txt +1 -0
  248. package/evals/tracked-metrics-baseline.yaml +229 -0
  249. package/evals/tracked-metrics-grader.mjs +129 -0
  250. package/package.json +8 -16
  251. package/skills/README.md +6 -6
  252. package/skills/coding/ast-grep/SKILL.md +8 -2
  253. package/skills/coding/coding-standards/SKILL.md +8 -2
  254. package/skills/coding/prototype/SKILL.md +8 -2
  255. package/skills/coding/tdd/SKILL.md +8 -2
  256. package/skills/context/context-handoff/SKILL.md +12 -3
  257. package/skills/context/context-handoff/evals.md +3 -3
  258. package/skills/context/context-prime/SKILL.md +8 -2
  259. package/skills/context/context-prime/evals.md +2 -2
  260. package/skills/git/file-ticket/SKILL.md +9 -4
  261. package/skills/git/file-ticket/evals.md +2 -2
  262. package/skills/git/fix-issue/SKILL.md +12 -5
  263. package/skills/git/fix-issue/evals.md +4 -4
  264. package/skills/git/resolve-merge-conflicts/SKILL.md +8 -2
  265. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  266. package/skills/git/ship/SKILL.md +9 -3
  267. package/skills/git/ship/evals.md +4 -4
  268. package/skills/git/worktree-create/SKILL.md +7 -2
  269. package/skills/git/worktree-create/evals.md +6 -6
  270. package/skills/git/worktree-merge/SKILL.md +7 -2
  271. package/skills/git/worktree-merge/evals.md +6 -6
  272. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +14 -8
  273. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +3 -3
  274. package/skills/meta/{clio-test → clio-coder-test}/SKILL.md +11 -5
  275. package/skills/meta/{clio-test → clio-coder-test}/evals.md +1 -1
  276. package/skills/meta/credentials/SKILL.md +9 -2
  277. package/skills/meta/find-skills/SKILL.md +8 -2
  278. package/skills/meta/herdr/SKILL.md +8 -2
  279. package/skills/meta/skill-craft/SKILL.md +21 -4
  280. package/skills/planning/architecture/SKILL.md +9 -3
  281. package/skills/planning/backlog/SKILL.md +8 -2
  282. package/skills/planning/prd/SKILL.md +8 -2
  283. package/skills/planning/product-intent/SKILL.md +8 -2
  284. package/skills/planning/tech-spec/SKILL.md +9 -3
  285. package/skills/registry.yaml +66 -66
  286. package/skills/research/arxiv-literature/SKILL.md +8 -2
  287. package/skills/research/experiment-protocol/SKILL.md +9 -2
  288. package/skills/research/scientific-debugging/SKILL.md +9 -2
  289. package/skills/research/scientific-debugging/evals.md +2 -2
  290. package/skills/research/scientific-modernization/SKILL.md +9 -2
  291. package/skills/skill-marketplace.json +257 -38
  292. package/skills/workflow/cut-it/SKILL.md +10 -2
  293. package/skills/workflow/design-council/SKILL.md +11 -2
  294. package/skills/workflow/grill-me/SKILL.md +8 -2
  295. package/skills/workflow/workflow-distiller/SKILL.md +8 -2
  296. package/src/cli/acp.ts +8 -4
  297. package/src/cli/argv.ts +25 -0
  298. package/src/cli/auth.ts +2 -2
  299. package/src/cli/bootstrap-generate.ts +5 -5
  300. package/src/cli/clio.ts +6 -1
  301. package/src/cli/config-inspect.ts +3 -3
  302. package/src/cli/configure-interop.ts +1 -1
  303. package/src/cli/configure.ts +50 -48
  304. package/src/cli/default-target.ts +1 -1
  305. package/src/cli/docs.ts +6 -6
  306. package/src/cli/doctor-naming.ts +323 -0
  307. package/src/cli/doctor-panes.ts +156 -0
  308. package/src/cli/doctor-toolchain.ts +78 -0
  309. package/src/cli/doctor.ts +34 -1
  310. package/src/cli/eval-inventory.ts +436 -0
  311. package/src/cli/eval.ts +13 -0
  312. package/src/cli/evidence-detail.ts +88 -0
  313. package/src/cli/evidence-inventory.ts +183 -0
  314. package/src/cli/evidence.ts +30 -5
  315. package/src/cli/fleet-decisions.ts +69 -0
  316. package/src/cli/fleet-inspect.ts +334 -0
  317. package/src/cli/fleet-preflight.ts +1 -1
  318. package/src/cli/fleet-verify.ts +133 -0
  319. package/src/cli/fleet-view.ts +827 -0
  320. package/src/cli/fleet.ts +154 -40
  321. package/src/cli/index.ts +14 -2
  322. package/src/cli/interop-inspect.ts +128 -0
  323. package/src/cli/interop.ts +34 -0
  324. package/src/cli/models.ts +3 -3
  325. package/src/cli/modes/print.ts +1 -1
  326. package/src/cli/panes.ts +35 -0
  327. package/src/cli/reset.ts +6 -3
  328. package/src/cli/run.ts +67 -13
  329. package/src/cli/share.ts +1 -1
  330. package/src/cli/skills-eval.ts +11 -11
  331. package/src/cli/skills-inventory.ts +185 -0
  332. package/src/cli/skills.ts +16 -13
  333. package/src/cli/targets.ts +23 -24
  334. package/src/cli/tools.ts +321 -0
  335. package/src/cli/trace-inspect.ts +252 -0
  336. package/src/cli/trace.ts +64 -2
  337. package/src/cli/uninstall.ts +2 -2
  338. package/src/cli/upgrade.ts +29 -34
  339. package/src/cli/usage.ts +2 -2
  340. package/src/cli/validate-model.ts +1 -1
  341. package/src/cli/verifiers-inspect.ts +347 -0
  342. package/src/cli/verifiers.ts +9 -0
  343. package/src/cli/wiki-generate.ts +5 -5
  344. package/src/core/bash-exec.ts +1 -1
  345. package/src/core/boot-trace.ts +3 -3
  346. package/src/core/bus-events.ts +4 -0
  347. package/src/core/bus-trace.ts +2 -2
  348. package/src/core/compile-cache.ts +1 -1
  349. package/src/core/config.ts +1070 -845
  350. package/src/core/defaults.ts +342 -463
  351. package/src/core/domain-loader.ts +6 -4
  352. package/src/core/event-bus.ts +1 -1
  353. package/src/core/file-references.ts +78 -88
  354. package/src/core/git-commit-attribution.ts +3 -9
  355. package/src/core/guardrails.ts +24 -4
  356. package/src/core/naming-compat.ts +45 -0
  357. package/src/core/naming-events.ts +62 -0
  358. package/src/core/recent-models.ts +1 -7
  359. package/src/core/residency-protection.ts +4 -8
  360. package/src/core/resolve-config-value.ts +1 -1
  361. package/src/core/response-model-id.ts +0 -14
  362. package/src/core/response-schema.ts +44 -4
  363. package/src/core/session-routing.ts +84 -74
  364. package/src/core/skill-activation.ts +18 -0
  365. package/src/core/termination.ts +4 -4
  366. package/src/core/theme-token-hex.ts +43 -0
  367. package/src/core/timers.ts +2 -12
  368. package/src/core/tool-names.ts +2 -1
  369. package/src/core/xdg.ts +1 -1
  370. package/src/domains/agents/catalog.ts +2 -12
  371. package/src/domains/agents/extension.ts +3 -3
  372. package/src/domains/agents/fleets/build-review.md +0 -3
  373. package/src/domains/agents/fleets/build-test.md +0 -3
  374. package/src/domains/agents/registry.ts +7 -7
  375. package/src/domains/agents/result-contract-filesystem.ts +32 -0
  376. package/src/domains/agents/result-contract.ts +165 -36
  377. package/src/domains/agents/spec.ts +0 -11
  378. package/src/domains/config/classify.ts +37 -46
  379. package/src/domains/config/extension.ts +5 -5
  380. package/src/domains/config/keybindings.ts +48 -47
  381. package/src/domains/config/watcher.ts +1 -1
  382. package/src/domains/context/codewiki/indexer.ts +1 -1
  383. package/src/domains/context/extension.ts +3 -3
  384. package/src/domains/context/prompt-context.ts +1 -1
  385. package/src/domains/context/wiki/assemble.ts +2 -2
  386. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  387. package/src/domains/context/working-set/replay/report.ts +1 -1
  388. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  389. package/src/domains/dispatch/active-route-planner.ts +2 -2
  390. package/src/domains/dispatch/admission-error.ts +9 -0
  391. package/src/domains/dispatch/admission.ts +22 -21
  392. package/src/domains/dispatch/agent-candidates.ts +1 -1
  393. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  394. package/src/domains/dispatch/agent-ledger.ts +1 -1
  395. package/src/domains/dispatch/assignment.ts +5 -5
  396. package/src/domains/dispatch/capacity-lease.ts +23 -6
  397. package/src/domains/dispatch/code-step.ts +1 -1
  398. package/src/domains/dispatch/contract.ts +2 -2
  399. package/src/domains/dispatch/council-topology.ts +398 -0
  400. package/src/domains/dispatch/extension.ts +287 -111
  401. package/src/domains/dispatch/fleet-node-prompt.ts +62 -0
  402. package/src/domains/dispatch/fleet-plan.ts +7 -2
  403. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  404. package/src/domains/dispatch/fleet-run.ts +59 -3
  405. package/src/domains/dispatch/gate-decisions.ts +36 -15
  406. package/src/domains/dispatch/gate-role-prompts.ts +9 -0
  407. package/src/domains/dispatch/gate-topology.ts +289 -0
  408. package/src/domains/dispatch/index.ts +19 -0
  409. package/src/domains/dispatch/intent-compatibility.ts +330 -0
  410. package/src/domains/dispatch/intent.ts +85 -1
  411. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  412. package/src/domains/dispatch/path-scope.ts +0 -61
  413. package/src/domains/dispatch/placement.ts +2 -2
  414. package/src/domains/dispatch/receipt-findings.ts +1 -1
  415. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  416. package/src/domains/dispatch/reservation-store.ts +24 -27
  417. package/src/domains/dispatch/route-decision.ts +1 -1
  418. package/src/domains/dispatch/route-history.ts +1 -1
  419. package/src/domains/dispatch/route-policy.ts +1 -1
  420. package/src/domains/dispatch/route-readiness.ts +0 -28
  421. package/src/domains/dispatch/run-event-journal-bridge.ts +149 -0
  422. package/src/domains/dispatch/run-event-journal.ts +599 -0
  423. package/src/domains/dispatch/state.ts +45 -1
  424. package/src/domains/dispatch/tool-stats.ts +1 -1
  425. package/src/domains/dispatch/transport.ts +2 -19
  426. package/src/domains/dispatch/types.ts +16 -3
  427. package/src/domains/dispatch/validation.ts +33 -8
  428. package/src/domains/dispatch/worker-protocol.ts +2 -2
  429. package/src/domains/eval/artifacts/store.ts +5 -4
  430. package/src/domains/eval/compare/compare.ts +3 -16
  431. package/src/domains/eval/compare/thresholds.ts +0 -8
  432. package/src/domains/eval/execution-provenance.ts +1 -1
  433. package/src/domains/eval/inventory.ts +113 -0
  434. package/src/domains/eval/metrics/token-stream.ts +0 -7
  435. package/src/domains/eval/report.ts +1 -1
  436. package/src/domains/eval/runner.ts +1 -1
  437. package/src/domains/eval/runners/clio-run.ts +7 -6
  438. package/src/domains/eval/runners/external-command.ts +4 -3
  439. package/src/domains/eval/schema/artifact.ts +1 -1
  440. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  441. package/src/domains/eval/schema/behavioral.ts +7 -6
  442. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  443. package/src/domains/eval/schema/naming.ts +10 -0
  444. package/src/domains/eval/schema/serving.ts +31 -0
  445. package/src/domains/eval/schema/suite.ts +2 -2
  446. package/src/domains/eval/schema/validate.ts +9 -5
  447. package/src/domains/eval/schema/verdict.ts +4 -2
  448. package/src/domains/eval/store.ts +12 -2
  449. package/src/domains/eval/suites/run.ts +12 -6
  450. package/src/domains/eval/types.ts +1 -1
  451. package/src/domains/eval/workspaces/git.ts +1 -1
  452. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  453. package/src/domains/evidence/build.ts +13 -5
  454. package/src/domains/evidence/store.ts +6 -0
  455. package/src/domains/interop/consent.ts +7 -7
  456. package/src/domains/interop/extension.ts +1 -1
  457. package/src/domains/lifecycle/doctor.ts +27 -21
  458. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  459. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  460. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  461. package/src/domains/lifecycle/migrations/index.ts +20 -1
  462. package/src/domains/lifecycle/naming-history.ts +153 -0
  463. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  464. package/src/domains/lifecycle/naming-resources.ts +261 -0
  465. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  466. package/src/domains/lifecycle/naming-yazi.ts +81 -0
  467. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  468. package/src/domains/memory/index.ts +0 -1
  469. package/src/domains/memory/task-memory-handoff.ts +6 -3
  470. package/src/domains/memory/task-memory-policy.ts +6 -10
  471. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  472. package/src/domains/middleware/index.ts +7 -0
  473. package/src/domains/middleware/marketplace-offer.ts +339 -0
  474. package/src/domains/middleware/memory-intervention.ts +33 -21
  475. package/src/domains/middleware/runtime.ts +2 -2
  476. package/src/domains/mux/contract.ts +566 -0
  477. package/src/domains/mux/detect.ts +182 -0
  478. package/src/domains/mux/dock-controller.ts +365 -0
  479. package/src/domains/mux/extension.ts +53 -0
  480. package/src/domains/mux/index.ts +116 -0
  481. package/src/domains/mux/manifest.ts +6 -0
  482. package/src/domains/mux/operations.ts +192 -0
  483. package/src/domains/mux/pane-registry.ts +90 -0
  484. package/src/domains/mux/protocol.ts +62 -0
  485. package/src/domains/mux/socket-client.ts +964 -0
  486. package/src/domains/mux/types.ts +265 -0
  487. package/src/domains/mux/viewer-command.ts +59 -0
  488. package/src/domains/mux/yazi/assets/init.lua +2 -0
  489. package/src/domains/mux/yazi/assets/plugins/git.yazi/LICENSE +21 -0
  490. package/src/domains/mux/yazi/assets/plugins/git.yazi/README.md +78 -0
  491. package/src/domains/mux/yazi/assets/plugins/git.yazi/main.lua +255 -0
  492. package/src/domains/mux/yazi/assets/plugins/git.yazi/types.lua +12 -0
  493. package/src/domains/mux/yazi/assets/yazi.toml +17 -0
  494. package/src/domains/mux/yazi/event-stream.ts +182 -0
  495. package/src/domains/mux/yazi/profile.ts +299 -0
  496. package/src/domains/mux/yazi/session.ts +251 -0
  497. package/src/domains/mux/yazi/theme.ts +30 -0
  498. package/src/domains/observability/cost.ts +21 -0
  499. package/src/domains/observability/extension.ts +1 -1
  500. package/src/domains/observability/index.ts +2 -0
  501. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  502. package/src/domains/observability/projection.ts +1 -1
  503. package/src/domains/observability/trace-store.ts +63 -11
  504. package/src/domains/prompts/compiler.ts +2 -2
  505. package/src/domains/prompts/extension.ts +3 -3
  506. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -1
  507. package/src/domains/prompts/fragments/operating/skills.md +25 -18
  508. package/src/domains/providers/endpoint-capacity.ts +154 -22
  509. package/src/domains/providers/endpoint-slots-store.ts +189 -0
  510. package/src/domains/providers/extension.ts +25 -8
  511. package/src/domains/providers/index.ts +22 -0
  512. package/src/domains/providers/knowledge-base-path.ts +1 -1
  513. package/src/domains/providers/model-runtime-capabilities.ts +46 -2
  514. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  515. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +4 -4
  516. package/src/domains/providers/plugins.ts +1 -1
  517. package/src/domains/providers/resolver.ts +1 -1
  518. package/src/domains/providers/runtimes/boot-manifest.ts +1 -0
  519. package/src/domains/providers/runtimes/builtins.ts +2 -0
  520. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  521. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  522. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  523. package/src/domains/providers/runtimes/common/probe-helpers.ts +2 -2
  524. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  525. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  526. package/src/domains/providers/runtimes/protocol/litellm.ts +285 -0
  527. package/src/domains/providers/support.ts +1 -0
  528. package/src/domains/providers/target-model-cache.ts +124 -0
  529. package/src/domains/providers/types/knowledge-base.ts +13 -0
  530. package/src/domains/providers/types/local-model-quirks.ts +2 -2
  531. package/src/domains/providers/types/target-descriptor.ts +3 -3
  532. package/src/domains/resources/extension.ts +1 -1
  533. package/src/domains/resources/index.ts +3 -0
  534. package/src/domains/resources/library.ts +6 -6
  535. package/src/domains/resources/prompts/loader.ts +1 -1
  536. package/src/domains/resources/skills/content-hash.ts +7 -6
  537. package/src/domains/resources/skills/evals.ts +1 -1
  538. package/src/domains/resources/skills/install.ts +36 -12
  539. package/src/domains/resources/skills/loader.ts +72 -13
  540. package/src/domains/resources/skills/marketplace.ts +21 -2
  541. package/src/domains/resources/skills/promotion.ts +214 -0
  542. package/src/domains/safety/action-classifier.ts +6 -0
  543. package/src/domains/safety/audit.ts +2 -2
  544. package/src/domains/safety/finish-contract.ts +2 -1
  545. package/src/domains/safety/run-effects.ts +1 -1
  546. package/src/domains/scheduling/extension.ts +4 -4
  547. package/src/domains/session/archive-readers.ts +9 -1
  548. package/src/domains/session/compaction/branch-summary.ts +4 -0
  549. package/src/domains/session/compaction/compact.ts +1 -1
  550. package/src/domains/session/compaction/tokens.ts +4 -0
  551. package/src/domains/session/context-accounting.ts +1 -1
  552. package/src/domains/session/decision-board.ts +1 -1
  553. package/src/domains/session/extension.ts +1 -1
  554. package/src/domains/session/handoff.ts +2 -2
  555. package/src/domains/session/prompt-manifest.ts +0 -5
  556. package/src/domains/session/protected-artifact-journal.ts +12 -6
  557. package/src/domains/session/retry.ts +1 -1
  558. package/src/domains/share/archive.ts +85 -36
  559. package/src/domains/toolchain/archive.ts +175 -0
  560. package/src/domains/toolchain/contract.ts +28 -0
  561. package/src/domains/toolchain/extension.ts +47 -0
  562. package/src/domains/toolchain/index.ts +39 -0
  563. package/src/domains/toolchain/install.ts +327 -0
  564. package/src/domains/toolchain/manifest.ts +8 -0
  565. package/src/domains/toolchain/paths.ts +34 -0
  566. package/src/domains/toolchain/registry.ts +265 -0
  567. package/src/domains/toolchain/remove.ts +218 -0
  568. package/src/domains/toolchain/resolve.ts +182 -0
  569. package/src/domains/toolchain/types.ts +113 -0
  570. package/src/domains/toolchain/version.ts +88 -0
  571. package/src/engine/acp/adapter.ts +3 -3
  572. package/src/engine/acp/event-mapper.ts +3 -3
  573. package/src/engine/acp/server.ts +440 -96
  574. package/src/engine/acp/tool-mediator.ts +2 -2
  575. package/src/engine/acp/types.ts +20 -2
  576. package/src/engine/alcf-oauth.ts +5 -5
  577. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  578. package/src/engine/api-registry.ts +1 -1
  579. package/src/engine/apis/llamacpp-residency.ts +1 -19
  580. package/src/engine/apis/lmstudio.ts +1 -6
  581. package/src/engine/apis/ollama-native.ts +3 -3
  582. package/src/engine/apis/openai-completions.ts +2 -2
  583. package/src/engine/apis/residency.ts +3 -9
  584. package/src/engine/claude/sdk-module.ts +87 -0
  585. package/src/engine/claude/sdk-runtime.ts +25 -17
  586. package/src/engine/claude/subprocess-runtime.ts +1 -1
  587. package/src/engine/claude/tool-safety.ts +4 -4
  588. package/src/engine/loop-guard.ts +0 -5
  589. package/src/engine/session.ts +14 -7
  590. package/src/engine/tui-primitives.ts +21 -0
  591. package/src/engine/tui.ts +1 -0
  592. package/src/engine/worker-events.ts +6 -6
  593. package/src/engine/worker-runtime.ts +16 -26
  594. package/src/entry/boot-options.ts +2 -0
  595. package/src/entry/orchestrator.ts +207 -90
  596. package/src/entry/panes-activation.ts +31 -0
  597. package/src/entry/with-panes.ts +20 -0
  598. package/src/interactive/application-controller.ts +21 -21
  599. package/src/interactive/bus-notices.ts +2 -2
  600. package/src/interactive/chat-loop.ts +8 -8
  601. package/src/interactive/chat-panel.ts +1 -1
  602. package/src/interactive/clio-editor.ts +105 -1
  603. package/src/interactive/context-activity.ts +8 -6
  604. package/src/interactive/context-meter.ts +3 -6
  605. package/src/interactive/context-overlay.ts +2 -1
  606. package/src/interactive/cost-overlay.ts +3 -1
  607. package/src/interactive/council-grid.ts +3 -5
  608. package/src/interactive/council.ts +11 -0
  609. package/src/interactive/dispatch-board.ts +56 -49
  610. package/src/interactive/editor-bash.ts +21 -0
  611. package/src/interactive/editor-steer.ts +9 -4
  612. package/src/interactive/editor-submit.ts +24 -18
  613. package/src/interactive/external-editor.ts +1 -1
  614. package/src/interactive/file-reference-completion.ts +360 -0
  615. package/src/interactive/footer/dashboard.ts +15 -17
  616. package/src/interactive/footer/notifications.ts +14 -8
  617. package/src/interactive/footer/widgets.ts +2 -44
  618. package/src/interactive/interactive-application.ts +229 -62
  619. package/src/interactive/interactive-event-projection.ts +1 -1
  620. package/src/interactive/interactive-input-runtime.ts +9 -2
  621. package/src/interactive/interactive-presentation.ts +21 -16
  622. package/src/interactive/interactive-shell.ts +2 -2
  623. package/src/interactive/interactive-slash-runtime.ts +99 -23
  624. package/src/interactive/interactive-subscriptions.ts +1 -1
  625. package/src/interactive/interactive-tickers.ts +1 -1
  626. package/src/interactive/keybinding-manager.ts +4 -4
  627. package/src/interactive/layout.ts +1 -1
  628. package/src/interactive/memory-overlay.ts +3 -2
  629. package/src/interactive/modal-marker.ts +151 -0
  630. package/src/interactive/mutation-preview.ts +1 -1
  631. package/src/interactive/mux-bridge.ts +214 -0
  632. package/src/interactive/overlay-frame.ts +62 -14
  633. package/src/interactive/overlay-general-openers.ts +7 -2
  634. package/src/interactive/overlay-key-routing.ts +21 -10
  635. package/src/interactive/overlay-lifecycle.ts +20 -4
  636. package/src/interactive/overlay-model-selectors.ts +43 -6
  637. package/src/interactive/overlay-permission-lifecycle.ts +90 -22
  638. package/src/interactive/overlay-transitions.ts +18 -4
  639. package/src/interactive/overlays/agents.ts +3 -2
  640. package/src/interactive/overlays/ask-user.ts +161 -41
  641. package/src/interactive/overlays/auth-dialog.ts +1 -0
  642. package/src/interactive/overlays/context-reset.ts +29 -4
  643. package/src/interactive/overlays/cwd-fallback.ts +29 -4
  644. package/src/interactive/overlays/decisions.ts +15 -13
  645. package/src/interactive/overlays/extensions.ts +1 -0
  646. package/src/interactive/overlays/fleet-run-approval.ts +4 -3
  647. package/src/interactive/overlays/handoff-review.ts +3 -2
  648. package/src/interactive/overlays/help-reference.ts +2 -0
  649. package/src/interactive/overlays/interop.ts +2 -1
  650. package/src/interactive/overlays/library-install-confirm.ts +2 -1
  651. package/src/interactive/overlays/library-tabs.ts +28 -0
  652. package/src/interactive/overlays/list-overlay.ts +10 -1
  653. package/src/interactive/overlays/message-picker.ts +2 -1
  654. package/src/interactive/overlays/model-scope.ts +86 -0
  655. package/src/interactive/overlays/model-selector.ts +40 -31
  656. package/src/interactive/overlays/prompts.ts +11 -4
  657. package/src/interactive/overlays/session-selector.ts +3 -2
  658. package/src/interactive/overlays/settings-sections.ts +30 -0
  659. package/src/interactive/overlays/settings.ts +849 -268
  660. package/src/interactive/overlays/side-question.ts +3 -2
  661. package/src/interactive/overlays/skills-hub.ts +11 -19
  662. package/src/interactive/overlays/tree-selector.ts +3 -2
  663. package/src/interactive/pane-policy.ts +46 -0
  664. package/src/interactive/panes-runtime.ts +318 -0
  665. package/src/interactive/permission-overlay.ts +2 -2
  666. package/src/interactive/renderers/compaction-summary.ts +29 -0
  667. package/src/interactive/renderers/retry-status.ts +12 -4
  668. package/src/interactive/renderers/tool-execution.ts +4 -4
  669. package/src/interactive/renderers/worker-entry.ts +122 -14
  670. package/src/interactive/session-transcript.ts +3 -3
  671. package/src/interactive/slash-autocomplete.ts +454 -165
  672. package/src/interactive/slash-commands.ts +521 -189
  673. package/src/interactive/slash-spec.ts +160 -17
  674. package/src/interactive/status/controller.ts +2 -2
  675. package/src/interactive/stream-pacing-policy.ts +1 -1
  676. package/src/interactive/tasks-overlay.ts +21 -13
  677. package/src/interactive/terminal-lease.ts +6 -7
  678. package/src/interactive/theme/tokens.ts +3 -14
  679. package/src/interactive/turn-context.ts +58 -13
  680. package/src/interactive/turn-persistence.ts +2 -2
  681. package/src/interactive/turn-prewarm.ts +2 -2
  682. package/src/interactive/turn-runtime.ts +8 -8
  683. package/src/interactive/turn-state.ts +1 -1
  684. package/src/interactive/view/artifacts.ts +120 -9
  685. package/src/interactive/view/view-overlay.ts +14 -10
  686. package/src/interactive/watch-pane.ts +180 -0
  687. package/src/interactive/welcome-dashboard.ts +15 -15
  688. package/src/interactive/worker-progress.ts +11 -5
  689. package/src/interactive/worker-receipts.ts +20 -2
  690. package/src/interactive/worker-stream.ts +6 -4
  691. package/src/interactive/yazi-bridge.ts +451 -0
  692. package/src/tools/ask-user.ts +3 -3
  693. package/src/tools/bash.ts +1 -1
  694. package/src/tools/bootstrap.ts +26 -2
  695. package/src/tools/builtin-tool-catalog.ts +16 -1
  696. package/src/tools/compete-worktrees.ts +108 -17
  697. package/src/tools/context/index.ts +15 -1
  698. package/src/tools/core-bootstrap.ts +2 -1
  699. package/src/tools/dispatch-admission.ts +18 -5
  700. package/src/tools/dispatch-arguments.ts +21 -21
  701. package/src/tools/dispatch-plan.ts +0 -11
  702. package/src/tools/dispatch-run-events.ts +145 -28
  703. package/src/tools/dispatch-runner.ts +40 -13
  704. package/src/tools/dispatch-types.ts +15 -3
  705. package/src/tools/dispatch.ts +2 -2
  706. package/src/tools/executables.ts +17 -14
  707. package/src/tools/find.ts +1 -6
  708. package/src/tools/monitor.ts +4 -4
  709. package/src/tools/observation.ts +54 -4
  710. package/src/tools/observers.ts +0 -33
  711. package/src/tools/panes-surface.ts +38 -0
  712. package/src/tools/panes.ts +112 -0
  713. package/src/tools/policy.ts +10 -1
  714. package/src/tools/presentation.ts +1 -0
  715. package/src/tools/task-worktree.ts +28 -7
  716. package/src/tools/verify/authoring.ts +3 -6
  717. package/src/tools/verify/frontend.ts +1 -1
  718. package/src/tools/web-fetch.ts +1 -1
  719. package/src/worker/entry.ts +4 -3
  720. package/src/worker/protocol.ts +16 -14
  721. package/src/worker/spec-contract.ts +2 -2
  722. package/src/worker/stdin-demux.ts +2 -2
  723. package/dist/chunk-D73KXYPF.js +0 -37
  724. package/dist/chunk-MLOK6ZOS.js +0 -2888
  725. package/dist/chunk-PNY46YEY.js +0 -1581
  726. package/dist/chunk-XDOQXGFO.js +0 -515
  727. package/dist/chunk-YKOFT37S.js +0 -279
  728. package/dist/clio-LT5V7SSZ.js +0 -26
  729. package/dist/configure-2WYWSCSD.js +0 -49
  730. package/dist/doctor-TWBWFK5V.js +0 -165
  731. package/src/engine/apis/degraded-inference.ts +0 -95
  732. /package/skills/meta/{clio-test → clio-coder-test}/references/harness.md +0 -0
  733. /package/skills/meta/{clio-test → clio-coder-test}/references/test-map.md +0 -0
@@ -11,7 +11,7 @@ import { loadDomains } from "../core/domain-loader.js";
11
11
  import type { SafeEventBus } from "../core/event-bus.js";
12
12
  import { expandInlineFileReferencesAsync } from "../core/file-references.js";
13
13
  import { setGitCommitAttributionEnabled } from "../core/git-commit-attribution.js";
14
- import { configureGuardrails } from "../core/guardrails.js";
14
+ import { configureGuardrails, guardrailValuesFromSettings } from "../core/guardrails.js";
15
15
  import { HEADLESS_PERMISSION_DENIED_REASON } from "../core/headless-permission.js";
16
16
  import { rememberRecentModel } from "../core/recent-models.js";
17
17
  import { protectedResidencyModels } from "../core/residency-protection.js";
@@ -49,6 +49,7 @@ import { createDispatchDedupRegistration } from "../domains/dispatch/dedup.js";
49
49
  import { agentRoleFactsResolver } from "../domains/dispatch/execution-role.js";
50
50
  import { readGateDecisionArtifacts, readPendingGateDecisions } from "../domains/dispatch/gate-decisions.js";
51
51
  import { createDispatchDomainModule } from "../domains/dispatch/index.js";
52
+ import { configureRunEventJournal } from "../domains/dispatch/run-event-journal.js";
52
53
  import { type ExtensionsContract, ExtensionsDomainModule } from "../domains/extensions/index.js";
53
54
  import { type InteropContract, InteropDomainModule } from "../domains/interop/index.js";
54
55
  import {
@@ -84,6 +85,7 @@ import {
84
85
  } from "../domains/middleware/dispatch-nudge.js";
85
86
  import {
86
87
  createHookReceiptLog,
88
+ createMarketplaceOfferRegistration,
87
89
  createMiddlewareToolChoiceControl,
88
90
  createSkillsReminderRegistration,
89
91
  type ExtensionHookRoot,
@@ -97,6 +99,7 @@ import { announceMemoryStepEndpoint } from "../domains/middleware/memory-step-en
97
99
  import { createTaskBoardReminderRegistration } from "../domains/middleware/task-board-reminder.js";
98
100
  import { createTaskNudgeRegistration } from "../domains/middleware/task-nudge.js";
99
101
  import { createWatchdogRegistration } from "../domains/middleware/watchdog.js";
102
+ import type { MuxContract } from "../domains/mux/index.js";
100
103
  import type { ObservabilityContract } from "../domains/observability/index.js";
101
104
  import { ObservabilityDomainModule, recordBackgroundMemoryStep } from "../domains/observability/index.js";
102
105
  import type { PromptsContract } from "../domains/prompts/contract.js";
@@ -120,11 +123,13 @@ import {
120
123
  targetRequiresAuth,
121
124
  VALID_THINKING_LEVELS,
122
125
  } from "../domains/providers/index.js";
126
+ import { memoryInterventionModelMaxTokens } from "../domains/providers/model-runtime-capabilities.js";
123
127
  import { getRuntimeRegistry } from "../domains/providers/registry.js";
124
128
  import { registerBuiltinRuntimes } from "../domains/providers/runtimes/builtins.js";
125
129
  import {
126
130
  createResourcesDomainModule,
127
131
  discoverMarketplaceSkills,
132
+ installSkill,
128
133
  modelVisibleSkills,
129
134
  type ResourcesContract,
130
135
  } from "../domains/resources/index.js";
@@ -159,6 +164,7 @@ import {
159
164
  import { createTaskBoardStore } from "../domains/session/task-board.js";
160
165
  import { filterEntriesToActivePath } from "../domains/session/tree/active-path.js";
161
166
  import { type ShareContract, ShareDomainModule } from "../domains/share/index.js";
167
+ import { ToolchainDomainModule } from "../domains/toolchain/index.js";
162
168
  import { createUserTasksStore } from "../domains/user-tasks/store.js";
163
169
  import { type AcpSafeSettingsPatch, type AcpSafeSettingsSnapshot, serveClioAcpAgent } from "../engine/acp/server.js";
164
170
  import { createStdioServerTransport } from "../engine/acp/transport.js";
@@ -175,6 +181,7 @@ import { createChatLoop } from "../interactive/chat-loop.js";
175
181
  import { type RunIo, startInteractive } from "../interactive/index.js";
176
182
  import { buildModelReplayAgentMessagesFromTurns } from "../interactive/model-session-replay.js";
177
183
  import type { BootOptions } from "./boot-options.js";
184
+ import { resolvePanesEnablement } from "./panes-activation.js";
178
185
 
179
186
  export type { BootOptions, HeadlessSamplingOverrides } from "./boot-options.js";
180
187
 
@@ -224,11 +231,11 @@ function bannerConfigurationLine(): string {
224
231
  }
225
232
  // A dangling chat target normalizes to null in the schema, so a deleted
226
233
  // target arrives here as no target at all rather than as a name to report.
227
- const targetId = settings.orchestrator?.target;
234
+ const targetId = settings.chat?.target;
228
235
  if (!targetId) {
229
236
  return chalk.yellow("no model target configured. Run `clio-coder configure` to add one.");
230
237
  }
231
- const model = settings.orchestrator?.model;
238
+ const model = settings.chat?.model;
232
239
  return chalk.dim(`target ${targetId}${model ? ` · model ${model}` : " · no default model"}`);
233
240
  }
234
241
 
@@ -251,7 +258,7 @@ function printJsonSessionHeader(meta: SessionMeta | null): Record<string, unknow
251
258
  cwd: meta.cwd,
252
259
  target: meta.target,
253
260
  model: meta.model,
254
- clioVersion: meta.clioVersion,
261
+ clioCoderVersion: meta.clioCoderVersion,
255
262
  };
256
263
  }
257
264
 
@@ -261,17 +268,17 @@ function applyHeadlessSettingsOverlay(
261
268
  ): ClioSettings {
262
269
  const next = structuredClone(settings);
263
270
  if (!overrides) return next;
264
- const previousTarget = next.orchestrator.target;
271
+ const previousTarget = next.chat.target;
265
272
  if (overrides.target !== undefined) {
266
- next.orchestrator.target = overrides.target;
267
- if (overrides.model === undefined && (previousTarget !== overrides.target || !next.orchestrator.model)) {
273
+ next.chat.target = overrides.target;
274
+ if (overrides.model === undefined && (previousTarget !== overrides.target || !next.chat.model)) {
268
275
  const target = next.targets.find((entry) => entry.id === overrides.target);
269
- if (target) next.orchestrator.model = target.defaultModel ?? null;
276
+ if (target) next.chat.model = target.defaultModel ?? null;
270
277
  }
271
278
  }
272
- if (overrides.model !== undefined) next.orchestrator.model = overrides.model;
273
- if (overrides.thinking !== undefined) next.orchestrator.thinkingLevel = overrides.thinking;
274
- if (overrides.autonomy !== undefined) next.autonomy = overrides.autonomy;
279
+ if (overrides.model !== undefined) next.chat.model = overrides.model;
280
+ if (overrides.thinking !== undefined) next.chat.thinkingLevel = overrides.thinking;
281
+ if (overrides.autonomy !== undefined) next.safety.autonomy = overrides.autonomy;
275
282
  return next;
276
283
  }
277
284
 
@@ -302,9 +309,9 @@ function advanceThinkingLevel(current: ThinkingLevel, available: ReadonlyArray<T
302
309
  * model all send this placeholder so a local llama.cpp or LM Studio endpoint
303
310
  * works without the user inventing a credential.
304
311
  */
305
- const LOCAL_API_KEY_FALLBACK = "clio-local-target";
312
+ const LOCAL_API_KEY_FALLBACK = "clio-coder-local-target";
306
313
 
307
- export async function resolveApiKeyForTarget(
314
+ async function resolveApiKeyForTarget(
308
315
  target: TargetDescriptor,
309
316
  providers: ProvidersContract,
310
317
  signal?: AbortSignal,
@@ -333,6 +340,7 @@ interface BackgroundMemoryRoute {
333
340
  targetId: string;
334
341
  wireModelId: string;
335
342
  endpointKey: string | null;
343
+ modelMaxTokens(configuredMaxTokens: number): number;
336
344
  }
337
345
 
338
346
  function createBackgroundMemoryModelClient(
@@ -341,8 +349,8 @@ function createBackgroundMemoryModelClient(
341
349
  timeoutMs: number,
342
350
  bus: Pick<SafeEventBus, "emit"> | null,
343
351
  ): BackgroundMemoryRoute | null {
344
- const targetId = settings.background.target?.trim();
345
- const wireModelId = settings.background.model?.trim();
352
+ const targetId = settings.context.memory.target?.trim();
353
+ const wireModelId = settings.context.memory.model?.trim();
346
354
  if (!targetId || !wireModelId) return null;
347
355
  // One model cannot both drive the action agent and think its way through a
348
356
  // memory step: the memory call would contend with the agent's own decoding on
@@ -375,6 +383,12 @@ function createBackgroundMemoryModelClient(
375
383
  targetId,
376
384
  wireModelId: refined.wireModelId,
377
385
  endpointKey,
386
+ modelMaxTokens: (configuredMaxTokens) =>
387
+ memoryInterventionModelMaxTokens({
388
+ configuredMaxTokens,
389
+ thinkingMechanism: refined.modelRuntime.thinking.mechanism,
390
+ modelMaxTokens: refined.capabilityDecisions.maxTokens,
391
+ }),
378
392
  client: {
379
393
  // Wrapped at the layer that knows a request left the process: the step
380
394
  // holds endpoint capacity while it is out and publishes the cache
@@ -433,8 +447,8 @@ function createBackgroundMemoryModelClient(
433
447
  */
434
448
  function agentRoleToolWarnings(providers: ProvidersContract, settings: Readonly<ClioSettings>): string[] {
435
449
  const roles: ReadonlyArray<{ label: string; target: string | null; model: string | null }> = [
436
- { label: "orchestrator", target: settings.orchestrator.target, model: settings.orchestrator.model },
437
- { label: "workers.default", target: settings.workers.default.target, model: settings.workers.default.model },
450
+ { label: "orchestrator", target: settings.chat.target, model: settings.chat.model },
451
+ { label: "workers.default", target: settings.fleet.default.target, model: settings.fleet.default.model },
438
452
  ];
439
453
  const warnings: string[] = [];
440
454
  for (const role of roles) {
@@ -466,12 +480,12 @@ function backgroundSharesReasoningModelWithOrchestrator(
466
480
  providers: ProvidersContract,
467
481
  settings: Readonly<ClioSettings>,
468
482
  ): boolean {
469
- const backgroundModel = settings.background.model?.trim();
470
- const orchestratorModel = settings.orchestrator.model?.trim();
483
+ const backgroundModel = settings.context.memory.model?.trim();
484
+ const orchestratorModel = settings.chat.model?.trim();
471
485
  if (!backgroundModel || backgroundModel !== orchestratorModel) return false;
472
- if (settings.background.target?.trim() !== settings.orchestrator.target?.trim()) return false;
486
+ if (settings.context.memory.target?.trim() !== settings.chat.target?.trim()) return false;
473
487
  try {
474
- const status = providers.list().find((entry) => entry.target.id === settings.background.target?.trim());
488
+ const status = providers.list().find((entry) => entry.target.id === settings.context.memory.target?.trim());
475
489
  if (!status) return false;
476
490
  return resolveModelCapabilities(status, backgroundModel, providers.knowledgeBase).reasoning === true;
477
491
  } catch {
@@ -481,7 +495,7 @@ function backgroundSharesReasoningModelWithOrchestrator(
481
495
  }
482
496
  }
483
497
 
484
- export function synthesizeOrchestratorModel(
498
+ function synthesizeOrchestratorModel(
485
499
  providers: ProvidersContract,
486
500
  target: TargetDescriptor,
487
501
  wireModelId: string,
@@ -514,8 +528,8 @@ async function resolveCompactionModel(
514
528
  settings: ClioSettings,
515
529
  providers: ProvidersContract,
516
530
  ): Promise<CompactionResolution | null> {
517
- const targetId = settings.orchestrator?.target ?? null;
518
- const wireModelId = settings.orchestrator?.model ?? null;
531
+ const targetId = settings.chat?.target ?? null;
532
+ const wireModelId = settings.chat?.model ?? null;
519
533
  if (!targetId || !wireModelId) return null;
520
534
  const target = resolveTarget(providers, targetId);
521
535
  if (!target) return null;
@@ -595,7 +609,7 @@ function appendProtectedArtifactRegistryEvent(
595
609
  * subprocess, which makes this the only recording path there is. Returns how
596
610
  * many were folded.
597
611
  */
598
- export function foldDispatchSkillActivations(
612
+ function foldDispatchSkillActivations(
599
613
  session: SessionContract | undefined,
600
614
  payload: { runId?: unknown; skillActivations?: ReadonlyArray<unknown> } | undefined,
601
615
  ): number {
@@ -636,7 +650,7 @@ async function runCompactionFlow(
636
650
  }
637
651
  const resolved = await resolveCompactionModel(settings, providers);
638
652
  if (!resolved) {
639
- throw new Error("no model configured; set orchestrator.target + orchestrator.model");
653
+ throw new Error("no model configured; set chat.target + chat.model");
640
654
  }
641
655
  // Summarize only the active branch: after a /tree switch the raw file
642
656
  // still holds abandoned sibling turns, and a summary that folds them in
@@ -692,7 +706,7 @@ async function runCompactionFlow(
692
706
  * a thrown read/model/persistence failure from the legitimate null no-op that
693
707
  * `runCompactionFlow` returns for an empty session or an unavailable cut.
694
708
  */
695
- export function createProductionAutoCompact(
709
+ function createProductionAutoCompact(
696
710
  session: SessionContract,
697
711
  getSettings: () => ClioSettings,
698
712
  providers: ProvidersContract,
@@ -739,11 +753,11 @@ function estimateTokensAfterCompaction(entries: ReadonlyArray<SessionEntry>, res
739
753
  * ids or target/model refs. Absent scope is a no-op so unconfigured users
740
754
  * feel nothing.
741
755
  */
742
- export function advanceScopedTarget(
756
+ function advanceScopedTarget(
743
757
  settings: Readonly<ClioSettings>,
744
758
  direction: "forward" | "backward",
745
759
  ): { target: string; model: string | null } | null {
746
- const scope = settings.scope ?? [];
760
+ const scope = settings.chat.modelPicker.cycleSet ?? [];
747
761
  if (scope.length === 0) return null;
748
762
  const registry = getRuntimeRegistry();
749
763
  if (registry.list().length === 0) registerBuiltinRuntimes(registry);
@@ -755,8 +769,8 @@ export function advanceScopedTarget(
755
769
  return runtime !== null && isOrchestratorEligibleRuntime(runtime);
756
770
  });
757
771
  if (filteredScope.length === 0) return null;
758
- const activeTarget = settings.orchestrator.target ?? "";
759
- const activeModel = settings.orchestrator.model ?? "";
772
+ const activeTarget = settings.chat.target ?? "";
773
+ const activeModel = settings.chat.model ?? "";
760
774
  const activeCombinedRef = activeTarget.length > 0 && activeModel.length > 0 ? `${activeTarget}/${activeModel}` : "";
761
775
  const idx = filteredScope.findIndex((entry) => entry === activeCombinedRef || entry === activeTarget);
762
776
  const base = idx === -1 ? 0 : idx + (direction === "forward" ? 1 : filteredScope.length - 1);
@@ -844,6 +858,19 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
844
858
  let effectiveSettingsForDispatch: (() => Readonly<ClioSettings>) | null = null;
845
859
  let protectedArtifactStateForDispatch: (() => ProtectedArtifactState) | null = null;
846
860
 
861
+ // Panes are an interactive-surface projection. Headless, ACP, and worker boots
862
+ // gate detection off so they never resolve a socket path or open a descriptor.
863
+ // This mirrors the `interactive` predicate computed after the domains load.
864
+ const muxInteractive = !options.headless && options.acp === undefined && process.env.CLIO_CODER_INTERACTIVE === "1";
865
+ // The rung is settled before the config contract loads, off the settings the
866
+ // interactive entry point already read strictly (`src/cli/clio.ts:31`) and
867
+ // the `--with-panes` / `--no-panes` flag, which wins in both directions. This
868
+ // is why `panes.enabled` is a restart-scoped row: the decision runs once,
869
+ // here. An inactive rung loads nothing: the whole extension, mux domain
870
+ // included, lives behind the dynamic import below.
871
+ const muxEnablement = resolvePanesEnablement(options.panes, options.startupSettings?.interface.panes.enabled);
872
+ const withPanes = muxInteractive && muxEnablement !== "off" ? await import("./with-panes.js") : null;
873
+
847
874
  const result = await loadDomains(
848
875
  [
849
876
  options.startupSettings ? createConfigDomainModule(options.startupSettings) : ConfigDomainModule,
@@ -863,6 +890,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
863
890
  ShareDomainModule,
864
891
  createContextDomainModule({ noContextFiles: options.noContextFiles === true }),
865
892
  ProvidersDomainModule,
893
+ ToolchainDomainModule,
866
894
  SafetyDomainModule,
867
895
  createPromptsDomainModule({
868
896
  noContextFiles: options.noContextFiles === true,
@@ -872,6 +900,16 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
872
900
  SessionDomainModule,
873
901
  ObservabilityDomainModule,
874
902
  SchedulingDomainModule,
903
+ ...(withPanes
904
+ ? [
905
+ withPanes.createMuxDomainModule({
906
+ enabled: muxEnablement,
907
+ log: (level, message) => {
908
+ if (level === "warning") bootStderr(`[mux] ${message}\n`);
909
+ },
910
+ }),
911
+ ]
912
+ : []),
875
913
  // Dispatch resolves worker targets through the session's effective
876
914
  // settings view once it exists (assigned below, after the config
877
915
  // contract loads); until then it falls back to the shared snapshot.
@@ -879,6 +917,11 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
879
917
  getSettings: () => effectiveSettingsForDispatch?.(),
880
918
  getProtectedArtifactState: () => protectedArtifactStateForDispatch?.() ?? { artifacts: [] },
881
919
  autonomyOverride: options.headless?.autonomy !== undefined,
920
+ // The domain owns the durable journal here, not the dispatch
921
+ // tool's event registry: `/run`, a watchdog run, and a model
922
+ // dispatch all have to leave the same transcript behind, and only
923
+ // the last of the three ever reaches that registry.
924
+ journalRunEvents: true,
882
925
  }),
883
926
  LifecycleDomainModule,
884
927
  ],
@@ -915,7 +958,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
915
958
  bootStderr("Clio Coder: --api-key supplied but providers domain unavailable; ignoring.\n");
916
959
  } else {
917
960
  const settingsNow = applyHeadlessSettingsOverlay(config?.get() ?? readSettings(), options.headless);
918
- const activeTargetId = settingsNow.orchestrator?.target;
961
+ const activeTargetId = settingsNow.chat?.target;
919
962
  const target = resolveTarget(providers, activeTargetId);
920
963
  const runtime = target ? providers.getRuntime(target.runtime) : null;
921
964
  if (target && runtime) {
@@ -941,6 +984,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
941
984
  const resources = result.getContract<ResourcesContract>("resources");
942
985
  const extensions = result.getContract<ExtensionsContract>("extensions");
943
986
  const share = result.getContract<ShareContract>("share");
987
+ const mux = result.getContract<MuxContract>("mux");
944
988
  const contextDomain = result.getContract<ContextContract>("context");
945
989
  const interop = result.getContract<InteropContract>("interop");
946
990
  // Boot detection resolves paths only: no `--version` subprocess and no skill
@@ -1034,14 +1078,20 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1034
1078
  bus.on(BusChannels.RuntimeNotice, (payload: unknown) => {
1035
1079
  const notice = payload as { level?: string; message?: string } | undefined;
1036
1080
  if (typeof notice?.message !== "string") return;
1037
- process.stderr.write(`[clio:runtime] ${notice.level ?? "info"}: ${notice.message}\n`);
1081
+ process.stderr.write(`[clio-coder:runtime] ${notice.level ?? "info"}: ${notice.message}\n`);
1038
1082
  });
1039
1083
  }
1040
1084
 
1041
1085
  // Guardrail policy (tool-call budgets, tool byte caps, dispatch ledger cap)
1042
1086
  // resolves settings-first with env as emergency override; install the
1043
1087
  // settings section before any guard registration or tool reads it.
1044
- configureGuardrails((config?.get() ?? readSettings()).guardrails);
1088
+ const resolvedSettings = config?.get() ?? readSettings();
1089
+ configureGuardrails(guardrailValuesFromSettings(resolvedSettings));
1090
+
1091
+ // The run event journal resolves the same way for the same reason: the sink
1092
+ // sits on the dispatch event path, where reading settings.yaml would be both
1093
+ // a cost and a throw site, so the composition root installs the value once.
1094
+ configureRunEventJournal(resolvedSettings.fleet.history.journal);
1045
1095
 
1046
1096
  // Guard registrations on the middleware contract, in order: loop guard,
1047
1097
  // protected artifacts (last among guards so it absorbs protect_path effects
@@ -1135,7 +1185,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1135
1185
  taskMemoryBank.clear();
1136
1186
  taskMemorySessionId = currentSessionId;
1137
1187
  };
1138
- const memorySettings = (config?.get() ?? readSettings()).memory.intervention;
1188
+ const memorySettings = (config?.get() ?? readSettings()).context.memory;
1139
1189
  // Bound late: the registration is built here, but the buffer a deferred
1140
1190
  // reminder lands in belongs to the chat loop that has not been composed yet.
1141
1191
  let deferredMemoryReminderSink: ((message: string) => void) | null = null;
@@ -1185,12 +1235,12 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1185
1235
  })
1186
1236
  .then((result) => {
1187
1237
  for (const error of result.errors) {
1188
- process.stderr.write(`[clio:memory] proposed record not written for ${error}\n`);
1238
+ process.stderr.write(`[clio-coder:memory] proposed record not written for ${error}\n`);
1189
1239
  }
1190
1240
  })
1191
1241
  .catch((error: unknown) => {
1192
1242
  process.stderr.write(
1193
- `[clio:memory] proposed records not written: ${error instanceof Error ? error.message : String(error)}\n`,
1243
+ `[clio-coder:memory] proposed records not written: ${error instanceof Error ? error.message : String(error)}\n`,
1194
1244
  );
1195
1245
  });
1196
1246
  };
@@ -1204,16 +1254,25 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1204
1254
  onDeferredReminder: (message) => deferredMemoryReminderSink?.(message),
1205
1255
  getSettings: () => {
1206
1256
  ensureTaskMemorySession();
1207
- return effectiveSettingsForDispatch?.().memory.intervention ?? memorySettings;
1257
+ const memory = effectiveSettingsForDispatch?.().context.memory ?? memorySettings;
1258
+ return {
1259
+ enabled: memory.enabled,
1260
+ everyNTools: memory.cadenceToolCalls,
1261
+ windowSteps: memory.trajectorySteps,
1262
+ maxTokens: memory.maxOutputTokens,
1263
+ timeoutMs: memory.timeoutMs,
1264
+ };
1208
1265
  },
1209
1266
  getModelClient: () => {
1210
1267
  const settings = effectiveSettingsForDispatch?.();
1211
1268
  backgroundMemoryRoute =
1212
1269
  settings === undefined
1213
1270
  ? null
1214
- : createBackgroundMemoryModelClient(providers, settings, settings.memory.intervention.timeoutMs, bus);
1271
+ : createBackgroundMemoryModelClient(providers, settings, settings.context.memory.timeoutMs, bus);
1215
1272
  return backgroundMemoryRoute?.client ?? null;
1216
1273
  },
1274
+ getModelMaxTokens: (configuredMaxTokens) =>
1275
+ backgroundMemoryRoute?.modelMaxTokens(configuredMaxTokens) ?? configuredMaxTokens,
1217
1276
  // A single-slot local server serves one request at a time, so a memory step
1218
1277
  // started while the operator's turn is streaming either waits behind it or
1219
1278
  // makes the server swap the resident model out to answer. The chat loop
@@ -1252,10 +1311,10 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1252
1311
  });
1253
1312
  if (!interactive) {
1254
1313
  for (const issue of userHooks.fileIssues) {
1255
- process.stderr.write(`[clio:hooks] ${issue.message}\n`);
1314
+ process.stderr.write(`[clio-coder:hooks] ${issue.message}\n`);
1256
1315
  }
1257
1316
  for (const issue of userHooks.issues) {
1258
- process.stderr.write(`[clio:hooks] ${issue.source.sourcePath}#${issue.index}: ${issue.issues.join("; ")}\n`);
1317
+ process.stderr.write(`[clio-coder:hooks] ${issue.source.sourcePath}#${issue.index}: ${issue.issues.join("; ")}\n`);
1259
1318
  }
1260
1319
  }
1261
1320
  termination.onDrain(() => hookReceiptLog.flush());
@@ -1267,11 +1326,29 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1267
1326
  // through these two functions so a fallback added to one surface cannot
1268
1327
  // silently skip another.
1269
1328
  const resolveBaselineAutonomy = (): AutonomyLevel =>
1270
- effectiveSettingsForDispatch?.().autonomy ??
1329
+ effectiveSettingsForDispatch?.().safety.autonomy ??
1271
1330
  options.headless?.autonomy ??
1272
- (config?.get() ?? readSettings()).autonomy ??
1331
+ (config?.get() ?? readSettings()).safety.autonomy ??
1273
1332
  "auto-edit";
1274
1333
  const resolveEffectiveAutonomy = (): AutonomyLevel => activeAcpSessionAutonomy ?? resolveBaselineAutonomy();
1334
+ // Marketplace self-promotion: coordinator-only by this wiring (never a
1335
+ // dispatch worker), local matcher, consented installs and full-auto
1336
+ // autonomous installs both pass the own-marketplace source gate inside the
1337
+ // registration. Registered here because it needs the effective-autonomy
1338
+ // resolution defined one line up.
1339
+ if (resources) {
1340
+ middleware.registerHook(
1341
+ createMarketplaceOfferRegistration({
1342
+ listInstalledSkillNames: () => resources.skills(process.cwd()).items.map((skill) => skill.name),
1343
+ listMarketplaceEntries: () => discoverMarketplaceSkills({ cwd: process.cwd() }).skills,
1344
+ getAutonomy: resolveEffectiveAutonomy,
1345
+ installEntry: (entry, scope) => {
1346
+ const installed = installSkill({ source: entry.sourceUrl, scope, name: entry.name, cwd: process.cwd() });
1347
+ return { path: installed.path, sourceUrl: installed.sourceUrl, installedHash: installed.installedHash };
1348
+ },
1349
+ }),
1350
+ );
1351
+ }
1275
1352
  const middlewareToolChoice = createMiddlewareToolChoiceControl();
1276
1353
  const toolRegistry = createRegistry({
1277
1354
  safety,
@@ -1374,6 +1451,19 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1374
1451
  // Operator-initiated backgrounding is a TUI affordance: the registry is the
1375
1452
  // one object the dispatch tool and the keypress both hold.
1376
1453
  const dispatchBackground = createDispatchBackgroundRegistry();
1454
+ // One `PanesOperations` instance drives both the `panes` tool and the
1455
+ // `/panes` slash command, so the model and the operator cannot be told
1456
+ // different things about the same pane. It also owns the no-mux Yazi chooser,
1457
+ // while model tool registration below remains gated on a live pane host.
1458
+ const panes =
1459
+ withPanes && mux
1460
+ ? withPanes.createPanesRuntime({
1461
+ mux,
1462
+ getSettings: () => getCurrentSettings(),
1463
+ getDispatchSnapshot: () => dispatch.snapshot(),
1464
+ getCwd: () => process.cwd(),
1465
+ })
1466
+ : null;
1377
1467
  registerAllTools(toolRegistry, {
1378
1468
  ...(session
1379
1469
  ? {
@@ -1397,10 +1487,15 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1397
1487
  // provenance and compete winner handling agree with the approval surface.
1398
1488
  getAutonomy: resolveEffectiveAutonomy,
1399
1489
  ...(interactive ? { dispatchBackground } : {}),
1490
+ ...(mux ? { competeMuxWorktrees: mux } : {}),
1491
+ // Registered only when a pane host answered detection, so the tool is
1492
+ // absent from the prompt on a machine with none rather than present and
1493
+ // always refusing.
1494
+ ...(panes && mux?.mode !== "none" ? { panes } : {}),
1400
1495
  getCostCeilingUsd: () => result.getContract<SchedulingContract>("scheduling")?.ceilingUsd() ?? 0,
1401
- ...(config ? { getWorkerRosters: () => config.get().workers.rosters } : {}),
1496
+ ...(config ? { getWorkerRosters: () => config.get().fleet.rosters } : {}),
1402
1497
  getSkillLoaderOptions: () => ({
1403
- trustProjectCompatRoots: config?.get().skills.trustProjectCompatRoots === true,
1498
+ trustProjectCompatRoots: config?.get().integrations.projectResources.trustProjectImports === true,
1404
1499
  disableDiscovery: options.noSkills === true || options.headless?.noSkills === true,
1405
1500
  ...(options.skillPaths && options.skillPaths.length > 0
1406
1501
  ? { explicitSkillPaths: options.skillPaths }
@@ -1441,7 +1536,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1441
1536
  sessionStateGeneration += 1;
1442
1537
  // Child-process seams read the effective setting from the environment,
1443
1538
  // and the session view may override the saved value.
1444
- setGitCommitAttributionEnabled(getCurrentSettings().attribution.gitCommits);
1539
+ setGitCommitAttributionEnabled(getCurrentSettings().integrations.git.commitAttribution);
1445
1540
  };
1446
1541
  const getCurrentSettings = (): ClioSettings => {
1447
1542
  // Recents live in the data dir (core/recent-models.ts), never in
@@ -1472,15 +1567,11 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1472
1567
  const unsubscribeCommitAttributionSync = bus.on(BusChannels.ConfigHotReload, () => bumpSessionState());
1473
1568
  termination.onDrain(() => unsubscribeCommitAttributionSync());
1474
1569
  const getTaskMemorySeedOffer = (): { source: string; count: number } | null => {
1475
- return taskMemoryHandoffSeedOffer(process.cwd(), getCurrentSettings().memory.intervention.enabled);
1570
+ return taskMemoryHandoffSeedOffer(process.cwd(), getCurrentSettings().context.memory.enabled);
1476
1571
  };
1477
1572
  const seedCurrentTaskMemoryFromHandoff = () => {
1478
1573
  ensureTaskMemorySession();
1479
- return seedTaskMemoryFromNewestHandoff(
1480
- taskMemoryBank,
1481
- process.cwd(),
1482
- getCurrentSettings().memory.intervention.enabled,
1483
- );
1574
+ return seedTaskMemoryFromNewestHandoff(taskMemoryBank, process.cwd(), getCurrentSettings().context.memory.enabled);
1484
1575
  };
1485
1576
  if (resumedSessionAtBoot) {
1486
1577
  const offer = getTaskMemorySeedOffer();
@@ -1500,7 +1591,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1500
1591
  // routing change updates the set on the next read.
1501
1592
  setProtectedModelsProvider(() => protectedResidencyModels(getCurrentSettings()));
1502
1593
 
1503
- const validatedKeybindings = validateKeybindings((config?.get() ?? readSettings()).keybindings ?? {});
1594
+ const validatedKeybindings = validateKeybindings((config?.get() ?? readSettings()).interface.keybindings ?? {});
1504
1595
  const invalidBindings = validatedKeybindings.invalid;
1505
1596
  if (invalidBindings.length > 0) {
1506
1597
  const notice = formatInvalidKeybindingNotice(invalidBindings);
@@ -1542,13 +1633,27 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1542
1633
  mutateSaved?.(saved);
1543
1634
  });
1544
1635
  };
1636
+ /**
1637
+ * A routing change at the scope the operator chose. "session" moves the live
1638
+ * route and leaves settings.yaml alone, so a swap that points at a dead
1639
+ * endpoint dies with the session that made it; "global" is the historical
1640
+ * write-through. Nothing on this path writes durably without a scope.
1641
+ */
1642
+ const applyRoutingAtScope = (patch: RoutingPatch, scope: "session" | "global"): void => {
1643
+ if (scope === "global") {
1644
+ updateSessionRouting(patch);
1645
+ return;
1646
+ }
1647
+ applyRoutingPatch(sessionRouting, patch);
1648
+ bumpSessionState();
1649
+ };
1545
1650
  const readAcpSafeSettings = (): AcpSafeSettingsSnapshot => {
1546
1651
  const settings = getCurrentSettings();
1547
1652
  return {
1548
- target: settings.orchestrator.target,
1549
- model: settings.orchestrator.model,
1550
- thinkingLevel: settings.orchestrator.thinkingLevel ?? "off",
1551
- autonomy: settings.autonomy,
1653
+ target: settings.chat.target,
1654
+ model: settings.chat.model,
1655
+ thinkingLevel: settings.chat.thinkingLevel ?? "off",
1656
+ autonomy: settings.safety.autonomy,
1552
1657
  };
1553
1658
  };
1554
1659
  /**
@@ -1558,15 +1663,15 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1558
1663
  */
1559
1664
  const commitAcpSafeSettings = (patch: AcpSafeSettingsPatch): AcpSafeSettingsSnapshot => {
1560
1665
  const orchestrator: NonNullable<RoutingPatch["orchestrator"]> = {};
1561
- if (patch["orchestrator.target"] !== undefined) orchestrator.target = patch["orchestrator.target"];
1562
- if (patch["orchestrator.model"] !== undefined) orchestrator.model = patch["orchestrator.model"];
1563
- if (patch["orchestrator.thinkingLevel"] !== undefined) {
1564
- orchestrator.thinkingLevel = patch["orchestrator.thinkingLevel"];
1666
+ if (patch["chat.target"] !== undefined) orchestrator.target = patch["chat.target"];
1667
+ if (patch["chat.model"] !== undefined) orchestrator.model = patch["chat.model"];
1668
+ if (patch["chat.thinkingLevel"] !== undefined) {
1669
+ orchestrator.thinkingLevel = patch["chat.thinkingLevel"];
1565
1670
  }
1566
1671
  const routingPatch: RoutingPatch | null = Object.keys(orchestrator).length > 0 ? { orchestrator } : null;
1567
1672
  persistSavedMutation((saved) => {
1568
1673
  if (routingPatch !== null) mergeRoutingPatchIntoSettings(saved, routingPatch);
1569
- if (patch.autonomy !== undefined) saved.autonomy = patch.autonomy;
1674
+ if (patch["safety.autonomy"] !== undefined) saved.safety.autonomy = patch["safety.autonomy"];
1570
1675
  });
1571
1676
  if (routingPatch !== null) {
1572
1677
  applyRoutingPatch(sessionRouting, routingPatch);
@@ -1665,7 +1770,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1665
1770
  middleware.registerHook(
1666
1771
  createWatchdogRegistration({
1667
1772
  firesOnThisSurface: interactive,
1668
- getSettings: () => (effectiveSettingsForDispatch?.() ?? getCurrentSettings()).watchdog,
1773
+ getSettings: () => (effectiveSettingsForDispatch?.() ?? getCurrentSettings()).safety.review,
1669
1774
  getScope: () => {
1670
1775
  const board = taskBoard.snapshot();
1671
1776
  if (board === null) return null;
@@ -1677,7 +1782,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1677
1782
  dispatch,
1678
1783
  bus,
1679
1784
  ...(agents ? { getAgentRoleFacts: agentRoleFactsResolver((id: string) => agents.getSpec(id)) } : {}),
1680
- target: (effectiveSettingsForDispatch?.() ?? getCurrentSettings()).watchdog.target,
1785
+ target: (effectiveSettingsForDispatch?.() ?? getCurrentSettings()).safety.review.target,
1681
1786
  ...(deferredWatchdogNoticeSink ? { emitNotice: deferredWatchdogNoticeSink } : {}),
1682
1787
  }),
1683
1788
  }),
@@ -1723,7 +1828,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1723
1828
  try {
1724
1829
  const records = loadMemoryRecordsSync(clioDataDir());
1725
1830
  const settings = getCurrentSettings();
1726
- const targetId = session?.current()?.target ?? settings.orchestrator?.target;
1831
+ const targetId = session?.current()?.target ?? settings.chat?.target;
1727
1832
  const runtimeId = targetId ? providers.getTarget(targetId)?.runtime : undefined;
1728
1833
  return buildMemoryPromptSection(records, {
1729
1834
  scopes: ["global", "repo", "runtime"],
@@ -1739,7 +1844,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1739
1844
  const meta = session?.current();
1740
1845
  if (!meta) throw new Error("task memory handoff requires an active session");
1741
1846
  const settings = getCurrentSettings();
1742
- const targetId = meta.target ?? settings.orchestrator?.target;
1847
+ const targetId = meta.target ?? settings.chat?.target;
1743
1848
  const runtimeId = targetId ? providers.getTarget(targetId)?.runtime : undefined;
1744
1849
  return renderTaskMemoryHandoffSource(taskMemoryBank.snapshot(), {
1745
1850
  sessionId: meta.id,
@@ -1848,7 +1953,7 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1848
1953
  try {
1849
1954
  session.appendEntry({
1850
1955
  kind: "custom",
1851
- customType: "clio.routing-notice",
1956
+ customType: "clio-coder.routing-notice",
1852
1957
  parentTurnId: null,
1853
1958
  data: { kind: notice.kind, level: notice.level, text: notice.text },
1854
1959
  });
@@ -1882,8 +1987,8 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1882
1987
  routing: () => {
1883
1988
  const settings = getCurrentSettings();
1884
1989
  return {
1885
- target: settings.orchestrator.target,
1886
- model: settings.orchestrator.model,
1990
+ target: settings.chat.target,
1991
+ model: settings.chat.model,
1887
1992
  };
1888
1993
  },
1889
1994
  onActiveSessionAutonomyChange: (level) => {
@@ -1895,11 +2000,11 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
1895
2000
  // as a provider's failure body, is kept off the wire and written to
1896
2001
  // the unstructured stderr tail instead.
1897
2002
  diagnostics: (line) => {
1898
- process.stderr.write(`[clio:acp] ${line}\n`);
2003
+ process.stderr.write(`[clio-coder:acp] ${line}\n`);
1899
2004
  },
1900
2005
  permissionTimeoutMs:
1901
2006
  options.acp.permissionTimeoutMs ??
1902
- config?.get().delegation.defaults.permissionTimeoutMs ??
2007
+ config?.get().integrations.externalAgents.defaults.permissionTimeoutMs ??
1903
2008
  DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS,
1904
2009
  });
1905
2010
  // Same ordering the termination drain hook relies on: an aborted turn's
@@ -2014,6 +2119,20 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
2014
2119
  ...(extensions ? { extensions } : {}),
2015
2120
  ...(interop ? { interop } : {}),
2016
2121
  ...(share ? { share } : {}),
2122
+ ...(mux ? { mux } : {}),
2123
+ ...(panes ? { panes } : {}),
2124
+ ...(panes ? { attachYaziBridge: (bridge) => panes.attachYazi(bridge) } : {}),
2125
+ // The interactive surface never imports the panes glue itself; the
2126
+ // factories arrive only on an active boot, through the same dynamic
2127
+ // import that loaded the mux domain.
2128
+ ...(withPanes
2129
+ ? {
2130
+ createMuxBridge: withPanes.createMuxBridge,
2131
+ createYaziBridge: withPanes.createYaziBridge,
2132
+ createWatchPane: withPanes.createWatchPaneController,
2133
+ }
2134
+ : {}),
2135
+ ...(panes ? { attachWatchPane: (controller) => panes.attachWatch(controller) } : {}),
2017
2136
  toolRegistry,
2018
2137
  ...(session ? { session } : {}),
2019
2138
  ...(session ? { readSessionEntries: readCurrentSessionEntries } : {}),
@@ -2026,8 +2145,8 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
2026
2145
  const settings = getCurrentSettings();
2027
2146
  const bank = taskMemoryBank.snapshot();
2028
2147
  return {
2029
- enabled: settings.memory.intervention.enabled,
2030
- tier: settings.background.target && settings.background.model ? "llm" : "rules",
2148
+ enabled: settings.context.memory.enabled,
2149
+ tier: settings.context.memory.target && settings.context.memory.model ? "llm" : "rules",
2031
2150
  size: taskMemoryBankSize(bank),
2032
2151
  lastDecision: memoryIntervention.lastDecision(),
2033
2152
  bank,
@@ -2126,33 +2245,29 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
2126
2245
  },
2127
2246
  }
2128
2247
  : {}),
2129
- onSetThinkingLevel: (level) => {
2248
+ onSetThinkingLevel: (level, scope) => {
2130
2249
  const current = getCurrentSettings();
2131
2250
  const nextLevel =
2132
- resolveModelRuntimeCapabilitiesForProviders(
2133
- providers,
2134
- current.orchestrator.target,
2135
- current.orchestrator.model,
2136
- level,
2137
- )?.thinking.effectiveLevel ?? "off";
2138
- updateSessionRouting({ orchestrator: { thinkingLevel: nextLevel } });
2251
+ resolveModelRuntimeCapabilitiesForProviders(providers, current.chat.target, current.chat.model, level)?.thinking
2252
+ .effectiveLevel ?? "off";
2253
+ applyRoutingAtScope({ orchestrator: { thinkingLevel: nextLevel } }, scope ?? "global");
2139
2254
  },
2140
2255
  onCycleThinking: () => {
2141
2256
  const current = getCurrentSettings();
2142
2257
  const thinking = resolveModelRuntimeCapabilitiesForProviders(
2143
2258
  providers,
2144
- current.orchestrator.target,
2145
- current.orchestrator.model,
2146
- current.orchestrator.thinkingLevel ?? "off",
2259
+ current.chat.target,
2260
+ current.chat.model,
2261
+ current.chat.thinkingLevel ?? "off",
2147
2262
  )?.thinking;
2148
2263
  const effectiveAvailable = thinking?.supportedLevels ?? (["off"] as ThinkingLevel[]);
2149
2264
  const nextLevel = advanceThinkingLevel(
2150
- thinking?.effectiveLevel ?? current.orchestrator.thinkingLevel ?? "off",
2265
+ thinking?.effectiveLevel ?? current.chat.thinkingLevel ?? "off",
2151
2266
  effectiveAvailable,
2152
2267
  );
2153
2268
  updateSessionRouting({ orchestrator: { thinkingLevel: nextLevel } });
2154
2269
  },
2155
- onSelectModel: ({ target, model }) => {
2270
+ onSelectModel: ({ target, model }, scope) => {
2156
2271
  const registry = getRuntimeRegistry();
2157
2272
  const settings = getCurrentSettings();
2158
2273
  const descriptor = settings.targets.find((e) => e.id === target);
@@ -2169,8 +2284,10 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
2169
2284
  );
2170
2285
  }
2171
2286
  }
2172
- updateSessionRouting({ orchestrator: { target, model } });
2173
- rememberRecentModel(`${target}/${model}`, getCurrentSettings().modelSelector.recentLimit);
2287
+ applyRoutingAtScope({ orchestrator: { target, model } }, scope);
2288
+ // Recents live in the state dir, not settings.yaml, and are how a swap
2289
+ // stays reachable in the picker. A session-scoped swap still earns one.
2290
+ rememberRecentModel(`${target}/${model}`, getCurrentSettings().chat.modelPicker.recentLimit);
2174
2291
  },
2175
2292
  writeSettings: (next) => applySettingsBlob(next),
2176
2293
  commitSetting: (id, next, scope) => commitSetting(id, next, scope),
@@ -2191,8 +2308,8 @@ export async function bootOrchestrator(options: BootOptions = {}): Promise<BootR
2191
2308
  onNewSession: () => {
2192
2309
  const settings = getCurrentSettings();
2193
2310
  const input: { cwd: string; target?: string; model?: string } = { cwd: process.cwd() };
2194
- if (settings.orchestrator.target) input.target = settings.orchestrator.target;
2195
- if (settings.orchestrator.model) input.model = settings.orchestrator.model;
2311
+ if (settings.chat.target) input.target = settings.chat.target;
2312
+ if (settings.chat.model) input.model = settings.chat.model;
2196
2313
  session.create(input);
2197
2314
  taskBoard.snapshot();
2198
2315
  ensureTaskMemorySession();