@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
@@ -0,0 +1,39 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ PANES_PRESET_IDS
4
+ } from "./chunk-35MSIRKH.js";
5
+ import {
6
+ typebox_exports
7
+ } from "./chunk-5B2AEOW5.js";
8
+ import {
9
+ ToolNames
10
+ } from "./chunk-K6BSR66V.js";
11
+ import {
12
+ StringEnum
13
+ } from "./chunk-VXMFAE2W.js";
14
+ import {
15
+ init_esm_shims
16
+ } from "./chunk-3R73A4XB.js";
17
+
18
+ // src/tools/panes-surface.ts
19
+ init_esm_shims();
20
+ var panesToolSurface = {
21
+ name: ToolNames.Panes,
22
+ description: "Manage the terminal panes Clio owns beside this session: show focuses a dispatched run's viewer pane, open starts a fixed utility preset (files, logs, or shell; never an arbitrary command) or focuses it when it is already open, close removes a Clio-created pane, list reports the inventory and the pane layer's health.",
23
+ parameters: typebox_exports.Object({
24
+ action: StringEnum(["show", "open", "close", "list"], { description: "Pane action." }),
25
+ target: typebox_exports.Optional(
26
+ typebox_exports.String({
27
+ description: 'show: an agent id or run id prefix, most recent match wins. close: a pane id, label, agent id, or "all".'
28
+ })
29
+ ),
30
+ preset: typebox_exports.Optional(StringEnum([...PANES_PRESET_IDS], { description: "open: which utility pane to start." }))
31
+ }),
32
+ baseActionClass: "read",
33
+ executionMode: "sequential"
34
+ };
35
+
36
+ export {
37
+ panesToolSurface
38
+ };
39
+ //# sourceMappingURL=chunk-2X4RYJTJ.js.map
@@ -9,10 +9,10 @@ import {
9
9
  detectInteropAgents,
10
10
  interopProposals,
11
11
  renderProposalEntry
12
- } from "./chunk-BDPT6GTK.js";
12
+ } from "./chunk-JWJGP5DQ.js";
13
13
  import {
14
14
  initializeClioHome
15
- } from "./chunk-7PWAODYW.js";
15
+ } from "./chunk-I7XBWTYH.js";
16
16
  import {
17
17
  createDelayedManualCodeInput,
18
18
  promptOAuthSelection
@@ -37,7 +37,7 @@ import {
37
37
  probeCapabilitiesForModel,
38
38
  readTargetModelSnapshot,
39
39
  recordTargetModelSnapshot
40
- } from "./chunk-UEDMSP56.js";
40
+ } from "./chunk-BYMNWQ7O.js";
41
41
  import {
42
42
  credentialsPresent
43
43
  } from "./chunk-72GZI5EV.js";
@@ -46,11 +46,11 @@ import {
46
46
  removeTargetFromSettings,
47
47
  settingsPath,
48
48
  updateSettings
49
- } from "./chunk-EIMVLWB3.js";
49
+ } from "./chunk-34BHNEE3.js";
50
50
  import {
51
51
  greetLmStudio,
52
52
  registerBuiltinRuntimes
53
- } from "./chunk-QKIFBZKT.js";
53
+ } from "./chunk-IMXMHHMQ.js";
54
54
  import {
55
55
  buildProviderSupportEntry,
56
56
  configuredTargetsForRuntime,
@@ -426,15 +426,12 @@ function parseSetupArgs(argv) {
426
426
  out.backgroundModel = need();
427
427
  break;
428
428
  case "--fleet-model":
429
- case "--worker-model":
430
429
  out.workerModel = need();
431
430
  break;
432
431
  case "--agent-profile":
433
- case "--worker-profile":
434
432
  out.workerProfile = need();
435
433
  break;
436
434
  case "--agent-profile-model":
437
- case "--worker-profile-model":
438
435
  out.workerProfileModel = need();
439
436
  break;
440
437
  case "--api-key-env":
@@ -464,7 +461,6 @@ function parseSetupArgs(argv) {
464
461
  out.setBackground = true;
465
462
  break;
466
463
  case "--set-fleet-default":
467
- case "--set-worker-default":
468
464
  out.setWorkerDefault = true;
469
465
  break;
470
466
  case "--context-window": {
@@ -1555,4 +1551,4 @@ export {
1555
1551
  runTargetRename,
1556
1552
  runConfigureCommand
1557
1553
  };
1558
- //# sourceMappingURL=chunk-Y45G3AXC.js.map
1554
+ //# sourceMappingURL=chunk-2Z2IKEXI.js.map
@@ -13,7 +13,7 @@ import {
13
13
  DEFAULT_SETTINGS,
14
14
  THEME_NAMED_COLORS,
15
15
  THINKING_LEVELS
16
- } from "./chunk-BWW4HLO4.js";
16
+ } from "./chunk-UXCU4E3T.js";
17
17
  import {
18
18
  withStateFileLockSync
19
19
  } from "./chunk-IKCO5N3L.js";
@@ -1278,7 +1278,11 @@ function validateSettings(raw) {
1278
1278
  if (!isPlainObject(raw.context)) issues.add("context", `expected a map, got ${describe(raw.context)}`);
1279
1279
  else {
1280
1280
  const context = raw.context;
1281
- issues.unknownKeys("context", context, ["workingSet", "compaction", "memory"]);
1281
+ issues.unknownKeys("context", context, ["toolResultMaxBytes", "workingSet", "compaction", "memory"]);
1282
+ if ("toolResultMaxBytes" in context) {
1283
+ const parsed = expectInteger(issues, "context.toolResultMaxBytes", context.toolResultMaxBytes, { min: 4096 });
1284
+ if (parsed !== void 0) settings.context.toolResultMaxBytes = parsed;
1285
+ }
1282
1286
  if ("workingSet" in context) {
1283
1287
  if (!isPlainObject(context.workingSet))
1284
1288
  issues.add("context.workingSet", `expected a map, got ${describe(context.workingSet)}`);
@@ -1839,4 +1843,4 @@ export {
1839
1843
  removeFleetProfileFromSettings,
1840
1844
  bindAgentProfileInSettings
1841
1845
  };
1842
- //# sourceMappingURL=chunk-EIMVLWB3.js.map
1846
+ //# sourceMappingURL=chunk-34BHNEE3.js.map
@@ -7,10 +7,10 @@ import {
7
7
  init_esm_shims();
8
8
  var PANES_PRESETS = [
9
9
  {
10
- id: "yazi",
10
+ id: "files",
11
11
  /** Probed through the toolchain resolution ladder before the pane is split. */
12
12
  binary: "yazi",
13
- summary: "file manager rooted at the workspace",
13
+ summary: "file view rooted at the workspace; picks land in the composer",
14
14
  /** Printed verbatim when the probe finds nothing. */
15
15
  installHint: "clio-coder tools install yazi"
16
16
  },
@@ -31,10 +31,15 @@ var PANES_PRESET_IDS = PANES_PRESETS.map((preset) => preset.id);
31
31
  function isPanesPresetId(value) {
32
32
  return PANES_PRESETS.some((preset) => preset.id === value);
33
33
  }
34
+ var PANES_PRESET_ALIASES = { yazi: "files" };
35
+ function resolvePanesPresetId(value) {
36
+ if (isPanesPresetId(value)) return value;
37
+ return PANES_PRESET_ALIASES[value] ?? null;
38
+ }
34
39
 
35
40
  export {
36
41
  PANES_PRESETS,
37
42
  PANES_PRESET_IDS,
38
- isPanesPresetId
43
+ resolvePanesPresetId
39
44
  };
40
- //# sourceMappingURL=chunk-GIZNH63R.js.map
45
+ //# sourceMappingURL=chunk-35MSIRKH.js.map
@@ -0,0 +1,314 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ PANES_PRESETS,
4
+ resolvePanesPresetId
5
+ } from "./chunk-35MSIRKH.js";
6
+ import {
7
+ newestRunEventJournalRunId,
8
+ runEventJournalPath,
9
+ runEventJournalRoot
10
+ } from "./chunk-VIA6RFQZ.js";
11
+ import {
12
+ resolveBinary
13
+ } from "./chunk-BMS5RKQY.js";
14
+ import {
15
+ init_esm_shims
16
+ } from "./chunk-3R73A4XB.js";
17
+
18
+ // src/interactive/panes-runtime.ts
19
+ init_esm_shims();
20
+
21
+ // src/interactive/pane-policy.ts
22
+ init_esm_shims();
23
+ var WATCHABLE_STATUSES = /* @__PURE__ */ new Set(["running", "stale", "cancelling", "enqueued", "retrying"]);
24
+ function paneWatchDecision(request) {
25
+ if (request.source === "dispatch") {
26
+ return { open: false, reason: "dispatches run headless; watch a run from the workers view or /panes show" };
27
+ }
28
+ if (!WATCHABLE_STATUSES.has(request.runStatus)) {
29
+ return {
30
+ open: false,
31
+ reason: `run is ${request.runStatus}; use \`clio-coder fleet view <runId>\` for the post-mortem`
32
+ };
33
+ }
34
+ return { open: true };
35
+ }
36
+
37
+ // src/interactive/panes-runtime.ts
38
+ function unavailableReason(mux) {
39
+ const reason = mux.detection().reason;
40
+ return `the pane layer is not available in this session: ${reason}. Start Clio inside a herdr session with \`clio-coder --with-panes\` to get panes`;
41
+ }
42
+ function matchOwnedPane(owned, target) {
43
+ const needle = target.trim().toLowerCase();
44
+ const newestFirst = [...owned].reverse();
45
+ return newestFirst.find((record) => record.ref.paneId.toLowerCase() === needle) ?? newestFirst.find((record) => record.label.toLowerCase().includes(needle)) ?? newestFirst.find((record) => record.purpose === needle) ?? null;
46
+ }
47
+ function inventory(records) {
48
+ return records.map((record) => ({
49
+ paneId: record.ref.paneId,
50
+ tabId: record.ref.tabId,
51
+ purpose: record.purpose,
52
+ label: record.label,
53
+ adopted: record.adopted === true
54
+ }));
55
+ }
56
+ function describePanesLeftBehind(mux) {
57
+ const dockIds = new Set(mux.docks().map((dock) => dock.paneId));
58
+ const left = mux.list().filter((record) => !dockIds.has(record.ref.paneId));
59
+ if (left.length === 0) return null;
60
+ const named = left.map((record) => `${record.label} (${record.ref.paneId})`).join(", ");
61
+ return `Clio left ${left.length} ${left.length === 1 ? "pane" : "panes"} open in herdr: ${named}. Utility panes stay when a session ends; the docks closed with it. Next time run \`/panes close all\` before \`/quit\` to take them with you, or close ${left.length === 1 ? "it" : "them"} now with \`herdr pane close <paneId>\`.`;
62
+ }
63
+ function createPanesRuntime(deps) {
64
+ const probe = deps.resolveBinaryPath ?? resolveBinary;
65
+ const journalRoot = deps.journalRoot ?? runEventJournalRoot;
66
+ let yaziController = null;
67
+ let watchController = null;
68
+ let nextPendingOpen = 0;
69
+ const pendingOpens = /* @__PURE__ */ new Map();
70
+ const beginPendingOpen = (label) => {
71
+ nextPendingOpen += 1;
72
+ const id = `pending:${nextPendingOpen}`;
73
+ pendingOpens.set(id, {
74
+ paneId: id,
75
+ tabId: "pending",
76
+ purpose: "utility",
77
+ label,
78
+ adopted: false,
79
+ pending: true
80
+ });
81
+ return id;
82
+ };
83
+ const closedYaziStatus = () => ({
84
+ mode: "closed",
85
+ paneId: null,
86
+ paneCwd: null,
87
+ lastLineAt: null,
88
+ droppedLines: 0
89
+ });
90
+ const matchRun = (target) => {
91
+ const needle = target.trim().toLowerCase();
92
+ if (needle.length === 0) return null;
93
+ const snapshot = deps.getDispatchSnapshot();
94
+ const live = [
95
+ ...snapshot.running.map((run) => ({ runId: run.runId, agentId: run.agentId, status: "running" })),
96
+ ...snapshot.retrying.map((run) => ({ runId: run.runId, agentId: run.agentId, status: "retrying" }))
97
+ ];
98
+ const newestFirst = [...live].reverse();
99
+ const byAgent = newestFirst.find((run) => run.agentId.toLowerCase().includes(needle));
100
+ if (byAgent) return byAgent;
101
+ return newestFirst.find((run) => run.runId.toLowerCase().startsWith(needle)) ?? null;
102
+ };
103
+ const presetArgv = (presetId, binaryPath) => {
104
+ if (presetId === "shell") return [binaryPath, "-l"];
105
+ if (presetId === "logs") {
106
+ const runId = (deps.newestJournalRunId ?? (() => newestRunEventJournalRunId(journalRoot())))();
107
+ if (runId === null) return null;
108
+ return [binaryPath, "-n", "200", "-F", runEventJournalPath(runId, journalRoot())];
109
+ }
110
+ return null;
111
+ };
112
+ const show = async (target, source) => {
113
+ if (!deps.mux.available()) return { status: "unavailable", reason: unavailableReason(deps.mux) };
114
+ const match = matchRun(target);
115
+ if (match === null) {
116
+ const snapshot = deps.getDispatchSnapshot();
117
+ const candidates = [
118
+ .../* @__PURE__ */ new Set([...snapshot.running.map((run) => run.agentId), ...snapshot.retrying.map((run) => run.agentId)])
119
+ ];
120
+ return { status: "not-found", target, candidates };
121
+ }
122
+ const decision = paneWatchDecision({ source, runStatus: match.status });
123
+ if (!decision.open) return { status: "refused", reason: decision.reason };
124
+ if (watchController === null) {
125
+ return { status: "unavailable", reason: "the watch pane is not wired in this session" };
126
+ }
127
+ const watched = await watchController.watch(match.runId);
128
+ if (watched.status !== "watching") return { status: "unavailable", reason: watched.reason };
129
+ return { status: "watching", runId: match.runId, agentId: match.agentId, opened: watched.opened };
130
+ };
131
+ const openFiles = async (once) => {
132
+ const preset = PANES_PRESETS[0];
133
+ if (!deps.getSettings().interface.panes.files.enabled) {
134
+ return { status: "refused", reason: "the files pane is disabled by interface.panes.files.enabled" };
135
+ }
136
+ if (!yaziController) {
137
+ return { status: "unavailable", reason: "the files pane return path is not ready" };
138
+ }
139
+ const pendingId = beginPendingOpen(preset.id);
140
+ try {
141
+ const result = await yaziController.open(once ? { once: true } : void 0);
142
+ if (result.status === "opened") {
143
+ return { status: "opened", paneId: result.paneId, existing: result.existing };
144
+ }
145
+ if (result.status === "missing-binary") {
146
+ return {
147
+ status: "missing-binary",
148
+ binary: result.binary,
149
+ installHint: preset.installHint,
150
+ // The engine's own resolution sentence, prefixed with the surface it
151
+ // serves: an operator who typed `/files` should not have to know the
152
+ // name of the program to read the answer.
153
+ detail: `the files pane engine is not available: ${result.detail}`
154
+ };
155
+ }
156
+ return {
157
+ status: result.status === "profile-error" ? "refused" : "unavailable",
158
+ reason: result.reason
159
+ };
160
+ } finally {
161
+ pendingOpens.delete(pendingId);
162
+ }
163
+ };
164
+ return {
165
+ async files(action) {
166
+ if (action === "close") {
167
+ await yaziController?.close();
168
+ return { status: "closed" };
169
+ }
170
+ if (action === "toggle" && yaziController?.isOpen()) {
171
+ await yaziController.close();
172
+ return { status: "closed" };
173
+ }
174
+ return openFiles(action === "pick");
175
+ },
176
+ status() {
177
+ const detection = deps.mux.detection();
178
+ const settings = deps.getSettings();
179
+ const panes = settings.interface.panes;
180
+ return {
181
+ mode: deps.mux.mode,
182
+ available: deps.mux.available(),
183
+ reason: detection.reason,
184
+ socketPath: detection.socketPath,
185
+ server: detection.server,
186
+ settings: {
187
+ enabled: panes.enabled,
188
+ notifications: panes.notifications,
189
+ layout: panes.layout,
190
+ journal: settings.fleet.history.journal,
191
+ yazi: { ...panes.files }
192
+ },
193
+ yazi: yaziController?.status() ?? closedYaziStatus(),
194
+ docks: deps.mux.docks().map((dock) => ({
195
+ slot: dock.slot,
196
+ paneId: dock.paneId,
197
+ targetShare: dock.targetShare
198
+ })),
199
+ panes: [...inventory(deps.mux.list()), ...pendingOpens.values()]
200
+ };
201
+ },
202
+ show(target) {
203
+ return show(target, "slash");
204
+ },
205
+ async open(request) {
206
+ const cwd = deps.getCwd();
207
+ if (request.preset !== void 0) {
208
+ const presetId = resolvePanesPresetId(request.preset);
209
+ const preset = presetId === null ? void 0 : PANES_PRESETS.find((entry) => entry.id === presetId);
210
+ if (!preset) {
211
+ return { status: "refused", reason: `unknown preset: ${request.preset}` };
212
+ }
213
+ if (preset.id === "files") {
214
+ const result = await openFiles(request.once === true);
215
+ if (result.status === "opened") {
216
+ return { status: "opened", label: preset.id, paneId: result.paneId, existing: result.existing };
217
+ }
218
+ if (result.status === "missing-binary") {
219
+ return { ...result, preset: preset.id };
220
+ }
221
+ return result;
222
+ }
223
+ if (!deps.mux.available()) return { status: "unavailable", reason: unavailableReason(deps.mux) };
224
+ const live = deps.mux.list().find((record) => record.purpose === "utility" && record.label === preset.id);
225
+ if (live) {
226
+ await deps.mux.unzoomSelf();
227
+ await deps.mux.focusPane(live.ref.paneId);
228
+ return { status: "opened", label: preset.id, paneId: live.ref.paneId, existing: true };
229
+ }
230
+ const binaryPath = probe(preset.binary);
231
+ if (binaryPath === null) {
232
+ return {
233
+ status: "missing-binary",
234
+ preset: preset.id,
235
+ binary: preset.binary,
236
+ installHint: preset.installHint,
237
+ detail: `${preset.binary} was not found (install with \`${preset.installHint}\`)`
238
+ };
239
+ }
240
+ const argv2 = presetArgv(preset.id, binaryPath);
241
+ if (argv2 === null) {
242
+ return {
243
+ status: "refused",
244
+ reason: `no dispatched run has written a journal under ${journalRoot()} yet; the logs pane follows the newest run once one starts`
245
+ };
246
+ }
247
+ const pendingId2 = beginPendingOpen(preset.id);
248
+ try {
249
+ const ref = await deps.mux.openUtilityPane({ argv: argv2, cwd, label: preset.id });
250
+ if (ref === null) return { status: "unavailable", reason: `pane host refused to open ${preset.id}` };
251
+ return { status: "opened", label: preset.id, paneId: ref.paneId };
252
+ } finally {
253
+ pendingOpens.delete(pendingId2);
254
+ }
255
+ }
256
+ if (!deps.mux.available()) return { status: "unavailable", reason: unavailableReason(deps.mux) };
257
+ const argv = request.argv ?? [];
258
+ if (argv.length === 0) return { status: "refused", reason: "nothing to run" };
259
+ const label = argv[0] ?? "pane";
260
+ const pendingId = beginPendingOpen(label);
261
+ try {
262
+ const ref = await deps.mux.openUtilityPane({ argv, cwd, label });
263
+ if (ref === null) return { status: "unavailable", reason: `pane host refused to open ${label}` };
264
+ return { status: "opened", label, paneId: ref.paneId };
265
+ } finally {
266
+ pendingOpens.delete(pendingId);
267
+ }
268
+ },
269
+ async zoom(target) {
270
+ if (!deps.mux.available()) return { status: "unavailable", reason: unavailableReason(deps.mux) };
271
+ const match = matchOwnedPane(deps.mux.list(), target.trim().length === 0 ? "watch" : target);
272
+ if (!match) return { status: "not-found", target: target.trim().length === 0 ? "watch" : target };
273
+ const changed = await deps.mux.zoomPane(match.ref.paneId, "toggle");
274
+ if (!changed) {
275
+ return { status: "unavailable", reason: "the pane host does not support zoom (protocol below pane.zoom)" };
276
+ }
277
+ return { status: "zoomed", paneId: match.ref.paneId, label: match.label };
278
+ },
279
+ async close(target) {
280
+ if (!deps.mux.available()) return { status: "unavailable", reason: unavailableReason(deps.mux) };
281
+ const owned = deps.mux.list();
282
+ if (target === "all") {
283
+ const labels = [];
284
+ for (const record of [...owned]) {
285
+ if (await deps.mux.closePane(record.ref.paneId)) labels.push(record.label);
286
+ }
287
+ return { status: "closed", closed: labels.length, labels };
288
+ }
289
+ const match = matchOwnedPane(owned, target);
290
+ if (!match) return { status: "not-found", target };
291
+ const closed = await deps.mux.closePane(match.ref.paneId);
292
+ return closed ? { status: "closed", closed: 1, labels: [match.label] } : { status: "not-found", target };
293
+ },
294
+ attachYazi(controller) {
295
+ yaziController = controller;
296
+ return () => {
297
+ if (yaziController === controller) yaziController = null;
298
+ };
299
+ },
300
+ attachWatch(controller) {
301
+ watchController = controller;
302
+ return () => {
303
+ if (watchController === controller) watchController = null;
304
+ };
305
+ }
306
+ };
307
+ }
308
+
309
+ export {
310
+ paneWatchDecision,
311
+ describePanesLeftBehind,
312
+ createPanesRuntime
313
+ };
314
+ //# sourceMappingURL=chunk-3EBYEESD.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-RKKLTLYB.js";
5
5
  import {
6
6
  enabledExtensionResourceRoots
7
- } from "./chunk-SUW5DORT.js";
7
+ } from "./chunk-HLAFFSEK.js";
8
8
  import {
9
9
  PATH_BOUNDARY_MAX_ENTRIES,
10
10
  normalizePathBoundary,
@@ -5073,4 +5073,4 @@ export {
5073
5073
  listFleetContracts,
5074
5074
  renderFleetPrompt
5075
5075
  };
5076
- //# sourceMappingURL=chunk-CTJ4RNAA.js.map
5076
+ //# sourceMappingURL=chunk-3F7VUY77.js.map
@@ -4,7 +4,7 @@ import {
4
4
  settingsPath,
5
5
  validateSettings,
6
6
  withSettingsLock
7
- } from "./chunk-EIMVLWB3.js";
7
+ } from "./chunk-34BHNEE3.js";
8
8
  import {
9
9
  require_dist
10
10
  } from "./chunk-APJ265NV.js";
@@ -305,4 +305,4 @@ export {
305
305
  migrateSettingsV1Document,
306
306
  settings_v2_default
307
307
  };
308
- //# sourceMappingURL=chunk-AP73CFDC.js.map
308
+ //# sourceMappingURL=chunk-3KIPBMUA.js.map