@iowarp/clio-coder 0.4.1 → 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 (437) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +404 -472
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
  6. package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
  9. package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
  10. package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
  11. package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
  12. package/dist/chunk-2X4RYJTJ.js +39 -0
  13. package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
  14. package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
  15. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  16. package/dist/chunk-3EBYEESD.js +314 -0
  17. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  18. package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
  19. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  20. package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
  21. package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
  22. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  23. package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
  24. package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
  25. package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
  26. package/dist/chunk-77QIVUZB.js +1334 -0
  27. package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
  28. package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
  29. package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
  30. package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
  31. package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
  32. package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
  33. package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
  34. package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
  35. package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
  36. package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
  37. package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
  38. package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
  39. package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
  40. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  41. package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
  42. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  43. package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
  44. package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
  45. package/dist/chunk-HLAFFSEK.js +360 -0
  46. package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
  47. package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
  48. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  49. package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
  50. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  51. package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
  52. package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
  53. package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
  54. package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
  55. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  56. package/dist/chunk-KPXDY6QF.js +47 -0
  57. package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
  58. package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
  59. package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
  60. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  61. package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
  62. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  63. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  64. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  65. package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
  66. package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
  67. package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
  68. package/dist/chunk-PJX3WQUQ.js +42 -0
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
  70. package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
  71. package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
  72. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  73. package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
  74. package/dist/chunk-SZAA6XDG.js +30 -0
  75. package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
  76. package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
  77. package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
  78. package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
  79. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  80. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  81. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  82. package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
  83. package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
  84. package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
  85. package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
  86. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  87. package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
  88. package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
  89. package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
  90. package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
  91. package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
  92. package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
  93. package/dist/cli/index.js +33 -32
  94. package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
  95. package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
  96. package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
  97. package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
  98. package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
  99. package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
  100. package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
  101. package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
  102. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
  103. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
  104. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  105. package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
  106. package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
  107. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
  108. package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
  109. package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
  110. package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
  111. package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
  112. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
  113. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
  114. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
  115. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
  116. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
  117. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
  118. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
  119. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
  120. package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
  121. package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
  122. package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
  123. package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
  124. package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
  125. package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
  126. package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
  127. package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
  128. package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
  129. package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
  130. package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
  131. package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
  132. package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
  133. package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
  134. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
  135. package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
  136. package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
  137. package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
  138. package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
  139. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
  140. package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
  141. package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
  142. package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
  143. package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
  144. package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
  145. package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
  146. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  147. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
  148. package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
  149. package/dist/worker/entry.js +45 -30
  150. package/docs/README.md +176 -81
  151. package/docs/{acp.md → architecture/acp.md} +36 -20
  152. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  153. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  154. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  155. package/docs/architecture/artifact-versions.md +90 -0
  156. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  157. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  158. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  159. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  160. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  161. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  162. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  163. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  164. package/docs/{observability.md → architecture/observability.md} +26 -13
  165. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  166. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  167. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  168. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  169. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  170. package/docs/architecture/time-conventions.md +125 -0
  171. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  172. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  173. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  174. package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
  175. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
  176. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
  177. package/docs/guide/configuration-reference.md +1158 -0
  178. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
  179. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  180. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  181. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  182. package/docs/{glossary.md → guide/glossary.md} +14 -11
  183. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
  184. package/docs/guide/panes-and-files.md +290 -0
  185. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  186. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  187. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  188. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  189. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  190. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  191. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  192. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  193. package/docs/process/documentation-coverage.md +100 -0
  194. package/docs/process/documentation-guide.md +187 -0
  195. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  196. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  197. package/docs/{evolution.md → process/evolution.md} +2 -2
  198. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  199. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  200. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  201. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  202. package/evals/README.md +2 -2
  203. package/package.json +9 -7
  204. package/skills/README.md +46 -37
  205. package/skills/coding/ast-grep/SKILL.md +2 -2
  206. package/skills/coding/coding-standards/SKILL.md +2 -2
  207. package/skills/coding/prototype/SKILL.md +2 -2
  208. package/skills/coding/tdd/SKILL.md +2 -2
  209. package/skills/context/context-handoff/SKILL.md +2 -2
  210. package/skills/context/context-prime/SKILL.md +2 -2
  211. package/skills/git/file-ticket/SKILL.md +2 -2
  212. package/skills/git/fix-issue/SKILL.md +3 -3
  213. package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
  214. package/skills/git/ship/SKILL.md +2 -2
  215. package/skills/git/worktree-create/SKILL.md +2 -2
  216. package/skills/git/worktree-merge/SKILL.md +2 -2
  217. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  218. package/skills/meta/clio-coder-dev/evals.md +3 -2
  219. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  220. package/skills/meta/clio-coder-test/evals.md +9 -4
  221. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  222. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  223. package/skills/meta/credentials/SKILL.md +2 -2
  224. package/skills/meta/find-skills/SKILL.md +2 -2
  225. package/skills/meta/herdr/SKILL.md +2 -2
  226. package/skills/meta/skill-craft/SKILL.md +22 -16
  227. package/skills/planning/architecture/SKILL.md +2 -2
  228. package/skills/planning/backlog/SKILL.md +2 -2
  229. package/skills/planning/prd/SKILL.md +2 -2
  230. package/skills/planning/product-intent/SKILL.md +2 -2
  231. package/skills/planning/tech-spec/SKILL.md +2 -2
  232. package/skills/registry.yaml +62 -62
  233. package/skills/research/arxiv-literature/SKILL.md +2 -2
  234. package/skills/research/experiment-protocol/SKILL.md +2 -2
  235. package/skills/research/scientific-debugging/SKILL.md +2 -2
  236. package/skills/research/scientific-modernization/SKILL.md +2 -2
  237. package/skills/skill-marketplace.json +62 -62
  238. package/skills/workflow/cut-it/SKILL.md +2 -2
  239. package/skills/workflow/design-council/SKILL.md +2 -2
  240. package/skills/workflow/grill-me/SKILL.md +2 -2
  241. package/skills/workflow/workflow-distiller/SKILL.md +2 -2
  242. package/src/cli/args.ts +2 -2
  243. package/src/cli/bootstrap-generate.ts +1 -1
  244. package/src/cli/config-inspect.ts +65 -12
  245. package/src/cli/configure.ts +0 -4
  246. package/src/cli/docs.ts +22 -14
  247. package/src/cli/doctor-naming.ts +5 -5
  248. package/src/cli/doctor-toolchain.ts +3 -3
  249. package/src/cli/eval.ts +1 -2
  250. package/src/cli/extensions.ts +2 -1
  251. package/src/cli/fleet.ts +1 -1
  252. package/src/cli/index.ts +2 -1
  253. package/src/cli/internal-dispatch.ts +3 -4
  254. package/src/cli/panes.ts +19 -5
  255. package/src/cli/run.ts +2 -2
  256. package/src/cli/share.ts +5 -1
  257. package/src/cli/skills-eval.ts +3 -3
  258. package/src/cli/targets.ts +2 -6
  259. package/src/cli/trace.ts +55 -4
  260. package/src/cli/wiki-generate.ts +1 -1
  261. package/src/core/artifact-paths.ts +1 -1
  262. package/src/core/bash-exec.ts +131 -86
  263. package/src/core/bus-events.ts +51 -6
  264. package/src/core/config.ts +5 -1
  265. package/src/core/defaults.ts +7 -4
  266. package/src/core/dispatch-outcome.ts +16 -0
  267. package/src/core/guardrails.ts +10 -49
  268. package/src/core/prompt-hint.ts +9 -0
  269. package/src/domains/agents/builtins/architect.md +2 -3
  270. package/src/domains/agents/builtins/coder.md +3 -2
  271. package/src/domains/agents/builtins/debugger.md +2 -2
  272. package/src/domains/agents/builtins/documenter.md +2 -2
  273. package/src/domains/agents/builtins/git-master.md +1 -1
  274. package/src/domains/agents/builtins/oracle.md +1 -1
  275. package/src/domains/agents/builtins/provenance.md +1 -1
  276. package/src/domains/agents/builtins/researcher.md +1 -1
  277. package/src/domains/agents/builtins/scout.md +1 -1
  278. package/src/domains/agents/builtins/tester.md +2 -2
  279. package/src/domains/agents/builtins/verifier.md +2 -2
  280. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  281. package/src/domains/agents/catalog.ts +12 -14
  282. package/src/domains/agents/contract.ts +2 -0
  283. package/src/domains/agents/extension.ts +23 -1
  284. package/src/domains/config/keybindings.ts +8 -0
  285. package/src/domains/context/extension.ts +0 -3
  286. package/src/domains/context/working-set/path-index.ts +1 -0
  287. package/src/domains/dispatch/capability-match.ts +10 -0
  288. package/src/domains/dispatch/extension.ts +105 -22
  289. package/src/domains/dispatch/host-verification.ts +435 -39
  290. package/src/domains/dispatch/intent-requirements.ts +10 -0
  291. package/src/domains/dispatch/intent.ts +18 -1
  292. package/src/domains/dispatch/path-scope.ts +235 -24
  293. package/src/domains/dispatch/run-event-journal.ts +4 -15
  294. package/src/domains/dispatch/state.ts +2 -3
  295. package/src/domains/dispatch/transport.ts +45 -21
  296. package/src/domains/dispatch/types.ts +55 -3
  297. package/src/domains/eval/artifacts/store.ts +5 -0
  298. package/src/domains/eval/store.ts +8 -1
  299. package/src/domains/evidence/trust-status.ts +10 -1
  300. package/src/domains/extensions/contract.ts +15 -1
  301. package/src/domains/extensions/discovery.ts +238 -41
  302. package/src/domains/extensions/extension.ts +105 -6
  303. package/src/domains/extensions/index.ts +24 -0
  304. package/src/domains/extensions/integrity.ts +189 -0
  305. package/src/domains/extensions/manager.ts +17 -1
  306. package/src/domains/extensions/resource-path.ts +27 -0
  307. package/src/domains/extensions/resources.ts +18 -38
  308. package/src/domains/extensions/snapshot-store.ts +39 -0
  309. package/src/domains/extensions/snapshot.ts +180 -0
  310. package/src/domains/extensions/state.ts +385 -57
  311. package/src/domains/extensions/types.ts +118 -1
  312. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  313. package/src/domains/lifecycle/migrations/index.ts +2 -0
  314. package/src/domains/lifecycle/naming-resources.ts +19 -4
  315. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  316. package/src/domains/middleware/contract.ts +26 -0
  317. package/src/domains/middleware/extension.ts +24 -24
  318. package/src/domains/middleware/hook-receipts.ts +27 -4
  319. package/src/domains/middleware/hooks-io.ts +65 -32
  320. package/src/domains/middleware/hooks.ts +64 -0
  321. package/src/domains/middleware/index.ts +28 -4
  322. package/src/domains/middleware/registrations.ts +326 -0
  323. package/src/domains/middleware/runtime.ts +28 -0
  324. package/src/domains/middleware/snapshot.ts +20 -7
  325. package/src/domains/mux/contract.ts +38 -0
  326. package/src/domains/mux/detect.ts +6 -13
  327. package/src/domains/mux/index.ts +1 -1
  328. package/src/domains/mux/operations.ts +44 -5
  329. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  330. package/src/domains/mux/yazi/session.ts +53 -4
  331. package/src/domains/mux/yazi/theme.ts +117 -17
  332. package/src/domains/observability/contract.ts +10 -11
  333. package/src/domains/observability/extension.ts +11 -3
  334. package/src/domains/observability/projection.ts +14 -90
  335. package/src/domains/observability/trace-store.ts +43 -7
  336. package/src/domains/prompts/compiler.ts +73 -53
  337. package/src/domains/prompts/contract.ts +15 -3
  338. package/src/domains/prompts/extension.ts +97 -9
  339. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  340. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  341. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  342. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  343. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  344. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  345. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  346. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  347. package/src/domains/providers/index.ts +1 -1
  348. package/src/domains/providers/model-runtime-capabilities.ts +85 -21
  349. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
  350. package/src/domains/providers/runtime-resolution.ts +31 -0
  351. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  352. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  353. package/src/domains/providers/types/cost-provenance.ts +19 -0
  354. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  355. package/src/domains/resources/skills/loader.ts +16 -19
  356. package/src/domains/safety/call-target.ts +1 -1
  357. package/src/domains/safety/loop-detector.ts +7 -4
  358. package/src/domains/session/task-board.ts +10 -9
  359. package/src/domains/share/archive.ts +164 -7
  360. package/src/engine/acp/server.ts +62 -9
  361. package/src/engine/apis/llamacpp-residency.ts +3 -4
  362. package/src/engine/apis/lmstudio.ts +3 -3
  363. package/src/engine/apis/ollama-native.ts +6 -6
  364. package/src/engine/apis/openai-completions.ts +28 -25
  365. package/src/engine/apis/output-budget.ts +8 -18
  366. package/src/engine/apis/residency.ts +8 -27
  367. package/src/engine/gemma-channel-filter.ts +19 -0
  368. package/src/engine/loop-guard.ts +92 -12
  369. package/src/engine/worker-runtime.ts +40 -11
  370. package/src/engine/worker-tools.ts +3 -1
  371. package/src/entry/extension-hook-sources.ts +28 -0
  372. package/src/entry/extension-reload.ts +309 -0
  373. package/src/entry/orchestrator.ts +59 -35
  374. package/src/interactive/application-controller.ts +2 -1
  375. package/src/interactive/bus-notices.ts +8 -1
  376. package/src/interactive/chat-loop-messages.ts +3 -13
  377. package/src/interactive/chat-loop.ts +10 -1
  378. package/src/interactive/chat-panel.ts +36 -13
  379. package/src/interactive/chat-renderer.ts +71 -7
  380. package/src/interactive/dispatch-board.ts +6 -11
  381. package/src/interactive/footer/widgets.ts +13 -0
  382. package/src/interactive/interactive-application.ts +39 -4
  383. package/src/interactive/interactive-input-runtime.ts +4 -0
  384. package/src/interactive/interactive-presentation.ts +2 -2
  385. package/src/interactive/interactive-slash-runtime.ts +2 -0
  386. package/src/interactive/overlays/extensions.ts +9 -1
  387. package/src/interactive/overlays/help-reference.ts +13 -0
  388. package/src/interactive/overlays/settings.ts +27 -16
  389. package/src/interactive/panes-runtime.ts +111 -35
  390. package/src/interactive/prompt-cache-identity.ts +88 -0
  391. package/src/interactive/slash-commands.ts +129 -14
  392. package/src/interactive/stream-pacing-policy.ts +0 -23
  393. package/src/interactive/turn-context.ts +30 -15
  394. package/src/interactive/yazi-bridge.ts +60 -6
  395. package/src/tools/agent-tools.ts +30 -1
  396. package/src/tools/artifact.ts +2 -2
  397. package/src/tools/ask-user.ts +3 -3
  398. package/src/tools/bash.ts +1 -1
  399. package/src/tools/bootstrap.ts +4 -0
  400. package/src/tools/builtin-tool-catalog.ts +52 -22
  401. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  402. package/src/tools/codewiki/code-nav.ts +99 -13
  403. package/src/tools/context/docs-engine.ts +20 -7
  404. package/src/tools/context/index.ts +29 -12
  405. package/src/tools/core-bootstrap.ts +28 -6
  406. package/src/tools/credential-present.ts +1 -2
  407. package/src/tools/dispatch-arguments.ts +5 -1
  408. package/src/tools/dispatch-plan.ts +48 -4
  409. package/src/tools/dispatch-run-events.ts +1 -1
  410. package/src/tools/dispatch-schema.ts +338 -0
  411. package/src/tools/dispatch-types.ts +3 -0
  412. package/src/tools/dispatch.ts +9 -254
  413. package/src/tools/ledger.ts +3 -5
  414. package/src/tools/monitor-surface.ts +5 -13
  415. package/src/tools/observation.ts +4 -5
  416. package/src/tools/panes-surface.ts +4 -11
  417. package/src/tools/panes.ts +4 -2
  418. package/src/tools/policy.ts +15 -2
  419. package/src/tools/read.ts +5 -6
  420. package/src/tools/registry.ts +30 -7
  421. package/src/tools/result-shaping.ts +18 -14
  422. package/src/tools/steer-surface.ts +1 -1
  423. package/src/tools/tasks.ts +1 -1
  424. package/src/tools/truncate.ts +6 -5
  425. package/src/tools/verify/surface.ts +6 -12
  426. package/src/tools/web-fetch-surface.ts +1 -3
  427. package/dist/chunk-5QIAJV2D.js +0 -48
  428. package/dist/chunk-JZWT5J3Y.js +0 -814
  429. package/dist/chunk-K7VKOLQQ.js +0 -15
  430. package/dist/chunk-PMZCIOCJ.js +0 -25
  431. package/dist/chunk-SUW5DORT.js +0 -819
  432. package/dist/chunk-UOV2BYIW.js +0 -107
  433. package/dist/chunk-WR6U3OVP.js +0 -45
  434. package/docs/artifact-versions.md +0 -67
  435. package/docs/documentation-coverage.md +0 -46
  436. package/docs/documentation-guide.md +0 -167
  437. package/docs/time-conventions.md +0 -101
@@ -1,8 +1,9 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  THINKING_LEVELS
4
- } from "./chunk-BWW4HLO4.js";
4
+ } from "./chunk-UXCU4E3T.js";
5
5
  import {
6
+ catalogThinkingLevelsForRuntime,
6
7
  listCatalogModelsForRuntime,
7
8
  mergeCapabilities,
8
9
  synthesizeCatalogBackedModel
@@ -257,15 +258,102 @@ init_esm_shims();
257
258
 
258
259
  // src/domains/providers/types/local-model-quirks.ts
259
260
  init_esm_shims();
260
- var KV_CACHE_QUANTS = ["f32", "f16", "q8_0", "q4_0", "q4_1", "iq4_nl", "q5_0", "q5_1"];
261
+
262
+ // src/domains/providers/types/capability-flags.ts
263
+ init_esm_shims();
264
+
265
+ // src/domains/providers/model-family.ts
266
+ init_esm_shims();
267
+ function normalizeModelIdForFamily(modelId) {
268
+ return (modelId ?? "").trim().toLowerCase().replace(/_/g, "-");
269
+ }
270
+ function isHarmonyModelId(modelId) {
271
+ return normalizeModelIdForFamily(modelId).includes("gpt-oss");
272
+ }
273
+ function inferLocalModelFamily(modelId) {
274
+ const normalized = normalizeModelIdForFamily(modelId);
275
+ if (normalized.length === 0) return "unknown";
276
+ if (normalized.includes("gpt-oss")) return "openai-gpt-oss";
277
+ if (normalized.includes("nemotron-cascade-2") || normalized.includes("nemotron-cascade2")) {
278
+ return "nemotron-cascade-2";
279
+ }
280
+ if (normalized.includes("nemotron-3-nano-omni") || normalized.includes("nemotron-nano-omni")) {
281
+ return "nemotron-3-nano-omni";
282
+ }
283
+ if (normalized.includes("qwen3")) return "qwen3";
284
+ if (normalized.includes("gemma-4") || normalized.includes("gemma4") || normalized.includes("gemopus")) {
285
+ return "gemma-4";
286
+ }
287
+ return "unknown";
288
+ }
289
+
290
+ // src/domains/providers/types/capability-flags.ts
291
+ var EMPTY_CAPABILITIES = {
292
+ chat: false,
293
+ tools: false,
294
+ reasoning: false,
295
+ vision: false,
296
+ audio: false,
297
+ embeddings: false,
298
+ rerank: false,
299
+ fim: false,
300
+ contextWindow: 0,
301
+ maxTokens: 0
302
+ };
303
+ var VALID_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
304
+ var THINKING_LEVELS_WITHOUT_XHIGH = ["off", "minimal", "low", "medium", "high"];
305
+ var THINKING_LEVELS_OPENAI_5_1_MINI = ["off", "minimal", "low", "medium", "high"];
306
+ var THINKING_LEVELS_OPENAI_5_2_PLUS = [
307
+ "off",
308
+ "minimal",
309
+ "low",
310
+ "medium",
311
+ "high",
312
+ "xhigh"
313
+ ];
314
+ var THINKING_LEVELS_OPENAI_5_6 = [...THINKING_LEVELS_OPENAI_5_2_PLUS, "max"];
315
+ var THINKING_LEVELS_HARMONY = ["low", "medium", "high"];
316
+ function normalizeModelId(modelId) {
317
+ if (!modelId) return void 0;
318
+ const trimmed = modelId.trim();
319
+ if (trimmed.length === 0) return void 0;
320
+ return trimmed.includes("/") ? trimmed.split("/").pop() ?? trimmed : trimmed;
321
+ }
322
+ function availableOpenAICodexThinkingLevels(modelId) {
323
+ const normalized = normalizeModelId(modelId);
324
+ if (!normalized) return VALID_THINKING_LEVELS;
325
+ if (normalized === "gpt-5.1-codex-mini") return THINKING_LEVELS_OPENAI_5_1_MINI;
326
+ if (normalized.startsWith("gpt-5.2") || normalized.startsWith("gpt-5.3") || normalized.startsWith("gpt-5.4") || normalized.startsWith("gpt-5.5")) {
327
+ return THINKING_LEVELS_OPENAI_5_2_PLUS;
328
+ }
329
+ if (normalized.startsWith("gpt-5.6")) {
330
+ return THINKING_LEVELS_OPENAI_5_6;
331
+ }
332
+ return THINKING_LEVELS_WITHOUT_XHIGH;
333
+ }
334
+ function availableThinkingLevels(caps, options) {
335
+ if (!caps.reasoning) return ["off"];
336
+ if (caps.thinkingFormat === "harmony" || isHarmonyModelId(options?.modelId)) {
337
+ return THINKING_LEVELS_HARMONY;
338
+ }
339
+ const catalogLevels = options?.runtimeId && options.modelId ? catalogThinkingLevelsForRuntime(options.runtimeId, options.modelId) : void 0;
340
+ if (catalogLevels) {
341
+ if (!catalogLevels.includes("xhigh")) return catalogLevels.filter((level) => level !== "max");
342
+ return catalogLevels;
343
+ }
344
+ if (caps.thinkingFormat === "openai-codex" || options?.runtimeId === "openai-codex") {
345
+ return availableOpenAICodexThinkingLevels(options?.modelId);
346
+ }
347
+ if (caps.thinkingFormat === "anthropic-extended") {
348
+ return THINKING_LEVELS_WITHOUT_XHIGH;
349
+ }
350
+ return THINKING_LEVELS_WITHOUT_XHIGH;
351
+ }
352
+
353
+ // src/domains/providers/types/local-model-quirks.ts
261
354
  function isRecord(value) {
262
355
  return value !== null && typeof value === "object" && !Array.isArray(value);
263
356
  }
264
- function asKvCacheQuant(value) {
265
- if (value === false) return false;
266
- if (typeof value !== "string") return void 0;
267
- return KV_CACHE_QUANTS.includes(value) ? value : void 0;
268
- }
269
357
  function asPositive(value) {
270
358
  return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : void 0;
271
359
  }
@@ -276,16 +364,6 @@ function asInteger(value) {
276
364
  function asPenalty(value) {
277
365
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
278
366
  }
279
- function extractKvCache(raw) {
280
- if (!isRecord(raw)) return void 0;
281
- const out = {};
282
- const k = asKvCacheQuant(raw.kQuant);
283
- if (k !== void 0) out.kQuant = k;
284
- const v = asKvCacheQuant(raw.vQuant);
285
- if (v !== void 0) out.vQuant = v;
286
- if (typeof raw.useFp16 === "boolean") out.useFp16 = raw.useFp16;
287
- return Object.keys(out).length > 0 ? out : void 0;
288
- }
289
367
  function extractSamplingProfile(raw) {
290
368
  if (!isRecord(raw)) return void 0;
291
369
  const out = {};
@@ -303,8 +381,6 @@ function extractSamplingProfile(raw) {
303
381
  if (pp !== void 0) out.presencePenalty = pp;
304
382
  const fp = asPenalty(raw.frequencyPenalty);
305
383
  if (fp !== void 0) out.frequencyPenalty = fp;
306
- const maxTokens = asInteger(raw.maxTokens);
307
- if (maxTokens !== void 0) out.maxTokens = maxTokens;
308
384
  return Object.keys(out).length > 0 ? out : void 0;
309
385
  }
310
386
  function extractSampling(raw) {
@@ -353,6 +429,61 @@ function extractEffortByLevel(raw) {
353
429
  if (typeof raw.xhigh === "string" && raw.xhigh.length > 0) out.xhigh = raw.xhigh;
354
430
  return Object.keys(out).length > 0 ? out : void 0;
355
431
  }
432
+ function extractChatTemplateKwargs(raw) {
433
+ if (!isRecord(raw)) return void 0;
434
+ const out = {};
435
+ if (isRecord(raw.static)) {
436
+ const staticMap = {};
437
+ for (const [k, v] of Object.entries(raw.static)) {
438
+ if (typeof v === "boolean") {
439
+ staticMap[k] = v;
440
+ } else if (typeof v === "number" && Number.isFinite(v)) {
441
+ staticMap[k] = v;
442
+ } else if (typeof v === "string" && v.length > 0) {
443
+ staticMap[k] = v;
444
+ }
445
+ }
446
+ if (Object.keys(staticMap).length > 0) out.static = staticMap;
447
+ }
448
+ if (isRecord(raw.byLevel)) {
449
+ const byLevelRaw = raw.byLevel;
450
+ if (typeof byLevelRaw.key === "string" && byLevelRaw.key.trim().length > 0 && isRecord(byLevelRaw.values)) {
451
+ const values = {};
452
+ for (const level of VALID_THINKING_LEVELS) {
453
+ const val = byLevelRaw.values[level];
454
+ if (typeof val === "string" && val.length > 0) {
455
+ values[level] = val;
456
+ } else if (typeof val === "number" && Number.isFinite(val)) {
457
+ values[level] = val;
458
+ }
459
+ }
460
+ if (Object.keys(values).length > 0) {
461
+ const byLevel = {
462
+ key: byLevelRaw.key.trim(),
463
+ values
464
+ };
465
+ if (typeof byLevelRaw.lmstudio === "string" && byLevelRaw.lmstudio.trim().length > 0) {
466
+ byLevel.lmstudio = byLevelRaw.lmstudio.trim();
467
+ }
468
+ out.byLevel = byLevel;
469
+ }
470
+ }
471
+ }
472
+ if (typeof raw.lmstudio === "string" && raw.lmstudio.trim().length > 0) {
473
+ out.lmstudio = raw.lmstudio.trim();
474
+ } else if (isRecord(raw.lmstudio)) {
475
+ const lmstudioMap = {};
476
+ for (const [k, v] of Object.entries(raw.lmstudio)) {
477
+ if (typeof v === "string" && v.trim().length > 0) {
478
+ lmstudioMap[k] = v.trim();
479
+ }
480
+ }
481
+ if (Object.keys(lmstudioMap).length > 0) {
482
+ out.lmstudio = lmstudioMap;
483
+ }
484
+ }
485
+ return Object.keys(out).length > 0 ? out : void 0;
486
+ }
356
487
  function extractThinkingQuirks(raw) {
357
488
  if (!isRecord(raw)) return void 0;
358
489
  const mechanism = asThinkingMechanism(raw.mechanism);
@@ -363,17 +494,19 @@ function extractThinkingQuirks(raw) {
363
494
  const effortByLevel = extractEffortByLevel(raw.effortByLevel);
364
495
  if (effortByLevel) out.effortByLevel = effortByLevel;
365
496
  if (typeof raw.guidance === "string" && raw.guidance.length > 0) out.guidance = raw.guidance;
497
+ const chatTemplateKwargs = extractChatTemplateKwargs(raw.chatTemplateKwargs);
498
+ if (chatTemplateKwargs) out.chatTemplateKwargs = chatTemplateKwargs;
366
499
  return out;
367
500
  }
368
501
  function extractLocalModelQuirks(raw) {
369
502
  if (!isRecord(raw)) return void 0;
370
503
  const out = {};
371
- const kvCache = extractKvCache(raw.kvCache);
372
- if (kvCache) out.kvCache = kvCache;
373
504
  const sampling = extractSampling(raw.sampling);
374
505
  if (sampling) out.sampling = sampling;
375
506
  const thinking = extractThinkingQuirks(raw.thinking);
376
507
  if (thinking) out.thinking = thinking;
508
+ const chatTemplateKwargs = extractChatTemplateKwargs(raw.chatTemplateKwargs) ?? extractChatTemplateKwargs(isRecord(raw.thinking) ? raw.thinking.chatTemplateKwargs : void 0) ?? extractChatTemplateKwargs(isRecord(raw.request) ? raw.request.chatTemplateKwargs : void 0);
509
+ if (chatTemplateKwargs) out.chatTemplateKwargs = chatTemplateKwargs;
377
510
  return Object.keys(out).length > 0 ? out : void 0;
378
511
  }
379
512
 
@@ -855,8 +988,10 @@ async function probeLlamaCppModelStatus(base, target, ctx) {
855
988
  const entries = await probeOpenAIModelEntries(base, ctx);
856
989
  const selected = selectedModelEntry(entries, target);
857
990
  if (!selected) return {};
991
+ const loadState = modelStateFromOpenAIModelEntry({ id: selected.id, status: selected.status })?.state;
992
+ const withState = (enrichment2) => loadState === void 0 ? enrichment2 : { ...enrichment2, loadState };
858
993
  const args = argsFromStatus(selected.status);
859
- if (args.length === 0) return { notes: statusNotes(selected.id, selected.status) };
994
+ if (args.length === 0) return withState({ notes: statusNotes(selected.id, selected.status) });
860
995
  const flags = parseLlamaCppServerFlags(args);
861
996
  const caps = {};
862
997
  const window = llamaCppRequestContextWindow(flags);
@@ -877,7 +1012,7 @@ async function probeLlamaCppModelStatus(base, target, ctx) {
877
1012
  );
878
1013
  }
879
1014
  if (notes.length > 0) enrichment.notes = notes;
880
- return enrichment;
1015
+ return withState(enrichment);
881
1016
  }
882
1017
  async function detectModelMismatch(base, target, ctx) {
883
1018
  const expected = target.defaultModel?.trim();
@@ -1797,7 +1932,8 @@ var llamacppRuntime = {
1797
1932
  const health = await (ctx.signal ? probeHttp({ ...healthOpts, signal: ctx.signal }) : probeHttp(healthOpts));
1798
1933
  if (!health.ok) return health;
1799
1934
  const status = await probeLlamaCppModelStatus(base, target, ctx);
1800
- const props = await probeLlamaCppProps(base, ctx, status.modelId ?? target.defaultModel);
1935
+ const resident = status.loadState === void 0 || status.loadState === "loaded";
1936
+ const props = await probeLlamaCppProps(base, ctx, resident ? status.modelId ?? target.defaultModel : void 0);
1801
1937
  const catalog = await probeOpenAIModelCatalog(base, ctx);
1802
1938
  const result = { ok: true };
1803
1939
  if (catalog.models.length > 0) result.models = catalog.models;
@@ -3167,9 +3303,14 @@ function registerBuiltinRuntimes(registry) {
3167
3303
  }
3168
3304
 
3169
3305
  export {
3306
+ isHarmonyModelId,
3307
+ inferLocalModelFamily,
3170
3308
  CLIO_MIN_CONTEXT_WINDOW,
3171
3309
  CLIO_MIN_MAX_OUTPUT_TOKENS,
3172
3310
  CLIO_CONTEXT_WINDOW_WARN_BELOW,
3311
+ EMPTY_CAPABILITIES,
3312
+ VALID_THINKING_LEVELS,
3313
+ availableThinkingLevels,
3173
3314
  extractLocalModelQuirks,
3174
3315
  lmStudioRootUrl,
3175
3316
  requestLmStudioJson,
@@ -3181,4 +3322,4 @@ export {
3181
3322
  BUILTIN_RUNTIMES,
3182
3323
  registerBuiltinRuntimes
3183
3324
  };
3184
- //# sourceMappingURL=chunk-QKIFBZKT.js.map
3325
+ //# sourceMappingURL=chunk-IMXMHHMQ.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  inspectEvidence
4
- } from "./chunk-XKA2ICR3.js";
4
+ } from "./chunk-I66ZTYNP.js";
5
5
  import {
6
6
  TASK_MEMORY_CONTENT_MAX_CHARS,
7
7
  TASK_MEMORY_DEFAULT_KNOWLEDGE_CAP,
@@ -1557,4 +1557,4 @@ export {
1557
1557
  taskMemoryTracePath,
1558
1558
  createTaskMemoryTrace
1559
1559
  };
1560
- //# sourceMappingURL=chunk-74YWRRU5.js.map
1560
+ //# sourceMappingURL=chunk-JBCS7CRR.js.map
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  readSettings,
8
8
  updateSettings
9
- } from "./chunk-EIMVLWB3.js";
9
+ } from "./chunk-34BHNEE3.js";
10
10
  import {
11
11
  runCommandVector
12
12
  } from "./chunk-HJWWJ6IL.js";
@@ -430,4 +430,4 @@ export {
430
430
  detectInteropAgents,
431
431
  InteropDomainModule
432
432
  };
433
- //# sourceMappingURL=chunk-BDPT6GTK.js.map
433
+ //# sourceMappingURL=chunk-JWJGP5DQ.js.map
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  ensureYaziProfile,
4
4
  yaziProfileDir
5
- } from "./chunk-J5LZHVIT.js";
5
+ } from "./chunk-3M6DQK6S.js";
6
6
  import {
7
7
  describeResolution,
8
8
  resolveToolBinary,
@@ -549,6 +549,28 @@ function createMuxRuntime(options) {
549
549
  false
550
550
  );
551
551
  },
552
+ async focusSelf() {
553
+ if (anchorPaneId === null || !muxSupportsMethod(detection.server, "pane.focus")) return false;
554
+ return await attempt(
555
+ "focusSelf",
556
+ async (live) => {
557
+ await live.paneFocus(anchorPaneId);
558
+ return true;
559
+ },
560
+ false
561
+ );
562
+ },
563
+ async unzoomSelf() {
564
+ if (anchorPaneId === null || !muxSupportsMethod(detection.server, "pane.zoom")) return false;
565
+ return await attempt(
566
+ "unzoomSelf",
567
+ async (live) => {
568
+ const result = await live.paneZoom(anchorPaneId, "off");
569
+ return result.changed;
570
+ },
571
+ false
572
+ );
573
+ },
552
574
  async resizeDock(slot, share) {
553
575
  if (!docks) return false;
554
576
  return await attempt("resizeDock", () => docks.resize(slot, share), false);
@@ -1368,14 +1390,7 @@ async function detectMux(options = {}) {
1368
1390
  return { detection: none("panes are turned off"), client: null };
1369
1391
  }
1370
1392
  if (enabled === "embedded") {
1371
- return {
1372
- detection: none(
1373
- "embedded mode is not implemented yet; it ships in phase 5, so this session has no panes at all. Set panes.enabled=auto for guest mode inside a herdr session.",
1374
- [],
1375
- true
1376
- ),
1377
- client: null
1378
- };
1393
+ log("info", "interface.panes.enabled=embedded is not implemented yet; detecting a guest pane host instead");
1379
1394
  }
1380
1395
  if (env.HERDR_ENV !== "1") {
1381
1396
  return { detection: none("HERDR_ENV is not 1, so Clio is not running inside a pane host"), client: null };
@@ -1607,7 +1622,7 @@ function createYaziEventStream(options) {
1607
1622
  init_esm_shims();
1608
1623
  import { spawn } from "node:child_process";
1609
1624
  import { randomUUID } from "node:crypto";
1610
- import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
1625
+ import { mkdirSync, readdirSync, readFileSync, rmSync, statSync as statSync2, writeFileSync } from "node:fs";
1611
1626
  import { join as join3 } from "node:path";
1612
1627
  function resolveYaziBinaries() {
1613
1628
  const entry = findPinnedTool("yazi");
@@ -1632,6 +1647,28 @@ function readOptional(path) {
1632
1647
  return "";
1633
1648
  }
1634
1649
  }
1650
+ var YAZI_STALE_TRANSPORT_MS = 24 * 60 * 60 * 1e3;
1651
+ function sweepStaleTransportFiles(sessionsDir, now = Date.now()) {
1652
+ let removed = 0;
1653
+ let entries;
1654
+ try {
1655
+ entries = readdirSync(sessionsDir);
1656
+ } catch {
1657
+ return 0;
1658
+ }
1659
+ for (const name of entries) {
1660
+ if (!/\.(stream|chooser|cwd)$/u.test(name)) continue;
1661
+ const path = join3(sessionsDir, name);
1662
+ try {
1663
+ if (now - statSync2(path).mtimeMs > YAZI_STALE_TRANSPORT_MS) {
1664
+ rmSync(path, { force: true });
1665
+ removed += 1;
1666
+ }
1667
+ } catch {
1668
+ }
1669
+ }
1670
+ return removed;
1671
+ }
1635
1672
  async function createYaziSession(options) {
1636
1673
  const binaries = (options.resolveBinaries ?? resolveYaziBinaries)();
1637
1674
  if (!binaries.yaziPath) {
@@ -1648,6 +1685,7 @@ async function createYaziSession(options) {
1648
1685
  const sessionId = options.sessionId ?? randomUUID();
1649
1686
  const sessionsDir = join3(cacheDir, "yazi", "sessions");
1650
1687
  mkdirSync(sessionsDir, { recursive: true });
1688
+ sweepStaleTransportFiles(sessionsDir);
1651
1689
  const managedProfile = options.profileMode === "managed" ? (options.ensureProfile ?? ensureYaziProfile)({
1652
1690
  yaPath: binaries.yaPath,
1653
1691
  yaziPath: binaries.yaziPath,
@@ -1681,10 +1719,14 @@ async function createYaziSession(options) {
1681
1719
  writeFileSync(cwdPath, "");
1682
1720
  argv = [binaries.yaziPath, options.cwd, "--chooser-file", chooserPath, "--cwd-file", cwdPath];
1683
1721
  }
1722
+ const removeTransportFiles = () => {
1723
+ for (const path of [streamPath, chooserPath, cwdPath]) rmSync(path, { force: true });
1724
+ };
1684
1725
  const pane = await options.mux.openUtilityPane({
1685
1726
  argv,
1686
1727
  cwd: options.cwd,
1687
- label: "yazi",
1728
+ label: "files",
1729
+ title: "files",
1688
1730
  // The files dock: split down from the anchor at the configured share.
1689
1731
  // Degrades to a plain split inside the contract when the layout tier is
1690
1732
  // absent.
@@ -1692,7 +1734,10 @@ async function createYaziSession(options) {
1692
1734
  ...Object.keys(env).length > 0 ? { env } : {},
1693
1735
  ...stdoutPath ? { stdoutPath } : {}
1694
1736
  });
1695
- if (!pane) return { status: "unavailable", reason: "pane host refused to open yazi" };
1737
+ if (!pane) {
1738
+ removeTransportFiles();
1739
+ return { status: "unavailable", reason: "the pane host refused to open the files pane" };
1740
+ }
1696
1741
  let paneCwd = options.cwd;
1697
1742
  let instanceId = null;
1698
1743
  let stream = null;
@@ -1705,6 +1750,7 @@ async function createYaziSession(options) {
1705
1750
  if (chooserTimer) clearInterval(chooserTimer);
1706
1751
  chooserTimer = null;
1707
1752
  options.onStopped?.(reason);
1753
+ removeTransportFiles();
1708
1754
  };
1709
1755
  if (options.mode === "companion") {
1710
1756
  stream = createYaziEventStream({
@@ -1720,7 +1766,9 @@ async function createYaziSession(options) {
1720
1766
  options.onEvent(event);
1721
1767
  }
1722
1768
  });
1723
- void stream.done.then((reason) => stop(reason));
1769
+ void stream.done.then((reason) => {
1770
+ stop(reason);
1771
+ });
1724
1772
  } else {
1725
1773
  const pollChooser = () => {
1726
1774
  if (stopped || alive()) return;
@@ -1782,4 +1830,4 @@ export {
1782
1830
  createYaziSession,
1783
1831
  createMuxDomainModule
1784
1832
  };
1785
- //# sourceMappingURL=chunk-K6BF4U2H.js.map
1833
+ //# sourceMappingURL=chunk-KKOJXO6R.js.map
@@ -0,0 +1,47 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ atomicWrite
4
+ } from "./chunk-MQXIVJ35.js";
5
+ import {
6
+ clioStateDir
7
+ } from "./chunk-BYP5D4HI.js";
8
+ import {
9
+ init_esm_shims
10
+ } from "./chunk-3R73A4XB.js";
11
+
12
+ // src/domains/dispatch/code-step-store.ts
13
+ init_esm_shims();
14
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
15
+ import { join } from "node:path";
16
+ function codeStepDir(rootId) {
17
+ return join(clioStateDir(), "code-steps", rootId);
18
+ }
19
+ function codeStepRecordPath(rootId, runId) {
20
+ return join(codeStepDir(rootId), `${runId}.json`);
21
+ }
22
+ async function writeCodeStepRecord(rootId, record) {
23
+ const path = codeStepRecordPath(rootId, record.runId);
24
+ await atomicWrite(path, `${JSON.stringify(record, null, 2)}
25
+ `);
26
+ return path;
27
+ }
28
+ function readCodeStepRecords(rootId) {
29
+ const dir = codeStepDir(rootId);
30
+ if (!existsSync(dir)) return [];
31
+ const records = [];
32
+ for (const file of readdirSync(dir).filter((name) => name.endsWith(".json")).sort()) {
33
+ try {
34
+ const parsed = JSON.parse(readFileSync(join(dir, file), "utf8"));
35
+ if (parsed.version === 1) records.push(parsed);
36
+ } catch {
37
+ }
38
+ }
39
+ return records.sort((left, right) => left.startedAt.localeCompare(right.startedAt));
40
+ }
41
+
42
+ export {
43
+ codeStepDir,
44
+ writeCodeStepRecord,
45
+ readCodeStepRecords
46
+ };
47
+ //# sourceMappingURL=chunk-KPXDY6QF.js.map
@@ -21,6 +21,12 @@ var codeNavToolSurface = {
21
21
  name: ToolNames.CodeNav,
22
22
  description: "Navigate the indexed codewiki: mode=symbol finds files by symbol, path finds files by glob/regex/substring, entries lists likely entry points, outline lists file symbols, deps lists imports, and dependents lists importers. mode=wiki without query lists generated Markdown wiki pages; with query it resolves a page id/title and returns its summary plus a path to open with read. For Clio's bundled product docs use context scope=docs.",
23
23
  parameters: typebox_exports.Object({
24
+ source: typebox_exports.Optional(
25
+ StringEnum(["workspace", "clio"], {
26
+ description: "Code map source (default workspace).",
27
+ default: "workspace"
28
+ })
29
+ ),
24
30
  mode: StringEnum(["symbol", "path", "entries", "outline", "deps", "dependents", "wiki"], {
25
31
  description: "Lookup mode."
26
32
  }),
@@ -43,4 +49,4 @@ export {
43
49
  CODE_NAV_MAX_LIMIT,
44
50
  codeNavToolSurface
45
51
  };
46
- //# sourceMappingURL=chunk-ABLSQ6JX.js.map
52
+ //# sourceMappingURL=chunk-LJID3DYZ.js.map
@@ -5,7 +5,7 @@ import {
5
5
  settingsPath,
6
6
  updateSavedSettingsDocument,
7
7
  validateSettings
8
- } from "./chunk-EIMVLWB3.js";
8
+ } from "./chunk-34BHNEE3.js";
9
9
  import {
10
10
  require_dist
11
11
  } from "./chunk-APJ265NV.js";
@@ -226,4 +226,4 @@ export {
226
226
  updateLayeredSettings,
227
227
  settingsSourceFor
228
228
  };
229
- //# sourceMappingURL=chunk-VKRH2TCS.js.map
229
+ //# sourceMappingURL=chunk-M2DAX4F6.js.map
@@ -14,7 +14,7 @@ import {
14
14
  toolResultPayload,
15
15
  toolResultText,
16
16
  withoutThinkingBlocks
17
- } from "./chunk-TZSKNMZG.js";
17
+ } from "./chunk-GTUD2WMY.js";
18
18
  import {
19
19
  filterEntriesToActivePath
20
20
  } from "./chunk-W6GROXXM.js";
@@ -675,4 +675,4 @@ export {
675
675
  compactionCut,
676
676
  selectVisibleEntries
677
677
  };
678
- //# sourceMappingURL=chunk-6I5ILFOF.js.map
678
+ //# sourceMappingURL=chunk-M2WXEHER.js.map
@@ -22,9 +22,7 @@ var webFetchToolSurface = {
22
22
  timeout_ms: typebox_exports.Optional(typebox_exports.Number({ description: "Timeout ms (default 30000)." })),
23
23
  max_bytes: typebox_exports.Optional(typebox_exports.Number({ description: "Max bytes returned (default 600000)." })),
24
24
  format: typebox_exports.Optional(
25
- typebox_exports.String({
26
- description: "auto (default: HTML is cleaned to Markdown, other content passes through) or raw (no conversion)."
27
- })
25
+ typebox_exports.String({ description: "auto (default) converts HTML to Markdown; raw returns the body unconverted." })
28
26
  )
29
27
  }),
30
28
  baseActionClass: "read",
@@ -34,4 +32,4 @@ var webFetchToolSurface = {
34
32
  export {
35
33
  webFetchToolSurface
36
34
  };
37
- //# sourceMappingURL=chunk-YPI3QQCF.js.map
35
+ //# sourceMappingURL=chunk-MCEPRMZW.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  runVectorTool
4
- } from "./chunk-7OBGU7UB.js";
4
+ } from "./chunk-7BHIY2MW.js";
5
5
  import {
6
6
  PROJECT_VERIFIER_CATALOG_RELATIVE_PATH,
7
7
  loadProjectVerifierCatalog,
@@ -239,4 +239,4 @@ export {
239
239
  runProjectCheck,
240
240
  runScriptCheck
241
241
  };
242
- //# sourceMappingURL=chunk-N5UK64DP.js.map
242
+ //# sourceMappingURL=chunk-MCMZMDAC.js.map
@@ -1,16 +1,15 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- GUARDRAIL_ENV_VARS,
4
3
  resolveGuardrail
5
- } from "./chunk-NLFAQR7Z.js";
4
+ } from "./chunk-S66XZJOF.js";
6
5
  import {
7
6
  init_esm_shims
8
7
  } from "./chunk-3R73A4XB.js";
9
8
 
10
9
  // src/cli/internal-dispatch.ts
11
10
  init_esm_shims();
12
- function armInternalDispatchDeadline(dispatch, runId, label, env = process.env, maxTimeoutMs) {
13
- const configuredTimeoutMs = resolveGuardrail("internalDispatchTimeoutMs", env);
11
+ function armInternalDispatchDeadline(dispatch, runId, label, maxTimeoutMs) {
12
+ const configuredTimeoutMs = resolveGuardrail("internalDispatchTimeoutMs");
14
13
  const timeoutMs = maxTimeoutMs === void 0 ? configuredTimeoutMs : Math.min(configuredTimeoutMs, Math.max(1, maxTimeoutMs));
15
14
  const productCapped = timeoutMs < configuredTimeoutMs;
16
15
  let fired = false;
@@ -24,11 +23,11 @@ function armInternalDispatchDeadline(dispatch, runId, label, env = process.env,
24
23
  return {
25
24
  timedOut: () => fired,
26
25
  clear: () => clearTimeout(timer),
27
- message: () => productCapped ? `${label} exceeded its ${Math.round(timeoutMs / 1e3)}s latency ceiling and was aborted.` : `${label} timed out after ${Math.round(timeoutMs / 1e3)}s and was aborted. Raise guardrails.internalDispatchTimeoutMs (env ${GUARDRAIL_ENV_VARS.internalDispatchTimeoutMs}) for slower targets.`
26
+ message: () => productCapped ? `${label} exceeded its ${Math.round(timeoutMs / 1e3)}s latency ceiling and was aborted.` : `${label} timed out after ${Math.round(timeoutMs / 1e3)}s and was aborted. Raise fleet.limits.internalRunTimeoutMs for slower targets.`
28
27
  };
29
28
  }
30
29
 
31
30
  export {
32
31
  armInternalDispatchDeadline
33
32
  };
34
- //# sourceMappingURL=chunk-Y4CAGMM6.js.map
33
+ //# sourceMappingURL=chunk-MNJGS2IN.js.map
@@ -134,7 +134,7 @@ var CALL_TARGET_FIELDS = {
134
134
  grep: ["pattern", "path", "mode", "glob", "ignore_case", "literal", "context", "limit", "include_ignored"],
135
135
  find: ["pattern", "path", "order", "limit", "include_ignored"],
136
136
  ls: ["path", "limit"],
137
- code_nav: ["mode", "query", "limit"],
137
+ code_nav: ["source", "mode", "query", "limit"],
138
138
  context: ["scope", "query", "name", "limit", "ref", "include_tree"],
139
139
  credential_present: ["name", "source", "file"],
140
140
  write: ["path"],
@@ -252,4 +252,4 @@ export {
252
252
  describeCallAction,
253
253
  describeCallTarget
254
254
  };
255
- //# sourceMappingURL=chunk-TVHHYFHE.js.map
255
+ //# sourceMappingURL=chunk-NEDJ26B5.js.map