openpond 0.2.67 → 0.2.69

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 (573) 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-V3KLSNKS.js +12 -0
  4. package/dist/chunks/{acp-NASAJV5E.js → acp-ER6CUXG2.js} +1 -1
  5. package/dist/chunks/{acp-agent-C3CRF6DT.js → acp-agent-AYJ5RPVF.js} +1 -1
  6. package/dist/chunks/actions-command-BBUS3HDK.js +2 -0
  7. package/dist/chunks/{app-layer-XIEZ6ALX.js → app-layer-JCEWGUDH.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-IB6M35NS.js → app-server-connected-apps-ILXBFD3S.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-43MCH5SY.js +2 -0
  12. package/dist/chunks/apps-VNFGMQFG.js +2 -0
  13. package/dist/chunks/{chunk-W3ZILZUL.js → chunk-22RLEU3Q.js} +1 -1
  14. package/dist/chunks/chunk-2PXKSAG6.js +2 -0
  15. package/dist/chunks/{chunk-XEU4J4GJ.js → chunk-2TGHZXJE.js} +2 -2
  16. package/dist/chunks/{chunk-AXO6OHJB.js → chunk-3A2Y7UK3.js} +1 -1
  17. package/dist/chunks/chunk-3Z4VM2LF.js +4 -0
  18. package/dist/chunks/{chunk-V3T2OJBZ.js → chunk-4BUM6JEC.js} +2 -2
  19. package/dist/chunks/chunk-4G3GTEVS.js +23 -0
  20. package/dist/chunks/{chunk-43QYVOYA.js → chunk-4KNPCJR4.js} +1 -1
  21. package/dist/chunks/chunk-4KTGYHCE.js +2 -0
  22. package/dist/chunks/chunk-4PUOWSDE.js +13 -0
  23. package/dist/chunks/chunk-55YD4UTW.js +2 -0
  24. package/dist/chunks/chunk-5G7BQAUA.js +2 -0
  25. package/dist/chunks/chunk-65FJWWXG.js +2 -0
  26. package/dist/chunks/{chunk-4EZI4KCT.js → chunk-65WRWLUD.js} +1 -1
  27. package/dist/chunks/chunk-6D3FI2XT.js +2 -0
  28. package/dist/chunks/chunk-7EQLW2KM.js +12 -0
  29. package/dist/chunks/{chunk-5TPYBXWM.js → chunk-7NCM6GBN.js} +1 -1
  30. package/dist/chunks/chunk-7OFD6TFD.js +2 -0
  31. package/dist/chunks/chunk-7OKZCJHS.js +3 -0
  32. package/dist/chunks/{chunk-ADOCQA4D.js → chunk-7PKDJHT6.js} +1 -1
  33. package/dist/chunks/chunk-7RJOCGQ6.js +2 -0
  34. package/dist/chunks/{chunk-YR5URT73.js → chunk-7RSQOC5M.js} +3 -3
  35. package/dist/chunks/{chunk-FVK4W27G.js → chunk-AFH462DO.js} +1 -1
  36. package/dist/chunks/{chunk-GUG2SWRZ.js → chunk-AFKFN25T.js} +1 -1
  37. package/dist/chunks/chunk-AFYYIJ6K.js +2 -0
  38. package/dist/chunks/{chunk-U3MVH2YT.js → chunk-APKXXAUF.js} +1 -1
  39. package/dist/chunks/chunk-AQUZCWM3.js +2 -0
  40. package/dist/chunks/chunk-AUO5DCEU.js +2 -0
  41. package/dist/chunks/chunk-AYOMVI7J.js +2 -0
  42. package/dist/chunks/{chunk-RWRKUO5D.js → chunk-B66QCXH2.js} +1 -1
  43. package/dist/chunks/chunk-BDZDWHBJ.js +6 -0
  44. package/dist/chunks/chunk-BU6MW65V.js +10 -0
  45. package/dist/chunks/{chunk-P6NQYXN6.js → chunk-CCZ276IA.js} +1 -1
  46. package/dist/chunks/{chunk-YONDU5TN.js → chunk-CIZI6Z7D.js} +1 -1
  47. package/dist/chunks/{chunk-ATFV2NA4.js → chunk-CO23RRN7.js} +1 -1
  48. package/dist/chunks/{chunk-QAFXQHHG.js → chunk-D6L6UNUQ.js} +2 -2
  49. package/dist/chunks/chunk-DDOIPTOM.js +2 -0
  50. package/dist/chunks/{chunk-CSU7RDA5.js → chunk-DKOVZ6R2.js} +3 -3
  51. package/dist/chunks/chunk-DRLP7GIU.js +2 -0
  52. package/dist/chunks/{chunk-XDFXKRTI.js → chunk-DWF3FCY4.js} +1 -1
  53. package/dist/chunks/chunk-DXJC3QW7.js +2 -0
  54. package/dist/chunks/{chunk-IDILAYCW.js → chunk-E2JB5OCO.js} +1 -1
  55. package/dist/chunks/{chunk-GI7LTJV3.js → chunk-EDYCSW22.js} +1 -1
  56. package/dist/chunks/{chunk-4JYTFEND.js → chunk-EFP75UEX.js} +1 -1
  57. package/dist/chunks/{chunk-CX7HKSQ4.js → chunk-EGP6DF34.js} +2 -2
  58. package/dist/chunks/{chunk-D5OFN47Z.js → chunk-ESYPMD7Q.js} +1 -1
  59. package/dist/chunks/{chunk-36FNNR5N.js → chunk-EWDDDHJN.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-WD6ANOLL.js → chunk-FNGZ4UDZ.js} +1 -1
  63. package/dist/chunks/{chunk-YKTJPCYZ.js → chunk-G4FRBT7G.js} +4 -4
  64. package/dist/chunks/{chunk-JFZ6USNQ.js → chunk-G7X73SBG.js} +1 -1
  65. package/dist/chunks/{chunk-ULJZ7NUF.js → chunk-GY7YSD6J.js} +1 -1
  66. package/dist/chunks/{chunk-CWAQOFLP.js → chunk-GYYJ47GX.js} +1 -1
  67. package/dist/chunks/chunk-HG2YFMVU.js +4 -0
  68. package/dist/chunks/{chunk-YQBL5P6R.js → chunk-HKVFU3B3.js} +1 -1
  69. package/dist/chunks/{chunk-VEXJV5H5.js → chunk-IIT66347.js} +4 -4
  70. package/dist/chunks/{chunk-B2K5WQZE.js → chunk-IO5DZUKL.js} +1 -1
  71. package/dist/chunks/chunk-J256AEEE.js +2 -0
  72. package/dist/chunks/{chunk-CRDKBFRN.js → chunk-JEMECEQH.js} +1 -1
  73. package/dist/chunks/{chunk-YMCF5GR2.js → chunk-JQOVC35K.js} +1 -1
  74. package/dist/chunks/{chunk-6LFTQBXP.js → chunk-JT5YQ52I.js} +1 -1
  75. package/dist/chunks/chunk-JVMSN7LH.js +2 -0
  76. package/dist/chunks/{chunk-HORMGT2Q.js → chunk-JXYJQT5Q.js} +1 -1
  77. package/dist/chunks/{chunk-WDKZMXIU.js → chunk-K7KBFM2T.js} +1 -1
  78. package/dist/chunks/{chunk-UBTP3QWI.js → chunk-KCLMA2IH.js} +1 -1
  79. package/dist/chunks/chunk-KDER7R45.js +2 -0
  80. package/dist/chunks/{chunk-R6MMWEH4.js → chunk-KP2MYTP5.js} +1 -1
  81. package/dist/chunks/{chunk-TV2LE2BD.js → chunk-KU4TPDPH.js} +2 -2
  82. package/dist/chunks/{chunk-WJSJXK2N.js → chunk-KUE46HTH.js} +1 -1
  83. package/dist/chunks/chunk-LSKMALD6.js +161 -0
  84. package/dist/chunks/chunk-LVXL7T5O.js +2 -0
  85. package/dist/chunks/{chunk-TSQ2I6XV.js → chunk-M4A7G4S5.js} +2 -2
  86. package/dist/chunks/{chunk-MX7KV5DA.js → chunk-M4ZHFDRJ.js} +1 -1
  87. package/dist/chunks/chunk-M5X7XKXY.js +12 -0
  88. package/dist/chunks/{chunk-XT5WUQGT.js → chunk-MIFVX5PK.js} +1 -1
  89. package/dist/chunks/{chunk-4VZJQRQI.js → chunk-MOXIGLN2.js} +1 -1
  90. package/dist/chunks/{chunk-UKSSFB4Q.js → chunk-N5EAVX4G.js} +1 -1
  91. package/dist/chunks/{chunk-4B7EGNYX.js → chunk-NMMHXYDJ.js} +1 -1
  92. package/dist/chunks/{chunk-EBOTNBUS.js → chunk-NRYC4NH6.js} +1 -1
  93. package/dist/chunks/chunk-NSSZ2ZIU.js +2 -0
  94. package/dist/chunks/chunk-NW6WGGSL.js +2 -0
  95. package/dist/chunks/{chunk-7P5SH3CI.js → chunk-NZDLL6JN.js} +1 -1
  96. package/dist/chunks/{chunk-4TTXNVCE.js → chunk-OFJPOTES.js} +1 -1
  97. package/dist/chunks/chunk-OUJ63LMU.js +2 -0
  98. package/dist/chunks/{chunk-SD2XDZQW.js → chunk-P4QM63L3.js} +1 -1
  99. package/dist/chunks/chunk-PACLKDTN.js +2 -0
  100. package/dist/chunks/{chunk-VPAEFG7X.js → chunk-PAYFJHPO.js} +1 -1
  101. package/dist/chunks/{chunk-OPTJYDZN.js → chunk-PHZZBXDO.js} +1 -1
  102. package/dist/chunks/{chunk-HPTEJBP4.js → chunk-PKJHN666.js} +1 -1
  103. package/dist/chunks/{chunk-HNDAGZCF.js → chunk-PLROXHG2.js} +1 -1
  104. package/dist/chunks/{chunk-UNE52L3Y.js → chunk-PNPV2LDE.js} +1 -1
  105. package/dist/chunks/{chunk-2RSGVLZT.js → chunk-PSY6IRJE.js} +8 -8
  106. package/dist/chunks/{chunk-SVNEPXU3.js → chunk-Q73RKX7I.js} +1 -1
  107. package/dist/chunks/{chunk-IF5A3XWP.js → chunk-Q7FBVLLB.js} +1 -1
  108. package/dist/chunks/{chunk-V5AOM5MZ.js → chunk-Q7P34B2O.js} +1 -1
  109. package/dist/chunks/{chunk-375PADDM.js → chunk-QLGP2OAQ.js} +1 -1
  110. package/dist/chunks/{chunk-QQLS5FB7.js → chunk-QUNQM2E3.js} +1 -1
  111. package/dist/chunks/chunk-R2FYCJL6.js +2 -0
  112. package/dist/chunks/{chunk-6HQUIKC5.js → chunk-R4EEGWXB.js} +1 -1
  113. package/dist/chunks/chunk-R6I623SZ.js +11 -0
  114. package/dist/chunks/chunk-RCQYEHHD.js +2 -0
  115. package/dist/chunks/{chunk-26ID6A5C.js → chunk-RCRZXHAI.js} +1 -1
  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-SODAOLAP.js → chunk-TB5P3FWM.js} +1 -1
  124. package/dist/chunks/{chunk-BJXPQIVD.js → chunk-U7D6Q744.js} +1 -1
  125. package/dist/chunks/chunk-U7X5ZLAL.js +2 -0
  126. package/dist/chunks/{chunk-N54CPLVD.js → chunk-UANH7U3Y.js} +1 -1
  127. package/dist/chunks/{chunk-BUZ7CBJC.js → chunk-UGFSAG4U.js} +1 -1
  128. package/dist/chunks/chunk-ULTV6INR.js +2 -0
  129. package/dist/chunks/{chunk-V3ILZQER.js → chunk-UMAVVMXL.js} +7 -7
  130. package/dist/chunks/chunk-V24VHT76.js +2 -0
  131. package/dist/chunks/chunk-VEBW7NKD.js +2 -0
  132. package/dist/chunks/chunk-VJR2GNRY.js +2 -0
  133. package/dist/chunks/{chunk-JD76ANPN.js → chunk-VJYOKU3C.js} +1 -1
  134. package/dist/chunks/{chunk-H2XG5N7D.js → chunk-VWWKWYSQ.js} +1 -1
  135. package/dist/chunks/chunk-WCNPGKST.js +2 -0
  136. package/dist/chunks/chunk-WD4KAKEX.js +2 -0
  137. package/dist/chunks/chunk-WGQ3FMRF.js +2 -0
  138. package/dist/chunks/{chunk-6C3CXME7.js → chunk-WNXUSELC.js} +1 -1
  139. package/dist/chunks/{chunk-RS526BG7.js → chunk-WZ35ICTE.js} +3 -3
  140. package/dist/chunks/chunk-XHACK2KR.js +2 -0
  141. package/dist/chunks/chunk-XOPHFUUY.js +2 -0
  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-Z5CQXPIS.js +6 -0
  152. package/dist/chunks/{chunk-OY4B7Y3T.js → chunk-ZDEIVUUI.js} +1 -1
  153. package/dist/chunks/{chunk-XGJG2ZKE.js → chunk-ZIQJDTQB.js} +1 -1
  154. package/dist/chunks/{chunk-IR2Y2VQY.js → chunk-ZYLLPRPU.js} +1 -1
  155. package/dist/chunks/cli-R7TAP6Z2.js +2 -0
  156. package/dist/chunks/{command-NWOZXU57.js → command-LNOVZQSK.js} +3 -3
  157. package/dist/chunks/{configuration-command-ZEIBQKB3.js → configuration-command-C3QBDFND.js} +1 -1
  158. package/dist/chunks/connected-app-executor-LAEAQUJS.js +2 -0
  159. package/dist/chunks/connected-evidence-VKY6O2JW.js +2 -0
  160. package/dist/chunks/{connected-starting-assets-66Y46ZPM.js → connected-starting-assets-5LAJ7CZY.js} +1 -1
  161. package/dist/chunks/{connection-GDWPMHPC.js → connection-VMBXW5PD.js} +1 -1
  162. package/dist/chunks/{continual-TNPTWTKK.js → continual-FVOLGGOE.js} +1 -1
  163. package/dist/chunks/core-commands-5TNBVR72.js +2 -0
  164. package/dist/chunks/dataset-preparation-authoring-UUYFWWCT.js +4 -0
  165. package/dist/chunks/datasets-BIDZJYDC.js +2 -0
  166. package/dist/chunks/desktop-test-BY2MS3UL.js +3 -0
  167. package/dist/chunks/dist-2MKJC6HN.js +2 -0
  168. package/dist/chunks/{dist-GR56E3QK.js → dist-DKE7RJZN.js} +1 -1
  169. package/dist/chunks/evaluation-coordination-FXB4DXZA.js +2 -0
  170. package/dist/chunks/experiment-improvements-JPDLKZXD.js +2 -0
  171. package/dist/chunks/experiments-IEN7RXLX.js +2 -0
  172. package/dist/chunks/experiments-signal-L32D36NH.js +2 -0
  173. package/dist/chunks/{extension-UH34ZF7N.js → extension-3EKIT6BB.js} +1 -1
  174. package/dist/chunks/{help-O53DTZGN.js → help-PLQJOP4P.js} +1 -1
  175. package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +2 -0
  176. package/dist/chunks/host-profile-external-dataset-KSEPXY2S.js +2 -0
  177. package/dist/chunks/hosted-app-server-composition-GZES7QXJ.js +2 -0
  178. package/dist/chunks/hosted-experiment-improvement-VG2WE7XZ.js +3 -0
  179. package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +2 -0
  180. package/dist/chunks/hosted-profile-candidate-PTGQLPZO.js +3 -0
  181. package/dist/chunks/hosted-profile-compiler-FS5R6CHJ.js +2 -0
  182. package/dist/chunks/hosted-profile-evaluation-control-UUEZEMXU.js +2 -0
  183. package/dist/chunks/hosted-profile-evaluation-inspection-4F7OEF4T.js +3 -0
  184. package/dist/chunks/hosted-profile-evaluation-preparation-LIJJZDHQ.js +3 -0
  185. package/dist/chunks/hosted-tasksets-V24IBVJX.js +2 -0
  186. package/dist/chunks/human-review-6V6EMNVN.js +2 -0
  187. package/dist/chunks/{import-OBAKUJPM.js → import-SI24Z7EF.js} +2 -2
  188. package/dist/chunks/{learning-CRR6NRPN.js → learning-LAXMGWSQ.js} +1 -1
  189. package/dist/chunks/learning-Y3UKNUGE.js +2 -0
  190. package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +2 -0
  191. package/dist/chunks/local-harness-taskset-review-XQHQ6JCR.js +2 -0
  192. package/dist/chunks/{model-projects-HP4DELCP.js → model-projects-6YWVD2TS.js} +1 -1
  193. package/dist/chunks/opchat-SV67HVMX.js +3 -0
  194. package/dist/chunks/opchat-bounded-chat-KLMIYSZZ.js +2 -0
  195. package/dist/chunks/organizations-OZZFX7RG.js +2 -0
  196. package/dist/chunks/{profile-3WZJ65CT.js → profile-TD5U3INY.js} +1 -1
  197. package/dist/chunks/project-action-payload-TK6G4VMC.js +2 -0
  198. package/dist/chunks/project-agent-FFXPNXCO.js +2 -0
  199. package/dist/chunks/published-experiment-source-SDXUVPE7.js +2 -0
  200. package/dist/chunks/refiner-profile-service-56VYLZQJ.js +2 -0
  201. package/dist/chunks/{runtime-XP4DEGR3.js → runtime-Q7JUJO4D.js} +2 -2
  202. package/dist/chunks/sandbox-command-4BCUDAED.js +2 -0
  203. package/dist/chunks/{sandbox-template-YFMHEMUQ.js → sandbox-template-GOY7QQUY.js} +1 -1
  204. package/dist/chunks/saved-work-M6PUHKCC.js +2 -0
  205. package/dist/chunks/{send-turn-D3GTSSHI.js → send-turn-YLY3YNEQ.js} +1 -1
  206. package/dist/chunks/setup-RMZ2BHLM.js +2 -0
  207. package/dist/chunks/{src-GQPWOPYA.js → src-C3ZUESMK.js} +1 -1
  208. package/dist/chunks/src-MT4B43TD.js +424 -0
  209. package/dist/chunks/standalone-experiment-turn-owner-TW5MTWIO.js +2 -0
  210. package/dist/chunks/store-chat-resources-IRHBW2EC.js +2 -0
  211. package/dist/chunks/{store-continual-support-reviews-VVRQO2JK.js → store-continual-support-reviews-3KK42L4I.js} +1 -1
  212. package/dist/chunks/store-conversation-serving-IVURK52V.js +2 -0
  213. package/dist/chunks/{store-create-improve-2XI36AET.js → store-create-improve-UTCLBXF2.js} +1 -1
  214. package/dist/chunks/{store-datasets-UFY422NG.js → store-datasets-4AQOVAQY.js} +1 -1
  215. package/dist/chunks/store-evaluation-results-PK2P3IMH.js +7 -0
  216. package/dist/chunks/{store-harness-workspaces-SGUEYDO2.js → store-harness-workspaces-YEXB4IRV.js} +1 -1
  217. package/dist/chunks/store-human-review-O4BVHP25.js +7 -0
  218. package/dist/chunks/store-learned-preference-migration-validation-44SVX6YB.js +2 -0
  219. package/dist/chunks/{store-learning-BFOT4QVT.js → store-learning-SIUQIY5C.js} +1 -1
  220. package/dist/chunks/{store-learning-credentials-DYTMWQTC.js → store-learning-credentials-BUHR7SN6.js} +1 -1
  221. package/dist/chunks/store-local-experiments-BHVTKPPE.js +97 -0
  222. package/dist/chunks/store-model-batch-review-RVAYUVK2.js +2 -0
  223. package/dist/chunks/{store-model-configuration-NJFWSYSA.js → store-model-configuration-6L3OYXF4.js} +1 -1
  224. package/dist/chunks/store-model-project-preparation-AAEKCF6V.js +2 -0
  225. package/dist/chunks/store-modification-recordings-LCPK6K2T.js +9 -0
  226. package/dist/chunks/{store-preference-comparison-MZAYONCK.js → store-preference-comparison-5YVIQNVB.js} +1 -1
  227. package/dist/chunks/{store-sidebar-file-bookmarks-J3JEVAYR.js → store-sidebar-file-bookmarks-WLMYDA4E.js} +1 -1
  228. package/dist/chunks/{store-sidebar-preferences-2JHTFXJK.js → store-sidebar-preferences-AFMYIDWT.js} +1 -1
  229. package/dist/chunks/{store-subagents-PUBQVWSU.js → store-subagents-KFPVSTRO.js} +1 -1
  230. package/dist/chunks/{store-task-inbox-3BREANOX.js → store-task-inbox-L6IQTY26.js} +1 -1
  231. package/dist/chunks/{store-task-inventory-5HRZCDUT.js → store-task-inventory-QWS2C656.js} +1 -1
  232. package/dist/chunks/store-taskset-drafts-FRFL6ITK.js +9 -0
  233. package/dist/chunks/{store-training-S3FXWLT6.js → store-training-FYXZU2FE.js} +1 -1
  234. package/dist/chunks/{store-training-jobs-2LCXPA7G.js → store-training-jobs-3N3VKPIY.js} +1 -1
  235. package/dist/chunks/{store-training-models-7AMKS7ZW.js → store-training-models-VOFVGPZR.js} +1 -1
  236. package/dist/chunks/{taskset-PLKWRT4X.js → taskset-UDDLFYKV.js} +1 -1
  237. package/dist/chunks/taskset-catalog-RZYEBCRQ.js +2 -0
  238. package/dist/chunks/taskset-packages-T6B6HYKZ.js +2 -0
  239. package/dist/chunks/taskset-packages-WMG5DUBN.js +2 -0
  240. package/dist/chunks/{teams-bot-VQXUA7U4.js → teams-bot-YCUTDDDC.js} +1 -1
  241. package/dist/chunks/tool-learning-ZQ6NSJ5K.js +2 -0
  242. package/dist/chunks/training-5NT2YB2L.js +2 -0
  243. package/dist/chunks/training-5UMT45UL.js +2 -0
  244. package/dist/chunks/training-UY6KRG4M.js +2 -0
  245. package/dist/chunks/{training-error-LQKCOQDJ.js → training-error-WF463UNZ.js} +1 -1
  246. package/dist/chunks/{training-hardware-ESXRWUIK.js → training-hardware-UWQCRDMV.js} +1 -1
  247. package/dist/chunks/training-hosted-CKSDRVL6.js +2 -0
  248. package/dist/chunks/training-hosted-alphaedit-HSMRDJTD.js +2 -0
  249. package/dist/chunks/training-hosted-decision-7JALOU6O.js +2 -0
  250. package/dist/chunks/training-hosted-engram-SXO75MFG.js +2 -0
  251. package/dist/chunks/{training-hosted-learning-WQ2IP5FP.js → training-hosted-learning-E2N32YU5.js} +1 -1
  252. package/dist/chunks/training-hosted-modification-comparison-TXFDJFTG.js +2 -0
  253. package/dist/chunks/training-hosted-neuron-training-J42WK4EH.js +2 -0
  254. package/dist/chunks/training-hosted-serving-report-BAEABGJH.js +2 -0
  255. package/dist/chunks/training-hosted-steering-T556BUBG.js +2 -0
  256. package/dist/chunks/training-model-start-P3PXDWNT.js +2 -0
  257. package/dist/chunks/web-search-ZEKJHZW4.js +2 -0
  258. package/dist/chunks/{workspaces-MCS2AQX6.js → workspaces-EK62ANTB.js} +1 -1
  259. package/dist/cli.js +1 -1
  260. package/dist/index.js +1 -1
  261. package/dist/sandbox/runtime-handle.d.ts +3 -5
  262. package/dist/sandbox/sandbox-instance-client.d.ts +11 -5
  263. package/dist/sandbox/types/billing.d.ts +140 -6
  264. package/dist/sandbox/types/io.d.ts +3 -0
  265. package/dist/sandbox/types/responses.d.ts +11 -1
  266. package/dist/sandbox/types/snapshots.d.ts +52 -3
  267. package/dist/sandbox-template/manifest.js +1 -1
  268. package/dist/skills/manifest.json +3 -3
  269. package/dist/skills/openpond-cli/references/experiments-and-training.md +461 -1
  270. package/dist/web/assets/App-CCuh99JW.js +54 -0
  271. package/dist/web/assets/{AppDialog-BvskhHE9.js → AppDialog-CxjDHVk9.js} +1 -1
  272. package/dist/web/assets/AppTerminalPanel-CKJIVpKa.js +2 -0
  273. package/dist/web/assets/{AppToastContext-D2788RqX.js → AppToastContext-EpiT1dHs.js} +1 -1
  274. package/dist/web/assets/AppsView-BsMyPX_3.js +1 -0
  275. package/dist/web/assets/{AttachmentTypeIcon-DVluUHuc.js → AttachmentTypeIcon-BXvZy5gB.js} +1 -1
  276. package/dist/web/assets/BrowserSidebar-BIIV4aq4.js +1 -0
  277. package/dist/web/assets/{CartesianChart-DdBZ69lI.js → CartesianChart-brqLBqnF.js} +1 -1
  278. package/dist/web/assets/ChatTimelineEntry-CwZbn16X.js +8 -0
  279. package/dist/web/assets/{CollaborationTabs-ba6WupeJ.js → CollaborationTabs-BU4uc4tZ.js} +1 -1
  280. package/dist/web/assets/{CommandMenu-D7wTaEgl.js → CommandMenu-DkWpXR55.js} +1 -1
  281. package/dist/web/assets/CommunityView-CsSxJZGn.js +1 -0
  282. package/dist/web/assets/{ComposerAttachments-aO90qXYz.js → ComposerAttachments-BdJGCYzI.js} +1 -1
  283. package/dist/web/assets/{ComposerCreateImproveStrip-BPUJBSyS.js → ComposerCreateImproveStrip-CWy0j1vv.js} +1 -1
  284. package/dist/web/assets/{ConversationImportsSettings-Bo836wKJ.js → ConversationImportsSettings-DCmiakbZ.js} +1 -1
  285. package/dist/web/assets/DatasetReviewImport-DEnF_pGu.js +1 -0
  286. package/dist/web/assets/ExperimentTrainingDataWorkspace-WhwQ0QBi.js +2 -0
  287. package/dist/web/assets/{FilePagePreview-C6wIp6uX.js → FilePagePreview-BRhhz99q.js} +2 -2
  288. package/dist/web/assets/{GetStartedView-CxMv8q-h.js → GetStartedView-CLVD-qEi.js} +1 -1
  289. package/dist/web/assets/{GettingStartedDialog-CEb0cS-o.js → GettingStartedDialog-CMxaAMg-.js} +1 -1
  290. package/dist/web/assets/HostedModelLearningReview-Cn-j-rDo.js +1 -0
  291. package/dist/web/assets/HostedModelLearningSettings-VNBvf38S.js +1 -0
  292. package/dist/web/assets/{HtmlVisual-CCuUkYT8.js → HtmlVisual-D5y2WG9L.js} +10 -10
  293. package/dist/web/assets/LabModelVersionDetailPage-BxRmYD6h.js +1 -0
  294. package/dist/web/assets/{TrainingRunLineage-PXzWR65d.css → LabModelWorkspace-DOrgCk9Z.css} +1 -1
  295. package/dist/web/assets/LabModelWorkspace-u2Ulm_z4.js +1 -0
  296. package/dist/web/assets/{LabSkillSidebar-CFROlATQ.js → LabSkillSidebar-C7IceJTJ.js} +1 -1
  297. package/dist/web/assets/LabsRoute-C9Y0GU34.css +1 -0
  298. package/dist/web/assets/LabsRoute-CbztQaEf.js +74 -0
  299. package/dist/web/assets/LearningBatchesPage-B1NZTBSv.css +1 -0
  300. package/dist/web/assets/LearningBatchesPage-CJqgZNvM.js +26 -0
  301. package/dist/web/assets/MainChatThread-DNMfrrRq.js +2 -0
  302. package/dist/web/assets/{MainPane-BOWkynGB.css → MainPane-BZlNLfTM.css} +1 -1
  303. package/dist/web/assets/MainPane-CQQxSDPS.js +13 -0
  304. package/dist/web/assets/ModelProjectPageHeader-Dge19aE1.js +1 -0
  305. package/dist/web/assets/NativeSetupTerminal-D4JnbpyD.js +2 -0
  306. package/dist/web/assets/{NativeSkillSidebar-MAJWS4mL.js → NativeSkillSidebar-Jzx1BeKV.js} +1 -1
  307. package/dist/web/assets/{NewProjectDialog-MQiUBVx3.js → NewProjectDialog-DcnGzEd9.js} +1 -1
  308. package/dist/web/assets/{OutputsPage-DpF-aRTu.js → OutputsPage-Cmk15Vt_.js} +1 -1
  309. package/dist/web/assets/{PageChrome-8gH2hyDb.js → PageChrome-Cz_fCqtn.js} +1 -1
  310. package/dist/web/assets/{ProjectsPage-BQ98oGyu.js → ProjectsPage-BZ3Eo3Mz.js} +1 -1
  311. package/dist/web/assets/RightChatPanelStack-C6H2vU9N.js +1 -0
  312. package/dist/web/assets/RightSidebarHomePanel-BfMMVkM1.js +1 -0
  313. package/dist/web/assets/{ScheduledWorkPage-CGCqZz_H.js → ScheduledWorkPage-CAkSwM0T.js} +1 -1
  314. package/dist/web/assets/{SettingsView-CqpMFLxy.js → SettingsView-DvQXGw3_.js} +3 -3
  315. package/dist/web/assets/{TasksetDraftEditorPrimitives-DJvIvzBb.js → TasksetDraftEditorPrimitives-JuU1k8vr.js} +1 -1
  316. package/dist/web/assets/TeamChatView-DmHjr8W9.js +1 -0
  317. package/dist/web/assets/{TerminalOverlay-D--M876l.js → TerminalOverlay-DlaM9d8F.js} +1 -1
  318. package/dist/web/assets/{TrainingCreationPanel-DDUoHQHU.js → TrainingCreationPanel-ClpylNsr.js} +1 -1
  319. package/dist/web/assets/{TrainingDraftPanel-CwLXn3Z7.js → TrainingDraftPanel-6tH2xSDj.js} +1 -1
  320. package/dist/web/assets/{UsageSettingsSection-CGwPregx.js → UsageSettingsSection-CzDqxOYM.js} +2 -2
  321. package/dist/web/assets/WorkSidebarPanel-CY-AHZ4-.js +1 -0
  322. package/dist/web/assets/WorkspaceDiffPanel-B4e0lyF7.js +11 -0
  323. package/dist/web/assets/WorkspaceEnvironmentMenu-D01ZkZZF.js +35 -0
  324. package/dist/web/assets/{WorkspaceFileLocation-D-ctFM4d.js → WorkspaceFileLocation-C5s_njZb.js} +1 -1
  325. package/dist/web/assets/{WorkspaceGitDialogs-CQ28j3R7.js → WorkspaceGitDialogs-DjPZ6KIh.js} +1 -1
  326. package/dist/web/assets/{WorkspaceMonacoEditor-BrZs6-EW.js → WorkspaceMonacoEditor-CC4sfOiU.js} +3 -3
  327. package/dist/web/assets/{WorkspacePdfPreview-CU6PSjjN.js → WorkspacePdfPreview-vszQqFa4.js} +2 -2
  328. package/dist/web/assets/{WorkspacePresentationPreview-IjXVXpIy.js → WorkspacePresentationPreview-DQTvhaRD.js} +1 -1
  329. package/dist/web/assets/api-client-DJRVOFzS.js +1 -0
  330. package/dist/web/assets/{app-models-CKXrDTEU.js → app-models-BUdzQbXo.js} +1 -1
  331. package/dist/web/assets/bot-Doyx3T4j.js +1 -0
  332. package/dist/web/assets/{browser-sidebar-links-D9v2cyJa.js → browser-sidebar-links-PVPCrsDJ.js} +1 -1
  333. package/dist/web/assets/chat-resources-Beh5lB36.js +1 -0
  334. package/dist/web/assets/chevron-down-DX1hzujj.js +1 -0
  335. package/dist/web/assets/chevron-right-DHN0y3KC.js +1 -0
  336. package/dist/web/assets/chevron-up-_QrW88NF.js +1 -0
  337. package/dist/web/assets/{chunk-TLSP5JKG-BrrVo5rJ.js → chunk-3BYFS4RO-ztZjcMmt.js} +1 -1
  338. package/dist/web/assets/chunk-AG6UJ3DI-D9KZjTYP.js +1 -0
  339. package/dist/web/assets/chunk-C3TS766N-ppRhs95p.js +1 -0
  340. package/dist/web/assets/chunk-GCUWJUUM-Dy6oUNJ6.js +9 -0
  341. package/dist/web/assets/chunk-GS5HEE4M-C0RLeIsy.js +1 -0
  342. package/dist/web/assets/{chunk-H3JZ3P5T-CzpTARDY.js → chunk-H3JZ3P5T-DolwEJXo.js} +2 -2
  343. package/dist/web/assets/chunk-Q4RGCEOI-Cr-dg4Nk.js +1 -0
  344. package/dist/web/assets/client-DwZ92xtu.js +1 -0
  345. package/dist/web/assets/{client-choice-storage-DUWsS4X0.js → client-choice-storage-DitqKiIT.js} +1 -1
  346. package/dist/web/assets/cloud-upload-HdzNTgr2.js +1 -0
  347. package/dist/web/assets/common-BWVSBnpX.js +1 -0
  348. package/dist/web/assets/copy-DTQhoBNg.js +1 -0
  349. package/dist/web/assets/create-pipeline-DsZzNkt9.js +1 -0
  350. package/dist/web/assets/{cssMode-SclUkqPt.js → cssMode-BRTtfXxU.js} +1 -1
  351. package/dist/web/assets/dataset-workspaces-BTPi71mz.js +1 -0
  352. package/dist/web/assets/external-link-H1629UU6.js +1 -0
  353. package/dist/web/assets/folder-open-CAGdWOrr.js +1 -0
  354. package/dist/web/assets/folder-plus-C14cs2mE.js +1 -0
  355. package/dist/web/assets/git-commit-horizontal-DFUfuVvF.js +1 -0
  356. package/dist/web/assets/{htmlMode-X3mQtOeh.js → htmlMode-BVaCcL76.js} +1 -1
  357. package/dist/web/assets/icons-Bk2b68aC.js +1 -0
  358. package/dist/web/assets/image-0DPVY6Ev.js +1 -0
  359. package/dist/web/assets/{index-LXNhSUEL.js → index-B6XX_0h3.js} +2 -2
  360. package/dist/web/assets/info-C8b_tafZ.js +1 -0
  361. package/dist/web/assets/{intake-contracts-wCkD2ErR.js → intake-contracts-B8JZKYwb.js} +1 -1
  362. package/dist/web/assets/{jsonMode-BoKiIdHd.js → jsonMode-BCKKQmmV.js} +1 -1
  363. package/dist/web/assets/loader-circle-y-SSPwpk.js +1 -0
  364. package/dist/web/assets/{lspLanguageFeatures-CO2mzpy1.js → lspLanguageFeatures-DozmNUOx.js} +1 -1
  365. package/dist/web/assets/maximize-2-CByk9-zN.js +1 -0
  366. package/dist/web/assets/message-square-C889vRqm.js +1 -0
  367. package/dist/web/assets/{monaco.contribution-wacA5FjV.js → monaco.contribution-B9q6qbbo.js} +2 -2
  368. package/dist/web/assets/{monaco.contribution-CVe3mWSY.js → monaco.contribution-BITdsRbn.js} +2 -2
  369. package/dist/web/assets/{monaco.contribution-hrusiaZi.js → monaco.contribution-BqA-XZ44.js} +2 -2
  370. package/dist/web/assets/{monaco.contribution-C7CAQIKF.js → monaco.contribution-DxAV1oS5.js} +2 -2
  371. package/dist/web/assets/monitor-BtxlcLuI.js +1 -0
  372. package/dist/web/assets/paperclip-BeIdaspf.js +1 -0
  373. package/dist/web/assets/{pdf-Ct3M2mVw.js → pdf-perlzwEB.js} +1 -1
  374. package/dist/web/assets/play-CHXXdkuO.js +1 -0
  375. package/dist/web/assets/plus-DFFWjhPw.js +1 -0
  376. package/dist/web/assets/{ponder-desktop-D-zB6X4L.js → ponder-desktop-Ca-9KggQ.js} +1 -1
  377. package/dist/web/assets/presentation-0bzvu6_u.js +1 -0
  378. package/dist/web/assets/{profile-ref-CCxrOCio.js → profile-ref-D8lxL7dW.js} +1 -1
  379. package/dist/web/assets/{python-C0-pUUAU.js → python-B9hOnkOI.js} +1 -1
  380. package/dist/web/assets/refresh-cw-D61-Ozk3.js +1 -0
  381. package/dist/web/assets/{requests-DjSt-duM.js → requests-DmeUYik4.js} +1 -1
  382. package/dist/web/assets/reward-checks-DJJZYgf8.js +7 -0
  383. package/dist/web/assets/save-iEMNZoPe.js +1 -0
  384. package/dist/web/assets/schemas-Brv9Vmnk.js +64 -0
  385. package/dist/web/assets/settings-BC-bzgk6.js +21 -0
  386. package/dist/web/assets/settings-lists-C84qxFmP.js +5 -0
  387. package/dist/web/assets/square-BE_4JMR3.js +1 -0
  388. package/dist/web/assets/square-terminal-Djpzo2Qs.js +1 -0
  389. package/dist/web/assets/{submit-issue-command-Gk3RKrY-.js → submit-issue-command-HfKzyxg5.js} +1 -1
  390. package/dist/web/assets/{toggleHighContrast-BnYUBgZB.js → toggleHighContrast-ClsXu39R.js} +1 -1
  391. package/dist/web/assets/training-DWfghwfZ.js +1 -0
  392. package/dist/web/assets/{training-model-data-CxR3xpmK.js → training-model-data-CIysl8wH.js} +4 -4
  393. package/dist/web/assets/{tsMode-BVNyOY8h.js → tsMode-nbmaMc-D.js} +1 -1
  394. package/dist/web/assets/upload-C6ug8RD-.js +1 -0
  395. package/dist/web/assets/{useAccountSettings-4_XfwJQi.js → useAccountSettings-Dr9h4Qz_.js} +1 -1
  396. package/dist/web/assets/{useAgentInventory-CVuamyT3.js → useAgentInventory-ByCk2JAv.js} +1 -1
  397. package/dist/web/assets/useChatContextSelection-C0eMm2g6.js +1 -0
  398. package/dist/web/assets/{useLocalAgentSchedules-CmwN4ohy.js → useLocalAgentSchedules-Do0y_leJ.js} +1 -1
  399. package/dist/web/assets/useQuery-D2MQ7e5U.js +1 -0
  400. package/dist/web/assets/wifi-off-Dr-CapyW.js +1 -0
  401. package/dist/web/assets/work-outputs-D_8TovAK.js +1 -0
  402. package/dist/web/assets/{workers-CjtQ2aBD.js → workers-DKvM2NdM.js} +1 -1
  403. package/dist/web/assets/x-Jx2jlP9u.js +1 -0
  404. package/dist/web/assets/{yaml-N1KUjBZ8.js → yaml-C02vq4ar.js} +1 -1
  405. package/dist/web/index.html +1 -1
  406. package/docs/command-reference.md +104 -3
  407. package/package.json +1 -1
  408. package/dist/chunks/account-context-TIJOM22A.js +0 -12
  409. package/dist/chunks/actions-command-BYPLSGZL.js +0 -2
  410. package/dist/chunks/app-server-evaluations-5YZUFXQ2.js +0 -2
  411. package/dist/chunks/app-server-harness-services-N5F5QVZI.js +0 -2
  412. package/dist/chunks/app-server-runtime-HJ2N57DL.js +0 -2
  413. package/dist/chunks/apps-WJTW64NW.js +0 -2
  414. package/dist/chunks/chunk-263WS3TB.js +0 -2
  415. package/dist/chunks/chunk-27JGS3KB.js +0 -12
  416. package/dist/chunks/chunk-2UZHLO2V.js +0 -23
  417. package/dist/chunks/chunk-2W22IXHB.js +0 -2
  418. package/dist/chunks/chunk-46RMTR2Z.js +0 -2
  419. package/dist/chunks/chunk-4JJ4RYIB.js +0 -6
  420. package/dist/chunks/chunk-4NN5OLKW.js +0 -161
  421. package/dist/chunks/chunk-543QHE3D.js +0 -2
  422. package/dist/chunks/chunk-5QOFUGYQ.js +0 -2
  423. package/dist/chunks/chunk-5ZNE43XC.js +0 -10
  424. package/dist/chunks/chunk-6IS5OLI5.js +0 -2
  425. package/dist/chunks/chunk-7HAGSE7L.js +0 -2
  426. package/dist/chunks/chunk-AXYAEWWA.js +0 -2
  427. package/dist/chunks/chunk-B7XJBP4U.js +0 -2
  428. package/dist/chunks/chunk-BBIA24GD.js +0 -10
  429. package/dist/chunks/chunk-CJDGLPNX.js +0 -4
  430. package/dist/chunks/chunk-DAEUVT2I.js +0 -6
  431. package/dist/chunks/chunk-FCXDPVGJ.js +0 -3
  432. package/dist/chunks/chunk-FE2ENE3U.js +0 -2
  433. package/dist/chunks/chunk-H6EUFJJK.js +0 -2
  434. package/dist/chunks/chunk-IOSBGCRT.js +0 -2
  435. package/dist/chunks/chunk-IXZ5ZGIL.js +0 -12
  436. package/dist/chunks/chunk-K6DB5QWG.js +0 -2
  437. package/dist/chunks/chunk-LI56PPCN.js +0 -2
  438. package/dist/chunks/chunk-OE2OOWEQ.js +0 -2
  439. package/dist/chunks/chunk-OYIFH2OM.js +0 -2
  440. package/dist/chunks/chunk-QOUOU7FE.js +0 -22
  441. package/dist/chunks/chunk-R5GRESW3.js +0 -2
  442. package/dist/chunks/chunk-TERKCK4I.js +0 -2
  443. package/dist/chunks/chunk-TS5HNRZB.js +0 -2
  444. package/dist/chunks/chunk-V3KEG6MI.js +0 -2
  445. package/dist/chunks/chunk-WGISITX6.js +0 -4
  446. package/dist/chunks/chunk-XD4ZIQZ2.js +0 -2
  447. package/dist/chunks/chunk-XHU4BZQY.js +0 -13
  448. package/dist/chunks/chunk-ZWEY66RT.js +0 -2
  449. package/dist/chunks/cli-HV32F7HD.js +0 -2
  450. package/dist/chunks/connected-app-executor-DFHWNMRM.js +0 -2
  451. package/dist/chunks/connected-evidence-WOM6N5HO.js +0 -2
  452. package/dist/chunks/core-commands-GWRHH53F.js +0 -2
  453. package/dist/chunks/dataset-preparation-authoring-WJ2XEUO7.js +0 -4
  454. package/dist/chunks/datasets-XIMF54QN.js +0 -2
  455. package/dist/chunks/desktop-test-HF42V2EP.js +0 -3
  456. package/dist/chunks/dist-T6ES2TSM.js +0 -2
  457. package/dist/chunks/evaluation-coordination-WZT6FDMS.js +0 -2
  458. package/dist/chunks/experiment-improvements-H35VS6XZ.js +0 -2
  459. package/dist/chunks/experiments-F54C32EE.js +0 -2
  460. package/dist/chunks/experiments-signal-ONIGTGYR.js +0 -2
  461. package/dist/chunks/host-profile-evaluation-tools-LMCJ3MDJ.js +0 -2
  462. package/dist/chunks/host-profile-external-dataset-4HOXANWK.js +0 -2
  463. package/dist/chunks/hosted-app-server-composition-Y64A2A2B.js +0 -2
  464. package/dist/chunks/hosted-experiment-improvement-B2V2WIUI.js +0 -3
  465. package/dist/chunks/hosted-harness-runtime-C7I4KSDK.js +0 -2
  466. package/dist/chunks/hosted-profile-candidate-CXPVEEYQ.js +0 -3
  467. package/dist/chunks/hosted-profile-compiler-FGCI2VRW.js +0 -2
  468. package/dist/chunks/hosted-profile-evaluation-control-INNUYMBD.js +0 -2
  469. package/dist/chunks/hosted-profile-evaluation-inspection-UPTBRYMS.js +0 -3
  470. package/dist/chunks/hosted-profile-evaluation-preparation-TIQSVKLQ.js +0 -3
  471. package/dist/chunks/hosted-tasksets-7VMYOTIO.js +0 -2
  472. package/dist/chunks/human-review-7XC77NQP.js +0 -2
  473. package/dist/chunks/learning-3XDGIYUL.js +0 -2
  474. package/dist/chunks/local-harness-improvement-runtime-UIKQSAMM.js +0 -2
  475. package/dist/chunks/local-harness-taskset-review-6KJN3EQL.js +0 -2
  476. package/dist/chunks/opchat-NWYWWIA7.js +0 -3
  477. package/dist/chunks/opchat-bounded-chat-ICURZM6R.js +0 -2
  478. package/dist/chunks/organizations-7DBQGCCV.js +0 -2
  479. package/dist/chunks/project-action-payload-7DRABTHY.js +0 -2
  480. package/dist/chunks/project-agent-AXJOWXRU.js +0 -2
  481. package/dist/chunks/published-experiment-source-YBBPLNF2.js +0 -2
  482. package/dist/chunks/refiner-profile-service-ATEFPF5O.js +0 -2
  483. package/dist/chunks/sandbox-command-CF2PJCFX.js +0 -2
  484. package/dist/chunks/saved-work-3OAVRBH3.js +0 -2
  485. package/dist/chunks/setup-RHIMFI2Y.js +0 -2
  486. package/dist/chunks/src-V236S6MV.js +0 -424
  487. package/dist/chunks/standalone-experiment-turn-owner-CDRMGLWW.js +0 -2
  488. package/dist/chunks/store-chat-resources-P4EKCLSY.js +0 -2
  489. package/dist/chunks/store-conversation-serving-YFEZYQD3.js +0 -2
  490. package/dist/chunks/store-evaluation-results-VBH4R2U7.js +0 -7
  491. package/dist/chunks/store-human-review-RFCVZ3HP.js +0 -7
  492. package/dist/chunks/store-learned-preference-migration-validation-FNBGGZU6.js +0 -2
  493. package/dist/chunks/store-local-experiments-XPXGYXNM.js +0 -97
  494. package/dist/chunks/store-model-batch-review-J2L5JQV2.js +0 -2
  495. package/dist/chunks/store-model-project-preparation-OCLIFKI2.js +0 -2
  496. package/dist/chunks/store-taskset-drafts-BNKUVHPA.js +0 -9
  497. package/dist/chunks/taskset-packages-SXBLYHSP.js +0 -2
  498. package/dist/chunks/taskset-packages-V5T4V7YN.js +0 -2
  499. package/dist/chunks/tool-learning-47XQKELE.js +0 -2
  500. package/dist/chunks/training-7VQNCOGH.js +0 -2
  501. package/dist/chunks/training-VKLPNCMC.js +0 -2
  502. package/dist/chunks/training-hosted-NNE6BP6S.js +0 -2
  503. package/dist/chunks/training-hosted-serving-report-VZ4SMLMG.js +0 -2
  504. package/dist/chunks/training-model-start-G7YDZ7ZG.js +0 -2
  505. package/dist/chunks/web-search-56QRZGPR.js +0 -2
  506. package/dist/web/assets/App-DmEA-Lia.js +0 -53
  507. package/dist/web/assets/AppTerminalPanel-ScQKJV4z.js +0 -2
  508. package/dist/web/assets/AppsView-B1uNg9IQ.js +0 -1
  509. package/dist/web/assets/BrowserSidebar-DfVQoJHn.js +0 -1
  510. package/dist/web/assets/ChatTimelineEntry-Bbc6HRks.js +0 -8
  511. package/dist/web/assets/CommunityView-mO58f2B0.js +0 -1
  512. package/dist/web/assets/HostedModelLearningReview-BQIS7hkd.js +0 -1
  513. package/dist/web/assets/HostedModelLearningSettings-BQ-YeFMT.js +0 -1
  514. package/dist/web/assets/LabModelVersionDetailPage-BkHeVbAx.js +0 -1
  515. package/dist/web/assets/LabsRoute-CE45yAXJ.css +0 -1
  516. package/dist/web/assets/LabsRoute-YA9YckKj.js +0 -101
  517. package/dist/web/assets/MainChatThread-DpyPgGKW.js +0 -2
  518. package/dist/web/assets/MainPane-WOeodByM.js +0 -10
  519. package/dist/web/assets/NativeSetupTerminal-fmG2c65K.js +0 -2
  520. package/dist/web/assets/RightChatPanelStack-Bs7A4dLs.js +0 -1
  521. package/dist/web/assets/RightSidebarHomePanel-C-D4kba2.js +0 -1
  522. package/dist/web/assets/TeamChatView-DjmIaLO1.js +0 -1
  523. package/dist/web/assets/TrainingRunLineage-CtYe1KGX.js +0 -1
  524. package/dist/web/assets/WorkSidebarPanel-C6wWuo7U.js +0 -1
  525. package/dist/web/assets/WorkspaceDiffPanel-JDOUmrC-.js +0 -11
  526. package/dist/web/assets/WorkspaceEnvironmentMenu-sfL5LZeB.js +0 -35
  527. package/dist/web/assets/api-client-Dgz-fOMl.js +0 -1
  528. package/dist/web/assets/bot-Cd761lRF.js +0 -1
  529. package/dist/web/assets/chat-resources-BUDXdoG0.js +0 -1
  530. package/dist/web/assets/chevron-down-DEbd6Ek-.js +0 -1
  531. package/dist/web/assets/chevron-right-DLYNg_Oq.js +0 -1
  532. package/dist/web/assets/chevron-up-DFJJccDl.js +0 -1
  533. package/dist/web/assets/chunk-GHPCQXG5-DKDBSd8H.js +0 -9
  534. package/dist/web/assets/chunk-GJRXJL6G-luaxRTYI.js +0 -1
  535. package/dist/web/assets/chunk-JDQVAG3R-C0-rh1aR.js +0 -1
  536. package/dist/web/assets/chunk-XMVSQIK4-BBU7r_NH.js +0 -1
  537. package/dist/web/assets/client-BNjO4Xi8.js +0 -1
  538. package/dist/web/assets/cloud-upload-CoM1FGeB.js +0 -1
  539. package/dist/web/assets/common-CFsO2ppZ.js +0 -1
  540. package/dist/web/assets/copy-BGOhV6Pk.js +0 -1
  541. package/dist/web/assets/create-pipeline-DRR0Qeec.js +0 -1
  542. package/dist/web/assets/createLucideIcon-Bv-_eGcE.js +0 -1
  543. package/dist/web/assets/external-link-CVXsNeO3.js +0 -1
  544. package/dist/web/assets/folder-open-MnOmh19D.js +0 -1
  545. package/dist/web/assets/folder-plus-BRddLBtO.js +0 -1
  546. package/dist/web/assets/git-commit-horizontal-Bm4rkXug.js +0 -1
  547. package/dist/web/assets/icons-CZxmQtZs.js +0 -1
  548. package/dist/web/assets/image-BViGUAiq.js +0 -1
  549. package/dist/web/assets/info-DYPIbKKD.js +0 -1
  550. package/dist/web/assets/loader-circle-JFgFNsP5.js +0 -1
  551. package/dist/web/assets/maximize-2-DXZCQO0b.js +0 -1
  552. package/dist/web/assets/message-square-cOCAL8J1.js +0 -1
  553. package/dist/web/assets/models-route-CWcJuOd0.js +0 -1
  554. package/dist/web/assets/monitor-B35XSAvn.js +0 -1
  555. package/dist/web/assets/paperclip-CKgDxioG.js +0 -1
  556. package/dist/web/assets/play-DzqLr7fM.js +0 -1
  557. package/dist/web/assets/plus-Ddp1vXnw.js +0 -1
  558. package/dist/web/assets/presentation-B0S9v7ib.js +0 -1
  559. package/dist/web/assets/refresh-cw-D45mW-vs.js +0 -1
  560. package/dist/web/assets/reward-checks-D139zwha.js +0 -7
  561. package/dist/web/assets/save-Gu4R_82E.js +0 -1
  562. package/dist/web/assets/schemas-C9IwV7NS.js +0 -64
  563. package/dist/web/assets/settings-DdonLCIN.js +0 -21
  564. package/dist/web/assets/settings-lists-CFHFtO0D.js +0 -5
  565. package/dist/web/assets/square-Dqduqyyu.js +0 -1
  566. package/dist/web/assets/square-terminal-DS3zwi6X.js +0 -1
  567. package/dist/web/assets/training-QBuGBGJd.js +0 -2
  568. package/dist/web/assets/upload-ABSJxuUM.js +0 -1
  569. package/dist/web/assets/useQuery-CCjwL8VI.js +0 -1
  570. package/dist/web/assets/wifi-off-DGJH7Pke.js +0 -1
  571. package/dist/web/assets/work-outputs-CnbRtTLg.js +0 -1
  572. package/dist/web/assets/x-B-_zJVOZ.js +0 -1
  573. /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{Ab as _,Bb as E,zb as F}from"./chunk-CJDGLPNX.js";import{a as T,b as A,c as H,d as w,e as b,f as S,g,l as k}from"./chunk-HVM2GUM3.js";import{e as C,f as R}from"./chunk-SH7POUVX.js";import{l as x,n as O}from"./chunk-RCT3O3HQ.js";import{h as y,p as N,r as L,s as j}from"./chunk-UGOK7VTC.js";import{a as r}from"./chunk-FTQLQJQV.js";import{promises as z}from"node:fs";import d from"node:path";import{randomUUID as J}from"node:crypto";import{promises as v}from"node:fs";import U from"node:path";function u(e){return{binding:r(()=>{let i=L(e.home,"refiner_bindings","active");return i?w.parse(i.value):null},"binding"),releases:r(async()=>{let i=(await v.readdir(e.releases)).filter(n=>n.endsWith(".json"));return Promise.all(i.map(async n=>H.parse(JSON.parse(await v.readFile(U.join(e.releases,n),"utf8")))))},"releases"),transitions:r(()=>Object.values(j(e.home,"refiner_transitions")).map(i=>b.parse(i.value)),"transitions"),release:r(async i=>{let n=H.parse(JSON.parse(await v.readFile(U.join(e.releases,`${i.contentHash}.json`),"utf8")));if(n.id!==i.id||n.contentHash!==i.contentHash)throw new Error("Refiner release reference does not match immutable release content.");return n},"release"),persistRelease:r(async i=>V(e.releases+`/${i.contentHash}.json`,x(i),!0),"persistRelease"),writeSource:r(async i=>V(e.source,i),"writeSource"),transition:r(async(i,n)=>{N(e.home,t=>{t.exec("BEGIN IMMEDIATE");try{let a=t.prepare("SELECT payload FROM refiner_bindings WHERE id = 'active'").get(),o=a?w.parse(JSON.parse(a.payload)):null,s=new Date().toISOString(),l={id:i.id,contentHash:i.contentHash},c={schemaVersion:"openpond.refinerTransitionReceipt.v1",id:`refiner-transition-${J()}`,operation:n.operation,bindingChanged:n.bindingChanged,previousRelease:o?.release??null,nextRelease:l,actor:n.actor,reason:n.reason,authoringSkillHash:n.authoringSkillHash,validation:{valid:!0,messages:[]},createdAt:s},p=b.parse({...c,contentHash:O(c)});if(t.prepare("INSERT INTO refiner_transitions VALUES (?, ?, 1)").run(p.contentHash,JSON.stringify(p)),n.bindingChanged){let m=w.parse({schemaVersion:"openpond.refinerBinding.v1",channel:"active",revision:(o?.revision??-1)+1,release:l,updatedAt:s});t.prepare("INSERT INTO refiner_bindings VALUES ('active', ?, 1) ON CONFLICT(id) DO UPDATE SET payload=excluded.payload, revision=revision+1").run(JSON.stringify(m))}t.exec("COMMIT")}catch(a){throw t.exec("ROLLBACK"),a}})},"transition")}}r(u,"createLocalRefinerProfileRepository");async function V(e,i,n=!1){await R(e,async()=>{if(n){let t=await v.readFile(e,"utf8").catch(()=>null);if(t!==null){if(t!==i)throw new Error("Immutable Refiner release bytes changed.");return}}await C(e,i)})}r(V,"atomicWrite");var B="OpenPond Refiner Core: evidence admission, privacy, ownership, validation, and immutable activation boundaries.";function P(e){let i=d.join(e,"library","refiners");return{home:e,root:i,source:d.join(i,"source","openpond.review.json"),releases:d.join(i,"releases")}}r(P,"refinerProfilePaths");function Re(e){let i=r(()=>f(e),"inspect"),n=r(o=>M(e,o),"update"),t=r(o=>q(e,o),"activate"),a=r(o=>G(e,o),"rollback");return{refinerHistoryPayload:i,updateRefinerProfilePayload:n,activateRefinerReleasePayload:t,rollbackRefinerReleasePayload:a,inspectRefiner:i,updateRefiner:n,activateRefiner:t,rollbackRefiner:a}}r(Re,"createRefinerProfileRoutePayloads");async function f(e){let i=P(e),n=u(i),t=n.binding();if(!t)throw new Error("Active Refiner binding is unavailable.");let a=(await n.releases()).sort((l,c)=>c.createdAt.localeCompare(l.createdAt)),o=a.find(l=>l.id===t.release.id&&l.contentHash===t.release.contentHash);if(!o)throw new Error("Active Refiner release is unavailable.");let s=n.transitions().sort((l,c)=>c.createdAt.localeCompare(l.createdAt));return F.parse({rootPath:i.root,sourcePath:i.source,binding:t,currentRelease:o,releases:a,transitions:s})}r(f,"inspectRefinerProfile");async function ue(e){return(await f(e)).currentRelease}r(ue,"loadActiveRefinerRelease");async function M(e,i){return R(d.join(y(e).runtime,"refiner-edit"),()=>W(e,i))}r(M,"updateRefinerProfile");async function W(e,i){let n=_.parse(i),t=P(e),a=u(t);await I(t);let o=T.parse(n.profile),s=S({profile:o,coreVersion:k,corePrompt:B}),c=(await a.releases()).find(m=>m.composedPromptHash===s.composedPromptHash&&m.profileHash===s.profileHash)??s;await a.persistRelease(c),await a.writeSource(g(o));let p=a.binding();if(!p)throw new Error("Active Refiner binding is unavailable.");return n.activate&&p.release.contentHash===c.contentHash||!n.activate&&a.transitions().some(h=>!h.bindingChanged&&h.nextRelease.contentHash===c.contentHash&&h.actor===n.actor&&h.reason===n.reason&&h.authoringSkillHash===n.authoringSkillHash)||await a.transition(c,{operation:"update",bindingChanged:n.activate,actor:n.actor,reason:n.reason,authoringSkillHash:n.authoringSkillHash}),f(e)}r(W,"updateRefinerProfileUnlocked");async function q(e,i){return R(d.join(y(e).runtime,"refiner-edit"),()=>$(e,i))}r(q,"activateRefinerRelease");async function $(e,i){let n=E.parse(i),t=P(e),a=u(t);await I(t);let o=await a.release(n.release),s=a.binding();if(!s)throw new Error("Active Refiner binding is unavailable.");return s.release.contentHash===o.contentHash||(await a.transition(o,{operation:"activate",bindingChanged:!0,actor:n.actor,reason:n.reason,authoringSkillHash:null}),await a.writeSource(g(o.profile))),f(e)}r($,"activateRefinerReleaseUnlocked");async function G(e,i){return R(d.join(y(e).runtime,"refiner-edit"),()=>K(e,i))}r(G,"rollbackRefinerRelease");async function K(e,i){let n=E.parse(i),t=P(e),a=u(t);await I(t);let o=await a.release(n.release),s=a.binding();if(!s)throw new Error("Active Refiner binding is unavailable.");return s.release.contentHash===o.contentHash||(await a.transition(o,{operation:"rollback",bindingChanged:!0,actor:n.actor,reason:n.reason,authoringSkillHash:null}),await a.writeSource(g(o.profile))),f(e)}r(K,"rollbackRefinerReleaseUnlocked");async function Y(e){await R(d.join(y(e).runtime,"refiner-initialize"),()=>Q(P(e)))}r(Y,"initializeRefinerProfile");async function I(e){await Y(e.home)}r(I,"ensureInitialized");async function Q(e){let i=u(e);if(await Promise.all([z.mkdir(d.dirname(e.source),{recursive:!0,mode:448}),z.mkdir(e.releases,{recursive:!0,mode:448})]),i.binding())return;let n=S({profile:A,coreVersion:k,corePrompt:B});await i.persistRelease(n),await i.writeSource(g(n.profile)),await i.transition(n,{operation:"initialize",bindingChanged:!0,actor:"openpond",reason:"Initialize the default Refiner Review Profile.",authoringSkillHash:null})}r(Q,"initialize");export{u as a,P as b,Re as c,f as d,ue as e,M as f,q as g,G as h,Y as i};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Cb as ee,L as q,Q as Y,W as $,ja as Z}from"./chunk-5ZNE43XC.js";import{m as D}from"./chunk-HIQPGYVH.js";import{q as W,r as V,s as I,t as X,w as x}from"./chunk-263WS3TB.js";import{a as U}from"./chunk-SD2XDZQW.js";import{K as A,L as C,M as g,P as Q,o as K}from"./chunk-XHU4BZQY.js";import{Ra as N,Wa as J,bb as _,ga as O,ia as F,v as P,x as B}from"./chunk-ZY32SZ2P.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a as h}from"./chunk-FTQLQJQV.js";var j=h(t=>t&&typeof t=="object"&&!Array.isArray(t)?t:{},"fields");function te(t){let e=t?.method==="sft"?t:void 0;return{schemaVersion:"openpond.sftRecipe.v1",method:"sft",parameterization:"lora",...e?.baseModel?{baseModel:e.baseModel}:{},dataset:{completionOnly:!0,maxSequenceLength:8192,selectionStrategy:"stable_hash_top_n",selectionSeed:17,...j(e?.dataset)},lora:{rank:16,alpha:32,dropout:0,targetModules:["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"],...j(e?.lora)},optimizer:{learningRate:1e-4,epochs:3,maxSteps:30,batchSize:1,gradientAccumulationSteps:1,seed:17,...j(e?.optimizer)},resourceLimits:{cpuThreads:4,memoryBytes:48*1024**3,wallTimeMs:3600*1e3,...j(e?.resourceLimits)}}}h(te,"createSupervisedTrainingRecipeDefaults");function S(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}h(S,"fields2");function re(t,e=t?.method==="sft"?"sft":"grpo"){if(e==="sft")return te(t);let r=t?.method==="grpo"?t:void 0,a={schemaVersion:"openpond.rftRecipe.v1",method:"grpo",parameterization:"lora",lora:{rank:2},rollout:{groupSize:8,concurrency:4,maxOutputTokens:1024,temperature:.8,topP:.95,seed:17},optimizer:{learningRate:1e-4,maxSteps:8,clipRange:.2,iterations:2,microbatchSize:1,gradientAccumulationSteps:8,advantageEpsilon:1e-8,adamw:{name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8}},loss:{method:"grpo",klBeta:.01},resourceLimits:{wallTimeMs:3960*1e3,maxRollouts:64,maxPayloadBytes:1e6},policyOptimization:null};return{...a,...r,lora:{...a.lora,...S(r?.lora)},rollout:{...a.rollout,...S(r?.rollout)},optimizer:{...a.optimizer,...S(r?.optimizer),adamw:{...a.optimizer.adamw,...S(S(r?.optimizer).adamw)}},loss:{...a.loss,...S(r?.loss)},resourceLimits:{...a.resourceLimits,...S(r?.resourceLimits)}}}h(re,"createModelTrainingRecipeDefaults");function pe(t){let e=x.parse(t.setup),r=typeof t.package=="object"&&t.package!==null&&"schemaVersion"in t.package&&t.package.schemaVersion==="openpond.tasksetPackage.v1"?Z(t.package):null,a=r?null:$(t.package),s=r??a,l=e.tasksetRef;if(!(l&&l.revision===s.taskset.revision&&(r?l.id===r.taskset.id&&l.contentHash===r.taskset.contentHash||l.id===r.taskset.metadata.sourceTasksetId&&l.contentHash===r.taskset.metadata.sourceTasksetHash:l.id===s.taskset.id)))return e;!e.evaluationTasksetRef&&s.taskset.tasks.some(p=>p.split==="frozen_eval"||p.split==="validation")&&(e.evaluationTasksetRef=e.tasksetRef);let o=e.baseModel;if(e.method==="sft"){if(e.recipe&&e.recipe.method!=="sft"||!o?.revision||!o.tokenizerRevision||!o.chatTemplateHash)return e;let p=s.taskset.tasks.filter(b=>b.split==="train");if(!p.length)return e;let E=te(e.recipe),k=S(E.dataset),H=e.evaluationTasksetRef?.id===e.tasksetRef?.id&&e.evaluationTasksetRef?.contentHash===e.tasksetRef?.contentHash;if(!k.validationSplit&&!H)throw new Error("Choose the optimizer validation split from the selected evaluation dataset.");return x.parse({...e,recipe:ee.parse({...E,baseModel:{id:o.modelId,revision:o.revision,tokenizerRevision:o.tokenizerRevision,chatTemplateHash:o.chatTemplateHash},dataset:{...k,trainSplit:"train",validationSplit:k.validationSplit??(s.taskset.tasks.some(b=>b.split==="frozen_eval")?"frozen_eval":"validation"),maxExamples:typeof k.maxExamples=="number"?Math.min(k.maxExamples,p.length):Math.min(1e3,p.length)}})})}if(e.method!=="grpo"||e.recipe&&e.recipe.method!=="grpo"||!o?.revision||!o.tokenizerRevision||!o.chatTemplateHash||e.recipe?.baseModel&&e.recipe.reward&&e.recipe.dataset)return e;let m=s.taskset.tasks.filter(p=>p.split==="train"),R=r?r.taskset.graders:_(a.rewardBinding,a.rewards),f=R.find(p=>p.rewardEligible&&p.weight>0),y=r?.environment??a?.executionResources?.environment??a?.execution?.environment;if(!m.length||!f||!y)return e;let M=re(e.recipe);return x.parse({...e,recipe:{...M,baseModel:{id:o.modelId,revision:o.revision,tokenizerRevision:o.tokenizerRevision,chatTemplateHash:o.chatTemplateHash},dataset:{trainSplit:"train",validationSplit:s.taskset.tasks.some(p=>p.split==="frozen_eval")?"frozen_eval":"validation",maxPromptTokens:4096,maxExamples:Math.min(1e3,m.length),selectionStrategy:"stable_hash_top_n",...S(M.dataset)},rollout:{maxTurns:s.taskset.environment.kind==="text"?1:15,...S(M.rollout)},reward:{graderId:f.id,graderHash:D(R),environmentId:y.id,environmentVersion:String(y.revision),toolContractHash:D(s.taskset.tools),learnedPreference:S(M.reward).learnedPreference??null}}})}h(pe,"prepareModelTrainingDefaults");var T=n.string().trim().min(1).max(500),v=W,ae=n.object({schemaVersion:n.literal("openpond.modelStarter.v1"),id:T,revision:n.number().int().positive(),name:n.string().trim().min(1).max(200),description:n.string().trim().min(1).max(2e3),category:n.enum(["extraction","support","operations","knowledge","coding","writing","classification"]),taskset:v,taskDefinition:v,rewardBinding:v,rewards:n.array(v).min(1).max(100),assets:n.array(v).max(1e3),previewTaskIds:n.array(T).min(1).max(8),startingModel:V,supportedMethods:n.array(I).min(1).max(8),defaultMethod:I,provenance:n.object({author:n.string().min(1).max(200),license:n.string().min(1).max(200),sourceDescription:n.string().min(1).max(2e3)}).strict(),evidence:n.object({verifierFixtures:v.nullable(),baseline:v.nullable(),training:v.nullable(),evaluation:v.nullable()}).strict()}).strict().superRefine((t,e)=>{t.supportedMethods.includes(t.defaultMethod)||e.addIssue({code:"custom",path:["defaultMethod"],message:"The default method must be supported by the package."});for(let r of["rewards","assets"])new Set(t[r].map(a=>a.id)).size!==t[r].length&&e.addIssue({code:"custom",path:[r],message:"Dependency identities must be unique."});new Set(t.previewTaskIds).size!==t.previewTaskIds.length&&e.addIssue({code:"custom",path:["previewTaskIds"],message:"Preview tasks must be unique."})}),ie=ae.safeExtend({contentHash:n.string().regex(/^[a-f0-9]{64}$/)}),oe=n.object({starter:ie,taskset:O,taskDefinition:K,rewardBinding:J,rewards:n.array(N).min(1).max(100),assets:n.array(Q).max(1e3),execution:q.optional()}).strict(),ne=n.object({schemaVersion:n.literal("openpond.modelStarterPrivacyReview.v1"),disposition:n.literal("synthetic_only"),reviewedBy:n.string().trim().min(1).max(500),reviewedAt:n.iso.datetime(),reviewedContentHash:n.string().regex(/^[a-f0-9]{64}$/),note:n.string().trim().min(1).max(2e3)}).strict();function se(t){let{contentHash:e,...r}=t.starter,{contentHash:a,...s}=t.taskset,{contentHash:l,...c}=r.taskset,o={...s.metadata},m=o.starterAuthoring;if(m&&typeof m=="object"&&!Array.isArray(m)){let{privacyReview:R,...f}=m;o.starterAuthoring=f}return g({...t,starter:{...r,taskset:c},taskset:{...s,metadata:o}}).contentHash}h(se,"modelStarterPrivacyContentHash");var de=n.object({profileId:T,modelId:T,name:n.string().trim().min(1).max(200),starter:v,startingModel:V,method:I,rewardBindingRef:v.nullable().optional(),recipe:X.nullable().optional(),managedGpuSelection:x.shape.managedGpuSelection,continuationAdapterMode:x.shape.continuationAdapterMode,learning:U.optional()}).strict(),ce=de.extend({schemaVersion:n.literal("openpond.modelStarterCreation.v1"),operationId:T}).strict();function le(t){return P(t,64*1024),ce.parse(t)}h(le,"parseModelStarterCreationRequest");function ue(t,e){let r=le(t),a=L(e);if(!C(r.starter,A(a.starter)))throw new Error("Starter creation references a different package revision.");if(!a.starter.supportedMethods.includes(r.method))throw new Error("The selected training method is not supported by this starter.");return{request:r,resolved:a}}h(ue,"validateModelStarterCreation");function he(t){let{starter:e,taskset:r,taskDefinition:a,rewardBinding:s,rewards:l}=L(t);return{starter:e,inputSchema:a.inputSchema,outputSchema:a.outputSchema,reward:{name:s.name,description:s.description,checks:s.sources.map(c=>{let o=l.find(m=>C(c.reward,A(m)));return{name:o.name,description:o.description,kind:o.implementation.kind,role:c.role,weight:c.weight,required:c.required,hardGate:c.hardGate}})},tasks:e.previewTaskIds.map(c=>{let o=r.tasks.find(m=>m.id===c);return{id:o.id,input:o.input,policyVisibleContext:o.policyVisibleContext}}),counts:{train:r.tasks.filter(c=>c.split==="train").length,validation:r.tasks.filter(c=>c.split==="validation").length,frozenEvaluation:r.tasks.filter(c=>c.split==="frozen_eval").length}}}h(he,"previewModelStarter");function L(t){P(t,16*1024*1024);let e=oe.parse(t),{starter:r,taskset:a,taskDefinition:s,rewardBinding:l,rewards:c,assets:o}=e,m=a.metadata.starterAuthoring;if(m&&typeof m=="object"&&!Array.isArray(m)&&"privacyReview"in m&&ne.parse(m.privacyReview).reviewedContentHash!==se(e))throw new Error("Starter privacy review differs from the published contents.");let R=[r,a,s,l,...c,...o];for(let i of R){let{contentHash:d,...u}=i;if(g(u).contentHash!==d)throw new Error(`Starter resource integrity failed: ${i.id}.`)}F(a),Y(e.execution,a,o);function f(i,d){if(!C(i,A(d)))throw new Error(`Starter dependency mismatch: ${i.id}.`)}if(h(f,"exact"),f(r.taskset,a),f(r.taskDefinition,s),f(r.rewardBinding,l),f(s.rewardBinding,l),l.recipeRef)throw new Error("Starter binding recipes must be resolved into a standalone binding before publication.");let{policy:y,environment:M,environmentRelease:p,tools:E,capabilities:k,verifierSetRelease:H}=a,b={policy:y,environment:M,...p?{environmentRelease:p}:{},tools:E,capabilities:k,...H?{verifierSetRelease:H}:{}};if(g(b).contentHash!==g(s.execution).contentHash)throw new Error("Starter execution context differs from its task format.");if(g({graders:a.graders}).contentHash!==g({graders:_(l,c)}).contentHash)throw new Error("Starter executable graders differ from its Reward binding.");for(let[i,d]of[[r.rewards,c],[r.assets,o]]){if(i.length!==d.length||new Set(d.map(u=>u.id)).size!==d.length)throw new Error("Starter dependency inventory mismatch.");for(let u of i){let w=d.find(z=>z.id===u.id);if(!w)throw new Error(`Starter dependency is missing: ${u.id}.`);f(u,w)}}for(let i of l.sources){let d=c.find(u=>u.id===i.reward.id);if(!d)throw new Error(`Starter Reward is missing: ${i.reward.id}.`);f(i.reward,d)}for(let i of c){let d=i.implementation,u=[...i.assets,..."verifierRef"in d?[d.verifierRef]:[],..."rubricRef"in d?[d.rubricRef]:[],..."inputContract"in d?[d.inputContract]:[]];for(let w of u){let z=o.find(me=>me.id===w.id);if(!z||g(z.asset).contentHash!==g(w).contentHash)throw new Error(`Starter Reward source is missing or changed: ${w.id}.`);if(w.visibility==="policy")throw new Error(`Starter Reward source must remain private to its evaluator: ${w.id}.`)}}if(new Set(a.tasks.map(i=>i.id)).size!==a.tasks.length)throw new Error("Starter task identities must be unique.");let G=new Map;for(let i of a.tasks){if(i.policyVisibleContext.instructions!==s.instructions)throw new Error(`Starter task does not carry its declared model instructions: ${i.id}.`);let d=g({input:i.input,context:i.policyVisibleContext}).contentHash,u=G.get(d);if(u&&u!==i.split)throw new Error("Starter policy input appears in multiple splits.");if(G.set(d,i.split),!B(s.inputSchema,i.input).valid)throw new Error(`Starter task input does not match its format: ${i.id}.`);if(i.expectedOutput!==null&&!B(s.outputSchema,i.expectedOutput).valid)throw new Error(`Starter expected output does not match its format: ${i.id}.`)}for(let i of r.previewTaskIds){let d=a.tasks.find(u=>u.id===i);if(!d||d.split==="frozen_eval")throw new Error(`Starter preview task is unavailable: ${i}.`)}return e}h(L,"validateResolvedModelStarter");export{pe as a,ie as b,ne as c,le as d,ue as e,he as f,L as g};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a}from"./chunk-V3KEG6MI.js";import{c}from"./chunk-BSHAIAXY.js";import{c as s}from"./chunk-3M53YXEI.js";import{a as i}from"./chunk-FTQLQJQV.js";async function h(o){let t=await d(o);if(!t.token)throw new Error("Sign in to an OpenPond account before using hosted training.");let n=c(o)??t.apiBaseUrl;if(new URL(n).origin!==new URL(t.apiBaseUrl).origin)throw new Error("The hosted API URL must match the signed-in account\u2019s API origin.");let r=s(o,"teamId");if(!r)throw new Error("Hosted training requires --team-id <workspace-id>.");let e=new Headers({"x-openpond-team-id":r});return t.token.startsWith("opk_")?(e.set("Authorization",`ApiKey ${t.token}`),e.set("openpond-api-key",t.token)):e.set("Authorization",`Bearer ${t.token}`),{context:{...t,token:t.token},baseUrl:n,teamId:r,headers:e}}i(h,"hostedTrainingAccount");async function d(o){for(let t=0;;t++)try{return await a(s(o,"account"))}catch(n){if(n.issue?.code!=="STORAGE_BUSY"||t>=29)throw n;await new Promise(e=>setTimeout(e,1e3))}}i(d,"accountContext");export{h as a};
@@ -1,12 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as Ne}from"./chunk-SYUKES6H.js";import{a as B,b as W,c as ze,d as Le,e as q,f as ie,i as de,o as Be,q as ce}from"./chunk-7HAGSE7L.js";import{a as ue}from"./chunk-MCBRB5D6.js";import{k as ae,m as se,n as Ue}from"./chunk-OQPJ7FJF.js";import{c as Te}from"./chunk-LI56PPCN.js";import{a as re,b as oe}from"./chunk-WJSJXK2N.js";import{rb as L}from"./chunk-5ZNE43XC.js";import{f as G,m as f,n as _e}from"./chunk-HIQPGYVH.js";import{a as ke}from"./chunk-2LJCJOJ7.js";import{a as Oe,c as $e,d as je}from"./chunk-AMC4Z7G4.js";import{b as z}from"./chunk-JCLTFDVW.js";import{l as K,m as qe}from"./chunk-I6VMRQF4.js";import{h as Ae}from"./chunk-XHU4BZQY.js";import{Sa as Pe,ea as Ce,wb as Ee}from"./chunk-ZY32SZ2P.js";import{A as a}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";function jt(t,e){let n=t.token?.trim();if(!n||t.accountState.state!=="signed_in"||!t.accountState.activeProfile)throw new Error("A signed-in OpenPond account is required.");let r=ke(t.apiBaseUrl,{apiBaseUrl:t.apiBaseUrl}),o=/\/api\/sandboxes\/?$/.test(r)?r.replace(/\/api\/sandboxes\/?$/,"/v1"):r.replace(/\/sandboxes\/?$/,"");return{audience:new URL(o).origin,async request(s){let i=n.startsWith("opk_"),u=await z(o,n,s.path,{method:s.method??"GET",signal:s.signal,explicitBearerAuth:!i,headers:{...i?{"openpond-api-key":n}:{},...s.idempotencyKey?{"idempotency-key":s.idempotencyKey}:{},...e?{"X-OpenPond-Team-Id":e}:{}},...s.body?{body:JSON.stringify(s.body)}:{},...s.timeoutMs!==void 0?{timeoutMs:s.timeoutMs}:{}}),c=await u.json().catch(()=>({}));if(!u.ok)throw new Error(typeof c.error=="string"?c.error:`OpenPond API request failed with status ${u.status}`);return c}}}d(jt,"createCapturedOpenPondPublicApiClient");var _t=3e4,Tt=8*1024*1024,Mn={timeoutMs:900*1e3,maxResponseBytes:64*1024*1024},Fe=class extends Error{static{d(this,"ApiTimeoutError")}timeoutMs;requestUrl;code="OPENPOND_API_TIMEOUT";constructor(t,e){super(`API request timed out after ${t}ms: ${e}`),this.timeoutMs=t,this.requestUrl=e,this.name="ApiTimeoutError"}},pe=class extends Error{static{d(this,"ApiResponseTooLargeError")}maximumBytes;requestUrl;code="OPENPOND_API_RESPONSE_TOO_LARGE";constructor(t,e){super(`API response exceeded ${t} bytes: ${e}`),this.maximumBytes=t,this.requestUrl=e,this.name="ApiResponseTooLargeError"}},He=class extends Error{static{d(this,"OpenPondApiError")}status;apiMessage;code;constructor(t,e,n,r=null){let o=r||e;super(`${n} failed: ${t}${o?` ${o}`:""}`),this.status=t,this.apiMessage=r,this.name="OpenPondApiError",this.code=e||"OPENPOND_API_ERROR"}};async function X(t,e,n,r={}){let{timeoutMs:o=_t,maxResponseBytes:s=Tt,explicitBearerAuth:i=!1,...u}=r,c=`${t}${n}`,p=new Headers(u.headers);p.set("Content-Type","application/json");let b=i?void 0:process.env.OPENPOND_API_KEY,l=e?.trim()||"",g=!i&&l.startsWith("opk_"),P=b||(g?l:null);P&&!p.has("openpond-api-key")&&p.set("openpond-api-key",P),e?p.set("Authorization",g?`ApiKey ${l}`:`Bearer ${e}`):b&&!p.has("Authorization")&&p.set("Authorization",`ApiKey ${b}`);let T=new AbortController,U=new Fe(o,c),j=o>0?setTimeout(()=>T.abort(U),o):null;j?.unref?.();let ne=Lt(u.signal,T.signal,o),J=d(()=>{j&&clearTimeout(j)},"cleanup");try{let R=await fetch(c,{...u,headers:p,signal:ne});return zt(R,{cleanup:J,maximumBytes:s,requestUrl:c,timeoutController:T,timeoutError:U})}catch(R){throw J(),T.signal.aborted?U:R}}d(X,"apiFetch");async function me(t,e){let n;try{let r=await t.text();n=r?JSON.parse(r):{}}catch(r){if(r instanceof Fe||r instanceof pe)throw r;n={}}if(!t.ok){let r=typeof n.error=="string"?n.error:null,o=typeof n.message=="string"?n.message:null;throw new He(t.status,r,e,o)}return n}d(me,"readApiJson");function zt(t,e){if(!t.body)return e.cleanup(),t;let n=Number(t.headers.get("content-length"));if(e.maximumBytes>0&&Number.isFinite(n)&&n>e.maximumBytes)throw e.cleanup(),t.body.cancel(),new pe(e.maximumBytes,e.requestUrl);let r=t.body.getReader(),o=0,s=new ReadableStream({async pull(i){try{let u=await r.read();if(u.done){e.cleanup(),i.close();return}if(o+=u.value.byteLength,e.maximumBytes>0&&o>e.maximumBytes){e.cleanup(),await r.cancel(),i.error(new pe(e.maximumBytes,e.requestUrl));return}i.enqueue(u.value)}catch(u){e.cleanup(),i.error(e.timeoutController.signal.aborted?e.timeoutError:u)}},async cancel(i){e.cleanup(),await r.cancel(i)}});return new Response(s,{headers:t.headers,status:t.status,statusText:t.statusText})}d(zt,"boundedResponse");function Lt(t,e,n){return n<=0?t??void 0:t?AbortSignal.any([t,e]):e}d(Lt,"composedSignal");var C=a.string().min(1).max(200),_=a.string().regex(/^[a-f0-9]{64}$/),le=a.object({operationId:C,name:a.string().trim().min(1).max(500),projectId:C,dataset:G.extend({revision:a.number().int().positive()}).strict(),caseIds:a.array(C).min(1).max(1e4)}).strict().superRefine((t,e)=>{new Set(t.caseIds).size!==t.caseIds.length&&e.addIssue({code:"custom",message:"Select each case once."})}),Bt=B.extend({inputHash:_,outputHash:_.nullable(),task:Ce,taskHash:_}).strict(),Nt=a.object({schemaVersion:a.literal("openpond.connectedRecordedExecution.v1"),id:C,teamId:C,ownerUserId:C,request:le,manifest:Ee,sources:a.array(Bt).min(1).max(1e4),contentHash:_}).strict();function Me(t){let e=Nt.parse(t),{contentHash:n,...r}=e,{contentHash:o,...s}=e.manifest;if(f(r)!==n||f(s)!==o||e.manifest.teamId!==e.teamId||e.manifest.id!==e.id||e.manifest.operationId!==e.request.operationId||f(e.manifest.dataset)!==f(e.request.dataset)||e.sources.length!==e.request.caseIds.length||e.sources.length!==e.manifest.population.length||e.sources.some((i,u)=>i.taskHash!==f(i.task)||i.task.id!==e.request.caseIds[u]||i.boundaryId!==i.task.id||e.manifest.population[u]?.caseId!==i.boundaryId))throw new Error("Recorded execution identity or population integrity failed.");return e}d(Me,"verifyConnectedRecordedExecution");var Ft=a.object({projectId:C.optional(),cursor:C.optional(),limit:a.number().int().min(1).max(50).default(20)}).strict(),Ht=a.object({id:C,teamId:C,ownerUserId:C,projectId:C,name:a.string().min(1).max(500),dataset:le.shape.dataset,manifestHash:_,contentHash:_,caseCount:a.number().int().min(1).max(1e4),createdAt:a.string().datetime()}).strict(),Mt=a.object({teamId:C,items:a.array(Ht).max(50),nextCursor:C.nullable()}).strict(),Dt=a.object({datasetId:a.string().trim().min(1).max(240),expectedRevision:a.number().int().positive(),operationId:a.string().trim().min(1).max(240),graders:a.array(Pe).min(1).max(100).optional()}).strict().superRefine((t,e)=>{t.graders&&new Set(t.graders.map(n=>n.id)).size!==t.graders.length&&e.addIssue({code:"custom",path:["graders"],message:"Choose one exact revision of each grader."})}),N=a.string().min(1).max(500),k=a.number().int().nonnegative(),Jt=a.object({teamId:N,ownerUserId:N,projectId:N.nullable(),status:a.enum(["active","paused","archived"]),revision:k,state:a.enum(["collecting","pending","attention","paused","archived"]),lastReconciledAt:a.string().datetime().nullable(),lastCapturedAt:a.string().datetime().nullable(),historyDays:a.number().int().positive(),sources:k,tasks:k,datasets:a.array(a.object({datasetId:N,projection:a.enum(["turn","conversation"]),revision:k}).strict()).max(2),latestBatch:a.object({operationId:N,updatedAt:a.string().datetime(),scanned:k,captured:k,unchanged:k,pending:k,failed:k,excluded:k,paused:k,hasMore:a.boolean()}).strict().nullable()}).strict(),h=a.string().min(1).max(500),E=a.string().regex(/^[a-f0-9]{64}$/),De=a.object({teamId:h,projectId:h.nullable(),status:a.enum(["active","paused","archived"]),revision:a.number().int().nonnegative()}).strict(),Kt=a.object({teamId:h,operationId:h,projectId:h.nullable(),outcomes:a.array(a.object({conversationId:h,state:a.enum(["captured","unchanged","pending","paused","excluded","failed"]),sourceId:h.optional(),snapshotHash:E.optional(),reason:a.string().optional()}).strict()).max(50),nextCursor:h.nullable()}).strict(),Gt=a.object({teamId:h,ref:B,origin:W.shape.source,sessionId:h,projectId:h,capturedAt:a.string().datetime(),unmappedEvidence:a.object({count:a.number().int().nonnegative().max(1e5),contentHash:E}).strict(),evidence:a.object({input:a.array(K),observed:a.array(K),answer:a.json(),boundary:qe}).strict()}).strict(),Wt=a.object({teamId:h,sourceId:h,snapshotHash:E,contentHash:E,count:a.number().int().nonnegative(),offset:a.number().int().nonnegative(),events:a.array(K).max(50),nextOffset:a.number().int().nonnegative().nullable()}).strict(),Xt=a.object({teamId:h,source:q.shape.source,sourceHash:E,previewHash:E,destination:q.shape.destination,issues:a.array(a.object({file:a.string(),message:a.string()}).strict()).max(100),sessions:a.array(a.object({sessionHash:E,sessionId:h,origin:W.shape.source,exporterVersion:a.string().nullable(),eventCount:a.number().int().nonnegative(),boundaries:a.array(a.object({id:h,projection:a.enum(["turn","conversation"]),answer:a.boolean(),process:a.enum(["retained","partial","absent"]),terminal:a.enum(["completed","failed","cancelled","unknown"])}).strict()).max(5001),warnings:a.array(a.string()).max(100),sample:a.array(a.object({role:a.enum(["user","assistant","system","tool"]).nullable(),text:a.string().max(4e3)}).strict()).max(3)}).strict()).max(1e3)}).strict(),Je=a.object({teamId:h,operationId:h,requestHash:E,previewHash:E,projectId:h.optional(),state:a.enum(["admitting","publishing","completed","failed"]),outcomes:a.array(a.object({sessionHash:E,sourceId:h,status:a.enum(["imported","already_present"]),datasets:a.array(a.object({datasetId:h,revision:a.number().int().positive(),changed:a.boolean()}).strict()).max(2)}).strict()).max(1e3),error:a.string().optional()}).strict(),Ke=class extends Error{static{d(this,"ConnectedEvidenceError")}constructor(t,e,n){super(n),this.status=t,this.code=e,this.name="ConnectedEvidenceError"}status;code},ir=class{static{d(this,"ConnectedEvidenceClient")}constructor(t){this.options=t;let e=new URL(t.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!t.apiKey.trim()||!t.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;baseUrl;async capture(t,e){let n=ze.parse(t),r=Kt.parse(await this.request("/capture","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.outcomes.length>n.limit||n.conversationId&&r.outcomes.some(o=>o.conversationId!==n.conversationId))throw new Error("Capture receipt differs from its requested source or operation.");return r}async retainStartingAssets(t,e){let n=Be.parse(t),r=ce(await this.request("/starting-assets","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.requestHash!==f(n)||f(r.source)!==f(n.source)||r.assets.length!==n.proofs.length||r.assets.some((o,s)=>o.path!==n.proofs[s].path))throw new Error("Starting assets differ from the exact source, operation or selected paths.");return r}async startingAssets(t,e){let n=ce(await this.request(`/starting-assets/${encodeURIComponent(h.parse(t))}`,"GET",void 0,e));if(this.scope(n.teamId),n.id!==t)throw new Error("Starting assets identity mismatch.");return n}async list(t={},e){let n=a.object({projectId:h.optional(),cursor:h.optional(),limit:a.number().int().min(1).max(50).default(20)}).strict().parse(t),r=new URLSearchParams(Object.entries(n).filter(([,s])=>s!==void 0).map(([s,i])=>[s,String(i)])),o=a.object({teamId:h,items:a.array(W).max(50),nextCursor:h.nullable()}).strict().parse(await this.request(`?${r}`,"GET",void 0,e));if(this.scope(o.teamId),o.items.length>n.limit||new Set(o.items.map(s=>s.sourceId)).size!==o.items.length||o.nextCursor!==null&&o.nextCursor===n.cursor||n.projectId&&o.items.some(s=>s.projectId!==n.projectId))throw new Error("Connected source page differs from its requested scope.");return o}async read(t,e){let n=B.parse(t),r=Gt.parse(await this.request(`/${encodeURIComponent(n.id)}/cases/${encodeURIComponent(n.boundaryId)}?snapshotHash=${n.snapshotHash}&revisionHash=${n.boundaryRevisionHash}`,"GET",void 0,e));if(this.scope(r.teamId),f(r.ref)!==f(n)||r.evidence.boundary.id!==n.boundaryId||r.evidence.boundary.revisionHash!==n.boundaryRevisionHash||f(r.evidence.input)!==r.evidence.boundary.inputHash||f(r.evidence.observed)!==n.boundaryRevisionHash||r.evidence.boundary.outputHash!==null&&f(r.evidence.answer)!==r.evidence.boundary.outputHash)throw new Error("Connected case readback differs from its exact snapshot or cutoff.");return r}async setCollection(t,e){let n=De.parse(await this.request("/collection","PUT",a.object({paused:a.boolean()}).strict().parse({paused:t}),e));return this.scope(n.teamId),n}async collection(t){let e=De.parse(await this.request("/collection","GET",void 0,t));return this.scope(e.teamId),e}async collectionStatus(t){let e=Jt.parse(await this.request("/collection/status","GET",void 0,t));return this.scope(e.teamId),e}async unmappedEvents(t,e){let n=a.object({id:h,snapshotHash:E,contentHash:E,offset:a.number().int().nonnegative().default(0),limit:a.number().int().min(1).max(50).default(20)}).strict().parse(t),r=Wt.parse(await this.request(`/${encodeURIComponent(n.id)}/unmapped-events?snapshotHash=${n.snapshotHash}&offset=${n.offset}&limit=${n.limit}`,"GET",void 0,e));if(this.scope(r.teamId),r.sourceId!==n.id||r.snapshotHash!==n.snapshotHash||r.contentHash!==n.contentHash||r.offset!==n.offset||r.events.length>n.limit||r.events.some((o,s)=>o.sequence!==n.offset+s)||r.nextOffset!==null&&r.nextOffset!==n.offset+r.events.length)throw new Error("Unmapped source event page differs from its pinned snapshot.");return r}async homeSummary(t,e){let n=a.object({from:a.string().datetime(),to:a.string().datetime(),projectId:h.optional()}).strict(),r=n.parse(t),o=new URLSearchParams(Object.entries(r)),s=a.object({teamId:h,range:n,activity:a.object({conversations:a.number().int().nonnegative(),turns:a.number().int().nonnegative(),chatTurns:a.number().int().nonnegative(),workTurns:a.number().int().nonnegative()}).strict(),accounting:a.object({contextSnapshots:a.number().int().nonnegative()}).strict(),usage:Oe}).strict().parse(await this.request(`/summary?${o}`,"GET",void 0,e));if(this.scope(s.teamId),f(s.range)!==f(r)||s.activity.chatTurns+s.activity.workTurns!==s.activity.turns)throw new Error("Activity summary differs from its requested range.");for(let i of[s.usage.days,s.usage.modes,s.usage.models]){if(new Set(i.map(u=>u.key)).size!==i.length)throw new Error("Duplicate usage summary group.");for(let u of Object.keys(s.usage.total))if(i.reduce((c,p)=>c+p[u],0)!==s.usage.total[u])throw new Error("Usage totals differ from their displayed groups.")}return s}async uploadPart(t,e){let n=Le.parse(t),r=a.object({teamId:h,hash:E,parts:a.number().int(),index:a.number().int()}).strict().parse(await this.request("/imports/upload","POST",n,e));if(this.scope(r.teamId),r.hash!==n.hash||r.parts!==n.parts||r.index!==n.index)throw new Error("Upload receipt differs from its part identity.");return r}async preview(t,e){let n=q.parse(t),r=Xt.parse(await this.request("/imports/preview","POST",n,e));if(this.scope(r.teamId),r.source!==n.source||f(r.destination)!==f(n.destination)||r.sessions.some(o=>o.origin!==n.source)||new Set(r.sessions.map(o=>o.sessionHash)).size!==r.sessions.length)throw new Error("Import preview differs from its source or destination.");return r}async commit(t,e){let n=ie.parse(t),r=Je.parse(await this.request("/imports/commit","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.previewHash!==n.previewHash||r.requestHash!==f(n)||r.outcomes.some(o=>!n.selection.some(s=>s.sessionHash===o.sessionHash))||r.state==="completed"&&r.outcomes.length!==n.selection.length)throw new Error("Import receipt differs from its exact selection or operation.");return r}async readImport(t,e){let n=h.parse(t),r=Je.parse(await this.request(`/imports/${encodeURIComponent(n)}`,"GET",void 0,e));if(this.scope(r.teamId),r.operationId!==n)throw new Error("Import identity mismatch.");return r}async prepareRecorded(t,e){let n=le.parse(t),r=Me(await this.request("/recorded-executions","POST",n,e));if(this.scope(r.teamId),f(r.request)!==f(n))throw new Error("Recorded admission differs from its selected Dataset/cases.");return r}async listRecordedExecutions(t={},e){let n=Ft.parse(t),r=new URLSearchParams(Object.entries(n).filter(([,s])=>s!==void 0).map(([s,i])=>[s,String(i)])),o=Mt.parse(await this.request(`/recorded-executions?${r}`,"GET",void 0,e));if(this.scope(o.teamId),o.items.length>n.limit||o.items.some((s,i)=>s.teamId!==o.teamId||n.projectId&&s.projectId!==n.projectId||n.cursor&&s.id<=n.cursor||i>0&&s.id<=o.items[i-1].id)||o.items.some(s=>s.ownerUserId!==o.items[0]?.ownerUserId)||o.nextCursor!==null&&(n.cursor!==void 0&&o.nextCursor<=n.cursor||o.items.length>0&&o.nextCursor<o.items.at(-1).id))throw new Error("Recorded execution page differs from its requested scope or cursor.");return o}async recordedExecution(t,e){let n=Me(await this.request(`/recorded-executions/${encodeURIComponent(h.parse(t))}`,"GET",void 0,e));if(this.scope(n.teamId),n.id!==t)throw new Error("Recorded execution identity mismatch.");return n}async publishDataset(t,e){let n=Dt.parse(t),r=de.parse(await this.request("/datasets/publish","POST",n,e));this.scope(r.teamId);let o=r.workspace.draft.metadata.connectedPublication;if(r.datasetId!==n.datasetId||!r.publication||!o||typeof o!="object"||!("requestHash"in o)||o.requestHash!==f(n))throw new Error("Published Dataset identity or original selection mismatch.");return r}async createSelection(t,e){let n=a.object({operationId:h.max(240),projectId:h.max(240),name:a.string().trim().min(1).max(200),cases:a.array(B).min(1).max(500)}).strict().parse(t),r=de.parse(await this.request("/datasets/selection","POST",n,e));if(this.scope(r.teamId),r.originProjectId!==n.projectId||r.workspace.draft.tasks.length!==n.cases.length||r.workspace.draft.tasks.some((o,s)=>f(o.input&&typeof o.input=="object"&&!Array.isArray(o.input)?o.input.connectedEvidenceRef:null)!==f(n.cases[s])))throw new Error("Selected Dataset differs from its exact source population.");return r}scope(t){if(t!==this.options.teamId)throw new Error("Connected evidence workspace mismatch.")}async request(t,e,n,r){let{response:o,value:s}=await Te(this.options.fetch??fetch,`${this.baseUrl}/v1/connected-evidence${t}`,{method:e,signal:r,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}},(i,u,c)=>new Ke(i,u,c));if(!o.ok){let i=a.object({code:a.string(),message:a.string()}).safeParse(s);throw new Ke(o.status,i.success?i.data.code:"connected_request_failed",i.success?i.data.message:"Connected evidence request failed.")}return s}},I=a.string().trim().min(1).max(240),ur=a.object({id:I,expectedRevision:a.number().int().positive(),manifest:$e}).strict().refine(t=>t.id===t.manifest.connectionId&&t.expectedRevision===t.manifest.connectionRevision,"Collector coverage scope differs from its connection."),pr=a.object({id:I,cutoff:a.iso.datetime().optional()}).strict(),mr=a.object({schemaVersion:a.literal("openpond.connectedSyncCoverageReceipt.v1"),id:I,teamId:I,ownerUserId:I,connectionId:I,connectionRevision:a.number().int().positive(),receivedAt:a.iso.datetime(),summary:je}).strict(),lr=a.object({id:I,source:q.shape.source,machineId:I,sourceInstanceId:I,sourceLabel:a.string().trim().min(1).max(200),sourceRoot:a.string().min(1).max(2e3),destination:q.shape.destination,since:a.string().datetime().nullable(),keepSyncing:a.boolean(),expectedRevision:a.number().int().nonnegative()}).strict(),hr=a.object({id:I,expectedRevision:a.number().int().positive(),action:a.enum(["pause","resume","disconnect"])}).strict(),fr=a.object({id:I,operationId:I,expectedRevision:a.number().int().positive()}).strict(),yr=a.object({id:I,expectedRevision:a.number().int().positive(),pendingOperations:a.number().int().min(0).max(1e4),error:a.string().max(500).nullable(),completedSyncRevision:a.number().int().nonnegative().default(0)}).strict(),gr=a.object({teamId:I,id:I,revision:a.number().int().positive(),source:q.shape.source,sourceLabel:a.string(),sourceRoot:a.string(),taskDatasetId:I.nullable(),conversationDatasetId:I.nullable(),machineId:I,sourceInstanceId:I,projectId:I,datasetIds:a.array(I).max(2),since:a.string().datetime().nullable(),keepSyncing:a.boolean(),state:a.enum(["active","paused","disconnected"]),health:a.enum(["online","offline"]),lastHeartbeatAt:a.string().datetime().nullable(),lastAdmissionAt:a.string().datetime().nullable(),pendingOperations:a.number().int().nonnegative(),admittedTasks:a.number().int().nonnegative(),error:a.string().nullable(),requestedSyncRevision:a.number().int().nonnegative().default(0),completedSyncRevision:a.number().int().nonnegative().default(0),syncRequestedAt:a.string().datetime().nullable().default(null),syncCompletedAt:a.string().datetime().nullable().default(null)}).strict().refine(t=>t.completedSyncRevision<=t.requestedSyncRevision&&t.requestedSyncRevision<=t.revision,"Invalid sync acknowledgement generation."),br=a.object({connectionId:I,expectedRevision:a.number().int().positive(),request:ie}).strict();function Pr(t){let e=d(r=>`/v1/training/candidate-evaluations/${encodeURIComponent(r)}`,"path");function n(r,o,s){let i=Zt.parse(r);if(i.teamId!==o||s&&i.id!==s)throw new Error("The preparation belongs to another workspace or candidate operation.");return i}return d(n,"read"),{async options(r,o={}){let s=new URLSearchParams({teamId:r,...o}),i=Yt.parse(await t(`/v1/training/candidates?${s}`));if(i.teamId!==r)throw new Error("The candidate catalog belongs to another workspace.");return i},async save(r){let o=We.parse(r),s=n(await t(`/v1/training/candidate-evaluations?teamId=${encodeURIComponent(o.teamId)}`,{method:"POST",body:JSON.stringify(o)}),o.teamId);if(s.requestHash!==f(o))throw new Error("The saved preparation differs from the selected candidate or frozen evaluation.");return s},async get(r,o){return n(await t(`${e(o)}?teamId=${encodeURIComponent(r)}`),r,o)},async control(r,o,s,i){let u=Qt.parse(i),c=n(await t(`${e(o)}/${s}?teamId=${encodeURIComponent(r)}`,{method:"POST",body:JSON.stringify(u)}),r,o);if(c.requestHash!==u.requestHash)throw new Error("The command returned a different frozen evaluation.");return c}}}d(Pr,"createCandidateEvaluationClient");var S=a.string().trim().min(1).max(200),he=a.string().regex(/^[a-f0-9]{64}$/),Ge=a.object({id:S,contentHash:he}).strict(),Vt=a.object({artifact:Ge,trainingJobId:S,configurationId:S,baseProfileId:S,ready:a.boolean(),reason:a.string().max(1e3).nullable()}).strict(),Yt=a.object({teamId:S,ownerUserId:S,items:a.array(Vt).max(100),nextCursor:S.nullable()}).strict(),We=a.object({teamId:S,operationId:S,artifact:Ge,configuration:L}).strict().superRefine((t,e)=>{(t.configuration.request.teamId!==t.teamId||t.configuration.request.policy.kind==="fixture"||t.configuration.request.policy.candidate)&&e.addIssue({code:"custom",message:"Choose one exact model-backed evaluation before preparing the trained version."})}),Zt=a.object({schemaVersion:a.literal("openpond.candidateEvaluationPreparation.v1"),teamId:S,ownerUserId:S,id:S,revision:a.number().int().positive(),requestHash:he,request:We,trainingJobId:S,dispatchId:S,lastOperationId:S.nullable(),runtime:a.object({poolId:S,endpointId:S.nullable(),baseProfileId:S,workerImageDigest:a.string().regex(/^sha256:[a-f0-9]{64}$/),modelId:S.nullable()}).strict().nullable(),state:a.enum(["configured","preparing","ready","dispatching","submitted","cleaning","completed","failed","cancelled"]),experimentId:S.nullable(),authorizedAt:a.iso.datetime().nullable(),cancelledAt:a.iso.datetime().nullable(),reason:a.string().max(1e3).nullable(),createdAt:a.iso.datetime(),updatedAt:a.iso.datetime()}).strict().superRefine((t,e)=>{(t.requestHash!==f(t.request)||!t.runtime&&["ready","dispatching","submitted","completed"].includes(t.state))&&e.addIssue({code:"custom",message:"The exact candidate preparation request or runtime changed."})}),Qt=a.object({operationId:S,expectedRevision:a.number().int().positive(),requestHash:he}).strict();var x=a.string().trim().min(1).max(200),F=a.string().regex(/^[a-f0-9]{64}$/),H=a.string().datetime(),Xe=a.object({operationId:x,id:x.optional(),expectedRevision:a.number().int().nonnegative(),teamId:x,projectId:x.nullable(),enabled:a.boolean(),configuration:L,cadence:a.discriminatedUnion("kind",[a.object({kind:a.literal("interval"),seconds:a.number().int().min(60).max(31536e3)}).strict(),a.object({kind:a.literal("nightly"),calendar:Ae}).strict()]),maximumTotalSpendUsd:a.number().finite().positive().max(1e4),maximumAttempts:a.number().int().min(1).max(20)}).strict().superRefine((t,e)=>{(t.configuration.request.teamId!==t.teamId||(t.configuration.request.project?.id??null)!==t.projectId)&&e.addIssue({code:"custom",message:"The scheduled Experiment must retain its actual workspace and Project."}),t.configuration.maximumCostUsd>t.maximumTotalSpendUsd&&e.addIssue({code:"custom",message:"The run ceiling exceeds the approved cumulative schedule ceiling."})}),en=a.object({id:x,scheduledAt:H,coalescedThroughAt:H,coalescedCount:a.number().int().nonnegative(),configurationHash:F,operationId:x,state:a.enum(["reserved","dispatching","running","cleaning","completed","failed","cancelled","uncertain"]),executionId:x.nullable(),attempt:a.number().int().positive(),maximumCostUsd:a.number().finite().positive(),actualSpendUsd:a.number().finite().nonnegative().nullable(),cleanupComplete:a.boolean(),error:a.string().max(4e3).nullable()}).strict(),tn=a.object({schemaVersion:a.literal("openpond.experimentEvaluationSchedule.v1"),id:x,revision:a.number().int().positive(),actorId:x,teamId:x,projectId:x.nullable(),operationId:x,requestHash:F,configuration:L,configurationHash:F,cadence:Xe.shape.cadence,state:a.enum(["scheduled","disabled","blocked"]),nextRunAt:H.nullable(),maximumTotalSpendUsd:a.number().finite().positive(),maximumAttempts:a.number().int().positive(),lastEvaluatedConfigurationHash:F.nullable(),newerUnevaluatedRelease:G.nullable(),fires:a.array(en).max(1e4),reason:a.string().max(4e3).nullable(),createdAt:H,updatedAt:H,contentHash:F}).strict();function nn(t){let{operationId:e,request:n,...r}=t,{operationId:o,...s}=n;return f({...r,request:s})}d(nn,"scheduledExperimentHash");function rn(t){let e=tn.parse(t);if(_e(e,"Scheduled Experiment"),e.configurationHash!==nn(e.configuration)||e.configuration.request.teamId!==e.teamId||(e.configuration.request.project?.id??null)!==e.projectId)throw new Error("Scheduled Experiment immutable authority differs from its recipe.");return e}d(rn,"verifyExperimentEvaluationSchedule");function $r(t){return rn({...t,contentHash:f(t)})}d($r,"sealExperimentEvaluationSchedule");var on=a.object({teamId:x,id:x,operationId:x,expectedRevision:a.number().int().positive(),action:a.enum(["cancel_active","retry_active","pause"])}).strict(),jr=a.discriminatedUnion("operation",[a.object({operation:a.literal("publish"),request:Xe}).strict(),a.object({operation:a.literal("control"),request:on}).strict(),a.object({operation:a.literal("read"),id:x}).strict(),a.object({operation:a.literal("list"),cursor:x.optional(),limit:a.number().int().min(1).max(100).default(50)}).strict()]);function an(t){return{list:d((e={})=>t.listSandboxRuntimes(e),"list"),create:d(e=>t.createSandboxRuntime(e),"create"),handle:d((e,n=null)=>t.sandboxRuntime(e,n),"handle"),get:d(e=>t.getSandboxRuntime(e),"get"),createSandbox:d((e,n={},r={})=>t.createSandboxRuntimeSandbox(e,n,r),"createSandbox"),updateStatus:d((e,n)=>t.updateSandboxRuntimeStatus(e,n),"updateStatus"),events:d(e=>t.listSandboxRuntimeEvents(e),"events"),event:d((e,n)=>t.emitSandboxRuntimeEvent(e,n),"event"),checkpoint:d((e,n={})=>t.checkpointSandboxRuntime(e,n),"checkpoint"),promote:d((e,n,r={})=>t.promoteSandboxRuntime(e,n,r),"promote"),preserveSource:d((e,n={},r={})=>t.preserveSandboxRuntimeSource(e,n,r),"preserveSource")}}d(an,"createSandboxRuntimeNamespace");function sn(t){return{list:d((e={})=>t.list(e),"list"),create:d(e=>t.create(e),"create"),get:d(e=>t.get(e),"get"),pricing:d(()=>t.pricing(),"pricing"),costs:d((e={})=>t.costs(e),"costs")}}d(sn,"createSandboxNamespace");function dn(t){return{list:d(e=>t.listProjects(e),"list"),upsert:d(e=>t.upsertProject(e),"upsert"),upsertGitRemote:d(e=>t.upsertProjectGitRemote(e),"upsertGitRemote"),get:d((e,n)=>t.getProject(e,n),"get"),update:d((e,n)=>t.updateProject(e,n),"update"),sync:d((e,n)=>t.syncProject(e,n),"sync"),ensureGitRemote:d((e,n)=>t.ensureProjectGitRemote(e,n),"ensureGitRemote"),getGitRemote:d((e,n)=>t.ensureProjectGitRemote(e,n),"getGitRemote"),git:d((e,n)=>t.ensureProjectGitRemote(e,n),"git"),uploadSource:d((e,n)=>t.uploadProjectSource(e,n),"uploadSource"),archive:d((e,n)=>t.archiveProject(e,n),"archive")}}d(dn,"createSandboxProjectNamespace");function cn(t){return{get:d(e=>t.getHostedProfile(e),"get"),status:d(e=>t.getHostedProfile(e),"status"),ensureHosted:d(e=>t.ensureHostedProfile(e),"ensureHosted"),push:d(e=>t.pushHostedProfile(e),"push")}}d(cn,"createSandboxProfileNamespace");function un(t){return{list:d(e=>t.listAgents(e),"list"),upsert:d(e=>t.upsertAgent(e),"upsert"),get:d((e,n)=>t.getAgent(e,n),"get"),update:d((e,n)=>t.updateAgent(e,n),"update"),archive:d((e,n)=>t.archiveAgent(e,n),"archive"),run:d((e,n)=>t.runAgent(e,n),"run"),sourceDeployPlan:d((e,n)=>t.getAgentSourceDeployPlan(e,n),"sourceDeployPlan"),manifestSnapshots:d((e,n)=>t.listAgentManifestSnapshots(e,n),"manifestSnapshots"),requestSourceChecks:d((e,n)=>t.requestAgentSourceChecks(e,n),"requestSourceChecks"),configureSourceSetup:d((e,n)=>t.configureAgentSourceSetup(e,n),"configureSourceSetup"),publishSource:d((e,n)=>t.publishAgentSource(e,n),"publishSource")}}d(un,"createSandboxAgentNamespace");function pn(t,e,n=null){let r=d(async(c={},p={})=>{let b=await t.getSandboxRuntime(e);return b.sandboxId?t.get(b.sandboxId):t.createSandboxRuntimeSandbox(e,c,p).then(l=>l.sandbox)},"currentSandbox"),o=d(async(c={},p={})=>{let b=await t.getSandboxRuntime(e);if(!b.sandboxId)return t.createSandboxRuntimeSandbox(e,c,p).then(g=>g.sandbox);let l=await t.get(b.sandboxId);return l.state==="stopped"?t.start(l.id,p).then(g=>g.sandbox):l.state==="archived"?t.restore(l.id).then(g=>g.sandbox):l.state==="deleted"||l.state==="error"?t.createSandboxRuntimeSandbox(e,c,p).then(g=>g.sandbox):l},"resume");return{id:e,initial:n,get:d(()=>t.getSandboxRuntime(e),"get"),sandbox:r,resume:o,createSandbox:d((c={},p={})=>t.createSandboxRuntimeSandbox(e,c,p),"createSandbox"),status:d(async c=>{if(typeof c!="string")return t.updateSandboxRuntimeStatus(e,c);let p=await t.getSandboxRuntime(e);return t.updateSandboxRuntimeStatus(e,{status:c,expectedVersion:p.version})},"status"),events:d(()=>t.listSandboxRuntimeEvents(e),"events"),event:d(c=>t.emitSandboxRuntimeEvent(e,c),"event"),recordCommit:d((c,p={})=>t.emitSandboxRuntimeEvent(e,{...p,type:p.type??"git.commit",commitSha:c}),"recordCommit"),checkpointHint:d((c={})=>t.emitSandboxRuntimeEvent(e,{type:"workflow.checkpoint_hint",summary:c.summary??c.reason??"Workflow checkpoint hint",payload:{...c.payload,reason:c.reason??null},artifactRefs:c.artifactRefs,lifecycleHint:{kind:"checkpoint",reason:c.reason??null}}),"checkpointHint"),waitForUser:d(async(c={})=>{await t.emitSandboxRuntimeEvent(e,{type:"workflow.waiting_for_user",summary:c.summary??c.reason??"Waiting for user",payload:{...c.payload,reason:c.reason??null},lifecycleHint:{kind:"waiting_for_user",reason:c.reason??null}});let p=await t.getSandboxRuntime(e);return p.status==="waiting_for_user"?p:t.updateSandboxRuntimeStatus(e,{status:"waiting_for_user",expectedVersion:p.version,summary:c.summary??c.reason,metadata:{workflowWaitForUserReason:c.reason??null}})},"waitForUser"),keepAlive:d((c={})=>{let p=mn(c);return t.emitSandboxRuntimeEvent(e,{type:"workflow.keepalive",summary:c.summary??c.reason??"Workflow keepalive",payload:{...c.payload,reason:c.reason??null,keepaliveUntil:p},lifecycleHint:{kind:"keepalive",reason:c.reason??null,keepaliveUntil:p}})},"keepAlive"),checkpoint:d(c=>t.checkpointSandboxRuntime(e,c),"checkpoint"),files:{write:d(async(c,p)=>t.uploadFile((await o()).id,c,p),"write"),read:d(async c=>t.downloadFile((await o()).id,c),"read"),readResponse:d(async c=>t.downloadFileResponse((await o()).id,c),"readResponse"),list:d(async(c={})=>t.listFiles((await o()).id,c),"list"),delete:d(async(c,p={})=>t.deleteFile((await o()).id,c,p),"delete"),search:d(async c=>t.searchFiles((await o()).id,c),"search"),stat:d(async c=>t.statFile((await o()).id,c),"stat"),mkdir:d(async c=>t.mkdir((await o()).id,c),"mkdir"),move:d(async c=>t.moveFile((await o()).id,c),"move")},commands:{run:d(async c=>t.exec((await o()).id,typeof c=="string"?{command:c}:c),"run")},ports:{expose:d(async c=>t.openPort((await o()).id,typeof c=="number"?{port:c}:c),"expose")},promote:d((c,p={})=>t.promoteSandboxRuntime(e,c,p),"promote"),preserveSource:d((c={},p={})=>t.preserveSandboxRuntimeSource(e,c,p),"preserveSource"),archive:d(async c=>{let p=c??(await t.getSandboxRuntime(e)).version;return t.updateSandboxRuntimeStatus(e,{status:"archived",expectedVersion:p})},"archive")}}d(pn,"createSandboxRuntimeHandle");function mn(t){if(t?.until instanceof Date)return t.until.toISOString();if(typeof t?.until=="string"&&t.until.trim())return new Date(t.until).toISOString();let e=typeof t?.seconds=="number"&&Number.isFinite(t.seconds)?Math.max(1,Math.trunc(t.seconds)):60;return new Date(Date.now()+e*1e3).toISOString()}d(mn,"runtimeKeepaliveUntilIso");async function ln(t,e={}){let n=`openpond-code-smoke-${Date.now()}`,r=`openpond-code-exec-ok:${n}`,o=`openpond-code-preview-ok:${n}`,s=`openpond-code-file-ok:${n}`,i=4173,u=null,c=null,p=!1,b=!1;try{let l=await Ye(t,await t.create({repo:e.repo??"https://github.com/octocat/Hello-World",resources:{cpu:e.cpu??1,memoryGb:e.memoryGb??1,diskGb:e.diskGb??8},budget:{maxUsd:e.budgetUsd??"0.05"},quotas:{maxSpendUsd:e.budgetUsd??"0.05",maxDurationSeconds:600,idleTimeoutSeconds:600,maxOpenPorts:2},metadata:{runId:n,source:"openpond-code-sandbox-smoke"}},{async:!0}));u=l.id;let g=e.expectedMppMode;if(g&&l.reservation.mpp?.mode!==g)throw new Error(`expected ${g} reservation, got ${l.reservation.mpp?.mode??"none"}`);if(!g&&!l.reservation.mpp?.mode)throw new Error("expected sandbox reservation MPP metadata");let P=await t.exec(l.id,{command:[`printf '${r}\\n'`,"test -f README && printf 'repo-clone-ok\\n'","cat > server.cjs <<'EOF'","const { createServer } = require('node:http');",`createServer((_request, response) => response.end('${o}')).listen(${i}, '0.0.0.0');`,"EOF","nohup node server.cjs > server.log 2>&1 & sleep 1"].join(`
3
- `),timeoutSeconds:120});if(P.command.status!=="succeeded")throw new Error(`expected command success, got ${P.command.status}`);if(!P.command.output.includes(r))throw new Error("expected exec marker");if(await t.uploadFile(l.id,"openpond-code-smoke.txt",s),await t.downloadFile(l.id,"openpond-code-smoke.txt")!==s)throw new Error("expected file roundtrip marker");let U=null;if(e.snapshot||e.fork){let R=await t.createSnapshot(l.id,{async:!0,name:`openpond-code-smoke-${n}`,replay:{entrypoints:[{command:"cat openpond-code-smoke.txt",name:"default"}],retention:{class:"pinned"},safety:{cleanup:"delete",idleTimeoutSeconds:600,internetEgress:"block",maxDurationSeconds:600,maxSpendUsd:e.budgetUsd??"0.05",publicPreview:!1},validation:{commands:[{command:"test -f openpond-code-smoke.txt"}]}}}),A=R.snapshot??(await yn(t,l.id,R.snapshotJob?.snapshotId)).snapshot;if(U=A.id,A.state!=="ready")throw new Error(`expected ready snapshot, got ${A.state}`)}if(e.fork){if(!U)throw new Error("expected snapshot id before fork");let R=await Ye(t,(await t.forkSnapshot(U,{budget:{maxUsd:e.budgetUsd??"0.05"},metadata:{source:"openpond-code-sandbox-smoke-fork",templateSnapshotId:U}},{async:!0})).sandbox);c=R.id;let A=await t.exec(R.id,{command:"cat openpond-code-smoke.txt",timeoutSeconds:120});if(A.command.status!=="succeeded")throw new Error(`expected fork command success, got ${A.command.status}`);if(!A.command.output.includes(s))throw new Error("expected fork snapshot marker");e.keep||(await fe(t,R.id),b=!0)}let j=null;if(e.preview!==!1){let R=await t.openPort(l.id,{label:"openpond-code-smoke",port:i}),A=await fetch(R.preview.url);j=A.status;let $t=await A.text();if(A.status!==200)throw new Error(`expected preview HTTP 200, got ${A.status}`);if(!$t.includes(o))throw new Error("expected preview marker")}let{sandbox:ne,receipts:J}=await hn(t,l.id);return e.keep||(await fe(t,l.id),p=!0),{deleted:p,execOutput:P.command.output.trim(),fileRoundtrip:!0,forkSandboxId:c,previewStatus:j,receiptRefs:J.map(R=>R.mpp.receiptRef??null),reservationRef:l.reservation.mpp?.reservationRef??null,runId:n,sandboxId:l.id,snapshotId:U,state:ne.state}}finally{c&&!e.keep&&!b&&await Ve(t,c),u&&!e.keep&&!p&&await Ve(t,u)}}d(ln,"runSandboxSmoke");async function hn(t,e){try{await t.stop(e)}catch{await t.stop(e,{async:!0})}let n=await Qe(t,e,new Set(["stopped","deleted"]),"stop"),r=await fn(t,e);if(r.length===0)throw new Error("expected receipt readback");return{sandbox:n,receipts:r}}d(hn,"stopSandboxForSmoke");async function fe(t,e){try{let n=await t.delete(e);if(n.state==="deleted")return n;await t.delete(e,{async:!0})}catch{await t.delete(e,{async:!0})}return Qe(t,e,new Set(["deleted"]),"delete")}d(fe,"deleteSandboxForSmoke");async function Ve(t,e){try{await fe(t,e)}catch{await t.delete(e,{async:!0}).catch(()=>{})}}d(Ve,"cleanupSandboxBestEffort");async function Qe(t,e,n,r){let i=Date.now()+3e5,u=await t.get(e);for(;Date.now()<i;){if(n.has(u.state))return u;if(u.state==="error")throw new Error(`sandbox ${r} failed: ${e}`);await V(3e3),u=await t.get(e)}throw new Error(`sandbox ${r} did not reach ${[...n].join("/")} before timeout: ${e} (${u.state})`)}d(Qe,"waitForSandboxState");async function fn(t,e){let o=Date.now()+12e4,s=await t.receipts(e);for(;Date.now()<o;){if(s.length>0)return s;await V(3e3),s=await t.receipts(e)}return s}d(fn,"waitForReceipts");async function Ye(t,e){if(e.state==="running"||e.state==="stopped")return e;if(e.state==="error")throw new Error(`sandbox create failed: ${e.id}
4
- ${e.logs.join(`
5
- `)}`);let n=12*6e4,r=3e3,o=Date.now()+n,s=e;for(;Date.now()<o;){if(await V(r),s=await t.get(e.id),s.state==="running"||s.state==="stopped")return s;if(s.state==="error")throw new Error(`sandbox create failed: ${s.id}
6
- ${s.logs.join(`
7
- `)}`)}throw new Error(`sandbox create did not reach running state before timeout: ${s.id} (${s.state})`)}d(Ye,"waitForCreateReady");async function yn(t,e,n){if(!n)throw new Error("snapshot job did not return snapshot id");let r=12*6e4,o=3e3,s=Date.now()+r,i=await t.get(e);for(;Date.now()<s;){let u=i.snapshots?.find(p=>p.id===n);if(u?.state==="ready")return{sandbox:i,snapshot:u};let c=i.snapshotJobs?.find(p=>p.snapshotId===n);if(c?.status==="failed")throw new Error(`snapshot job failed: ${c.error??n}`);await V(o),i=await t.get(e)}throw new Error(`snapshot did not reach ready state before timeout: ${n}`)}d(yn,"waitForSnapshotReady");function V(t){return new Promise(e=>setTimeout(e,t))}d(V,"sleep");function M(t={}){return t.async||t.respondAsync?{Prefer:"respond-async"}:void 0}d(M,"asyncRequestHeaders");var gn="https://openpond.ai",ye="https://api.openpond.ai";async function Ze(t){let e=await X(t.sandboxApiUrl,t.apiKey,t.path,{timeoutMs:0,maxResponseBytes:0});if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,o="";try{for(;;){let{done:s,value:i}=await n.read();if(s)break;o+=r.decode(i,{stream:!0});let u=o.indexOf(`
8
-
9
- `);for(;u!==-1;){let c=o.slice(0,u);o=o.slice(u+2);let p=In(c);p&&process.stdout.write(p),u=o.indexOf(`
10
-
11
- `)}}}finally{n.releaseLock()}}d(Ze,"streamSandboxEventOutput");function bn(t){return typeof t=="string"?{dataBase64:Buffer.from(t,"utf-8").toString("base64")}:t instanceof Uint8Array?{dataBase64:Buffer.from(t).toString("base64")}:t}d(bn,"normalizePtyInput");function In(t){if(!t.includes("event: output"))return null;let e=t.split(/\r?\n/).filter(n=>n.startsWith("data: ")).map(n=>n.slice(6));if(e.length===0)return null;try{let n=JSON.parse(e.join(`
12
- `));return typeof n.output=="string"?n.output:null}catch{return null}}d(In,"parseProcessOutputEvent");function O(t,e={}){let n=t.trim().replace(/\/$/,"");if(!n)throw new Error("sandbox API URL must be non-empty");let r=new URL(n),o=r.pathname.replace(/\/$/,"");if(o.endsWith("/v1/sandboxes")||o.endsWith("/api/sandboxes"))return`${r.origin}${o}`;if(o.endsWith("/v1"))return`${r.origin}${o}/sandboxes`;if(r.origin===gn)return`${ye}/v1/sandboxes`;let s=e.apiBaseUrl?new URL(e.apiBaseUrl).origin:ye;return r.origin===s?`${r.origin}${o}/v1/sandboxes`:`${r.origin}${o}/api/sandboxes`}d(O,"normalizeSandboxApiUrl");function Sn(t){let e="/sandboxes";if(!t.endsWith(e))throw new Error("sandbox API URL must end with /sandboxes");return t.slice(0,-e.length)}d(Sn,"apiRootUrlFromSandboxApiUrl");var wn=class{static{d(this,"OpenPondSandboxInstanceClient")}apiKey;apiRootUrl;sandboxApiUrl;customEndpoint;constructor(t){this.apiKey=t.apiKey,this.customEndpoint=t.customEndpoint??!1;let e=t.sandboxApiUrl??t.baseUrl??ye;this.sandboxApiUrl=O(e,{apiBaseUrl:this.customEndpoint?void 0:e}),this.apiRootUrl=Sn(this.sandboxApiUrl)}create(t,e={}){return this.request("",{method:"POST",...this.customEndpoint?{timeoutMs:18e4}:{},headers:M(e),body:JSON.stringify(t)}).then(n=>n.sandbox)}get(t){return this.request(`/${encodeURIComponent(t)}`).then(e=>e.sandbox)}exec(t,e){return this.request(`/${encodeURIComponent(t)}/exec`,{method:"POST",body:JSON.stringify(e)})}startProcess(t,e){return this.request(`/${encodeURIComponent(t)}/processes`,{method:"POST",body:JSON.stringify(e)})}listProcesses(t){return this.request(`/${encodeURIComponent(t)}/processes`)}getProcess(t,e,n={}){let r=new URLSearchParams;return n.since!==void 0&&r.set("since",String(Math.max(0,n.since))),this.request(`/${encodeURIComponent(t)}/processes/${encodeURIComponent(e)}${r.size>0?`?${r.toString()}`:""}`)}stopProcess(t,e){return this.request(`/${encodeURIComponent(t)}/processes/${encodeURIComponent(e)}`,{method:"DELETE"})}async streamProcessOutput(t,e,n={}){let r=new URLSearchParams;n.since!==void 0&&r.set("since",String(Math.max(0,n.since))),await Ze({sandboxApiUrl:this.sandboxApiUrl,apiKey:this.apiKey,path:`/${encodeURIComponent(t)}/processes/${encodeURIComponent(e)}/stream${r.size>0?`?${r.toString()}`:""}`})}startPty(t,e={}){return this.request(`/${encodeURIComponent(t)}/pty`,{method:"POST",body:JSON.stringify(e)})}listPtys(t){return this.request(`/${encodeURIComponent(t)}/pty`)}getPty(t,e,n={}){let r=new URLSearchParams;return n.since!==void 0&&r.set("since",String(Math.max(0,n.since))),this.request(`/${encodeURIComponent(t)}/pty/${encodeURIComponent(e)}${r.size>0?`?${r.toString()}`:""}`)}writePtyInput(t,e,n){return this.request(`/${encodeURIComponent(t)}/pty/${encodeURIComponent(e)}/input`,{method:"POST",body:JSON.stringify(bn(n))})}stopPty(t,e){return this.request(`/${encodeURIComponent(t)}/pty/${encodeURIComponent(e)}`,{method:"DELETE"})}async streamPtyOutput(t,e,n={}){let r=new URLSearchParams;n.since!==void 0&&r.set("since",String(Math.max(0,n.since))),await Ze({sandboxApiUrl:this.sandboxApiUrl,apiKey:this.apiKey,path:`/${encodeURIComponent(t)}/pty/${encodeURIComponent(e)}/stream${r.size>0?`?${r.toString()}`:""}`})}uploadFile(t,e,n){return this.uploadFileBase64(t,e,Buffer.from(n,"utf-8").toString("base64"))}uploadFileBase64(t,e,n){return this.request(`/${encodeURIComponent(t)}/files`,{method:"POST",body:JSON.stringify({path:e,contentsBase64:n})})}async downloadFile(t,e){let n=await this.downloadFileResponse(t,e);return Buffer.from(n.file.contentsBase64,"base64").toString("utf-8")}downloadFileResponse(t,e){let n=typeof e=="string"?{path:e}:e,r=new URLSearchParams({path:n.path});return n.offsetBytes!==void 0&&r.set("offsetBytes",String(n.offsetBytes)),n.maxBytes!==void 0&&r.set("maxBytes",String(n.maxBytes)),this.request(`/${encodeURIComponent(t)}/files?${r.toString()}`)}listFiles(t,e={}){let n=new URLSearchParams({list:"1"});return e.path&&n.set("path",e.path),e.recursive!==void 0&&n.set("recursive",String(e.recursive)),e.maxEntries!==void 0&&n.set("maxEntries",String(e.maxEntries)),this.request(`/${encodeURIComponent(t)}/files?${n.toString()}`)}deleteFile(t,e,n={}){let r=new URLSearchParams({path:e});return n.recursive!==void 0&&r.set("recursive",String(n.recursive)),this.request(`/${encodeURIComponent(t)}/files?${r.toString()}`,{method:"DELETE"})}statFile(t,e){let n=new URLSearchParams({stat:"1",path:e});return this.request(`/${encodeURIComponent(t)}/files?${n.toString()}`)}mkdir(t,e){let n=typeof e=="string"?{path:e}:e,r=new URLSearchParams({path:n.path});return n.recursive!==void 0&&r.set("recursive",String(n.recursive)),this.request(`/${encodeURIComponent(t)}/files?${r.toString()}`,{method:"PUT"})}moveFile(t,e){let n=new URLSearchParams({fromPath:e.fromPath,toPath:e.toPath});return e.overwrite!==void 0&&n.set("overwrite",String(e.overwrite)),this.request(`/${encodeURIComponent(t)}/files?${n.toString()}`,{method:"PATCH"})}searchFiles(t,e){let n=new URLSearchParams({search:"1",query:e.query});return e.path&&n.set("path",e.path),e.maxResults!==void 0&&n.set("maxResults",String(e.maxResults)),this.request(`/${encodeURIComponent(t)}/files?${n.toString()}`)}openPort(t,e){return this.request(`/${encodeURIComponent(t)}/ports`,{method:"POST",body:JSON.stringify(e)})}createSnapshot(t,e){return this.request(`/${encodeURIComponent(t)}/snapshots`,{method:"POST",body:JSON.stringify(e)})}updateSnapshot(t,e,n){return this.request(`/${encodeURIComponent(t)}/snapshots/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(n)})}validateSnapshot(t,e,n={}){return this.request(`/${encodeURIComponent(t)}/snapshots/${encodeURIComponent(e)}/validate`,{method:"POST",body:JSON.stringify(n)})}publishSnapshot(t,e){return this.request(`/${encodeURIComponent(t)}/snapshots/${encodeURIComponent(e)}/publish`,{method:"POST"})}fork(t,e={}){return this.request(`/${encodeURIComponent(t)}/fork`,{method:"POST",body:JSON.stringify(e)})}stop(t,e={}){let n=new URLSearchParams;return e.failOnUnpreservedChanges&&n.set("failOnUnpreservedChanges","true"),this.request(`/${encodeURIComponent(t)}/stop${n.size>0?`?${n.toString()}`:""}`,{method:"POST",headers:M(e)})}start(t,e={}){return this.request(`/${encodeURIComponent(t)}/start`,{method:"POST",headers:M(e)})}restore(t){return this.request(`/${encodeURIComponent(t)}/restore`,{method:"POST"})}delete(t,e={}){let n=new URLSearchParams;return e.failOnUnpreservedChanges&&n.set("failOnUnpreservedChanges","true"),this.request(`/${encodeURIComponent(t)}${n.size>0?`?${n.toString()}`:""}`,{method:"DELETE",headers:M(e)}).then(r=>r.sandbox)}receipts(t){return this.request(`/${encodeURIComponent(t)}/receipts`).then(e=>e.receipts)}logs(t){return this.request(`/${encodeURIComponent(t)}/logs`).then(e=>e.logs)}gitStatus(t){return this.request(`/${encodeURIComponent(t)}/git/status`)}gitDiff(t,e={}){return this.request(`/${encodeURIComponent(t)}/git/diff`,{method:"POST",body:JSON.stringify(e)})}gitExportPatch(t,e={}){return this.request(`/${encodeURIComponent(t)}/git/export-patch`,{method:"POST",body:JSON.stringify(e)})}gitBranch(t,e){return this.request(`/${encodeURIComponent(t)}/git/branch`,{method:"POST",body:JSON.stringify(e)})}gitCommit(t,e){return this.request(`/${encodeURIComponent(t)}/git/commit`,{method:"POST",body:JSON.stringify(e)})}gitPull(t,e={}){return this.request(`/${encodeURIComponent(t)}/git/pull`,{method:"POST",body:JSON.stringify(e)})}gitPush(t,e={}){return this.request(`/${encodeURIComponent(t)}/git/push`,{method:"POST",body:JSON.stringify(e)})}billing(t){return this.request(`/${encodeURIComponent(t)}/billing`)}pricing(){return this.request("/pricing")}costs(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.agentId&&e.set("agentId",t.agentId),this.request(`/costs${e.size>0?`?${e.toString()}`:""}`)}integrationLeases(t){return this.request(`/${encodeURIComponent(t)}/integrations`)}attachIntegrationConnection(t,e){return this.request(`/${encodeURIComponent(t)}/integrations`,{method:"POST",body:JSON.stringify(e)})}removeIntegrationLease(t,e){return this.request(`/${encodeURIComponent(t)}/integrations`,{method:"DELETE",body:JSON.stringify({leaseId:e})})}async request(t,e={}){let n=await X(this.sandboxApiUrl,this.apiKey,t,this.customEndpoint?{...e,explicitBearerAuth:!0,redirect:"error"}:e);return me(n,"Sandbox request")}async requestApiRoot(t,e={}){let n=await X(this.apiRootUrl,this.apiKey,t,this.customEndpoint?{...e,explicitBearerAuth:!0,redirect:"error"}:e);return me(n,"OpenPond API request")}},xn=class extends wn{static{d(this,"OpenPondSandboxClient")}runtimes=an(this);sandboxes=sn(this);profile=cn(this);projects=dn(this);agents=un(this);list(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.agentId&&e.set("agentId",t.agentId),this.request(e.size>0?`?${e.toString()}`:"").then(n=>n.sandboxes)}listSecrets(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),this.requestApiRoot(`/sandbox-secrets${e.size>0?`?${e.toString()}`:""}`).then(n=>n.secrets)}getSecret(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),this.requestApiRoot(`/sandbox-secrets/${encodeURIComponent(t)}${n.size>0?`?${n.toString()}`:""}`).then(r=>r.secret)}createSecret(t){return this.requestApiRoot("/sandbox-secrets",{method:"POST",body:JSON.stringify(t)}).then(e=>e.secret)}rotateSecret(t,e){let n=new URLSearchParams;e.teamId&&n.set("teamId",e.teamId);let{teamId:r,...o}=e;return this.requestApiRoot(`/sandbox-secrets/${encodeURIComponent(t)}/rotate${n.size>0?`?${n.toString()}`:""}`,{method:"POST",body:JSON.stringify(o)}).then(s=>s.secret)}attachSecret(t,e){let n=new URLSearchParams;e.teamId&&n.set("teamId",e.teamId);let{teamId:r,...o}=e;return this.requestApiRoot(`/sandbox-secrets/${encodeURIComponent(t)}/attach${n.size>0?`?${n.toString()}`:""}`,{method:"POST",body:JSON.stringify(o)}).then(s=>s.secret)}revokeSecret(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),this.requestApiRoot(`/sandbox-secrets/${encodeURIComponent(t)}/revoke${n.size>0?`?${n.toString()}`:""}`,{method:"POST"}).then(r=>r.secret)}deleteSecret(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),this.requestApiRoot(`/sandbox-secrets/${encodeURIComponent(t)}${n.size>0?`?${n.toString()}`:""}`,{method:"DELETE"}).then(r=>r.secret)}snapshotCatalog(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.agentId&&e.set("agentId",t.agentId),t.q&&e.set("q",t.q),t.kind&&e.set("kind",t.kind),t.replayState&&e.set("replayState",t.replayState),t.visibility&&e.set("visibility",t.visibility),t.tag&&e.set("tag",t.tag),t.useCase&&e.set("useCase",t.useCase),t.limit&&e.set("limit",String(t.limit)),this.request(`/catalog/snapshots${e.size>0?`?${e.toString()}`:""}`)}listSandboxRuntimes(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.agentId&&e.set("agentId",t.agentId),this.requestApiRoot(`/runtimes${e.size>0?`?${e.toString()}`:""}`).then(n=>n.runtimes)}listProjects(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/projects?${e.toString()}`).then(n=>n.projects)}upsertProject(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/projects?${e.toString()}`,{method:"POST",body:JSON.stringify(t)}).then(n=>n.project)}getHostedProfile(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/profile?${e.toString()}`).then(n=>n.profile)}ensureHostedProfile(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/profile/ensure?${e.toString()}`,{method:"POST"}).then(n=>{if(!n.profile)throw new Error("hosted_profile_missing");return n.profile})}pushHostedProfile(t){let e=new URLSearchParams({teamId:t.teamId}),{teamId:n,...r}=t;return this.requestApiRoot(`/profile/push?${e.toString()}`,{method:"POST",body:JSON.stringify(r)})}async upsertProjectGitRemote(t){let e=await this.upsertProject(t);return this.ensureProjectGitRemote(e.id,{teamId:t.teamId})}getProject(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/projects/${encodeURIComponent(t)}?${n.toString()}`).then(r=>r.project)}syncProject(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/projects/${encodeURIComponent(t)}/sync?${n.toString()}`,{method:"POST"}).then(r=>r.project)}ensureProjectGitRemote(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/projects/${encodeURIComponent(t)}/git?${n.toString()}`,{method:"POST"})}uploadProjectSource(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/projects/${encodeURIComponent(t)}/source?${n.toString()}`,{method:"POST",body:JSON.stringify(o)}).then(s=>s.project)}updateProject(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/projects/${encodeURIComponent(t)}?${n.toString()}`,{method:"PATCH",body:JSON.stringify(o)}).then(s=>s.project)}archiveProject(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/projects/${encodeURIComponent(t)}?${n.toString()}`,{method:"DELETE"}).then(r=>r.project)}listAgents(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/agents?${e.toString()}`).then(n=>n.agents)}upsertAgent(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/agents?${e.toString()}`,{method:"POST",body:JSON.stringify(t)}).then(n=>n.agent)}getAgent(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/agents/${encodeURIComponent(t)}?${n.toString()}`).then(r=>r.agent)}archiveAgent(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/agents/${encodeURIComponent(t)}?${n.toString()}`,{method:"DELETE"}).then(r=>r.agent)}updateAgent(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/agents/${encodeURIComponent(t)}?${n.toString()}`,{method:"PATCH",body:JSON.stringify(o)}).then(s=>s.agent)}runAgent(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/agents/${encodeURIComponent(t)}/run?${n.toString()}`,{method:"POST",headers:{Prefer:"respond-async"},body:JSON.stringify(o)})}getAgentSourceDeployPlan(t,e){let n=new URLSearchParams({teamId:e.teamId});return this.requestApiRoot(`/agents/${encodeURIComponent(t)}/source/deploy-plan?${n.toString()}`).then(r=>r.deployPlan)}listAgentManifestSnapshots(t,e){let n=new URLSearchParams({teamId:e.teamId});return e.limit!==void 0&&n.set("limit",String(e.limit)),this.requestApiRoot(`/agents/${encodeURIComponent(t)}/source/manifest-snapshots?${n.toString()}`).then(r=>r.manifestSnapshots)}requestAgentSourceChecks(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/agents/${encodeURIComponent(t)}/source/checks?${n.toString()}`,{method:"POST",body:JSON.stringify(o),timeoutMs:900*1e3})}configureAgentSourceSetup(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/agents/${encodeURIComponent(t)}/source/setup?${n.toString()}`,{method:"POST",body:JSON.stringify(o)})}publishAgentSource(t,e){let n=new URLSearchParams({teamId:e.teamId}),{teamId:r,...o}=e;return this.requestApiRoot(`/agents/${encodeURIComponent(t)}/source/publish?${n.toString()}`,{method:"POST",body:JSON.stringify(o)})}getMicrosoftTeamsBotOverview(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/teams/bot/overview?${e.toString()}`)}bindMicrosoftTeamsBotConversation(t){return this.requestApiRoot("/teams/bot/bindings",{method:"POST",body:JSON.stringify(t)})}rebindMicrosoftTeamsBotConversation(t,e){return this.requestApiRoot(`/teams/bot/bindings/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(e)})}unlinkMicrosoftTeamsBotConversation(t){return this.requestApiRoot(`/teams/bot/bindings/${encodeURIComponent(t.bindingId)}`,{method:"DELETE",body:JSON.stringify({teamId:t.teamId})})}sendMicrosoftTeamsBotDiagnostic(t){return this.requestApiRoot("/teams/bot/diagnostics",{method:"POST",body:JSON.stringify(t)})}sendMicrosoftTeamsBotDiagnosticRun(t){return this.requestApiRoot("/teams/bot/diagnostics/run",{method:"POST",body:JSON.stringify(t)})}createSandboxRuntime(t){return this.requestApiRoot("/runtimes",{method:"POST",body:JSON.stringify(t)}).then(e=>e.runtime)}sandboxRuntime(t,e=null){return pn(this,t,e)}getSandboxRuntime(t){return this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}`).then(e=>e.runtime)}createSandboxRuntimeSandbox(t,e={},n={}){return this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/sandbox`,{method:"POST",headers:M(n),body:JSON.stringify(e)})}updateSandboxRuntimeStatus(t,e){return this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/status`,{method:"PATCH",body:JSON.stringify(e)}).then(n=>n.runtime)}listSandboxRuntimeEvents(t){return this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/events`)}emitSandboxRuntimeEvent(t,e){return this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/events`,{method:"POST",body:JSON.stringify(e)})}checkpointSandboxRuntime(t,e){return this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/checkpoints`,{method:"POST",body:JSON.stringify(e)}).then(n=>n.runtime)}promoteSandboxRuntime(t,e,n={}){let r=new URLSearchParams;return n.teamId&&r.set("teamId",n.teamId),this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/promote${r.size>0?`?${r.toString()}`:""}`,{method:"POST",body:JSON.stringify(e)})}preserveSandboxRuntimeSource(t,e={},n={}){let r=new URLSearchParams;return n.teamId&&r.set("teamId",n.teamId),this.requestApiRoot(`/runtimes/${encodeURIComponent(t)}/preserve-source${r.size>0?`?${r.toString()}`:""}`,{method:"POST",body:JSON.stringify(e)})}forkSnapshot(t,e={},n={}){let r=new URLSearchParams;e.teamId&&r.set("teamId",e.teamId),e.projectId&&r.set("projectId",e.projectId),n.async&&r.set("async","1");let{teamId:o,projectId:s,...i}=e;return this.request(`/catalog/snapshots/${encodeURIComponent(t)}/fork${r.size>0?`?${r.toString()}`:""}`,{method:"POST",headers:n.async?{Prefer:"respond-async"}:void 0,body:JSON.stringify({...i,snapshotId:t})})}templates(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.q&&e.set("q",t.q),t.name&&e.set("name",t.name),t.version&&e.set("version",t.version),t.visibility&&e.set("visibility",t.visibility),t.tag&&e.set("tag",t.tag),t.useCase&&e.set("useCase",t.useCase),t.limit&&e.set("limit",String(t.limit)),this.request(`/templates${e.size>0?`?${e.toString()}`:""}`)}publishedSnapshots(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.q&&e.set("q",t.q),t.name&&e.set("name",t.name),t.version&&e.set("version",t.version),t.visibility&&e.set("visibility",t.visibility),t.tag&&e.set("tag",t.tag),t.useCase&&e.set("useCase",t.useCase),t.limit&&e.set("limit",String(t.limit)),this.request(`/published-snapshots${e.size>0?`?${e.toString()}`:""}`).then(n=>{let r=n.publishedSnapshots??n.templates;return{...n,templates:r,publishedSnapshots:r}})}launchTemplate(t){let e=new URLSearchParams;t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId);let{teamId:n,projectId:r,...o}=t;return this.request(`/templates/launch${e.size>0?`?${e.toString()}`:""}`,{method:"POST",body:JSON.stringify(o)})}runPublishedSnapshot(t){let e=new URLSearchParams;t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId);let{teamId:n,projectId:r,...o}=t;return this.request(`/published-snapshots/launch${e.size>0?`?${e.toString()}`:""}`,{method:"POST",body:JSON.stringify(o)}).then(s=>{let i=s.publishedSnapshot??s.template;return{...s,template:i,publishedSnapshot:i}})}listSchedules(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.sourceSandboxId&&e.set("sourceSandboxId",t.sourceSandboxId),this.request(`/schedules${e.size>0?`?${e.toString()}`:""}`)}createSchedule(t){let e=new URLSearchParams;t.projectId&&e.set("projectId",t.projectId);let{projectId:n,...r}=t;return this.request(`/schedules${e.size>0?`?${e.toString()}`:""}`,{method:"POST",body:JSON.stringify(r)})}getSchedule(t){return this.request(`/schedules/${encodeURIComponent(t)}`)}updateSchedule(t,e){return this.request(`/schedules/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(e)})}deleteSchedule(t){return this.request(`/schedules/${encodeURIComponent(t)}`,{method:"DELETE"})}listScheduleRuns(t,e={}){let n=new URLSearchParams;return e.limit!==void 0&&n.set("limit",String(e.limit)),this.request(`/schedules/${encodeURIComponent(t)}/runs${n.size>0?`?${n.toString()}`:""}`)}runScheduleNow(t,e={}){return this.request(`/schedules/${encodeURIComponent(t)}/run`,{method:"POST",body:JSON.stringify(e)})}listTemplateBuilds(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/sandbox-template-builds?${e.toString()}`).then(n=>n.builds)}createTemplateBuild(t){return this.requestApiRoot("/sandbox-template-builds",{method:"POST",body:JSON.stringify(t)}).then(e=>e.build)}getTemplateBuild(t){return this.requestApiRoot(`/sandbox-template-builds/${encodeURIComponent(t)}`).then(e=>e.build)}getTemplateBuildLogs(t){return this.requestApiRoot(`/sandbox-template-builds/${encodeURIComponent(t)}/logs`)}cancelTemplateBuild(t){return this.requestApiRoot(`/sandbox-template-builds/${encodeURIComponent(t)}/cancel`,{method:"POST"}).then(e=>e.build)}listPublishedSnapshotBuilds(t){let e=new URLSearchParams({teamId:t.teamId});return this.requestApiRoot(`/published-snapshot-builds?${e.toString()}`).then(n=>n.builds)}createPublishedSnapshotBuild(t){return this.requestApiRoot("/published-snapshot-builds",{method:"POST",body:JSON.stringify(t)}).then(e=>e.build)}getPublishedSnapshotBuild(t){return this.requestApiRoot(`/published-snapshot-builds/${encodeURIComponent(t)}`).then(e=>e.build)}getPublishedSnapshotBuildLogs(t){return this.requestApiRoot(`/published-snapshot-builds/${encodeURIComponent(t)}/logs`)}cancelPublishedSnapshotBuild(t){return this.requestApiRoot(`/published-snapshot-builds/${encodeURIComponent(t)}/cancel`,{method:"POST"}).then(e=>e.build)}listOrganizations(){return this.requestApiRoot("/organizations").then(t=>t.organizations??t.teams??[])}createOrganization(t){return this.requestApiRoot("/organizations",{method:"POST",body:JSON.stringify(t)}).then(e=>e.organization)}getOrganization(t){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}`).then(e=>e.organization)}updateOrganization(t,e){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(e)}).then(n=>n.organization)}listOrganizationMembers(t){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/members`).then(e=>e.members)}upsertOrganizationMember(t,e){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/members`,{method:"POST",body:JSON.stringify(e)}).then(n=>n.member)}getOrganizationMcpServer(t){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/mcp-server`).then(e=>e.mcpServer)}generateOrganizationMcpServer(t,e={}){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/mcp-server`,{method:"POST",body:JSON.stringify(e)}).then(n=>n.mcpServer)}rotateOrganizationMcpServer(t){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/mcp-server/rotate`,{method:"POST"}).then(e=>e.mcpServer)}disableOrganizationMcpServer(t){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/mcp-server/disable`,{method:"POST"}).then(e=>e.mcpServer)}enableOrganizationMcpServer(t){return this.requestApiRoot(`/organizations/${encodeURIComponent(t)}/mcp-server/enable`,{method:"POST"}).then(e=>e.mcpServer)}startReplay(t){let e=new URLSearchParams;t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId);let{teamId:n,projectId:r,...o}=t;return this.requestApiRoot(`/sandbox-replays${e.size>0?`?${e.toString()}`:""}`,{method:"POST",body:JSON.stringify(o)})}listReplays(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),this.requestApiRoot(`/sandbox-replays${e.size>0?`?${e.toString()}`:""}`)}getReplay(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),e.projectId&&n.set("projectId",e.projectId),this.requestApiRoot(`/sandbox-replays/${encodeURIComponent(t)}${n.size>0?`?${n.toString()}`:""}`)}getReplayLogs(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),e.projectId&&n.set("projectId",e.projectId),this.requestApiRoot(`/sandbox-replays/${encodeURIComponent(t)}/logs${n.size>0?`?${n.toString()}`:""}`)}getReplayArtifacts(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),e.projectId&&n.set("projectId",e.projectId),this.requestApiRoot(`/sandbox-replays/${encodeURIComponent(t)}/artifacts${n.size>0?`?${n.toString()}`:""}`)}cancelReplay(t,e={}){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),e.projectId&&n.set("projectId",e.projectId),this.requestApiRoot(`/sandbox-replays/${encodeURIComponent(t)}/cancel${n.size>0?`?${n.toString()}`:""}`,{method:"POST"})}integrationConnections(t={}){let e=new URLSearchParams;return t.teamId&&e.set("teamId",t.teamId),t.projectId&&e.set("projectId",t.projectId),t.agentId&&e.set("agentId",t.agentId),t.status&&e.set("status",t.status),this.requestApiRoot(`/integrations/connections${e.size>0?`?${e.toString()}`:""}`)}mcpServerConfig(){return{name:"openpond-sandboxes",transport:"streamable-http",url:`${this.sandboxApiUrl}/mcp`,headers:{"openpond-api-key":this.apiKey}}}smoke(t={}){return ln(this,t)}};function Y(t){return new xn(t)}d(Y,"createOpenPondSandboxClient");var Br=a.object({choices:a.array(a.object({message:a.object({content:a.string().nullable().optional(),tool_calls:a.array(a.object({id:a.string().min(1),type:a.literal("function"),function:a.object({name:a.string().min(1),arguments:a.string()})})).optional()})})).min(1)});var Nr=100*1024*1024;var Fr=Object.freeze({".avif":"image/avif",".csv":"text/csv",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".gif":"image/gif",".html":"text/html",".jpeg":"image/jpeg",".jpg":"image/jpeg",".json":"application/json",".m4a":"audio/mp4",".md":"text/markdown",".mov":"video/quicktime",".mp3":"audio/mpeg",".mp4":"video/mp4",".pdf":"application/pdf",".png":"image/png",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".svg":"image/svg+xml",".tsv":"text/tab-separated-values",".txt":"text/plain",".wav":"audio/wav",".webm":"video/webm",".webp":"image/webp",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});function $(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}d($,"normalizeOptionalUrl");function m(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}d(m,"asRecord");var et=["workspacePurpose","purpose"];function tt(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e={...t};for(let n of et)delete e[n];return e}d(tt,"sanitizeCreateMetadata");function vn(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e={...t};for(let r of et)delete e[r];let n=tt(e.metadata);return n?e.metadata=n:delete e.metadata,e}d(vn,"sanitizeSandboxRuntimeInput");function Z(t){let e=m(t);if(e.sandboxRuntime)throw new Error("Sandbox runtime settings must use /v1/runtimes before materializing a sandbox.");let n={};typeof e.repo=="string"&&e.repo.trim()&&(n.repo=e.repo.trim()),typeof e.teamId=="string"&&e.teamId.trim()&&(n.teamId=e.teamId.trim()),typeof e.projectId=="string"&&e.projectId.trim()&&(n.projectId=e.projectId.trim()),typeof e.agentId=="string"&&e.agentId.trim()&&(n.agentId=e.agentId.trim()),typeof e.command=="string"&&e.command.trim()&&(n.command=e.command.trim()),typeof e.runtimeProfileId=="string"&&e.runtimeProfileId.trim()&&(n.runtimeProfileId=e.runtimeProfileId.trim()),e.workloadSource&&typeof e.workloadSource=="object"&&!Array.isArray(e.workloadSource)&&(n.workloadSource=e.workloadSource),e.sourceArchive&&typeof e.sourceArchive=="object"&&!Array.isArray(e.sourceArchive)&&(n.sourceArchive=e.sourceArchive),(e.visibility==="private"||e.visibility==="team")&&(n.visibility=e.visibility),e.resources&&typeof e.resources=="object"&&!Array.isArray(e.resources)&&(n.resources=e.resources),e.budget&&typeof e.budget=="object"&&!Array.isArray(e.budget)&&(n.budget=e.budget),"env"in e&&(n.env=ve(e.env)),e.networkPolicy&&typeof e.networkPolicy=="object"&&!Array.isArray(e.networkPolicy)&&(n.networkPolicy=e.networkPolicy),e.quotas&&typeof e.quotas=="object"&&!Array.isArray(e.quotas)&&(n.quotas=e.quotas),Array.isArray(e.volumes)&&(n.volumes=e.volumes),"integrationLeases"in e&&(n.integrationLeases=ot(e.integrationLeases)),Array.isArray(e.integrationConnectionLeases)&&(n.integrationConnectionLeases=e.integrationConnectionLeases);let r=tt(e.metadata);return r&&(n.metadata=r),n}d(Z,"normalizeCreateInput");function be(t){let e=m(t),n=vn(e)??{},r={};return typeof n.teamId=="string"&&n.teamId.trim()&&(r.teamId=n.teamId.trim()),typeof n.projectId=="string"&&n.projectId.trim()&&(r.projectId=n.projectId.trim()),typeof n.agentId=="string"&&n.agentId.trim()&&(r.agentId=n.agentId.trim()),typeof n.workflowMode=="string"&&n.workflowMode.trim()?r.workflowMode=n.workflowMode.trim():typeof n.mode=="string"&&n.mode.trim()&&(r.workflowMode=n.mode.trim()),typeof n.baseBranch=="string"&&n.baseBranch.trim()&&(r.baseBranch=n.baseBranch.trim()),typeof n.baseSha=="string"&&n.baseSha.trim()&&(r.baseSha=n.baseSha.trim()),typeof n.sandboxId=="string"&&n.sandboxId.trim()&&(r.sandboxId=n.sandboxId.trim()),typeof n.rootfsSnapshotId=="string"&&n.rootfsSnapshotId.trim()&&(r.rootfsSnapshotId=n.rootfsSnapshotId.trim()),typeof n.dependencySnapshotId=="string"&&n.dependencySnapshotId.trim()&&(r.dependencySnapshotId=n.dependencySnapshotId.trim()),typeof n.runtimeProfileId=="string"&&n.runtimeProfileId.trim()&&(r.runtimeProfileId=n.runtimeProfileId.trim()),typeof n.promotionPolicy=="string"&&n.promotionPolicy.trim()&&(r.promotionPolicy=n.promotionPolicy.trim()),n.metadata&&typeof n.metadata=="object"&&!Array.isArray(n.metadata)&&(r.metadata=n.metadata),r}d(be,"normalizeSandboxRuntimeCreateInput");function Q(t){return Z(t)}d(Q,"normalizeSandboxRuntimeSandboxCreateInput");function nt(t){return m(t)}d(nt,"normalizeSnapshotCreateInput");function y(t){let e=m(t),n=typeof e.teamId=="string"?e.teamId.trim():"",r=typeof e.projectId=="string"?e.projectId.trim():"",o=typeof e.agentId=="string"?e.agentId.trim():"";return{...n?{teamId:n}:{},...r?{projectId:r}:{},...o?{agentId:o}:{}}}d(y,"normalizeSandboxListInput");function rt(t){let e=m(t),n=typeof e.teamId=="string"?e.teamId.trim():"",r=typeof e.projectId=="string"?e.projectId.trim():"",{teamId:o,projectId:s,appId:i,...u}=e,c=u;return n&&(c.teamId=n),r&&(c.projectId=r),c}d(rt,"normalizeReplayStartInput");function Ie(t){if(t==="active"||t==="revoked"||t==="error"||t==="all")return t}d(Ie,"normalizeIntegrationStatusFilter");function Se(t){let e=m(t),n=typeof e.connectionId=="string"?e.connectionId.trim():"";if(!n)throw new Error("Sandbox integration connection is required.");let r=st(e.capabilities);if(r.length===0)throw new Error("Sandbox integration capabilities are required.");at(e.provider,r);let o=it(e.scopes,"Sandbox integration scopes"),s=dt(e.expiresAt),i=En(e.ttlSeconds),u=ct(e.resourcePolicy);return{connectionId:n,capabilities:r,...o.length>0?{scopes:o}:{},...u?{resourcePolicy:u}:{},...s?{expiresAt:s}:{},...i!==void 0?{ttlSeconds:i}:{},...typeof e.required=="boolean"?{required:e.required}:{}}}d(Se,"normalizeIntegrationAttachInput");function ot(t){if(t==null)return[];if(!Array.isArray(t))throw new Error("Sandbox integration leases must be an array.");return t.map(e=>Rn(e))}d(ot,"normalizeIntegrationLeaseRefsForRuntime");function Rn(t){let e=m(t),n=typeof e.leaseId=="string"?e.leaseId.trim():"";if(!n)throw new Error("Sandbox integration leaseId is required.");if("connectionId"in e)throw new Error("Sandbox integration leases must use leaseId/proxy refs, not connection ids.");Pn(e);let r=Cn(e.provider),o=st(e.capabilities);if(o.length===0)throw new Error("Sandbox integration lease capabilities are required.");at(r,o);let s=it(e.scopes,"Sandbox integration lease scopes"),i=ct(e.resourcePolicy),u=dt(e.expiresAt),c=typeof e.proxyUrl=="string"?e.proxyUrl.trim():"";return{leaseId:n,provider:r,capabilities:o,...s.length>0?{scopes:s}:{},...i?{resourcePolicy:i}:{},...u?{expiresAt:u}:{},...c?{proxyUrl:c}:{},...typeof e.required=="boolean"?{required:e.required}:{}}}d(Rn,"normalizeIntegrationLeaseRefForRuntime");function Cn(t){if(typeof t!="string")throw new Error("Sandbox integration lease provider is required.");let e=se(t);if(!e)throw new Error(`Sandbox integration provider is not supported: ${t}`);if(!ae(e)?.leasePolicy.leaseable)throw new Error(`Sandbox integration provider is not leaseable: ${e}`);return e}d(Cn,"normalizeLeaseableIntegrationProvider");function Pn(t){for(let e of Object.keys(t))if(ut(e))throw new Error("Sandbox integration leases must not include secrets or credentials.")}d(Pn,"assertNoSensitiveIntegrationLeaseKeys");function at(t,e){if(t==null||t==="")return;if(typeof t!="string")throw new Error("Sandbox integration provider must be a string.");let n=se(t);if(!n)throw new Error(`Sandbox integration provider is not supported: ${t}`);let r=ae(n);if(!r?.leasePolicy.leaseable)throw new Error(`Sandbox integration provider is not leaseable: ${n}`);let o=new Set(r.leasePolicy.allowedCapabilityIds),s=e.filter(i=>!o.has(i));if(s.length>0)throw new Error(`Sandbox integration capabilities are not allowed for ${n}: ${s.join(", ")}`)}d(at,"validateIntegrationCapabilitiesForProvider");function we(t){let e=m(t),n=typeof e.leaseId=="string"?e.leaseId.trim():"";if(!n)throw new Error("Sandbox integration lease is required.");return n}d(we,"normalizeIntegrationLeaseId");function st(t){return Array.isArray(t)?t.map(e=>typeof e=="string"?e.trim():"").filter(Boolean):[]}d(st,"normalizeStringArray");function it(t,e){if(t==null)return[];if(!Array.isArray(t))throw new Error(`${e} must be an array of strings.`);return t.map(n=>{if(typeof n!="string")throw new Error(`${e} must contain only strings.`);let r=n.trim();if(!r)throw new Error(`${e} must not contain empty values.`);return r})}d(it,"normalizeOptionalStringArray");function En(t){if(t==null||t==="")return;let e=Number(t);if(!Number.isFinite(e)||e<=0)throw new Error("Sandbox integration ttlSeconds must be a positive number.");return Math.max(1,Math.floor(e))}d(En,"normalizeIntegrationTtlSeconds");function dt(t){if(t==null||t==="")return;if(typeof t!="string")throw new Error("Sandbox integration expiresAt must be an ISO timestamp string.");let e=t.trim();if(!e)return;let n=Date.parse(e);if(!Number.isFinite(n))throw new Error("Sandbox integration expiresAt must be a valid ISO timestamp.");return e}d(dt,"normalizeIntegrationExpiresAt");function ct(t){if(t==null)return;if(typeof t!="object"||Array.isArray(t))throw new Error("Sandbox integration resourcePolicy must be an object.");if(ge(t,[]),JSON.stringify(t).length>16*1024)throw new Error("Sandbox integration resourcePolicy is too large.");return t}d(ct,"normalizeIntegrationResourcePolicy");function ge(t,e){if(!(!t||typeof t!="object")){if(e.length>8)throw new Error("Sandbox integration resourcePolicy is too deeply nested.");if(Array.isArray(t)){for(let n of t)ge(n,e);return}for(let[n,r]of Object.entries(t)){if(ut(n))throw new Error("Sandbox integration resourcePolicy must not include secrets or credentials.");ge(r,[...e,n])}}}d(ge,"assertNoSensitiveResourcePolicyKeys");function ut(t){let e=t.toLowerCase().replace(/[^a-z0-9]/g,"");return e.includes("accesstoken")||e.includes("refreshtoken")||e.includes("idtoken")||e.includes("oauth")||e.includes("bearer")||e.includes("authorization")||e.includes("cookie")||e.includes("secret")||e.includes("password")||e.includes("credential")}d(ut,"isSensitivePolicyKey");function pt(t){let e=m(t),n=typeof e.command=="string"?e.command.trim():"";if(!n)throw new Error("Sandbox command is required.");let r=typeof e.timeoutSeconds=="number"&&Number.isFinite(e.timeoutSeconds)?Math.max(1,Math.floor(e.timeoutSeconds)):void 0,o=Ne(n);return r?{command:o,timeoutSeconds:r}:{command:o}}d(pt,"normalizeExecInput");function mt(t){let e=m(t),n=typeof e.command=="string"?e.command.trim():"";if(!n)throw new Error("Sandbox process command is required.");let r=typeof e.timeoutSeconds=="number"&&Number.isFinite(e.timeoutSeconds)?Math.max(1,Math.floor(e.timeoutSeconds)):void 0;return r?{command:n,timeoutSeconds:r}:{command:n}}d(mt,"normalizeProcessStartInput");function lt(t){let e=m(t),n=Number(e.since);return Number.isFinite(n)?{since:Math.max(0,Math.floor(n))}:{}}d(lt,"normalizeProcessCursorInput");function ht(t){let e=m(t),n=typeof e.port=="number"?e.port:Number(e.port);if(!Number.isInteger(n)||n<re||n>oe)throw new Error(`Sandbox preview port must be between ${re} and ${oe}.`);let r=typeof e.label=="string"&&e.label.trim()?e.label.trim():void 0,o=e.access==="public"||e.access==="private"?e.access:void 0,s=e.autoStart===!0,i=typeof e.customDomain=="string"&&e.customDomain.trim()?e.customDomain.trim():void 0,u={port:n,...r?{label:r}:{},...o?{access:o}:{},...s?{autoStart:s}:{},...i?{customDomain:i}:{}};return e.cors&&typeof e.cors=="object"&&!Array.isArray(e.cors)&&(u.cors=e.cors),e.headerPolicy&&typeof e.headerPolicy=="object"&&!Array.isArray(e.headerPolicy)&&(u.headerPolicy=e.headerPolicy),e.authPolicy&&typeof e.authPolicy=="object"&&!Array.isArray(e.authPolicy)&&(u.authPolicy=e.authPolicy),u}d(ht,"normalizeOpenPortInput");function ft(t){let e=m(t),n={};if(e.template&&typeof e.template=="object"&&!Array.isArray(e.template)){let r=m(e.template),o={};typeof r.description=="string"?o.description=r.description.trim():r.description===null&&(o.description=null),Array.isArray(r.tags)&&(o.tags=r.tags.map(s=>typeof s=="string"?s.trim():"").filter(Boolean).slice(0,20)),(r.visibility==="private"||r.visibility==="team")&&(o.visibility=r.visibility),typeof r.useCase=="string"?o.useCase=r.useCase.trim():r.useCase===null&&(o.useCase=null),Object.keys(o).length>0&&(n.template=o)}if(e.retention&&typeof e.retention=="object"&&!Array.isArray(e.retention)){let r=m(e.retention),o={};(r.class==="ephemeral"||r.class==="cached"||r.class==="pinned")&&(o.class=r.class),r.ttlSeconds===null?o.ttlSeconds=null:typeof r.ttlSeconds=="number"&&Number.isFinite(r.ttlSeconds)&&(o.ttlSeconds=Math.max(1,Math.floor(r.ttlSeconds))),Object.keys(o).length>0&&(n.retention=o)}if(!n.template&&!n.retention)throw new Error("Snapshot update requires template or retention changes.");return n}d(ft,"normalizeSnapshotUpdateInput");function yt(t){let e=m(t),n=typeof e.cleanup=="string"?e.cleanup.trim():"";return n==="delete"||n==="stop"||n==="archive"?{cleanup:n}:{}}d(yt,"normalizeSnapshotValidateInput");function xe(t){let e=m(t),n={};return typeof e.snapshotId=="string"&&e.snapshotId.trim()&&(n.snapshotId=e.snapshotId.trim()),(e.visibility==="private"||e.visibility==="team")&&(n.visibility=e.visibility),e.resources&&typeof e.resources=="object"&&!Array.isArray(e.resources)&&(n.resources=e.resources),e.budget&&typeof e.budget=="object"&&!Array.isArray(e.budget)&&(n.budget=e.budget),e.networkPolicy&&typeof e.networkPolicy=="object"&&!Array.isArray(e.networkPolicy)&&(n.networkPolicy=e.networkPolicy),e.quotas&&typeof e.quotas=="object"&&!Array.isArray(e.quotas)&&(n.quotas=e.quotas),Array.isArray(e.volumes)&&(n.volumes=e.volumes),"integrationLeases"in e&&(n.integrationLeases=ot(e.integrationLeases)),"env"in e&&(n.env=ve(e.env)),e.metadata&&typeof e.metadata=="object"&&!Array.isArray(e.metadata)&&(n.metadata=e.metadata),n}d(xe,"normalizeForkInput");function ve(t){if(t==null)return[];if(!Array.isArray(t))throw new Error("Sandbox env must be an array.");return t.map(e=>{if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Sandbox env entries must be objects.");let n=e;if("value"in n)throw new Error("Sandbox env entries must use secretRef, not inline values.");let r=typeof n.name=="string"?n.name.trim():"",o=typeof n.secretRef=="string"?n.secretRef.trim():"";if(!r||!o)throw new Error("Sandbox env entries require name and secretRef.");return{name:r,secretRef:o}})}d(ve,"normalizeSandboxEnvRefsForApp");function gt(t){let e=m(t),n=typeof e.teamId=="string"?e.teamId.trim():"",r=typeof e.projectId=="string"?e.projectId.trim():"",o=typeof e.snapshotId=="string"?e.snapshotId.trim():"",s=typeof e.templateName=="string"?e.templateName.trim():"",i=typeof e.version=="string"?e.version.trim():"",u=typeof e.useCase=="string"?e.useCase.trim():"";if(!o&&!s&&!u)throw new Error("Sandbox template launch requires snapshotId, templateName, or useCase.");return{...xe(t),...n?{teamId:n}:{},...r?{projectId:r}:{},...o?{snapshotId:o}:{},...s?{templateName:s}:{},...i?{version:i}:{},...u?{useCase:u}:{}}}d(gt,"normalizeTemplateLaunchInput");function bt(t){let e=m(t),n=typeof e.path=="string"?e.path.trim():"",r=Number(e.maxEntries);return{...n?{path:n}:{},...typeof e.recursive=="boolean"?{recursive:e.recursive}:{},...Number.isFinite(r)?{maxEntries:r}:{}}}d(bt,"normalizeListFilesInput");function It(t){let e=m(t),n=typeof e.query=="string"?e.query.trim():"";if(!n)throw new Error("Sandbox file search query is required.");let r=typeof e.path=="string"?e.path.trim():"",o=Number(e.maxResults);return{query:n,...r?{path:r}:{},...Number.isFinite(o)?{maxResults:o}:{}}}d(It,"normalizeSearchFilesInput");function D(t){let e=m(t),n=typeof e.path=="string"?e.path.trim():"";if(!n)throw new Error("Sandbox file path is required.");return{path:n,recursive:typeof e.recursive=="boolean"?e.recursive:void 0}}d(D,"normalizeDeleteFileInput");function St(t){let e=D(t),n=m(t),r=Number(n.offsetBytes),o=Number(n.maxBytes);return{path:e.path,...Number.isFinite(r)?{offsetBytes:r}:{},...Number.isFinite(o)?{maxBytes:o}:{}}}d(St,"normalizeDownloadFileInput");function wt(t){let e=m(t),n=typeof e.path=="string"?e.path.trim():"",r=typeof e.contents=="string"?e.contents:"",o=typeof e.contentsBase64=="string"?e.contentsBase64.trim():"";if(!n)throw new Error("Sandbox file path is required.");if(!r&&!o)throw new Error("Sandbox file contents are required.");return{path:n,contents:r,contentsBase64:o}}d(wt,"normalizeUploadFileInput");function xt(t){let e=m(t),n=typeof e.fromPath=="string"?e.fromPath.trim():"",r=typeof e.toPath=="string"?e.toPath.trim():"";if(!n||!r)throw new Error("Sandbox file source and target paths are required.");return{fromPath:n,toPath:r,overwrite:typeof e.overwrite=="boolean"?e.overwrite:void 0}}d(xt,"normalizeMoveFileInput");function vt(t){let e=m(t),n=typeof e.branch=="string"?e.branch.trim():"",r=typeof e.startPoint=="string"?e.startPoint.trim():"";if(!n)throw new Error("Sandbox git branch name is required.");return{branch:n,create:e.create===!0,...r?{startPoint:r}:{}}}d(vt,"normalizeGitBranchInput");function Rt(t){let e=m(t),n=typeof e.message=="string"?e.message.trim():"",r=e.all===!0,o=Array.isArray(e.paths)?e.paths.filter(s=>typeof s=="string"&&s.trim()!==""):[];if(!n)throw new Error("Sandbox git commit message is required.");if(!r&&o.length===0)throw new Error("Sandbox git commit requires all=true or at least one path.");return{message:n,...r?{all:!0}:{paths:o.map(s=>s.trim())}}}d(Rt,"normalizeGitCommitInput");function Ct(t){let e=m(t),n=typeof e.remote=="string"?e.remote.trim():"",r=typeof e.branch=="string"?e.branch.trim():"",o=e.rebase===!0,s=typeof e.ffOnly=="boolean"?e.ffOnly:void 0;if(o&&s)throw new Error("Sandbox git pull cannot use rebase and ff-only together.");return{...n?{remote:n}:{},...r?{branch:r}:{},...o?{rebase:o}:{},...typeof s=="boolean"?{ffOnly:s}:{}}}d(Ct,"normalizeGitPullInput");function Pt(t){let e=m(t),n=typeof e.remote=="string"?e.remote.trim():"",r=typeof e.branch=="string"?e.branch.trim():"";return{...n?{remote:n}:{},...r?{branch:r}:{},...e.setUpstream===!0?{setUpstream:!0}:{},...e.forceWithLease===!0?{forceWithLease:!0}:{}}}d(Pt,"normalizeGitPushInput");async function ro(){return(await te()).client}d(ro,"resolveOpenPondSandboxClient");var An="https://api.openpond.ai";async function oo(t){let{client:e,context:n,apiKey:r,sandboxApiUrl:o}=await te(),s=zn(n,o);if(t.type==="list")return{sandboxes:await e.list(y(t.payload)),account:s};if(t.type==="snapshot_catalog"){let i=m(t.payload),u=typeof i.teamId=="string"?i.teamId.trim():"",c=typeof i.projectId=="string"?i.projectId.trim():"",p=typeof i.agentId=="string"?i.agentId.trim():"",b=typeof i.q=="string"?i.q.trim():"",l=typeof i.tag=="string"?i.tag.trim():"",g=typeof i.useCase=="string"?i.useCase.trim():"",P=i.replayState==="draft"||i.replayState==="validated"||i.replayState==="published"?i.replayState:void 0;return{...await e.snapshotCatalog({...u?{teamId:u}:{},...c?{projectId:c}:{},...p?{agentId:p}:{},...b?{q:b}:{},...l?{tag:l}:{},...g?{useCase:g}:{},...P?{replayState:P}:{}}),account:s}}if(t.type==="snapshot_create")return{...await e.createSnapshot(t.sandboxId,nt(t.payload)),account:s};if(t.type==="template_catalog"){let i=m(t.payload),u=typeof i.teamId=="string"?i.teamId.trim():"",c=typeof i.projectId=="string"?i.projectId.trim():"",p=typeof i.q=="string"?i.q.trim():"",b=typeof i.name=="string"?i.name.trim():"",l=typeof i.version=="string"?i.version.trim():"",g=typeof i.tag=="string"?i.tag.trim():"",P=typeof i.useCase=="string"?i.useCase.trim():"";return{...await e.templates({...u?{teamId:u}:{},...c?{projectId:c}:{},...p?{q:p}:{},...b?{name:b}:{},...l?{version:l}:{},...g?{tag:g}:{},...P?{useCase:P}:{}}),account:s}}if(t.type==="integration_connections"){let i=m(t.payload),u=typeof i.teamId=="string"?i.teamId.trim():"",c=typeof i.projectId=="string"?i.projectId.trim():"",p=typeof i.agentId=="string"?i.agentId.trim():"",b=Ie(i.status),l={...c?{projectId:c}:{},...p?{agentId:p}:{},status:b??"all"};return{...u?await e.integrationConnections({teamId:u,...l}):await Re(e,l),account:s}}if(t.type==="connected_app_status"){let i=m(t.payload),u=typeof i.teamId=="string"?i.teamId.trim():"",c=typeof i.projectId=="string"?i.projectId.trim():"",p=typeof i.agentId=="string"?i.agentId.trim():"",b=Ie(i.status)??"all",l={...c?{projectId:c}:{},...p?{agentId:p}:{},status:b},g=u?await e.integrationConnections({teamId:u,...l}):await Re(e,l);return{teamId:g.teamId,apps:Ue({connections:g.connections}),account:s}}if(t.type==="sandbox_runtime_list")return{runtimes:await e.listSandboxRuntimes(y(t.payload)),account:s};if(t.type==="sandbox_runtime_get")return{runtime:await e.getSandboxRuntime(t.runtimeId),account:s};if(t.type==="sandbox_runtime_create")return{runtime:await e.createSandboxRuntime(be(t.payload)),account:s};if(t.type==="sandbox_runtime_sandbox_create")return{...await e.createSandboxRuntimeSandbox(t.runtimeId,Q(t.payload),{respondAsync:!0}),account:s};if(t.type==="sandbox_runtime_resume"){let i=await e.sandboxRuntime(t.runtimeId).resume(Q(t.payload),{respondAsync:!0});return{runtime:await e.getSandboxRuntime(t.runtimeId),sandbox:i,account:s}}if(t.type==="sandbox_runtime_preserve_source"){let i=m(t.payload);return{...await e.preserveSandboxRuntimeSource(t.runtimeId,{...typeof i.sandboxId=="string"&&i.sandboxId.trim()?{sandboxId:i.sandboxId.trim()}:{},...typeof i.message=="string"&&i.message.trim()?{message:i.message.trim()}:{},...i.source==="profile"?{source:"profile"}:{}},y(t.payload)),account:s}}if(t.type==="sandbox_runtime_promote"){let i=m(t.payload);return{...await e.promoteSandboxRuntime(t.runtimeId,{expectedTargetSha:typeof i.expectedTargetSha=="string"?i.expectedTargetSha.trim():"",...i.validationState==="pending"||i.validationState==="passed"?{validationState:i.validationState}:{},...typeof i.summary=="string"&&i.summary.trim()?{summary:i.summary.trim()}:{}},y(t.payload)),account:s}}if(t.type==="project_list")return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/projects",y(t.payload))}),account:s};if(t.type==="profile_get")return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/profile",y(t.payload))}),account:s};if(t.type==="profile_ensure")return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/profile/ensure",y(t.payload)),method:"POST"}),account:s};if(t.type==="profile_push"){let i=m(t.payload),{teamId:u,...c}=i;return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/profile/push",y(i)),method:"POST",body:c}),account:s}}if(t.type==="project_upsert")return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/projects",y(t.payload)),method:"POST",body:m(t.payload)}),account:s};if(t.type==="project_get")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/projects/${encodeURIComponent(t.projectId)}`,y(t.payload))}),account:s};if(t.type==="project_workspace")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/projects/${encodeURIComponent(t.projectId)}/workspace`,y(t.payload))}),account:s};if(t.type==="project_git")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/projects/${encodeURIComponent(t.projectId)}/git`,y(t.payload)),method:"POST"}),account:s};if(t.type==="project_sync")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/projects/${encodeURIComponent(t.projectId)}/sync`,y(t.payload)),method:"POST"}),account:s};if(t.type==="project_source_upload"){let i=m(t.payload),{teamId:u,...c}=i;return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/projects/${encodeURIComponent(t.projectId)}/source`,y(i)),method:"POST",body:c}),account:s}}if(t.type==="project_archive")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/projects/${encodeURIComponent(t.projectId)}`,y(t.payload)),method:"DELETE"}),account:s};if(t.type==="agent_list")return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/agents",y(t.payload))}),account:s};if(t.type==="agent_upsert")return{...await w({apiKey:r,sandboxApiUrl:o,path:v("/agents",y(t.payload)),method:"POST",body:m(t.payload)}),account:s};if(t.type==="agent_run")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/agents/${encodeURIComponent(t.agentId)}/run`,y(t.payload)),method:"POST",body:m(t.payload)}),account:s};if(t.type==="agent_source_deploy_plan")return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/agents/${encodeURIComponent(t.agentId)}/source/deploy-plan`,y(t.payload))}),account:s};if(t.type==="agent_source_checks"){let i=m(t.payload),{teamId:u,...c}=i;return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/agents/${encodeURIComponent(t.agentId)}/source/checks`,y(i)),method:"POST",body:c,timeoutMs:900*1e3}),account:s}}if(t.type==="agent_source_publish"){let i=m(t.payload),{teamId:u,...c}=i;return{...await w({apiKey:r,sandboxApiUrl:o,path:v(`/agents/${encodeURIComponent(t.agentId)}/source/publish`,y(i)),method:"POST",body:c}),account:s}}if(t.type==="create")return{sandbox:await e.create(Z(t.payload)),account:s};if(t.type==="get")return{sandbox:await e.get(t.sandboxId),account:s};if(t.type==="start")return{...await e.start(t.sandboxId,{respondAsync:!0}),account:s};if(t.type==="delete"){let i=await Et(e,t.sandboxId,{failOnUnpreservedChanges:t.failOnUnpreservedChanges}),u=await e.delete(t.sandboxId,i).catch(c=>kt("delete",e,t.sandboxId,c));return At("delete",u),{sandbox:u,account:s}}if(t.type==="exec")return{...await e.exec(t.sandboxId,pt(t.payload)),account:s};if(t.type==="action_run")return{...await Tn({apiKey:r,sandboxApiUrl:o,path:`/sandboxes/${encodeURIComponent(t.sandboxId)}/actions/${encodeURIComponent(t.actionName)}/run`,method:"POST",body:m(t.payload)}),account:s};if(t.type==="open_port")return{...await e.openPort(t.sandboxId,ht(t.payload)),account:s};if(t.type==="snapshot_update")return{...await e.updateSnapshot(t.sandboxId,t.snapshotId,ft(t.payload)),account:s};if(t.type==="snapshot_validate")return{...await e.validateSnapshot(t.sandboxId,t.snapshotId,yt(t.payload)),account:s};if(t.type==="snapshot_publish")return{...await e.publishSnapshot(t.sandboxId,t.snapshotId),account:s};if(t.type==="replays")return{...await e.listReplays(y(t.payload)),account:s};if(t.type==="replay_start")return{...await e.startReplay(rt(t.payload)),account:s};if(t.type==="replay_get")return{...await e.getReplay(t.replayId,y(t.payload)),account:s};if(t.type==="replay_logs")return{...await e.getReplayLogs(t.replayId,y(t.payload)),account:s};if(t.type==="replay_artifacts")return{...await e.getReplayArtifacts(t.replayId,y(t.payload)),account:s};if(t.type==="replay_cancel")return{...await e.cancelReplay(t.replayId,y(t.payload)),account:s};if(t.type==="schedule_create")return{...await e.createSchedule(m(t.payload)),account:s};if(t.type==="template_launch")return{...await e.launchTemplate(gt(t.payload)),account:s};if(t.type==="fork")return{...await e.fork(t.sandboxId,xe(t.payload)),account:s};if(t.type==="stop"){let i=await Et(e,t.sandboxId,{failOnUnpreservedChanges:t.failOnUnpreservedChanges}),u=await e.stop(t.sandboxId,i).catch(c=>kt("stop",e,t.sandboxId,c));return At("stop",u.sandbox),{...u,account:s}}if(t.type==="receipts")return{receipts:await e.receipts(t.sandboxId),account:s};if(t.type==="logs")return{logs:await e.logs(t.sandboxId),account:s};if(t.type==="integration_leases")return{...await e.integrationLeases(t.sandboxId),account:s};if(t.type==="integration_attach")return{...await e.attachIntegrationConnection(t.sandboxId,Se(t.payload)),account:s};if(t.type==="integration_remove")return{...await e.removeIntegrationLease(t.sandboxId,we(t.payload)),account:s};if(t.type==="process_start")return{...await e.startProcess(t.sandboxId,mt(t.payload)),account:s};if(t.type==="process_get")return{...await e.getProcess(t.sandboxId,t.processId,lt(t.payload)),account:s};if(t.type==="upload_file"){let i=wt(t.payload);return{...i.contentsBase64?await e.uploadFileBase64(t.sandboxId,i.path,i.contentsBase64):await e.uploadFile(t.sandboxId,i.path,i.contents),account:s}}if(t.type==="download_file"){let i=St(t.payload);return{...await e.downloadFileResponse(t.sandboxId,i),account:s}}if(t.type==="list_files")return{...await e.listFiles(t.sandboxId,bt(t.payload)),account:s};if(t.type==="search_files")return{...await e.searchFiles(t.sandboxId,It(t.payload)),account:s};if(t.type==="delete_file"){let i=D(t.payload);return{...await e.deleteFile(t.sandboxId,i.path,{recursive:i.recursive}),account:s}}if(t.type==="stat_file"){let i=D(t.payload);return{...await e.statFile(t.sandboxId,i.path),account:s}}if(t.type==="mkdir"){let i=D(t.payload);return{...await e.mkdir(t.sandboxId,{path:i.path,recursive:i.recursive}),account:s}}if(t.type==="move_file"){let i=xt(t.payload);return{...await e.moveFile(t.sandboxId,i),account:s}}if(t.type==="git_status")return{...await e.gitStatus(t.sandboxId),account:s};if(t.type==="git_diff"){let i=m(t.payload),u=typeof i.baseRef=="string"?i.baseRef.trim():"";return{...await e.gitDiff(t.sandboxId,{...u?{baseRef:u}:{}}),account:s}}if(t.type==="git_export_patch"){let i=m(t.payload),u=typeof i.baseRef=="string"?i.baseRef.trim():"";return{...await e.gitExportPatch(t.sandboxId,{...u?{baseRef:u}:{}}),account:s}}if(t.type==="git_branch")return{...await e.gitBranch(t.sandboxId,vt(t.payload)),account:s};if(t.type==="git_commit")return{...await e.gitCommit(t.sandboxId,Rt(t.payload)),account:s};if(t.type==="git_pull")return{...await e.gitPull(t.sandboxId,Ct(t.payload)),account:s};if(t.type==="git_push")return{...await e.gitPush(t.sandboxId,Pt(t.payload)),account:s};throw new Error(`Unsupported sandbox action: ${t.type}`)}d(oo,"sandboxRequestPayload");async function ao(t={}){let{client:e}=await te();return t.teamId?e.integrationConnections(t):Re(e,{...t.projectId?{projectId:t.projectId}:{},...t.agentId?{agentId:t.agentId}:{},status:t.status??"all"})}d(ao,"listSandboxIntegrationConnections");async function Et(t,e,n={}){let r=await t.get(e).then(o=>!Ut(o)).catch(()=>!0);return{failOnUnpreservedChanges:n.failOnUnpreservedChanges,...r?{respondAsync:!0}:{}}}d(Et,"sandboxLifecycleRequestOptions");function Ut(t){return t.reservation.status==="reserved"&&(t.state==="creating"||qt.has(t.state))}d(Ut,"sandboxLifecycleRequiresSynchronousAccounting");function At(t,e){if(qt.has(e.state)&&e.reservation.status==="reserved")throw new Error(`Sandbox ${t} reached ${e.state}, but reservation ${e.reservation.id} is still reserved. Cleanup accounting has not settled; retry status before treating cleanup as complete.`)}d(At,"assertTerminalSandboxLifecycleSettled");async function kt(t,e,n,r){let o=await e.get(n).catch(()=>null);if(o&&Ut(o)){let s=r instanceof Error?r.message:String(r);throw new Error(`Sandbox ${t} failed while sandbox ${n} is still creating with active reservation ${o.reservation.id}. Cleanup accounting has not settled; retry status before treating cleanup as complete. Original error: ${s}`)}throw r instanceof Error?r:new Error(String(r))}d(kt,"throwSandboxLifecycleRequestFailure");var qt=new Set(["stopped","archived","deleted","error"]);async function Re(t,e){let n=await t.listOrganizations().catch(()=>{throw new Error("Connected app status is unavailable because organizations could not be loaded.")}),r=$n(n),o=On(n)||null;if(r.length===0)return{teamId:o,connections:[]};let s=await Promise.all(r.map(u=>t.integrationConnections({teamId:u,...e.projectId?{projectId:e.projectId}:{},...e.agentId?{agentId:e.agentId}:{},status:e.status}).catch(()=>null))),i=qn(s);return{teamId:kn(i)??o??i.find(u=>u.teamId.trim())?.teamId.trim()??null,connections:Un(i)}}d(Re,"resolveImplicitConnectedAppStatusConnections");function kn(t){for(let e of t){if((e.connections?.length??0)===0)continue;let n=e.teamId?.trim();if(n)return n}return null}d(kn,"connectedAppStatusTeamIdWithConnections");function Un(t){let e=[],n=new Set;for(let r of t)for(let o of r.connections??[]){let s=o.id.trim()||[o.teamId,o.provider,o.providerAccountId].join(":");n.has(s)||(n.add(s),e.push(o))}return e}d(Un,"mergeConnectedAppStatusConnectionResults");function qn(t){let e=t.filter(o=>o!==null),n=t.length-e.length,r=e.reduce((o,s)=>o+(s.connections?.length??0),0);if(n>0&&r===0)throw new Error("Connected app status is unavailable because one or more team integration connection lookups could not be loaded.");return e}d(qn,"successfulConnectedAppStatusConnectionResults");function On(t){let e=t.filter(n=>Ot(n)==="active");return ee(e.find(n=>n.role==="owner"))??ee(e.find(n=>n.role==="admin"))??ee(e[0])??""}d(On,"selectImplicitConnectedAppStatusTeamId");function $n(t){let e=[],n=new Set;for(let r of t){if(Ot(r)!=="active")continue;let o=ee(r);!o||n.has(o)||(n.add(o),e.push(o))}return e}d($n,"implicitConnectedAppStatusTeamIds");function ee(t){if(!t)return null;let e=t.id;return(typeof t.teamId=="string"?t.teamId:typeof e=="string"?e:"").trim()||null}d(ee,"organizationTeamId");function Ot(t){return typeof t.status=="string"?t.status:"active"}d(Ot,"organizationStatus");async function te(){let t=$(process.env.OPENPOND_SANDBOX_API_URL),e=process.env.OPENPOND_SANDBOX_API_KEY?.trim();if(e&&t)return{client:Y({apiKey:e,sandboxApiUrl:t}),context:await ue().catch(()=>null),apiKey:e,sandboxApiUrl:O(t,{apiBaseUrl:t})};let n=await ue(),r=n.token?.trim();if(!r)throw new Error("OpenPond account API key is required to manage sandboxes.");if(t)return{client:Y({apiKey:r,sandboxApiUrl:t}),context:n,apiKey:r,sandboxApiUrl:O(t,{apiBaseUrl:t})};let o=Ln(n);return{client:Y({apiKey:r,baseUrl:o}),context:n,apiKey:r,sandboxApiUrl:O(o,{apiBaseUrl:o})}}d(te,"resolveSandboxClient");function jn(t){return O(t,{apiBaseUrl:t}).replace(/\/sandboxes\/?$/,"")}d(jn,"sandboxApiRootUrl");function _n(t){let e=O(t,{apiBaseUrl:t});return/\/api\/sandboxes\/?$/.test(e)?e.replace(/\/api\/sandboxes\/?$/,"/v1"):e.replace(/\/sandboxes\/?$/,"")}d(_n,"sandboxPublicApiRootUrl");function v(t,e){let n=new URLSearchParams;return e.teamId&&n.set("teamId",e.teamId),e.projectId&&n.set("projectId",e.projectId),e.agentId&&n.set("agentId",e.agentId),`${t}${n.size>0?`?${n.toString()}`:""}`}d(v,"sandboxScopedCollectionPath");async function Tn(t){let e=await z(jn(t.sandboxApiUrl),t.apiKey,t.path,{method:t.method??"GET",...t.body?{body:JSON.stringify(t.body)}:{}}),n=await e.json().catch(()=>({}));if(!e.ok){let r=typeof n.error=="string"?n.error:`Sandbox API request failed with status ${e.status}`;throw new Error(r)}return n}d(Tn,"requestSandboxApiRoot");async function w(t){let e=await z(_n(t.sandboxApiUrl),t.apiKey,t.path,{method:t.method??"GET",signal:t.signal,headers:{...t.idempotencyKey?{"idempotency-key":t.idempotencyKey}:{},...t.teamId?{"X-OpenPond-Team-Id":t.teamId}:{}},...t.body?{body:JSON.stringify(t.body)}:{},...t.timeoutMs!==void 0?{timeoutMs:t.timeoutMs}:{}}),n=await e.json().catch(()=>({}));if(!e.ok){let r=typeof n.error=="string"?n.error:`Sandbox API request failed with status ${e.status}`;throw new Error(r)}return n}d(w,"requestSandboxPublicApiRoot");async function so(t){let{apiKey:e,sandboxApiUrl:n}=await te();return w({apiKey:e,sandboxApiUrl:n,...t})}d(so,"requestOpenPondPublicApi");function zn(t,e){if(!t)return{label:"Sandbox API",handle:null,baseUrl:null,sandboxApiUrl:e,state:"signed_out"};let n=t.accountState;return{label:n.label,handle:n.activeProfile?.handle??t.account?.handle??null,baseUrl:n.baseUrl??t.account?.baseUrl??null,sandboxApiUrl:e,state:n.state}}d(zn,"sandboxAccountSummary");function Ln(t){return $(process.env.OPENPOND_SANDBOX_BASE_URL)??$(process.env.OPENPOND_API_URL)??$(t.apiBaseUrl)??$(t.account?.baseUrl)??$(t.config.baseUrl)??An}d(Ln,"resolveSandboxBaseUrl");export{ir as a,Pr as b,Xe as c,nn as d,rn as e,$r as f,on as g,jr as h,jt as i,ro as j,oo as k,ao as l,so as m};
@@ -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};