@iowarp/clio-coder 0.4.6 → 0.4.8

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 (1142) hide show
  1. package/.claude-plugin/marketplace.json +283 -0
  2. package/CHANGELOG.md +79 -0
  3. package/CONTRIBUTING.md +178 -96
  4. package/NOTICE +8 -0
  5. package/README.md +100 -47
  6. package/dist/acp-JWPQZM2D.js +130 -0
  7. package/dist/agents-4GCDIRVX.js +149 -0
  8. package/dist/assets/codewiki.json +1 -1
  9. package/dist/assets/tui-notices/get-east-asian-width-LICENSE +9 -0
  10. package/dist/assets/tui-notices/marked-LICENSE +44 -0
  11. package/dist/assets/tui-notices/pi-tui-LICENSE +21 -0
  12. package/dist/assets/web-notices/@hono__node-server-LICENSE +21 -0
  13. package/dist/assets/web-notices/hono-LICENSE +21 -0
  14. package/dist/auth-SYAKTDQE.js +551 -0
  15. package/dist/background-OW67WMYR.js +37 -0
  16. package/dist/builtins-TKS63VNV.js +22 -0
  17. package/dist/chunk-2JSCCEKO.js +85 -0
  18. package/dist/chunk-2SXGG2IV.js +391 -0
  19. package/dist/chunk-2U2U5POA.js +59 -0
  20. package/dist/chunk-2ZWLMA3T.js +658 -0
  21. package/dist/chunk-36XSBPXL.js +579 -0
  22. package/dist/chunk-3IQOZRQ6.js +396 -0
  23. package/dist/chunk-3XE4NRLF.js +324 -0
  24. package/dist/chunk-44U2OUSM.js +243 -0
  25. package/dist/chunk-4P6M2TTE.js +119 -0
  26. package/dist/chunk-526ABLHD.js +1219 -0
  27. package/dist/chunk-5C2OQHLR.js +674 -0
  28. package/dist/chunk-5D2FNBMG.js +185 -0
  29. package/dist/chunk-5EQO5NWP.js +243 -0
  30. package/dist/chunk-5HULHKT2.js +32 -0
  31. package/dist/chunk-5UG6EZI3.js +66 -0
  32. package/dist/chunk-5W4FRA5Q.js +22283 -0
  33. package/dist/chunk-6R5MBXBJ.js +386 -0
  34. package/dist/chunk-6TKOFFGE.js +1058 -0
  35. package/dist/chunk-6UJ7RDI7.js +1143 -0
  36. package/dist/chunk-6X7VOCDY.js +44 -0
  37. package/dist/chunk-7QQRPB2E.js +915 -0
  38. package/dist/chunk-ARRUMZ7X.js +1377 -0
  39. package/dist/chunk-ATB3Q7YO.js +663 -0
  40. package/dist/chunk-AUHVBIDW.js +19 -0
  41. package/dist/chunk-BE4I3UJ2.js +668 -0
  42. package/dist/chunk-BFPHMSK7.js +169 -0
  43. package/dist/chunk-BHJMMCXS.js +466 -0
  44. package/dist/chunk-BIY22UUK.js +1322 -0
  45. package/dist/chunk-D55WO5J7.js +110 -0
  46. package/dist/chunk-DVJL77SO.js +162 -0
  47. package/dist/chunk-E2NSPYLC.js +814 -0
  48. package/dist/chunk-EFXMQYI6.js +4484 -0
  49. package/dist/chunk-EPYATQMG.js +2718 -0
  50. package/dist/chunk-EXKUF426.js +1801 -0
  51. package/dist/chunk-F7Y6QTPL.js +689 -0
  52. package/dist/chunk-FB3KTE2J.js +1710 -0
  53. package/dist/chunk-FNVPQQYT.js +117 -0
  54. package/dist/chunk-GEVQNST4.js +101 -0
  55. package/dist/chunk-GEYX2NZ5.js +697 -0
  56. package/dist/chunk-GJBJHJNY.js +2120 -0
  57. package/dist/chunk-GM4TY6VN.js +1233 -0
  58. package/dist/chunk-GVU4CXPJ.js +5191 -0
  59. package/dist/chunk-H5DPSUBB.js +637 -0
  60. package/dist/chunk-H77XBUBM.js +688 -0
  61. package/dist/chunk-HMGAKB7E.js +380 -0
  62. package/dist/chunk-HP7KJ5O2.js +797 -0
  63. package/dist/chunk-HVCAY2FH.js +67 -0
  64. package/dist/chunk-ICYIUNO4.js +35 -0
  65. package/dist/chunk-IILXVWJY.js +223 -0
  66. package/dist/chunk-JCVIL6TY.js +595 -0
  67. package/dist/chunk-JIMWEYWO.js +63 -0
  68. package/dist/chunk-JLBVCROW.js +562 -0
  69. package/dist/chunk-JOBN2YQQ.js +176 -0
  70. package/dist/chunk-JOL2QRLE.js +152 -0
  71. package/dist/chunk-JRA6OBHY.js +974 -0
  72. package/dist/chunk-JV25I7ID.js +1865 -0
  73. package/dist/chunk-JYKUMHCQ.js +705 -0
  74. package/dist/chunk-K3W6BF5C.js +283 -0
  75. package/dist/chunk-K45LHSCI.js +194 -0
  76. package/dist/chunk-K53E2PTW.js +1289 -0
  77. package/dist/chunk-K5UJD6MM.js +39 -0
  78. package/dist/chunk-KGP3UQGJ.js +200 -0
  79. package/dist/chunk-KKRXONXG.js +43 -0
  80. package/dist/chunk-KWJXCL2X.js +103 -0
  81. package/dist/chunk-L75H5B3B.js +446 -0
  82. package/dist/chunk-LLCGGVSW.js +108 -0
  83. package/dist/chunk-LZCCBLRC.js +57 -0
  84. package/dist/chunk-LZDLYSUN.js +197 -0
  85. package/dist/chunk-MATCRH3M.js +667 -0
  86. package/dist/chunk-MEHBW2SP.js +132 -0
  87. package/dist/chunk-MUXNDNMZ.js +659 -0
  88. package/dist/chunk-MWMW53WW.js +7346 -0
  89. package/dist/chunk-MZDPF35R.js +45 -0
  90. package/dist/chunk-MZKYVIWW.js +188 -0
  91. package/dist/chunk-O2QJDRWP.js +362 -0
  92. package/dist/chunk-O3HSB2YL.js +693 -0
  93. package/dist/chunk-OEMFEL26.js +891 -0
  94. package/dist/chunk-OH3YYA3B.js +15 -0
  95. package/dist/chunk-OPC4DQD6.js +634 -0
  96. package/dist/chunk-ORRNGQDV.js +207 -0
  97. package/dist/chunk-P4JS3MH5.js +165 -0
  98. package/dist/chunk-P7GTE4FX.js +308 -0
  99. package/dist/chunk-PAQVETLA.js +962 -0
  100. package/dist/chunk-PFZJMXIY.js +146 -0
  101. package/dist/chunk-PGEFOTJB.js +1974 -0
  102. package/dist/chunk-PJ5H5B7A.js +3151 -0
  103. package/dist/chunk-PMUUAABD.js +604 -0
  104. package/dist/chunk-Q32C6AWI.js +236 -0
  105. package/dist/chunk-QGIC5SX5.js +139 -0
  106. package/dist/chunk-QLAGXTTV.js +482 -0
  107. package/dist/chunk-QLKCCC2J.js +573 -0
  108. package/dist/chunk-QWUSS2QP.js +3630 -0
  109. package/dist/chunk-QYSAZMSH.js +47 -0
  110. package/dist/chunk-R5NRX5N4.js +123 -0
  111. package/dist/chunk-RAUOKUZV.js +1572 -0
  112. package/dist/chunk-RBES4TCZ.js +302 -0
  113. package/dist/chunk-RFCKPS2V.js +26 -0
  114. package/dist/chunk-RFULVPBX.js +318 -0
  115. package/dist/chunk-RKFNU5UA.js +404 -0
  116. package/dist/chunk-RM3XJX7P.js +1148 -0
  117. package/dist/chunk-RNLAPBJL.js +386 -0
  118. package/dist/chunk-RPMNIFRY.js +65 -0
  119. package/dist/chunk-RRZFRIJP.js +42 -0
  120. package/dist/chunk-RXI7K4J5.js +4493 -0
  121. package/dist/chunk-SER7RRAE.js +4271 -0
  122. package/dist/chunk-STC6CWUZ.js +402 -0
  123. package/dist/chunk-TEHVMHOK.js +97 -0
  124. package/dist/chunk-TOPICHGR.js +33 -0
  125. package/dist/chunk-U3TPUXOQ.js +2653 -0
  126. package/dist/chunk-UB33F3YW.js +709 -0
  127. package/dist/chunk-UDAK6GR2.js +175 -0
  128. package/dist/chunk-USBBEKHW.js +177 -0
  129. package/dist/chunk-V4ZKOKRB.js +13433 -0
  130. package/dist/chunk-W5RM7YAH.js +78 -0
  131. package/dist/chunk-W7KNI3F5.js +215 -0
  132. package/dist/chunk-WFTSK7N3.js +637 -0
  133. package/dist/chunk-WJWNZXRM.js +395 -0
  134. package/dist/chunk-WLHX3MM5.js +63 -0
  135. package/dist/chunk-WS4FOGLY.js +686 -0
  136. package/dist/chunk-WTZVSMQZ.js +52 -0
  137. package/dist/chunk-WWRV5RJI.js +165 -0
  138. package/dist/chunk-X6FLVUM5.js +141 -0
  139. package/dist/chunk-XC5POIL4.js +68 -0
  140. package/dist/chunk-XTLJDC2X.js +1013 -0
  141. package/dist/chunk-XW2UZICE.js +372 -0
  142. package/dist/chunk-Y3JU5RPK.js +8 -0
  143. package/dist/chunk-YGIV24MF.js +1018 -0
  144. package/dist/chunk-YJCCMYYT.js +125 -0
  145. package/dist/chunk-YKIIWURD.js +36 -0
  146. package/dist/chunk-YQ3GFEUY.js +341 -0
  147. package/dist/chunk-YXANQGCX.js +179 -0
  148. package/dist/chunk-YXFKLMX2.js +222 -0
  149. package/dist/chunk-ZST3FRCV.js +132 -0
  150. package/dist/cli/index.js +40 -40
  151. package/dist/clio-BPBAPZGA.js +26 -0
  152. package/dist/code-nav-KBQ3RIFK.js +686 -0
  153. package/dist/components-6DKAXWFN.js +674 -0
  154. package/dist/config-FWL5JK2H.js +270 -0
  155. package/dist/config-graph-ACDB26L2.js +156 -0
  156. package/dist/configure-ZIZ4YV62.js +85 -0
  157. package/dist/context-EZZPT2ZV.js +1074 -0
  158. package/dist/context-VIL5MFRH.js +282 -0
  159. package/dist/context-Z3GOBHDK.js +344 -0
  160. package/dist/context-clear-ZPB3L7MN.js +188 -0
  161. package/dist/context-index-W6A4V7OC.js +120 -0
  162. package/dist/context-map-DKL3QT6D.js +555 -0
  163. package/dist/context-working-set-2GLBVF7L.js +1559 -0
  164. package/dist/detail-VSBWYSGZ.js +119 -0
  165. package/dist/dispatch-runner-EEEHGKX4.js +2442 -0
  166. package/dist/docs-VMMWFVHL.js +101 -0
  167. package/dist/doctor-V5L4IQGP.js +812 -0
  168. package/dist/eval-VJYJ2BV3.js +5050 -0
  169. package/dist/eval-inventory-CX24K2JT.js +260 -0
  170. package/dist/evals-J2H5V6DD.js +104 -0
  171. package/dist/evidence-POWAEBEW.js +229 -0
  172. package/dist/evidence-XCCCLS36.js +242 -0
  173. package/dist/evidence-Y35YSXH6.js +388 -0
  174. package/dist/evolve-GPG72VB6.js +613 -0
  175. package/dist/extensions-YIZ7W3DA.js +308 -0
  176. package/dist/fleet-2MDCQ2VK.js +264 -0
  177. package/dist/fleet-W2AF3TOJ.js +919 -0
  178. package/dist/fleet-commands-WS56G26H.js +75 -0
  179. package/dist/fleet-decisions-MYGZ3JW7.js +52 -0
  180. package/dist/fleet-graph-ELTBXBAV.js +136 -0
  181. package/dist/fleet-inspect-45IK73L4.js +308 -0
  182. package/dist/fleet-preflight-T5NCZKHE.js +22 -0
  183. package/dist/fleet-validate-VG4JBLA4.js +91 -0
  184. package/dist/fleet-verify-VTSABAYO.js +206 -0
  185. package/dist/fleet-view-XC7WMKSS.js +123 -0
  186. package/dist/init-VTJNNTIP.js +329 -0
  187. package/dist/install-6PIF6F6W.js +19 -0
  188. package/dist/interop-IU6BNA7C.js +246 -0
  189. package/dist/inventory-QPQUTUUZ.js +123 -0
  190. package/dist/library-HUTAS57T.js +492 -0
  191. package/dist/library-LF7DLU6S.js +306 -0
  192. package/dist/library-Q3NWL5CM.js +75 -0
  193. package/dist/library-import-PPW4YUC5.js +183 -0
  194. package/dist/library-inventory-DIRVFRZU.js +56 -0
  195. package/dist/library-validation-XHUZ3INE.js +42 -0
  196. package/dist/memory-Z2LSKNV6.js +516 -0
  197. package/dist/models-3FTREYPY.js +302 -0
  198. package/dist/monitor-HF2MQRB3.js +781 -0
  199. package/dist/orchestrator-UYPA6W4S.js +41502 -0
  200. package/dist/panes-736XB73K.js +74 -0
  201. package/dist/panes-C4P3PIWT.js +103 -0
  202. package/dist/paths-JQ4QYIYB.js +67 -0
  203. package/dist/preload-XSLRYH3Y.js +120 -0
  204. package/dist/reset-V7QSPZYE.js +345 -0
  205. package/dist/resources-OJGDFHYT.js +181 -0
  206. package/dist/run-T354SMDW.js +892 -0
  207. package/dist/settings-MWZXO6RV.js +72 -0
  208. package/dist/share-Y5ZKJPND.js +293 -0
  209. package/dist/skills-4GLZC4LN.js +100 -0
  210. package/dist/skills-eval-L5T7GODM.js +1074 -0
  211. package/dist/skills-inventory-LASKXEZI.js +138 -0
  212. package/dist/slash-commands-OIMRU36D.js +95 -0
  213. package/dist/steer-KMAM2Y2C.js +77 -0
  214. package/dist/support-AWC3XKPX.js +38 -0
  215. package/dist/system-CD75NYBU.js +116 -0
  216. package/dist/targets-VSZX2J2S.js +1116 -0
  217. package/dist/tasks-AN567LYH.js +36 -0
  218. package/dist/terminal-lease-6KTWNHVY.js +418 -0
  219. package/dist/tools-AGRK3V5J.js +28 -0
  220. package/dist/trace-P4MQZD33.js +524 -0
  221. package/dist/tui-primitives-A6MUW32V.js +18 -0
  222. package/dist/uninstall-BRUTEPIC.js +432 -0
  223. package/dist/upgrade-SBCGHQGJ.js +307 -0
  224. package/dist/usage-BIDVTO6V.js +1061 -0
  225. package/dist/verifiers-LTGCAMXS.js +630 -0
  226. package/dist/verify-OZU4LLNP.js +30 -0
  227. package/dist/web/client/THIRD_PARTY_LICENSES.md +1809 -0
  228. package/dist/web/client/assets/abnfDiagram-VCTEODGH-C5wfoHm3.js +1 -0
  229. package/dist/web/client/assets/arc-oH91sfLl.js +1 -0
  230. package/dist/web/client/assets/architecture-7GRP2DOG-EGozsYEO.js +1 -0
  231. package/dist/web/client/assets/architectureDiagram-5GKGNRK7-z9FokbJl.js +36 -0
  232. package/dist/web/client/assets/array-BifhSqXX.js +1 -0
  233. package/dist/web/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
  234. package/dist/web/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
  235. package/dist/web/client/assets/blockDiagram-I7D4REHJ-wi0_CYHL.js +129 -0
  236. package/dist/web/client/assets/c4Diagram-7LVT6UL2-DV7NYc2W.js +38 -0
  237. package/dist/web/client/assets/channel-CiUWbHN9.js +1 -0
  238. package/dist/web/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  239. package/dist/web/client/assets/chunk-4HAMMTFA-Bhsegh3F.js +62 -0
  240. package/dist/web/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  241. package/dist/web/client/assets/chunk-75Z2AOVW-RQCckcQG.js +2 -0
  242. package/dist/web/client/assets/chunk-DU6HZSFF-C5USiOAy.js +125 -0
  243. package/dist/web/client/assets/chunk-F27PBJKO-BcNqv2x1.js +1 -0
  244. package/dist/web/client/assets/chunk-FOHPRMQF-CoA4358r.js +161 -0
  245. package/dist/web/client/assets/chunk-GMAD6QVW-Bq8JWiZT.js +72 -0
  246. package/dist/web/client/assets/chunk-GVQU2GXP-DbchrAeJ.js +1 -0
  247. package/dist/web/client/assets/chunk-IMKFNOWR-DrpvjocK.js +231 -0
  248. package/dist/web/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  249. package/dist/web/client/assets/chunk-L3NEJ4N5-DHLmTnCe.js +1 -0
  250. package/dist/web/client/assets/chunk-OSK3NFVY-CsRbtN9n.js +10 -0
  251. package/dist/web/client/assets/chunk-P2QGCYS3-aqPbxoMh.js +1 -0
  252. package/dist/web/client/assets/chunk-POPQ4Y6H-Dl5vw0h0.js +1 -0
  253. package/dist/web/client/assets/chunk-PWAF6VOD-D7OBRSdO.js +1 -0
  254. package/dist/web/client/assets/chunk-SHT3W25Y-CdKCIwuB.js +168 -0
  255. package/dist/web/client/assets/chunk-SVP7TREG-B94Nu_1-.js +88 -0
  256. package/dist/web/client/assets/chunk-TICWLB2K-jjRQI_hk.js +206 -0
  257. package/dist/web/client/assets/chunk-XXDRQBXY-azkbKE37.js +1 -0
  258. package/dist/web/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  259. package/dist/web/client/assets/classDiagram-ZZMXUADV-CMODalmo.js +1 -0
  260. package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-CMODalmo.js +1 -0
  261. package/dist/web/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
  262. package/dist/web/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
  263. package/dist/web/client/assets/cose-bilkent-JH36ORCC-RbQL23qS.js +1 -0
  264. package/dist/web/client/assets/cynefin-OW5HDTMX--i9RDU5f.js +1 -0
  265. package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-cRcvyBdp.js +62 -0
  266. package/dist/web/client/assets/cytoscape.esm-c2aL46s-.js +321 -0
  267. package/dist/web/client/assets/dagre-C-rnJpZF.js +1 -0
  268. package/dist/web/client/assets/dagre-GXQ25YYZ-C9mZmAPe.js +4 -0
  269. package/dist/web/client/assets/defaultLocale-BFoDCU3G.js +1 -0
  270. package/dist/web/client/assets/diagram-S7CK7UJ4-Oj_zlLDY.js +30 -0
  271. package/dist/web/client/assets/diagram-UQ7AKVKN-BWKbbfcR.js +41 -0
  272. package/dist/web/client/assets/diagram-VSXAHHWV-C3N3f7DO.js +3 -0
  273. package/dist/web/client/assets/diagram-VX7I27RA-CtDKDAWe.js +24 -0
  274. package/dist/web/client/assets/diagram-Z3DM3KII-B8bkBRCz.js +24 -0
  275. package/dist/web/client/assets/dist-D0_q-A2b.js +1 -0
  276. package/dist/web/client/assets/ebnfDiagram-PWID7BFC-CskW-Whx.js +1 -0
  277. package/dist/web/client/assets/erDiagram-RLTQ6QDP-C-83cgCW.js +99 -0
  278. package/dist/web/client/assets/eventmodeling-NTZA5JFV-DjVq8wKU.js +1 -0
  279. package/dist/web/client/assets/flowDiagram-HODETNUW-BUiCBGXt.js +1 -0
  280. package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-B2lb8lvF.js +292 -0
  281. package/dist/web/client/assets/gitGraph-4MIJSDKK-B40cQtBE.js +1 -0
  282. package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CH-7P7Di.js +106 -0
  283. package/dist/web/client/assets/graphlib-DS17s2tU.js +1 -0
  284. package/dist/web/client/assets/index-Dsi52apB.css +1 -0
  285. package/dist/web/client/assets/index-FSIC94pi.js +83 -0
  286. package/dist/web/client/assets/info-A6RAGUB7-eCCE9D_Q.js +1 -0
  287. package/dist/web/client/assets/infoDiagram-27XIBGKW-DRnvqMjM.js +2 -0
  288. package/dist/web/client/assets/init-C-OQMol4.js +1 -0
  289. package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-DBA_55wp.js +70 -0
  290. package/dist/web/client/assets/journeyDiagram-3NMN7TZE-C-ewpNl7.js +139 -0
  291. package/dist/web/client/assets/kanban-definition-UXKFOSKX-B1taGsu0.js +89 -0
  292. package/dist/web/client/assets/katex-ZlcWpGUi.js +257 -0
  293. package/dist/web/client/assets/line-lZ0kyxDI.js +1 -0
  294. package/dist/web/client/assets/linear-DIc8FgZj.js +1 -0
  295. package/dist/web/client/assets/mermaid-parser.core-SXolxpXw.js +7 -0
  296. package/dist/web/client/assets/mermaid.core-DXgQtkNg.js +44 -0
  297. package/dist/web/client/assets/mindmap-definition-YA3MSWOX-DXJas9K7.js +96 -0
  298. package/dist/web/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
  299. package/dist/web/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
  300. package/dist/web/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
  301. package/dist/web/client/assets/ordinal-BDEzSJ7C.js +1 -0
  302. package/dist/web/client/assets/packet-AYTQ26CC-OqVl_07o.js +1 -0
  303. package/dist/web/client/assets/path-fybaL0A-.js +1 -0
  304. package/dist/web/client/assets/pegDiagram-XKGWAZYB-CPE_zdfN.js +1 -0
  305. package/dist/web/client/assets/pie-WAS4IAKB-DAxnMBLe.js +1 -0
  306. package/dist/web/client/assets/pieDiagram-E7YTZNPT-Uwjpufxv.js +39 -0
  307. package/dist/web/client/assets/prism-bash-D6zCJ74D.js +1 -0
  308. package/dist/web/client/assets/prism-c-04YixN25.js +1 -0
  309. package/dist/web/client/assets/prism-clike-DapgWyxx.js +1 -0
  310. package/dist/web/client/assets/prism-core-BngLtbUd.js +1 -0
  311. package/dist/web/client/assets/prism-cpp-C-lJbC-6.js +1 -0
  312. package/dist/web/client/assets/prism-css-CPgOzxXp.js +1 -0
  313. package/dist/web/client/assets/prism-diff-BF8m0_mq.js +3 -0
  314. package/dist/web/client/assets/prism-docker-DkT6yOFj.js +1 -0
  315. package/dist/web/client/assets/prism-fortran-Be5x3y1V.js +1 -0
  316. package/dist/web/client/assets/prism-go-C_8qAH5n.js +1 -0
  317. package/dist/web/client/assets/prism-ini-BESK3y0r.js +1 -0
  318. package/dist/web/client/assets/prism-javascript-BnO-swvr.js +1 -0
  319. package/dist/web/client/assets/prism-json-Dp_-W-Hv.js +1 -0
  320. package/dist/web/client/assets/prism-jsx-D-D0NWtC.js +1 -0
  321. package/dist/web/client/assets/prism-julia-DIjOgiAV.js +1 -0
  322. package/dist/web/client/assets/prism-latex-DNMbqcH_.js +1 -0
  323. package/dist/web/client/assets/prism-makefile-CRKWLQ8l.js +1 -0
  324. package/dist/web/client/assets/prism-markdown-C0FPJ1Iz.js +1 -0
  325. package/dist/web/client/assets/prism-markup-Cp04rIa1.js +1 -0
  326. package/dist/web/client/assets/prism-matlab-D-nk08al.js +1 -0
  327. package/dist/web/client/assets/prism-python-CfiSVtM6.js +1 -0
  328. package/dist/web/client/assets/prism-r-QmNGR8LX.js +1 -0
  329. package/dist/web/client/assets/prism-rust-Bu9N8X3N.js +1 -0
  330. package/dist/web/client/assets/prism-shell-session-Be4UuYoM.js +1 -0
  331. package/dist/web/client/assets/prism-sql-CYhVDMEE.js +1 -0
  332. package/dist/web/client/assets/prism-toml-DKb54GAT.js +1 -0
  333. package/dist/web/client/assets/prism-tsx-p6J2Kc_4.js +1 -0
  334. package/dist/web/client/assets/prism-typescript-BMqONzxf.js +1 -0
  335. package/dist/web/client/assets/prism-yaml-C0JHu8gr.js +1 -0
  336. package/dist/web/client/assets/purify.es-ChwZkWde.js +3 -0
  337. package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-Bjs4yjgs.js +7 -0
  338. package/dist/web/client/assets/radar-RG4KPBEZ-CuCKjHM3.js +1 -0
  339. package/dist/web/client/assets/railroad-74A4TZTK-CnQK-Cc1.js +1 -0
  340. package/dist/web/client/assets/railroad-abnf-HS5TGJTU-BcW01NZG.js +1 -0
  341. package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-B7YCEDDd.js +1 -0
  342. package/dist/web/client/assets/railroad-peg-WCYAUIDC-DjNZbSTZ.js +1 -0
  343. package/dist/web/client/assets/railroadDiagram-O6MQD6OU-BDDIPNLL.js +1 -0
  344. package/dist/web/client/assets/requirementDiagram-BXWQKSXE-B5Ydyxc1.js +84 -0
  345. package/dist/web/client/assets/rough.esm-Dy-Kn_BL.js +1 -0
  346. package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-Bw2Qym75.js +40 -0
  347. package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-BZf36nO0.js +162 -0
  348. package/dist/web/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
  349. package/dist/web/client/assets/src-yeptRXpt.js +1 -0
  350. package/dist/web/client/assets/stateDiagram-D77RDMKH-DnH6JRkp.js +1 -0
  351. package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-C7QtHeK4.js +1 -0
  352. package/dist/web/client/assets/swimlanes-42K2YHIH-D9PZmtZg.js +1 -0
  353. package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-CBZlPFky.js +8 -0
  354. package/dist/web/client/assets/timeline-definition-24CTP7MA-CrkZZBo7.js +120 -0
  355. package/dist/web/client/assets/treeView-Q6P3EWNA-C9zDShoC.js +1 -0
  356. package/dist/web/client/assets/treemap-WGGIJYW6-B-plj9yK.js +1 -0
  357. package/dist/web/client/assets/vennDiagram-4TSXK5OY-VeOdaphN.js +34 -0
  358. package/dist/web/client/assets/wardley-WFR3VGLG-Wl1P_m6L.js +1 -0
  359. package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-B85-R9t2.js +78 -0
  360. package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BrD8OW8m.js +7 -0
  361. package/dist/web/client/clio-coder-logo.webp +0 -0
  362. package/dist/web/client/icon-192.png +0 -0
  363. package/dist/web/client/icon-512.png +0 -0
  364. package/dist/web/client/index.html +4 -0
  365. package/dist/web/client/manifest.webmanifest +15 -0
  366. package/dist/web/client/offline.css +55 -0
  367. package/dist/web/client/offline.html +5 -0
  368. package/dist/web/client/offline.js +27 -0
  369. package/dist/web/client/sw.js +34 -0
  370. package/dist/web/ops-worker.js +37 -0
  371. package/dist/web/reads-worker.js +1726 -0
  372. package/dist/web/server.js +8499 -0
  373. package/dist/web-EU6ATJWA.js +13 -0
  374. package/dist/web-fetch-U22Q7HV4.js +788 -0
  375. package/dist/wiki-generate-LZRLFG6I.js +623 -0
  376. package/dist/with-panes-X5CZOGML.js +628 -0
  377. package/dist/worker/entry.js +300 -93
  378. package/docs/README.md +58 -14
  379. package/docs/architecture/acp.md +5 -9
  380. package/docs/architecture/alcf-provider.md +0 -3
  381. package/docs/architecture/architecture.md +8 -10
  382. package/docs/architecture/artifact-placement.md +0 -3
  383. package/docs/architecture/artifact-versions.md +3 -6
  384. package/docs/architecture/capacity-and-scheduling.md +0 -3
  385. package/docs/architecture/context-engine.md +35 -4
  386. package/docs/architecture/context-working-set.md +0 -3
  387. package/docs/architecture/dispatch-architecture-rationale.md +0 -3
  388. package/docs/architecture/dispatch-typed-intent.md +0 -3
  389. package/docs/architecture/evidence-and-memory.md +0 -3
  390. package/docs/architecture/library.md +30 -0
  391. package/docs/architecture/middleware-and-components.md +1 -4
  392. package/docs/architecture/model-catalog.md +21 -4
  393. package/docs/architecture/observability.md +0 -3
  394. package/docs/architecture/pi-boundary.md +23 -8
  395. package/docs/architecture/prompt-envelope-and-tools.md +6 -9
  396. package/docs/architecture/provider-adapter-cookbook.md +1 -4
  397. package/docs/architecture/safety-model.md +21 -5
  398. package/docs/architecture/session-lifecycle.md +12 -4
  399. package/docs/architecture/time-conventions.md +0 -3
  400. package/docs/architecture/trace-store.md +28 -20
  401. package/docs/architecture/tui-design.md +108 -12
  402. package/docs/architecture/worker-context.md +104 -0
  403. package/docs/architecture/worker-dispatch-mechanics.md +1 -4
  404. package/docs/guide/authoring-plugins.md +158 -0
  405. package/docs/guide/built-in-agents.md +5 -8
  406. package/docs/guide/commands-and-modes.md +162 -61
  407. package/docs/guide/configuration-and-targets.md +198 -5
  408. package/docs/guide/configuration-reference.md +36 -38
  409. package/docs/guide/environment-variables.md +2 -5
  410. package/docs/guide/exit-codes-and-output.md +1 -4
  411. package/docs/guide/extensions-and-sharing.md +92 -55
  412. package/docs/guide/fleet-dispatch.md +31 -7
  413. package/docs/guide/glossary.md +1 -4
  414. package/docs/guide/harness-extensions.md +289 -0
  415. package/docs/guide/installation-and-lifecycle.md +10 -13
  416. package/docs/guide/interop.md +241 -0
  417. package/docs/guide/panes-and-files.md +3 -6
  418. package/docs/guide/plugins.md +77 -0
  419. package/docs/guide/proactive-memory.md +0 -3
  420. package/docs/guide/resource-library.md +109 -45
  421. package/docs/guide/skills-marketplace.md +34 -73
  422. package/docs/guide/tool-usage.md +19 -10
  423. package/docs/guide/troubleshooting.md +1 -4
  424. package/docs/history/config-knobs-audit.md +0 -3
  425. package/docs/history/release-cut-checklist.md +0 -3
  426. package/docs/process/development-pipeline.md +14 -17
  427. package/docs/process/documentation-coverage.md +31 -4
  428. package/docs/process/documentation-guide.md +28 -27
  429. package/docs/process/eval-runner.md +8 -6
  430. package/docs/process/evals-internal.md +0 -3
  431. package/docs/process/evolution.md +0 -3
  432. package/docs/process/fleet-demo-runbook.md +0 -3
  433. package/docs/process/git-commit-provenance.md +0 -3
  434. package/docs/process/performance-methodology.md +2 -5
  435. package/docs/process/release-cut-checklist.md +114 -217
  436. package/docs/process/scientific-validation.md +23 -3
  437. package/evals/scalar-decision-machinery.ts +1 -1
  438. package/examples/extensions/README.md +67 -0
  439. package/examples/extensions/lab-status/clio-coder-extension.json +14 -0
  440. package/examples/extensions/lab-status/extension.mjs +68 -0
  441. package/examples/extensions/lab-status/jobs.synthetic.json +9 -0
  442. package/examples/extensions/measurements/clio-coder-extension.json +28 -0
  443. package/examples/extensions/measurements/summarize.cjs +23 -0
  444. package/library/README.md +109 -0
  445. package/library/_authoring/templates/agent/README.md +28 -0
  446. package/library/_authoring/templates/agent/agents/benchmark-scout.md +30 -0
  447. package/library/_authoring/templates/agent/plugin.json +23 -0
  448. package/library/_authoring/templates/fleet/README.md +29 -0
  449. package/library/_authoring/templates/fleet/fleets/pipeline-review.md +31 -0
  450. package/library/_authoring/templates/fleet/plugin.json +23 -0
  451. package/library/_authoring/templates/plugin/README.md +37 -0
  452. package/library/_authoring/templates/plugin/agents/data-curator.md +31 -0
  453. package/library/_authoring/templates/plugin/assets/curation-guide.md +22 -0
  454. package/library/_authoring/templates/plugin/plugin.json +42 -0
  455. package/library/_authoring/templates/plugin/prompts/inspect-dataset.md +15 -0
  456. package/library/_authoring/templates/plugin/skills/dataset-curation/SKILL.md +36 -0
  457. package/library/_authoring/templates/plugin/skills/dataset-curation/evals.md +17 -0
  458. package/library/_authoring/templates/prompt/README.md +28 -0
  459. package/library/_authoring/templates/prompt/plugin.json +23 -0
  460. package/library/_authoring/templates/prompt/prompts/paper-summary.md +26 -0
  461. package/library/_authoring/templates/skill/README.md +24 -0
  462. package/library/_authoring/templates/skill/SKILL.md +39 -0
  463. package/library/_authoring/templates/skill/evals.md +30 -0
  464. package/library/_authoring/templates/skill/plugin.json +23 -0
  465. package/library/agents/README.md +7 -0
  466. package/library/fleets/README.md +7 -0
  467. package/library/plugins/materio/README.md +137 -0
  468. package/library/plugins/materio/ai.iowarp.clio/agents/materio-lab-definer.md +208 -0
  469. package/library/plugins/materio/ai.iowarp.clio/agents/materio-literature-reviewer.md +308 -0
  470. package/library/plugins/materio/ai.iowarp.clio/agents/materio-research-explorer.md +249 -0
  471. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-executor.md +416 -0
  472. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-verifier.md +60 -0
  473. package/library/plugins/materio/ai.iowarp.clio/agents/materio-workflow-planner.md +238 -0
  474. package/library/plugins/materio/ai.iowarp.clio/fleets/materio-execute-task.md +50 -0
  475. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/add-task.md +66 -0
  476. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/archive-task.md +65 -0
  477. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/checkpoint.md +26 -0
  478. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-research-tasks.md +230 -0
  479. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-virtual-lab.md +181 -0
  480. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/execute-task.md +292 -0
  481. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/help.md +129 -0
  482. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/identify-research.md +206 -0
  483. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/literature-review.md +201 -0
  484. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/pause-research.md +12 -0
  485. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/progress.md +105 -0
  486. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/remove-task.md +63 -0
  487. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/resume-research.md +64 -0
  488. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/settings.md +16 -0
  489. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/status.md +92 -0
  490. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/upload-data.md +104 -0
  491. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/wtfp.md +145 -0
  492. package/library/plugins/materio/ai.iowarp.clio/references/execution.md +56 -0
  493. package/library/plugins/materio/ai.iowarp.portability/provenance.json +9 -0
  494. package/library/plugins/materio/assets/actions/add-task.md +86 -0
  495. package/library/plugins/materio/assets/actions/archive-task.md +84 -0
  496. package/library/plugins/materio/assets/actions/checkpoint.md +47 -0
  497. package/library/plugins/materio/assets/actions/define-research-tasks.md +228 -0
  498. package/library/plugins/materio/assets/actions/define-virtual-lab.md +179 -0
  499. package/library/plugins/materio/assets/actions/execute-task.md +290 -0
  500. package/library/plugins/materio/assets/actions/help.md +140 -0
  501. package/library/plugins/materio/assets/actions/identify-research.md +204 -0
  502. package/library/plugins/materio/assets/actions/literature-review.md +199 -0
  503. package/library/plugins/materio/assets/actions/pause-research.md +34 -0
  504. package/library/plugins/materio/assets/actions/progress.md +125 -0
  505. package/library/plugins/materio/assets/actions/remove-task.md +82 -0
  506. package/library/plugins/materio/assets/actions/resume-research.md +84 -0
  507. package/library/plugins/materio/assets/actions/settings.md +38 -0
  508. package/library/plugins/materio/assets/actions/status.md +112 -0
  509. package/library/plugins/materio/assets/actions/upload-data.md +123 -0
  510. package/library/plugins/materio/assets/actions/wtfp.md +179 -0
  511. package/library/plugins/materio/assets/references/research-domains.md +134 -0
  512. package/library/plugins/materio/assets/references/research-policy.md +77 -0
  513. package/library/plugins/materio/assets/references/traditional-workflows.md +146 -0
  514. package/library/plugins/materio/assets/scripts/check_physics.py +271 -0
  515. package/library/plugins/materio/assets/scripts/check_scripts.py +248 -0
  516. package/library/plugins/materio/assets/scripts/project_plugin.py +165 -0
  517. package/library/plugins/materio/assets/scripts/research_state.py +400 -0
  518. package/library/plugins/materio/assets/scripts/verify_citations.py +616 -0
  519. package/library/plugins/materio/assets/templates/RESEARCH.md +39 -0
  520. package/library/plugins/materio/assets/templates/VIRTUAL-LAB.md +120 -0
  521. package/library/plugins/materio/assets/templates/WORKFLOW.md +42 -0
  522. package/library/plugins/materio/assets/templates/config.json +5 -0
  523. package/library/plugins/materio/evals/scripts.yaml +29 -0
  524. package/library/plugins/materio/plugin.json +530 -0
  525. package/library/plugins/materio/skills/materio-lab-definer/SKILL.md +74 -0
  526. package/library/plugins/materio/skills/materio-literature-reviewer/SKILL.md +64 -0
  527. package/library/plugins/materio/skills/materio-research-explorer/SKILL.md +74 -0
  528. package/library/plugins/materio/skills/materio-task-executor/SKILL.md +214 -0
  529. package/library/plugins/materio/skills/materio-task-verifier/SKILL.md +46 -0
  530. package/library/plugins/materio/skills/materio-workflow-planner/SKILL.md +79 -0
  531. package/library/plugins/materio/tests/test_check_physics.py +139 -0
  532. package/library/plugins/materio/tests/test_check_scripts.py +140 -0
  533. package/library/plugins/materio/tests/test_research_state.py +291 -0
  534. package/library/plugins/materio/tests/test_verify_citations.py +337 -0
  535. package/library/prompts/README.md +7 -0
  536. package/library/registry.yaml +921 -0
  537. package/library/skills/README.md +120 -0
  538. package/library/skills/coding/ast-grep/SKILL.md +213 -0
  539. package/library/skills/coding/ast-grep/evals.md +82 -0
  540. package/library/skills/coding/ast-grep/plugin.json +23 -0
  541. package/library/skills/coding/coding-standards/SKILL.md +164 -0
  542. package/library/skills/coding/coding-standards/evals.md +57 -0
  543. package/library/skills/coding/coding-standards/plugin.json +23 -0
  544. package/library/skills/coding/prototype/SKILL.md +151 -0
  545. package/library/skills/coding/prototype/evals.md +61 -0
  546. package/library/skills/coding/prototype/plugin.json +23 -0
  547. package/library/skills/coding/tdd/SKILL.md +134 -0
  548. package/library/skills/coding/tdd/evals.md +61 -0
  549. package/library/skills/coding/tdd/plugin.json +23 -0
  550. package/library/skills/context/context-handoff/SKILL.md +176 -0
  551. package/library/skills/context/context-handoff/evals.md +101 -0
  552. package/library/skills/context/context-handoff/plugin.json +23 -0
  553. package/library/skills/context/context-prime/SKILL.md +131 -0
  554. package/library/skills/context/context-prime/evals.md +99 -0
  555. package/library/skills/context/context-prime/plugin.json +23 -0
  556. package/library/skills/git/branch-closeout/SKILL.md +132 -0
  557. package/library/skills/git/branch-closeout/plugin.json +23 -0
  558. package/library/skills/git/file-ticket/SKILL.md +126 -0
  559. package/library/skills/git/file-ticket/plugin.json +23 -0
  560. package/library/skills/git/fix-issue/SKILL.md +136 -0
  561. package/library/skills/git/fix-issue/plugin.json +23 -0
  562. package/library/skills/git/resolve-merge-conflicts/SKILL.md +151 -0
  563. package/library/skills/git/resolve-merge-conflicts/evals.md +85 -0
  564. package/library/skills/git/resolve-merge-conflicts/plugin.json +23 -0
  565. package/library/skills/git/ship/SKILL.md +134 -0
  566. package/library/skills/git/ship/plugin.json +23 -0
  567. package/library/skills/git/worktree-create/SKILL.md +127 -0
  568. package/library/skills/git/worktree-create/plugin.json +23 -0
  569. package/library/skills/git/worktree-merge/SKILL.md +147 -0
  570. package/library/skills/git/worktree-merge/plugin.json +23 -0
  571. package/library/skills/meta/clio-coder-dev/SKILL.md +101 -0
  572. package/library/skills/meta/clio-coder-dev/evals.md +46 -0
  573. package/library/skills/meta/clio-coder-dev/plugin.json +23 -0
  574. package/library/skills/meta/clio-coder-test/SKILL.md +156 -0
  575. package/library/skills/meta/clio-coder-test/evals.md +62 -0
  576. package/library/skills/meta/clio-coder-test/plugin.json +23 -0
  577. package/library/skills/meta/clio-coder-test/references/test-map.md +97 -0
  578. package/library/skills/meta/credentials/SKILL.md +132 -0
  579. package/library/skills/meta/credentials/evals.md +104 -0
  580. package/library/skills/meta/credentials/plugin.json +23 -0
  581. package/library/skills/meta/find-skills/SKILL.md +85 -0
  582. package/library/skills/meta/find-skills/evals.md +65 -0
  583. package/library/skills/meta/find-skills/plugin.json +23 -0
  584. package/library/skills/meta/herdr/SKILL.md +133 -0
  585. package/library/skills/meta/herdr/evals.md +38 -0
  586. package/library/skills/meta/herdr/plugin.json +23 -0
  587. package/library/skills/meta/skill-craft/SKILL.md +139 -0
  588. package/library/skills/meta/skill-craft/evals.md +49 -0
  589. package/library/skills/meta/skill-craft/plugin.json +23 -0
  590. package/library/skills/planning/archify/SKILL.md +196 -0
  591. package/library/skills/planning/archify/plugin.json +23 -0
  592. package/library/skills/planning/architecture/SKILL.md +184 -0
  593. package/library/skills/planning/architecture/evals.md +101 -0
  594. package/library/skills/planning/architecture/plugin.json +23 -0
  595. package/library/skills/planning/backlog/SKILL.md +212 -0
  596. package/library/skills/planning/backlog/evals.md +185 -0
  597. package/library/skills/planning/backlog/plugin.json +23 -0
  598. package/library/skills/planning/prd/SKILL.md +129 -0
  599. package/library/skills/planning/prd/evals.md +103 -0
  600. package/library/skills/planning/prd/plugin.json +23 -0
  601. package/library/skills/planning/product-intent/SKILL.md +173 -0
  602. package/library/skills/planning/product-intent/evals.md +106 -0
  603. package/library/skills/planning/product-intent/plugin.json +23 -0
  604. package/library/skills/planning/tech-spec/SKILL.md +172 -0
  605. package/library/skills/planning/tech-spec/evals.md +120 -0
  606. package/library/skills/planning/tech-spec/plugin.json +23 -0
  607. package/library/skills/registry.yaml +144 -0
  608. package/library/skills/remote.yaml +13 -0
  609. package/library/skills/research/arxiv-literature/SKILL.md +168 -0
  610. package/library/skills/research/arxiv-literature/evals.md +108 -0
  611. package/library/skills/research/arxiv-literature/plugin.json +23 -0
  612. package/library/skills/research/experiment-protocol/SKILL.md +148 -0
  613. package/library/skills/research/experiment-protocol/evals.md +114 -0
  614. package/library/skills/research/experiment-protocol/plugin.json +23 -0
  615. package/library/skills/research/scientific-debugging/SKILL.md +149 -0
  616. package/library/skills/research/scientific-debugging/evals.md +156 -0
  617. package/library/skills/research/scientific-debugging/plugin.json +23 -0
  618. package/library/skills/research/scientific-modernization/SKILL.md +170 -0
  619. package/library/skills/research/scientific-modernization/evals.md +111 -0
  620. package/library/skills/research/scientific-modernization/plugin.json +23 -0
  621. package/library/skills/skill-marketplace.json +507 -0
  622. package/library/skills/workflow/cut-it/SKILL.md +153 -0
  623. package/library/skills/workflow/cut-it/evals.md +143 -0
  624. package/library/skills/workflow/cut-it/plugin.json +23 -0
  625. package/library/skills/workflow/design-council/SKILL.md +233 -0
  626. package/library/skills/workflow/design-council/evals.md +258 -0
  627. package/library/skills/workflow/design-council/plugin.json +23 -0
  628. package/library/skills/workflow/grill-me/SKILL.md +267 -0
  629. package/library/skills/workflow/grill-me/evals.md +231 -0
  630. package/library/skills/workflow/grill-me/plugin.json +23 -0
  631. package/library/skills/workflow/workflow-distiller/SKILL.md +204 -0
  632. package/library/skills/workflow/workflow-distiller/evals.md +233 -0
  633. package/library/skills/workflow/workflow-distiller/plugin.json +23 -0
  634. package/package.json +23 -14
  635. package/src/cli/agents.ts +1 -1
  636. package/src/cli/config-inspect.ts +1 -1
  637. package/src/cli/configure.ts +2 -2
  638. package/src/cli/docs.ts +65 -328
  639. package/src/cli/eval.ts +40 -6
  640. package/src/cli/extensions.ts +74 -8
  641. package/src/cli/fleet-preflight.ts +2 -0
  642. package/src/cli/fleet.ts +2 -0
  643. package/src/cli/index.ts +4 -4
  644. package/src/cli/interop-inspect.ts +61 -33
  645. package/src/cli/interop.ts +79 -9
  646. package/src/cli/library-import.ts +139 -0
  647. package/src/cli/library.ts +418 -120
  648. package/src/cli/run.ts +26 -9
  649. package/src/cli/skills-eval.ts +43 -6
  650. package/src/cli/skills-inventory.ts +6 -2
  651. package/src/cli/skills.ts +44 -491
  652. package/src/cli/trace.ts +4 -65
  653. package/src/cli/uninstall.ts +26 -0
  654. package/src/cli/usage.ts +3 -0
  655. package/src/cli/web.ts +79 -0
  656. package/src/core/bus-events.ts +8 -4
  657. package/src/core/config.ts +71 -0
  658. package/src/core/defaults.ts +1 -1
  659. package/src/core/domain-loader.ts +37 -28
  660. package/src/core/recent-models.ts +2 -2
  661. package/src/core/session-routing.ts +3 -3
  662. package/src/core/state-file-lock.ts +1 -1
  663. package/src/core/termination.ts +13 -9
  664. package/src/core/tool-names.ts +5 -0
  665. package/src/domains/agents/contract.ts +1 -1
  666. package/src/domains/agents/extension.ts +53 -9
  667. package/src/domains/agents/fleet-commands.ts +92 -1
  668. package/src/domains/agents/fleet-contract.ts +87 -19
  669. package/src/domains/agents/recipe.ts +5 -4
  670. package/src/domains/agents/registry.ts +80 -24
  671. package/src/domains/config/extension.ts +5 -4
  672. package/src/domains/config/keybindings.ts +155 -95
  673. package/src/domains/context/worker/contract.ts +91 -0
  674. package/src/domains/context/worker/pressure.ts +120 -0
  675. package/src/domains/context/worker/recall.ts +62 -0
  676. package/src/domains/context/worker/select.ts +164 -0
  677. package/src/domains/context/worker/snapshot.ts +35 -0
  678. package/src/domains/context/worker/store.ts +16 -0
  679. package/src/domains/context/working-set/replay/synthetic.ts +2 -1
  680. package/src/domains/dispatch/active-route-planner.ts +2 -0
  681. package/src/domains/dispatch/backoff.ts +1 -0
  682. package/src/domains/dispatch/code-step.ts +12 -2
  683. package/src/domains/dispatch/contract.ts +3 -0
  684. package/src/domains/dispatch/execution-plan.ts +2 -0
  685. package/src/domains/dispatch/extension.ts +184 -39
  686. package/src/domains/dispatch/fleet-plan.ts +10 -0
  687. package/src/domains/dispatch/fleet-run.ts +1 -0
  688. package/src/domains/dispatch/index.ts +1 -0
  689. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  690. package/src/domains/dispatch/receipt-integrity.ts +7 -0
  691. package/src/domains/dispatch/state.ts +2 -2
  692. package/src/domains/dispatch/types.ts +7 -0
  693. package/src/domains/dispatch/validation.ts +12 -0
  694. package/src/domains/dispatch/workspace-checkpoint.ts +1 -1
  695. package/src/domains/eval/metrics/tracked.ts +22 -2
  696. package/src/domains/evidence/failure-attribution.ts +1 -0
  697. package/src/domains/evidence/trust-status.ts +22 -3
  698. package/src/domains/extensions/command-schema.ts +145 -0
  699. package/src/domains/extensions/command-tools.ts +15 -0
  700. package/src/domains/extensions/compatibility.ts +7 -0
  701. package/src/domains/extensions/contract.ts +0 -4
  702. package/src/domains/extensions/discovery.ts +69 -205
  703. package/src/domains/extensions/extension.ts +0 -4
  704. package/src/domains/extensions/index.ts +1 -5
  705. package/src/domains/extensions/manager.ts +1 -6
  706. package/src/domains/extensions/operator-commands.ts +29 -0
  707. package/src/domains/extensions/operator-runtime.ts +485 -0
  708. package/src/domains/extensions/public-api.ts +53 -0
  709. package/src/domains/extensions/runtime-child.mjs +114 -0
  710. package/src/domains/extensions/runtime-process.ts +306 -0
  711. package/src/domains/extensions/runtime-schema.ts +146 -0
  712. package/src/domains/extensions/snapshot-access.ts +21 -0
  713. package/src/domains/extensions/snapshot.ts +4 -32
  714. package/src/domains/extensions/state.ts +5 -83
  715. package/src/domains/extensions/types.ts +33 -34
  716. package/src/domains/interop/adopt.ts +546 -0
  717. package/src/domains/interop/detect.ts +50 -12
  718. package/src/domains/interop/foreign.ts +554 -0
  719. package/src/domains/interop/import.ts +277 -0
  720. package/src/domains/interop/index.ts +24 -0
  721. package/src/domains/interop/install.ts +6 -0
  722. package/src/domains/interop/inventory.ts +351 -0
  723. package/src/domains/interop/projection.ts +360 -0
  724. package/src/domains/interop/registry.ts +106 -3
  725. package/src/domains/interop/types.ts +51 -0
  726. package/src/domains/lifecycle/migrations/index.ts +0 -2
  727. package/src/domains/lifecycle/naming-resources.ts +1 -1
  728. package/src/domains/middleware/hooks.ts +2 -2
  729. package/src/domains/middleware/marketplace-offer.ts +1 -1
  730. package/src/domains/mux/contract.ts +1 -1
  731. package/src/domains/observability/background-memory-usage.ts +3 -0
  732. package/src/domains/observability/compaction-usage.ts +2 -0
  733. package/src/domains/observability/cost.ts +5 -0
  734. package/src/domains/observability/extension.ts +1 -0
  735. package/src/domains/observability/out-of-turn-usage.ts +2 -0
  736. package/src/domains/observability/trace-store.ts +65 -5
  737. package/src/domains/plugins/catalog.ts +204 -0
  738. package/src/domains/plugins/contract.ts +24 -0
  739. package/src/domains/plugins/discovery.ts +316 -0
  740. package/src/domains/plugins/extension.ts +40 -0
  741. package/src/domains/plugins/index.ts +77 -0
  742. package/src/domains/plugins/integrity.ts +6 -0
  743. package/src/domains/plugins/manifest.ts +3 -0
  744. package/src/domains/plugins/resources.ts +102 -0
  745. package/src/domains/plugins/state.ts +753 -0
  746. package/src/domains/plugins/types.ts +217 -0
  747. package/src/domains/prompts/extension.ts +4 -10
  748. package/src/domains/prompts/fragments/operating/skills.md +10 -10
  749. package/src/domains/providers/cache-deployment.ts +147 -0
  750. package/src/domains/providers/catalog.ts +12 -7
  751. package/src/domains/providers/extension.ts +27 -5
  752. package/src/domains/providers/index.ts +1 -0
  753. package/src/domains/providers/plugins.ts +3 -13
  754. package/src/domains/providers/runtimes/common/local-synth.ts +4 -0
  755. package/src/domains/providers/types/target-descriptor.ts +17 -0
  756. package/src/domains/resources/common-loader.ts +9 -6
  757. package/src/domains/resources/index.ts +67 -0
  758. package/src/domains/resources/library-actions.ts +836 -0
  759. package/src/domains/resources/library-evals.ts +38 -0
  760. package/src/domains/resources/library-inventory.ts +1048 -0
  761. package/src/domains/resources/library-types.ts +50 -0
  762. package/src/domains/resources/library-validation.ts +634 -0
  763. package/src/domains/resources/library.ts +437 -156
  764. package/src/domains/resources/package-references.ts +66 -0
  765. package/src/domains/resources/prompts/loader.ts +75 -41
  766. package/src/domains/resources/skills/install.ts +2 -2
  767. package/src/domains/resources/skills/loader.ts +77 -22
  768. package/src/domains/resources/skills/marketplace.ts +48 -57
  769. package/src/domains/resources/skills/promotion.ts +2 -2
  770. package/src/domains/resources/skills/provenance-pin.ts +17 -4
  771. package/src/domains/safety/action-classifier.ts +2 -2
  772. package/src/domains/safety/default-path-policy.ts +3 -1
  773. package/src/domains/safety/policy-engine.ts +1 -1
  774. package/src/domains/safety/protected-artifacts.ts +21 -5
  775. package/src/domains/safety/skill-authority.ts +5 -2
  776. package/src/domains/session/compaction/compact.ts +4 -1
  777. package/src/domains/session/entries.ts +1 -0
  778. package/src/domains/session/usage.ts +6 -7
  779. package/src/domains/share/archive.ts +1 -1
  780. package/src/engine/acp/server.ts +11 -0
  781. package/src/engine/ai.ts +2 -0
  782. package/src/engine/apis/openai-completions.ts +61 -6
  783. package/src/engine/notices/pi-tui-LICENSE +21 -0
  784. package/src/engine/prewarm.ts +232 -0
  785. package/src/engine/provider-diagnostics.ts +6 -1
  786. package/src/engine/tui.ts +3 -0
  787. package/src/engine/worker-runtime.ts +58 -14
  788. package/src/engine/worker-tools.ts +5 -0
  789. package/src/entry/orchestrator.ts +46 -21
  790. package/src/entry/plugin-reload.ts +18 -0
  791. package/src/interactive/application-controller.ts +67 -21
  792. package/src/interactive/chat-loop-messages.ts +3 -0
  793. package/src/interactive/chat-loop.ts +32 -11
  794. package/src/interactive/chat-panel.ts +5 -1
  795. package/src/interactive/clio-editor.ts +53 -21
  796. package/src/interactive/command-output.ts +56 -1
  797. package/src/interactive/editor-submit.ts +65 -28
  798. package/src/interactive/fleet-run-preview.ts +2 -0
  799. package/src/interactive/follow-up-queue-panel.ts +3 -3
  800. package/src/interactive/footer/dashboard.ts +4 -1
  801. package/src/interactive/footer/notifications.ts +2 -2
  802. package/src/interactive/footer/widgets.ts +2 -2
  803. package/src/interactive/interactive-application.ts +209 -21
  804. package/src/interactive/interactive-input-runtime.ts +254 -7
  805. package/src/interactive/interactive-presentation.ts +41 -12
  806. package/src/interactive/interactive-slash-runtime.ts +37 -8
  807. package/src/interactive/keybinding-manager.ts +156 -79
  808. package/src/interactive/keyboard-owner.ts +37 -0
  809. package/src/interactive/leader-key.ts +49 -102
  810. package/src/interactive/leader-menu.ts +45 -0
  811. package/src/interactive/overlay-ask-user-lifecycle.ts +9 -1
  812. package/src/interactive/overlay-frame.ts +15 -0
  813. package/src/interactive/overlay-key-routing.ts +46 -47
  814. package/src/interactive/overlay-lifecycle.ts +30 -15
  815. package/src/interactive/overlay-resource-openers.ts +56 -46
  816. package/src/interactive/overlays/ask-user.ts +630 -556
  817. package/src/interactive/overlays/extension-panel.ts +70 -0
  818. package/src/interactive/overlays/extensions.ts +28 -5
  819. package/src/interactive/overlays/fleet-run-approval.ts +7 -3
  820. package/src/interactive/overlays/help-reference.ts +89 -40
  821. package/src/interactive/overlays/interop.ts +122 -3
  822. package/src/interactive/overlays/keybinding-detail.ts +2 -2
  823. package/src/interactive/overlays/library-lifecycle.ts +90 -0
  824. package/src/interactive/overlays/library-model.ts +574 -0
  825. package/src/interactive/overlays/library-review.ts +557 -0
  826. package/src/interactive/overlays/library-tabs.ts +3 -15
  827. package/src/interactive/overlays/library.ts +602 -0
  828. package/src/interactive/overlays/list-overlay.ts +218 -39
  829. package/src/interactive/overlays/model-selector.ts +28 -25
  830. package/src/interactive/overlays/session-selector.ts +9 -3
  831. package/src/interactive/overlays/settings.ts +25 -18
  832. package/src/interactive/overlays/tree-selector.ts +16 -11
  833. package/src/interactive/permission-hint.ts +13 -0
  834. package/src/interactive/permission-overlay.ts +77 -28
  835. package/src/interactive/prewarm.ts +11 -197
  836. package/src/interactive/prompt-source-label.ts +21 -0
  837. package/src/interactive/renderers/reference-card.ts +35 -0
  838. package/src/interactive/renderers/worker-entry.ts +35 -3
  839. package/src/interactive/session-usage-reseed.ts +2 -0
  840. package/src/interactive/side-question.ts +2 -0
  841. package/src/interactive/slash-autocomplete.ts +99 -1
  842. package/src/interactive/slash-commands.ts +390 -67
  843. package/src/interactive/slash-spec.ts +0 -1
  844. package/src/interactive/terminal-lease.ts +44 -12
  845. package/src/interactive/turn-context.ts +1 -0
  846. package/src/interactive/turn-persistence.ts +3 -0
  847. package/src/interactive/turn-prewarm.ts +126 -19
  848. package/src/interactive/turn-queues.ts +8 -7
  849. package/src/interactive/turn-runtime.ts +15 -1
  850. package/src/interactive/view/view-overlay.ts +19 -14
  851. package/src/interactive/welcome-dashboard.ts +525 -408
  852. package/src/tools/bootstrap.ts +8 -0
  853. package/src/tools/builtin-tool-catalog.ts +15 -6
  854. package/src/tools/context/index.ts +58 -5
  855. package/src/tools/context/library.ts +465 -0
  856. package/src/tools/context/surface.ts +20 -6
  857. package/src/tools/core-bootstrap.ts +3 -0
  858. package/src/tools/dispatch-admission.ts +24 -1
  859. package/src/tools/dispatch-arguments.ts +8 -0
  860. package/src/tools/dispatch-plan.ts +32 -0
  861. package/src/tools/dispatch-schema.ts +31 -1
  862. package/src/tools/dispatch-types.ts +3 -0
  863. package/src/tools/dispatch.ts +1 -1
  864. package/src/tools/harness-extensions.ts +169 -0
  865. package/src/tools/observation.ts +4 -0
  866. package/src/tools/policy.ts +7 -1
  867. package/src/tools/registry.ts +31 -3
  868. package/src/tools/worker-evidence.ts +5 -0
  869. package/src/worker/context-seed.ts +192 -0
  870. package/src/worker/entry.ts +1 -0
  871. package/src/worker/spec-contract.ts +35 -1
  872. package/dist/acp-UVEVWSDL.js +0 -130
  873. package/dist/agents-VWY37DTK.js +0 -148
  874. package/dist/auth-PCV2XQDV.js +0 -551
  875. package/dist/builtins-PD652MTK.js +0 -22
  876. package/dist/chunk-22PQ4TX4.js +0 -360
  877. package/dist/chunk-24T2YZ7A.js +0 -22648
  878. package/dist/chunk-2AKYFREM.js +0 -1008
  879. package/dist/chunk-2QPI3TR3.js +0 -162
  880. package/dist/chunk-3BJGMT2D.js +0 -324
  881. package/dist/chunk-3HQVBIKD.js +0 -308
  882. package/dist/chunk-3JLFK5MW.js +0 -193
  883. package/dist/chunk-3O2ZAUGQ.js +0 -283
  884. package/dist/chunk-3QKXHCGS.js +0 -59
  885. package/dist/chunk-3T4DXWP6.js +0 -668
  886. package/dist/chunk-3UW3KU4A.js +0 -21
  887. package/dist/chunk-3WBALRQH.js +0 -5076
  888. package/dist/chunk-4DU2TVI4.js +0 -108
  889. package/dist/chunk-4U4TKZFR.js +0 -5052
  890. package/dist/chunk-4VMV6OS6.js +0 -101
  891. package/dist/chunk-536HXRFE.js +0 -1257
  892. package/dist/chunk-5CMARGPF.js +0 -477
  893. package/dist/chunk-5CY4Q6QI.js +0 -141
  894. package/dist/chunk-5QRX7SLS.js +0 -1018
  895. package/dist/chunk-5VTJP36Q.js +0 -36
  896. package/dist/chunk-5ZSZEYJK.js +0 -119
  897. package/dist/chunk-6HAO6X5B.js +0 -197
  898. package/dist/chunk-6OII3LOK.js +0 -404
  899. package/dist/chunk-6RYDAVQT.js +0 -4338
  900. package/dist/chunk-6VRRJT7L.js +0 -146
  901. package/dist/chunk-6YA46L5A.js +0 -386
  902. package/dist/chunk-77CZRFTE.js +0 -634
  903. package/dist/chunk-7JSSKXG2.js +0 -1215
  904. package/dist/chunk-7WUZEB2M.js +0 -165
  905. package/dist/chunk-7YJWEF2L.js +0 -974
  906. package/dist/chunk-ACCKVSHU.js +0 -44
  907. package/dist/chunk-B3MOMLJ4.js +0 -433
  908. package/dist/chunk-BBV5TKE6.js +0 -35
  909. package/dist/chunk-BLTEAUCB.js +0 -668
  910. package/dist/chunk-BS4GAMUB.js +0 -233
  911. package/dist/chunk-BT7HGDOX.js +0 -3151
  912. package/dist/chunk-CBSKDFWL.js +0 -101
  913. package/dist/chunk-CXQ37WJH.js +0 -45
  914. package/dist/chunk-DXLUVUD4.js +0 -1490
  915. package/dist/chunk-DZK63TZJ.js +0 -1334
  916. package/dist/chunk-E7RF4KBO.js +0 -266
  917. package/dist/chunk-ECOMVOHP.js +0 -139
  918. package/dist/chunk-EHOSNVVM.js +0 -59
  919. package/dist/chunk-F5Z7EWMN.js +0 -4484
  920. package/dist/chunk-FQOOGXBH.js +0 -579
  921. package/dist/chunk-GLYBJ4RQ.js +0 -396
  922. package/dist/chunk-HHVJNVUJ.js +0 -179
  923. package/dist/chunk-HL26ADLH.js +0 -77
  924. package/dist/chunk-HPTJF6DG.js +0 -2465
  925. package/dist/chunk-HXHFDHB6.js +0 -962
  926. package/dist/chunk-HZ2T2YED.js +0 -1687
  927. package/dist/chunk-HZFBVU5X.js +0 -666
  928. package/dist/chunk-I2K2NCZQ.js +0 -659
  929. package/dist/chunk-IGLVVNEG.js +0 -402
  930. package/dist/chunk-IKRWLEDA.js +0 -1567
  931. package/dist/chunk-J2FYEQ5L.js +0 -33
  932. package/dist/chunk-JMPL7NUB.js +0 -108
  933. package/dist/chunk-K2HL3GBL.js +0 -998
  934. package/dist/chunk-KAFMW7WM.js +0 -386
  935. package/dist/chunk-KTFSFCVN.js +0 -46
  936. package/dist/chunk-LIN2K3EL.js +0 -66
  937. package/dist/chunk-LUL5Z66S.js +0 -221
  938. package/dist/chunk-LVFANMOH.js +0 -466
  939. package/dist/chunk-LY4N4TTL.js +0 -117
  940. package/dist/chunk-LZBMXNLP.js +0 -1196
  941. package/dist/chunk-M6TAYK66.js +0 -807
  942. package/dist/chunk-N2OKBREN.js +0 -243
  943. package/dist/chunk-NC4KV7EL.js +0 -39
  944. package/dist/chunk-NF3BK5WR.js +0 -42
  945. package/dist/chunk-NNWJYUNO.js +0 -573
  946. package/dist/chunk-NTK3WTHM.js +0 -141
  947. package/dist/chunk-ODUTYZIU.js +0 -688
  948. package/dist/chunk-OQM5IVJY.js +0 -1377
  949. package/dist/chunk-P5JMBPDJ.js +0 -7192
  950. package/dist/chunk-P5SC4DLJ.js +0 -47
  951. package/dist/chunk-P6M7RKMI.js +0 -97
  952. package/dist/chunk-PWWSIB2A.js +0 -52
  953. package/dist/chunk-PZN2LQY6.js +0 -674
  954. package/dist/chunk-Q7NNUHQV.js +0 -705
  955. package/dist/chunk-QCOV5DFY.js +0 -911
  956. package/dist/chunk-QNWRHOMF.js +0 -692
  957. package/dist/chunk-QRFXEO6Y.js +0 -17
  958. package/dist/chunk-QXFBABFJ.js +0 -380
  959. package/dist/chunk-RGZNQ5CT.js +0 -657
  960. package/dist/chunk-SRZOW5L2.js +0 -1865
  961. package/dist/chunk-SXQKNKRA.js +0 -223
  962. package/dist/chunk-T334FW2H.js +0 -362
  963. package/dist/chunk-T52TPHYC.js +0 -318
  964. package/dist/chunk-TJFDL26W.js +0 -658
  965. package/dist/chunk-TN5FW4XY.js +0 -172
  966. package/dist/chunk-U7H5WRG5.js +0 -123
  967. package/dist/chunk-UFYNOQK4.js +0 -302
  968. package/dist/chunk-URBGEOH3.js +0 -32
  969. package/dist/chunk-USZA7GWL.js +0 -341
  970. package/dist/chunk-UUQ5G6EZ.js +0 -697
  971. package/dist/chunk-VAHLPXPY.js +0 -399
  972. package/dist/chunk-VANN3GDP.js +0 -2488
  973. package/dist/chunk-VHMX7SXF.js +0 -1289
  974. package/dist/chunk-WJIMKGD6.js +0 -132
  975. package/dist/chunk-WKUYQBCG.js +0 -795
  976. package/dist/chunk-WNGF5AJX.js +0 -1911
  977. package/dist/chunk-WV6TDAPN.js +0 -3627
  978. package/dist/chunk-X3BI7HTV.js +0 -562
  979. package/dist/chunk-XWMSPJYN.js +0 -149
  980. package/dist/chunk-YPRSNUTC.js +0 -395
  981. package/dist/chunk-ZS43Y2FT.js +0 -438
  982. package/dist/clio-QQCMTUZE.js +0 -26
  983. package/dist/code-nav-GUPM6766.js +0 -686
  984. package/dist/components-TNIKXCBH.js +0 -674
  985. package/dist/config-IIM7YOD3.js +0 -621
  986. package/dist/configure-4ZM5HWJX.js +0 -73
  987. package/dist/context-44BZLJ3J.js +0 -344
  988. package/dist/context-AIDVQKMW.js +0 -278
  989. package/dist/context-OL5P3HEP.js +0 -1031
  990. package/dist/context-clear-OQV76MYP.js +0 -184
  991. package/dist/context-index-HP2JFUWA.js +0 -120
  992. package/dist/context-map-INTXD54D.js +0 -555
  993. package/dist/context-working-set-ZUW3EGLS.js +0 -1556
  994. package/dist/detail-UXPWRANG.js +0 -115
  995. package/dist/dispatch-runner-P3ZW6G77.js +0 -2438
  996. package/dist/docs-BL7ROUFN.js +0 -292
  997. package/dist/doctor-JJVGPZWT.js +0 -797
  998. package/dist/eval-V2RTN3UH.js +0 -4972
  999. package/dist/eval-inventory-QOYZERXJ.js +0 -315
  1000. package/dist/evidence-35PYWGSO.js +0 -225
  1001. package/dist/evidence-CIGGKI6J.js +0 -383
  1002. package/dist/evolve-33SM3NJP.js +0 -609
  1003. package/dist/extensions-YVRHX6ZI.js +0 -229
  1004. package/dist/fleet-LFO7SIPC.js +0 -908
  1005. package/dist/fleet-commands-RLK72GU3.js +0 -75
  1006. package/dist/fleet-decisions-3SBSCTCW.js +0 -159
  1007. package/dist/fleet-graph-JZIBCGMW.js +0 -134
  1008. package/dist/fleet-inspect-2L5YGGZJ.js +0 -469
  1009. package/dist/fleet-preflight-QRSHIIDE.js +0 -22
  1010. package/dist/fleet-validate-LIAVKDUU.js +0 -92
  1011. package/dist/fleet-verify-JIK3OQZR.js +0 -202
  1012. package/dist/fleet-view-IWHYGQKK.js +0 -118
  1013. package/dist/init-NJEDOTQW.js +0 -321
  1014. package/dist/interop-RVCAYECG.js +0 -115
  1015. package/dist/inventory-74UL7UHU.js +0 -118
  1016. package/dist/library-CTKZA7K3.js +0 -226
  1017. package/dist/memory-I76I5VUH.js +0 -512
  1018. package/dist/models-D4YDIQZQ.js +0 -289
  1019. package/dist/monitor-NKVD55HX.js +0 -775
  1020. package/dist/orchestrator-I6OATVPK.js +0 -39518
  1021. package/dist/panes-7BTYH3XQ.js +0 -103
  1022. package/dist/panes-WPOMEMRH.js +0 -74
  1023. package/dist/paths-J3KN7UAO.js +0 -67
  1024. package/dist/preload-EJAWJEIO.js +0 -116
  1025. package/dist/reset-4XMQKDNZ.js +0 -345
  1026. package/dist/resources-TVYVXK3Q.js +0 -125
  1027. package/dist/run-OWQNNSJU.js +0 -872
  1028. package/dist/share-NPZZMUXG.js +0 -290
  1029. package/dist/skills-OXFEAWMT.js +0 -510
  1030. package/dist/skills-eval-J5TCKSJA.js +0 -1034
  1031. package/dist/skills-inventory-7II4DM57.js +0 -133
  1032. package/dist/slash-commands-MDSDSWYF.js +0 -92
  1033. package/dist/steer-S7D7IKPU.js +0 -77
  1034. package/dist/support-5VAEC32W.js +0 -38
  1035. package/dist/targets-KILZEOCE.js +0 -1109
  1036. package/dist/tasks-R6P6OV22.js +0 -36
  1037. package/dist/terminal-lease-LZCG2KN3.js +0 -405
  1038. package/dist/tools-6OCQ6SVB.js +0 -28
  1039. package/dist/trace-JHLXWUMN.js +0 -572
  1040. package/dist/tui-primitives-RCY2HN7G.js +0 -17
  1041. package/dist/uninstall-FXYMFFRT.js +0 -407
  1042. package/dist/upgrade-D2OZH6IQ.js +0 -307
  1043. package/dist/usage-PIASNUS4.js +0 -1052
  1044. package/dist/verifiers-LTHUY2PX.js +0 -630
  1045. package/dist/verify-HYF7KBVE.js +0 -30
  1046. package/dist/web-fetch-MQN4FH3X.js +0 -788
  1047. package/dist/wiki-generate-RK7JQ5NP.js +0 -615
  1048. package/dist/with-panes-OFTNAR4Y.js +0 -628
  1049. package/skills/README.md +0 -418
  1050. package/skills/coding/ast-grep/SKILL.md +0 -213
  1051. package/skills/coding/ast-grep/evals.md +0 -82
  1052. package/skills/coding/coding-standards/SKILL.md +0 -164
  1053. package/skills/coding/coding-standards/evals.md +0 -57
  1054. package/skills/coding/prototype/SKILL.md +0 -151
  1055. package/skills/coding/prototype/evals.md +0 -61
  1056. package/skills/coding/tdd/SKILL.md +0 -134
  1057. package/skills/coding/tdd/evals.md +0 -61
  1058. package/skills/context/context-handoff/SKILL.md +0 -176
  1059. package/skills/context/context-handoff/evals.md +0 -101
  1060. package/skills/context/context-prime/SKILL.md +0 -131
  1061. package/skills/context/context-prime/evals.md +0 -99
  1062. package/skills/git/branch-closeout/SKILL.md +0 -132
  1063. package/skills/git/file-ticket/SKILL.md +0 -126
  1064. package/skills/git/fix-issue/SKILL.md +0 -136
  1065. package/skills/git/resolve-merge-conflicts/SKILL.md +0 -151
  1066. package/skills/git/resolve-merge-conflicts/evals.md +0 -85
  1067. package/skills/git/ship/SKILL.md +0 -134
  1068. package/skills/git/worktree-create/SKILL.md +0 -127
  1069. package/skills/git/worktree-merge/SKILL.md +0 -147
  1070. package/skills/meta/clio-coder-dev/SKILL.md +0 -101
  1071. package/skills/meta/clio-coder-dev/evals.md +0 -46
  1072. package/skills/meta/clio-coder-test/SKILL.md +0 -146
  1073. package/skills/meta/clio-coder-test/evals.md +0 -48
  1074. package/skills/meta/clio-coder-test/references/test-map.md +0 -96
  1075. package/skills/meta/credentials/SKILL.md +0 -132
  1076. package/skills/meta/credentials/evals.md +0 -104
  1077. package/skills/meta/find-skills/SKILL.md +0 -78
  1078. package/skills/meta/find-skills/evals.md +0 -47
  1079. package/skills/meta/herdr/SKILL.md +0 -133
  1080. package/skills/meta/herdr/evals.md +0 -38
  1081. package/skills/meta/skill-craft/SKILL.md +0 -125
  1082. package/skills/meta/skill-craft/evals.md +0 -41
  1083. package/skills/planning/archify/SKILL.md +0 -196
  1084. package/skills/planning/architecture/SKILL.md +0 -184
  1085. package/skills/planning/architecture/evals.md +0 -101
  1086. package/skills/planning/backlog/SKILL.md +0 -212
  1087. package/skills/planning/backlog/evals.md +0 -185
  1088. package/skills/planning/prd/SKILL.md +0 -129
  1089. package/skills/planning/prd/evals.md +0 -103
  1090. package/skills/planning/product-intent/SKILL.md +0 -173
  1091. package/skills/planning/product-intent/evals.md +0 -106
  1092. package/skills/planning/tech-spec/SKILL.md +0 -172
  1093. package/skills/planning/tech-spec/evals.md +0 -120
  1094. package/skills/registry.yaml +0 -144
  1095. package/skills/remote.yaml +0 -13
  1096. package/skills/research/arxiv-literature/SKILL.md +0 -168
  1097. package/skills/research/arxiv-literature/evals.md +0 -108
  1098. package/skills/research/experiment-protocol/SKILL.md +0 -148
  1099. package/skills/research/experiment-protocol/evals.md +0 -114
  1100. package/skills/research/scientific-debugging/SKILL.md +0 -149
  1101. package/skills/research/scientific-debugging/evals.md +0 -156
  1102. package/skills/research/scientific-modernization/SKILL.md +0 -170
  1103. package/skills/research/scientific-modernization/evals.md +0 -111
  1104. package/skills/skill-marketplace.json +0 -507
  1105. package/skills/workflow/cut-it/SKILL.md +0 -153
  1106. package/skills/workflow/cut-it/evals.md +0 -143
  1107. package/skills/workflow/design-council/SKILL.md +0 -233
  1108. package/skills/workflow/design-council/evals.md +0 -258
  1109. package/skills/workflow/grill-me/SKILL.md +0 -267
  1110. package/skills/workflow/grill-me/evals.md +0 -231
  1111. package/skills/workflow/workflow-distiller/SKILL.md +0 -201
  1112. package/skills/workflow/workflow-distiller/evals.md +0 -225
  1113. package/src/domains/extensions/resource-path.ts +0 -27
  1114. package/src/domains/extensions/resources.ts +0 -37
  1115. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +0 -27
  1116. package/src/interactive/overlays/agents.ts +0 -70
  1117. package/src/interactive/overlays/library-install-confirm.ts +0 -152
  1118. package/src/interactive/overlays/prompts.ts +0 -89
  1119. package/src/interactive/overlays/skills-hub.ts +0 -615
  1120. /package/{skills → library/skills}/coding/ast-grep/references/rule_reference.md +0 -0
  1121. /package/{skills → library/skills}/coding/prototype/references/LOGIC.md +0 -0
  1122. /package/{skills → library/skills}/coding/prototype/references/UI.md +0 -0
  1123. /package/{skills → library/skills}/coding/tdd/references/mocking.md +0 -0
  1124. /package/{skills → library/skills}/coding/tdd/references/tests.md +0 -0
  1125. /package/{skills → library/skills}/context/context-handoff/scripts/new-handoff.sh +0 -0
  1126. /package/{skills → library/skills}/git/branch-closeout/evals.md +0 -0
  1127. /package/{skills → library/skills}/git/branch-closeout/references/closeout-checklist.md +0 -0
  1128. /package/{skills → library/skills}/git/file-ticket/assets/issue-template.md +0 -0
  1129. /package/{skills → library/skills}/git/file-ticket/evals.md +0 -0
  1130. /package/{skills → library/skills}/git/file-ticket/references/issue-discovery.md +0 -0
  1131. /package/{skills → library/skills}/git/fix-issue/evals.md +0 -0
  1132. /package/{skills → library/skills}/git/fix-issue/references/diagnosis-and-rca.md +0 -0
  1133. /package/{skills → library/skills}/git/resolve-merge-conflicts/references/conflict-matrix.md +0 -0
  1134. /package/{skills → library/skills}/git/ship/assets/pr-template.md +0 -0
  1135. /package/{skills → library/skills}/git/ship/evals.md +0 -0
  1136. /package/{skills → library/skills}/git/ship/references/remote-and-branch-policy.md +0 -0
  1137. /package/{skills → library/skills}/git/worktree-create/evals.md +0 -0
  1138. /package/{skills → library/skills}/git/worktree-create/references/worktree-setup.md +0 -0
  1139. /package/{skills → library/skills}/git/worktree-merge/evals.md +0 -0
  1140. /package/{skills → library/skills}/git/worktree-merge/references/merge-strategies.md +0 -0
  1141. /package/{skills → library/skills}/meta/clio-coder-test/references/harness.md +0 -0
  1142. /package/{skills → library/skills}/planning/archify/evals.md +0 -0
@@ -1,1034 +0,0 @@
1
- import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- parseSkillEvals
4
- } from "./chunk-QCOV5DFY.js";
5
- import "./chunk-XWMSPJYN.js";
6
- import "./chunk-VAHLPXPY.js";
7
- import "./chunk-3UW3KU4A.js";
8
- import {
9
- discoverMarketplaceSkills,
10
- loadSkills
11
- } from "./chunk-536HXRFE.js";
12
- import "./chunk-DNCE23JJ.js";
13
- import "./chunk-U7H5WRG5.js";
14
- import "./chunk-5VTJP36Q.js";
15
- import {
16
- buildEvalEvidence,
17
- summarizeEvalResults
18
- } from "./chunk-24T2YZ7A.js";
19
- import "./chunk-PECBKCDK.js";
20
- import "./chunk-ODUTYZIU.js";
21
- import "./chunk-P5SC4DLJ.js";
22
- import "./chunk-VHMX7SXF.js";
23
- import "./chunk-ZS43Y2FT.js";
24
- import {
25
- evalClioProvenance,
26
- evalEnvironmentProvenance
27
- } from "./chunk-HZ2T2YED.js";
28
- import "./chunk-DXLUVUD4.js";
29
- import {
30
- ZERO_EVAL_HARNESS_METRICS,
31
- writeEvalArtifact
32
- } from "./chunk-U44YYLVV.js";
33
- import "./chunk-UQIVHSE4.js";
34
- import "./chunk-USZA7GWL.js";
35
- import "./chunk-LVFANMOH.js";
36
- import "./chunk-WTQGRBHV.js";
37
- import "./chunk-7WUZEB2M.js";
38
- import "./chunk-O5F25NIE.js";
39
- import "./chunk-IGLVVNEG.js";
40
- import "./chunk-3WBALRQH.js";
41
- import "./chunk-CXQ37WJH.js";
42
- import "./chunk-6OII3LOK.js";
43
- import "./chunk-7YJWEF2L.js";
44
- import "./chunk-QH3ZTUOA.js";
45
- import "./chunk-LQTKDAUO.js";
46
- import "./chunk-22PQ4TX4.js";
47
- import "./chunk-DZK63TZJ.js";
48
- import "./chunk-TJFDL26W.js";
49
- import "./chunk-SD7SHNDW.js";
50
- import "./chunk-T52TPHYC.js";
51
- import "./chunk-DNHVRBH4.js";
52
- import {
53
- formatColumns,
54
- printError
55
- } from "./chunk-3T4DXWP6.js";
56
- import {
57
- HEADLESS_PERMISSION_DENIED_MARKER
58
- } from "./chunk-P5JMBPDJ.js";
59
- import "./chunk-K2HL3GBL.js";
60
- import "./chunk-YPRSNUTC.js";
61
- import "./chunk-2GPGAE5W.js";
62
- import {
63
- NO_NETWORK_TOOLS_ENV
64
- } from "./chunk-SL2RDHKO.js";
65
- import "./chunk-YGDMBK7O.js";
66
- import "./chunk-V552WL53.js";
67
- import "./chunk-7JSSKXG2.js";
68
- import "./chunk-KECNXMDE.js";
69
- import "./chunk-WXA2CFJO.js";
70
- import "./chunk-CBSKDFWL.js";
71
- import "./chunk-LY4N4TTL.js";
72
- import "./chunk-OQM5IVJY.js";
73
- import "./chunk-L4N3DWNW.js";
74
- import "./chunk-WJIMKGD6.js";
75
- import "./chunk-GH5ZR6JP.js";
76
- import "./chunk-VQD7NH7Z.js";
77
- import "./chunk-O3VV6IVK.js";
78
- import "./chunk-KAFMW7WM.js";
79
- import "./chunk-I2K2NCZQ.js";
80
- import "./chunk-IKRWLEDA.js";
81
- import "./chunk-NTK3WTHM.js";
82
- import "./chunk-4U4TKZFR.js";
83
- import "./chunk-MCJKEGHO.js";
84
- import "./chunk-77CZRFTE.js";
85
- import "./chunk-LUL5Z66S.js";
86
- import "./chunk-M6TAYK66.js";
87
- import "./chunk-KQ6IDQIB.js";
88
- import "./chunk-PZN2LQY6.js";
89
- import "./chunk-R2P2U3ZS.js";
90
- import "./chunk-NTTS3O53.js";
91
- import "./chunk-M4KFUXS7.js";
92
- import "./chunk-J2FYEQ5L.js";
93
- import "./chunk-EM2WNQS2.js";
94
- import "./chunk-WNGF5AJX.js";
95
- import "./chunk-DVNAPPXU.js";
96
- import "./chunk-5CY4Q6QI.js";
97
- import "./chunk-FQOOGXBH.js";
98
- import "./chunk-UHW5V7HC.js";
99
- import "./chunk-B6UM3OZC.js";
100
- import "./chunk-MYI32N4R.js";
101
- import "./chunk-EHOSNVVM.js";
102
- import "./chunk-KMF54VH3.js";
103
- import {
104
- combineBashOutput,
105
- runBashCommand
106
- } from "./chunk-5A6XR3RJ.js";
107
- import "./chunk-EFSEIZE6.js";
108
- import "./chunk-B5ZTR6KZ.js";
109
- import "./chunk-HL26ADLH.js";
110
- import "./chunk-VHKTOLEW.js";
111
- import "./chunk-KPRLAMP4.js";
112
- import "./chunk-W2RJEH6Q.js";
113
- import "./chunk-CVDAFGPW.js";
114
- import "./chunk-PPEZJWUG.js";
115
- import "./chunk-WDV62RKY.js";
116
- import "./chunk-GD55RTIW.js";
117
- import "./chunk-E3LEPLQ2.js";
118
- import "./chunk-WV6TDAPN.js";
119
- import "./chunk-3BJGMT2D.js";
120
- import "./chunk-U2MSJ57E.js";
121
- import "./chunk-C27U2TYG.js";
122
- import "./chunk-GJ24ODAX.js";
123
- import "./chunk-LTR5QCLS.js";
124
- import "./chunk-6EXUUOSN.js";
125
- import "./chunk-ZTNFYMIO.js";
126
- import "./chunk-HHVJNVUJ.js";
127
- import "./chunk-HXHFDHB6.js";
128
- import "./chunk-VNBICSS2.js";
129
- import "./chunk-2QPI3TR3.js";
130
- import "./chunk-TK2BMCBZ.js";
131
- import "./chunk-B5GGDIHT.js";
132
- import "./chunk-ZZFWWYLX.js";
133
- import "./chunk-SRCEQKQS.js";
134
- import "./chunk-TN5FW4XY.js";
135
- import "./chunk-5CMARGPF.js";
136
- import "./chunk-DXVMLM3Z.js";
137
- import "./chunk-CKK25WN3.js";
138
- import {
139
- clioDataDir,
140
- clioStateDir
141
- } from "./chunk-CTTI7G3T.js";
142
- import {
143
- init_esm_shims
144
- } from "./chunk-ECBHH7LU.js";
145
-
146
- // src/cli/skills-eval.ts
147
- init_esm_shims();
148
- import { spawn } from "node:child_process";
149
- import { createHash, randomBytes } from "node:crypto";
150
- import { existsSync } from "node:fs";
151
- import { cp, mkdir, mkdtemp, readdir, readFile, rm, stat, writeFile } from "node:fs/promises";
152
- import { tmpdir } from "node:os";
153
- import { join, resolve } from "node:path";
154
- import { performance } from "node:perf_hooks";
155
- var DEFAULT_RUN_TIMEOUT_MS = 6e5;
156
- var ARM_AUTONOMY = "full-auto";
157
- var CHILD_OUTPUT_LIMIT = 4e6;
158
- var PREVIEW_MAX_CHARS = 300;
159
- var TRANSCRIPT_HEAD_CHARS = 9e3;
160
- var TRANSCRIPT_TAIL_CHARS = 4e3;
161
- var SKILL_EVAL_SIDECAR = "skill-eval.json";
162
- async function runSkillsEvalCommand(nameOrPath, options) {
163
- const resolved = resolveSkillBaseDir(nameOrPath, process.cwd());
164
- if (resolved.baseDir === null) {
165
- printError(resolved.error ?? `unknown skill: ${nameOrPath}`);
166
- return 2;
167
- }
168
- const list = loadSkills({ disableDiscovery: true, explicitSkillPaths: [resolved.baseDir] });
169
- const skill = list.items[0];
170
- if (skill === void 0) {
171
- printError(`skill did not load from ${resolved.baseDir}: ${list.diagnostics.map((d) => d.message).join("; ")}`);
172
- return 2;
173
- }
174
- process.stderr.write(
175
- `clio-coder skills eval: ${skill.name} from ${resolved.origin ?? "unknown"} at ${resolved.baseDir} (sha256 ${skill.normalizedHash.slice(0, 12)}\u2026)
176
- `
177
- );
178
- const evalsPath = join(resolved.baseDir, "evals.md");
179
- let evalsRaw;
180
- try {
181
- evalsRaw = await readFile(evalsPath, "utf8");
182
- } catch {
183
- printError(`skill ${skill.name} has no evals.md at ${evalsPath}`);
184
- return 2;
185
- }
186
- const parsed = parseSkillEvals(evalsRaw);
187
- for (const diagnostic of parsed.diagnostics) {
188
- process.stderr.write(`clio-coder skills eval: ${diagnostic}
189
- `);
190
- }
191
- const matcher = options.scenario === void 0 ? null : scenarioMatcher(options.scenario);
192
- if (options.scenario !== void 0 && matcher === null) {
193
- printError(`invalid --scenario "${options.scenario}": use a scenario id like S1 or a bare number`);
194
- return 2;
195
- }
196
- const scenarios = matcher === null ? parsed.scenarios : parsed.scenarios.filter(matcher);
197
- if (scenarios.length === 0) {
198
- printError(
199
- matcher === null ? `no parseable scenarios in ${evalsPath}` : `scenario ${options.scenario} not found in ${evalsPath} (have: ${parsed.scenarios.map((s) => s.id).join(", ") || "none"})`
200
- );
201
- return 2;
202
- }
203
- process.stderr.write(`clio-coder skills eval: ${describeArmPolicy(options.allowNetwork)}
204
- `);
205
- const childEnv = evalChildEnv(options.allowNetwork);
206
- const timeoutMs = options.timeoutSeconds !== void 0 ? options.timeoutSeconds * 1e3 : DEFAULT_RUN_TIMEOUT_MS;
207
- const workspaceOverride = await resolveWorkspaceOverride(options.workspace);
208
- if (typeof workspaceOverride !== "string" && workspaceOverride !== null) {
209
- printError(workspaceOverride.error);
210
- return 2;
211
- }
212
- const startedAt = (/* @__PURE__ */ new Date()).toISOString();
213
- const outcomes = [];
214
- for (const scenario of scenarios) {
215
- process.stderr.write(`clio-coder skills eval: ${skill.name} ${scenario.id} baseline/treatment/judge...
216
- `);
217
- outcomes.push(
218
- await runScenario(
219
- skill.name,
220
- resolved.baseDir,
221
- scenario,
222
- options.target,
223
- timeoutMs,
224
- workspaceOverride,
225
- options.trustFixtures,
226
- childEnv
227
- )
228
- );
229
- }
230
- const endedAt = (/* @__PURE__ */ new Date()).toISOString();
231
- const artifact = synthesizeArtifact(skill.name, evalsPath, evalsRaw, startedAt, endedAt, outcomes, options.target);
232
- let evidenceId = null;
233
- let evidenceDirectory = null;
234
- const evidenceErrors = [];
235
- try {
236
- await writeEvalArtifact(clioDataDir(), artifact);
237
- const built = await buildEvalEvidence({
238
- dataDir: clioDataDir(),
239
- stateDir: clioStateDir(),
240
- artifact,
241
- sidecars: [SKILL_EVAL_SIDECAR]
242
- });
243
- evidenceId = built.evidenceId;
244
- evidenceDirectory = built.directory;
245
- await writeFile(
246
- join(built.directory, SKILL_EVAL_SIDECAR),
247
- `${JSON.stringify(sidecar(skill.name, artifact.evalId, outcomes, options.allowNetwork), null, 2)}
248
- `,
249
- "utf8"
250
- );
251
- } catch (error) {
252
- evidenceErrors.push(error instanceof Error ? error.message : String(error));
253
- }
254
- for (const message of evidenceErrors) {
255
- process.stderr.write(`clio-coder skills eval: evidence build failed: ${message}
256
- `);
257
- }
258
- if (options.json) {
259
- for (const outcome of outcomes) {
260
- for (const bullet of outcome.bullets) {
261
- process.stdout.write(
262
- `${JSON.stringify({
263
- schema: "experimental",
264
- kind: "skill-eval-bullet",
265
- skill: skill.name,
266
- scenario: outcome.scenario.id,
267
- title: outcome.scenario.title,
268
- bullet: bullet.index,
269
- expected: bullet.text,
270
- verdict: bullet.verdict,
271
- reason: bullet.reason,
272
- network: networkPolicyLabel(options.allowNetwork),
273
- autonomy: ARM_AUTONOMY,
274
- baselineSessionId: outcome.baseline?.sessionId ?? null,
275
- treatmentSessionId: outcome.treatment?.sessionId ?? null,
276
- judgeSessionId: outcome.judge?.sessionId ?? null,
277
- evalId: artifact.evalId,
278
- evidenceId
279
- })}
280
- `
281
- );
282
- }
283
- }
284
- } else {
285
- printHumanReport(skill.name, outcomes, artifact.evalId, evidenceId, evidenceDirectory, options.allowNetwork);
286
- }
287
- const anyFailure = outcomes.some(
288
- (outcome) => outcome.bullets.some((bullet) => bullet.verdict === "fail" || bullet.verdict === "error")
289
- );
290
- const anyUnmeasured = outcomes.some((outcome) => outcome.bullets.some((bullet) => bullet.verdict === "unmeasured"));
291
- if (anyFailure) return 1;
292
- return anyUnmeasured || evidenceErrors.length > 0 ? 3 : 0;
293
- }
294
- function networkPolicyLabel(allowNetwork) {
295
- return allowNetwork ? "allowed" : "retrieve-disabled";
296
- }
297
- function describeArmPolicy(allowNetwork) {
298
- const network = allowNetwork ? "network allowed (--allow-network), so arm runs keep the web tools" : "retrieval tools disabled in every arm run; bash networking requires OS isolation (pass --allow-network to keep web tools)";
299
- return `policy: autonomy ${ARM_AUTONOMY} for the baseline and treatment arms in per-run disposable workspaces; ${network}`;
300
- }
301
- function describeArmPolicyOutcome(allowNetwork) {
302
- const network = allowNetwork ? "network: allowed (--allow-network); arm runs kept the web tools" : "retrieval: disabled; bash networking was not constrained";
303
- return `policy: the baseline and treatment arms ran at autonomy ${ARM_AUTONOMY}; ${network}`;
304
- }
305
- function armRunArgs(arm, prompt, options = {}) {
306
- const args = ["run", "--json", "--json-events", "full", "--no-skills"];
307
- if (arm !== "judge") args.push("--autonomy", ARM_AUTONOMY);
308
- if (options.skillBaseDir !== void 0) args.push("--skill", options.skillBaseDir);
309
- if (options.target !== void 0) args.push("--target", options.target);
310
- args.push(prompt);
311
- return args;
312
- }
313
- function permissionWallReason(arm, run) {
314
- const haystack = `${run.transcript}
315
- ${run.finalText}`;
316
- let blocked = 0;
317
- let at = haystack.indexOf(HEADLESS_PERMISSION_DENIED_MARKER);
318
- while (at >= 0) {
319
- blocked += 1;
320
- at = haystack.indexOf(HEADLESS_PERMISSION_DENIED_MARKER, at + HEADLESS_PERMISSION_DENIED_MARKER.length);
321
- }
322
- if (blocked === 0) return null;
323
- return `${arm} arm transcript carries the headless permission wall ${blocked} time(s) ("${HEADLESS_PERMISSION_DENIED_MARKER}"): this run measured the harness's own autonomy gate, not the skill`;
324
- }
325
- function unmeasuredBullets(scenario, reason) {
326
- return scenario.expected.map((text, index) => ({ index: index + 1, text, verdict: "unmeasured", reason }));
327
- }
328
- function evalChildEnv(allowNetwork, env = process.env) {
329
- const childEnv = { ...env };
330
- if (allowNetwork) {
331
- Reflect.deleteProperty(childEnv, NO_NETWORK_TOOLS_ENV);
332
- Reflect.deleteProperty(childEnv, "CLIO_CODER_NO_NETWORK_TOOLS");
333
- } else childEnv[NO_NETWORK_TOOLS_ENV] = "1";
334
- return childEnv;
335
- }
336
- function resolveSkillBaseDir(nameOrPath, cwd) {
337
- const asPath = resolve(nameOrPath);
338
- if (existsSync(join(asPath, "SKILL.md"))) return { baseDir: asPath, origin: "path" };
339
- const discovered = loadSkills({ cwd }).items.find((skill) => skill.name === nameOrPath);
340
- if (discovered !== void 0) {
341
- return { baseDir: discovered.baseDir, origin: `${discovered.source}/${discovered.scope}` };
342
- }
343
- const marketplace = discoverMarketplaceSkills({ cwd });
344
- const entry = marketplace.skills.find((skill) => skill.name === nameOrPath && skill.origin === "catalog");
345
- if (entry !== void 0) return { baseDir: entry.sourceUrl, origin: "catalog" };
346
- return {
347
- baseDir: null,
348
- error: `skill not found: ${nameOrPath} (expected an installed skill, a catalog skill name, or a directory containing SKILL.md)`
349
- };
350
- }
351
- function scenarioMatcher(value) {
352
- const trimmed = value.trim();
353
- const full = /^([A-Za-z])(\d+)$/.exec(trimmed);
354
- if (full !== null) {
355
- const id = `${(full[1] ?? "").toUpperCase()}${Number.parseInt(full[2] ?? "", 10)}`;
356
- return (scenario) => scenario.id === id;
357
- }
358
- const bare = /^(\d+)$/.exec(trimmed);
359
- if (bare !== null) {
360
- const wanted = Number.parseInt(bare[1] ?? "", 10);
361
- return (scenario) => scenario.number === wanted;
362
- }
363
- return null;
364
- }
365
- async function resolveWorkspaceOverride(workspace) {
366
- if (workspace === void 0) return null;
367
- const resolved = resolve(workspace);
368
- try {
369
- const info = await stat(resolved);
370
- if (!info.isDirectory()) return { error: `--workspace is not a directory: ${resolved}` };
371
- return resolved;
372
- } catch (error) {
373
- const detail = error instanceof Error ? error.message : String(error);
374
- return { error: `--workspace is not readable: ${resolved}: ${detail}` };
375
- }
376
- }
377
- async function runScenario(skillName, skillBaseDir, scenario, target, timeoutMs, workspaceOverride, trustFixtures, childEnv) {
378
- const scenarioStart = performance.now();
379
- const workspace = await mkdtemp(join(tmpdir(), "clio-coder-skill-eval-seed-"));
380
- let runWorkspaces = null;
381
- try {
382
- if (workspaceOverride !== null) await copyWorkspace(workspaceOverride, workspace);
383
- const fixtureError = await runFixtureCommands(scenario, workspace, timeoutMs, trustFixtures);
384
- if (fixtureError !== null) {
385
- return await completeScenarioOutcome({
386
- scenario,
387
- bullets: errorBullets(scenario, fixtureError),
388
- baseline: null,
389
- treatment: null,
390
- judge: null,
391
- workspace,
392
- wallTimeMs: Math.round(performance.now() - scenarioStart),
393
- infraError: fixtureError
394
- });
395
- }
396
- runWorkspaces = await materializeSkillEvalWorkspaces(workspace);
397
- const baseline = await captureHeadlessRun(
398
- armRunArgs("baseline", scenario.setup, { target }),
399
- runWorkspaces.baseline,
400
- timeoutMs,
401
- childEnv
402
- );
403
- const treatment = await captureHeadlessRun(
404
- armRunArgs("treatment", `/skill ${skillName} ${scenario.setup}`, { target, skillBaseDir }),
405
- runWorkspaces.treatment,
406
- timeoutMs,
407
- childEnv
408
- );
409
- const infra = runInfraError("baseline", baseline) ?? runInfraError("treatment", treatment);
410
- if (infra !== null) {
411
- return await completeScenarioOutcome({
412
- scenario,
413
- bullets: errorBullets(scenario, infra),
414
- baseline,
415
- treatment,
416
- judge: null,
417
- workspace,
418
- wallTimeMs: Math.round(performance.now() - scenarioStart),
419
- infraError: infra
420
- });
421
- }
422
- const wall = permissionWallReason("baseline", baseline) ?? permissionWallReason("treatment", treatment);
423
- if (wall !== null) {
424
- return await completeScenarioOutcome({
425
- scenario,
426
- bullets: unmeasuredBullets(scenario, wall),
427
- baseline,
428
- treatment,
429
- judge: null,
430
- workspace,
431
- wallTimeMs: Math.round(performance.now() - scenarioStart),
432
- infraError: wall
433
- });
434
- }
435
- const judge = await captureHeadlessRun(
436
- armRunArgs("judge", judgePrompt(scenario, baseline.transcript, treatment.transcript), { target }),
437
- runWorkspaces.judge,
438
- timeoutMs,
439
- childEnv
440
- );
441
- const judgeInfra = runInfraError("judge", judge);
442
- if (judgeInfra !== null) {
443
- return await completeScenarioOutcome({
444
- scenario,
445
- bullets: errorBullets(scenario, judgeInfra),
446
- baseline,
447
- treatment,
448
- judge,
449
- workspace,
450
- wallTimeMs: Math.round(performance.now() - scenarioStart),
451
- infraError: judgeInfra
452
- });
453
- }
454
- const bullets = parseJudgeVerdicts(scenario, judge);
455
- return await completeScenarioOutcome({
456
- scenario,
457
- bullets,
458
- baseline,
459
- treatment,
460
- judge,
461
- workspace,
462
- wallTimeMs: Math.round(performance.now() - scenarioStart),
463
- infraError: null
464
- });
465
- } finally {
466
- try {
467
- if (runWorkspaces !== null) await runWorkspaces.cleanup();
468
- } finally {
469
- await rm(workspace, { recursive: true, force: true });
470
- }
471
- }
472
- }
473
- async function armWorkspace(created) {
474
- const root = await mkdtemp(join(tmpdir(), "clio-coder-skill-eval-"));
475
- created.push(root);
476
- const workspace = join(root, "workspace");
477
- await mkdir(workspace, { recursive: true });
478
- return workspace;
479
- }
480
- async function materializeSkillEvalWorkspaces(seedWorkspace) {
481
- const created = [];
482
- try {
483
- const baseline = await armWorkspace(created);
484
- const treatment = await armWorkspace(created);
485
- const judge = await armWorkspace(created);
486
- await Promise.all([copyWorkspace(seedWorkspace, baseline), copyWorkspace(seedWorkspace, treatment)]);
487
- return {
488
- baseline,
489
- treatment,
490
- judge,
491
- cleanup: async () => {
492
- await Promise.all(created.map((path) => rm(path, { recursive: true, force: true })));
493
- }
494
- };
495
- } catch (error) {
496
- await Promise.all(created.map((path) => rm(path, { recursive: true, force: true })));
497
- throw error;
498
- }
499
- }
500
- async function copyWorkspace(source, destination) {
501
- await cp(source, destination, {
502
- recursive: true,
503
- preserveTimestamps: true,
504
- verbatimSymlinks: true
505
- });
506
- }
507
- async function completeScenarioOutcome(outcome) {
508
- return {
509
- ...outcome,
510
- usage: await usageForCapturedRuns([outcome.baseline, outcome.treatment, outcome.judge])
511
- };
512
- }
513
- async function runFixtureCommands(scenario, workspace, timeoutMs, trustFixtures) {
514
- const commands = scenario.fixtureCommands?.trim();
515
- if (commands === void 0 || commands.length === 0) return null;
516
- if (!trustFixtures) {
517
- return "scenario declares fixture commands, which are real shell from the skill's evals.md; review them and rerun with --trust-fixtures";
518
- }
519
- const validationError = validateFixtureCommands(commands);
520
- if (validationError !== null) return `fixture setup rejected: ${validationError}`;
521
- const result = await runBashCommand(commands, {
522
- cwd: workspace,
523
- timeoutMs: Math.min(timeoutMs, 12e4)
524
- });
525
- const output = combineBashOutput(result).trim();
526
- if (result.timedOut) return `fixture setup timed out${output.length > 0 ? `: ${truncate(output, 300)}` : ""}`;
527
- if (result.outputCapped) {
528
- return `fixture setup output exceeded limit${output.length > 0 ? `: ${truncate(output, 300)}` : ""}`;
529
- }
530
- if (result.error !== null) {
531
- return `fixture setup failed${output.length > 0 ? `: ${truncate(output, 300)}` : `: ${result.error.message}`}`;
532
- }
533
- return null;
534
- }
535
- function validateFixtureCommands(commands) {
536
- const checks = [
537
- {
538
- pattern: /(^|[\s;&|(<>='"`])\/(?!dev\/null(?:\s|$))(?=\S)/,
539
- reason: "absolute paths are not allowed in fixture commands"
540
- },
541
- {
542
- pattern: /(^|[\s;&|()'"`/=])\.\.(?=$|[/\s;&|()'"`])/,
543
- reason: "parent-directory path segments are not allowed in fixture commands"
544
- },
545
- {
546
- pattern: /(^|[\s;&|()])~(?=$|[/\s;&|()])/,
547
- reason: "home-directory expansion is not allowed in fixture commands"
548
- },
549
- {
550
- pattern: /\$(?:\{(?:HOME|CLIO_CODER_HOME|CLIO_CODER_CONFIG_DIR|CLIO_CODER_DATA_DIR|CLIO_CODER_STATE_DIR|CLIO_CODER_CACHE_DIR)\}|(?:HOME|CLIO_CODER_HOME|CLIO_CODER_CONFIG_DIR|CLIO_CODER_DATA_DIR|CLIO_CODER_STATE_DIR|CLIO_CODER_CACHE_DIR)\b)/,
551
- reason: "home and Clio directory environment variables are not allowed in fixture commands"
552
- },
553
- {
554
- pattern: /(^|[\s;&|()])(?:cd|pushd|popd)\b/,
555
- reason: "directory-changing commands are not allowed in fixture commands"
556
- },
557
- {
558
- pattern: /(^|[\s;&|()])(?:sudo|su|ssh|scp|rsync)\b/,
559
- reason: "privilege-changing or remote commands are not allowed in fixture commands"
560
- }
561
- ];
562
- for (const check of checks) {
563
- if (check.pattern.test(commands)) return check.reason;
564
- }
565
- return null;
566
- }
567
- async function usageForCapturedRuns(runs) {
568
- const sessionIds = new Set(
569
- runs.flatMap((run) => run?.sessionId !== null && run?.sessionId !== void 0 ? [run.sessionId] : [])
570
- );
571
- const usage = {
572
- tokens: 0,
573
- costUsd: 0,
574
- harness: { ...ZERO_EVAL_HARNESS_METRICS }
575
- };
576
- if (sessionIds.size === 0) return usage;
577
- const receiptRoot = join(clioStateDir(), "receipts");
578
- let files;
579
- try {
580
- files = (await readdir(receiptRoot)).filter((name) => name.endsWith(".json"));
581
- } catch {
582
- return usage;
583
- }
584
- for (const file of files) {
585
- let parsed;
586
- try {
587
- parsed = JSON.parse(await readFile(join(receiptRoot, file), "utf8"));
588
- } catch {
589
- continue;
590
- }
591
- if (!isRecord(parsed) || typeof parsed.sessionId !== "string" || !sessionIds.has(parsed.sessionId)) continue;
592
- usage.tokens += readNumber(parsed.tokenCount);
593
- usage.costUsd += readNumber(parsed.costUsd);
594
- usage.harness.receiptCount += 1;
595
- usage.harness.toolCalls += readNumber(parsed.toolCalls);
596
- if (isRecord(parsed.safety) && isRecord(parsed.safety.decisions)) {
597
- usage.harness.safetyBlocks += readNumber(parsed.safety.decisions.blocked);
598
- }
599
- }
600
- return usage;
601
- }
602
- function runInfraError(label, run) {
603
- if (run.timedOut) return `${label} run timed out`;
604
- if (run.exitCode !== 0) {
605
- const detail = run.stderr.trim().split("\n").at(-1) ?? "";
606
- return `${label} run exited ${run.exitCode}${detail.length > 0 ? `: ${detail}` : ""}`;
607
- }
608
- if (run.transcript.trim().length === 0 && run.finalText.trim().length === 0) {
609
- return `${label} run produced no transcript`;
610
- }
611
- return null;
612
- }
613
- function errorBullets(scenario, reason) {
614
- return scenario.expected.map((text, index) => ({ index: index + 1, text, verdict: "error", reason }));
615
- }
616
- function captureHeadlessRun(args, cwd, timeoutMs, env) {
617
- const startedMs = performance.now();
618
- return new Promise((resolvePromise) => {
619
- let stdout = "";
620
- let pendingStdout = "";
621
- let stderr = "";
622
- let timedOut = false;
623
- let settled = false;
624
- const keepLine = (line) => {
625
- if (line.length === 0) return;
626
- if (stdout.length < CHILD_OUTPUT_LIMIT) stdout += `${line}
627
- `;
628
- };
629
- const child = spawn(process.execPath, [process.argv[1] ?? "", ...args], {
630
- cwd,
631
- stdio: ["ignore", "pipe", "pipe"],
632
- env
633
- });
634
- child.stdout.setEncoding("utf8");
635
- child.stderr.setEncoding("utf8");
636
- child.stdout.on("data", (chunk) => {
637
- pendingStdout += chunk;
638
- const lines = pendingStdout.split("\n");
639
- pendingStdout = lines.pop() ?? "";
640
- for (const line of lines) keepLine(line);
641
- });
642
- child.stderr.on("data", (chunk) => {
643
- if (stderr.length < CHILD_OUTPUT_LIMIT) stderr += chunk;
644
- });
645
- let killTimer;
646
- const timer = setTimeout(() => {
647
- timedOut = true;
648
- child.kill("SIGTERM");
649
- killTimer = setTimeout(() => child.kill("SIGKILL"), 5e3);
650
- }, timeoutMs);
651
- const finish = (exitCode) => {
652
- if (settled) return;
653
- settled = true;
654
- clearTimeout(timer);
655
- if (killTimer !== void 0) clearTimeout(killTimer);
656
- keepLine(pendingStdout);
657
- pendingStdout = "";
658
- const parsedRun = parseRunStdout(stdout);
659
- resolvePromise({
660
- ...parsedRun,
661
- exitCode,
662
- timedOut,
663
- wallTimeMs: Math.round(performance.now() - startedMs),
664
- stderr
665
- });
666
- };
667
- child.on("error", (error) => {
668
- stderr += `
669
- ${error.message}`;
670
- finish(1);
671
- });
672
- child.on("close", (code) => finish(typeof code === "number" ? code : timedOut ? 124 : 1));
673
- });
674
- }
675
- function loadsSkillBody(tool, args) {
676
- if (tool !== "context" || !isRecord(args)) return false;
677
- return args.scope === "skills" && typeof args.name === "string" && args.name.trim().length > 0;
678
- }
679
- function parseRunStdout(stdout) {
680
- let sessionId = null;
681
- const lines = [];
682
- let finalText = "";
683
- let sawJson = false;
684
- const streamedText = /* @__PURE__ */ new Map();
685
- const skillBodyCallIds = /* @__PURE__ */ new Set();
686
- for (const line of stdout.split("\n")) {
687
- if (line.trim().length === 0) continue;
688
- let event;
689
- try {
690
- event = JSON.parse(line);
691
- } catch {
692
- continue;
693
- }
694
- if (!isRecord(event)) continue;
695
- sawJson = true;
696
- if (event.type === "session" && typeof event.id === "string") {
697
- sessionId = event.id;
698
- continue;
699
- }
700
- if (event.type === "text_delta" && typeof event.delta === "string") {
701
- const contentIndex = typeof event.contentIndex === "number" ? event.contentIndex : 0;
702
- streamedText.set(contentIndex, `${streamedText.get(contentIndex) ?? ""}${event.delta}`);
703
- continue;
704
- }
705
- if (event.type === "tool_execution_start") {
706
- const tool = readString(event.toolName) ?? readString(event.tool) ?? "tool";
707
- const args = event.args ?? event.arguments ?? event.input;
708
- const callId = readString(event.toolCallId);
709
- if (callId !== null && loadsSkillBody(tool, args)) skillBodyCallIds.add(callId);
710
- lines.push(`TOOL ${tool} args=${preview(args)}`);
711
- if (tool === "artifact" && isRecord(args) && typeof args.content === "string") {
712
- lines.push(`TERMINAL ${tool} content:
713
- ${args.content}`);
714
- }
715
- continue;
716
- }
717
- if (event.type === "tool_execution_end") {
718
- const tool = readString(event.toolName) ?? readString(event.tool) ?? "tool";
719
- const status = event.isError === true ? "error" : "ok";
720
- const callId = readString(event.toolCallId);
721
- if (callId !== null && skillBodyCallIds.has(callId)) {
722
- lines.push(`RESULT ${tool} ${status}: <skill body withheld from the judge>`);
723
- continue;
724
- }
725
- lines.push(`RESULT ${tool} ${status}: ${preview(event.result)}`);
726
- continue;
727
- }
728
- if (event.type === "message_end" && isRecord(event.message) && event.message.role === "assistant") {
729
- const content = Array.isArray(event.message.content) ? event.message.content : [];
730
- const completedText = content.filter((item) => {
731
- return isRecord(item) && item.type === "text" && typeof item.text === "string";
732
- }).map((item) => item.text).join("").trim();
733
- const streamed = [...streamedText.entries()].sort(([left], [right]) => left - right).map(([, text2]) => text2).join("").trim();
734
- streamedText.clear();
735
- const text = completedText.length > 0 ? completedText : streamed;
736
- if (text.length > 0) {
737
- lines.push(`ASSISTANT: ${text}`);
738
- finalText = text;
739
- }
740
- }
741
- }
742
- if (!sawJson) {
743
- const text = stdout.trim();
744
- return { sessionId: null, transcript: text, finalText: text };
745
- }
746
- return { sessionId, transcript: elide(lines.join("\n")), finalText };
747
- }
748
- function judgePrompt(scenario, baselineTranscript, treatmentTranscript) {
749
- const bullets = scenario.expected.map((text, index) => `${index + 1}. ${text}`).join("\n");
750
- return [
751
- "You are scoring a skill evaluation. Two transcripts follow: BASELINE ran without the skill, TREATMENT ran with the skill loaded.",
752
- "Score each EXPECTED bullet strictly against the TREATMENT transcript; the baseline exists only for gap context.",
753
- "A bullet passes only if the treatment transcript observably satisfies it; anything unverifiable from the transcript fails.",
754
- 'Reply with STRICT JSON only, no prose and no code fences, exactly: {"bullets":[{"index":1,"pass":true,"reason":"<= 25 words"}]}',
755
- `Include one entry per bullet, indexes 1 through ${scenario.expected.length} in order.`,
756
- "Do not use any tools. Respond with the JSON verdict directly.",
757
- "",
758
- `SCENARIO ${scenario.id} - ${scenario.title}`,
759
- `SETUP: ${scenario.setup}`,
760
- "",
761
- "EXPECTED BULLETS:",
762
- bullets,
763
- "",
764
- "BASELINE TRANSCRIPT:",
765
- baselineTranscript.length > 0 ? baselineTranscript : "(empty)",
766
- "",
767
- "TREATMENT TRANSCRIPT:",
768
- treatmentTranscript.length > 0 ? treatmentTranscript : "(empty)"
769
- ].join("\n");
770
- }
771
- function judgeVerdictAbsenceReason(judge) {
772
- const sawBulletsKey = `${judge.finalText}
773
- ${judge.transcript}`.includes('"bullets"');
774
- return sawBulletsKey ? "judge response truncated mid-verdict (no complete bullets object): bullet not scored" : "judge response carried no parseable verdict object: bullet not scored";
775
- }
776
- function parseJudgeVerdicts(scenario, judge) {
777
- const parsed = extractBulletsObject(judge.finalText) ?? extractBulletsObject(judge.transcript);
778
- if (parsed === null) {
779
- const reason = judgeVerdictAbsenceReason(judge);
780
- return scenario.expected.map((text, i) => ({ index: i + 1, text, verdict: "unmeasured", reason }));
781
- }
782
- const entries = /* @__PURE__ */ new Map();
783
- if (Array.isArray(parsed.bullets)) {
784
- for (const item of parsed.bullets) {
785
- if (!isRecord(item)) continue;
786
- const index = typeof item.index === "number" ? item.index : Number.parseInt(String(item.index), 10);
787
- if (!Number.isInteger(index)) continue;
788
- entries.set(index, {
789
- pass: item.pass === true,
790
- reason: readString(item.reason) ?? ""
791
- });
792
- }
793
- }
794
- return scenario.expected.map((text, i) => {
795
- const index = i + 1;
796
- const entry = entries.get(index);
797
- if (entry === void 0) {
798
- return {
799
- index,
800
- text,
801
- verdict: "unmeasured",
802
- reason: "judge output omitted this bullet: bullet not scored"
803
- };
804
- }
805
- return { index, text, verdict: entry.pass ? "pass" : "fail", reason: entry.reason };
806
- });
807
- }
808
- function extractBulletsObject(text) {
809
- const stripped = text.replace(/```(?:json)?/g, "");
810
- const bulletsAt = stripped.indexOf('"bullets"');
811
- if (bulletsAt < 0) return null;
812
- let start = stripped.lastIndexOf("{", bulletsAt);
813
- while (start >= 0) {
814
- const candidate = balancedJsonSlice(stripped, start);
815
- if (candidate !== null) {
816
- try {
817
- const parsed = JSON.parse(candidate);
818
- if (isRecord(parsed) && Array.isArray(parsed.bullets)) return parsed;
819
- } catch {
820
- }
821
- }
822
- if (start === 0) break;
823
- start = stripped.lastIndexOf("{", start - 1);
824
- }
825
- return null;
826
- }
827
- function balancedJsonSlice(text, start) {
828
- let depth = 0;
829
- let inString = false;
830
- let escaped = false;
831
- for (let i = start; i < text.length; i += 1) {
832
- const ch = text[i];
833
- if (escaped) {
834
- escaped = false;
835
- continue;
836
- }
837
- if (ch === "\\") {
838
- if (inString) escaped = true;
839
- continue;
840
- }
841
- if (ch === '"') {
842
- inString = !inString;
843
- continue;
844
- }
845
- if (inString) continue;
846
- if (ch === "{") depth += 1;
847
- else if (ch === "}") {
848
- depth -= 1;
849
- if (depth === 0) return text.slice(start, i + 1);
850
- }
851
- }
852
- return null;
853
- }
854
- function synthesizeArtifact(skillName, evalsPath, evalsRaw, startedAt, endedAt, outcomes, target) {
855
- const contentHash = createHash("sha256").update(evalsRaw, "utf8").digest("hex");
856
- const stamp = startedAt.replace(/[-:.]/g, "");
857
- const evalId = `skill-${skillName}-${stamp}-${contentHash.slice(0, 8)}-${randomBytes(6).toString("hex")}`;
858
- const results = outcomes.map((outcome) => {
859
- const failed = outcome.bullets.some((bullet) => bullet.verdict === "fail" || bullet.verdict === "error");
860
- const unmeasured = outcome.bullets.some((bullet) => bullet.verdict === "unmeasured");
861
- const pass = outcome.bullets.length > 0 && !failed && !unmeasured;
862
- const record = {
863
- taskId: outcome.scenario.id,
864
- runId: `${evalId}-${outcome.scenario.id}`,
865
- repeatIndex: 0,
866
- cwd: outcome.workspace,
867
- prompt: outcome.scenario.setup,
868
- tags: [
869
- "skill-eval",
870
- `skill:${skillName}`,
871
- ...unmeasured ? ["scenario:unmeasured"] : [],
872
- ...outcome.bullets.map((bullet) => `bullet-${bullet.index}:${bullet.verdict}`)
873
- ],
874
- pass,
875
- // 3, not 1, when the scenario carries an unscored bullet and no failed
876
- // one: a reader who sees exitCode 1 with failureClass verifier_failed
877
- // reads "this skill failed its rubric", and an unscored bullet is the
878
- // judge's silence, not the skill's answer.
879
- exitCode: pass ? 0 : failed ? 1 : 3,
880
- tokens: outcome.usage.tokens,
881
- costUsd: outcome.usage.costUsd,
882
- wallTimeMs: outcome.wallTimeMs,
883
- harness: outcome.usage.harness,
884
- commands: []
885
- };
886
- if (failed) record.failureClass = "verifier_failed";
887
- return record;
888
- });
889
- return {
890
- version: 1,
891
- evalId,
892
- taskFile: evalsPath,
893
- taskFileHash: contentHash,
894
- clioCoder: evalClioProvenance(),
895
- environment: evalEnvironmentProvenance(),
896
- target: target ?? null,
897
- model: null,
898
- thinking: null,
899
- paths: { taskFile: evalsPath, receipts: [], sessionLedgers: [] },
900
- repeat: 1,
901
- startedAt,
902
- endedAt,
903
- summary: summarizeEvalResults(results),
904
- results
905
- };
906
- }
907
- function sidecar(skillName, evalId, outcomes, allowNetwork) {
908
- return {
909
- version: 1,
910
- schema: "experimental",
911
- kind: "skill-eval",
912
- skill: skillName,
913
- evalId,
914
- network: networkPolicyLabel(allowNetwork),
915
- autonomy: ARM_AUTONOMY,
916
- deltas: [
917
- "bullet verdicts are judge-scored from run transcripts, not command exit codes; the evals-domain artifact carries scenario-level records with empty command lists",
918
- "a bullet the judge never scored is recorded unmeasured, not failed: its scenario record is pass:false with exitCode 3 and no failureClass",
919
- "an arm whose transcript carries the headless permission wall is recorded unmeasured with an infraError: the harness's own gate is not a verdict about the skill",
920
- "tokens and cost are rolled up from headless main-agent receipts when those receipts are present",
921
- "this sidecar is additive and is registered in overview.json files[]"
922
- ],
923
- scenarios: outcomes.map((outcome) => ({
924
- id: outcome.scenario.id,
925
- title: outcome.scenario.title,
926
- setup: outcome.scenario.setup,
927
- fixtureCommands: outcome.scenario.fixtureCommands ?? null,
928
- infraError: outcome.infraError,
929
- usage: outcome.usage,
930
- bullets: outcome.bullets,
931
- baseline: sidecarRun(outcome.baseline),
932
- treatment: sidecarRun(outcome.treatment),
933
- judge: sidecarRun(outcome.judge)
934
- }))
935
- };
936
- }
937
- function sidecarRun(run) {
938
- if (run === null) return null;
939
- return {
940
- sessionId: run.sessionId,
941
- exitCode: run.exitCode,
942
- timedOut: run.timedOut,
943
- wallTimeMs: run.wallTimeMs,
944
- transcript: run.transcript,
945
- stderrTail: run.stderr.slice(-500)
946
- };
947
- }
948
- function printHumanReport(skillName, outcomes, evalId, evidenceId, evidenceDirectory, allowNetwork) {
949
- const rows = [["scenario", "bullet", "verdict", "expected"]];
950
- for (const outcome of outcomes) {
951
- for (const bullet of outcome.bullets) {
952
- rows.push([outcome.scenario.id, String(bullet.index), bullet.verdict, truncate(bullet.text, 76)]);
953
- }
954
- }
955
- process.stdout.write(formatColumns(rows));
956
- const total = outcomes.reduce((sum, outcome) => sum + outcome.bullets.length, 0);
957
- const passed = outcomes.reduce(
958
- (sum, outcome) => sum + outcome.bullets.filter((bullet) => bullet.verdict === "pass").length,
959
- 0
960
- );
961
- const unmeasured = outcomes.reduce(
962
- (sum, outcome) => sum + outcome.bullets.filter((bullet) => bullet.verdict === "unmeasured").length,
963
- 0
964
- );
965
- const unmeasuredNote = unmeasured > 0 ? `, ${unmeasured} unmeasured` : "";
966
- process.stdout.write(
967
- `
968
- ${skillName}: ${passed}/${total} bullets passed${unmeasuredNote} (judge-scored, experimental)
969
- `
970
- );
971
- if (unmeasured > 0) {
972
- process.stdout.write(
973
- unmeasured === total ? "no bullet was scored, so this run is not evidence about the skill either way\n" : `${unmeasured} of ${total} bullets were never scored; unmeasured is not a failed bullet
974
- `
975
- );
976
- }
977
- for (const outcome of outcomes) {
978
- if (outcome.infraError !== null) {
979
- process.stdout.write(`${outcome.scenario.id}: infra error: ${outcome.infraError}
980
- `);
981
- continue;
982
- }
983
- for (const bullet of outcome.bullets.filter((item) => item.verdict !== "pass")) {
984
- process.stdout.write(
985
- `${outcome.scenario.id} bullet ${bullet.index} ${bullet.verdict}${bullet.reason.length > 0 ? `: ${bullet.reason}` : ""}
986
- `
987
- );
988
- }
989
- }
990
- process.stdout.write(`${describeArmPolicyOutcome(allowNetwork)}
991
- `);
992
- process.stdout.write(`eval artifact: ${evalId}
993
- `);
994
- if (evidenceId !== null && evidenceDirectory !== null) {
995
- process.stdout.write(`evidence: ${evidenceId} at ${evidenceDirectory} (per-bullet detail in skill-eval.json)
996
- `);
997
- }
998
- }
999
- function preview(value) {
1000
- if (value === void 0) return "";
1001
- const text = typeof value === "string" ? value : safeStringify(value);
1002
- return truncate(text.replace(/\s+/g, " ").trim(), PREVIEW_MAX_CHARS);
1003
- }
1004
- function safeStringify(value) {
1005
- try {
1006
- return JSON.stringify(value) ?? "";
1007
- } catch {
1008
- return String(value);
1009
- }
1010
- }
1011
- function elide(text) {
1012
- if (text.length <= TRANSCRIPT_HEAD_CHARS + TRANSCRIPT_TAIL_CHARS) return text;
1013
- return `${text.slice(0, TRANSCRIPT_HEAD_CHARS)}
1014
- [... transcript elided ...]
1015
- ${text.slice(-TRANSCRIPT_TAIL_CHARS)}`;
1016
- }
1017
- function truncate(text, maxChars) {
1018
- if (text.length <= maxChars) return text;
1019
- return `${text.slice(0, Math.max(0, maxChars - 3))}...`;
1020
- }
1021
- function readString(value) {
1022
- return typeof value === "string" && value.length > 0 ? value : null;
1023
- }
1024
- function readNumber(value) {
1025
- return typeof value === "number" && Number.isFinite(value) ? value : 0;
1026
- }
1027
- function isRecord(value) {
1028
- return typeof value === "object" && value !== null && !Array.isArray(value);
1029
- }
1030
- export {
1031
- evalChildEnv,
1032
- runSkillsEvalCommand
1033
- };
1034
- //# sourceMappingURL=skills-eval-J5TCKSJA.js.map