openpond 0.2.66 → 0.2.67

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 (375) hide show
  1. package/dist/app-server.d.ts +23 -0
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{acp-YYZ3ZO3Q.js → acp-NASAJV5E.js} +1 -1
  4. package/dist/chunks/{acp-agent-T26S7TU2.js → acp-agent-C3CRF6DT.js} +1 -1
  5. package/dist/chunks/{actions-command-VLKMHCMI.js → actions-command-BYPLSGZL.js} +1 -1
  6. package/dist/chunks/{app-layer-5XUMNHDO.js → app-layer-XIEZ6ALX.js} +1 -1
  7. package/dist/chunks/{app-server-evaluations-V6LRWDUF.js → app-server-evaluations-5YZUFXQ2.js} +1 -1
  8. package/dist/chunks/{app-server-harness-services-6ZRLA3YD.js → app-server-harness-services-N5F5QVZI.js} +1 -1
  9. package/dist/chunks/{app-server-runtime-TH56EG2Z.js → app-server-runtime-HJ2N57DL.js} +1 -1
  10. package/dist/chunks/{apps-MNT3KXIY.js → apps-WJTW64NW.js} +1 -1
  11. package/dist/chunks/{chunk-ZWW227M3.js → chunk-263WS3TB.js} +1 -1
  12. package/dist/chunks/{chunk-HX6GXMDK.js → chunk-26ID6A5C.js} +1 -1
  13. package/dist/chunks/{chunk-DSJZS77R.js → chunk-2RSGVLZT.js} +4 -4
  14. package/dist/chunks/{chunk-L4EJ5R3B.js → chunk-2UZHLO2V.js} +1 -1
  15. package/dist/chunks/{chunk-QYQZQVVN.js → chunk-375PADDM.js} +1 -1
  16. package/dist/chunks/{chunk-FUFI4THX.js → chunk-43QYVOYA.js} +1 -1
  17. package/dist/chunks/{chunk-H5ML7735.js → chunk-46RMTR2Z.js} +1 -1
  18. package/dist/chunks/{chunk-Z2TOBS3P.js → chunk-4B7EGNYX.js} +1 -1
  19. package/dist/chunks/{chunk-2GJD23CM.js → chunk-4EZI4KCT.js} +1 -1
  20. package/dist/chunks/{chunk-DMO3UIS7.js → chunk-4JJ4RYIB.js} +1 -1
  21. package/dist/chunks/{chunk-JKI53ED7.js → chunk-4NN5OLKW.js} +2 -2
  22. package/dist/chunks/{chunk-66HFW4OU.js → chunk-4VZJQRQI.js} +1 -1
  23. package/dist/chunks/{chunk-7PKTCMZ6.js → chunk-543QHE3D.js} +1 -1
  24. package/dist/chunks/{chunk-TVDZXDQW.js → chunk-5QOFUGYQ.js} +1 -1
  25. package/dist/chunks/{chunk-6S2MWJVD.js → chunk-5TPYBXWM.js} +1 -1
  26. package/dist/chunks/{chunk-WLZJOCLA.js → chunk-5ZNE43XC.js} +1 -1
  27. package/dist/chunks/{chunk-KOKBDIGR.js → chunk-6HQUIKC5.js} +1 -1
  28. package/dist/chunks/{chunk-3BJ7LPE3.js → chunk-6IS5OLI5.js} +1 -1
  29. package/dist/chunks/{chunk-VS3AMJEK.js → chunk-6LFTQBXP.js} +1 -1
  30. package/dist/chunks/{chunk-VD2TQCMH.js → chunk-7HAGSE7L.js} +1 -1
  31. package/dist/chunks/{chunk-NTM3KQ25.js → chunk-ADOCQA4D.js} +1 -1
  32. package/dist/chunks/{chunk-4D3CICBG.js → chunk-ATFV2NA4.js} +1 -1
  33. package/dist/chunks/{chunk-YU4JYWCA.js → chunk-AXO6OHJB.js} +1 -1
  34. package/dist/chunks/{chunk-5KJMFK65.js → chunk-AXYAEWWA.js} +1 -1
  35. package/dist/chunks/{chunk-Q4AXZY2P.js → chunk-B2K5WQZE.js} +1 -1
  36. package/dist/chunks/{chunk-ANG2YMMD.js → chunk-B7XJBP4U.js} +1 -1
  37. package/dist/chunks/{chunk-BQVB2SPF.js → chunk-BBIA24GD.js} +6 -6
  38. package/dist/chunks/{chunk-CYQLXS2U.js → chunk-BUZ7CBJC.js} +1 -1
  39. package/dist/chunks/{chunk-MVPKU72J.js → chunk-CJDGLPNX.js} +1 -1
  40. package/dist/chunks/{chunk-ZU3YBRXS.js → chunk-CSU7RDA5.js} +1 -1
  41. package/dist/chunks/{chunk-JLW5BQVO.js → chunk-CWAQOFLP.js} +1 -1
  42. package/dist/chunks/{chunk-WKHGXLJD.js → chunk-CX7HKSQ4.js} +2 -2
  43. package/dist/chunks/{chunk-M5QPL5NO.js → chunk-D5OFN47Z.js} +1 -1
  44. package/dist/chunks/{chunk-QCJY6FTC.js → chunk-FCXDPVGJ.js} +1 -1
  45. package/dist/chunks/{chunk-FEQ7HNJR.js → chunk-FE2ENE3U.js} +1 -1
  46. package/dist/chunks/{chunk-6TRVEA3T.js → chunk-FVK4W27G.js} +1 -1
  47. package/dist/chunks/{chunk-7FBWUVX7.js → chunk-GC6RJBRZ.js} +1 -1
  48. package/dist/chunks/{chunk-5Z3AU5CL.js → chunk-H2XG5N7D.js} +1 -1
  49. package/dist/chunks/chunk-H6EUFJJK.js +2 -0
  50. package/dist/chunks/{chunk-V3S2B6WU.js → chunk-IDILAYCW.js} +1 -1
  51. package/dist/chunks/{chunk-PLVWARB7.js → chunk-IF5A3XWP.js} +1 -1
  52. package/dist/chunks/chunk-IHAEZ73V.js +2 -0
  53. package/dist/chunks/{chunk-GDJ4X2ZN.js → chunk-IR2Y2VQY.js} +1 -1
  54. package/dist/chunks/{chunk-WBO6FQHR.js → chunk-IXZ5ZGIL.js} +1 -1
  55. package/dist/chunks/{chunk-67HXM6AL.js → chunk-K3LS5SK7.js} +1 -1
  56. package/dist/chunks/{chunk-4MQHIFZL.js → chunk-K6DB5QWG.js} +1 -1
  57. package/dist/chunks/{chunk-QJJNHKLT.js → chunk-KQD36SBJ.js} +1 -1
  58. package/dist/chunks/{chunk-LXZLLTYQ.js → chunk-LI56PPCN.js} +1 -1
  59. package/dist/chunks/{chunk-KAWXVMHI.js → chunk-MX7KV5DA.js} +1 -1
  60. package/dist/chunks/{chunk-LARJARMS.js → chunk-N54CPLVD.js} +1 -1
  61. package/dist/chunks/{chunk-JRGECNP3.js → chunk-OE2OOWEQ.js} +1 -1
  62. package/dist/chunks/{chunk-B32CW3NT.js → chunk-OY4B7Y3T.js} +1 -1
  63. package/dist/chunks/chunk-OYIFH2OM.js +2 -0
  64. package/dist/chunks/{chunk-C5B3FMV3.js → chunk-P6NQYXN6.js} +1 -1
  65. package/dist/chunks/{chunk-D7R2AAX2.js → chunk-QFL2VQKX.js} +1 -1
  66. package/dist/chunks/{chunk-Y3B6ZUE6.js → chunk-QOUOU7FE.js} +1 -1
  67. package/dist/chunks/{chunk-GIU3Z45P.js → chunk-QQLS5FB7.js} +1 -1
  68. package/dist/chunks/chunk-R5GRESW3.js +2 -0
  69. package/dist/chunks/{chunk-6ZTP6CUJ.js → chunk-R6MMWEH4.js} +1 -1
  70. package/dist/chunks/{chunk-XHBMK6LC.js → chunk-R6VI7MX5.js} +1 -1
  71. package/dist/chunks/{chunk-GFAI2MCJ.js → chunk-RS526BG7.js} +1 -1
  72. package/dist/chunks/{chunk-EVQISX7M.js → chunk-RWRKUO5D.js} +1 -1
  73. package/dist/chunks/{chunk-DXA2UHBE.js → chunk-SD2XDZQW.js} +1 -1
  74. package/dist/chunks/{chunk-S6UCVXBC.js → chunk-SODAOLAP.js} +1 -1
  75. package/dist/chunks/{chunk-UK5LGSGT.js → chunk-SVNEPXU3.js} +1 -1
  76. package/dist/chunks/{chunk-5WPMI6QX.js → chunk-TERKCK4I.js} +1 -1
  77. package/dist/chunks/{chunk-OKEC2EIE.js → chunk-TS5HNRZB.js} +1 -1
  78. package/dist/chunks/{chunk-5KWKSR4P.js → chunk-TSQ2I6XV.js} +1 -1
  79. package/dist/chunks/{chunk-YRDPVTEI.js → chunk-TV2LE2BD.js} +1 -1
  80. package/dist/chunks/chunk-U3MVH2YT.js +2 -0
  81. package/dist/chunks/{chunk-FS2VKOT7.js → chunk-UBTP3QWI.js} +1 -1
  82. package/dist/chunks/{chunk-7XOUM6RK.js → chunk-UKSSFB4Q.js} +1 -1
  83. package/dist/chunks/{chunk-W7NXFRHN.js → chunk-UNE52L3Y.js} +1 -1
  84. package/dist/chunks/{chunk-ZUT4EM64.js → chunk-UXO33ST5.js} +1 -1
  85. package/dist/chunks/{chunk-FHLSLOKH.js → chunk-V3ILZQER.js} +1 -1
  86. package/dist/chunks/chunk-V3T2OJBZ.js +33 -0
  87. package/dist/chunks/{chunk-QAEZNFAM.js → chunk-V5AOM5MZ.js} +1 -1
  88. package/dist/chunks/{chunk-LI3FTPAH.js → chunk-VEXJV5H5.js} +1 -1
  89. package/dist/chunks/{chunk-AF3AVDPP.js → chunk-VPAEFG7X.js} +1 -1
  90. package/dist/chunks/{chunk-NABPZ7AK.js → chunk-W3ZILZUL.js} +1 -1
  91. package/dist/chunks/{chunk-U2BD545L.js → chunk-WD6ANOLL.js} +1 -1
  92. package/dist/chunks/{chunk-OTUS7NTQ.js → chunk-WDKZMXIU.js} +1 -1
  93. package/dist/chunks/chunk-WGISITX6.js +4 -0
  94. package/dist/chunks/{chunk-55Q64WWF.js → chunk-XD4ZIQZ2.js} +1 -1
  95. package/dist/chunks/{chunk-W22KWKF6.js → chunk-XDFXKRTI.js} +1 -1
  96. package/dist/chunks/{chunk-GRLQHYAU.js → chunk-XEU4J4GJ.js} +1 -1
  97. package/dist/chunks/{chunk-IEVJLG3V.js → chunk-XGJG2ZKE.js} +1 -1
  98. package/dist/chunks/chunk-XHU4BZQY.js +13 -0
  99. package/dist/chunks/{chunk-DIDQHTAX.js → chunk-XKZ4PFMQ.js} +1 -1
  100. package/dist/chunks/{chunk-B666Z2NS.js → chunk-XT5WUQGT.js} +1 -1
  101. package/dist/chunks/{chunk-UXPO3ZV7.js → chunk-YKTJPCYZ.js} +3 -3
  102. package/dist/chunks/{chunk-5AU5Y6KS.js → chunk-YMCF5GR2.js} +1 -1
  103. package/dist/chunks/{chunk-LYVHYT3L.js → chunk-YONDU5TN.js} +1 -1
  104. package/dist/chunks/{chunk-BTJACFU3.js → chunk-YQBL5P6R.js} +1 -1
  105. package/dist/chunks/{chunk-SAZTOGX6.js → chunk-YR5URT73.js} +1 -1
  106. package/dist/chunks/{chunk-OXRVILDW.js → chunk-ZVMQLIRA.js} +1 -1
  107. package/dist/chunks/{chunk-MHPCVQOE.js → chunk-ZWEY66RT.js} +1 -1
  108. package/dist/chunks/cli-HV32F7HD.js +2 -0
  109. package/dist/chunks/command-NWOZXU57.js +58 -0
  110. package/dist/chunks/{configuration-command-4WTS2MZS.js → configuration-command-ZEIBQKB3.js} +1 -1
  111. package/dist/chunks/{connected-app-executor-7DYMZCD7.js → connected-app-executor-DFHWNMRM.js} +1 -1
  112. package/dist/chunks/{connected-evidence-D7C45HYD.js → connected-evidence-WOM6N5HO.js} +1 -1
  113. package/dist/chunks/{connected-starting-assets-4LDXQVLN.js → connected-starting-assets-66Y46ZPM.js} +1 -1
  114. package/dist/chunks/{continual-HQCFY7GN.js → continual-TNPTWTKK.js} +1 -1
  115. package/dist/chunks/{core-commands-RXPXOYOP.js → core-commands-GWRHH53F.js} +1 -1
  116. package/dist/chunks/{dataset-preparation-authoring-KWRTMKN6.js → dataset-preparation-authoring-WJ2XEUO7.js} +1 -1
  117. package/dist/chunks/{datasets-LBLEKLCS.js → datasets-XIMF54QN.js} +1 -1
  118. package/dist/chunks/{desktop-test-INJPZ5VP.js → desktop-test-HF42V2EP.js} +1 -1
  119. package/dist/chunks/dist-T6ES2TSM.js +2 -0
  120. package/dist/chunks/{evaluation-coordination-3ARLJAFH.js → evaluation-coordination-WZT6FDMS.js} +1 -1
  121. package/dist/chunks/{experiment-improvements-UB4C5CSP.js → experiment-improvements-H35VS6XZ.js} +1 -1
  122. package/dist/chunks/{experiments-AHHKFJD6.js → experiments-F54C32EE.js} +1 -1
  123. package/dist/chunks/{experiments-signal-MTR475QV.js → experiments-signal-ONIGTGYR.js} +1 -1
  124. package/dist/chunks/{help-JQA3YMCX.js → help-O53DTZGN.js} +1 -1
  125. package/dist/chunks/host-profile-evaluation-tools-LMCJ3MDJ.js +2 -0
  126. package/dist/chunks/{host-profile-external-dataset-YRKG2GL5.js → host-profile-external-dataset-4HOXANWK.js} +1 -1
  127. package/dist/chunks/{hosted-app-server-composition-GPXH3BOG.js → hosted-app-server-composition-Y64A2A2B.js} +1 -1
  128. package/dist/chunks/{hosted-experiment-improvement-NZTPZTDH.js → hosted-experiment-improvement-B2V2WIUI.js} +1 -1
  129. package/dist/chunks/hosted-harness-runtime-C7I4KSDK.js +2 -0
  130. package/dist/chunks/{hosted-profile-candidate-3CAT3XBI.js → hosted-profile-candidate-CXPVEEYQ.js} +1 -1
  131. package/dist/chunks/{hosted-profile-compiler-RXU626Q6.js → hosted-profile-compiler-FGCI2VRW.js} +1 -1
  132. package/dist/chunks/{hosted-profile-evaluation-control-CBDRKJ5J.js → hosted-profile-evaluation-control-INNUYMBD.js} +1 -1
  133. package/dist/chunks/{hosted-profile-evaluation-inspection-CHYKDYUQ.js → hosted-profile-evaluation-inspection-UPTBRYMS.js} +1 -1
  134. package/dist/chunks/{hosted-profile-evaluation-preparation-H5S7JZMD.js → hosted-profile-evaluation-preparation-TIQSVKLQ.js} +1 -1
  135. package/dist/chunks/{hosted-tasksets-AMGDDB2R.js → hosted-tasksets-7VMYOTIO.js} +1 -1
  136. package/dist/chunks/{human-review-DVHVJXBA.js → human-review-7XC77NQP.js} +1 -1
  137. package/dist/chunks/{import-CLWTKDG6.js → import-OBAKUJPM.js} +1 -1
  138. package/dist/chunks/javascript-isolate-process-source-YAT3GPW4.js +2 -0
  139. package/dist/chunks/javascript-verifier-worker-source-LGRP74W4.js +2 -0
  140. package/dist/chunks/learning-3XDGIYUL.js +2 -0
  141. package/dist/chunks/{learning-XTY5VOTK.js → learning-CRR6NRPN.js} +1 -1
  142. package/dist/chunks/{local-harness-improvement-runtime-XEA73RGS.js → local-harness-improvement-runtime-UIKQSAMM.js} +1 -1
  143. package/dist/chunks/{local-harness-taskset-review-SW35G4DM.js → local-harness-taskset-review-6KJN3EQL.js} +1 -1
  144. package/dist/chunks/{model-projects-GHWCKDON.js → model-projects-HP4DELCP.js} +1 -1
  145. package/dist/chunks/{opchat-LMKH3OWR.js → opchat-NWYWWIA7.js} +1 -1
  146. package/dist/chunks/{opchat-bounded-chat-PPOWO7H4.js → opchat-bounded-chat-ICURZM6R.js} +1 -1
  147. package/dist/chunks/{organizations-T6ZUSHNJ.js → organizations-7DBQGCCV.js} +1 -1
  148. package/dist/chunks/{profile-RIDNU2I5.js → profile-3WZJ65CT.js} +1 -1
  149. package/dist/chunks/{project-action-payload-2G57RL74.js → project-action-payload-7DRABTHY.js} +1 -1
  150. package/dist/chunks/{project-agent-GBMVDJY3.js → project-agent-AXJOWXRU.js} +1 -1
  151. package/dist/chunks/{published-experiment-source-D3C2AWQD.js → published-experiment-source-YBBPLNF2.js} +1 -1
  152. package/dist/chunks/{refiner-profile-service-PPGGNVOV.js → refiner-profile-service-ATEFPF5O.js} +1 -1
  153. package/dist/chunks/{runtime-VSOOPNYN.js → runtime-XP4DEGR3.js} +1 -1
  154. package/dist/chunks/{sandbox-command-L5VQ2T6C.js → sandbox-command-CF2PJCFX.js} +1 -1
  155. package/dist/chunks/{sandbox-template-NN3XQI7M.js → sandbox-template-YFMHEMUQ.js} +1 -1
  156. package/dist/chunks/{saved-work-LAVTNKPT.js → saved-work-3OAVRBH3.js} +1 -1
  157. package/dist/chunks/setup-RHIMFI2Y.js +2 -0
  158. package/dist/chunks/{src-662QOKNP.js → src-GQPWOPYA.js} +1 -1
  159. package/dist/chunks/{src-HJHIBDFX.js → src-V236S6MV.js} +112 -112
  160. package/dist/chunks/{standalone-experiment-turn-owner-KKYIGGPF.js → standalone-experiment-turn-owner-CDRMGLWW.js} +1 -1
  161. package/dist/chunks/{store-chat-resources-ZWDYMDJF.js → store-chat-resources-P4EKCLSY.js} +1 -1
  162. package/dist/chunks/{store-continual-support-reviews-7PDLGRWF.js → store-continual-support-reviews-VVRQO2JK.js} +1 -1
  163. package/dist/chunks/{store-conversation-serving-WRT4N7N2.js → store-conversation-serving-YFEZYQD3.js} +1 -1
  164. package/dist/chunks/{store-create-improve-G46KIUVT.js → store-create-improve-2XI36AET.js} +1 -1
  165. package/dist/chunks/{store-datasets-O67F75BL.js → store-datasets-UFY422NG.js} +1 -1
  166. package/dist/chunks/{store-evaluation-results-BEPR4LVD.js → store-evaluation-results-VBH4R2U7.js} +1 -1
  167. package/dist/chunks/{store-harness-workspaces-PJJQ74G6.js → store-harness-workspaces-SGUEYDO2.js} +1 -1
  168. package/dist/chunks/{store-human-review-HJ3D7ZFA.js → store-human-review-RFCVZ3HP.js} +1 -1
  169. package/dist/chunks/{store-learned-preference-migration-validation-EXNRDHCO.js → store-learned-preference-migration-validation-FNBGGZU6.js} +1 -1
  170. package/dist/chunks/{store-learning-6P6IS7GH.js → store-learning-BFOT4QVT.js} +1 -1
  171. package/dist/chunks/{store-learning-credentials-EGJ2WTZI.js → store-learning-credentials-DYTMWQTC.js} +1 -1
  172. package/dist/chunks/{store-local-experiments-CBJA56X2.js → store-local-experiments-XPXGYXNM.js} +1 -1
  173. package/dist/chunks/{store-model-batch-review-YIVD7T2T.js → store-model-batch-review-J2L5JQV2.js} +1 -1
  174. package/dist/chunks/{store-model-configuration-T6XJJDAB.js → store-model-configuration-NJFWSYSA.js} +1 -1
  175. package/dist/chunks/{store-model-project-preparation-WWU5CJTV.js → store-model-project-preparation-OCLIFKI2.js} +1 -1
  176. package/dist/chunks/{store-preference-comparison-XQFTLMGH.js → store-preference-comparison-MZAYONCK.js} +1 -1
  177. package/dist/chunks/{store-task-inbox-VVXZUJIO.js → store-task-inbox-3BREANOX.js} +1 -1
  178. package/dist/chunks/{store-task-inventory-MQX44AI6.js → store-task-inventory-5HRZCDUT.js} +1 -1
  179. package/dist/chunks/{store-taskset-drafts-G3WFVN4M.js → store-taskset-drafts-BNKUVHPA.js} +1 -1
  180. package/dist/chunks/{store-training-DUVIDYK5.js → store-training-S3FXWLT6.js} +1 -1
  181. package/dist/chunks/{store-training-jobs-HHFH3V5O.js → store-training-jobs-2LCXPA7G.js} +1 -1
  182. package/dist/chunks/{store-training-models-C7UUZDTO.js → store-training-models-7AMKS7ZW.js} +1 -1
  183. package/dist/chunks/{taskset-7FQCJ55X.js → taskset-PLKWRT4X.js} +1 -1
  184. package/dist/chunks/{taskset-packages-NRRPON7B.js → taskset-packages-SXBLYHSP.js} +1 -1
  185. package/dist/chunks/{taskset-packages-RW4SFGDU.js → taskset-packages-V5T4V7YN.js} +1 -1
  186. package/dist/chunks/{teams-bot-FXMCOCPP.js → teams-bot-VQXUA7U4.js} +1 -1
  187. package/dist/chunks/{tool-learning-O7QTTEDB.js → tool-learning-47XQKELE.js} +1 -1
  188. package/dist/chunks/{training-XFM3OOPN.js → training-7VQNCOGH.js} +1 -1
  189. package/dist/chunks/{training-XILDD5RG.js → training-VKLPNCMC.js} +1 -1
  190. package/dist/chunks/{training-hosted-6BX2IASC.js → training-hosted-NNE6BP6S.js} +1 -1
  191. package/dist/chunks/training-hosted-checkpoint-evaluation-2X7RSOLC.js +2 -0
  192. package/dist/chunks/{training-hosted-learning-YN5VD3PW.js → training-hosted-learning-WQ2IP5FP.js} +1 -1
  193. package/dist/chunks/training-hosted-report-T633TNJG.js +2 -0
  194. package/dist/chunks/training-hosted-serving-report-VZ4SMLMG.js +2 -0
  195. package/dist/chunks/training-hosted-workers-Y2PO5IOA.js +2 -0
  196. package/dist/chunks/{training-model-start-E5MP3URL.js → training-model-start-G7YDZ7ZG.js} +1 -1
  197. package/dist/cli.js +1 -1
  198. package/dist/index.js +1 -1
  199. package/dist/skills/manifest.json +1 -1
  200. package/dist/web/assets/App-DmEA-Lia.js +53 -0
  201. package/dist/web/assets/{AppDialog-DuSd0wk6.js → AppDialog-BvskhHE9.js} +1 -1
  202. package/dist/web/assets/AppTerminalPanel-ScQKJV4z.js +2 -0
  203. package/dist/web/assets/{AppToastContext-Dklk6CaG.js → AppToastContext-D2788RqX.js} +1 -1
  204. package/dist/web/assets/AppsView-B1uNg9IQ.js +1 -0
  205. package/dist/web/assets/{AppsView-DNHWzJb2.css → AppsView-D3vVesNd.css} +1 -1
  206. package/dist/web/assets/{AttachmentTypeIcon-DipNT6Tj.js → AttachmentTypeIcon-DVluUHuc.js} +1 -1
  207. package/dist/web/assets/{BrowserSidebar-BBaaanMS.js → BrowserSidebar-DfVQoJHn.js} +1 -1
  208. package/dist/web/assets/{CartesianChart-UU1sdoUO.js → CartesianChart-DdBZ69lI.js} +1 -1
  209. package/dist/web/assets/{ChatTimelineEntry-Ct59FKw1.js → ChatTimelineEntry-Bbc6HRks.js} +1 -1
  210. package/dist/web/assets/{CollaborationTabs-BWYRQ1PE.js → CollaborationTabs-ba6WupeJ.js} +1 -1
  211. package/dist/web/assets/{CommandMenu-B08F9x5g.js → CommandMenu-D7wTaEgl.js} +1 -1
  212. package/dist/web/assets/{CommunityView-BLTlSxyb.js → CommunityView-mO58f2B0.js} +1 -1
  213. package/dist/web/assets/{ComposerAttachments-srWBKvCv.js → ComposerAttachments-aO90qXYz.js} +1 -1
  214. package/dist/web/assets/{ComposerCreateImproveStrip-DqTpU5cO.js → ComposerCreateImproveStrip-BPUJBSyS.js} +1 -1
  215. package/dist/web/assets/{ConversationImportsSettings-2KC-KQvu.js → ConversationImportsSettings-Bo836wKJ.js} +1 -1
  216. package/dist/web/assets/{FilePagePreview-B-iUVPhh.js → FilePagePreview-C6wIp6uX.js} +2 -2
  217. package/dist/web/assets/{GetStartedView-5v0vBWXy.js → GetStartedView-CxMv8q-h.js} +1 -1
  218. package/dist/web/assets/{GettingStartedDialog-Bn4072K-.js → GettingStartedDialog-CEb0cS-o.js} +1 -1
  219. package/dist/web/assets/{HostedModelLearningReview-DWF6WPao.js → HostedModelLearningReview-BQIS7hkd.js} +1 -1
  220. package/dist/web/assets/HostedModelLearningSettings-BQ-YeFMT.js +1 -0
  221. package/dist/web/assets/{HtmlVisual-C2WsMj90.js → HtmlVisual-CCuUkYT8.js} +1 -1
  222. package/dist/web/assets/{LabModelVersionDetailPage-CQz29DwD.js → LabModelVersionDetailPage-BkHeVbAx.js} +1 -1
  223. package/dist/web/assets/{LabSkillSidebar-C50P74LI.js → LabSkillSidebar-CFROlATQ.js} +1 -1
  224. package/dist/web/assets/LabsRoute-YA9YckKj.js +101 -0
  225. package/dist/web/assets/MainChatThread-DpyPgGKW.js +2 -0
  226. package/dist/web/assets/{MainPane-Dje-hfUM.css → MainPane-BOWkynGB.css} +1 -1
  227. package/dist/web/assets/MainPane-WOeodByM.js +10 -0
  228. package/dist/web/assets/NativeSetupTerminal-fmG2c65K.js +2 -0
  229. package/dist/web/assets/{NativeSkillSidebar-Clv0IWyn.js → NativeSkillSidebar-MAJWS4mL.js} +1 -1
  230. package/dist/web/assets/{NewProjectDialog-Cw_F5Eaa.js → NewProjectDialog-MQiUBVx3.js} +1 -1
  231. package/dist/web/assets/{OutputsPage-Btyiie4B.js → OutputsPage-DpF-aRTu.js} +1 -1
  232. package/dist/web/assets/{PageChrome-BLLw_cEA.js → PageChrome-8gH2hyDb.js} +1 -1
  233. package/dist/web/assets/{ProjectsPage-BpSHWQgj.js → ProjectsPage-BQ98oGyu.js} +1 -1
  234. package/dist/web/assets/{RightChatPanelStack-xW5rKbp0.js → RightChatPanelStack-Bs7A4dLs.js} +1 -1
  235. package/dist/web/assets/RightSidebarHomePanel-C-D4kba2.js +1 -0
  236. package/dist/web/assets/{ScheduledWorkPage-WytWGQgw.js → ScheduledWorkPage-CGCqZz_H.js} +1 -1
  237. package/dist/web/assets/{SettingsView-BJq5zNkv.js → SettingsView-CqpMFLxy.js} +3 -3
  238. package/dist/web/assets/{TasksetDraftEditorPrimitives-BxFEWI9W.js → TasksetDraftEditorPrimitives-DJvIvzBb.js} +1 -1
  239. package/dist/web/assets/{TeamChatView-BisSMAXy.js → TeamChatView-DjmIaLO1.js} +1 -1
  240. package/dist/web/assets/{TerminalOverlay-C7OM2F0-.js → TerminalOverlay-D--M876l.js} +1 -1
  241. package/dist/web/assets/{TrainingCreationPanel-KH5GFacT.js → TrainingCreationPanel-DDUoHQHU.js} +1 -1
  242. package/dist/web/assets/{TrainingDraftPanel-DzOw13Md.js → TrainingDraftPanel-CwLXn3Z7.js} +1 -1
  243. package/dist/web/assets/{TrainingRunLineage-B2WBOchk.js → TrainingRunLineage-CtYe1KGX.js} +1 -1
  244. package/dist/web/assets/{UsageSettingsSection-nZHno_4P.js → UsageSettingsSection-CGwPregx.js} +1 -1
  245. package/dist/web/assets/WorkSidebarPanel-C6wWuo7U.js +1 -0
  246. package/dist/web/assets/{WorkspaceDiffPanel-CyTa8Cjs.js → WorkspaceDiffPanel-JDOUmrC-.js} +3 -3
  247. package/dist/web/assets/{WorkspaceEnvironmentMenu-CtZzxQ1e.js → WorkspaceEnvironmentMenu-sfL5LZeB.js} +1 -1
  248. package/dist/web/assets/{WorkspaceFileLocation-1U8DDj1J.js → WorkspaceFileLocation-D-ctFM4d.js} +1 -1
  249. package/dist/web/assets/{WorkspaceGitDialogs-BO1EUA3G.js → WorkspaceGitDialogs-CQ28j3R7.js} +1 -1
  250. package/dist/web/assets/{WorkspaceMonacoEditor-Rqq_sKW_.js → WorkspaceMonacoEditor-BrZs6-EW.js} +3 -3
  251. package/dist/web/assets/{WorkspacePdfPreview-zmmMp09R.js → WorkspacePdfPreview-CU6PSjjN.js} +2 -2
  252. package/dist/web/assets/{WorkspacePresentationPreview-DNbhGjkE.js → WorkspacePresentationPreview-IjXVXpIy.js} +1 -1
  253. package/dist/web/assets/{app-models-Cz3yxq4x.js → app-models-CKXrDTEU.js} +1 -1
  254. package/dist/web/assets/{bot-D-eTQib6.js → bot-Cd761lRF.js} +1 -1
  255. package/dist/web/assets/{browser-sidebar-links-ZyYiYBBd.js → browser-sidebar-links-D9v2cyJa.js} +1 -1
  256. package/dist/web/assets/chat-resources-BUDXdoG0.js +1 -0
  257. package/dist/web/assets/{chevron-down-75im8nFF.js → chevron-down-DEbd6Ek-.js} +1 -1
  258. package/dist/web/assets/chevron-right-DLYNg_Oq.js +1 -0
  259. package/dist/web/assets/{chevron-up-BD8jg0bQ.js → chevron-up-DFJJccDl.js} +1 -1
  260. package/dist/web/assets/chunk-GHPCQXG5-DKDBSd8H.js +9 -0
  261. package/dist/web/assets/chunk-GJRXJL6G-luaxRTYI.js +1 -0
  262. package/dist/web/assets/chunk-H3JZ3P5T-CzpTARDY.js +2 -0
  263. package/dist/web/assets/chunk-JDQVAG3R-C0-rh1aR.js +1 -0
  264. package/dist/web/assets/chunk-TLSP5JKG-BrrVo5rJ.js +1 -0
  265. package/dist/web/assets/chunk-XMVSQIK4-BBU7r_NH.js +1 -0
  266. package/dist/web/assets/client-BNjO4Xi8.js +1 -0
  267. package/dist/web/assets/{client-choice-storage-CXlWJW5g.js → client-choice-storage-DUWsS4X0.js} +1 -1
  268. package/dist/web/assets/{cloud-upload-4lP-5zmp.js → cloud-upload-CoM1FGeB.js} +1 -1
  269. package/dist/web/assets/{common-BMjyKlX-.js → common-CFsO2ppZ.js} +1 -1
  270. package/dist/web/assets/{copy-DRnATDDY.js → copy-BGOhV6Pk.js} +1 -1
  271. package/dist/web/assets/{create-pipeline-CyUZrbbO.js → create-pipeline-DRR0Qeec.js} +1 -1
  272. package/dist/web/assets/{createLucideIcon-CmkSm39S.js → createLucideIcon-Bv-_eGcE.js} +1 -1
  273. package/dist/web/assets/{cssMode-Cps-05f3.js → cssMode-SclUkqPt.js} +1 -1
  274. package/dist/web/assets/{external-link-D_nBEDFO.js → external-link-CVXsNeO3.js} +1 -1
  275. package/dist/web/assets/{folder-open-tD5Lle1M.js → folder-open-MnOmh19D.js} +1 -1
  276. package/dist/web/assets/{folder-plus-DlZ4hM48.js → folder-plus-BRddLBtO.js} +1 -1
  277. package/dist/web/assets/{git-commit-horizontal-g8KBhvfr.js → git-commit-horizontal-Bm4rkXug.js} +1 -1
  278. package/dist/web/assets/{htmlMode-Do72TyNy.js → htmlMode-X3mQtOeh.js} +1 -1
  279. package/dist/web/assets/icons-CZxmQtZs.js +1 -0
  280. package/dist/web/assets/{image-CUZMnZYi.js → image-BViGUAiq.js} +1 -1
  281. package/dist/web/assets/{index-D7igQSAg.js → index-LXNhSUEL.js} +2 -2
  282. package/dist/web/assets/{info-SmuBZiE5.js → info-DYPIbKKD.js} +1 -1
  283. package/dist/web/assets/intake-contracts-wCkD2ErR.js +1 -0
  284. package/dist/web/assets/{jsonMode-B2N7W15Y.js → jsonMode-BoKiIdHd.js} +1 -1
  285. package/dist/web/assets/loader-circle-JFgFNsP5.js +1 -0
  286. package/dist/web/assets/{lspLanguageFeatures-DPmyOFVA.js → lspLanguageFeatures-CO2mzpy1.js} +1 -1
  287. package/dist/web/assets/{maximize-2-B8HN3jsA.js → maximize-2-DXZCQO0b.js} +1 -1
  288. package/dist/web/assets/{message-square-CrDvzn66.js → message-square-cOCAL8J1.js} +1 -1
  289. package/dist/web/assets/{monaco.contribution-CRdTg0FH.js → monaco.contribution-C7CAQIKF.js} +2 -2
  290. package/dist/web/assets/{monaco.contribution-BfOxF9PJ.js → monaco.contribution-CVe3mWSY.js} +2 -2
  291. package/dist/web/assets/{monaco.contribution-DNONXznc.js → monaco.contribution-hrusiaZi.js} +2 -2
  292. package/dist/web/assets/{monaco.contribution-DqqJBDzF.js → monaco.contribution-wacA5FjV.js} +2 -2
  293. package/dist/web/assets/{monitor-CW-M_aaj.js → monitor-B35XSAvn.js} +1 -1
  294. package/dist/web/assets/{paperclip-DL449Io5.js → paperclip-CKgDxioG.js} +1 -1
  295. package/dist/web/assets/{pdf-BCq2Oosd.js → pdf-Ct3M2mVw.js} +1 -1
  296. package/dist/web/assets/play-DzqLr7fM.js +1 -0
  297. package/dist/web/assets/plus-Ddp1vXnw.js +1 -0
  298. package/dist/web/assets/{ponder-desktop-Dm7tOkKo.js → ponder-desktop-D-zB6X4L.js} +1 -1
  299. package/dist/web/assets/{presentation-CupIXaYv.js → presentation-B0S9v7ib.js} +1 -1
  300. package/dist/web/assets/{profile-ref-DSNkG6Ol.js → profile-ref-CCxrOCio.js} +1 -1
  301. package/dist/web/assets/{python-DuGMr666.js → python-C0-pUUAU.js} +1 -1
  302. package/dist/web/assets/{refresh-cw-CzVf5_oo.js → refresh-cw-D45mW-vs.js} +1 -1
  303. package/dist/web/assets/{requests-BCbaFiqV.js → requests-DjSt-duM.js} +1 -1
  304. package/dist/web/assets/{reward-checks-Bcq9ETCA.js → reward-checks-D139zwha.js} +2 -2
  305. package/dist/web/assets/{save-DatjrYPV.js → save-Gu4R_82E.js} +1 -1
  306. package/dist/web/assets/schemas-C9IwV7NS.js +64 -0
  307. package/dist/web/assets/{settings-D7C-Auyi.js → settings-DdonLCIN.js} +1 -1
  308. package/dist/web/assets/settings-lists-CFHFtO0D.js +5 -0
  309. package/dist/web/assets/square-Dqduqyyu.js +1 -0
  310. package/dist/web/assets/{square-terminal-Buj-s-fz.js → square-terminal-DS3zwi6X.js} +1 -1
  311. package/dist/web/assets/{submit-issue-command-wfngGS6Y.js → submit-issue-command-Gk3RKrY-.js} +1 -1
  312. package/dist/web/assets/{toggleHighContrast-cl0cw2QK.js → toggleHighContrast-BnYUBgZB.js} +1 -1
  313. package/dist/web/assets/training-QBuGBGJd.js +2 -0
  314. package/dist/web/assets/{training-model-data-CWnu1bz9.js → training-model-data-CxR3xpmK.js} +1 -1
  315. package/dist/web/assets/{tsMode-DLEc0PYL.js → tsMode-BVNyOY8h.js} +1 -1
  316. package/dist/web/assets/{upload-DaFVH6R1.js → upload-ABSJxuUM.js} +1 -1
  317. package/dist/web/assets/{useAccountSettings-ByxjI9BG.js → useAccountSettings-4_XfwJQi.js} +1 -1
  318. package/dist/web/assets/{useAgentInventory-Df64T07n.js → useAgentInventory-CVuamyT3.js} +1 -1
  319. package/dist/web/assets/{useLocalAgentSchedules-DNh_x9gQ.js → useLocalAgentSchedules-CmwN4ohy.js} +1 -1
  320. package/dist/web/assets/{useQuery-yUz7Ui8g.js → useQuery-CCjwL8VI.js} +1 -1
  321. package/dist/web/assets/{wifi-off-CtNwnIJc.js → wifi-off-DGJH7Pke.js} +1 -1
  322. package/dist/web/assets/{work-outputs-CK0nHe4g.js → work-outputs-CnbRtTLg.js} +1 -1
  323. package/dist/web/assets/{workers-CnqrOtic.js → workers-CjtQ2aBD.js} +1 -1
  324. package/dist/web/assets/x-B-_zJVOZ.js +1 -0
  325. package/dist/web/assets/{yaml-C9vtYV4w.js → yaml-N1KUjBZ8.js} +1 -1
  326. package/dist/web/index.html +1 -1
  327. package/docs/command-reference.md +7 -1
  328. package/package.json +1 -1
  329. package/dist/chunks/chunk-2ZNW6GUU.js +0 -2
  330. package/dist/chunks/chunk-3MVKXAH7.js +0 -2
  331. package/dist/chunks/chunk-G4E3WGLM.js +0 -13
  332. package/dist/chunks/chunk-I3NYYOSS.js +0 -2
  333. package/dist/chunks/chunk-JBFPTEVE.js +0 -2
  334. package/dist/chunks/chunk-OW3EOC5Q.js +0 -4
  335. package/dist/chunks/chunk-SBQ6KLXB.js +0 -33
  336. package/dist/chunks/chunk-YBKDEEEH.js +0 -2
  337. package/dist/chunks/cli-TE7RP5H7.js +0 -2
  338. package/dist/chunks/command-NW6BGKOM.js +0 -13
  339. package/dist/chunks/dist-J4KHAVO3.js +0 -2
  340. package/dist/chunks/host-profile-evaluation-tools-75EPCRSZ.js +0 -2
  341. package/dist/chunks/hosted-harness-runtime-3AJGEIFD.js +0 -2
  342. package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +0 -2
  343. package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +0 -2
  344. package/dist/chunks/learning-NJLTGZFQ.js +0 -2
  345. package/dist/chunks/setup-TXEM2QSG.js +0 -2
  346. package/dist/chunks/training-hosted-checkpoint-evaluation-UXFW33QL.js +0 -2
  347. package/dist/chunks/training-hosted-report-UVGTPDOK.js +0 -2
  348. package/dist/chunks/training-hosted-serving-report-J4YOZLRP.js +0 -2
  349. package/dist/chunks/training-hosted-workers-6JTDCCWA.js +0 -2
  350. package/dist/web/assets/App-CNQi3RlI.js +0 -53
  351. package/dist/web/assets/AppTerminalPanel-DLz34eSs.js +0 -2
  352. package/dist/web/assets/AppsView-DkCMr67-.js +0 -1
  353. package/dist/web/assets/HostedModelLearningSettings-BYl-2j7B.js +0 -1
  354. package/dist/web/assets/LabsRoute-DJRgF1kQ.js +0 -101
  355. package/dist/web/assets/MainChatThread-gwmhe1Nw.js +0 -2
  356. package/dist/web/assets/MainPane-CqtgV9rU.js +0 -10
  357. package/dist/web/assets/NativeSetupTerminal-DrQldDsG.js +0 -2
  358. package/dist/web/assets/RightSidebarHomePanel-BDmIxvIm.js +0 -1
  359. package/dist/web/assets/WorkSidebarPanel-D3Ub_jVj.js +0 -1
  360. package/dist/web/assets/chat-resources-CTN4f6KC.js +0 -1
  361. package/dist/web/assets/chevron-right-CpbCIUFo.js +0 -1
  362. package/dist/web/assets/chunk-GJRXJL6G-pJp1DyJd.js +0 -9
  363. package/dist/web/assets/chunk-H3JZ3P5T-B0SCoPw4.js +0 -2
  364. package/dist/web/assets/chunk-TLSP5JKG-DZmxtX-4.js +0 -1
  365. package/dist/web/assets/contracts-BLiqJxBv.js +0 -1
  366. package/dist/web/assets/icons-B8_Rkg-l.js +0 -1
  367. package/dist/web/assets/intake-contracts-BW0Y0C2R.js +0 -1
  368. package/dist/web/assets/loader-circle-D_KVxLLz.js +0 -1
  369. package/dist/web/assets/play-DYLqBrwg.js +0 -1
  370. package/dist/web/assets/plus-DXZIpQuY.js +0 -1
  371. package/dist/web/assets/schemas-lO3MoWQr.js +0 -64
  372. package/dist/web/assets/settings-lists-D2ol3uNK.js +0 -5
  373. package/dist/web/assets/square-BWB1nbZF.js +0 -1
  374. package/dist/web/assets/training-DCdoHJ0Y.js +0 -2
  375. package/dist/web/assets/x-Bhl-4Zlt.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D7igQSAg.js";import{t as r}from"./useQuery-yUz7Ui8g.js";import{o as i}from"./training-DCdoHJ0Y.js";import{a,i as o,l as s}from"./TrainingRunLineage-B2WBOchk.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-B8_Rkg-l.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-CWnu1bz9.js";import{t as h}from"./chevron-down-75im8nFF.js";import{t as g}from"./chevron-right-CpbCIUFo.js";import{t as _}from"./loader-circle-D_KVxLLz.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-CNQi3RlI.js";import{l as S}from"./MainPane-CqtgV9rU.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-DJRgF1kQ.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-LXNhSUEL.js";import{t as r}from"./useQuery-CCjwL8VI.js";import{o as i}from"./training-QBuGBGJd.js";import{a,i as o,l as s}from"./TrainingRunLineage-CtYe1KGX.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-CZxmQtZs.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-CxR3xpmK.js";import{t as h}from"./chevron-down-DEbd6Ek-.js";import{t as g}from"./chevron-right-DLYNg_Oq.js";import{t as _}from"./loader-circle-JFgFNsP5.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-DmEA-Lia.js";import{l as S}from"./MainPane-WOeodByM.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-YA9YckKj.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-D7igQSAg.js";import"./icons-B8_Rkg-l.js";import{L as r,R as i}from"./training-model-data-CWnu1bz9.js";import{t as a}from"./image-CUZMnZYi.js";import{t as o}from"./loader-circle-D_KVxLLz.js";import{t as s}from"./maximize-2-B8HN3jsA.js";import{t as c}from"./x-Bhl-4Zlt.js";import{Bt as l,an as u,bn as d}from"./App-CNQi3RlI.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-LXNhSUEL.js";import"./icons-CZxmQtZs.js";import{L as r,R as i}from"./training-model-data-CxR3xpmK.js";import{t as a}from"./image-BViGUAiq.js";import{t as o}from"./loader-circle-JFgFNsP5.js";import{t as s}from"./maximize-2-DXZCQO0b.js";import{t as c}from"./x-B-_zJVOZ.js";import{Bt as l,an as u,bn as d}from"./App-DmEA-Lia.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};