@iowarp/clio-coder 0.4.0 → 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 (581) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +116 -16
  3. package/dist/{acp-G5WJBNCT.js → acp-ZILU3AUO.js} +14 -14
  4. package/dist/{agents-FMV2Q5G4.js → agents-HYWGBGQR.js} +40 -29
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-3IDSJEIK.js → auth-N3QT7CBO.js} +21 -19
  7. package/dist/{builtins-XCZWXSC7.js → builtins-UJLMOVOV.js} +6 -6
  8. package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
  9. package/dist/{chunk-3BT2XMV4.js → chunk-2NM363SV.js} +50 -57
  10. package/dist/{chunk-J4W7KFM7.js → chunk-2VG7KLYV.js} +24 -279
  11. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  12. package/dist/{chunk-K5C3NCBD.js → chunk-3I5NY75V.js} +5 -5
  13. package/dist/{chunk-VAZSBTKF.js → chunk-3QSOM6PA.js} +2 -2
  14. package/dist/{chunk-TZ3SGWZZ.js → chunk-5QIAJV2D.js} +2 -2
  15. package/dist/{chunk-OQBA45DZ.js → chunk-5YHDIDBP.js} +2 -2
  16. package/dist/{chunk-NHLBIGRH.js → chunk-6CCS4G3W.js} +40 -17
  17. package/dist/{chunk-2JDWVJND.js → chunk-6DWBAZ5U.js} +2 -2
  18. package/dist/{chunk-LDQ2ZF2M.js → chunk-6FN3E6KX.js} +5 -5
  19. package/dist/{chunk-X3YGUTOB.js → chunk-6HMJX2VU.js} +59 -59
  20. package/dist/{chunk-VEO4AP2K.js → chunk-6I5ILFOF.js} +3 -2
  21. package/dist/{chunk-B7OBL7PK.js → chunk-6NJQITNH.js} +18 -11
  22. package/dist/{chunk-IQ7KR472.js → chunk-6VC4OV3Z.js} +6 -3
  23. package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
  24. package/dist/{chunk-AB44T6BB.js → chunk-74YWRRU5.js} +8 -7
  25. package/dist/{chunk-SJ5ZKQ4S.js → chunk-7EPLI7VL.js} +2 -2
  26. package/dist/{chunk-HWHKMHUA.js → chunk-7OBGU7UB.js} +3 -3
  27. package/dist/{chunk-2OQE55CK.js → chunk-7PWAODYW.js} +2 -2
  28. package/dist/{chunk-IBEBSCYA.js → chunk-7RY5VZPH.js} +42 -33
  29. package/dist/{chunk-LQ3DZAMX.js → chunk-ABLSQ6JX.js} +2 -2
  30. package/dist/{chunk-QLFS5GO2.js → chunk-AFKWHWXF.js} +12 -22
  31. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  32. package/dist/{chunk-O6TL7WWY.js → chunk-AKB4GYDL.js} +4 -4
  33. package/dist/chunk-AP73CFDC.js +308 -0
  34. package/dist/{chunk-JDG2WCRO.js → chunk-BBTJOK6Y.js} +5 -5
  35. package/dist/{chunk-SP2RXXYO.js → chunk-BDPT6GTK.js} +10 -10
  36. package/dist/{chunk-NQQH3YT7.js → chunk-BJGUKIG4.js} +3 -3
  37. package/dist/{chunk-O4XIVISU.js → chunk-BTGG6BG2.js} +79 -38
  38. package/dist/chunk-BTK3SSSK.js +67 -0
  39. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  40. package/dist/chunk-BWW4HLO4.js +301 -0
  41. package/dist/{chunk-I5VEOC6I.js → chunk-C537JADH.js} +10 -10
  42. package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
  43. package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
  44. package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
  45. package/dist/chunk-D7E7WCDF.js +27 -0
  46. package/dist/{chunk-WZR7K7ZX.js → chunk-E67WX76H.js} +6 -6
  47. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  48. package/dist/chunk-EIMVLWB3.js +1842 -0
  49. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  50. package/dist/{chunk-MLKNTWH2.js → chunk-FYUN5KZ3.js} +21 -21
  51. package/dist/{chunk-YJX4SHTD.js → chunk-GIZNH63R.js} +1 -1
  52. package/dist/{chunk-X75E3D2N.js → chunk-GPPB3JBE.js} +18 -16
  53. package/dist/{chunk-GR5G2PVF.js → chunk-GVQJ5CCZ.js} +15 -10
  54. package/dist/chunk-HJWWJ6IL.js +184 -0
  55. package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
  56. package/dist/{chunk-VYMXRQI6.js → chunk-HUAS7ITX.js} +89 -93
  57. package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
  58. package/dist/{chunk-DYJP44XW.js → chunk-IG7BCQBA.js} +1 -1
  59. package/dist/{chunk-32KWKNSF.js → chunk-IXJT6DCX.js} +3 -3
  60. package/dist/{chunk-C2LTL2W6.js → chunk-J4HBWF6Y.js} +360 -172
  61. package/dist/chunk-J5LZHVIT.js +284 -0
  62. package/dist/{chunk-QLL7ILRG.js → chunk-JA5QWE4Z.js} +510 -202
  63. package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
  64. package/dist/{chunk-36EJLSQQ.js → chunk-JZWT5J3Y.js} +4 -4
  65. package/dist/{chunk-HZHHCK24.js → chunk-K6BF4U2H.js} +476 -322
  66. package/dist/{chunk-Z2RR6MAK.js → chunk-MA3H6DM5.js} +6 -6
  67. package/dist/{chunk-CODPRO7Q.js → chunk-MOPSG2X7.js} +6 -6
  68. package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
  69. package/dist/{chunk-YDFRH54B.js → chunk-N5UK64DP.js} +4 -4
  70. package/dist/chunk-NDDGJUXD.js +81 -0
  71. package/dist/{chunk-4ZG3XFUR.js → chunk-NLFAQR7Z.js} +12 -1
  72. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  73. package/dist/{chunk-W5VSYASO.js → chunk-OJTRZGR3.js} +46 -87
  74. package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
  75. package/dist/{chunk-3URVFKWK.js → chunk-PJJ6MY27.js} +5 -5
  76. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  77. package/dist/{chunk-GKF55TAZ.js → chunk-PVAMAVBB.js} +3 -2
  78. package/dist/{chunk-6DB53AJS.js → chunk-QKIFBZKT.js} +7 -7
  79. package/dist/{chunk-HJJTYUHX.js → chunk-QMXC4JB7.js} +20 -20
  80. package/dist/chunk-QTFGO774.js +644 -0
  81. package/dist/{chunk-CY6FY24N.js → chunk-R23Z6K6I.js} +2 -2
  82. package/dist/{chunk-ULC6OTWO.js → chunk-R32CLGZ6.js} +13 -13
  83. package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
  84. package/dist/{chunk-F4CKPOEQ.js → chunk-SCYB3HA4.js} +72 -26
  85. package/dist/{chunk-LY4S7GJC.js → chunk-SINK3QR6.js} +18 -16
  86. package/dist/{chunk-U77AMWDL.js → chunk-TD3PGPQA.js} +43 -22
  87. package/dist/{chunk-QBJA7R7N.js → chunk-THYWACCR.js} +2 -2
  88. package/dist/{chunk-QREDIESB.js → chunk-TVH4ONAM.js} +14 -8
  89. package/dist/chunk-U2WB7TZS.js +271 -0
  90. package/dist/{chunk-KFZI4NIL.js → chunk-UAPGZHYC.js} +145 -31
  91. package/dist/{chunk-DQITNCXG.js → chunk-UEDMSP56.js} +29 -14
  92. package/dist/{chunk-3XML7CDN.js → chunk-UXN6JT4W.js} +2 -2
  93. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  94. package/dist/{chunk-BPKCPIL7.js → chunk-VEGN6WIQ.js} +2 -2
  95. package/dist/chunk-VKFQTNDV.js +66 -0
  96. package/dist/{chunk-7MCTRUCE.js → chunk-VKRH2TCS.js} +2 -2
  97. package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
  98. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  99. package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
  100. package/dist/{chunk-SUCTJL45.js → chunk-WR6U3OVP.js} +3 -3
  101. package/dist/{chunk-BUMFYQFY.js → chunk-XKA2ICR3.js} +124 -113
  102. package/dist/{chunk-UXMFQ54G.js → chunk-Y45G3AXC.js} +39 -39
  103. package/dist/{chunk-J5Q24KAG.js → chunk-Y4CAGMM6.js} +2 -2
  104. package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
  105. package/dist/{chunk-V5DHCITQ.js → chunk-ZAZB4JMW.js} +23 -12
  106. package/dist/{chunk-Z4TXYIEG.js → chunk-ZJLUDYFY.js} +9 -9
  107. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  108. package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
  109. package/dist/cli/index.js +36 -36
  110. package/dist/{clio-2JXHBBY5.js → clio-IT3G3VQH.js} +12 -13
  111. package/dist/{code-nav-3YYRMYNF.js → code-nav-RK6S7F6E.js} +5 -5
  112. package/dist/codewiki/build-worker.js +1 -1
  113. package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
  114. package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
  115. package/dist/{config-QZPCMYSO.js → config-3QZRWZJF.js} +53 -49
  116. package/dist/{configure-TEGEBYCA.js → configure-FL7Y3KJF.js} +25 -22
  117. package/dist/{context-E6H5RNMC.js → context-5HE7ODYK.js} +47 -43
  118. package/dist/{context-AV7OEZ4D.js → context-KYQFRVDC.js} +11 -11
  119. package/dist/{context-GSXUE4CT.js → context-XNHL75JV.js} +32 -19
  120. package/dist/{context-clear-SHIBYK6T.js → context-clear-N545L53A.js} +47 -43
  121. package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-QHKXSV2F.js} +10 -9
  122. package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-RGIE5PCT.js} +56 -47
  123. package/dist/{docs-23KQS3XK.js → docs-5NAF6AU7.js} +5 -11
  124. package/dist/doctor-ZGPEGHIP.js +772 -0
  125. package/dist/{eval-TFBYQH4H.js → eval-GXLL44RD.js} +63 -45
  126. package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-HBWSWQOK.js} +7 -8
  127. package/dist/{evidence-ERGESKGN.js → evidence-HWLBRH3Q.js} +44 -40
  128. package/dist/{evolve-VDXTSYCJ.js → evolve-FTZBMNVW.js} +43 -39
  129. package/dist/{extensions-7BGBHN57.js → extensions-VHRBEID7.js} +4 -4
  130. package/dist/{fleet-2RRVDF2V.js → fleet-CKZHJWZJ.js} +86 -73
  131. package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EXDXBMV6.js} +10 -9
  132. package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-OTHB6KRL.js} +5 -5
  133. package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-YTEZUCUT.js} +13 -11
  134. package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-SS6YMDCK.js} +44 -41
  135. package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-PBY4VYOM.js} +5 -9
  136. package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-KMEM5L3S.js} +16 -13
  137. package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-QD5M7E7Q.js} +42 -39
  138. package/dist/{fleet-view-ZCON35AG.js → fleet-view-WAMJYNDT.js} +44 -52
  139. package/dist/{init-DN2WWLFE.js → init-5XQRBOFV.js} +63 -58
  140. package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
  141. package/dist/{interop-OZBKXAYL.js → interop-34TVO25M.js} +13 -11
  142. package/dist/{library-YWZG7IMW.js → library-3QY6KF57.js} +17 -14
  143. package/dist/{memory-I4C4HMLW.js → memory-L4UTIIIW.js} +45 -41
  144. package/dist/{models-CEYXJBO6.js → models-ZVX3QOWE.js} +39 -31
  145. package/dist/{monitor-NZ6GCI3P.js → monitor-CEKVSYTS.js} +50 -46
  146. package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-77BAP6BC.js} +1807 -1039
  147. package/dist/{panes-KY6W3V2E.js → panes-7STHOAUJ.js} +4 -4
  148. package/dist/{panes-HMABYVO4.js → panes-SHAUIRXY.js} +10 -8
  149. package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
  150. package/dist/{reset-DQ6FGCSH.js → reset-EOLM7GVE.js} +7 -8
  151. package/dist/{resources-BB3MVJMD.js → resources-74GKTLSF.js} +17 -13
  152. package/dist/{run-H2GQDUER.js → run-HBAUJNNZ.js} +86 -76
  153. package/dist/{share-GTJN6A5O.js → share-G3APVLVP.js} +17 -14
  154. package/dist/{skills-L55TEW6R.js → skills-35HHUKCR.js} +19 -16
  155. package/dist/{skills-eval-XVXPH2JI.js → skills-eval-QN4HSHDC.js} +55 -57
  156. package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-J357J34F.js} +15 -12
  157. package/dist/{slash-commands-ZSGASKJC.js → slash-commands-JZZCQA32.js} +31 -29
  158. package/dist/{steer-RZGSCY4R.js → steer-XAVHJM22.js} +3 -3
  159. package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
  160. package/dist/{targets-NCPZ644J.js → targets-DSM6CY3M.js} +59 -53
  161. package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-JOPFUVEM.js} +14 -9
  162. package/dist/{tools-DAF3DI3C.js → tools-MKNWVPBH.js} +10 -8
  163. package/dist/{trace-FYVW2MQA.js → trace-ECQ7TIYZ.js} +48 -3
  164. package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
  165. package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
  166. package/dist/{upgrade-3XPP6OQL.js → upgrade-H7TOM7YL.js} +35 -62
  167. package/dist/{usage-3NLHGTU2.js → usage-X52N3IDJ.js} +51 -48
  168. package/dist/{verifiers-SSQONKRT.js → verifiers-EJTVVSMA.js} +10 -9
  169. package/dist/{verify-3U6J7FZI.js → verify-YJL6XET2.js} +9 -8
  170. package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPIFL3LL.js} +1 -2
  171. package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-4NDZTQ4B.js} +66 -63
  172. package/dist/{with-panes-MKB46MPQ.js → with-panes-OBOBFIIR.js} +62 -26
  173. package/dist/worker/entry.js +57 -52
  174. package/docs/acp.md +1 -1
  175. package/docs/built-in-agents.md +40 -32
  176. package/docs/commands-and-modes.md +9 -3
  177. package/docs/config-knobs-audit.md +3 -0
  178. package/docs/configuration-and-targets.md +105 -164
  179. package/docs/environment-variables.md +2 -1
  180. package/docs/exit-codes-and-output.md +2 -0
  181. package/docs/fleet-demo-runbook.md +6 -3
  182. package/docs/fleet-dispatch.md +8 -6
  183. package/docs/installation-and-lifecycle.md +1 -1
  184. package/docs/release-cut-checklist.md +164 -177
  185. package/docs/trace-store.md +15 -10
  186. package/docs/troubleshooting.md +1 -1
  187. package/evals/README.md +5 -0
  188. package/evals/behavioral-corpus-grader.mjs +103 -0
  189. package/evals/behavioral-machinery-baseline.json +2276 -0
  190. package/evals/behavioral-machinery-driver.ts +250 -0
  191. package/evals/behavioral-machinery-support.ts +253 -0
  192. package/evals/behavioral-machinery.yaml +614 -0
  193. package/evals/behavioral-model-negative-control.yaml +68 -0
  194. package/evals/behavioral-model.yaml +216 -0
  195. package/evals/fixtures/behavioral-facts.txt +3 -0
  196. package/evals/fixtures/behavioral-main.ts +7 -0
  197. package/evals/fixtures/decoy/note.txt +2 -0
  198. package/evals/fixtures/private/credentials.txt +1 -0
  199. package/evals/tracked-metrics-baseline.yaml +229 -0
  200. package/evals/tracked-metrics-grader.mjs +129 -0
  201. package/package.json +5 -15
  202. package/skills/README.md +6 -6
  203. package/skills/coding/ast-grep/SKILL.md +8 -2
  204. package/skills/coding/coding-standards/SKILL.md +8 -2
  205. package/skills/coding/prototype/SKILL.md +8 -2
  206. package/skills/coding/tdd/SKILL.md +8 -2
  207. package/skills/context/context-handoff/SKILL.md +12 -3
  208. package/skills/context/context-handoff/evals.md +3 -3
  209. package/skills/context/context-prime/SKILL.md +8 -2
  210. package/skills/context/context-prime/evals.md +2 -2
  211. package/skills/git/file-ticket/SKILL.md +9 -4
  212. package/skills/git/file-ticket/evals.md +2 -2
  213. package/skills/git/fix-issue/SKILL.md +12 -5
  214. package/skills/git/fix-issue/evals.md +4 -4
  215. package/skills/git/resolve-merge-conflicts/SKILL.md +8 -2
  216. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  217. package/skills/git/ship/SKILL.md +9 -3
  218. package/skills/git/ship/evals.md +4 -4
  219. package/skills/git/worktree-create/SKILL.md +7 -2
  220. package/skills/git/worktree-create/evals.md +6 -6
  221. package/skills/git/worktree-merge/SKILL.md +7 -2
  222. package/skills/git/worktree-merge/evals.md +6 -6
  223. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +14 -8
  224. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +3 -3
  225. package/skills/meta/{clio-test → clio-coder-test}/SKILL.md +11 -5
  226. package/skills/meta/{clio-test → clio-coder-test}/evals.md +1 -1
  227. package/skills/meta/credentials/SKILL.md +9 -2
  228. package/skills/meta/find-skills/SKILL.md +8 -2
  229. package/skills/meta/herdr/SKILL.md +8 -2
  230. package/skills/meta/skill-craft/SKILL.md +21 -4
  231. package/skills/planning/architecture/SKILL.md +9 -3
  232. package/skills/planning/backlog/SKILL.md +8 -2
  233. package/skills/planning/prd/SKILL.md +8 -2
  234. package/skills/planning/product-intent/SKILL.md +8 -2
  235. package/skills/planning/tech-spec/SKILL.md +9 -3
  236. package/skills/registry.yaml +66 -66
  237. package/skills/research/arxiv-literature/SKILL.md +8 -2
  238. package/skills/research/experiment-protocol/SKILL.md +9 -2
  239. package/skills/research/scientific-debugging/SKILL.md +9 -2
  240. package/skills/research/scientific-debugging/evals.md +2 -2
  241. package/skills/research/scientific-modernization/SKILL.md +9 -2
  242. package/skills/skill-marketplace.json +257 -38
  243. package/skills/workflow/cut-it/SKILL.md +10 -2
  244. package/skills/workflow/design-council/SKILL.md +11 -2
  245. package/skills/workflow/grill-me/SKILL.md +8 -2
  246. package/skills/workflow/workflow-distiller/SKILL.md +8 -2
  247. package/src/cli/acp.ts +2 -2
  248. package/src/cli/auth.ts +2 -2
  249. package/src/cli/bootstrap-generate.ts +5 -5
  250. package/src/cli/clio.ts +6 -1
  251. package/src/cli/config-inspect.ts +3 -3
  252. package/src/cli/configure-interop.ts +1 -1
  253. package/src/cli/configure.ts +27 -27
  254. package/src/cli/default-target.ts +1 -1
  255. package/src/cli/docs.ts +6 -6
  256. package/src/cli/doctor-naming.ts +323 -0
  257. package/src/cli/doctor-panes.ts +46 -14
  258. package/src/cli/doctor-toolchain.ts +29 -8
  259. package/src/cli/doctor.ts +15 -1
  260. package/src/cli/eval-inventory.ts +8 -8
  261. package/src/cli/evidence-detail.ts +1 -1
  262. package/src/cli/evidence-inventory.ts +1 -1
  263. package/src/cli/fleet-decisions.ts +1 -1
  264. package/src/cli/fleet-inspect.ts +1 -1
  265. package/src/cli/fleet-preflight.ts +1 -1
  266. package/src/cli/fleet-verify.ts +1 -1
  267. package/src/cli/fleet-view.ts +40 -23
  268. package/src/cli/fleet.ts +8 -5
  269. package/src/cli/interop-inspect.ts +2 -2
  270. package/src/cli/models.ts +3 -3
  271. package/src/cli/modes/print.ts +1 -1
  272. package/src/cli/reset.ts +1 -1
  273. package/src/cli/run.ts +11 -15
  274. package/src/cli/share.ts +1 -1
  275. package/src/cli/skills-eval.ts +11 -11
  276. package/src/cli/targets.ts +23 -24
  277. package/src/cli/trace-inspect.ts +1 -1
  278. package/src/cli/trace.ts +41 -0
  279. package/src/cli/uninstall.ts +2 -2
  280. package/src/cli/upgrade.ts +29 -34
  281. package/src/cli/usage.ts +2 -2
  282. package/src/cli/validate-model.ts +1 -1
  283. package/src/cli/verifiers-inspect.ts +1 -1
  284. package/src/cli/wiki-generate.ts +5 -5
  285. package/src/core/bash-exec.ts +1 -1
  286. package/src/core/boot-trace.ts +3 -3
  287. package/src/core/bus-trace.ts +2 -2
  288. package/src/core/compile-cache.ts +1 -1
  289. package/src/core/config.ts +1062 -886
  290. package/src/core/defaults.ts +321 -528
  291. package/src/core/domain-loader.ts +6 -4
  292. package/src/core/event-bus.ts +1 -1
  293. package/src/core/file-references.ts +78 -88
  294. package/src/core/git-commit-attribution.ts +3 -9
  295. package/src/core/guardrails.ts +24 -4
  296. package/src/core/naming-compat.ts +45 -0
  297. package/src/core/naming-events.ts +62 -0
  298. package/src/core/recent-models.ts +1 -7
  299. package/src/core/residency-protection.ts +4 -8
  300. package/src/core/resolve-config-value.ts +1 -1
  301. package/src/core/response-model-id.ts +0 -14
  302. package/src/core/session-routing.ts +84 -74
  303. package/src/core/skill-activation.ts +18 -0
  304. package/src/core/termination.ts +4 -4
  305. package/src/core/timers.ts +2 -12
  306. package/src/domains/agents/catalog.ts +2 -12
  307. package/src/domains/agents/extension.ts +3 -3
  308. package/src/domains/agents/registry.ts +7 -7
  309. package/src/domains/agents/result-contract.ts +1 -1
  310. package/src/domains/agents/spec.ts +0 -11
  311. package/src/domains/config/classify.ts +35 -47
  312. package/src/domains/config/extension.ts +5 -5
  313. package/src/domains/config/keybindings.ts +48 -47
  314. package/src/domains/config/watcher.ts +1 -1
  315. package/src/domains/context/codewiki/indexer.ts +1 -1
  316. package/src/domains/context/extension.ts +3 -3
  317. package/src/domains/context/prompt-context.ts +1 -1
  318. package/src/domains/context/wiki/assemble.ts +2 -2
  319. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  320. package/src/domains/context/working-set/replay/report.ts +1 -1
  321. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  322. package/src/domains/dispatch/active-route-planner.ts +2 -2
  323. package/src/domains/dispatch/agent-candidates.ts +1 -1
  324. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  325. package/src/domains/dispatch/agent-ledger.ts +1 -1
  326. package/src/domains/dispatch/assignment.ts +5 -5
  327. package/src/domains/dispatch/capacity-lease.ts +2 -5
  328. package/src/domains/dispatch/code-step.ts +1 -1
  329. package/src/domains/dispatch/contract.ts +2 -2
  330. package/src/domains/dispatch/extension.ts +65 -61
  331. package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
  332. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  333. package/src/domains/dispatch/fleet-run.ts +0 -7
  334. package/src/domains/dispatch/gate-decisions.ts +25 -14
  335. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  336. package/src/domains/dispatch/path-scope.ts +0 -61
  337. package/src/domains/dispatch/placement.ts +2 -2
  338. package/src/domains/dispatch/receipt-findings.ts +1 -1
  339. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  340. package/src/domains/dispatch/reservation-store.ts +0 -23
  341. package/src/domains/dispatch/route-decision.ts +1 -1
  342. package/src/domains/dispatch/route-history.ts +1 -1
  343. package/src/domains/dispatch/route-policy.ts +1 -1
  344. package/src/domains/dispatch/route-readiness.ts +0 -28
  345. package/src/domains/dispatch/run-event-journal.ts +6 -5
  346. package/src/domains/dispatch/tool-stats.ts +1 -1
  347. package/src/domains/dispatch/transport.ts +2 -19
  348. package/src/domains/dispatch/types.ts +3 -3
  349. package/src/domains/dispatch/worker-protocol.ts +2 -2
  350. package/src/domains/eval/artifacts/store.ts +5 -4
  351. package/src/domains/eval/compare/thresholds.ts +0 -8
  352. package/src/domains/eval/execution-provenance.ts +1 -1
  353. package/src/domains/eval/metrics/token-stream.ts +0 -7
  354. package/src/domains/eval/report.ts +1 -1
  355. package/src/domains/eval/runner.ts +1 -1
  356. package/src/domains/eval/runners/clio-run.ts +7 -6
  357. package/src/domains/eval/runners/external-command.ts +4 -3
  358. package/src/domains/eval/schema/artifact.ts +1 -1
  359. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  360. package/src/domains/eval/schema/behavioral.ts +7 -6
  361. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  362. package/src/domains/eval/schema/naming.ts +10 -0
  363. package/src/domains/eval/schema/suite.ts +2 -2
  364. package/src/domains/eval/schema/validate.ts +9 -5
  365. package/src/domains/eval/schema/verdict.ts +4 -2
  366. package/src/domains/eval/store.ts +12 -2
  367. package/src/domains/eval/suites/run.ts +12 -6
  368. package/src/domains/eval/types.ts +1 -1
  369. package/src/domains/eval/workspaces/git.ts +1 -1
  370. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  371. package/src/domains/evidence/build.ts +13 -5
  372. package/src/domains/interop/consent.ts +7 -7
  373. package/src/domains/interop/extension.ts +1 -1
  374. package/src/domains/lifecycle/doctor.ts +27 -21
  375. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  376. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  377. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  378. package/src/domains/lifecycle/migrations/index.ts +20 -1
  379. package/src/domains/lifecycle/naming-history.ts +153 -0
  380. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  381. package/src/domains/lifecycle/naming-resources.ts +261 -0
  382. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  383. package/src/domains/lifecycle/naming-yazi.ts +81 -0
  384. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  385. package/src/domains/memory/task-memory-handoff.ts +6 -3
  386. package/src/domains/middleware/index.ts +7 -0
  387. package/src/domains/middleware/marketplace-offer.ts +339 -0
  388. package/src/domains/middleware/runtime.ts +2 -2
  389. package/src/domains/mux/contract.ts +157 -25
  390. package/src/domains/mux/detect.ts +29 -5
  391. package/src/domains/mux/dock-controller.ts +365 -0
  392. package/src/domains/mux/extension.ts +7 -1
  393. package/src/domains/mux/index.ts +20 -0
  394. package/src/domains/mux/operations.ts +28 -0
  395. package/src/domains/mux/protocol.ts +19 -6
  396. package/src/domains/mux/socket-client.ts +167 -19
  397. package/src/domains/mux/types.ts +49 -6
  398. package/src/domains/mux/yazi/event-stream.ts +6 -4
  399. package/src/domains/mux/yazi/profile.ts +1 -1
  400. package/src/domains/mux/yazi/session.ts +26 -3
  401. package/src/domains/observability/extension.ts +1 -1
  402. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  403. package/src/domains/observability/projection.ts +1 -1
  404. package/src/domains/observability/trace-store.ts +22 -12
  405. package/src/domains/prompts/compiler.ts +2 -2
  406. package/src/domains/prompts/extension.ts +3 -3
  407. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -1
  408. package/src/domains/prompts/fragments/operating/skills.md +25 -18
  409. package/src/domains/providers/extension.ts +5 -5
  410. package/src/domains/providers/knowledge-base-path.ts +1 -1
  411. package/src/domains/providers/model-runtime-capabilities.ts +14 -2
  412. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  413. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +4 -4
  414. package/src/domains/providers/plugins.ts +1 -1
  415. package/src/domains/providers/resolver.ts +1 -1
  416. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  417. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  418. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  419. package/src/domains/providers/runtimes/common/probe-helpers.ts +2 -2
  420. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  421. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  422. package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
  423. package/src/domains/providers/types/knowledge-base.ts +13 -0
  424. package/src/domains/providers/types/local-model-quirks.ts +2 -2
  425. package/src/domains/providers/types/target-descriptor.ts +3 -3
  426. package/src/domains/resources/extension.ts +1 -1
  427. package/src/domains/resources/library.ts +6 -6
  428. package/src/domains/resources/prompts/loader.ts +1 -1
  429. package/src/domains/resources/skills/content-hash.ts +7 -6
  430. package/src/domains/resources/skills/evals.ts +1 -1
  431. package/src/domains/resources/skills/install.ts +36 -12
  432. package/src/domains/resources/skills/loader.ts +39 -13
  433. package/src/domains/resources/skills/marketplace.ts +21 -2
  434. package/src/domains/resources/skills/promotion.ts +214 -0
  435. package/src/domains/safety/audit.ts +2 -2
  436. package/src/domains/safety/finish-contract.ts +2 -1
  437. package/src/domains/safety/run-effects.ts +1 -1
  438. package/src/domains/scheduling/extension.ts +4 -4
  439. package/src/domains/session/archive-readers.ts +9 -1
  440. package/src/domains/session/compaction/branch-summary.ts +4 -0
  441. package/src/domains/session/compaction/compact.ts +1 -1
  442. package/src/domains/session/compaction/tokens.ts +4 -0
  443. package/src/domains/session/context-accounting.ts +1 -1
  444. package/src/domains/session/decision-board.ts +1 -1
  445. package/src/domains/session/extension.ts +1 -1
  446. package/src/domains/session/handoff.ts +2 -2
  447. package/src/domains/session/prompt-manifest.ts +0 -5
  448. package/src/domains/session/protected-artifact-journal.ts +12 -6
  449. package/src/domains/session/retry.ts +1 -1
  450. package/src/domains/share/archive.ts +85 -36
  451. package/src/domains/toolchain/install.ts +1 -1
  452. package/src/engine/acp/adapter.ts +3 -3
  453. package/src/engine/acp/event-mapper.ts +3 -3
  454. package/src/engine/acp/server.ts +27 -26
  455. package/src/engine/acp/tool-mediator.ts +2 -2
  456. package/src/engine/acp/types.ts +1 -1
  457. package/src/engine/alcf-oauth.ts +5 -5
  458. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  459. package/src/engine/api-registry.ts +1 -1
  460. package/src/engine/apis/llamacpp-residency.ts +1 -19
  461. package/src/engine/apis/lmstudio.ts +1 -6
  462. package/src/engine/apis/ollama-native.ts +3 -3
  463. package/src/engine/apis/openai-completions.ts +2 -2
  464. package/src/engine/apis/residency.ts +3 -9
  465. package/src/engine/claude/sdk-module.ts +1 -12
  466. package/src/engine/claude/sdk-runtime.ts +6 -6
  467. package/src/engine/claude/subprocess-runtime.ts +1 -1
  468. package/src/engine/claude/tool-safety.ts +4 -4
  469. package/src/engine/loop-guard.ts +0 -5
  470. package/src/engine/session.ts +14 -7
  471. package/src/engine/tui-primitives.ts +1 -1
  472. package/src/engine/worker-events.ts +6 -6
  473. package/src/engine/worker-runtime.ts +14 -13
  474. package/src/entry/orchestrator.ts +107 -88
  475. package/src/interactive/application-controller.ts +21 -21
  476. package/src/interactive/bus-notices.ts +2 -2
  477. package/src/interactive/chat-loop.ts +8 -8
  478. package/src/interactive/chat-panel.ts +1 -1
  479. package/src/interactive/clio-editor.ts +105 -1
  480. package/src/interactive/context-activity.ts +8 -6
  481. package/src/interactive/context-meter.ts +3 -6
  482. package/src/interactive/context-overlay.ts +1 -1
  483. package/src/interactive/cost-overlay.ts +1 -1
  484. package/src/interactive/council-grid.ts +2 -2
  485. package/src/interactive/dispatch-board.ts +30 -33
  486. package/src/interactive/editor-bash.ts +21 -0
  487. package/src/interactive/editor-steer.ts +9 -4
  488. package/src/interactive/editor-submit.ts +24 -18
  489. package/src/interactive/external-editor.ts +1 -1
  490. package/src/interactive/file-reference-completion.ts +360 -0
  491. package/src/interactive/footer/dashboard.ts +15 -17
  492. package/src/interactive/footer/notifications.ts +14 -8
  493. package/src/interactive/footer/widgets.ts +2 -44
  494. package/src/interactive/interactive-application.ts +79 -59
  495. package/src/interactive/interactive-event-projection.ts +1 -1
  496. package/src/interactive/interactive-input-runtime.ts +2 -2
  497. package/src/interactive/interactive-presentation.ts +21 -16
  498. package/src/interactive/interactive-shell.ts +2 -2
  499. package/src/interactive/interactive-slash-runtime.ts +63 -17
  500. package/src/interactive/interactive-subscriptions.ts +1 -1
  501. package/src/interactive/interactive-tickers.ts +1 -1
  502. package/src/interactive/keybinding-manager.ts +4 -4
  503. package/src/interactive/layout.ts +1 -1
  504. package/src/interactive/memory-overlay.ts +2 -2
  505. package/src/interactive/modal-marker.ts +2 -21
  506. package/src/interactive/mutation-preview.ts +1 -1
  507. package/src/interactive/overlay-frame.ts +4 -12
  508. package/src/interactive/overlay-general-openers.ts +6 -2
  509. package/src/interactive/overlay-key-routing.ts +7 -7
  510. package/src/interactive/overlay-lifecycle.ts +1 -1
  511. package/src/interactive/overlay-model-selectors.ts +3 -3
  512. package/src/interactive/overlays/agents.ts +2 -2
  513. package/src/interactive/overlays/ask-user.ts +25 -11
  514. package/src/interactive/overlays/context-reset.ts +28 -4
  515. package/src/interactive/overlays/cwd-fallback.ts +28 -4
  516. package/src/interactive/overlays/decisions.ts +4 -2
  517. package/src/interactive/overlays/fleet-run-approval.ts +3 -3
  518. package/src/interactive/overlays/handoff-review.ts +2 -2
  519. package/src/interactive/overlays/interop.ts +1 -1
  520. package/src/interactive/overlays/library-install-confirm.ts +1 -1
  521. package/src/interactive/overlays/message-picker.ts +1 -1
  522. package/src/interactive/overlays/model-selector.ts +39 -31
  523. package/src/interactive/overlays/prompts.ts +10 -4
  524. package/src/interactive/overlays/session-selector.ts +2 -2
  525. package/src/interactive/overlays/settings.ts +339 -293
  526. package/src/interactive/overlays/side-question.ts +2 -2
  527. package/src/interactive/overlays/skills-hub.ts +8 -8
  528. package/src/interactive/overlays/tree-selector.ts +2 -2
  529. package/src/interactive/panes-runtime.ts +36 -10
  530. package/src/interactive/permission-overlay.ts +2 -2
  531. package/src/interactive/renderers/retry-status.ts +12 -4
  532. package/src/interactive/renderers/tool-execution.ts +4 -4
  533. package/src/interactive/session-transcript.ts +3 -3
  534. package/src/interactive/slash-autocomplete.ts +454 -165
  535. package/src/interactive/slash-commands.ts +279 -183
  536. package/src/interactive/slash-spec.ts +160 -17
  537. package/src/interactive/status/controller.ts +2 -2
  538. package/src/interactive/stream-pacing-policy.ts +1 -1
  539. package/src/interactive/tasks-overlay.ts +20 -13
  540. package/src/interactive/terminal-lease.ts +6 -7
  541. package/src/interactive/turn-context.ts +11 -11
  542. package/src/interactive/turn-persistence.ts +2 -2
  543. package/src/interactive/turn-prewarm.ts +2 -2
  544. package/src/interactive/turn-runtime.ts +8 -8
  545. package/src/interactive/turn-state.ts +1 -1
  546. package/src/interactive/view/artifacts.ts +12 -9
  547. package/src/interactive/view/view-overlay.ts +13 -10
  548. package/src/interactive/watch-pane.ts +38 -10
  549. package/src/interactive/welcome-dashboard.ts +15 -15
  550. package/src/interactive/worker-progress.ts +4 -4
  551. package/src/interactive/worker-receipts.ts +1 -1
  552. package/src/interactive/worker-stream.ts +1 -4
  553. package/src/interactive/yazi-bridge.ts +12 -5
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/builtin-tool-catalog.ts +1 -1
  557. package/src/tools/compete-worktrees.ts +27 -17
  558. package/src/tools/context/index.ts +15 -1
  559. package/src/tools/dispatch-admission.ts +4 -2
  560. package/src/tools/dispatch-arguments.ts +1 -1
  561. package/src/tools/dispatch-plan.ts +0 -11
  562. package/src/tools/dispatch-run-events.ts +12 -10
  563. package/src/tools/dispatch-runner.ts +11 -6
  564. package/src/tools/dispatch.ts +1 -1
  565. package/src/tools/find.ts +1 -6
  566. package/src/tools/monitor.ts +4 -4
  567. package/src/tools/observers.ts +0 -33
  568. package/src/tools/task-worktree.ts +28 -7
  569. package/src/tools/verify/authoring.ts +3 -6
  570. package/src/tools/verify/frontend.ts +1 -1
  571. package/src/tools/web-fetch.ts +1 -1
  572. package/src/worker/entry.ts +4 -3
  573. package/src/worker/protocol.ts +16 -14
  574. package/src/worker/spec-contract.ts +2 -2
  575. package/src/worker/stdin-demux.ts +2 -2
  576. package/dist/chunk-GXNLGKAB.js +0 -571
  577. package/dist/chunk-VFA6GDY5.js +0 -1625
  578. package/dist/doctor-QOA5FNY5.js +0 -313
  579. package/src/engine/apis/degraded-inference.ts +0 -95
  580. /package/skills/meta/{clio-test → clio-coder-test}/references/harness.md +0 -0
  581. /package/skills/meta/{clio-test → clio-coder-test}/references/test-map.md +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  PANES_PRESETS,
4
4
  PANES_PRESET_IDS,
5
5
  isPanesPresetId
6
- } from "./chunk-YJX4SHTD.js";
6
+ } from "./chunk-GIZNH63R.js";
7
7
  import {
8
8
  AdmissionCanceledError,
9
9
  WORKER_OUTPUT_MAX_BYTES,
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-T56WDKA5.js";
12
12
  import {
13
13
  parseSkillCommand
14
- } from "./chunk-VYMXRQI6.js";
14
+ } from "./chunk-HUAS7ITX.js";
15
15
  import {
16
16
  TOOL_PROFILE_NAMES,
17
17
  isToolProfileName
@@ -25,16 +25,16 @@ import {
25
25
  import {
26
26
  parseCouncilReport,
27
27
  parseOracleResult
28
- } from "./chunk-DYJP44XW.js";
28
+ } from "./chunk-IG7BCQBA.js";
29
29
  import {
30
30
  resolveModelReference
31
- } from "./chunk-DQITNCXG.js";
31
+ } from "./chunk-UEDMSP56.js";
32
32
  import {
33
33
  BusChannels
34
34
  } from "./chunk-HLW2MRKE.js";
35
35
  import {
36
36
  THINKING_LEVELS
37
- } from "./chunk-GXNLGKAB.js";
37
+ } from "./chunk-BWW4HLO4.js";
38
38
  import {
39
39
  init_esm_shims
40
40
  } from "./chunk-3R73A4XB.js";
@@ -178,24 +178,35 @@ function isLibraryTab(value) {
178
178
  return LIBRARY_TABS.some((tab) => tab.id === value);
179
179
  }
180
180
 
181
- // src/interactive/overlays/settings-sections.ts
182
- init_esm_shims();
183
- var SETTINGS_SECTIONS = [
184
- { id: "safety", label: "Autonomy & Safety", group: "CORE" },
185
- { id: "orchestrator", label: "Orchestrator", group: "CORE" },
186
- { id: "fleet", label: "Fleet", group: "ROUTING" },
187
- { id: "targets", label: "Targets", group: "ROUTING" },
188
- { id: "models", label: "Models", group: "ROUTING" },
189
- { id: "budget", label: "Budget", group: "RUNTIME" },
190
- { id: "compaction", label: "Compaction", group: "RUNTIME" },
191
- { id: "retry", label: "Retry", group: "RUNTIME" },
192
- { id: "terminal", label: "Terminal", group: "EXPERIENCE" },
193
- { id: "watchdog", label: "Watchdog", group: "EXPERIENCE" },
194
- { id: "advanced", label: "Advanced", group: "EXPERIENCE" }
195
- ];
196
-
197
181
  // src/interactive/slash-spec.ts
198
182
  init_esm_shims();
183
+ var COMPLETION_SLOT_NAMES = [
184
+ "agents",
185
+ "agent-profiles",
186
+ "worker-runtimes",
187
+ "targets",
188
+ "models",
189
+ "capabilities",
190
+ "external-agents",
191
+ "rosters",
192
+ "shareable-runs",
193
+ "skills",
194
+ "fleet-contracts",
195
+ "fleet-vars",
196
+ "fleet-var-values",
197
+ "tasks",
198
+ "context-refs",
199
+ "receipts",
200
+ "pane-runs-agents",
201
+ "pane-presets",
202
+ "pane-targets",
203
+ "library-tabs",
204
+ "thinking-levels",
205
+ "settings-areas",
206
+ "settings-groups",
207
+ "help-queries",
208
+ "paths"
209
+ ];
199
210
  function getFlagValuePlaceholder(flag) {
200
211
  if (flag.valueName) return flag.valueName;
201
212
  if (flag.values && flag.values.length > 0) {
@@ -426,6 +437,54 @@ function parseArgs(spec, argsLine) {
426
437
  ...rest !== void 0 ? { rest } : {}
427
438
  };
428
439
  }
440
+ function completionTokens(text) {
441
+ const tokens = [];
442
+ let index = 0;
443
+ while (index < text.length) {
444
+ while (index < text.length && /\s/.test(text[index] ?? "")) index++;
445
+ if (index >= text.length) break;
446
+ const start = index;
447
+ let quote;
448
+ if (text[index] === '"' || text[index] === "'") {
449
+ quote = text[index];
450
+ index++;
451
+ }
452
+ const contentStart = index;
453
+ let value = "";
454
+ while (index < text.length) {
455
+ const char = text[index] ?? "";
456
+ if (quote) {
457
+ if (char === quote) break;
458
+ } else if (/\s/.test(char)) {
459
+ break;
460
+ } else if (char === '"' || char === "'") {
461
+ const embedded = char;
462
+ index++;
463
+ while (index < text.length && text[index] !== embedded) value += text[index++] ?? "";
464
+ if (text[index] === embedded) index++;
465
+ continue;
466
+ }
467
+ value += char;
468
+ index++;
469
+ }
470
+ const contentEnd = index;
471
+ if (quote && text[index] === quote) index++;
472
+ tokens.push({ value, start, end: index, contentStart, contentEnd, ...quote ? { quote } : {} });
473
+ }
474
+ return tokens;
475
+ }
476
+ function tokenAtCursor(text, cursor) {
477
+ const safeCursor = Math.max(0, Math.min(cursor, text.length));
478
+ const tokens = completionTokens(text);
479
+ const containing = tokens.find((token) => safeCursor >= token.start && safeCursor <= token.end);
480
+ if (containing) {
481
+ return { current: containing, completed: tokens.filter((token) => token.end <= containing.start) };
482
+ }
483
+ return {
484
+ current: { value: "", start: safeCursor, end: safeCursor, contentStart: safeCursor, contentEnd: safeCursor },
485
+ completed: tokens.filter((token) => token.end <= safeCursor)
486
+ };
487
+ }
429
488
  function walkCompletedTokens(spec, tokens) {
430
489
  const flagSpecs = spec.flags ?? [];
431
490
  const positionalSpecs = spec.positionals ?? [];
@@ -453,28 +512,40 @@ function walkCompletedTokens(spec, tokens) {
453
512
  }
454
513
  function flagCompletions(spec, walk, current) {
455
514
  const available = (spec.flags ?? []).filter((flag) => flag.repeatable === true || !walk.usedFlags.has(flag.name));
456
- const rows = available.filter((flag) => flag.name.startsWith(current)).map((flag) => ({ flag, name: flag.name }));
515
+ const lower = current.toLowerCase();
516
+ const rows = available.filter((flag) => flag.name.toLowerCase().startsWith(lower)).map((flag) => ({ flag, name: flag.name }));
457
517
  return rows.map(({ flag, name }) => ({
458
518
  token: name,
459
- ...flag.takesValue ? { hint: `<${getFlagValuePlaceholder(flag)}>` } : {}
519
+ ...flag.takesValue ? { hint: `<${getFlagValuePlaceholder(flag)}>` } : {},
520
+ hasNextSlot: flag.takesValue === true
460
521
  }));
461
522
  }
462
- function completeArgs(spec, argumentText) {
463
- const trailing = argumentText.match(/\S*$/)?.[0] ?? "";
464
- const tokenStart = argumentText.length - trailing.length;
465
- const current = trailing;
466
- const completed = argumentText.slice(0, tokenStart).split(/\s+/).filter((token) => token.length > 0);
523
+ function completeArgs(spec, argumentText, cursor = argumentText.length) {
524
+ const { current: currentToken, completed: completedTokens } = tokenAtCursor(argumentText, cursor);
525
+ const current = currentToken.value.slice(0, Math.max(0, cursor - currentToken.contentStart));
526
+ const completed = completedTokens.map((token) => token.value);
527
+ const range = {
528
+ tokenStart: currentToken.contentStart,
529
+ tokenEnd: currentToken.contentEnd,
530
+ ...currentToken.quote ? { quote: currentToken.quote } : {}
531
+ };
467
532
  const completions = [];
468
533
  let active = spec;
469
534
  let walkTokens = completed;
535
+ let submenu;
470
536
  if (spec.subcommands) {
471
537
  const first = completed[0];
472
538
  if (first === void 0) {
473
539
  for (const [name, subSpec] of Object.entries(spec.subcommands)) {
474
- if (!name.startsWith(current)) continue;
540
+ if (!name.toLowerCase().startsWith(current.toLowerCase())) continue;
475
541
  const hint = renderArgsSpec(subSpec);
476
- completions.push({ token: name, ...hint.length > 0 ? { hint } : {} });
542
+ completions.push({
543
+ token: name,
544
+ ...hint.length > 0 ? { hint } : {},
545
+ hasNextSlot: hint.length > 0
546
+ });
477
547
  }
548
+ submenu = { parent: "", canGoBack: true };
478
549
  } else if (spec.subcommands[first]) {
479
550
  active = spec.subcommands[first];
480
551
  walkTokens = completed.slice(1);
@@ -482,20 +553,36 @@ function completeArgs(spec, argumentText) {
482
553
  }
483
554
  const walk = walkCompletedTokens(active, walkTokens);
484
555
  if (walk.restBegun) {
485
- return completions.length > 0 ? { completions, tokenStart } : null;
556
+ return completions.length > 0 ? { completions, ...range, ...submenu ? { submenu } : {} } : null;
486
557
  }
487
558
  if (walk.awaitingValue) {
488
559
  for (const value of walk.awaitingValue.values ?? []) {
489
- if (value.startsWith(current)) completions.push({ token: value });
560
+ if (value.toLowerCase().startsWith(current.toLowerCase())) completions.push({ token: value, hasNextSlot: true });
561
+ }
562
+ if (walk.awaitingValue.completionSlot) {
563
+ completions.push({ token: current, completionSlot: walk.awaitingValue.completionSlot, hasNextSlot: true });
490
564
  }
491
- return completions.length > 0 ? { completions, tokenStart } : null;
565
+ return completions.length > 0 ? { completions, ...range, ...submenu ? { submenu } : {} } : null;
492
566
  }
493
567
  const atRest = (active.positionals ?? [])[walk.positionalIndex]?.rest === true;
568
+ const positional = (active.positionals ?? [])[walk.positionalIndex];
569
+ for (const value of positional?.values ?? []) {
570
+ if (value.toLowerCase().startsWith(current.toLowerCase())) {
571
+ completions.push({ token: value, hasNextSlot: walk.positionalIndex + 1 < (active.positionals?.length ?? 0) });
572
+ }
573
+ }
574
+ if (positional?.completionSlot && !current.startsWith("-")) {
575
+ completions.push({
576
+ token: current,
577
+ completionSlot: positional.completionSlot,
578
+ hasNextSlot: walk.positionalIndex + 1 < (active.positionals?.length ?? 0)
579
+ });
580
+ }
494
581
  const flagsParseable = !atRest || active.parseFlagsBeforeRest === true;
495
582
  if (flagsParseable && (current.length === 0 || current.startsWith("-"))) {
496
583
  completions.push(...flagCompletions(active, walk, current));
497
584
  }
498
- return completions.length > 0 ? { completions, tokenStart } : null;
585
+ return completions.length > 0 ? { completions, ...range, ...submenu ? { submenu } : {} } : null;
499
586
  }
500
587
  function matchFromSpec(entry, trimmed) {
501
588
  const matchedPrefix = `/${entry.name}`;
@@ -547,7 +634,7 @@ function isThinkingEvent(event) {
547
634
  return assistantEvent?.type === "thinking_delta";
548
635
  }
549
636
  function toolEventAction(event) {
550
- if (event.type !== "clio_tool_start" && event.type !== "clio_tool_finish") return null;
637
+ if (event.type !== "clio_coder_tool_start" && event.type !== "clio_coder_tool_finish") return null;
551
638
  const payload = isRecord(event.payload) ? event.payload : null;
552
639
  const tool = nonEmptyString(payload?.tool);
553
640
  if (tool === void 0) return null;
@@ -708,7 +795,7 @@ function createWorkerProgressFold() {
708
795
  betweenAssistantMessages = true;
709
796
  }
710
797
  const action = toolEventAction(event);
711
- if (action !== null && event.type === "clio_tool_start") {
798
+ if (action !== null && event.type === "clio_coder_tool_start") {
712
799
  if (action.toolCallId !== void 0) {
713
800
  const duplicate = pendingActionsById.get(action.toolCallId);
714
801
  if (duplicate !== void 0) removePendingAction(duplicate);
@@ -720,7 +807,7 @@ function createWorkerProgressFold() {
720
807
  touch();
721
808
  setPhase("tool");
722
809
  changed = true;
723
- } else if (action !== null && event.type === "clio_tool_finish") {
810
+ } else if (action !== null && event.type === "clio_coder_tool_finish") {
724
811
  const finished = (action.toolCallId !== void 0 ? pendingActionsById.get(action.toolCallId) : void 0) ?? lastPendingActionForTool(action.tool) ?? action;
725
812
  removePendingAction(finished);
726
813
  currentAction = pendingActions[pendingActions.length - 1] ?? null;
@@ -1032,6 +1119,15 @@ function selectWorkerRunToShare(entries, id) {
1032
1119
  }
1033
1120
 
1034
1121
  // src/interactive/slash-commands.ts
1122
+ var SETTINGS_AREA_IDS = [
1123
+ "chat",
1124
+ "fleet",
1125
+ "targets",
1126
+ "context",
1127
+ "safety",
1128
+ "interface",
1129
+ "integrations"
1130
+ ];
1035
1131
  function shareReceipt(agentId, receipt, deps) {
1036
1132
  if (!deps.submitOperatorNote) {
1037
1133
  deps.notice("error", "--share is not wired in this session; the result stayed local");
@@ -1247,13 +1343,13 @@ function formatUserTaskHandoff(task) {
1247
1343
  const note = task.note ? ` ${task.note}.` : "";
1248
1344
  return `Operator task ${task.id}: ${task.title}.${note} Pick it up with tasks action="pick" id="${task.id}" and work it when appropriate.`;
1249
1345
  }
1250
- var SLASH_COMMAND_GROUPS = ["Run", "Inspect", "Configure", "Sessions"];
1346
+ var SLASH_COMMAND_GROUPS = ["Work", "Inspect", "Configure", "Session"];
1251
1347
  var RUN_THINKING_LEVELS = THINKING_LEVELS;
1252
1348
  function isRunThinkingLevel(value) {
1253
1349
  return RUN_THINKING_LEVELS.some((level) => level === value);
1254
1350
  }
1255
- function isSettingsSectionId(value) {
1256
- return SETTINGS_SECTIONS.some((section) => section.id === value);
1351
+ function isSettingsAreaId(value) {
1352
+ return SETTINGS_AREA_IDS.some((area) => area === value);
1257
1353
  }
1258
1354
  var COMPACT_POSITIONALS = [
1259
1355
  { name: "instructions", required: false, rest: true }
@@ -1262,17 +1358,6 @@ var RECALL_POSITIONALS = [{ name: "ref", required: true }];
1262
1358
  function fromArgsOrUsage(name, command) {
1263
1359
  return (parsed) => parsed.error ? { kind: "usage-error", command: name, reason: parsed.error } : command;
1264
1360
  }
1265
- function settingsDeepLink(name, section, description, rowId) {
1266
- return {
1267
- name,
1268
- description,
1269
- group: "Configure",
1270
- kinds: [],
1271
- args: {},
1272
- fromArgs: fromArgsOrUsage(name, { kind: "settings", section, ...rowId ? { rowId } : {} }),
1273
- handle: () => void 0
1274
- };
1275
- }
1276
1361
  function usageNotice(entry, subcommand) {
1277
1362
  return usageLine(entry, subcommand).trim();
1278
1363
  }
@@ -1282,10 +1367,15 @@ function formatPanesStatus(status) {
1282
1367
  `panes: mode=${status.mode} ${status.available ? "available" : "unavailable"} (${server})`,
1283
1368
  ` ${status.reason}`,
1284
1369
  ...status.socketPath ? [` socket ${status.socketPath}`] : [],
1285
- ` settings: enabled=${status.settings.enabled} notifications=${status.settings.notifications} journal=${status.settings.journal}`,
1370
+ ` settings: enabled=${status.settings.enabled} notifications=${status.settings.notifications} layout=${status.settings.layout} journal=${status.settings.journal}`,
1286
1371
  ` files: enabled=${status.settings.yazi.enabled} mode=${status.settings.yazi.mode} profile=${status.settings.yazi.profile} followCwd=${status.settings.yazi.followCwd}`,
1287
1372
  ` file pane: mode=${status.yazi.mode} pane=${status.yazi.paneId ?? "none"} cwd=${status.yazi.paneCwd ?? "unknown"} lastLine=${status.yazi.lastLineAt === null ? "never" : new Date(status.yazi.lastLineAt).toISOString()} dropped=${status.yazi.droppedLines}`
1288
1373
  ];
1374
+ if (status.docks.length > 0) {
1375
+ lines.push(
1376
+ ` docks: ${status.docks.map((dock) => `${dock.slot}=${dock.paneId} @${(dock.targetShare * 100).toFixed(0)}%`).join(", ")}`
1377
+ );
1378
+ }
1289
1379
  if (status.panes.length === 0) {
1290
1380
  lines.push(" no Clio-owned panes");
1291
1381
  } else {
@@ -1303,7 +1393,7 @@ var BUILTIN_SLASH_COMMANDS = [
1303
1393
  {
1304
1394
  name: "quit",
1305
1395
  description: "Exit Clio Coder",
1306
- group: "Sessions",
1396
+ group: "Session",
1307
1397
  kinds: ["quit"],
1308
1398
  args: {},
1309
1399
  fromArgs: fromArgsOrUsage("quit", { kind: "quit" }),
@@ -1329,7 +1419,7 @@ var BUILTIN_SLASH_COMMANDS = [
1329
1419
  {
1330
1420
  name: "skill",
1331
1421
  description: "Open the Skills Hub or invoke a skill",
1332
- group: "Run",
1422
+ group: "Work",
1333
1423
  kinds: ["skill-selector", "skill-invocation"],
1334
1424
  args: {
1335
1425
  positionals: [
@@ -1356,65 +1446,74 @@ var BUILTIN_SLASH_COMMANDS = [
1356
1446
  }
1357
1447
  },
1358
1448
  {
1359
- name: "library",
1360
- description: "Open the Skills Hub on a resource library tab",
1361
- group: "Run",
1362
- kinds: ["library"],
1363
- args: { positionals: [{ name: "kind", required: false }] },
1449
+ name: "resources",
1450
+ description: "Browse skills, prompts, libraries, and extensions",
1451
+ group: "Inspect",
1452
+ kinds: ["resources"],
1453
+ subcommandDescriptions: {
1454
+ skills: "Browse installed skills",
1455
+ prompts: "Browse prompt templates",
1456
+ library: "Browse resource libraries",
1457
+ extensions: "Browse installed extensions"
1458
+ },
1459
+ args: {
1460
+ subcommands: {
1461
+ skills: {},
1462
+ prompts: {},
1463
+ library: { positionals: [{ name: "kind", required: false }] },
1464
+ extensions: {}
1465
+ }
1466
+ },
1364
1467
  fromArgs(parsed) {
1365
- if (parsed.error) return { kind: "usage-error", command: "library", reason: parsed.error };
1468
+ if (parsed.error) return { kind: "usage-error", command: "resources", reason: parsed.error };
1469
+ if (parsed.subcommand === void 0 || parsed.subcommand === "skills")
1470
+ return { kind: "resources", family: "skills" };
1471
+ if (parsed.subcommand === "prompts" || parsed.subcommand === "extensions")
1472
+ return { kind: "resources", family: parsed.subcommand };
1366
1473
  const tab = parsed.positionals[0];
1367
- if (tab === void 0) return { kind: "library" };
1474
+ if (tab === void 0) return { kind: "resources" };
1368
1475
  if (!isLibraryTab(tab)) {
1369
1476
  const known = LIBRARY_TABS.map((entry) => entry.id).join(", ");
1370
- return { kind: "usage-error", command: "library", reason: `Unknown kind: ${tab} (one of ${known})` };
1477
+ return { kind: "usage-error", command: "resources", reason: `Unknown kind: ${tab} (one of ${known})` };
1371
1478
  }
1372
- return { kind: "library", tab };
1479
+ return { kind: "resources", tab };
1373
1480
  },
1374
1481
  handle(command, ctx) {
1375
- if (command.kind === "library") ctx.openSkillsHub?.(command.tab);
1376
- }
1377
- },
1378
- {
1379
- name: "prompts",
1380
- description: "List prompt templates",
1381
- group: "Inspect",
1382
- kinds: ["prompts"],
1383
- args: {},
1384
- fromArgs: fromArgsOrUsage("prompts", { kind: "prompts" }),
1385
- handle(_command, ctx) {
1386
- ctx.openPrompts();
1387
- }
1388
- },
1389
- {
1390
- name: "extensions",
1391
- description: "List installed extensions",
1392
- group: "Inspect",
1393
- kinds: ["extensions"],
1394
- args: {},
1395
- fromArgs: fromArgsOrUsage("extensions", { kind: "extensions" }),
1396
- handle(_command, ctx) {
1397
- ctx.openExtensions?.();
1482
+ if (command.kind !== "resources") return;
1483
+ if (command.family === "prompts") ctx.openPrompts();
1484
+ else if (command.family === "extensions") ctx.openExtensions();
1485
+ else ctx.openSkillsHub?.(command.tab);
1398
1486
  }
1399
1487
  },
1400
1488
  {
1401
- name: "interop",
1402
- description: "Review other coding agents detected on this machine",
1403
- group: "Inspect",
1404
- kinds: ["interop"],
1405
- args: {},
1406
- fromArgs: fromArgsOrUsage("interop", { kind: "interop" }),
1407
- handle(_command, ctx) {
1408
- ctx.openInterop?.();
1489
+ name: "share",
1490
+ description: "Share a worker result with the main agent",
1491
+ group: "Work",
1492
+ kinds: ["share"],
1493
+ args: { positionals: [{ name: "run-id", required: false }] },
1494
+ fromArgs(parsed) {
1495
+ const retiredArchiveVerb = parsed.positionals[0];
1496
+ if (retiredArchiveVerb === "export" || retiredArchiveVerb === "import") {
1497
+ return {
1498
+ kind: "usage-error",
1499
+ command: "share",
1500
+ reason: `/share ${retiredArchiveVerb} is retired and did not run; use /archive ${retiredArchiveVerb}`
1501
+ };
1502
+ }
1503
+ if (parsed.error) return { kind: "usage-error", command: "share", reason: parsed.error };
1504
+ return { kind: "share", ...parsed.positionals[0] ? { runId: parsed.positionals[0] } : {} };
1505
+ },
1506
+ handle(command, ctx) {
1507
+ if (command.kind === "share") shareWorkerRun(command.runId, ctx);
1409
1508
  }
1410
1509
  },
1411
1510
  {
1412
- name: "share",
1413
- description: "Share a worker result with the main agent, or export and import Clio archives",
1414
- group: "Sessions",
1415
- kinds: ["share"],
1511
+ name: "archive",
1512
+ description: "Export or import a full Clio archive",
1513
+ group: "Session",
1514
+ kinds: ["archive-export", "archive-import", "archive-usage"],
1515
+ subcommandDescriptions: { export: "Export a full Clio archive", import: "Import a full Clio archive" },
1416
1516
  args: {
1417
- positionals: [{ name: "runId", required: false }],
1418
1517
  subcommands: {
1419
1518
  export: {
1420
1519
  positionals: [{ name: "path", required: true }]
@@ -1429,54 +1528,44 @@ var BUILTIN_SLASH_COMMANDS = [
1429
1528
  const subcommand = parsed.subcommand === "export" || parsed.subcommand === "import" ? parsed.subcommand : void 0;
1430
1529
  if (parsed.error) {
1431
1530
  return {
1432
- kind: "share",
1433
- action: "usage",
1531
+ kind: "archive-usage",
1434
1532
  ...subcommand !== void 0 ? { subcommand } : {},
1435
1533
  error: parsed.error
1436
1534
  };
1437
1535
  }
1438
1536
  const path = parsed.positionals[0];
1439
- if (subcommand === "export" && path !== void 0) return { kind: "share", action: "export", path };
1537
+ if (subcommand === "export" && path !== void 0) return { kind: "archive-export", path };
1440
1538
  if (subcommand === "import" && path !== void 0) {
1441
1539
  return {
1442
- kind: "share",
1443
- action: "import",
1540
+ kind: "archive-import",
1444
1541
  path,
1445
1542
  dryRun: parsed.flags.has("--dry-run"),
1446
1543
  force: parsed.flags.has("--force")
1447
1544
  };
1448
1545
  }
1449
- if (subcommand === void 0) {
1450
- return { kind: "share", action: "worker-run", ...path !== void 0 ? { runId: path } : {} };
1451
- }
1452
- return { kind: "share", action: "usage", ...subcommand !== void 0 ? { subcommand } : {} };
1546
+ return { kind: "archive-usage", ...subcommand !== void 0 ? { subcommand } : {} };
1453
1547
  },
1454
1548
  handle(command, ctx) {
1455
- if (command.kind !== "share") return;
1456
- if (command.action === "worker-run") {
1457
- shareWorkerRun(command.runId, ctx);
1458
- return;
1459
- }
1460
- if (command.action === "usage") {
1461
- const entry = BUILTIN_SLASH_COMMANDS.find((candidate) => candidate.name === "share");
1549
+ if (command.kind === "archive-usage") {
1550
+ const entry = BUILTIN_SLASH_COMMANDS.find((candidate) => candidate.name === "archive");
1462
1551
  if (!entry) return;
1463
1552
  const usage = usageNotice(entry, command.subcommand);
1464
1553
  ctx.notice("info", command.error ? `${command.error}
1465
1554
  ${usage}` : usage);
1466
1555
  return;
1467
1556
  }
1468
- if (command.action === "export") {
1557
+ if (command.kind === "archive-export") {
1469
1558
  if (!ctx.exportShareArchive) {
1470
- ctx.notice("error", "share export is not wired");
1559
+ ctx.notice("error", "archive export is not wired");
1471
1560
  return;
1472
1561
  }
1473
1562
  const result = ctx.exportShareArchive(command.path);
1474
1563
  ctx.notice("success", `exported ${result.fileCount} item(s) to ${result.path}`);
1475
1564
  return;
1476
1565
  }
1477
- if (command.action === "import") {
1566
+ if (command.kind === "archive-import") {
1478
1567
  if (!ctx.importShareArchive) {
1479
- ctx.notice("error", "share import is not wired");
1568
+ ctx.notice("error", "archive import is not wired");
1480
1569
  return;
1481
1570
  }
1482
1571
  const plan = ctx.importShareArchive(command.path, { dryRun: command.dryRun, force: command.force });
@@ -1497,7 +1586,7 @@ ${usage}` : usage);
1497
1586
  {
1498
1587
  name: "run",
1499
1588
  description: "Run a fleet agent",
1500
- group: "Run",
1589
+ group: "Work",
1501
1590
  kinds: ["run", "run-usage"],
1502
1591
  args: {
1503
1592
  parseFlagsBeforeRest: true,
@@ -1578,7 +1667,7 @@ ${usage}` : usage);
1578
1667
  {
1579
1668
  name: "delegate",
1580
1669
  description: "Run an ACP delegation agent",
1581
- group: "Run",
1670
+ group: "Work",
1582
1671
  kinds: ["delegate", "delegate-usage"],
1583
1672
  args: {
1584
1673
  parseFlagsBeforeRest: true,
@@ -1625,7 +1714,7 @@ ${usage}` : usage);
1625
1714
  {
1626
1715
  name: "btw",
1627
1716
  description: "Ask a side question that never enters the session transcript",
1628
- group: "Run",
1717
+ group: "Work",
1629
1718
  kinds: ["btw", "btw-usage"],
1630
1719
  args: {
1631
1720
  positionals: [{ name: "question", required: true, rest: true }]
@@ -1648,7 +1737,7 @@ ${usage}` : usage);
1648
1737
  {
1649
1738
  name: "oracle",
1650
1739
  description: "Ask a read-only advisor to challenge a question against this session's settled decisions",
1651
- group: "Run",
1740
+ group: "Work",
1652
1741
  kinds: ["oracle", "oracle-usage"],
1653
1742
  args: {
1654
1743
  positionals: [{ name: "question", required: true, rest: true }]
@@ -1674,7 +1763,7 @@ ${usage}` : usage);
1674
1763
  {
1675
1764
  name: "council",
1676
1765
  description: "Ask a roster of read-only members the same task, with an optional vote or judge synthesis",
1677
- group: "Run",
1766
+ group: "Work",
1678
1767
  kinds: ["council", "council-usage"],
1679
1768
  args: {
1680
1769
  parseFlagsBeforeRest: true,
@@ -1724,16 +1813,24 @@ ${usage}` : usage);
1724
1813
  },
1725
1814
  {
1726
1815
  name: "agents",
1727
- description: "List Clio agents and ACP delegation agents",
1816
+ description: "List agents or connect a detected external agent",
1728
1817
  group: "Inspect",
1729
1818
  kinds: ["agents"],
1730
- args: {},
1731
- fromArgs: fromArgsOrUsage("agents", { kind: "agents" }),
1732
- handle(_command, ctx) {
1733
- ctx.openAgents();
1819
+ subcommandDescriptions: {
1820
+ list: "List native and external agents",
1821
+ connect: "Review detected external-agent proposals"
1822
+ },
1823
+ args: { subcommands: { list: {}, connect: {} } },
1824
+ fromArgs(parsed) {
1825
+ if (parsed.error) return { kind: "usage-error", command: "agents", reason: parsed.error };
1826
+ return { kind: "agents", ...parsed.subcommand === "connect" ? { connect: true } : {} };
1827
+ },
1828
+ handle(command, ctx) {
1829
+ if (command.kind !== "agents") return;
1830
+ if (command.connect) ctx.openInterop?.();
1831
+ else ctx.openAgents();
1734
1832
  }
1735
1833
  },
1736
- settingsDeepLink("targets", "targets", "Open Settings \u2192 Targets: health, use, connect, probe, remove"),
1737
1834
  {
1738
1835
  name: "cost",
1739
1836
  description: "Show session token and cost totals",
@@ -1818,9 +1915,9 @@ ${usage}` : usage);
1818
1915
  },
1819
1916
  {
1820
1917
  name: "fleet",
1821
- description: "Open Settings \u2192 Fleet, or run a fleet contract with an approval preview",
1822
- group: "Configure",
1823
- kinds: ["fleet-run", "fleet-run-usage"],
1918
+ description: "Open Fleet Runs or run a fleet contract with an approval preview",
1919
+ group: "Work",
1920
+ kinds: ["fleet", "fleet-run", "fleet-run-usage"],
1824
1921
  subcommandDescriptions: { run: "Preview and run a repo-owned fleet contract" },
1825
1922
  args: {
1826
1923
  subcommands: {
@@ -1830,15 +1927,9 @@ ${usage}` : usage);
1830
1927
  }
1831
1928
  }
1832
1929
  },
1833
- /**
1834
- * `/fleet` alone keeps the settings deep link it has always been, and
1835
- * only `run` parses as a command of its own, so an operator who types
1836
- * `/fleet` out of habit still lands in Settings → Fleet. Anything else
1837
- * on the line stays the usage error every other deep link reports.
1838
- */
1839
1930
  fromArgs(parsed) {
1840
1931
  if (parsed.subcommand !== "run") {
1841
- return parsed.error ? { kind: "usage-error", command: "fleet", reason: parsed.error } : { kind: "settings", section: "fleet" };
1932
+ return parsed.error ? { kind: "usage-error", command: "fleet", reason: parsed.error } : { kind: "fleet" };
1842
1933
  }
1843
1934
  if (parsed.error) return { kind: "fleet-run-usage", reason: parsed.error };
1844
1935
  const name = parsed.positionals[0] ?? "";
@@ -1853,6 +1944,11 @@ ${usage}` : usage);
1853
1944
  return { kind: "fleet-run", name, vars };
1854
1945
  },
1855
1946
  handle(command, ctx) {
1947
+ if (command.kind === "fleet") {
1948
+ if (ctx.openFleetRuns) ctx.openFleetRuns();
1949
+ else ctx.notice("error", "Fleet Runs is not wired in this session");
1950
+ return;
1951
+ }
1856
1952
  if (command.kind === "fleet-run-usage") {
1857
1953
  const entry = BUILTIN_SLASH_COMMANDS.find((candidate) => candidate.name === "fleet");
1858
1954
  const usage = entry ? usageNotice(entry, "run") : "usage: /fleet run <name> [--var key=value ...]";
@@ -2036,19 +2132,21 @@ ${usage}` : usage);
2036
2132
  name: "panes",
2037
2133
  description: "Inspect the pane layer, watch a live run in a pane, or open a utility pane",
2038
2134
  group: "Inspect",
2039
- kinds: ["panes", "panes-show", "panes-open", "panes-close", "panes-usage"],
2135
+ kinds: ["panes", "panes-show", "panes-open", "panes-zoom", "panes-close", "panes-usage"],
2040
2136
  args: {
2041
2137
  subcommands: {
2042
2138
  show: { positionals: [{ name: "run-or-agent", required: true }] },
2043
2139
  // A rest positional, so an argv pane keeps its own flags: the parser
2044
2140
  // would otherwise refuse `--follow` as an unknown flag of `/panes`.
2045
2141
  open: { positionals: [{ name: "preset-or-argv", required: true, rest: true }] },
2142
+ zoom: { positionals: [{ name: "target", required: false }] },
2046
2143
  close: { positionals: [{ name: "target", required: false }] }
2047
2144
  }
2048
2145
  },
2049
2146
  subcommandDescriptions: {
2050
2147
  show: "watch a live run or agent in the watch pane",
2051
2148
  open: `open a utility pane (${PANES_PRESET_IDS.join(", ")}, or a command)`,
2149
+ zoom: "toggle zoom on a Clio-owned pane (default: the watch pane)",
2052
2150
  close: "close a Clio-owned pane, or all of them"
2053
2151
  },
2054
2152
  fromArgs(parsed) {
@@ -2067,6 +2165,9 @@ ${usage}` : usage);
2067
2165
  }
2068
2166
  return { kind: "panes-open", argv };
2069
2167
  }
2168
+ if (parsed.subcommand === "zoom") {
2169
+ return { kind: "panes-zoom", target: parsed.positionals[0] ?? "" };
2170
+ }
2070
2171
  if (parsed.subcommand === "close") {
2071
2172
  return { kind: "panes-close", target: parsed.positionals[0] ?? "all" };
2072
2173
  }
@@ -2132,6 +2233,19 @@ ${usageNotice(entry)}` : usageNotice(entry));
2132
2233
  });
2133
2234
  return;
2134
2235
  }
2236
+ if (command.kind === "panes-zoom") {
2237
+ runLocal(async () => {
2238
+ const result = await panes.zoom(command.target);
2239
+ if (result.status === "zoomed") {
2240
+ ctx.notice("success", `toggled zoom on ${result.label} (${result.paneId})`);
2241
+ } else if (result.status === "not-found") {
2242
+ ctx.notice("warn", `no Clio-owned pane matches ${result.target}`);
2243
+ } else {
2244
+ ctx.notice("warn", result.reason);
2245
+ }
2246
+ });
2247
+ return;
2248
+ }
2135
2249
  if (command.kind !== "panes-close") return;
2136
2250
  runLocal(async () => {
2137
2251
  const result = await panes.close(command.target);
@@ -2148,16 +2262,21 @@ ${usageNotice(entry)}` : usageNotice(entry));
2148
2262
  },
2149
2263
  {
2150
2264
  name: "thinking",
2151
- description: "Set the chat thinking level, or open Settings \u2192 Orchestrator",
2265
+ description: "Set the chat thinking level",
2152
2266
  group: "Configure",
2153
- kinds: ["thinking-set"],
2267
+ kinds: ["thinking-set", "thinking-picker"],
2154
2268
  args: { positionals: [{ name: "level", required: false }] },
2155
2269
  fromArgs(parsed) {
2156
2270
  if (parsed.error) return { kind: "usage-error", command: "thinking", reason: parsed.error };
2157
2271
  const level = parsed.positionals[0];
2158
- return level ? { kind: "thinking-set", level } : { kind: "settings", section: "orchestrator", rowId: "orchestrator.thinkingLevel" };
2272
+ return level ? { kind: "thinking-set", level } : { kind: "thinking-picker" };
2159
2273
  },
2160
2274
  handle(command, ctx) {
2275
+ if (command.kind === "thinking-picker") {
2276
+ if (ctx.openThinkingPicker) ctx.openThinkingPicker();
2277
+ else ctx.notice("error", "thinking picker is not wired in this session");
2278
+ return;
2279
+ }
2161
2280
  if (command.kind !== "thinking-set") return;
2162
2281
  const result = ctx.setThinkingLevel?.(command.level) ?? { status: "unavailable" };
2163
2282
  if (result.status === "applied") {
@@ -2172,16 +2291,21 @@ ${usageNotice(entry)}` : usageNotice(entry));
2172
2291
  },
2173
2292
  {
2174
2293
  name: "output",
2175
- description: "Set transcript detail (minimal, default, verbose), or open Settings \u2192 Terminal",
2294
+ description: "Set transcript detail to minimal, default, or verbose",
2176
2295
  group: "Configure",
2177
- kinds: ["output-set"],
2296
+ kinds: ["output-set", "output-picker"],
2178
2297
  args: { positionals: [{ name: "verbosity", required: false }] },
2179
2298
  fromArgs(parsed) {
2180
2299
  if (parsed.error) return { kind: "usage-error", command: "output", reason: parsed.error };
2181
2300
  const verbosity = parsed.positionals[0];
2182
- return verbosity ? { kind: "output-set", verbosity } : { kind: "settings", section: "terminal", rowId: "terminal.outputVerbosity" };
2301
+ return verbosity ? { kind: "output-set", verbosity } : { kind: "output-picker" };
2183
2302
  },
2184
2303
  handle(command, ctx) {
2304
+ if (command.kind === "output-picker") {
2305
+ if (ctx.openOutputPicker) ctx.openOutputPicker();
2306
+ else ctx.notice("error", "output picker is not wired in this session");
2307
+ return;
2308
+ }
2185
2309
  if (command.kind !== "output-set") return;
2186
2310
  const result = ctx.setOutputVerbosity?.(command.verbosity) ?? { status: "unavailable" };
2187
2311
  if (result.status === "applied") {
@@ -2237,36 +2361,38 @@ ${usageNotice(entry)}` : usageNotice(entry));
2237
2361
  })();
2238
2362
  }
2239
2363
  },
2240
- settingsDeepLink(
2241
- "scoped-models",
2242
- "models",
2243
- "Open Settings \u2192 Models: the Alt+J / Alt+K cycle set and favorites",
2244
- "scope"
2245
- ),
2246
2364
  {
2247
2365
  name: "settings",
2248
2366
  description: "Open interactive settings",
2249
2367
  group: "Configure",
2250
2368
  kinds: ["settings"],
2251
- args: { positionals: [{ name: "section", required: false }] },
2369
+ args: {
2370
+ positionals: [
2371
+ { name: "area", required: false },
2372
+ { name: "group", required: false }
2373
+ ]
2374
+ },
2252
2375
  fromArgs(parsed) {
2253
2376
  if (parsed.error) return { kind: "usage-error", command: "settings", reason: parsed.error };
2254
- const section = parsed.positionals[0];
2255
- if (section === void 0) return { kind: "settings" };
2256
- if (!isSettingsSectionId(section)) {
2257
- const known = SETTINGS_SECTIONS.map((entry) => entry.id).join(", ");
2258
- return { kind: "usage-error", command: "settings", reason: `Unknown section: ${section} (one of ${known})` };
2377
+ const area = parsed.positionals[0];
2378
+ if (area === void 0) return { kind: "settings" };
2379
+ if (!isSettingsAreaId(area)) {
2380
+ return {
2381
+ kind: "usage-error",
2382
+ command: "settings",
2383
+ reason: `Unknown area: ${area} (one of ${SETTINGS_AREA_IDS.join(", ")})`
2384
+ };
2259
2385
  }
2260
- return { kind: "settings", section };
2386
+ return { kind: "settings", area, ...parsed.positionals[1] ? { group: parsed.positionals[1] } : {} };
2261
2387
  },
2262
2388
  handle(command, ctx) {
2263
- if (command.kind === "settings") ctx.openSettings(command.section, command.rowId);
2389
+ if (command.kind === "settings") ctx.openSettings(command.area, command.group);
2264
2390
  }
2265
2391
  },
2266
2392
  {
2267
2393
  name: "resume",
2268
2394
  description: "Resume a past session",
2269
- group: "Sessions",
2395
+ group: "Session",
2270
2396
  kinds: ["resume"],
2271
2397
  args: {},
2272
2398
  fromArgs: fromArgsOrUsage("resume", { kind: "resume" }),
@@ -2277,7 +2403,7 @@ ${usageNotice(entry)}` : usageNotice(entry));
2277
2403
  {
2278
2404
  name: "new",
2279
2405
  description: "Start a fresh session",
2280
- group: "Sessions",
2406
+ group: "Session",
2281
2407
  kinds: ["new"],
2282
2408
  args: {},
2283
2409
  fromArgs: fromArgsOrUsage("new", { kind: "new" }),
@@ -2288,7 +2414,7 @@ ${usageNotice(entry)}` : usageNotice(entry));
2288
2414
  {
2289
2415
  name: "handoff",
2290
2416
  description: "Hand this session's working state to a fresh session for a stated goal",
2291
- group: "Sessions",
2417
+ group: "Session",
2292
2418
  kinds: ["handoff", "handoff-usage"],
2293
2419
  args: {
2294
2420
  positionals: [{ name: "goal", required: true, rest: true }]
@@ -2311,7 +2437,7 @@ ${usageNotice(entry)}` : usageNotice(entry));
2311
2437
  {
2312
2438
  name: "tree",
2313
2439
  description: "Open session tree navigator",
2314
- group: "Sessions",
2440
+ group: "Session",
2315
2441
  kinds: ["tree"],
2316
2442
  args: {},
2317
2443
  fromArgs: fromArgsOrUsage("tree", { kind: "tree" }),
@@ -2322,7 +2448,7 @@ ${usageNotice(entry)}` : usageNotice(entry));
2322
2448
  {
2323
2449
  name: "fork",
2324
2450
  description: "Fork from an assistant turn",
2325
- group: "Sessions",
2451
+ group: "Session",
2326
2452
  kinds: ["fork"],
2327
2453
  args: {},
2328
2454
  fromArgs: fromArgsOrUsage("fork", { kind: "fork" }),
@@ -2333,7 +2459,7 @@ ${usageNotice(entry)}` : usageNotice(entry));
2333
2459
  {
2334
2460
  name: "export",
2335
2461
  description: "Export a self-contained HTML transcript by default; a .md path writes Markdown",
2336
- group: "Sessions",
2462
+ group: "Session",
2337
2463
  kinds: ["export"],
2338
2464
  args: {
2339
2465
  positionals: [{ name: "path", required: false }]
@@ -2364,6 +2490,30 @@ for (const entry of BUILTIN_SLASH_COMMANDS) {
2364
2490
  }
2365
2491
  var COMMAND_SHAPED_TOKEN = /^[A-Za-z][A-Za-z0-9:-]*$/u;
2366
2492
  var COMMAND_ESCAPE = "\\/";
2493
+ var RETIRED_COMMAND_HINTS = Object.freeze({
2494
+ status: "Use the footer or Alt+U for status; /cost, /context, and /fleet inspect their own domains.",
2495
+ receipts: "Use /view or /view verify <run-id>.",
2496
+ "context-init": "Use /context init.",
2497
+ "context-clear": "Use /context reset for project context or /new for a fresh session.",
2498
+ "context-view": "Use /context.",
2499
+ compact: "Use /context compact [instructions].",
2500
+ skills: "Use /skill or /resources skills.",
2501
+ exit: "Use /quit.",
2502
+ config: "Use /settings.",
2503
+ ctx: "Use /context.",
2504
+ models: "Use /model.",
2505
+ clear: "Use /new for a fresh session or /context reset for project context.",
2506
+ library: "Use /resources library [kind].",
2507
+ prompts: "Use /resources prompts.",
2508
+ extensions: "Use /resources extensions.",
2509
+ interop: "Use /agents connect.",
2510
+ targets: "Use /settings targets.",
2511
+ "scoped-models": "Use /settings chat model-picker."
2512
+ });
2513
+ function retiredCommandHint(token) {
2514
+ if (/^skills?:[^\s]+$/u.test(token)) return "Use /skill <name> [task].";
2515
+ return RETIRED_COMMAND_HINTS[token];
2516
+ }
2367
2517
  function parseSlashCommand(input) {
2368
2518
  const trimmed = input.trim();
2369
2519
  if (trimmed.length === 0) return { kind: "empty" };
@@ -2385,6 +2535,12 @@ function dispatchSlashCommand(command, ctx) {
2385
2535
  return "accepted";
2386
2536
  }
2387
2537
  if (command.kind === "unknown-command") {
2538
+ const retiredHint = retiredCommandHint(command.token);
2539
+ if (retiredHint) {
2540
+ ctx.notice("error", `/${command.token} is retired and did not run. ${retiredHint}`);
2541
+ ctx.render();
2542
+ return "rejected";
2543
+ }
2388
2544
  const expansion = ctx.expandPromptTemplate?.(command.text);
2389
2545
  if (expansion?.expanded === true) {
2390
2546
  ctx.submitChat(command.text);
@@ -2407,8 +2563,41 @@ function dispatchSlashCommand(command, ctx) {
2407
2563
  entry.handle(command, ctx);
2408
2564
  return "accepted";
2409
2565
  }
2566
+ var COMMAND_ORDER = [
2567
+ "run",
2568
+ "fleet",
2569
+ "delegate",
2570
+ "council",
2571
+ "oracle",
2572
+ "btw",
2573
+ "share",
2574
+ "skill",
2575
+ "agents",
2576
+ "tasks",
2577
+ "context",
2578
+ "memory",
2579
+ "view",
2580
+ "panes",
2581
+ "cost",
2582
+ "decisions",
2583
+ "resources",
2584
+ "help",
2585
+ "model",
2586
+ "thinking",
2587
+ "output",
2588
+ "settings",
2589
+ "new",
2590
+ "resume",
2591
+ "handoff",
2592
+ "fork",
2593
+ "tree",
2594
+ "export",
2595
+ "archive",
2596
+ "quit"
2597
+ ];
2598
+ var COMMAND_ORDER_INDEX = new Map(COMMAND_ORDER.map((name, index) => [name, index]));
2410
2599
  function commandReference() {
2411
- return BUILTIN_SLASH_COMMANDS.filter((entry) => entry.hidden !== true).map((entry) => {
2600
+ return BUILTIN_SLASH_COMMANDS.filter((entry) => entry.hidden !== true).slice().sort((a, b) => (COMMAND_ORDER_INDEX.get(a.name) ?? 99) - (COMMAND_ORDER_INDEX.get(b.name) ?? 99)).map((entry) => {
2412
2601
  const usage = usageLine(entry).replace(/^\nusage:\s*/, "").replace(/\n$/, "");
2413
2602
  return {
2414
2603
  name: entry.name,
@@ -2431,17 +2620,16 @@ export {
2431
2620
  createWorkerStream,
2432
2621
  isWorkerShareNote,
2433
2622
  LIBRARY_TABS,
2434
- SETTINGS_SECTIONS,
2623
+ COMPLETION_SLOT_NAMES,
2435
2624
  renderArgsSpec,
2436
2625
  completeArgs,
2626
+ SETTINGS_AREA_IDS,
2437
2627
  handleRun,
2438
- formatReceiptVerificationBlock,
2439
2628
  formatUserTaskHandoff,
2440
2629
  SLASH_COMMAND_GROUPS,
2441
- formatPanesStatus,
2442
2630
  BUILTIN_SLASH_COMMANDS,
2443
2631
  parseSlashCommand,
2444
2632
  dispatchSlashCommand,
2445
2633
  commandReference
2446
2634
  };
2447
- //# sourceMappingURL=chunk-C2LTL2W6.js.map
2635
+ //# sourceMappingURL=chunk-J4HBWF6Y.js.map