@iowarp/clio-coder 0.3.9 → 0.4.0

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 (416) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/NOTICE +33 -0
  3. package/README.md +7 -2
  4. package/dist/{acp-7LOELQFP.js → acp-G5WJBNCT.js} +13 -12
  5. package/dist/{agents-FIBG2SHA.js → agents-FMV2Q5G4.js} +39 -36
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-OI4LIH2I.js → auth-3IDSJEIK.js} +16 -15
  8. package/dist/{builtins-AD25UL3C.js → builtins-XCZWXSC7.js} +3 -3
  9. package/dist/{chunk-IFBNV6H6.js → chunk-2ANTL7MR.js} +3 -3
  10. package/dist/{chunk-56KB5IJP.js → chunk-2OQE55CK.js} +3 -3
  11. package/dist/{chunk-N3PBVRTZ.js → chunk-32KWKNSF.js} +9 -7
  12. package/dist/{chunk-VKBMFOYV.js → chunk-36EJLSQQ.js} +23 -27
  13. package/dist/{chunk-465CC7FK.js → chunk-3BT2XMV4.js} +16 -13
  14. package/dist/{chunk-NQ6UCCOD.js → chunk-3URVFKWK.js} +7 -7
  15. package/dist/{chunk-WIE7ZOSW.js → chunk-3XML7CDN.js} +2 -2
  16. package/dist/chunk-42FMPA75.js +101 -0
  17. package/dist/{chunk-A2NJGIB3.js → chunk-5LXZXPKX.js} +2 -2
  18. package/dist/{chunk-HAY4ZE2P.js → chunk-5PSMVOLM.js} +2 -2
  19. package/dist/{chunk-JEQQR47K.js → chunk-6DB53AJS.js} +168 -9
  20. package/dist/{chunk-KV2AOLDF.js → chunk-76ONBSIA.js} +5 -25
  21. package/dist/{chunk-FALJGAWU.js → chunk-7MCTRUCE.js} +2 -2
  22. package/dist/{chunk-5T7RBWN2.js → chunk-AB44T6BB.js} +5 -5
  23. package/dist/chunk-B7OBL7PK.js +1405 -0
  24. package/dist/{chunk-B5CSFE7B.js → chunk-BBVJUZHB.js} +2 -2
  25. package/dist/{chunk-EQ63NRB7.js → chunk-BBVYXMFO.js} +2 -2
  26. package/dist/{chunk-O6I4CIEU.js → chunk-BKFJHQCA.js} +6 -6
  27. package/dist/chunk-BKFM6EJV.js +462 -0
  28. package/dist/chunk-BMS5RKQY.js +27 -0
  29. package/dist/{chunk-MV2VUEJC.js → chunk-BPKCPIL7.js} +2 -2
  30. package/dist/{chunk-TEO2TLVN.js → chunk-BUMFYQFY.js} +964 -1120
  31. package/dist/{chunk-BNAZZHFG.js → chunk-BYP5D4HI.js} +1 -1
  32. package/dist/chunk-C2LTL2W6.js +2447 -0
  33. package/dist/{chunk-EBOC7MT3.js → chunk-CODPRO7Q.js} +8 -8
  34. package/dist/{chunk-HPCTNZM2.js → chunk-CTJ4RNAA.js} +4 -4
  35. package/dist/{chunk-ODFEOB4F.js → chunk-CY6FY24N.js} +26 -8
  36. package/dist/{chunk-MIX5N5AC.js → chunk-DQITNCXG.js} +394 -154
  37. package/dist/{chunk-S4COXYBG.js → chunk-DYJP44XW.js} +129 -106
  38. package/dist/{chunk-N5XKWMDW.js → chunk-F4CKPOEQ.js} +6 -6
  39. package/dist/{chunk-AMKHQW3C.js → chunk-FEFIFZTL.js} +3 -3
  40. package/dist/{chunk-MV3K5QF2.js → chunk-GCSMB2KY.js} +2 -2
  41. package/dist/{chunk-7C6RYZGQ.js → chunk-GKF55TAZ.js} +3 -3
  42. package/dist/{chunk-B5XRQOLB.js → chunk-GR5G2PVF.js} +9 -8
  43. package/dist/{chunk-XDOQXGFO.js → chunk-GXNLGKAB.js} +64 -8
  44. package/dist/chunk-HHV2GANA.js +88 -0
  45. package/dist/{chunk-774ILSRL.js → chunk-HI63TFOG.js} +4 -3
  46. package/dist/{chunk-R7LNVMCS.js → chunk-HJJTYUHX.js} +64 -72
  47. package/dist/{chunk-RKRLDWD3.js → chunk-HLW2MRKE.js} +1 -1
  48. package/dist/{chunk-CA42X6KT.js → chunk-HWHKMHUA.js} +6 -6
  49. package/dist/chunk-HZHHCK24.js +1631 -0
  50. package/dist/{chunk-HJB5IUKP.js → chunk-I5VEOC6I.js} +12 -12
  51. package/dist/chunk-IBEBSCYA.js +564 -0
  52. package/dist/chunk-IQ7KR472.js +362 -0
  53. package/dist/{chunk-4H6ULJ3H.js → chunk-J4W7KFM7.js} +921 -990
  54. package/dist/{chunk-4LJX2PUC.js → chunk-JDG2WCRO.js} +5 -5
  55. package/dist/{chunk-NZU6YDNV.js → chunk-K5C3NCBD.js} +4 -4
  56. package/dist/{chunk-CGKSTWHD.js → chunk-K6BSR66V.js} +2 -1
  57. package/dist/{chunk-NNNWO6F2.js → chunk-KFZI4NIL.js} +93 -3
  58. package/dist/chunk-KMVISBZR.js +132 -0
  59. package/dist/{chunk-BVDVID7E.js → chunk-LDQ2ZF2M.js} +2 -2
  60. package/dist/{chunk-OEDBCISO.js → chunk-LQ3DZAMX.js} +2 -2
  61. package/dist/{chunk-PZ4I4JE2.js → chunk-LY4S7GJC.js} +124 -116
  62. package/dist/{chunk-3DUR4WUA.js → chunk-MLKNTWH2.js} +19 -19
  63. package/dist/chunk-NEKRRTYW.js +56 -0
  64. package/dist/{chunk-5DQRIYDZ.js → chunk-NHCZP4K7.js} +2 -2
  65. package/dist/chunk-NHLBIGRH.js +1506 -0
  66. package/dist/chunk-NQQH3YT7.js +302 -0
  67. package/dist/chunk-NYS75XW5.js +15 -0
  68. package/dist/{chunk-TD7UE2L5.js → chunk-O4XIVISU.js} +7 -7
  69. package/dist/{chunk-WXCJ7VME.js → chunk-O6TL7WWY.js} +6 -6
  70. package/dist/chunk-OQBA45DZ.js +97 -0
  71. package/dist/{chunk-LU7P4LHA.js → chunk-P3FOHJT4.js} +2 -2
  72. package/dist/chunk-PMZCIOCJ.js +25 -0
  73. package/dist/{chunk-I4HZDVNP.js → chunk-PQEFIJ36.js} +2 -2
  74. package/dist/{chunk-HKO36JWF.js → chunk-QBJA7R7N.js} +31 -3
  75. package/dist/chunk-QDC3K2U3.js +262 -0
  76. package/dist/{chunk-5HFBWUMU.js → chunk-QLFS5GO2.js} +4 -4
  77. package/dist/{chunk-GAYUJ7LE.js → chunk-QLL7ILRG.js} +41 -32
  78. package/dist/{chunk-LXPJXFM5.js → chunk-QREDIESB.js} +7 -7
  79. package/dist/chunk-QSNYB6ZV.js +195 -0
  80. package/dist/chunk-R346GLFC.js +31 -0
  81. package/dist/{chunk-VPTUJU4P.js → chunk-SJ5ZKQ4S.js} +2 -2
  82. package/dist/{chunk-QQ7EKM72.js → chunk-SP2RXXYO.js} +6 -54
  83. package/dist/chunk-SUCTJL45.js +45 -0
  84. package/dist/{chunk-5QKCQQ3E.js → chunk-SUW5DORT.js} +2 -2
  85. package/dist/chunk-T56WDKA5.js +183 -0
  86. package/dist/chunk-TVHHYFHE.js +255 -0
  87. package/dist/{chunk-IHKBWSXF.js → chunk-TZ3SGWZZ.js} +2 -2
  88. package/dist/{chunk-ECUO3KDP.js → chunk-U77AMWDL.js} +47 -7
  89. package/dist/{chunk-3UUY7R3Z.js → chunk-ULC6OTWO.js} +7 -7
  90. package/dist/{chunk-AEYBF3TB.js → chunk-UM7N4G5A.js} +2 -2
  91. package/dist/{chunk-3V5AYSEQ.js → chunk-UXMFQ54G.js} +43 -36
  92. package/dist/{chunk-YW7UVM5V.js → chunk-V5DHCITQ.js} +34 -1
  93. package/dist/{chunk-47CMYGET.js → chunk-VAZSBTKF.js} +2 -2
  94. package/dist/{chunk-3MRC2YSQ.js → chunk-VEO4AP2K.js} +2 -2
  95. package/dist/{chunk-PNY46YEY.js → chunk-VFA6GDY5.js} +47 -3
  96. package/dist/chunk-VO67MWHC.js +75 -0
  97. package/dist/{chunk-XK56QHLX.js → chunk-VPKWYKEY.js} +19 -5
  98. package/dist/{chunk-AD7Y7STJ.js → chunk-VYMXRQI6.js} +36 -22
  99. package/dist/{chunk-T3Z6VAAF.js → chunk-W5VSYASO.js} +19 -17
  100. package/dist/{chunk-5PVQ4SRS.js → chunk-WZR7K7ZX.js} +7 -123
  101. package/dist/{chunk-DG4M6ZUE.js → chunk-X3YGUTOB.js} +4 -4
  102. package/dist/chunk-X75E3D2N.js +686 -0
  103. package/dist/{chunk-P3JGPQFL.js → chunk-YDFRH54B.js} +4 -4
  104. package/dist/chunk-YJX4SHTD.js +40 -0
  105. package/dist/{chunk-ZI647VB5.js → chunk-YPI3QQCF.js} +2 -2
  106. package/dist/{chunk-YSEHGPCT.js → chunk-Z2RR6MAK.js} +3 -3
  107. package/dist/{chunk-HCBCAYZU.js → chunk-Z4TXYIEG.js} +5 -5
  108. package/dist/cli/index.js +47 -36
  109. package/dist/{clio-LT5V7SSZ.js → clio-2JXHBBY5.js} +7 -7
  110. package/dist/{code-nav-LMW275PA.js → code-nav-3YYRMYNF.js} +6 -6
  111. package/dist/{compile-cache-CVJMMODC.js → compile-cache-7FPE6PS3.js} +3 -3
  112. package/dist/{components-ZFA3SAER.js → components-RYZV4JGP.js} +5 -5
  113. package/dist/{config-RXS5T3JT.js → config-QZPCMYSO.js} +58 -50
  114. package/dist/{configure-2WYWSCSD.js → configure-TEGEBYCA.js} +21 -19
  115. package/dist/{context-I3BTOTCS.js → context-AV7OEZ4D.js} +11 -11
  116. package/dist/{context-MVOORGMF.js → context-E6H5RNMC.js} +49 -41
  117. package/dist/{context-PALKKQYL.js → context-GSXUE4CT.js} +25 -23
  118. package/dist/{context-clear-N2WOYZ2K.js → context-clear-SHIBYK6T.js} +48 -40
  119. package/dist/{context-working-set-MIEVECVZ.js → context-working-set-5ZGKPGZQ.js} +11 -10
  120. package/dist/{dispatch-runner-VVA4SRRH.js → dispatch-runner-EFMJT4LD.js} +88 -60
  121. package/dist/{docs-7LQ23DLM.js → docs-23KQS3XK.js} +5 -5
  122. package/dist/doctor-QOA5FNY5.js +313 -0
  123. package/dist/{eval-IJ5VEZDJ.js → eval-TFBYQH4H.js} +66 -64
  124. package/dist/eval-inventory-SXH7PDKX.js +316 -0
  125. package/dist/{evidence-L5APPXNV.js → evidence-ERGESKGN.js} +198 -44
  126. package/dist/{evolve-RGNKFJ52.js → evolve-VDXTSYCJ.js} +46 -38
  127. package/dist/{extensions-7WYWUX5A.js → extensions-7BGBHN57.js} +6 -6
  128. package/dist/{fleet-6CNVBZZP.js → fleet-2RRVDF2V.js} +189 -101
  129. package/dist/{fleet-commands-L2SXSYEI.js → fleet-commands-VJ726XIA.js} +10 -10
  130. package/dist/fleet-decisions-EPAPM3XJ.js +157 -0
  131. package/dist/{fleet-graph-2J3OOIPO.js → fleet-graph-JF5QOATM.js} +16 -15
  132. package/dist/fleet-inspect-VLY4S7QM.js +442 -0
  133. package/dist/{fleet-preflight-CZRJ4JP5.js → fleet-preflight-AIZUEJOY.js} +6 -5
  134. package/dist/{fleet-validate-C5RI6DP7.js → fleet-validate-AJRPDMDV.js} +20 -18
  135. package/dist/fleet-verify-JFEL2L3H.js +175 -0
  136. package/dist/fleet-view-ZCON35AG.js +102 -0
  137. package/dist/{init-VBN2ACVA.js → init-DN2WWLFE.js} +64 -56
  138. package/dist/install-XGLBQY5E.js +13 -0
  139. package/dist/interop-OZBKXAYL.js +114 -0
  140. package/dist/{library-JHGUMLY2.js → library-YWZG7IMW.js} +19 -18
  141. package/dist/{memory-K4OQIYWG.js → memory-I4C4HMLW.js} +48 -40
  142. package/dist/{models-2NCZUWDD.js → models-CEYXJBO6.js} +30 -28
  143. package/dist/{monitor-MMVTJABD.js → monitor-NZ6GCI3P.js} +53 -47
  144. package/dist/{orchestrator-ZKBPCHW6.js → orchestrator-GCGQ4N5I.js} +6311 -7145
  145. package/dist/panes-HMABYVO4.js +58 -0
  146. package/dist/panes-KY6W3V2E.js +103 -0
  147. package/dist/{paths-DBXMZMDU.js → paths-II4K7DNR.js} +5 -5
  148. package/dist/{reset-DD5JGOY3.js → reset-DQ6FGCSH.js} +13 -11
  149. package/dist/resources-BB3MVJMD.js +111 -0
  150. package/dist/{run-QEGNX7FL.js → run-H2GQDUER.js} +113 -82
  151. package/dist/{share-JKD3BQMW.js → share-GTJN6A5O.js} +18 -17
  152. package/dist/{skills-LMQIKDOZ.js → skills-L55TEW6R.js} +31 -24
  153. package/dist/{skills-eval-I7X2774U.js → skills-eval-XVXPH2JI.js} +61 -52
  154. package/dist/skills-inventory-S4MXPJFV.js +126 -0
  155. package/dist/slash-commands-ZSGASKJC.js +77 -0
  156. package/dist/{steer-CF5TDANS.js → steer-RZGSCY4R.js} +3 -3
  157. package/dist/{support-I7LOJLIF.js → support-PKEUNNQL.js} +4 -4
  158. package/dist/{targets-RUSR6B5Z.js → targets-NCPZ644J.js} +31 -29
  159. package/dist/{terminal-lease-QYVORFR4.js → terminal-lease-44SV3YCN.js} +4 -4
  160. package/dist/tools-DAF3DI3C.js +27 -0
  161. package/dist/{trace-ODOQIVIW.js → trace-FYVW2MQA.js} +149 -7
  162. package/dist/tui-primitives-2AKXQNZK.js +13 -0
  163. package/dist/{uninstall-ZJF5H5ZN.js → uninstall-DW2PNOIC.js} +5 -5
  164. package/dist/{upgrade-XANW3FXB.js → upgrade-3XPP6OQL.js} +26 -24
  165. package/dist/{usage-4H7ZRXQT.js → usage-3NLHGTU2.js} +57 -49
  166. package/dist/{verifiers-UZXNBZEB.js → verifiers-SSQONKRT.js} +171 -12
  167. package/dist/{verify-BVKWTNDL.js → verify-3U6J7FZI.js} +9 -9
  168. package/dist/{web-fetch-2YHJ3KTG.js → web-fetch-S7RR6GZ7.js} +3 -3
  169. package/dist/{wiki-generate-MY7WV2QI.js → wiki-generate-CEHYGPGQ.js} +67 -59
  170. package/dist/with-panes-MKB46MPQ.js +782 -0
  171. package/dist/worker/entry.js +101 -66
  172. package/docs/README.md +3 -2
  173. package/docs/acp.md +24 -3
  174. package/docs/alcf-provider.md +1 -1
  175. package/docs/architecture.md +2 -2
  176. package/docs/artifact-versions.md +4 -1
  177. package/docs/built-in-agents.md +1 -1
  178. package/docs/capacity-and-scheduling.md +43 -5
  179. package/docs/commands-and-modes.md +31 -2
  180. package/docs/configuration-and-targets.md +40 -10
  181. package/docs/context-engine.md +1 -1
  182. package/docs/development-pipeline.md +19 -0
  183. package/docs/dispatch-typed-intent.md +385 -0
  184. package/docs/documentation-coverage.md +2 -2
  185. package/docs/documentation-guide.md +1 -1
  186. package/docs/environment-variables.md +1 -0
  187. package/docs/eval-runner.md +1 -1
  188. package/docs/evals-internal.md +1 -1
  189. package/docs/evidence-and-memory.md +2 -2
  190. package/docs/evolution.md +1 -1
  191. package/docs/exit-codes-and-output.md +1 -1
  192. package/docs/extensions-and-sharing.md +25 -1
  193. package/docs/fleet-dispatch.md +22 -1
  194. package/docs/installation-and-lifecycle.md +15 -2
  195. package/docs/middleware-and-components.md +1 -1
  196. package/docs/model-catalog.md +10 -1
  197. package/docs/observability.md +3 -3
  198. package/docs/proactive-memory.md +1 -1
  199. package/docs/prompt-envelope-and-tools.md +1 -1
  200. package/docs/provider-adapter-cookbook.md +1 -1
  201. package/docs/safety-model.md +2 -2
  202. package/docs/scientific-validation.md +3 -3
  203. package/docs/session-lifecycle.md +1 -1
  204. package/docs/skills-marketplace.md +1 -1
  205. package/docs/tool-usage.md +18 -8
  206. package/docs/trace-store.md +1 -1
  207. package/docs/troubleshooting.md +1 -1
  208. package/docs/tui-design.md +1 -1
  209. package/docs/worker-dispatch-mechanics.md +1 -1
  210. package/package.json +4 -2
  211. package/src/cli/acp.ts +6 -2
  212. package/src/cli/argv.ts +25 -0
  213. package/src/cli/configure.ts +23 -21
  214. package/src/cli/doctor-panes.ts +124 -0
  215. package/src/cli/doctor-toolchain.ts +57 -0
  216. package/src/cli/doctor.ts +20 -1
  217. package/src/cli/eval-inventory.ts +436 -0
  218. package/src/cli/eval.ts +13 -0
  219. package/src/cli/evidence-detail.ts +88 -0
  220. package/src/cli/evidence-inventory.ts +183 -0
  221. package/src/cli/evidence.ts +30 -5
  222. package/src/cli/fleet-decisions.ts +69 -0
  223. package/src/cli/fleet-inspect.ts +334 -0
  224. package/src/cli/fleet-verify.ts +133 -0
  225. package/src/cli/fleet-view.ts +810 -0
  226. package/src/cli/fleet.ts +148 -37
  227. package/src/cli/index.ts +14 -2
  228. package/src/cli/interop-inspect.ts +128 -0
  229. package/src/cli/interop.ts +34 -0
  230. package/src/cli/panes.ts +35 -0
  231. package/src/cli/reset.ts +5 -2
  232. package/src/cli/run.ts +58 -0
  233. package/src/cli/skills-inventory.ts +185 -0
  234. package/src/cli/skills.ts +16 -13
  235. package/src/cli/tools.ts +321 -0
  236. package/src/cli/trace-inspect.ts +252 -0
  237. package/src/cli/trace.ts +23 -2
  238. package/src/cli/verifiers-inspect.ts +347 -0
  239. package/src/cli/verifiers.ts +9 -0
  240. package/src/core/bus-events.ts +4 -0
  241. package/src/core/config.ts +49 -0
  242. package/src/core/defaults.ts +93 -7
  243. package/src/core/response-schema.ts +44 -4
  244. package/src/core/theme-token-hex.ts +43 -0
  245. package/src/core/tool-names.ts +2 -1
  246. package/src/core/xdg.ts +1 -1
  247. package/src/domains/agents/fleets/build-review.md +0 -3
  248. package/src/domains/agents/fleets/build-test.md +0 -3
  249. package/src/domains/agents/result-contract-filesystem.ts +32 -0
  250. package/src/domains/agents/result-contract.ts +164 -35
  251. package/src/domains/config/classify.ts +3 -0
  252. package/src/domains/dispatch/admission-error.ts +9 -0
  253. package/src/domains/dispatch/admission.ts +22 -21
  254. package/src/domains/dispatch/capacity-lease.ts +21 -1
  255. package/src/domains/dispatch/council-topology.ts +398 -0
  256. package/src/domains/dispatch/extension.ts +222 -50
  257. package/src/domains/dispatch/fleet-node-prompt.ts +62 -0
  258. package/src/domains/dispatch/fleet-plan.ts +7 -2
  259. package/src/domains/dispatch/fleet-run.ts +64 -1
  260. package/src/domains/dispatch/gate-decisions.ts +11 -1
  261. package/src/domains/dispatch/gate-role-prompts.ts +9 -0
  262. package/src/domains/dispatch/gate-topology.ts +289 -0
  263. package/src/domains/dispatch/index.ts +19 -0
  264. package/src/domains/dispatch/intent-compatibility.ts +330 -0
  265. package/src/domains/dispatch/intent.ts +85 -1
  266. package/src/domains/dispatch/reservation-store.ts +24 -4
  267. package/src/domains/dispatch/run-event-journal-bridge.ts +149 -0
  268. package/src/domains/dispatch/run-event-journal.ts +598 -0
  269. package/src/domains/dispatch/state.ts +45 -1
  270. package/src/domains/dispatch/types.ts +13 -0
  271. package/src/domains/dispatch/validation.ts +33 -8
  272. package/src/domains/eval/compare/compare.ts +3 -16
  273. package/src/domains/eval/inventory.ts +113 -0
  274. package/src/domains/eval/schema/serving.ts +31 -0
  275. package/src/domains/evidence/store.ts +6 -0
  276. package/src/domains/memory/index.ts +0 -1
  277. package/src/domains/memory/task-memory-policy.ts +6 -10
  278. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  279. package/src/domains/middleware/memory-intervention.ts +33 -21
  280. package/src/domains/mux/contract.ts +434 -0
  281. package/src/domains/mux/detect.ts +158 -0
  282. package/src/domains/mux/extension.ts +47 -0
  283. package/src/domains/mux/index.ts +96 -0
  284. package/src/domains/mux/manifest.ts +6 -0
  285. package/src/domains/mux/operations.ts +164 -0
  286. package/src/domains/mux/pane-registry.ts +90 -0
  287. package/src/domains/mux/protocol.ts +49 -0
  288. package/src/domains/mux/socket-client.ts +816 -0
  289. package/src/domains/mux/types.ts +222 -0
  290. package/src/domains/mux/viewer-command.ts +59 -0
  291. package/src/domains/mux/yazi/assets/init.lua +2 -0
  292. package/src/domains/mux/yazi/assets/plugins/git.yazi/LICENSE +21 -0
  293. package/src/domains/mux/yazi/assets/plugins/git.yazi/README.md +78 -0
  294. package/src/domains/mux/yazi/assets/plugins/git.yazi/main.lua +255 -0
  295. package/src/domains/mux/yazi/assets/plugins/git.yazi/types.lua +12 -0
  296. package/src/domains/mux/yazi/assets/yazi.toml +17 -0
  297. package/src/domains/mux/yazi/event-stream.ts +180 -0
  298. package/src/domains/mux/yazi/profile.ts +299 -0
  299. package/src/domains/mux/yazi/session.ts +228 -0
  300. package/src/domains/mux/yazi/theme.ts +30 -0
  301. package/src/domains/observability/cost.ts +21 -0
  302. package/src/domains/observability/index.ts +2 -0
  303. package/src/domains/observability/trace-store.ts +42 -0
  304. package/src/domains/providers/endpoint-capacity.ts +154 -22
  305. package/src/domains/providers/endpoint-slots-store.ts +189 -0
  306. package/src/domains/providers/extension.ts +20 -3
  307. package/src/domains/providers/index.ts +22 -0
  308. package/src/domains/providers/model-runtime-capabilities.ts +32 -0
  309. package/src/domains/providers/runtimes/boot-manifest.ts +1 -0
  310. package/src/domains/providers/runtimes/builtins.ts +2 -0
  311. package/src/domains/providers/runtimes/protocol/litellm.ts +375 -0
  312. package/src/domains/providers/support.ts +1 -0
  313. package/src/domains/providers/target-model-cache.ts +124 -0
  314. package/src/domains/resources/index.ts +3 -0
  315. package/src/domains/resources/skills/loader.ts +33 -0
  316. package/src/domains/safety/action-classifier.ts +6 -0
  317. package/src/domains/toolchain/archive.ts +175 -0
  318. package/src/domains/toolchain/contract.ts +28 -0
  319. package/src/domains/toolchain/extension.ts +47 -0
  320. package/src/domains/toolchain/index.ts +39 -0
  321. package/src/domains/toolchain/install.ts +327 -0
  322. package/src/domains/toolchain/manifest.ts +8 -0
  323. package/src/domains/toolchain/paths.ts +34 -0
  324. package/src/domains/toolchain/registry.ts +265 -0
  325. package/src/domains/toolchain/remove.ts +218 -0
  326. package/src/domains/toolchain/resolve.ts +182 -0
  327. package/src/domains/toolchain/types.ts +113 -0
  328. package/src/domains/toolchain/version.ts +88 -0
  329. package/src/engine/acp/server.ts +413 -70
  330. package/src/engine/acp/types.ts +19 -1
  331. package/src/engine/claude/sdk-module.ts +98 -0
  332. package/src/engine/claude/sdk-runtime.ts +19 -11
  333. package/src/engine/tui-primitives.ts +21 -0
  334. package/src/engine/tui.ts +1 -0
  335. package/src/engine/worker-runtime.ts +2 -13
  336. package/src/entry/boot-options.ts +2 -0
  337. package/src/entry/orchestrator.ts +103 -5
  338. package/src/entry/panes-activation.ts +31 -0
  339. package/src/entry/with-panes.ts +20 -0
  340. package/src/interactive/context-overlay.ts +1 -0
  341. package/src/interactive/cost-overlay.ts +2 -0
  342. package/src/interactive/council-grid.ts +1 -3
  343. package/src/interactive/council.ts +11 -0
  344. package/src/interactive/dispatch-board.ts +26 -16
  345. package/src/interactive/interactive-application.ts +153 -6
  346. package/src/interactive/interactive-input-runtime.ts +7 -0
  347. package/src/interactive/interactive-slash-runtime.ts +36 -6
  348. package/src/interactive/memory-overlay.ts +1 -0
  349. package/src/interactive/modal-marker.ts +170 -0
  350. package/src/interactive/mux-bridge.ts +214 -0
  351. package/src/interactive/overlay-frame.ts +58 -2
  352. package/src/interactive/overlay-general-openers.ts +1 -0
  353. package/src/interactive/overlay-key-routing.ts +14 -3
  354. package/src/interactive/overlay-lifecycle.ts +19 -3
  355. package/src/interactive/overlay-model-selectors.ts +40 -3
  356. package/src/interactive/overlay-permission-lifecycle.ts +90 -22
  357. package/src/interactive/overlay-transitions.ts +18 -4
  358. package/src/interactive/overlays/agents.ts +1 -0
  359. package/src/interactive/overlays/ask-user.ts +136 -30
  360. package/src/interactive/overlays/auth-dialog.ts +1 -0
  361. package/src/interactive/overlays/context-reset.ts +1 -0
  362. package/src/interactive/overlays/cwd-fallback.ts +1 -0
  363. package/src/interactive/overlays/decisions.ts +11 -11
  364. package/src/interactive/overlays/extensions.ts +1 -0
  365. package/src/interactive/overlays/fleet-run-approval.ts +1 -0
  366. package/src/interactive/overlays/handoff-review.ts +1 -0
  367. package/src/interactive/overlays/help-reference.ts +2 -0
  368. package/src/interactive/overlays/interop.ts +1 -0
  369. package/src/interactive/overlays/library-install-confirm.ts +1 -0
  370. package/src/interactive/overlays/library-tabs.ts +28 -0
  371. package/src/interactive/overlays/list-overlay.ts +10 -1
  372. package/src/interactive/overlays/message-picker.ts +1 -0
  373. package/src/interactive/overlays/model-scope.ts +86 -0
  374. package/src/interactive/overlays/model-selector.ts +1 -0
  375. package/src/interactive/overlays/prompts.ts +1 -0
  376. package/src/interactive/overlays/session-selector.ts +1 -0
  377. package/src/interactive/overlays/settings-sections.ts +30 -0
  378. package/src/interactive/overlays/settings.ts +579 -44
  379. package/src/interactive/overlays/side-question.ts +1 -0
  380. package/src/interactive/overlays/skills-hub.ts +3 -11
  381. package/src/interactive/overlays/tree-selector.ts +1 -0
  382. package/src/interactive/pane-policy.ts +46 -0
  383. package/src/interactive/panes-runtime.ts +292 -0
  384. package/src/interactive/renderers/compaction-summary.ts +29 -0
  385. package/src/interactive/renderers/worker-entry.ts +122 -14
  386. package/src/interactive/slash-commands.ts +251 -15
  387. package/src/interactive/tasks-overlay.ts +1 -0
  388. package/src/interactive/theme/tokens.ts +3 -14
  389. package/src/interactive/turn-context.ts +47 -2
  390. package/src/interactive/view/artifacts.ts +109 -1
  391. package/src/interactive/view/view-overlay.ts +1 -0
  392. package/src/interactive/watch-pane.ts +152 -0
  393. package/src/interactive/worker-progress.ts +7 -1
  394. package/src/interactive/worker-receipts.ts +19 -1
  395. package/src/interactive/worker-stream.ts +5 -0
  396. package/src/interactive/yazi-bridge.ts +444 -0
  397. package/src/tools/bootstrap.ts +26 -2
  398. package/src/tools/builtin-tool-catalog.ts +15 -0
  399. package/src/tools/compete-worktrees.ts +83 -2
  400. package/src/tools/core-bootstrap.ts +2 -1
  401. package/src/tools/dispatch-admission.ts +14 -3
  402. package/src/tools/dispatch-arguments.ts +20 -20
  403. package/src/tools/dispatch-run-events.ts +134 -19
  404. package/src/tools/dispatch-runner.ts +29 -7
  405. package/src/tools/dispatch-types.ts +15 -3
  406. package/src/tools/dispatch.ts +1 -1
  407. package/src/tools/executables.ts +17 -14
  408. package/src/tools/observation.ts +54 -4
  409. package/src/tools/panes-surface.ts +38 -0
  410. package/src/tools/panes.ts +112 -0
  411. package/src/tools/policy.ts +10 -1
  412. package/src/tools/presentation.ts +1 -0
  413. package/dist/chunk-D73KXYPF.js +0 -37
  414. package/dist/chunk-MLOK6ZOS.js +0 -2888
  415. package/dist/chunk-YKOFT37S.js +0 -279
  416. package/dist/doctor-TWBWFK5V.js +0 -165
@@ -0,0 +1,262 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ clioDataDir,
4
+ resolveClioDirs
5
+ } from "./chunk-BYP5D4HI.js";
6
+ import {
7
+ init_esm_shims
8
+ } from "./chunk-3R73A4XB.js";
9
+
10
+ // src/domains/toolchain/registry.ts
11
+ init_esm_shims();
12
+ var PINNED_TOOLS = [
13
+ {
14
+ id: "herdr",
15
+ version: "0.8.2",
16
+ summary: "terminal multiplexer with an agent-aware socket API; powers Clio panes",
17
+ homepage: "https://herdr.dev",
18
+ license: "Apache-2.0",
19
+ binaries: ["herdr"],
20
+ primaryBinary: "herdr",
21
+ // Lowered from the pin on evidence, which is the bar this file sets for
22
+ // moving a floor. `herdr api schema --json` was read from 0.7.5
23
+ // (protocol 17) and 0.8.2 (protocol 20): every method the mux domain
24
+ // sends exists in both, and the only two 0.8.2 adds, `workspace.move_block`
25
+ // and `workspace.reordered`, are ones Clio never sends. The two methods
26
+ // that are not universal are already gated at runtime by protocol number
27
+ // in `src/domains/mux/protocol.ts`, whose own floor is 17, so an operator's
28
+ // 0.7.5 takes the documented fallback rather than failing. 0.7.5 is the
29
+ // oldest release actually checked, not the oldest that might work.
30
+ minimumVersion: "0.7.5",
31
+ versionArgs: ["--version"],
32
+ downloads: {
33
+ "linux-x64": {
34
+ url: "https://github.com/herdrdev/herdr/releases/download/v0.8.2/herdr-linux-x86_64",
35
+ sha256: "976150a14d490c94b243ea2e1a7eb2dfb67f12e36b182db90936f6728e6aecf4",
36
+ archive: "raw",
37
+ binaryMembers: { herdr: "" },
38
+ documentMembers: []
39
+ },
40
+ "linux-arm64": {
41
+ url: "https://github.com/herdrdev/herdr/releases/download/v0.8.2/herdr-linux-aarch64",
42
+ sha256: "f55610658e1c2e0d2aaef730b4b2ab885f7f8ba00285ab372bfb14f2e3d5b40d",
43
+ archive: "raw",
44
+ binaryMembers: { herdr: "" },
45
+ documentMembers: []
46
+ },
47
+ "darwin-x64": {
48
+ url: "https://github.com/herdrdev/herdr/releases/download/v0.8.2/herdr-macos-x86_64",
49
+ sha256: "ab50262c8190cd7aa9056d249d255c08c328c3e8716de9cfa29db4f131b8e2c1",
50
+ archive: "raw",
51
+ binaryMembers: { herdr: "" },
52
+ documentMembers: []
53
+ },
54
+ "darwin-arm64": {
55
+ url: "https://github.com/herdrdev/herdr/releases/download/v0.8.2/herdr-macos-aarch64",
56
+ sha256: "a5d4f4d504d8b309c91f811050559300faba31258425f53c50852fc96f6ae574",
57
+ archive: "raw",
58
+ binaryMembers: { herdr: "" },
59
+ documentMembers: []
60
+ }
61
+ },
62
+ // No `win32-x64` entry, and not for want of an asset. herdr publishes
63
+ // `herdr-windows-x86_64.zip` for this tag and it was downloaded and read:
64
+ // alongside `herdr.exe` it carries a ConPTY runtime, `conpty/conpty.dll`
65
+ // and `conpty/x64/OpenConsole.exe`, that has to sit in a subdirectory
66
+ // beside the executable. The installer places every declared member flat
67
+ // under its basename, so declaring this asset would install a `herdr.exe`
68
+ // with its runtime scattered next to it, which is a broken install that
69
+ // checksums and unpacks cleanly. Windows herdr waits on the installer
70
+ // learning to preserve a member's relative path.
71
+ //
72
+ // The release asset is a bare executable, so the Apache-2.0 text comes
73
+ // from the repository at the pinned tag.
74
+ documents: [
75
+ {
76
+ name: "LICENSE",
77
+ url: "https://raw.githubusercontent.com/herdrdev/herdr/v0.8.2/LICENSE",
78
+ sha256: "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4"
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ id: "yazi",
84
+ version: "26.8.15",
85
+ summary: "terminal file manager; the file-picker pane preset",
86
+ homepage: "https://yazi-rs.github.io",
87
+ license: "MIT",
88
+ binaries: ["yazi", "ya"],
89
+ primaryBinary: "yazi",
90
+ // Stays at the pin, now for a measured reason rather than caution. On
91
+ // 26.1.22 the one command Clio sends, `ya emit-to <receiver> cd <path>`,
92
+ // has the same signature it has at the pin. What was never exercised
93
+ // there is the rest of the surface: the managed profile Clio generates
94
+ // (`yazi.toml`, `keymap.toml`, `init.lua`) and the DDS payload shapes a
95
+ // pick comes back in. A profile schema mismatch degrades quietly into a
96
+ // file manager that opens and does the wrong thing, which is worse than
97
+ // vendoring a second copy. Lower this once a pick round trip has been
98
+ // driven end to end on the older release.
99
+ minimumVersion: "26.8.15",
100
+ versionArgs: ["--version"],
101
+ downloads: {
102
+ "linux-x64": {
103
+ url: "https://github.com/sxyazi/yazi/releases/download/v26.8.15/yazi-x86_64-unknown-linux-gnu.zip",
104
+ sha256: "cc67eb7991550c2f9407cda52d3f5af0937627aa6884e7de99a04fcf059807e0",
105
+ archive: "zip",
106
+ binaryMembers: {
107
+ yazi: "yazi-x86_64-unknown-linux-gnu/yazi",
108
+ ya: "yazi-x86_64-unknown-linux-gnu/ya"
109
+ },
110
+ documentMembers: ["yazi-x86_64-unknown-linux-gnu/LICENSE"]
111
+ },
112
+ "linux-arm64": {
113
+ url: "https://github.com/sxyazi/yazi/releases/download/v26.8.15/yazi-aarch64-unknown-linux-gnu.zip",
114
+ sha256: "f5a85771f06bb0e8c488136ae0aedaec8d341a7cee995549df391d7d852fe8d1",
115
+ archive: "zip",
116
+ binaryMembers: {
117
+ yazi: "yazi-aarch64-unknown-linux-gnu/yazi",
118
+ ya: "yazi-aarch64-unknown-linux-gnu/ya"
119
+ },
120
+ documentMembers: ["yazi-aarch64-unknown-linux-gnu/LICENSE"]
121
+ },
122
+ "darwin-x64": {
123
+ url: "https://github.com/sxyazi/yazi/releases/download/v26.8.15/yazi-x86_64-apple-darwin.zip",
124
+ sha256: "70bb2bcf57d8af862a54e2d12f2fddceefb9aa4ba3783e9a4dcbf2a8e64aacb3",
125
+ archive: "zip",
126
+ binaryMembers: {
127
+ yazi: "yazi-x86_64-apple-darwin/yazi",
128
+ ya: "yazi-x86_64-apple-darwin/ya"
129
+ },
130
+ documentMembers: ["yazi-x86_64-apple-darwin/LICENSE"]
131
+ },
132
+ "darwin-arm64": {
133
+ url: "https://github.com/sxyazi/yazi/releases/download/v26.8.15/yazi-aarch64-apple-darwin.zip",
134
+ sha256: "3f54907ea08abe96506f4b22239340ed8923a6aeaeae78f33d59bce57daca4cd",
135
+ archive: "zip",
136
+ binaryMembers: {
137
+ yazi: "yazi-aarch64-apple-darwin/yazi",
138
+ ya: "yazi-aarch64-apple-darwin/ya"
139
+ },
140
+ documentMembers: ["yazi-aarch64-apple-darwin/LICENSE"]
141
+ },
142
+ // Same shape as the other three: two executables and a LICENSE at
143
+ // known member paths, so the installer needs nothing new to place it.
144
+ "win32-x64": {
145
+ url: "https://github.com/sxyazi/yazi/releases/download/v26.8.15/yazi-x86_64-pc-windows-msvc.zip",
146
+ sha256: "451f6770999fa8f9b08e6c9f94a688c263b6d3007b0944c4407f1ae335eace30",
147
+ archive: "zip",
148
+ binaryMembers: {
149
+ yazi: "yazi-x86_64-pc-windows-msvc/yazi.exe",
150
+ ya: "yazi-x86_64-pc-windows-msvc/ya.exe"
151
+ },
152
+ documentMembers: ["yazi-x86_64-pc-windows-msvc/LICENSE"]
153
+ }
154
+ },
155
+ documents: []
156
+ },
157
+ {
158
+ id: "croc",
159
+ version: "11.3.6",
160
+ summary: "relay file transfer between machines; the transfer primitive's first backend",
161
+ homepage: "https://schollz.com/software/croc6",
162
+ license: "MIT",
163
+ binaries: ["croc"],
164
+ primaryBinary: "croc",
165
+ // Croc negotiates its relay protocol by major version, so any 11.x on
166
+ // PATH speaks to a pinned 11.x relay.
167
+ minimumVersion: "11.0.0",
168
+ versionArgs: ["--version"],
169
+ downloads: {
170
+ "linux-x64": {
171
+ url: "https://github.com/schollz/croc/releases/download/v11.3.6/croc_v11.3.6_Linux-64bit.tar.gz",
172
+ sha256: "bd18e01024f5ccc8e101c08c8233d4cffbfda4ff59acad80eaa1fc2963efc0b2",
173
+ archive: "tar.gz",
174
+ binaryMembers: { croc: "croc" },
175
+ documentMembers: ["LICENSE", "THIRD_PARTY_NOTICES.md"]
176
+ },
177
+ "linux-arm64": {
178
+ url: "https://github.com/schollz/croc/releases/download/v11.3.6/croc_v11.3.6_Linux-ARM64.tar.gz",
179
+ sha256: "c26ac67207301ed75ae0ece63796ec8a2a002b1cf64f4e3d3d8e7bcee508b5b3",
180
+ archive: "tar.gz",
181
+ binaryMembers: { croc: "croc" },
182
+ documentMembers: ["LICENSE", "THIRD_PARTY_NOTICES.md"]
183
+ },
184
+ "darwin-x64": {
185
+ url: "https://github.com/schollz/croc/releases/download/v11.3.6/croc_v11.3.6_macOS-64bit.tar.gz",
186
+ sha256: "701817a20f4d2bb4312f3234e6d328e0bdd68d6d1311db3a4ab4daf10906c5b2",
187
+ archive: "tar.gz",
188
+ binaryMembers: { croc: "croc" },
189
+ documentMembers: ["LICENSE", "THIRD_PARTY_NOTICES.md"]
190
+ },
191
+ "darwin-arm64": {
192
+ url: "https://github.com/schollz/croc/releases/download/v11.3.6/croc_v11.3.6_macOS-ARM64.tar.gz",
193
+ sha256: "96c4ef67751b4387e3d44a7a559aafe54094f0089f34a6c71dfb5361bd48d368",
194
+ archive: "tar.gz",
195
+ binaryMembers: { croc: "croc" },
196
+ documentMembers: ["LICENSE", "THIRD_PARTY_NOTICES.md"]
197
+ },
198
+ // A zip rather than a tarball on Windows, and the only entry in the
199
+ // table whose hash is confirmed by upstream's own checksums file
200
+ // rather than only by the download this repository made.
201
+ "win32-x64": {
202
+ url: "https://github.com/schollz/croc/releases/download/v11.3.6/croc_v11.3.6_Windows-64bit.zip",
203
+ sha256: "ed22552d371d55a9e3c3b612b982484fa00adaff8fb32c3f19f36dbf8e248bbf",
204
+ archive: "zip",
205
+ binaryMembers: { croc: "croc.exe" },
206
+ documentMembers: ["LICENSE", "THIRD_PARTY_NOTICES.md"]
207
+ }
208
+ },
209
+ documents: []
210
+ }
211
+ ];
212
+ function currentToolPlatform() {
213
+ const platform = process.platform;
214
+ const arch = process.arch;
215
+ if (platform === "linux") {
216
+ if (arch === "x64") return "linux-x64";
217
+ if (arch === "arm64") return "linux-arm64";
218
+ return null;
219
+ }
220
+ if (platform === "darwin") {
221
+ if (arch === "x64") return "darwin-x64";
222
+ if (arch === "arm64") return "darwin-arm64";
223
+ return null;
224
+ }
225
+ if (platform === "win32" && arch === "x64") return "win32-x64";
226
+ return null;
227
+ }
228
+ function findPinnedTool(id) {
229
+ return PINNED_TOOLS.find((entry) => entry.id === id) ?? null;
230
+ }
231
+ function findPinnedToolByBinary(name) {
232
+ const bare = name.endsWith(".exe") ? name.slice(0, -4) : name;
233
+ return PINNED_TOOLS.find((entry) => entry.binaries.includes(bare)) ?? null;
234
+ }
235
+
236
+ // src/domains/toolchain/paths.ts
237
+ init_esm_shims();
238
+ import { join } from "node:path";
239
+ function toolchainRoot() {
240
+ return join(resolveClioDirs().data, "tools");
241
+ }
242
+ function toolVersionDir(id, version) {
243
+ return join(toolchainRoot(), id, version);
244
+ }
245
+ function vendoredBinaryPath(id, version, binary) {
246
+ return join(toolVersionDir(id, version), process.platform === "win32" ? `${binary}.exe` : binary);
247
+ }
248
+ function ensureToolchainRoot() {
249
+ return join(clioDataDir(), "tools");
250
+ }
251
+
252
+ export {
253
+ PINNED_TOOLS,
254
+ currentToolPlatform,
255
+ findPinnedTool,
256
+ findPinnedToolByBinary,
257
+ toolchainRoot,
258
+ toolVersionDir,
259
+ vendoredBinaryPath,
260
+ ensureToolchainRoot
261
+ };
262
+ //# sourceMappingURL=chunk-QDC3K2U3.js.map
@@ -19,10 +19,10 @@ import {
19
19
  import {
20
20
  enableClioCompileCache,
21
21
  workerCompileCacheEnvironment
22
- } from "./chunk-I4HZDVNP.js";
22
+ } from "./chunk-PQEFIJ36.js";
23
23
  import {
24
24
  atomicWrite
25
- } from "./chunk-KV2AOLDF.js";
25
+ } from "./chunk-76ONBSIA.js";
26
26
  import {
27
27
  AI_AGENT_NAME,
28
28
  withClioAgentEnvironment
@@ -33,7 +33,7 @@ import {
33
33
  } from "./chunk-IWHMRKLL.js";
34
34
  import {
35
35
  clioStateDir
36
- } from "./chunk-BNAZZHFG.js";
36
+ } from "./chunk-BYP5D4HI.js";
37
37
  import {
38
38
  init_esm_shims
39
39
  } from "./chunk-3R73A4XB.js";
@@ -933,4 +933,4 @@ export {
933
933
  routeFactVerdict,
934
934
  runFleetNodePreflight
935
935
  };
936
- //# sourceMappingURL=chunk-5HFBWUMU.js.map
936
+ //# sourceMappingURL=chunk-QLFS5GO2.js.map
@@ -7,10 +7,10 @@ import {
7
7
  TASK_MEMORY_POLICY_DEFAULT_TIMEOUT_MS,
8
8
  runTaskMemoryPolicy,
9
9
  taskMemoryBankDelta
10
- } from "./chunk-O6I4CIEU.js";
10
+ } from "./chunk-BKFJHQCA.js";
11
11
  import {
12
12
  isTerminalRunEnvelope
13
- } from "./chunk-4H6ULJ3H.js";
13
+ } from "./chunk-J4W7KFM7.js";
14
14
  import {
15
15
  taskBoardCounts
16
16
  } from "./chunk-2JDWVJND.js";
@@ -21,23 +21,23 @@ import {
21
21
  import {
22
22
  legacyToolResultDigest,
23
23
  sanitizeToolResultDigest
24
- } from "./chunk-ODFEOB4F.js";
24
+ } from "./chunk-CY6FY24N.js";
25
25
  import {
26
26
  ToolNames
27
- } from "./chunk-CGKSTWHD.js";
27
+ } from "./chunk-K6BSR66V.js";
28
28
  import {
29
29
  registerForegroundStream
30
- } from "./chunk-MIX5N5AC.js";
30
+ } from "./chunk-DQITNCXG.js";
31
31
  import {
32
32
  ceilChars
33
- } from "./chunk-AEYBF3TB.js";
33
+ } from "./chunk-UM7N4G5A.js";
34
+ import {
35
+ BusChannels
36
+ } from "./chunk-HLW2MRKE.js";
34
37
  import {
35
38
  reportCommitAttributionDiagnostic,
36
39
  withManagedGitCommitAttributionEnvironment
37
- } from "./chunk-B5CSFE7B.js";
38
- import {
39
- BusChannels
40
- } from "./chunk-RKRLDWD3.js";
40
+ } from "./chunk-BBVJUZHB.js";
41
41
  import {
42
42
  require_dist
43
43
  } from "./chunk-APJ265NV.js";
@@ -1388,8 +1388,9 @@ init_esm_shims();
1388
1388
  import { createHash as createHash2 } from "node:crypto";
1389
1389
  var MEMORY_INTERVENTION_REGISTRATION_ID = "observer.memory-intervention";
1390
1390
  var MEMORY_INTERVENTION_DEFAULT_WINDOW_STEPS = 8;
1391
- var MEMORY_INTERVENTION_DEFAULT_MAX_TOKENS = 400;
1391
+ var MEMORY_INTERVENTION_DEFAULT_MAX_TOKENS = 2e3;
1392
1392
  var MEMORY_INTERVENTION_DEFAULT_EVERY_N_TOOLS = 10;
1393
+ var MEMORY_INTERVENTION_TIMEOUT_BACKOFF_THRESHOLD = 2;
1393
1394
  var MEMORY_INTERVENTION_ACTIVITY_LIMIT = 20;
1394
1395
  var CALL_DESCRIPTION_MAX_CHARS = 180;
1395
1396
  var NO_EFFECTS = [];
@@ -1416,6 +1417,7 @@ function createMemoryInterventionRegistration(deps) {
1416
1417
  let outstandingStep = Promise.resolve();
1417
1418
  let rulesInjectedSincePromptedStep = false;
1418
1419
  let annotatedSinceTurnEnd = false;
1420
+ let consecutiveLlmTimeouts = 0;
1419
1421
  return {
1420
1422
  id: MEMORY_INTERVENTION_REGISTRATION_ID,
1421
1423
  description: "maintain bounded task execution memory and selectively remind after repeated failures or compaction",
@@ -1581,27 +1583,32 @@ function createMemoryInterventionRegistration(deps) {
1581
1583
  let promptedResult;
1582
1584
  let telemetryDecision = null;
1583
1585
  try {
1584
- const client = deps.getModelClient?.() ?? null;
1585
- if (client === null) {
1586
- promptedResult = silent("no_client");
1587
- } else if (deps.backgroundEndpointBusy?.() === true) {
1588
- tier = "llm";
1589
- promptedStepTier = tier;
1590
- promptedResult = silent("endpoint_busy");
1591
- telemetryDecision = "dropped";
1586
+ if (consecutiveLlmTimeouts >= MEMORY_INTERVENTION_TIMEOUT_BACKOFF_THRESHOLD) {
1587
+ promptedResult = silent("llm_timeout_backoff");
1592
1588
  } else {
1593
- tier = "llm";
1594
- promptedStepTier = tier;
1595
- promptedResult = await runTaskMemoryPolicy(deps.bank, client, {
1596
- task: input.task?.trim() || currentTask,
1597
- trajectory: [...trajectory],
1598
- deterministicTrigger: input.deterministicTrigger,
1599
- maxTokens: live.maxTokens,
1600
- ...input.suppressIntervention === void 0 ? {} : { suppressIntervention: input.suppressIntervention },
1601
- previousReminder: lastInjectedMessage,
1602
- timeoutMs: live.timeoutMs,
1603
- ...deps.onEnvelope === void 0 ? {} : { onEnvelope: deps.onEnvelope }
1604
- });
1589
+ const client = deps.getModelClient?.() ?? null;
1590
+ if (client === null) {
1591
+ promptedResult = silent("no_client");
1592
+ } else if (deps.backgroundEndpointBusy?.() === true) {
1593
+ tier = "llm";
1594
+ promptedStepTier = tier;
1595
+ promptedResult = silent("endpoint_busy");
1596
+ telemetryDecision = "dropped";
1597
+ } else {
1598
+ tier = "llm";
1599
+ promptedStepTier = tier;
1600
+ promptedResult = await runTaskMemoryPolicy(deps.bank, client, {
1601
+ task: input.task?.trim() || currentTask,
1602
+ trajectory: [...trajectory],
1603
+ deterministicTrigger: input.deterministicTrigger,
1604
+ maxTokens: live.maxTokens,
1605
+ modelMaxTokens: positiveInteger(deps.getModelMaxTokens?.(live.maxTokens), live.maxTokens),
1606
+ ...input.suppressIntervention === void 0 ? {} : { suppressIntervention: input.suppressIntervention },
1607
+ previousReminder: lastInjectedMessage,
1608
+ timeoutMs: live.timeoutMs,
1609
+ ...deps.onEnvelope === void 0 ? {} : { onEnvelope: deps.onEnvelope }
1610
+ });
1611
+ }
1605
1612
  }
1606
1613
  } catch (error) {
1607
1614
  promptedResult = silent("client_error");
@@ -1617,6 +1624,8 @@ function createMemoryInterventionRegistration(deps) {
1617
1624
  error: error instanceof Error ? error.message : "resolving the background model client failed"
1618
1625
  });
1619
1626
  }
1627
+ if (tier === "llm" && promptedResult.decision === "timeout") consecutiveLlmTimeouts += 1;
1628
+ else if (tier === "llm" && telemetryDecision !== "dropped") consecutiveLlmTimeouts = 0;
1620
1629
  lastDecision = promptedResult.decision;
1621
1630
  if (promptedResult.usage !== null) {
1622
1631
  try {
@@ -2458,4 +2467,4 @@ export {
2458
2467
  createWatchdogRegistration,
2459
2468
  MiddlewareDomainModule
2460
2469
  };
2461
- //# sourceMappingURL=chunk-GAYUJ7LE.js.map
2470
+ //# sourceMappingURL=chunk-QLL7ILRG.js.map
@@ -5,19 +5,19 @@ import {
5
5
  import {
6
6
  probeWorkspace
7
7
  } from "./chunk-HVDIIIQW.js";
8
- import {
9
- protectArtifact
10
- } from "./chunk-MV3K5QF2.js";
11
8
  import {
12
9
  isSessionEntry,
13
10
  isSessionHeader
14
11
  } from "./chunk-RAPCMZL4.js";
12
+ import {
13
+ protectArtifact
14
+ } from "./chunk-GCSMB2KY.js";
15
15
  import {
16
16
  stripTokenizerSentinels
17
17
  } from "./chunk-CFGTUFWB.js";
18
18
  import {
19
19
  BusChannels
20
- } from "./chunk-RKRLDWD3.js";
20
+ } from "./chunk-HLW2MRKE.js";
21
21
  import {
22
22
  CURRENT_SESSION_FORMAT_VERSION,
23
23
  appendSessionFileEntry,
@@ -29,11 +29,11 @@ import {
29
29
  readSessionMeta,
30
30
  resumeSession,
31
31
  sessionPaths
32
- } from "./chunk-KV2AOLDF.js";
32
+ } from "./chunk-76ONBSIA.js";
33
33
  import {
34
34
  clioStateDir,
35
35
  stateRootRemoved
36
- } from "./chunk-BNAZZHFG.js";
36
+ } from "./chunk-BYP5D4HI.js";
37
37
  import {
38
38
  init_esm_shims
39
39
  } from "./chunk-3R73A4XB.js";
@@ -1475,4 +1475,4 @@ export {
1475
1475
  ledgerUsageCalls,
1476
1476
  SessionDomainModule
1477
1477
  };
1478
- //# sourceMappingURL=chunk-LXPJXFM5.js.map
1478
+ //# sourceMappingURL=chunk-QREDIESB.js.map
@@ -0,0 +1,195 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ PINNED_TOOLS,
4
+ currentToolPlatform,
5
+ findPinnedTool,
6
+ findPinnedToolByBinary,
7
+ toolVersionDir,
8
+ vendoredBinaryPath
9
+ } from "./chunk-QDC3K2U3.js";
10
+ import {
11
+ init_esm_shims
12
+ } from "./chunk-3R73A4XB.js";
13
+
14
+ // src/domains/toolchain/resolve.ts
15
+ init_esm_shims();
16
+ import { statSync } from "node:fs";
17
+ import { delimiter, join } from "node:path";
18
+
19
+ // src/domains/toolchain/version.ts
20
+ init_esm_shims();
21
+ import { spawnSync } from "node:child_process";
22
+ var VERSION_PATTERN = /(\d+)\.(\d+)\.(\d+)/;
23
+ var PROBE_TIMEOUT_MS = 2e3;
24
+ function parseVersion(output) {
25
+ const match = VERSION_PATTERN.exec(output);
26
+ if (!match) return null;
27
+ return `${match[1]}.${match[2]}.${match[3]}`;
28
+ }
29
+ function compareVersions(a, b) {
30
+ const left = numericParts(a);
31
+ const right = numericParts(b);
32
+ for (let i = 0; i < 3; i += 1) {
33
+ const diff = (left[i] ?? 0) - (right[i] ?? 0);
34
+ if (diff !== 0) return diff;
35
+ }
36
+ return 0;
37
+ }
38
+ function satisfiesMinimum(found, minimum) {
39
+ if (found === null) return false;
40
+ return compareVersions(found, minimum) >= 0;
41
+ }
42
+ function probeBinaryVersion(binaryPath, args) {
43
+ const cached = probeCache.get(binaryPath);
44
+ if (cached !== void 0) return cached;
45
+ let version = null;
46
+ try {
47
+ const result = spawnSync(binaryPath, [...args], {
48
+ timeout: PROBE_TIMEOUT_MS,
49
+ encoding: "utf8",
50
+ // A version probe must never inherit a terminal or wait on input: some
51
+ // of these binaries are full-screen programs when given a tty.
52
+ stdio: ["ignore", "pipe", "pipe"]
53
+ });
54
+ if (result.error === void 0) {
55
+ version = parseVersion(`${result.stdout ?? ""}
56
+ ${result.stderr ?? ""}`);
57
+ }
58
+ } catch {
59
+ version = null;
60
+ }
61
+ probeCache.set(binaryPath, version);
62
+ return version;
63
+ }
64
+ var probeCache = /* @__PURE__ */ new Map();
65
+ function numericParts(value) {
66
+ const match = VERSION_PATTERN.exec(value);
67
+ if (!match) return [0, 0, 0];
68
+ return [Number(match[1]), Number(match[2]), Number(match[3])];
69
+ }
70
+
71
+ // src/domains/toolchain/resolve.ts
72
+ function findExecutableOnPath(name) {
73
+ const pathEnv = process.env.PATH;
74
+ if (!pathEnv) return null;
75
+ const candidates = process.platform === "win32" ? [`${name}.exe`, name] : [name];
76
+ for (const dir of pathEnv.split(delimiter)) {
77
+ if (!dir) continue;
78
+ for (const candidate of candidates) {
79
+ const full = join(dir, candidate);
80
+ const stat = statSync(full, { throwIfNoEntry: false });
81
+ if (stat?.isFile() && (process.platform === "win32" || (stat.mode & 73) !== 0)) return full;
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ function resolveToolBinary(name) {
87
+ const entry = findPinnedToolByBinary(name) ?? findPinnedTool(name);
88
+ if (entry === null) {
89
+ const found = findExecutableOnPath(name);
90
+ return {
91
+ source: found === null ? "none" : "path",
92
+ binaryPath: found,
93
+ version: null,
94
+ entry: null,
95
+ pathCandidate: found === null ? null : { path: found, version: null, satisfiesMinimum: true },
96
+ vendoredPath: null
97
+ };
98
+ }
99
+ const binary = entry.binaries.includes(name) ? name : entry.primaryBinary;
100
+ return resolveEntryBinary(entry, binary);
101
+ }
102
+ function resolveEntryBinary(entry, binary) {
103
+ const pathCandidate = probePathCandidate(entry, binary);
104
+ const vendored = vendoredBinaryPath(entry.id, entry.version, binary);
105
+ const vendoredStat = statSync(vendored, { throwIfNoEntry: false });
106
+ const vendoredPath = vendoredStat?.isFile() ? vendored : null;
107
+ if (pathCandidate?.satisfiesMinimum) {
108
+ return {
109
+ source: "path",
110
+ binaryPath: pathCandidate.path,
111
+ version: pathCandidate.version,
112
+ entry,
113
+ pathCandidate,
114
+ vendoredPath
115
+ };
116
+ }
117
+ if (vendoredPath !== null) {
118
+ return {
119
+ source: "vendored",
120
+ binaryPath: vendoredPath,
121
+ version: entry.version,
122
+ entry,
123
+ pathCandidate,
124
+ vendoredPath
125
+ };
126
+ }
127
+ return { source: "none", binaryPath: null, version: null, entry, pathCandidate, vendoredPath: null };
128
+ }
129
+ function toolStatus(entry) {
130
+ const platform = currentToolPlatform();
131
+ const supported = platform !== null && entry.downloads[platform] !== void 0;
132
+ const resolution = resolveEntryBinary(entry, entry.primaryBinary);
133
+ return {
134
+ id: entry.id,
135
+ version: entry.version,
136
+ license: entry.license,
137
+ platform,
138
+ supported,
139
+ installed: resolution.vendoredPath !== null,
140
+ installDir: toolVersionDir(entry.id, entry.version),
141
+ resolution
142
+ };
143
+ }
144
+ function toolStatuses() {
145
+ return PINNED_TOOLS.map((entry) => toolStatus(entry));
146
+ }
147
+ function installRemedy(id) {
148
+ return `clio-coder tools install ${id}`;
149
+ }
150
+ function describeFloorRejection(status) {
151
+ const candidate = status.resolution.pathCandidate;
152
+ if (candidate === null || candidate.satisfiesMinimum) return null;
153
+ const floor = status.resolution.entry?.minimumVersion ?? status.version;
154
+ const found = candidate.version === null ? "an unreadable version" : candidate.version;
155
+ return `PATH copy ${candidate.path} is ${found}, below the ${floor} floor`;
156
+ }
157
+ function describeResolution(status) {
158
+ const { resolution } = status;
159
+ const rejection = describeFloorRejection(status);
160
+ if (resolution.source === "path") {
161
+ const version = resolution.version ?? "unreadable version";
162
+ return `PATH ${resolution.binaryPath} (${version}, pin ${status.version})`;
163
+ }
164
+ if (resolution.source === "vendored") {
165
+ const rejected = rejection === null ? "" : `; ${rejection}, so Clio runs the vendored copy`;
166
+ return `vendored ${resolution.binaryPath} (${status.version})${rejected}`;
167
+ }
168
+ if (!status.supported) {
169
+ const platform = status.platform ?? `${process.platform}-${process.arch}`;
170
+ const rejected = rejection === null ? "" : `; ${rejection}`;
171
+ return `not installed and no pinned asset for this platform (${platform})${rejected}`;
172
+ }
173
+ if (rejection !== null) {
174
+ return `${rejection}, and nothing is vendored (install with \`${installRemedy(status.id)}\`)`;
175
+ }
176
+ return `not found (install with \`${installRemedy(status.id)}\`)`;
177
+ }
178
+ function probePathCandidate(entry, binary) {
179
+ const found = findExecutableOnPath(binary);
180
+ if (found === null) return null;
181
+ const probeTarget = binary === entry.primaryBinary ? found : findExecutableOnPath(entry.primaryBinary) ?? found;
182
+ const version = probeBinaryVersion(probeTarget, entry.versionArgs);
183
+ return { path: found, version, satisfiesMinimum: satisfiesMinimum(version, entry.minimumVersion) };
184
+ }
185
+
186
+ export {
187
+ findExecutableOnPath,
188
+ resolveToolBinary,
189
+ toolStatus,
190
+ toolStatuses,
191
+ installRemedy,
192
+ describeFloorRejection,
193
+ describeResolution
194
+ };
195
+ //# sourceMappingURL=chunk-QSNYB6ZV.js.map