openpond 0.2.61 → 0.2.63

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 (549) hide show
  1. package/README.md +2 -0
  2. package/dist/app-server.d.ts +4713 -477
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/{acp-FUAWCKBH.js → acp-H3MJCPHX.js} +1 -1
  5. package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-DWA7272M.js} +1 -1
  6. package/dist/chunks/actions-command-IIYOO4LL.js +2 -0
  7. package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-K7H2WJ56.js} +1 -1
  8. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +2 -0
  9. package/dist/chunks/{app-server-evaluations-HAAYVEXB.js → app-server-evaluations-XGMGS67X.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-BHD6S5II.js +2 -0
  11. package/dist/chunks/app-server-runtime-LFIL6F7D.js +2 -0
  12. package/dist/chunks/apps-QKAHJGQ4.js +2 -0
  13. package/dist/chunks/chunk-25XXZS3E.js +2 -0
  14. package/dist/chunks/chunk-27JGS3KB.js +12 -0
  15. package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
  16. package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-2HAWOMZK.js} +1 -1
  17. package/dist/chunks/chunk-2LJCJOJ7.js +2 -0
  18. package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
  19. package/dist/chunks/{chunk-CN5OXQ7A.js → chunk-3YXYBYWK.js} +1 -1
  20. package/dist/chunks/{chunk-LHENAWLH.js → chunk-42V4NV2F.js} +1 -1
  21. package/dist/chunks/{chunk-DW3GJRY3.js → chunk-4FNCBA3Y.js} +1 -1
  22. package/dist/chunks/{chunk-TXBIZDXG.js → chunk-4L6DU6Z2.js} +1 -1
  23. package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
  24. package/dist/chunks/{chunk-MLTKB5G3.js → chunk-4SZ3HKHU.js} +1 -1
  25. package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
  26. package/dist/chunks/chunk-5EP2DZLJ.js +2 -0
  27. package/dist/chunks/chunk-5FU5RLML.js +2 -0
  28. package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-5MHYGMJG.js} +1 -1
  29. package/dist/chunks/chunk-6EBCS57F.js +2 -0
  30. package/dist/chunks/chunk-6RS4NAOY.js +2 -0
  31. package/dist/chunks/chunk-6XSSM4WT.js +3 -0
  32. package/dist/chunks/{chunk-NVHZRKXB.js → chunk-7HRLWPPZ.js} +1 -1
  33. package/dist/chunks/chunk-7O6Z3VOZ.js +2 -0
  34. package/dist/chunks/{chunk-BQUWZRWU.js → chunk-7WYL2IDD.js} +1 -1
  35. package/dist/chunks/chunk-7YLXGILH.js +2 -0
  36. package/dist/chunks/chunk-7ZLXFKRI.js +2 -0
  37. package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
  38. package/dist/chunks/{chunk-TTN63EAM.js → chunk-AH26AQN7.js} +1 -1
  39. package/dist/chunks/chunk-AHOBCBVZ.js +2 -0
  40. package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
  41. package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
  42. package/dist/chunks/chunk-B5R53U74.js +2 -0
  43. package/dist/chunks/chunk-BKEDG3A4.js +22 -0
  44. package/dist/chunks/{chunk-CO3OJFPU.js → chunk-BPZOABMC.js} +1 -1
  45. package/dist/chunks/{chunk-5VPU7OS7.js → chunk-BSPFY3Y5.js} +1 -1
  46. package/dist/chunks/{chunk-U4HZD2GM.js → chunk-BU27SLZP.js} +2 -2
  47. package/dist/chunks/chunk-C2AXMKK4.js +2 -0
  48. package/dist/chunks/{chunk-SIV5P6JO.js → chunk-C2LAEGOW.js} +2 -2
  49. package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-CZ5R4JXZ.js} +1 -1
  50. package/dist/chunks/{chunk-D4JZALZ4.js → chunk-DABBHWSF.js} +1 -1
  51. package/dist/chunks/{chunk-ROE24PN5.js → chunk-DLANLLKH.js} +1 -1
  52. package/dist/chunks/{chunk-57RY3LSR.js → chunk-DQI5TE6A.js} +2 -2
  53. package/dist/chunks/chunk-DTTFUANI.js +12 -0
  54. package/dist/chunks/{chunk-VBW2X42G.js → chunk-DUL6DXOI.js} +1 -1
  55. package/dist/chunks/{chunk-OQUKSRU3.js → chunk-ELX7VRSU.js} +1 -1
  56. package/dist/chunks/chunk-ERL2M773.js +3 -0
  57. package/dist/chunks/chunk-ERT32RZA.js +86 -0
  58. package/dist/chunks/{chunk-RPOD6I64.js → chunk-EZRUWIP6.js} +1 -1
  59. package/dist/chunks/{chunk-MCIIGQT7.js → chunk-F6UQ6PPK.js} +1 -1
  60. package/dist/chunks/chunk-F7QTIHXX.js +2 -0
  61. package/dist/chunks/chunk-FAKDGLZQ.js +8 -0
  62. package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FVRII5XO.js} +1 -1
  63. package/dist/chunks/{chunk-GEXKTGLY.js → chunk-FYYYECHE.js} +50 -48
  64. package/dist/chunks/chunk-G32BO6M5.js +4 -0
  65. package/dist/chunks/{chunk-TSAW2QVU.js → chunk-G6OR5NB6.js} +1 -1
  66. package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GGJUWIGR.js} +1 -1
  67. package/dist/chunks/{chunk-Q66LWQGF.js → chunk-GPL2Z65R.js} +1 -1
  68. package/dist/chunks/{chunk-LNRFRAV5.js → chunk-GS6ZUSIN.js} +2 -2
  69. package/dist/chunks/{chunk-OFVUN4KI.js → chunk-GVARQXYI.js} +1 -1
  70. package/dist/chunks/chunk-GXCUH2VV.js +17 -0
  71. package/dist/chunks/{chunk-IUGK6BBY.js → chunk-GXZCMO6S.js} +1 -1
  72. package/dist/chunks/{chunk-CLFYRN46.js → chunk-H6C4MAUN.js} +1 -1
  73. package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
  74. package/dist/chunks/{chunk-I3W27VK4.js → chunk-HUCBKXTU.js} +1 -1
  75. package/dist/chunks/{chunk-P4XM7LUT.js → chunk-IHB5GTOJ.js} +2 -2
  76. package/dist/chunks/{chunk-U447MS3Y.js → chunk-IWWXIUAQ.js} +1 -1
  77. package/dist/chunks/chunk-J572ANHX.js +13 -0
  78. package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-J7ZTPXRQ.js} +1 -1
  79. package/dist/chunks/chunk-JCLTFDVW.js +2 -0
  80. package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
  81. package/dist/chunks/{chunk-ELYRVTTG.js → chunk-JORRZ4BB.js} +1 -1
  82. package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
  83. package/dist/chunks/chunk-JSQRLLN6.js +2 -0
  84. package/dist/chunks/chunk-KCOTDUGW.js +2 -0
  85. package/dist/chunks/{chunk-NK4JKB7C.js → chunk-KHTAAVC2.js} +1 -1
  86. package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
  87. package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
  88. package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LK2K3SPM.js} +2 -2
  89. package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-LKKMLBOH.js} +1 -1
  90. package/dist/chunks/{chunk-BNZTJPK7.js → chunk-LSZJ5M3X.js} +1 -1
  91. package/dist/chunks/chunk-M3FLEZ4E.js +4 -0
  92. package/dist/chunks/{chunk-4LZLO4OW.js → chunk-M3SCON53.js} +1 -1
  93. package/dist/chunks/{chunk-VPDG2V2R.js → chunk-MEGKXGW3.js} +1 -1
  94. package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
  95. package/dist/chunks/chunk-MPNJ2BB4.js +2 -0
  96. package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-N33D7KCW.js} +1 -1
  97. package/dist/chunks/chunk-N42HT64M.js +2 -0
  98. package/dist/chunks/{chunk-L3GA2CQI.js → chunk-N4VHLJBZ.js} +1 -1
  99. package/dist/chunks/chunk-NEJLJ2XY.js +2 -0
  100. package/dist/chunks/chunk-NG2L6D7G.js +2 -0
  101. package/dist/chunks/{chunk-7EAWLYYB.js → chunk-NLYZ5K7U.js} +2 -2
  102. package/dist/chunks/{chunk-B47JMAVW.js → chunk-NT7N6KLE.js} +1 -1
  103. package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
  104. package/dist/chunks/{chunk-PAZDQRYU.js → chunk-NZTCH6K5.js} +1 -1
  105. package/dist/chunks/{chunk-CQF6QZEL.js → chunk-OG33QAG6.js} +1 -1
  106. package/dist/chunks/chunk-OTUBJV6C.js +6 -0
  107. package/dist/chunks/{chunk-TMMFF6DO.js → chunk-PBTXLQAU.js} +1 -1
  108. package/dist/chunks/chunk-Q34IF4PW.js +2 -0
  109. package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-QJ6KUVAR.js} +1 -1
  110. package/dist/chunks/{chunk-SID4X3YN.js → chunk-QU4UE73E.js} +1 -1
  111. package/dist/chunks/{chunk-I7JCARVH.js → chunk-R6VJDOQM.js} +3 -3
  112. package/dist/chunks/{chunk-6RVF2J47.js → chunk-R6WMY6AH.js} +1 -1
  113. package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-RDSVU6F6.js} +1 -1
  114. package/dist/chunks/{chunk-R4PDSOB4.js → chunk-RFMME46Z.js} +1 -1
  115. package/dist/chunks/{chunk-GQUS7MCH.js → chunk-RZUCVF2Q.js} +1 -1
  116. package/dist/chunks/chunk-SFKZITAG.js +9 -0
  117. package/dist/chunks/{chunk-MF35MALN.js → chunk-SHJY5RLU.js} +1 -1
  118. package/dist/chunks/chunk-SI5W5LBV.js +2 -0
  119. package/dist/chunks/chunk-SO42ZB5K.js +2 -0
  120. package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
  121. package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
  122. package/dist/chunks/{chunk-ZISYLRH6.js → chunk-TCOTXCV6.js} +1 -1
  123. package/dist/chunks/{chunk-QCSLEMZF.js → chunk-U2K7QJCG.js} +1 -1
  124. package/dist/chunks/{chunk-ISIXFK6U.js → chunk-UH4JSSRL.js} +28 -28
  125. package/dist/chunks/chunk-UPWJSNL5.js +2 -0
  126. package/dist/chunks/chunk-URNMC46H.js +157 -0
  127. package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
  128. package/dist/chunks/{chunk-WFVOG5PU.js → chunk-V7KR74NO.js} +1 -1
  129. package/dist/chunks/{chunk-QDBYLJGH.js → chunk-VHXDWAEH.js} +1 -1
  130. package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-W2TICQ62.js} +1 -1
  131. package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
  132. package/dist/chunks/chunk-WP2L2NY2.js +2 -0
  133. package/dist/chunks/chunk-WSOUMXH3.js +24 -0
  134. package/dist/chunks/chunk-WWQNMC7C.js +6 -0
  135. package/dist/chunks/chunk-XMHIQ3SK.js +5 -0
  136. package/dist/chunks/{chunk-5MTN6KXV.js → chunk-XNOMIWEY.js} +1 -1
  137. package/dist/chunks/{chunk-T4LLJC5N.js → chunk-XOB6FKQV.js} +1 -1
  138. package/dist/chunks/chunk-Y766IN7Y.js +2 -0
  139. package/dist/chunks/chunk-YCZZ62C2.js +2 -0
  140. package/dist/chunks/chunk-YM4PSVFW.js +4 -0
  141. package/dist/chunks/chunk-YNQWJWIC.js +10 -0
  142. package/dist/chunks/{chunk-LBBXVOVR.js → chunk-Z3BWCFLV.js} +1 -1
  143. package/dist/chunks/{chunk-WRQEYW3V.js → chunk-ZG6353RM.js} +1 -1
  144. package/dist/chunks/{chunk-PE7UKJXK.js → chunk-ZPTKR3GB.js} +1 -1
  145. package/dist/chunks/{chunk-2VXL6AU3.js → chunk-ZYVHOVKL.js} +1 -1
  146. package/dist/chunks/chunk-ZZHXQCNB.js +22 -0
  147. package/dist/chunks/cli-PSXMIJTF.js +2 -0
  148. package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-XYKMXIWF.js} +1 -1
  149. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +2 -0
  150. package/dist/chunks/connected-evidence-IRXYN6YD.js +2 -0
  151. package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-JONPTII6.js} +1 -1
  152. package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
  153. package/dist/chunks/{continual-CJUZM5ZQ.js → continual-Z7MO2PF6.js} +1 -1
  154. package/dist/chunks/core-commands-WWN7X3XC.js +2 -0
  155. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +4 -0
  156. package/dist/chunks/datasets-2PC2HP7N.js +2 -0
  157. package/dist/chunks/desktop-test-VU6AFAMO.js +3 -0
  158. package/dist/chunks/dist-47AYOIH6.js +2 -0
  159. package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
  160. package/dist/chunks/{dist-DCSLPBO2.js → dist-MXBEBM4D.js} +1 -1
  161. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +2 -0
  162. package/dist/chunks/experiment-improvements-EB2CV5RA.js +2 -0
  163. package/dist/chunks/experiments-SZQYR6MH.js +2 -0
  164. package/dist/chunks/experiments-signal-2KJCP25D.js +2 -0
  165. package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
  166. package/dist/chunks/{help-M2VQGPVC.js → help-7HXFWIKS.js} +1 -1
  167. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +2 -0
  168. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +2 -0
  169. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +2 -0
  170. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +3 -0
  171. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +2 -0
  172. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +3 -0
  173. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +2 -0
  174. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +2 -0
  175. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +3 -0
  176. package/dist/chunks/{hosted-profile-evaluation-preparation-ZAOGDQXO.js → hosted-profile-evaluation-preparation-2LSMZQNA.js} +1 -1
  177. package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-WGXGXJ7E.js} +1 -1
  178. package/dist/chunks/human-review-M26UKGJL.js +2 -0
  179. package/dist/chunks/{import-WLLUIDS6.js → import-6SI4BEKS.js} +2 -2
  180. package/dist/chunks/learning-HM3NWOV5.js +2 -0
  181. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +2 -0
  182. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +2 -0
  183. package/dist/chunks/model-projects-YUAMBQTO.js +2 -0
  184. package/dist/chunks/opchat-AG4CWVY4.js +3 -0
  185. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +2 -0
  186. package/dist/chunks/organizations-KDKX77XZ.js +2 -0
  187. package/dist/chunks/{profile-JRS3JNRC.js → profile-O5HL5DTQ.js} +1 -1
  188. package/dist/chunks/project-action-payload-QA24HYGF.js +2 -0
  189. package/dist/chunks/project-agent-XBOOM5TS.js +2 -0
  190. package/dist/chunks/published-experiment-source-GZGN354O.js +2 -0
  191. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +2 -0
  192. package/dist/chunks/{runtime-CBJF5GMB.js → runtime-XBA744HJ.js} +2 -2
  193. package/dist/chunks/sandbox-command-5ECGS7DG.js +2 -0
  194. package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-27U3FQN7.js} +1 -1
  195. package/dist/chunks/saved-work-KUNVTJ7O.js +2 -0
  196. package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-FIPWOXWV.js} +1 -1
  197. package/dist/chunks/src-BLWX6DRG.js +424 -0
  198. package/dist/chunks/{src-4YZF6L6H.js → src-PU7QTFO5.js} +1 -1
  199. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +2 -0
  200. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +2 -0
  201. package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-FOMYYS25.js} +1 -1
  202. package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-K324SQTO.js} +1 -1
  203. package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-3LQMIYAP.js} +1 -1
  204. package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-3KSX7RSO.js} +1 -1
  205. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +7 -0
  206. package/dist/chunks/{store-harness-evaluation-review-settings-I2R3HPO3.js → store-harness-evaluation-review-settings-AAN7KKJ5.js} +1 -1
  207. package/dist/chunks/{store-harness-refinement-candidates-SUT45FQX.js → store-harness-refinement-candidates-3PHL3BUY.js} +1 -1
  208. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +2 -0
  209. package/dist/chunks/store-human-review-QJY3ZPPF.js +7 -0
  210. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +2 -0
  211. package/dist/chunks/{store-learning-MFS4DGQR.js → store-learning-DW3QLQXU.js} +1 -1
  212. package/dist/chunks/{store-learning-credentials-BECWEG2Y.js → store-learning-credentials-67QNTPA7.js} +1 -1
  213. package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-QTVHJAEP.js} +1 -1
  214. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +2 -0
  215. package/dist/chunks/store-model-configuration-3SU73CMS.js +3 -0
  216. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +2 -0
  217. package/dist/chunks/store-ponder-history-WDLMXBIJ.js +2 -0
  218. package/dist/chunks/store-ponder-hosted-DX6E2BVW.js +4 -0
  219. package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-DWV5XSMY.js} +1 -1
  220. package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-2KUY4T6M.js} +1 -1
  221. package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-A4XCS7RM.js} +1 -1
  222. package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-V2PKRXUZ.js} +1 -1
  223. package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-UGVEFA6M.js} +1 -1
  224. package/dist/chunks/store-task-inbox-QABI4ZAH.js +33 -0
  225. package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-GEQIZELY.js} +1 -1
  226. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +9 -0
  227. package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-CQV7PL3V.js} +1 -1
  228. package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-XKN6K66J.js} +18 -10
  229. package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-Q7DTTR4S.js} +1 -1
  230. package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-XGAX7NLB.js} +1 -1
  231. package/dist/chunks/{taskset-NYLUYX6K.js → taskset-ARKJQKYQ.js} +1 -1
  232. package/dist/chunks/taskset-packages-X4K65DTW.js +2 -0
  233. package/dist/chunks/taskset-packages-XK7FSD45.js +2 -0
  234. package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-UTQAJA6H.js} +1 -1
  235. package/dist/chunks/training-3IWW4256.js +2 -0
  236. package/dist/chunks/{training-UBX6E7SK.js → training-RVIESURJ.js} +1 -1
  237. package/dist/chunks/training-error-2EWDOQ4G.js +2 -0
  238. package/dist/chunks/training-hosted-PFJHYTEU.js +2 -0
  239. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +2 -0
  240. package/dist/chunks/training-hosted-feedback-5B2KJGOT.js +2 -0
  241. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +2 -0
  242. package/dist/chunks/training-hosted-report-UVGTPDOK.js +2 -0
  243. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
  244. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +2 -0
  245. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +2 -0
  246. package/dist/chunks/training-model-start-ROLS3E4V.js +2 -0
  247. package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
  248. package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-7FBUBZ66.js} +1 -1
  249. package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-G3CMY7ZA.js} +1 -1
  250. package/dist/cli.js +2 -2
  251. package/dist/hosted-chat.d.ts +28 -0
  252. package/dist/index.js +1 -1
  253. package/dist/sandbox/url.d.ts +3 -1
  254. package/dist/skills/LICENSE +21 -0
  255. package/dist/skills/manifest.json +168 -0
  256. package/dist/skills/openpond-agent-authoring/SKILL.md +9 -3
  257. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +1 -1
  258. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +2 -2
  259. package/dist/skills/openpond-cli/SKILL.md +24 -7
  260. package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
  261. package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
  262. package/dist/skills/openpond-cli/references/experiments-and-training.md +156 -11
  263. package/dist/skills/openpond-refiner-authoring/SKILL.md +4 -0
  264. package/dist/skills/openpond-skill-authoring/SKILL.md +5 -1
  265. package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
  266. package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
  267. package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
  268. package/dist/web/assets/App-DY2R8Z6r.js +53 -0
  269. package/dist/web/assets/App-DpFKLxuA.css +1 -0
  270. package/dist/web/assets/AppDialog-8Y0FYalT.js +1 -0
  271. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +2 -0
  272. package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-BiQbbVxq.js} +1 -1
  273. package/dist/web/assets/AppsView-Dtte4h6e.js +1 -0
  274. package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-DgADV7dn.js} +1 -1
  275. package/dist/web/assets/BrowserSidebar-BUqDvEv9.js +1 -0
  276. package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-J4ChOjvG.js} +1 -1
  277. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +8 -0
  278. package/dist/web/assets/ChatTimelineEntry-DztFb85D.css +1 -0
  279. package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-CFCpk2Ck.js} +1 -1
  280. package/dist/web/assets/CommandMenu-EPPjB14H.js +1 -0
  281. package/dist/web/assets/CommunityView-Okydjpqm.js +1 -0
  282. package/dist/web/assets/ComposerAttachments-RXCiE88M.js +2 -0
  283. package/dist/web/assets/ComposerCreateImproveStrip-CSngc8-V.js +1 -0
  284. package/dist/web/assets/ConversationImportsSettings-DS73kyfj.js +1 -0
  285. package/dist/web/assets/FilePagePreview-Qc4B0vue.js +2 -0
  286. package/dist/web/assets/GetStartedView-DGFPQ1We.js +1 -0
  287. package/dist/web/assets/GettingStartedDialog-DFBYQdHz.js +1 -0
  288. package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
  289. package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-BDu3FlcU.js} +1 -1
  290. package/dist/web/assets/HostedModelLearningSettings-CHaTHwC8.js +1 -0
  291. package/dist/web/assets/HtmlVisual-C7GlEVfH.css +1 -0
  292. package/dist/web/assets/HtmlVisual-D9Mh7xds.js +81 -0
  293. package/dist/web/assets/LabModelVersionDetailPage-DgY7lAu5.js +1 -0
  294. package/dist/web/assets/LabSkillSidebar-BwtlThO7.js +1 -0
  295. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +101 -0
  296. package/dist/web/assets/MainChatThread-pzHKd_YN.js +2 -0
  297. package/dist/web/assets/MainPane-6OlLiKKb.js +10 -0
  298. package/dist/web/assets/MainPane-Dje-hfUM.css +1 -0
  299. package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
  300. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +2 -0
  301. package/dist/web/assets/NativeSkillSidebar-BEJvt5_H.js +1 -0
  302. package/dist/web/assets/NewProjectDialog-CjrjgkTN.js +1 -0
  303. package/dist/web/assets/OutputsPage-jzx93QQ3.js +1 -0
  304. package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-C1M13qG2.js} +1 -1
  305. package/dist/web/assets/ProjectsPage-DZrjlMp2.js +1 -0
  306. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +1 -0
  307. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +1 -0
  308. package/dist/web/assets/ScheduledWorkPage-Cw1ja2GF.js +1 -0
  309. package/dist/web/assets/{SettingsView-Y8f98GSE.css → SettingsView-Cc0376pY.css} +1 -1
  310. package/dist/web/assets/SettingsView-CckoIki3.js +5 -0
  311. package/dist/web/assets/TasksetDraftEditorPrimitives-ByC8bDjp.js +1 -0
  312. package/dist/web/assets/TeamChatView-OprnSKLF.js +1 -0
  313. package/dist/web/assets/TerminalOverlay-d7A2F9Lx.js +16 -0
  314. package/dist/web/assets/TrainingCreationPanel-Cyn6R6I6.js +1 -0
  315. package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-Mpb5e7t5.js} +1 -1
  316. package/dist/web/assets/TrainingRunLineage-PXzWR65d.css +1 -0
  317. package/dist/web/assets/TrainingRunLineage-VcKz7dIR.js +1 -0
  318. package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-FhYymrfc.js} +2 -2
  319. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +1 -0
  320. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +11 -0
  321. package/dist/web/assets/WorkspaceEnvironmentMenu-C8y3537a.js +35 -0
  322. package/dist/web/assets/WorkspaceFileLocation-LrEWj4UK.js +1 -0
  323. package/dist/web/assets/WorkspaceGitDialogs-NRIMXnkS.js +1 -0
  324. package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-CvDGjKAL.js} +3 -3
  325. package/dist/web/assets/WorkspacePdfPreview-BZ0BbnHv.js +2 -0
  326. package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-DJrjrvT0.js} +1 -1
  327. package/dist/web/assets/app-models-CUA9XB9U.js +1 -0
  328. package/dist/web/assets/bot-6OhUEmkE.js +1 -0
  329. package/dist/web/assets/browser-sidebar-links-ZyYiYBBd.js +1 -0
  330. package/dist/web/assets/chat-resources-CI8KFVO5.js +1 -0
  331. package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-jmVA1BIf.js} +1 -1
  332. package/dist/web/assets/chevron-right-BYmDQ7ti.js +1 -0
  333. package/dist/web/assets/chevron-up-CstyLXH3.js +1 -0
  334. package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ONGOAEY6-C__DQmRT.js} +5 -5
  335. package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-SQBYHWZU-DumrB9SB.js} +1 -1
  336. package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-BdQ_YDuk.js} +1 -1
  337. package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-Ck1ufAr8.js} +1 -1
  338. package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
  339. package/dist/web/assets/contracts-BLiqJxBv.js +1 -0
  340. package/dist/web/assets/copy-CPkbMfXt.js +1 -0
  341. package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-CXQny8HU.js} +1 -1
  342. package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-CYxYl_om.js} +1 -1
  343. package/dist/web/assets/external-link-CDKOLG_v.js +1 -0
  344. package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-CEtOb_lK.js} +1 -1
  345. package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-CVMYZs3e.js} +1 -1
  346. package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-DDyhPjxS.js} +1 -1
  347. package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-DoY4V_j0.js} +1 -1
  348. package/dist/web/assets/icons-D7jkCa2d.js +1 -0
  349. package/dist/web/assets/{image-C7HVlg3X.js → image-B-PjDSwU.js} +1 -1
  350. package/dist/web/assets/{index-BsPUniZy.js → index-D9WbJMSq.js} +2 -2
  351. package/dist/web/assets/index-g7UqJhnX.css +1 -0
  352. package/dist/web/assets/{info-BLWDShaz.js → info-CCnw-K3b.js} +1 -1
  353. package/dist/web/assets/intake-contracts-BW0Y0C2R.js +1 -0
  354. package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-CeOpZdPj.js} +1 -1
  355. package/dist/web/assets/loader-circle-CPaJeTDy.js +1 -0
  356. package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-DAbgLCqZ.js} +1 -1
  357. package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-BZX38cpr.js} +1 -1
  358. package/dist/web/assets/message-square-CvgSecgD.js +1 -0
  359. package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-CF2JDhi4.js} +2 -2
  360. package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-cbDqt48m.js} +2 -2
  361. package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-m2ze2EsL.js} +2 -2
  362. package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-yeyow_-Q.js} +2 -2
  363. package/dist/web/assets/{monitor-B6OuAu13.js → monitor-By0s4hxb.js} +1 -1
  364. package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-BJ2QgJLa.js} +1 -1
  365. package/dist/web/assets/{pdf-RXlFwNte.js → pdf-C4x-1jjP.js} +1 -1
  366. package/dist/web/assets/pdf.worker.min-BrEVksTu.js +1 -0
  367. package/dist/web/assets/play-D_SuGDBM.js +1 -0
  368. package/dist/web/assets/plus-yw95Iaj8.js +1 -0
  369. package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-I86G1Gd9.js} +1 -1
  370. package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
  371. package/dist/web/assets/{python-BQXo7wMt.js → python-CqFTPj8r.js} +1 -1
  372. package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-Dga35Eay.js} +1 -1
  373. package/dist/web/assets/requests-BCbaFiqV.js +1 -0
  374. package/dist/web/assets/{reward-checks-5AOStF27.js → reward-checks-Bcq9ETCA.js} +1 -1
  375. package/dist/web/assets/{save-BxXc21N6.js → save-BLKjYtzR.js} +1 -1
  376. package/dist/web/assets/settings-D7C-Auyi.js +21 -0
  377. package/dist/web/assets/settings-lists-DMKA1lCN.js +5 -0
  378. package/dist/web/assets/square-BY5lG2Ol.js +1 -0
  379. package/dist/web/assets/square-terminal-B-n7vUex.js +1 -0
  380. package/dist/web/assets/submit-issue-command-B7Hrt2tU.js +3 -0
  381. package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-BhmBE5XE.js} +1 -1
  382. package/dist/web/assets/training-QrdkRQZQ.js +2 -0
  383. package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-DB-jg6L_.js} +12 -12
  384. package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-BSWEII2p.js} +1 -1
  385. package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
  386. package/dist/web/assets/{upload-NXasN1wU.js → upload-C4MPhQn8.js} +1 -1
  387. package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-9oqWdRLs.js} +1 -1
  388. package/dist/web/assets/useAgentInventory-isO79ui9.js +1 -0
  389. package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CZX6PxoK.js} +1 -1
  390. package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-BD0Uexmh.js} +1 -1
  391. package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-Cloe0WuQ.js} +1 -1
  392. package/dist/web/assets/{workers-u92Boudu.js → workers-BXagz5eg.js} +1 -1
  393. package/dist/web/assets/x-Dqpel42h.js +1 -0
  394. package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-sBdvVbCc.js} +1 -1
  395. package/dist/web/index.html +12 -3
  396. package/docs/command-reference.md +49 -5
  397. package/package.json +6 -2
  398. package/dist/chunks/actions-command-LOHNQUWP.js +0 -2
  399. package/dist/chunks/app-server-connected-apps-Q2VWWJNX.js +0 -2
  400. package/dist/chunks/app-server-harness-services-2PSZBT7U.js +0 -2
  401. package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
  402. package/dist/chunks/apps-7PIBF32Q.js +0 -2
  403. package/dist/chunks/chunk-3TYCIYW6.js +0 -17
  404. package/dist/chunks/chunk-4GZ2FPB5.js +0 -2
  405. package/dist/chunks/chunk-4M3YW3EQ.js +0 -13
  406. package/dist/chunks/chunk-4N3UF3U5.js +0 -2
  407. package/dist/chunks/chunk-4P3X2RXA.js +0 -2
  408. package/dist/chunks/chunk-4RHM4WN2.js +0 -2
  409. package/dist/chunks/chunk-6DCXAXVD.js +0 -22
  410. package/dist/chunks/chunk-AWPYTDH4.js +0 -4
  411. package/dist/chunks/chunk-BLKTUFGB.js +0 -2
  412. package/dist/chunks/chunk-BN5AVRUG.js +0 -2
  413. package/dist/chunks/chunk-D5ADDBS5.js +0 -2
  414. package/dist/chunks/chunk-DGPGOBYZ.js +0 -5
  415. package/dist/chunks/chunk-E3EKBPCB.js +0 -2
  416. package/dist/chunks/chunk-E67M5WGY.js +0 -2
  417. package/dist/chunks/chunk-EIIGTADO.js +0 -2
  418. package/dist/chunks/chunk-F5JDBDYL.js +0 -2
  419. package/dist/chunks/chunk-FWIPHEVA.js +0 -12
  420. package/dist/chunks/chunk-GLVR74PX.js +0 -2
  421. package/dist/chunks/chunk-HZLV773Y.js +0 -22
  422. package/dist/chunks/chunk-JEVA7YQL.js +0 -3
  423. package/dist/chunks/chunk-KC7I6E6W.js +0 -2
  424. package/dist/chunks/chunk-M4ZRCRJM.js +0 -10
  425. package/dist/chunks/chunk-N663LL27.js +0 -2
  426. package/dist/chunks/chunk-NR5VASQB.js +0 -2
  427. package/dist/chunks/chunk-OJSK4NSW.js +0 -151
  428. package/dist/chunks/chunk-OZ6LRNRE.js +0 -2
  429. package/dist/chunks/chunk-Q324ZA5M.js +0 -2
  430. package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
  431. package/dist/chunks/chunk-UJBEWIR3.js +0 -8
  432. package/dist/chunks/chunk-V67IFV26.js +0 -86
  433. package/dist/chunks/chunk-VSUHJ46L.js +0 -18
  434. package/dist/chunks/chunk-VWJ5IYQP.js +0 -2
  435. package/dist/chunks/chunk-X3WEQL3O.js +0 -2
  436. package/dist/chunks/chunk-XK7SPL63.js +0 -2
  437. package/dist/chunks/chunk-XLULTQLZ.js +0 -12
  438. package/dist/chunks/chunk-YR5ID2SS.js +0 -2
  439. package/dist/chunks/chunk-ZBBVRYU3.js +0 -6
  440. package/dist/chunks/chunk-ZHFH2TZN.js +0 -2
  441. package/dist/chunks/chunk-ZZWAQBA2.js +0 -2
  442. package/dist/chunks/cli-WC45SI7E.js +0 -2
  443. package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
  444. package/dist/chunks/connected-evidence-4J3YXU4O.js +0 -2
  445. package/dist/chunks/core-commands-JGXU6B4C.js +0 -2
  446. package/dist/chunks/dataset-preparation-authoring-DFGJBMVF.js +0 -4
  447. package/dist/chunks/datasets-MNHZAZIB.js +0 -2
  448. package/dist/chunks/desktop-test-P23MHAIG.js +0 -3
  449. package/dist/chunks/dist-IIFTZWNR.js +0 -2
  450. package/dist/chunks/evaluation-coordination-6NQEH5WU.js +0 -2
  451. package/dist/chunks/experiment-improvements-M27Z5OF4.js +0 -2
  452. package/dist/chunks/experiments-IWSCFDBB.js +0 -2
  453. package/dist/chunks/experiments-signal-R3NNH7WR.js +0 -2
  454. package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
  455. package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
  456. package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
  457. package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
  458. package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
  459. package/dist/chunks/hosted-profile-candidate-37ZFY2LH.js +0 -3
  460. package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
  461. package/dist/chunks/hosted-profile-evaluation-control-UQBMML6K.js +0 -2
  462. package/dist/chunks/hosted-profile-evaluation-inspection-YASS4T6L.js +0 -3
  463. package/dist/chunks/human-review-IJETDOWB.js +0 -2
  464. package/dist/chunks/learning-KVLTMRLD.js +0 -2
  465. package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
  466. package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
  467. package/dist/chunks/model-projects-AVBQDNYG.js +0 -2
  468. package/dist/chunks/opchat-KSOJEL4W.js +0 -3
  469. package/dist/chunks/organizations-DJRJWC5I.js +0 -2
  470. package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
  471. package/dist/chunks/project-agent-2KNJFNZI.js +0 -2
  472. package/dist/chunks/published-experiment-source-LFYHKFAO.js +0 -2
  473. package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
  474. package/dist/chunks/sandbox-command-IIGTPYN3.js +0 -2
  475. package/dist/chunks/saved-work-QA46KCME.js +0 -2
  476. package/dist/chunks/src-E7NWAN5B.js +0 -420
  477. package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
  478. package/dist/chunks/store-chat-resources-CGW7PDCG.js +0 -2
  479. package/dist/chunks/store-evaluation-results-V5J6L4NV.js +0 -7
  480. package/dist/chunks/store-harness-workspaces-HHMM6GNK.js +0 -2
  481. package/dist/chunks/store-human-review-V5H4QDHR.js +0 -7
  482. package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
  483. package/dist/chunks/store-model-batch-review-KMYPYWJR.js +0 -2
  484. package/dist/chunks/store-model-configuration-UXNC4PGY.js +0 -3
  485. package/dist/chunks/store-task-inbox-LNDCZOYE.js +0 -33
  486. package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
  487. package/dist/chunks/taskset-packages-I7I5KBFP.js +0 -2
  488. package/dist/chunks/training-error-AYOGHHL2.js +0 -2
  489. package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
  490. package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
  491. package/dist/chunks/training-hosted-workers-KI767T4Y.js +0 -2
  492. package/dist/skills/openpond-desktop-harness/SKILL.md +0 -113
  493. package/dist/skills/openpond-desktop-harness/agents/openai.yaml +0 -4
  494. package/dist/web/assets/App-Df7uYQGj.css +0 -1
  495. package/dist/web/assets/App-Yy3l2sdD.js +0 -56
  496. package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
  497. package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
  498. package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
  499. package/dist/web/assets/ChatTimelineEntry-IKzZsHoI.js +0 -1
  500. package/dist/web/assets/CommandMenu-CBY2AJxV.js +0 -1
  501. package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
  502. package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
  503. package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
  504. package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
  505. package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
  506. package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
  507. package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
  508. package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
  509. package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
  510. package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
  511. package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
  512. package/dist/web/assets/LabsRoute-DOnw39du.js +0 -101
  513. package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
  514. package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
  515. package/dist/web/assets/MainPane-CuBUBA9F.css +0 -1
  516. package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
  517. package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
  518. package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
  519. package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
  520. package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
  521. package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
  522. package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
  523. package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
  524. package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
  525. package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
  526. package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
  527. package/dist/web/assets/TrainingMetricWorkbench-BmzHLwIP.js +0 -1
  528. package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
  529. package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
  530. package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
  531. package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
  532. package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
  533. package/dist/web/assets/app-models-BviS9b7U.js +0 -1
  534. package/dist/web/assets/browser-sidebar-links-ujSvTf5h.js +0 -1
  535. package/dist/web/assets/chat-resources-CItQ4mZD.js +0 -1
  536. package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
  537. package/dist/web/assets/contracts-BHTOD1nd.js +0 -1
  538. package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
  539. package/dist/web/assets/icons-kaq6k88m.js +0 -1
  540. package/dist/web/assets/index-DUMDOdB2.css +0 -1
  541. package/dist/web/assets/play-BPPQoqMl.js +0 -1
  542. package/dist/web/assets/plus-D18vYzHF.js +0 -1
  543. package/dist/web/assets/settings-BKmRueaw.js +0 -21
  544. package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
  545. package/dist/web/assets/square-Da8RuqW4.js +0 -1
  546. package/dist/web/assets/training-managed-adapter-81RrdT1k.js +0 -1
  547. package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
  548. package/dist/web/assets/useAgentInventory-BV4CUWzJ.js +0 -1
  549. /package/dist/chunks/{chunk-GLDYJM7O.js → chunk-T4QXKU5Y.js} +0 -0
@@ -0,0 +1,81 @@
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D9WbJMSq.js";import{m as r,p as i,r as a,v as o}from"./schemas-lO3MoWQr.js";import{i as s,n as c}from"./api-client-Dgz-fOMl.js";import"./icons-D7jkCa2d.js";import{t as l}from"./maximize-2-BZX38cpr.js";import{Bt as u,F as d,M as f,N as p,j as m,on as ee,zt as h}from"./App-DY2R8Z6r.js";import{B as g,z as _}from"./MainPane-6OlLiKKb.js";var v=e(t(),1);a([`page`,`node`]);var y=r({x:i().finite().nonnegative(),y:i().finite().nonnegative(),width:i().finite().positive().max(16e3),height:i().finite().positive().max(16e3)}).refine(e=>e.width*e.height<=4e7,`The snapshot is too large.`),b=r({rect:y,selector:o().max(500),html:o().max(6291456).optional(),source:o().max(64e3).optional()});function x(e,t){let n=!1,r=null,i=null;function a(e){return`${e.tagName.toLowerCase()}${e.id?`#${e.id}`:``}${[...e.classList].slice(0,3).map(e=>`.${e}`).join(``)}`.slice(0,500)}function o(e,t,n){let r=e instanceof SVGElement&&e.tagName.toLowerCase()!==`svg`?e.ownerSVGElement:null;for(;r?.ownerSVGElement;)r=r.ownerSVGElement;let i=r??e,a=i.cloneNode(!0),o=[i,...i.querySelectorAll(`*`)],s=[a,...a.querySelectorAll(`*`)];for(let e=0;e<o.length;e++){let t=o[e],n=s[e];if([`SCRIPT`,`IFRAME`,`OBJECT`,`EMBED`,`LINK`,`META`].includes(n.tagName)){n.remove();continue}let r=[...n.attributes];for(let e of r)/^on/i.test(e.name)&&n.removeAttribute(e.name);if(n instanceof HTMLElement||n instanceof SVGElement){let e=getComputedStyle(t);n.style.cssText=[...e].map(t=>`${t}:${e.getPropertyValue(t).replace(/url\((["']?)(.*?)\1\)/g,(e,t,n)=>{let r=n.indexOf(`#`);return r>0&&[document.baseURI.split(`#`)[0],document.URL.split(`#`)[0]].includes(n.slice(0,r))?`url("#${n.slice(r+1)}")`:e})};`).join(``),n.style.setProperty(`animation`,`none`),n.style.setProperty(`transition`,`none`)}if(t instanceof HTMLInputElement&&(n.setAttribute(`value`,t.value),t.checked?n.setAttribute(`checked`,``):n.removeAttribute(`checked`)),t instanceof HTMLTextAreaElement&&(n.textContent=t.value),t instanceof HTMLOptionElement&&(t.selected?n.setAttribute(`selected`,``):n.removeAttribute(`selected`)),t instanceof HTMLCanvasElement){let e=document.createElement(`img`);e.src=t.toDataURL(`image/png`),e.style.cssText=n.style.cssText,t===i?a=e:n.replaceWith(e)}if(t.shadowRoot)throw Error(`This element has a shadow root. Capture it from a native browser tab.`)}a.style.setProperty(`margin`,`0`),a.style.setProperty(`position`,`relative`),a.style.setProperty(`inset`,`auto`),a.style.setProperty(`width`,`${t}px`),a.style.setProperty(`max-width`,`none`);let c=document.createElement(`div`);c.style.width=`${t}px`,c.style.height=`${n}px`;for(let t=e;t;t=t.parentElement){let e=getComputedStyle(t).backgroundColor;if(e&&e!==`rgba(0, 0, 0, 0)`&&e!==`transparent`){c.style.backgroundColor=e;break}}if(r){let n=r.getBoundingClientRect(),i=e.getBoundingClientRect();Object.assign(c.style,{position:`relative`,overflow:`hidden`,width:`${t}px`,height:`${Math.ceil(i.height)}px`}),Object.assign(a.style,{position:`absolute`,left:`${n.left-i.left}px`,top:`${n.top-i.top}px`,width:`${n.width}px`,height:`${n.height}px`})}return c.append(a),c.outerHTML}function s(n,r){try{let i=n.getBoundingClientRect(),s=r?Math.max(document.documentElement.clientWidth,document.documentElement.scrollWidth):Math.ceil(i.width),c=r?Math.max(document.documentElement.scrollHeight,document.body.scrollHeight):Math.ceil(i.height);if(!s||!c)throw Error(`The selected element has no visible area.`);e({capture:{rect:{x:r?0:Math.max(0,i.left+scrollX),y:r?0:Math.max(0,i.top+scrollY),width:s,height:c},selector:r?`Full page`:a(n),source:n.outerHTML.slice(0,64e3),...t?{html:o(n,s,c)}:{}}})}catch(t){e({error:t instanceof Error?t.message:String(t)})}}function c(){n=!1,r=null,i?.remove(),i=null,document.removeEventListener(`pointermove`,l,!0),document.removeEventListener(`click`,u,!0),document.removeEventListener(`keydown`,f,!0),window.removeEventListener(`click`,u,!0);for(let e of[`pointerdown`,`pointerup`,`mousedown`,`mouseup`])window.removeEventListener(e,d,!0)}function l(e){if(!n||(r=e.composedPath().find(e=>e instanceof Element&&e!==i)??null,!r||!i))return;let t=r.getBoundingClientRect();Object.assign(i.style,{left:`${t.left}px`,top:`${t.top}px`,width:`${t.width}px`,height:`${t.height}px`}),i.textContent=`${a(r)} · ${Math.ceil(t.width)} × ${Math.ceil(t.height)}`}function u(e){if(!n||!e.isTrusted)return;e.preventDefault(),e.stopImmediatePropagation();let t=e.composedPath().find(e=>e instanceof Element&&e!==i);c(),t&&s(t,!1)}function d(e){n&&(e.preventDefault(),e.stopImmediatePropagation())}function f(t){t.key===`Escape`&&t.isTrusted&&(t.preventDefault(),t.stopImmediatePropagation(),c(),e({canceled:!0}))}return{page(){c(),s(document.body,!0)},start(){c(),n=!0,i=document.createElement(`div`),i.setAttribute(`data-openpond-snapshot-overlay`,``),i.style.cssText=`position:fixed;pointer-events:none;z-index:2147483647;box-sizing:border-box;border:2px solid var(--blue,Highlight);background:transparent;color:var(--text,CanvasText);font:12px/1.3 monospace;text-shadow:0 0 3px var(--bg,Canvas);overflow:visible;`,document.documentElement.append(i),document.addEventListener(`pointermove`,l,!0),window.addEventListener(`click`,u,!0);for(let e of[`pointerdown`,`pointerup`,`mousedown`,`mouseup`])window.addEventListener(e,d,!0);document.addEventListener(`keydown`,f,!0)},cancel(){c(),e({canceled:!0})},dispose:c}}function S(){return`(${x.toString()})`}var C=`default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; connect-src 'none'; frame-src 'none'; child-src 'none'; worker-src 'none'; object-src 'none'; base-uri 'none'; form-action 'none'`,w=e=>JSON.stringify(e).replace(/</g,`\\u003c`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`),T=e=>e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`);function E(e,t,n=f){let r=`(() => {
2
+ const style = document.getElementById('openpond-theme');
3
+ const keys = ${w(Object.keys(f))};
4
+ function theme(values) { if (!values || typeof values !== 'object') return;
5
+ style.textContent = ':root{' + keys.map(k => k+':'+String(values[k]||'').replace(/[;{}<>]/g,'')+';').join('') + '}'; }
6
+ theme(${w(n)});
7
+ addEventListener('message', e => { if(e.source === parent && e.data?.type === 'openpond-theme') theme(e.data.theme); });
8
+ const send = data => parent.postMessage({ ...data, identity: ${w(t)} }, '*');
9
+ const resourceToken=Array.from(crypto.getRandomValues(new Uint32Array(4))).join('-');
10
+ send({type:'openpond-resource-ready',resourceToken});
11
+ let snapshotRequest=null;
12
+ const inspector=${S()}(result=>{
13
+ if(!snapshotRequest)return;
14
+ send({type:'openpond-snapshot-result',resourceToken,requestId:snapshotRequest,...result});
15
+ snapshotRequest=null;
16
+ },true);
17
+ addEventListener('message',e=>{
18
+ const data=e.data;
19
+ if(e.source!==parent || data?.type!=='openpond-snapshot-command' || typeof data.requestId!=='string')return;
20
+ if(data.action==='cancel'){inspector.cancel();return;}
21
+ snapshotRequest=data.requestId;
22
+ if(data.action==='page')inspector.page();
23
+ else if(data.action==='node'){inspector.start();send({type:'openpond-snapshot-ready',resourceToken,requestId:snapshotRequest});}
24
+ });
25
+ // Declarative resource buttons use a trusted user click. Author scripts
26
+ // receive no API transport, credentials, or arbitrary host command bridge.
27
+ document.addEventListener('click',e=>{
28
+ if(!e.isTrusted || snapshotRequest)return;
29
+ const button=e.target?.closest?.('button[data-openpond-resource-id]');
30
+ if(!button || button.disabled)return;
31
+ const kind=button.dataset.openpondResourceKind,id=button.dataset.openpondResourceId;
32
+ const revision=Number(button.dataset.openpondResourceRevision);
33
+ if(!['dataset','experiment'].includes(kind) || !id || id.length>240 || (kind==='dataset' && (!Number.isSafeInteger(revision) || revision<1)))return;
34
+ send({type:'openpond-resource-select',resourceToken,resource:{kind,id,...Number.isSafeInteger(revision)&&revision>0?{revision}:{}}});
35
+ },true);
36
+ let interactionPending=false;
37
+ for(const type of ['wheel','touchmove','pointerdown','keydown']) addEventListener(type,e=>{
38
+ if(!e.isTrusted || interactionPending)return; interactionPending=true;
39
+ requestAnimationFrame(()=>{interactionPending=false;send({type:'openpond-interaction'});});
40
+ },{passive:true});
41
+ let queued = false, previous = 0, loaded = false, reportedReady = false;
42
+ // Initial sizing must work when the frame top is clipped: Chromium may
43
+ // suspend animation frames there before its child has expanded.
44
+ function measure() { if(queued)return; queued=true; queueMicrotask(() => { queued=false;
45
+ const body = document.body; if(!body)return;
46
+ const height = Math.max(80, Math.ceil(Math.max(body.getBoundingClientRect().height, body.scrollHeight)));
47
+ if(height!==previous || (loaded && !reportedReady)) { previous=height; reportedReady=loaded; send({type:'openpond-size',height,ready:loaded}); }
48
+ }); }
49
+ const observer = new ResizeObserver(measure);
50
+ addEventListener('DOMContentLoaded', () => { observer.observe(document.body); measure(); });
51
+ addEventListener('load', () => { void document.fonts.ready.then(() => { loaded=true; measure(); }); });
52
+ let count=0;
53
+ function log(level,args){ if(count++<40)send({type:'openpond-console',level,text:args.map(v=>{try{return typeof v==='string'?v:JSON.stringify(v)}catch{return String(v)}}).join(' ').slice(0,2000)}); }
54
+ for(const level of ['log','warn','error']) { const original=console[level]; console[level]=(...args)=>{log(level,args);original.apply(console,args)}; }
55
+ addEventListener('error', e => log('error',[e.message]));
56
+ addEventListener('unhandledrejection', e => log('error',[String(e.reason)]));
57
+ addEventListener('securitypolicyviolation', e => log('error',['Blocked resource: '+e.violatedDirective+' ('+e.blockedURI+')']));
58
+ // Links are informational inside a self-contained visual, never navigation.
59
+ document.addEventListener('click', e => { if(e.composedPath().some(n=>n?.tagName==='A'))e.preventDefault(); }, true);
60
+ })();`,i=`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="${T(C)}"><meta name="viewport" content="width=device-width,initial-scale=1"><style id="openpond-theme"></style><style>html,body{color-scheme:var(--color-scheme);margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font-web)}body{display:flow-root;overflow-wrap:anywhere}*{box-sizing:border-box}img,svg,canvas{max-width:100%}button,input,select{font:inherit}button{cursor:pointer}html{scrollbar-width:none}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}</style><script>${r}<\/script></head><body>${e}</body></html>`;return`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="${T(C)}"><meta name="viewport" content="width=device-width,initial-scale=1"><style>html,body{margin:0;background:transparent}iframe{display:block;border:0;width:100%;height:80px;color-scheme:normal}</style></head><body><iframe title="Interactive visual" sandbox="allow-scripts" referrerpolicy="no-referrer" allow="camera 'none'; microphone 'none'; geolocation 'none'; clipboard-read 'none'; clipboard-write 'none'"></iframe><script>(()=>{
61
+ const frame=document.querySelector('iframe'); const identity=${w(t)};
62
+ let resourceToken=null;
63
+ const state=window.__openpondVisual={height:80,console:[],ready:false};
64
+ addEventListener('message', e=>{
65
+ const d=e.data;if(!d||typeof d!=='object')return;
66
+ if(e.source===parent && parent!==window && d.type==='openpond-theme' && d.identity===identity){frame.contentWindow.postMessage({type:'openpond-theme',theme:d.theme},'*');return;}
67
+ if(e.source===parent && parent!==window && d.type==='openpond-snapshot-command' && d.identity===identity){if(d.action==='node')frame.focus();frame.contentWindow.postMessage(d,'*');return;}
68
+ if(e.source!==frame.contentWindow || d.identity!==identity)return;
69
+ if(d.type==='openpond-interaction' && parent!==window)parent.postMessage({type:'openpond-visual-interaction',identity},'*');
70
+ if(d.type==='openpond-resource-ready' && resourceToken===null && typeof d.resourceToken==='string' && d.resourceToken.length<100)resourceToken=d.resourceToken;
71
+ if(d.type==='openpond-resource-select' && resourceToken!==null && d.resourceToken===resourceToken && parent!==window)parent.postMessage({type:'openpond-visual-resource-select',identity,resource:d.resource},'*');
72
+ if(d.type==='openpond-snapshot-result' && resourceToken!==null && d.resourceToken===resourceToken && parent!==window)parent.postMessage({type:'openpond-visual-snapshot',identity,requestId:d.requestId,capture:d.capture,canceled:d.canceled,error:d.error},'*');
73
+ if(d.type==='openpond-snapshot-ready' && resourceToken!==null && d.resourceToken===resourceToken && parent!==window)parent.postMessage({type:'openpond-visual-snapshot-ready',identity,requestId:d.requestId},'*');
74
+ if(d.type==='openpond-console' && state.console.length<40 && ['log','warn','error'].includes(d.level) && typeof d.text==='string')state.console.push({level:d.level,text:d.text.slice(0,2000)});
75
+ if(d.type==='openpond-size' && Number.isFinite(d.height)){
76
+ const height=Math.max(80,Math.min(${m},Math.ceil(d.height)));state.height=height;if(d.ready===true)state.ready=true;
77
+ frame.style.height=state.height+'px';if(parent!==window)parent.postMessage({type:'openpond-visual-size',identity,height:state.height,ready:state.ready},'*');
78
+ }
79
+ });
80
+ frame.srcdoc=${w(i)};
81
+ })();<\/script></body></html>`}function D(e,t,n,r){let i=(0,v.useRef)(n);i.current=n;let a=(0,v.useRef)(null),o=(0,v.useCallback)(()=>{let n=a.current;n&&(a.current=null,clearTimeout(n.timeout),e.current?.contentWindow?.postMessage({type:`openpond-snapshot-command`,identity:t,requestId:n.id,action:`cancel`},`*`),n.reject(new DOMException(`Snapshot canceled.`,`AbortError`)))},[e,t]);return(0,v.useEffect)(()=>o,[o]),(0,v.useImperativeHandle)(r,()=>({cancel:o,capture:n=>!i.current||!e.current?.contentWindow?Promise.reject(Error(`Wait for the HTML page to finish loading.`)):(o(),new Promise((r,i)=>{let s=crypto.randomUUID();n===`node`&&e.current.focus(),a.current={id:s,resolve:r,reject:i,timeout:setTimeout(o,n===`node`?12e4:15e3)},e.current.contentWindow.postMessage({type:`openpond-snapshot-command`,identity:t,requestId:s,action:n},`*`)}))}),[o,e,t]),(0,v.useCallback)(e=>{let t=a.current;if(!t||t.id!==e.requestId)return;if(e.canceled){o();return}a.current=null,clearTimeout(t.timeout);let n=b.safeParse(e.capture);e.error||!n.success||!n.data.html?t.reject(Error(e.error??`The HTML snapshot could not be captured.`)):t.resolve(n.data)},[o])}var O=n();function k(){let e=getComputedStyle(document.querySelector(`.app-shell`)??document.documentElement);return Object.fromEntries(Object.entries(f).map(([t,n])=>[t,t===`--color-scheme`?document.documentElement.dataset.theme??`dark`:e.getPropertyValue(p[t]??t).trim()||n]))}function A({visual:e,connection:t,expanded:n=!1,snapshotRef:r}){let i=(0,v.useContext)(_),a=(0,v.useContext)(g),o=(0,v.useRef)(!1),f=(0,v.useRef)(null),p=(0,v.useRef)(null),[y,b]=(0,v.useState)(!1),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(null),T=(0,v.useRef)(null),A=(0,v.useRef)(null),[j,M]=(0,v.useState)(null),[N,P]=(0,v.useState)(null),[F,I]=(0,v.useState)(null),[L,R]=(0,v.useState)(0),[z,B]=(0,v.useState)(n),[V,H]=(0,v.useState)(!1),[U,W]=(0,v.useState)(e.heights[0]?.height??320),G=`${e.publicationId}:${n?`expanded`:`inline`}:${L}`,K=D(A,G,V,r),q=`/v1/sessions/${encodeURIComponent(e.sessionId)}/visuals/${e.publicationId}`,J=t?.serverUrl,Y=t?.token,X=t?.platform,Z=!!(j&&/data-openpond-resource-(?:id|table)/.test(j));(0,v.useEffect)(()=>{let e=T.current;if(!e||z||n)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&B(!0)},{rootMargin:`160px`});return t.observe(e),()=>t.disconnect()},[n,z]),(0,v.useEffect)(()=>{if(!J||!Y||!(z||n))return;let e=new AbortController,t=null;return M(null),I(null),P(null),Promise.all([c({serverUrl:J,token:Y,platform:X??`web`},`${q}/document`,{signal:e.signal}),s({serverUrl:J,token:Y},`${q}/preview`,{signal:e.signal}).then(e=>{if(!e.ok)throw Error(`Preview unavailable`);return e.blob()})]).then(([n,r])=>{e.signal.aborted||(M(n.html),t=URL.createObjectURL(r),P(t))}).catch(t=>{e.signal.aborted||I(t instanceof Error?t.message:`Visual unavailable`)}),()=>{e.abort(),t&&URL.revokeObjectURL(t)}},[J,Y,X,q,L,z,n]),(0,v.useEffect)(()=>{if(!t||!(z||n)||!j?.includes(`data-openpond-resource-id`))return;let r=new AbortController;return h(t,`dataset`,{action:`context`,payload:{sessionId:e.sessionId}},r.signal).then(t=>{let n=Object.entries(t.focus.scopeContext?.selectionOperations??{}).filter(([,t])=>t.visualPublicationId===e.publicationId&&t.resource).sort((e,t)=>t[1].version-e[1].version)[0];if(!r.signal.aborted&&n&&!o.current){let e=n[1].resource;p.current={key:`${e.kind}:${e.id}:${e.revision}`,id:n[0]},w(`Selected ${e.kind}: ${e.name}${e.kind===`dataset`?` V${e.revision}`:``}.`)}}).catch(()=>{}),()=>r.abort()},[t,e.sessionId,e.publicationId,z,n,j]);async function Q(t){if(!a||o.current)return;o.current=!0,b(!0),S(null);let n=`${t.kind}:${t.id}:${t.revision}`;p.current?.key!==n&&(p.current={key:n,id:`visual-select-${crypto.randomUUID()}`});try{w(await a(e,t,p.current.id))}catch(e){S(e instanceof Error?e.message:`Resource selection failed.`)}finally{o.current=!1,b(!1)}}f.current=Q;let $=(0,v.useMemo)(()=>j===null?void 0:E(j,G,k()),[j,G]);return(0,v.useEffect)(()=>{if(H(!1),!$)return;let e=setTimeout(()=>I(`The visual did not finish loading.`),8e3),t=t=>{let n=t.data;if(t.source===A.current?.contentWindow&&n?.identity===G){if(n.type===`openpond-visual-snapshot`)K(n);else if(n.type===`openpond-visual-resource-select`){let e=d.safeParse(n.resource);e.success&&f.current?.(e.data)}else n.type===`openpond-visual-interaction`?T.current?.dispatchEvent(new Event(`openpond-visual-interaction`,{bubbles:!0})):n.type===`openpond-visual-size`&&Number.isFinite(n.height)&&(n.ready===!0&&(clearTimeout(e),H(!0)),W(Math.max(80,Math.min(m,Math.ceil(n.height)))))}},n=()=>A.current?.contentWindow?.postMessage({type:`openpond-theme`,identity:G,theme:k()},`*`);window.addEventListener(`message`,t);let r=new MutationObserver(n),i=[document.documentElement,document.querySelector(`.app-shell`)].filter(e=>e!==null);for(let e of i)r.observe(e,{attributes:!0,attributeFilter:[`class`,`style`,`data-theme`]});let a=matchMedia(`(prefers-color-scheme: dark)`);return a.addEventListener(`change`,n),()=>{clearTimeout(e),r.disconnect(),window.removeEventListener(`message`,t),a.removeEventListener(`change`,n)}},[G,$,K]),(0,O.jsxs)(`div`,{className:`html-visual`,ref:T,"data-visual-id":e.visualId,"data-publication-id":e.publicationId,children:[Z?null:(0,O.jsxs)(`div`,{className:`html-visual-toolbar`,children:[(0,O.jsxs)(`span`,{children:[e.output.title,e.output.revision>1?` · Revision ${e.output.revision}`:``]}),(0,O.jsx)(`button`,{type:`button`,disabled:j===null,onClick:()=>{if(j===null)return;let t=URL.createObjectURL(new Blob([j],{type:`text/html;charset=utf-8`})),n=document.createElement(`a`);n.href=t,n.download=`${e.output.title}.html`,n.click(),setTimeout(()=>URL.revokeObjectURL(t),1e3)},title:`Download HTML`,"aria-label":`Download HTML`,children:(0,O.jsx)(ee,{size:15,"aria-hidden":!0})}),!n&&i?(0,O.jsx)(`button`,{type:`button`,onClick:()=>i(e),title:`Open in browser panel`,"aria-label":`Expand visual`,children:(0,O.jsx)(l,{size:15,"aria-hidden":!0})}):null]}),C?(0,O.jsxs)(`div`,{className:`html-visual-selection-receipt`,children:[(0,O.jsx)(`span`,{children:C}),(0,O.jsx)(`button`,{type:`button`,onClick:()=>{w(null),S(null),p.current=null},children:`Change`})]}):null,y?(0,O.jsx)(`p`,{role:`status`,className:`html-visual-status`,children:`Selecting resource…`}):null,x?(0,O.jsx)(u,{error:x}):null,(0,O.jsx)(`div`,{className:`html-visual-content`,style:{minHeight:U},hidden:C!==null,children:t?F?(0,O.jsx)(u,{error:F,children:(0,O.jsx)(`button`,{type:`button`,onClick:()=>R(e=>e+1),children:`Retry`})}):(0,O.jsxs)(O.Fragment,{children:[$?(0,O.jsx)(`iframe`,{ref:A,title:e.output.title,sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,allow:`camera 'none'; microphone 'none'; geolocation 'none'; clipboard-read 'none'; clipboard-write 'none'`,srcDoc:$,style:{height:U,opacity:+!!V}}):null,V?null:(0,O.jsx)(`div`,{className:`html-visual-placeholder`,children:N?(0,O.jsx)(`img`,{src:N,alt:`Saved preview of ${e.output.title}`,style:{maxHeight:U}}):(0,O.jsx)(`p`,{className:`html-visual-status`,role:`status`,children:`Loading visual…`})})]}):(0,O.jsx)(`p`,{className:`html-visual-status`,children:`Connect to view this visual.`})}),U===2400?(0,O.jsx)(`p`,{className:`html-visual-status`,children:`This visual reaches the height limit. Scroll inside it to see more.`}):null]})}export{A as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D9WbJMSq.js";import{t as r}from"./useQuery-BD0Uexmh.js";import{o as i}from"./training-QrdkRQZQ.js";import{a,i as o,l as s}from"./TrainingRunLineage-VcKz7dIR.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-D7jkCa2d.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-DB-jg6L_.js";import{t as h}from"./chevron-down-jmVA1BIf.js";import{t as g}from"./chevron-right-BYmDQ7ti.js";import{t as _}from"./loader-circle-CPaJeTDy.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-DY2R8Z6r.js";import{l as S}from"./MainPane-6OlLiKKb.js";import{C,S as w,_ as T,b as ee,c as te,d as ne,f as re,g as E,h as ie,l as ae,m as oe,p as D,s as se,u as ce,v as O,x as le,y as ue}from"./LabsRoute-BV7ZJGEw.js";function de(e){if(!e)return[];let t=e.recipe;return t.method===`grpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)},{label:`Rollouts per update`,value:String(t.rollout.groupSize)},{label:`Rollout concurrency`,value:String(t.rollout.concurrency)},{label:`Max output tokens`,value:t.rollout.maxOutputTokens.toLocaleString()},{label:`Temperature`,value:String(t.rollout.temperature)},{label:`Top P`,value:String(t.rollout.topP)}]:t.method===`sft`||t.method===`dpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)}]:[]}function fe(e,t){if(!e||!t)return[];if(t.parent.kind===`base_model`)return[{label:`Starting checkpoint`,value:`Frozen base · ${t.parent.revision}`},{label:`Optimizer`,value:`Fresh`}];let n=e.modelVersions.find(e=>e.id===t.parent.id);return[{label:`Starting checkpoint`,value:[e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id)?.label??null,n?`Version ${n.version}`:t.parent.id].filter(e=>!!e).join(` · `)},{label:`Optimizer`,value:`Fresh`}]}function pe(e,t){if(!e||!t||t.parent.kind===`base_model`)return`Frozen base`;let n=e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id),r=e.modelVersions.find(e=>e.id===t.parent.id);return[n?.label??`Prior checkpoint`,r?`Version ${r.version}`:null].filter(e=>!!e).join(` · `)}function k(e){return e===0?`0`:e.toExponential(2)}var A=e(t(),1),j=n();function me({events:e}){let t=e.filter(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`);return t.length?(0,j.jsx)(`div`,{className:`training-rollout-receipts`,children:t.map((e,t)=>{let n=e.payload.rewardEligible===!0,r=N(e.payload.reward),i=typeof e.payload.failureClass==`string`?e.payload.failureClass:null,a=typeof e.payload.failureCode==`string`?e.payload.failureCode:null;return(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsxs)(`span`,{children:[`Attempt `,t+1]}),(0,j.jsx)(`strong`,{children:n?`eligible`:`ineligible`}),(0,j.jsx)(`em`,{children:n&&r!=null?r.toFixed(3):a??i??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Rollout`,value:P(e.payload.rolloutId)}),(0,j.jsx)(M,{label:`Group`,value:P(e.payload.rolloutGroupId)}),(0,j.jsx)(M,{label:`Policy`,value:`v${N(e.payload.policyVersion)??0}`}),(0,j.jsx)(M,{label:`Worker`,value:String((N(e.payload.workerSlot)??0)+1)}),(0,j.jsx)(M,{label:`Reward`,value:r==null?`Not eligible`:String(r)}),(0,j.jsx)(M,{label:`Failure class`,value:i??`None`}),(0,j.jsx)(M,{label:`Failure code`,value:a??`None`}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.payload.rewardComponents??{})}),(0,j.jsx)(M,{label:`Tokens`,value:`${N(e.payload.inputTokens)??0} input · ${N(e.payload.outputTokens)??0} output`})]})]},e.id)})}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No managed attempts were recorded for this run.`})}function he({receipts:e}){let[t,n]=(0,A.useState)(!1);if(!e.length)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No on-policy rollout receipts were recorded for this run.`});let r=[...e].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i=t?r:r.slice(0,24);return(0,j.jsxs)(`div`,{className:`training-rollout-receipts`,children:[e.length>24?(0,j.jsxs)(`div`,{className:`training-rollout-receipt-controls`,children:[(0,j.jsx)(`span`,{children:t?`Showing all ${e.length} receipts`:`Showing latest ${i.length} of ${e.length} receipts`}),(0,j.jsx)(`button`,{className:`training-text-button`,type:`button`,onClick:()=>n(e=>!e),children:t?`Show latest 24`:`Show all ${e.length}`})]}):null,i.map(e=>(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsx)(`span`,{children:ge(e.providerTrace.rolloutId)}),(0,j.jsx)(`strong`,{children:e.status}),(0,j.jsx)(`em`,{children:e.reward.eligible&&e.reward.raw!=null?e.reward.raw.toFixed(3):e.failureClass??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Correlation`,value:e.correlationId}),(0,j.jsx)(M,{label:`Task`,value:e.taskId}),(0,j.jsx)(M,{label:`Policy`,value:e.policy.modelId}),(0,j.jsx)(M,{label:`Checkpoint`,value:e.policy.checkpointId??`Provider initial policy`}),(0,j.jsx)(M,{label:`Environment`,value:`${e.environment.id}@${e.environment.version}`}),(0,j.jsx)(M,{label:`World`,value:`${e.environment.worldId} · ${e.environment.worldHash}`}),(0,j.jsx)(M,{label:`Raw reward`,value:e.reward.raw==null?`Not eligible`:String(e.reward.raw)}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.reward.components)}),(0,j.jsx)(M,{label:`Outcome`,value:e.verifier?.outcome??e.failureClass??`Pending`}),(0,j.jsx)(M,{label:`Trace`,value:`${e.providerTrace.experimentId}/${e.providerTrace.rolloutId}`})]})]},e.id))]})}function M({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function N(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function P(e){return typeof e==`string`&&e?e:`Not recorded`}function ge(e){return e.replace(/^lineage_/,``).slice(0,18)}function _e({detail:e,loading:t,pending:n=!1}){if(t&&!e)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading evaluation results…`});let r=e?.evaluation;return r?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[(0,j.jsxs)(`div`,{className:`training-metric-summary`,children:[(0,j.jsx)(F,{label:`Base score`,value:ye(r.base.meanScore)}),(0,j.jsx)(F,{label:`Trained score`,value:ye(r.trained.meanScore)}),(0,j.jsx)(F,{label:`Score change`,value:L(r.meanScoreDelta)}),(0,j.jsx)(F,{label:`Trained pass rate`,value:I(r.trained.passRate)})]}),r.base.count===0?(0,j.jsx)(`p`,{className:`training-muted`,children:`Base-model scoring was not imported for this earlier run. New runs retain both base and trained evaluations.`}):null,r.trained.count>0&&r.trained.scoredCount===0?(0,j.jsx)(`p`,{className:`training-muted`,children:`Outputs were captured, but the grader was unavailable, so this run has no evaluation score.`}):null,(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table training-evaluation-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Test example`}),(0,j.jsx)(`th`,{children:`Base`}),(0,j.jsx)(`th`,{children:`Trained`}),(0,j.jsx)(`th`,{children:`Result`})]})}),(0,j.jsx)(`tbody`,{children:r.examples.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:e.taskId}),(0,j.jsx)(ve,{input:e.input,baseOutput:e.baseOutput,trainedOutput:e.trainedOutput,baseGrade:e.baseGrade,trainedGrade:e.trainedGrade})]})}),(0,j.jsx)(`td`,{children:be(e.baseGrade)}),(0,j.jsx)(`td`,{children:be(e.trainedGrade)}),(0,j.jsx)(`td`,{children:xe(e.baseGrade,e.trainedGrade)})]},e.taskId))})]})})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:n?`Evaluation will appear here after the first eligible checkpoint is scored.`:`No scored evaluation results are available for this run.`})}function ve({input:e,baseOutput:t,trainedOutput:n,baseGrade:r,trainedGrade:i}){let a=[...new Set([...r?.feedback??[],...i?.feedback??[]])];return(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Input`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]}),t?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Base output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(t,null,2)})]}):null,n?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Trained output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(n,null,2)})]}):null,a.length?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Grader feedback`}),(0,j.jsx)(`p`,{children:a.join(` `)})]}):null]})}function F({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:e}),(0,j.jsx)(`strong`,{children:t})]})}function ye(e){return e==null?`Not recorded`:e.toFixed(3)}function I(e){return e==null?`Not recorded`:`${Math.round(e*100)}%`}function L(e){return e==null?`Not comparable`:`${e>=0?`+`:``}${e.toFixed(3)}`}function be(e){return e?.status===`unavailable`?`Unavailable`:e?.score==null?`Not scored`:e.score.toFixed(3)}function xe(e,t){if(!t)return`Not evaluated`;if(t.status===`unavailable`)return`Unavailable`;if(!e||e.score==null||t.score==null)return t.passed?`Passed`:`Failed`;let n=t.score-e.score;return Math.abs(n)<5e-4?`No change`:n>0?`Improved ${n.toFixed(3)}`:`Regressed ${Math.abs(n).toFixed(3)}`}function Se({connection:e,lineageId:t,jobId:n,onSaved:r}){let i=n??t,a=n?`jobs`:`models`,[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(0),[u,d]=(0,A.useState)(!0),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(null),[y,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(``),[w,T]=(0,A.useState)(null),[ee,te]=(0,A.useState)([]),[ne,re]=(0,A.useState)(!1);(0,A.useEffect)(()=>{if(!e){d(!1),p(!1),_(`Connect to OpenPond to review this candidate.`);return}let t=!0;return d(!0),p(!1),_(null),te([]),(async()=>{try{if(a===`models`){let n=await b.candidateReview(e,i);t&&n&&s(n)}let n=await b.candidateReview(e,i,!0,a);t&&(s(n),p(!!n))}catch(e){t&&_(R(e))}finally{t&&d(!1)}})(),()=>{t=!1}},[e,i,a,c]);function E(e){x(e),C(``),T(null)}async function ie(){if(!e||!o||!y||!S.trim())return;let t=w&&w.reason===S.trim()&&w.decision===y?w:{schemaVersion:`openpond.trainingCandidateDecisionRequest.v1`,...o.target,decision:y,reason:S.trim(),idempotencyKey:crypto.randomUUID(),expectedDecision:o.decision?{id:o.decision.id,contentHash:o.decision.contentHash}:null};T(t),h(!0),_(null);try{s(await b.recordCandidateReview(e,i,t,a)),x(null),T(null),te([]),await r()}catch(e){_(R(e))}finally{h(!1)}}let ae=(ee.at(-1)??o?.decision)?.request.expectedDecision;async function oe(){if(e&&ae){re(!0),_(null);try{let t=await b.candidateReviewHistory(e,i,ae,a);te(e=>[...e,t])}catch(e){_(R(e))}finally{re(!1)}}}let D=o?.decision;return(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Candidate review`,children:[(0,j.jsx)(`h3`,{children:`Candidate review`}),D?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`strong`,{children:D.request.decision===`accepted`?`Accepted`:`Rejected`}),(0,j.jsx)(`p`,{children:D.request.reason}),(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Review `,D.revision,` · `,new Date(D.decidedAt).toLocaleString()]})]}):(0,j.jsx)(`p`,{className:`training-muted`,children:u?`Loading candidate review…`:o?`No candidate decision recorded.`:`Candidate review unavailable.`}),o?(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Last synced `,new Date(o.syncedAt).toLocaleString(),`. Acceptance keeps this candidate for later use; serving is activated separately.`]}):null,g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:u||m,onClick:()=>l(e=>e+1),children:`Refresh review`}),(0,j.jsx)(`button`,{className:`training-button`,type:`button`,disabled:!f||u||m||D?.request.decision===`accepted`,onClick:()=>E(`accepted`),children:`Accept candidate`}),(0,j.jsx)(`button`,{className:`training-button danger`,type:`button`,disabled:!f||u||m||D?.request.decision===`rejected`,onClick:()=>E(`rejected`),children:`Reject candidate`})]}),ee.map(e=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Review `,e.revision,` · `,e.request.decision]}),(0,j.jsx)(`p`,{children:e.request.reason}),(0,j.jsx)(`p`,{children:new Date(e.decidedAt).toLocaleString()})]},e.id)),ae?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:ne||m,onClick:()=>void oe(),children:ne?`Loading…`:`Earlier review`}):null,y?(0,j.jsx)(`div`,{className:`training-dialog-backdrop`,role:`presentation`,onMouseDown:()=>!m&&x(null),children:(0,j.jsxs)(`section`,{className:`training-dialog training-promotion-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Review candidate`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`div`,{className:`training-dialog-header`,children:(0,j.jsx)(`h2`,{children:y===`accepted`?`Accept this candidate?`:`Reject this candidate?`})}),(0,j.jsx)(`p`,{children:`The adapter and its recorded evaluation remain in the candidate’s history.`}),(0,j.jsxs)(`label`,{className:`training-promotion-reason`,children:[(0,j.jsx)(`span`,{children:`Reason`}),(0,j.jsx)(`textarea`,{autoFocus:!0,maxLength:5e3,value:S,onChange:e=>C(e.target.value)})]}),g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:m,onClick:()=>x(null),children:`Cancel`}),(0,j.jsx)(`button`,{className:`training-button ${y===`rejected`?`danger`:``}`,type:`button`,disabled:m||!S.trim(),onClick:()=>void ie(),children:m?`Saving…`:w?`Retry save`:`Save decision`})]})]})}):null]})}function R(e){return e instanceof Error?e.message:`Candidate review could not be loaded.`}function Ce({connection:e,jobId:t,evaluations:n}){let[r,i]=(0,A.useState)(null),a=n.filter(e=>e.reference),o=a.find(e=>e.reference?.id===r)??a.filter(e=>e.kind===`candidate`).at(-1)??a[0];return!e||!o?.reference?null:(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Retained evaluation answers`,children:[(0,j.jsxs)(`label`,{className:`training-taskset-selector`,children:[(0,j.jsx)(`span`,{children:`Evaluation answers`}),(0,j.jsx)(`select`,{value:o.reference.id,onChange:e=>i(e.target.value),children:a.map(e=>(0,j.jsxs)(`option`,{value:e.reference.id,children:[e.kind===`baseline`?`Baseline`:`Candidate`,` · policy `,e.policyVersion]},e.reference.id))})]}),(0,j.jsx)(z,{connection:e,jobId:t,evaluation:o.reference},`${t}:${o.reference.id}:${o.reference.contentHash}`)]})}function z({connection:e,jobId:t,evaluation:n}){let[r,i]=(0,A.useState)(),[a,o]=(0,A.useState)([]),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(!0),[p,m]=(0,A.useState)(0),{id:h,contentHash:g}=n;return(0,A.useEffect)(()=>{let n=!0;return f(!0),u(null),c(null),b.trainingEvaluationTasks(e,t,{id:h,contentHash:g},r).then(e=>{n&&c(e)}).catch(e=>{n&&u(e instanceof Error?e.message:String(e))}).finally(()=>{n&&f(!1)}),()=>{n=!1}},[e,t,h,g,r,p]),(0,j.jsxs)(`div`,{className:`training-run-evaluation`,"aria-busy":d,children:[d?(0,j.jsx)(`p`,{className:`training-muted`,children:`Loading recorded answers…`}):null,l?(0,j.jsx)(v,{error:l,children:(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>m(e=>e+1),children:`Retry answers`})}):null,s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Tasks `,s.offset+1,`–`,s.offset+s.tasks.length,` of`,` `,s.total,`. Recorded outputs and scores are retained for this run.`]}),s.tasks.map((e,t)=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Example `,s.offset+t+1,` · score `,e.score.toFixed(3)]}),(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Instruction`}),(0,j.jsx)(`pre`,{children:e.input.instruction})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Context`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e.input.context,null,2)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Recorded output`}),(0,j.jsx)(`pre`,{children:e.output})]})]})]},e.taskId))]}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!a.length,onClick:()=>{i(a.at(-1)),o(e=>e.slice(0,-1))},children:`Previous tasks`}),(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!s?.nextCursor,onClick:()=>{s?.nextCursor&&(o(e=>[...e,r]),i(s.nextCursor))},children:`Next tasks`})]})]})}var B=new Set([`queued`,`starting`,`running`,`cancelling`,`reconciling`]);function we(e,t,n,i=!1){let a=[`training-run-detail`,c(e),t,i],o=!!(e&&t),s=r({queryKey:[...a,`retained`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,refresh:!1,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4}),l=r({queryKey:[...a,`hosted`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4,refetchInterval:n&&B.has(n)?3e3:!1,refetchIntervalInBackground:!1}),u=l.data??s.data??null;return{detail:u,loading:o&&!u&&(s.isPending||l.isPending),error:l.error?.message??s.error?.message??null,refresh:async()=>(await l.refetch()).data??null}}function Te({title:e,status:t,statusValue:n,versionStatus:r,method:i,baseModel:a,taskset:o,compute:s,duration:c,output:l,reward:u,telemetry:d,evidence:f,configuration:p,children:m,failure:h,onOpenTaskset:_,showHeader:v=!0}){let y=d?.cost.providerReportedUsd??d?.cost.estimatedUsd??f?.cost.totalUsd??null;return(0,j.jsxs)(`div`,{className:`labs-model-run-summary`,children:[v?(0,j.jsx)(`section`,{className:`labs-run-outcome-card`,children:(0,j.jsx)(`header`,{children:(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`labs-run-title-row`,children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(C,{label:t,value:n})]}),(0,j.jsxs)(`p`,{children:[Ee(i),` on `,a]})]})})}):null,m,(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Run setup`})}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(V,{label:`Training method`,value:i}),(0,j.jsx)(V,{label:`Base model`,value:a}),(0,j.jsx)(V,{label:`Compute`,value:s}),(0,j.jsx)(V,{label:`Output`,value:l}),r?(0,j.jsx)(V,{label:`Version status`,value:r}):null,(0,j.jsx)(V,{label:`Duration`,value:c}),(0,j.jsx)(V,{label:`Run cost`,value:y===null?`Not reported`:`$${y.toFixed(4)}`}),(0,j.jsx)(V,{label:le(n)?`Latest reward`:`Final reward`,value:u===null?`Not reported`:u.toFixed(4)}),p.map(e=>(0,j.jsx)(V,{label:e.label,value:e.value},e.label)),d||f?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(H,{label:`GPU`,value:U(d,f)}),(0,j.jsx)(H,{label:`Tokens`,value:`${W(d?.usage.promptTokens??f?.usage.inputTokens??null)} prompt · ${W(d?.usage.generatedTokens??f?.usage.outputTokens??null)} generated`}),(0,j.jsx)(H,{label:`Trajectories`,value:`${W(d?.usage.successfulTrajectories??f?.reward.eligibleTrajectoryCount??null)} succeeded · ${W(d?.usage.failedTrajectories??(f?f.reward.trajectoryCount-f.reward.eligibleTrajectoryCount:null))} failed`}),(0,j.jsx)(H,{label:`Optimizer updates`,value:W(d?.usage.optimizerSteps??f?.progress.committedOptimizerSteps??null)}),(0,j.jsx)(H,{label:`GPU time`,value:d?.usage.gpuSeconds==null?`Not reported`:`${d.usage.gpuSeconds.toFixed(1)} seconds`})]}):(0,j.jsx)(V,{label:`Resource usage`,value:`Not retained for this run`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:_?(0,j.jsxs)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:_,children:[(0,j.jsx)(`span`,{children:o}),(0,j.jsx)(g,{"aria-hidden":`true`,size:14})]}):o})]})]})]}),h?(0,j.jsx)(`p`,{className:`labs-training-error`,children:h}):null]})}function V({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function H({label:e,value:t}){return(0,j.jsx)(V,{label:e,value:t})}function U(e,t){let n=e?.resource.gpuCount??t?.resource.gpuCount??null,r=e?.resource.gpuType??t?.resource.gpuType??null;return n===null&&r===null?`Not reported`:`${n??`Unknown`} × ${r?De(r):`Unreported`}`}function W(e){return e===null?`Not reported`:e.toLocaleString()}function Ee(e){return e===`RFT`?`Reinforcement fine-tuning`:`${e} training`}function De(e){return e.split(` · `).map(e=>e.replaceAll(`_`,` `).replace(/\b[a-z]/g,e=>e.toUpperCase())).join(` · `)}function G({receipt:e,onOpenConversation:t}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Inconclusive benchmark`})}),(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.reason}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Held-out baseline tokens`,value:e.usage.baseline.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Adaptation baseline tokens`,value:e.usage.adaptation.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Refiner tokens`,value:e.usage.refiner.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Grader tokens`,value:e.usage.grader.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Observed / maximum spend`,value:`$${e.budget.observedSpendUsd.toFixed(4)} / $${e.budget.maximumSpendUsd.toFixed(2)}`}),(0,j.jsx)(Y,{label:`Harness candidate`,value:e.stopReason===`candidate_harness_unchanged`?`Unchanged`:`Lineage invalid`}),(0,j.jsx)(Y,{label:`Completed attempts`,value:e.attempts.length.toLocaleString()}),(0,j.jsx)(Y,{label:`Candidate attempts`,value:`Skipped`})]})]}),e.attempts.length?(0,j.jsx)(J,{receipt:e,onOpenConversation:t}):null]})}function Oe({run:e}){let t=[`baseline`,`adaptation`,`refiner`,`candidate_adaptation`,`candidate`,`comparison`],n={baseline:`Baseline`,adaptation:`Adaptation`,refiner:`Refiner`,candidate_adaptation:`Sequential adaptation`,candidate:`Candidate`,comparison:`Comparison`},r=Math.max(0,t.indexOf(e.evaluationProgress?.stage??`baseline`)),i=e.evaluationProgress?.completedAttempts??0,a=e.evaluationProgress?.totalAttempts??1;return(0,j.jsxs)(`div`,{className:`labs-benchmark-progress`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h3`,{children:`Benchmark progress`}),(0,j.jsxs)(`strong`,{children:[i,` of `,a,` attempts`]})]}),(0,j.jsx)(`div`,{className:`labs-benchmark-progress-track`,"aria-hidden":`true`,children:(0,j.jsx)(`span`,{style:{width:`${Math.min(100,i/a*100)}%`}})}),(0,j.jsx)(`ol`,{children:t.map((e,t)=>(0,j.jsxs)(`li`,{className:t<r?`complete`:t===r?`active`:void 0,children:[(0,j.jsx)(`span`,{}),n[e]]},e))})]})}function K({receipt:e}){let t=O(e),n=t.pairs.filter(e=>e.cohort===`held_out`),r=t.pairs.filter(e=>e.cohort===`adaptation`),i=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0;return(0,j.jsxs)(`div`,{className:`labs-benchmark-attempt-charts`,children:[(0,j.jsx)(q,{title:`Held-out tokens by task`,baseline:n.map(e=>e.baseline.totalTokens),candidate:n.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Adaptation tokens by task`,baseline:r.map(e=>e.baseline.totalTokens),candidate:r.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Held-out quality by task`,baseline:n.map(e=>e.baseline.score),candidate:n.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i}),(0,j.jsx)(q,{title:`Adaptation quality by task`,baseline:r.map(e=>e.baseline.score),candidate:r.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i})]})}function ke({receipt:e,run:t,tasksetName:n,onOpenTaskset:r}){let i=O(e),a=i.comparedTaskCount>0,o=i.passed,s=i.tokenDeltaPercent===null?`—`:`${i.tokenDeltaPercent>0?`+`:``}${i.tokenDeltaPercent.toFixed(2)}%`,c=e=>{let t=i.cohorts[e];return`${t.passedTaskCount}/${t.comparedTaskCount} passed`};return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Token efficiency`})}),a?(0,j.jsxs)(`div`,{className:`labs-benchmark-efficiency-summary`,children:[(0,j.jsxs)(`strong`,{children:[i.passedTaskCount,` of `,i.comparedTaskCount,` tasks passed`]}),(0,j.jsxs)(`p`,{children:[`A task passes only when its refined token count is strictly lower than its own baseline. `,i.failedTaskCount,` failed this token-efficiency test; aggregate usage changed by `,s,`.`]})]}):(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:`Paired task-level token evidence is unavailable for this run.`}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Execution`,value:f(t.status)}),(0,j.jsx)(Y,{label:`Token-efficiency result`,value:o?`Passed`:`Failed`}),(0,j.jsx)(Y,{label:`Efficiency passes`,value:`${i.passedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Efficiency failures`,value:`${i.failedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`All-task foreground tokens`,value:`${i.baselineTokens.toLocaleString()} → ${i.refinedTokens.toLocaleString()}`}),(0,j.jsx)(Y,{label:`Aggregate token change`,value:s}),(0,j.jsx)(Y,{label:`Adaptation replay`,value:c(`adaptation`)}),(0,j.jsx)(Y,{label:`Held-out replay`,value:c(`held_out`)}),(0,j.jsx)(Y,{label:`Task quality`,value:`${i.baselinePassedCount}/${i.comparedTaskCount} → ${i.refinedPassedCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Result lineage`,value:e.lineage.valid?`Valid`:`Invalid`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:r?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:r,children:n}):n})]})]})]})}function q({title:e,baseline:t,candidate:n,format:r,summarize:i=e=>e.reduce((e,t)=>e+t,0)}){let a=t.filter(e=>e!==null),o=n.filter(e=>e!==null),s=Math.max(1,...a,...o),c=Math.max(2,t.length,n.length),l=e=>{let t=[],n=[];return e.forEach((e,r)=>{if(e===null){n.length&&t.push(n.join(` `)),n=[];return}let i=6+r/(c-1)*88,a=44-e/s*36;n.push(`${i},${a}`)}),n.length&&t.push(n.join(` `)),t},u=e=>e.flatMap((e,t)=>e===null?[]:[{x:6+t/(c-1)*88,y:44-e/s*36}]);return(0,j.jsxs)(`section`,{className:`labs-benchmark-line-chart`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h4`,{children:e}),(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`span`,{children:[`Baseline `,r(i(a))]}),(0,j.jsxs)(`span`,{children:[`Refined `,r(i(o))]})]})]}),(0,j.jsxs)(`svg`,{"aria-label":e,role:`img`,viewBox:`0 0 100 50`,preserveAspectRatio:`none`,children:[(0,j.jsx)(`line`,{x1:`6`,x2:`94`,y1:`44`,y2:`44`}),l(t).map((e,t)=>(0,j.jsx)(`polyline`,{className:`baseline`,points:e},`baseline-${t}`)),l(n).map((e,t)=>(0,j.jsx)(`polyline`,{className:`candidate`,points:e},`candidate-${t}`)),u(t).map((e,t)=>(0,j.jsx)(`circle`,{className:`baseline`,cx:e.x,cy:e.y,r:`1`},`baseline-point-${t}`)),u(n).map((e,t)=>(0,j.jsx)(`circle`,{className:`candidate`,cx:e.x,cy:e.y,r:`1`},`candidate-point-${t}`))]})]})}function J({receipt:e,onOpenConversation:t}){let n=e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?T(e.attempts??[]):e.attempts??[];return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?`Selected task results`:`Completed attempts`})}),(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table labs-benchmark-attempt-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Task`}),(0,j.jsx)(`th`,{children:`Phase`}),(0,j.jsx)(`th`,{children:`Result`}),(0,j.jsx)(`th`,{children:`Score`}),(0,j.jsx)(`th`,{children:`Tokens`}),(0,j.jsx)(`th`,{children:`Work chat`})]})}),(0,j.jsx)(`tbody`,{children:n.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:Ae(e.taskId)}),(0,j.jsx)(`td`,{children:e.phase}),(0,j.jsx)(`td`,{children:(0,j.jsx)(C,{label:e.passed?`Passed`:`Failed`,value:e.passed?`succeeded`:`failed`})}),(0,j.jsx)(`td`,{children:e.score===null?`—`:e.score.toFixed(2)}),(0,j.jsx)(`td`,{children:e.totalTokens.toLocaleString()}),(0,j.jsx)(`td`,{children:e.sessionId?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:()=>t(e.sessionId),children:`Open chat`}):`Not retained`})]},`${e.phase}:${e.attemptId}`))})]})})]})}function Ae(e){return e.replace(/^(?:adaptation|frozen)-/,``).replaceAll(`-`,` `).replace(/^./,e=>e.toUpperCase())}function Y({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function je(e){let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(r===0?0:2)} ${t[r]}`}function Me({error:e,events:t,loading:n,pending:r}){let[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)({}),[c,l]=(0,A.useState)(!0),u=(0,A.useRef)(null),f=(0,A.useRef)(null),p=(0,A.useRef)(null),m=(0,A.useMemo)(()=>Ne(t),[t]),g=(0,A.useMemo)(()=>t.filter(e=>o[X(e)]??Pe(X(e))),[t,o]),v=m.filter(e=>o[e.id]??Pe(e.id)).length,b=m.length>0&&v===m.length,S=v>0&&!b;return(0,A.useEffect)(()=>{p.current&&(p.current.indeterminate=S)},[S]),(0,A.useEffect)(()=>{if(!i)return;let e=e=>{f.current?.contains(e.target)||a(!1)},t=e=>{e.key===`Escape`&&a(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[i]),(0,A.useLayoutEffect)(()=>{let e=u.current;e&&c&&(e.scrollTop=e.scrollHeight)},[e,c,r,g]),n&&!t.length?(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading run events…`}):t.length?(0,j.jsxs)(`div`,{className:`training-event-log-shell`,children:[(0,j.jsxs)(`div`,{className:`training-event-log-toolbar`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(`strong`,{children:`Activity log`})}),(0,j.jsxs)(`div`,{className:`training-event-filter`,ref:f,children:[(0,j.jsxs)(`button`,{"aria-expanded":i,"aria-haspopup":`menu`,className:`training-event-filter-trigger`,type:`button`,onClick:()=>a(e=>!e),children:[(0,j.jsx)(y,{"aria-hidden":`true`,size:14}),`Event types`,(0,j.jsxs)(`span`,{children:[v,`/`,m.length]}),(0,j.jsx)(h,{"aria-hidden":`true`,size:13})]}),i?(0,j.jsxs)(`div`,{"aria-label":`Filter training activity by event type`,className:`training-event-filter-menu`,role:`menu`,children:[(0,j.jsxs)(`label`,{className:`training-event-filter-option select-all`,children:[(0,j.jsx)(`input`,{checked:b,ref:p,type:`checkbox`,onChange:e=>{let t=e.currentTarget.checked;s(Object.fromEntries(m.map(e=>[e.id,t])))}}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),`Select all`]}),(0,j.jsx)(`div`,{className:`training-event-filter-options`,children:m.map(e=>{let t=o[e.id]??Pe(e.id);return(0,j.jsxs)(`label`,{className:`training-event-filter-option`,children:[(0,j.jsx)(`input`,{checked:t,type:`checkbox`,onChange:t=>s(n=>({...n,[e.id]:t.currentTarget.checked}))}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),(0,j.jsx)(`span`,{children:e.label}),(0,j.jsx)(`small`,{children:e.count.toLocaleString()})]},e.id)})})]}):null]})]}),(0,j.jsxs)(`div`,{"aria-label":`Training activity log`,"aria-live":`polite`,className:`training-event-log`,ref:u,role:`log`,onScroll:e=>{let t=e.currentTarget,n=t.scrollHeight-t.scrollTop-t.clientHeight;l(n<=6)},children:[(0,j.jsxs)(`div`,{"aria-hidden":`true`,className:`training-event-log-header`,children:[(0,j.jsx)(`span`,{children:`Time`}),(0,j.jsx)(`span`,{children:`Event type`}),(0,j.jsx)(`span`,{children:`Details`})]}),g.map(e=>(0,j.jsxs)(`div`,{className:`training-event-log-line ${e.type}`,children:[(0,j.jsx)(`time`,{dateTime:e.timestamp,children:d(e.timestamp)}),(0,j.jsx)(`span`,{children:Fe(X(e))}),(0,j.jsx)(`code`,{children:Ie(e)})]},e.id)),r&&!e?(0,j.jsxs)(`div`,{className:`training-event-log-loading`,role:`status`,children:[(0,j.jsx)(_,{"aria-hidden":`true`,className:`spin`,size:14}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Waiting for new activity`})]}):null,g.length?null:(0,j.jsx)(`div`,{className:`training-event-log-empty`,children:`No events match the selected event types.`}),e?(0,j.jsxs)(`div`,{className:`training-event-log-line failure`,children:[(0,j.jsx)(`time`,{children:`—`}),(0,j.jsx)(`span`,{children:`Failure`}),(0,j.jsx)(`code`,{children:e})]}):null]})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:e??`No normalized run events were recorded.`})}function X(e){return typeof e.payload.remoteEventType==`string`&&e.payload.remoteEventType.trim()?e.payload.remoteEventType:typeof e.payload.telemetryType==`string`&&e.payload.telemetryType.trim()?e.payload.telemetryType:e.type}function Ne(e){let t=new Map;for(let n of e){let e=X(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].map(([e,t])=>({id:e,count:t,label:Fe(e)})).sort((e,t)=>e.label.localeCompare(t.label))}function Pe(e){return e!==`metric`&&!e.endsWith(`_metric`)}function Fe(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Ie(e){let t=e.payload,n=Q(t.step),r=Q(t.maxSteps);if(typeof t.telemetryType==`string`){let e=typeof t.message==`string`?t.message:null,r=typeof t.errorCode==`string`?t.errorCode:null,i=typeof t.telemetrySource==`string`?` · ${t.telemetrySource}`:``;return`${e??t.telemetryType.replaceAll(`_`,` `)}${n==null?``:` · step ${n}`}${i}${r?` · ${r}`:``}`}if(typeof t.remoteEventType==`string`){let e=Le(t.remoteEventType),r=typeof t.remotePhase==`string`?Re(t.remotePhase):null,i=typeof t.errorCode==`string`&&t.errorCode.trim()?t.errorCode.trim():null;return[e,r,n==null?null:`step ${n}`,i?`error ${i}`:null].filter(e=>!!e).join(` · `)}if(e.type===`start`)return typeof t.device==`string`?`Worker started on ${t.device}.`:`Worker started.`;if(e.type===`progress`&&n!=null)return r==null?`Step ${n}.`:`Step ${n} of ${r}.`;if(e.type===`metric`){let e=typeof t.metricKind==`string`?t.metricKind.replaceAll(`_`,` `):`metric`,r=[Z(`loss`,t.loss),Z(`reward`,t.meanReward??t.reward),Z(`policy loss`,t.policyLoss),Z(`value loss`,t.valueLoss),Z(`preference accuracy`,t.preferenceAccuracy,Be)].filter(e=>!!e),i=typeof t.failureClass==`string`?t.failureClass:null,a=typeof t.failureCode==`string`?t.failureCode:null,o=typeof t.metricId==`string`&&typeof t.value==`number`?` · ${t.metricId}: ${t.value.toPrecision(4)}`:``;return`${e}${n==null?``:` · step ${n}`}${o}${i?` · ${i}`:``}${a?` · ${a}`:``}${r.length?` · ${r.join(` · `)}`:``}`}if(e.type===`checkpoint`){let e=Q(t.policyVersion),n=Q(t.sizeBytes),r=[e==null?null:`policy ${e}`,n==null?null:je(n),t.final===!0?`final`:null].filter(e=>!!e);return r.length?`Checkpoint committed · ${r.join(` · `)}.`:`Checkpoint committed.`}if(e.type===`complete`){let e=Q(t.artifactCount);return e==null?`Worker completed.`:`Worker completed with ${e} artifacts.`}return e.type===`failure`&&typeof t.message==`string`?t.message:Object.keys(t).length?JSON.stringify(t):`Recorded.`}function Le(e){return{drain:`Rollout drain`,infer:`Model inference`,materialize_checkpoint:`Checkpoint materialization`,optimizer_metric:`Optimizer metric`,provision_gpu:`GPU provisioning`,rollout_metric:`Rollout trajectory`,score_reward_model:`Reward scoring`,start_inference:`Policy server`,train_step:`Optimizer update`,upload_checkpoint:`Checkpoint upload`}[e]??ze(e)}function Re(e){return{committed:`committed`,completed:`completed`,eligible:`recorded`,failed:`failed`,running:`running`,succeeded:`succeeded`}[e]??ze(e).toLocaleLowerCase()}function ze(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Z(e,t,n=e=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(e)){let r=Q(t);return r==null?null:`${e} ${n(r)}`}function Q(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Be(e){return`${(e*100).toFixed(1)}%`}function Ve({connection:e,detailTab:t,onDetailTabChange:n,selectedEntryKey:r,workproduct:c,runs:d,training:h,onOpenDataset:g,onOpenConversation:_,detailKind:v}){let y=h.payload,[b,x]=(0,A.useState)(null),C=(0,A.useMemo)(()=>ne(c,d,y),[d,y,c]),T=(0,A.useMemo)(()=>oe(c,d,y),[d,y,c]),E=(0,A.useMemo)(()=>ce(c,y),[y,c]),O=(0,A.useMemo)(()=>re(c,d,y),[d,y,c]),ue=(0,A.useMemo)(()=>new Map(O.map(e=>[e.id,e])),[O]),k=(0,A.useMemo)(()=>ae(C,T),[C,T]).find(e=>e.key===r)??null,M=r.startsWith(`model-run:`)?r.slice(10):null,N=M?E.find(e=>e.id===M)??null:k?.job?E.find(e=>e.id===k.job?.metadata.modelRunId)??null:null,P=k?.job??(N?y?.jobs.find(e=>e.id===N.id||e.metadata.modelRunId===N.id)??null:null),ge=y?.comparisonSeriesEntries.find(e=>e.modelRunId===N?.id||e.modelRunId===P?.metadata.modelRunId)??null,ve=s.shape.recovery.safeParse(P?.metadata.hostedRecovery),F=ve.success?ve.data:void 0,ye=i.shape.continuation.safeParse(P?.metadata.hostedContinuation),I=ye.success?ye.data:void 0,L=I?T.find(e=>e.lineage.jobId===I.sourceArtifact.jobId):void 0,be=F?`Recovered checkpoint`:L?`Version ${L.number}`:I?`Checkpoint ${I.sourceArtifact.checkpointId}`:typeof P?.metadata.parentHostedArtifactId==`string`?`Prior hosted run`:pe(y,ge),xe=(0,A.useMemo)(()=>{let e=se(C,T,E);return te(e,N?.kind===`evaluation`?`evals`:`training`)},[C,E,N?.kind,T]),R=xe.findIndex(e=>e.key===r||P!==null&&e.job?.id===P.id||N!==null&&e.lifecycleRun?.id===N.id),z=R<0?null:xe.length-R,B=k?.version??(N?.adapterArtifactLineageId?T.find(e=>e.lineage.id===N.adapterArtifactLineageId)??null:null),V=(N?y?.modelVersions.find(e=>e.id===N.modelVersionId)?.baseModel.modelId:null)??y?.modelVersions.filter(e=>e.modelId===c.id&&e.kind===`base_reference`).sort((e,t)=>t.version-e.version)[0]?.baseModel.modelId??(typeof P?.metadata.baseModelId==`string`?P.metadata.baseModelId:null),H=B?.lineage.frozenEvaluationArtifactId??null,U=B?.plan??(P?ue.get(P.planId)??null:null),W=B?.taskset??D(y).find(e=>e.id===(N?.taskset.id??U?.tasksetId??P?.metadata.tasksetId))??null,Ee=W?.name??(typeof P?.metadata.tasksetId==`string`?P.metadata.tasksetId:`Unavailable`),De=N?.method??U?.recipe.method??Ke(P?.metadata),G=we(e,P?.id??null,P?.status??null,t===`evaluation`),Oe=P?y?.rolloutReceipts.filter(e=>e.jobId===P.id)??[]:[],K=G.detail?.managedEvidence??null,ke=G.detail?.events.some(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`)??!1,q=w({lifecycleRun:N,job:G.detail?.job??P}),J=le(q),Ae=N?.status===`failed`&&P?.metadata.phase===`artifact_collection_failed`,Y=De===`grpo`,X=Ue(P?.metadata),Ne=(U&&(U.recipe.method===`sft`||U.recipe.method===`dpo`||U.recipe.method===`grpo`)?U.recipe.optimizer.maxSteps:null)??K?.progress.targetOptimizerSteps??null,Pe=Ne!==null&&typeof P?.metadata.progress==`number`&&Number.isFinite(P.metadata.progress)?Math.floor(Math.max(0,P.metadata.progress)*Ne):0,Fe=Math.max(0,X?.optimizerUpdatesApplied??0,Pe,G.detail?.policyMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,G.detail?.stepMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,K?.progress.committedOptimizerSteps??0),Ie=He(Y&&X?X.groupsCompleted:Fe,Y&&X?X.groupsTarget:Ne),Le=v===`run`?{id:`details`,label:`Details`}:{id:`overview`,label:`Overview`},Re=[...v===`run`&&P?[{id:`metrics`,label:`Metrics`}]:[],Le,...v===`version`&&P?[{id:`metrics`,label:`Metrics`}]:[],{id:`evaluation`,label:`Evaluation`},...Oe.length||ke?[{id:`rollouts`,label:`Rollouts`}]:[],{id:`artifacts`,label:`Artifacts`},...P?[{id:`activity`,label:`Activity`}]:[]],ze=t,Z=Re.some(e=>e.id===ze)?ze:Re[0].id;return!k&&!N&&h.loading?(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:`Run details`}),(0,j.jsx)(`p`,{role:`status`,children:`Loading training run…`})]}):!k&&!N?(0,j.jsx)(`div`,{className:`labs-model-version-detail`,children:(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`This training attempt is no longer available.`})}):N?.kind===`evaluation`?(0,j.jsx)(We,{run:N,runNumber:z,tasksetName:W?.name??`Unavailable`,onOpenTaskset:W?()=>g(W.id):void 0,onOpenConversation:_}):(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,description:`${u(De)} on ${Ge(U,V)}`,status:(0,j.jsx)(ee,{status:q}),actions:J&&(N||P)?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null||q===`cancelling`,onClick:async()=>{let e=N?.id??P.id,t=N?await h.actions.cancelModelRun(N.id):await h.actions.cancelJob(P.id);x({runId:e,message:t?`Cancellation requested. Waiting for the training service to confirm.`:`Cancellation could not be requested. Try again.`})},children:q===`cancelling`?`Cancelling…`:h.busyAction===`cancel-model-run`||h.busyAction===`cancel-job`?`Requesting cancellation…`:`Cancel run`}):Ae&&N?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null,onClick:async()=>{let e=await h.actions.retryModelRunCollection(N.id);x({runId:N.id,message:e?.state===`succeeded`?`Outputs collected from the completed training job.`:`Collection failed. The training job and its outputs are retained.`})},children:h.busyAction===`retry-model-run-collection`?`Collecting…`:`Retry collection`}):void 0,metrics:[{label:Y&&X?`Training groups`:`Training steps`,value:Ie.value},...F&&X?[{label:`Optimizer updates`,value:`${Math.max(0,X.optimizerUpdatesApplied-F.policyVersion)} new · ${F.policyVersion} reused`}]:[],{label:J?`Latest reward`:`Final reward`,value:Je(N?.reward?.raw??K?.reward.finalMean??null)},{label:`Duration`,value:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`},{label:`Output`,value:B?`Version ${B.number}`:`No version`},{label:`Based on`,value:be},{label:`Taskset`,value:Ee,onSelect:W?()=>g(W.id):void 0,ariaLabel:W?`Open Taskset ${W.name}`:void 0}]}),(0,j.jsx)(a,{recovery:F}),I?(0,j.jsx)(o,{continuation:{sourceJobId:I.sourceArtifact.jobId,checkpointId:I.sourceArtifact.checkpointId}}):null,b&&b.runId===(N?.id??P?.id)?(0,j.jsx)(`p`,{role:`status`,children:b.message}):null,(0,j.jsxs)(`section`,{className:`labs-run-detail-tabs`,children:[(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Run details`,children:Re.map(e=>(0,j.jsx)(`button`,{"aria-controls":`run-detail-panel-${e.id}`,"aria-selected":Z===e.id,className:Z===e.id?`active`:void 0,id:`run-detail-tab-${e.id}`,role:`tab`,type:`button`,onClick:()=>n(e.id),children:e.label},e.id))}),(0,j.jsxs)(`div`,{"aria-labelledby":`run-detail-tab-${Z}`,className:`labs-run-detail-tab-panel`,id:`run-detail-panel-${Z}`,role:`tabpanel`,children:[Z===Le.id?(0,j.jsx)(Te,{baseModel:Ge(U,V),compute:N?m(N.destinationId??``):U?m(U.destinationId):P?m(P.destinationId):`Not recorded`,duration:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`,failure:P?.error??N?.failure??null,configuration:[...I?[{label:`Starting checkpoint`,value:[L?`Version ${L.number}`:null,I.sourceArtifact.checkpointId].filter(Boolean).join(` · `)},{label:`Parent run`,value:I.sourceArtifact.jobId},{label:`Parent artifact`,value:I.sourceArtifact.artifactId},{label:`Optimizer`,value:I.optimizerMode===`reset`?`Reset`:`Continue`}]:fe(y,ge),...de(U)],evidence:K,method:u(De),output:B?`Version ${B.number}`:`No version created`,reward:N?.reward?.raw??K?.reward.finalMean??null,status:N?f(N.status):P?f(P.status):`Imported`,statusValue:N?.status??P?.status??`imported`,taskset:Ee,telemetry:N?.receipt?.schemaVersion===`openpond.modelRunReceipt.v1`?N.receipt.telemetry:null,title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,versionStatus:B?B.current?`Active`:`Available`:null,onOpenTaskset:W?()=>g(W.id):void 0,showHeader:!1}):null,Z===`metrics`&&P?(0,j.jsx)(S,{detail:G.detail,error:G.error,loading:G.loading,taskset:W}):null,Z===`artifacts`?(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)($,{label:`Training attempt`,value:P?.id??`Provider import`}),(0,j.jsx)($,{label:`Taskset`,value:Ee}),(0,j.jsx)($,{label:`Prepared data`,value:P?.bundleHash??`Provider managed`}),(0,j.jsx)($,{label:`Version ID`,value:B?.lineage.id??`No version created`}),K?.checkpoint?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)($,{label:`Checkpoint`,value:K.checkpoint.id}),(0,j.jsx)($,{label:`Checkpoint size`,value:K.checkpoint.sizeBytes==null?`Not reported`:je(K.checkpoint.sizeBytes)}),(0,j.jsx)($,{label:`Checkpoint hash`,value:K.checkpoint.sha256??`Not reported`})]}):null,K?.canonicalPublication.state?(0,j.jsx)($,{label:`Registry publication`,value:Ye(K.canonicalPublication.state)}):null]}):null,Z===`evaluation`?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[!K?.evaluations.length||G.detail?.evaluation?(0,j.jsx)(_e,{detail:G.detail,loading:G.loading,pending:J}):null,!G.detail?.evaluation&&K?.evaluations.length?(0,j.jsx)(`dl`,{className:`labs-inline-facts`,children:K.evaluations.map(e=>(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline score`:`Candidate score`,value:e.score==null?`Not reported`:e.score.toFixed(6)}),(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline coverage`:`Candidate coverage`,value:e.taskCount==null?`Not reported`:e.targetTaskCount==null?`${e.taskCount} ${e.taskCount===1?`task`:`tasks`} scored`:`${e.taskCount} of ${e.targetTaskCount} ${e.targetTaskCount===1?`task`:`tasks`} scored`})]},`${e.kind}:${e.policyVersion}`))}):null,B&&P?.destinationId===`openpond_managed`?(0,j.jsx)(Se,{connection:e,lineageId:B.lineage.id,onSaved:h.refresh},B.lineage.id):null,!B&&P?.metadata.source===`hosted_model_project_import`&&P.status===`succeeded`?(0,j.jsx)(Se,{connection:e,jobId:P.id,onSaved:h.refresh},`candidate:${P.id}`):null,P&&K?.evaluations.length?(0,j.jsx)(Ce,{connection:e,jobId:P.id,evaluations:K.evaluations},P.id):null,H?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>void h.actions.downloadArtifact(H),children:`Download evaluation receipt`}):null]}):null,Z===`rollouts`?Oe.length?(0,j.jsx)(he,{receipts:Oe}):(0,j.jsx)(me,{events:G.detail?.events??[]}):null,Z===`activity`&&P?(0,j.jsx)(Me,{error:P.error??G.error,events:G.detail?.events??[],loading:G.loading,pending:J}):null]})]})]})}function He(e,t){let n=Math.max(0,Math.floor(e));if(t===null||!Number.isFinite(t)||t<=0)return{value:n.toLocaleString(),hint:n===1?`completed update`:`completed updates`};let r=Math.max(1,Math.floor(t));return{value:`${n.toLocaleString()} / ${r.toLocaleString()}`,hint:`completed / planned`}}function Ue(e){let t=e?.rolloutProgress;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return[`groupsCompleted`,`groupsTarget`,`optimizerUpdatesApplied`,`optimizerUpdatesSkipped`].some(e=>typeof n[e]!=`number`||!Number.isInteger(n[e])||n[e]<0)?null:{groupsCompleted:n.groupsCompleted,groupsTarget:n.groupsTarget,optimizerUpdatesApplied:n.optimizerUpdatesApplied,optimizerUpdatesSkipped:n.optimizerUpdatesSkipped}}function We({run:e,runNumber:t,tasksetName:n,onOpenTaskset:r,onOpenConversation:i}){let[a,o]=(0,A.useState)(`results`),s=e.receipt?.schemaVersion===`openpond.modelEvaluationReceipt.v1`?e.receipt:null,c=e.receipt?.schemaVersion===`openpond.modelEvaluationStopReceipt.v1`?e.receipt:null,l=s?E(s):null,u=s?O(s):null;return(0,j.jsxs)(`div`,{className:`labs-model-version-detail labs-model-evaluation-detail`,children:[(0,j.jsx)(ie,{title:t?`Eval ${t}`:`Evaluation run`,description:`Harness Refiner benchmark · ${n}`,status:(0,j.jsx)(C,{label:s?u?.comparedTaskCount?`${u.passedTaskCount}/${u.comparedTaskCount} passed`:`No paired result`:c?`Inconclusive`:f(e.status),value:s?u?.comparedTaskCount&&u.passed?`succeeded`:`neutral`:c?.terminalClassification??e.status}),metrics:[{label:`Baseline pass rate`,value:s?`${(s.quality.baselinePassRate*100).toFixed(1)}%`:`—`},{label:`Candidate pass rate`,value:s?`${(s.quality.candidatePassRate*100).toFixed(1)}%`:`—`},{label:`Scenarios`,value:s?.attempts?.length??0},{label:`Execution`,value:f(e.status)}]}),(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Evaluation details`,children:[`results`,`scenarios`,`activity`].map(e=>(0,j.jsx)(`button`,{className:a===e?`active`:void 0,"aria-selected":a===e,role:`tab`,type:`button`,onClick:()=>o(e),children:e===`results`?`Results`:e===`scenarios`?`Scenarios`:`Activity`},e))}),a===`results`&&s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ue,{series:[{id:`baseline`,label:`Held-out baseline`,inputTokens:l.baseline.inputTokens,outputTokens:l.baseline.outputTokens,tokens:l.baseline.totalTokens,passRate:s.quality.baselinePassRate,costUsd:l.baseline.costUsd},{id:`candidate`,label:`Held-out refined`,inputTokens:l.candidate.inputTokens,outputTokens:l.candidate.outputTokens,tokens:l.candidate.totalTokens,passRate:s.quality.candidatePassRate,costUsd:l.candidate.costUsd}]}),(0,j.jsx)(ue,{series:[{id:`adaptation-baseline`,label:`Adaptation baseline`,inputTokens:l.adaptation.inputTokens,outputTokens:l.adaptation.outputTokens,tokens:l.adaptation.totalTokens,passRate:s.quality.adaptationBaselinePassRate,costUsd:l.adaptation.costUsd},{id:`adaptation-candidate`,label:`Adaptation replay`,inputTokens:l.candidate_adaptation.inputTokens,outputTokens:l.candidate_adaptation.outputTokens,tokens:l.candidate_adaptation.totalTokens,passRate:s.quality.adaptationCandidatePassRate,costUsd:l.candidate_adaptation.costUsd}]}),(0,j.jsx)(ke,{receipt:s,run:e,tasksetName:n,onOpenTaskset:r})]}):a===`results`&&c?(0,j.jsx)(G,{receipt:c,onOpenConversation:i}):a===`results`?(0,j.jsx)(`section`,{className:`labs-run-summary-card`,children:e.failure?(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.failure}):(0,j.jsx)(Oe,{run:e})}):null,a===`scenarios`&&s?(0,j.jsxs)(j.Fragment,{children:[(s.attempts??[]).length?(0,j.jsx)(K,{receipt:s}):null,(s.attempts??[]).length?(0,j.jsx)(J,{receipt:s,onOpenConversation:i}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No per-scenario attempts were retained.`})]}):null,a===`activity`?(0,j.jsxs)(`dl`,{className:`labs-inline-facts`,children:[(0,j.jsx)($,{label:`Run ID`,value:e.id}),(0,j.jsx)($,{label:`Status`,value:f(e.status)}),(0,j.jsx)($,{label:`Started`,value:e.startedAt?d(e.startedAt):`Not started`}),(0,j.jsx)($,{label:`Completed`,value:e.completedAt?d(e.completedAt):`In progress`})]}):null]})}function Ge(e,t=null){if(!e)return t?qe(t):`Not recorded`;let n=e.recipe.method===`sft`||e.recipe.method===`grpo`?e.recipe.baseModel:e.recipe.method===`dpo`?e.recipe.policyModel:e.recipe.method===`ppo`?e.recipe.policyOptimization.policyModel:null;return n?qe(n.id):`Not recorded`}function Ke(e){let t=e?.trainingMethod;return t===`sft`||t===`dpo`||t===`grpo`||t===`ppo`||t===`sdft`||t===`opd`||t===`opsd`||t===`sdpo`?t:null}function qe(e){return e.split(`/`).at(-1)??e}function Je(e){return e===null?`Not reported`:e.toFixed(4)}function $({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function Ye(e){return e?e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase()):`Pending`}export{Ve as LabModelVersionDetailPage,Ie as eventSummary,He as formatTrainingProgress,Ue as managedRolloutProgress};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D9WbJMSq.js";import"./icons-D7jkCa2d.js";import{L as r,R as i}from"./training-model-data-DB-jg6L_.js";import{t as a}from"./image-B-PjDSwU.js";import{t as o}from"./loader-circle-CPaJeTDy.js";import{t as s}from"./maximize-2-BZX38cpr.js";import{t as c}from"./x-Dqpel42h.js";import{Bt as l,an as u,bn as d}from"./App-DY2R8Z6r.js";var f=e(t(),1),p=n();function m({connection:e,expanded:t,selection:n,onClose:i,onResizeStart:u,onToggleExpanded:m}){let v=`${n.scope}:${n.name}`,[y,b]=(0,f.useState)({selectionKey:v,path:n.files[0]??`SKILL.md`}),x=y.selectionKey===v&&n.files.includes(y.path)?y.path:n.files[0]??`SKILL.md`,[S,C]=(0,f.useState)(null),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(!1);(0,f.useEffect)(()=>{if(!e){C(null),T(`Connect to the local OpenPond server to load this skill source.`);return}let t=!1;return D(!0),T(null),C(null),d.skillSourceFile(e,n.scope,n.name,x).then(e=>{t||C(e)}).catch(e=>{t||T(e instanceof Error?e.message:String(e))}).finally(()=>{t||D(!1)}),()=>{t=!0}},[e,x,n.name,n.scope]);let O=x.split(`/`).at(-1)??x;return(0,p.jsxs)(`aside`,{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${t?`expanded`:``}`,"aria-label":`Skill package source: ${n.name}`,children:[t?null:(0,p.jsx)(`div`,{className:`workspace-diff-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize skill source`,onPointerDown:u}),(0,p.jsxs)(`div`,{className:`workspace-diff-topbar native-skill-sidebar-topbar`,children:[(0,p.jsx)(`div`,{className:`workspace-diff-tabs`,role:`tablist`,"aria-label":`Selected skill file`,children:(0,p.jsxs)(`button`,{className:`workspace-diff-tab active`,type:`button`,role:`tab`,"aria-selected":!0,children:[(0,p.jsx)(g,{path:x}),(0,p.jsx)(`span`,{children:O})]})}),(0,p.jsxs)(`div`,{className:`workspace-diff-toolbar-actions`,children:[(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:t?`Dock sidebar`:`Expand sidebar`,"aria-label":t?`Dock sidebar`:`Expand sidebar`,onClick:m,children:t?(0,p.jsx)(r,{size:14}):(0,p.jsx)(s,{size:14})}),(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:`Close skill source`,"aria-label":`Close skill source`,onClick:i,children:(0,p.jsx)(c,{size:14})})]})]}),(0,p.jsxs)(`div`,{className:`lab-skill-source-layout`,children:[(0,p.jsxs)(`nav`,{className:`lab-skill-file-list`,"aria-label":`${n.name} package files`,children:[(0,p.jsx)(`div`,{className:`lab-skill-file-list-heading`,children:`Package files`}),n.files.map(e=>(0,p.jsxs)(`button`,{"aria-current":e===x?`page`:void 0,className:e===x?`active`:void 0,type:`button`,title:e,onClick:()=>b({selectionKey:v,path:e}),children:[(0,p.jsx)(g,{path:e}),(0,p.jsx)(`span`,{children:e})]},e))]}),(0,p.jsxs)(`div`,{className:`native-skill-sidebar-body lab-skill-source-body`,children:[(0,p.jsxs)(`header`,{className:`native-skill-source-header`,children:[(0,p.jsxs)(`div`,{className:`lab-skill-source-title-row`,children:[(0,p.jsx)(`h2`,{children:n.name}),(0,p.jsx)(`span`,{children:h(n.scope)})]}),(0,p.jsx)(`p`,{children:n.description}),(0,p.jsx)(`code`,{children:n.packagePath})]}),E?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(o,{className:`spin`,size:16}),` Loading source…`]}):w?(0,p.jsx)(l,{error:w}):S?.isBinary?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(a,{size:18}),`Binary asset · `,_(S.byteSize)]}):(0,p.jsx)(`pre`,{className:`native-skill-markdown-source`,"aria-label":`${O} source`,children:(0,p.jsx)(`code`,{children:S?.content??``})})]})]})]})}function h(e){return e===`codex`?`Codex skill`:e===`extension`?`GitHub extension`:`OpenPond skill`}function g({path:e}){let t=e.split(`.`).at(-1)?.toLowerCase();return[`avif`,`gif`,`jpeg`,`jpg`,`png`,`webp`].includes(t??``)?(0,p.jsx)(a,{size:14}):[`md`,`txt`,`yaml`,`yml`].includes(t??``)?(0,p.jsx)(u,{size:14}):(0,p.jsx)(i,{size:14})}function _(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{m as LabSkillSidebar};