@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
@@ -1,72 +1,79 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- discoverAgentRecipes
4
- } from "./chunk-HCBCAYZU.js";
5
- import "./chunk-AD7Y7STJ.js";
6
- import "./chunk-AMKHQW3C.js";
3
+ EVAL_SUITE_V2_VERSION
4
+ } from "./chunk-KMVISBZR.js";
7
5
  import {
8
6
  loadFragments,
9
7
  renderCodewikiDigest
10
- } from "./chunk-47CMYGET.js";
8
+ } from "./chunk-VAZSBTKF.js";
11
9
  import {
12
- EVAL_BEHAVIOR_METRIC_DEFINITIONS_V1,
13
- EVAL_EXECUTION_ENVELOPE_SCHEMA_V1,
14
- EVAL_TRACKED_METRIC_NAMES,
15
- EVAL_VERDICT_SCHEMA_V1,
16
10
  EvalTaskFileError,
17
11
  TRUST_STATUS_AXES,
18
12
  adaptRunReceiptTrustStatus,
19
13
  assertComparableTrackedMetricSources,
20
- assertEvalBehaviorReferencesVerdictV1,
21
- buildEvalBehaviorMetricsV1,
22
- createEvalId,
23
14
  evalClioProvenance,
24
15
  evalEnvironmentProvenance,
25
- evalHarnessMetricsFromReceipt,
26
16
  evalServingConfiguration,
27
17
  evalServingObservationFrom,
28
18
  formatTrustSummary,
29
19
  inspectRunReceiptTrustStatus,
20
+ loadEvalTaskFile,
21
+ summarizeTrustStatus,
22
+ verifyReceiptIntegrity
23
+ } from "./chunk-B7OBL7PK.js";
24
+ import {
25
+ listSessionLedgerRefs,
26
+ parseSessionEntries
27
+ } from "./chunk-QREDIESB.js";
28
+ import "./chunk-3DPEIQKN.js";
29
+ import {
30
+ EVAL_BEHAVIOR_METRIC_DEFINITIONS_V1,
31
+ EVAL_EXECUTION_ENVELOPE_SCHEMA_V1,
32
+ EVAL_TRACKED_METRIC_NAMES,
33
+ EVAL_VERDICT_SCHEMA_V1,
34
+ assertEvalBehaviorReferencesVerdictV1,
35
+ buildEvalBehaviorMetricsV1,
36
+ createEvalId,
37
+ evalHarnessMetricsFromReceipt,
38
+ evalServingConfigurationOf,
30
39
  judgeEvalBehaviorV1,
31
40
  loadEvalArtifactV4,
32
- loadEvalTaskFile,
33
41
  parseEvalBehaviorScenarioV1,
34
42
  parseEvalExecutionMatrixDimensionsV1,
35
43
  parseEvalVerdictEnvelopeV1,
36
44
  renderEvalServingConfiguration,
37
45
  sameEvalServingConfiguration,
38
- summarizeTrustStatus,
39
- verifyReceiptIntegrity,
40
46
  writeEvalArtifactV4
41
- } from "./chunk-MLOK6ZOS.js";
42
- import {
43
- listSessionLedgerRefs,
44
- parseSessionEntries
45
- } from "./chunk-LXPJXFM5.js";
46
- import "./chunk-3DPEIQKN.js";
47
+ } from "./chunk-NHLBIGRH.js";
47
48
  import "./chunk-W6GROXXM.js";
48
- import "./chunk-RKKLTLYB.js";
49
- import "./chunk-5QKCQQ3E.js";
50
49
  import {
51
50
  shellQuote
52
51
  } from "./chunk-TXOTCRLG.js";
53
52
  import "./chunk-HVDIIIQW.js";
54
- import "./chunk-VPTUJU4P.js";
53
+ import {
54
+ discoverAgentRecipes
55
+ } from "./chunk-Z4TXYIEG.js";
56
+ import "./chunk-VYMXRQI6.js";
57
+ import "./chunk-FEFIFZTL.js";
58
+ import "./chunk-RKKLTLYB.js";
59
+ import "./chunk-SUW5DORT.js";
60
+ import "./chunk-SJ5ZKQ4S.js";
55
61
  import "./chunk-2JDWVJND.js";
56
- import "./chunk-H7IXIC72.js";
57
62
  import {
58
63
  createSafetyPolicyEngine
59
- } from "./chunk-N3PBVRTZ.js";
60
- import "./chunk-A2NJGIB3.js";
64
+ } from "./chunk-32KWKNSF.js";
65
+ import "./chunk-H7IXIC72.js";
66
+ import "./chunk-5LXZXPKX.js";
67
+ import "./chunk-RAPCMZL4.js";
68
+ import "./chunk-HHV2GANA.js";
61
69
  import {
62
70
  agentSpecFingerprint,
63
71
  normalizeAgentSpec
64
- } from "./chunk-S4COXYBG.js";
65
- import "./chunk-MV3K5QF2.js";
66
- import "./chunk-RAPCMZL4.js";
72
+ } from "./chunk-DYJP44XW.js";
73
+ import "./chunk-GCSMB2KY.js";
67
74
  import "./chunk-UL3WSD3F.js";
68
75
  import "./chunk-ECH6PKUQ.js";
69
- import "./chunk-CGKSTWHD.js";
76
+ import "./chunk-K6BSR66V.js";
70
77
  import {
71
78
  readCodewiki,
72
79
  structuralCodewikiHash
@@ -79,29 +86,30 @@ import {
79
86
  } from "./chunk-33YXPOE3.js";
80
87
  import "./chunk-7CR24IG7.js";
81
88
  import "./chunk-XPLRXC72.js";
82
- import "./chunk-IFBNV6H6.js";
89
+ import "./chunk-2ANTL7MR.js";
83
90
  import {
84
91
  printError
85
- } from "./chunk-XK56QHLX.js";
92
+ } from "./chunk-VPKWYKEY.js";
86
93
  import "./chunk-5TSRNF4G.js";
87
94
  import "./chunk-CFGTUFWB.js";
88
95
  import {
89
96
  extractReasoningTokens
90
- } from "./chunk-AEYBF3TB.js";
91
- import "./chunk-IHXBNWMM.js";
92
- import "./chunk-B5CSFE7B.js";
93
- import "./chunk-PNY46YEY.js";
94
- import "./chunk-FQ4SKYE4.js";
95
- import "./chunk-RKRLDWD3.js";
97
+ } from "./chunk-UM7N4G5A.js";
98
+ import "./chunk-HLW2MRKE.js";
99
+ import "./chunk-76ONBSIA.js";
96
100
  import {
97
101
  InvalidIdError
98
- } from "./chunk-KV2AOLDF.js";
102
+ } from "./chunk-R346GLFC.js";
103
+ import "./chunk-IHXBNWMM.js";
104
+ import "./chunk-VFA6GDY5.js";
105
+ import "./chunk-BBVJUZHB.js";
106
+ import "./chunk-FQ4SKYE4.js";
99
107
  import "./chunk-6EJMN2Y3.js";
100
108
  import "./chunk-IWHMRKLL.js";
101
- import "./chunk-XDOQXGFO.js";
109
+ import "./chunk-GXNLGKAB.js";
102
110
  import "./chunk-LL4KHSZI.js";
103
111
  import "./chunk-4ZG3XFUR.js";
104
- import "./chunk-EQ63NRB7.js";
112
+ import "./chunk-BBVYXMFO.js";
105
113
  import "./chunk-SST6Z5JA.js";
106
114
  import "./chunk-IKCO5N3L.js";
107
115
  import "./chunk-3I7MS7N2.js";
@@ -111,7 +119,7 @@ import {
111
119
  import {
112
120
  clioDataDir,
113
121
  clioStateDir
114
- } from "./chunk-BNAZZHFG.js";
122
+ } from "./chunk-BYP5D4HI.js";
115
123
  import "./chunk-WEPFGWHJ.js";
116
124
  import "./chunk-YXLYO42X.js";
117
125
  import {
@@ -453,8 +461,8 @@ var EvalServingConfigurationDriftError = class extends Error {
453
461
  function compareEvalArtifactsV4(baseline, candidate, options = {}) {
454
462
  const baselineTokens = baseline.summary.tokens;
455
463
  const candidateTokens = candidate.summary.tokens;
456
- const baselineServing = servingConfigurationOf(baseline);
457
- const candidateServing = servingConfigurationOf(candidate);
464
+ const baselineServing = evalServingConfigurationOf(baseline);
465
+ const candidateServing = evalServingConfigurationOf(candidate);
458
466
  const configDrift = !sameEvalServingConfiguration(baselineServing, candidateServing);
459
467
  if (configDrift && options.allowConfigDrift !== true) {
460
468
  throw new EvalServingConfigurationDriftError(baselineServing, candidateServing);
@@ -654,17 +662,6 @@ function metricComparison(scenarioId, metric, baseline, candidate) {
654
662
  varianceChange: classifyChange(baseline.variance ?? null, candidate.variance ?? null, "lower")
655
663
  };
656
664
  }
657
- function servingConfigurationOf(artifact) {
658
- return artifact.servingConfiguration ?? {
659
- targetId: artifact.matrix.target,
660
- runtimeId: null,
661
- modelId: artifact.matrix.model,
662
- serverBuild: null,
663
- total_slots: null,
664
- thinkingLevel: artifact.matrix.thinking,
665
- compiledPromptHash: null
666
- };
667
- }
668
665
  function normalizeMetricFilter(metric) {
669
666
  if (metric === void 0) return void 0;
670
667
  const trimmed = metric.trim();
@@ -1052,12 +1049,6 @@ import { dirname, resolve } from "node:path";
1052
1049
 
1053
1050
  // src/domains/eval/schema/validate.ts
1054
1051
  init_esm_shims();
1055
-
1056
- // src/domains/eval/schema/suite.ts
1057
- init_esm_shims();
1058
- var EVAL_SUITE_V2_VERSION = 2;
1059
-
1060
- // src/domains/eval/schema/validate.ts
1061
1052
  var RUNNER_KINDS = /* @__PURE__ */ new Set(["clio-run", "context-index", "context-init", "external-command"]);
1062
1053
  var WORKSPACE_KINDS = /* @__PURE__ */ new Set(["local", "git", "temp-copy"]);
1063
1054
  var OPS = /* @__PURE__ */ new Set(["lt", "lte", "gt", "gte", "eq", "neq"]);
@@ -4167,6 +4158,13 @@ Commands:
4167
4158
  clio-coder eval report <evalId> --format text|json|md|swe-jsonl|junit
4168
4159
  clio-coder eval compare <baselineEvalId> <candidateEvalId> [--metric <name>] [--format text|json|md|junit] [--allow-config-drift]
4169
4160
  clio-coder eval gate <candidateEvalId> --baseline <baselineEvalId> [--thresholds <file>]
4161
+ clio-coder eval inventory --json
4162
+
4163
+ inventory is the fixed machine-readable read a GUI host may run. Unlike report
4164
+ and compare it names no eval id, so the process it starts cannot be steered to a
4165
+ different report or a wider window. It carries each stored report's identity,
4166
+ provenance, serving facts, accounting, and per-scenario outcomes, and none of
4167
+ the runner attachments a report holds.
4170
4168
  `;
4171
4169
  function parseEvalArgs(args) {
4172
4170
  const parsed = {
@@ -4308,6 +4306,10 @@ function parseEvalArgs(args) {
4308
4306
  return parsed;
4309
4307
  }
4310
4308
  async function runEvalCommand(args) {
4309
+ if (args[0] === "inventory") {
4310
+ const { runEvalInventory } = await import("./eval-inventory-SXH7PDKX.js");
4311
+ return runEvalInventory(args.slice(1));
4312
+ }
4311
4313
  let parsed;
4312
4314
  try {
4313
4315
  parsed = parseEvalArgs(args);
@@ -4480,4 +4482,4 @@ function comparisonFormat(value) {
4480
4482
  export {
4481
4483
  runEvalCommand
4482
4484
  };
4483
- //# sourceMappingURL=eval-IJ5VEZDJ.js.map
4485
+ //# sourceMappingURL=eval-TFBYQH4H.js.map
@@ -0,0 +1,316 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ CANONICAL_METRICS,
4
+ CANONICAL_METRIC_PREFIXES
5
+ } from "./chunk-KMVISBZR.js";
6
+ import {
7
+ EVAL_EXECUTION_MATRIX_DIMENSIONS_V1,
8
+ evalRoot,
9
+ evalServingConfigurationOf,
10
+ loadEvalArtifactV4,
11
+ sameEvalServingConfiguration
12
+ } from "./chunk-NHLBIGRH.js";
13
+ import "./chunk-R346GLFC.js";
14
+ import {
15
+ clioDataDir
16
+ } from "./chunk-BYP5D4HI.js";
17
+ import "./chunk-WEPFGWHJ.js";
18
+ import {
19
+ init_esm_shims
20
+ } from "./chunk-3R73A4XB.js";
21
+
22
+ // src/cli/eval-inventory.ts
23
+ init_esm_shims();
24
+
25
+ // src/domains/eval/inventory.ts
26
+ init_esm_shims();
27
+ import { readdir } from "node:fs/promises";
28
+ var EVAL_ID_PATTERN = /^eval-(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})(\d{3})Z-([0-9a-f]{8})-([0-9a-f]{12})$/u;
29
+ function idStamp(evalId) {
30
+ const match = EVAL_ID_PATTERN.exec(evalId);
31
+ if (match === null) return null;
32
+ const [, year, month, day, hour, minute, second, millisecond, suiteHashPrefix] = match;
33
+ const startedAt = `${year}-${month}-${day}T${hour}:${minute}:${second}.${millisecond}Z`;
34
+ const parsed = new Date(startedAt);
35
+ if (Number.isNaN(parsed.getTime()) || parsed.toISOString() !== startedAt) return null;
36
+ return { startedAt, suiteHashPrefix };
37
+ }
38
+ function byNewest(left, right) {
39
+ const leftStamp = idStamp(left)?.startedAt ?? "";
40
+ const rightStamp = idStamp(right)?.startedAt ?? "";
41
+ if (leftStamp !== rightStamp) return leftStamp < rightStamp ? 1 : -1;
42
+ return left < right ? 1 : -1;
43
+ }
44
+ async function listEvalReports(dataDir, limit) {
45
+ let entries;
46
+ try {
47
+ entries = await readdir(evalRoot(dataDir));
48
+ } catch (error) {
49
+ if (error.code === "ENOENT") {
50
+ return { available: false, stored: 0, reports: [], unreadable: 0 };
51
+ }
52
+ throw error;
53
+ }
54
+ const ids = entries.filter((entry) => entry.endsWith(".json")).map((entry) => entry.slice(0, -".json".length)).sort(byNewest);
55
+ const reports = [];
56
+ let unreadable = 0;
57
+ for (const evalId of ids.slice(0, limit)) {
58
+ let artifact;
59
+ try {
60
+ artifact = await loadEvalArtifactV4(dataDir, evalId);
61
+ } catch {
62
+ unreadable += 1;
63
+ continue;
64
+ }
65
+ if (artifact.evalId !== evalId) {
66
+ unreadable += 1;
67
+ continue;
68
+ }
69
+ const stamp = idStamp(evalId);
70
+ reports.push({
71
+ evalId,
72
+ startedAt: stamp !== null && artifact.suite.hash.startsWith(stamp.suiteHashPrefix) ? stamp.startedAt : null,
73
+ artifact
74
+ });
75
+ }
76
+ return { available: true, stored: ids.length, reports, unreadable };
77
+ }
78
+
79
+ // src/cli/eval-inventory.ts
80
+ var EVAL_INVENTORY_MAX_REPORTS = 8;
81
+ var EVAL_INVENTORY_MAX_SCENARIOS = 16;
82
+ var FAILURE_CLASSES = [
83
+ "budget_exhausted",
84
+ "runner_failed",
85
+ "grader_failed",
86
+ "verifier_failed",
87
+ "forbidden_path",
88
+ "assertion_unresolved",
89
+ "assertion_failed",
90
+ "setup_failed",
91
+ "command_error"
92
+ ];
93
+ var REPORTED_FAILURE_CLASSES = [...FAILURE_CLASSES, "other"];
94
+ var BEHAVIOR_OUTCOMES = ["pass", "behavioral_failure", "unknown", "unmeasured", "infrastructure_failure"];
95
+ var IDENTIFIER_PATTERN = /^[A-Za-z0-9._-]{1,128}$/u;
96
+ var VERSION_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/u;
97
+ var COMMIT_PATTERN = /^[0-9a-f]{7,64}$/u;
98
+ var CANONICAL_METRIC_NAMES = new Set(CANONICAL_METRICS);
99
+ function isCanonicalMetric(name) {
100
+ return CANONICAL_METRIC_NAMES.has(name) || CANONICAL_METRIC_PREFIXES.some((prefix) => name.startsWith(prefix));
101
+ }
102
+ function identifier(value) {
103
+ return value !== null && IDENTIFIER_PATTERN.test(value) ? value : null;
104
+ }
105
+ function tally(value) {
106
+ return typeof value === "number" && Number.isFinite(value) && value >= 0 ? Math.trunc(value) : 0;
107
+ }
108
+ function isRecord(value) {
109
+ return typeof value === "object" && value !== null && !Array.isArray(value);
110
+ }
111
+ function projectScenarios(artifact) {
112
+ if (artifact.aggregates === void 0) return { scenarios: null, truncated: false, dropped: 0 };
113
+ const projected = [];
114
+ let dropped = 0;
115
+ for (const entry of artifact.aggregates) {
116
+ if (!isRecord(entry)) {
117
+ dropped += 1;
118
+ continue;
119
+ }
120
+ const scenarioId = identifier(typeof entry.scenarioId === "string" ? entry.scenarioId : null);
121
+ if (scenarioId === null) {
122
+ dropped += 1;
123
+ continue;
124
+ }
125
+ const trials = tally(entry.trials);
126
+ const passed = tally(entry.passed);
127
+ const failed = tally(entry.failed);
128
+ const unmeasured = tally(entry.unmeasured);
129
+ const machineryFailures = tally(entry.machineryFailures);
130
+ if (passed + failed + unmeasured !== trials || machineryFailures > failed) {
131
+ dropped += 1;
132
+ continue;
133
+ }
134
+ projected.push({
135
+ scenarioId,
136
+ trials,
137
+ passed,
138
+ failed,
139
+ unmeasured,
140
+ machineryFailures,
141
+ // Re-derived rather than read, because both are pure functions of the
142
+ // counts beside them and a stored disagreement is not a second opinion.
143
+ passAtK: trials > 0 && passed > 0 ? 1 : 0,
144
+ passPowK: trials > 0 && passed === trials ? 1 : 0
145
+ });
146
+ }
147
+ const scenarios = projected.slice(0, EVAL_INVENTORY_MAX_SCENARIOS);
148
+ return { scenarios, truncated: scenarios.length < projected.length, dropped };
149
+ }
150
+ function projectTokens(artifact) {
151
+ const tokens = artifact.summary.tokens;
152
+ if (!tokens.measured) {
153
+ return {
154
+ measured: false,
155
+ runs: tally(tokens.runs),
156
+ measuredRuns: 0,
157
+ input: null,
158
+ output: null,
159
+ total: null,
160
+ cacheRead: null,
161
+ cacheWrite: null
162
+ };
163
+ }
164
+ return {
165
+ measured: true,
166
+ runs: tally(tokens.runs),
167
+ measuredRuns: tally(tokens.measuredRuns),
168
+ input: tally(tokens.input),
169
+ output: tally(tokens.output),
170
+ total: tally(tokens.total),
171
+ cacheRead: tally(tokens.cacheRead),
172
+ cacheWrite: tally(tokens.cacheWrite)
173
+ };
174
+ }
175
+ function classifyFailure(failureClass) {
176
+ if (failureClass === null) return null;
177
+ return FAILURE_CLASSES.includes(failureClass) ? failureClass : "other";
178
+ }
179
+ function countResults(results) {
180
+ let withAssignment = 0;
181
+ let withTerminalReceipt = 0;
182
+ let withVerdict = 0;
183
+ let withBehavioral = 0;
184
+ let withExecutionEnvelope = 0;
185
+ let machineryFailures = 0;
186
+ let attachments = 0;
187
+ let canonicalMetrics = 0;
188
+ let otherMetrics = 0;
189
+ const failures = /* @__PURE__ */ new Map();
190
+ const outcomes = /* @__PURE__ */ new Map();
191
+ for (const result of results) {
192
+ if (result.assignmentId !== null) withAssignment += 1;
193
+ if (result.terminalReceiptDigest !== null) withTerminalReceipt += 1;
194
+ if (result.verdict !== void 0) withVerdict += 1;
195
+ if (result.verdict?.machinery === "infrastructure_failure") machineryFailures += 1;
196
+ if (result.behavioral !== void 0) withBehavioral += 1;
197
+ if (result.executionEnvelope !== void 0) withExecutionEnvelope += 1;
198
+ attachments += Object.keys(result.artifacts).length;
199
+ for (const name of Object.keys(result.metrics)) {
200
+ if (isCanonicalMetric(name)) canonicalMetrics += 1;
201
+ else otherMetrics += 1;
202
+ }
203
+ const failureClass = classifyFailure(result.failureClass);
204
+ if (failureClass !== null) failures.set(failureClass, (failures.get(failureClass) ?? 0) + 1);
205
+ const outcome = result.behavioral?.outcome;
206
+ if (outcome !== void 0 && BEHAVIOR_OUTCOMES.includes(outcome)) {
207
+ outcomes.set(outcome, (outcomes.get(outcome) ?? 0) + 1);
208
+ }
209
+ }
210
+ return {
211
+ counts: {
212
+ total: results.length,
213
+ withAssignment,
214
+ withTerminalReceipt,
215
+ withVerdict,
216
+ withBehavioral,
217
+ withExecutionEnvelope,
218
+ machineryFailures,
219
+ attachments,
220
+ canonicalMetrics,
221
+ otherMetrics
222
+ },
223
+ failureClasses: REPORTED_FAILURE_CLASSES.flatMap((failureClass) => {
224
+ const count = failures.get(failureClass) ?? 0;
225
+ return count === 0 ? [] : [{ failureClass, count }];
226
+ }),
227
+ behaviorOutcomes: BEHAVIOR_OUTCOMES.flatMap((outcome) => {
228
+ const count = outcomes.get(outcome) ?? 0;
229
+ return count === 0 ? [] : [{ outcome, count }];
230
+ })
231
+ };
232
+ }
233
+ function projectReport(evalId, startedAt, artifact, servingGroup) {
234
+ const serving = evalServingConfigurationOf(artifact);
235
+ const { counts, failureClasses, behaviorOutcomes } = countResults(artifact.results);
236
+ const { scenarios, truncated, dropped } = projectScenarios(artifact);
237
+ const version = artifact.clio.version;
238
+ const commit = artifact.clio.commit;
239
+ return {
240
+ evalId,
241
+ startedAt,
242
+ suiteId: identifier(artifact.suite.id) ?? "unavailable",
243
+ servingGroup,
244
+ clioVersion: VERSION_PATTERN.test(version) ? version : null,
245
+ clioCommit: commit !== null && COMMIT_PATTERN.test(commit) ? commit : null,
246
+ platform: identifier(artifact.environment.platform),
247
+ node: identifier(artifact.environment.node),
248
+ matrix: {
249
+ target: identifier(artifact.matrix.target),
250
+ model: identifier(artifact.matrix.model),
251
+ thinking: identifier(artifact.matrix.thinking),
252
+ dimensions: (artifact.matrix.dimensions ?? []).filter(
253
+ (dimension) => EVAL_EXECUTION_MATRIX_DIMENSIONS_V1.includes(dimension)
254
+ )
255
+ },
256
+ serving: {
257
+ observed: artifact.servingConfiguration !== void 0,
258
+ targetId: identifier(serving.targetId),
259
+ runtimeId: identifier(serving.runtimeId),
260
+ modelId: identifier(serving.modelId),
261
+ serverBuild: identifier(serving.serverBuild),
262
+ thinkingLevel: identifier(serving.thinkingLevel),
263
+ totalSlots: serving.total_slots === null ? null : tally(serving.total_slots),
264
+ compiledPromptPinned: serving.compiledPromptHash !== null
265
+ },
266
+ summary: {
267
+ runs: tally(artifact.summary.runs),
268
+ passed: tally(artifact.summary.passed),
269
+ failed: tally(artifact.summary.failed),
270
+ passRate: Number.isFinite(artifact.summary.passRate) ? Math.min(1, Math.max(0, artifact.summary.passRate)) : 0,
271
+ wallTimeMs: tally(artifact.summary.wallTimeMs),
272
+ tokens: projectTokens(artifact)
273
+ },
274
+ results: counts,
275
+ failureClasses,
276
+ behaviorOutcomes,
277
+ scenarios,
278
+ scenariosTruncated: truncated,
279
+ scenariosDropped: dropped
280
+ };
281
+ }
282
+ async function evalInventorySnapshot(now = Date.now, dataDir = clioDataDir()) {
283
+ const listing = await listEvalReports(dataDir, EVAL_INVENTORY_MAX_REPORTS);
284
+ const groups = [];
285
+ const reports = listing.reports.map((stored) => {
286
+ const serving = evalServingConfigurationOf(stored.artifact);
287
+ let index = groups.findIndex((candidate) => sameEvalServingConfiguration(candidate, serving));
288
+ if (index === -1) index = groups.push(serving) - 1;
289
+ return projectReport(stored.evalId, stored.startedAt, stored.artifact, index + 1);
290
+ });
291
+ return {
292
+ version: 1,
293
+ generatedAt: new Date(now()).toISOString(),
294
+ available: listing.available,
295
+ stored: listing.stored,
296
+ unreadable: listing.unreadable,
297
+ reports,
298
+ truncated: listing.stored > listing.reports.length + listing.unreadable
299
+ };
300
+ }
301
+ async function runEvalInventory(args) {
302
+ if (args.length !== 1 || args[0] !== "--json") {
303
+ process.stderr.write("clio-coder eval inventory: usage: clio-coder eval inventory --json\n");
304
+ return 2;
305
+ }
306
+ process.stdout.write(`${JSON.stringify(await evalInventorySnapshot(), null, 2)}
307
+ `);
308
+ return 0;
309
+ }
310
+ export {
311
+ EVAL_INVENTORY_MAX_REPORTS,
312
+ EVAL_INVENTORY_MAX_SCENARIOS,
313
+ evalInventorySnapshot,
314
+ runEvalInventory
315
+ };
316
+ //# sourceMappingURL=eval-inventory-SXH7PDKX.js.map