openpond 0.2.67 → 0.2.68

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 (564) hide show
  1. package/dist/app-server.d.ts +668 -1
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{account-context-TIJOM22A.js → account-context-MWB6HN6I.js} +1 -1
  4. package/dist/chunks/{acp-NASAJV5E.js → acp-2OIXATRY.js} +1 -1
  5. package/dist/chunks/{acp-agent-C3CRF6DT.js → acp-agent-PAGX2B47.js} +1 -1
  6. package/dist/chunks/actions-command-2VE6YI4W.js +2 -0
  7. package/dist/chunks/{app-layer-XIEZ6ALX.js → app-layer-YNEUEOEP.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-IB6M35NS.js → app-server-connected-apps-TZOAUOYR.js} +1 -1
  9. package/dist/chunks/app-server-evaluations-RRLYWLPK.js +2 -0
  10. package/dist/chunks/app-server-harness-services-XXM336NU.js +2 -0
  11. package/dist/chunks/app-server-runtime-GBX65JJ7.js +2 -0
  12. package/dist/chunks/apps-RSFEJOQN.js +2 -0
  13. package/dist/chunks/chunk-2PXKSAG6.js +2 -0
  14. package/dist/chunks/{chunk-XEU4J4GJ.js → chunk-2TGHZXJE.js} +2 -2
  15. package/dist/chunks/{chunk-AXO6OHJB.js → chunk-3A2Y7UK3.js} +1 -1
  16. package/dist/chunks/chunk-3Z4VM2LF.js +4 -0
  17. package/dist/chunks/{chunk-V3T2OJBZ.js → chunk-4BUM6JEC.js} +2 -2
  18. package/dist/chunks/chunk-4G3GTEVS.js +23 -0
  19. package/dist/chunks/{chunk-43QYVOYA.js → chunk-4KNPCJR4.js} +1 -1
  20. package/dist/chunks/chunk-4KTGYHCE.js +2 -0
  21. package/dist/chunks/chunk-4PUOWSDE.js +13 -0
  22. package/dist/chunks/chunk-55YD4UTW.js +2 -0
  23. package/dist/chunks/chunk-5G7BQAUA.js +2 -0
  24. package/dist/chunks/chunk-65FJWWXG.js +2 -0
  25. package/dist/chunks/{chunk-4EZI4KCT.js → chunk-65WRWLUD.js} +1 -1
  26. package/dist/chunks/chunk-6D3FI2XT.js +2 -0
  27. package/dist/chunks/chunk-73TW6BKK.js +6 -0
  28. package/dist/chunks/{chunk-5TPYBXWM.js → chunk-7NCM6GBN.js} +1 -1
  29. package/dist/chunks/chunk-7OFD6TFD.js +2 -0
  30. package/dist/chunks/chunk-7OKZCJHS.js +3 -0
  31. package/dist/chunks/{chunk-ADOCQA4D.js → chunk-7PKDJHT6.js} +1 -1
  32. package/dist/chunks/chunk-7RJOCGQ6.js +2 -0
  33. package/dist/chunks/{chunk-YR5URT73.js → chunk-7RSQOC5M.js} +3 -3
  34. package/dist/chunks/{chunk-FVK4W27G.js → chunk-AFH462DO.js} +1 -1
  35. package/dist/chunks/{chunk-GUG2SWRZ.js → chunk-AFKFN25T.js} +1 -1
  36. package/dist/chunks/chunk-AFYYIJ6K.js +2 -0
  37. package/dist/chunks/{chunk-U3MVH2YT.js → chunk-APKXXAUF.js} +1 -1
  38. package/dist/chunks/chunk-AQUZCWM3.js +2 -0
  39. package/dist/chunks/chunk-AUO5DCEU.js +2 -0
  40. package/dist/chunks/chunk-AYOMVI7J.js +2 -0
  41. package/dist/chunks/{chunk-RWRKUO5D.js → chunk-B66QCXH2.js} +1 -1
  42. package/dist/chunks/{chunk-SODAOLAP.js → chunk-BHKXPWFB.js} +1 -1
  43. package/dist/chunks/chunk-BU6MW65V.js +10 -0
  44. package/dist/chunks/{chunk-P6NQYXN6.js → chunk-CCZ276IA.js} +1 -1
  45. package/dist/chunks/{chunk-YONDU5TN.js → chunk-CIZI6Z7D.js} +1 -1
  46. package/dist/chunks/{chunk-ATFV2NA4.js → chunk-CO23RRN7.js} +1 -1
  47. package/dist/chunks/{chunk-QAFXQHHG.js → chunk-D6L6UNUQ.js} +2 -2
  48. package/dist/chunks/chunk-DDOIPTOM.js +2 -0
  49. package/dist/chunks/{chunk-CSU7RDA5.js → chunk-DKOVZ6R2.js} +3 -3
  50. package/dist/chunks/chunk-DRLP7GIU.js +2 -0
  51. package/dist/chunks/{chunk-DAEUVT2I.js → chunk-DRTHKWHK.js} +1 -1
  52. package/dist/chunks/{chunk-XDFXKRTI.js → chunk-DWF3FCY4.js} +1 -1
  53. package/dist/chunks/{chunk-W3ZILZUL.js → chunk-DWM5G7BU.js} +1 -1
  54. package/dist/chunks/chunk-DXJC3QW7.js +2 -0
  55. package/dist/chunks/{chunk-IDILAYCW.js → chunk-E2JB5OCO.js} +1 -1
  56. package/dist/chunks/{chunk-GI7LTJV3.js → chunk-EDYCSW22.js} +1 -1
  57. package/dist/chunks/{chunk-4JYTFEND.js → chunk-EFP75UEX.js} +1 -1
  58. package/dist/chunks/{chunk-CX7HKSQ4.js → chunk-EGP6DF34.js} +2 -2
  59. package/dist/chunks/{chunk-D5OFN47Z.js → chunk-ESYPMD7Q.js} +1 -1
  60. package/dist/chunks/{chunk-PWKJ5KLZ.js → chunk-EXYSD45J.js} +1 -1
  61. package/dist/chunks/{chunk-R6VI7MX5.js → chunk-EYTTZ5H4.js} +1 -1
  62. package/dist/chunks/chunk-FKUWCJ73.js +161 -0
  63. package/dist/chunks/{chunk-WD6ANOLL.js → chunk-FNGZ4UDZ.js} +1 -1
  64. package/dist/chunks/{chunk-JFZ6USNQ.js → chunk-G7X73SBG.js} +1 -1
  65. package/dist/chunks/{chunk-36FNNR5N.js → chunk-GEYZVOGD.js} +1 -1
  66. package/dist/chunks/{chunk-ULJZ7NUF.js → chunk-GY7YSD6J.js} +1 -1
  67. package/dist/chunks/{chunk-CWAQOFLP.js → chunk-GYYJ47GX.js} +1 -1
  68. package/dist/chunks/chunk-HG2YFMVU.js +4 -0
  69. package/dist/chunks/{chunk-YQBL5P6R.js → chunk-HKVFU3B3.js} +1 -1
  70. package/dist/chunks/{chunk-VEXJV5H5.js → chunk-IIT66347.js} +4 -4
  71. package/dist/chunks/{chunk-B2K5WQZE.js → chunk-IO5DZUKL.js} +1 -1
  72. package/dist/chunks/chunk-J256AEEE.js +2 -0
  73. package/dist/chunks/{chunk-CRDKBFRN.js → chunk-JEMECEQH.js} +1 -1
  74. package/dist/chunks/{chunk-7P5SH3CI.js → chunk-JPUSTFZC.js} +1 -1
  75. package/dist/chunks/{chunk-YMCF5GR2.js → chunk-JQOVC35K.js} +1 -1
  76. package/dist/chunks/{chunk-6LFTQBXP.js → chunk-JT5YQ52I.js} +1 -1
  77. package/dist/chunks/chunk-JVMSN7LH.js +2 -0
  78. package/dist/chunks/{chunk-HORMGT2Q.js → chunk-JXYJQT5Q.js} +1 -1
  79. package/dist/chunks/{chunk-WDKZMXIU.js → chunk-K7KBFM2T.js} +1 -1
  80. package/dist/chunks/{chunk-UBTP3QWI.js → chunk-KCLMA2IH.js} +1 -1
  81. package/dist/chunks/chunk-KDER7R45.js +2 -0
  82. package/dist/chunks/{chunk-IXZ5ZGIL.js → chunk-KOC3YJEU.js} +2 -2
  83. package/dist/chunks/{chunk-R6MMWEH4.js → chunk-KP2MYTP5.js} +1 -1
  84. package/dist/chunks/{chunk-TV2LE2BD.js → chunk-KU4TPDPH.js} +2 -2
  85. package/dist/chunks/{chunk-WJSJXK2N.js → chunk-KUE46HTH.js} +1 -1
  86. package/dist/chunks/chunk-LVXL7T5O.js +2 -0
  87. package/dist/chunks/{chunk-TSQ2I6XV.js → chunk-M4A7G4S5.js} +2 -2
  88. package/dist/chunks/{chunk-MX7KV5DA.js → chunk-M4ZHFDRJ.js} +1 -1
  89. package/dist/chunks/{chunk-26ID6A5C.js → chunk-MEJLWNRS.js} +1 -1
  90. package/dist/chunks/{chunk-XT5WUQGT.js → chunk-MIFVX5PK.js} +1 -1
  91. package/dist/chunks/{chunk-4VZJQRQI.js → chunk-MOXIGLN2.js} +1 -1
  92. package/dist/chunks/{chunk-UKSSFB4Q.js → chunk-N5EAVX4G.js} +1 -1
  93. package/dist/chunks/{chunk-4B7EGNYX.js → chunk-NMMHXYDJ.js} +1 -1
  94. package/dist/chunks/{chunk-EBOTNBUS.js → chunk-NRYC4NH6.js} +1 -1
  95. package/dist/chunks/chunk-NSSZ2ZIU.js +2 -0
  96. package/dist/chunks/{chunk-4TTXNVCE.js → chunk-OFJPOTES.js} +1 -1
  97. package/dist/chunks/chunk-OIH2LPIT.js +2 -0
  98. package/dist/chunks/chunk-OUJ63LMU.js +2 -0
  99. package/dist/chunks/{chunk-SD2XDZQW.js → chunk-P4QM63L3.js} +1 -1
  100. package/dist/chunks/chunk-PACLKDTN.js +2 -0
  101. package/dist/chunks/{chunk-VPAEFG7X.js → chunk-PAYFJHPO.js} +1 -1
  102. package/dist/chunks/{chunk-OPTJYDZN.js → chunk-PHZZBXDO.js} +1 -1
  103. package/dist/chunks/{chunk-HPTEJBP4.js → chunk-PKJHN666.js} +1 -1
  104. package/dist/chunks/{chunk-HNDAGZCF.js → chunk-PLROXHG2.js} +1 -1
  105. package/dist/chunks/{chunk-UNE52L3Y.js → chunk-PNPV2LDE.js} +1 -1
  106. package/dist/chunks/{chunk-2RSGVLZT.js → chunk-PSY6IRJE.js} +8 -8
  107. package/dist/chunks/{chunk-SVNEPXU3.js → chunk-Q73RKX7I.js} +1 -1
  108. package/dist/chunks/{chunk-IF5A3XWP.js → chunk-Q7FBVLLB.js} +1 -1
  109. package/dist/chunks/{chunk-V5AOM5MZ.js → chunk-Q7P34B2O.js} +1 -1
  110. package/dist/chunks/{chunk-375PADDM.js → chunk-QLGP2OAQ.js} +1 -1
  111. package/dist/chunks/{chunk-QQLS5FB7.js → chunk-QUNQM2E3.js} +1 -1
  112. package/dist/chunks/chunk-R2FYCJL6.js +2 -0
  113. package/dist/chunks/{chunk-6HQUIKC5.js → chunk-R4EEGWXB.js} +1 -1
  114. package/dist/chunks/chunk-RBTDSI4L.js +11 -0
  115. package/dist/chunks/chunk-RCQYEHHD.js +2 -0
  116. package/dist/chunks/{chunk-TGULVWPV.js → chunk-RFQD6B44.js} +1 -1
  117. package/dist/chunks/{chunk-3WJQ4IGK.js → chunk-RPM4FDRX.js} +1 -1
  118. package/dist/chunks/{chunk-MCBRB5D6.js → chunk-RY46UPBO.js} +4 -4
  119. package/dist/chunks/{chunk-K3LS5SK7.js → chunk-SDHG6CKU.js} +1 -1
  120. package/dist/chunks/{chunk-XKZ4PFMQ.js → chunk-SO4GMSNP.js} +1 -1
  121. package/dist/chunks/{chunk-O6ZYDHEJ.js → chunk-SSHE6B7Z.js} +1 -1
  122. package/dist/chunks/{chunk-SH7POUVX.js → chunk-SV7ZBEK2.js} +6 -6
  123. package/dist/chunks/{chunk-BJXPQIVD.js → chunk-U7D6Q744.js} +1 -1
  124. package/dist/chunks/chunk-U7X5ZLAL.js +2 -0
  125. package/dist/chunks/{chunk-N54CPLVD.js → chunk-UANH7U3Y.js} +1 -1
  126. package/dist/chunks/{chunk-BUZ7CBJC.js → chunk-UGFSAG4U.js} +1 -1
  127. package/dist/chunks/chunk-ULTV6INR.js +2 -0
  128. package/dist/chunks/{chunk-V3ILZQER.js → chunk-UMAVVMXL.js} +7 -7
  129. package/dist/chunks/chunk-V24VHT76.js +2 -0
  130. package/dist/chunks/chunk-VEBW7NKD.js +2 -0
  131. package/dist/chunks/chunk-VJR2GNRY.js +2 -0
  132. package/dist/chunks/{chunk-JD76ANPN.js → chunk-VJYOKU3C.js} +1 -1
  133. package/dist/chunks/{chunk-H2XG5N7D.js → chunk-VWWKWYSQ.js} +1 -1
  134. package/dist/chunks/chunk-WCNPGKST.js +2 -0
  135. package/dist/chunks/chunk-WD4KAKEX.js +2 -0
  136. package/dist/chunks/chunk-WGQ3FMRF.js +2 -0
  137. package/dist/chunks/{chunk-6C3CXME7.js → chunk-WNXUSELC.js} +1 -1
  138. package/dist/chunks/{chunk-RS526BG7.js → chunk-WZ35ICTE.js} +3 -3
  139. package/dist/chunks/chunk-XHACK2KR.js +2 -0
  140. package/dist/chunks/chunk-XOPHFUUY.js +2 -0
  141. package/dist/chunks/{chunk-YKTJPCYZ.js → chunk-XQAUHXL4.js} +4 -4
  142. package/dist/chunks/{chunk-ZVMQLIRA.js → chunk-XT4CSKHM.js} +1 -1
  143. package/dist/chunks/{chunk-KQD36SBJ.js → chunk-XY7HFXLH.js} +1 -1
  144. package/dist/chunks/{chunk-UXO33ST5.js → chunk-XYZV3FKD.js} +1 -1
  145. package/dist/chunks/{chunk-GC6RJBRZ.js → chunk-Y2WNZWT2.js} +1 -1
  146. package/dist/chunks/chunk-Y4I6CFZJ.js +2 -0
  147. package/dist/chunks/chunk-YDZBX4XQ.js +2 -0
  148. package/dist/chunks/chunk-YI6ME6PU.js +22 -0
  149. package/dist/chunks/{chunk-H42UW6IF.js → chunk-YXMYK5P7.js} +1 -1
  150. package/dist/chunks/{chunk-QFL2VQKX.js → chunk-Z33RVGP6.js} +1 -1
  151. package/dist/chunks/{chunk-OY4B7Y3T.js → chunk-ZDEIVUUI.js} +1 -1
  152. package/dist/chunks/{chunk-XGJG2ZKE.js → chunk-ZIQJDTQB.js} +1 -1
  153. package/dist/chunks/{chunk-IR2Y2VQY.js → chunk-ZYLLPRPU.js} +1 -1
  154. package/dist/chunks/cli-R7TAP6Z2.js +2 -0
  155. package/dist/chunks/{command-NWOZXU57.js → command-LNOVZQSK.js} +3 -3
  156. package/dist/chunks/{configuration-command-ZEIBQKB3.js → configuration-command-CNITTZRP.js} +1 -1
  157. package/dist/chunks/connected-app-executor-FGWCLOJO.js +2 -0
  158. package/dist/chunks/connected-evidence-5VZBYNWN.js +2 -0
  159. package/dist/chunks/{connected-starting-assets-66Y46ZPM.js → connected-starting-assets-KWOFEIE4.js} +1 -1
  160. package/dist/chunks/{connection-GDWPMHPC.js → connection-VMBXW5PD.js} +1 -1
  161. package/dist/chunks/{continual-TNPTWTKK.js → continual-FVOLGGOE.js} +1 -1
  162. package/dist/chunks/core-commands-BPYXVT7O.js +2 -0
  163. package/dist/chunks/dataset-preparation-authoring-UUYFWWCT.js +4 -0
  164. package/dist/chunks/datasets-E5TXSVIY.js +2 -0
  165. package/dist/chunks/desktop-test-FX7DTY4N.js +3 -0
  166. package/dist/chunks/dist-2MKJC6HN.js +2 -0
  167. package/dist/chunks/{dist-GR56E3QK.js → dist-DKE7RJZN.js} +1 -1
  168. package/dist/chunks/evaluation-coordination-KUTZEEPB.js +2 -0
  169. package/dist/chunks/experiment-improvements-PQNR5YHN.js +2 -0
  170. package/dist/chunks/experiments-Z4BJWT3Y.js +2 -0
  171. package/dist/chunks/experiments-signal-3GCLKUWZ.js +2 -0
  172. package/dist/chunks/{extension-UH34ZF7N.js → extension-3EKIT6BB.js} +1 -1
  173. package/dist/chunks/{help-O53DTZGN.js → help-K6YLZ3KL.js} +1 -1
  174. package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +2 -0
  175. package/dist/chunks/host-profile-external-dataset-KSEPXY2S.js +2 -0
  176. package/dist/chunks/hosted-app-server-composition-LA3BZ4SE.js +2 -0
  177. package/dist/chunks/hosted-experiment-improvement-VG2WE7XZ.js +3 -0
  178. package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +2 -0
  179. package/dist/chunks/hosted-profile-candidate-PTGQLPZO.js +3 -0
  180. package/dist/chunks/hosted-profile-compiler-FS5R6CHJ.js +2 -0
  181. package/dist/chunks/hosted-profile-evaluation-control-UUEZEMXU.js +2 -0
  182. package/dist/chunks/hosted-profile-evaluation-inspection-4F7OEF4T.js +3 -0
  183. package/dist/chunks/hosted-profile-evaluation-preparation-LIJJZDHQ.js +3 -0
  184. package/dist/chunks/hosted-tasksets-NXVF4AQA.js +2 -0
  185. package/dist/chunks/human-review-2ZOB7CJZ.js +2 -0
  186. package/dist/chunks/{import-OBAKUJPM.js → import-YHYKZ6JN.js} +2 -2
  187. package/dist/chunks/{learning-CRR6NRPN.js → learning-LAXMGWSQ.js} +1 -1
  188. package/dist/chunks/learning-Y3UKNUGE.js +2 -0
  189. package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +2 -0
  190. package/dist/chunks/local-harness-taskset-review-XQHQ6JCR.js +2 -0
  191. package/dist/chunks/{model-projects-HP4DELCP.js → model-projects-6YWVD2TS.js} +1 -1
  192. package/dist/chunks/opchat-XXI2ZM53.js +3 -0
  193. package/dist/chunks/opchat-bounded-chat-3MZGCRLY.js +2 -0
  194. package/dist/chunks/organizations-W7HI2JA4.js +2 -0
  195. package/dist/chunks/{profile-3WZJ65CT.js → profile-P2SJPBOJ.js} +1 -1
  196. package/dist/chunks/project-action-payload-LTIQBX77.js +2 -0
  197. package/dist/chunks/project-agent-XRIXMXQK.js +2 -0
  198. package/dist/chunks/published-experiment-source-SDXUVPE7.js +2 -0
  199. package/dist/chunks/refiner-profile-service-56VYLZQJ.js +2 -0
  200. package/dist/chunks/{runtime-XP4DEGR3.js → runtime-Q7JUJO4D.js} +2 -2
  201. package/dist/chunks/sandbox-command-HVA5FJU4.js +2 -0
  202. package/dist/chunks/{sandbox-template-YFMHEMUQ.js → sandbox-template-U536EEWY.js} +1 -1
  203. package/dist/chunks/saved-work-KSIQPXC2.js +2 -0
  204. package/dist/chunks/{send-turn-D3GTSSHI.js → send-turn-YLY3YNEQ.js} +1 -1
  205. package/dist/chunks/setup-RMZ2BHLM.js +2 -0
  206. package/dist/chunks/{src-GQPWOPYA.js → src-C3ZUESMK.js} +1 -1
  207. package/dist/chunks/src-SGQYVBNQ.js +424 -0
  208. package/dist/chunks/standalone-experiment-turn-owner-TW5MTWIO.js +2 -0
  209. package/dist/chunks/store-chat-resources-IRHBW2EC.js +2 -0
  210. package/dist/chunks/{store-continual-support-reviews-VVRQO2JK.js → store-continual-support-reviews-3KK42L4I.js} +1 -1
  211. package/dist/chunks/store-conversation-serving-IVURK52V.js +2 -0
  212. package/dist/chunks/{store-create-improve-2XI36AET.js → store-create-improve-UTCLBXF2.js} +1 -1
  213. package/dist/chunks/{store-datasets-UFY422NG.js → store-datasets-4AQOVAQY.js} +1 -1
  214. package/dist/chunks/store-evaluation-results-PK2P3IMH.js +7 -0
  215. package/dist/chunks/{store-harness-workspaces-SGUEYDO2.js → store-harness-workspaces-YEXB4IRV.js} +1 -1
  216. package/dist/chunks/store-human-review-O4BVHP25.js +7 -0
  217. package/dist/chunks/store-learned-preference-migration-validation-44SVX6YB.js +2 -0
  218. package/dist/chunks/{store-learning-BFOT4QVT.js → store-learning-SIUQIY5C.js} +1 -1
  219. package/dist/chunks/{store-learning-credentials-DYTMWQTC.js → store-learning-credentials-BUHR7SN6.js} +1 -1
  220. package/dist/chunks/store-local-experiments-BHVTKPPE.js +97 -0
  221. package/dist/chunks/store-model-batch-review-RVAYUVK2.js +2 -0
  222. package/dist/chunks/{store-model-configuration-NJFWSYSA.js → store-model-configuration-6L3OYXF4.js} +1 -1
  223. package/dist/chunks/store-model-project-preparation-AAEKCF6V.js +2 -0
  224. package/dist/chunks/store-modification-recordings-LCPK6K2T.js +9 -0
  225. package/dist/chunks/{store-preference-comparison-MZAYONCK.js → store-preference-comparison-5YVIQNVB.js} +1 -1
  226. package/dist/chunks/{store-sidebar-file-bookmarks-J3JEVAYR.js → store-sidebar-file-bookmarks-WLMYDA4E.js} +1 -1
  227. package/dist/chunks/{store-sidebar-preferences-2JHTFXJK.js → store-sidebar-preferences-AFMYIDWT.js} +1 -1
  228. package/dist/chunks/{store-subagents-PUBQVWSU.js → store-subagents-KFPVSTRO.js} +1 -1
  229. package/dist/chunks/{store-task-inbox-3BREANOX.js → store-task-inbox-L6IQTY26.js} +1 -1
  230. package/dist/chunks/{store-task-inventory-5HRZCDUT.js → store-task-inventory-QWS2C656.js} +1 -1
  231. package/dist/chunks/store-taskset-drafts-FRFL6ITK.js +9 -0
  232. package/dist/chunks/{store-training-S3FXWLT6.js → store-training-FYXZU2FE.js} +1 -1
  233. package/dist/chunks/{store-training-jobs-2LCXPA7G.js → store-training-jobs-3N3VKPIY.js} +1 -1
  234. package/dist/chunks/{store-training-models-7AMKS7ZW.js → store-training-models-VOFVGPZR.js} +1 -1
  235. package/dist/chunks/{taskset-PLKWRT4X.js → taskset-UDDLFYKV.js} +1 -1
  236. package/dist/chunks/taskset-catalog-RZYEBCRQ.js +2 -0
  237. package/dist/chunks/taskset-packages-T6B6HYKZ.js +2 -0
  238. package/dist/chunks/taskset-packages-WMG5DUBN.js +2 -0
  239. package/dist/chunks/{teams-bot-VQXUA7U4.js → teams-bot-MPWL2PP4.js} +1 -1
  240. package/dist/chunks/tool-learning-ZQ6NSJ5K.js +2 -0
  241. package/dist/chunks/training-5NT2YB2L.js +2 -0
  242. package/dist/chunks/training-5UMT45UL.js +2 -0
  243. package/dist/chunks/training-UY6KRG4M.js +2 -0
  244. package/dist/chunks/{training-error-LQKCOQDJ.js → training-error-WF463UNZ.js} +1 -1
  245. package/dist/chunks/{training-hardware-ESXRWUIK.js → training-hardware-UWQCRDMV.js} +1 -1
  246. package/dist/chunks/training-hosted-CKSDRVL6.js +2 -0
  247. package/dist/chunks/training-hosted-alphaedit-HSMRDJTD.js +2 -0
  248. package/dist/chunks/training-hosted-decision-7JALOU6O.js +2 -0
  249. package/dist/chunks/training-hosted-engram-SXO75MFG.js +2 -0
  250. package/dist/chunks/{training-hosted-learning-WQ2IP5FP.js → training-hosted-learning-E2N32YU5.js} +1 -1
  251. package/dist/chunks/training-hosted-modification-comparison-TXFDJFTG.js +2 -0
  252. package/dist/chunks/training-hosted-neuron-training-J42WK4EH.js +2 -0
  253. package/dist/chunks/training-hosted-serving-report-BAEABGJH.js +2 -0
  254. package/dist/chunks/training-hosted-steering-T556BUBG.js +2 -0
  255. package/dist/chunks/training-model-start-P3PXDWNT.js +2 -0
  256. package/dist/chunks/web-search-ZEKJHZW4.js +2 -0
  257. package/dist/chunks/{workspaces-MCS2AQX6.js → workspaces-EK62ANTB.js} +1 -1
  258. package/dist/cli.js +1 -1
  259. package/dist/index.js +1 -1
  260. package/dist/sandbox/types/billing.d.ts +87 -6
  261. package/dist/sandbox/types/io.d.ts +3 -0
  262. package/dist/sandbox-template/manifest.js +1 -1
  263. package/dist/skills/manifest.json +3 -3
  264. package/dist/skills/openpond-cli/references/experiments-and-training.md +461 -1
  265. package/dist/web/assets/App-CCuh99JW.js +54 -0
  266. package/dist/web/assets/{AppDialog-BvskhHE9.js → AppDialog-CxjDHVk9.js} +1 -1
  267. package/dist/web/assets/AppTerminalPanel-CKJIVpKa.js +2 -0
  268. package/dist/web/assets/{AppToastContext-D2788RqX.js → AppToastContext-EpiT1dHs.js} +1 -1
  269. package/dist/web/assets/AppsView-BsMyPX_3.js +1 -0
  270. package/dist/web/assets/{AttachmentTypeIcon-DVluUHuc.js → AttachmentTypeIcon-BXvZy5gB.js} +1 -1
  271. package/dist/web/assets/BrowserSidebar-BIIV4aq4.js +1 -0
  272. package/dist/web/assets/{CartesianChart-DdBZ69lI.js → CartesianChart-brqLBqnF.js} +1 -1
  273. package/dist/web/assets/ChatTimelineEntry-CwZbn16X.js +8 -0
  274. package/dist/web/assets/{CollaborationTabs-ba6WupeJ.js → CollaborationTabs-BU4uc4tZ.js} +1 -1
  275. package/dist/web/assets/{CommandMenu-D7wTaEgl.js → CommandMenu-DkWpXR55.js} +1 -1
  276. package/dist/web/assets/CommunityView-CsSxJZGn.js +1 -0
  277. package/dist/web/assets/{ComposerAttachments-aO90qXYz.js → ComposerAttachments-BdJGCYzI.js} +1 -1
  278. package/dist/web/assets/{ComposerCreateImproveStrip-BPUJBSyS.js → ComposerCreateImproveStrip-CWy0j1vv.js} +1 -1
  279. package/dist/web/assets/{ConversationImportsSettings-Bo836wKJ.js → ConversationImportsSettings-DCmiakbZ.js} +1 -1
  280. package/dist/web/assets/DatasetReviewImport-DEnF_pGu.js +1 -0
  281. package/dist/web/assets/ExperimentTrainingDataWorkspace-WhwQ0QBi.js +2 -0
  282. package/dist/web/assets/{FilePagePreview-C6wIp6uX.js → FilePagePreview-BRhhz99q.js} +2 -2
  283. package/dist/web/assets/{GetStartedView-CxMv8q-h.js → GetStartedView-CLVD-qEi.js} +1 -1
  284. package/dist/web/assets/{GettingStartedDialog-CEb0cS-o.js → GettingStartedDialog-CMxaAMg-.js} +1 -1
  285. package/dist/web/assets/HostedModelLearningReview-Cn-j-rDo.js +1 -0
  286. package/dist/web/assets/HostedModelLearningSettings-VNBvf38S.js +1 -0
  287. package/dist/web/assets/{HtmlVisual-CCuUkYT8.js → HtmlVisual-D5y2WG9L.js} +10 -10
  288. package/dist/web/assets/LabModelVersionDetailPage-BxRmYD6h.js +1 -0
  289. package/dist/web/assets/{TrainingRunLineage-PXzWR65d.css → LabModelWorkspace-DOrgCk9Z.css} +1 -1
  290. package/dist/web/assets/LabModelWorkspace-u2Ulm_z4.js +1 -0
  291. package/dist/web/assets/{LabSkillSidebar-CFROlATQ.js → LabSkillSidebar-C7IceJTJ.js} +1 -1
  292. package/dist/web/assets/LabsRoute-C9Y0GU34.css +1 -0
  293. package/dist/web/assets/LabsRoute-CbztQaEf.js +74 -0
  294. package/dist/web/assets/LearningBatchesPage-B1NZTBSv.css +1 -0
  295. package/dist/web/assets/LearningBatchesPage-CJqgZNvM.js +26 -0
  296. package/dist/web/assets/MainChatThread-DNMfrrRq.js +2 -0
  297. package/dist/web/assets/{MainPane-BOWkynGB.css → MainPane-BZlNLfTM.css} +1 -1
  298. package/dist/web/assets/MainPane-CQQxSDPS.js +13 -0
  299. package/dist/web/assets/ModelProjectPageHeader-Dge19aE1.js +1 -0
  300. package/dist/web/assets/NativeSetupTerminal-D4JnbpyD.js +2 -0
  301. package/dist/web/assets/{NativeSkillSidebar-MAJWS4mL.js → NativeSkillSidebar-Jzx1BeKV.js} +1 -1
  302. package/dist/web/assets/{NewProjectDialog-MQiUBVx3.js → NewProjectDialog-DcnGzEd9.js} +1 -1
  303. package/dist/web/assets/{OutputsPage-DpF-aRTu.js → OutputsPage-Cmk15Vt_.js} +1 -1
  304. package/dist/web/assets/{PageChrome-8gH2hyDb.js → PageChrome-Cz_fCqtn.js} +1 -1
  305. package/dist/web/assets/{ProjectsPage-BQ98oGyu.js → ProjectsPage-BZ3Eo3Mz.js} +1 -1
  306. package/dist/web/assets/RightChatPanelStack-C6H2vU9N.js +1 -0
  307. package/dist/web/assets/RightSidebarHomePanel-BfMMVkM1.js +1 -0
  308. package/dist/web/assets/{ScheduledWorkPage-CGCqZz_H.js → ScheduledWorkPage-CAkSwM0T.js} +1 -1
  309. package/dist/web/assets/{SettingsView-CqpMFLxy.js → SettingsView-DvQXGw3_.js} +3 -3
  310. package/dist/web/assets/{TasksetDraftEditorPrimitives-DJvIvzBb.js → TasksetDraftEditorPrimitives-JuU1k8vr.js} +1 -1
  311. package/dist/web/assets/TeamChatView-DmHjr8W9.js +1 -0
  312. package/dist/web/assets/{TerminalOverlay-D--M876l.js → TerminalOverlay-DlaM9d8F.js} +1 -1
  313. package/dist/web/assets/{TrainingCreationPanel-DDUoHQHU.js → TrainingCreationPanel-ClpylNsr.js} +1 -1
  314. package/dist/web/assets/{TrainingDraftPanel-CwLXn3Z7.js → TrainingDraftPanel-6tH2xSDj.js} +1 -1
  315. package/dist/web/assets/{UsageSettingsSection-CGwPregx.js → UsageSettingsSection-CzDqxOYM.js} +2 -2
  316. package/dist/web/assets/WorkSidebarPanel-CY-AHZ4-.js +1 -0
  317. package/dist/web/assets/WorkspaceDiffPanel-B4e0lyF7.js +11 -0
  318. package/dist/web/assets/WorkspaceEnvironmentMenu-D01ZkZZF.js +35 -0
  319. package/dist/web/assets/{WorkspaceFileLocation-D-ctFM4d.js → WorkspaceFileLocation-C5s_njZb.js} +1 -1
  320. package/dist/web/assets/{WorkspaceGitDialogs-CQ28j3R7.js → WorkspaceGitDialogs-DjPZ6KIh.js} +1 -1
  321. package/dist/web/assets/{WorkspaceMonacoEditor-BrZs6-EW.js → WorkspaceMonacoEditor-CC4sfOiU.js} +3 -3
  322. package/dist/web/assets/{WorkspacePdfPreview-CU6PSjjN.js → WorkspacePdfPreview-vszQqFa4.js} +2 -2
  323. package/dist/web/assets/{WorkspacePresentationPreview-IjXVXpIy.js → WorkspacePresentationPreview-DQTvhaRD.js} +1 -1
  324. package/dist/web/assets/api-client-DJRVOFzS.js +1 -0
  325. package/dist/web/assets/{app-models-CKXrDTEU.js → app-models-BUdzQbXo.js} +1 -1
  326. package/dist/web/assets/bot-Doyx3T4j.js +1 -0
  327. package/dist/web/assets/{browser-sidebar-links-D9v2cyJa.js → browser-sidebar-links-PVPCrsDJ.js} +1 -1
  328. package/dist/web/assets/chat-resources-Beh5lB36.js +1 -0
  329. package/dist/web/assets/chevron-down-DX1hzujj.js +1 -0
  330. package/dist/web/assets/chevron-right-DHN0y3KC.js +1 -0
  331. package/dist/web/assets/chevron-up-_QrW88NF.js +1 -0
  332. package/dist/web/assets/{chunk-TLSP5JKG-BrrVo5rJ.js → chunk-3BYFS4RO-ztZjcMmt.js} +1 -1
  333. package/dist/web/assets/chunk-AG6UJ3DI-D9KZjTYP.js +1 -0
  334. package/dist/web/assets/chunk-C3TS766N-ppRhs95p.js +1 -0
  335. package/dist/web/assets/chunk-GCUWJUUM-Dy6oUNJ6.js +9 -0
  336. package/dist/web/assets/chunk-GS5HEE4M-C0RLeIsy.js +1 -0
  337. package/dist/web/assets/{chunk-H3JZ3P5T-CzpTARDY.js → chunk-H3JZ3P5T-DolwEJXo.js} +2 -2
  338. package/dist/web/assets/chunk-Q4RGCEOI-Cr-dg4Nk.js +1 -0
  339. package/dist/web/assets/client-DwZ92xtu.js +1 -0
  340. package/dist/web/assets/{client-choice-storage-DUWsS4X0.js → client-choice-storage-DitqKiIT.js} +1 -1
  341. package/dist/web/assets/cloud-upload-HdzNTgr2.js +1 -0
  342. package/dist/web/assets/common-BWVSBnpX.js +1 -0
  343. package/dist/web/assets/copy-DTQhoBNg.js +1 -0
  344. package/dist/web/assets/create-pipeline-DsZzNkt9.js +1 -0
  345. package/dist/web/assets/{cssMode-SclUkqPt.js → cssMode-BRTtfXxU.js} +1 -1
  346. package/dist/web/assets/dataset-workspaces-BTPi71mz.js +1 -0
  347. package/dist/web/assets/external-link-H1629UU6.js +1 -0
  348. package/dist/web/assets/folder-open-CAGdWOrr.js +1 -0
  349. package/dist/web/assets/folder-plus-C14cs2mE.js +1 -0
  350. package/dist/web/assets/git-commit-horizontal-DFUfuVvF.js +1 -0
  351. package/dist/web/assets/{htmlMode-X3mQtOeh.js → htmlMode-BVaCcL76.js} +1 -1
  352. package/dist/web/assets/icons-Bk2b68aC.js +1 -0
  353. package/dist/web/assets/image-0DPVY6Ev.js +1 -0
  354. package/dist/web/assets/{index-LXNhSUEL.js → index-B6XX_0h3.js} +2 -2
  355. package/dist/web/assets/info-C8b_tafZ.js +1 -0
  356. package/dist/web/assets/{intake-contracts-wCkD2ErR.js → intake-contracts-B8JZKYwb.js} +1 -1
  357. package/dist/web/assets/{jsonMode-BoKiIdHd.js → jsonMode-BCKKQmmV.js} +1 -1
  358. package/dist/web/assets/loader-circle-y-SSPwpk.js +1 -0
  359. package/dist/web/assets/{lspLanguageFeatures-CO2mzpy1.js → lspLanguageFeatures-DozmNUOx.js} +1 -1
  360. package/dist/web/assets/maximize-2-CByk9-zN.js +1 -0
  361. package/dist/web/assets/message-square-C889vRqm.js +1 -0
  362. package/dist/web/assets/{monaco.contribution-wacA5FjV.js → monaco.contribution-B9q6qbbo.js} +2 -2
  363. package/dist/web/assets/{monaco.contribution-CVe3mWSY.js → monaco.contribution-BITdsRbn.js} +2 -2
  364. package/dist/web/assets/{monaco.contribution-hrusiaZi.js → monaco.contribution-BqA-XZ44.js} +2 -2
  365. package/dist/web/assets/{monaco.contribution-C7CAQIKF.js → monaco.contribution-DxAV1oS5.js} +2 -2
  366. package/dist/web/assets/monitor-BtxlcLuI.js +1 -0
  367. package/dist/web/assets/paperclip-BeIdaspf.js +1 -0
  368. package/dist/web/assets/{pdf-Ct3M2mVw.js → pdf-perlzwEB.js} +1 -1
  369. package/dist/web/assets/play-CHXXdkuO.js +1 -0
  370. package/dist/web/assets/plus-DFFWjhPw.js +1 -0
  371. package/dist/web/assets/{ponder-desktop-D-zB6X4L.js → ponder-desktop-Ca-9KggQ.js} +1 -1
  372. package/dist/web/assets/presentation-0bzvu6_u.js +1 -0
  373. package/dist/web/assets/{profile-ref-CCxrOCio.js → profile-ref-D8lxL7dW.js} +1 -1
  374. package/dist/web/assets/{python-C0-pUUAU.js → python-B9hOnkOI.js} +1 -1
  375. package/dist/web/assets/refresh-cw-D61-Ozk3.js +1 -0
  376. package/dist/web/assets/{requests-DjSt-duM.js → requests-DmeUYik4.js} +1 -1
  377. package/dist/web/assets/reward-checks-DJJZYgf8.js +7 -0
  378. package/dist/web/assets/save-iEMNZoPe.js +1 -0
  379. package/dist/web/assets/schemas-Brv9Vmnk.js +64 -0
  380. package/dist/web/assets/settings-BC-bzgk6.js +21 -0
  381. package/dist/web/assets/settings-lists-C84qxFmP.js +5 -0
  382. package/dist/web/assets/square-BE_4JMR3.js +1 -0
  383. package/dist/web/assets/square-terminal-Djpzo2Qs.js +1 -0
  384. package/dist/web/assets/{submit-issue-command-Gk3RKrY-.js → submit-issue-command-HfKzyxg5.js} +1 -1
  385. package/dist/web/assets/{toggleHighContrast-BnYUBgZB.js → toggleHighContrast-ClsXu39R.js} +1 -1
  386. package/dist/web/assets/training-DWfghwfZ.js +1 -0
  387. package/dist/web/assets/{training-model-data-CxR3xpmK.js → training-model-data-CIysl8wH.js} +4 -4
  388. package/dist/web/assets/{tsMode-BVNyOY8h.js → tsMode-nbmaMc-D.js} +1 -1
  389. package/dist/web/assets/upload-C6ug8RD-.js +1 -0
  390. package/dist/web/assets/{useAccountSettings-4_XfwJQi.js → useAccountSettings-Dr9h4Qz_.js} +1 -1
  391. package/dist/web/assets/{useAgentInventory-CVuamyT3.js → useAgentInventory-ByCk2JAv.js} +1 -1
  392. package/dist/web/assets/useChatContextSelection-C0eMm2g6.js +1 -0
  393. package/dist/web/assets/{useLocalAgentSchedules-CmwN4ohy.js → useLocalAgentSchedules-Do0y_leJ.js} +1 -1
  394. package/dist/web/assets/useQuery-D2MQ7e5U.js +1 -0
  395. package/dist/web/assets/wifi-off-Dr-CapyW.js +1 -0
  396. package/dist/web/assets/work-outputs-D_8TovAK.js +1 -0
  397. package/dist/web/assets/{workers-CjtQ2aBD.js → workers-DKvM2NdM.js} +1 -1
  398. package/dist/web/assets/x-Jx2jlP9u.js +1 -0
  399. package/dist/web/assets/{yaml-N1KUjBZ8.js → yaml-C02vq4ar.js} +1 -1
  400. package/dist/web/index.html +1 -1
  401. package/docs/command-reference.md +93 -3
  402. package/package.json +1 -1
  403. package/dist/chunks/actions-command-BYPLSGZL.js +0 -2
  404. package/dist/chunks/app-server-evaluations-5YZUFXQ2.js +0 -2
  405. package/dist/chunks/app-server-harness-services-N5F5QVZI.js +0 -2
  406. package/dist/chunks/app-server-runtime-HJ2N57DL.js +0 -2
  407. package/dist/chunks/apps-WJTW64NW.js +0 -2
  408. package/dist/chunks/chunk-263WS3TB.js +0 -2
  409. package/dist/chunks/chunk-2UZHLO2V.js +0 -23
  410. package/dist/chunks/chunk-2W22IXHB.js +0 -2
  411. package/dist/chunks/chunk-46RMTR2Z.js +0 -2
  412. package/dist/chunks/chunk-4JJ4RYIB.js +0 -6
  413. package/dist/chunks/chunk-4NN5OLKW.js +0 -161
  414. package/dist/chunks/chunk-543QHE3D.js +0 -2
  415. package/dist/chunks/chunk-5QOFUGYQ.js +0 -2
  416. package/dist/chunks/chunk-5ZNE43XC.js +0 -10
  417. package/dist/chunks/chunk-6IS5OLI5.js +0 -2
  418. package/dist/chunks/chunk-7HAGSE7L.js +0 -2
  419. package/dist/chunks/chunk-AXYAEWWA.js +0 -2
  420. package/dist/chunks/chunk-B7XJBP4U.js +0 -2
  421. package/dist/chunks/chunk-BBIA24GD.js +0 -10
  422. package/dist/chunks/chunk-CJDGLPNX.js +0 -4
  423. package/dist/chunks/chunk-FCXDPVGJ.js +0 -3
  424. package/dist/chunks/chunk-FE2ENE3U.js +0 -2
  425. package/dist/chunks/chunk-H6EUFJJK.js +0 -2
  426. package/dist/chunks/chunk-IOSBGCRT.js +0 -2
  427. package/dist/chunks/chunk-K6DB5QWG.js +0 -2
  428. package/dist/chunks/chunk-LI56PPCN.js +0 -2
  429. package/dist/chunks/chunk-OE2OOWEQ.js +0 -2
  430. package/dist/chunks/chunk-OYIFH2OM.js +0 -2
  431. package/dist/chunks/chunk-QOUOU7FE.js +0 -22
  432. package/dist/chunks/chunk-R5GRESW3.js +0 -2
  433. package/dist/chunks/chunk-TERKCK4I.js +0 -2
  434. package/dist/chunks/chunk-TS5HNRZB.js +0 -2
  435. package/dist/chunks/chunk-V3KEG6MI.js +0 -2
  436. package/dist/chunks/chunk-WGISITX6.js +0 -4
  437. package/dist/chunks/chunk-XD4ZIQZ2.js +0 -2
  438. package/dist/chunks/chunk-XHU4BZQY.js +0 -13
  439. package/dist/chunks/chunk-ZWEY66RT.js +0 -2
  440. package/dist/chunks/cli-HV32F7HD.js +0 -2
  441. package/dist/chunks/connected-app-executor-DFHWNMRM.js +0 -2
  442. package/dist/chunks/connected-evidence-WOM6N5HO.js +0 -2
  443. package/dist/chunks/core-commands-GWRHH53F.js +0 -2
  444. package/dist/chunks/dataset-preparation-authoring-WJ2XEUO7.js +0 -4
  445. package/dist/chunks/datasets-XIMF54QN.js +0 -2
  446. package/dist/chunks/desktop-test-HF42V2EP.js +0 -3
  447. package/dist/chunks/dist-T6ES2TSM.js +0 -2
  448. package/dist/chunks/evaluation-coordination-WZT6FDMS.js +0 -2
  449. package/dist/chunks/experiment-improvements-H35VS6XZ.js +0 -2
  450. package/dist/chunks/experiments-F54C32EE.js +0 -2
  451. package/dist/chunks/experiments-signal-ONIGTGYR.js +0 -2
  452. package/dist/chunks/host-profile-evaluation-tools-LMCJ3MDJ.js +0 -2
  453. package/dist/chunks/host-profile-external-dataset-4HOXANWK.js +0 -2
  454. package/dist/chunks/hosted-app-server-composition-Y64A2A2B.js +0 -2
  455. package/dist/chunks/hosted-experiment-improvement-B2V2WIUI.js +0 -3
  456. package/dist/chunks/hosted-harness-runtime-C7I4KSDK.js +0 -2
  457. package/dist/chunks/hosted-profile-candidate-CXPVEEYQ.js +0 -3
  458. package/dist/chunks/hosted-profile-compiler-FGCI2VRW.js +0 -2
  459. package/dist/chunks/hosted-profile-evaluation-control-INNUYMBD.js +0 -2
  460. package/dist/chunks/hosted-profile-evaluation-inspection-UPTBRYMS.js +0 -3
  461. package/dist/chunks/hosted-profile-evaluation-preparation-TIQSVKLQ.js +0 -3
  462. package/dist/chunks/hosted-tasksets-7VMYOTIO.js +0 -2
  463. package/dist/chunks/human-review-7XC77NQP.js +0 -2
  464. package/dist/chunks/learning-3XDGIYUL.js +0 -2
  465. package/dist/chunks/local-harness-improvement-runtime-UIKQSAMM.js +0 -2
  466. package/dist/chunks/local-harness-taskset-review-6KJN3EQL.js +0 -2
  467. package/dist/chunks/opchat-NWYWWIA7.js +0 -3
  468. package/dist/chunks/opchat-bounded-chat-ICURZM6R.js +0 -2
  469. package/dist/chunks/organizations-7DBQGCCV.js +0 -2
  470. package/dist/chunks/project-action-payload-7DRABTHY.js +0 -2
  471. package/dist/chunks/project-agent-AXJOWXRU.js +0 -2
  472. package/dist/chunks/published-experiment-source-YBBPLNF2.js +0 -2
  473. package/dist/chunks/refiner-profile-service-ATEFPF5O.js +0 -2
  474. package/dist/chunks/sandbox-command-CF2PJCFX.js +0 -2
  475. package/dist/chunks/saved-work-3OAVRBH3.js +0 -2
  476. package/dist/chunks/setup-RHIMFI2Y.js +0 -2
  477. package/dist/chunks/src-V236S6MV.js +0 -424
  478. package/dist/chunks/standalone-experiment-turn-owner-CDRMGLWW.js +0 -2
  479. package/dist/chunks/store-chat-resources-P4EKCLSY.js +0 -2
  480. package/dist/chunks/store-conversation-serving-YFEZYQD3.js +0 -2
  481. package/dist/chunks/store-evaluation-results-VBH4R2U7.js +0 -7
  482. package/dist/chunks/store-human-review-RFCVZ3HP.js +0 -7
  483. package/dist/chunks/store-learned-preference-migration-validation-FNBGGZU6.js +0 -2
  484. package/dist/chunks/store-local-experiments-XPXGYXNM.js +0 -97
  485. package/dist/chunks/store-model-batch-review-J2L5JQV2.js +0 -2
  486. package/dist/chunks/store-model-project-preparation-OCLIFKI2.js +0 -2
  487. package/dist/chunks/store-taskset-drafts-BNKUVHPA.js +0 -9
  488. package/dist/chunks/taskset-packages-SXBLYHSP.js +0 -2
  489. package/dist/chunks/taskset-packages-V5T4V7YN.js +0 -2
  490. package/dist/chunks/tool-learning-47XQKELE.js +0 -2
  491. package/dist/chunks/training-7VQNCOGH.js +0 -2
  492. package/dist/chunks/training-VKLPNCMC.js +0 -2
  493. package/dist/chunks/training-hosted-NNE6BP6S.js +0 -2
  494. package/dist/chunks/training-hosted-serving-report-VZ4SMLMG.js +0 -2
  495. package/dist/chunks/training-model-start-G7YDZ7ZG.js +0 -2
  496. package/dist/chunks/web-search-56QRZGPR.js +0 -2
  497. package/dist/web/assets/App-DmEA-Lia.js +0 -53
  498. package/dist/web/assets/AppTerminalPanel-ScQKJV4z.js +0 -2
  499. package/dist/web/assets/AppsView-B1uNg9IQ.js +0 -1
  500. package/dist/web/assets/BrowserSidebar-DfVQoJHn.js +0 -1
  501. package/dist/web/assets/ChatTimelineEntry-Bbc6HRks.js +0 -8
  502. package/dist/web/assets/CommunityView-mO58f2B0.js +0 -1
  503. package/dist/web/assets/HostedModelLearningReview-BQIS7hkd.js +0 -1
  504. package/dist/web/assets/HostedModelLearningSettings-BQ-YeFMT.js +0 -1
  505. package/dist/web/assets/LabModelVersionDetailPage-BkHeVbAx.js +0 -1
  506. package/dist/web/assets/LabsRoute-CE45yAXJ.css +0 -1
  507. package/dist/web/assets/LabsRoute-YA9YckKj.js +0 -101
  508. package/dist/web/assets/MainChatThread-DpyPgGKW.js +0 -2
  509. package/dist/web/assets/MainPane-WOeodByM.js +0 -10
  510. package/dist/web/assets/NativeSetupTerminal-fmG2c65K.js +0 -2
  511. package/dist/web/assets/RightChatPanelStack-Bs7A4dLs.js +0 -1
  512. package/dist/web/assets/RightSidebarHomePanel-C-D4kba2.js +0 -1
  513. package/dist/web/assets/TeamChatView-DjmIaLO1.js +0 -1
  514. package/dist/web/assets/TrainingRunLineage-CtYe1KGX.js +0 -1
  515. package/dist/web/assets/WorkSidebarPanel-C6wWuo7U.js +0 -1
  516. package/dist/web/assets/WorkspaceDiffPanel-JDOUmrC-.js +0 -11
  517. package/dist/web/assets/WorkspaceEnvironmentMenu-sfL5LZeB.js +0 -35
  518. package/dist/web/assets/api-client-Dgz-fOMl.js +0 -1
  519. package/dist/web/assets/bot-Cd761lRF.js +0 -1
  520. package/dist/web/assets/chat-resources-BUDXdoG0.js +0 -1
  521. package/dist/web/assets/chevron-down-DEbd6Ek-.js +0 -1
  522. package/dist/web/assets/chevron-right-DLYNg_Oq.js +0 -1
  523. package/dist/web/assets/chevron-up-DFJJccDl.js +0 -1
  524. package/dist/web/assets/chunk-GHPCQXG5-DKDBSd8H.js +0 -9
  525. package/dist/web/assets/chunk-GJRXJL6G-luaxRTYI.js +0 -1
  526. package/dist/web/assets/chunk-JDQVAG3R-C0-rh1aR.js +0 -1
  527. package/dist/web/assets/chunk-XMVSQIK4-BBU7r_NH.js +0 -1
  528. package/dist/web/assets/client-BNjO4Xi8.js +0 -1
  529. package/dist/web/assets/cloud-upload-CoM1FGeB.js +0 -1
  530. package/dist/web/assets/common-CFsO2ppZ.js +0 -1
  531. package/dist/web/assets/copy-BGOhV6Pk.js +0 -1
  532. package/dist/web/assets/create-pipeline-DRR0Qeec.js +0 -1
  533. package/dist/web/assets/createLucideIcon-Bv-_eGcE.js +0 -1
  534. package/dist/web/assets/external-link-CVXsNeO3.js +0 -1
  535. package/dist/web/assets/folder-open-MnOmh19D.js +0 -1
  536. package/dist/web/assets/folder-plus-BRddLBtO.js +0 -1
  537. package/dist/web/assets/git-commit-horizontal-Bm4rkXug.js +0 -1
  538. package/dist/web/assets/icons-CZxmQtZs.js +0 -1
  539. package/dist/web/assets/image-BViGUAiq.js +0 -1
  540. package/dist/web/assets/info-DYPIbKKD.js +0 -1
  541. package/dist/web/assets/loader-circle-JFgFNsP5.js +0 -1
  542. package/dist/web/assets/maximize-2-DXZCQO0b.js +0 -1
  543. package/dist/web/assets/message-square-cOCAL8J1.js +0 -1
  544. package/dist/web/assets/models-route-CWcJuOd0.js +0 -1
  545. package/dist/web/assets/monitor-B35XSAvn.js +0 -1
  546. package/dist/web/assets/paperclip-CKgDxioG.js +0 -1
  547. package/dist/web/assets/play-DzqLr7fM.js +0 -1
  548. package/dist/web/assets/plus-Ddp1vXnw.js +0 -1
  549. package/dist/web/assets/presentation-B0S9v7ib.js +0 -1
  550. package/dist/web/assets/refresh-cw-D45mW-vs.js +0 -1
  551. package/dist/web/assets/reward-checks-D139zwha.js +0 -7
  552. package/dist/web/assets/save-Gu4R_82E.js +0 -1
  553. package/dist/web/assets/schemas-C9IwV7NS.js +0 -64
  554. package/dist/web/assets/settings-DdonLCIN.js +0 -21
  555. package/dist/web/assets/settings-lists-CFHFtO0D.js +0 -5
  556. package/dist/web/assets/square-Dqduqyyu.js +0 -1
  557. package/dist/web/assets/square-terminal-DS3zwi6X.js +0 -1
  558. package/dist/web/assets/training-QBuGBGJd.js +0 -2
  559. package/dist/web/assets/upload-ABSJxuUM.js +0 -1
  560. package/dist/web/assets/useQuery-CCjwL8VI.js +0 -1
  561. package/dist/web/assets/wifi-off-DGJH7Pke.js +0 -1
  562. package/dist/web/assets/work-outputs-CnbRtTLg.js +0 -1
  563. package/dist/web/assets/x-B-_zJVOZ.js +0 -1
  564. /package/dist/chunks/{chunk-SFR32TMJ.js → chunk-JXLDEYRW.js} +0 -0
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{v as r}from"./chunk-CJDGLPNX.js";import{qb as o}from"./chunk-QAFXQHHG.js";import{l as t}from"./chunk-ZY32SZ2P.js";import{g as a}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";var s=e.object({profileRef:r,manifest:o,metric:t,gradeRefs:e.array(a),receiptRefs:e.array(a),passRate:e.number().min(0).max(1),passed:e.boolean(),completedAt:e.string().datetime(),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict();export{s as a};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{hb as _,kb as C}from"./chunk-5ZNE43XC.js";import{f as R,m}from"./chunk-HIQPGYVH.js";import{Sa as A}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as l}from"./chunk-FTQLQJQV.js";var u=e.string().trim().min(1).max(200),P=e.object({operationId:u,execution:R,executionKind:e.literal("recorded_evidence").optional(),graders:e.array(A).min(1).max(100),maximumCostUsd:e.number().finite().min(1e-6).max(1e4),mappings:e.array(e.object({graderId:u,fields:_}).strict()).max(100).optional()}).strict().superRefine((a,n)=>{new Set(a.graders.map(o=>o.id)).size!==a.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),a.mappings&&(new Set(a.mappings.map(o=>o.graderId)).size!==a.mappings.length||a.mappings.some(o=>!a.graders.some(c=>c.id===o.graderId)))&&n.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),q=e.object({schemaVersion:e.literal("openpond.experimentScoringPass.v1"),id:u,teamId:u,revision:e.number().int().positive(),request:P,graders:e.array(C).min(1).max(100),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),scored:e.number().int().nonnegative(),unavailable:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),resultAvailable:e.boolean(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),error:e.object({code:u,message:e.string().max(2e3)}).strict().nullable()}).strict(),L=q.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)});function O(a){let n=L.parse(a),{contentHash:o,...c}=n;if(m(c)!==o||Object.values(n.counts).reduce((r,d)=>r+d,0)!==n.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let t=["completed","failed","cancelled"].includes(n.status);if(t&&(!n.completedAt||n.counts.pending||n.counts.running)||!t&&(n.completedAt!==null||n.resultAvailable)||n.status==="completed"&&!n.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(n.graders.length!==n.request.graders.length||new Set(n.graders.map(r=>r.feedbackKey)).size!==n.graders.length||n.graders.some((r,d)=>m(r.release)!==m(n.request.graders[d])||m(r.mappings??[])!==m(n.request.mappings?.find(f=>f.graderId===r.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return n}l(O,"verifyExperimentScoringPass");var I=8388608;async function B(a,n,o,c){let t=new AbortController,r=o.signal,d=l(()=>t.abort(r?.reason),"forward");r?.aborted?d():r?.addEventListener("abort",d,{once:!0});let f=setTimeout(()=>t.abort(new Error("Connected evidence request timed out.")),6e4),s,h=l(()=>{s&&s.cancel(t.signal.reason).catch(()=>{})},"abortReader");t.signal.addEventListener("abort",h,{once:!0});let v=new Promise((w,g)=>{let p=l(()=>g(t.signal.reason??new DOMException("Request aborted","AbortError")),"abort");t.signal.aborted?p():t.signal.addEventListener("abort",p,{once:!0})});try{let w=a(n,{...o,signal:t.signal}).then(i=>{if(t.signal.aborted)throw i.body?.cancel(t.signal.reason).catch(()=>{}),t.signal.reason;return i}),g=await Promise.race([w,v]),p=g.headers.get("content-length");if(s=g.body?.getReader(),t.signal.aborted)throw await s?.cancel(t.signal.reason),t.signal.reason;if(p&&Number(p)>I)throw await s?.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let x=[],b=0;if(s)for(;;){let i=await Promise.race([s.read(),v]);if(i.done)break;if(b+=i.value.byteLength,b>I)throw await s.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");x.push(i.value)}let S=new Uint8Array(b),E=0;for(let i of x)S.set(i,E),E+=i.byteLength;let y;try{y=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(S))}catch{throw c(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:y}}finally{clearTimeout(f),r?.removeEventListener("abort",d),t.signal.removeEventListener("abort",h),s?.releaseLock()}}l(B,"fetchConnectedJson");export{P as a,O as b,B as c};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{e as ut}from"./chunk-RRWL5BHZ.js";import{c as dt}from"./chunk-NXN7GJOH.js";import{a as A,b as $,c as be,d as p,e as b,f as ie,g as pt,l as xe}from"./chunk-TERKCK4I.js";import{d as he,e as q,f as fe,g as d,h as y,j as u,k}from"./chunk-5HPZGLOL.js";import{f as ct,ob as mt,qb as ne}from"./chunk-QAFXQHHG.js";import{C as tt,E as nt,H as it,b as U,cc as rt,kc as ot,nc as st,o as Ze,s as et,vb as at}from"./chunk-XHU4BZQY.js";import{Ka as te,Na as Le,Ra as Qe,W as Be,Wa as Fe,Za as Ke,bb as We,fb as Xe,l as Ne,lb as Ye,oa as ee,va as ge}from"./chunk-ZY32SZ2P.js";import{t as $e,v as Ve}from"./chunk-OTDDXEQ6.js";import{g as ue,k as Je,n as w,o as le}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as s}from"./chunk-FTQLQJQV.js";var lt=e.string().trim().min(1).max(240),an=e.string().trim().min(8).max(256),z=e.object({schemaVersion:e.literal("openpond.sftRecipe.v1"),method:e.literal("sft"),parameterization:e.literal("lora"),baseModel:e.object({id:lt,revision:e.string().trim().min(1).max(256),tokenizerRevision:e.string().trim().min(1).max(256),chatTemplateHash:an}),dataset:e.object({trainSplit:e.literal("train"),validationSplit:e.enum(["validation","frozen_eval"]),completionOnly:e.boolean(),maxSequenceLength:e.number().int().positive().max(32768),maxExamples:e.number().int().positive().max(1e5).default(1e3),selectionStrategy:e.literal("stable_hash_top_n").default("stable_hash_top_n"),selectionSeed:e.number().int().default(17)}),lora:e.object({rank:e.number().int().positive().max(256),alpha:e.number().positive().max(1024),dropout:e.number().min(0).max(1),targetModules:e.array(lt).min(1).max(100)}),optimizer:e.object({learningRate:e.number().positive(),epochs:e.number().positive().max(100),maxSteps:e.number().int().positive().max(1e6),batchSize:e.number().int().positive().max(1e4),gradientAccumulationSteps:e.number().int().positive().max(1e4),seed:e.number().int()}),resourceLimits:e.object({cpuThreads:e.number().int().positive().max(256),memoryBytes:e.number().int().positive(),wallTimeMs:e.number().int().positive()})}),rn=z.safeExtend({dataset:z.shape.dataset.safeExtend({completionOnly:e.literal(!0),maxSequenceLength:e.number().int().min(2).max(8192),maxExamples:e.number().int().min(1).max(1e3).default(1e3)}),lora:z.shape.lora.safeExtend({rank:e.number().int().min(1).max(64),dropout:e.number().min(0).lt(1),targetModules:e.array(e.enum(["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"])).min(1).max(7)}),optimizer:z.shape.optimizer.safeExtend({learningRate:e.number().positive().max(.001),epochs:e.number().positive().max(10),maxSteps:e.number().int().min(1).max(128),batchSize:e.number().int().min(1).max(32),gradientAccumulationSteps:e.number().int().min(1).max(32),seed:e.number().int().min(-(2**31)).max(2**31-1)}),resourceLimits:z.shape.resourceLimits.safeExtend({wallTimeMs:e.number().int().min(1e3).max(216e5)})}).superRefine((t,n)=>{t.optimizer.batchSize*t.optimizer.gradientAccumulationSteps>32&&n.addIssue({code:"custom",path:["optimizer"],message:"Managed SFT supports at most 32 accumulated examples."}),new Set(t.lora.targetModules).size!==t.lora.targetModules.length&&n.addIssue({code:"custom",path:["lora","targetModules"],message:"Adapter target modules must be unique."})});var C=e.string().trim().min(1).max(240),ye=p.extend({revision:e.number().int().positive()}).strict(),gt=ye.extend({teamId:C,jobId:C,plan:p,baseline:p,candidate:p,state:ot.shape.state,updatedAt:e.string().datetime()}).strict(),ht=e.object({schemaVersion:e.literal("openpond.trainingAcceptanceGroupPage.v1"),teamId:C,jobId:C,groups:e.array(gt).max(100),nextCursor:C.nullable()}).strict(),ft=e.object({cursor:C.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict();function bt(t){let n=s(i=>(C.parse(i.teamId),`/v1/training/jobs/${encodeURIComponent(C.parse(i.jobId))}/acceptance-groups`),"route");return{async acceptanceGroups(i,a={}){let r=ft.parse(a),o=new URLSearchParams({limit:String(r.limit)});r.cursor&&o.set("cursor",r.cursor);let m=ht.parse(await t(`${n(i)}?${o}`));if(m.teamId!==i.teamId||m.jobId!==i.jobId||m.groups.length>r.limit||m.groups.some(c=>c.teamId!==i.teamId||c.jobId!==i.jobId||r.cursor&&c.id<=r.cursor)||new Set(m.groups.map(c=>c.id)).size!==m.groups.length||m.nextCursor!==null&&m.nextCursor!==m.groups.at(-1)?.id)throw new d("acceptance_group_scope_mismatch","Acceptance groups do not match the requested workspace, job or cursor.");return m},async acceptanceGroup(i,a,r){let o=r?ye.parse({id:r.id,revision:r.revision,contentHash:r.contentHash}):null;if(o&&o.id!==a)throw new d("acceptance_group_identity_mismatch","The retained group reference differs from the requested group.");let m=o?`?revision=${o.revision}`:"",c=st(await t(`${n(i)}/${encodeURIComponent(C.parse(a))}${m}`));if(c.manifest.teamId!==i.teamId||c.manifest.trainingJob.id!==i.jobId||c.manifest.id!==a||o&&(c.revision!==o.revision||c.contentHash!==o.contentHash))throw new d("acceptance_group_identity_mismatch","Acceptance evidence does not match the requested workspace, job or retained revision.");return c}}}s(bt,"createTrainingAcceptanceClient");var V=e.object({id:e.string().trim().min(1).max(240),revision:e.number().int().positive(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),targetId:e.string().trim().min(1).max(240).nullable()}).strict(),xt=e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(1e5)}).strict()).max(100).superRefine((t,n)=>{t.reduce((i,a)=>i+a.content.length,0)>1e5&&n.addIssue({code:"custom",message:"Evaluation prompt exceeds 100,000 characters."})});var N=e.string().regex(/^[a-f0-9]{64}$/),Se=e.object({providerId:e.literal("claude-code"),configurationHash:N,executableHash:N,version:e.string().regex(/^2\.\d+\.\d+$/),capabilityHash:N,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5),maximumTurns:e.number().int().min(1).max(100),holdOpen:e.boolean()}).strict(),oi=e.object({id:e.string().min(1).max(200),receiptId:e.string().min(1).max(200),sessionId:e.uuid(),operationId:e.string().min(1).max(200),action:e.enum(["message","seal"]),text:e.string().max(262144).optional()}).strict().superRefine((t,n)=>{t.action==="message"&&!t.text?.trim()&&n.addIssue({code:"custom",message:"A human intervention requires a message."}),t.action==="seal"&&t.text!==void 0&&n.addIssue({code:"custom",message:"Sealing does not add a prompt."})}),si=e.object({provider:e.literal("claude-code"),sessionId:e.uuid(),requestId:e.string().min(1).max(200),modelId:e.string().min(1).max(500),runtime:Se,sourceHash:N,outputHash:N,traceHash:N,runtimeEventRefs:e.array(e.string().min(1).max(200)).min(1).max(2e4),eventCount:e.number().int().positive().max(2e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),cleanupComplete:e.literal(!0)}).strict().superRefine((t,n)=>{(t.runtimeEventRefs.length!==t.eventCount||new Set(t.runtimeEventRefs).size!==t.eventCount)&&n.addIssue({code:"custom",message:"Process event references must match the exact retained trace population."})});var ae=e.object({providerId:e.literal("codex"),configurationHash:e.string().regex(/^[a-f0-9]{64}$/),accountHash:e.string().regex(/^[a-f0-9]{64}$/),reasoningEffort:e.enum(["low","medium","high","xhigh"]),maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict();var yt=e.object({schemaVersion:e.literal("openpond.experimentAttemptGrade.v1"),selectionHash:e.string().regex(/^[a-f0-9]{64}$/),grades:e.array(te).min(1).max(100),score:e.number().min(0).max(1).nullable(),passed:e.boolean(),rewardEligible:e.boolean(),gradingStatus:e.enum(["scored","pending","unscorable","not_configured"]),failureClass:Je.nullable(),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,n)=>{let{contentHash:i,...a}=t;w(a)!==i&&n.addIssue({code:"custom",message:"Experiment grading integrity failed."});let r=t.grades.flatMap(o=>o.components);(r.length!==t.grades.length||new Set(r.map(o=>o.graderId)).size!==r.length)&&n.addIssue({code:"custom",message:"Each selected criterion requires exactly one distinct grader result."});for(let o of t.grades){let{contentHash:m,...c}=o;w(c)!==m&&n.addIssue({code:"custom",message:"A retained criterion changed."});for(let x of o.components){let{contentHash:R,...v}=x;w(v)!==R&&n.addIssue({code:"custom",message:"A retained grader result changed."})}}});var h=e.string().trim().min(1).max(200),G=e.string().regex(/^[a-f0-9]{64}$/),Te=e.discriminatedUnion("kind",[e.object({kind:e.literal("hosted_chat"),modelId:h,localRuntime:e.union([e.object({providerId:e.literal("custom-openai-compatible"),configurationHash:G,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict(),Se,ae]).optional(),candidate:e.object({artifactId:h,contentHash:G,preparationId:h,dispatchId:h,baseProfileId:h,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),harness:Xe.optional(),messages:xt.optional(),maxOutputTokens:e.number().int().min(1).max(1e6).default(1e5),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict(),e.object({kind:e.literal("fixture"),fixtureId:h}).strict()]),on=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptRequest.v1"),operationId:h,teamId:h,modelProjectId:h.nullable(),project:V.optional(),taskset:b,taskId:h,environmentSeed:e.number().int().min(0).max(2147483647).default(0),policy:Te}).strict(),Pi=e.object({modelProjectId:h.nullable(),taskset:b,afterTaskId:h.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),ki=e.object({modelProjectId:h.nullable(),taskset:b,available:e.boolean(),unavailableReason:e.string().max(1e3).nullable(),models:e.array(e.object({id:h,name:e.string().max(500),maximumOutputTokens:e.number().int().min(1).max(1e6).optional()}).strict()).max(200),tasks:e.array(e.object({id:h,split:Be,inputPreview:e.string().max(500),fixtures:e.array(e.object({id:h,label:e.string().max(200)}).strict()).max(1e3)}).strict()).max(100),nextCursor:h.nullable()}).strict(),re=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptSummary.v1"),id:h,revision:e.number().int().positive(),request:on,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),policySnapshot:e.object({modelId:h,provider:h,upstreamModelId:e.string().min(1).max(500),configurationHash:G}).strict().nullable(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),gradingStatus:e.enum(["not_started","pending","scored","unscorable","not_configured"]).default("not_started"),passed:e.boolean().nullable(),outputPreview:e.string().max(500).nullable(),error:e.object({code:h,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,n)=>{t.request.policy.kind==="fixture"!=(t.policySnapshot===null)&&n.addIssue({code:"custom",path:["policySnapshot"],message:"Fixture execution must not claim a model identity."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable||!t.completedAt)&&n.addIssue({code:"custom",message:"Completed attempts require retained results and confirmed cleanup."})}),_i=e.object({modelProjectId:h,afterId:h.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),ji=e.object({items:e.array(re).max(100),nextCursor:h.nullable()}).strict(),Hi=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptResult.v1"),attempt:re,output:e.string().max(1048576).nullable(),messages:e.array(e.record(e.string(),e.unknown())).max(4002),composition:Ke.nullable(),grade:te.nullable().optional(),experimentGrade:yt.nullable().optional(),environment:e.object({status:e.enum(["completed","budget_exhausted","cancelled","timed_out","policy_failure","environment_failure"]),collected:e.boolean(),definition:b,initialStateHash:G.nullable(),finalStateHash:G.nullable(),attemptHash:G}).strict(),native:Ye.optional(),providerRequestIds:e.array(h).max(1001),contentHash:G}).strict().superRefine((t,n)=>{let i=t.attempt.request.policy.kind==="hosted_chat"?t.attempt.request.policy.harness:void 0;!!i!=!!t.native&&n.addIssue({code:"custom",path:["native"],message:"Standalone Harness results require their exact native evidence."}),t.native&&(!i||w(i)!==w(t.native.source)||t.native.modelConfigurationHash!==t.attempt.policySnapshot?.configurationHash||t.environment.initialStateHash!==null||t.environment.finalStateHash!==null||t.environment.status==="completed"&&(!t.environment.collected||t.output===null||t.native.partialOutputAvailable||t.native.outputHash!==w(t.output)))&&n.addIssue({code:"custom",path:["native"],message:"Native evidence differs from the admitted source, model or output."}),t.experimentGrade&&((t.grade||t.composition)&&n.addIssue({code:"custom",message:"Selected Experiment grading cannot claim another grade population."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.experimentGrade.score||t.attempt.gradingStatus!==t.experimentGrade.gradingStatus||t.attempt.passed!==(t.experimentGrade.score===null?null:t.experimentGrade.passed))&&n.addIssue({code:"custom",message:"Experiment grading differs from its retained attempt summary."})),t.grade&&(t.composition&&n.addIssue({code:"custom",path:["grade"],message:"An ordinary grade cannot also claim a Reward composition."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.grade.score||t.attempt.gradingStatus!==t.grade.gradingStatus||t.attempt.passed!==(t.grade.score===null?null:t.grade.passed))&&n.addIssue({code:"custom",path:["grade"],message:"Ordinary grade differs from its terminal attempt summary."}))});var B=e.string().trim().min(1).max(240),ve=e.string().regex(/^[a-f0-9]{64}$/),Ie=e.object({maxOutputTokens:e.number().int().min(1).max(1e6).default(4096),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict();var M=e.object({kind:e.literal("hosted_harness"),modelId:B,maxOutputTokens:Ie.shape.maxOutputTokens.removeDefault().optional(),temperature:Ie.shape.temperature.removeDefault().optional(),topP:Ie.shape.topP.removeDefault().optional(),localRuntime:ae.optional(),candidate:e.object({artifactId:B,contentHash:ve,preparationId:B,dispatchId:B,baseProfileId:B,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),sourceCandidate:ge.shape.sourceCandidate,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),profileRepositoryId:B,source:ge,modelConfigurationHash:ve,packageHash:ve,externalDatasetBinding:ee.optional()}).strict().superRefine((t,n)=>{JSON.stringify(t.externalDatasetBinding??null)!==JSON.stringify(t.source.externalDatasetBinding??null)&&n.addIssue({code:"custom",message:"The policy and source must bind the same external Dataset recipe."}),JSON.stringify(t.sourceCandidate??null)!==JSON.stringify(t.source.sourceCandidate??null)&&n.addIssue({code:"custom",message:"The policy and prepared source must bind the same actual source candidate."})});var _=e.string().trim().min(1).max(200),St=e.string().regex(/^[a-f0-9]{64}$/),sn=e.discriminatedUnion("kind",[Te.options[0],e.object({kind:e.literal("fixture")}).strict(),M]),D=e.object({schemaVersion:e.literal("openpond.modelTasksetRunRequest.v1"),operationId:_,teamId:_,modelProjectId:_.nullable(),name:e.string().trim().min(1).max(200).optional(),project:V.optional(),taskset:b,policy:sn,population:e.array(mt).min(1).max(1e4)}).strict().superRefine((t,n)=>{new Set(t.population.map(i=>i.receiptId)).size!==t.population.length&&n.addIssue({code:"custom",path:["population"],message:"Run receipt identities must be unique."}),t.population.some(i=>i.fixtureId!==null!=(t.policy.kind==="fixture"))&&n.addIssue({code:"custom",path:["population"],message:"Only fixture runs require a fixture identity for every member."}),t.population.some(i=>!/^(0|[1-9][0-9]*)$/.test(i.seed)||Number(i.seed)>2147483647)&&n.addIssue({code:"custom",path:["population"],message:"Hosted environment seeds must be integers from 0 to 2147483647."}),t.policy.kind==="hosted_harness"&&t.modelProjectId!==null&&n.addIssue({code:"custom",path:["modelProjectId"],message:"A Harness target retains its released Profile binding separately from Model artifacts."}),t.policy.kind==="hosted_harness"&&new Set(t.population.map(i=>y([i.taskId,i.seed]))).size!==t.population.length&&n.addIssue({code:"custom",path:["population"],message:"Harness case identities must be unique for each task and seed."})}),Tt=e.object({schemaVersion:e.literal("openpond.modelTasksetRunSummary.v1"),id:_,revision:e.number().int().positive(),teamId:_,modelProjectId:_.nullable(),name:e.string().trim().min(1).max(200).optional(),project:V.optional(),operationId:_,taskset:b,policyKind:e.enum(["hosted_chat","fixture","hosted_harness"]),manifestHash:St,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),metricName:e.string().min(1).max(240),error:e.object({code:_,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,n)=>{Object.values(t.counts).reduce((i,a)=>i+a,0)!==t.totalCount&&n.addIssue({code:"custom",path:["counts"],message:"Run counts must account for the complete population."}),t.status!=="completed"&&t.score!==null&&n.addIssue({code:"custom",path:["score"],message:"Only completed evaluations publish a metric value."}),["completed","failed","cancelled"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&n.addIssue({code:"custom",message:"Terminal runs require complete population accounting."}),t.status==="cancelled"&&!t.cleanupComplete&&n.addIssue({code:"custom",message:"Cancelled runs require confirmed cleanup."}),t.resultAvailable&&!["completed","failed","cancelled"].includes(t.status)&&n.addIssue({code:"custom",message:"Run results require terminal population accounting."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable)&&n.addIssue({code:"custom",message:"Completed evaluations require retained results and confirmed cleanup."})}),vt=e.object({summary:Tt,request:D,manifest:ne,policySnapshot:re.shape.policySnapshot}).strict(),Ki=e.object({modelProjectId:_.optional(),projectId:V.shape.id.optional(),afterId:_.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Wi=e.object({items:e.array(Tt).max(100),nextCursor:_.nullable()}).strict(),Xi=e.object({schemaVersion:e.literal("openpond.modelTasksetRunResult.v1"),run:vt,receipts:e.array(ct).min(1).max(1e4),metric:Ne.nullable(),contentHash:St}).strict();function cn(t,n){le(n,"Taskset run manifest");let i=t.policy;if(i.kind!=="hosted_harness"||n.execution.kind!=="harness"||y(n.profileEvaluation)!==y(i.source)||y(n.execution.harnessRelease)!==y(i.source.harnessRelease)||n.metadata.profileRepositoryId!==i.profileRepositoryId||n.packageHash!==i.packageHash||n.policy.kind!=="model"||n.policy.model.provider!==(i.localRuntime?.providerId??"openpond")||n.policy.model.model!==i.modelId||n.policy.model.revision!==null||n.policy.model.artifactHash!==(i.candidate?.contentHash??null)||n.policy.model.tokenizerRevision!==null||n.policy.model.chatTemplateHash!==null||n.policy.configurationHash!==i.modelConfigurationHash||n.tasksetRelease.id!==t.taskset.id||n.tasksetRelease.contentHash!==t.taskset.contentHash||y(n.population)!==y(t.population)||n.population.some(a=>a.receiptId!==`evaluation-${w(n.profileEvaluation?.externalDatasetBinding?[n.id,a.taskId,a.seed,a.fixtureId]:[n.id,a.taskId,a.seed]).slice(0,32)}`))throw new Error("Harness evaluation differs from its admitted source, package or model configuration.")}s(cn,"verifyHarnessExperimentManifest");async function Yi(t){let n=vt.parse(t),{summary:i,request:a,manifest:r,policySnapshot:o}=n;if(le(r,"Taskset run manifest"),r.contentHash!==i.manifestHash||r.id!==i.id||r.createdAt!==i.createdAt||i.teamId!==a.teamId||i.modelProjectId!==a.modelProjectId||y(i.project??null)!==y(a.project??null)||y(r.metadata.project??null)!==y(a.project??null)||(i.name??null)!==(a.name??null)||i.operationId!==a.operationId||i.policyKind!==a.policy.kind||i.totalCount!==a.population.length||i.metricName!==r.metricPolicy.primaryMetric||y(i.taskset)!==y(a.taskset)||r.tasksetRelease.id!==a.taskset.id||r.tasksetRelease.contentHash!==a.taskset.contentHash||y(r.population)!==y(a.population))throw new Error("Evaluation run differs from its admitted request or manifest.");if(a.policy.kind==="fixture"){if(r.policy.kind!=="fixture"||o!==null)throw new Error("Fixture checks cannot claim a model identity.")}else if(a.policy.kind==="hosted_harness"){if(cn(a,r),o!==null)throw new Error("Harness evaluations retain the native host model configuration.")}else if(r.policy.kind!=="model"||!o||o.modelId!==a.policy.modelId||r.policy.model.provider!==o.provider||r.policy.model.model!==o.upstreamModelId||r.policy.model.revision!==null||r.policy.model.artifactHash!==(a.policy.candidate?.contentHash??null)||r.policy.model.tokenizerRevision!==null||r.policy.model.chatTemplateHash!==null||r.policy.configurationHash!==await u({policy:a.policy,snapshot:o}))throw new Error("Evaluation model differs from its admitted policy.");return n}s(Yi,"verifyModelTasksetRunDetails");var wt=e.string().min(1).max(200).refine(t=>!["__proto__","prototype","constructor"].includes(t),"Use an ordinary field name."),mn=e.array(wt).min(1).max(20),It=e.enum(["input","output","expectedOutput","evaluatorContext"]),pn=e.object({destination:It,path:mn,source:It,sourcePath:e.array(wt).max(20)}).strict(),Re=e.array(pn).max(100).superRefine((t,n)=>{for(let[i,a]of t.entries())t.slice(0,i).some(r=>r.destination===a.destination&&(Rt(r.path,a.path)||Rt(a.path,r.path)))&&n.addIssue({code:"custom",path:[i,"path"],message:"Mapped destination paths must not overlap."})});function Rt(t,n){return t.length<=n.length&&t.every((i,a)=>i===n[a])}s(Rt,"prefix");var T=e.string().trim().min(1).max(200),J=e.string().regex(/^[a-f0-9]{64}$/),we=e.object({id:T,revision:e.number().int().positive(),contentHash:J}).strict(),Pe=e.object({id:T,version:e.string().min(1).max(200),contentHash:J,name:e.string().trim().min(1).max(500).optional(),feedbackKey:Le,release:we.nullable(),mappings:Re.optional()}).strict(),ke=e.object({id:T,version:e.string().min(1).max(200),contentHash:J,mappings:Re}).strict(),da=e.object({operationId:T,id:T.optional(),expectedRevision:e.number().int().nonnegative(),request:D,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(ke).min(1).max(100).optional()}).strict().superRefine((t,n)=>{t.request.name||n.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before saving it."}),!!t.id!=t.expectedRevision>0&&n.addIssue({code:"custom",path:["expectedRevision"],message:"An update requires its saved definition revision."}),Math.round(t.maximumCostUsd*1e6)<1&&n.addIssue({code:"custom",path:["maximumCostUsd"],message:"The budget must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})}),dn=e.object({schemaVersion:e.literal("openpond.experimentDefinition.v1"),id:T,teamId:T,revision:e.number().int().positive(),request:D,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Pe).min(1).max(100),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),ua=dn.extend({contentHash:J}),la=e.object({operationId:T,definition:we}).strict(),ga=e.object({projectId:T.optional(),datasetHash:J.optional(),search:e.string().trim().max(200).optional(),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]).optional(),afterId:T.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),ha=e.object({definition:we.nullable(),configurationHash:J.optional(),admissionRequestHash:J.optional(),sourceExperimentId:T.optional(),maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Pe).min(1).max(100)}).strict().superRefine((t,n)=>{t.definition===null&&(!t.configurationHash||!t.admissionRequestHash)&&n.addIssue({code:"custom",path:["configurationHash"],message:"A flat Experiment requires its sealed configuration hash."})}),fa=e.object({operationId:T,profileRepositoryId:T,definitionId:T,modelId:T,localRuntime:M.shape.localRuntime,maxOutputTokens:M.shape.maxOutputTokens,temperature:M.shape.temperature,topP:M.shape.topP,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),maximumCostUsd:e.number().finite().positive().max(1e4),externalDatasetBinding:ee.optional(),sourceCandidate:M.shape.sourceCandidate}).strict(),ba=e.object({request:D,manifest:ne,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Pe).min(1).max(100)}).strict();var Pt=e.string().trim().min(1).max(200),_e=e.object({operationId:Pt,request:D,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(ke).min(1).max(100).optional(),sourceExperimentId:Pt.optional()}).strict().superRefine((t,n)=>{t.request.name||n.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before starting it."}),t.operationId!==t.request.operationId&&n.addIssue({code:"custom",path:["request","operationId"],message:"Use one operation identity for this Experiment."}),Math.round(t.maximumCostUsd*1e6)<1&&n.addIssue({code:"custom",path:["maximumCostUsd"],message:"The spending cap must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})});var g=e.string().trim().min(1).max(200),H=e.string().regex(/^[a-f0-9]{64}$/),oe=e.object({id:g,contentHash:H}).strict(),Aa=e.object({available:e.boolean(),reason:e.string().max(1e3).nullable(),origin:U.nullable()}).strict(),kt=e.object({schemaVersion:e.literal("openpond.postTrainingAttachment.v1"),binding:e.object({kind:e.enum(["preparation","policy"]),id:g,revision:e.number().int().positive(),contentHash:H}).strict(),projectId:g.nullable(),automatic:e.boolean(),maximumSpendUsd:e.number().finite().positive().max(1e4),experiments:e.array(e.object({id:g,configuration:_e}).strict()).min(1).max(20),acceptancePlan:rt.nullable()}).strict().superRefine((t,n)=>{if(new Set(t.experiments.map(i=>i.id)).size!==t.experiments.length&&n.addIssue({code:"custom",message:"Attach each evaluation once."}),t.experiments.reduce((i,a)=>i+a.configuration.maximumCostUsd,0)>t.maximumSpendUsd+1e-9&&n.addIssue({code:"custom",message:"Attached evaluation budgets exceed the total approved budget."}),t.experiments.some(i=>(i.configuration.request.project?.id??null)!==t.projectId)&&n.addIssue({code:"custom",message:"Attached experiments must use the training Project."}),t.acceptancePlan){let i=new Set(t.acceptancePlan.checks.map(r=>r.id));t.acceptancePlan.checks.some(r=>!t.experiments.some(o=>o.id===r.id))&&n.addIssue({code:"custom",message:"Select the frozen Experiment for each acceptance check."}),t.acceptancePlan.maximumSpendUsd+t.experiments.filter(r=>!i.has(r.id)).reduce((r,o)=>r+o.configuration.maximumCostUsd,0)>t.maximumSpendUsd+1e-9&&n.addIssue({code:"custom",message:"Paired acceptance and diagnostic ceilings exceed the approved evaluation budget."})}});var un=e.object({baseline:oe,checks:e.array(e.object({id:g,sourceRunId:g,sourceManifestHash:H,targetConfigurationHash:H,executionHash:H,populationHash:H,evaluator:oe,feedbackKey:g,output:e.enum(["boolean","score"]),unit:e.string().min(1).max(80)}).strict()).min(1).max(100)}).strict(),ln=e.enum(["waiting_for_training","ready","preparing","queued","running","cleaning","completed","failed","blocked","cancelled","budget_exhausted"]),_t=e.object({schemaVersion:e.literal("openpond.postTrainingSummary.v1"),id:g,teamId:g,jobId:g,revision:e.number().int().positive(),planHash:H,automatic:e.boolean(),candidate:oe.nullable(),state:ln,total:e.number().int().positive(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),requiredOutcome:e.enum(["none","pending","passed","failed","blocked"]),reason:e.string().max(500).nullable(),groupId:g.nullable(),experimentIds:e.array(g).max(20),updatedAt:e.iso.datetime()}).strict().superRefine((t,n)=>{t.completed+t.failed>t.total&&n.addIssue({code:"custom",message:"Evaluation totals are inconsistent."}),["preparing","queued","running","cleaning","completed"].includes(t.state)&&!t.candidate&&n.addIssue({code:"custom",message:"Evaluation execution requires the exact trained candidate."})}),gn=e.object({operationId:g,expectedRevision:e.number().int().positive(),planHash:H}).strict(),hn=e.object({operationId:g,attachment:kt}).strict(),fn=e.object({id:g,teamId:g,ownerUserId:g,attachment:kt,qualification:un.nullable(),contentHash:H,createdAt:e.iso.datetime()}).strict();function bn(t){let n=fn.parse(t);if(n.contentHash!==w({attachment:n.attachment,qualification:n.qualification}))throw new Error("The retained evaluation attachment or qualification changed.");return n}s(bn,"verifyPostTrainingPlan");function jt(t){let{request:n}=t,i={accept:"application/json","content-type":"application/json"},a=s(o=>`/v1/training/jobs/${encodeURIComponent(g.parse(o))}/post-training`,"path");async function r(o,m,c){if(o===null)return null;let x=_t.parse(o);if(x.teamId!==m||x.jobId!==c)throw new d("post_training_scope_mismatch","The evaluation summary belongs to another run or workspace.");return x}return s(r,"read"),{async attach(o,m){let c=hn.parse(m),x=bn(await n("/v1/training/post-training-plans",{method:"POST",headers:i,body:JSON.stringify(c)}));if(x.teamId!==o||await u(x.attachment)!==await u(c.attachment))throw new d("post_training_plan_mismatch","The retained attachment differs from the reviewed plan.");return x},async get(o,m){return r(await n(a(m),{headers:i}),o,m)},async control(o,m,c,x){let R=gn.parse(x),v=await r(await n(`${a(m)}/${c}`,{method:"POST",headers:i,body:JSON.stringify(R)}),o,m);if(!v||v.planHash!==R.planHash)throw new d("post_training_control_mismatch","Evaluation control did not retain the approved plan.");return v}}}s(jt,"createPostTrainingClient");var Ca=e.object({teamId:g,actorId:g,projectId:g.nullable(),configuration:xe,batches:e.array(tt).max(1e4),sources:e.array(et).max(1e4),definitions:e.array(Ze).max(1e4),experiments:e.array(e.object({id:g,name:e.string().max(500),configuration:_e,graders:e.array(e.object({feedbackKey:g,name:e.string().max(500),ref:oe}).strict()).max(100)}).strict()).max(1e4)}).strict(),qa=e.enum(["prepare","start","cancel","publish","attach"]),za=e.object({teamId:g,actorId:g,configuration:xe,policy:nt,inspection:at,iterations:e.array(e.object({iteration:it,evals:_t.nullable()}).strict()).max(100),nextCursor:g.nullable()}).strict(),Ma=e.object({id:g,expectedRevision:e.number().int().positive(),policyHash:H,operationId:g,action:e.enum(["pause","resume","reserve","cancel-iteration","retry-iteration"]),iterationId:g.optional(),iterationRevision:e.number().int().positive().optional()}).strict();var K=e.string().trim().min(1).max(191),se=e.string().regex(/^[a-f0-9]{64}$/),Ht=e.object({schemaVersion:e.literal("openpond.checkpointRecoveryResourceApproval.v1"),ownerUserId:K,teamId:K,sourceJobId:K,sourceJobVersion:e.number().int().positive(),sourceInputManifestSha256:se,checkpointId:K,adapterSha256:se,resumeSha256:se,idempotencyKey:e.string().trim().min(16).max(191),approvedAt:e.iso.datetime({offset:!0}),maximumSpendUsd:e.number().positive().finite().max(30).refine(t=>Number(t.toFixed(6))===t,"Recovery spend must use whole microdollars"),maximumGpuSeconds:e.number().int().positive().max(21600),maximumWallSeconds:e.number().int().positive().max(21600)}).strict(),W=Ht.extend({approvalHash:se}).strict().superRefine((t,n)=>{t.maximumGpuSeconds>t.maximumWallSeconds&&n.addIssue({code:"custom",path:["maximumGpuSeconds"],message:"Recovery GPU duration exceeds its wall"})});async function xn(t){let n=Ht.parse(t);return W.parse({...n,approvalHash:await u(n)})}s(xn,"createTrainingCheckpointRecoveryResourceApproval");var je=e.object({resourceApproval:W.optional(),mode:e.literal("evaluation_only").optional(),evaluationGpuType:e.enum(["NVIDIA A100 80GB PCIe","NVIDIA A100-SXM4-80GB","NVIDIA H100 80GB HBM3"]).optional(),expectedVersion:e.number().int().positive(),checkpointId:K,idempotencyKey:e.string().trim().min(16).max(191),maximumSpendUsd:e.number().positive().finite(),maximumWallSeconds:e.number().int().positive().max(21600)}).strict().superRefine((t,n)=>{t.evaluationGpuType&&t.mode!=="evaluation_only"&&n.addIssue({code:"custom",path:["evaluationGpuType"],message:"GPU substitution requires explicit evaluation-only recovery"});let i=t.resourceApproval;i&&(i.sourceJobVersion!==t.expectedVersion||i.checkpointId!==t.checkpointId||i.idempotencyKey!==t.idempotencyKey||i.maximumSpendUsd!==t.maximumSpendUsd||i.maximumWallSeconds!==t.maximumWallSeconds)&&n.addIssue({code:"custom",path:["resourceApproval"],message:"Recovery resource approval does not match its request"})});var X=e.object({mode:e.literal("reuse_only"),physicalWorkerId:e.string().trim().min(1).max(191),providerPodId:e.string().trim().min(1).max(191),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),baseProfileSha256:e.string().regex(/^[a-f0-9]{64}$/),gpuType:e.string().trim().min(1).max(200),sourceJobId:e.string().trim().min(1).max(191),sourceInputManifestSha256:e.string().regex(/^[a-f0-9]{64}$/),ownerTeamId:e.string().trim().min(1).max(191),deadlineAt:e.string().datetime({offset:!0})}).strict();var S=e.string().trim().min(1).max(191),Y=e.string().regex(/^[a-f0-9]{64}$/),Ee=e.object({schemaVersion:e.literal("openpond.trainingPreparationRequest.v1"),teamId:S,operationId:S,projectId:S.nullable(),configuration:e.object({id:S,expectedRevision:e.number().int().positive(),expectedEtag:Y}).strict(),origin:U.optional(),batch:b,name:e.string().trim().min(1).max(191),maximumSpendUsd:e.number().finite().positive().max(1e6),gpuSelection:A.optional(),physicalPlacement:X.optional()}).strict(),Et=e.object({schemaVersion:e.literal("openpond.trainingPreparationPlan.v1"),id:S,creatorUserId:S,request:Ee,requestHash:Y,source:e.lazy(()=>Ce),submissionHash:Y,createdAt:e.string().datetime({offset:!0})}).strict(),At=Et.extend({contentHash:Y}).strict(),Ae=e.object({schemaVersion:e.literal("openpond.trainingPreparationReceipt.v1"),plan:At,revision:e.number().int().positive(),state:e.enum(["prepared","submitted","cancelled"]),jobId:S.nullable()}).strict().superRefine((t,n)=>{t.state==="submitted"!=!!t.jobId&&n.addIssue({code:"custom",path:["jobId"],message:"Only submitted preparations identify a job."})}),He=e.object({teamId:S,planHash:Y,expectedRevision:e.number().int().positive(),estimateReview:$.optional()}).strict(),Ct=e.object({projectId:S.optional(),state:e.enum(["prepared","submitted","cancelled"]).optional(),afterId:S.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),qt=e.object({schemaVersion:e.literal("openpond.trainingPreparationPage.v1"),teamId:S,items:e.array(Ae).max(100),nextCursor:S.nullable()}).strict();async function zt(t){let n=Ae.parse(t),{contentHash:i,...a}=n.plan;if(await u(a)!==i||await u(a.request)!==a.requestHash||a.source.modelProject.id!==a.request.configuration.id||await u(a.source.origin??null)!==await u(a.request.origin??null))throw new d("training_preparation_mismatch","The prepared training inputs changed.");return n}s(zt,"parseAndVerifyTrainingPreparationReceipt");function Mt(t){async function n(i,a,r){let o=await zt(i);if(o.plan.request.teamId!==a||r&&o.plan.id!==r)throw new d("training_preparation_scope_mismatch","The training preparation belongs to a different workspace or request.");return o}return s(n,"read"),{async listPreparations(i,a={}){let r=S.parse(i),o=Ct.parse(a),m=new URLSearchParams;for(let[R,v]of Object.entries(o))m.set(R,String(v));let c=qt.parse(await t(`/v1/training/preparations?${m}`));if(c.teamId!==r||c.items.length>o.limit||new Set(c.items.map(R=>R.plan.id)).size!==c.items.length||c.nextCursor!==null&&(c.nextCursor!==c.items.at(-1)?.plan.id||c.nextCursor===o.afterId))throw new d("training_preparation_page_mismatch","The preparation page does not match its workspace or cursor.");let x=await Promise.all(c.items.map(async R=>{let v=await n(R,r);if(o.projectId&&v.plan.request.projectId!==o.projectId||o.state&&v.state!==o.state)throw new d("training_preparation_page_mismatch","A preparation does not match the requested Project or state.");return v}));return{...c,items:x}},async prepareRun(i){let a=Ee.parse(i),r=await n(await t("/v1/training/preparations",{method:"POST",body:JSON.stringify(a)}),a.teamId);if(r.plan.requestHash!==await u(a))throw new d("training_preparation_request_mismatch","The preparation does not match the requested run.");return r},async getPreparation(i,a){return n(await t(`/v1/training/preparations/${encodeURIComponent(S.parse(a))}`),S.parse(i),a)},async startPreparation(i,a){let r=He.parse(a),o=await n(await t(`/v1/training/preparations/${encodeURIComponent(S.parse(i))}/start`,{method:"POST",body:JSON.stringify(r)}),r.teamId,i);if(o.plan.contentHash!==r.planHash||o.state!=="submitted")throw new d("training_preparation_start_mismatch","The submitted run does not match the approved preparation.");return o},async cancelPreparation(i,a){let r=He.parse(a),o=await n(await t(`/v1/training/preparations/${encodeURIComponent(S.parse(i))}/cancel`,{method:"POST",body:JSON.stringify(r)}),r.teamId,i);if(o.plan.contentHash!==r.planHash||o.state!=="cancelled")throw new d("training_preparation_cancel_mismatch","The preparation cancellation could not be verified.");return o}}}s(Mt,"createTrainingPreparationClient");var I=e.string().trim().min(1).max(191),L=e.string().regex(/^[a-f0-9]{64}$/),qe=e.string().datetime({offset:!0}),P=e.number().finite().nonnegative(),Ot=e.discriminatedUnion("kind",[e.object({kind:e.literal("preparation"),id:I,planHash:L,expectedRevision:e.number().int().positive()}).strict(),e.object({kind:e.literal("configuration"),id:I,expectedRevision:e.number().int().positive(),expectedEtag:L,batch:b.nullable().default(null)}).strict(),e.object({kind:e.literal("submission"),submission:e.lazy(()=>ze)}).strict()]),Ut=e.object({schemaVersion:e.literal("openpond.trainingEstimateRequest.v1"),teamId:I,source:Ot,gpuSelection:A.optional()}).strict(),ce=e.object({low:P,high:P}).strict().refine(t=>t.high>=t.low,"Planning range must be ordered"),Gt=e.object({phase:e.enum(["startup","baseline_evaluation","rollouts","optimization","checkpointing","backbone_materialization","final_evaluation","publication","cleanup","retention"]),resource:e.enum(["gpu","cpu","judge","storage","network"]),expectedUsd:P.nullable(),expectedSeconds:P.nullable(),planningRangeUsd:ce.nullable(),evidence:e.enum(["measured","configured_rate","unavailable"]),reason:e.string().trim().min(1).max(1e3).nullable()}).strict();function Dt(t){return t.kind==="submission"?{kind:t.kind,id:t.submission.idempotencyKey,contentHash:t.submission.contentHash,revision:null}:t.kind==="preparation"?{kind:t.kind,id:t.id,contentHash:t.planHash,revision:t.expectedRevision}:{kind:t.kind,id:t.id,contentHash:t.expectedEtag,revision:t.expectedRevision}}s(Dt,"trainingEstimateSourceIdentity");var Jt=e.object({schemaVersion:e.literal("openpond.trainingEstimate.v1"),id:I,teamId:I,requestHash:L,inputHash:L,source:e.object({kind:e.enum(["preparation","configuration","submission"]),id:I,contentHash:L,revision:e.number().int().positive().nullable()}).strict(),status:e.enum(["available","partial","insufficient_evidence"]),currency:e.literal("USD"),createdAt:qe,expiresAt:qe,estimatorVersion:I,runtimeVersion:I,pricing:e.object({version:I,quoteExpiresAt:qe.nullable()}).strict(),gpu:e.object({requested:A,resolved:e.object({availabilityId:I,gpuType:e.string().min(1).max(256),gpuCount:e.union([e.literal(1),e.literal(2)])}).strict().nullable(),customerHourlyUsd:P.nullable(),availability:e.enum(["available","limited","unavailable","unknown"])}).strict(),configuration:e.object({modelId:I,modelRevision:e.string().min(1).max(256),method:I,loraRank:e.number().int().positive().nullable(),adapterMode:e.enum(["residual_append","shared","sequential_merge"]).nullable(),groups:e.number().int().nonnegative().nullable(),rolloutConcurrency:e.number().int().positive().nullable(),maxOutputTokens:e.number().int().positive().nullable(),trainingRows:e.number().int().nonnegative().nullable(),evaluationRows:e.number().int().nonnegative().nullable(),retentionDays:e.number().int().positive().nullable(),approvedMaximumUsd:P.nullable()}).strict(),cost:e.object({expectedUsd:P.nullable(),planningRangeUsd:ce.nullable(),knownMinimumUsd:P,recommendedMaximumUsd:P.nullable(),minimumCleanupReserveUsd:P.nullable(),components:e.array(Gt).max(50)}).strict(),executionSeconds:e.object({expected:P.nullable(),planningRange:ce.nullable()}).strict(),queueWaitSeconds:e.object({expected:P,planningRange:ce.nullable()}).strict().nullable(),calibration:e.object({version:I,cohortHash:L,completedSamples:e.number().int().nonnegative(),partialSamples:e.number().int().nonnegative(),scope:e.enum(["workspace","authorized_aggregate"])}).strict(),assumptions:e.array(e.string().trim().min(1).max(1e3)).max(50),unknowns:e.array(e.string().trim().min(1).max(1e3)).max(50),review:$}).strict().superRefine((t,n)=>{(t.review.estimateId!==t.id||t.review.inputHash!==t.inputHash||t.review.requestHash!==t.requestHash||t.review.pricingVersion!==t.pricing.version||t.review.expiresAt!==t.expiresAt)&&n.addIssue({code:"custom",path:["review"],message:"Estimate review identity differs from the estimate"}),Date.parse(t.expiresAt)<=Date.parse(t.createdAt)&&n.addIssue({code:"custom",path:["expiresAt"],message:"Estimate must expire after its creation"}),t.status==="available"&&(t.cost.expectedUsd===null||t.executionSeconds.expected===null||t.unknowns.length>0)&&n.addIssue({code:"custom",path:["status"],message:"An available estimate requires complete cost and duration coverage"}),t.gpu.requested.mode==="manual"&&t.gpu.resolved&&(t.gpu.requested.availabilityId!==t.gpu.resolved.availabilityId||t.gpu.requested.gpuType!==t.gpu.resolved.gpuType)&&n.addIssue({code:"custom",path:["gpu"],message:"An explicit GPU offering cannot be substituted"}),t.gpu.resolved&&t.gpu.resolved.gpuCount!==(t.gpu.requested.gpuCount??1)&&n.addIssue({code:"custom",path:["gpu","resolved","gpuCount"],message:"The resolved GPU count must match the requested count"})});function $t(t){return{async estimate(n){let i=Ut.parse(n);i.source.kind==="submission"&&await me(i.source.submission);let a=Jt.parse(await t("/v1/training/estimates",{method:"POST",body:JSON.stringify(i)}));if(a.teamId!==i.teamId||a.requestHash!==await u(i)||await u(a.source)!==await u(Dt(i.source))||i.gpuSelection&&await u(a.gpu.requested)!==await u(i.gpuSelection))throw new d("training_estimate_scope_mismatch","The estimate does not match the requested workspace and exact configuration.");return a}}}s($t,"createTrainingEstimateClient");var pe=e.string().datetime({offset:!0}),Me=e.object({ticketId:e.string().trim().min(1).max(191),ticketNumber:e.number().int().positive().max(Number.MAX_SAFE_INTEGER),label:e.literal("Waiting for resources"),position:e.number().int().positive().nullable(),positionScope:e.literal("compatible_fair_queue"),enqueuedAt:pe,asOf:pe,estimate:e.object({revision:e.number().int().nonnegative(),estimatedStartAt:pe,expiresAt:pe,evidence:e.enum(["observed_capacity","measured_bootstrap","scheduled_release"])}).strict().nullable()}).strict().superRefine((t,n)=>{t.estimate&&Date.parse(t.estimate.expiresAt)<=Date.parse(t.asOf)&&n.addIssue({code:"custom",path:["estimate"],message:"An expired queue forecast must be returned as unavailable"})});var Nt=e.object({schemaVersion:e.literal("openpond.trainingHarnessSourcePublication.v1"),harnessRelease:ue,sourcePackageHash:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().positive().max(67108864)}).strict();function Bt(t){let n=s(i=>{let a=ue.parse(i);return`/v1/training/harness-sources/${encodeURIComponent(a.id)}/${a.contentHash}`},"route");return{async publishHarnessSource(i){k(i,67108864,"Training Harness source");let a=Vt(i),r=a.agentSnapshot.portability;if(!r.portable||r.blockers.length||r.localOnlyAssetRefs.length||r.hostPrivateAssetRefs.length||a.schemaVersion==="openpond.harnessSourcePackage.v1"&&a.harnessRelease.files.some(m=>m.visibility!=="policy"))throw new Error("Hosted training Harness publication requires portable, policy-visible source.");let o=Nt.parse(await t(n({id:a.harnessRelease.id,contentHash:a.harnessRelease.contentHash}),{method:"PUT",body:JSON.stringify(a)}));if(o.harnessRelease.id!==a.harnessRelease.id||o.harnessRelease.contentHash!==a.harnessRelease.contentHash||o.sourcePackageHash!==a.contentHash)throw new Error("Published Harness source differs from the selected immutable package.");return o},async getHarnessSource(i){let a=await t(n(i),void 0,67108864);return k(a,67108864,"Training Harness source"),Vt(a,i)}}}s(Bt,"createTrainingHarnessSourceClient");function Vt(t,n){return typeof t=="object"&&t!==null&&Reflect.get(t,"schemaVersion")==="openpond.harnessPolicySourcePackage.v1"?$e(t,n):Ve(t,n)}s(Vt,"validateSource");var O=e.string().trim().min(1).max(500),yn=e.string().regex(/^[a-f0-9]{64}$/),de=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecisionRequest.v1"),teamId:O,jobId:O,artifact:p,evaluation:p,executionReceipt:p,decision:e.enum(["accepted","rejected"]),reason:e.string().trim().min(1).max(5e3),idempotencyKey:O,expectedDecision:p.nullable()}).strict(),Lt=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecision.v1"),id:O,request:de,revision:e.number().int().positive(),actor:e.object({userId:O,kind:e.enum(["user","api_key","agent_delegate"]),id:O}).strict(),decidedAt:e.string().datetime({offset:!0}),contentHash:yn}).strict().superRefine((t,n)=>{t.revision===1!=(t.request.expectedDecision===null)&&n.addIssue({code:"custom",path:["revision"],message:"A first decision has no predecessor; later decisions must reference the prior decision."}),t.request.expectedDecision?.id===t.id&&n.addIssue({code:"custom",path:["request","expectedDecision"],message:"A decision cannot supersede itself."})});async function Qt(t){let{contentHash:n,...i}=t;return u(i)}s(Qt,"trainingCandidateDecisionHash");async function Oe(t,n){k(t,32768,"Training candidate decision");let i=Lt.parse(t);if(i.contentHash!==await Qt(i))throw new d("content_hash_mismatch","Training candidate decision content hash does not match.");if(i.request.teamId!==n.teamId||i.request.jobId!==n.jobId||i.request.artifact.id!==n.artifact.id||i.request.artifact.contentHash!==n.artifact.contentHash)throw new d("candidate_decision_identity_mismatch","Training candidate decision belongs to a different team, Job or artifact.");if(n.request&&await u(i.request)!==await u(de.parse(n.request)))throw new d("candidate_decision_request_mismatch","Training candidate decision does not match the submitted review.");return i}s(Oe,"parseAndVerifyTrainingCandidateDecision");function Ft(t){function n(i){return`/v1/training/jobs/${encodeURIComponent(O.parse(i.jobId))}/candidates/${encodeURIComponent(p.parse(i.artifact).id)}/decision`}return s(n,"route"),{async candidateDecision(i,a={}){O.parse(i.teamId);let r=a.decision?p.parse(a.decision):void 0,o=r?`?decisionId=${encodeURIComponent(r.id)}`:"",m=e.object({decision:e.unknown().nullable()}).strict().parse(await t(`${n(i)}${o}`));if(m.decision===null&&!r)return null;let c=await Oe(m.decision,i);if(r&&(c.id!==r.id||c.contentHash!==r.contentHash))throw new d("candidate_decision_identity_mismatch","Training candidate decision does not match the requested history entry.");return c},async recordCandidateDecision(i){let a=de.parse(i),r=await t(n(a),{method:"POST",body:JSON.stringify(a)});return Oe(r,{...a,request:a})}}}s(Ft,"createTrainingCandidateDecisionClient");var Q=e.string().trim().min(1).max(500),Z=e.string().regex(/^[a-f0-9]{64}$/),Kt=e.object({taskId:Q,taskSha256:Z,resultSha256:Z,input:e.object({instruction:e.string().max(1e6),context:e.record(e.string(),e.unknown())}).strict(),output:e.string().max(1e6),outputSha256:Z,score:e.number().finite().min(0).max(1),evidence:e.object({kind:e.enum(["worker_command","hosted_trace","local_trace"]),id:Q}).strict()}).strict(),Wt=e.object({schemaVersion:e.literal("openpond.trainingEvaluationTaskPage.v1"),jobId:Q,teamId:Q,evaluation:p,kind:e.enum(["baseline","candidate"]),policyVersion:e.number().int().nonnegative(),taskset:b,panelSha256:Z,offset:e.number().int().nonnegative(),total:e.number().int().min(1).max(1e4),tasks:e.array(Kt).min(1).max(100),nextCursor:e.string().regex(/^[1-9]\d*$/).nullable(),contentHash:Z}).strict().superRefine((t,n)=>{let i=t.offset+t.tasks.length,a=i<t.total?String(i):null;(i>t.total||t.nextCursor!==a)&&n.addIssue({code:"custom",path:["nextCursor"],message:"Evaluation pagination must cover consecutive task positions."}),new Set(t.tasks.map(r=>r.taskId)).size!==t.tasks.length&&n.addIssue({code:"custom",path:["tasks"],message:"Evaluation task identities must be unique."})});async function Xt(t){let{contentHash:n,...i}=t;return u(i)}s(Xt,"trainingEvaluationTaskPageHash");async function Ue(t,n){k(t,8388608,"Training evaluation task page");let i=Wt.parse(t),a=p.parse(n.evaluation);if(i.jobId!==Q.parse(n.jobId)||i.evaluation.id!==a.id||i.evaluation.contentHash!==a.contentHash||i.offset!==(n.offset??0)||n.teamId!==void 0&&i.teamId!==Q.parse(n.teamId))throw new d("evaluation_page_identity_mismatch","Evaluation results differ from the requested Job, evaluation, or page.");if(await Xt(i)!==i.contentHash)throw new d("evaluation_page_hash_mismatch","Evaluation task page content hash did not match.");for(let r of i.tasks)if(await u(r.output)!==r.outputSha256)throw new d("evaluation_output_hash_mismatch","A retained evaluation output hash did not match.");return i}s(Ue,"parseAndVerifyTrainingEvaluationTaskPage");var Sn=e.array(e.object({id:e.string().trim().min(1)}).catchall(e.unknown())).min(1).max(1e3),Tn=e.object({binding:Fe,rewards:e.array(Qe).min(1).max(100)}).strict();async function vn(t){let n=t.rewardExecution?Tn.parse(t.rewardExecution):null,i=Sn.parse(n?We(n.binding,n.rewards):t.graders);if(new Set(i.map(r=>r.id)).size!==i.length)throw new Error("Training grader identities must be unique.");let a=await u({schemaVersion:"openpond.trainingGraderSet.v1",graders:i});return{kind:"deterministic",grader:{id:`training-graders-${a.slice(0,32)}`,contentHash:a},composer:n?{id:n.binding.id,contentHash:n.binding.contentHash}:null}}s(vn,"deterministicTrainingRewardSource");var In="evaluation-source.json",Ge=e.object({id:e.string().trim().min(1),clusterKey:e.string().trim().min(1),split:e.enum(["train","validation","frozen_eval"])}).passthrough(),Yt=e.object({schemaVersion:e.literal("openpond.trainingEvaluationSource.v1"),taskset:b,tasks:e.array(Ge).min(1).max(1e4),assets:e.array(e.object({path:e.string().trim().min(1).max(2e3),sha256:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().nonnegative(),encoding:e.literal("base64"),content:e.string().max(32*1024*1024)}).strict()).max(1e4)}).strict().superRefine((t,n)=>{let i=new Set;t.tasks.forEach((a,r)=>{a.split==="train"&&n.addIssue({code:"custom",path:["tasks",r,"split"],message:"Evaluation sources require held-out tasks."}),i.has(a.id)&&n.addIssue({code:"custom",path:["tasks",r,"id"],message:"Evaluation task identities must be unique."}),i.add(a.id)})});function Rn(t,n){let i=e.array(Ge).min(1).max(1e4).parse(t),a=e.array(Ge).min(1).max(1e4).parse(n),r=new Set,o=new Set;for(let c of i){if(c.split!=="train")throw new Error("The training population contains a held-out task.");if(r.has(c.id))throw new Error("Training task identities must be unique.");r.add(c.id),o.add(c.clusterKey)}let m=new Set;for(let c of a){if(c.split==="train")throw new Error("The evaluation population contains a training task.");if(m.has(c.id))throw new Error("Evaluation task identities must be unique.");if(r.has(c.id)||o.has(c.clusterKey))throw new Error("Training and evaluation tasks or families overlap.");m.add(c.id)}}s(Rn,"assertTrainingEvaluationIsolation");async function wn(t){let n=Yt.parse(t),i=await u(n);return{taskset:n.taskset,dataset:{id:`training-evaluation-${i.slice(0,32)}`,contentHash:i}}}s(wn,"trainingEvaluationSourceRef");var l=e.string().trim().min(1).max(500),f=e.string().regex(/^[a-f0-9]{64}$/),j=e.string().datetime({offset:!0}),Pn=e.object({schemaVersion:e.literal("openpond.trainingInputArtifactUpload.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),idempotencyKey:e.string().trim().min(1).max(500),sourceManifest:p,payload:e.unknown(),contentHash:f}).strict(),kn=e.object({schemaVersion:e.literal("openpond.trainingInputArtifact.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),sourceManifest:p,artifactRef:e.string().trim().min(1).max(2e3),contentHash:f,sizeBytes:e.number().int().positive(),createdAt:j}).strict();async function _n(t){let{contentHash:n,...i}=t;return u(i)}s(_n,"trainingInputArtifactUploadHash");async function jn(t){k(t,67108864,"Training input artifact");let n=Pn.parse(t),i=await _n(n);if(n.contentHash!==i)throw new d("content_hash_mismatch",`Training input artifact contentHash ${n.contentHash} does not match ${i}.`);return n}s(jn,"parseAndVerifyTrainingInputArtifactUpload");var en=e.enum(["reward_model_train","policy_optimize"]),Hn=e.enum(["queued","admitting","provisioning","running","stopping","cancelling","succeeded","failed","cancelled"]),En=e.object({id:l,version:e.string().trim().min(1).max(200).nullable().default(null),required:e.boolean().default(!0)}).strict(),Ce=e.object({origin:U.optional(),modelProject:e.object({id:l,portableProjectId:l,revision:e.number().int().positive(),contentHash:f}).strict(),harnessRunManifest:p,harnessRelease:p,taskset:b,tasksetRelease:p,evaluation:e.object({taskset:b,dataset:p}).strict().nullable().optional(),dataset:p,evidenceSets:e.array(p).max(1e4)}).strict(),An=e.object({kind:e.literal("reward_model_train"),baseModel:ie,preferenceDatasetRelease:p,processorRelease:p,recipe:e.object({schemaVersion:e.literal("openpond.rewardModelRecipe.v1"),method:e.literal("reward_model"),parameterization:e.literal("lora_with_scalar_head")}).catchall(e.unknown())}).strict(),Cn=e.object({kind:e.literal("deterministic"),grader:p,composer:p.nullable().default(null)}).strict(),qn=e.object({kind:e.literal("learned_reward"),rewardModelVersion:p,qualificationReport:p.nullable().default(null),evaluationReferences:e.array(p).max(1e3).default([]),scorerArtifact:e.object({artifactRef:e.string().trim().min(1).max(2e3),contentHash:f,executionReceipt:p}).strict(),processorRelease:p,rewardComposerRelease:p}).strict(),tn=ie.extend({revision:e.string().regex(/^[a-f0-9]{40,64}$/),tokenizerRevision:e.string().regex(/^[a-f0-9]{40,64}$/),chatTemplateHash:f}).strict(),zn=e.object({kind:e.literal("policy_optimize"),executionMode:e.literal("qualification").optional(),baseModel:ie,recipe:pt,rewardSource:e.discriminatedUnion("kind",[Cn,qn]),resumeFrom:p.nullable().default(null)}).strict().superRefine((t,n)=>{if(t.recipe.method!=="sft")return;let i=z.safeParse(t.recipe);if(!i.success){n.addIssue({code:"custom",path:["recipe"],message:"The SFT recipe is incomplete or invalid."});return}(t.executionMode||t.resumeFrom||"continuation"in t.recipe)&&n.addIssue({code:"custom",message:"Initial managed SFT requires a fresh supervised run without rollout qualification or continuation."}),(i.data.baseModel.id!==t.baseModel.modelId||i.data.baseModel.revision!==t.baseModel.revision||i.data.baseModel.tokenizerRevision!==t.baseModel.tokenizerRevision||i.data.baseModel.chatTemplateHash!==t.baseModel.chatTemplateHash)&&n.addIssue({code:"custom",path:["baseModel"],message:"The SFT recipe must pin the exact submitted base and tokenizer."})}),Mn=e.discriminatedUnion("kind",[An,zn]),On=e.object({approvalHash:f,approvedAt:j,exportApproved:e.boolean(),maximumSpendUsd:e.number().nonnegative(),retentionDays:e.number().int().nonnegative().nullable(),region:e.string().trim().min(1).max(200).nullable().default(null)}).strict(),ze=e.object({schemaVersion:e.literal("openpond.trainingJobSubmission.v2"),idempotencyKey:e.string().trim().min(1).max(500),name:e.string().trim().min(1).max(200),source:Ce,job:Mn,requestedCapabilities:e.array(En).max(1e3),placementObjective:e.enum(["fast","balanced","economical"]),gpuSelection:A.optional(),physicalPlacement:X.optional(),budget:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive()}).strict(),approval:On,contentHash:f}).strict().superRefine((t,n)=>{let i=(t.gpuSelection?.gpuCount??1)===2,a=t.requestedCapabilities.some(r=>r.id==="managed_rl.policy.data_parallel"&&r.version==="1"&&r.required);if(i!==a&&n.addIssue({code:"custom",path:["requestedCapabilities"],message:"Two-GPU training must require managed_rl.policy.data_parallel@1 and bind gpuSelection.gpuCount to 2."}),i&&(t.job.kind!=="policy_optimize"||t.job.executionMode||t.job.recipe.method!=="grpo"||t.physicalPlacement)&&n.addIssue({code:"custom",path:["gpuSelection"],message:"Two-GPU execution requires exclusive GRPO policy training."}),t.physicalPlacement&&(t.job.kind!=="policy_optimize"||t.job.resumeFrom||t.job.executionMode||t.job.recipe.continuation!==void 0)&&n.addIssue({code:"custom",path:["physicalPlacement"],message:"Reuse-only placement requires fresh-base policy training without continuation."}),t.job.kind==="policy_optimize"&&t.job.executionMode==="qualification"){let r=t.job;tn.safeParse(r.baseModel).success||n.addIssue({code:"custom",path:["job","baseModel"],message:"Qualification requires immutable model and tokenizer revisions and a SHA-256 chat-template pin."}),(r.resumeFrom||r.recipe.continuation!==void 0||r.rewardSource.kind!=="deterministic"||r.recipe.method!=="grpo")&&n.addIssue({code:"custom",path:["job"],message:"Qualification requires the original GRPO learner, deterministic reward, and no resume or continuation."}),t.requestedCapabilities.some(o=>o.required&&o.id==="managed_rl.policy.qualification"&&o.version==="1")||n.addIssue({code:"custom",path:["requestedCapabilities"],message:"Qualification must require managed_rl.policy.qualification@1."})}t.approval.maximumSpendUsd!==t.budget.maximumSpendUsd&&n.addIssue({code:"custom",path:["approval","maximumSpendUsd"],message:"Approved spend must equal the immutable Job budget."})});async function Un(t){let{contentHash:n,...i}=t;return u(i)}s(Un,"trainingJobSubmissionHash");async function me(t){k(t,1048576,"Training Job submission");let n=ze.parse(t),i=await Un(n);if(n.contentHash!==i)throw new d("content_hash_mismatch",`Training Job contentHash ${n.contentHash} does not match ${i}.`);return n}s(me,"parseAndVerifyTrainingJobSubmission");var Gn=e.object({resourceApproval:W.optional(),mode:e.literal("evaluation_only").optional(),trainingWorkloadComplete:e.boolean().optional(),sourceJobId:l,checkpointId:l,policyVersion:e.number().int().positive(),completedGroups:e.number().int().positive(),optimizerMode:e.literal("continue")}).strict(),F=e.object({schemaVersion:e.literal("openpond.trainingJob.v2"),id:l,teamId:l,kind:en,executionMode:e.literal("qualification").optional(),recovery:Gn.optional(),modelProjectId:l,portableProjectId:l,sourceProjectRevision:e.number().int().positive(),submissionHash:f,state:Hn,queue:Me.optional(),phase:e.string().trim().min(1).max(200),version:e.number().int().nonnegative(),progress:e.number().min(0).max(1),rolloutProgress:e.object({groupsCompleted:e.number().int().nonnegative(),groupsTarget:e.number().int().nonnegative(),optimizerUpdatesApplied:e.number().int().nonnegative(),optimizerUpdatesSkipped:e.number().int().nonnegative()}).strict(),accruedSpendUsd:e.number().nonnegative(),terminalReason:e.string().trim().min(1).max(5e3).nullable(),createdAt:j,updatedAt:j,completedAt:j.nullable()}).strict(),Dn=e.object({schemaVersion:e.literal("openpond.trainingJobPage.v2"),jobs:e.array(F).max(1e3),nextCursor:e.string().trim().min(1).max(2e3).nullable()}).strict(),Jn=e.object({schemaVersion:e.literal("openpond.trainingJobEvent.v2"),id:l,jobId:l,sequence:e.number().int().nonnegative(),type:l,phase:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3).nullable(),data:e.record(e.string(),e.unknown()).default({}),createdAt:j}).strict(),$n=e.object({schemaVersion:e.literal("openpond.trainingJobLog.v2"),jobId:l,sequence:e.number().int().nonnegative(),level:e.enum(["debug","info","warning","error"]),message:e.string().max(2e4),createdAt:j}).strict(),Zt=e.object({expectedVersion:e.number().int().nonnegative()}).strict(),Vn=e.object({schemaVersion:e.literal("openpond.trainingJobOutput.v2"),id:l,jobId:l,kind:e.enum(["checkpoint","adapter","scorer","metrics","evaluation","trace","receipt"]),artifactRef:e.string().trim().min(1).max(2e3),contentHash:f,sizeBytes:e.number().int().nonnegative(),metadata:e.record(e.string(),e.unknown()).default({}),createdAt:j}).strict(),nn=e.object({schemaVersion:e.literal("openpond.trainingQualificationEvidence.v1"),baseModel:tn,group:p,rolloutReceipts:e.array(p).min(1).max(1e3),rewardEvidenceHash:f,groupsCompleted:e.literal(1),optimizerUpdatesApplied:e.literal(0),optimizerUpdatesSkipped:e.literal(0),trainingStepsCreated:e.literal(0),checkpointsCreated:e.literal(0),artifactsCreated:e.literal(0)}).strict().superRefine((t,n)=>{new Set(t.rolloutReceipts.map(i=>i.id)).size!==t.rolloutReceipts.length&&n.addIssue({code:"custom",path:["rolloutReceipts"],message:"Qualification rollout receipt identities must be unique."})}),De=e.object({schemaVersion:e.literal("openpond.trainingExecutionReceipt.v2"),id:l,teamId:l,jobId:l,submissionHash:f,manifestHash:f,recipeHash:f,capabilityHash:f,runtimeRelease:p,inputs:e.array(p).max(1e4),outputs:e.array(p).max(1e4),spendUsd:e.number().nonnegative(),durationSeconds:e.number().nonnegative(),cleanupComplete:e.boolean(),qualification:nn.optional(),issuer:l,issuedAt:j,signature:e.string().trim().min(1).max(1e4).nullable()}).strict();async function Nn(t){return u(De.parse(t))}s(Nn,"trainingExecutionReceiptHash");async function po(t,n){let i=De.parse(t),a=l.parse(n.id),r=f.parse(n.contentHash),o=await Nn(i);if(i.id!==a||o!==r)throw new d("execution_receipt_mismatch","The execution receipt identity or canonical content hash did not match.");if(n.teamId!==void 0&&i.teamId!==l.parse(n.teamId))throw new d("execution_receipt_team_mismatch","The execution receipt belongs to a different team.");if(n.jobId!==void 0&&i.jobId!==l.parse(n.jobId))throw new d("execution_receipt_job_mismatch","The execution receipt belongs to a different Training Job.");if((n.requireCleanup??!0)&&!i.cleanupComplete)throw new d("execution_cleanup_incomplete","The execution receipt does not attest complete terminal cleanup.");if(n.qualificationSubmission){let m=await me(n.qualificationSubmission);if(m.job.kind!=="policy_optimize"||m.job.executionMode!=="qualification")throw new d("qualification_submission_required","Expected an immutable qualification submission.");await Bn(i,{submissionHash:m.contentHash,baseModel:m.job.baseModel,outputs:n.outputs})}return i}s(po,"parseAndVerifyTrainingExecutionReceipt");async function Bn(t,n){let i=nn.parse(t.qualification);if(t.submissionHash!==n.submissionHash||!t.cleanupComplete)throw new d("qualification_receipt_mismatch","Qualification must attest the expected submission and complete cleanup.");if(n.baseModel&&await u(i.baseModel)!==await u(n.baseModel))throw new d("qualification_learner_mismatch","Qualification used a different original learner or tokenizer.");if(n.outputs?.some(a=>["checkpoint","adapter","scorer"].includes(a.kind)))throw new d("qualification_updated_artifact","Qualification must not publish trained artifacts or checkpoints.")}s(Bn,"assertTrainingQualificationReceipt");var Ln=e.object({schemaVersion:e.literal("openpond.trainingJobOutputs.v2"),outputs:e.array(Vn).max(1e4),receipt:De.nullable()}).strict(),Qn=e.object({workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),envelopeRank:e.number().int().positive().max(256),supportedRanks:e.array(e.number().int().positive().max(256)).max(256),qualification:e.object({evidenceRef:e.string().min(1),evidenceSha256:f}).strict().nullable(),continuation:e.object({sharedRequiresSameRank:e.literal(!0),mergedRequiresSameRank:e.literal(!0),residualAppendRequiresFreeCapacity:e.literal(!0),stageOptimizer:e.literal("reset"),interruptedRecoveryOptimizer:e.literal("restore")}).strict()}).strict().superRefine((t,n)=>{(new Set(t.supportedRanks).size!==t.supportedRanks.length||t.supportedRanks.some(i=>i>t.envelopeRank))&&n.addIssue({code:"custom",path:["supportedRanks"],message:"Supported ranks must be unique and fit the physical adapter envelope."}),t.supportedRanks.length&&!t.qualification&&n.addIssue({code:"custom",path:["qualification"],message:"Advertised ranks require immutable image qualification evidence."})});function uo(t,n,i){return t.supportedRanks.includes(n)?i?i.mode==="residual_append"?i.parentEnabledRank+n<=t.envelopeRank:i.parentEnabledRank===n:!0:!1}s(uo,"supportsTrainingPolicyLoraRank");var Fn=e.object({schemaVersion:e.literal("openpond.trainingCapabilities.v2"),capabilityHash:f,jobKinds:e.array(en),methods:e.array(e.string().trim().min(1).max(200)),executionModes:e.array(e.enum(["training","qualification"])).optional(),policyLora:Qn.optional(),policyDataParallel:e.object({capability:e.literal("managed_rl.policy.data_parallel"),version:e.literal("1"),gpuCount:e.literal(2),worldSize:e.literal(2),backend:e.literal("nccl"),allocationMode:e.literal("exclusive"),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),structuredOutputs:e.object({capability:e.literal("work.structured-output.v1"),harnessRuntimeHash:f,workHarnessHash:f,schemaHash:f,artifactHash:f,invalidDataRejected:e.literal(!0),invalidBytesRejected:e.literal(!0)}).strict().optional(),placements:e.array(e.enum(["local","remote","colocated","provider_native"])),controls:e.object({cancel:e.boolean(),stopAfterGroup:e.boolean(),resumeFromCheckpoint:e.boolean()}).strict(),estimates:e.object({schemaVersion:e.literal("openpond.trainingEstimate.v1")}).strict().optional(),limits:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive(),maximumArtifactBytes:e.number().int().positive()}).strict(),checkedAt:j,expiresAt:j}).strict();function lo(t){let n=dt(t);return{postTraining:jt({request:n}),...Mt(n),...$t(n),...bt(n),...ut(n),...Bt(n),...Ft(n),async capabilities(){return Fn.parse(E(await n("/v1/training/capabilities"),"capabilities"))},async gpuCatalog(){return be.parse(E(await n("/v1/training/gpu-catalog"),"catalog"))},async stageArtifact(i){let a=await jn(i);return kn.parse(E(await n("/v1/training/artifacts",{method:"POST",body:JSON.stringify(a)}),"artifact"))},async createJob(i){let a=await me(i);return F.parse(E(await n("/v1/training/jobs",{method:"POST",body:JSON.stringify(a)}),"job"))},async listJobs(i={}){let a=new URLSearchParams;i.modelProjectId&&a.set("modelProjectId",l.parse(i.modelProjectId)),i.cursor&&a.set("cursor",e.string().trim().min(1).max(2e3).parse(i.cursor)),i.limit!==void 0&&a.set("limit",String(e.number().int().min(1).max(1e3).parse(i.limit)));let r=a.size>0?`?${a.toString()}`:"";return Dn.parse(await n(`/v1/training/jobs${r}`))},async getJob(i){return F.parse(E(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}`),"job"))},async cancelJob(i,a){let r=Zt.parse({expectedVersion:a});return F.parse(E(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}/cancel`,{method:"POST",body:JSON.stringify(r)}),"job"))},async stopAfterGroup(i,a){let r=Zt.parse({expectedVersion:a});return F.parse(E(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}/stop-after-group`,{method:"POST",body:JSON.stringify(r)}),"job"))},async recoverCheckpoint(i,a){let r=je.parse(a);if(r.resourceApproval){let{approvalHash:o,...m}=r.resourceApproval;if(m.sourceJobId!==i||await u(m)!==o)throw new d("content_hash_mismatch","Recovery resource approval does not bind this source request.")}return F.parse(E(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}/recover`,{method:"POST",body:JSON.stringify(r)}),"job"))},async events(i){return e.array(Jn).parse(E(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}/events`),"events"))},async outputs(i){return Ln.parse(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}/outputs`))},async evaluationTasks(i,a,r={}){let o=l.parse(i),m=p.parse(a),c=new URLSearchParams,x=r.cursor===void 0?void 0:e.string().regex(/^[1-9]\d*$/).parse(r.cursor),R=x===void 0?0:e.number().int().min(1).max(9999).parse(Number(x));x!==void 0&&c.set("cursor",x),r.limit!==void 0&&c.set("limit",String(e.number().int().min(1).max(100).parse(r.limit)));let v=c.size?`?${c.toString()}`:"";return Ue(await n(`/v1/training/jobs/${encodeURIComponent(o)}/evaluations/${encodeURIComponent(m.id)}/tasks${v}`),{jobId:o,evaluation:m,offset:R})},async logs(i){return e.array($n).max(1e5).parse(E(await n(`/v1/training/jobs/${encodeURIComponent(l.parse(i))}/logs`),"logs"))}}}s(lo,"createTrainingClient");function E(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}s(E,"unwrapObject");export{z as a,rn as b,ye as c,gt as d,ht as e,ft as f,D as g,vt as h,cn as i,Yi as j,Re as k,Pe as l,ga as m,ha as n,fa as o,ba as p,_e as q,W as r,xn as s,je as t,X as u,Ee as v,Et as w,At as x,Ae as y,He as z,Ct as A,qt as B,zt as C,Ot as D,Ut as E,Gt as F,Dt as G,Jt as H,Me as I,Nt as J,de as K,Lt as L,Qt as M,Oe as N,Kt as O,Wt as P,Xt as Q,Ue as R,vn as S,In as T,Yt as U,Rn as V,wn as W,Pn as X,kn as Y,_n as Z,jn as _,en as $,Hn as aa,En as ba,Ce as ca,An as da,tn as ea,zn as fa,Mn as ga,On as ha,ze as ia,Un as ja,me as ka,Gn as la,F as ma,Dn as na,Jn as oa,$n as pa,Zt as qa,Vn as ra,nn as sa,De as ta,Nn as ua,po as va,Bn as wa,Ln as xa,Qn as ya,uo as za,Fn as Aa,lo as Ba};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as De,b as te,c as Ee,e as qe,g as Ce,h as G,k as de}from"./chunk-2UZHLO2V.js";import{A as oe,C as O,D as Ie,F as He,H as _e,I as A,J as Be,L as W,M as Me,N as ee,O as S,P as je,X as ce,Z as Ae,_ as J,l as Se,s as ye,t as Pe}from"./chunk-TV2LE2BD.js";import{h as re,k as Te,l as xe}from"./chunk-TERKCK4I.js";import{A as ke,K as v,L as V,M as j,N as ve,P as we,R as D,ca as F,ia as Re,k as $,l as U,o as L,ob as ie,pb as ne,qb as be,s as Q,v as K,y as Z}from"./chunk-XHU4BZQY.js";import{$a as ge,Aa as _,Wa as fe,_a as he,ab as X,bb as Y}from"./chunk-ZY32SZ2P.js";import{m as ue,n as f}from"./chunk-RCT3O3HQ.js";import{A as c}from"./chunk-X2J2P5ZT.js";import{a as b}from"./chunk-FTQLQJQV.js";function Ke(s){let t=S(s.source);if(t.modelResources||t.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let a=ee(t);if(!a.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let e=new Map,i=Ie(t);for(let g of i?.assets??[])e.set(g.id,g);let r=new Set([...t.taskset.tasks.flatMap(g=>g.privilegedContextRef?[g.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(g=>g?[g.id]:[])]);for(let g of r){if(e.has(g))continue;let H=t.files.find(q=>q.asset.id===g);if(!H)throw new Error(`Source Taskset context is missing: ${g}.`);let y=new TextDecoder("utf-8",{fatal:!0}).decode(O(H));e.set(g,we.parse(j({schemaVersion:"openpond.learningTextAsset.v1",id:g,revision:1,asset:H.asset,text:y})))}for(let g of s.assets){let H=t.files.find(y=>y.asset.id===g.id);if(H&&j({asset:H.asset}).contentHash!==j({asset:g.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${g.id}.`);e.set(g.id,g)}let{policy:p,environment:o,environmentRelease:k,tools:w,capabilities:n,verifierSetRelease:R}=t.taskset,m=t.taskset.metadata.tasksetOutputContract,x=m&&typeof m=="object"&&!Array.isArray(m)&&"mode"in m&&m.mode==="structured_json"?"jsonSchema"in m?m.jsonSchema:null:{type:"object"},l=L.parse(j({schemaVersion:"openpond.taskDefinition.v1",id:`${t.taskset.id}-definition`,revision:1,name:t.taskset.id,description:"",instructions:a,category:"custom",familyNamespace:t.taskset.id,inputSchema:{type:"object"},outputSchema:x,rewardBinding:v(s.rewardBinding),harness:null,execution:{policy:p,environment:o,environmentRelease:k,tools:w,capabilities:n,verifierSetRelease:R}})),I=Se({...s,assets:[...e.values()],source:{taskset:t.taskset,taskDefinition:l,instructionMode:"per_task",executionResources:{environment:t.environment,verifierSet:t.verifierSet},...i?{execution:i.execution}:{}}}),u=new Map(t.files.map(g=>[g.asset.id,g]));for(let g of I.assets){let H="";for(let y of new TextEncoder().encode(g.text))H+=String.fromCharCode(y);u.set(g.id,{asset:g.asset,base64:btoa(H)})}let{taskset:h,executionResources:M,...E}=I;return je({schemaVersion:"openpond.tasksetPackage.v1",taskset:h,...M,modelResources:E,files:[...u.values()]})}b(Ke,"bindOrdinaryModelTasksetReward");var B=c.string().trim().min(1).max(500),N=c.string().regex(/^[a-f0-9]{64}$/),We=Te.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:re.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),Je=c.object({schemaVersion:c.literal("openpond.tasksetPackagePublication.v1"),operationId:B,modelProjectId:B,expectedProjectEtag:N.nullable(),name:c.string().trim().min(1).max(200),description:c.string().max(5e3),buildIntent:c.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:c.enum(["sft","dpo","grpo","ppo"]).nullable(),package:W,modelConfiguration:We.optional(),evaluationPackage:W.optional(),selection:c.enum(["select","attach"]).optional()}).strict().refine(s=>s.selection!=="attach"||s.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(s=>!s.evaluationPackage||s.modelConfiguration!==void 0&&s.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&f(s.modelConfiguration.trainingSetup.evaluationTasksetRef)===f(v(s.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),Xe=c.object({schemaVersion:c.literal("openpond.tasksetPackageReceipt.v1"),teamId:B,modelProjectId:B,operationId:B,taskset:G,packageHash:N,hostedTasksetId:B,projectEtag:N,project:xe.optional(),selection:c.enum(["select","attach"]).optional(),evaluation:c.object({taskset:G,packageHash:N,hostedTasksetId:B}).strict().optional()}).strict(),Ye=c.object({schemaVersion:c.literal("openpond.tasksetPackageReadback.v1"),teamId:B,modelProjectId:B,package:W}).strict(),Qe=c.object({schemaVersion:c.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:B,release:G,package:W}).strict(),P=class extends Error{constructor(a,e,i){super(i);this.status=a;this.code=e;this.name="OpenPondTasksetPackageError"}status;code;static{b(this,"OpenPondTasksetPackageError")}},$e=class{static{b(this,"OpenPondTasksetPackageClient")}#e;constructor(t){let a=new URL(t.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!t.apiKey.trim()||!t.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...t,baseUrl:a.toString().replace(/\/+$/,"")}}async publish(t,a={}){let e=Je.parse(t);S(e.package),e.evaluationPackage&&S(e.evaluationPackage);let{evaluationPackage:i,...r}=e,p=i?.contentHash===e.package.contentHash?r:e,o=Xe.parse(await this.#t("","POST",p,a.signal)),k=e.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==e.modelProjectId||o.operationId!==e.operationId||o.packageHash!==e.package.contentHash||o.taskset.id!==k.id||o.taskset.revision!==k.revision||o.taskset.contentHash!==k.contentHash)throw new P(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(e.selection!==void 0&&o.selection!==e.selection)throw new P(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(e.evaluationPackage&&(!o.evaluation||o.evaluation.packageHash!==e.evaluationPackage.contentHash||f(o.evaluation.taskset)!==f(v(e.evaluationPackage.taskset))))throw new P(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(e.selection==="attach"&&o.projectEtag!==e.expectedProjectEtag)throw new P(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(e.modelConfiguration){let w=e.modelConfiguration,n=o.project,R=Me(e.package),m=re.parse({...w.trainingSetup,tasksetRef:v(k),rewardBindingRef:R?v(R):null,tasksetRelease:null});if(!n||n.teamId!==this.#e.teamId||n.etag!==o.projectEtag||![n.id,n.portableProjectId].includes(e.modelProjectId)||n.portableProjectId!==w.portableProjectId||n.name!==w.name||n.objective!==w.objective||n.sourceRevision!==w.sourceRevision||Date.parse(n.sourceUpdatedAt)!==Date.parse(w.sourceUpdatedAt)||f(n.defaultBaseModel)!==f(w.defaultBaseModel)||n.defaultDestinationId!==w.defaultDestinationId||f(n.trainingSetup)!==f(m))throw new P(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return o}async getByRelease(t,a={}){let e=G.parse(t),i=a.expectedPackageHash===void 0?void 0:N.parse(a.expectedPackageHash),r=Qe.parse(await this.#t(`/releases/${encodeURIComponent(e.id)}/${e.revision}/${e.contentHash}/package`,"GET",void 0,a.signal)),p=S(r.package),o={id:p.taskset.id,revision:p.taskset.revision,contentHash:p.taskset.contentHash};if(r.teamId!==this.#e.teamId||f(r.release)!==f(e)||f(o)!==f(e)||i!==void 0&&p.contentHash!==i)throw new P(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return p}async get(t,a,e={}){let i=B.parse(t),r=G.parse(a),p=e.expectedPackageHash===void 0?void 0:N.parse(e.expectedPackageHash),o=Ye.parse(await this.#t(`/${encodeURIComponent(i)}/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}`,"GET",void 0,e.signal)),k=o.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==i||k.id!==r.id||k.revision!==r.revision||k.contentHash!==r.contentHash)throw new P(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(p!==void 0&&o.package.contentHash!==p)throw new P(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return S(o.package)}async#t(t,a,e,i){let r=e===void 0?void 0:JSON.stringify(e);if(r&&new TextEncoder().encode(r).byteLength>oe)throw new P(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let p=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${t}`,{method:a,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...r?{"Content-Type":"application/json"}:{}},body:r,signal:i,redirect:"error"}),o=p.body?.getReader();if(!o)throw new P(p.status,"empty_response","Taskset package response was empty.");let k=new TextDecoder("utf-8",{fatal:!0}),w=0,n="";try{for(;;){let m=await o.read();if(m.done)break;if(w+=m.value.byteLength,w>oe)throw new P(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");n+=k.decode(m.value,{stream:!0})}n+=k.decode()}finally{await o.cancel(),o.releaseLock()}let R=JSON.parse(n);if(!p.ok){let m=c.object({code:c.string(),message:c.string()}).safeParse(R);throw new P(p.status,m.success?m.data.code:"package_request_failed",m.success?m.data.message:`Taskset package request failed (${p.status}).`)}return R}};var ae=U.shape.id,Le=c.object({schemaVersion:c.literal("openpond.modelBatchReviewInspection.v1"),packageHash:c.string().regex(/^[a-f0-9]{64}$/),definition:L,binding:fe,evidence:c.array(K).min(1).max(1e4),decisions:c.array(ke).min(1).max(1e4)}).strict(),pe=c.object({schemaVersion:c.literal("openpond.modelBatchReviewRequest.v1"),operationId:ae,modelId:ae,expectedModelRevision:c.number().int().positive(),tasksetRef:U,rewardBindingRef:U.nullable(),definition:c.object({name:c.string().trim().min(1).max(500).optional(),instructions:c.string().trim().min(1).max(2e4).optional(),inputSchema:$.optional(),outputSchema:$.optional(),requiredOutputs:L.shape.requiredOutputs}).strict(),examples:c.array(c.object({evidence:U,input:$.optional(),expected:$.nullable().optional(),evaluatorContext:$.nullable().optional(),proposedTarget:$.nullable().optional()}).strict()).max(1e4)}).strict(),Fe=c.object({schemaVersion:c.literal("openpond.modelBatchReviewReceipt.v1"),operationId:ae,modelId:ae,source:Q,evidence:c.array(K).min(1).max(1e4),proposals:c.array(Z).max(1e4)}).strict();function ze(s){let{request:t,package:a}=s,e=a.learningResources;if(!e)throw new _("model_review_batch_required",422);let i=F(a.taskset),r=`model-review-${f([s.scope,t.modelId,t.operationId])}`,p=new Map(t.examples.map(d=>[f(d.evidence),d])),o=new Set(e.evidence.map(d=>f(v(d)))),k=new Map(e.decisions.map(d=>[f(d.evidence),d]));if(p.size!==t.examples.length||t.examples.some(d=>!o.has(f(d.evidence))))throw new _("model_review_evidence_mismatch",409);for(let d of[s.binding,...s.rewards,...s.assets])ve(d);X(s.binding,s.rewards);let w=new Map;for(let d of s.binding.sources){let T=s.rewards.find(Ue=>V(v(Ue),d.reward)),{contentHash:C,...z}=T;w.set(T.contentHash,he({...z,id:`${r}-reward-${T.contentHash}`,revision:1}))}let n=[...w.values()],{contentHash:R,recipeRef:m,...x}=s.binding,l=ge({...x,id:`${r}-binding`,revision:1,sources:s.binding.sources.map(d=>({...d,reward:v(w.get(d.reward.contentHash))}))},n),I=n.flatMap(d=>[...d.assets,..."verifierRef"in d.implementation?[d.implementation.verifierRef]:[],..."rubricRef"in d.implementation?[d.implementation.rubricRef]:[],..."inputContract"in d.implementation?[d.implementation.inputContract]:[]]),u=[...new Map(I.map(d=>{let T=s.assets.find(C=>C.id===d.id);if(!T)throw new _("model_review_reward_asset_missing",422);if(D(T,d),d.visibility==="policy")throw new _("reward_asset_visibility_invalid",422);return[T.id,T]})).values()],{environmentRelease:h,verifierSetRelease:M,...E}=i.definition.execution,{contentHash:g,...H}=i.definition,y=L.parse(j({...H,...t.definition,id:`${r}-definition`,revision:1,rewardBinding:v(l),execution:{...E,policy:{...E.policy,hiddenGraderRefs:Y(l,n).filter(d=>d.privileged).map(d=>d.id)}}})),q=Q.parse(j({schemaVersion:"openpond.learningSource.v1",id:r,revision:1,name:`${y.name} review`,kind:"direct",taskDefinition:v(y),enabled:!0,allowedSplits:[...new Set(e.evidence.map(d=>d.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:t.modelId,packageHash:a.contentHash,taskset:v(a.taskset),batch:v(e.batch),rewardBinding:v(s.binding)}})),le=e.evidence.map(d=>{let T=p.get(f(v(d))),C=`review-${d.contentHash}`,z=f({instructions:y.instructions,inputSchema:y.inputSchema,outputSchema:y.outputSchema,requiredOutputs:y.requiredOutputs??[],input:T?.input??d.submission.input})!==f({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:d.submission.input});return K.parse(j({schemaVersion:"openpond.taskEvidence.v1",id:be(q.id,d.submission.exampleId,C),revision:1,source:v(q),submission:{...d.submission,sourceId:q.id,taskDefinition:v(y),attemptId:C,observedOutput:z?null:d.submission.observedOutput,idempotencyKey:`${r}-${d.contentHash}`,...T?.input===void 0?{}:{input:T.input},...T?.expected===void 0?{}:{expected:T.expected},...T?.evaluatorContext===void 0?{}:{evaluatorContext:T.evaluatorContext}},supersedes:v(d),correctionFeedbackId:null,receivedAt:s.now}))}),Ne=le.flatMap(d=>{let T=p.get(f(d.supersedes)),C=k.get(f(d.supersedes)),z=T?.proposedTarget===void 0?C.approvedTarget:T.proposedTarget;return z===null?[]:[Z.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${f([r,d.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:q.id,idempotencyKey:`${r}-${d.id}`,exampleId:d.submission.exampleId,attemptId:d.submission.attemptId,expectedEvidenceHash:d.contentHash,occurredAt:s.now,kind:"target_correction",value:z,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:v(d),createdAt:s.now,review:null})]});return{source:q,definition:y,binding:l,rewards:n,assets:u,evidence:le,proposals:Ne}}b(ze,"prepareModelBatchReview");var Ve=b(s=>`model-batch-review-${f([s.modelId,s.operationId])}`,"operation");function At(s){let t=S(s);if(!t.learningResources)throw new _("model_review_batch_required",422);let a=F(t.taskset);return Le.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:t.contentHash,definition:a.definition,binding:a.binding,evidence:t.learningResources.evidence,decisions:t.learningResources.decisions})}b(At,"inspectModelBatchPackage");async function Ze(s,t){let a=pe.parse(t),e=await s.operation(Ve(a));if(!e)return null;if(e.requestHash!==f(a))throw new _("learning_idempotency_conflict",409);return Oe(s,a,e.resources)}b(Ze,"findModelBatchReview");async function Dt(s,t){let a=pe.parse(t.request),e=await Ze(s,a);if(e)return e;let i=S(t.package);if(!i.learningResources)throw new _("model_review_batch_required",422);let r=F(i.taskset),p=a.rewardBindingRef,o=!p||V(p,v(r.binding)),k=o?r.binding:await ne(s,"binding",p),w=o?r.rewards:await Promise.all(k.sources.map(l=>ne(s,"reward",l.reward))),n=new Set(w.flatMap(l=>[...l.assets,..."verifierRef"in l.implementation?[l.implementation.verifierRef]:[],..."rubricRef"in l.implementation?[l.implementation.rubricRef]:[],..."inputContract"in l.implementation?[l.implementation.inputContract]:[]]).map(l=>l.id)),R=o?i.learningResources.assets:await Promise.all([...n].map(l=>ie(s,"asset",l,1))),m=ze({...t,request:a,package:i,binding:k,rewards:w,assets:R}),x=[];for(let l of m.assets){let I=await s.get("asset",l.id,1);if(I&&I.contentHash!==l.contentHash)throw new _("model_review_asset_conflict",409);I||await s.put("asset",l,0)}for(let l of m.rewards)await s.put("reward",l,0);await s.put("binding",m.binding,0),await s.put("definition",m.definition,0),await s.put("source",m.source,0,{parentId:a.modelId}),x.push({kind:"source",id:m.source.id,revision:1});for(let l of m.evidence)await s.put("evidence",l,0,{parentId:m.source.id}),x.push({kind:"evidence",id:l.id,revision:1});for(let l of m.proposals)await s.put("feedback",l,0,{parentId:l.evidence.id,status:l.status}),x.push({kind:"feedback",id:l.id,revision:1});return await s.saveOperation(Ve(a),{requestHash:f(a),resources:x}),Oe(s,a,x)}b(Dt,"beginModelBatchReview");async function Oe(s,t,a){let e=await Promise.all(a.map(i=>ie(s,i.kind,i.id,i.revision)));return Fe.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:t.operationId,modelId:t.modelId,source:e.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:e.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:e.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}b(Oe,"readReceipt");function Ge(s){let t=s.taskset.metadata.ordinaryAuthoring,a=c.record(c.string(),c.array(c.string().min(1)).max(1e5)).parse(t?.judgeCalibrationFixtures??{});return s.taskset.graders.map(e=>{let i={...e,label:e.id,metadata:{portableGrader:e}};if(e.kind==="custom_verifier")return A.parse({...i,module:e.verifierRef.path,exportName:e.exportName??"verify",metadata:{...i.metadata,portableVerifierRef:e.verifierRef}});if(e.kind==="human"||e.kind==="model_judge"){let r=s.files.find(k=>k.asset.id===e.rubricRef.id);if(!r)throw new Error(`Imported rubric is missing: ${e.id}.`);let p=new TextDecoder("utf-8",{fatal:!0}).decode(O(r)),o={...i.metadata,portableRubricRef:e.rubricRef};if(e.kind==="human")return A.parse({...i,rubric:p,metadata:o});if(!e.model)throw new Error(`Imported judge ${e.id} requires its declared model before local preparation.`);return A.parse({...i,rubric:p,metadata:o,judge:e.model,temperature:e.temperature??0,calibrationStatus:"pending",calibrationFixtureRefs:a[e.id]??[]})}return A.parse({...i,kind:e.kind==="artifact"?"file":e.kind,config:e.kind==="artifact"?{...e.config,...e.config.refIncludes===void 0?{}:{pathIncludes:e.config.refIncludes}}:e.config})})}b(Ge,"importedPackageGraders");function se(s,t,a=[]){let e=X(s,t);return Y(s,t).map(i=>{let r=e.find(({source:o})=>o.graderId===i.id).reward,p={...i,label:r.name,metadata:{rewardBinding:v(s)}};if(i.kind==="model_judge"){if(!i.model||i.calibrationStatus!=="passed"||!r.calibrationCheckRef||!r.fixtureSetRef)throw new Error(`Reward ${i.id} needs a retained passing calibration check before preparation.`);let o=a.find(n=>n.id===i.rubricRef.id),k=a.find(n=>n.id===r.fixtureSetRef.id);if(!o||!k)throw new Error(`Reward ${i.id} is missing its immutable rubric or calibration fixtures.`);let w=Re.array().min(1).max(50).parse(JSON.parse(D(k,r.fixtureSetRef)));return A.parse({...p,rubric:D(o,i.rubricRef),judge:i.model,temperature:i.temperature??0,calibrationFixtureRefs:w.map(n=>n.id),metadata:{...p.metadata,portableGrader:i,portableRubricRef:i.rubricRef,calibrationEvidenceHash:r.calibrationCheckRef.contentHash,calibrationCheckRef:r.calibrationCheckRef}})}if(i.kind==="custom_verifier")return A.parse({...p,module:i.verifierRef.path,exportName:i.exportName??"verify",metadata:{...p.metadata,portableVerifierRef:i.verifierRef}});if(i.kind==="human"){let o=a.find(k=>k.id===i.rubricRef.id);if(!o)throw new Error(`Reward ${i.id} is missing its immutable rubric.`);return A.parse({...p,rubric:D(o,i.rubricRef),metadata:{...p.metadata,portableGrader:i,portableRubricRef:i.rubricRef}})}return A.parse({...p,kind:i.kind==="artifact"?"file":i.kind})})}b(se,"projectLearningBatchGraders");function et(s){return`graders/reward-${s}.js`}b(et,"learningVerifierModule");function ta(s){let t=S(s.package),a=t.taskset,e=t.modelResources,i=t.learningResources?F(a):void 0,r=He.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${f({profileId:s.profileId,packageHash:t.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:t.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[t.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(t)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),p=De({profileId:s.profileId,id:`${a.id}-import`,name:s.name,now:s.createdAt}),o=[];for(let u of a.graders)if(u.kind==="custom_verifier"){let h=e?.assets.find(g=>g.id===u.verifierRef.id),M=t.files.find(g=>g.asset.id===u.verifierRef.id);if(!M)throw new Error(`Imported verifier source is missing: ${u.id}.`);let E=u.verifierRef.path;o.some(g=>g.path===E)||o.push({path:E,role:"verifier",content:h?D(h,u.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(O(M))})}let k=a.metadata.ordinaryAuthoring??a.metadata.starterAuthoring,w=Be.array().max(1e5).parse(k?.graderFixtures??[]),n=a.environment.kind==="text"?"chat":a.environment.kind==="custom_program"?"program":a.environment.kind,R=c.record(c.string(),c.record(c.string(),c.string())).parse(a.metadata.workAssetStagingPaths??{}),m=_e.array().max(1e4).parse(a.metadata.environmentResources??[]),x=m.filter(u=>u.visibility==="policy_visible").map(u=>{let h=t.files.filter(M=>M.asset.path===u.path);if(h.length!==1||h[0].asset.visibility!=="policy")throw new Error(`Policy environment resource requires one public package file: ${u.path}.`);return h[0].asset}),l=new Set(x.map(u=>u.id)),I=ce.parse({schemaVersion:"openpond.taskset.v1",id:a.id,revision:a.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:ee(t),status:"needs_review",sourceRefs:[r],datasetArtifact:null,policy:a.policy,environment:{...p.environment,kind:n,entrypoint:a.environment.entrypoint,resources:m,stateful:a.environment.stateful,deterministicSeeds:a.environment.deterministicSeeds,toolNames:a.tools.map(u=>u.name),defaultTimeoutMs:a.environment.defaultTimeoutMs,networkPolicy:a.environment.networkPolicy,metadata:{runtimeSourceTasksetId:tt(s.profileId,t.contentHash),portableEnvironment:a.environment,portableTools:a.tools,portableExecutionResources:{environment:t.environment,verifierSet:t.verifierSet}}},capabilities:{...p.capabilities,taskKind:n==="chat"?"chat":n==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:a.tools.length>0,requiresState:a.environment.stateful,rewardKinds:[...new Set(a.graders.map(u=>u.kind==="human"?"human":u.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:a.tasks.map(u=>({...u,schemaVersion:"openpond.taskData.v1",sourceRefs:[r.id],assets:[...new Map([...u.artifactRefs,...(u.requiredOutputs??[]).flatMap(h=>h.submissionMode==="structured_json"&&h.schemaRef?[h.schemaRef]:[]),...x].map(h=>[h.id,h])).values()].map(h=>({id:h.id,sourceRefId:r.id,artifactRef:h.path,fileName:h.path.split("/").at(-1),...l.has(h.id)?{stagingPath:h.path}:R[u.id]?.[h.id]?{stagingPath:R[u.id][h.id]}:{},mediaType:h.mediaType,sha256:h.contentHash,sizeBytes:h.sizeBytes,split:u.split,metadata:{portableAsset:h,...l.has(h.id)?{sharedEnvironmentResource:{id:m.find(M=>M.path===h.path).id,path:h.path}}:{}}})),...u.requiredOutputs?{requiredOutputs:u.requiredOutputs.map(h=>({...h,schemaRef:h.schemaRef?.id??null,maxBytes:h.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:u,exampleOrigin:"imported"}})),graders:e?se(e.rewardBinding,e.rewards,e.assets):i?se(i.binding,i.rewards,t.learningResources.assets):Ge(t),graderFixtures:w,learningSignals:p.learningSignals,...a.metrics?{metrics:a.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:f("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[t.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:t.contentHash,...a.metadata.tasksetOutputContract===void 0?{}:{tasksetOutputContract:a.metadata.tasksetOutputContract},...i?{learning:i}:{},portableFileInventory:t.files.map(u=>({asset:u.asset,sourcePath:u.asset.path})),...e?{taskDefinition:v(e.taskDefinition),rewardBinding:v(e.rewardBinding),rewardExecution:{binding:e.rewardBinding,rewards:e.rewards}}:{},portableCapabilities:a.capabilities,derivedPortableMetadata:a.metadata,...a.metadata.modelTasksetDerivation?{modelTasksetDerivation:a.metadata.modelTasksetDerivation}:{}}});return{package:t,taskset:ce.parse({...I,contentHash:Ae(I)}),generatedFiles:o}}b(ta,"prepareImportedTasksetPackage");function tt(s,t){return`package-${f({profileId:s,packageHash:t})}`}b(tt,"tasksetPackageSourceId");var me=c.object({draft:J,filePaths:c.array(c.object({assetId:c.string().min(1),paths:c.array(Pe).min(1).max(1e4)}).strict()).max(1e4)}).strict();function at(s){let t=S(s.source),a=J.parse(s.sourceDraft),e=ye.parse(s.preparation);if(t.contentHash!==e.sourcePackageHash||!V(v(t.taskset),e.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(t.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!t.modelResources!=(e.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=de.parse(a.metadata.portableFileInventory??[]),r=b(n=>te(n)?`source-artifacts/${t.contentHash}/${f(n)}/${n.split("/").at(-1)}`:n,"sourcePath");if([...a.tasks.flatMap(n=>(n.assets??[]).map(R=>R.artifactRef)),...(a.environment.resources??[]).map(n=>n.path),...t.taskset.tasks.flatMap(n=>(n.requiredOutputs??[]).flatMap(R=>R.schemaRef?[R.schemaRef.path]:[])),...a.metrics.customAggregator?[a.metrics.customAggregator.module]:[],...a.graders.flatMap(n=>n.kind==="custom_verifier"?[n.module]:[])].some(te))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let o=t.files.map(n=>{let R=new Set([n.asset.path]);for(let m of i)m.asset.id===n.asset.id&&R.add(m.sourcePath);for(let m of a.tasks)for(let x of m.assets??[])x.id===n.asset.id&&R.add(x.artifactRef);for(let m of t.taskset.graders)if(m.kind==="custom_verifier"&&m.verifierRef.id===n.asset.id){let x=a.graders.find(l=>l.id===m.id);x?.kind==="custom_verifier"&&R.add(x.module)}return{assetId:n.asset.id,paths:[...R].map(r)}}),k={...a.metadata};if(t.modelResources)for(let n of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete k[n];let w=J.parse({...a,id:e.draftId,revision:1,status:"draft",graders:a.graders.map(n=>({...n,metadata:{...n.metadata,portableGrader:t.taskset.graders.find(R=>R.id===n.id)}})),environment:{...a.environment,metadata:{...a.environment.metadata,portableExecutionResources:{environment:t.environment}}},modelScope:{modelId:e.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:e},publishedTasksetRef:e.tasksetRevision>1?e.sourceTasksetRef:null,metadata:{...k,modelTasksetAuthoring:e.lineage,portableFileInventory:i.map(n=>({...n,sourcePath:r(n.sourcePath),asset:{...n.asset,id:te(n.sourcePath)?`source-artifact-${f({packageHash:t.contentHash,assetId:n.asset.id})}`:n.asset.id,path:r(n.asset.path)}}))}});return me.parse({draft:w,filePaths:o})}b(at,"prepareTasksetDraftSource");function st(s){let t=me.parse(s.initialized),a=S(s.source);if(t.draft.modelScope?.source?.sourcePackageHash!==a.contentHash)throw new Error("Taskset draft lost its source preparation.");let e=new Map;for(let r of t.filePaths){let p=a.files.find(o=>o.asset.id===r.assetId);if(!p)throw new Error("Taskset draft source asset is missing.");for(let o of r.paths){let k=e.get(o);if(k&&k.contentHash!==p.asset.contentHash)throw new Error("Taskset draft source paths conflict.");e.set(o,{path:o,contentHash:p.asset.contentHash,sizeBytes:p.asset.sizeBytes,base64:p.base64})}}for(let r of Ee(t.draft))if(!e.has(r.relativePath)){let p=new TextEncoder().encode(r.source);e.set(r.relativePath,{path:r.relativePath,contentHash:ue(p),sizeBytes:p.byteLength,base64:Buffer.from(p).toString("base64")})}let i=t.draft;if(i.metrics.customAggregator){let r=e.get(i.metrics.customAggregator.module);if(!r)throw new Error("Declared Taskset metric module is missing.");Ce(r),i=J.parse({...i,metrics:{...i.metrics,customAggregator:{...i.metrics.customAggregator,contentHash:r.contentHash}}})}return qe({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:i,files:[...e.values()]})}b(st,"materializeTasksetDraftWorkspace");export{se as a,et as b,ta as c,tt as d,Ke as e,We as f,Je as g,Xe as h,Ye as i,Qe as j,P as k,$e as l,Le as m,pe as n,Fe as o,At as p,Ze as q,Dt as r,me as s,at as t,st as u};
@@ -1,22 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Aa as G,Ba as X,Ca as Y,F as N,_ as D,e as T,g as V,ga as R,ha as J,i as z,ja as H,oa as y,wa as E,ya as $}from"./chunk-5ZNE43XC.js";import{k as w,l as x,m as u}from"./chunk-HIQPGYVH.js";import{I as W,J as K,x as C}from"./chunk-263WS3TB.js";import{K as j}from"./chunk-XHU4BZQY.js";import{v as A}from"./chunk-ZY32SZ2P.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a as l}from"./chunk-FTQLQJQV.js";var S=n.string().trim().min(1).max(500),pe=n.string().regex(/^[a-f0-9]{64}$/),b=n.object({id:S,revision:n.number().int().positive(),contentHash:pe}).strict(),M=n.object({schemaVersion:n.literal("openpond.hostedTasksetSummary.v1"),id:S,teamId:S,release:b,name:n.string().min(1).max(500),description:n.string().max(2e4),taskCount:n.number().int().nonnegative(),buildIntent:n.string().min(1).max(100),methodHint:n.string().min(1).max(100).nullable(),packageBytes:n.number().int().nonnegative().nullable(),storedBytes:n.number().int().nonnegative().nullable(),createdAt:n.string().datetime({offset:!0})}).strict(),ue=n.object({afterId:n.string().trim().min(1).max(2e3).optional(),limit:n.number().int().min(1).max(100).default(30),modelProjectId:S.optional(),projectId:S.optional(),search:n.string().trim().max(100).optional(),sort:n.enum(["id","name","updated"]).default("id")}).strict(),he=n.object({items:n.array(M).max(100),nextCursor:n.string().trim().min(1).max(2e3).nullable()}).strict(),me=n.object({code:n.string().min(1),message:n.string().min(1)}).strict(),I=class extends Error{static{l(this,"OpenPondTasksetCatalogError")}constructor(a,t,e){super(e),this.status=a,this.code=t,this.name="OpenPondTasksetCatalogError"}status;code},_e=class{static{l(this,"OpenPondTasksetCatalogClient")}#e;constructor(a){if(!a.apiKey.trim()||!a.teamId.trim())throw new Error("Taskset API key and workspace are required.");let t=new URL(a.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash)throw new Error("Taskset base URL must be an HTTP(S) endpoint without credentials, query, or fragment.");this.#e={...a,baseUrl:t.toString().replace(/\/+$/,"")}}async list(a={},t={}){let e=ue.parse(a),s=new URLSearchParams({limit:String(e.limit)});e.afterId&&s.set("afterId",e.afterId),e.modelProjectId&&s.set("modelProjectId",e.modelProjectId),e.projectId&&s.set("projectId",e.projectId),e.search!==void 0&&s.set("search",e.search),s.set("sort",e.sort);let r=he.parse(await this.#t(`?${s}`,t.signal));if(r.items.length>e.limit||new Set(r.items.map(o=>o.id)).size!==r.items.length||r.items.some(o=>o.teamId!==this.#e.teamId))throw new I(502,"catalog_scope_mismatch","Taskset inventory did not match the requested workspace or page size.");return r}async get(a,t={}){let e=S.parse(a),s=M.parse(await this.#t(`/${encodeURIComponent(e)}`,t.signal));if(s.id!==e||s.teamId!==this.#e.teamId)throw new I(502,"catalog_identity_mismatch","Taskset metadata did not match the requested identity.");return s}async resolve(a,t={}){let e=b.parse(a),s=M.parse(await this.#t(`/releases/${encodeURIComponent(e.id)}/${e.revision}/${e.contentHash}`,t.signal));if(s.teamId!==this.#e.teamId||s.release.id!==e.id||s.release.revision!==e.revision||s.release.contentHash!==e.contentHash)throw new I(502,"catalog_release_mismatch","Taskset metadata did not match the requested immutable release.");return s}async#t(a,t){let e=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-catalog${a}`,{headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json"},signal:t,redirect:"error"}),s=e.body?.getReader();if(!s)throw new I(e.status,"empty_response","Taskset catalog response was empty.");let r=new TextDecoder,o=0,i="";try{for(;;){let d=await s.read();if(d.done)break;if(o+=d.value.byteLength,o>4194304)throw new I(e.status,"response_too_large","Taskset catalog response exceeded 4 MiB.");i+=r.decode(d.value,{stream:!0})}i+=r.decode()}finally{await s.cancel(),s.releaseLock()}let c=JSON.parse(i);if(!e.ok){let d=me.safeParse(c);throw new I(e.status,d.success?d.data.code:"invalid_error_response",d.success?d.data.message:`Taskset catalog request failed (${e.status}).`)}return c}};var g=n.string().trim().min(1).max(500),P=n.string().regex(/^[a-f0-9]{64}$/),fe=W.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:C.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),ge=n.object({schemaVersion:n.literal("openpond.tasksetPackagePublication.v1"),operationId:g,modelProjectId:g,expectedProjectEtag:P.nullable(),name:n.string().trim().min(1).max(200),description:n.string().max(5e3),buildIntent:n.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:n.enum(["sft","dpo","grpo","ppo"]).nullable(),package:R,modelConfiguration:fe.optional(),evaluationPackage:R.optional(),selection:n.enum(["select","attach"]).optional()}).strict().refine(a=>a.selection!=="attach"||a.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(a=>!a.evaluationPackage||a.modelConfiguration!==void 0&&a.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&u(a.modelConfiguration.trainingSetup.evaluationTasksetRef)===u(j(a.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),ke=n.object({schemaVersion:n.literal("openpond.tasksetPackageReceipt.v1"),teamId:g,modelProjectId:g,operationId:g,taskset:b,packageHash:P,hostedTasksetId:g,projectEtag:P,project:K.optional(),selection:n.enum(["select","attach"]).optional(),evaluation:n.object({taskset:b,packageHash:P,hostedTasksetId:g}).strict().optional()}).strict(),ve=n.object({schemaVersion:n.literal("openpond.tasksetPackageReadback.v1"),teamId:g,modelProjectId:g,package:R}).strict(),we=n.object({schemaVersion:n.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:g,release:b,package:R}).strict(),f=class extends Error{static{l(this,"OpenPondTasksetPackageError")}constructor(a,t,e){super(e),this.status=a,this.code=t,this.name="OpenPondTasksetPackageError"}status;code},Le=class{static{l(this,"OpenPondTasksetPackageClient")}#e;constructor(a){let t=new URL(a.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!a.apiKey.trim()||!a.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...a,baseUrl:t.toString().replace(/\/+$/,"")}}async publish(a,t={}){let e=ge.parse(a);H(e.package),e.evaluationPackage&&H(e.evaluationPackage);let{evaluationPackage:s,...r}=e,o=s?.contentHash===e.package.contentHash?r:e,i=ke.parse(await this.#t("","POST",o,t.signal)),c=e.package.taskset;if(i.teamId!==this.#e.teamId||i.modelProjectId!==e.modelProjectId||i.operationId!==e.operationId||i.packageHash!==e.package.contentHash||i.taskset.id!==c.id||i.taskset.revision!==c.revision||i.taskset.contentHash!==c.contentHash)throw new f(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(e.selection!==void 0&&i.selection!==e.selection)throw new f(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(e.evaluationPackage&&(!i.evaluation||i.evaluation.packageHash!==e.evaluationPackage.contentHash||u(i.evaluation.taskset)!==u(j(e.evaluationPackage.taskset))))throw new f(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(e.selection==="attach"&&i.projectEtag!==e.expectedProjectEtag)throw new f(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(e.modelConfiguration){let d=e.modelConfiguration,p=i.project,v=J(e.package),m=C.parse({...d.trainingSetup,tasksetRef:j(c),rewardBindingRef:v?j(v):null,tasksetRelease:null});if(!p||p.teamId!==this.#e.teamId||p.etag!==i.projectEtag||![p.id,p.portableProjectId].includes(e.modelProjectId)||p.portableProjectId!==d.portableProjectId||p.name!==d.name||p.objective!==d.objective||p.sourceRevision!==d.sourceRevision||Date.parse(p.sourceUpdatedAt)!==Date.parse(d.sourceUpdatedAt)||u(p.defaultBaseModel)!==u(d.defaultBaseModel)||p.defaultDestinationId!==d.defaultDestinationId||u(p.trainingSetup)!==u(m))throw new f(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return i}async getByRelease(a,t={}){let e=b.parse(a),s=t.expectedPackageHash===void 0?void 0:P.parse(t.expectedPackageHash),r=we.parse(await this.#t(`/releases/${encodeURIComponent(e.id)}/${e.revision}/${e.contentHash}/package`,"GET",void 0,t.signal)),o=H(r.package),i={id:o.taskset.id,revision:o.taskset.revision,contentHash:o.taskset.contentHash};if(r.teamId!==this.#e.teamId||u(r.release)!==u(e)||u(i)!==u(e)||s!==void 0&&o.contentHash!==s)throw new f(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return o}async get(a,t,e={}){let s=g.parse(a),r=b.parse(t),o=e.expectedPackageHash===void 0?void 0:P.parse(e.expectedPackageHash),i=ve.parse(await this.#t(`/${encodeURIComponent(s)}/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}`,"GET",void 0,e.signal)),c=i.package.taskset;if(i.teamId!==this.#e.teamId||i.modelProjectId!==s||c.id!==r.id||c.revision!==r.revision||c.contentHash!==r.contentHash)throw new f(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(o!==void 0&&i.package.contentHash!==o)throw new f(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return H(i.package)}async#t(a,t,e,s){let r=e===void 0?void 0:JSON.stringify(e);if(r&&new TextEncoder().encode(r).byteLength>D)throw new f(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let o=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${a}`,{method:t,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...r?{"Content-Type":"application/json"}:{}},body:r,signal:s,redirect:"error"}),i=o.body?.getReader();if(!i)throw new f(o.status,"empty_response","Taskset package response was empty.");let c=new TextDecoder("utf-8",{fatal:!0}),d=0,p="";try{for(;;){let m=await i.read();if(m.done)break;if(d+=m.value.byteLength,d>D)throw new f(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");p+=c.decode(m.value,{stream:!0})}p+=c.decode()}finally{await i.cancel(),i.releaseLock()}let v=JSON.parse(p);if(!o.ok){let m=n.object({code:n.string(),message:n.string()}).safeParse(v);throw new f(o.status,m.success?m.data.code:"package_request_failed",m.success?m.data.message:`Taskset package request failed (${o.status}).`)}return v}};var Z=6e6,ee=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function B(a){let t=T.parse(a);return!ee.has(t)&&!t.startsWith("source-artifacts/")}l(B,"isWritableTasksetDraftFilePath");function te(a){return ee.has(T.parse(a))}l(te,"isManagedTasksetDraftFilePath");function be(a,t){let e=B(a);if(t.byteLength>Z)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");let s;try{let r=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(t);s=/[\u0000-\u0008\u000e-\u001f]/.test(r)?Q(t):{encoding:"utf8",data:r}}catch{s=Q(t)}return{path:a,writable:e,content:s,sizeBytes:t.byteLength,contentHash:x(t)}}l(be,"createTasksetDraftFile");function Te(a){let t=V.parse(a),e;try{if(t.encoding==="utf8")e=new TextEncoder().encode(t.data);else{let s=atob(t.data);if(btoa(s)!==t.data)throw new Error("Noncanonical base64");e=new Uint8Array(s.length);for(let r=0;r<s.length;r++)e[r]=s.charCodeAt(r)}}catch{throw new Error("Taskset draft file content is invalid or exceeds 6 MB.")}if(e.byteLength>Z)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");return e}l(Te,"decodeTasksetDraftFileContent");function Q(a){let t="";for(let e=0;e<a.length;e+=8192)t+=String.fromCharCode(...a.subarray(e,e+8192));return{encoding:"base64",data:btoa(t)}}l(Q,"base64Content");function ye(a){let t=[];a.output.renderer&&t.push({relativePath:a.output.renderer.module,source:`export async function ${a.output.renderer.exportName}(output: unknown) {
3
- // Return artifact paths or bytes derived from the model's structured output.
4
- return output;
5
- }
6
- `});for(let e of a.graders)e.kind==="custom_verifier"&&t.push({relativePath:e.module,source:`export async function ${e.exportName}(input: { output: unknown; task: unknown }) {
7
- return { passed: false, score: 0, feedback: "Implement this verifier." };
8
- }
9
- `});a.metrics.customAggregator&&t.push({relativePath:a.metrics.customAggregator.module,source:`export function ${a.metrics.customAggregator.exportName}(scores: number[]) {
10
- return scores.length ? scores.reduce((sum, score) => sum + score, 0) / scores.length : 0;
11
- }
12
- `});for(let e of t)T.parse(e.relativePath);return t}l(ye,"configuredTasksetDraftFiles");function ae(a){let t=y.parse(a);return new Map([["taskset.json",w(t)],["tasks/tasks.jsonl",Se(t.tasks)],["graders/graders.json",w(t.graders)],["fixtures/grader-fixtures.json",w(t.graderFixtures)],["metrics/policy.json",w(t.metrics)],["assets/manifest.json",w(t.tasks.flatMap(e=>e.assets??[]))],["environment/contract.json",w(t.environment)],["rubrics/preference-review.md",Ie(t)],["comparisons/policy.json",w(t.review)]])}l(ae,"renderTasksetDraftManifests");function Ie(a){let t=a.review.criteria.length?`
13
-
14
- ## Criteria
15
-
16
- ${a.review.criteria.map(e=>`- **${e.label}** (${e.weight}): ${e.description}`).join(`
17
- `)}`:"";return`# Preference review rubric
18
-
19
- ${a.review.rubric}${t}
20
- `}l(Ie,"rubricMarkdown");function Se(a){return a.length?`${a.map(t=>JSON.stringify(t)).join(`
21
- `)}
22
- `:""}l(Se,"jsonLines");var se=64*1024*1024,re=n.string().regex(/^[a-f0-9]{64}$/),ne=n.object({path:T,contentHash:re,sizeBytes:n.number().int().nonnegative(),base64:n.string()}).strict(),oe=n.object({schemaVersion:n.literal("openpond.tasksetDraftWorkspace.v1"),draft:y,files:n.array(ne).max(1e4)}).strict(),Pe=oe.extend({contentHash:re}).strict();function ie(a,t=se){A(a,t);let e=oe.parse(a);return e.files.sort((s,r)=>s.path<r.path?-1:s.path>r.path?1:0),_({...e,contentHash:u(e)},t)}l(ie,"createTasksetDraftWorkspace");function _(a,t=se){A(a,t);let e=Pe.parse(a),{contentHash:s,...r}=e;if(u(r)!==s)throw new Error("Taskset draft workspace differs from its retained bytes.");let o=null,i=new Set;for(let c of e.files){if(te(c.path))throw new Error("Managed Taskset files are represented by the draft document.");if(o!==null&&o>=c.path)throw new Error("Taskset draft file paths must be unique and sorted.");let d=c.path.split("/");for(let p=1;p<d.length;p++)if(i.has(d.slice(0,p).join("/")))throw new Error("A Taskset draft file occupies another file's directory.");de(c),i.add(c.path),o=c.path}return e}l(_,"validateTasksetDraftWorkspace");function Ze(a,t){let e=_(a);T.parse(t);let s=e.files.find(i=>i.path===t),r=te(t)?ae(e.draft).get(t):void 0;if(!s&&r===void 0)throw new Error("Taskset draft file does not exist.");let o=be(t,s?de(s):new TextEncoder().encode(r));return{draftRevision:e.draft.revision,file:{...o,writable:o.writable&&e.draft.status!=="published"}}}l(Ze,"readTasksetDraftWorkspaceFile");function et(a){let t=_(a),e=t.files.map(s=>({path:s.path,sizeBytes:s.sizeBytes,writable:t.draft.status!=="published"&&B(s.path)}));for(let[s,r]of ae(t.draft))e.push({path:s,sizeBytes:new TextEncoder().encode(r).byteLength,writable:!1});return{draftRevision:t.draft.revision,files:e.sort((s,r)=>s.path<r.path?-1:s.path>r.path?1:0)}}l(et,"listTasksetDraftWorkspaceFiles");function tt(a){let t=ce(a.workspace,a.expectedDraftRevision,a.maximumBytes),e=y.parse(a.draft),s=t.draft;if(e.id!==s.id||e.profileId!==s.profileId||u(e.modelScope)!==u(s.modelScope))throw new Error("Taskset draft Model ownership cannot change.");if(e.revision!==s.revision||e.status!==s.status||e.createdAt!==s.createdAt||u(e.publishedTasksetRef)!==u(s.publishedTasksetRef))throw new Error("Taskset draft lifecycle fields cannot change through form edits.");let r=[...t.files];for(let c of ye(e))if(!r.some(d=>d.path===c.relativePath)){let d=new TextEncoder().encode(c.source);r.push({path:c.relativePath,contentHash:x(d),sizeBytes:d.byteLength,base64:le(d)})}let o=e.metrics.customAggregator,i=o?r.find(c=>c.path===o.module):void 0;return ie({schemaVersion:t.schemaVersion,files:r,draft:{...e,revision:s.revision+1,status:"draft",updatedAt:a.now,...o&&i?{metrics:{...e.metrics,customAggregator:{...o,contentHash:i.contentHash}}}:{}}},a.maximumBytes)}l(tt,"saveTasksetDraftWorkspaceDocument");function at(a){let t=z.parse(a.mutation),e=ce(a.workspace,t.expectedDraftRevision,a.maximumBytes);if(e.draft.id!==t.draftId)throw new Error("Taskset draft file belongs to another draft.");if(!B(t.path))throw new Error("This file is managed by the Taskset forms or retained source history.");let s=e.files.find(o=>o.path===t.path);if((s?.contentHash??null)!==t.expectedFileHash)throw new Error("Taskset draft file changed. Reload it before saving.");if(!s&&t.content===null)throw new Error("Taskset draft file does not exist.");let r=e.files.filter(o=>o.path!==t.path);if(t.content!==null){let o=Te(t.content);r.push({path:t.path,contentHash:x(o),sizeBytes:o.byteLength,base64:le(o)})}return ie({schemaVersion:e.schemaVersion,files:r,draft:{...e.draft,revision:e.draft.revision+1,status:"draft",updatedAt:a.now}},a.maximumBytes)}l(at,"saveTasksetDraftWorkspaceFile");function ce(a,t,e){let s=_(a,e);if(s.draft.status==="published")throw new Error("Published Taskset drafts are immutable.");if(s.draft.revision!==t)throw new Error("Taskset draft changed. Reload before saving.");return s}l(ce,"editableWorkspace");function de(a){let t=ne.parse(a),e;try{e=atob(t.base64)}catch{throw new Error("Taskset draft file contains invalid base64.")}if(btoa(e)!==t.base64)throw new Error("Taskset draft file contains noncanonical base64.");let s=new Uint8Array(e.length);for(let r=0;r<e.length;r++)s[r]=e.charCodeAt(r);if(s.byteLength!==t.sizeBytes||x(s)!==t.contentHash)throw new Error("Taskset draft file differs from its retained bytes.");return s}l(de,"decodeTasksetDraftWorkspaceFile");function le(a){let t="";for(let e=0;e<a.length;e+=8192)t+=String.fromCharCode(...a.subarray(e,e+8192));return btoa(t)}l(le,"base64");function st(a,t=new Date().toISOString()){let e=E.parse(a);return y.parse({schemaVersion:"openpond.tasksetDraft.v1",id:`${e.id}-draft`,revision:1,profileId:e.profileId,name:e.name,objective:e.objective,purpose:e.purpose,benchmark:e.benchmark,preferenceComparison:e.preferenceComparison,status:"draft",sourceRefs:e.sourceRefs,datasetArtifact:e.datasetArtifact??null,policy:e.policy,environment:e.environment,output:Re(e.metadata),capabilities:e.capabilities,metrics:e.metrics??{schemaVersion:"openpond.tasksetMetricPolicy.v1",primaryMetric:"score",aggregation:"mean_score",missingReward:"zero",customAggregator:null},review:{enabled:!!e.preferenceComparison,candidateCount:2,minimumSamples:100,allowTies:!0,allowRejectAll:!0,rubric:"",criteria:[]},tasks:e.tasks,graders:e.graders,graderFixtures:e.graderFixtures,learningSignals:e.learningSignals,publishedTasksetRef:{id:e.id,revision:e.revision,contentHash:e.contentHash},createdAt:t,updatedAt:t,metadata:{...e.metadata,importedFromTaskset:{id:e.id,revision:e.revision,contentHash:e.contentHash}}})}l(st,"tasksetDraftFromTaskset");function rt(a){let t=y.parse(a.draft),e=a.now??new Date().toISOString(),s=G(t);if(s.length)throw new $(s);let r=t.modelScope?.source;if(r&&a.tasksetId&&a.tasksetId!==r.tasksetId)throw new Error("Taskset draft publication differs from its prepared identity.");let o=r?.tasksetId||a.tasksetId?.trim()||t.publishedTasksetRef?.id||t.id.replace(/-draft$/,""),i=r?.tasksetRevision??(t.publishedTasksetRef?.id===o?t.publishedTasksetRef.revision+1:1),c=t.sourceRefs.length?t.sourceRefs:[je(t,o,e)],d=c[0].id,p=t.tasks.map(h=>N.parse({...h,sourceRefs:h.sourceRefs.length?h.sourceRefs:[d],metadata:{exampleOrigin:"expert_authored",...h.metadata}})),v=t.capabilities.compatibleMethods.find(h=>h!=="none"&&h!=="retrieval")??null,m=xe(t),F=t.graders.filter(h=>h.rewardEligible&&h.weight>0&&h.kind!=="human"),O=v===null&&m==="verifiable_reward"&&F.length>0,k=v??(O?"grpo":null),U=E.parse({schemaVersion:"openpond.taskset.v1",id:o,revision:i,profileId:t.profileId,profileRelease:null,createImproveRunId:null,name:t.name,objective:t.objective,purpose:t.purpose,benchmark:t.benchmark,preferenceComparison:t.preferenceComparison,status:"needs_review",sourceRefs:c,datasetArtifact:t.datasetArtifact??null,policy:t.policy,environment:t.environment,capabilities:O?{...t.capabilities,compatibleMethods:["grpo"],rewardKinds:[...new Set(F.map(h=>h.kind==="model_judge"?"model_judge":"deterministic"))]}:t.capabilities,metrics:t.metrics,tasks:p,graders:t.graders,graderFixtures:t.graderFixtures,learningSignals:t.learningSignals,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:u("openpond-taskset-draft-authoring-v1"),promptTemplateVersion:"taskset-draft-v1",buildIntent:m,buildSpecification:null,evidenceHashes:c.map(h=>h.sourceHash),tasksetSdkVersion:"draft-v1",sourceCommit:null,repairHistory:[],createdAt:e},readiness:null,contentHash:"00000000",createdAt:i===1?t.createdAt:e,updatedAt:e,metadata:{...t.metadata,...r?{modelTasksetAuthoring:r.lineage}:{},tasksetReviewPolicy:t.review,tasksetOutputContract:t.output,...a.sourcePackageHash?{sourcePackageHash:a.sourcePackageHash}:{},...k?{trainingMethod:k}:{},diagnosis:{schemaVersion:"openpond.capabilityDiagnosis.v1",summary:t.objective,stableBehavior:[t.objective],changingKnowledge:[],requiredContext:[],requiredTools:t.environment.toolNames,intervention:k==="dpo"?"preference":k==="grpo"||k==="ppo"?"grpo_rft":k==="sft"?"sft":"no_training",trainingEligible:k!==null,rationale:k?[`The author selected ${k.toUpperCase()} compatibility.`]:["The Taskset is currently configured for evaluation only."],confidence:1}}}),q=E.parse({...U,contentHash:Y(U)}),L=X(q,{purpose:"publication"}).issues.filter(h=>h.severity==="error");if(L.length)throw new $(L.map(h=>({code:h.code,message:h.message,path:h.path})));return q}l(rt,"publishTasksetDraft");function je(a,t,e){let s=u({draftId:a.id,draftRevision:a.revision,tasks:a.tasks});return{schemaVersion:"openpond.generatedDatasetSource.v1",kind:"generated",id:`source-${t}`,profileId:a.profileId,title:`${a.name} manual authoring`,sourceHash:s,occurredAt:e,licensingStatus:"approved",secretScanStatus:"passed",piiScanStatus:"passed",generatorId:"openpond-taskset-draft",generatorVersion:"1",seed:0,generatorHash:s,metadata:{draftId:a.id,draftRevision:a.revision}}}l(je,"generatedDraftSource");function xe(a){return a.metadata.buildIntent==="discovery"||!a.graders.length&&!a.learningSignals.preferences.length&&!a.learningSignals.rewards.length&&!a.learningSignals.labels.length?"discovery":a.learningSignals.preferences.length?"preferences":a.learningSignals.rewards.length?"verifiable_reward":a.learningSignals.labels.length?"rubric":!a.capabilities.compatibleMethods.some(t=>t!=="none"&&t!=="retrieval")&&a.graders.some(t=>t.rewardEligible&&t.weight>0&&t.kind!=="human")?"verifiable_reward":"demonstrations"}l(xe,"buildIntentForDraft");function Re(a){let t=a.tasksetOutputContract;return t&&typeof t=="object"&&!Array.isArray(t)?t:{mode:"text",jsonSchema:null,renderer:null}}l(Re,"tasksetOutputContract");export{b as a,_e as b,fe as c,ge as d,ke as e,ve as f,we as g,f as h,Le as i,Z as j,B as k,te as l,be as m,Te as n,ye as o,ae as p,se as q,ne as r,Pe as s,ie as t,_ as u,Ze as v,et as w,tt as x,at as y,de as z,st as A,rt as B};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as D}from"./chunk-IR3YJWPW.js";import{Wb as G}from"./chunk-CJDGLPNX.js";import{b as $,c as z,d as H,e as V,f as R,g as U}from"./chunk-I6VMRQF4.js";import{P,R as Q}from"./chunk-XHU4BZQY.js";import{fb as q,v,x as T}from"./chunk-ZY32SZ2P.js";import{n as E}from"./chunk-RCT3O3HQ.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=F(await e),[o,c,{QuickJSWASMModule:w}]=await Promise.all([t.importModuleLoader().then(F),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(F)]),l=await o();l.type="sync";let s=new c(l);return new w(l,s)}a(K,"newQuickJSWASMModuleFromVariant");function F(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(F,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e,t){te(e),e.signal?.throwIfAborted();let o=a(s=>new Error(`${e.errorPrefix}_${s}`),"error"),c=Date.now()+e.timeoutMs,{default:w}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let l=await K(w);e.signal?.throwIfAborted();try{return D.withScope(s=>{let m=s.manage(l.newRuntime());m.setMemoryLimit(33554432),m.setMaxStackSize(262144),m.setInterruptHandler(()=>Date.now()>=c||e.signal?.aborted===!0);let i=s.manage(m.newContext());t&&(c=Date.now()+e.timeoutMs,t.onExecutionReady()),e.deterministic&&s.manage(i.unwrapResult(i.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let r=s.manage(i.unwrapResult(i.evalCode("JSON.stringify"))),p=s.manage(i.unwrapResult(i.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),S=s.manage(i.unwrapResult(i.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),M=s.manage(X(i,S,c,e.signal,o)),g=s.manage(i.getProp(M,e.exportName));if(i.typeof(g)!=="function")throw o("function_export_missing");let b=s.manage(i.unwrapResult(i.callFunction(g,i.undefined,p))),d=s.manage(X(i,b,c,e.signal,o)),h=s.manage(i.unwrapResult(i.callFunction(r,i.undefined,d)));if(i.typeof(h)!=="string")throw o("result_not_json");let y=i.getString(h);if(new TextEncoder().encode(y).byteLength>e.maxResultBytes)throw o("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=c)throw o("timeout");let f=JSON.parse(y);return v(f,e.maxResultBytes),f})}catch(s){throw e.signal?.throwIfAborted(),new k(s instanceof Error?s.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);v(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,o,c,w){for(;;){if(c?.throwIfAborted(),Date.now()>=o)throw w("timeout");let l=e.getPromiseState(t);if(l.type==="fulfilled")return l.notAPromise?l.value.dup():l.value;if(l.type==="rejected")return e.unwrapResult(l);if(e.runtime.executePendingJobs(1).unwrap()===0)throw w("unresolved_promise")}}a(X,"settle");function I(e,t){let o=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let c of t.path){if(!o||typeof o!="object"||!Object.hasOwn(o,c))throw new Error("environment_service_reference_missing");o=o[c]}return o}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");v(e.value,4194304);let o=e.executionServices.map(m=>z.parse(m));if(o.length>16)throw new Error("environment_service_limit");if(new Set(o.map(m=>m.id)).size!==o.length)throw new Error("environment_service_identity_collision");let c=Date.now(),w=new AbortController,l=e.signal?AbortSignal.any([e.signal,w.signal]):w.signal,s=setTimeout(()=>w.abort(new Error("environment_timeout")),e.timeoutMs);try{let m=Object.create(null);for(let r of o){if(l.throwIfAborted(),r.operation!==e.operation||r.operation==="step"&&r.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(r.timeoutMs,e.timeoutMs-(Date.now()-c));if(p<1)throw new Error("environment_timeout");let S=new AbortController,M=AbortSignal.any([l,S.signal]),g=setTimeout(()=>S.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(r.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let d=I(e.value,r.sql);if(typeof d!="string"||!d.length||new TextEncoder().encode(d).byteLength>65536||d.includes("\0")){m[r.id]={status:"rejected",code:"invalid_submission"};continue}let h=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,r.snapshot),sql:d,maxRows:r.maxRows,maxResultBytes:r.maxResultBytes});m[r.id]=await t.sql({request:h,timeoutMs:e.timeoutMs,signal:M})}else{let d=I(e.value,r.source),h=I(e.value,r.cases);if(typeof d!="string"||new TextEncoder().encode(d).byteLength>524288){m[r.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(h)||!h.length||h.length>r.maxCases||h.some(f=>!f||typeof f!="object"||!Object.hasOwn(f,"input")))throw new Error("environment_service_cases_invalid");let y=[];for(let f of h){let u=p-(Date.now()-b);if(u<1&&(S.abort(new Error("environment_service_timeout")),M.throwIfAborted()),y.push(await t.candidate({source:d,exportName:r.exportName,value:structuredClone(f.input),timeoutMs:Math.max(1,u),maxResultBytes:r.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:M})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:y})).byteLength>r.maxResultBytes)throw new k("candidate_result_too_large")}m[r.id]={status:"completed",cases:y}}}catch(d){if(l.throwIfAborted(),S.signal.aborted)m[r.id]={status:"rejected",code:"timeout"};else if(d instanceof k)m[r.id]={status:"rejected",code:"execution_failed"};else throw d}finally{clearTimeout(g)}}l.throwIfAborted();let i=e.timeoutMs-(Date.now()-c);if(i<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:m},timeoutMs:i,signal:l})}finally{clearTimeout(s)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async o=>R.parse(await O({...o,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),o=Q(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let c=e.seed;v(e.input,1048576),v(e.initialState,t.maxStateBytes);let w=structuredClone(e.input),l=structuredClone(e.initialState),s=e.execute??re,m=new AbortController,i=e.signal?AbortSignal.any([e.signal,m.signal]):m.signal,r={},p=0,S=!1,M=!1,g=null,b=[],d=null;async function h(f,u){if(S||M)throw new Error("environment_closed");if(g)throw new Error("environment_operation_in_progress");i.throwIfAborted(),u&&(v(u,262144),u=structuredClone(u));let L=E(r),_=u?t.tools.find(x=>x.name===u.name):null;if(f==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((x,C)=>b.push({sequence:b.length,operation:f,toolName:u?.name??null,arguments:u?structuredClone(u.arguments):null,observation:x,beforeStateHash:L,afterStateHash:E(r),error:C}),"record");try{if(u&&!_)throw new J("unknown_tool");if(u&&_&&!T(_.inputSchema,u.arguments).valid)throw new J("invalid_arguments");let x=t.executionServices?.filter(N=>N.operation===f&&(f!=="step"||N.toolName===u?.name)),C=s({source:o,operation:f,value:{input:w,initialState:l,seed:c,state:structuredClone(r),sequence:p,action:u?structuredClone(u):null},timeoutMs:Math.min(t.operationTimeoutMs,_?.timeoutMs??t.operationTimeoutMs),signal:i,...x?.length?{executionServices:x}:{}});g=C;let A=R.parse(await C);if(i.throwIfAborted(),v(A.state,t.maxStateBytes),v(A.observation,t.maxObservationBytes),(f==="collect"||_?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");r=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(r),observation:B}}catch(x){throw j(null,x instanceof Error?x.message:"environment_execution_failed"),x}finally{g=null}}a(h,"invoke");async function y(){return d||(M=!0,m.abort(new Error("environment_destroyed")),d=(async()=>{try{try{await g}catch{}await s({source:o,operation:"destroy",value:{input:w,initialState:l,seed:c,state:structuredClone(r),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{r={},S=!0}})(),d)}a(y,"destroy");try{await h("create");let f=await h("reset"),u=E(r),L=a(()=>{if(S)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(w),seed:c,initialStateHash:u,finalStateHash:E(r),state:structuredClone(r),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:f.observation,async step(_){return(await h("step",_)).observation},async collect(){let _=await h("collect");return{...L(),observation:_.observation}},snapshot:L,destroy:y}}catch(f){try{await y()}catch{}throw f}}a(Qe,"createJavaScriptEnvironmentSession");var ne=n.string().trim().min(1).max(500),oe=n.string().regex(/^[a-f0-9]{64}$/),W=n.object({kind:n.literal("model"),id:n.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:n.string().max(262144),harness:q.optional(),input:n.record(n.string(),n.unknown()),policyVisibleContext:n.record(n.string(),n.unknown()),timeoutMs:n.number().int().positive().max(36e5),environment:n.discriminatedUnion("kind",[n.object({kind:n.literal("text")}).strict(),n.object({kind:n.literal("javascript"),definition:H,asset:P,initialState:n.record(n.string(),n.unknown()),seed:n.number().int().safe()}).strict()])}).strict(),Ye=n.discriminatedUnion("kind",[W,n.object({kind:n.literal("profile"),request:n.unknown()}).strict()]);var Z=n.string().trim().min(1).max(200),mt=n.object({receiptId:Z,taskId:Z,seed:n.string(),request:W}).strict(),ee=class extends Error{constructor(o,c,w=409){super(c);this.code=o;this.status=w}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as S,g as T,j as k,k as x,m as E}from"./chunk-5HPZGLOL.js";import{h as R}from"./chunk-XHU4BZQY.js";import{v as y}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";var m=e.string().trim().min(1).max(191),w=e.string().regex(/^[a-f0-9]{64}$/),H=e.discriminatedUnion("mode",[e.object({mode:e.literal("automatic"),objective:e.enum(["balanced","fast","economical"]),gpuCount:e.union([e.literal(1),e.literal(2)]).optional()}).strict(),e.object({mode:e.literal("manual"),availabilityId:m,gpuType:e.string().trim().min(1).max(256),gpuCount:e.union([e.literal(1),e.literal(2)]).optional()}).strict()]),ee=e.object({estimateId:m,inputHash:w,requestHash:w,pricingVersion:m,expiresAt:e.string().datetime({offset:!0}),token:e.string().min(1).max(8192)}).strict(),te=e.object({schemaVersion:e.literal("openpond.trainingGpuCatalog.v1"),observedAt:e.string().datetime({offset:!0}),expiresAt:e.string().datetime({offset:!0}),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),supportedLoraRanks:e.array(e.number().int().positive()),pricingBasis:e.literal("accepted_compute_and_disk_hourly_before_credits"),offerings:e.array(e.object({availabilityId:m,gpuType:e.string().min(1).max(256),provider:m,region:e.string().min(1),dataCenterId:e.string().nullable(),gpuCount:e.number().int().positive(),gpuMemoryGb:e.number().positive(),stockStatus:e.enum(["High","Medium","Low"]),computeHourlyUsd:e.number().nonnegative(),diskHourlyUsd:e.number().nonnegative(),totalHourlyUsd:e.number().nonnegative()}).strict()).max(1e3)}).strict();var P=R.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((t,a)=>{t.maximumDailySpendUsd<t.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});var n=e.string().trim().min(1).max(500),c=e.string().regex(/^[a-f0-9]{64}$/),l=e.string().datetime({offset:!0}),u=e.object({id:n,contentHash:c}).strict(),v=u.extend({revision:e.number().int().positive()}).strict(),p=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:n,revision:e.string().trim().min(1).max(256).nullable(),tokenizerRevision:e.string().trim().min(1).max(256).nullable(),chatTemplateHash:e.string().trim().min(8).max(256).nullable(),modelAssetId:n.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),O=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),L=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:O,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),B=e.object({profileProjectId:n,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:u}).strict(),J=e.object({profileProjectId:n,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:c,definitionId:n,harnessRelease:u,tasksetRelease:u}).strict(),D=e.object({tasksetRef:v.nullable().default(null),evaluationTasksetRef:v.nullable().optional(),profileSource:B.nullable().optional(),profileEvaluation:J.nullable().optional(),rewardBindingRef:v.nullable().optional(),tasksetRelease:u.nullable().default(null),harnessRelease:u.nullable().default(null),baseModel:p.nullable().default(null),method:O.nullable().default(null),destinationId:n.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuSelection:H.optional(),continuationAdapterMode:e.enum(["residual_append","shared","sequential_merge"]).optional(),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:L.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),q=D,N=e.object({schemaVersion:e.literal("openpond.hostedModelProjectLink.v1"),apiOrigin:e.string().url().refine(t=>new URL(t).origin===t,"Use a canonical API origin.").nullable().default(null),teamId:n,projectId:n,portableProjectId:n,revision:e.number().int().positive(),etag:c,syncedSourceRevision:e.number().int().positive(),syncedAt:l,tasksets:e.array(e.object({localTasksetId:n,localTasksetHash:c.nullable().default(null),releaseId:n,releaseRevision:e.number().int().positive(),releaseHash:c,packageHash:c.nullable().default(null),hostedTasksetId:n,syncedAt:l}).strict()).max(1e4).default([])}).strict(),V=e.object({localTasksetId:n,releaseId:n,releaseRevision:e.number().int().positive(),releaseHash:c,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:n.nullable().default(null),lastAttemptAt:l,syncedAt:l.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),$=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:n,profileId:n,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:D,hosted:N.nullable().default(null),tasksetSyncs:e.array(V).max(1e4).default([]),createdAt:l,updatedAt:l}).strict(),U=$.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),G=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:n,expectedRevision:e.number().int().nonnegative(),project:U,learning:P.optional()}).strict().superRefine((t,a)=>{t.learning&&t.expectedRevision!==0&&a.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),Y=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:c,projectId:n,expectedRevision:e.number().int().nonnegative(),checkedAt:l,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:n,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),X=e.object({id:n,name:e.string().min(1).max(500),available:e.boolean(),preference:p}).strict();function M(t){try{y(t,524288)}catch{throw new h(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return G.parse(t)}d(M,"parseModelProjectSaveRequest");async function ue(t,a,i){y(t,524288);let s=U.parse(t);x(s,524288,"Model configuration");let o=i?P.parse(i):void 0,r=await k({project:s,expectedRevision:a,...o?{learning:o}:{}});return M({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${r}`,expectedRevision:a,project:s,...o?{learning:o}:{}})}d(ue,"createModelProjectSaveRequest");var F=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:n,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:q,sourceRevision:e.number().int().positive(),sourceUpdatedAt:l,expectedEtag:c.nullable().default(null)}).strict(),f=e.object({id:n,teamId:n,portableProjectId:n,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:q,sourceRevision:e.number().int().positive(),sourceUpdatedAt:l,revision:e.number().int().positive(),etag:c,createdAt:l,updatedAt:l}).strict(),Z=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:u,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:l}).strict(),K=e.object({project:f,resources:e.array(Z).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(n).max(100)}).strict(),Q=e.object({schemaVersion:e.literal("openpond.modelProjectApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),h=class extends Error{static{d(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(a,i){super(i.message),this.name="OpenPondModelProjectApiError",this.status=a,this.code=i.code,this.retryable=i.retryable,this.requestId=i.requestId,this.details=i.details}};function A(t){let a={};return new Headers(t).forEach((i,s)=>{a[s]=i}),a}d(A,"headersRecord");function me(t){let a=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function s(o,r){let j=typeof t.headers=="function"?await t.headers():t.headers??{},g=await a(`${i}${o}`,{...r,headers:{accept:S,...r?.body?{"content-type":S}:{},...A(j),...A(r?.headers)}}),I=await E(g,8388608,"Model Project API response");if(!g.ok){let _=Q.safeParse(I);throw _.success?new h(g.status,_.data):new T("invalid_error_response",`Model Project request failed with HTTP ${g.status} and an invalid error envelope.`)}return I}return d(s,"request"),{async configurationCandidates(){return e.object({candidates:e.array(X).max(1e3)}).strict().parse(await s("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(o){let r=M(o);return Y.parse(await s("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)}))},async saveConfiguration(o){let r=M(o);return f.parse(await s("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)}))},async upsert(o){x(o,524288,"Model Project sync");let r=F.parse(o),j=await s(`/v1/model-projects/${encodeURIComponent(r.portableProjectId)}`,{method:"PUT",body:JSON.stringify(r)});return f.parse(C(j,"project"))},async list(){let o=await s("/v1/model-projects");return e.array(f).parse(C(o,"projects"))},async get(o){let r=await s(`/v1/model-projects/${encodeURIComponent(n.parse(o))}`);return K.parse(r)}}}d(me,"createModelProjectsClient");function C(t,a){return!t||typeof t!="object"||Array.isArray(t)?t:a in t?t[a]:t}d(C,"unwrapObject");export{H as a,ee as b,te as c,u as d,v as e,p as f,L as g,q as h,U as i,ue as j,F as k,f as l,me as m};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Ca as J,Cb as ue,Da as ne,Db as fe,Ha as re,Ia as oe,Ka as ce,Kb as W,La as de,Lb as Z,Ma as le,Mb as he,Na as pe,Nb as ge,Ob as ve,Pb as be,Qb as we,Rb as ke,Sa as me,_ as ae,ja as se,na as ie,v as te,wa as F}from"./chunk-5ZNE43XC.js";import{b as q,c as I,d as G,f as B,k as D,l as $,m as d}from"./chunk-HIQPGYVH.js";import{m as ee}from"./chunk-263WS3TB.js";import{K as V,R as O,b as K,ba as Y,ca as X}from"./chunk-XHU4BZQY.js";import{bb as U}from"./chunk-ZY32SZ2P.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a as k}from"./chunk-FTQLQJQV.js";var Ie=n.object({id:q,purpose:n.string().trim().min(1).max(500),audience:n.enum(["orchestrator","environment","privileged_scorer","trainer","infrastructure"]),required:n.boolean(),ttlSeconds:n.number().int().positive().max(86400),scopes:n.array(n.string().trim().min(1).max(500)).max(100).default([])}).strict(),qe=n.object({declarationId:q,leaseRef:n.string().trim().min(8).max(1e3),audience:Ie.shape.audience,expiresAt:G}).strict(),Me=n.object({adapterId:q,placement:n.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:I,runtimeVersion:n.string().trim().min(1).max(200),dataPlane:n.object({provider:q,dataPlaneId:q,cellId:q,runnerPoolId:q,runtimeImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:I}).strict().nullable()}).strict(),je=n.object({adapterId:q,kind:n.enum(["local","ssh","managed","custom"]),deviceOrPool:n.string().trim().min(1).max(1e3),capabilityReceipt:I,provider:q.nullable()}).strict(),Pe=n.object({adapterId:q,workerVersion:n.string().trim().min(1).max(200),workerImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),upstreamRevision:n.string().trim().min(1).max(500),capabilityReceipt:I}).strict(),Re=n.object({schemaVersion:n.literal("openpond.harnessRunManifest.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),id:q,harnessRelease:B,datasetRelease:B,evidenceSets:n.array(B).max(1e4),model:n.object({source:n.string().trim().min(1).max(200),revision:n.string().trim().min(1).max(500),artifactHash:I.nullable(),tokenizerRevision:n.string().trim().min(1).max(500),chatTemplateHash:I}).strict(),recipe:n.object({method:n.string().trim().min(1).max(100),version:n.string().trim().min(1).max(200),configHash:I}).strict(),runtimeTarget:Me,computeTarget:je,engine:Pe,resolvedBundleHash:I,secretLeaseRefs:n.array(qe).max(1e3),approval:n.object({approvalHash:I,approvedAt:G,maximumSpendUsd:n.number().nonnegative().nullable()}).strict(),createdAt:G}).strict(),xe=Re.extend({contentHash:I}).strict(),Te=n.object({schemaVersion:n.literal("openpond.resolvedTrainingBundle.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),projection:n.literal("trainer"),harnessRelease:B,datasetRelease:B,evidenceSetRelease:B.nullable(),files:n.array(n.object({path:n.string().trim().min(1).max(2e3),sha256:I,sizeBytes:n.number().int().nonnegative()}).strict()).max(1e5)}).strict(),He=Te.extend({contentHash:I}).strict(),_e=[{label:"OpenAI-style API key",pattern:/\bsk-[A-Za-z0-9_-]{16,}\b/g},{label:"OpenPond API key",pattern:/\bopk_[A-Za-z0-9_-]{12,}\b/g},{label:"private key",pattern:/-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----/g},{label:"credential assignment",pattern:/\b(?:api[_-]?key|password|secret|token)["']?\s*[:=]\s*["']?[^\s"']{8,}/gi}],N=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,Q=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function Be(e){let t=[],a=e;for(let s of _e)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);N.lastIndex=0;let r=N.test(a);N.lastIndex=0,r&&t.push("email address"),a=a.replace(N,"[REDACTED email]"),Q.lastIndex=0;let o=Q.test(a);return Q.lastIndex=0,o&&t.push("phone number"),a=a.replace(Q,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:r||o?"review":"passed",findings:t,redacted:a}}k(Be,"scanAndRedactEvidence");function ze(e){let t=new Map;return{tasks:e.tasks.map(({artifactRefs:r,...o})=>({...o,assets:r.map(s=>{if(s.visibility!=="policy")throw new Error("Learning task inputs must be policy-visible assets.");let i=e.assets?.find(m=>m.id===s.id),p=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(O(i,s)):void 0);if(!p||p.byteLength!==s.sizeBytes||$(p)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let l=`learning/assets/${d({task:o.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(l,new Uint8Array(p)),{id:s.id,sourceRefId:e.sourceId,artifactRef:l,fileName:s.path.split("/").at(-1),stagingPath:s.path,mediaType:s.mediaType,sha256:s.contentHash,sizeBytes:s.sizeBytes,split:o.split,metadata:{portableAsset:s}}}),...o.requiredOutputs?{requiredOutputs:o.requiredOutputs.map(s=>({...s,schemaRef:s.schemaRef?.id??null,maxBytes:s.maxBytes??void 0}))}:{}})),tasksetAssetBytes:t}}k(ze,"materializeLearningBatchAssets");function Ce(e){let t=Y(e),a=X(t),r=t.environment.kind==="work";if(!r&&(t.environment.kind!=="text"||t.tools.length||t.tasks.some(c=>c.artifactRefs.length))||r&&t.tasks.some(c=>!c.requiredOutputs?.length))throw new Error("This learning batch requires a supported text or Work environment with declared outputs.");let o=e.source.id,s=ze({tasks:t.tasks,sourceId:o,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},p=[];for(let c of a.admissions){let b=e.evidence.find(h=>h.id===c.evidence.id),f=e.decisions.find(h=>h.id===c.decision.id);e.batch.purpose==="reward_training"&&f.grade?.training.status==="scored"&&i.rewards.push({id:`reward-${c.taskId}`,taskId:c.taskId,kind:"reward",task:e.definition.instructions,rules:[{id:e.binding.id,points:1,condition:"Execute the released Reward binding with its declared normalization, weights and gates."}],otherwisePoints:0,executable:!0,approved:!0,confidence:1,sourceRefs:[o],artifactRef:e.binding.id,metadata:{rewardBinding:V(e.binding),evidence:c.evidence,decision:c.decision}}),c.supervisedTarget!==null&&i.demonstrations.push({kind:"demonstration",id:`demo-${c.taskId}`,taskId:c.taskId,sourceRefs:[o],artifactRef:c.decision.id,approved:!0,confidence:1,prompt:null,response:JSON.stringify(c.supervisedTarget),metadata:{evidence:c.evidence,decision:c.decision,targetGradeHash:f.targetGrade?.contentHash}});for(let[h,x,S]of[["observed",b.submission.observedOutput,f.grade],["target",f.approvedTarget,f.targetGrade]]){let H=Oe(S);x===null||H===null||p.push({id:`fixture-${h}-${c.taskId}`,taskId:c.taskId,label:H.passed?"positive":"negative",output:x,infrastructureError:null,expectedPassed:H.passed,expectedRewardEligible:H.rewardEligible,metadata:{gradeReceiptHash:S.contentHash,evidence:c.evidence,decision:c.decision}})}}if(!p.length&&e.batch.purpose!=="reward_training")throw new Error("Grade at least one reviewed response before preparing this batch. Grader fixtures must come from actual receipts.");let l=ne(e.binding,e.rewards,e.assets),m=[];for(let c of t.graders){if(c.kind!=="custom_verifier")continue;let b=e.assets?.find(h=>h.id===c.verifierRef.id);if(!b)throw new Error(`Reward ${c.id} is missing its immutable verifier source.`);let f=c.verifierRef.path;m.some(h=>h.path===f)||m.push({path:f,role:"verifier",content:O(b,c.verifierRef)})}let v=F.parse({schemaVersion:"openpond.taskset.v1",id:`learning-${d([e.profileId,e.batch.contentHash]).slice(0,40)}`,revision:1,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:`${e.definition.name} \xB7 ${e.batch.examples.length} approved examples`,objective:e.definition.instructions,purpose:"general",benchmark:null,status:"needs_review",sourceRefs:[e.source],datasetArtifact:null,policy:t.policy,environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:r?"work":"chat",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(c=>c.name),lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{portableEnvironment:t.environment,portableTools:t.tools}},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:r?"single_agent":"chat",supportedSignals:i.demonstrations.length?["demonstration","reward"]:["reward"],compatibleMethods:e.batch.purpose==="supervised_training"?["sft"]:e.batch.purpose==="reward_training"?["grpo","ppo"]:["none"],rewardKinds:[...new Set(t.graders.map(c=>c.kind==="human"?"human":c.kind==="model_judge"?"model_judge":"deterministic"))],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote"],exportable:!0,portabilityBlockers:[]},tasks:s.tasks.map(c=>({...c,schemaVersion:"openpond.taskData.v1",sourceRefs:[o],metadata:{admission:a.admissions.find(b=>b.taskId===c.id),exampleOrigin:e.evidence.find(b=>b.id===c.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:l,graderFixtures:p,learningSignals:i,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:d("openpond-learning-batch-v1"),promptTemplateVersion:"learning-batch-v1",buildIntent:e.batch.purpose==="supervised_training"?"demonstrations":"verifiable_reward",buildSpecification:null,evidenceHashes:e.batch.examples.map(c=>c.evidence.contentHash),tasksetSdkVersion:"learning-batch-v1",sourceCommit:null,repairHistory:[],createdAt:e.batch.sealedAt},readiness:null,contentHash:"00000000",createdAt:e.batch.sealedAt,updatedAt:e.batch.sealedAt,metadata:{learning:a,learningRelease:V(t),trainingMethod:e.batch.purpose==="supervised_training"?"sft":e.batch.purpose==="reward_training"?"grpo":"none",tasksetOutputContract:r?{mode:"artifacts",requiredOutputSource:"task.requiredOutputs"}:{mode:"structured_json",jsonSchema:e.definition.outputSchema,renderer:null}}});return{taskset:F.parse({...v,contentHash:J(v)}),release:t,generatedFiles:m,tasksetAssetBytes:s.tasksetAssetBytes}}k(Ce,"materializeLearningBatchTaskset");function Oe(e){if(!e)return null;let t=e.training.status==="not_configured"?e.evaluation:e.training;return t.status!=="scored"?null:{passed:t.passed===!0,rewardEligible:e.training.status==="scored"}}k(Oe,"fixtureOutcome");function ot(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(p=>[p.id,p]))).values()){let i=e.assetBytes?.get(s.id),p=e.assets?.find(m=>m.id===s.id),l=i?.byteLength??(p?new TextEncoder().encode(p.text).byteLength:0);if(a+=l,a>ae)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):p&&t.push(p.text)}let r=Be(JSON.stringify({tasks:e.evidence.map(s=>s.submission),targets:e.decisions.map(s=>s.approvedTarget),definition:e.definition,inputAssets:t}));if(r.secretStatus!=="passed"||r.piiStatus!=="passed")throw new Error(`Learning batch contains unresolved data findings (${r.findings.join(", ")}). Correct the source examples and seal a revised batch before training.`);let o=te.parse({schemaVersion:"openpond.learningBatchDatasetSource.v1",kind:"learning_batch",id:`batch-source-${e.batch.contentHash.slice(0,40)}`,profileId:e.profileId,title:e.definition.name,sourceHash:e.batch.contentHash,occurredAt:e.batch.sealedAt,batch:V(e.batch),taskDefinition:e.batch.taskDefinition,admittedBy:e.batch.sealedBy,licensingStatus:"approved",secretScanStatus:r.secretStatus,piiScanStatus:r.piiStatus,metadata:{admission:e.admissionContext??"explicit_local_batch_review",privacyScanner:"openpond-evidence-v1",findings:r.findings}});return Ce({...e,source:o})}k(ot,"prepareReviewedLearningBatch");async function dt(e){let t=structuredClone(e),{project:a,recipe:r,taskset:o,approval:s}=t,i=xe.parse(t.manifest),p=He.parse(t.bundleManifest),l=t.executionMode==="qualification",m=t.gpuSelection??a.trainingSetup.managedGpuSelection?ee.parse(t.gpuSelection??a.trainingSetup.managedGpuSelection):void 0,v=t.physicalPlacement?fe.parse(t.physicalPlacement):void 0,c=i.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(r).rollout.groupSize;if(i.qualificationSamples!==p.qualificationSamples||i.qualificationSamples!==void 0&&(!l||i.qualificationSamples>c))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i.executionMode!==t.executionMode||p.executionMode!==t.executionMode)throw new Error("Managed submission execution mode differs from its immutable bundle.");if(l&&(t.evaluationSource||t.resumeFrom||t.rewardSource.kind!=="deterministic"))throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");let{contentHash:b,...f}=i,{contentHash:h,...x}=p;if(d(f)!==b||d(x)!==h||i.resolvedBundleHash!==h||d(i.harnessRelease)!==d(p.harnessRelease)||d(i.datasetRelease)!==d(p.datasetRelease)||d(i.evidenceSets)!==d(p.evidenceSetRelease?[p.evidenceSetRelease]:[]))throw new Error("The managed training manifest or resolved bundle changed.");if(!a.hosted||a.hosted.syncedSourceRevision!==a.revision||a.hosted.portableProjectId!==a.id)throw new Error("Sync the exact Model Project revision before preparing managed training.");let S=a.trainingSetup.baseModel;if(!S||S.modelId!==i.model.source||S.revision!==i.model.revision||S.tokenizerRevision!==i.model.tokenizerRevision||S.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(!["grpo","sft"].includes(r.method)||d(r)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved supported recipe and spend ceiling.");if(r.method==="sft"){let T=ue.parse(r);if(d(T)!==d(r))throw new Error("SFT recipe must be fully materialized before approval.");if(l||t.resumeFrom||v||(m?.gpuCount??1)!==1)throw new Error("Initial managed SFT requires a fresh single-GPU run without reuse-only placement or rollout qualification.")}let H=n.object({wallTimeMs:n.number().positive()}).parse(r.resourceLimits);t.idempotencyKey!==void 0&&n.string().trim().min(16).max(191).parse(t.idempotencyKey);let E=$e(p,t.files),A=l?null:Z.parse(t.evaluationSource),y=E.find(T=>T.path===W);if(A&&(!y||d(JSON.parse(Buffer.from(y.content,"base64").toString("utf8")))!==d(A)))throw new Error("The evaluation source differs from the immutable training bundle.");if(l&&(y||E.some(T=>T.path==="dataset/train.json")||!E.some(T=>T.path==="dataset/qualification.json")||!E.some(T=>T.path==="qualification-source.json")))throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");if(!l&&E.some(T=>T.path==="dataset/qualification.json"||T.path==="qualification-source.json"))throw new Error("Qualification datasets cannot be prepared as training.");let _=A?await ge(A):null,C={schemaVersion:"openpond.managedRlPortableSubmission.v1",...l?{executionMode:"qualification"}:{},...t.origin?{origin:K.parse(t.origin)}:{},...v?{physicalPlacement:v}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${b}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:o,modelImprovementQualification:t.modelImprovementQualification??null,recipe:r,resolvedBundle:{manifest:p,files:E},validationTasks:A?.tasks??[],validationAssets:A?.assets??[]},j={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??b}`,sourceManifest:{id:i.id,contentHash:b},payload:C},P=await be({...j,contentHash:await ve(j)}),u={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${b}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:K.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:j.sourceManifest,harnessRelease:i.harnessRelease,taskset:o,tasksetRelease:{id:o.id,contentHash:o.contentHash},dataset:p.datasetRelease,..._?{evaluation:_}:{},evidenceSets:p.evidenceSetRelease?[p.evidenceSetRelease]:[]},job:{kind:"policy_optimize",...l?{executionMode:"qualification"}:{},baseModel:S,recipe:r,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:l?"managed_rl.policy.qualification":r.method==="sft"?"managed_training.sft":"managed_rl.policy.grpo",version:"1",required:!0},...m?.gpuCount===2?[{id:"managed_rl.policy.data_parallel",version:"1",required:!0}]:[],{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,...m?{gpuSelection:m}:{},...v?{physicalPlacement:v}:{},budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(H.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},w=await ke({...u,contentHash:await we(u)});return{artifact:P,submission:w}}k(dt,"prepareManagedTrainingSubmission");function $e(e,t){if(t.length!==e.files.length||new Set(t.map(r=>r.path)).size!==t.length)throw new Error("The managed bundle file inventory changed.");let a=new Map(t.map(r=>[r.path,r]));return e.files.map(r=>{let o=a.get(r.path);if(!o||o.path.includes("\\")||o.path.includes("\0")||o.path.split("/").some(i=>!i||i==="."||i==="..")||o.path==="bundle-manifest.json"||o.encoding!=="base64")throw new Error("The managed bundle contains an invalid file.");let s=Buffer.from(o.content,"base64");if(s.toString("base64")!==o.content||o.sha256!==r.sha256||o.sizeBytes!==r.sizeBytes||s.byteLength!==r.sizeBytes||$(s)!==r.sha256)throw new Error(`Managed training bundle file ${o.path} changed before upload.`);return o})}k($e,"verifyFiles");var Le=n.object({name:n.literal("adamw").default("adamw"),weightDecay:n.number().nonnegative().max(1).default(0),beta1:n.number().positive().lt(1).default(.9),beta2:n.number().positive().lt(1).default(.999),epsilon:n.number().positive().max(.01).default(1e-8)}).strict().default({name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8});function pt(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let y=R(a.policyModel),_=R(a.referenceModel),C=R(a.dataset),j=d({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(P=>({id:P.id,artifactRef:P.artifactRef,prompt:P.prompt,chosen:P.chosen,rejected:P.rejected,approved:P.approved})),policyModel:y,referenceModel:_,dataset:C});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:d(["dpo-reference-logprobs",j]),invalidationHash:j}}}if(a.method==="ppo"){let y=R(a.policyOptimization),_=R(y.policyModel),C=R(y.referenceModel),j=R(y.optimizer),P=R(j.valueModel),u=R(y.dataset),w=R(y.reward),T=d(_),g=d(C),L=d(P);return{...a,policyOptimization:{...y,dataset:{...u,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...w,graderHash:d(e.graders)}},resume:{...R(a.resume),policyHash:T,referenceHash:g,valueModelHash:L}}}if(a.method!=="grpo")return t;let r=a.reward&&typeof a.reward=="object"&&!Array.isArray(a.reward)?a.reward:{},o=e.environment.metadata.toolContractHash,s=typeof o=="string"&&o.trim()?o:r.toolContractHash,i=R(a.baseModel),p=R(a.dataset),l=R(a.rollout),m=R(a.optimizer),v=R(a.loss),c=R(a.resourceLimits),b=M(p.maxExamples,1),f=M(l.groupSize,2),h=M(l.maxOutputTokens,1),x=M(p.maxPromptTokens,1),S=M(m.maxSteps,1),H=M(m.iterations,2),E=M(c.maxRollouts,S*f),A=M(l.maxTurns,1);return{...a,resourceLimits:{...c,maxGpuSeconds:c.maxGpuSeconds??Math.min(10800,Math.ceil(M(c.wallTimeMs,18e4)/1e3))},reward:{...r,graderHash:d(e.graders),toolContractHash:s},policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:i,referenceModel:i,dataset:{tasksetId:e.id,tasksetHash:e.contentHash,split:"train",selectionStrategy:p.selectionStrategy,selectionSeed:l.seed,maxExamples:b},sampler:{temperature:l.temperature,topP:l.topP,maxOutputTokens:h,maxTurns:l.maxTurns,concurrency:l.concurrency},environment:{id:r.environmentId,version:r.environmentVersion,toolContractHash:s},reward:{graderId:r.graderId,graderHash:d(e.graders),learnedPreference:r.learnedPreference??null},kl:{coefficient:v.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:E,maxEnvironmentExecutions:E,maxInputTokens:E*A*x,maxOutputTokens:E*A*h,maxOptimizerSteps:S*H,wallTimeMs:M(c.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:l.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:f,normalization:"group_standardized",advantageEpsilon:typeof m.advantageEpsilon=="number"?m.advantageEpsilon:1e-8,loss:v.method??"grpo",clipRange:typeof m.clipRange=="number"?m.clipRange:.2,iterations:H,microbatchSize:M(m.microbatchSize,1),gradientAccumulationSteps:M(m.gradientAccumulationSteps,1),adamw:Le.parse(m.adamw)}}}}k(pt,"withAuthoritativeRecipeHashes");function R(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}k(R,"record");function M(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}k(M,"positiveInteger");function mt(e){let t=e.sourceRelease,a=[],r=e.skills??[],o=e.agents??[];if([...r,...o].some(m=>m.visibility!=="policy"))throw new Error("The portable policy Harness requires policy-visible dependencies.");let s=Se({id:"desktop-dependency-lock",path:".openpond/harness/dependency-lock.json",hashInput:{profileHead:e.profileHead??null,sourceRelease:t,tools:a,skills:r.map(({id:m,contentHash:v})=>({id:m,contentHash:v})),agents:o.map(({id:m,contentHash:v})=>({id:m,contentHash:v}))},mediaType:"application/json",visibility:"policy"}),i=re({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${d([t,a,s.contentHash]).slice(0,24)}`,sourceRelease:t,instructions:[],skills:r,agents:o,toolDeclarations:a,capabilityRequirements:[],dependencyLock:s,portability:{portable:!0,blockers:[],localOnlyAssetRefs:[],hostPrivateAssetRefs:[]},metadata:{sourceReleaseId:t?.id??null}}),p=Se({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),l=oe({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${d([i.contentHash,p.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:p,tools:a,lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},files:[...r,...o],metadata:{runtimeProtocol:"openpond.desktop-agent-loop.v1"}});return{agentSnapshot:i,harnessRelease:l}}k(mt,"createPolicyHarnessContext");function Se(e){let t=D(e.hashInput);return{id:e.id,path:e.path,contentHash:d(e.hashInput),sizeBytes:new TextEncoder().encode(t).byteLength,mediaType:e.mediaType,visibility:e.visibility}}k(Se,"asset");function ut(e){let{taskset:t,modelProject:a,harnessRelease:r,tasksetRelease:o}=e,s=a.trainingSetup,i=e.executionMode==="qualification",p=e.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(e.modelProject.trainingSetup.recipe).rollout.groupSize;if(e.qualificationSamples!==void 0&&(!i||!Number.isInteger(e.qualificationSamples)||e.qualificationSamples<1||e.qualificationSamples>p))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i&&e.evaluationSource)throw new Error("Qualification does not consume an independent evaluation source.");let l=i?se(e.qualificationSource):null;if(!i&&e.qualificationSource)throw new Error("Qualification sources cannot be used for training.");if(!i&&e.qualificationTaskId!==void 0)throw new Error("Qualification selection cannot be used for training.");if(i&&(!e.qualificationTaskId||!t.tasks.some(u=>u.id===e.qualificationTaskId)))throw new Error("Qualification requires one explicit task ID from its published source.");if(l&&(l.modelResources||l.learningResources||d(t.tasks.map(me))!==d(l.taskset.tasks)||ye(e.tasksetRelease)!==ye(l.taskset)))throw new Error("Qualification must preserve its ordinary source release and complete task population.");let m=B.parse(r),v=B.parse(o);if(e.openpondRelease,e.workerProtocol,J(t)!==t.contentHash)throw new Error("Taskset authoring state changed after its release was selected.");if(!s.baseModel?.revision||!s.baseModel.tokenizerRevision||!s.baseModel.chatTemplateHash||!s.recipe||!s.tasksetRef||s.tasksetRef.id!==(i?o.id:t.id)||s.tasksetRef.contentHash!==(i?o.contentHash:t.contentHash))throw new Error("Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe.");let b=t.profileRelease??{id:`profile_${t.profileId}`,revision:t.revision,contentHash:d({profileId:t.profileId,sourceCommit:t.authoringProvenance.sourceCommit,skillHash:t.authoringProvenance.skillHash})},f=new Map;if(l&&z(f,"qualification-source.json",l),e.evaluationSource){let u=Z.parse(e.evaluationSource);if(d(u.taskset)!==d(s.evaluationTasksetRef))throw new Error("The evaluation source differs from the prepared Model configuration.");he(t.tasks.filter(w=>w.split==="train"),u.tasks),f.set(W,new TextEncoder().encode(D(u)))}else if(!i&&s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let h=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?de(e.harnessSource,m):le(e.harnessSource,m):null;if(s.harnessRelease&&!h)throw new Error("A selected Harness requires its complete immutable source package.");if(h&&(!s.harnessRelease||s.harnessRelease.id!==m.id||s.harnessRelease.contentHash!==m.contentHash))throw new Error("Harness source differs from the Model's explicit selection.");if(h){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!h.agentSnapshot.portability.portable||h.schemaVersion==="openpond.harnessSourcePackage.v1"&&h.harnessRelease.files.some(w=>w.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");z(f,"harness/source-package.json",h)}z(f,"harness/execution.json",ce.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:h?"selected_release":"taskset_owned",harnessRelease:m,sourcePackageHash:h?.contentHash??null}));let x=pe(t,e.rewardExecution);if(l&&(!x||d(U(x.binding,x.rewards))!==d(l.taskset.graders)||l.taskset.graders.some(u=>u.kind==="model_judge"||u.kind==="human")))throw new Error("Qualification requires the source package's exact deterministic graders.");if(x){let u=e.verifierAssets??[],w=[...x.rewards.flatMap(g=>g.assets),...U(x.binding,x.rewards).flatMap(g=>g.kind==="custom_verifier"?[g.verifierRef]:g.kind==="model_judge"?[g.rubricRef]:[])],T=new Set(w.map(g=>g.id));if(new Set(u.map(g=>g.id)).size!==u.length||new Set(u.map(g=>g.asset.path)).size!==u.length||u.some(g=>!T.has(g.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let g of w){let L=u.find(Ae=>Ae.id===g.id);if(!L||g.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");O(L,g)}z(f,"reward-binding.json",{kind:"reward_binding_v1",binding:x.binding,rewards:x.rewards,assets:u})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");let S=t.metadata.tasksetOutputContract;S&&typeof S=="object"&&"responsePath"in S&&ie.parse({jsonSchema:null,renderer:null,...S}),z(f,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:{...t.environment,metadata:{...t.environment.metadata,policySystemPrompt:t.objective}},capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),z(f,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),z(f,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let H=i?t.tasks.filter(u=>u.id===e.qualificationTaskId):t.tasks.filter(u=>u.split==="train");if(H.length>0)z(f,i?"dataset/qualification.json":"dataset/train.json",{schemaVersion:i?"openpond.qualificationDataset.v1":"openpond.datasetSplit.v1",...i?{selectedTaskId:e.qualificationTaskId}:{split:"train"},tasks:H}),Ve({assets:f,tasks:H,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)z(f,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let E=Object.values(t.learningSignals).flat().filter(u=>u.approved);for(let u of E){let w=Ee(u);f.set(`evidence/signals/${$(w)}.json`,w)}let A={id:`dataset_${t.id}_r${t.revision}`,contentHash:d({taskset:v,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,...i?{executionMode:"qualification",tasks:H}:{trainTasks:H}})},y=E.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:d({taskset:v,harnessRelease:m,datasetRelease:A,profileRelease:b,signals:E})}:null,_=Te.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},projection:"trainer",harnessRelease:m,datasetRelease:A,evidenceSetRelease:y,files:[...f.entries()].sort(([u],[w])=>u.localeCompare(w)).map(([u,w])=>({path:u,sha256:$(w),sizeBytes:w.byteLength}))}),C=He.parse({..._,contentHash:d(_)}),j=Re.parse({schemaVersion:"openpond.harnessRunManifest.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},id:`manifest_${e.modelRunId}_${e.approval.approvalHash.slice(0,16)}`,harnessRelease:r,datasetRelease:A,evidenceSets:y?[y]:[],model:{source:s.baseModel.modelId,revision:s.baseModel.revision,artifactHash:null,tokenizerRevision:s.baseModel.tokenizerRevision,chatTemplateHash:s.baseModel.chatTemplateHash},recipe:{method:s.recipe.method,version:"openpond.trainingRecipe.v1",configHash:d(s.recipe)},runtimeTarget:e.runtime,computeTarget:e.compute,engine:e.engine,resolvedBundleHash:C.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:xe.parse({...j,contentHash:d(j)}),resolvedBundleManifest:C,assets:f,profileRelease:b,harnessRelease:m,tasksetRelease:v,datasetRelease:A,evidenceSetRelease:y}}k(ut,"buildTasksetTrainingBundle");function Ve(e){let t=new Set;for(let a of e.tasks)for(let r of a.assets??[]){t.add(r.artifactRef);let o=e.tasksetAssetBytes.get(r.artifactRef);if(!o)throw new Error(`Resolved Training Bundle is missing Work asset ${r.artifactRef}.`);if(o.byteLength!==r.sizeBytes||$(o)!==r.sha256)throw new Error(`Resolved Training Bundle Work asset ${r.artifactRef} failed immutable verification.`);e.assets.set(r.artifactRef,o)}for(let a of e.tasksetAssetBytes.keys())if(!t.has(a))throw new Error(`Resolved Training Bundle received unexpected Work asset ${a}.`)}k(Ve,"addTasksetAssets");function z(e,t,a){e.set(t,Ee(a))}k(z,"addJsonAsset");function Ee(e){return Buffer.from(D(e),"utf8")}k(Ee,"bytes");function ye(e){return d({id:e.id,contentHash:e.contentHash})}k(ye,"releasedRefHash");export{Me as a,je as b,Pe as c,xe as d,He as e,Be as f,ot as g,dt as h,Le as i,pt as j,mt as k,ut as l};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as K,c as q}from"./chunk-ULJZ7NUF.js";import{d as C,e as g}from"./chunk-JCLTFDVW.js";import{a as r}from"./chunk-FTQLQJQV.js";var re=new URL(g).hostname,G=new URL(C).hostname,se=`${g}/opchat/v1`;function s(e){if(!e)return null;let n=e.trim();return n?n.replace(/\/+$/,""):null}r(s,"normalizeBaseUrl");function H(e){let n=s(e);if(!n)return null;try{let o=new URL(n).hostname.toLowerCase();if(o===re)return g;if(o===G||o===`www.${G}`||o==="openpond.live"||o==="www.openpond.live")return g;if(o.startsWith("api."))return n}catch{return null}return null}r(H,"mapUiBaseToApiBase");function D(e,n){let t=s(process.env.OPENPOND_API_URL);if(t)return t;let o=s(e?.apiBaseUrl);if(o)return o;let a=s(n.apiBaseUrl);if(a)return a;let l=H(process.env.OPENPOND_BASE_URL);return l||(H(e?.baseUrl||n.baseUrl)??g)}r(D,"resolvePublicApiBaseUrl");function B(e,n,t){return ae(e,n,t)}r(B,"resolveHostedChatApiBaseUrl");function ae(e,n,t){let o=typeof process<"u"?process.env:{};return S(o.OPENPOND_OPCHAT_API_URL)??S(e?.chatApiBaseUrl??n.chatApiBaseUrl)??S(o.OPENPOND_CHAT_API_URL)??ie(t)}r(ae,"resolveOpChatApiBaseUrl");function S(e){let n=s(e);if(!n)return null;try{let t=new URL(n),o=t.pathname.split("/").filter(Boolean),a=o.findIndex(i=>i.toLowerCase()==="opchat");return a>=0?(t.pathname=`/${[...o.slice(0,a+1),"v1"].join("/")}`,t.search="",t.hash="",s(t.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(t.pathname="/opchat/v1",t.search="",t.hash="",s(t.toString())??null):(t.pathname=`${t.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),t.search="",t.hash="",s(t.toString())??null)}catch{return null}}r(S,"normalizeOpChatApiBaseUrl");function ie(e){return S(e)??se}r(ie,"opChatBaseFromPublicApiBase");function A(e){return e?.trim()?e.trim():"production"}r(A,"deriveEnvironment");function N(e,n=process.env){let t=[e?.apiKey,e?.session?.token,e?.token,n.OPENPOND_API_KEY];for(let o of t){let a=typeof o=="string"?o.trim():"";if(a)return a}return null}r(N,"accountToken");function y(e,n){return!!(e&&n&&e.toLowerCase()===n.toLowerCase())}r(y,"handleEquals");function w(e,n){return s(e)===s(n)}r(w,"baseUrlEquals");function M(e,n){return`${e?.trim().toLowerCase()||""}|${s(n)??"default"}`}r(M,"profileKey");function E(e){return s(e?.baseUrl)}r(E,"selectorBaseUrl");function x(e){let n=s(e.baseUrl);return n?{handle:e.handle,baseUrl:n}:{handle:e.handle}}r(x,"selectorFromAccount");function d(e){let n=typeof e?.handle=="string"?e.handle.trim():"";if(!n)return null;let t=s(e?.baseUrl);return t?{handle:n,baseUrl:t}:{handle:n}}r(d,"normalizeActiveProfile");function R(e,n){if(!y(e.handle,n.handle))return!1;let t=E(n);return t?w(e.baseUrl,t):!s(e.baseUrl)}r(R,"accountMatchesSelector");function $(e,n){if(!y(e.handle,n.handle))return!1;let t=E(n);return t?w(e.baseUrl,t):!s(e.baseUrl)}r($,"profileMatchesSelector");function J(e,n,t){let o=Array.isArray(e.accounts)?e.accounts:[],a=n||process.env.OPENPOND_ACCOUNT?d({handle:n||process.env.OPENPOND_ACCOUNT||"",baseUrl:t??process.env.OPENPOND_BASE_URL??null}):d(e.activeProfile);if(a){let l=o.find(u=>R(u,a));if(l)return l;let i=o.filter(u=>y(u.handle,a.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}r(J,"findActiveAccount");function V(e){let n=Array.isArray(e.accounts)?e.accounts:[],t=d(e.activeProfile)??(n[0]?x(n[0]):null);return j(n.map(o=>({handle:o.handle,baseUrl:s(o.baseUrl),apiBaseUrl:s(o.apiBaseUrl),chatApiBaseUrl:s(o.chatApiBaseUrl),environment:A(o.environment),isActive:t?R(o,t):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}r(V,"fallbackProfilesFromConfig");function j(e){let n=new Map;for(let t of e){let o=s(t.baseUrl),a=`${t.handle.toLowerCase()}|${o??"default"}`,l={...t,baseUrl:o,apiBaseUrl:s(t.apiBaseUrl),chatApiBaseUrl:s(t.chatApiBaseUrl),environment:A(t.environment),isActive:t.isActive},i=n.get(a);(!i||l.isActive&&!i.isActive||l.hasApiKey&&!i.hasApiKey)&&n.set(a,l)}return Array.from(n.values())}r(j,"normalizeProfiles");function W(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}r(W,"profileAuthHealth");function le(e,n){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||n,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}r(le,"normalizeHealth");function X(e){let n=e?.account;return n?{id:n.id??null,email:n.email??null,name:n.name??null,handle:n.handle??null,image:n.image??null,timezone:n.timezone??null,isAdmin:n.isAdmin??null,isVerified:n.isVerified??null,dailyAgentAppId:n.dailyAgentAppId??null,dailyAgentDeploymentId:n.dailyAgentDeploymentId??null,credits:n.credits??null}:null}r(X,"normalizeProfile");function ce(e){return(e??[]).map(n=>({...n,id:n.id||n.userProductId||n.openPondProductId||n.name,name:n.name,type:n.type,status:n.status,isActive:n.isActive??null,price:n.price??null,currency:n.currency??null,credits:n.credits??null}))}r(ce,"normalizeProducts");function ue(e){return e.handle.trim().toLowerCase()==="default"&&!s(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}r(ue,"isEmptyDefaultProfile");function de(e){let n=e?.trim();return n?n.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${n.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}r(de,"apiKeyHint");function pe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}r(pe,"apiKeyAccess");function _(e){let{config:n,profiles:t,account:o,token:a,apiBaseUrl:l,accountResponse:i,accountProfiles:u,health:P,authFailed:f,error:h}=e,k=B(o,n,l),m=X(i??null),Q=d(n.activeProfile),U=(o?x(o):null)??Q,O=m?.handle||o?.handle||U?.handle||null,I=(U?t.find(c=>$(c,U)):null)??t.find(c=>c.isActive)??null,Z=f?"auth_error":a?"signed_in":"signed_out",ee=m?.name||m?.handle||m?.email||O||"Signed out",ne=s(I?.baseUrl||o?.baseUrl||C),F=A(I?.environment||o?.environment),v=d(U)??(O?d({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),te=(t.length>0?t:O?[{handle:O,baseUrl:E(v)??s(o?.baseUrl),apiBaseUrl:l,chatApiBaseUrl:k,environment:F,isActive:!0,hasApiKey:!!a,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(c=>!ue(c));return{state:Z,activeProfile:v,label:ee,email:m?.email??null,avatarUrl:m?.image??null,environment:F,baseUrl:ne,apiBaseUrl:l,chatApiBaseUrl:k,creditsLabel:m?.credits??null,profile:m,products:ce(i?.products),apiHealth:le(P??null,l),accounts:te.map(c=>{let T=s(c.baseUrl),oe=n.accounts?.find(z=>y(z.handle,c.handle)&&w(z.baseUrl,T)),L=u?.[M(c.handle,T)]??null,b=X(L?.response??null);return{handle:c.handle,baseUrl:T,apiBaseUrl:s(c.apiBaseUrl),chatApiBaseUrl:s(c.chatApiBaseUrl),environment:A(c.environment),isActive:v?$(c,v):!1,authHealth:L?.authFailed?"auth_error":W(c),displayLabel:b?.name||b?.handle||b?.email||c.handle,email:b?.email??null,avatarUrl:b?.image??null,apiKeyHint:de(oe?.apiKey),apiKeyAccess:pe(L?.response??null)}}),error:h??P?.error??null}}r(_,"toAccountState");async function fe(e){try{return j(await q())}catch{return V(e)}}r(fe,"loadProfiles");async function p(e,n){let t=await K(),o=await fe(t),a=J(t,e,n),l=N(a),i=D(a,t),u=B(a,t,i);return{config:t,profiles:o,account:a,token:l,apiBaseUrl:i,chatApiBaseUrl:u,accountState:_({config:t,profiles:o,account:a,token:l,apiBaseUrl:i})}}r(p,"loadOpenPondAccountContext");import{spawn as me}from"node:child_process";function Y(e,n=process.platform){return n==="darwin"?{command:"open",args:[e]}:n==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}r(Y,"resolveSystemBrowserCommand");async function he(e,n={}){let t=n.command??Y(e),o=n.handoffTimeoutMs??1500;return new Promise(a=>{let l=!1,i=null,u=r(f=>{l||(l=!0,i&&clearTimeout(i),a(f))},"finish"),P=me(t.command,t.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});P.once("error",f=>{let h=f.code;u({opened:!1,error:h?`browser launcher ${t.command} failed (${h})`:`browser launcher ${t.command} failed`})}),P.once("close",(f,h)=>{if(f===0){u({opened:!0});return}let k=h?`signal ${h}`:`code ${f??"unknown"}`;u({opened:!1,error:`browser launcher ${t.command} exited with ${k}`})}),i=setTimeout(()=>{P.unref(),u({opened:!0})},o),i.unref()})}r(he,"openUrlWithSystemBrowser");export{p as a,he as b};
@@ -1,4 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as q}from"./chunk-FEAKTSRS.js";import{a as J,b as S}from"./chunk-R5GRESW3.js";import{$ as j,Z as $}from"./chunk-6I5AUTVO.js";import{aa as _,ja as H}from"./chunk-5ZNE43XC.js";import{yb as N}from"./chunk-QAFXQHHG.js";import{v as I}from"./chunk-ZY32SZ2P.js";import{n as k}from"./chunk-RCT3O3HQ.js";import{A as g}from"./chunk-X2J2P5ZT.js";import{a as o}from"./chunk-FTQLQJQV.js";import{randomUUID as O,createHash as W}from"node:crypto";import{mkdtemp as F,mkdir as G,writeFile as A,rm as U}from"node:fs/promises";import D from"node:os";import h from"node:path";var w=g.object({score:g.number().finite().min(0).max(1).nullable(),passed:g.boolean(),feedback:g.string().max(2e4),evidenceRefs:g.array(g.string().max(240)).max(1e3).default([])}).strict().refine(e=>e.score!==null||!e.passed,{message:"Unscorable verifiers cannot pass.",path:["passed"]});function L(e){if(e==="sandbox_process")throw new Error("verifier_sandbox_process_required")}o(L,"assertIsolatedVerifierRuntime");var ue=o(async e=>{let r=H(e.packageValue);if(e.grader.runtime!=="sandbox_process")throw new Error("Select the sandbox process runtime for a local file grader.");if(!r.taskset.graders.some(s=>k(s)===k(e.grader)))throw new Error("The private grader differs from its package.");if(!r.taskset.tasks.some(s=>k(s)===k(e.task)))throw new Error("The private case differs from its package.");await e.authorize(),e.signal?.throwIfAborted();let t=await F(h.join(D.tmpdir(),"profile-private-grade-")),c=O();try{let s=new Map;for(let a of r.files.filter(f=>f.asset.visibility!=="policy")){let f=a.asset.path;if(h.isAbsolute(f)||f.split(/[\\/]/).some(n=>!n||n==="."||n===".."))throw new Error("Private grader asset path invalid.");let l=s.get(f);if(l){if(l.contentHash!==a.asset.contentHash||l.sizeBytes!==a.asset.sizeBytes)throw new Error("Private grader assets declare conflicting bytes at the same path.");continue}s.set(f,{contentHash:a.asset.contentHash,sizeBytes:a.asset.sizeBytes});let x=h.join(t,"package",f);await G(h.dirname(x),{recursive:!0,mode:448}),await A(x,_(a),{mode:256})}await A(h.join(t,"request.json"),JSON.stringify({task:e.task,attempt:e.evidence,input:e.task.input,output:e.evidence.output,artifacts:"artifacts"in e.evidence?e.evidence.artifacts:[],expectedOutput:e.task.expectedOutput}),{mode:256});let i=`import fs from 'node:fs/promises'; const module=await import(${JSON.stringify("./package/"+e.grader.verifierRef.path)}); const result=await module[${JSON.stringify(e.grader.exportName??"verify")}](JSON.parse(await fs.readFile('request.json','utf8'))); console.log(JSON.stringify(result));`;await A(h.join(t,"runner.mjs"),i,{mode:256});let m=await q({authorize:o(async()=>(await e.authorize(),e.signal?.throwIfAborted(),{candidateId:c,candidateRevision:1,ownerId:c,sessionId:c,turnId:c,sourceRoot:t,writablePaths:[]}),"authorize")})({candidateId:c,sessionId:c,turnId:c,expectedRevision:1,command:"/runtime/node --max-old-space-size=512 runner.mjs",timeoutMs:e.grader.timeoutMs,maxOutputBytes:7e4,signal:e.signal});if(await e.authorize(),e.signal?.throwIfAborted(),m.code!==0||m.timedOut||m.stdoutTruncated||m.stderrTruncated)throw new Error("Private grading sandbox did not complete.");return w.parse(JSON.parse(m.stdout))}finally{await U(t,{recursive:!0,force:!0})}},"executeLocalProfileVerifier");function pe(e){return async r=>{if(!r.manifest)throw new Error("The hosted grader requires its admitted manifest.");await r.authorize(),r.signal?.throwIfAborted();let t="artifacts"in r.evidence&&Array.isArray(r.evidence.artifacts)?r.evidence.artifacts.map(({reference:a,title:f,contentType:l})=>({reference:a,title:f,contentType:l})):[],c="caseOwner"in r.evidence?r.evidence.caseOwner:null;if(!c?.sessionId||!c.turnId)throw new Error("The private grader has no sealed case owner.");let s=Buffer.from(JSON.stringify({manifest:r.manifest,packageValue:r.packageValue,graderId:r.grader.id,taskId:r.task.id,evidence:{...r.evidence,artifacts:t}}));if(s.length>2e7)throw new Error("The private grading package exceeds its transport limit.");let i={callId:O(),sessionId:c.sessionId,turnId:c.turnId,sha256:W("sha256").update(s).digest("hex"),sizeBytes:s.length,timeoutMs:r.grader.timeoutMs},d=o((a,f=12e4)=>e.request(j.parse({contractVersion:$,requestId:O(),operation:"profile-evaluations/grade",params:a}),f),"request");for(let a=0;a<s.length;a+=98304)await r.authorize(),r.signal?.throwIfAborted(),await d({...i,action:"upload",offset:a,contentsBase64:s.subarray(a,a+98304).toString("base64")});let m=await d({...i,action:"execute"},r.grader.timeoutMs+12e4);return await r.authorize(),r.signal?.throwIfAborted(),w.parse(m)}}o(pe,"createHostedProfileVerifier");import{Worker as K}from"node:worker_threads";async function b(e){e.signal?.throwIfAborted(),S(e);let{javascriptVerifierWorkerSource:r}=await import("./javascript-verifier-worker-source-LGRP74W4.js");e.signal?.throwIfAborted();let t=e.signal,c={source:e.source,exportName:e.exportName,value:e.value,timeoutMs:e.timeoutMs,maxResultBytes:e.maxResultBytes,deterministic:e.deterministic===!0,errorPrefix:e.errorPrefix},s=o(i=>new Error(`${e.errorPrefix}_${i}`),"error");return new Promise((i,d)=>{let m=new K(r,{eval:!0,workerData:c,execArgv:[],env:{},resourceLimits:{maxOldGenerationSizeMb:64,maxYoungGenerationSizeMb:16,stackSizeMb:4}}),a=!1,f=o(n=>{a||(a=!0,clearTimeout(x),t?.removeEventListener("abort",l),m.terminate().then(()=>{"error"in n?d(n.error):i(n.result)},d))},"finish"),l=o(()=>f({error:t?.reason instanceof Error?t.reason:s("cancelled")}),"cancel"),x=setTimeout(()=>f({error:s("timeout")}),e.timeoutMs);t?.addEventListener("abort",l,{once:!0}),m.once("error",n=>f({error:n})),m.once("exit",()=>{a||f({error:s("worker_exited_without_result")})}),m.once("message",n=>{try{if(!n||typeof n!="object"||!("ok"in n))throw s("worker_invalid_response");if(n.ok!==!0)throw new Error("error"in n&&typeof n.error=="string"?n.error:`${e.errorPrefix}_execution_failed`);if(!("result"in n))throw s("worker_invalid_response");I(n.result,e.maxResultBytes),f({result:n.result})}catch(y){f({error:y instanceof Error?y:s("worker_invalid_response")})}}),t?.aborted&&l()})}o(b,"executeJavaScriptIsolateInWorker");import{spawn as Y}from"node:child_process";var B=class extends Error{static{o(this,"JavaScriptVerifierHostTimeoutError")}timeoutMs;elapsedMs;constructor(r,t){super("verifier_timeout"),this.timeoutMs=r,this.elapsedMs=t,this.name="JavaScriptVerifierHostTimeoutError"}};async function be(e){e.signal?.throwIfAborted(),S(e);let{javascriptIsolateProcessSource:r}=await import("./javascript-isolate-process-source-YAT3GPW4.js");e.signal?.throwIfAborted();let{signal:t,stripTypeScript:c,...s}=e,i=o(m=>new Error(`${e.errorPrefix}_${m}`),"error"),d=`globalThis.__openpondIsolateInput = JSON.parse(${JSON.stringify(JSON.stringify(s))});
3
- ${c?`globalThis.__openpondIsolateInput.source = require("node:module").stripTypeScriptTypes(globalThis.__openpondIsolateInput.source, { mode: "strip" });
4
- `:""}${r}`;return new Promise((m,a)=>{let f=performance.now(),l=Y("node",["--max-old-space-size=64","--input-type=commonjs","-"],{stdio:["pipe","pipe","pipe","ipc"],env:{PATH:process.env.PATH},windowsHide:!0}),x,n="",y=0,M=0,v=o(u=>{x??=u,l.kill("SIGKILL")},"stop"),T=o(()=>v(t?.reason instanceof Error?t.reason:i("cancelled")),"cancel"),P=e.errorPrefix==="verifier",R=!P,V=o(()=>v(e.errorPrefix==="candidate"?new J("candidate_timeout"):e.errorPrefix==="verifier"?new B(e.timeoutMs,performance.now()-f):i("timeout")),"timedOut"),E=setTimeout(V,P?3e4:e.timeoutMs);l.on("message",u=>{if(!P||R||!u||typeof u!="object"||!("type"in u)||u.type!=="execution_ready"){v(i("process_invalid_startup_message"));return}R=!0,clearTimeout(E),E=setTimeout(V,e.timeoutMs)}),t?.addEventListener("abort",T,{once:!0}),l.stdout.setEncoding("utf8"),l.stdout.on("data",u=>{y+=Buffer.byteLength(u),y>e.maxResultBytes+65536?v(i("process_response_too_large")):n+=u}),l.stderr.on("data",u=>{M+=u.byteLength,M>65536&&v(i("process_stderr_too_large"))}),l.once("error",u=>{x??=u}),l.stdin.on("error",u=>v(u)),l.once("close",u=>{if(clearTimeout(E),t?.removeEventListener("abort",T),x){a(x);return}try{if(u!==0)throw i("process_exited_without_result");if(!R)throw i("process_exited_before_ready");let p=JSON.parse(n);if(!p||typeof p!="object"||!("ok"in p))throw i("process_invalid_response");if(p.ok!==!0){let z="error"in p&&typeof p.error=="string"?p.error:`${e.errorPrefix}_execution_failed`;throw"executionError"in p&&p.executionError===!0?new J(z):new Error(z)}if(!("result"in p))throw i("process_invalid_response");I(p.result,e.maxResultBytes),m(p.result)}catch(p){a(p instanceof Error?p:i("process_invalid_response"))}}),l.stdin.end(d),t?.aborted&&T()})}o(be,"executeJavaScriptIsolateInProcess");async function Je(e){return L(e.runtime),w.parse(await b({...e,exportName:e.exportName??"verify",maxResultBytes:65536,errorPrefix:"verifier"}))}o(Je,"executeJavaScriptVerifierInWorker");function Ne(e){return N(e,C)}o(Ne,"aggregateTasksetEvaluationInWorker");var C=o(async({source:e,module:r,exportName:t,scores:c,timeoutMs:s,signal:i})=>{let d=/\.[cm]?ts$/.test(r)?(await import("node:module")).stripTypeScriptTypes(e,{mode:"strip"}):e;return b({source:d,exportName:t,value:c,timeoutMs:s,signal:i,maxResultBytes:1024,deterministic:!0,errorPrefix:"metric"})},"executeMetric");var He=C;import Q from"node:path";function We(e,r){let t=g.array(g.string().min(1).max(240)).max(16).parse(r.metadata.artifactAssetIds??[]);if(new Set(t).size!==t.length)throw new Error("An artifact fixture contains duplicate assets.");let c=0;return t.map(s=>{let i=e.files.filter(a=>a.asset.id===s),d=i[0];if(i.length!==1||!d||d.asset.visibility!=="host_private")throw new Error("Artifact fixtures require a unique private package asset.");let m=_(d);if((c+=m.length)>2e7)throw new Error("Artifact fixtures exceed their aggregate byte limit.");return{reference:{id:`fixture/${r.id}/${d.asset.path}`,contentHash:d.asset.contentHash,mediaType:d.asset.mediaType,sizeBytes:d.asset.sizeBytes},title:Q.posix.basename(d.asset.path),contentType:d.asset.mediaType,base64:Buffer.from(m).toString("base64")}})}o(We,"localGraderFixtureArtifacts");export{ue as a,pe as b,b as c,be as d,Je as e,We as f,Ne as g,He as h};