@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
@@ -2,69 +2,82 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  SchedulingDomainModule,
4
4
  createPromptsDomainModule
5
- } from "./chunk-3UUY7R3Z.js";
5
+ } from "./chunk-ULC6OTWO.js";
6
6
  import {
7
7
  SafetyDomainModule
8
- } from "./chunk-WXCJ7VME.js";
8
+ } from "./chunk-O6TL7WWY.js";
9
9
  import {
10
10
  LifecycleDomainModule
11
- } from "./chunk-DG4M6ZUE.js";
11
+ } from "./chunk-X3YGUTOB.js";
12
12
  import {
13
13
  ensureClioState
14
- } from "./chunk-T3Z6VAAF.js";
14
+ } from "./chunk-W5VSYASO.js";
15
15
  import {
16
16
  ConfigDomainModule,
17
17
  loadDomains
18
- } from "./chunk-465CC7FK.js";
19
- import {
20
- ResourcesDomainModule
21
- } from "./chunk-PZ4I4JE2.js";
22
- import {
23
- AgentsDomainModule
24
- } from "./chunk-YSEHGPCT.js";
25
- import "./chunk-HCBCAYZU.js";
26
- import "./chunk-DR52UMZW.js";
27
- import "./chunk-AD7Y7STJ.js";
28
- import "./chunk-AMKHQW3C.js";
18
+ } from "./chunk-3BT2XMV4.js";
19
+ import "./chunk-7MCTRUCE.js";
29
20
  import {
30
21
  ObservabilityDomainModule
31
- } from "./chunk-5PVQ4SRS.js";
22
+ } from "./chunk-WZR7K7ZX.js";
32
23
  import "./chunk-FWDFM5ZU.js";
33
- import "./chunk-YW7UVM5V.js";
34
- import "./chunk-FALJGAWU.js";
35
- import "./chunk-BVDVID7E.js";
24
+ import "./chunk-V5DHCITQ.js";
25
+ import "./chunk-LDQ2ZF2M.js";
36
26
  import {
37
27
  ContextDomainModule
38
- } from "./chunk-HJB5IUKP.js";
28
+ } from "./chunk-I5VEOC6I.js";
29
+ import "./chunk-VAZSBTKF.js";
30
+ import "./chunk-AB44T6BB.js";
39
31
  import "./chunk-LCGCVYZ4.js";
40
- import "./chunk-47CMYGET.js";
41
- import "./chunk-5T7RBWN2.js";
42
32
  import "./chunk-NDINPTJ4.js";
43
33
  import "./chunk-MXHC5QYU.js";
44
34
  import {
45
- DispatchDomainModule,
35
+ aggregateCostAmounts,
46
36
  capacityDrain,
37
+ createDispatchDomainModule,
47
38
  executeFleetRun,
48
39
  openLedger,
49
40
  planFleetResume,
50
41
  readFleetRun,
42
+ renderCostAggregate,
43
+ renderCostAmount,
51
44
  setCapacityDraining
52
- } from "./chunk-TEO2TLVN.js";
53
- import "./chunk-MLOK6ZOS.js";
45
+ } from "./chunk-BUMFYQFY.js";
46
+ import "./chunk-X75E3D2N.js";
47
+ import "./chunk-B7OBL7PK.js";
54
48
  import {
55
49
  SessionDomainModule
56
- } from "./chunk-LXPJXFM5.js";
50
+ } from "./chunk-QREDIESB.js";
57
51
  import {
58
52
  WRITE_BOUNDARY_VIOLATION_REASON,
59
53
  preflightWriteBoundaries
60
- } from "./chunk-ECUO3KDP.js";
54
+ } from "./chunk-U77AMWDL.js";
61
55
  import {
62
56
  bindExecutionPlanEndpoints,
63
57
  compileFleetExecutionPlan
64
- } from "./chunk-HKO36JWF.js";
58
+ } from "./chunk-QBJA7R7N.js";
65
59
  import "./chunk-RVG5JXAL.js";
66
60
  import "./chunk-3DPEIQKN.js";
61
+ import "./chunk-NHLBIGRH.js";
62
+ import {
63
+ configureRunEventJournal
64
+ } from "./chunk-IQ7KR472.js";
65
+ import "./chunk-T56WDKA5.js";
67
66
  import "./chunk-W6GROXXM.js";
67
+ import "./chunk-JVCV3ICN.js";
68
+ import "./chunk-QLFS5GO2.js";
69
+ import "./chunk-TXOTCRLG.js";
70
+ import "./chunk-HVDIIIQW.js";
71
+ import {
72
+ ResourcesDomainModule
73
+ } from "./chunk-LY4S7GJC.js";
74
+ import {
75
+ AgentsDomainModule
76
+ } from "./chunk-Z2RR6MAK.js";
77
+ import "./chunk-Z4TXYIEG.js";
78
+ import "./chunk-DR52UMZW.js";
79
+ import "./chunk-VYMXRQI6.js";
80
+ import "./chunk-FEFIFZTL.js";
68
81
  import {
69
82
  FLEET_COMMANDS_REMEDY,
70
83
  FLEET_COMMANDS_REPO_PATH,
@@ -73,50 +86,49 @@ import {
73
86
  loadFleetCommands,
74
87
  loadFleetContract,
75
88
  renderFleetPrompt
76
- } from "./chunk-HPCTNZM2.js";
89
+ } from "./chunk-CTJ4RNAA.js";
77
90
  import "./chunk-RKKLTLYB.js";
78
- import "./chunk-5QKCQQ3E.js";
79
- import "./chunk-JVCV3ICN.js";
80
- import "./chunk-5HFBWUMU.js";
81
- import "./chunk-TXOTCRLG.js";
82
- import "./chunk-HVDIIIQW.js";
91
+ import "./chunk-SUW5DORT.js";
83
92
  import {
84
93
  MiddlewareDomainModule
85
- } from "./chunk-GAYUJ7LE.js";
86
- import "./chunk-HAY4ZE2P.js";
94
+ } from "./chunk-QLL7ILRG.js";
95
+ import "./chunk-5PSMVOLM.js";
87
96
  import "./chunk-UOV2BYIW.js";
88
- import "./chunk-O6I4CIEU.js";
97
+ import "./chunk-BKFJHQCA.js";
89
98
  import "./chunk-VG7TBQIY.js";
90
99
  import {
91
100
  formatBudgetPolicy,
92
101
  formatBudgetReasons,
93
102
  formatBudgetRequest,
94
103
  formatEffectiveBudget
95
- } from "./chunk-4H6ULJ3H.js";
96
- import "./chunk-VPTUJU4P.js";
104
+ } from "./chunk-J4W7KFM7.js";
105
+ import "./chunk-SJ5ZKQ4S.js";
97
106
  import "./chunk-2JDWVJND.js";
107
+ import "./chunk-GKF55TAZ.js";
108
+ import "./chunk-32KWKNSF.js";
109
+ import "./chunk-TVHHYFHE.js";
110
+ import "./chunk-42FMPA75.js";
98
111
  import {
99
112
  agentRoleFactsResolver,
100
113
  requestExecutionRole,
101
114
  withAttemptRole
102
115
  } from "./chunk-H7IXIC72.js";
103
- import "./chunk-7C6RYZGQ.js";
104
- import "./chunk-N3PBVRTZ.js";
105
- import "./chunk-A2NJGIB3.js";
116
+ import "./chunk-5LXZXPKX.js";
106
117
  import "./chunk-OQE5J4C6.js";
107
- import "./chunk-S4COXYBG.js";
108
- import "./chunk-MV3K5QF2.js";
109
118
  import "./chunk-RAPCMZL4.js";
110
- import "./chunk-UL3WSD3F.js";
111
- import "./chunk-ODFEOB4F.js";
119
+ import "./chunk-CY6FY24N.js";
112
120
  import "./chunk-OZNBF4L3.js";
113
121
  import "./chunk-4BJ5BYCE.js";
114
- import "./chunk-ECH6PKUQ.js";
115
- import "./chunk-CMZWFGD2.js";
116
- import "./chunk-I4HZDVNP.js";
117
122
  import "./chunk-6XLNIQDB.js";
123
+ import "./chunk-CMZWFGD2.js";
124
+ import "./chunk-PQEFIJ36.js";
125
+ import "./chunk-HHV2GANA.js";
126
+ import "./chunk-DYJP44XW.js";
127
+ import "./chunk-GCSMB2KY.js";
128
+ import "./chunk-UL3WSD3F.js";
129
+ import "./chunk-ECH6PKUQ.js";
118
130
  import "./chunk-5B2AEOW5.js";
119
- import "./chunk-CGKSTWHD.js";
131
+ import "./chunk-K6BSR66V.js";
120
132
  import "./chunk-M6L6IDJG.js";
121
133
  import "./chunk-UUVG37B4.js";
122
134
  import "./chunk-LBMZMYH2.js";
@@ -124,39 +136,42 @@ import "./chunk-XAKHZX5N.js";
124
136
  import "./chunk-33YXPOE3.js";
125
137
  import "./chunk-7CR24IG7.js";
126
138
  import "./chunk-XPLRXC72.js";
127
- import "./chunk-QQ7EKM72.js";
128
- import "./chunk-56KB5IJP.js";
139
+ import "./chunk-NEKRRTYW.js";
140
+ import "./chunk-SP2RXXYO.js";
141
+ import "./chunk-2OQE55CK.js";
129
142
  import {
130
143
  ProvidersDomainModule,
131
- foregroundStreamUsage
132
- } from "./chunk-MIX5N5AC.js";
144
+ foregroundStreamUsage,
145
+ normalizeCostProvenance
146
+ } from "./chunk-DQITNCXG.js";
133
147
  import "./chunk-CFGTUFWB.js";
134
- import "./chunk-LU7P4LHA.js";
135
- import "./chunk-AEYBF3TB.js";
148
+ import "./chunk-P3FOHJT4.js";
149
+ import "./chunk-UM7N4G5A.js";
150
+ import "./chunk-ZGVHUX3M.js";
151
+ import "./chunk-HLW2MRKE.js";
152
+ import "./chunk-76ONBSIA.js";
153
+ import "./chunk-R346GLFC.js";
136
154
  import "./chunk-IHXBNWMM.js";
137
- import "./chunk-B5CSFE7B.js";
138
155
  import {
139
156
  readSettings
140
- } from "./chunk-PNY46YEY.js";
157
+ } from "./chunk-VFA6GDY5.js";
158
+ import "./chunk-BBVJUZHB.js";
141
159
  import "./chunk-FQ4SKYE4.js";
142
- import "./chunk-ZGVHUX3M.js";
143
- import "./chunk-RKRLDWD3.js";
144
- import "./chunk-KV2AOLDF.js";
145
160
  import "./chunk-6EJMN2Y3.js";
146
161
  import "./chunk-IWHMRKLL.js";
147
- import "./chunk-JEQQR47K.js";
148
- import "./chunk-XDOQXGFO.js";
162
+ import "./chunk-6DB53AJS.js";
163
+ import "./chunk-GXNLGKAB.js";
149
164
  import "./chunk-LL4KHSZI.js";
150
165
  import "./chunk-4ZG3XFUR.js";
151
- import "./chunk-774ILSRL.js";
152
- import "./chunk-EQ63NRB7.js";
166
+ import "./chunk-HI63TFOG.js";
167
+ import "./chunk-BBVYXMFO.js";
153
168
  import "./chunk-SST6Z5JA.js";
154
169
  import "./chunk-IKCO5N3L.js";
155
170
  import "./chunk-3I7MS7N2.js";
156
171
  import "./chunk-APJ265NV.js";
157
172
  import {
158
173
  clioStateDir
159
- } from "./chunk-BNAZZHFG.js";
174
+ } from "./chunk-BYP5D4HI.js";
160
175
  import "./chunk-WEPFGWHJ.js";
161
176
  import "./chunk-NUGM5KR6.js";
162
177
  import "./chunk-VO2LKSTM.js";
@@ -185,6 +200,10 @@ Subcommands:
185
200
  [--resume <runId>] replay a completed prefix from a prior run of the same plan
186
201
  [--json] emit step receipts as JSON
187
202
  status [--json] show running, retrying, and total dispatch state
203
+ inspect --json emit a bounded recent-run and event-journal projection
204
+ decisions --json emit a bounded window of sealed review and compete gate verdicts
205
+ view <runId> [--follow] read one run's ledger entry, event journal, and receipt
206
+ view <fleetRootId> list a fleet run's steps and the run id to view for each
188
207
  drain [--json] deny new execution starts for up to one hour
189
208
  resume [--json] reopen dispatch admission immediately
190
209
 
@@ -192,6 +211,10 @@ Notes:
192
211
  status reads the durable run ledger. Rows started by another process show
193
212
  heartbeat liveness from the recorded worker pid; per-token live meters are
194
213
  only available inside the process that owns the run.
214
+ view is read-only and shares no memory with the orchestrator, so it follows a
215
+ run from a second terminal or over SSH. Its transcript comes from the run
216
+ event journal, written when panes.journal is on (the default). Handed the
217
+ fleet-<hex> root id that run prints, it lists that run's steps instead.
195
218
  drain preserves running work. Repeat it to renew the one-hour expiry; resume
196
219
  clears it early. The expiry prevents an abandoned drain from wedging Clio.
197
220
  `;
@@ -222,7 +245,9 @@ function parseVars(args) {
222
245
  const eq = pair.indexOf("=");
223
246
  const key = pair.slice(0, eq).trim();
224
247
  const value = pair.slice(eq + 1);
225
- if (key.length === 0) return { vars, rest, error: "--var requires a non-empty key" };
248
+ if (key.length === 0) {
249
+ return { vars, rest, error: "--var requires a non-empty key" };
250
+ }
226
251
  vars[key] = value;
227
252
  }
228
253
  return { vars, rest };
@@ -234,7 +259,9 @@ function renderStep(step) {
234
259
  if (step.kind === "code") return `code:${step.command}[${step.scope}]`;
235
260
  if (step.kind === "agent") return `${step.agent}[${step.scope}]`;
236
261
  if (step.kind === "gate") return `gate:${step.path}[${step.run}]`;
237
- if (step.kind === "plan") return `plan:${step.agent}[${step.roster.join(",")}; max ${step.maxTasks}]`;
262
+ if (step.kind === "plan") {
263
+ return `plan:${step.agent}[${step.roster.join(",")}; max ${step.maxTasks}]`;
264
+ }
238
265
  const check = step.check.kind === "code" ? `code:${step.check.command}` : step.check.kind === "gate" ? `gate:${step.check.gate}` : step.check.agent;
239
266
  return `loop:${step.id}(${check} -> ${step.repair.agent} x${step.maxAttempts})`;
240
267
  }
@@ -275,16 +302,28 @@ function runList(args) {
275
302
  function contractAgents(contract) {
276
303
  const agents = [];
277
304
  for (const step of contract.steps) {
278
- if (step.kind === "agent") agents.push({ id: step.id, agent: step.agent, scope: step.scope });
279
- else if (step.kind === "gate") agents.push({ id: step.id, agent: step.agent, scope: "workspace" });
280
- else if (step.kind === "plan") {
305
+ if (step.kind === "agent") {
306
+ agents.push({ id: step.id, agent: step.agent, scope: step.scope });
307
+ } else if (step.kind === "gate") {
308
+ agents.push({ id: step.id, agent: step.agent, scope: "workspace" });
309
+ } else if (step.kind === "plan") {
281
310
  agents.push({ id: step.id, agent: step.agent, scope: step.scope });
282
- for (const agent of step.roster) agents.push({ id: `${step.id}.roster`, agent, scope: "readonly" });
311
+ for (const agent of step.roster) {
312
+ agents.push({ id: `${step.id}.roster`, agent, scope: "readonly" });
313
+ }
283
314
  } else if (step.kind === "loop") {
284
315
  if (step.check.kind === "agent") {
285
- agents.push({ id: `${step.id}.check`, agent: step.check.agent, scope: step.check.scope });
316
+ agents.push({
317
+ id: `${step.id}.check`,
318
+ agent: step.check.agent,
319
+ scope: step.check.scope
320
+ });
286
321
  }
287
- agents.push({ id: `${step.id}.repair`, agent: step.repair.agent, scope: step.repair.scope });
322
+ agents.push({
323
+ id: `${step.id}.repair`,
324
+ agent: step.repair.agent,
325
+ scope: step.repair.scope
326
+ });
288
327
  }
289
328
  }
290
329
  return agents;
@@ -293,10 +332,12 @@ function preflightFleet(contract, deps) {
293
332
  const targets = new Set(deps.settings.targets.map((target) => target.id));
294
333
  const profiles = new Set(Object.keys(deps.settings.workers?.profiles ?? {}));
295
334
  const checkRoute = (id, route) => {
296
- if (route.target !== void 0 && !targets.has(route.target))
335
+ if (route.target !== void 0 && !targets.has(route.target)) {
297
336
  return `unknown target '${route.target}' at step '${id}'`;
298
- if (route.profile !== void 0 && !profiles.has(route.profile))
337
+ }
338
+ if (route.profile !== void 0 && !profiles.has(route.profile)) {
299
339
  return `unknown profile '${route.profile}' at step '${id}'`;
340
+ }
300
341
  return null;
301
342
  };
302
343
  for (const step of contract.steps) {
@@ -341,10 +382,13 @@ async function runFleet(args) {
341
382
  const json = rest.includes("--json");
342
383
  const resumeIndex = rest.indexOf("--resume");
343
384
  const resumeId = resumeIndex === -1 ? void 0 : rest[resumeIndex + 1];
344
- if (resumeIndex !== -1 && (resumeId === void 0 || resumeId.startsWith("-")))
385
+ if (resumeIndex !== -1 && (resumeId === void 0 || resumeId.startsWith("-"))) {
345
386
  return fail("--resume requires a run id");
387
+ }
346
388
  const name = rest.find((arg) => !arg.startsWith("-"));
347
- if (!name) return fail("usage: clio-coder fleet run <name> [--var key=value ...] [--resume <runId>] [--json]");
389
+ if (!name) {
390
+ return fail("usage: clio-coder fleet run <name> [--var key=value ...] [--resume <runId>] [--json]");
391
+ }
348
392
  let contract;
349
393
  let prompt;
350
394
  let commands;
@@ -373,7 +417,10 @@ async function runFleet(args) {
373
417
  MiddlewareDomainModule,
374
418
  ObservabilityDomainModule,
375
419
  SchedulingDomainModule,
376
- DispatchDomainModule,
420
+ // A fleet step is dispatched by executeFleetRun, which drains the handle
421
+ // itself and never builds a dispatch event registry, so the domain is the
422
+ // only thing that can write each step's durable transcript.
423
+ createDispatchDomainModule({ journalRunEvents: true }),
377
424
  SessionDomainModule,
378
425
  LifecycleDomainModule
379
426
  ]);
@@ -386,12 +433,14 @@ async function runFleet(args) {
386
433
  await loaded.stop();
387
434
  return fail("required domains unavailable (dispatch/agents/safety)");
388
435
  }
436
+ const fleetSettings = config?.get() ?? readSettings();
437
+ configureRunEventJournal(fleetSettings.panes.journal);
389
438
  const roleFacts = agentRoleFactsResolver((id) => agents.getSpec(id));
390
439
  const preflightError = preflightFleet(contract, {
391
440
  agents,
392
441
  safety,
393
442
  scheduling,
394
- settings: config?.get() ?? readSettings()
443
+ settings: fleetSettings
395
444
  });
396
445
  if (preflightError !== null) {
397
446
  await loaded.stop();
@@ -513,36 +562,47 @@ async function runFleet(args) {
513
562
  ...resume !== void 0 ? { resume } : {},
514
563
  onStepSettled(step) {
515
564
  if (step.replayed === true && step.result !== void 0) {
516
- if (json)
565
+ if (json) {
517
566
  process.stdout.write(
518
- `${JSON.stringify({ stepId: step.stepId, status: "replayed", receipt: { runId: step.result.terminalRunId, digest: step.result.receiptDigest } })}
567
+ `${JSON.stringify({
568
+ stepId: step.stepId,
569
+ status: "replayed",
570
+ receipt: {
571
+ runId: step.result.terminalRunId,
572
+ digest: step.result.receiptDigest
573
+ }
574
+ })}
519
575
  `
520
576
  );
521
- else
577
+ } else {
522
578
  process.stdout.write(
523
579
  `step ${step.stepId}: replayed terminal-run=${step.result.terminalRunId} receipt=${step.result.receiptDigest}
524
580
  `
525
581
  );
582
+ }
526
583
  return;
527
584
  }
528
585
  if (step.receipt !== void 0) {
529
586
  if (json) process.stdout.write(`${JSON.stringify(step.receipt)}
530
587
  `);
531
- else
588
+ else {
532
589
  process.stdout.write(
533
- `step ${step.stepId} ${step.agentId}: ${step.succeeded ? "succeeded" : "failed"}${step.failureReason !== void 0 ? ` reason=${step.failureReason}` : ""} assignment=${step.assignmentId} terminal-run=${step.terminalRunId} cost=$${step.costUsd.toFixed(4)}
590
+ `step ${step.stepId} ${step.agentId}: ${step.succeeded ? "succeeded" : "failed"}${step.failureReason !== void 0 ? ` reason=${step.failureReason}` : ""} assignment=${step.assignmentId} terminal-run=${step.terminalRunId} cost=${renderCostAmount(step.costUsd, step.costProvenance)}
534
591
  `
535
592
  );
593
+ }
536
594
  return;
537
595
  }
538
596
  if (step.codeStep !== void 0) {
539
- if (json) process.stdout.write(`${JSON.stringify({ codeStep: step.codeStep })}
597
+ if (json) {
598
+ process.stdout.write(`${JSON.stringify({ codeStep: step.codeStep })}
540
599
  `);
541
- else
600
+ } else {
542
601
  process.stdout.write(
543
602
  `step ${step.stepId} code:${step.commandId}: ${step.succeeded ? "passed" : "failed"} exit=${step.codeStep.exitCode} ${step.codeStep.durationMs}ms record=${step.recordPath}
544
603
  `
545
604
  );
605
+ }
546
606
  }
547
607
  },
548
608
  onNotice(text, kind) {
@@ -576,26 +636,34 @@ async function runFleet(args) {
576
636
  );
577
637
  } else {
578
638
  process.stdout.write(
579
- `fleet ${contract.name}: ${outcome.succeededStepCount}/${outcome.requiredStepCount} steps succeeded, ${outcome.resolvedLoopCount}/${outcome.result.loops.length} loops resolved, total cost $${outcome.totalCostUsd.toFixed(4)}
639
+ `fleet ${contract.name}: ${outcome.succeededStepCount}/${outcome.requiredStepCount} steps succeeded, ${outcome.resolvedLoopCount}/${outcome.result.loops.length} loops resolved, total cost ${renderCostAggregate(outcome.totalCost)}
580
640
  `
581
641
  );
582
- for (const loop of outcome.result.loops)
642
+ for (const loop of outcome.result.loops) {
583
643
  process.stdout.write(
584
644
  ` loop ${loop.loopId}: ${loop.reason} after ${loop.attempts} verification(s) and ${loop.repairs} repair(s)
585
645
  `
586
646
  );
587
- if (outcome.result.revalidated.length > 0)
647
+ }
648
+ if (outcome.result.revalidated.length > 0) {
588
649
  process.stdout.write(
589
- ` staleness: re-ran ${outcome.result.revalidated.join(", ")} because a workspace step landed after the last green
650
+ ` staleness: re-ran ${outcome.result.revalidated.join(
651
+ ", "
652
+ )} because a workspace step landed after the last green
590
653
  `
591
654
  );
592
- for (const message of outcome.result.needsDecision) process.stdout.write(` needs operator decision: ${message}
655
+ }
656
+ for (const message of outcome.result.needsDecision) {
657
+ process.stdout.write(` needs operator decision: ${message}
593
658
  `);
659
+ }
594
660
  for (const boundary of outcome.result.writeBoundaries) {
595
661
  if (!boundary.violated) continue;
596
662
  process.stdout.write(` write boundary ${boundary.window}: ${boundary.detail ?? WRITE_BOUNDARY_VIOLATION_REASON}
597
663
  `);
598
664
  }
665
+ process.stdout.write(` clio-coder fleet view ${fleetRootId} step index with each step's run id
666
+ `);
599
667
  }
600
668
  return outcome.cleanRun ? 0 : 1;
601
669
  }
@@ -620,14 +688,20 @@ function receiptTokenSplit(row) {
620
688
  const path = row.receiptPath ?? join(clioStateDir(), "receipts", `${row.id}.json`);
621
689
  try {
622
690
  const parsed = JSON.parse(readFileSync(path, "utf8"));
623
- return { input: finiteCount(parsed.inputTokenCount), output: finiteCount(parsed.outputTokenCount) };
691
+ return {
692
+ input: finiteCount(parsed.inputTokenCount),
693
+ output: finiteCount(parsed.outputTokenCount)
694
+ };
624
695
  } catch {
625
696
  return null;
626
697
  }
627
698
  }
628
699
  function rowTokenSplit(row) {
629
700
  if (row.inputTokenCount !== void 0 || row.outputTokenCount !== void 0) {
630
- return { input: finiteCount(row.inputTokenCount), output: finiteCount(row.outputTokenCount) };
701
+ return {
702
+ input: finiteCount(row.inputTokenCount),
703
+ output: finiteCount(row.outputTokenCount)
704
+ };
631
705
  }
632
706
  if (row.endedAt !== null) {
633
707
  return receiptTokenSplit(row) ?? { input: 0, output: 0 };
@@ -656,10 +730,16 @@ function statusSnapshot() {
656
730
  elapsedMs: Number.isFinite(startedMs) ? Math.max(0, nowMs - startedMs) : 0,
657
731
  tokens: { input: 0, output: 0, total: row.tokenCount },
658
732
  costUsd: row.costUsd,
733
+ // Absent on pre-provenance ledger rows, which readers must treat as
734
+ // unknown; `renderCostAmount` normalizes it rather than assuming free.
735
+ costProvenance: row.costProvenance,
659
736
  node: row.node?.id ?? "local"
660
737
  };
661
738
  });
662
739
  const totals = { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUsd: 0, runtimeSeconds: 0 };
740
+ const cost = aggregateCostAmounts(
741
+ rows.map((row) => ({ usd: row.costUsd, provenance: normalizeCostProvenance(row.costProvenance) }))
742
+ );
663
743
  for (const row of rows) {
664
744
  const split = rowTokenSplit(row);
665
745
  totals.inputTokens += split.input;
@@ -677,7 +757,7 @@ function statusSnapshot() {
677
757
  admission: admissionStatus(capacityDrain(nowMs)),
678
758
  running,
679
759
  retrying: [],
680
- totals
760
+ totals: { ...totals, cost }
681
761
  };
682
762
  }
683
763
  function runStatus(args) {
@@ -702,7 +782,7 @@ function runStatus(args) {
702
782
  for (const row of snapshot.running) {
703
783
  const lineage = row.lineage;
704
784
  process.stdout.write(
705
- ` ${row.runId} ${row.agentId} node=${row.node} ${row.heartbeat} attempt=${lineage.attempt} depth=${lineage.depth} ${Math.round(row.elapsedMs / 1e3)}s $${row.costUsd.toFixed(4)}
785
+ ` ${row.runId} ${row.agentId} node=${row.node} ${row.heartbeat} attempt=${lineage.attempt} depth=${lineage.depth} ${Math.round(row.elapsedMs / 1e3)}s ${renderCostAmount(row.costUsd, row.costProvenance)}
706
786
  `
707
787
  );
708
788
  const budget = row.budget;
@@ -729,7 +809,7 @@ function runStatus(args) {
729
809
  }
730
810
  const t = snapshot.totals;
731
811
  process.stdout.write(
732
- `totals: tokens=${t.totalTokens} (in=${t.inputTokens} out=${t.outputTokens}) cost=$${t.costUsd.toFixed(4)} runtime=${Math.round(t.runtimeSeconds)}s
812
+ `totals: tokens=${t.totalTokens} (in=${t.inputTokens} out=${t.outputTokens}) cost=${renderCostAggregate(t.cost)} runtime=${Math.round(t.runtimeSeconds)}s
733
813
  `
734
814
  );
735
815
  return 0;
@@ -770,15 +850,23 @@ async function runFleetCommand(args) {
770
850
  case "new":
771
851
  return (await import("./fleet-new-RDVJLHHH.js")).runFleetNew(args.slice(1));
772
852
  case "validate":
773
- return (await import("./fleet-validate-C5RI6DP7.js")).runFleetValidate(args.slice(1));
853
+ return (await import("./fleet-validate-AJRPDMDV.js")).runFleetValidate(args.slice(1));
774
854
  case "graph":
775
- return (await import("./fleet-graph-2J3OOIPO.js")).runFleetGraph(args.slice(1));
855
+ return (await import("./fleet-graph-JF5QOATM.js")).runFleetGraph(args.slice(1));
776
856
  case "commands":
777
- return (await import("./fleet-commands-L2SXSYEI.js")).runFleetCommands(args.slice(1));
857
+ return (await import("./fleet-commands-VJ726XIA.js")).runFleetCommands(args.slice(1));
778
858
  case "run":
779
859
  return runFleet(args.slice(1));
780
860
  case "status":
781
861
  return runStatus(args.slice(1));
862
+ case "inspect":
863
+ return (await import("./fleet-inspect-VLY4S7QM.js")).runFleetInspect(args.slice(1));
864
+ case "decisions":
865
+ return (await import("./fleet-decisions-EPAPM3XJ.js")).runFleetDecisions(args.slice(1));
866
+ case "verify":
867
+ return (await import("./fleet-verify-JFEL2L3H.js")).runFleetVerify(args.slice(1));
868
+ case "view":
869
+ return (await import("./fleet-view-ZCON35AG.js")).runFleetView(args.slice(1));
782
870
  case "drain":
783
871
  return runAdmissionControl("drain", args.slice(1));
784
872
  case "resume":
@@ -794,4 +882,4 @@ export {
794
882
  runFleetCommand,
795
883
  statusSnapshot
796
884
  };
797
- //# sourceMappingURL=fleet-6CNVBZZP.js.map
885
+ //# sourceMappingURL=fleet-2RRVDF2V.js.map
@@ -1,24 +1,24 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  discoverDeclaredProjectCommands
4
- } from "./chunk-4LJX2PUC.js";
5
- import "./chunk-NQ6UCCOD.js";
6
- import "./chunk-P3JGPQFL.js";
4
+ } from "./chunk-JDG2WCRO.js";
5
+ import "./chunk-3URVFKWK.js";
6
+ import "./chunk-YDFRH54B.js";
7
7
  import "./chunk-LCGCVYZ4.js";
8
- import "./chunk-CA42X6KT.js";
8
+ import "./chunk-HWHKMHUA.js";
9
9
  import "./chunk-VG7TBQIY.js";
10
- import "./chunk-A2NJGIB3.js";
10
+ import "./chunk-5LXZXPKX.js";
11
11
  import "./chunk-OQE5J4C6.js";
12
+ import "./chunk-6XLNIQDB.js";
12
13
  import "./chunk-UL3WSD3F.js";
13
14
  import "./chunk-ECH6PKUQ.js";
14
- import "./chunk-6XLNIQDB.js";
15
15
  import "./chunk-5B2AEOW5.js";
16
- import "./chunk-CGKSTWHD.js";
17
- import "./chunk-B5CSFE7B.js";
16
+ import "./chunk-K6BSR66V.js";
17
+ import "./chunk-BBVJUZHB.js";
18
18
  import "./chunk-FQ4SKYE4.js";
19
19
  import "./chunk-6EJMN2Y3.js";
20
20
  import "./chunk-APJ265NV.js";
21
- import "./chunk-BNAZZHFG.js";
21
+ import "./chunk-BYP5D4HI.js";
22
22
  import "./chunk-UOSL25KY.js";
23
23
  import "./chunk-YXLYO42X.js";
24
24
  import {
@@ -67,4 +67,4 @@ function runFleetCommands(args) {
67
67
  export {
68
68
  runFleetCommands
69
69
  };
70
- //# sourceMappingURL=fleet-commands-L2SXSYEI.js.map
70
+ //# sourceMappingURL=fleet-commands-VJ726XIA.js.map