@iowarp/clio-coder 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +407 -375
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-G5WJBNCT.js → acp-TMDQZDIG.js} +14 -14
  6. package/dist/{agents-FMV2Q5G4.js → agents-5N5NG3XG.js} +45 -34
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-3IDSJEIK.js → auth-Z5CCBXKQ.js} +22 -21
  9. package/dist/{builtins-XCZWXSC7.js → builtins-K6TNDT24.js} +6 -6
  10. package/dist/{chunk-GR5G2PVF.js → chunk-2HFQNRV3.js} +15 -10
  11. package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
  12. package/dist/{chunk-HJJTYUHX.js → chunk-2NHR3NAY.js} +168 -1406
  13. package/dist/chunk-2X4RYJTJ.js +39 -0
  14. package/dist/{chunk-UXMFQ54G.js → chunk-2Z2IKEXI.js} +39 -43
  15. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  16. package/dist/chunk-34BHNEE3.js +1846 -0
  17. package/dist/{chunk-YJX4SHTD.js → chunk-35MSIRKH.js} +9 -4
  18. package/dist/chunk-3EBYEESD.js +314 -0
  19. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  20. package/dist/chunk-3KIPBMUA.js +308 -0
  21. package/dist/chunk-3M6DQK6S.js +362 -0
  22. package/dist/{chunk-BPKCPIL7.js → chunk-462T4EGZ.js} +3 -3
  23. package/dist/{chunk-QLFS5GO2.js → chunk-4JDLP6ZS.js} +44 -37
  24. package/dist/{chunk-LDQ2ZF2M.js → chunk-4O6MANBS.js} +6 -6
  25. package/dist/{chunk-O6TL7WWY.js → chunk-54ODD65L.js} +6 -6
  26. package/dist/{chunk-JDG2WCRO.js → chunk-5KW52TEP.js} +5 -5
  27. package/dist/{chunk-NHLBIGRH.js → chunk-5PFYMY2V.js} +41 -18
  28. package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
  29. package/dist/chunk-77QIVUZB.js +1334 -0
  30. package/dist/{chunk-HWHKMHUA.js → chunk-7BHIY2MW.js} +9 -15
  31. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  32. package/dist/{chunk-VAZSBTKF.js → chunk-AZ4WMN4W.js} +2 -2
  33. package/dist/{chunk-B7OBL7PK.js → chunk-B74PXLU7.js} +21 -11
  34. package/dist/{chunk-CY6FY24N.js → chunk-B7HM5Z7T.js} +15 -15
  35. package/dist/{chunk-ULC6OTWO.js → chunk-BO7Y52RY.js} +88 -27
  36. package/dist/chunk-BTK3SSSK.js +67 -0
  37. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  38. package/dist/{chunk-DQITNCXG.js → chunk-BYMNWQ7O.js} +149 -159
  39. package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
  40. package/dist/{chunk-Z4TXYIEG.js → chunk-CRFOIAX3.js} +10 -10
  41. package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
  42. package/dist/{chunk-3BT2XMV4.js → chunk-CYZW7JHJ.js} +53 -60
  43. package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
  44. package/dist/chunk-D7E7WCDF.js +27 -0
  45. package/dist/{chunk-X3YGUTOB.js → chunk-DYHAXKHD.js} +90 -62
  46. package/dist/{chunk-QBJA7R7N.js → chunk-DZAW46HP.js} +3 -3
  47. package/dist/{chunk-MLKNTWH2.js → chunk-DZEK6CJN.js} +22 -22
  48. package/dist/{chunk-K5C3NCBD.js → chunk-E7GT7O5N.js} +5 -5
  49. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  50. package/dist/chunk-F2I26BDK.js +66 -0
  51. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  52. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  53. package/dist/{chunk-32KWKNSF.js → chunk-FVDGR2ZL.js} +4 -4
  54. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  55. package/dist/{chunk-SJ5ZKQ4S.js → chunk-HIICAHCJ.js} +2 -2
  56. package/dist/chunk-HJWWJ6IL.js +184 -0
  57. package/dist/{chunk-WZR7K7ZX.js → chunk-HKMD33FO.js} +32 -83
  58. package/dist/chunk-HLAFFSEK.js +360 -0
  59. package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
  60. package/dist/{chunk-KFZI4NIL.js → chunk-I64IFBLB.js} +152 -31
  61. package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
  62. package/dist/{chunk-BUMFYQFY.js → chunk-I66ZTYNP.js} +543 -267
  63. package/dist/{chunk-2OQE55CK.js → chunk-I7XBWTYH.js} +2 -2
  64. package/dist/{chunk-GKF55TAZ.js → chunk-IDNA72AH.js} +104 -3
  65. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  66. package/dist/{chunk-J4W7KFM7.js → chunk-IKSLQ4XV.js} +5439 -3475
  67. package/dist/{chunk-6DB53AJS.js → chunk-IMXMHHMQ.js} +171 -30
  68. package/dist/{chunk-AB44T6BB.js → chunk-JBCS7CRR.js} +8 -7
  69. package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
  70. package/dist/{chunk-SP2RXXYO.js → chunk-JWJGP5DQ.js} +10 -10
  71. package/dist/{chunk-HZHHCK24.js → chunk-KKOJXO6R.js} +527 -325
  72. package/dist/chunk-KPXDY6QF.js +47 -0
  73. package/dist/{chunk-LQ3DZAMX.js → chunk-LJID3DYZ.js} +8 -2
  74. package/dist/{chunk-7MCTRUCE.js → chunk-M2DAX4F6.js} +2 -2
  75. package/dist/{chunk-VEO4AP2K.js → chunk-M2WXEHER.js} +4 -3
  76. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  77. package/dist/{chunk-YDFRH54B.js → chunk-MCMZMDAC.js} +4 -4
  78. package/dist/{chunk-J5Q24KAG.js → chunk-MNJGS2IN.js} +5 -6
  79. package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
  80. package/dist/chunk-NDDGJUXD.js +81 -0
  81. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  82. package/dist/chunk-NMJXSHBJ.js +283 -0
  83. package/dist/{chunk-VYMXRQI6.js → chunk-O3YUNJZ2.js} +88 -100
  84. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  85. package/dist/{chunk-Z2RR6MAK.js → chunk-P75RZCJW.js} +28 -6
  86. package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
  87. package/dist/{chunk-DYJP44XW.js → chunk-PGF63K6I.js} +2 -2
  88. package/dist/chunk-PJX3WQUQ.js +42 -0
  89. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  90. package/dist/{chunk-2JDWVJND.js → chunk-Q4XWMHX6.js} +5 -7
  91. package/dist/{chunk-W5VSYASO.js → chunk-QQLGQY2A.js} +46 -87
  92. package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
  93. package/dist/{chunk-C2LTL2W6.js → chunk-RLYRBIYQ.js} +463 -180
  94. package/dist/{chunk-4ZG3XFUR.js → chunk-S66XZJOF.js} +14 -23
  95. package/dist/{chunk-I5VEOC6I.js → chunk-SSEYRH53.js} +13 -14
  96. package/dist/chunk-SZAA6XDG.js +30 -0
  97. package/dist/{chunk-CODPRO7Q.js → chunk-TPEQIQIE.js} +7 -7
  98. package/dist/{chunk-QLL7ILRG.js → chunk-UBRFI4HS.js} +1151 -614
  99. package/dist/{chunk-O4XIVISU.js → chunk-UH347SHR.js} +227 -47
  100. package/dist/{chunk-OQBA45DZ.js → chunk-UH632ZYL.js} +2 -2
  101. package/dist/chunk-UXCU4E3T.js +303 -0
  102. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  103. package/dist/{chunk-IQ7KR472.js → chunk-VIA6RFQZ.js} +8 -13
  104. package/dist/{chunk-V5DHCITQ.js → chunk-VKPAQYEB.js} +49 -19
  105. package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
  106. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  107. package/dist/{chunk-3XML7CDN.js → chunk-W4YEMFBX.js} +3 -3
  108. package/dist/{chunk-U77AMWDL.js → chunk-W6NIE6OW.js} +44 -23
  109. package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
  110. package/dist/{chunk-QREDIESB.js → chunk-X7IARSHT.js} +15 -9
  111. package/dist/{chunk-3URVFKWK.js → chunk-XE3PCIXH.js} +5 -5
  112. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  113. package/dist/{chunk-F4CKPOEQ.js → chunk-XOXV5GKE.js} +119 -38
  114. package/dist/chunk-XQRY4DTA.js +657 -0
  115. package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
  116. package/dist/{chunk-NQQH3YT7.js → chunk-YJISEZKC.js} +3 -3
  117. package/dist/{chunk-X75E3D2N.js → chunk-ZGNYYXQ6.js} +18 -16
  118. package/dist/{chunk-LY4S7GJC.js → chunk-ZNT2M6TG.js} +20 -18
  119. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  120. package/dist/{chunk-IBEBSCYA.js → chunk-ZW4HH5JJ.js} +43 -34
  121. package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
  122. package/dist/cli/index.js +38 -37
  123. package/dist/{clio-2JXHBBY5.js → clio-7VB377CC.js} +12 -13
  124. package/dist/{code-nav-3YYRMYNF.js → code-nav-YVLCYA7V.js} +86 -18
  125. package/dist/codewiki/build-worker.js +1 -1
  126. package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
  127. package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
  128. package/dist/{config-QZPCMYSO.js → config-4HVOS65E.js} +112 -63
  129. package/dist/{configure-TEGEBYCA.js → configure-PIWO7B24.js} +25 -22
  130. package/dist/{context-E6H5RNMC.js → context-IYEHL3WQ.js} +53 -47
  131. package/dist/{context-GSXUE4CT.js → context-KQYIWPWT.js} +68 -42
  132. package/dist/{context-AV7OEZ4D.js → context-N6ZE3LGJ.js} +11 -11
  133. package/dist/{context-clear-SHIBYK6T.js → context-clear-G4OGZJDS.js} +53 -47
  134. package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-BWLF6LJP.js} +12 -11
  135. package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-2QQAITS3.js} +67 -58
  136. package/dist/{docs-23KQS3XK.js → docs-PD3EXDKU.js} +20 -25
  137. package/dist/doctor-LHBD36VU.js +773 -0
  138. package/dist/{eval-TFBYQH4H.js → eval-C45FYRJ6.js} +68 -49
  139. package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-6DEJPLBF.js} +7 -8
  140. package/dist/{evidence-ERGESKGN.js → evidence-6SHONYAF.js} +50 -44
  141. package/dist/{evolve-VDXTSYCJ.js → evolve-KRKMV72X.js} +49 -43
  142. package/dist/{extensions-7BGBHN57.js → extensions-KPZ2UHBB.js} +8 -6
  143. package/dist/{fleet-2RRVDF2V.js → fleet-IVTCKDHT.js} +93 -79
  144. package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EDWL3IT7.js} +10 -9
  145. package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-YP3YEFGK.js} +6 -6
  146. package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-ZFWKHY2M.js} +19 -15
  147. package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-FVUNCBML.js} +50 -45
  148. package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-UN5XED4R.js} +5 -9
  149. package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-XOWC4HSX.js} +22 -17
  150. package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-UN3SODEL.js} +48 -43
  151. package/dist/fleet-view-TWHJKCN6.js +96 -0
  152. package/dist/{init-DN2WWLFE.js → init-T2QORQ3Y.js} +72 -66
  153. package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
  154. package/dist/{interop-OZBKXAYL.js → interop-IN5I2A66.js} +13 -11
  155. package/dist/{library-YWZG7IMW.js → library-LSCATDLZ.js} +23 -18
  156. package/dist/{memory-I4C4HMLW.js → memory-HYOKAGGJ.js} +51 -45
  157. package/dist/{models-CEYXJBO6.js → models-2GPMFYCM.js} +42 -33
  158. package/dist/{monitor-NZ6GCI3P.js → monitor-E4ASVUJH.js} +56 -50
  159. package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-DDMPR3PY.js} +2676 -1507
  160. package/dist/{panes-KY6W3V2E.js → panes-E3RUXOW5.js} +5 -5
  161. package/dist/panes-IXKLOKA2.js +75 -0
  162. package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
  163. package/dist/{reset-DQ6FGCSH.js → reset-OAQP3W4O.js} +7 -8
  164. package/dist/{resources-BB3MVJMD.js → resources-OTRSN34L.js} +23 -17
  165. package/dist/{run-H2GQDUER.js → run-5DEYH5QK.js} +95 -84
  166. package/dist/{share-GTJN6A5O.js → share-IHWTLO3M.js} +26 -19
  167. package/dist/{skills-L55TEW6R.js → skills-IYMXMKW4.js} +25 -20
  168. package/dist/{skills-eval-XVXPH2JI.js → skills-eval-DROHSJAR.js} +63 -65
  169. package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-D7X4L4ZX.js} +21 -16
  170. package/dist/{slash-commands-ZSGASKJC.js → slash-commands-QBM7UZ3B.js} +38 -33
  171. package/dist/{steer-RZGSCY4R.js → steer-Z5DO23FJ.js} +3 -3
  172. package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
  173. package/dist/{targets-NCPZ644J.js → targets-P2FUC4IL.js} +64 -61
  174. package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-YREJ3JX2.js} +15 -10
  175. package/dist/{tools-DAF3DI3C.js → tools-5B7RO6MV.js} +10 -8
  176. package/dist/{trace-FYVW2MQA.js → trace-YMGMUM6A.js} +101 -8
  177. package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
  178. package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
  179. package/dist/{upgrade-3XPP6OQL.js → upgrade-PXK3S2YM.js} +36 -61
  180. package/dist/{usage-3NLHGTU2.js → usage-ME5MPXGX.js} +58 -53
  181. package/dist/{verifiers-SSQONKRT.js → verifiers-BVZ7IWOO.js} +10 -9
  182. package/dist/{verify-3U6J7FZI.js → verify-5K7ZKQFC.js} +9 -8
  183. package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPARV2K7.js} +2 -3
  184. package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-F5W5QTYY.js} +74 -70
  185. package/dist/{with-panes-MKB46MPQ.js → with-panes-BYOJCLAM.js} +78 -246
  186. package/dist/worker/entry.js +83 -63
  187. package/docs/README.md +176 -81
  188. package/docs/{acp.md → architecture/acp.md} +36 -20
  189. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  190. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  191. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  192. package/docs/architecture/artifact-versions.md +90 -0
  193. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  194. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  195. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  196. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  197. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  198. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  199. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  200. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  201. package/docs/{observability.md → architecture/observability.md} +26 -13
  202. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  203. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  204. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  205. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  206. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  207. package/docs/architecture/time-conventions.md +125 -0
  208. package/docs/{trace-store.md → architecture/trace-store.md} +26 -13
  209. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  210. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  211. package/docs/{built-in-agents.md → guide/built-in-agents.md} +70 -46
  212. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +73 -62
  213. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -444
  214. package/docs/guide/configuration-reference.md +1158 -0
  215. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -27
  216. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +8 -3
  217. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  218. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +47 -49
  219. package/docs/{glossary.md → guide/glossary.md} +14 -11
  220. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +45 -14
  221. package/docs/guide/panes-and-files.md +290 -0
  222. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  223. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  224. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  225. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  226. package/docs/{troubleshooting.md → guide/troubleshooting.md} +10 -5
  227. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +13 -10
  228. package/docs/history/release-cut-checklist.md +207 -0
  229. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  230. package/docs/process/documentation-coverage.md +100 -0
  231. package/docs/process/documentation-guide.md +187 -0
  232. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  233. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  234. package/docs/{evolution.md → process/evolution.md} +2 -2
  235. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +17 -10
  236. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  237. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  238. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  239. package/evals/README.md +5 -0
  240. package/evals/behavioral-corpus-grader.mjs +103 -0
  241. package/evals/behavioral-machinery-baseline.json +2276 -0
  242. package/evals/behavioral-machinery-driver.ts +250 -0
  243. package/evals/behavioral-machinery-support.ts +253 -0
  244. package/evals/behavioral-machinery.yaml +614 -0
  245. package/evals/behavioral-model-negative-control.yaml +68 -0
  246. package/evals/behavioral-model.yaml +216 -0
  247. package/evals/fixtures/behavioral-facts.txt +3 -0
  248. package/evals/fixtures/behavioral-main.ts +7 -0
  249. package/evals/fixtures/decoy/note.txt +2 -0
  250. package/evals/fixtures/private/credentials.txt +1 -0
  251. package/evals/tracked-metrics-baseline.yaml +229 -0
  252. package/evals/tracked-metrics-grader.mjs +129 -0
  253. package/package.json +13 -21
  254. package/skills/README.md +51 -42
  255. package/skills/coding/ast-grep/SKILL.md +9 -3
  256. package/skills/coding/coding-standards/SKILL.md +9 -3
  257. package/skills/coding/prototype/SKILL.md +9 -3
  258. package/skills/coding/tdd/SKILL.md +9 -3
  259. package/skills/context/context-handoff/SKILL.md +13 -4
  260. package/skills/context/context-handoff/evals.md +3 -3
  261. package/skills/context/context-prime/SKILL.md +9 -3
  262. package/skills/context/context-prime/evals.md +2 -2
  263. package/skills/git/file-ticket/SKILL.md +10 -5
  264. package/skills/git/file-ticket/evals.md +2 -2
  265. package/skills/git/fix-issue/SKILL.md +12 -5
  266. package/skills/git/fix-issue/evals.md +4 -4
  267. package/skills/git/resolve-merge-conflicts/SKILL.md +9 -3
  268. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  269. package/skills/git/ship/SKILL.md +10 -4
  270. package/skills/git/ship/evals.md +4 -4
  271. package/skills/git/worktree-create/SKILL.md +8 -3
  272. package/skills/git/worktree-create/evals.md +6 -6
  273. package/skills/git/worktree-merge/SKILL.md +8 -3
  274. package/skills/git/worktree-merge/evals.md +6 -6
  275. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +22 -12
  276. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +5 -4
  277. package/skills/meta/clio-coder-test/SKILL.md +146 -0
  278. package/skills/meta/{clio-test → clio-coder-test}/evals.md +10 -5
  279. package/skills/meta/clio-coder-test/references/harness.md +102 -0
  280. package/skills/meta/clio-coder-test/references/test-map.md +96 -0
  281. package/skills/meta/credentials/SKILL.md +10 -3
  282. package/skills/meta/find-skills/SKILL.md +9 -3
  283. package/skills/meta/herdr/SKILL.md +9 -3
  284. package/skills/meta/skill-craft/SKILL.md +39 -16
  285. package/skills/planning/architecture/SKILL.md +9 -3
  286. package/skills/planning/backlog/SKILL.md +9 -3
  287. package/skills/planning/prd/SKILL.md +9 -3
  288. package/skills/planning/product-intent/SKILL.md +9 -3
  289. package/skills/planning/tech-spec/SKILL.md +9 -3
  290. package/skills/registry.yaml +66 -66
  291. package/skills/research/arxiv-literature/SKILL.md +9 -3
  292. package/skills/research/experiment-protocol/SKILL.md +10 -3
  293. package/skills/research/scientific-debugging/SKILL.md +10 -3
  294. package/skills/research/scientific-debugging/evals.md +2 -2
  295. package/skills/research/scientific-modernization/SKILL.md +10 -3
  296. package/skills/skill-marketplace.json +285 -66
  297. package/skills/workflow/cut-it/SKILL.md +11 -3
  298. package/skills/workflow/design-council/SKILL.md +12 -3
  299. package/skills/workflow/grill-me/SKILL.md +9 -3
  300. package/skills/workflow/workflow-distiller/SKILL.md +9 -3
  301. package/src/cli/acp.ts +2 -2
  302. package/src/cli/args.ts +2 -2
  303. package/src/cli/auth.ts +2 -2
  304. package/src/cli/bootstrap-generate.ts +6 -6
  305. package/src/cli/clio.ts +6 -1
  306. package/src/cli/config-inspect.ts +68 -15
  307. package/src/cli/configure-interop.ts +1 -1
  308. package/src/cli/configure.ts +27 -31
  309. package/src/cli/default-target.ts +1 -1
  310. package/src/cli/docs.ts +28 -20
  311. package/src/cli/doctor-naming.ts +323 -0
  312. package/src/cli/doctor-panes.ts +46 -14
  313. package/src/cli/doctor-toolchain.ts +31 -10
  314. package/src/cli/doctor.ts +15 -1
  315. package/src/cli/eval-inventory.ts +8 -8
  316. package/src/cli/eval.ts +1 -2
  317. package/src/cli/evidence-detail.ts +1 -1
  318. package/src/cli/evidence-inventory.ts +1 -1
  319. package/src/cli/extensions.ts +2 -1
  320. package/src/cli/fleet-decisions.ts +1 -1
  321. package/src/cli/fleet-inspect.ts +1 -1
  322. package/src/cli/fleet-preflight.ts +1 -1
  323. package/src/cli/fleet-verify.ts +1 -1
  324. package/src/cli/fleet-view.ts +40 -23
  325. package/src/cli/fleet.ts +9 -6
  326. package/src/cli/index.ts +2 -1
  327. package/src/cli/internal-dispatch.ts +3 -4
  328. package/src/cli/interop-inspect.ts +2 -2
  329. package/src/cli/models.ts +3 -3
  330. package/src/cli/modes/print.ts +1 -1
  331. package/src/cli/panes.ts +19 -5
  332. package/src/cli/reset.ts +1 -1
  333. package/src/cli/run.ts +13 -17
  334. package/src/cli/share.ts +6 -2
  335. package/src/cli/skills-eval.ts +14 -14
  336. package/src/cli/targets.ts +25 -30
  337. package/src/cli/trace-inspect.ts +1 -1
  338. package/src/cli/trace.ts +96 -4
  339. package/src/cli/uninstall.ts +2 -2
  340. package/src/cli/upgrade.ts +29 -34
  341. package/src/cli/usage.ts +2 -2
  342. package/src/cli/validate-model.ts +1 -1
  343. package/src/cli/verifiers-inspect.ts +1 -1
  344. package/src/cli/wiki-generate.ts +6 -6
  345. package/src/core/artifact-paths.ts +1 -1
  346. package/src/core/bash-exec.ts +132 -87
  347. package/src/core/boot-trace.ts +3 -3
  348. package/src/core/bus-events.ts +51 -6
  349. package/src/core/bus-trace.ts +2 -2
  350. package/src/core/compile-cache.ts +1 -1
  351. package/src/core/config.ts +1066 -886
  352. package/src/core/defaults.ts +326 -530
  353. package/src/core/dispatch-outcome.ts +16 -0
  354. package/src/core/domain-loader.ts +6 -4
  355. package/src/core/event-bus.ts +1 -1
  356. package/src/core/file-references.ts +78 -88
  357. package/src/core/git-commit-attribution.ts +3 -9
  358. package/src/core/guardrails.ts +33 -52
  359. package/src/core/naming-compat.ts +45 -0
  360. package/src/core/naming-events.ts +62 -0
  361. package/src/core/prompt-hint.ts +9 -0
  362. package/src/core/recent-models.ts +1 -7
  363. package/src/core/residency-protection.ts +4 -8
  364. package/src/core/resolve-config-value.ts +1 -1
  365. package/src/core/response-model-id.ts +0 -14
  366. package/src/core/session-routing.ts +84 -74
  367. package/src/core/skill-activation.ts +18 -0
  368. package/src/core/termination.ts +4 -4
  369. package/src/core/timers.ts +2 -12
  370. package/src/domains/agents/builtins/architect.md +2 -3
  371. package/src/domains/agents/builtins/coder.md +3 -2
  372. package/src/domains/agents/builtins/debugger.md +2 -2
  373. package/src/domains/agents/builtins/documenter.md +2 -2
  374. package/src/domains/agents/builtins/git-master.md +1 -1
  375. package/src/domains/agents/builtins/oracle.md +1 -1
  376. package/src/domains/agents/builtins/provenance.md +1 -1
  377. package/src/domains/agents/builtins/researcher.md +1 -1
  378. package/src/domains/agents/builtins/scout.md +1 -1
  379. package/src/domains/agents/builtins/tester.md +2 -2
  380. package/src/domains/agents/builtins/verifier.md +2 -2
  381. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  382. package/src/domains/agents/catalog.ts +14 -26
  383. package/src/domains/agents/contract.ts +2 -0
  384. package/src/domains/agents/extension.ts +26 -4
  385. package/src/domains/agents/registry.ts +7 -7
  386. package/src/domains/agents/result-contract.ts +1 -1
  387. package/src/domains/agents/spec.ts +0 -11
  388. package/src/domains/config/classify.ts +35 -47
  389. package/src/domains/config/extension.ts +5 -5
  390. package/src/domains/config/keybindings.ts +56 -47
  391. package/src/domains/config/watcher.ts +1 -1
  392. package/src/domains/context/codewiki/indexer.ts +1 -1
  393. package/src/domains/context/extension.ts +3 -6
  394. package/src/domains/context/prompt-context.ts +1 -1
  395. package/src/domains/context/wiki/assemble.ts +2 -2
  396. package/src/domains/context/working-set/path-index.ts +1 -0
  397. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  398. package/src/domains/context/working-set/replay/report.ts +1 -1
  399. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  400. package/src/domains/dispatch/active-route-planner.ts +2 -2
  401. package/src/domains/dispatch/agent-candidates.ts +1 -1
  402. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  403. package/src/domains/dispatch/agent-ledger.ts +1 -1
  404. package/src/domains/dispatch/assignment.ts +5 -5
  405. package/src/domains/dispatch/capability-match.ts +10 -0
  406. package/src/domains/dispatch/capacity-lease.ts +2 -5
  407. package/src/domains/dispatch/code-step.ts +1 -1
  408. package/src/domains/dispatch/contract.ts +2 -2
  409. package/src/domains/dispatch/extension.ts +169 -82
  410. package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
  411. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  412. package/src/domains/dispatch/fleet-run.ts +0 -7
  413. package/src/domains/dispatch/gate-decisions.ts +25 -14
  414. package/src/domains/dispatch/host-verification.ts +435 -39
  415. package/src/domains/dispatch/intent-requirements.ts +10 -0
  416. package/src/domains/dispatch/intent.ts +18 -1
  417. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  418. package/src/domains/dispatch/path-scope.ts +220 -70
  419. package/src/domains/dispatch/placement.ts +2 -2
  420. package/src/domains/dispatch/receipt-findings.ts +1 -1
  421. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  422. package/src/domains/dispatch/reservation-store.ts +0 -23
  423. package/src/domains/dispatch/route-decision.ts +1 -1
  424. package/src/domains/dispatch/route-history.ts +1 -1
  425. package/src/domains/dispatch/route-policy.ts +1 -1
  426. package/src/domains/dispatch/route-readiness.ts +0 -28
  427. package/src/domains/dispatch/run-event-journal.ts +9 -19
  428. package/src/domains/dispatch/state.ts +2 -3
  429. package/src/domains/dispatch/tool-stats.ts +1 -1
  430. package/src/domains/dispatch/transport.ts +47 -40
  431. package/src/domains/dispatch/types.ts +58 -6
  432. package/src/domains/dispatch/worker-protocol.ts +2 -2
  433. package/src/domains/eval/artifacts/store.ts +10 -4
  434. package/src/domains/eval/compare/thresholds.ts +0 -8
  435. package/src/domains/eval/execution-provenance.ts +1 -1
  436. package/src/domains/eval/metrics/token-stream.ts +0 -7
  437. package/src/domains/eval/report.ts +1 -1
  438. package/src/domains/eval/runner.ts +1 -1
  439. package/src/domains/eval/runners/clio-run.ts +7 -6
  440. package/src/domains/eval/runners/external-command.ts +4 -3
  441. package/src/domains/eval/schema/artifact.ts +1 -1
  442. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  443. package/src/domains/eval/schema/behavioral.ts +7 -6
  444. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  445. package/src/domains/eval/schema/naming.ts +10 -0
  446. package/src/domains/eval/schema/suite.ts +2 -2
  447. package/src/domains/eval/schema/validate.ts +9 -5
  448. package/src/domains/eval/schema/verdict.ts +4 -2
  449. package/src/domains/eval/store.ts +20 -3
  450. package/src/domains/eval/suites/run.ts +12 -6
  451. package/src/domains/eval/types.ts +1 -1
  452. package/src/domains/eval/workspaces/git.ts +1 -1
  453. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  454. package/src/domains/evidence/build.ts +13 -5
  455. package/src/domains/evidence/trust-status.ts +10 -1
  456. package/src/domains/extensions/contract.ts +15 -1
  457. package/src/domains/extensions/discovery.ts +238 -41
  458. package/src/domains/extensions/extension.ts +105 -6
  459. package/src/domains/extensions/index.ts +24 -0
  460. package/src/domains/extensions/integrity.ts +189 -0
  461. package/src/domains/extensions/manager.ts +17 -1
  462. package/src/domains/extensions/resource-path.ts +27 -0
  463. package/src/domains/extensions/resources.ts +18 -38
  464. package/src/domains/extensions/snapshot-store.ts +39 -0
  465. package/src/domains/extensions/snapshot.ts +180 -0
  466. package/src/domains/extensions/state.ts +385 -57
  467. package/src/domains/extensions/types.ts +118 -1
  468. package/src/domains/interop/consent.ts +7 -7
  469. package/src/domains/interop/extension.ts +1 -1
  470. package/src/domains/lifecycle/doctor.ts +27 -21
  471. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  472. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  473. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  474. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  475. package/src/domains/lifecycle/migrations/index.ts +22 -1
  476. package/src/domains/lifecycle/naming-history.ts +153 -0
  477. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  478. package/src/domains/lifecycle/naming-resources.ts +276 -0
  479. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  480. package/src/domains/lifecycle/naming-yazi.ts +86 -0
  481. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  482. package/src/domains/memory/task-memory-handoff.ts +6 -3
  483. package/src/domains/middleware/contract.ts +26 -0
  484. package/src/domains/middleware/extension.ts +24 -24
  485. package/src/domains/middleware/hook-receipts.ts +27 -4
  486. package/src/domains/middleware/hooks-io.ts +65 -32
  487. package/src/domains/middleware/hooks.ts +64 -0
  488. package/src/domains/middleware/index.ts +35 -4
  489. package/src/domains/middleware/marketplace-offer.ts +339 -0
  490. package/src/domains/middleware/registrations.ts +326 -0
  491. package/src/domains/middleware/runtime.ts +30 -2
  492. package/src/domains/middleware/snapshot.ts +20 -7
  493. package/src/domains/mux/contract.ts +195 -25
  494. package/src/domains/mux/detect.ts +23 -6
  495. package/src/domains/mux/dock-controller.ts +365 -0
  496. package/src/domains/mux/extension.ts +7 -1
  497. package/src/domains/mux/index.ts +21 -1
  498. package/src/domains/mux/operations.ts +72 -5
  499. package/src/domains/mux/protocol.ts +19 -6
  500. package/src/domains/mux/socket-client.ts +167 -19
  501. package/src/domains/mux/types.ts +49 -6
  502. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  503. package/src/domains/mux/yazi/event-stream.ts +6 -4
  504. package/src/domains/mux/yazi/profile.ts +1 -1
  505. package/src/domains/mux/yazi/session.ts +79 -7
  506. package/src/domains/mux/yazi/theme.ts +117 -17
  507. package/src/domains/observability/contract.ts +10 -11
  508. package/src/domains/observability/extension.ts +12 -4
  509. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  510. package/src/domains/observability/projection.ts +15 -91
  511. package/src/domains/observability/trace-store.ts +65 -19
  512. package/src/domains/prompts/compiler.ts +75 -55
  513. package/src/domains/prompts/contract.ts +15 -3
  514. package/src/domains/prompts/extension.ts +100 -12
  515. package/src/domains/prompts/fragments/identity/clio-worker.md +2 -4
  516. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  517. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  518. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  519. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  520. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  521. package/src/domains/prompts/fragments/operating/skills.md +11 -18
  522. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  523. package/src/domains/providers/extension.ts +5 -5
  524. package/src/domains/providers/index.ts +1 -1
  525. package/src/domains/providers/knowledge-base-path.ts +1 -1
  526. package/src/domains/providers/model-runtime-capabilities.ts +99 -23
  527. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  528. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +671 -106
  529. package/src/domains/providers/plugins.ts +1 -1
  530. package/src/domains/providers/resolver.ts +1 -1
  531. package/src/domains/providers/runtime-resolution.ts +31 -0
  532. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  533. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  534. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  535. package/src/domains/providers/runtimes/common/probe-helpers.ts +9 -4
  536. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  537. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  538. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  539. package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
  540. package/src/domains/providers/types/cost-provenance.ts +19 -0
  541. package/src/domains/providers/types/knowledge-base.ts +13 -0
  542. package/src/domains/providers/types/local-model-quirks.ts +87 -39
  543. package/src/domains/providers/types/target-descriptor.ts +3 -3
  544. package/src/domains/resources/extension.ts +1 -1
  545. package/src/domains/resources/library.ts +6 -6
  546. package/src/domains/resources/prompts/loader.ts +1 -1
  547. package/src/domains/resources/skills/content-hash.ts +7 -6
  548. package/src/domains/resources/skills/evals.ts +1 -1
  549. package/src/domains/resources/skills/install.ts +36 -12
  550. package/src/domains/resources/skills/loader.ts +41 -18
  551. package/src/domains/resources/skills/marketplace.ts +21 -2
  552. package/src/domains/resources/skills/promotion.ts +214 -0
  553. package/src/domains/safety/audit.ts +2 -2
  554. package/src/domains/safety/call-target.ts +1 -1
  555. package/src/domains/safety/finish-contract.ts +2 -1
  556. package/src/domains/safety/loop-detector.ts +7 -4
  557. package/src/domains/safety/run-effects.ts +1 -1
  558. package/src/domains/scheduling/extension.ts +4 -4
  559. package/src/domains/session/archive-readers.ts +9 -1
  560. package/src/domains/session/compaction/branch-summary.ts +4 -0
  561. package/src/domains/session/compaction/compact.ts +1 -1
  562. package/src/domains/session/compaction/tokens.ts +4 -0
  563. package/src/domains/session/context-accounting.ts +1 -1
  564. package/src/domains/session/decision-board.ts +1 -1
  565. package/src/domains/session/extension.ts +1 -1
  566. package/src/domains/session/handoff.ts +2 -2
  567. package/src/domains/session/prompt-manifest.ts +0 -5
  568. package/src/domains/session/protected-artifact-journal.ts +12 -6
  569. package/src/domains/session/retry.ts +1 -1
  570. package/src/domains/session/task-board.ts +10 -9
  571. package/src/domains/share/archive.ts +249 -43
  572. package/src/domains/toolchain/install.ts +1 -1
  573. package/src/engine/acp/adapter.ts +3 -3
  574. package/src/engine/acp/event-mapper.ts +3 -3
  575. package/src/engine/acp/server.ts +89 -35
  576. package/src/engine/acp/tool-mediator.ts +2 -2
  577. package/src/engine/acp/types.ts +1 -1
  578. package/src/engine/alcf-oauth.ts +5 -5
  579. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  580. package/src/engine/api-registry.ts +1 -1
  581. package/src/engine/apis/llamacpp-residency.ts +4 -23
  582. package/src/engine/apis/lmstudio.ts +4 -9
  583. package/src/engine/apis/ollama-native.ts +9 -9
  584. package/src/engine/apis/openai-completions.ts +30 -27
  585. package/src/engine/apis/output-budget.ts +8 -18
  586. package/src/engine/apis/residency.ts +10 -35
  587. package/src/engine/claude/sdk-module.ts +1 -12
  588. package/src/engine/claude/sdk-runtime.ts +6 -6
  589. package/src/engine/claude/subprocess-runtime.ts +1 -1
  590. package/src/engine/claude/tool-safety.ts +4 -4
  591. package/src/engine/gemma-channel-filter.ts +19 -0
  592. package/src/engine/loop-guard.ts +92 -17
  593. package/src/engine/session.ts +14 -7
  594. package/src/engine/tui-primitives.ts +1 -1
  595. package/src/engine/worker-events.ts +6 -6
  596. package/src/engine/worker-runtime.ts +54 -24
  597. package/src/engine/worker-tools.ts +3 -1
  598. package/src/entry/extension-hook-sources.ts +28 -0
  599. package/src/entry/extension-reload.ts +309 -0
  600. package/src/entry/orchestrator.ts +163 -120
  601. package/src/interactive/application-controller.ts +23 -22
  602. package/src/interactive/bus-notices.ts +10 -3
  603. package/src/interactive/chat-loop-messages.ts +3 -13
  604. package/src/interactive/chat-loop.ts +18 -9
  605. package/src/interactive/chat-panel.ts +37 -14
  606. package/src/interactive/chat-renderer.ts +71 -7
  607. package/src/interactive/clio-editor.ts +105 -1
  608. package/src/interactive/context-activity.ts +8 -6
  609. package/src/interactive/context-meter.ts +3 -6
  610. package/src/interactive/context-overlay.ts +1 -1
  611. package/src/interactive/cost-overlay.ts +1 -1
  612. package/src/interactive/council-grid.ts +2 -2
  613. package/src/interactive/dispatch-board.ts +36 -44
  614. package/src/interactive/editor-bash.ts +21 -0
  615. package/src/interactive/editor-steer.ts +9 -4
  616. package/src/interactive/editor-submit.ts +24 -18
  617. package/src/interactive/external-editor.ts +1 -1
  618. package/src/interactive/file-reference-completion.ts +360 -0
  619. package/src/interactive/footer/dashboard.ts +15 -17
  620. package/src/interactive/footer/notifications.ts +14 -8
  621. package/src/interactive/footer/widgets.ts +15 -44
  622. package/src/interactive/interactive-application.ts +116 -61
  623. package/src/interactive/interactive-event-projection.ts +1 -1
  624. package/src/interactive/interactive-input-runtime.ts +6 -2
  625. package/src/interactive/interactive-presentation.ts +22 -17
  626. package/src/interactive/interactive-shell.ts +2 -2
  627. package/src/interactive/interactive-slash-runtime.ts +65 -17
  628. package/src/interactive/interactive-subscriptions.ts +1 -1
  629. package/src/interactive/interactive-tickers.ts +1 -1
  630. package/src/interactive/keybinding-manager.ts +4 -4
  631. package/src/interactive/layout.ts +1 -1
  632. package/src/interactive/memory-overlay.ts +2 -2
  633. package/src/interactive/modal-marker.ts +2 -21
  634. package/src/interactive/mutation-preview.ts +1 -1
  635. package/src/interactive/overlay-frame.ts +4 -12
  636. package/src/interactive/overlay-general-openers.ts +6 -2
  637. package/src/interactive/overlay-key-routing.ts +7 -7
  638. package/src/interactive/overlay-lifecycle.ts +1 -1
  639. package/src/interactive/overlay-model-selectors.ts +3 -3
  640. package/src/interactive/overlays/agents.ts +2 -2
  641. package/src/interactive/overlays/ask-user.ts +25 -11
  642. package/src/interactive/overlays/context-reset.ts +28 -4
  643. package/src/interactive/overlays/cwd-fallback.ts +28 -4
  644. package/src/interactive/overlays/decisions.ts +4 -2
  645. package/src/interactive/overlays/extensions.ts +9 -1
  646. package/src/interactive/overlays/fleet-run-approval.ts +3 -3
  647. package/src/interactive/overlays/handoff-review.ts +2 -2
  648. package/src/interactive/overlays/help-reference.ts +13 -0
  649. package/src/interactive/overlays/interop.ts +1 -1
  650. package/src/interactive/overlays/library-install-confirm.ts +1 -1
  651. package/src/interactive/overlays/message-picker.ts +1 -1
  652. package/src/interactive/overlays/model-selector.ts +39 -31
  653. package/src/interactive/overlays/prompts.ts +10 -4
  654. package/src/interactive/overlays/session-selector.ts +2 -2
  655. package/src/interactive/overlays/settings.ts +360 -303
  656. package/src/interactive/overlays/side-question.ts +2 -2
  657. package/src/interactive/overlays/skills-hub.ts +8 -8
  658. package/src/interactive/overlays/tree-selector.ts +2 -2
  659. package/src/interactive/panes-runtime.ts +145 -43
  660. package/src/interactive/permission-overlay.ts +2 -2
  661. package/src/interactive/prompt-cache-identity.ts +88 -0
  662. package/src/interactive/renderers/retry-status.ts +12 -4
  663. package/src/interactive/renderers/tool-execution.ts +4 -4
  664. package/src/interactive/session-transcript.ts +3 -3
  665. package/src/interactive/slash-autocomplete.ts +454 -165
  666. package/src/interactive/slash-commands.ts +401 -190
  667. package/src/interactive/slash-spec.ts +160 -17
  668. package/src/interactive/status/controller.ts +2 -2
  669. package/src/interactive/stream-pacing-policy.ts +1 -24
  670. package/src/interactive/tasks-overlay.ts +20 -13
  671. package/src/interactive/terminal-lease.ts +6 -7
  672. package/src/interactive/turn-context.ts +41 -26
  673. package/src/interactive/turn-persistence.ts +2 -2
  674. package/src/interactive/turn-prewarm.ts +2 -2
  675. package/src/interactive/turn-runtime.ts +8 -8
  676. package/src/interactive/turn-state.ts +1 -1
  677. package/src/interactive/view/artifacts.ts +12 -9
  678. package/src/interactive/view/view-overlay.ts +13 -10
  679. package/src/interactive/watch-pane.ts +38 -10
  680. package/src/interactive/welcome-dashboard.ts +15 -15
  681. package/src/interactive/worker-progress.ts +4 -4
  682. package/src/interactive/worker-receipts.ts +1 -1
  683. package/src/interactive/worker-stream.ts +1 -4
  684. package/src/interactive/yazi-bridge.ts +72 -11
  685. package/src/tools/agent-tools.ts +30 -1
  686. package/src/tools/artifact.ts +2 -2
  687. package/src/tools/ask-user.ts +6 -6
  688. package/src/tools/bash.ts +2 -2
  689. package/src/tools/bootstrap.ts +4 -0
  690. package/src/tools/builtin-tool-catalog.ts +52 -22
  691. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  692. package/src/tools/codewiki/code-nav.ts +99 -13
  693. package/src/tools/compete-worktrees.ts +27 -17
  694. package/src/tools/context/docs-engine.ts +20 -7
  695. package/src/tools/context/index.ts +44 -13
  696. package/src/tools/core-bootstrap.ts +28 -6
  697. package/src/tools/credential-present.ts +1 -2
  698. package/src/tools/dispatch-admission.ts +4 -2
  699. package/src/tools/dispatch-arguments.ts +6 -2
  700. package/src/tools/dispatch-plan.ts +48 -15
  701. package/src/tools/dispatch-run-events.ts +13 -11
  702. package/src/tools/dispatch-runner.ts +11 -6
  703. package/src/tools/dispatch-schema.ts +338 -0
  704. package/src/tools/dispatch-types.ts +3 -0
  705. package/src/tools/dispatch.ts +9 -254
  706. package/src/tools/find.ts +1 -6
  707. package/src/tools/ledger.ts +3 -5
  708. package/src/tools/monitor-surface.ts +5 -13
  709. package/src/tools/monitor.ts +4 -4
  710. package/src/tools/observation.ts +4 -5
  711. package/src/tools/observers.ts +0 -33
  712. package/src/tools/panes-surface.ts +4 -11
  713. package/src/tools/panes.ts +4 -2
  714. package/src/tools/policy.ts +15 -2
  715. package/src/tools/read.ts +5 -6
  716. package/src/tools/registry.ts +30 -7
  717. package/src/tools/result-shaping.ts +18 -14
  718. package/src/tools/steer-surface.ts +1 -1
  719. package/src/tools/task-worktree.ts +28 -7
  720. package/src/tools/tasks.ts +1 -1
  721. package/src/tools/truncate.ts +6 -5
  722. package/src/tools/verify/authoring.ts +3 -6
  723. package/src/tools/verify/frontend.ts +1 -1
  724. package/src/tools/verify/surface.ts +6 -12
  725. package/src/tools/web-fetch-surface.ts +1 -3
  726. package/src/tools/web-fetch.ts +1 -1
  727. package/src/worker/entry.ts +4 -3
  728. package/src/worker/protocol.ts +16 -14
  729. package/src/worker/spec-contract.ts +2 -2
  730. package/src/worker/stdin-demux.ts +2 -2
  731. package/dist/chunk-36EJLSQQ.js +0 -814
  732. package/dist/chunk-GXNLGKAB.js +0 -571
  733. package/dist/chunk-K7VKOLQQ.js +0 -15
  734. package/dist/chunk-PMZCIOCJ.js +0 -25
  735. package/dist/chunk-SUCTJL45.js +0 -45
  736. package/dist/chunk-SUW5DORT.js +0 -819
  737. package/dist/chunk-TZ3SGWZZ.js +0 -48
  738. package/dist/chunk-UOV2BYIW.js +0 -107
  739. package/dist/chunk-VFA6GDY5.js +0 -1625
  740. package/dist/doctor-QOA5FNY5.js +0 -313
  741. package/dist/fleet-view-ZCON35AG.js +0 -102
  742. package/dist/panes-HMABYVO4.js +0 -58
  743. package/docs/artifact-versions.md +0 -67
  744. package/docs/documentation-coverage.md +0 -46
  745. package/docs/documentation-guide.md +0 -167
  746. package/docs/release-cut-checklist.md +0 -193
  747. package/docs/time-conventions.md +0 -101
  748. package/skills/meta/clio-test/SKILL.md +0 -133
  749. package/skills/meta/clio-test/references/harness.md +0 -126
  750. package/skills/meta/clio-test/references/test-map.md +0 -69
  751. package/src/engine/apis/degraded-inference.ts +0 -95
@@ -1,7 +1,13 @@
1
1
  ---
2
2
  name: grill-me
3
- description: Use when the user wants a plan, design, or idea stress-tested through a phased one-question-at-a-time interview before any code is written, or when intent is too ambiguous to plan from. Scans available context first, reviews known facts, fills missing decisions, respects stop signals, and ends with a compact decision log. Triggers on "grill me", "interview me", "stress-test this plan", "poke holes in this".
4
- version: 0.3.2
3
+ description: Stress-tests a plan, design, or idea through a phased one-question-at-a-time interview before code is written, ending in a compact decision log. Not for a multi-perspective debate; use design-council.
4
+ triggers:
5
+ - grill me
6
+ - interview me about this plan
7
+ - stress-test this design
8
+ - poke holes in this idea
9
+ - clarify this plan one question at a time
10
+ version: 0.4.0
5
11
  license: Apache-2.0
6
12
  allowed-tools:
7
13
  - read
@@ -12,7 +18,7 @@ allowed-tools:
12
18
  - context
13
19
  - code_nav
14
20
  - ask_user
15
- clio:
21
+ clio-coder:
16
22
  registry-id: iowarp/clio-coder
17
23
  source-url: https://github.com/iowarp/clio-coder/tree/main/skills/workflow/grill-me
18
24
  audit: pass
@@ -1,7 +1,13 @@
1
1
  ---
2
2
  name: workflow-distiller
3
- description: Use when a workflow that just happened should become reusable, when the user says "make this a skill", "package what we just did", "turn this into a workflow", or when the same multi-step process has been repeated across sessions. Reconstructs the workflow from the session record, interviews, checks overlap with installed skills, gates on approval, then writes the SKILL.md following skill-craft. Not for authoring a skill from scratch with no prior workflow; write the SKILL.md directly following skill-craft. Not for distilling into an agent recipe; propose that as a follow-up when the workflow is dispatch-shaped.
4
- version: 0.2.1
3
+ description: "Packages a workflow that just happened into a reusable SKILL.md: reconstructs it from the session record, checks overlap with installed skills, gates on approval, then writes it following skill-craft. Not for authoring a skill with no prior workflow; use skill-craft."
4
+ triggers:
5
+ - make this workflow a skill
6
+ - package what we just did
7
+ - turn this into a reusable workflow
8
+ - distill this repeated process
9
+ - create a skill from this session
10
+ version: 0.3.0
5
11
  license: Apache-2.0
6
12
  allowed-tools:
7
13
  - read
@@ -13,7 +19,7 @@ allowed-tools:
13
19
  - ask_user
14
20
  requires:
15
21
  - skill:skill-craft
16
- clio:
22
+ clio-coder:
17
23
  registry-id: iowarp/clio-coder
18
24
  source-url: https://github.com/iowarp/clio-coder/tree/main/skills/workflow/workflow-distiller
19
25
  audit: pass
package/src/cli/acp.ts CHANGED
@@ -58,7 +58,7 @@ function parseAcpFlags(args: ReadonlyArray<string>): AcpFlags | string {
58
58
  * Throws when the path cannot be resolved, which the caller reports as an
59
59
  * unusable `--cwd`.
60
60
  */
61
- export function resolveAcpCwd(value: string): string {
61
+ function resolveAcpCwd(value: string): string {
62
62
  return realpathSync(path.resolve(value));
63
63
  }
64
64
 
@@ -107,7 +107,7 @@ export async function runAcpCommand(
107
107
  transportOptions: {
108
108
  write: writeRawStdout,
109
109
  diagnostics: (line) => {
110
- process.stderr.write(`[clio:acp] ${line}\n`);
110
+ process.stderr.write(`[clio-coder:acp] ${line}\n`);
111
111
  },
112
112
  },
113
113
  ...(flags.permissionTimeoutMs === undefined ? {} : { permissionTimeoutMs: flags.permissionTimeoutMs }),
package/src/cli/args.ts CHANGED
@@ -166,12 +166,12 @@ export function parseRunCliArgs(argv: ReadonlyArray<string>): RunCliArgs {
166
166
  if (value !== null) parsed.agentId = value;
167
167
  continue;
168
168
  }
169
- if (arg === "--agent-profile" || arg === "--worker-profile" || arg === "--worker") {
169
+ if (arg === "--agent-profile") {
170
170
  const value = need(arg);
171
171
  if (value !== null) parsed.agentProfile = value;
172
172
  continue;
173
173
  }
174
- if (arg === "--agent-runtime" || arg === "--worker-runtime" || arg === "--runtime") {
174
+ if (arg === "--agent-runtime") {
175
175
  const value = need(arg);
176
176
  if (value !== null) parsed.agentRuntime = value;
177
177
  continue;
package/src/cli/auth.ts CHANGED
@@ -104,8 +104,8 @@ function renderStatusRows(rows: ReadonlyArray<ConnectableProviderRow>): string {
104
104
 
105
105
  function defaultAuthTarget(rows: ReadonlyArray<ConnectableProviderRow>): string | undefined {
106
106
  const settings = readSettings();
107
- const activeTarget = settings.orchestrator.target
108
- ? settings.targets.find((entry) => entry.id === settings.orchestrator.target)
107
+ const activeTarget = settings.chat.target
108
+ ? settings.targets.find((entry) => entry.id === settings.chat.target)
109
109
  : undefined;
110
110
  if (activeTarget && rows.some((row) => row.entry.runtimeId === activeTarget.runtime)) {
111
111
  return activeTarget.runtime;
@@ -79,9 +79,9 @@ export interface BootstrapRoute {
79
79
  */
80
80
  export function resolveBootstrapRoute(settings: Readonly<ClioSettings>): BootstrapRoute {
81
81
  for (const agentId of [CONTEXT_BOOTSTRAP_AGENT_ID, "scout"]) {
82
- const profileName = settings.workers.agentBindings[agentId];
82
+ const profileName = settings.fleet.agentProfiles[agentId];
83
83
  if (!profileName) continue;
84
- const profile = settings.workers.profiles[profileName];
84
+ const profile = settings.fleet.profiles[profileName];
85
85
  if (!profile) throw new Error(`bootstrap profile '${profileName}' is not configured (bound to '${agentId}')`);
86
86
  if (!profile.target) throw new Error(`bootstrap profile '${profileName}' has no target (bound to '${agentId}')`);
87
87
  return {
@@ -90,7 +90,7 @@ export function resolveBootstrapRoute(settings: Readonly<ClioSettings>): Bootstr
90
90
  ...(profile.thinkingLevel ? { thinkingLevel: profile.thinkingLevel } : {}),
91
91
  };
92
92
  }
93
- const fallback = settings.workers.default;
93
+ const fallback = settings.fleet.default;
94
94
  if (!fallback?.target) {
95
95
  throw new Error(
96
96
  `bootstrap has no route: workers.agentBindings.${CONTEXT_BOOTSTRAP_AGENT_ID} is unbound and ` +
@@ -233,7 +233,7 @@ async function collectDispatchAssistantText(
233
233
  message: "bootstrap agent started repository exploration",
234
234
  });
235
235
  }
236
- if (isRecord(event) && event.type === "clio_tool_start") {
236
+ if (isRecord(event) && event.type === "clio_coder_tool_start") {
237
237
  const tool = toolNameFromEvent(event);
238
238
  if (tool) {
239
239
  input.progress?.({
@@ -244,7 +244,7 @@ async function collectDispatchAssistantText(
244
244
  });
245
245
  }
246
246
  }
247
- if (isRecord(event) && event.type === "clio_tool_finish") {
247
+ if (isRecord(event) && event.type === "clio_coder_tool_finish") {
248
248
  const tool = toolNameFromEvent(event);
249
249
  const outcome = toolOutcomeFromEvent(event) ?? "done";
250
250
  if (tool) {
@@ -325,7 +325,7 @@ async function attemptBootstrapDispatch(
325
325
  // and returned zero bytes at 29s. The wiki documenter in this same directory
326
326
  // budgets minutes for the same shape of work. `internalDispatchTimeoutMs` is
327
327
  // the operator's knob for slow targets; nothing here knows better than it does.
328
- const deadline = armInternalDispatchDeadline(dispatch, handle.runId, "context bootstrap", process.env);
328
+ const deadline = armInternalDispatchDeadline(dispatch, handle.runId, "context bootstrap");
329
329
  let text = "";
330
330
  let receipt: RunReceipt | undefined;
331
331
  let parserAttempted = false;
package/src/cli/clio.ts CHANGED
@@ -6,7 +6,7 @@ import { classifyDefaultTarget, describeVerdict } from "./default-target.js";
6
6
 
7
7
  /** Headless and ACP keep their established non-TUI transports even when an
8
8
  * embedding process leaves the interactive marker in the environment. */
9
- export function terminalLeaseEligible(
9
+ function terminalLeaseEligible(
10
10
  options: Pick<BootOptions, "headless" | "acp">,
11
11
  env: Readonly<Record<string, string | undefined>> = process.env,
12
12
  ): boolean {
@@ -44,6 +44,11 @@ export async function runClioCommand(options: BootOptions = {}): Promise<number>
44
44
  const configured = await runConfigureCommand([]);
45
45
  if (configured !== 0) return configured;
46
46
  startupSettings = readStrictLayeredSettings(process.cwd()).settings;
47
+ const configuredVerdict = classifyDefaultTarget(startupSettings);
48
+ if (configuredVerdict.kind !== "usable" && configuredVerdict.kind !== "missing-credential") {
49
+ process.stderr.write(`${describeVerdict(configuredVerdict)} Configuration did not complete; startup cancelled.\n`);
50
+ return 2;
51
+ }
47
52
  }
48
53
  }
49
54
  let terminalLease: import("../interactive/terminal-lease.js").TerminalLease | undefined;
@@ -16,7 +16,7 @@ import { basename, join } from "node:path";
16
16
  import type { ClioSettings } from "../core/config.js";
17
17
  import { resolvePackageRoot } from "../core/package-root.js";
18
18
  import { readLayeredSettings, type SettingsOrigin, settingsSourceFor } from "../core/settings-layers.js";
19
- import { clioDataDir } from "../core/xdg.js";
19
+ import { clioDataDir, clioStateDir } from "../core/xdg.js";
20
20
  import {
21
21
  loadOperatorProfile,
22
22
  loadProjectClioMd,
@@ -24,12 +24,18 @@ import {
24
24
  renderOperatorProfile,
25
25
  renderPromptContext,
26
26
  } from "../domains/context/index.js";
27
- import { listInstalledExtensions } from "../domains/extensions/index.js";
27
+ import { extensionSnapshotFor, listInstalledExtensions } from "../domains/extensions/index.js";
28
28
  import { loadMemoryRecordsSync, memoryStorePath } from "../domains/memory/index.js";
29
- import { loadUserHooks, readHookSources } from "../domains/middleware/index.js";
29
+ import {
30
+ HOOK_RECEIPT_LOG_CAPACITY,
31
+ loadUserHooks,
32
+ readHookSources,
33
+ readPersistedHookReceipts,
34
+ } from "../domains/middleware/index.js";
30
35
  import { classifyProjectPreload } from "../domains/prompts/preload.js";
31
36
  import { defaultScopedResourceRoots } from "../domains/resources/common-loader.js";
32
37
  import { ceilChars } from "../domains/session/context-accounting.js";
38
+ import { capturedHookSourcesFor } from "../entry/extension-hook-sources.js";
33
39
 
34
40
  export type CustomizationCategory =
35
41
  | "settings"
@@ -45,7 +51,8 @@ export type CustomizationCategory =
45
51
  | "safety"
46
52
  | "memory";
47
53
 
48
- export type ReloadClass = "hot" | "next-turn" | "restart" | "n/a";
54
+ /** `reload` means an explicit `/resources extensions reload` (or a restart) publishes the change. */
55
+ export type ReloadClass = "hot" | "next-turn" | "reload" | "restart" | "n/a";
49
56
 
50
57
  export interface CustomizationEntry {
51
58
  category: CustomizationCategory;
@@ -203,10 +210,13 @@ function inspectOperatorProfile(cwd: string, graph: CustomizationGraph): void {
203
210
 
204
211
  function inspectHooks(cwd: string, graph: CustomizationGraph): void {
205
212
  try {
206
- const extensions = listInstalledExtensions(cwd)
207
- .filter((ext) => ext.enabled && ext.effective)
208
- .map((ext) => ({ id: ext.id, rootPath: ext.rootPath }));
209
- const { batches, fileIssues } = readHookSources({ cwd, extensions });
213
+ // Extension declarations come from the same captured bytes a booted
214
+ // session admits; an inspecting process without a bound store builds an
215
+ // ephemeral generation-0 projection.
216
+ const { batches, fileIssues } = readHookSources({
217
+ cwd,
218
+ capturedSources: capturedHookSourcesFor(extensionSnapshotFor(cwd)),
219
+ });
210
220
  for (const issue of fileIssues) graph.issues.push(`hook ${issue.source.origin}: ${issue.message}`);
211
221
  const loaded = loadUserHooks(batches, { workspaceRoot: cwd });
212
222
  for (const issue of loaded.issues) {
@@ -221,7 +231,7 @@ function inspectHooks(cwd: string, graph: CustomizationGraph): void {
221
231
  hash: hook.hash,
222
232
  trust: hook.source.origin === "extension" ? "untrusted" : "trusted",
223
233
  precedence: "winner",
224
- reloadClass: "restart",
234
+ reloadClass: "reload",
225
235
  detail: { on: hook.on, kind: hook.spec.kind, enabled: hook.enabled, ...(hook.tools ? { tools: hook.tools } : {}) },
226
236
  });
227
237
  }
@@ -234,7 +244,7 @@ function inspectHooks(cwd: string, graph: CustomizationGraph): void {
234
244
  hash: loser.hash,
235
245
  trust: loser.source.origin === "extension" ? "untrusted" : "trusted",
236
246
  precedence: "loser",
237
- reloadClass: "restart",
247
+ reloadClass: "reload",
238
248
  detail: { on: loser.on, kind: loser.spec.kind },
239
249
  });
240
250
  }
@@ -243,6 +253,42 @@ function inspectHooks(cwd: string, graph: CustomizationGraph): void {
243
253
  }
244
254
  }
245
255
 
256
+ /**
257
+ * Rolls up the durable hook-execution receipt log (`<stateDir>/hook-receipts.json`,
258
+ * written by `createHookReceiptLog` in `src/domains/middleware/hook-receipts.ts`)
259
+ * into one entry, since this process never held the live in-memory ring a
260
+ * running session's own invocation writes through. One entry rather than one
261
+ * per receipt: this graph explains configuration provenance, and a couple
262
+ * hundred execution rows would swamp that rather than answer it.
263
+ */
264
+ function inspectHookReceipts(graph: CustomizationGraph): void {
265
+ const path = join(clioStateDir(), "hook-receipts.json");
266
+ try {
267
+ const receipts = existsSync(path) ? readPersistedHookReceipts(path) : [];
268
+ const outcomes: Record<string, number> = {};
269
+ for (const receipt of receipts) outcomes[receipt.outcome] = (outcomes[receipt.outcome] ?? 0) + 1;
270
+ const last = receipts.at(-1);
271
+ graph.entries.push({
272
+ category: "hook",
273
+ id: "hook-receipts",
274
+ scope: "user",
275
+ sourcePath: path,
276
+ reloadClass: "n/a",
277
+ trust: "n/a",
278
+ precedence: "single",
279
+ detail: {
280
+ present: existsSync(path),
281
+ count: receipts.length,
282
+ capacity: HOOK_RECEIPT_LOG_CAPACITY,
283
+ outcomes,
284
+ ...(last === undefined ? {} : { mostRecent: { at: last.at, hookId: last.hookId, outcome: last.outcome } }),
285
+ },
286
+ });
287
+ } catch (err) {
288
+ graph.issues.push(`hook-receipts: ${err instanceof Error ? err.message : String(err)}`);
289
+ }
290
+ }
291
+
246
292
  function inspectExtensions(cwd: string, graph: CustomizationGraph): void {
247
293
  try {
248
294
  for (const ext of listInstalledExtensions(cwd, { all: true })) {
@@ -254,8 +300,14 @@ function inspectExtensions(cwd: string, graph: CustomizationGraph): void {
254
300
  hash: shortHash(`${ext.id}@${ext.version}`),
255
301
  trust: "untrusted",
256
302
  precedence: ext.effective ? "winner" : "loser",
257
- reloadClass: "restart",
258
- detail: { version: ext.version, enabled: ext.enabled, effective: ext.effective },
303
+ reloadClass: "reload",
304
+ detail: {
305
+ version: ext.version,
306
+ enabled: ext.enabled,
307
+ valid: ext.valid,
308
+ effective: ext.effective,
309
+ loadable: ext.loadable,
310
+ },
259
311
  });
260
312
  }
261
313
  } catch (err) {
@@ -317,12 +369,12 @@ function inspectSafetyAndMemory(cwd: string, graph: CustomizationGraph): void {
317
369
  const layered = readLayeredSettings(cwd);
318
370
  graph.entries.push({
319
371
  category: "safety",
320
- id: "autonomy",
321
- scope: settingsSourceFor(layered.sources, "autonomy"),
372
+ id: "safety.autonomy",
373
+ scope: settingsSourceFor(layered.sources, "safety.autonomy"),
322
374
  reloadClass: "hot",
323
375
  trust: "n/a",
324
376
  precedence: "single",
325
- detail: { autonomy: layered.settings.autonomy ?? "auto-edit" },
377
+ detail: { autonomy: layered.settings.safety.autonomy ?? "auto-edit" },
326
378
  });
327
379
  } catch (err) {
328
380
  graph.issues.push(`safety: ${err instanceof Error ? err.message : String(err)}`);
@@ -356,6 +408,7 @@ export function buildCustomizationGraph(cwd: string): CustomizationGraph {
356
408
  inspectRules(cwd, graph);
357
409
  inspectOperatorProfile(cwd, graph);
358
410
  inspectHooks(cwd, graph);
411
+ inspectHookReceipts(graph);
359
412
  inspectExtensions(cwd, graph);
360
413
  inspectResourceRoots(cwd, graph);
361
414
  inspectSafetyAndMemory(cwd, graph);
@@ -22,7 +22,7 @@ function describe(proposal: InteropProposal): string {
22
22
  renderProposalEntry(proposal),
23
23
  "",
24
24
  `projectContext stays ${INHERITED_PROJECT_CONTEXT}: this agent receives your task text, never the project projection.`,
25
- `toolGovernance is clio-policy: its tool calls are gated by Clio safety.`,
25
+ `toolGovernance is clio-coder-policy: its tool calls are gated by Clio safety.`,
26
26
  ];
27
27
  if (proposal.needsNetworkInstall) {
28
28
  lines.push(`The ACP adapter is not installed locally; npx fetches it the first time you delegate.`);
@@ -80,7 +80,7 @@ Non-interactive flags:
80
80
  --force save a model outside the runtime catalog, or one the
81
81
  target does not advertise, without refusing
82
82
  --gateway mark the target as a gateway
83
- --lifecycle <user-managed|clio-managed>
83
+ --lifecycle <user-managed|clio-coder-managed>
84
84
  resident model lifecycle policy
85
85
  --set-orchestrator use this target for chat
86
86
  --set-background use this target for proactive task memory
@@ -200,15 +200,12 @@ function parseSetupArgs(argv: ReadonlyArray<string>): ParsedArgs {
200
200
  out.backgroundModel = need();
201
201
  break;
202
202
  case "--fleet-model":
203
- case "--worker-model":
204
203
  out.workerModel = need();
205
204
  break;
206
205
  case "--agent-profile":
207
- case "--worker-profile":
208
206
  out.workerProfile = need();
209
207
  break;
210
208
  case "--agent-profile-model":
211
- case "--worker-profile-model":
212
209
  out.workerProfileModel = need();
213
210
  break;
214
211
  case "--api-key-env":
@@ -225,8 +222,8 @@ function parseSetupArgs(argv: ReadonlyArray<string>): ParsedArgs {
225
222
  break;
226
223
  case "--lifecycle": {
227
224
  const v = need();
228
- if (v !== "user-managed" && v !== "clio-managed") {
229
- throw new Error("--lifecycle must be user-managed or clio-managed");
225
+ if (v !== "user-managed" && v !== "clio-coder-managed") {
226
+ throw new Error("--lifecycle must be user-managed or clio-coder-managed");
230
227
  }
231
228
  out.lifecycle = v;
232
229
  break;
@@ -238,7 +235,6 @@ function parseSetupArgs(argv: ReadonlyArray<string>): ParsedArgs {
238
235
  out.setBackground = true;
239
236
  break;
240
237
  case "--set-fleet-default":
241
- case "--set-worker-default":
242
238
  out.setWorkerDefault = true;
243
239
  break;
244
240
  case "--context-window": {
@@ -485,13 +481,13 @@ function setOrchestratorPointer(settings: ClioSettings, descriptor: TargetDescri
485
481
  `cannot use target '${descriptor.id}' as orchestrator target because runtime '${runtime.id}' is not an HTTP/native runtime`,
486
482
  );
487
483
  }
488
- settings.orchestrator.target = descriptor.id;
489
- settings.orchestrator.model = model ?? descriptor.defaultModel ?? null;
484
+ settings.chat.target = descriptor.id;
485
+ settings.chat.model = model ?? descriptor.defaultModel ?? null;
490
486
  }
491
487
 
492
488
  function setWorkerDefaultPointer(settings: ClioSettings, descriptor: TargetDescriptor, model?: string | null): void {
493
- settings.workers.default.target = descriptor.id;
494
- settings.workers.default.model = model ?? descriptor.defaultModel ?? null;
489
+ settings.fleet.default.target = descriptor.id;
490
+ settings.fleet.default.model = model ?? descriptor.defaultModel ?? null;
495
491
  }
496
492
 
497
493
  function setBackgroundPointer(settings: ClioSettings, descriptor: TargetDescriptor, model?: string | null): void {
@@ -501,13 +497,13 @@ function setBackgroundPointer(settings: ClioSettings, descriptor: TargetDescript
501
497
  `cannot use target '${descriptor.id}' as background target because runtime '${descriptor.runtime}' is not an HTTP/native runtime`,
502
498
  );
503
499
  }
504
- settings.background.target = descriptor.id;
505
- settings.background.model = model ?? descriptor.defaultModel ?? null;
500
+ settings.context.memory.target = descriptor.id;
501
+ settings.context.memory.model = model ?? descriptor.defaultModel ?? null;
506
502
  }
507
503
 
508
504
  function assertOrchestratorReplacementEligible(settings: ClioSettings, descriptor: TargetDescriptor): void {
509
- if (settings.orchestrator.target !== descriptor.id && settings.background.target !== descriptor.id) return;
510
- const role = settings.orchestrator.target === descriptor.id ? "orchestrator" : "background";
505
+ if (settings.chat.target !== descriptor.id && settings.context.memory.target !== descriptor.id) return;
506
+ const role = settings.chat.target === descriptor.id ? "orchestrator" : "background";
511
507
  const runtime = getRuntimeRegistry().get(descriptor.runtime);
512
508
  if (!runtime) {
513
509
  throw new Error(
@@ -527,7 +523,7 @@ function setWorkerProfilePointer(
527
523
  ): void {
528
524
  const trimmed = name.trim();
529
525
  if (trimmed.length === 0) throw new Error("fleet profile name must be non-empty");
530
- settings.workers.profiles[trimmed] = {
526
+ settings.fleet.profiles[trimmed] = {
531
527
  target: descriptor.id,
532
528
  model: model ?? descriptor.defaultModel ?? null,
533
529
  thinkingLevel: "off",
@@ -607,10 +603,10 @@ function printSummary(settings: ClioSettings, descriptor: TargetDescriptor, prob
607
603
  for (const line of probeLines(descriptor, probe)) process.stdout.write(` ${line}\n`);
608
604
  }
609
605
  warnUndiscoveredContextWindow(descriptor, probe);
610
- if (settings.orchestrator.target === descriptor.id) process.stdout.write(" orchestrator target\n");
611
- if (settings.background.target === descriptor.id) process.stdout.write(" background memory target\n");
612
- if (settings.workers.default.target === descriptor.id) process.stdout.write(" fleet default\n");
613
- for (const [name, profile] of Object.entries(settings.workers.profiles)) {
606
+ if (settings.chat.target === descriptor.id) process.stdout.write(" orchestrator target\n");
607
+ if (settings.context.memory.target === descriptor.id) process.stdout.write(" background memory target\n");
608
+ if (settings.fleet.default.target === descriptor.id) process.stdout.write(" fleet default\n");
609
+ for (const [name, profile] of Object.entries(settings.fleet.profiles)) {
614
610
  if (profile.target === descriptor.id) process.stdout.write(` fleet profile ${name}\n`);
615
611
  }
616
612
  process.stdout.write(`\nsettings written to ${settingsPath()}\n`);
@@ -1155,7 +1151,7 @@ async function runInteractive(
1155
1151
  let runtime = preselectedRuntime ?? (await pickRuntimeViaCategory(rl));
1156
1152
  if (!runtime) {
1157
1153
  printError("configuration cancelled");
1158
- return 0;
1154
+ return 130;
1159
1155
  }
1160
1156
  const auth = openAuthStorage();
1161
1157
  const settings = readSettings();
@@ -1413,10 +1409,10 @@ async function runInteractive(
1413
1409
  ? false
1414
1410
  : defaults.setOrchestrator
1415
1411
  ? true
1416
- : await askYesNo(rl, "use as orchestrator (chat) target?", !settings.orchestrator.target);
1412
+ : await askYesNo(rl, "use as orchestrator (chat) target?", !settings.chat.target);
1417
1413
  const setWorkerDefault = defaults.setWorkerDefault
1418
1414
  ? true
1419
- : await askYesNo(rl, "use as fleet default?", !settings.workers.default.target);
1415
+ : await askYesNo(rl, "use as fleet default?", !settings.fleet.default.target);
1420
1416
  const setBackground = !isOrchestratorEligibleRuntime(runtime)
1421
1417
  ? false
1422
1418
  : defaults.setBackground
@@ -1428,7 +1424,7 @@ async function runInteractive(
1428
1424
  rl,
1429
1425
  "Orchestrator model",
1430
1426
  wireModels,
1431
- settings.orchestrator.target === targetId ? (settings.orchestrator.model ?? model) : model,
1427
+ settings.chat.target === targetId ? (settings.chat.model ?? model) : model,
1432
1428
  )))
1433
1429
  : undefined;
1434
1430
  if (orchestratorModel === null) return 0;
@@ -1438,7 +1434,7 @@ async function runInteractive(
1438
1434
  rl,
1439
1435
  "Fleet model",
1440
1436
  wireModels,
1441
- settings.workers.default.target === targetId ? (settings.workers.default.model ?? model) : model,
1437
+ settings.fleet.default.target === targetId ? (settings.fleet.default.model ?? model) : model,
1442
1438
  )))
1443
1439
  : undefined;
1444
1440
  if (workerModel === null) return 0;
@@ -1448,7 +1444,7 @@ async function runInteractive(
1448
1444
  rl,
1449
1445
  "Background memory model",
1450
1446
  wireModels,
1451
- settings.background.target === targetId ? (settings.background.model ?? model) : model,
1447
+ settings.context.memory.target === targetId ? (settings.context.memory.model ?? model) : model,
1452
1448
  )))
1453
1449
  : undefined;
1454
1450
  if (backgroundModel === null) return 0;
@@ -1498,13 +1494,13 @@ export function runTargetRename(oldId: string, newId: string): number {
1498
1494
  const target = settings.targets.find((e) => e.id === oldId);
1499
1495
  if (!target) return;
1500
1496
  target.id = newId;
1501
- if (settings.orchestrator.target === oldId) settings.orchestrator.target = newId;
1502
- if (settings.background.target === oldId) settings.background.target = newId;
1503
- if (settings.workers.default.target === oldId) settings.workers.default.target = newId;
1504
- for (const profile of Object.values(settings.workers.profiles)) {
1497
+ if (settings.chat.target === oldId) settings.chat.target = newId;
1498
+ if (settings.context.memory.target === oldId) settings.context.memory.target = newId;
1499
+ if (settings.fleet.default.target === oldId) settings.fleet.default.target = newId;
1500
+ for (const profile of Object.values(settings.fleet.profiles)) {
1505
1501
  if (profile.target === oldId) profile.target = newId;
1506
1502
  }
1507
- settings.scope = settings.scope.map((entry) => {
1503
+ settings.chat.modelPicker.cycleSet = settings.chat.modelPicker.cycleSet.map((entry) => {
1508
1504
  const [head, ...rest] = entry.split("/");
1509
1505
  if (head !== oldId) return entry;
1510
1506
  return rest.length === 0 ? newId : `${newId}/${rest.join("/")}`;
@@ -24,7 +24,7 @@ export type DefaultTargetVerdict =
24
24
  | { kind: "missing-credential"; targetId: string; store: string };
25
25
 
26
26
  export function classifyDefaultTarget(settings: Readonly<ClioSettings> = readSettings()): DefaultTargetVerdict {
27
- const targetId = settings.orchestrator.target;
27
+ const targetId = settings.chat.target;
28
28
  if (!targetId) return { kind: "no-target" };
29
29
  // A chat target naming an id that is not in `targets` cannot arrive here:
30
30
  // the schema normalizes dangling routing references to null so that