openpond 0.2.63 → 0.2.65

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 (561) hide show
  1. package/dist/app-server.d.ts +76 -2
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/account-context-TIJOM22A.js +12 -0
  4. package/dist/chunks/acp-PHMBLRCV.js +2 -0
  5. package/dist/chunks/acp-agent-A7GK2VSH.js +19 -0
  6. package/dist/chunks/actions-command-VLKMHCMI.js +2 -0
  7. package/dist/chunks/app-layer-J66CQ2QN.js +3 -0
  8. package/dist/chunks/app-server-connected-apps-IB6M35NS.js +2 -0
  9. package/dist/chunks/app-server-evaluations-V6LRWDUF.js +2 -0
  10. package/dist/chunks/app-server-harness-services-6ZRLA3YD.js +2 -0
  11. package/dist/chunks/app-server-runtime-OMR2VE6L.js +2 -0
  12. package/dist/chunks/apps-IHUFERZO.js +2 -0
  13. package/dist/chunks/{chunk-NZTCH6K5.js → chunk-2GJD23CM.js} +1 -1
  14. package/dist/chunks/{chunk-BKEDG3A4.js → chunk-2MEOUS24.js} +1 -1
  15. package/dist/chunks/{chunk-DUL6DXOI.js → chunk-2W22IXHB.js} +1 -1
  16. package/dist/chunks/{chunk-GGJUWIGR.js → chunk-36FNNR5N.js} +1 -1
  17. package/dist/chunks/chunk-3BJ7LPE3.js +2 -0
  18. package/dist/chunks/chunk-3MVKXAH7.js +2 -0
  19. package/dist/chunks/{chunk-UTNGEMW5.js → chunk-3WJQ4IGK.js} +1 -1
  20. package/dist/chunks/{chunk-G6OR5NB6.js → chunk-4D3CICBG.js} +1 -1
  21. package/dist/chunks/chunk-4DYWVGVS.js +2 -0
  22. package/dist/chunks/{chunk-KUPJNBWG.js → chunk-4JYTFEND.js} +1 -1
  23. package/dist/chunks/chunk-4MQHIFZL.js +2 -0
  24. package/dist/chunks/chunk-4TO743HO.js +4 -0
  25. package/dist/chunks/{chunk-B4RKHHF7.js → chunk-4TTXNVCE.js} +1 -1
  26. package/dist/chunks/{chunk-3YXYBYWK.js → chunk-4V73I4OL.js} +1 -1
  27. package/dist/chunks/chunk-55Q64WWF.js +2 -0
  28. package/dist/chunks/{chunk-F7QTIHXX.js → chunk-5AU5Y6KS.js} +1 -1
  29. package/dist/chunks/chunk-5HPZGLOL.js +2 -0
  30. package/dist/chunks/{chunk-LCSBCCYC.js → chunk-5JVJQA5H.js} +1 -1
  31. package/dist/chunks/chunk-5KJMFK65.js +2 -0
  32. package/dist/chunks/{chunk-BSPFY3Y5.js → chunk-5KWKSR4P.js} +1 -1
  33. package/dist/chunks/chunk-5WPMI6QX.js +2 -0
  34. package/dist/chunks/{chunk-SHJY5RLU.js → chunk-5Z3AU5CL.js} +1 -1
  35. package/dist/chunks/{chunk-DQI5TE6A.js → chunk-66HFW4OU.js} +1 -1
  36. package/dist/chunks/{chunk-NT7N6KLE.js → chunk-67HXM6AL.js} +1 -1
  37. package/dist/chunks/{chunk-J7ZTPXRQ.js → chunk-6C3CXME7.js} +1 -1
  38. package/dist/chunks/{chunk-PWK5Z5S3.js → chunk-6ESBAHWK.js} +1 -1
  39. package/dist/chunks/{chunk-XNOMIWEY.js → chunk-6I5AUTVO.js} +1 -1
  40. package/dist/chunks/{chunk-OG33QAG6.js → chunk-6S2MWJVD.js} +1 -1
  41. package/dist/chunks/{chunk-KCOTDUGW.js → chunk-6TRVEA3T.js} +1 -1
  42. package/dist/chunks/chunk-6ZTP6CUJ.js +2 -0
  43. package/dist/chunks/{chunk-4L6DU6Z2.js → chunk-7FBWUVX7.js} +1 -1
  44. package/dist/chunks/{chunk-GPL2Z65R.js → chunk-7P5SH3CI.js} +2 -2
  45. package/dist/chunks/chunk-7PKTCMZ6.js +2 -0
  46. package/dist/chunks/chunk-7XOUM6RK.js +2 -0
  47. package/dist/chunks/chunk-A77DLBR4.js +2 -0
  48. package/dist/chunks/chunk-AF3AVDPP.js +2 -0
  49. package/dist/chunks/{chunk-RV7PUSI2.js → chunk-AJXWJLZA.js} +1 -1
  50. package/dist/chunks/chunk-AMC4Z7G4.js +2 -0
  51. package/dist/chunks/chunk-ANG2YMMD.js +2 -0
  52. package/dist/chunks/{chunk-ZPTKR3GB.js → chunk-B32CW3NT.js} +1 -1
  53. package/dist/chunks/{chunk-Y766IN7Y.js → chunk-B666Z2NS.js} +1 -1
  54. package/dist/chunks/chunk-BJXPQIVD.js +2 -0
  55. package/dist/chunks/{chunk-WBUK73ST.js → chunk-BL3CZWWD.js} +1 -1
  56. package/dist/chunks/{chunk-XMHIQ3SK.js → chunk-BTJACFU3.js} +2 -2
  57. package/dist/chunks/{chunk-25XXZS3E.js → chunk-C5B3FMV3.js} +1 -1
  58. package/dist/chunks/chunk-CRDKBFRN.js +2 -0
  59. package/dist/chunks/chunk-CYQLXS2U.js +2 -0
  60. package/dist/chunks/{chunk-N4VHLJBZ.js → chunk-D7R2AAX2.js} +1 -1
  61. package/dist/chunks/{chunk-LSZJ5M3X.js → chunk-DAEUVT2I.js} +1 -1
  62. package/dist/chunks/{chunk-ELX7VRSU.js → chunk-DIDQHTAX.js} +1 -1
  63. package/dist/chunks/chunk-DMO3UIS7.js +6 -0
  64. package/dist/chunks/{chunk-4BJGUCHY.js → chunk-DRMOHADV.js} +1 -1
  65. package/dist/chunks/{chunk-FYYYECHE.js → chunk-DSJZS77R.js} +4 -4
  66. package/dist/chunks/{chunk-7HRLWPPZ.js → chunk-DXA2UHBE.js} +1 -1
  67. package/dist/chunks/chunk-E2S2EMYQ.js +10 -0
  68. package/dist/chunks/{chunk-T6JN4PND.js → chunk-EBOTNBUS.js} +1 -1
  69. package/dist/chunks/chunk-ECOH24MC.js +9 -0
  70. package/dist/chunks/{chunk-6PKXJEJM.js → chunk-EICS777E.js} +1 -1
  71. package/dist/chunks/{chunk-4SZ3HKHU.js → chunk-EVQISX7M.js} +1 -1
  72. package/dist/chunks/chunk-FEQ7HNJR.js +2 -0
  73. package/dist/chunks/{chunk-2HAWOMZK.js → chunk-FGOTSCSE.js} +1 -1
  74. package/dist/chunks/{chunk-IWWXIUAQ.js → chunk-FHLSLOKH.js} +8 -8
  75. package/dist/chunks/{chunk-BU27SLZP.js → chunk-FS2VKOT7.js} +1 -1
  76. package/dist/chunks/{chunk-4FNCBA3Y.js → chunk-FUFI4THX.js} +1 -1
  77. package/dist/chunks/{chunk-W5W4IODW.js → chunk-FYWQWKVS.js} +1 -1
  78. package/dist/chunks/{chunk-IZ56L2ZK.js → chunk-G4747MOW.js} +1 -1
  79. package/dist/chunks/{chunk-J572ANHX.js → chunk-G4E3WGLM.js} +4 -4
  80. package/dist/chunks/{chunk-P7HRF4FM.js → chunk-GD3RCUDH.js} +1 -1
  81. package/dist/chunks/{chunk-HUCBKXTU.js → chunk-GDJ4X2ZN.js} +1 -1
  82. package/dist/chunks/{chunk-JHR3LF2F.js → chunk-GF55VEMR.js} +1 -1
  83. package/dist/chunks/{chunk-GXCUH2VV.js → chunk-GFAI2MCJ.js} +3 -3
  84. package/dist/chunks/{chunk-KOKX7PBS.js → chunk-GI7LTJV3.js} +1 -1
  85. package/dist/chunks/{chunk-TCOTXCV6.js → chunk-GIU3Z45P.js} +1 -1
  86. package/dist/chunks/{chunk-GXZCMO6S.js → chunk-GRLQHYAU.js} +2 -2
  87. package/dist/chunks/{chunk-M3SCON53.js → chunk-GUG2SWRZ.js} +1 -1
  88. package/dist/chunks/{chunk-JQRMDFF3.js → chunk-H42UW6IF.js} +1 -1
  89. package/dist/chunks/{chunk-EZRUWIP6.js → chunk-H5ML7735.js} +1 -1
  90. package/dist/chunks/{chunk-VNJAAYNQ.js → chunk-HIQPGYVH.js} +1 -1
  91. package/dist/chunks/{chunk-DLANLLKH.js → chunk-HNDAGZCF.js} +1 -1
  92. package/dist/chunks/{chunk-OE22TAXP.js → chunk-HNQPEOJD.js} +1 -1
  93. package/dist/chunks/chunk-HORMGT2Q.js +2 -0
  94. package/dist/chunks/{chunk-2V4LPUBH.js → chunk-HPTEJBP4.js} +1 -1
  95. package/dist/chunks/{chunk-UWHIU24L.js → chunk-HVM2GUM3.js} +1 -1
  96. package/dist/chunks/{chunk-NEJLJ2XY.js → chunk-HX6GXMDK.js} +1 -1
  97. package/dist/chunks/chunk-I3NYYOSS.js +2 -0
  98. package/dist/chunks/{chunk-LV3CQ72P.js → chunk-I6VMRQF4.js} +1 -1
  99. package/dist/chunks/{chunk-QU4UE73E.js → chunk-IEVJLG3V.js} +1 -1
  100. package/dist/chunks/chunk-IOSBGCRT.js +2 -0
  101. package/dist/chunks/{chunk-SO42ZB5K.js → chunk-JBFPTEVE.js} +1 -1
  102. package/dist/chunks/{chunk-G32BO6M5.js → chunk-JD76ANPN.js} +1 -1
  103. package/dist/chunks/{chunk-ERJV5BMC.js → chunk-JFZ6USNQ.js} +1 -1
  104. package/dist/chunks/{chunk-UPWJSNL5.js → chunk-JLW5BQVO.js} +1 -1
  105. package/dist/chunks/chunk-JRGECNP3.js +2 -0
  106. package/dist/chunks/{chunk-DABBHWSF.js → chunk-KAWXVMHI.js} +1 -1
  107. package/dist/chunks/chunk-KGUPAPGR.js +2 -0
  108. package/dist/chunks/{chunk-AHOBCBVZ.js → chunk-KOKBDIGR.js} +1 -1
  109. package/dist/chunks/chunk-KTIBXRWQ.js +2 -0
  110. package/dist/chunks/chunk-L4EJ5R3B.js +23 -0
  111. package/dist/chunks/{chunk-SI5W5LBV.js → chunk-LARJARMS.js} +1 -1
  112. package/dist/chunks/{chunk-MPNJ2BB4.js → chunk-LE75SVEL.js} +1 -1
  113. package/dist/chunks/{chunk-ERT32RZA.js → chunk-LI3FTPAH.js} +5 -5
  114. package/dist/chunks/chunk-LK77GI6M.js +2 -0
  115. package/dist/chunks/chunk-LOIYNRBC.js +33 -0
  116. package/dist/chunks/{chunk-7WYL2IDD.js → chunk-LXZLLTYQ.js} +1 -1
  117. package/dist/chunks/{chunk-RZUCVF2Q.js → chunk-LYVHYT3L.js} +1 -1
  118. package/dist/chunks/{chunk-MWXW2CA6.js → chunk-LZPCA6DH.js} +1 -1
  119. package/dist/chunks/{chunk-GVARQXYI.js → chunk-M5QPL5NO.js} +1 -1
  120. package/dist/chunks/{chunk-WWQNMC7C.js → chunk-MCBRB5D6.js} +1 -1
  121. package/dist/chunks/chunk-MHPCVQOE.js +2 -0
  122. package/dist/chunks/chunk-MMJU6PZV.js +2 -0
  123. package/dist/chunks/chunk-MVPKU72J.js +4 -0
  124. package/dist/chunks/{chunk-AGVOGPAZ.js → chunk-MWS2NAHJ.js} +1 -1
  125. package/dist/chunks/{chunk-R6VJDOQM.js → chunk-N2AV7PHV.js} +4 -4
  126. package/dist/chunks/{chunk-R6WMY6AH.js → chunk-NTM3KQ25.js} +1 -1
  127. package/dist/chunks/chunk-NXN7GJOH.js +2 -0
  128. package/dist/chunks/chunk-O6ZYDHEJ.js +3 -0
  129. package/dist/chunks/chunk-OKEC2EIE.js +2 -0
  130. package/dist/chunks/{chunk-KCV5VN4X.js → chunk-OKKNDQJF.js} +1 -1
  131. package/dist/chunks/{chunk-ZYVHOVKL.js → chunk-OPTJYDZN.js} +1 -1
  132. package/dist/chunks/{chunk-NJLULBTM.js → chunk-OTDDXEQ6.js} +1 -1
  133. package/dist/chunks/{chunk-RDSVU6F6.js → chunk-OTUS7NTQ.js} +1 -1
  134. package/dist/chunks/{chunk-UH4JSSRL.js → chunk-OTXGAKFH.js} +8 -8
  135. package/dist/chunks/chunk-OW3EOC5Q.js +4 -0
  136. package/dist/chunks/chunk-OXRVILDW.js +2 -0
  137. package/dist/chunks/{chunk-JEISPWWM.js → chunk-PWKJ5KLZ.js} +1 -1
  138. package/dist/chunks/{chunk-RFMME46Z.js → chunk-PYNW5OFA.js} +1 -1
  139. package/dist/chunks/{chunk-AKGCM53D.js → chunk-Q3WXB465.js} +1 -1
  140. package/dist/chunks/{chunk-KHTAAVC2.js → chunk-Q4AXZY2P.js} +1 -1
  141. package/dist/chunks/{chunk-QJ6KUVAR.js → chunk-QAEZNFAM.js} +1 -1
  142. package/dist/chunks/{chunk-ABF3W2MO.js → chunk-QAFXQHHG.js} +2 -2
  143. package/dist/chunks/chunk-QCJY6FTC.js +3 -0
  144. package/dist/chunks/{chunk-5MHYGMJG.js → chunk-QJJNHKLT.js} +1 -1
  145. package/dist/chunks/{chunk-ERL2M773.js → chunk-QYQZQVVN.js} +1 -1
  146. package/dist/chunks/{chunk-VVNV4NNW.js → chunk-RCT3O3HQ.js} +1 -1
  147. package/dist/chunks/{chunk-7R56WC7L.js → chunk-RHMULF56.js} +1 -1
  148. package/dist/chunks/chunk-RRWL5BHZ.js +2 -0
  149. package/dist/chunks/{chunk-RG3NH6YQ.js → chunk-S4WILIRA.js} +1 -1
  150. package/dist/chunks/{chunk-N33D7KCW.js → chunk-S6UCVXBC.js} +1 -1
  151. package/dist/chunks/{chunk-IHB5GTOJ.js → chunk-SAZTOGX6.js} +3 -3
  152. package/dist/chunks/{chunk-2EPR4HLF.js → chunk-SH7POUVX.js} +6 -6
  153. package/dist/chunks/{chunk-NLYZ5K7U.js → chunk-SSJV3VX7.js} +1 -1
  154. package/dist/chunks/chunk-TBODQT4W.js +2 -0
  155. package/dist/chunks/chunk-TGULVWPV.js +2 -0
  156. package/dist/chunks/{chunk-HIYQPZ7C.js → chunk-TPOAAJKA.js} +1 -1
  157. package/dist/chunks/{chunk-42V4NV2F.js → chunk-TVDZXDQW.js} +1 -1
  158. package/dist/chunks/{chunk-FVRII5XO.js → chunk-U2BD545L.js} +1 -1
  159. package/dist/chunks/chunk-UK5LGSGT.js +2 -0
  160. package/dist/chunks/{chunk-HFJUXKT5.js → chunk-ULJZ7NUF.js} +1 -1
  161. package/dist/chunks/chunk-UM6EQOT2.js +161 -0
  162. package/dist/chunks/chunk-UN2LKLGV.js +2 -0
  163. package/dist/chunks/{chunk-4NXEYPPX.js → chunk-UOFDKMRU.js} +1 -1
  164. package/dist/chunks/{chunk-2ITZW2CN.js → chunk-UTIELP6F.js} +1 -1
  165. package/dist/chunks/{chunk-NWQL6FNF.js → chunk-V3KEG6MI.js} +1 -1
  166. package/dist/chunks/{chunk-BPZOABMC.js → chunk-V3S2B6WU.js} +2 -2
  167. package/dist/chunks/{chunk-ZG6353RM.js → chunk-VD2TQCMH.js} +1 -1
  168. package/dist/chunks/{chunk-4ZBOYWQ3.js → chunk-VS2LOUCT.js} +1 -1
  169. package/dist/chunks/{chunk-V7KR74NO.js → chunk-VS3AMJEK.js} +1 -1
  170. package/dist/chunks/{chunk-YCZZ62C2.js → chunk-W22KWKF6.js} +1 -1
  171. package/dist/chunks/chunk-W7NXFRHN.js +2 -0
  172. package/dist/chunks/{chunk-DTTFUANI.js → chunk-WBO6FQHR.js} +2 -2
  173. package/dist/chunks/{chunk-5ZBLCWEJ.js → chunk-WJSJXK2N.js} +1 -1
  174. package/dist/chunks/{chunk-C2LAEGOW.js → chunk-WKHGXLJD.js} +2 -2
  175. package/dist/chunks/{chunk-H6C4MAUN.js → chunk-WLQEONBF.js} +1 -1
  176. package/dist/chunks/chunk-WLZJOCLA.js +10 -0
  177. package/dist/chunks/chunk-WMBOXX7G.js +2 -0
  178. package/dist/chunks/{chunk-PF56N7ZY.js → chunk-X2J2P5ZT.js} +5 -5
  179. package/dist/chunks/{chunk-AH26AQN7.js → chunk-XHBMK6LC.js} +1 -1
  180. package/dist/chunks/{chunk-ZZHXQCNB.js → chunk-Y3B6ZUE6.js} +1 -1
  181. package/dist/chunks/{chunk-WP2L2NY2.js → chunk-YBKDEEEH.js} +1 -1
  182. package/dist/chunks/chunk-YRDPVTEI.js +3 -0
  183. package/dist/chunks/{chunk-JORRZ4BB.js → chunk-YU4JYWCA.js} +1 -1
  184. package/dist/chunks/{chunk-CZ5R4JXZ.js → chunk-Z2TOBS3P.js} +1 -1
  185. package/dist/chunks/chunk-ZFJWA4JK.js +1 -0
  186. package/dist/chunks/chunk-ZSZXA7WB.js +2 -0
  187. package/dist/chunks/{chunk-LK2K3SPM.js → chunk-ZU3YBRXS.js} +2 -2
  188. package/dist/chunks/{chunk-5FU5RLML.js → chunk-ZUT4EM64.js} +1 -1
  189. package/dist/chunks/chunk-ZWW227M3.js +2 -0
  190. package/dist/chunks/chunk-ZY32SZ2P.js +3 -0
  191. package/dist/chunks/cli-TE7RP5H7.js +2 -0
  192. package/dist/chunks/client-I5MYOJEJ.js +2 -0
  193. package/dist/chunks/command-NDHFZAKA.js +13 -0
  194. package/dist/chunks/configuration-command-465ODYTC.js +2 -0
  195. package/dist/chunks/connected-app-executor-7DYMZCD7.js +2 -0
  196. package/dist/chunks/connected-evidence-XPAZQRFQ.js +2 -0
  197. package/dist/chunks/{connected-starting-assets-JONPTII6.js → connected-starting-assets-2YX3QVDB.js} +1 -1
  198. package/dist/chunks/connection-GDWPMHPC.js +2 -0
  199. package/dist/chunks/{continual-Z7MO2PF6.js → continual-HQCFY7GN.js} +3 -3
  200. package/dist/chunks/core-commands-PJOGRBHJ.js +2 -0
  201. package/dist/chunks/dataset-preparation-authoring-KWRTMKN6.js +4 -0
  202. package/dist/chunks/datasets-OTE2I4VT.js +2 -0
  203. package/dist/chunks/desktop-test-Q6REQJ7K.js +3 -0
  204. package/dist/chunks/dist-GR56E3QK.js +2 -0
  205. package/dist/chunks/dist-J4KHAVO3.js +2 -0
  206. package/dist/chunks/dist-O7HXZUBW.js +2 -0
  207. package/dist/chunks/enclave-7VLABNIX.js +2 -0
  208. package/dist/chunks/evaluation-coordination-KRCY2H4C.js +2 -0
  209. package/dist/chunks/experiment-improvements-7MI2VYBR.js +2 -0
  210. package/dist/chunks/experiments-CNUQKJZE.js +2 -0
  211. package/dist/chunks/experiments-VOCZ4DW3.js +2 -0
  212. package/dist/chunks/experiments-signal-4N344D4Y.js +2 -0
  213. package/dist/chunks/{extension-ZM6NI5O5.js → extension-UH34ZF7N.js} +1 -1
  214. package/dist/chunks/{help-7HXFWIKS.js → help-ZUKVY6RO.js} +1 -1
  215. package/dist/chunks/host-profile-evaluation-tools-75EPCRSZ.js +2 -0
  216. package/dist/chunks/host-profile-external-dataset-YRKG2GL5.js +2 -0
  217. package/dist/chunks/hosted-app-server-composition-DWSU6ASL.js +2 -0
  218. package/dist/chunks/hosted-experiment-improvement-NZTPZTDH.js +3 -0
  219. package/dist/chunks/hosted-harness-runtime-3AJGEIFD.js +2 -0
  220. package/dist/chunks/hosted-profile-candidate-3CAT3XBI.js +3 -0
  221. package/dist/chunks/hosted-profile-compiler-RXU626Q6.js +2 -0
  222. package/dist/chunks/hosted-profile-evaluation-control-CBDRKJ5J.js +2 -0
  223. package/dist/chunks/hosted-profile-evaluation-inspection-CHYKDYUQ.js +3 -0
  224. package/dist/chunks/hosted-profile-evaluation-preparation-H5S7JZMD.js +3 -0
  225. package/dist/chunks/hosted-tasksets-AMGDDB2R.js +2 -0
  226. package/dist/chunks/human-review-HOBGC6RC.js +2 -0
  227. package/dist/chunks/{import-6SI4BEKS.js → import-Q3YRFVY7.js} +2 -2
  228. package/dist/chunks/learning-NJLTGZFQ.js +2 -0
  229. package/dist/chunks/learning-XTY5VOTK.js +2 -0
  230. package/dist/chunks/local-harness-improvement-runtime-XEA73RGS.js +2 -0
  231. package/dist/chunks/local-harness-taskset-review-SW35G4DM.js +2 -0
  232. package/dist/chunks/local-scope-X3737QXT.js +2 -0
  233. package/dist/chunks/model-projects-GHWCKDON.js +2 -0
  234. package/dist/chunks/opchat-2LLDIWEJ.js +3 -0
  235. package/dist/chunks/opchat-bounded-chat-FLDS36LU.js +2 -0
  236. package/dist/chunks/organizations-VIFSOY6P.js +2 -0
  237. package/dist/chunks/{profile-O5HL5DTQ.js → profile-KIHMW2WB.js} +1 -1
  238. package/dist/chunks/profile-training-source-VIND2MM2.js +2 -0
  239. package/dist/chunks/project-action-payload-2G57RL74.js +2 -0
  240. package/dist/chunks/project-agent-TJLQNMLA.js +2 -0
  241. package/dist/chunks/published-experiment-source-D3C2AWQD.js +2 -0
  242. package/dist/chunks/refiner-profile-service-PPGGNVOV.js +2 -0
  243. package/dist/chunks/{runtime-XBA744HJ.js → runtime-VSOOPNYN.js} +2 -2
  244. package/dist/chunks/sandbox-command-CQO6BEMQ.js +2 -0
  245. package/dist/chunks/{sandbox-template-27U3FQN7.js → sandbox-template-MU33IILL.js} +1 -1
  246. package/dist/chunks/saved-work-LAVTNKPT.js +2 -0
  247. package/dist/chunks/send-turn-D3GTSSHI.js +2 -0
  248. package/dist/chunks/setup-HSRCZ3WR.js +2 -0
  249. package/dist/chunks/{src-PU7QTFO5.js → src-662QOKNP.js} +1 -1
  250. package/dist/chunks/{src-BLWX6DRG.js → src-CHQVWHV7.js} +117 -117
  251. package/dist/chunks/standalone-experiment-turn-owner-KKYIGGPF.js +2 -0
  252. package/dist/chunks/stdio-Z65UIX55.js +2 -0
  253. package/dist/chunks/store-chat-resources-ZWDYMDJF.js +2 -0
  254. package/dist/chunks/{store-continual-support-reviews-FOMYYS25.js → store-continual-support-reviews-7PDLGRWF.js} +1 -1
  255. package/dist/chunks/store-conversation-serving-WRT4N7N2.js +2 -0
  256. package/dist/chunks/{store-create-improve-3LQMIYAP.js → store-create-improve-G46KIUVT.js} +1 -1
  257. package/dist/chunks/{store-datasets-3KSX7RSO.js → store-datasets-O67F75BL.js} +1 -1
  258. package/dist/chunks/store-evaluation-results-BEPR4LVD.js +7 -0
  259. package/dist/chunks/{store-harness-memory-2L7ARBR4.js → store-harness-memory-4XEUITXE.js} +1 -1
  260. package/dist/chunks/{store-harness-refinement-candidates-3PHL3BUY.js → store-harness-refinement-candidates-LCN4NV23.js} +1 -1
  261. package/dist/chunks/store-harness-workspaces-PJJQ74G6.js +2 -0
  262. package/dist/chunks/store-human-review-HJ3D7ZFA.js +7 -0
  263. package/dist/chunks/store-learned-preference-migration-validation-EXNRDHCO.js +2 -0
  264. package/dist/chunks/store-learning-6P6IS7GH.js +2 -0
  265. package/dist/chunks/store-learning-credentials-EGJ2WTZI.js +2 -0
  266. package/dist/chunks/{store-local-experiments-QTVHJAEP.js → store-local-experiments-CBJA56X2.js} +1 -1
  267. package/dist/chunks/store-model-batch-review-YIVD7T2T.js +2 -0
  268. package/dist/chunks/{store-model-configuration-3SU73CMS.js → store-model-configuration-T6XJJDAB.js} +2 -2
  269. package/dist/chunks/store-model-project-preparation-WWU5CJTV.js +2 -0
  270. package/dist/chunks/{store-preference-comparison-DWV5XSMY.js → store-preference-comparison-XQFTLMGH.js} +1 -1
  271. package/dist/chunks/{store-schedules-2KUY4T6M.js → store-schedules-JPFVWL3Q.js} +1 -1
  272. package/dist/chunks/{store-sidebar-file-bookmarks-A4XCS7RM.js → store-sidebar-file-bookmarks-J3JEVAYR.js} +1 -1
  273. package/dist/chunks/{store-sidebar-preferences-V2PKRXUZ.js → store-sidebar-preferences-2JHTFXJK.js} +1 -1
  274. package/dist/chunks/{store-subagents-UGVEFA6M.js → store-subagents-PUBQVWSU.js} +1 -1
  275. package/dist/chunks/{store-task-inbox-QABI4ZAH.js → store-task-inbox-VVXZUJIO.js} +1 -1
  276. package/dist/chunks/{store-task-inventory-GEQIZELY.js → store-task-inventory-MQX44AI6.js} +1 -1
  277. package/dist/chunks/store-taskset-drafts-G3WFVN4M.js +9 -0
  278. package/dist/chunks/{store-training-CQV7PL3V.js → store-training-DUVIDYK5.js} +1 -1
  279. package/dist/chunks/{store-training-jobs-XKN6K66J.js → store-training-jobs-HHFH3V5O.js} +1 -1
  280. package/dist/chunks/{store-training-models-Q7DTTR4S.js → store-training-models-C7UUZDTO.js} +1 -1
  281. package/dist/chunks/{store-usage-XGAX7NLB.js → store-usage-6DMZM7WV.js} +1 -1
  282. package/dist/chunks/{store-work-evidence-VSLLZ6UF.js → store-work-evidence-77B36LRC.js} +1 -1
  283. package/dist/chunks/taskset-7FQCJ55X.js +2 -0
  284. package/dist/chunks/taskset-packages-NRRPON7B.js +2 -0
  285. package/dist/chunks/taskset-packages-RW4SFGDU.js +2 -0
  286. package/dist/chunks/{teams-bot-UTQAJA6H.js → teams-bot-D3LWA4S5.js} +1 -1
  287. package/dist/chunks/tool-learning-NGO7QHYK.js +2 -0
  288. package/dist/chunks/training-XFM3OOPN.js +2 -0
  289. package/dist/chunks/training-XILDD5RG.js +2 -0
  290. package/dist/chunks/training-error-LQKCOQDJ.js +2 -0
  291. package/dist/chunks/training-hardware-ESXRWUIK.js +3 -0
  292. package/dist/chunks/training-hosted-6BX2IASC.js +2 -0
  293. package/dist/chunks/training-hosted-checkpoint-evaluation-UXFW33QL.js +2 -0
  294. package/dist/chunks/training-hosted-learning-YN5VD3PW.js +2 -0
  295. package/dist/chunks/training-hosted-serving-N2MHWGZN.js +2 -0
  296. package/dist/chunks/training-hosted-serving-report-J4YOZLRP.js +2 -0
  297. package/dist/chunks/training-hosted-workers-6JTDCCWA.js +2 -0
  298. package/dist/chunks/training-model-start-E5MP3URL.js +2 -0
  299. package/dist/chunks/web-search-56QRZGPR.js +2 -0
  300. package/dist/chunks/workspaces-MCS2AQX6.js +2 -0
  301. package/dist/cli.js +1 -1
  302. package/dist/index.js +1 -1
  303. package/dist/sandbox-template/manifest.js +1 -1
  304. package/dist/skills/manifest.json +1 -1
  305. package/dist/web/assets/App-BZuSv1XM.js +53 -0
  306. package/dist/web/assets/{AppDialog-8Y0FYalT.js → AppDialog-BILEK4np.js} +1 -1
  307. package/dist/web/assets/AppTerminalPanel-BvxZ8bwD.js +2 -0
  308. package/dist/web/assets/{AppToastContext-BiQbbVxq.js → AppToastContext-C-FsCKXW.js} +1 -1
  309. package/dist/web/assets/{AppsView-Dtte4h6e.js → AppsView-BMaq5oxx.js} +1 -1
  310. package/dist/web/assets/{AttachmentTypeIcon-DgADV7dn.js → AttachmentTypeIcon-Bh7Ft_UL.js} +1 -1
  311. package/dist/web/assets/{BrowserSidebar-BUqDvEv9.js → BrowserSidebar-BG2MLJ9I.js} +1 -1
  312. package/dist/web/assets/{CartesianChart-J4ChOjvG.js → CartesianChart-CS6ES_XT.js} +1 -1
  313. package/dist/web/assets/ChatTimelineEntry-Dr5X_XyN.js +8 -0
  314. package/dist/web/assets/{ChatTimelineEntry-DztFb85D.css → ChatTimelineEntry-vs8RaEGD.css} +1 -1
  315. package/dist/web/assets/{CollaborationTabs-CFCpk2Ck.js → CollaborationTabs-CPJ2w67F.js} +1 -1
  316. package/dist/web/assets/{CommandMenu-EPPjB14H.js → CommandMenu-Fe1V7NJd.js} +1 -1
  317. package/dist/web/assets/{CommunityView-Okydjpqm.js → CommunityView-DHTcmOnI.js} +1 -1
  318. package/dist/web/assets/{ComposerAttachments-RXCiE88M.js → ComposerAttachments-Ck9VWD6o.js} +1 -1
  319. package/dist/web/assets/{ComposerCreateImproveStrip-CSngc8-V.js → ComposerCreateImproveStrip-yiXO7cf8.js} +1 -1
  320. package/dist/web/assets/{ConversationImportsSettings-DS73kyfj.js → ConversationImportsSettings-_VLzUnHQ.js} +1 -1
  321. package/dist/web/assets/{FilePagePreview-Qc4B0vue.js → FilePagePreview-BpcM1DfE.js} +2 -2
  322. package/dist/web/assets/{GetStartedView-DGFPQ1We.js → GetStartedView-BH-WJ-rW.js} +1 -1
  323. package/dist/web/assets/{GettingStartedDialog-DFBYQdHz.js → GettingStartedDialog-CdQfj7RA.js} +1 -1
  324. package/dist/web/assets/{HostedModelLearningReview-BDu3FlcU.js → HostedModelLearningReview-C3GsOlu9.js} +1 -1
  325. package/dist/web/assets/{HostedModelLearningSettings-CHaTHwC8.js → HostedModelLearningSettings-SSMst6dl.js} +1 -1
  326. package/dist/web/assets/{HtmlVisual-D9Mh7xds.js → HtmlVisual-CH0tb3fv.js} +1 -1
  327. package/dist/web/assets/{LabModelVersionDetailPage-DgY7lAu5.js → LabModelVersionDetailPage-J2t9yILv.js} +1 -1
  328. package/dist/web/assets/{LabSkillSidebar-BwtlThO7.js → LabSkillSidebar-DdDYvfj2.js} +1 -1
  329. package/dist/web/assets/LabsRoute-MJwIjSKg.js +101 -0
  330. package/dist/web/assets/MainChatThread-BcwtaTDZ.js +2 -0
  331. package/dist/web/assets/MainPane-DDO6diPt.js +10 -0
  332. package/dist/web/assets/NativeSetupTerminal-BPSUFpRm.js +2 -0
  333. package/dist/web/assets/{NativeSkillSidebar-BEJvt5_H.js → NativeSkillSidebar-DPYavzau.js} +1 -1
  334. package/dist/web/assets/{NewProjectDialog-CjrjgkTN.js → NewProjectDialog-BtmvE9Sp.js} +1 -1
  335. package/dist/web/assets/{OutputsPage-jzx93QQ3.js → OutputsPage-BMRY7RK2.js} +1 -1
  336. package/dist/web/assets/{PageChrome-C1M13qG2.js → PageChrome-5VRxH6Rp.js} +1 -1
  337. package/dist/web/assets/{ProjectsPage-DZrjlMp2.js → ProjectsPage-1LHqxOMo.js} +1 -1
  338. package/dist/web/assets/RightChatPanelStack-D_7KgExz.js +1 -0
  339. package/dist/web/assets/RightSidebarHomePanel-iznJwDMf.js +1 -0
  340. package/dist/web/assets/{ScheduledWorkPage-Cw1ja2GF.js → ScheduledWorkPage-Dtz4zJ0T.js} +1 -1
  341. package/dist/web/assets/{SettingsView-CckoIki3.js → SettingsView-BeDYNPcD.js} +3 -3
  342. package/dist/web/assets/{TasksetDraftEditorPrimitives-ByC8bDjp.js → TasksetDraftEditorPrimitives-CcvKO3YA.js} +1 -1
  343. package/dist/web/assets/{TeamChatView-OprnSKLF.js → TeamChatView-DaXxOkTe.js} +1 -1
  344. package/dist/web/assets/{TerminalOverlay-d7A2F9Lx.js → TerminalOverlay-CF8uB4qA.js} +1 -1
  345. package/dist/web/assets/{TrainingCreationPanel-Cyn6R6I6.js → TrainingCreationPanel-DmMO7x5T.js} +1 -1
  346. package/dist/web/assets/{TrainingDraftPanel-Mpb5e7t5.js → TrainingDraftPanel-DCHbXjSx.js} +1 -1
  347. package/dist/web/assets/{TrainingRunLineage-VcKz7dIR.js → TrainingRunLineage-CwisTWs_.js} +1 -1
  348. package/dist/web/assets/UsageSettingsSection-Drt7gwRb.js +7 -0
  349. package/dist/web/assets/WorkSidebarPanel-BrIIRtGW.js +1 -0
  350. package/dist/web/assets/WorkspaceDiffPanel-Dmbrg0-y.js +11 -0
  351. package/dist/web/assets/{WorkspaceEnvironmentMenu-C8y3537a.js → WorkspaceEnvironmentMenu-KEZm1gdb.js} +1 -1
  352. package/dist/web/assets/{WorkspaceFileLocation-LrEWj4UK.js → WorkspaceFileLocation-ChbOKrPO.js} +1 -1
  353. package/dist/web/assets/{WorkspaceGitDialogs-NRIMXnkS.js → WorkspaceGitDialogs-BS2JQKNQ.js} +1 -1
  354. package/dist/web/assets/{WorkspaceMonacoEditor-CvDGjKAL.js → WorkspaceMonacoEditor-CN1hE_C4.js} +3 -3
  355. package/dist/web/assets/{WorkspacePdfPreview-BZ0BbnHv.js → WorkspacePdfPreview-Clb4m0le.js} +2 -2
  356. package/dist/web/assets/{WorkspacePresentationPreview-DJrjrvT0.js → WorkspacePresentationPreview-CwQsdvAR.js} +1 -1
  357. package/dist/web/assets/app-models-Cz3yxq4x.js +1 -0
  358. package/dist/web/assets/{bot-6OhUEmkE.js → bot-BNFltD5O.js} +1 -1
  359. package/dist/web/assets/chat-resources-CTN4f6KC.js +1 -0
  360. package/dist/web/assets/{chevron-down-jmVA1BIf.js → chevron-down-BnnT0tnM.js} +1 -1
  361. package/dist/web/assets/chevron-right-C8K5PZj7.js +1 -0
  362. package/dist/web/assets/{chevron-up-CstyLXH3.js → chevron-up-BAnwJJN3.js} +1 -1
  363. package/dist/web/assets/chunk-GJRXJL6G-pJp1DyJd.js +9 -0
  364. package/dist/web/assets/chunk-TLSP5JKG-DZmxtX-4.js +1 -0
  365. package/dist/web/assets/{client-choice-storage-BdQ_YDuk.js → client-choice-storage-Iuzoszas.js} +1 -1
  366. package/dist/web/assets/{cloud-upload-Ck1ufAr8.js → cloud-upload-CdSXJ7ms.js} +1 -1
  367. package/dist/web/assets/{copy-CPkbMfXt.js → copy-CBFg6m0d.js} +1 -1
  368. package/dist/web/assets/{createLucideIcon-CXQny8HU.js → createLucideIcon-DF2VR6WA.js} +1 -1
  369. package/dist/web/assets/{cssMode-CYxYl_om.js → cssMode-BSQUZhUO.js} +1 -1
  370. package/dist/web/assets/{external-link-CDKOLG_v.js → external-link-Cql9bKdv.js} +1 -1
  371. package/dist/web/assets/{folder-open-CEtOb_lK.js → folder-open-BXdVB5J1.js} +1 -1
  372. package/dist/web/assets/{folder-plus-CVMYZs3e.js → folder-plus-Cma2HulC.js} +1 -1
  373. package/dist/web/assets/{git-commit-horizontal-DDyhPjxS.js → git-commit-horizontal-eF--16ps.js} +1 -1
  374. package/dist/web/assets/{htmlMode-DoY4V_j0.js → htmlMode-aLPlQtyU.js} +1 -1
  375. package/dist/web/assets/icons-c3vt7y6n.js +1 -0
  376. package/dist/web/assets/{image-B-PjDSwU.js → image-CqKPwnBn.js} +1 -1
  377. package/dist/web/assets/{index-D9WbJMSq.js → index-CM0IRu1U.js} +2 -2
  378. package/dist/web/assets/{info-CCnw-K3b.js → info-CqeYEqG0.js} +1 -1
  379. package/dist/web/assets/{jsonMode-CeOpZdPj.js → jsonMode-fu7bEcHB.js} +1 -1
  380. package/dist/web/assets/loader-circle-pxp89T5x.js +1 -0
  381. package/dist/web/assets/{lspLanguageFeatures-DAbgLCqZ.js → lspLanguageFeatures-DraXQA4w.js} +1 -1
  382. package/dist/web/assets/{maximize-2-BZX38cpr.js → maximize-2-yMp8X9ts.js} +1 -1
  383. package/dist/web/assets/{message-square-CvgSecgD.js → message-square-DbIMQqfj.js} +1 -1
  384. package/dist/web/assets/model-display-zPvC4L2B.js +1 -0
  385. package/dist/web/assets/models-route-CWcJuOd0.js +1 -0
  386. package/dist/web/assets/{monaco.contribution-cbDqt48m.js → monaco.contribution-BQhp1CJs.js} +2 -2
  387. package/dist/web/assets/{monaco.contribution-CF2JDhi4.js → monaco.contribution-Bd8EqYGR.js} +2 -2
  388. package/dist/web/assets/{monaco.contribution-m2ze2EsL.js → monaco.contribution-CYWKnVxQ.js} +2 -2
  389. package/dist/web/assets/{monaco.contribution-yeyow_-Q.js → monaco.contribution-CmbWO0tB.js} +2 -2
  390. package/dist/web/assets/{monitor-By0s4hxb.js → monitor-DFE2fTkT.js} +1 -1
  391. package/dist/web/assets/{paperclip-BJ2QgJLa.js → paperclip-D_qsKbVs.js} +1 -1
  392. package/dist/web/assets/{pdf-C4x-1jjP.js → pdf-DkQRsi4n.js} +1 -1
  393. package/dist/web/assets/play-BtlX2stU.js +1 -0
  394. package/dist/web/assets/plus-DbASL_gy.js +1 -0
  395. package/dist/web/assets/{presentation-I86G1Gd9.js → presentation-BN_kIBPL.js} +1 -1
  396. package/dist/web/assets/{python-CqFTPj8r.js → python-DB9pj5Hr.js} +1 -1
  397. package/dist/web/assets/{refresh-cw-Dga35Eay.js → refresh-cw-B27ohHfn.js} +1 -1
  398. package/dist/web/assets/{save-BLKjYtzR.js → save-D-rwjKop.js} +1 -1
  399. package/dist/web/assets/settings-lists-DgSaJQA4.js +5 -0
  400. package/dist/web/assets/square-C2caJ3NG.js +1 -0
  401. package/dist/web/assets/{square-terminal-B-n7vUex.js → square-terminal-CeoK51wH.js} +1 -1
  402. package/dist/web/assets/{submit-issue-command-B7Hrt2tU.js → submit-issue-command-DZNW7Evj.js} +1 -1
  403. package/dist/web/assets/{toggleHighContrast-BhmBE5XE.js → toggleHighContrast-Bs8L1gx0.js} +1 -1
  404. package/dist/web/assets/{training-QrdkRQZQ.js → training-DCdoHJ0Y.js} +2 -2
  405. package/dist/web/assets/{training-model-data-DB-jg6L_.js → training-model-data-wHvE7xL1.js} +1 -1
  406. package/dist/web/assets/{tsMode-BSWEII2p.js → tsMode-C7EqshxC.js} +1 -1
  407. package/dist/web/assets/{upload-C4MPhQn8.js → upload-BWgjC2Jf.js} +1 -1
  408. package/dist/web/assets/{useAccountSettings-9oqWdRLs.js → useAccountSettings-Dva1MpsJ.js} +1 -1
  409. package/dist/web/assets/{useAgentInventory-isO79ui9.js → useAgentInventory-CrjIOmvb.js} +1 -1
  410. package/dist/web/assets/{useLocalAgentSchedules-CZX6PxoK.js → useLocalAgentSchedules-P-UaUKMb.js} +1 -1
  411. package/dist/web/assets/{useQuery-BD0Uexmh.js → useQuery-Bn3KqR4r.js} +1 -1
  412. package/dist/web/assets/{wifi-off-Cloe0WuQ.js → wifi-off--mKrSPFc.js} +1 -1
  413. package/dist/web/assets/{workers-BXagz5eg.js → workers-p0Kn2KMK.js} +1 -1
  414. package/dist/web/assets/x-D9GTV9ke.js +1 -0
  415. package/dist/web/assets/{yaml-sBdvVbCc.js → yaml-BeIdC4tu.js} +1 -1
  416. package/dist/web/index.html +1 -1
  417. package/docs/command-reference.md +44 -2
  418. package/package.json +1 -1
  419. package/dist/chunks/acp-H3MJCPHX.js +0 -2
  420. package/dist/chunks/acp-agent-DWA7272M.js +0 -21
  421. package/dist/chunks/actions-command-IIYOO4LL.js +0 -2
  422. package/dist/chunks/app-layer-K7H2WJ56.js +0 -3
  423. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +0 -2
  424. package/dist/chunks/app-server-evaluations-XGMGS67X.js +0 -2
  425. package/dist/chunks/app-server-harness-services-BHD6S5II.js +0 -2
  426. package/dist/chunks/app-server-runtime-LFIL6F7D.js +0 -2
  427. package/dist/chunks/apps-QKAHJGQ4.js +0 -2
  428. package/dist/chunks/chunk-5EP2DZLJ.js +0 -2
  429. package/dist/chunks/chunk-6EBCS57F.js +0 -2
  430. package/dist/chunks/chunk-6RS4NAOY.js +0 -2
  431. package/dist/chunks/chunk-7O6Z3VOZ.js +0 -2
  432. package/dist/chunks/chunk-7YLXGILH.js +0 -2
  433. package/dist/chunks/chunk-7ZLXFKRI.js +0 -2
  434. package/dist/chunks/chunk-B5R53U74.js +0 -2
  435. package/dist/chunks/chunk-C2AXMKK4.js +0 -2
  436. package/dist/chunks/chunk-F6UQ6PPK.js +0 -2
  437. package/dist/chunks/chunk-GS6ZUSIN.js +0 -3
  438. package/dist/chunks/chunk-JSQRLLN6.js +0 -2
  439. package/dist/chunks/chunk-LAOLJDVB.js +0 -2
  440. package/dist/chunks/chunk-LKKMLBOH.js +0 -3
  441. package/dist/chunks/chunk-M3FLEZ4E.js +0 -4
  442. package/dist/chunks/chunk-MEGKXGW3.js +0 -2
  443. package/dist/chunks/chunk-MILEWROZ.js +0 -2
  444. package/dist/chunks/chunk-N42HT64M.js +0 -2
  445. package/dist/chunks/chunk-NG2L6D7G.js +0 -2
  446. package/dist/chunks/chunk-OSVGNONV.js +0 -2
  447. package/dist/chunks/chunk-OTUBJV6C.js +0 -6
  448. package/dist/chunks/chunk-PBTXLQAU.js +0 -2
  449. package/dist/chunks/chunk-PBZCXPPC.js +0 -10
  450. package/dist/chunks/chunk-SFKZITAG.js +0 -9
  451. package/dist/chunks/chunk-SXMR6E2W.js +0 -2
  452. package/dist/chunks/chunk-U2K7QJCG.js +0 -2
  453. package/dist/chunks/chunk-URNMC46H.js +0 -157
  454. package/dist/chunks/chunk-VHXDWAEH.js +0 -2
  455. package/dist/chunks/chunk-W2TICQ62.js +0 -2
  456. package/dist/chunks/chunk-WSOUMXH3.js +0 -24
  457. package/dist/chunks/chunk-XOB6FKQV.js +0 -2
  458. package/dist/chunks/chunk-YBNKGA5C.js +0 -2
  459. package/dist/chunks/chunk-YM4PSVFW.js +0 -4
  460. package/dist/chunks/chunk-YNQWJWIC.js +0 -10
  461. package/dist/chunks/chunk-Z3BWCFLV.js +0 -2
  462. package/dist/chunks/cli-PSXMIJTF.js +0 -2
  463. package/dist/chunks/configuration-command-XYKMXIWF.js +0 -2
  464. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +0 -2
  465. package/dist/chunks/connected-evidence-IRXYN6YD.js +0 -2
  466. package/dist/chunks/connection-XMAAGMXJ.js +0 -2
  467. package/dist/chunks/core-commands-WWN7X3XC.js +0 -2
  468. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +0 -4
  469. package/dist/chunks/datasets-2PC2HP7N.js +0 -2
  470. package/dist/chunks/desktop-test-VU6AFAMO.js +0 -3
  471. package/dist/chunks/dist-47AYOIH6.js +0 -2
  472. package/dist/chunks/dist-HSC43RG4.js +0 -2
  473. package/dist/chunks/dist-MXBEBM4D.js +0 -2
  474. package/dist/chunks/enclave-VURYNILU.js +0 -2
  475. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +0 -2
  476. package/dist/chunks/experiment-improvements-EB2CV5RA.js +0 -2
  477. package/dist/chunks/experiments-CLXGM3TZ.js +0 -2
  478. package/dist/chunks/experiments-SZQYR6MH.js +0 -2
  479. package/dist/chunks/experiments-signal-2KJCP25D.js +0 -2
  480. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +0 -2
  481. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +0 -2
  482. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +0 -2
  483. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +0 -3
  484. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +0 -2
  485. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +0 -3
  486. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +0 -2
  487. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +0 -2
  488. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +0 -3
  489. package/dist/chunks/hosted-profile-evaluation-preparation-2LSMZQNA.js +0 -3
  490. package/dist/chunks/hosted-tasksets-WGXGXJ7E.js +0 -2
  491. package/dist/chunks/human-review-M26UKGJL.js +0 -2
  492. package/dist/chunks/learning-HM3NWOV5.js +0 -2
  493. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +0 -2
  494. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +0 -2
  495. package/dist/chunks/local-scope-62GWHDXS.js +0 -2
  496. package/dist/chunks/model-projects-YUAMBQTO.js +0 -2
  497. package/dist/chunks/opchat-AG4CWVY4.js +0 -3
  498. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +0 -2
  499. package/dist/chunks/organizations-KDKX77XZ.js +0 -2
  500. package/dist/chunks/profile-training-source-3DXFM2XI.js +0 -2
  501. package/dist/chunks/project-action-payload-QA24HYGF.js +0 -2
  502. package/dist/chunks/project-agent-XBOOM5TS.js +0 -2
  503. package/dist/chunks/published-experiment-source-GZGN354O.js +0 -2
  504. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +0 -2
  505. package/dist/chunks/sandbox-command-5ECGS7DG.js +0 -2
  506. package/dist/chunks/saved-work-KUNVTJ7O.js +0 -2
  507. package/dist/chunks/send-turn-FIPWOXWV.js +0 -2
  508. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +0 -2
  509. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +0 -2
  510. package/dist/chunks/store-conversation-serving-K324SQTO.js +0 -2
  511. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +0 -7
  512. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +0 -2
  513. package/dist/chunks/store-human-review-QJY3ZPPF.js +0 -7
  514. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +0 -2
  515. package/dist/chunks/store-learning-DW3QLQXU.js +0 -2
  516. package/dist/chunks/store-learning-credentials-67QNTPA7.js +0 -2
  517. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +0 -2
  518. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +0 -2
  519. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +0 -9
  520. package/dist/chunks/taskset-ARKJQKYQ.js +0 -2
  521. package/dist/chunks/taskset-packages-X4K65DTW.js +0 -2
  522. package/dist/chunks/taskset-packages-XK7FSD45.js +0 -2
  523. package/dist/chunks/training-3IWW4256.js +0 -2
  524. package/dist/chunks/training-RVIESURJ.js +0 -2
  525. package/dist/chunks/training-error-2EWDOQ4G.js +0 -2
  526. package/dist/chunks/training-hosted-PFJHYTEU.js +0 -2
  527. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +0 -2
  528. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +0 -2
  529. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +0 -2
  530. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +0 -2
  531. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +0 -2
  532. package/dist/chunks/training-model-start-ROLS3E4V.js +0 -2
  533. package/dist/chunks/web-search-7FBUBZ66.js +0 -2
  534. package/dist/chunks/workspaces-G3CMY7ZA.js +0 -2
  535. package/dist/web/assets/App-DY2R8Z6r.js +0 -53
  536. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +0 -2
  537. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +0 -8
  538. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +0 -101
  539. package/dist/web/assets/MainChatThread-pzHKd_YN.js +0 -2
  540. package/dist/web/assets/MainPane-6OlLiKKb.js +0 -10
  541. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +0 -2
  542. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +0 -1
  543. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +0 -1
  544. package/dist/web/assets/UsageSettingsSection-FhYymrfc.js +0 -7
  545. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +0 -1
  546. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +0 -11
  547. package/dist/web/assets/app-models-CUA9XB9U.js +0 -1
  548. package/dist/web/assets/chat-resources-CI8KFVO5.js +0 -1
  549. package/dist/web/assets/chevron-right-BYmDQ7ti.js +0 -1
  550. package/dist/web/assets/chunk-ONGOAEY6-C__DQmRT.js +0 -9
  551. package/dist/web/assets/chunk-SQBYHWZU-DumrB9SB.js +0 -1
  552. package/dist/web/assets/icons-D7jkCa2d.js +0 -1
  553. package/dist/web/assets/loader-circle-CPaJeTDy.js +0 -1
  554. package/dist/web/assets/models-route-Bl_TmMl6.js +0 -1
  555. package/dist/web/assets/play-D_SuGDBM.js +0 -1
  556. package/dist/web/assets/plus-yw95Iaj8.js +0 -1
  557. package/dist/web/assets/settings-lists-DMKA1lCN.js +0 -5
  558. package/dist/web/assets/square-BY5lG2Ol.js +0 -1
  559. package/dist/web/assets/x-Dqpel42h.js +0 -1
  560. /package/dist/chunks/{chunk-IDOGNIMV.js → chunk-7J2NMUTK.js} +0 -0
  561. /package/dist/chunks/{chunk-PCB65K4G.js → chunk-SFR32TMJ.js} +0 -0
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D9WbJMSq.js";import{t as r}from"./useQuery-BD0Uexmh.js";import{o as i}from"./training-QrdkRQZQ.js";import{a,i as o,l as s}from"./TrainingRunLineage-VcKz7dIR.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-D7jkCa2d.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-DB-jg6L_.js";import{t as h}from"./chevron-down-jmVA1BIf.js";import{t as g}from"./chevron-right-BYmDQ7ti.js";import{t as _}from"./loader-circle-CPaJeTDy.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-DY2R8Z6r.js";import{l as S}from"./MainPane-6OlLiKKb.js";import{C,S as w,_ as T,b as ee,c as te,d as ne,f as re,g as E,h as ie,l as ae,m as oe,p as D,s as se,u as ce,v as O,x as le,y as ue}from"./LabsRoute-BV7ZJGEw.js";function de(e){if(!e)return[];let t=e.recipe;return t.method===`grpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)},{label:`Rollouts per update`,value:String(t.rollout.groupSize)},{label:`Rollout concurrency`,value:String(t.rollout.concurrency)},{label:`Max output tokens`,value:t.rollout.maxOutputTokens.toLocaleString()},{label:`Temperature`,value:String(t.rollout.temperature)},{label:`Top P`,value:String(t.rollout.topP)}]:t.method===`sft`||t.method===`dpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)}]:[]}function fe(e,t){if(!e||!t)return[];if(t.parent.kind===`base_model`)return[{label:`Starting checkpoint`,value:`Frozen base · ${t.parent.revision}`},{label:`Optimizer`,value:`Fresh`}];let n=e.modelVersions.find(e=>e.id===t.parent.id);return[{label:`Starting checkpoint`,value:[e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id)?.label??null,n?`Version ${n.version}`:t.parent.id].filter(e=>!!e).join(` · `)},{label:`Optimizer`,value:`Fresh`}]}function pe(e,t){if(!e||!t||t.parent.kind===`base_model`)return`Frozen base`;let n=e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id),r=e.modelVersions.find(e=>e.id===t.parent.id);return[n?.label??`Prior checkpoint`,r?`Version ${r.version}`:null].filter(e=>!!e).join(` · `)}function k(e){return e===0?`0`:e.toExponential(2)}var A=e(t(),1),j=n();function me({events:e}){let t=e.filter(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`);return t.length?(0,j.jsx)(`div`,{className:`training-rollout-receipts`,children:t.map((e,t)=>{let n=e.payload.rewardEligible===!0,r=N(e.payload.reward),i=typeof e.payload.failureClass==`string`?e.payload.failureClass:null,a=typeof e.payload.failureCode==`string`?e.payload.failureCode:null;return(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsxs)(`span`,{children:[`Attempt `,t+1]}),(0,j.jsx)(`strong`,{children:n?`eligible`:`ineligible`}),(0,j.jsx)(`em`,{children:n&&r!=null?r.toFixed(3):a??i??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Rollout`,value:P(e.payload.rolloutId)}),(0,j.jsx)(M,{label:`Group`,value:P(e.payload.rolloutGroupId)}),(0,j.jsx)(M,{label:`Policy`,value:`v${N(e.payload.policyVersion)??0}`}),(0,j.jsx)(M,{label:`Worker`,value:String((N(e.payload.workerSlot)??0)+1)}),(0,j.jsx)(M,{label:`Reward`,value:r==null?`Not eligible`:String(r)}),(0,j.jsx)(M,{label:`Failure class`,value:i??`None`}),(0,j.jsx)(M,{label:`Failure code`,value:a??`None`}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.payload.rewardComponents??{})}),(0,j.jsx)(M,{label:`Tokens`,value:`${N(e.payload.inputTokens)??0} input · ${N(e.payload.outputTokens)??0} output`})]})]},e.id)})}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No managed attempts were recorded for this run.`})}function he({receipts:e}){let[t,n]=(0,A.useState)(!1);if(!e.length)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No on-policy rollout receipts were recorded for this run.`});let r=[...e].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i=t?r:r.slice(0,24);return(0,j.jsxs)(`div`,{className:`training-rollout-receipts`,children:[e.length>24?(0,j.jsxs)(`div`,{className:`training-rollout-receipt-controls`,children:[(0,j.jsx)(`span`,{children:t?`Showing all ${e.length} receipts`:`Showing latest ${i.length} of ${e.length} receipts`}),(0,j.jsx)(`button`,{className:`training-text-button`,type:`button`,onClick:()=>n(e=>!e),children:t?`Show latest 24`:`Show all ${e.length}`})]}):null,i.map(e=>(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsx)(`span`,{children:ge(e.providerTrace.rolloutId)}),(0,j.jsx)(`strong`,{children:e.status}),(0,j.jsx)(`em`,{children:e.reward.eligible&&e.reward.raw!=null?e.reward.raw.toFixed(3):e.failureClass??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Correlation`,value:e.correlationId}),(0,j.jsx)(M,{label:`Task`,value:e.taskId}),(0,j.jsx)(M,{label:`Policy`,value:e.policy.modelId}),(0,j.jsx)(M,{label:`Checkpoint`,value:e.policy.checkpointId??`Provider initial policy`}),(0,j.jsx)(M,{label:`Environment`,value:`${e.environment.id}@${e.environment.version}`}),(0,j.jsx)(M,{label:`World`,value:`${e.environment.worldId} · ${e.environment.worldHash}`}),(0,j.jsx)(M,{label:`Raw reward`,value:e.reward.raw==null?`Not eligible`:String(e.reward.raw)}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.reward.components)}),(0,j.jsx)(M,{label:`Outcome`,value:e.verifier?.outcome??e.failureClass??`Pending`}),(0,j.jsx)(M,{label:`Trace`,value:`${e.providerTrace.experimentId}/${e.providerTrace.rolloutId}`})]})]},e.id))]})}function M({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function N(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function P(e){return typeof e==`string`&&e?e:`Not recorded`}function ge(e){return e.replace(/^lineage_/,``).slice(0,18)}function _e({detail:e,loading:t,pending:n=!1}){if(t&&!e)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading evaluation results…`});let r=e?.evaluation;return r?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[(0,j.jsxs)(`div`,{className:`training-metric-summary`,children:[(0,j.jsx)(F,{label:`Base score`,value:ye(r.base.meanScore)}),(0,j.jsx)(F,{label:`Trained score`,value:ye(r.trained.meanScore)}),(0,j.jsx)(F,{label:`Score change`,value:L(r.meanScoreDelta)}),(0,j.jsx)(F,{label:`Trained pass rate`,value:I(r.trained.passRate)})]}),r.base.count===0?(0,j.jsx)(`p`,{className:`training-muted`,children:`Base-model scoring was not imported for this earlier run. New runs retain both base and trained evaluations.`}):null,r.trained.count>0&&r.trained.scoredCount===0?(0,j.jsx)(`p`,{className:`training-muted`,children:`Outputs were captured, but the grader was unavailable, so this run has no evaluation score.`}):null,(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table training-evaluation-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Test example`}),(0,j.jsx)(`th`,{children:`Base`}),(0,j.jsx)(`th`,{children:`Trained`}),(0,j.jsx)(`th`,{children:`Result`})]})}),(0,j.jsx)(`tbody`,{children:r.examples.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:e.taskId}),(0,j.jsx)(ve,{input:e.input,baseOutput:e.baseOutput,trainedOutput:e.trainedOutput,baseGrade:e.baseGrade,trainedGrade:e.trainedGrade})]})}),(0,j.jsx)(`td`,{children:be(e.baseGrade)}),(0,j.jsx)(`td`,{children:be(e.trainedGrade)}),(0,j.jsx)(`td`,{children:xe(e.baseGrade,e.trainedGrade)})]},e.taskId))})]})})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:n?`Evaluation will appear here after the first eligible checkpoint is scored.`:`No scored evaluation results are available for this run.`})}function ve({input:e,baseOutput:t,trainedOutput:n,baseGrade:r,trainedGrade:i}){let a=[...new Set([...r?.feedback??[],...i?.feedback??[]])];return(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Input`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]}),t?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Base output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(t,null,2)})]}):null,n?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Trained output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(n,null,2)})]}):null,a.length?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Grader feedback`}),(0,j.jsx)(`p`,{children:a.join(` `)})]}):null]})}function F({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:e}),(0,j.jsx)(`strong`,{children:t})]})}function ye(e){return e==null?`Not recorded`:e.toFixed(3)}function I(e){return e==null?`Not recorded`:`${Math.round(e*100)}%`}function L(e){return e==null?`Not comparable`:`${e>=0?`+`:``}${e.toFixed(3)}`}function be(e){return e?.status===`unavailable`?`Unavailable`:e?.score==null?`Not scored`:e.score.toFixed(3)}function xe(e,t){if(!t)return`Not evaluated`;if(t.status===`unavailable`)return`Unavailable`;if(!e||e.score==null||t.score==null)return t.passed?`Passed`:`Failed`;let n=t.score-e.score;return Math.abs(n)<5e-4?`No change`:n>0?`Improved ${n.toFixed(3)}`:`Regressed ${Math.abs(n).toFixed(3)}`}function Se({connection:e,lineageId:t,jobId:n,onSaved:r}){let i=n??t,a=n?`jobs`:`models`,[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(0),[u,d]=(0,A.useState)(!0),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(null),[y,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(``),[w,T]=(0,A.useState)(null),[ee,te]=(0,A.useState)([]),[ne,re]=(0,A.useState)(!1);(0,A.useEffect)(()=>{if(!e){d(!1),p(!1),_(`Connect to OpenPond to review this candidate.`);return}let t=!0;return d(!0),p(!1),_(null),te([]),(async()=>{try{if(a===`models`){let n=await b.candidateReview(e,i);t&&n&&s(n)}let n=await b.candidateReview(e,i,!0,a);t&&(s(n),p(!!n))}catch(e){t&&_(R(e))}finally{t&&d(!1)}})(),()=>{t=!1}},[e,i,a,c]);function E(e){x(e),C(``),T(null)}async function ie(){if(!e||!o||!y||!S.trim())return;let t=w&&w.reason===S.trim()&&w.decision===y?w:{schemaVersion:`openpond.trainingCandidateDecisionRequest.v1`,...o.target,decision:y,reason:S.trim(),idempotencyKey:crypto.randomUUID(),expectedDecision:o.decision?{id:o.decision.id,contentHash:o.decision.contentHash}:null};T(t),h(!0),_(null);try{s(await b.recordCandidateReview(e,i,t,a)),x(null),T(null),te([]),await r()}catch(e){_(R(e))}finally{h(!1)}}let ae=(ee.at(-1)??o?.decision)?.request.expectedDecision;async function oe(){if(e&&ae){re(!0),_(null);try{let t=await b.candidateReviewHistory(e,i,ae,a);te(e=>[...e,t])}catch(e){_(R(e))}finally{re(!1)}}}let D=o?.decision;return(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Candidate review`,children:[(0,j.jsx)(`h3`,{children:`Candidate review`}),D?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`strong`,{children:D.request.decision===`accepted`?`Accepted`:`Rejected`}),(0,j.jsx)(`p`,{children:D.request.reason}),(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Review `,D.revision,` · `,new Date(D.decidedAt).toLocaleString()]})]}):(0,j.jsx)(`p`,{className:`training-muted`,children:u?`Loading candidate review…`:o?`No candidate decision recorded.`:`Candidate review unavailable.`}),o?(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Last synced `,new Date(o.syncedAt).toLocaleString(),`. Acceptance keeps this candidate for later use; serving is activated separately.`]}):null,g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:u||m,onClick:()=>l(e=>e+1),children:`Refresh review`}),(0,j.jsx)(`button`,{className:`training-button`,type:`button`,disabled:!f||u||m||D?.request.decision===`accepted`,onClick:()=>E(`accepted`),children:`Accept candidate`}),(0,j.jsx)(`button`,{className:`training-button danger`,type:`button`,disabled:!f||u||m||D?.request.decision===`rejected`,onClick:()=>E(`rejected`),children:`Reject candidate`})]}),ee.map(e=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Review `,e.revision,` · `,e.request.decision]}),(0,j.jsx)(`p`,{children:e.request.reason}),(0,j.jsx)(`p`,{children:new Date(e.decidedAt).toLocaleString()})]},e.id)),ae?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:ne||m,onClick:()=>void oe(),children:ne?`Loading…`:`Earlier review`}):null,y?(0,j.jsx)(`div`,{className:`training-dialog-backdrop`,role:`presentation`,onMouseDown:()=>!m&&x(null),children:(0,j.jsxs)(`section`,{className:`training-dialog training-promotion-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Review candidate`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`div`,{className:`training-dialog-header`,children:(0,j.jsx)(`h2`,{children:y===`accepted`?`Accept this candidate?`:`Reject this candidate?`})}),(0,j.jsx)(`p`,{children:`The adapter and its recorded evaluation remain in the candidate’s history.`}),(0,j.jsxs)(`label`,{className:`training-promotion-reason`,children:[(0,j.jsx)(`span`,{children:`Reason`}),(0,j.jsx)(`textarea`,{autoFocus:!0,maxLength:5e3,value:S,onChange:e=>C(e.target.value)})]}),g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:m,onClick:()=>x(null),children:`Cancel`}),(0,j.jsx)(`button`,{className:`training-button ${y===`rejected`?`danger`:``}`,type:`button`,disabled:m||!S.trim(),onClick:()=>void ie(),children:m?`Saving…`:w?`Retry save`:`Save decision`})]})]})}):null]})}function R(e){return e instanceof Error?e.message:`Candidate review could not be loaded.`}function Ce({connection:e,jobId:t,evaluations:n}){let[r,i]=(0,A.useState)(null),a=n.filter(e=>e.reference),o=a.find(e=>e.reference?.id===r)??a.filter(e=>e.kind===`candidate`).at(-1)??a[0];return!e||!o?.reference?null:(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Retained evaluation answers`,children:[(0,j.jsxs)(`label`,{className:`training-taskset-selector`,children:[(0,j.jsx)(`span`,{children:`Evaluation answers`}),(0,j.jsx)(`select`,{value:o.reference.id,onChange:e=>i(e.target.value),children:a.map(e=>(0,j.jsxs)(`option`,{value:e.reference.id,children:[e.kind===`baseline`?`Baseline`:`Candidate`,` · policy `,e.policyVersion]},e.reference.id))})]}),(0,j.jsx)(z,{connection:e,jobId:t,evaluation:o.reference},`${t}:${o.reference.id}:${o.reference.contentHash}`)]})}function z({connection:e,jobId:t,evaluation:n}){let[r,i]=(0,A.useState)(),[a,o]=(0,A.useState)([]),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(!0),[p,m]=(0,A.useState)(0),{id:h,contentHash:g}=n;return(0,A.useEffect)(()=>{let n=!0;return f(!0),u(null),c(null),b.trainingEvaluationTasks(e,t,{id:h,contentHash:g},r).then(e=>{n&&c(e)}).catch(e=>{n&&u(e instanceof Error?e.message:String(e))}).finally(()=>{n&&f(!1)}),()=>{n=!1}},[e,t,h,g,r,p]),(0,j.jsxs)(`div`,{className:`training-run-evaluation`,"aria-busy":d,children:[d?(0,j.jsx)(`p`,{className:`training-muted`,children:`Loading recorded answers…`}):null,l?(0,j.jsx)(v,{error:l,children:(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>m(e=>e+1),children:`Retry answers`})}):null,s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Tasks `,s.offset+1,`–`,s.offset+s.tasks.length,` of`,` `,s.total,`. Recorded outputs and scores are retained for this run.`]}),s.tasks.map((e,t)=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Example `,s.offset+t+1,` · score `,e.score.toFixed(3)]}),(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Instruction`}),(0,j.jsx)(`pre`,{children:e.input.instruction})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Context`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e.input.context,null,2)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Recorded output`}),(0,j.jsx)(`pre`,{children:e.output})]})]})]},e.taskId))]}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!a.length,onClick:()=>{i(a.at(-1)),o(e=>e.slice(0,-1))},children:`Previous tasks`}),(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!s?.nextCursor,onClick:()=>{s?.nextCursor&&(o(e=>[...e,r]),i(s.nextCursor))},children:`Next tasks`})]})]})}var B=new Set([`queued`,`starting`,`running`,`cancelling`,`reconciling`]);function we(e,t,n,i=!1){let a=[`training-run-detail`,c(e),t,i],o=!!(e&&t),s=r({queryKey:[...a,`retained`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,refresh:!1,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4}),l=r({queryKey:[...a,`hosted`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4,refetchInterval:n&&B.has(n)?3e3:!1,refetchIntervalInBackground:!1}),u=l.data??s.data??null;return{detail:u,loading:o&&!u&&(s.isPending||l.isPending),error:l.error?.message??s.error?.message??null,refresh:async()=>(await l.refetch()).data??null}}function Te({title:e,status:t,statusValue:n,versionStatus:r,method:i,baseModel:a,taskset:o,compute:s,duration:c,output:l,reward:u,telemetry:d,evidence:f,configuration:p,children:m,failure:h,onOpenTaskset:_,showHeader:v=!0}){let y=d?.cost.providerReportedUsd??d?.cost.estimatedUsd??f?.cost.totalUsd??null;return(0,j.jsxs)(`div`,{className:`labs-model-run-summary`,children:[v?(0,j.jsx)(`section`,{className:`labs-run-outcome-card`,children:(0,j.jsx)(`header`,{children:(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`labs-run-title-row`,children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(C,{label:t,value:n})]}),(0,j.jsxs)(`p`,{children:[Ee(i),` on `,a]})]})})}):null,m,(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Run setup`})}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(V,{label:`Training method`,value:i}),(0,j.jsx)(V,{label:`Base model`,value:a}),(0,j.jsx)(V,{label:`Compute`,value:s}),(0,j.jsx)(V,{label:`Output`,value:l}),r?(0,j.jsx)(V,{label:`Version status`,value:r}):null,(0,j.jsx)(V,{label:`Duration`,value:c}),(0,j.jsx)(V,{label:`Run cost`,value:y===null?`Not reported`:`$${y.toFixed(4)}`}),(0,j.jsx)(V,{label:le(n)?`Latest reward`:`Final reward`,value:u===null?`Not reported`:u.toFixed(4)}),p.map(e=>(0,j.jsx)(V,{label:e.label,value:e.value},e.label)),d||f?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(H,{label:`GPU`,value:U(d,f)}),(0,j.jsx)(H,{label:`Tokens`,value:`${W(d?.usage.promptTokens??f?.usage.inputTokens??null)} prompt · ${W(d?.usage.generatedTokens??f?.usage.outputTokens??null)} generated`}),(0,j.jsx)(H,{label:`Trajectories`,value:`${W(d?.usage.successfulTrajectories??f?.reward.eligibleTrajectoryCount??null)} succeeded · ${W(d?.usage.failedTrajectories??(f?f.reward.trajectoryCount-f.reward.eligibleTrajectoryCount:null))} failed`}),(0,j.jsx)(H,{label:`Optimizer updates`,value:W(d?.usage.optimizerSteps??f?.progress.committedOptimizerSteps??null)}),(0,j.jsx)(H,{label:`GPU time`,value:d?.usage.gpuSeconds==null?`Not reported`:`${d.usage.gpuSeconds.toFixed(1)} seconds`})]}):(0,j.jsx)(V,{label:`Resource usage`,value:`Not retained for this run`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:_?(0,j.jsxs)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:_,children:[(0,j.jsx)(`span`,{children:o}),(0,j.jsx)(g,{"aria-hidden":`true`,size:14})]}):o})]})]})]}),h?(0,j.jsx)(`p`,{className:`labs-training-error`,children:h}):null]})}function V({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function H({label:e,value:t}){return(0,j.jsx)(V,{label:e,value:t})}function U(e,t){let n=e?.resource.gpuCount??t?.resource.gpuCount??null,r=e?.resource.gpuType??t?.resource.gpuType??null;return n===null&&r===null?`Not reported`:`${n??`Unknown`} × ${r?De(r):`Unreported`}`}function W(e){return e===null?`Not reported`:e.toLocaleString()}function Ee(e){return e===`RFT`?`Reinforcement fine-tuning`:`${e} training`}function De(e){return e.split(` · `).map(e=>e.replaceAll(`_`,` `).replace(/\b[a-z]/g,e=>e.toUpperCase())).join(` · `)}function G({receipt:e,onOpenConversation:t}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Inconclusive benchmark`})}),(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.reason}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Held-out baseline tokens`,value:e.usage.baseline.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Adaptation baseline tokens`,value:e.usage.adaptation.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Refiner tokens`,value:e.usage.refiner.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Grader tokens`,value:e.usage.grader.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Observed / maximum spend`,value:`$${e.budget.observedSpendUsd.toFixed(4)} / $${e.budget.maximumSpendUsd.toFixed(2)}`}),(0,j.jsx)(Y,{label:`Harness candidate`,value:e.stopReason===`candidate_harness_unchanged`?`Unchanged`:`Lineage invalid`}),(0,j.jsx)(Y,{label:`Completed attempts`,value:e.attempts.length.toLocaleString()}),(0,j.jsx)(Y,{label:`Candidate attempts`,value:`Skipped`})]})]}),e.attempts.length?(0,j.jsx)(J,{receipt:e,onOpenConversation:t}):null]})}function Oe({run:e}){let t=[`baseline`,`adaptation`,`refiner`,`candidate_adaptation`,`candidate`,`comparison`],n={baseline:`Baseline`,adaptation:`Adaptation`,refiner:`Refiner`,candidate_adaptation:`Sequential adaptation`,candidate:`Candidate`,comparison:`Comparison`},r=Math.max(0,t.indexOf(e.evaluationProgress?.stage??`baseline`)),i=e.evaluationProgress?.completedAttempts??0,a=e.evaluationProgress?.totalAttempts??1;return(0,j.jsxs)(`div`,{className:`labs-benchmark-progress`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h3`,{children:`Benchmark progress`}),(0,j.jsxs)(`strong`,{children:[i,` of `,a,` attempts`]})]}),(0,j.jsx)(`div`,{className:`labs-benchmark-progress-track`,"aria-hidden":`true`,children:(0,j.jsx)(`span`,{style:{width:`${Math.min(100,i/a*100)}%`}})}),(0,j.jsx)(`ol`,{children:t.map((e,t)=>(0,j.jsxs)(`li`,{className:t<r?`complete`:t===r?`active`:void 0,children:[(0,j.jsx)(`span`,{}),n[e]]},e))})]})}function K({receipt:e}){let t=O(e),n=t.pairs.filter(e=>e.cohort===`held_out`),r=t.pairs.filter(e=>e.cohort===`adaptation`),i=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0;return(0,j.jsxs)(`div`,{className:`labs-benchmark-attempt-charts`,children:[(0,j.jsx)(q,{title:`Held-out tokens by task`,baseline:n.map(e=>e.baseline.totalTokens),candidate:n.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Adaptation tokens by task`,baseline:r.map(e=>e.baseline.totalTokens),candidate:r.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Held-out quality by task`,baseline:n.map(e=>e.baseline.score),candidate:n.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i}),(0,j.jsx)(q,{title:`Adaptation quality by task`,baseline:r.map(e=>e.baseline.score),candidate:r.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i})]})}function ke({receipt:e,run:t,tasksetName:n,onOpenTaskset:r}){let i=O(e),a=i.comparedTaskCount>0,o=i.passed,s=i.tokenDeltaPercent===null?`—`:`${i.tokenDeltaPercent>0?`+`:``}${i.tokenDeltaPercent.toFixed(2)}%`,c=e=>{let t=i.cohorts[e];return`${t.passedTaskCount}/${t.comparedTaskCount} passed`};return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Token efficiency`})}),a?(0,j.jsxs)(`div`,{className:`labs-benchmark-efficiency-summary`,children:[(0,j.jsxs)(`strong`,{children:[i.passedTaskCount,` of `,i.comparedTaskCount,` tasks passed`]}),(0,j.jsxs)(`p`,{children:[`A task passes only when its refined token count is strictly lower than its own baseline. `,i.failedTaskCount,` failed this token-efficiency test; aggregate usage changed by `,s,`.`]})]}):(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:`Paired task-level token evidence is unavailable for this run.`}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Execution`,value:f(t.status)}),(0,j.jsx)(Y,{label:`Token-efficiency result`,value:o?`Passed`:`Failed`}),(0,j.jsx)(Y,{label:`Efficiency passes`,value:`${i.passedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Efficiency failures`,value:`${i.failedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`All-task foreground tokens`,value:`${i.baselineTokens.toLocaleString()} → ${i.refinedTokens.toLocaleString()}`}),(0,j.jsx)(Y,{label:`Aggregate token change`,value:s}),(0,j.jsx)(Y,{label:`Adaptation replay`,value:c(`adaptation`)}),(0,j.jsx)(Y,{label:`Held-out replay`,value:c(`held_out`)}),(0,j.jsx)(Y,{label:`Task quality`,value:`${i.baselinePassedCount}/${i.comparedTaskCount} → ${i.refinedPassedCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Result lineage`,value:e.lineage.valid?`Valid`:`Invalid`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:r?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:r,children:n}):n})]})]})]})}function q({title:e,baseline:t,candidate:n,format:r,summarize:i=e=>e.reduce((e,t)=>e+t,0)}){let a=t.filter(e=>e!==null),o=n.filter(e=>e!==null),s=Math.max(1,...a,...o),c=Math.max(2,t.length,n.length),l=e=>{let t=[],n=[];return e.forEach((e,r)=>{if(e===null){n.length&&t.push(n.join(` `)),n=[];return}let i=6+r/(c-1)*88,a=44-e/s*36;n.push(`${i},${a}`)}),n.length&&t.push(n.join(` `)),t},u=e=>e.flatMap((e,t)=>e===null?[]:[{x:6+t/(c-1)*88,y:44-e/s*36}]);return(0,j.jsxs)(`section`,{className:`labs-benchmark-line-chart`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h4`,{children:e}),(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`span`,{children:[`Baseline `,r(i(a))]}),(0,j.jsxs)(`span`,{children:[`Refined `,r(i(o))]})]})]}),(0,j.jsxs)(`svg`,{"aria-label":e,role:`img`,viewBox:`0 0 100 50`,preserveAspectRatio:`none`,children:[(0,j.jsx)(`line`,{x1:`6`,x2:`94`,y1:`44`,y2:`44`}),l(t).map((e,t)=>(0,j.jsx)(`polyline`,{className:`baseline`,points:e},`baseline-${t}`)),l(n).map((e,t)=>(0,j.jsx)(`polyline`,{className:`candidate`,points:e},`candidate-${t}`)),u(t).map((e,t)=>(0,j.jsx)(`circle`,{className:`baseline`,cx:e.x,cy:e.y,r:`1`},`baseline-point-${t}`)),u(n).map((e,t)=>(0,j.jsx)(`circle`,{className:`candidate`,cx:e.x,cy:e.y,r:`1`},`candidate-point-${t}`))]})]})}function J({receipt:e,onOpenConversation:t}){let n=e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?T(e.attempts??[]):e.attempts??[];return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?`Selected task results`:`Completed attempts`})}),(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table labs-benchmark-attempt-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Task`}),(0,j.jsx)(`th`,{children:`Phase`}),(0,j.jsx)(`th`,{children:`Result`}),(0,j.jsx)(`th`,{children:`Score`}),(0,j.jsx)(`th`,{children:`Tokens`}),(0,j.jsx)(`th`,{children:`Work chat`})]})}),(0,j.jsx)(`tbody`,{children:n.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:Ae(e.taskId)}),(0,j.jsx)(`td`,{children:e.phase}),(0,j.jsx)(`td`,{children:(0,j.jsx)(C,{label:e.passed?`Passed`:`Failed`,value:e.passed?`succeeded`:`failed`})}),(0,j.jsx)(`td`,{children:e.score===null?`—`:e.score.toFixed(2)}),(0,j.jsx)(`td`,{children:e.totalTokens.toLocaleString()}),(0,j.jsx)(`td`,{children:e.sessionId?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:()=>t(e.sessionId),children:`Open chat`}):`Not retained`})]},`${e.phase}:${e.attemptId}`))})]})})]})}function Ae(e){return e.replace(/^(?:adaptation|frozen)-/,``).replaceAll(`-`,` `).replace(/^./,e=>e.toUpperCase())}function Y({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function je(e){let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(r===0?0:2)} ${t[r]}`}function Me({error:e,events:t,loading:n,pending:r}){let[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)({}),[c,l]=(0,A.useState)(!0),u=(0,A.useRef)(null),f=(0,A.useRef)(null),p=(0,A.useRef)(null),m=(0,A.useMemo)(()=>Ne(t),[t]),g=(0,A.useMemo)(()=>t.filter(e=>o[X(e)]??Pe(X(e))),[t,o]),v=m.filter(e=>o[e.id]??Pe(e.id)).length,b=m.length>0&&v===m.length,S=v>0&&!b;return(0,A.useEffect)(()=>{p.current&&(p.current.indeterminate=S)},[S]),(0,A.useEffect)(()=>{if(!i)return;let e=e=>{f.current?.contains(e.target)||a(!1)},t=e=>{e.key===`Escape`&&a(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[i]),(0,A.useLayoutEffect)(()=>{let e=u.current;e&&c&&(e.scrollTop=e.scrollHeight)},[e,c,r,g]),n&&!t.length?(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading run events…`}):t.length?(0,j.jsxs)(`div`,{className:`training-event-log-shell`,children:[(0,j.jsxs)(`div`,{className:`training-event-log-toolbar`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(`strong`,{children:`Activity log`})}),(0,j.jsxs)(`div`,{className:`training-event-filter`,ref:f,children:[(0,j.jsxs)(`button`,{"aria-expanded":i,"aria-haspopup":`menu`,className:`training-event-filter-trigger`,type:`button`,onClick:()=>a(e=>!e),children:[(0,j.jsx)(y,{"aria-hidden":`true`,size:14}),`Event types`,(0,j.jsxs)(`span`,{children:[v,`/`,m.length]}),(0,j.jsx)(h,{"aria-hidden":`true`,size:13})]}),i?(0,j.jsxs)(`div`,{"aria-label":`Filter training activity by event type`,className:`training-event-filter-menu`,role:`menu`,children:[(0,j.jsxs)(`label`,{className:`training-event-filter-option select-all`,children:[(0,j.jsx)(`input`,{checked:b,ref:p,type:`checkbox`,onChange:e=>{let t=e.currentTarget.checked;s(Object.fromEntries(m.map(e=>[e.id,t])))}}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),`Select all`]}),(0,j.jsx)(`div`,{className:`training-event-filter-options`,children:m.map(e=>{let t=o[e.id]??Pe(e.id);return(0,j.jsxs)(`label`,{className:`training-event-filter-option`,children:[(0,j.jsx)(`input`,{checked:t,type:`checkbox`,onChange:t=>s(n=>({...n,[e.id]:t.currentTarget.checked}))}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),(0,j.jsx)(`span`,{children:e.label}),(0,j.jsx)(`small`,{children:e.count.toLocaleString()})]},e.id)})})]}):null]})]}),(0,j.jsxs)(`div`,{"aria-label":`Training activity log`,"aria-live":`polite`,className:`training-event-log`,ref:u,role:`log`,onScroll:e=>{let t=e.currentTarget,n=t.scrollHeight-t.scrollTop-t.clientHeight;l(n<=6)},children:[(0,j.jsxs)(`div`,{"aria-hidden":`true`,className:`training-event-log-header`,children:[(0,j.jsx)(`span`,{children:`Time`}),(0,j.jsx)(`span`,{children:`Event type`}),(0,j.jsx)(`span`,{children:`Details`})]}),g.map(e=>(0,j.jsxs)(`div`,{className:`training-event-log-line ${e.type}`,children:[(0,j.jsx)(`time`,{dateTime:e.timestamp,children:d(e.timestamp)}),(0,j.jsx)(`span`,{children:Fe(X(e))}),(0,j.jsx)(`code`,{children:Ie(e)})]},e.id)),r&&!e?(0,j.jsxs)(`div`,{className:`training-event-log-loading`,role:`status`,children:[(0,j.jsx)(_,{"aria-hidden":`true`,className:`spin`,size:14}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Waiting for new activity`})]}):null,g.length?null:(0,j.jsx)(`div`,{className:`training-event-log-empty`,children:`No events match the selected event types.`}),e?(0,j.jsxs)(`div`,{className:`training-event-log-line failure`,children:[(0,j.jsx)(`time`,{children:`—`}),(0,j.jsx)(`span`,{children:`Failure`}),(0,j.jsx)(`code`,{children:e})]}):null]})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:e??`No normalized run events were recorded.`})}function X(e){return typeof e.payload.remoteEventType==`string`&&e.payload.remoteEventType.trim()?e.payload.remoteEventType:typeof e.payload.telemetryType==`string`&&e.payload.telemetryType.trim()?e.payload.telemetryType:e.type}function Ne(e){let t=new Map;for(let n of e){let e=X(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].map(([e,t])=>({id:e,count:t,label:Fe(e)})).sort((e,t)=>e.label.localeCompare(t.label))}function Pe(e){return e!==`metric`&&!e.endsWith(`_metric`)}function Fe(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Ie(e){let t=e.payload,n=Q(t.step),r=Q(t.maxSteps);if(typeof t.telemetryType==`string`){let e=typeof t.message==`string`?t.message:null,r=typeof t.errorCode==`string`?t.errorCode:null,i=typeof t.telemetrySource==`string`?` · ${t.telemetrySource}`:``;return`${e??t.telemetryType.replaceAll(`_`,` `)}${n==null?``:` · step ${n}`}${i}${r?` · ${r}`:``}`}if(typeof t.remoteEventType==`string`){let e=Le(t.remoteEventType),r=typeof t.remotePhase==`string`?Re(t.remotePhase):null,i=typeof t.errorCode==`string`&&t.errorCode.trim()?t.errorCode.trim():null;return[e,r,n==null?null:`step ${n}`,i?`error ${i}`:null].filter(e=>!!e).join(` · `)}if(e.type===`start`)return typeof t.device==`string`?`Worker started on ${t.device}.`:`Worker started.`;if(e.type===`progress`&&n!=null)return r==null?`Step ${n}.`:`Step ${n} of ${r}.`;if(e.type===`metric`){let e=typeof t.metricKind==`string`?t.metricKind.replaceAll(`_`,` `):`metric`,r=[Z(`loss`,t.loss),Z(`reward`,t.meanReward??t.reward),Z(`policy loss`,t.policyLoss),Z(`value loss`,t.valueLoss),Z(`preference accuracy`,t.preferenceAccuracy,Be)].filter(e=>!!e),i=typeof t.failureClass==`string`?t.failureClass:null,a=typeof t.failureCode==`string`?t.failureCode:null,o=typeof t.metricId==`string`&&typeof t.value==`number`?` · ${t.metricId}: ${t.value.toPrecision(4)}`:``;return`${e}${n==null?``:` · step ${n}`}${o}${i?` · ${i}`:``}${a?` · ${a}`:``}${r.length?` · ${r.join(` · `)}`:``}`}if(e.type===`checkpoint`){let e=Q(t.policyVersion),n=Q(t.sizeBytes),r=[e==null?null:`policy ${e}`,n==null?null:je(n),t.final===!0?`final`:null].filter(e=>!!e);return r.length?`Checkpoint committed · ${r.join(` · `)}.`:`Checkpoint committed.`}if(e.type===`complete`){let e=Q(t.artifactCount);return e==null?`Worker completed.`:`Worker completed with ${e} artifacts.`}return e.type===`failure`&&typeof t.message==`string`?t.message:Object.keys(t).length?JSON.stringify(t):`Recorded.`}function Le(e){return{drain:`Rollout drain`,infer:`Model inference`,materialize_checkpoint:`Checkpoint materialization`,optimizer_metric:`Optimizer metric`,provision_gpu:`GPU provisioning`,rollout_metric:`Rollout trajectory`,score_reward_model:`Reward scoring`,start_inference:`Policy server`,train_step:`Optimizer update`,upload_checkpoint:`Checkpoint upload`}[e]??ze(e)}function Re(e){return{committed:`committed`,completed:`completed`,eligible:`recorded`,failed:`failed`,running:`running`,succeeded:`succeeded`}[e]??ze(e).toLocaleLowerCase()}function ze(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Z(e,t,n=e=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(e)){let r=Q(t);return r==null?null:`${e} ${n(r)}`}function Q(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Be(e){return`${(e*100).toFixed(1)}%`}function Ve({connection:e,detailTab:t,onDetailTabChange:n,selectedEntryKey:r,workproduct:c,runs:d,training:h,onOpenDataset:g,onOpenConversation:_,detailKind:v}){let y=h.payload,[b,x]=(0,A.useState)(null),C=(0,A.useMemo)(()=>ne(c,d,y),[d,y,c]),T=(0,A.useMemo)(()=>oe(c,d,y),[d,y,c]),E=(0,A.useMemo)(()=>ce(c,y),[y,c]),O=(0,A.useMemo)(()=>re(c,d,y),[d,y,c]),ue=(0,A.useMemo)(()=>new Map(O.map(e=>[e.id,e])),[O]),k=(0,A.useMemo)(()=>ae(C,T),[C,T]).find(e=>e.key===r)??null,M=r.startsWith(`model-run:`)?r.slice(10):null,N=M?E.find(e=>e.id===M)??null:k?.job?E.find(e=>e.id===k.job?.metadata.modelRunId)??null:null,P=k?.job??(N?y?.jobs.find(e=>e.id===N.id||e.metadata.modelRunId===N.id)??null:null),ge=y?.comparisonSeriesEntries.find(e=>e.modelRunId===N?.id||e.modelRunId===P?.metadata.modelRunId)??null,ve=s.shape.recovery.safeParse(P?.metadata.hostedRecovery),F=ve.success?ve.data:void 0,ye=i.shape.continuation.safeParse(P?.metadata.hostedContinuation),I=ye.success?ye.data:void 0,L=I?T.find(e=>e.lineage.jobId===I.sourceArtifact.jobId):void 0,be=F?`Recovered checkpoint`:L?`Version ${L.number}`:I?`Checkpoint ${I.sourceArtifact.checkpointId}`:typeof P?.metadata.parentHostedArtifactId==`string`?`Prior hosted run`:pe(y,ge),xe=(0,A.useMemo)(()=>{let e=se(C,T,E);return te(e,N?.kind===`evaluation`?`evals`:`training`)},[C,E,N?.kind,T]),R=xe.findIndex(e=>e.key===r||P!==null&&e.job?.id===P.id||N!==null&&e.lifecycleRun?.id===N.id),z=R<0?null:xe.length-R,B=k?.version??(N?.adapterArtifactLineageId?T.find(e=>e.lineage.id===N.adapterArtifactLineageId)??null:null),V=(N?y?.modelVersions.find(e=>e.id===N.modelVersionId)?.baseModel.modelId:null)??y?.modelVersions.filter(e=>e.modelId===c.id&&e.kind===`base_reference`).sort((e,t)=>t.version-e.version)[0]?.baseModel.modelId??(typeof P?.metadata.baseModelId==`string`?P.metadata.baseModelId:null),H=B?.lineage.frozenEvaluationArtifactId??null,U=B?.plan??(P?ue.get(P.planId)??null:null),W=B?.taskset??D(y).find(e=>e.id===(N?.taskset.id??U?.tasksetId??P?.metadata.tasksetId))??null,Ee=W?.name??(typeof P?.metadata.tasksetId==`string`?P.metadata.tasksetId:`Unavailable`),De=N?.method??U?.recipe.method??Ke(P?.metadata),G=we(e,P?.id??null,P?.status??null,t===`evaluation`),Oe=P?y?.rolloutReceipts.filter(e=>e.jobId===P.id)??[]:[],K=G.detail?.managedEvidence??null,ke=G.detail?.events.some(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`)??!1,q=w({lifecycleRun:N,job:G.detail?.job??P}),J=le(q),Ae=N?.status===`failed`&&P?.metadata.phase===`artifact_collection_failed`,Y=De===`grpo`,X=Ue(P?.metadata),Ne=(U&&(U.recipe.method===`sft`||U.recipe.method===`dpo`||U.recipe.method===`grpo`)?U.recipe.optimizer.maxSteps:null)??K?.progress.targetOptimizerSteps??null,Pe=Ne!==null&&typeof P?.metadata.progress==`number`&&Number.isFinite(P.metadata.progress)?Math.floor(Math.max(0,P.metadata.progress)*Ne):0,Fe=Math.max(0,X?.optimizerUpdatesApplied??0,Pe,G.detail?.policyMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,G.detail?.stepMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,K?.progress.committedOptimizerSteps??0),Ie=He(Y&&X?X.groupsCompleted:Fe,Y&&X?X.groupsTarget:Ne),Le=v===`run`?{id:`details`,label:`Details`}:{id:`overview`,label:`Overview`},Re=[...v===`run`&&P?[{id:`metrics`,label:`Metrics`}]:[],Le,...v===`version`&&P?[{id:`metrics`,label:`Metrics`}]:[],{id:`evaluation`,label:`Evaluation`},...Oe.length||ke?[{id:`rollouts`,label:`Rollouts`}]:[],{id:`artifacts`,label:`Artifacts`},...P?[{id:`activity`,label:`Activity`}]:[]],ze=t,Z=Re.some(e=>e.id===ze)?ze:Re[0].id;return!k&&!N&&h.loading?(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:`Run details`}),(0,j.jsx)(`p`,{role:`status`,children:`Loading training run…`})]}):!k&&!N?(0,j.jsx)(`div`,{className:`labs-model-version-detail`,children:(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`This training attempt is no longer available.`})}):N?.kind===`evaluation`?(0,j.jsx)(We,{run:N,runNumber:z,tasksetName:W?.name??`Unavailable`,onOpenTaskset:W?()=>g(W.id):void 0,onOpenConversation:_}):(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,description:`${u(De)} on ${Ge(U,V)}`,status:(0,j.jsx)(ee,{status:q}),actions:J&&(N||P)?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null||q===`cancelling`,onClick:async()=>{let e=N?.id??P.id,t=N?await h.actions.cancelModelRun(N.id):await h.actions.cancelJob(P.id);x({runId:e,message:t?`Cancellation requested. Waiting for the training service to confirm.`:`Cancellation could not be requested. Try again.`})},children:q===`cancelling`?`Cancelling…`:h.busyAction===`cancel-model-run`||h.busyAction===`cancel-job`?`Requesting cancellation…`:`Cancel run`}):Ae&&N?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null,onClick:async()=>{let e=await h.actions.retryModelRunCollection(N.id);x({runId:N.id,message:e?.state===`succeeded`?`Outputs collected from the completed training job.`:`Collection failed. The training job and its outputs are retained.`})},children:h.busyAction===`retry-model-run-collection`?`Collecting…`:`Retry collection`}):void 0,metrics:[{label:Y&&X?`Training groups`:`Training steps`,value:Ie.value},...F&&X?[{label:`Optimizer updates`,value:`${Math.max(0,X.optimizerUpdatesApplied-F.policyVersion)} new · ${F.policyVersion} reused`}]:[],{label:J?`Latest reward`:`Final reward`,value:Je(N?.reward?.raw??K?.reward.finalMean??null)},{label:`Duration`,value:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`},{label:`Output`,value:B?`Version ${B.number}`:`No version`},{label:`Based on`,value:be},{label:`Taskset`,value:Ee,onSelect:W?()=>g(W.id):void 0,ariaLabel:W?`Open Taskset ${W.name}`:void 0}]}),(0,j.jsx)(a,{recovery:F}),I?(0,j.jsx)(o,{continuation:{sourceJobId:I.sourceArtifact.jobId,checkpointId:I.sourceArtifact.checkpointId}}):null,b&&b.runId===(N?.id??P?.id)?(0,j.jsx)(`p`,{role:`status`,children:b.message}):null,(0,j.jsxs)(`section`,{className:`labs-run-detail-tabs`,children:[(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Run details`,children:Re.map(e=>(0,j.jsx)(`button`,{"aria-controls":`run-detail-panel-${e.id}`,"aria-selected":Z===e.id,className:Z===e.id?`active`:void 0,id:`run-detail-tab-${e.id}`,role:`tab`,type:`button`,onClick:()=>n(e.id),children:e.label},e.id))}),(0,j.jsxs)(`div`,{"aria-labelledby":`run-detail-tab-${Z}`,className:`labs-run-detail-tab-panel`,id:`run-detail-panel-${Z}`,role:`tabpanel`,children:[Z===Le.id?(0,j.jsx)(Te,{baseModel:Ge(U,V),compute:N?m(N.destinationId??``):U?m(U.destinationId):P?m(P.destinationId):`Not recorded`,duration:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`,failure:P?.error??N?.failure??null,configuration:[...I?[{label:`Starting checkpoint`,value:[L?`Version ${L.number}`:null,I.sourceArtifact.checkpointId].filter(Boolean).join(` · `)},{label:`Parent run`,value:I.sourceArtifact.jobId},{label:`Parent artifact`,value:I.sourceArtifact.artifactId},{label:`Optimizer`,value:I.optimizerMode===`reset`?`Reset`:`Continue`}]:fe(y,ge),...de(U)],evidence:K,method:u(De),output:B?`Version ${B.number}`:`No version created`,reward:N?.reward?.raw??K?.reward.finalMean??null,status:N?f(N.status):P?f(P.status):`Imported`,statusValue:N?.status??P?.status??`imported`,taskset:Ee,telemetry:N?.receipt?.schemaVersion===`openpond.modelRunReceipt.v1`?N.receipt.telemetry:null,title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,versionStatus:B?B.current?`Active`:`Available`:null,onOpenTaskset:W?()=>g(W.id):void 0,showHeader:!1}):null,Z===`metrics`&&P?(0,j.jsx)(S,{detail:G.detail,error:G.error,loading:G.loading,taskset:W}):null,Z===`artifacts`?(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)($,{label:`Training attempt`,value:P?.id??`Provider import`}),(0,j.jsx)($,{label:`Taskset`,value:Ee}),(0,j.jsx)($,{label:`Prepared data`,value:P?.bundleHash??`Provider managed`}),(0,j.jsx)($,{label:`Version ID`,value:B?.lineage.id??`No version created`}),K?.checkpoint?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)($,{label:`Checkpoint`,value:K.checkpoint.id}),(0,j.jsx)($,{label:`Checkpoint size`,value:K.checkpoint.sizeBytes==null?`Not reported`:je(K.checkpoint.sizeBytes)}),(0,j.jsx)($,{label:`Checkpoint hash`,value:K.checkpoint.sha256??`Not reported`})]}):null,K?.canonicalPublication.state?(0,j.jsx)($,{label:`Registry publication`,value:Ye(K.canonicalPublication.state)}):null]}):null,Z===`evaluation`?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[!K?.evaluations.length||G.detail?.evaluation?(0,j.jsx)(_e,{detail:G.detail,loading:G.loading,pending:J}):null,!G.detail?.evaluation&&K?.evaluations.length?(0,j.jsx)(`dl`,{className:`labs-inline-facts`,children:K.evaluations.map(e=>(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline score`:`Candidate score`,value:e.score==null?`Not reported`:e.score.toFixed(6)}),(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline coverage`:`Candidate coverage`,value:e.taskCount==null?`Not reported`:e.targetTaskCount==null?`${e.taskCount} ${e.taskCount===1?`task`:`tasks`} scored`:`${e.taskCount} of ${e.targetTaskCount} ${e.targetTaskCount===1?`task`:`tasks`} scored`})]},`${e.kind}:${e.policyVersion}`))}):null,B&&P?.destinationId===`openpond_managed`?(0,j.jsx)(Se,{connection:e,lineageId:B.lineage.id,onSaved:h.refresh},B.lineage.id):null,!B&&P?.metadata.source===`hosted_model_project_import`&&P.status===`succeeded`?(0,j.jsx)(Se,{connection:e,jobId:P.id,onSaved:h.refresh},`candidate:${P.id}`):null,P&&K?.evaluations.length?(0,j.jsx)(Ce,{connection:e,jobId:P.id,evaluations:K.evaluations},P.id):null,H?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>void h.actions.downloadArtifact(H),children:`Download evaluation receipt`}):null]}):null,Z===`rollouts`?Oe.length?(0,j.jsx)(he,{receipts:Oe}):(0,j.jsx)(me,{events:G.detail?.events??[]}):null,Z===`activity`&&P?(0,j.jsx)(Me,{error:P.error??G.error,events:G.detail?.events??[],loading:G.loading,pending:J}):null]})]})]})}function He(e,t){let n=Math.max(0,Math.floor(e));if(t===null||!Number.isFinite(t)||t<=0)return{value:n.toLocaleString(),hint:n===1?`completed update`:`completed updates`};let r=Math.max(1,Math.floor(t));return{value:`${n.toLocaleString()} / ${r.toLocaleString()}`,hint:`completed / planned`}}function Ue(e){let t=e?.rolloutProgress;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return[`groupsCompleted`,`groupsTarget`,`optimizerUpdatesApplied`,`optimizerUpdatesSkipped`].some(e=>typeof n[e]!=`number`||!Number.isInteger(n[e])||n[e]<0)?null:{groupsCompleted:n.groupsCompleted,groupsTarget:n.groupsTarget,optimizerUpdatesApplied:n.optimizerUpdatesApplied,optimizerUpdatesSkipped:n.optimizerUpdatesSkipped}}function We({run:e,runNumber:t,tasksetName:n,onOpenTaskset:r,onOpenConversation:i}){let[a,o]=(0,A.useState)(`results`),s=e.receipt?.schemaVersion===`openpond.modelEvaluationReceipt.v1`?e.receipt:null,c=e.receipt?.schemaVersion===`openpond.modelEvaluationStopReceipt.v1`?e.receipt:null,l=s?E(s):null,u=s?O(s):null;return(0,j.jsxs)(`div`,{className:`labs-model-version-detail labs-model-evaluation-detail`,children:[(0,j.jsx)(ie,{title:t?`Eval ${t}`:`Evaluation run`,description:`Harness Refiner benchmark · ${n}`,status:(0,j.jsx)(C,{label:s?u?.comparedTaskCount?`${u.passedTaskCount}/${u.comparedTaskCount} passed`:`No paired result`:c?`Inconclusive`:f(e.status),value:s?u?.comparedTaskCount&&u.passed?`succeeded`:`neutral`:c?.terminalClassification??e.status}),metrics:[{label:`Baseline pass rate`,value:s?`${(s.quality.baselinePassRate*100).toFixed(1)}%`:`—`},{label:`Candidate pass rate`,value:s?`${(s.quality.candidatePassRate*100).toFixed(1)}%`:`—`},{label:`Scenarios`,value:s?.attempts?.length??0},{label:`Execution`,value:f(e.status)}]}),(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Evaluation details`,children:[`results`,`scenarios`,`activity`].map(e=>(0,j.jsx)(`button`,{className:a===e?`active`:void 0,"aria-selected":a===e,role:`tab`,type:`button`,onClick:()=>o(e),children:e===`results`?`Results`:e===`scenarios`?`Scenarios`:`Activity`},e))}),a===`results`&&s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ue,{series:[{id:`baseline`,label:`Held-out baseline`,inputTokens:l.baseline.inputTokens,outputTokens:l.baseline.outputTokens,tokens:l.baseline.totalTokens,passRate:s.quality.baselinePassRate,costUsd:l.baseline.costUsd},{id:`candidate`,label:`Held-out refined`,inputTokens:l.candidate.inputTokens,outputTokens:l.candidate.outputTokens,tokens:l.candidate.totalTokens,passRate:s.quality.candidatePassRate,costUsd:l.candidate.costUsd}]}),(0,j.jsx)(ue,{series:[{id:`adaptation-baseline`,label:`Adaptation baseline`,inputTokens:l.adaptation.inputTokens,outputTokens:l.adaptation.outputTokens,tokens:l.adaptation.totalTokens,passRate:s.quality.adaptationBaselinePassRate,costUsd:l.adaptation.costUsd},{id:`adaptation-candidate`,label:`Adaptation replay`,inputTokens:l.candidate_adaptation.inputTokens,outputTokens:l.candidate_adaptation.outputTokens,tokens:l.candidate_adaptation.totalTokens,passRate:s.quality.adaptationCandidatePassRate,costUsd:l.candidate_adaptation.costUsd}]}),(0,j.jsx)(ke,{receipt:s,run:e,tasksetName:n,onOpenTaskset:r})]}):a===`results`&&c?(0,j.jsx)(G,{receipt:c,onOpenConversation:i}):a===`results`?(0,j.jsx)(`section`,{className:`labs-run-summary-card`,children:e.failure?(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.failure}):(0,j.jsx)(Oe,{run:e})}):null,a===`scenarios`&&s?(0,j.jsxs)(j.Fragment,{children:[(s.attempts??[]).length?(0,j.jsx)(K,{receipt:s}):null,(s.attempts??[]).length?(0,j.jsx)(J,{receipt:s,onOpenConversation:i}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No per-scenario attempts were retained.`})]}):null,a===`activity`?(0,j.jsxs)(`dl`,{className:`labs-inline-facts`,children:[(0,j.jsx)($,{label:`Run ID`,value:e.id}),(0,j.jsx)($,{label:`Status`,value:f(e.status)}),(0,j.jsx)($,{label:`Started`,value:e.startedAt?d(e.startedAt):`Not started`}),(0,j.jsx)($,{label:`Completed`,value:e.completedAt?d(e.completedAt):`In progress`})]}):null]})}function Ge(e,t=null){if(!e)return t?qe(t):`Not recorded`;let n=e.recipe.method===`sft`||e.recipe.method===`grpo`?e.recipe.baseModel:e.recipe.method===`dpo`?e.recipe.policyModel:e.recipe.method===`ppo`?e.recipe.policyOptimization.policyModel:null;return n?qe(n.id):`Not recorded`}function Ke(e){let t=e?.trainingMethod;return t===`sft`||t===`dpo`||t===`grpo`||t===`ppo`||t===`sdft`||t===`opd`||t===`opsd`||t===`sdpo`?t:null}function qe(e){return e.split(`/`).at(-1)??e}function Je(e){return e===null?`Not reported`:e.toFixed(4)}function $({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function Ye(e){return e?e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase()):`Pending`}export{Ve as LabModelVersionDetailPage,Ie as eventSummary,He as formatTrainingProgress,Ue as managedRolloutProgress};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-CM0IRu1U.js";import{t as r}from"./useQuery-Bn3KqR4r.js";import{o as i}from"./training-DCdoHJ0Y.js";import{a,i as o,l as s}from"./TrainingRunLineage-CwisTWs_.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-c3vt7y6n.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-wHvE7xL1.js";import{t as h}from"./chevron-down-BnnT0tnM.js";import{t as g}from"./chevron-right-C8K5PZj7.js";import{t as _}from"./loader-circle-pxp89T5x.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-BZuSv1XM.js";import{l as S}from"./MainPane-DDO6diPt.js";import{C,S as w,_ as T,b as ee,c as te,d as ne,f as re,g as E,h as ie,l as ae,m as oe,p as D,s as se,u as ce,v as O,x as le,y as ue}from"./LabsRoute-MJwIjSKg.js";function de(e){if(!e)return[];let t=e.recipe;return t.method===`grpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)},{label:`Rollouts per update`,value:String(t.rollout.groupSize)},{label:`Rollout concurrency`,value:String(t.rollout.concurrency)},{label:`Max output tokens`,value:t.rollout.maxOutputTokens.toLocaleString()},{label:`Temperature`,value:String(t.rollout.temperature)},{label:`Top P`,value:String(t.rollout.topP)}]:t.method===`sft`||t.method===`dpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)}]:[]}function fe(e,t){if(!e||!t)return[];if(t.parent.kind===`base_model`)return[{label:`Starting checkpoint`,value:`Frozen base · ${t.parent.revision}`},{label:`Optimizer`,value:`Fresh`}];let n=e.modelVersions.find(e=>e.id===t.parent.id);return[{label:`Starting checkpoint`,value:[e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id)?.label??null,n?`Version ${n.version}`:t.parent.id].filter(e=>!!e).join(` · `)},{label:`Optimizer`,value:`Fresh`}]}function pe(e,t){if(!e||!t||t.parent.kind===`base_model`)return`Frozen base`;let n=e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id),r=e.modelVersions.find(e=>e.id===t.parent.id);return[n?.label??`Prior checkpoint`,r?`Version ${r.version}`:null].filter(e=>!!e).join(` · `)}function k(e){return e===0?`0`:e.toExponential(2)}var A=e(t(),1),j=n();function me({events:e}){let t=e.filter(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`);return t.length?(0,j.jsx)(`div`,{className:`training-rollout-receipts`,children:t.map((e,t)=>{let n=e.payload.rewardEligible===!0,r=N(e.payload.reward),i=typeof e.payload.failureClass==`string`?e.payload.failureClass:null,a=typeof e.payload.failureCode==`string`?e.payload.failureCode:null;return(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsxs)(`span`,{children:[`Attempt `,t+1]}),(0,j.jsx)(`strong`,{children:n?`eligible`:`ineligible`}),(0,j.jsx)(`em`,{children:n&&r!=null?r.toFixed(3):a??i??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Rollout`,value:P(e.payload.rolloutId)}),(0,j.jsx)(M,{label:`Group`,value:P(e.payload.rolloutGroupId)}),(0,j.jsx)(M,{label:`Policy`,value:`v${N(e.payload.policyVersion)??0}`}),(0,j.jsx)(M,{label:`Worker`,value:String((N(e.payload.workerSlot)??0)+1)}),(0,j.jsx)(M,{label:`Reward`,value:r==null?`Not eligible`:String(r)}),(0,j.jsx)(M,{label:`Failure class`,value:i??`None`}),(0,j.jsx)(M,{label:`Failure code`,value:a??`None`}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.payload.rewardComponents??{})}),(0,j.jsx)(M,{label:`Tokens`,value:`${N(e.payload.inputTokens)??0} input · ${N(e.payload.outputTokens)??0} output`})]})]},e.id)})}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No managed attempts were recorded for this run.`})}function he({receipts:e}){let[t,n]=(0,A.useState)(!1);if(!e.length)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No on-policy rollout receipts were recorded for this run.`});let r=[...e].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i=t?r:r.slice(0,24);return(0,j.jsxs)(`div`,{className:`training-rollout-receipts`,children:[e.length>24?(0,j.jsxs)(`div`,{className:`training-rollout-receipt-controls`,children:[(0,j.jsx)(`span`,{children:t?`Showing all ${e.length} receipts`:`Showing latest ${i.length} of ${e.length} receipts`}),(0,j.jsx)(`button`,{className:`training-text-button`,type:`button`,onClick:()=>n(e=>!e),children:t?`Show latest 24`:`Show all ${e.length}`})]}):null,i.map(e=>(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsx)(`span`,{children:ge(e.providerTrace.rolloutId)}),(0,j.jsx)(`strong`,{children:e.status}),(0,j.jsx)(`em`,{children:e.reward.eligible&&e.reward.raw!=null?e.reward.raw.toFixed(3):e.failureClass??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Correlation`,value:e.correlationId}),(0,j.jsx)(M,{label:`Task`,value:e.taskId}),(0,j.jsx)(M,{label:`Policy`,value:e.policy.modelId}),(0,j.jsx)(M,{label:`Checkpoint`,value:e.policy.checkpointId??`Provider initial policy`}),(0,j.jsx)(M,{label:`Environment`,value:`${e.environment.id}@${e.environment.version}`}),(0,j.jsx)(M,{label:`World`,value:`${e.environment.worldId} · ${e.environment.worldHash}`}),(0,j.jsx)(M,{label:`Raw reward`,value:e.reward.raw==null?`Not eligible`:String(e.reward.raw)}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.reward.components)}),(0,j.jsx)(M,{label:`Outcome`,value:e.verifier?.outcome??e.failureClass??`Pending`}),(0,j.jsx)(M,{label:`Trace`,value:`${e.providerTrace.experimentId}/${e.providerTrace.rolloutId}`})]})]},e.id))]})}function M({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function N(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function P(e){return typeof e==`string`&&e?e:`Not recorded`}function ge(e){return e.replace(/^lineage_/,``).slice(0,18)}function _e({detail:e,loading:t,pending:n=!1}){if(t&&!e)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading evaluation results…`});let r=e?.evaluation;return r?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[(0,j.jsxs)(`div`,{className:`training-metric-summary`,children:[(0,j.jsx)(F,{label:`Base score`,value:ye(r.base.meanScore)}),(0,j.jsx)(F,{label:`Trained score`,value:ye(r.trained.meanScore)}),(0,j.jsx)(F,{label:`Score change`,value:L(r.meanScoreDelta)}),(0,j.jsx)(F,{label:`Trained pass rate`,value:I(r.trained.passRate)})]}),r.base.count===0?(0,j.jsx)(`p`,{className:`training-muted`,children:`Base-model scoring was not imported for this earlier run. New runs retain both base and trained evaluations.`}):null,r.trained.count>0&&r.trained.scoredCount===0?(0,j.jsx)(`p`,{className:`training-muted`,children:`Outputs were captured, but the grader was unavailable, so this run has no evaluation score.`}):null,(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table training-evaluation-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Test example`}),(0,j.jsx)(`th`,{children:`Base`}),(0,j.jsx)(`th`,{children:`Trained`}),(0,j.jsx)(`th`,{children:`Result`})]})}),(0,j.jsx)(`tbody`,{children:r.examples.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:e.taskId}),(0,j.jsx)(ve,{input:e.input,baseOutput:e.baseOutput,trainedOutput:e.trainedOutput,baseGrade:e.baseGrade,trainedGrade:e.trainedGrade})]})}),(0,j.jsx)(`td`,{children:be(e.baseGrade)}),(0,j.jsx)(`td`,{children:be(e.trainedGrade)}),(0,j.jsx)(`td`,{children:xe(e.baseGrade,e.trainedGrade)})]},e.taskId))})]})})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:n?`Evaluation will appear here after the first eligible checkpoint is scored.`:`No scored evaluation results are available for this run.`})}function ve({input:e,baseOutput:t,trainedOutput:n,baseGrade:r,trainedGrade:i}){let a=[...new Set([...r?.feedback??[],...i?.feedback??[]])];return(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Input`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]}),t?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Base output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(t,null,2)})]}):null,n?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Trained output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(n,null,2)})]}):null,a.length?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Grader feedback`}),(0,j.jsx)(`p`,{children:a.join(` `)})]}):null]})}function F({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:e}),(0,j.jsx)(`strong`,{children:t})]})}function ye(e){return e==null?`Not recorded`:e.toFixed(3)}function I(e){return e==null?`Not recorded`:`${Math.round(e*100)}%`}function L(e){return e==null?`Not comparable`:`${e>=0?`+`:``}${e.toFixed(3)}`}function be(e){return e?.status===`unavailable`?`Unavailable`:e?.score==null?`Not scored`:e.score.toFixed(3)}function xe(e,t){if(!t)return`Not evaluated`;if(t.status===`unavailable`)return`Unavailable`;if(!e||e.score==null||t.score==null)return t.passed?`Passed`:`Failed`;let n=t.score-e.score;return Math.abs(n)<5e-4?`No change`:n>0?`Improved ${n.toFixed(3)}`:`Regressed ${Math.abs(n).toFixed(3)}`}function Se({connection:e,lineageId:t,jobId:n,onSaved:r}){let i=n??t,a=n?`jobs`:`models`,[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(0),[u,d]=(0,A.useState)(!0),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(null),[y,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(``),[w,T]=(0,A.useState)(null),[ee,te]=(0,A.useState)([]),[ne,re]=(0,A.useState)(!1);(0,A.useEffect)(()=>{if(!e){d(!1),p(!1),_(`Connect to OpenPond to review this candidate.`);return}let t=!0;return d(!0),p(!1),_(null),te([]),(async()=>{try{if(a===`models`){let n=await b.candidateReview(e,i);t&&n&&s(n)}let n=await b.candidateReview(e,i,!0,a);t&&(s(n),p(!!n))}catch(e){t&&_(R(e))}finally{t&&d(!1)}})(),()=>{t=!1}},[e,i,a,c]);function E(e){x(e),C(``),T(null)}async function ie(){if(!e||!o||!y||!S.trim())return;let t=w&&w.reason===S.trim()&&w.decision===y?w:{schemaVersion:`openpond.trainingCandidateDecisionRequest.v1`,...o.target,decision:y,reason:S.trim(),idempotencyKey:crypto.randomUUID(),expectedDecision:o.decision?{id:o.decision.id,contentHash:o.decision.contentHash}:null};T(t),h(!0),_(null);try{s(await b.recordCandidateReview(e,i,t,a)),x(null),T(null),te([]),await r()}catch(e){_(R(e))}finally{h(!1)}}let ae=(ee.at(-1)??o?.decision)?.request.expectedDecision;async function oe(){if(e&&ae){re(!0),_(null);try{let t=await b.candidateReviewHistory(e,i,ae,a);te(e=>[...e,t])}catch(e){_(R(e))}finally{re(!1)}}}let D=o?.decision;return(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Candidate review`,children:[(0,j.jsx)(`h3`,{children:`Candidate review`}),D?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`strong`,{children:D.request.decision===`accepted`?`Accepted`:`Rejected`}),(0,j.jsx)(`p`,{children:D.request.reason}),(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Review `,D.revision,` · `,new Date(D.decidedAt).toLocaleString()]})]}):(0,j.jsx)(`p`,{className:`training-muted`,children:u?`Loading candidate review…`:o?`No candidate decision recorded.`:`Candidate review unavailable.`}),o?(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Last synced `,new Date(o.syncedAt).toLocaleString(),`. Acceptance keeps this candidate for later use; serving is activated separately.`]}):null,g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:u||m,onClick:()=>l(e=>e+1),children:`Refresh review`}),(0,j.jsx)(`button`,{className:`training-button`,type:`button`,disabled:!f||u||m||D?.request.decision===`accepted`,onClick:()=>E(`accepted`),children:`Accept candidate`}),(0,j.jsx)(`button`,{className:`training-button danger`,type:`button`,disabled:!f||u||m||D?.request.decision===`rejected`,onClick:()=>E(`rejected`),children:`Reject candidate`})]}),ee.map(e=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Review `,e.revision,` · `,e.request.decision]}),(0,j.jsx)(`p`,{children:e.request.reason}),(0,j.jsx)(`p`,{children:new Date(e.decidedAt).toLocaleString()})]},e.id)),ae?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:ne||m,onClick:()=>void oe(),children:ne?`Loading…`:`Earlier review`}):null,y?(0,j.jsx)(`div`,{className:`training-dialog-backdrop`,role:`presentation`,onMouseDown:()=>!m&&x(null),children:(0,j.jsxs)(`section`,{className:`training-dialog training-promotion-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Review candidate`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`div`,{className:`training-dialog-header`,children:(0,j.jsx)(`h2`,{children:y===`accepted`?`Accept this candidate?`:`Reject this candidate?`})}),(0,j.jsx)(`p`,{children:`The adapter and its recorded evaluation remain in the candidate’s history.`}),(0,j.jsxs)(`label`,{className:`training-promotion-reason`,children:[(0,j.jsx)(`span`,{children:`Reason`}),(0,j.jsx)(`textarea`,{autoFocus:!0,maxLength:5e3,value:S,onChange:e=>C(e.target.value)})]}),g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:m,onClick:()=>x(null),children:`Cancel`}),(0,j.jsx)(`button`,{className:`training-button ${y===`rejected`?`danger`:``}`,type:`button`,disabled:m||!S.trim(),onClick:()=>void ie(),children:m?`Saving…`:w?`Retry save`:`Save decision`})]})]})}):null]})}function R(e){return e instanceof Error?e.message:`Candidate review could not be loaded.`}function Ce({connection:e,jobId:t,evaluations:n}){let[r,i]=(0,A.useState)(null),a=n.filter(e=>e.reference),o=a.find(e=>e.reference?.id===r)??a.filter(e=>e.kind===`candidate`).at(-1)??a[0];return!e||!o?.reference?null:(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Retained evaluation answers`,children:[(0,j.jsxs)(`label`,{className:`training-taskset-selector`,children:[(0,j.jsx)(`span`,{children:`Evaluation answers`}),(0,j.jsx)(`select`,{value:o.reference.id,onChange:e=>i(e.target.value),children:a.map(e=>(0,j.jsxs)(`option`,{value:e.reference.id,children:[e.kind===`baseline`?`Baseline`:`Candidate`,` · policy `,e.policyVersion]},e.reference.id))})]}),(0,j.jsx)(z,{connection:e,jobId:t,evaluation:o.reference},`${t}:${o.reference.id}:${o.reference.contentHash}`)]})}function z({connection:e,jobId:t,evaluation:n}){let[r,i]=(0,A.useState)(),[a,o]=(0,A.useState)([]),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(!0),[p,m]=(0,A.useState)(0),{id:h,contentHash:g}=n;return(0,A.useEffect)(()=>{let n=!0;return f(!0),u(null),c(null),b.trainingEvaluationTasks(e,t,{id:h,contentHash:g},r).then(e=>{n&&c(e)}).catch(e=>{n&&u(e instanceof Error?e.message:String(e))}).finally(()=>{n&&f(!1)}),()=>{n=!1}},[e,t,h,g,r,p]),(0,j.jsxs)(`div`,{className:`training-run-evaluation`,"aria-busy":d,children:[d?(0,j.jsx)(`p`,{className:`training-muted`,children:`Loading recorded answers…`}):null,l?(0,j.jsx)(v,{error:l,children:(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>m(e=>e+1),children:`Retry answers`})}):null,s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Tasks `,s.offset+1,`–`,s.offset+s.tasks.length,` of`,` `,s.total,`. Recorded outputs and scores are retained for this run.`]}),s.tasks.map((e,t)=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Example `,s.offset+t+1,` · score `,e.score.toFixed(3)]}),(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Instruction`}),(0,j.jsx)(`pre`,{children:e.input.instruction})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Context`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e.input.context,null,2)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Recorded output`}),(0,j.jsx)(`pre`,{children:e.output})]})]})]},e.taskId))]}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!a.length,onClick:()=>{i(a.at(-1)),o(e=>e.slice(0,-1))},children:`Previous tasks`}),(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!s?.nextCursor,onClick:()=>{s?.nextCursor&&(o(e=>[...e,r]),i(s.nextCursor))},children:`Next tasks`})]})]})}var B=new Set([`queued`,`starting`,`running`,`cancelling`,`reconciling`]);function we(e,t,n,i=!1){let a=[`training-run-detail`,c(e),t,i],o=!!(e&&t),s=r({queryKey:[...a,`retained`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,refresh:!1,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4}),l=r({queryKey:[...a,`hosted`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4,refetchInterval:n&&B.has(n)?3e3:!1,refetchIntervalInBackground:!1}),u=l.data??s.data??null;return{detail:u,loading:o&&!u&&(s.isPending||l.isPending),error:l.error?.message??s.error?.message??null,refresh:async()=>(await l.refetch()).data??null}}function Te({title:e,status:t,statusValue:n,versionStatus:r,method:i,baseModel:a,taskset:o,compute:s,duration:c,output:l,reward:u,telemetry:d,evidence:f,configuration:p,children:m,failure:h,onOpenTaskset:_,showHeader:v=!0}){let y=d?.cost.providerReportedUsd??d?.cost.estimatedUsd??f?.cost.totalUsd??null;return(0,j.jsxs)(`div`,{className:`labs-model-run-summary`,children:[v?(0,j.jsx)(`section`,{className:`labs-run-outcome-card`,children:(0,j.jsx)(`header`,{children:(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`labs-run-title-row`,children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(C,{label:t,value:n})]}),(0,j.jsxs)(`p`,{children:[Ee(i),` on `,a]})]})})}):null,m,(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Run setup`})}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(V,{label:`Training method`,value:i}),(0,j.jsx)(V,{label:`Base model`,value:a}),(0,j.jsx)(V,{label:`Compute`,value:s}),(0,j.jsx)(V,{label:`Output`,value:l}),r?(0,j.jsx)(V,{label:`Version status`,value:r}):null,(0,j.jsx)(V,{label:`Duration`,value:c}),(0,j.jsx)(V,{label:`Run cost`,value:y===null?`Not reported`:`$${y.toFixed(4)}`}),(0,j.jsx)(V,{label:le(n)?`Latest reward`:`Final reward`,value:u===null?`Not reported`:u.toFixed(4)}),p.map(e=>(0,j.jsx)(V,{label:e.label,value:e.value},e.label)),d||f?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(H,{label:`GPU`,value:U(d,f)}),(0,j.jsx)(H,{label:`Tokens`,value:`${W(d?.usage.promptTokens??f?.usage.inputTokens??null)} prompt · ${W(d?.usage.generatedTokens??f?.usage.outputTokens??null)} generated`}),(0,j.jsx)(H,{label:`Trajectories`,value:`${W(d?.usage.successfulTrajectories??f?.reward.eligibleTrajectoryCount??null)} succeeded · ${W(d?.usage.failedTrajectories??(f?f.reward.trajectoryCount-f.reward.eligibleTrajectoryCount:null))} failed`}),(0,j.jsx)(H,{label:`Optimizer updates`,value:W(d?.usage.optimizerSteps??f?.progress.committedOptimizerSteps??null)}),(0,j.jsx)(H,{label:`GPU time`,value:d?.usage.gpuSeconds==null?`Not reported`:`${d.usage.gpuSeconds.toFixed(1)} seconds`})]}):(0,j.jsx)(V,{label:`Resource usage`,value:`Not retained for this run`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:_?(0,j.jsxs)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:_,children:[(0,j.jsx)(`span`,{children:o}),(0,j.jsx)(g,{"aria-hidden":`true`,size:14})]}):o})]})]})]}),h?(0,j.jsx)(`p`,{className:`labs-training-error`,children:h}):null]})}function V({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function H({label:e,value:t}){return(0,j.jsx)(V,{label:e,value:t})}function U(e,t){let n=e?.resource.gpuCount??t?.resource.gpuCount??null,r=e?.resource.gpuType??t?.resource.gpuType??null;return n===null&&r===null?`Not reported`:`${n??`Unknown`} × ${r?De(r):`Unreported`}`}function W(e){return e===null?`Not reported`:e.toLocaleString()}function Ee(e){return e===`RFT`?`Reinforcement fine-tuning`:`${e} training`}function De(e){return e.split(` · `).map(e=>e.replaceAll(`_`,` `).replace(/\b[a-z]/g,e=>e.toUpperCase())).join(` · `)}function G({receipt:e,onOpenConversation:t}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Inconclusive benchmark`})}),(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.reason}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Held-out baseline tokens`,value:e.usage.baseline.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Adaptation baseline tokens`,value:e.usage.adaptation.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Refiner tokens`,value:e.usage.refiner.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Grader tokens`,value:e.usage.grader.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Observed / maximum spend`,value:`$${e.budget.observedSpendUsd.toFixed(4)} / $${e.budget.maximumSpendUsd.toFixed(2)}`}),(0,j.jsx)(Y,{label:`Harness candidate`,value:e.stopReason===`candidate_harness_unchanged`?`Unchanged`:`Lineage invalid`}),(0,j.jsx)(Y,{label:`Completed attempts`,value:e.attempts.length.toLocaleString()}),(0,j.jsx)(Y,{label:`Candidate attempts`,value:`Skipped`})]})]}),e.attempts.length?(0,j.jsx)(J,{receipt:e,onOpenConversation:t}):null]})}function Oe({run:e}){let t=[`baseline`,`adaptation`,`refiner`,`candidate_adaptation`,`candidate`,`comparison`],n={baseline:`Baseline`,adaptation:`Adaptation`,refiner:`Refiner`,candidate_adaptation:`Sequential adaptation`,candidate:`Candidate`,comparison:`Comparison`},r=Math.max(0,t.indexOf(e.evaluationProgress?.stage??`baseline`)),i=e.evaluationProgress?.completedAttempts??0,a=e.evaluationProgress?.totalAttempts??1;return(0,j.jsxs)(`div`,{className:`labs-benchmark-progress`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h3`,{children:`Benchmark progress`}),(0,j.jsxs)(`strong`,{children:[i,` of `,a,` attempts`]})]}),(0,j.jsx)(`div`,{className:`labs-benchmark-progress-track`,"aria-hidden":`true`,children:(0,j.jsx)(`span`,{style:{width:`${Math.min(100,i/a*100)}%`}})}),(0,j.jsx)(`ol`,{children:t.map((e,t)=>(0,j.jsxs)(`li`,{className:t<r?`complete`:t===r?`active`:void 0,children:[(0,j.jsx)(`span`,{}),n[e]]},e))})]})}function K({receipt:e}){let t=O(e),n=t.pairs.filter(e=>e.cohort===`held_out`),r=t.pairs.filter(e=>e.cohort===`adaptation`),i=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0;return(0,j.jsxs)(`div`,{className:`labs-benchmark-attempt-charts`,children:[(0,j.jsx)(q,{title:`Held-out tokens by task`,baseline:n.map(e=>e.baseline.totalTokens),candidate:n.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Adaptation tokens by task`,baseline:r.map(e=>e.baseline.totalTokens),candidate:r.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Held-out quality by task`,baseline:n.map(e=>e.baseline.score),candidate:n.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i}),(0,j.jsx)(q,{title:`Adaptation quality by task`,baseline:r.map(e=>e.baseline.score),candidate:r.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i})]})}function ke({receipt:e,run:t,tasksetName:n,onOpenTaskset:r}){let i=O(e),a=i.comparedTaskCount>0,o=i.passed,s=i.tokenDeltaPercent===null?`—`:`${i.tokenDeltaPercent>0?`+`:``}${i.tokenDeltaPercent.toFixed(2)}%`,c=e=>{let t=i.cohorts[e];return`${t.passedTaskCount}/${t.comparedTaskCount} passed`};return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Token efficiency`})}),a?(0,j.jsxs)(`div`,{className:`labs-benchmark-efficiency-summary`,children:[(0,j.jsxs)(`strong`,{children:[i.passedTaskCount,` of `,i.comparedTaskCount,` tasks passed`]}),(0,j.jsxs)(`p`,{children:[`A task passes only when its refined token count is strictly lower than its own baseline. `,i.failedTaskCount,` failed this token-efficiency test; aggregate usage changed by `,s,`.`]})]}):(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:`Paired task-level token evidence is unavailable for this run.`}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Execution`,value:f(t.status)}),(0,j.jsx)(Y,{label:`Token-efficiency result`,value:o?`Passed`:`Failed`}),(0,j.jsx)(Y,{label:`Efficiency passes`,value:`${i.passedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Efficiency failures`,value:`${i.failedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`All-task foreground tokens`,value:`${i.baselineTokens.toLocaleString()} → ${i.refinedTokens.toLocaleString()}`}),(0,j.jsx)(Y,{label:`Aggregate token change`,value:s}),(0,j.jsx)(Y,{label:`Adaptation replay`,value:c(`adaptation`)}),(0,j.jsx)(Y,{label:`Held-out replay`,value:c(`held_out`)}),(0,j.jsx)(Y,{label:`Task quality`,value:`${i.baselinePassedCount}/${i.comparedTaskCount} → ${i.refinedPassedCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Result lineage`,value:e.lineage.valid?`Valid`:`Invalid`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:r?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:r,children:n}):n})]})]})]})}function q({title:e,baseline:t,candidate:n,format:r,summarize:i=e=>e.reduce((e,t)=>e+t,0)}){let a=t.filter(e=>e!==null),o=n.filter(e=>e!==null),s=Math.max(1,...a,...o),c=Math.max(2,t.length,n.length),l=e=>{let t=[],n=[];return e.forEach((e,r)=>{if(e===null){n.length&&t.push(n.join(` `)),n=[];return}let i=6+r/(c-1)*88,a=44-e/s*36;n.push(`${i},${a}`)}),n.length&&t.push(n.join(` `)),t},u=e=>e.flatMap((e,t)=>e===null?[]:[{x:6+t/(c-1)*88,y:44-e/s*36}]);return(0,j.jsxs)(`section`,{className:`labs-benchmark-line-chart`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h4`,{children:e}),(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`span`,{children:[`Baseline `,r(i(a))]}),(0,j.jsxs)(`span`,{children:[`Refined `,r(i(o))]})]})]}),(0,j.jsxs)(`svg`,{"aria-label":e,role:`img`,viewBox:`0 0 100 50`,preserveAspectRatio:`none`,children:[(0,j.jsx)(`line`,{x1:`6`,x2:`94`,y1:`44`,y2:`44`}),l(t).map((e,t)=>(0,j.jsx)(`polyline`,{className:`baseline`,points:e},`baseline-${t}`)),l(n).map((e,t)=>(0,j.jsx)(`polyline`,{className:`candidate`,points:e},`candidate-${t}`)),u(t).map((e,t)=>(0,j.jsx)(`circle`,{className:`baseline`,cx:e.x,cy:e.y,r:`1`},`baseline-point-${t}`)),u(n).map((e,t)=>(0,j.jsx)(`circle`,{className:`candidate`,cx:e.x,cy:e.y,r:`1`},`candidate-point-${t}`))]})]})}function J({receipt:e,onOpenConversation:t}){let n=e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?T(e.attempts??[]):e.attempts??[];return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?`Selected task results`:`Completed attempts`})}),(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table labs-benchmark-attempt-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Task`}),(0,j.jsx)(`th`,{children:`Phase`}),(0,j.jsx)(`th`,{children:`Result`}),(0,j.jsx)(`th`,{children:`Score`}),(0,j.jsx)(`th`,{children:`Tokens`}),(0,j.jsx)(`th`,{children:`Work chat`})]})}),(0,j.jsx)(`tbody`,{children:n.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:Ae(e.taskId)}),(0,j.jsx)(`td`,{children:e.phase}),(0,j.jsx)(`td`,{children:(0,j.jsx)(C,{label:e.passed?`Passed`:`Failed`,value:e.passed?`succeeded`:`failed`})}),(0,j.jsx)(`td`,{children:e.score===null?`—`:e.score.toFixed(2)}),(0,j.jsx)(`td`,{children:e.totalTokens.toLocaleString()}),(0,j.jsx)(`td`,{children:e.sessionId?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:()=>t(e.sessionId),children:`Open chat`}):`Not retained`})]},`${e.phase}:${e.attemptId}`))})]})})]})}function Ae(e){return e.replace(/^(?:adaptation|frozen)-/,``).replaceAll(`-`,` `).replace(/^./,e=>e.toUpperCase())}function Y({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function je(e){let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(r===0?0:2)} ${t[r]}`}function Me({error:e,events:t,loading:n,pending:r}){let[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)({}),[c,l]=(0,A.useState)(!0),u=(0,A.useRef)(null),f=(0,A.useRef)(null),p=(0,A.useRef)(null),m=(0,A.useMemo)(()=>Ne(t),[t]),g=(0,A.useMemo)(()=>t.filter(e=>o[X(e)]??Pe(X(e))),[t,o]),v=m.filter(e=>o[e.id]??Pe(e.id)).length,b=m.length>0&&v===m.length,S=v>0&&!b;return(0,A.useEffect)(()=>{p.current&&(p.current.indeterminate=S)},[S]),(0,A.useEffect)(()=>{if(!i)return;let e=e=>{f.current?.contains(e.target)||a(!1)},t=e=>{e.key===`Escape`&&a(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[i]),(0,A.useLayoutEffect)(()=>{let e=u.current;e&&c&&(e.scrollTop=e.scrollHeight)},[e,c,r,g]),n&&!t.length?(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading run events…`}):t.length?(0,j.jsxs)(`div`,{className:`training-event-log-shell`,children:[(0,j.jsxs)(`div`,{className:`training-event-log-toolbar`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(`strong`,{children:`Activity log`})}),(0,j.jsxs)(`div`,{className:`training-event-filter`,ref:f,children:[(0,j.jsxs)(`button`,{"aria-expanded":i,"aria-haspopup":`menu`,className:`training-event-filter-trigger`,type:`button`,onClick:()=>a(e=>!e),children:[(0,j.jsx)(y,{"aria-hidden":`true`,size:14}),`Event types`,(0,j.jsxs)(`span`,{children:[v,`/`,m.length]}),(0,j.jsx)(h,{"aria-hidden":`true`,size:13})]}),i?(0,j.jsxs)(`div`,{"aria-label":`Filter training activity by event type`,className:`training-event-filter-menu`,role:`menu`,children:[(0,j.jsxs)(`label`,{className:`training-event-filter-option select-all`,children:[(0,j.jsx)(`input`,{checked:b,ref:p,type:`checkbox`,onChange:e=>{let t=e.currentTarget.checked;s(Object.fromEntries(m.map(e=>[e.id,t])))}}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),`Select all`]}),(0,j.jsx)(`div`,{className:`training-event-filter-options`,children:m.map(e=>{let t=o[e.id]??Pe(e.id);return(0,j.jsxs)(`label`,{className:`training-event-filter-option`,children:[(0,j.jsx)(`input`,{checked:t,type:`checkbox`,onChange:t=>s(n=>({...n,[e.id]:t.currentTarget.checked}))}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),(0,j.jsx)(`span`,{children:e.label}),(0,j.jsx)(`small`,{children:e.count.toLocaleString()})]},e.id)})})]}):null]})]}),(0,j.jsxs)(`div`,{"aria-label":`Training activity log`,"aria-live":`polite`,className:`training-event-log`,ref:u,role:`log`,onScroll:e=>{let t=e.currentTarget,n=t.scrollHeight-t.scrollTop-t.clientHeight;l(n<=6)},children:[(0,j.jsxs)(`div`,{"aria-hidden":`true`,className:`training-event-log-header`,children:[(0,j.jsx)(`span`,{children:`Time`}),(0,j.jsx)(`span`,{children:`Event type`}),(0,j.jsx)(`span`,{children:`Details`})]}),g.map(e=>(0,j.jsxs)(`div`,{className:`training-event-log-line ${e.type}`,children:[(0,j.jsx)(`time`,{dateTime:e.timestamp,children:d(e.timestamp)}),(0,j.jsx)(`span`,{children:Fe(X(e))}),(0,j.jsx)(`code`,{children:Ie(e)})]},e.id)),r&&!e?(0,j.jsxs)(`div`,{className:`training-event-log-loading`,role:`status`,children:[(0,j.jsx)(_,{"aria-hidden":`true`,className:`spin`,size:14}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Waiting for new activity`})]}):null,g.length?null:(0,j.jsx)(`div`,{className:`training-event-log-empty`,children:`No events match the selected event types.`}),e?(0,j.jsxs)(`div`,{className:`training-event-log-line failure`,children:[(0,j.jsx)(`time`,{children:`—`}),(0,j.jsx)(`span`,{children:`Failure`}),(0,j.jsx)(`code`,{children:e})]}):null]})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:e??`No normalized run events were recorded.`})}function X(e){return typeof e.payload.remoteEventType==`string`&&e.payload.remoteEventType.trim()?e.payload.remoteEventType:typeof e.payload.telemetryType==`string`&&e.payload.telemetryType.trim()?e.payload.telemetryType:e.type}function Ne(e){let t=new Map;for(let n of e){let e=X(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].map(([e,t])=>({id:e,count:t,label:Fe(e)})).sort((e,t)=>e.label.localeCompare(t.label))}function Pe(e){return e!==`metric`&&!e.endsWith(`_metric`)}function Fe(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Ie(e){let t=e.payload,n=Q(t.step),r=Q(t.maxSteps);if(typeof t.telemetryType==`string`){let e=typeof t.message==`string`?t.message:null,r=typeof t.errorCode==`string`?t.errorCode:null,i=typeof t.telemetrySource==`string`?` · ${t.telemetrySource}`:``;return`${e??t.telemetryType.replaceAll(`_`,` `)}${n==null?``:` · step ${n}`}${i}${r?` · ${r}`:``}`}if(typeof t.remoteEventType==`string`){let e=Le(t.remoteEventType),r=typeof t.remotePhase==`string`?Re(t.remotePhase):null,i=typeof t.errorCode==`string`&&t.errorCode.trim()?t.errorCode.trim():null;return[e,r,n==null?null:`step ${n}`,i?`error ${i}`:null].filter(e=>!!e).join(` · `)}if(e.type===`start`)return typeof t.device==`string`?`Worker started on ${t.device}.`:`Worker started.`;if(e.type===`progress`&&n!=null)return r==null?`Step ${n}.`:`Step ${n} of ${r}.`;if(e.type===`metric`){let e=typeof t.metricKind==`string`?t.metricKind.replaceAll(`_`,` `):`metric`,r=[Z(`loss`,t.loss),Z(`reward`,t.meanReward??t.reward),Z(`policy loss`,t.policyLoss),Z(`value loss`,t.valueLoss),Z(`preference accuracy`,t.preferenceAccuracy,Be)].filter(e=>!!e),i=typeof t.failureClass==`string`?t.failureClass:null,a=typeof t.failureCode==`string`?t.failureCode:null,o=typeof t.metricId==`string`&&typeof t.value==`number`?` · ${t.metricId}: ${t.value.toPrecision(4)}`:``;return`${e}${n==null?``:` · step ${n}`}${o}${i?` · ${i}`:``}${a?` · ${a}`:``}${r.length?` · ${r.join(` · `)}`:``}`}if(e.type===`checkpoint`){let e=Q(t.policyVersion),n=Q(t.sizeBytes),r=[e==null?null:`policy ${e}`,n==null?null:je(n),t.final===!0?`final`:null].filter(e=>!!e);return r.length?`Checkpoint committed · ${r.join(` · `)}.`:`Checkpoint committed.`}if(e.type===`complete`){let e=Q(t.artifactCount);return e==null?`Worker completed.`:`Worker completed with ${e} artifacts.`}return e.type===`failure`&&typeof t.message==`string`?t.message:Object.keys(t).length?JSON.stringify(t):`Recorded.`}function Le(e){return{drain:`Rollout drain`,infer:`Model inference`,materialize_checkpoint:`Checkpoint materialization`,optimizer_metric:`Optimizer metric`,provision_gpu:`GPU provisioning`,rollout_metric:`Rollout trajectory`,score_reward_model:`Reward scoring`,start_inference:`Policy server`,train_step:`Optimizer update`,upload_checkpoint:`Checkpoint upload`}[e]??ze(e)}function Re(e){return{committed:`committed`,completed:`completed`,eligible:`recorded`,failed:`failed`,running:`running`,succeeded:`succeeded`}[e]??ze(e).toLocaleLowerCase()}function ze(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Z(e,t,n=e=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(e)){let r=Q(t);return r==null?null:`${e} ${n(r)}`}function Q(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Be(e){return`${(e*100).toFixed(1)}%`}function Ve({connection:e,detailTab:t,onDetailTabChange:n,selectedEntryKey:r,workproduct:c,runs:d,training:h,onOpenDataset:g,onOpenConversation:_,detailKind:v}){let y=h.payload,[b,x]=(0,A.useState)(null),C=(0,A.useMemo)(()=>ne(c,d,y),[d,y,c]),T=(0,A.useMemo)(()=>oe(c,d,y),[d,y,c]),E=(0,A.useMemo)(()=>ce(c,y),[y,c]),O=(0,A.useMemo)(()=>re(c,d,y),[d,y,c]),ue=(0,A.useMemo)(()=>new Map(O.map(e=>[e.id,e])),[O]),k=(0,A.useMemo)(()=>ae(C,T),[C,T]).find(e=>e.key===r)??null,M=r.startsWith(`model-run:`)?r.slice(10):null,N=M?E.find(e=>e.id===M)??null:k?.job?E.find(e=>e.id===k.job?.metadata.modelRunId)??null:null,P=k?.job??(N?y?.jobs.find(e=>e.id===N.id||e.metadata.modelRunId===N.id)??null:null),ge=y?.comparisonSeriesEntries.find(e=>e.modelRunId===N?.id||e.modelRunId===P?.metadata.modelRunId)??null,ve=s.shape.recovery.safeParse(P?.metadata.hostedRecovery),F=ve.success?ve.data:void 0,ye=i.shape.continuation.safeParse(P?.metadata.hostedContinuation),I=ye.success?ye.data:void 0,L=I?T.find(e=>e.lineage.jobId===I.sourceArtifact.jobId):void 0,be=F?`Recovered checkpoint`:L?`Version ${L.number}`:I?`Checkpoint ${I.sourceArtifact.checkpointId}`:typeof P?.metadata.parentHostedArtifactId==`string`?`Prior hosted run`:pe(y,ge),xe=(0,A.useMemo)(()=>{let e=se(C,T,E);return te(e,N?.kind===`evaluation`?`evals`:`training`)},[C,E,N?.kind,T]),R=xe.findIndex(e=>e.key===r||P!==null&&e.job?.id===P.id||N!==null&&e.lifecycleRun?.id===N.id),z=R<0?null:xe.length-R,B=k?.version??(N?.adapterArtifactLineageId?T.find(e=>e.lineage.id===N.adapterArtifactLineageId)??null:null),V=(N?y?.modelVersions.find(e=>e.id===N.modelVersionId)?.baseModel.modelId:null)??y?.modelVersions.filter(e=>e.modelId===c.id&&e.kind===`base_reference`).sort((e,t)=>t.version-e.version)[0]?.baseModel.modelId??(typeof P?.metadata.baseModelId==`string`?P.metadata.baseModelId:null),H=B?.lineage.frozenEvaluationArtifactId??null,U=B?.plan??(P?ue.get(P.planId)??null:null),W=B?.taskset??D(y).find(e=>e.id===(N?.taskset.id??U?.tasksetId??P?.metadata.tasksetId))??null,Ee=W?.name??(typeof P?.metadata.tasksetId==`string`?P.metadata.tasksetId:`Unavailable`),De=N?.method??U?.recipe.method??Ke(P?.metadata),G=we(e,P?.id??null,P?.status??null,t===`evaluation`),Oe=P?y?.rolloutReceipts.filter(e=>e.jobId===P.id)??[]:[],K=G.detail?.managedEvidence??null,ke=G.detail?.events.some(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`)??!1,q=w({lifecycleRun:N,job:G.detail?.job??P}),J=le(q),Ae=N?.status===`failed`&&P?.metadata.phase===`artifact_collection_failed`,Y=De===`grpo`,X=Ue(P?.metadata),Ne=(U&&(U.recipe.method===`sft`||U.recipe.method===`dpo`||U.recipe.method===`grpo`)?U.recipe.optimizer.maxSteps:null)??K?.progress.targetOptimizerSteps??null,Pe=Ne!==null&&typeof P?.metadata.progress==`number`&&Number.isFinite(P.metadata.progress)?Math.floor(Math.max(0,P.metadata.progress)*Ne):0,Fe=Math.max(0,X?.optimizerUpdatesApplied??0,Pe,G.detail?.policyMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,G.detail?.stepMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,K?.progress.committedOptimizerSteps??0),Ie=He(Y&&X?X.groupsCompleted:Fe,Y&&X?X.groupsTarget:Ne),Le=v===`run`?{id:`details`,label:`Details`}:{id:`overview`,label:`Overview`},Re=[...v===`run`&&P?[{id:`metrics`,label:`Metrics`}]:[],Le,...v===`version`&&P?[{id:`metrics`,label:`Metrics`}]:[],{id:`evaluation`,label:`Evaluation`},...Oe.length||ke?[{id:`rollouts`,label:`Rollouts`}]:[],{id:`artifacts`,label:`Artifacts`},...P?[{id:`activity`,label:`Activity`}]:[]],ze=t,Z=Re.some(e=>e.id===ze)?ze:Re[0].id;return!k&&!N&&h.loading?(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:`Run details`}),(0,j.jsx)(`p`,{role:`status`,children:`Loading training run…`})]}):!k&&!N?(0,j.jsx)(`div`,{className:`labs-model-version-detail`,children:(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`This training attempt is no longer available.`})}):N?.kind===`evaluation`?(0,j.jsx)(We,{run:N,runNumber:z,tasksetName:W?.name??`Unavailable`,onOpenTaskset:W?()=>g(W.id):void 0,onOpenConversation:_}):(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,description:`${u(De)} on ${Ge(U,V)}`,status:(0,j.jsx)(ee,{status:q}),actions:J&&(N||P)?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null||q===`cancelling`,onClick:async()=>{let e=N?.id??P.id,t=N?await h.actions.cancelModelRun(N.id):await h.actions.cancelJob(P.id);x({runId:e,message:t?`Cancellation requested. Waiting for the training service to confirm.`:`Cancellation could not be requested. Try again.`})},children:q===`cancelling`?`Cancelling…`:h.busyAction===`cancel-model-run`||h.busyAction===`cancel-job`?`Requesting cancellation…`:`Cancel run`}):Ae&&N?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null,onClick:async()=>{let e=await h.actions.retryModelRunCollection(N.id);x({runId:N.id,message:e?.state===`succeeded`?`Outputs collected from the completed training job.`:`Collection failed. The training job and its outputs are retained.`})},children:h.busyAction===`retry-model-run-collection`?`Collecting…`:`Retry collection`}):void 0,metrics:[{label:Y&&X?`Training groups`:`Training steps`,value:Ie.value},...F&&X?[{label:`Optimizer updates`,value:`${Math.max(0,X.optimizerUpdatesApplied-F.policyVersion)} new · ${F.policyVersion} reused`}]:[],{label:J?`Latest reward`:`Final reward`,value:Je(N?.reward?.raw??K?.reward.finalMean??null)},{label:`Duration`,value:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`},{label:`Output`,value:B?`Version ${B.number}`:`No version`},{label:`Based on`,value:be},{label:`Taskset`,value:Ee,onSelect:W?()=>g(W.id):void 0,ariaLabel:W?`Open Taskset ${W.name}`:void 0}]}),(0,j.jsx)(a,{recovery:F}),I?(0,j.jsx)(o,{continuation:{sourceJobId:I.sourceArtifact.jobId,checkpointId:I.sourceArtifact.checkpointId}}):null,b&&b.runId===(N?.id??P?.id)?(0,j.jsx)(`p`,{role:`status`,children:b.message}):null,(0,j.jsxs)(`section`,{className:`labs-run-detail-tabs`,children:[(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Run details`,children:Re.map(e=>(0,j.jsx)(`button`,{"aria-controls":`run-detail-panel-${e.id}`,"aria-selected":Z===e.id,className:Z===e.id?`active`:void 0,id:`run-detail-tab-${e.id}`,role:`tab`,type:`button`,onClick:()=>n(e.id),children:e.label},e.id))}),(0,j.jsxs)(`div`,{"aria-labelledby":`run-detail-tab-${Z}`,className:`labs-run-detail-tab-panel`,id:`run-detail-panel-${Z}`,role:`tabpanel`,children:[Z===Le.id?(0,j.jsx)(Te,{baseModel:Ge(U,V),compute:N?m(N.destinationId??``):U?m(U.destinationId):P?m(P.destinationId):`Not recorded`,duration:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`,failure:P?.error??N?.failure??null,configuration:[...I?[{label:`Starting checkpoint`,value:[L?`Version ${L.number}`:null,I.sourceArtifact.checkpointId].filter(Boolean).join(` · `)},{label:`Parent run`,value:I.sourceArtifact.jobId},{label:`Parent artifact`,value:I.sourceArtifact.artifactId},{label:`Optimizer`,value:I.optimizerMode===`reset`?`Reset`:`Continue`}]:fe(y,ge),...de(U)],evidence:K,method:u(De),output:B?`Version ${B.number}`:`No version created`,reward:N?.reward?.raw??K?.reward.finalMean??null,status:N?f(N.status):P?f(P.status):`Imported`,statusValue:N?.status??P?.status??`imported`,taskset:Ee,telemetry:N?.receipt?.schemaVersion===`openpond.modelRunReceipt.v1`?N.receipt.telemetry:null,title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,versionStatus:B?B.current?`Active`:`Available`:null,onOpenTaskset:W?()=>g(W.id):void 0,showHeader:!1}):null,Z===`metrics`&&P?(0,j.jsx)(S,{detail:G.detail,error:G.error,loading:G.loading,taskset:W}):null,Z===`artifacts`?(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)($,{label:`Training attempt`,value:P?.id??`Provider import`}),(0,j.jsx)($,{label:`Taskset`,value:Ee}),(0,j.jsx)($,{label:`Prepared data`,value:P?.bundleHash??`Provider managed`}),(0,j.jsx)($,{label:`Version ID`,value:B?.lineage.id??`No version created`}),K?.checkpoint?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)($,{label:`Checkpoint`,value:K.checkpoint.id}),(0,j.jsx)($,{label:`Checkpoint size`,value:K.checkpoint.sizeBytes==null?`Not reported`:je(K.checkpoint.sizeBytes)}),(0,j.jsx)($,{label:`Checkpoint hash`,value:K.checkpoint.sha256??`Not reported`})]}):null,K?.canonicalPublication.state?(0,j.jsx)($,{label:`Registry publication`,value:Ye(K.canonicalPublication.state)}):null]}):null,Z===`evaluation`?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[!K?.evaluations.length||G.detail?.evaluation?(0,j.jsx)(_e,{detail:G.detail,loading:G.loading,pending:J}):null,!G.detail?.evaluation&&K?.evaluations.length?(0,j.jsx)(`dl`,{className:`labs-inline-facts`,children:K.evaluations.map(e=>(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline score`:`Candidate score`,value:e.score==null?`Not reported`:e.score.toFixed(6)}),(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline coverage`:`Candidate coverage`,value:e.taskCount==null?`Not reported`:e.targetTaskCount==null?`${e.taskCount} ${e.taskCount===1?`task`:`tasks`} scored`:`${e.taskCount} of ${e.targetTaskCount} ${e.targetTaskCount===1?`task`:`tasks`} scored`})]},`${e.kind}:${e.policyVersion}`))}):null,B&&P?.destinationId===`openpond_managed`?(0,j.jsx)(Se,{connection:e,lineageId:B.lineage.id,onSaved:h.refresh},B.lineage.id):null,!B&&P?.metadata.source===`hosted_model_project_import`&&P.status===`succeeded`?(0,j.jsx)(Se,{connection:e,jobId:P.id,onSaved:h.refresh},`candidate:${P.id}`):null,P&&K?.evaluations.length?(0,j.jsx)(Ce,{connection:e,jobId:P.id,evaluations:K.evaluations},P.id):null,H?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>void h.actions.downloadArtifact(H),children:`Download evaluation receipt`}):null]}):null,Z===`rollouts`?Oe.length?(0,j.jsx)(he,{receipts:Oe}):(0,j.jsx)(me,{events:G.detail?.events??[]}):null,Z===`activity`&&P?(0,j.jsx)(Me,{error:P.error??G.error,events:G.detail?.events??[],loading:G.loading,pending:J}):null]})]})]})}function He(e,t){let n=Math.max(0,Math.floor(e));if(t===null||!Number.isFinite(t)||t<=0)return{value:n.toLocaleString(),hint:n===1?`completed update`:`completed updates`};let r=Math.max(1,Math.floor(t));return{value:`${n.toLocaleString()} / ${r.toLocaleString()}`,hint:`completed / planned`}}function Ue(e){let t=e?.rolloutProgress;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return[`groupsCompleted`,`groupsTarget`,`optimizerUpdatesApplied`,`optimizerUpdatesSkipped`].some(e=>typeof n[e]!=`number`||!Number.isInteger(n[e])||n[e]<0)?null:{groupsCompleted:n.groupsCompleted,groupsTarget:n.groupsTarget,optimizerUpdatesApplied:n.optimizerUpdatesApplied,optimizerUpdatesSkipped:n.optimizerUpdatesSkipped}}function We({run:e,runNumber:t,tasksetName:n,onOpenTaskset:r,onOpenConversation:i}){let[a,o]=(0,A.useState)(`results`),s=e.receipt?.schemaVersion===`openpond.modelEvaluationReceipt.v1`?e.receipt:null,c=e.receipt?.schemaVersion===`openpond.modelEvaluationStopReceipt.v1`?e.receipt:null,l=s?E(s):null,u=s?O(s):null;return(0,j.jsxs)(`div`,{className:`labs-model-version-detail labs-model-evaluation-detail`,children:[(0,j.jsx)(ie,{title:t?`Eval ${t}`:`Evaluation run`,description:`Harness Refiner benchmark · ${n}`,status:(0,j.jsx)(C,{label:s?u?.comparedTaskCount?`${u.passedTaskCount}/${u.comparedTaskCount} passed`:`No paired result`:c?`Inconclusive`:f(e.status),value:s?u?.comparedTaskCount&&u.passed?`succeeded`:`neutral`:c?.terminalClassification??e.status}),metrics:[{label:`Baseline pass rate`,value:s?`${(s.quality.baselinePassRate*100).toFixed(1)}%`:`—`},{label:`Candidate pass rate`,value:s?`${(s.quality.candidatePassRate*100).toFixed(1)}%`:`—`},{label:`Scenarios`,value:s?.attempts?.length??0},{label:`Execution`,value:f(e.status)}]}),(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Evaluation details`,children:[`results`,`scenarios`,`activity`].map(e=>(0,j.jsx)(`button`,{className:a===e?`active`:void 0,"aria-selected":a===e,role:`tab`,type:`button`,onClick:()=>o(e),children:e===`results`?`Results`:e===`scenarios`?`Scenarios`:`Activity`},e))}),a===`results`&&s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ue,{series:[{id:`baseline`,label:`Held-out baseline`,inputTokens:l.baseline.inputTokens,outputTokens:l.baseline.outputTokens,tokens:l.baseline.totalTokens,passRate:s.quality.baselinePassRate,costUsd:l.baseline.costUsd},{id:`candidate`,label:`Held-out refined`,inputTokens:l.candidate.inputTokens,outputTokens:l.candidate.outputTokens,tokens:l.candidate.totalTokens,passRate:s.quality.candidatePassRate,costUsd:l.candidate.costUsd}]}),(0,j.jsx)(ue,{series:[{id:`adaptation-baseline`,label:`Adaptation baseline`,inputTokens:l.adaptation.inputTokens,outputTokens:l.adaptation.outputTokens,tokens:l.adaptation.totalTokens,passRate:s.quality.adaptationBaselinePassRate,costUsd:l.adaptation.costUsd},{id:`adaptation-candidate`,label:`Adaptation replay`,inputTokens:l.candidate_adaptation.inputTokens,outputTokens:l.candidate_adaptation.outputTokens,tokens:l.candidate_adaptation.totalTokens,passRate:s.quality.adaptationCandidatePassRate,costUsd:l.candidate_adaptation.costUsd}]}),(0,j.jsx)(ke,{receipt:s,run:e,tasksetName:n,onOpenTaskset:r})]}):a===`results`&&c?(0,j.jsx)(G,{receipt:c,onOpenConversation:i}):a===`results`?(0,j.jsx)(`section`,{className:`labs-run-summary-card`,children:e.failure?(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.failure}):(0,j.jsx)(Oe,{run:e})}):null,a===`scenarios`&&s?(0,j.jsxs)(j.Fragment,{children:[(s.attempts??[]).length?(0,j.jsx)(K,{receipt:s}):null,(s.attempts??[]).length?(0,j.jsx)(J,{receipt:s,onOpenConversation:i}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No per-scenario attempts were retained.`})]}):null,a===`activity`?(0,j.jsxs)(`dl`,{className:`labs-inline-facts`,children:[(0,j.jsx)($,{label:`Run ID`,value:e.id}),(0,j.jsx)($,{label:`Status`,value:f(e.status)}),(0,j.jsx)($,{label:`Started`,value:e.startedAt?d(e.startedAt):`Not started`}),(0,j.jsx)($,{label:`Completed`,value:e.completedAt?d(e.completedAt):`In progress`})]}):null]})}function Ge(e,t=null){if(!e)return t?qe(t):`Not recorded`;let n=e.recipe.method===`sft`||e.recipe.method===`grpo`?e.recipe.baseModel:e.recipe.method===`dpo`?e.recipe.policyModel:e.recipe.method===`ppo`?e.recipe.policyOptimization.policyModel:null;return n?qe(n.id):`Not recorded`}function Ke(e){let t=e?.trainingMethod;return t===`sft`||t===`dpo`||t===`grpo`||t===`ppo`||t===`sdft`||t===`opd`||t===`opsd`||t===`sdpo`?t:null}function qe(e){return e.split(`/`).at(-1)??e}function Je(e){return e===null?`Not reported`:e.toFixed(4)}function $({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function Ye(e){return e?e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase()):`Pending`}export{Ve as LabModelVersionDetailPage,Ie as eventSummary,He as formatTrainingProgress,Ue as managedRolloutProgress};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D9WbJMSq.js";import"./icons-D7jkCa2d.js";import{L as r,R as i}from"./training-model-data-DB-jg6L_.js";import{t as a}from"./image-B-PjDSwU.js";import{t as o}from"./loader-circle-CPaJeTDy.js";import{t as s}from"./maximize-2-BZX38cpr.js";import{t as c}from"./x-Dqpel42h.js";import{Bt as l,an as u,bn as d}from"./App-DY2R8Z6r.js";var f=e(t(),1),p=n();function m({connection:e,expanded:t,selection:n,onClose:i,onResizeStart:u,onToggleExpanded:m}){let v=`${n.scope}:${n.name}`,[y,b]=(0,f.useState)({selectionKey:v,path:n.files[0]??`SKILL.md`}),x=y.selectionKey===v&&n.files.includes(y.path)?y.path:n.files[0]??`SKILL.md`,[S,C]=(0,f.useState)(null),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(!1);(0,f.useEffect)(()=>{if(!e){C(null),T(`Connect to the local OpenPond server to load this skill source.`);return}let t=!1;return D(!0),T(null),C(null),d.skillSourceFile(e,n.scope,n.name,x).then(e=>{t||C(e)}).catch(e=>{t||T(e instanceof Error?e.message:String(e))}).finally(()=>{t||D(!1)}),()=>{t=!0}},[e,x,n.name,n.scope]);let O=x.split(`/`).at(-1)??x;return(0,p.jsxs)(`aside`,{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${t?`expanded`:``}`,"aria-label":`Skill package source: ${n.name}`,children:[t?null:(0,p.jsx)(`div`,{className:`workspace-diff-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize skill source`,onPointerDown:u}),(0,p.jsxs)(`div`,{className:`workspace-diff-topbar native-skill-sidebar-topbar`,children:[(0,p.jsx)(`div`,{className:`workspace-diff-tabs`,role:`tablist`,"aria-label":`Selected skill file`,children:(0,p.jsxs)(`button`,{className:`workspace-diff-tab active`,type:`button`,role:`tab`,"aria-selected":!0,children:[(0,p.jsx)(g,{path:x}),(0,p.jsx)(`span`,{children:O})]})}),(0,p.jsxs)(`div`,{className:`workspace-diff-toolbar-actions`,children:[(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:t?`Dock sidebar`:`Expand sidebar`,"aria-label":t?`Dock sidebar`:`Expand sidebar`,onClick:m,children:t?(0,p.jsx)(r,{size:14}):(0,p.jsx)(s,{size:14})}),(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:`Close skill source`,"aria-label":`Close skill source`,onClick:i,children:(0,p.jsx)(c,{size:14})})]})]}),(0,p.jsxs)(`div`,{className:`lab-skill-source-layout`,children:[(0,p.jsxs)(`nav`,{className:`lab-skill-file-list`,"aria-label":`${n.name} package files`,children:[(0,p.jsx)(`div`,{className:`lab-skill-file-list-heading`,children:`Package files`}),n.files.map(e=>(0,p.jsxs)(`button`,{"aria-current":e===x?`page`:void 0,className:e===x?`active`:void 0,type:`button`,title:e,onClick:()=>b({selectionKey:v,path:e}),children:[(0,p.jsx)(g,{path:e}),(0,p.jsx)(`span`,{children:e})]},e))]}),(0,p.jsxs)(`div`,{className:`native-skill-sidebar-body lab-skill-source-body`,children:[(0,p.jsxs)(`header`,{className:`native-skill-source-header`,children:[(0,p.jsxs)(`div`,{className:`lab-skill-source-title-row`,children:[(0,p.jsx)(`h2`,{children:n.name}),(0,p.jsx)(`span`,{children:h(n.scope)})]}),(0,p.jsx)(`p`,{children:n.description}),(0,p.jsx)(`code`,{children:n.packagePath})]}),E?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(o,{className:`spin`,size:16}),` Loading source…`]}):w?(0,p.jsx)(l,{error:w}):S?.isBinary?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(a,{size:18}),`Binary asset · `,_(S.byteSize)]}):(0,p.jsx)(`pre`,{className:`native-skill-markdown-source`,"aria-label":`${O} source`,children:(0,p.jsx)(`code`,{children:S?.content??``})})]})]})]})}function h(e){return e===`codex`?`Codex skill`:e===`extension`?`GitHub extension`:`OpenPond skill`}function g({path:e}){let t=e.split(`.`).at(-1)?.toLowerCase();return[`avif`,`gif`,`jpeg`,`jpg`,`png`,`webp`].includes(t??``)?(0,p.jsx)(a,{size:14}):[`md`,`txt`,`yaml`,`yml`].includes(t??``)?(0,p.jsx)(u,{size:14}):(0,p.jsx)(i,{size:14})}function _(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{m as LabSkillSidebar};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-CM0IRu1U.js";import"./icons-c3vt7y6n.js";import{L as r,R as i}from"./training-model-data-wHvE7xL1.js";import{t as a}from"./image-CqKPwnBn.js";import{t as o}from"./loader-circle-pxp89T5x.js";import{t as s}from"./maximize-2-yMp8X9ts.js";import{t as c}from"./x-D9GTV9ke.js";import{Bt as l,an as u,bn as d}from"./App-BZuSv1XM.js";var f=e(t(),1),p=n();function m({connection:e,expanded:t,selection:n,onClose:i,onResizeStart:u,onToggleExpanded:m}){let v=`${n.scope}:${n.name}`,[y,b]=(0,f.useState)({selectionKey:v,path:n.files[0]??`SKILL.md`}),x=y.selectionKey===v&&n.files.includes(y.path)?y.path:n.files[0]??`SKILL.md`,[S,C]=(0,f.useState)(null),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(!1);(0,f.useEffect)(()=>{if(!e){C(null),T(`Connect to the local OpenPond server to load this skill source.`);return}let t=!1;return D(!0),T(null),C(null),d.skillSourceFile(e,n.scope,n.name,x).then(e=>{t||C(e)}).catch(e=>{t||T(e instanceof Error?e.message:String(e))}).finally(()=>{t||D(!1)}),()=>{t=!0}},[e,x,n.name,n.scope]);let O=x.split(`/`).at(-1)??x;return(0,p.jsxs)(`aside`,{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${t?`expanded`:``}`,"aria-label":`Skill package source: ${n.name}`,children:[t?null:(0,p.jsx)(`div`,{className:`workspace-diff-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize skill source`,onPointerDown:u}),(0,p.jsxs)(`div`,{className:`workspace-diff-topbar native-skill-sidebar-topbar`,children:[(0,p.jsx)(`div`,{className:`workspace-diff-tabs`,role:`tablist`,"aria-label":`Selected skill file`,children:(0,p.jsxs)(`button`,{className:`workspace-diff-tab active`,type:`button`,role:`tab`,"aria-selected":!0,children:[(0,p.jsx)(g,{path:x}),(0,p.jsx)(`span`,{children:O})]})}),(0,p.jsxs)(`div`,{className:`workspace-diff-toolbar-actions`,children:[(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:t?`Dock sidebar`:`Expand sidebar`,"aria-label":t?`Dock sidebar`:`Expand sidebar`,onClick:m,children:t?(0,p.jsx)(r,{size:14}):(0,p.jsx)(s,{size:14})}),(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:`Close skill source`,"aria-label":`Close skill source`,onClick:i,children:(0,p.jsx)(c,{size:14})})]})]}),(0,p.jsxs)(`div`,{className:`lab-skill-source-layout`,children:[(0,p.jsxs)(`nav`,{className:`lab-skill-file-list`,"aria-label":`${n.name} package files`,children:[(0,p.jsx)(`div`,{className:`lab-skill-file-list-heading`,children:`Package files`}),n.files.map(e=>(0,p.jsxs)(`button`,{"aria-current":e===x?`page`:void 0,className:e===x?`active`:void 0,type:`button`,title:e,onClick:()=>b({selectionKey:v,path:e}),children:[(0,p.jsx)(g,{path:e}),(0,p.jsx)(`span`,{children:e})]},e))]}),(0,p.jsxs)(`div`,{className:`native-skill-sidebar-body lab-skill-source-body`,children:[(0,p.jsxs)(`header`,{className:`native-skill-source-header`,children:[(0,p.jsxs)(`div`,{className:`lab-skill-source-title-row`,children:[(0,p.jsx)(`h2`,{children:n.name}),(0,p.jsx)(`span`,{children:h(n.scope)})]}),(0,p.jsx)(`p`,{children:n.description}),(0,p.jsx)(`code`,{children:n.packagePath})]}),E?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(o,{className:`spin`,size:16}),` Loading source…`]}):w?(0,p.jsx)(l,{error:w}):S?.isBinary?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(a,{size:18}),`Binary asset · `,_(S.byteSize)]}):(0,p.jsx)(`pre`,{className:`native-skill-markdown-source`,"aria-label":`${O} source`,children:(0,p.jsx)(`code`,{children:S?.content??``})})]})]})]})}function h(e){return e===`codex`?`Codex skill`:e===`extension`?`GitHub extension`:`OpenPond skill`}function g({path:e}){let t=e.split(`.`).at(-1)?.toLowerCase();return[`avif`,`gif`,`jpeg`,`jpg`,`png`,`webp`].includes(t??``)?(0,p.jsx)(a,{size:14}):[`md`,`txt`,`yaml`,`yml`].includes(t??``)?(0,p.jsx)(u,{size:14}):(0,p.jsx)(i,{size:14})}function _(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{m as LabSkillSidebar};