openpond 0.2.70 → 0.2.71

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 (349) hide show
  1. package/dist/app-server.js +1 -1
  2. package/dist/chunks/{acp-QTA6IU6W.js → acp-VWPJ2EL4.js} +1 -1
  3. package/dist/chunks/{acp-agent-N77HPAYQ.js → acp-agent-OZHZMQ6R.js} +1 -1
  4. package/dist/chunks/{actions-command-BZQCUDMD.js → actions-command-AXGXBU75.js} +1 -1
  5. package/dist/chunks/{app-layer-YQQNLIXA.js → app-layer-OHPIYEOJ.js} +1 -1
  6. package/dist/chunks/{app-server-evaluations-RRLYWLPK.js → app-server-evaluations-Y5UEF2Y7.js} +1 -1
  7. package/dist/chunks/{app-server-harness-services-XXM336NU.js → app-server-harness-services-GUHAIIPS.js} +1 -1
  8. package/dist/chunks/{app-server-runtime-B7AMBGQZ.js → app-server-runtime-CH5STRJP.js} +1 -1
  9. package/dist/chunks/{apps-WG7WY5CB.js → apps-DNLT6P4J.js} +1 -1
  10. package/dist/chunks/{chunk-MOXIGLN2.js → chunk-23YW5PAQ.js} +1 -1
  11. package/dist/chunks/{chunk-ZDEIVUUI.js → chunk-27OJ2OLP.js} +1 -1
  12. package/dist/chunks/{chunk-NSSZ2ZIU.js → chunk-2EAZB2MW.js} +1 -1
  13. package/dist/chunks/{chunk-DRLP7GIU.js → chunk-2GEZ3ZY7.js} +1 -1
  14. package/dist/chunks/{chunk-PAYFJHPO.js → chunk-2PVW2XFF.js} +1 -1
  15. package/dist/chunks/{chunk-Y2WNZWT2.js → chunk-2Q6FTL4C.js} +1 -1
  16. package/dist/chunks/{chunk-KP2MYTP5.js → chunk-2QHB5P2K.js} +1 -1
  17. package/dist/chunks/{chunk-FNGZ4UDZ.js → chunk-33UVQ7DU.js} +1 -1
  18. package/dist/chunks/{chunk-M4ZHFDRJ.js → chunk-3JVZ7OCQ.js} +1 -1
  19. package/dist/chunks/{chunk-4BUM6JEC.js → chunk-3JYPUOK4.js} +1 -1
  20. package/dist/chunks/{chunk-DXJC3QW7.js → chunk-3VT2PPKW.js} +1 -1
  21. package/dist/chunks/{chunk-Z33RVGP6.js → chunk-5LKEVB2P.js} +1 -1
  22. package/dist/chunks/{chunk-P4QM63L3.js → chunk-5ZBDHIIE.js} +1 -1
  23. package/dist/chunks/{chunk-WD4KAKEX.js → chunk-64EDQ7UV.js} +1 -1
  24. package/dist/chunks/{chunk-OL3L3U36.js → chunk-6BTX66SV.js} +1 -1
  25. package/dist/chunks/{chunk-KU4TPDPH.js → chunk-6LAGMWJE.js} +1 -1
  26. package/dist/chunks/{chunk-65FJWWXG.js → chunk-6YR5IYHH.js} +1 -1
  27. package/dist/chunks/{chunk-AUO5DCEU.js → chunk-73COPJ32.js} +1 -1
  28. package/dist/chunks/{chunk-KDER7R45.js → chunk-7PDF2UX2.js} +1 -1
  29. package/dist/chunks/{chunk-SO4GMSNP.js → chunk-7SOHV5BH.js} +1 -1
  30. package/dist/chunks/{chunk-XOPHFUUY.js → chunk-ASMQTMQB.js} +1 -1
  31. package/dist/chunks/{chunk-ESYPMD7Q.js → chunk-AT3ZYNX4.js} +1 -1
  32. package/dist/chunks/{chunk-NMMHXYDJ.js → chunk-AVEHWUML.js} +1 -1
  33. package/dist/chunks/{chunk-M4A7G4S5.js → chunk-B7SCVTE6.js} +1 -1
  34. package/dist/chunks/{chunk-DKOVZ6R2.js → chunk-BQNU4HZW.js} +1 -1
  35. package/dist/chunks/{chunk-UANH7U3Y.js → chunk-BTEBZYK3.js} +1 -1
  36. package/dist/chunks/{chunk-BU6MW65V.js → chunk-BYVE4TMU.js} +1 -1
  37. package/dist/chunks/{chunk-PNPV2LDE.js → chunk-BZS2PA4O.js} +1 -1
  38. package/dist/chunks/{chunk-AFYYIJ6K.js → chunk-C7NQPICU.js} +1 -1
  39. package/dist/chunks/{chunk-K7KBFM2T.js → chunk-CBD554GZ.js} +1 -1
  40. package/dist/chunks/{chunk-GYYJ47GX.js → chunk-CWE2N3JI.js} +1 -1
  41. package/dist/chunks/{chunk-ZYLLPRPU.js → chunk-CX4T7I47.js} +1 -1
  42. package/dist/chunks/{chunk-AQUZCWM3.js → chunk-D2V2Y3FB.js} +1 -1
  43. package/dist/chunks/{chunk-2PXKSAG6.js → chunk-DLOJG7LP.js} +1 -1
  44. package/dist/chunks/{chunk-5G7BQAUA.js → chunk-DNNWMOMG.js} +1 -1
  45. package/dist/chunks/{chunk-BGMAWETL.js → chunk-DNRC6TPJ.js} +1 -1
  46. package/dist/chunks/{chunk-5FSPDSAO.js → chunk-DUR32LJG.js} +1 -1
  47. package/dist/chunks/{chunk-JZKTBYNB.js → chunk-E57PUTV2.js} +1 -1
  48. package/dist/chunks/{chunk-OUJ63LMU.js → chunk-ER2VONWQ.js} +1 -1
  49. package/dist/chunks/{chunk-TAXCMCYZ.js → chunk-ESOIZG2G.js} +4 -4
  50. package/dist/chunks/{chunk-CCZ276IA.js → chunk-F2EUZG2W.js} +1 -1
  51. package/dist/chunks/{chunk-VJR2GNRY.js → chunk-FVMTQSVW.js} +1 -1
  52. package/dist/chunks/{chunk-YI6ME6PU.js → chunk-GG6PM7TB.js} +1 -1
  53. package/dist/chunks/{chunk-DDOIPTOM.js → chunk-GMA365GI.js} +1 -1
  54. package/dist/chunks/{chunk-JVMSN7LH.js → chunk-GR4MJJCE.js} +1 -1
  55. package/dist/chunks/{chunk-FHDH4OUA.js → chunk-GUWNSMGH.js} +1 -1
  56. package/dist/chunks/{chunk-AFH462DO.js → chunk-HT6ILPD6.js} +1 -1
  57. package/dist/chunks/{chunk-3Z4VM2LF.js → chunk-HUMNLSCV.js} +1 -1
  58. package/dist/chunks/{chunk-XYZV3FKD.js → chunk-I6KTJ3GH.js} +1 -1
  59. package/dist/chunks/{chunk-WZ35ICTE.js → chunk-IFMWAOBR.js} +1 -1
  60. package/dist/chunks/{chunk-R2FYCJL6.js → chunk-IJJ7FYZE.js} +1 -1
  61. package/dist/chunks/{chunk-XHACK2KR.js → chunk-IUYGQO2K.js} +1 -1
  62. package/dist/chunks/{chunk-55YD4UTW.js → chunk-IV2HEX3I.js} +1 -1
  63. package/dist/chunks/{chunk-U7X5ZLAL.js → chunk-JCHLDNCX.js} +1 -1
  64. package/dist/chunks/{chunk-7PKDJHT6.js → chunk-JH4RACOB.js} +1 -1
  65. package/dist/chunks/{chunk-65WRWLUD.js → chunk-JVEIK4RH.js} +1 -1
  66. package/dist/chunks/{chunk-PPF6EBTQ.js → chunk-K3WM4NEC.js} +1 -1
  67. package/dist/chunks/{chunk-EGP6DF34.js → chunk-KASHK2U5.js} +2 -2
  68. package/dist/chunks/{chunk-7OFD6TFD.js → chunk-LMLGEOKV.js} +1 -1
  69. package/dist/chunks/{chunk-QUNQM2E3.js → chunk-MPEK4ZNY.js} +1 -1
  70. package/dist/chunks/{chunk-SDHG6CKU.js → chunk-NDNSLCPE.js} +1 -1
  71. package/dist/chunks/chunk-NK2L5HA2.js +2 -0
  72. package/dist/chunks/{chunk-WCNPGKST.js → chunk-O4YHISU2.js} +1 -1
  73. package/dist/chunks/{chunk-RCQYEHHD.js → chunk-O5ZOW474.js} +1 -1
  74. package/dist/chunks/{chunk-OXQ2WFIH.js → chunk-OEAKX5TS.js} +1 -1
  75. package/dist/chunks/{chunk-54755JYM.js → chunk-OFV26C2U.js} +2 -2
  76. package/dist/chunks/{chunk-IO5DZUKL.js → chunk-OI4DAZ4U.js} +1 -1
  77. package/dist/chunks/{chunk-Q73RKX7I.js → chunk-OIIE5GUK.js} +1 -1
  78. package/dist/chunks/{chunk-CUB6PWAJ.js → chunk-OKPV6MBX.js} +6 -6
  79. package/dist/chunks/{chunk-N5EAVX4G.js → chunk-OOKHHOIU.js} +1 -1
  80. package/dist/chunks/{chunk-MIFVX5PK.js → chunk-OQ4RWCYI.js} +1 -1
  81. package/dist/chunks/{chunk-EWH64WRR.js → chunk-OTG77H7U.js} +1 -1
  82. package/dist/chunks/{chunk-7OKZCJHS.js → chunk-OXRN2257.js} +1 -1
  83. package/dist/chunks/{chunk-JVNKSU27.js → chunk-PJJSQ4ZI.js} +1 -1
  84. package/dist/chunks/{chunk-7TM25J6S.js → chunk-PXQZOVSV.js} +2 -2
  85. package/dist/chunks/{chunk-YAA7F5LI.js → chunk-QKGNAYSC.js} +1 -1
  86. package/dist/chunks/{chunk-67U7PAMU.js → chunk-QN4CFJQC.js} +1 -1
  87. package/dist/chunks/{chunk-HES4VP3D.js → chunk-RJY4EI46.js} +1 -1
  88. package/dist/chunks/{chunk-E2JB5OCO.js → chunk-RP4DPUN2.js} +1 -1
  89. package/dist/chunks/{chunk-QLGP2OAQ.js → chunk-SNBFWBJI.js} +1 -1
  90. package/dist/chunks/{chunk-ZK3ET5EP.js → chunk-SRJTQS2D.js} +3 -3
  91. package/dist/chunks/{chunk-XY7HFXLH.js → chunk-SVLVIYH2.js} +1 -1
  92. package/dist/chunks/{chunk-7NCM6GBN.js → chunk-TOWY6Y23.js} +1 -1
  93. package/dist/chunks/{chunk-VWWKWYSQ.js → chunk-TWLPZHH7.js} +1 -1
  94. package/dist/chunks/{chunk-Y4I6CFZJ.js → chunk-UGDBMRCT.js} +1 -1
  95. package/dist/chunks/{chunk-JQOVC35K.js → chunk-UKTPX2EE.js} +1 -1
  96. package/dist/chunks/{chunk-CO23RRN7.js → chunk-UMRQKE3W.js} +1 -1
  97. package/dist/chunks/{chunk-B66QCXH2.js → chunk-USKCFST5.js} +1 -1
  98. package/dist/chunks/{chunk-3A2Y7UK3.js → chunk-USTDWGR4.js} +1 -1
  99. package/dist/chunks/{chunk-CIZI6Z7D.js → chunk-VMW23TIZ.js} +1 -1
  100. package/dist/chunks/{chunk-Y4E5AAI7.js → chunk-VND53FAU.js} +1 -1
  101. package/dist/chunks/{chunk-4G3GTEVS.js → chunk-VSQPWLAG.js} +1 -1
  102. package/dist/chunks/{chunk-KCLMA2IH.js → chunk-VV4K5YPD.js} +1 -1
  103. package/dist/chunks/{chunk-7RJOCGQ6.js → chunk-WAUFXZ5B.js} +1 -1
  104. package/dist/chunks/{chunk-HG2YFMVU.js → chunk-WXG3G2O6.js} +1 -1
  105. package/dist/chunks/{chunk-PACLKDTN.js → chunk-XBAB3HMA.js} +1 -1
  106. package/dist/chunks/chunk-XJU47QS2.js +2 -0
  107. package/dist/chunks/{chunk-WGQ3FMRF.js → chunk-XKDOPNQ5.js} +1 -1
  108. package/dist/chunks/{chunk-EYTTZ5H4.js → chunk-XLZMSD5K.js} +1 -1
  109. package/dist/chunks/{chunk-Q7FBVLLB.js → chunk-XNPTLJ5Z.js} +1 -1
  110. package/dist/chunks/{chunk-ZIQJDTQB.js → chunk-XTT3K3TR.js} +1 -1
  111. package/dist/chunks/{chunk-Q7P34B2O.js → chunk-YFHQRDNQ.js} +1 -1
  112. package/dist/chunks/{chunk-UGFSAG4U.js → chunk-YG3HITOU.js} +1 -1
  113. package/dist/chunks/{chunk-DWF3FCY4.js → chunk-Z5R4OSGC.js} +1 -1
  114. package/dist/chunks/{chunk-JT5YQ52I.js → chunk-Z6HWSTEP.js} +1 -1
  115. package/dist/chunks/{chunk-4PUOWSDE.js → chunk-ZEOYNUHL.js} +1 -1
  116. package/dist/chunks/{chunk-6C6ZCYTL.js → chunk-ZG3DBXQG.js} +1 -1
  117. package/dist/chunks/{chunk-4KTGYHCE.js → chunk-ZMRP2A7K.js} +1 -1
  118. package/dist/chunks/cli-5JARGJOD.js +2 -0
  119. package/dist/chunks/{command-5AXJMFYC.js → command-AI3SMEAH.js} +3 -3
  120. package/dist/chunks/{configuration-command-5LUNWPOL.js → configuration-command-NPA46ZOT.js} +1 -1
  121. package/dist/chunks/{connected-app-executor-DHXZE4X3.js → connected-app-executor-DLC23O43.js} +1 -1
  122. package/dist/chunks/{connected-evidence-NWMPICKJ.js → connected-evidence-TVORI55Q.js} +1 -1
  123. package/dist/chunks/{connected-starting-assets-NRVXIKQ2.js → connected-starting-assets-WGGBWH4K.js} +1 -1
  124. package/dist/chunks/{continual-UCKQ2QLH.js → continual-UHQI2EQD.js} +1 -1
  125. package/dist/chunks/{core-commands-ZPBX35M2.js → core-commands-QNZUBKOC.js} +1 -1
  126. package/dist/chunks/{dataset-preparation-authoring-UUYFWWCT.js → dataset-preparation-authoring-OBMJLGA4.js} +1 -1
  127. package/dist/chunks/{datasets-6K3ZANIV.js → datasets-USJLJOEQ.js} +1 -1
  128. package/dist/chunks/{desktop-test-57INNJ76.js → desktop-test-IYHAOR47.js} +1 -1
  129. package/dist/chunks/{dist-2MKJC6HN.js → dist-C5XFRP53.js} +1 -1
  130. package/dist/chunks/{evaluation-coordination-B7CN4R2D.js → evaluation-coordination-UJENK4WQ.js} +1 -1
  131. package/dist/chunks/{experiment-improvements-G357VLDB.js → experiment-improvements-6GJMKIER.js} +1 -1
  132. package/dist/chunks/{experiments-BHQO26LJ.js → experiments-FZHILSC6.js} +1 -1
  133. package/dist/chunks/{experiments-signal-BI6NKETB.js → experiments-signal-E32CWBS4.js} +1 -1
  134. package/dist/chunks/{help-UQN5RUPA.js → help-32DLAPJR.js} +1 -1
  135. package/dist/chunks/host-profile-evaluation-tools-QAV2UGSB.js +2 -0
  136. package/dist/chunks/{host-profile-external-dataset-KSEPXY2S.js → host-profile-external-dataset-C6ZPMTX6.js} +1 -1
  137. package/dist/chunks/{hosted-app-server-composition-WDDO6F23.js → hosted-app-server-composition-5DVBKNV3.js} +1 -1
  138. package/dist/chunks/{hosted-experiment-improvement-VVYXQ65K.js → hosted-experiment-improvement-YQ24C54D.js} +1 -1
  139. package/dist/chunks/hosted-harness-runtime-KLIORGWV.js +2 -0
  140. package/dist/chunks/{hosted-profile-candidate-PTGQLPZO.js → hosted-profile-candidate-RCWFLOVJ.js} +1 -1
  141. package/dist/chunks/{hosted-profile-compiler-FS5R6CHJ.js → hosted-profile-compiler-UDG4BCEW.js} +1 -1
  142. package/dist/chunks/{hosted-profile-evaluation-control-UUEZEMXU.js → hosted-profile-evaluation-control-4R3L4FTK.js} +1 -1
  143. package/dist/chunks/{hosted-profile-evaluation-inspection-4F7OEF4T.js → hosted-profile-evaluation-inspection-NA4SSY7N.js} +1 -1
  144. package/dist/chunks/{hosted-profile-evaluation-preparation-LIJJZDHQ.js → hosted-profile-evaluation-preparation-B4BW6JTB.js} +1 -1
  145. package/dist/chunks/{hosted-tasksets-KCLNMPG5.js → hosted-tasksets-IUK3VWSL.js} +1 -1
  146. package/dist/chunks/{human-review-PX6DBIFT.js → human-review-D6QCZLYN.js} +1 -1
  147. package/dist/chunks/{import-2HEYPHPW.js → import-UCG75PN5.js} +1 -1
  148. package/dist/chunks/{learning-Y3UKNUGE.js → learning-3XDYMYBE.js} +1 -1
  149. package/dist/chunks/{learning-LSXBL5DB.js → learning-OR4CYV4B.js} +1 -1
  150. package/dist/chunks/local-harness-improvement-runtime-GZBMBZB2.js +2 -0
  151. package/dist/chunks/local-harness-taskset-review-YVP2ZQJG.js +2 -0
  152. package/dist/chunks/{model-projects-6YWVD2TS.js → model-projects-POZRHXTF.js} +1 -1
  153. package/dist/chunks/{opchat-66BCRKEZ.js → opchat-APJUUTT7.js} +1 -1
  154. package/dist/chunks/{opchat-bounded-chat-KQWXZVFN.js → opchat-bounded-chat-PBUSUAY2.js} +1 -1
  155. package/dist/chunks/{organizations-IOYWDOCC.js → organizations-WK6EZ6L3.js} +1 -1
  156. package/dist/chunks/{profile-YH6G3ZTD.js → profile-BQMS7ALQ.js} +1 -1
  157. package/dist/chunks/{project-action-payload-53OH6WDH.js → project-action-payload-CGV77JSA.js} +1 -1
  158. package/dist/chunks/{project-agent-RYVMKW2F.js → project-agent-XVFYTEUQ.js} +1 -1
  159. package/dist/chunks/{published-experiment-source-SDXUVPE7.js → published-experiment-source-2CYFIRBL.js} +1 -1
  160. package/dist/chunks/{refiner-profile-service-56VYLZQJ.js → refiner-profile-service-OLJHA4DI.js} +1 -1
  161. package/dist/chunks/{runtime-ISLJIGWC.js → runtime-32KYSVZR.js} +1 -1
  162. package/dist/chunks/{sandbox-command-DI45NRTV.js → sandbox-command-OY3VZXGG.js} +1 -1
  163. package/dist/chunks/{sandbox-template-T42MDUSR.js → sandbox-template-YOOSJ4FK.js} +1 -1
  164. package/dist/chunks/saved-work-L4KNWLZB.js +2 -0
  165. package/dist/chunks/{setup-D6TY2GWV.js → setup-EU6CMRXQ.js} +1 -1
  166. package/dist/chunks/{src-LF5X4RNQ.js → src-3DJR7OAH.js} +1 -1
  167. package/dist/chunks/{src-7RN7BF4W.js → src-HYOTHMRX.js} +111 -113
  168. package/dist/chunks/{standalone-experiment-turn-owner-TW5MTWIO.js → standalone-experiment-turn-owner-UYPA6XHW.js} +1 -1
  169. package/dist/chunks/{store-chat-resources-IRHBW2EC.js → store-chat-resources-HISLEZZM.js} +1 -1
  170. package/dist/chunks/{store-continual-support-reviews-3KK42L4I.js → store-continual-support-reviews-ORWHS57V.js} +1 -1
  171. package/dist/chunks/{store-conversation-serving-IVURK52V.js → store-conversation-serving-5UGYKEGJ.js} +1 -1
  172. package/dist/chunks/{store-create-improve-UTCLBXF2.js → store-create-improve-APLPTVYQ.js} +1 -1
  173. package/dist/chunks/{store-datasets-4AQOVAQY.js → store-datasets-HDW6IYBL.js} +1 -1
  174. package/dist/chunks/{store-evaluation-results-PK2P3IMH.js → store-evaluation-results-KB2UDCF3.js} +1 -1
  175. package/dist/chunks/{store-harness-workspaces-YEXB4IRV.js → store-harness-workspaces-TKX5PZWP.js} +1 -1
  176. package/dist/chunks/{store-human-review-O4BVHP25.js → store-human-review-IURNTX3C.js} +1 -1
  177. package/dist/chunks/{store-learned-preference-migration-validation-44SVX6YB.js → store-learned-preference-migration-validation-TH2LKQWV.js} +1 -1
  178. package/dist/chunks/{store-learning-SIUQIY5C.js → store-learning-WLUW2PWE.js} +1 -1
  179. package/dist/chunks/{store-learning-credentials-BUHR7SN6.js → store-learning-credentials-FDKCEDHK.js} +1 -1
  180. package/dist/chunks/{store-local-experiments-BHVTKPPE.js → store-local-experiments-M4V5RLHJ.js} +1 -1
  181. package/dist/chunks/{store-model-batch-review-RVAYUVK2.js → store-model-batch-review-DDZLWVTG.js} +1 -1
  182. package/dist/chunks/{store-model-configuration-AYFGMC5D.js → store-model-configuration-ATOFA5OH.js} +1 -1
  183. package/dist/chunks/{store-model-project-preparation-5DEIS7TB.js → store-model-project-preparation-ZRSCQEQR.js} +1 -1
  184. package/dist/chunks/{store-modification-recordings-LCPK6K2T.js → store-modification-recordings-YJIDUPVJ.js} +1 -1
  185. package/dist/chunks/{store-preference-comparison-5YVIQNVB.js → store-preference-comparison-JKURBESE.js} +1 -1
  186. package/dist/chunks/{store-task-inbox-L6IQTY26.js → store-task-inbox-L53OT6ZC.js} +1 -1
  187. package/dist/chunks/{store-task-inventory-QWS2C656.js → store-task-inventory-R2JJGAHW.js} +1 -1
  188. package/dist/chunks/{store-taskset-drafts-EAOOY6CR.js → store-taskset-drafts-FPNJPFPO.js} +1 -1
  189. package/dist/chunks/{store-training-FYXZU2FE.js → store-training-DIBW7OMP.js} +1 -1
  190. package/dist/chunks/{store-training-jobs-3N3VKPIY.js → store-training-jobs-K7I4SXWW.js} +1 -1
  191. package/dist/chunks/{store-training-models-VOFVGPZR.js → store-training-models-LCSB37YY.js} +1 -1
  192. package/dist/chunks/{taskset-HNDIGYQG.js → taskset-XI5SJBJL.js} +1 -1
  193. package/dist/chunks/{taskset-packages-WMG5DUBN.js → taskset-packages-FUQWNTSB.js} +1 -1
  194. package/dist/chunks/{taskset-packages-T6B6HYKZ.js → taskset-packages-GM6IUOTY.js} +1 -1
  195. package/dist/chunks/{teams-bot-Z5CZLWE4.js → teams-bot-CYC5TR64.js} +1 -1
  196. package/dist/chunks/{tool-learning-ZQ6NSJ5K.js → tool-learning-52QZIJIR.js} +1 -1
  197. package/dist/chunks/{training-JTYQA7GA.js → training-GDLLLXSV.js} +1 -1
  198. package/dist/chunks/training-RL7UUBER.js +2 -0
  199. package/dist/chunks/training-UJ62NOJJ.js +2 -0
  200. package/dist/chunks/{training-hosted-36SZFS4U.js → training-hosted-V5CHG3M3.js} +1 -1
  201. package/dist/chunks/{training-hosted-alphaedit-HSMRDJTD.js → training-hosted-alphaedit-R5PVATV4.js} +1 -1
  202. package/dist/chunks/{training-hosted-decision-7JALOU6O.js → training-hosted-decision-WNK5DE3M.js} +1 -1
  203. package/dist/chunks/{training-hosted-engram-SXO75MFG.js → training-hosted-engram-ZQDOKXAV.js} +1 -1
  204. package/dist/chunks/{training-hosted-learning-E2N32YU5.js → training-hosted-learning-UEBGSSNC.js} +1 -1
  205. package/dist/chunks/{training-hosted-modification-comparison-TXFDJFTG.js → training-hosted-modification-comparison-KKI5CKOH.js} +1 -1
  206. package/dist/chunks/{training-hosted-neuron-training-J42WK4EH.js → training-hosted-neuron-training-CFWEDRSR.js} +1 -1
  207. package/dist/chunks/{training-hosted-serving-report-BAEABGJH.js → training-hosted-serving-report-N4NF5AVW.js} +1 -1
  208. package/dist/chunks/{training-hosted-steering-T556BUBG.js → training-hosted-steering-4MDUQ2YV.js} +1 -1
  209. package/dist/chunks/{training-model-start-P3PXDWNT.js → training-model-start-NOA6TYQK.js} +1 -1
  210. package/dist/cli.js +1 -1
  211. package/dist/index.js +1 -1
  212. package/dist/skills/manifest.json +3 -3
  213. package/dist/skills/openpond-cli/references/experiments-and-training.md +19 -0
  214. package/dist/web/assets/App-L7RV4D0A.js +54 -0
  215. package/dist/web/assets/{AppDialog-x1HU1uLv.js → AppDialog-B2V84J7f.js} +1 -1
  216. package/dist/web/assets/{AppTerminalPanel-CNIKmqKc.js → AppTerminalPanel-DfYpUDKT.js} +2 -2
  217. package/dist/web/assets/{AppToastContext-DNWd43HS.js → AppToastContext-DuiPouLz.js} +1 -1
  218. package/dist/web/assets/{AppsView-BvOD83Z1.js → AppsView-B20RHDCy.js} +1 -1
  219. package/dist/web/assets/{AttachmentTypeIcon-BLdDr3JZ.js → AttachmentTypeIcon-l-GRNxaz.js} +1 -1
  220. package/dist/web/assets/{BrowserSidebar-Ar0FlFKg.js → BrowserSidebar-Ce0ToS2O.js} +1 -1
  221. package/dist/web/assets/{CartesianChart-tS7f1HZv.js → CartesianChart-CtfMRAfp.js} +1 -1
  222. package/dist/web/assets/{ChatTimelineEntry-z7_kur3h.js → ChatTimelineEntry-DzcucW20.js} +1 -1
  223. package/dist/web/assets/{CollaborationTabs-CaiFEKrv.js → CollaborationTabs-BpmKjNAC.js} +1 -1
  224. package/dist/web/assets/{CommandMenu-BpubEqaA.js → CommandMenu-JXsoxijv.js} +1 -1
  225. package/dist/web/assets/{CommunityView-TGR4s99l.js → CommunityView-ggdn8pcH.js} +1 -1
  226. package/dist/web/assets/{ComposerAttachments-DPWCjKXz.js → ComposerAttachments-BMmALUs_.js} +1 -1
  227. package/dist/web/assets/{ComposerCreateImproveStrip-Drji01_6.js → ComposerCreateImproveStrip-DcM1bkfu.js} +1 -1
  228. package/dist/web/assets/{ConversationImportsSettings-B_oW0cz7.js → ConversationImportsSettings-BKNeARHI.js} +1 -1
  229. package/dist/web/assets/{DatasetReviewImport-Dr3unJSY.js → DatasetReviewImport-DyFOE0Q0.js} +1 -1
  230. package/dist/web/assets/{ExperimentTrainingDataWorkspace-DObvpJAw.js → ExperimentTrainingDataWorkspace-CfOyoMrq.js} +2 -2
  231. package/dist/web/assets/{FilePagePreview-9kkXbARN.js → FilePagePreview-B7bWObJN.js} +2 -2
  232. package/dist/web/assets/{GetStartedView-Dv2b_SlH.js → GetStartedView-BYbFl93M.js} +1 -1
  233. package/dist/web/assets/{GettingStartedDialog-sPaPMc61.js → GettingStartedDialog-UgreDozV.js} +1 -1
  234. package/dist/web/assets/{HostedModelLearningReview-BlwhGxS6.js → HostedModelLearningReview-C_kng2U_.js} +1 -1
  235. package/dist/web/assets/{HostedModelLearningSettings-B5ahk3je.js → HostedModelLearningSettings-aesD_ifF.js} +1 -1
  236. package/dist/web/assets/{HtmlVisual-rGsClq0p.js → HtmlVisual-nvl1x-jh.js} +1 -1
  237. package/dist/web/assets/{LabModelVersionDetailPage-Da7AwZWV.js → LabModelVersionDetailPage-DrdoNvI-.js} +1 -1
  238. package/dist/web/assets/{LabModelWorkspace-DTeYViWH.js → LabModelWorkspace-CHlhzG3q.js} +1 -1
  239. package/dist/web/assets/{LabSkillSidebar-BieHbNl6.js → LabSkillSidebar-CqHeZzoj.js} +1 -1
  240. package/dist/web/assets/{LabsRoute-D3XqPB0-.js → LabsRoute-DzEbPpMK.js} +4 -4
  241. package/dist/web/assets/{LearningBatchesPage-CCBuf2u4.js → LearningBatchesPage-A2dFQW2j.js} +1 -1
  242. package/dist/web/assets/{MainChatThread-B6BQJfcq.js → MainChatThread-BSvKu4e5.js} +2 -2
  243. package/dist/web/assets/{MainPane-D3fQou29.js → MainPane-DiWIAxMj.js} +6 -6
  244. package/dist/web/assets/{ModelProjectPageHeader-BZn9Lu_J.js → ModelProjectPageHeader-lu6iRXHK.js} +1 -1
  245. package/dist/web/assets/{NativeSetupTerminal-Bglqab_g.js → NativeSetupTerminal-kZ-nFPE8.js} +2 -2
  246. package/dist/web/assets/{NativeSkillSidebar-pUGRdnV_.js → NativeSkillSidebar-DkkD1uH2.js} +1 -1
  247. package/dist/web/assets/{NewProjectDialog-BpHN38MA.js → NewProjectDialog-Dg8dMEpc.js} +1 -1
  248. package/dist/web/assets/{OutputsPage-LunDCQ6w.js → OutputsPage-Dz190U9t.js} +1 -1
  249. package/dist/web/assets/{PageChrome-DThEcWAx.js → PageChrome-Bncv-ps0.js} +1 -1
  250. package/dist/web/assets/{ProjectsPage-vct_TQgL.js → ProjectsPage-DVkYvLtd.js} +1 -1
  251. package/dist/web/assets/{RightChatPanelStack-CgFK7DY0.js → RightChatPanelStack-CP4leenI.js} +1 -1
  252. package/dist/web/assets/RightSidebarHomePanel-C0etQXpt.js +1 -0
  253. package/dist/web/assets/{ScheduledWorkPage-mmaZfybl.js → ScheduledWorkPage-DI0mgt82.js} +1 -1
  254. package/dist/web/assets/{SettingsView-CJfeRsWR.js → SettingsView-cCtkr089.js} +3 -3
  255. package/dist/web/assets/{TasksetDraftEditorPrimitives-CuimAfkv.js → TasksetDraftEditorPrimitives-DCQTuswJ.js} +1 -1
  256. package/dist/web/assets/{TeamChatView-BcK0lF1b.js → TeamChatView-BBEomfQ7.js} +1 -1
  257. package/dist/web/assets/{TerminalOverlay-0pzEvy-C.js → TerminalOverlay-Dj5NUDMp.js} +1 -1
  258. package/dist/web/assets/{TrainingCreationPanel-CcyzFz7l.js → TrainingCreationPanel-Ds4PLfsd.js} +1 -1
  259. package/dist/web/assets/{TrainingDraftPanel-DSLZXdLz.js → TrainingDraftPanel-BAuh_BF3.js} +1 -1
  260. package/dist/web/assets/{UsageSettingsSection-BT9pcnCn.js → UsageSettingsSection-DbzeatcW.js} +1 -1
  261. package/dist/web/assets/WorkSidebarPanel-BaNuXoZc.js +1 -0
  262. package/dist/web/assets/{WorkspaceDiffPanel-Bbz5qrVA.js → WorkspaceDiffPanel-xk-ve1MO.js} +3 -3
  263. package/dist/web/assets/{WorkspaceEnvironmentMenu-6hXpvMTl.js → WorkspaceEnvironmentMenu-D8GSuoYz.js} +1 -1
  264. package/dist/web/assets/{WorkspaceFileLocation-BijVemBl.js → WorkspaceFileLocation-Dl8M2ZKN.js} +1 -1
  265. package/dist/web/assets/{WorkspaceGitDialogs-BOO0E5i9.js → WorkspaceGitDialogs-9BhLjYx4.js} +1 -1
  266. package/dist/web/assets/{WorkspaceMonacoEditor-B_YzK7Do.js → WorkspaceMonacoEditor-DYPuC7pj.js} +3 -3
  267. package/dist/web/assets/{WorkspacePdfPreview-CFti1fvu.js → WorkspacePdfPreview-B7BI9tLR.js} +2 -2
  268. package/dist/web/assets/{WorkspacePresentationPreview-DPAhNaV6.js → WorkspacePresentationPreview-sP7JUT7m.js} +1 -1
  269. package/dist/web/assets/{bot-BE2rL_qv.js → bot-D7M8ZtE6.js} +1 -1
  270. package/dist/web/assets/{chat-resources-Beh5lB36.js → chat-resources-DhKAnljP.js} +1 -1
  271. package/dist/web/assets/chevron-down-BAEcJitl.js +1 -0
  272. package/dist/web/assets/chevron-right-3G9s2cQ9.js +1 -0
  273. package/dist/web/assets/chevron-up-DTYF52H1.js +1 -0
  274. package/dist/web/assets/{chunk-C3TS766N-j1MK0e3c.js → chunk-C3TS766N-DENE60SE.js} +1 -1
  275. package/dist/web/assets/{client-choice-storage-CQ0CNkzG.js → client-choice-storage-DYZsrVr9.js} +1 -1
  276. package/dist/web/assets/{client-BnJhN-14.js → client-gy7zrd7a.js} +1 -1
  277. package/dist/web/assets/{cloud-upload-DFjZE4O4.js → cloud-upload-De-XSMUr.js} +1 -1
  278. package/dist/web/assets/{copy-CGrLUtw5.js → copy-DEK20zbZ.js} +1 -1
  279. package/dist/web/assets/{cssMode-DvRw2fUx.js → cssMode-Dau-Fhqf.js} +1 -1
  280. package/dist/web/assets/{external-link-3ZnEFUXd.js → external-link-DwDry0Fb.js} +1 -1
  281. package/dist/web/assets/{folder-open-i9n8450i.js → folder-open-DOb4AjV6.js} +1 -1
  282. package/dist/web/assets/{folder-plus-cu8Md_ej.js → folder-plus-BAouDaXv.js} +1 -1
  283. package/dist/web/assets/{git-commit-horizontal-CwckmC09.js → git-commit-horizontal-DZbHXcai.js} +1 -1
  284. package/dist/web/assets/{htmlMode-8VF4Ovtw.js → htmlMode-DlNEe6hu.js} +1 -1
  285. package/dist/web/assets/{icons-4yRSxBZj.js → icons-OQhKVrDc.js} +1 -1
  286. package/dist/web/assets/{image-D-umhyyK.js → image-BkYJDChH.js} +1 -1
  287. package/dist/web/assets/{index-DiVhx1GM.js → index-M_h2Ok4V.js} +2 -2
  288. package/dist/web/assets/{info-Dq2RsPDJ.js → info-Mj5lp4Ic.js} +1 -1
  289. package/dist/web/assets/{jsonMode-CvCYQHkB.js → jsonMode-CyOEyonV.js} +1 -1
  290. package/dist/web/assets/loader-circle-DXVtGvuV.js +1 -0
  291. package/dist/web/assets/{lspLanguageFeatures-CjufNNFF.js → lspLanguageFeatures-DAYPzatg.js} +1 -1
  292. package/dist/web/assets/{maximize-2-CKY8dua6.js → maximize-2-BwFXSX6b.js} +1 -1
  293. package/dist/web/assets/{message-square-CVDgKlKX.js → message-square-C2nqfNLn.js} +1 -1
  294. package/dist/web/assets/{monaco.contribution-BYAgjZbj.js → monaco.contribution-BZcNCJER.js} +2 -2
  295. package/dist/web/assets/{monaco.contribution-BYY3-y9l.js → monaco.contribution-BZkfRhss.js} +2 -2
  296. package/dist/web/assets/{monaco.contribution-Bh0CKj9i.js → monaco.contribution-D7_X8TXe.js} +2 -2
  297. package/dist/web/assets/{monaco.contribution-PjJ1258q.js → monaco.contribution-KyLdVay7.js} +2 -2
  298. package/dist/web/assets/{monitor-UYe42gew.js → monitor-B0Qj5Wea.js} +1 -1
  299. package/dist/web/assets/{paperclip-DrlSVUoz.js → paperclip-CmrRruxi.js} +1 -1
  300. package/dist/web/assets/{pdf-BMhday2W.js → pdf-BM-9_48p.js} +1 -1
  301. package/dist/web/assets/play-CkACZ6Zo.js +1 -0
  302. package/dist/web/assets/plus-CB258e62.js +1 -0
  303. package/dist/web/assets/{presentation-DcZKqH7w.js → presentation-BYxhoSIo.js} +1 -1
  304. package/dist/web/assets/{python-CiA01i07.js → python-B3Mj03I5.js} +1 -1
  305. package/dist/web/assets/{refresh-cw-00D-GDnF.js → refresh-cw-CwEmO71D.js} +1 -1
  306. package/dist/web/assets/{save-CXe7bqR7.js → save-S--FOuce.js} +1 -1
  307. package/dist/web/assets/{settings-lists-B5J40WM6.js → settings-lists-ChqDppMP.js} +1 -1
  308. package/dist/web/assets/square-BmPfHjGU.js +1 -0
  309. package/dist/web/assets/{square-terminal-DxC7TTds.js → square-terminal-CawpQtCi.js} +1 -1
  310. package/dist/web/assets/{submit-issue-command-Dq3TqJLV.js → submit-issue-command-CFitxxmO.js} +1 -1
  311. package/dist/web/assets/{toggleHighContrast-BH3Jckfo.js → toggleHighContrast-D-cMCvXx.js} +1 -1
  312. package/dist/web/assets/training-CzbWtx75.js +1 -0
  313. package/dist/web/assets/{training-model-data-B6IZ3x-t.js → training-model-data-G-D64935.js} +1 -1
  314. package/dist/web/assets/{tsMode-DXkj4bqC.js → tsMode-9kzS1ijG.js} +1 -1
  315. package/dist/web/assets/{upload-B3KRHVHl.js → upload-CtYsSYrM.js} +1 -1
  316. package/dist/web/assets/{useAccountSettings-BGRkTRrp.js → useAccountSettings-DYYa6puz.js} +1 -1
  317. package/dist/web/assets/{useAgentInventory-D_1AlAZJ.js → useAgentInventory-c5B_Tszj.js} +1 -1
  318. package/dist/web/assets/{useChatContextSelection-hoMSuUSE.js → useChatContextSelection-DOISZpTz.js} +1 -1
  319. package/dist/web/assets/{useLocalAgentSchedules-DxTER7Ow.js → useLocalAgentSchedules-QJ8RsMKm.js} +1 -1
  320. package/dist/web/assets/{useQuery-DkPec_9x.js → useQuery-DuTGOe2b.js} +1 -1
  321. package/dist/web/assets/{wifi-off-CMzpvbWl.js → wifi-off-BOfP4Vmg.js} +1 -1
  322. package/dist/web/assets/{workers-ziY_bTv2.js → workers-BwGpyrdj.js} +1 -1
  323. package/dist/web/assets/x-5_iy6IDd.js +1 -0
  324. package/dist/web/assets/{yaml-mSvqVSko.js → yaml-BU4IWV_7.js} +1 -1
  325. package/dist/web/index.html +1 -1
  326. package/docs/command-reference.md +1 -0
  327. package/package.json +1 -1
  328. package/dist/chunks/chunk-6D3FI2XT.js +0 -2
  329. package/dist/chunks/chunk-VEBW7NKD.js +0 -2
  330. package/dist/chunks/cli-ALEEFAJ7.js +0 -2
  331. package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +0 -2
  332. package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +0 -2
  333. package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +0 -2
  334. package/dist/chunks/local-harness-taskset-review-E5GN5LTR.js +0 -2
  335. package/dist/chunks/saved-work-54I5ZJTC.js +0 -2
  336. package/dist/chunks/training-5NT2YB2L.js +0 -2
  337. package/dist/chunks/training-UY6KRG4M.js +0 -2
  338. package/dist/web/assets/App-CXhxya9x.js +0 -54
  339. package/dist/web/assets/RightSidebarHomePanel-BJmzUcmy.js +0 -1
  340. package/dist/web/assets/WorkSidebarPanel-CP-nHAsJ.js +0 -1
  341. package/dist/web/assets/chevron-down-Bn8yph2O.js +0 -1
  342. package/dist/web/assets/chevron-right-BU-jUmb2.js +0 -1
  343. package/dist/web/assets/chevron-up-DacwuDJZ.js +0 -1
  344. package/dist/web/assets/loader-circle-DBl6qqtR.js +0 -1
  345. package/dist/web/assets/play-DIqZnaNf.js +0 -1
  346. package/dist/web/assets/plus-CFNxAPMK.js +0 -1
  347. package/dist/web/assets/square-DJEaBefe.js +0 -1
  348. package/dist/web/assets/training-DWfghwfZ.js +0 -1
  349. package/dist/web/assets/x-omjwMPbJ.js +0 -1
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as ye,b as me,c as Se,d as Pe,e as _e}from"./chunk-4KTGYHCE.js";import{a as re,d as Ce,e as fe,h as $e,j as Le,l as Oe}from"./chunk-4G3GTEVS.js";import{A as ue,C as F,D as ne,F as Be,H as De,I as L,J as je,L as X,M as Ae,N as V,O as _,P as qe,X as le,Z as Ee,_ as Y,l as Ie,s as He,t as Me}from"./chunk-KU4TPDPH.js";import{m as pe,q as Te,r as xe}from"./chunk-AFYYIJ6K.js";import{a as U}from"./chunk-J256AEEE.js";import{L as f,M as $,N as D,O as se,Q as Re,S as C,da as j,ja as be,k as W,o as K,pb as ce,qb as de,rb as ie,t as ee,w as te,z as ae}from"./chunk-4PUOWSDE.js";import{$a as we,Aa as x,_a as ve,ab as G,bb as N,x as ke}from"./chunk-ZY32SZ2P.js";import{m as he,n as u}from"./chunk-RCT3O3HQ.js";import{A as R}from"./chunk-X2J2P5ZT.js";import{a as T}from"./chunk-FTQLQJQV.js";function Je(s){let e=_(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=V(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,i=ne(e);for(let k of i?.assets??[])a.set(k.id,k);let n=new Set([...e.taskset.tasks.flatMap(k=>k.privilegedContextRef?[k.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(k=>k?[k.id]:[])]);for(let k of n){if(a.has(k))continue;let H=e.files.find(E=>E.asset.id===k);if(!H)throw new Error(`Source Taskset context is missing: ${k}.`);let y=new TextDecoder("utf-8",{fatal:!0}).decode(F(H));a.set(k,Re.parse(D({schemaVersion:"openpond.learningTextAsset.v1",id:k,revision:1,asset:H.asset,text:y})))}for(let k of s.assets){let H=e.files.find(y=>y.asset.id===k.id);if(H&&D({asset:H.asset}).contentHash!==D({asset:k.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${k.id}.`);a.set(k.id,k)}let{policy:d,environment:r,environmentRelease:m,tools:g,capabilities:o,verifierSetRelease:b}=e.taskset,l=e.taskset.metadata.tasksetOutputContract,P=l&&typeof l=="object"&&!Array.isArray(l)&&"mode"in l&&l.mode==="structured_json"?"jsonSchema"in l?l.jsonSchema:null:{type:"object"},h=K.parse(D({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:P,rewardBinding:f(s.rewardBinding),harness:null,execution:{policy:d,environment:r,environmentRelease:m,tools:g,capabilities:o,verifierSetRelease:b}})),I=Ie({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:h,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...i?{execution:i.execution}:{}}}),v=new Map(e.files.map(k=>[k.asset.id,k]));for(let k of I.assets){let H="";for(let y of new TextEncoder().encode(k.text))H+=String.fromCharCode(y);v.set(k.id,{asset:k.asset,base64:btoa(H)})}let{taskset:w,executionResources:q,...O}=I;return qe({schemaVersion:"openpond.tasksetPackage.v1",taskset:w,...q,modelResources:O,files:[...v.values()]})}T(Je,"bindOrdinaryModelTasksetReward");var A=R.string().trim().min(1).max(500),J=R.string().regex(/^[a-f0-9]{64}$/),We=Te.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:pe.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),Xe=R.object({schemaVersion:R.literal("openpond.tasksetPackagePublication.v1"),operationId:A,modelProjectId:A,expectedProjectEtag:J.nullable(),name:R.string().trim().min(1).max(200),description:R.string().max(5e3),buildIntent:R.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:R.enum(["sft","dpo","grpo","ppo"]).nullable(),package:X,modelConfiguration:We.optional(),evaluationPackage:X.optional(),selection:R.enum(["select","attach"]).optional()}).strict().refine(s=>s.selection!=="attach"||s.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(s=>!s.evaluationPackage||s.modelConfiguration!==void 0&&s.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&u(s.modelConfiguration.trainingSetup.evaluationTasksetRef)===u(f(s.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),Ye=R.object({schemaVersion:R.literal("openpond.tasksetPackageReceipt.v1"),teamId:A,modelProjectId:A,operationId:A,taskset:U,packageHash:J,hostedTasksetId:A,projectEtag:J,project:xe.optional(),selection:R.enum(["select","attach"]).optional(),evaluation:R.object({taskset:U,packageHash:J,hostedTasksetId:A}).strict().optional()}).strict(),Qe=R.object({schemaVersion:R.literal("openpond.tasksetPackageReadback.v1"),teamId:A,modelProjectId:A,package:X}).strict(),Ze=R.object({schemaVersion:R.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:A,release:U,package:X}).strict(),B=class extends Error{constructor(t,a,i){super(i);this.status=t;this.code=a;this.name="OpenPondTasksetPackageError"}status;code;static{T(this,"OpenPondTasksetPackageError")}},Fe=class{static{T(this,"OpenPondTasksetPackageClient")}#e;constructor(e){let t=new URL(e.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...e,baseUrl:t.toString().replace(/\/+$/,"")}}async publish(e,t={}){let a=Xe.parse(e);_(a.package),a.evaluationPackage&&_(a.evaluationPackage);let{evaluationPackage:i,...n}=a,d=i?.contentHash===a.package.contentHash?n:a,r=Ye.parse(await this.#t("","POST",d,t.signal)),m=a.package.taskset;if(r.teamId!==this.#e.teamId||r.modelProjectId!==a.modelProjectId||r.operationId!==a.operationId||r.packageHash!==a.package.contentHash||r.taskset.id!==m.id||r.taskset.revision!==m.revision||r.taskset.contentHash!==m.contentHash)throw new B(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(a.selection!==void 0&&r.selection!==a.selection)throw new B(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(a.evaluationPackage&&(!r.evaluation||r.evaluation.packageHash!==a.evaluationPackage.contentHash||u(r.evaluation.taskset)!==u(f(a.evaluationPackage.taskset))))throw new B(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(a.selection==="attach"&&r.projectEtag!==a.expectedProjectEtag)throw new B(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(a.modelConfiguration){let g=a.modelConfiguration,o=r.project,b=Ae(a.package),l=pe.parse({...g.trainingSetup,tasksetRef:f(m),rewardBindingRef:b?f(b):null,tasksetRelease:null});if(!o||o.teamId!==this.#e.teamId||o.etag!==r.projectEtag||![o.id,o.portableProjectId].includes(a.modelProjectId)||o.portableProjectId!==g.portableProjectId||o.name!==g.name||o.objective!==g.objective||o.sourceRevision!==g.sourceRevision||Date.parse(o.sourceUpdatedAt)!==Date.parse(g.sourceUpdatedAt)||u(o.defaultBaseModel)!==u(g.defaultBaseModel)||o.defaultDestinationId!==g.defaultDestinationId||u(o.trainingSetup)!==u(l))throw new B(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return r}async getByRelease(e,t={}){let a=U.parse(e),i=t.expectedPackageHash===void 0?void 0:J.parse(t.expectedPackageHash),n=Ze.parse(await this.#t(`/releases/${encodeURIComponent(a.id)}/${a.revision}/${a.contentHash}/package`,"GET",void 0,t.signal)),d=_(n.package),r={id:d.taskset.id,revision:d.taskset.revision,contentHash:d.taskset.contentHash};if(n.teamId!==this.#e.teamId||u(n.release)!==u(a)||u(r)!==u(a)||i!==void 0&&d.contentHash!==i)throw new B(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return d}async get(e,t,a={}){let i=A.parse(e),n=U.parse(t),d=a.expectedPackageHash===void 0?void 0:J.parse(a.expectedPackageHash),r=Qe.parse(await this.#t(`/${encodeURIComponent(i)}/${encodeURIComponent(n.id)}/${n.revision}/${n.contentHash}`,"GET",void 0,a.signal)),m=r.package.taskset;if(r.teamId!==this.#e.teamId||r.modelProjectId!==i||m.id!==n.id||m.revision!==n.revision||m.contentHash!==n.contentHash)throw new B(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(d!==void 0&&r.package.contentHash!==d)throw new B(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return _(r.package)}async#t(e,t,a,i){let n=a===void 0?void 0:JSON.stringify(a);if(n&&new TextEncoder().encode(n).byteLength>ue)throw new B(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let d=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${e}`,{method:t,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...n?{"Content-Type":"application/json"}:{}},body:n,signal:i,redirect:"error"}),r=d.body?.getReader();if(!r)throw new B(d.status,"empty_response","Taskset package response was empty.");let m=new TextDecoder("utf-8",{fatal:!0}),g=0,o="";try{for(;;){let l=await r.read();if(l.done)break;if(g+=l.value.byteLength,g>ue)throw new B(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");o+=m.decode(l.value,{stream:!0})}o+=m.decode()}finally{await r.cancel(),r.releaseLock()}let b=JSON.parse(o);if(!d.ok){let l=R.object({code:R.string(),message:R.string()}).safeParse(b);throw new B(d.status,l.success?l.data.code:"package_request_failed",l.success?l.data.message:`Taskset package request failed (${d.status}).`)}return b}};function Ve(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new x("model_review_batch_required",422);let i=j(t.taskset),n=`model-review-${u([s.scope,e.modelId,e.operationId])}`,d=new Map(e.examples.map(p=>[u(p.evidence),p])),r=new Set(a.evidence.map(p=>u(f(p)))),m=new Map(a.decisions.map(p=>[u(p.evidence),p]));if(d.size!==e.examples.length||e.examples.some(p=>!r.has(u(p.evidence))))throw new x("model_review_evidence_mismatch",409);for(let p of[s.binding,...s.rewards,...s.assets])se(p);G(s.binding,s.rewards);let g=new Map;for(let p of s.binding.sources){let c=s.rewards.find(z=>$(f(z),p.reward)),{contentHash:S,...M}=c;g.set(c.contentHash,ve({...M,id:`${n}-reward-${c.contentHash}`,revision:1}))}let o=[...g.values()],{contentHash:b,recipeRef:l,...P}=s.binding,h=we({...P,id:`${n}-binding`,revision:1,sources:s.binding.sources.map(p=>({...p,reward:f(g.get(p.reward.contentHash))}))},o),I=o.flatMap(p=>[...p.assets,..."verifierRef"in p.implementation?[p.implementation.verifierRef]:[],..."rubricRef"in p.implementation?[p.implementation.rubricRef]:[],..."inputContract"in p.implementation?[p.implementation.inputContract]:[]]),v=[...new Map(I.map(p=>{let c=s.assets.find(S=>S.id===p.id);if(!c)throw new x("model_review_reward_asset_missing",422);if(C(c,p),p.visibility==="policy")throw new x("reward_asset_visibility_invalid",422);return[c.id,c]})).values()],{environmentRelease:w,verifierSetRelease:q,...O}=i.definition.execution,{contentHash:k,...H}=i.definition,y=K.parse(D({...H,...e.definition,id:`${n}-definition`,revision:1,rewardBinding:f(h),execution:{...O,policy:{...O.policy,hiddenGraderRefs:N(h,o).filter(p=>p.privileged).map(p=>p.id)}}})),E=ee.parse(D({schemaVersion:"openpond.learningSource.v1",id:n,revision:1,name:`${y.name} review`,kind:"direct",taskDefinition:f(y),enabled:!0,allowedSplits:[...new Set(a.evidence.map(p=>p.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:f(t.taskset),batch:f(a.batch),rewardBinding:f(s.binding)}})),Q=a.evidence.map(p=>{let c=d.get(u(f(p))),S=`review-${p.contentHash}`,M=u({instructions:y.instructions,inputSchema:y.inputSchema,outputSchema:y.outputSchema,requiredOutputs:y.requiredOutputs??[],input:c?.input??p.submission.input})!==u({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:p.submission.input});return te.parse(D({schemaVersion:"openpond.taskEvidence.v1",id:ie(E.id,p.submission.exampleId,S),revision:1,source:f(E),submission:{...p.submission,sourceId:E.id,taskDefinition:f(y),attemptId:S,observedOutput:M?null:p.submission.observedOutput,idempotencyKey:`${n}-${p.contentHash}`,...c?.input===void 0?{}:{input:c.input},...c?.expected===void 0?{}:{expected:c.expected},...c?.evaluatorContext===void 0?{}:{evaluatorContext:c.evaluatorContext}},supersedes:f(p),correctionFeedbackId:null,receivedAt:s.now}))}),Z=Q.flatMap(p=>{let c=d.get(u(p.supersedes)),S=m.get(u(p.supersedes)),M=c?.proposedTarget===void 0?S.approvedTarget:c.proposedTarget;return M===null?[]:[ae.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${u([n,p.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:E.id,idempotencyKey:`${n}-${p.id}`,exampleId:p.submission.exampleId,attemptId:p.submission.attemptId,expectedEvidenceHash:p.contentHash,occurredAt:s.now,kind:"target_correction",value:M,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:f(p),createdAt:s.now,review:null})]});return{source:E,definition:y,binding:h,rewards:o,assets:v,evidence:Q,proposals:Z}}T(Ve,"prepareModelBatchReview");var ze=T(s=>`model-batch-review-${u([s.modelId,s.operationId])}`,"operation");function Dt(s){let e=_(s);if(!e.learningResources)throw new x("model_review_batch_required",422);let t=j(e.taskset);return ye.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}T(Dt,"inspectModelBatchPackage");async function et(s,e){let t=me.parse(e),a=await s.operation(ze(t));if(!a)return null;if(a.requestHash!==u(t))throw new x("learning_idempotency_conflict",409);return Ge(s,t,a.resources)}T(et,"findModelBatchReview");async function jt(s,e){let t=me.parse(e.request),a=await et(s,t);if(a)return a;let i=_(e.package);if(!i.learningResources)throw new x("model_review_batch_required",422);let n=j(i.taskset),d=t.rewardBindingRef,r=!d||$(d,f(n.binding)),m=r?n.binding:await de(s,"binding",d),g=r?n.rewards:await Promise.all(m.sources.map(h=>de(s,"reward",h.reward))),o=new Set(g.flatMap(h=>[...h.assets,..."verifierRef"in h.implementation?[h.implementation.verifierRef]:[],..."rubricRef"in h.implementation?[h.implementation.rubricRef]:[],..."inputContract"in h.implementation?[h.implementation.inputContract]:[]]).map(h=>h.id)),b=r?i.learningResources.assets:await Promise.all([...o].map(h=>ce(s,"asset",h,1))),l=Ve({...e,request:t,package:i,binding:m,rewards:g,assets:b}),P=[];for(let h of l.assets){let I=await s.get("asset",h.id,1);if(I&&I.contentHash!==h.contentHash)throw new x("model_review_asset_conflict",409);I||await s.put("asset",h,0)}for(let h of l.rewards)await s.put("reward",h,0);await s.put("binding",l.binding,0),await s.put("definition",l.definition,0),await s.put("source",l.source,0,{parentId:t.modelId}),P.push({kind:"source",id:l.source.id,revision:1});for(let h of l.evidence)await s.put("evidence",h,0,{parentId:l.source.id}),P.push({kind:"evidence",id:h.id,revision:1});for(let h of l.proposals)await s.put("feedback",h,0,{parentId:h.evidence.id,status:h.status}),P.push({kind:"feedback",id:h.id,revision:1});return await s.saveOperation(ze(t),{requestHash:u(t),resources:P}),Ge(s,t,P)}T(jt,"beginModelBatchReview");async function Ge(s,e,t){let a=await Promise.all(t.map(i=>ce(s,i.kind,i.id,i.revision)));return Se.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}T(Ge,"readReceipt");function Vt(s,e){let t=_(s),a=e?new Set(e):null,i=t.taskset.tasks.filter(m=>!a||a.has(m.id));if(!i.length||a&&i.length!==a.size)throw new x("dataset_review_selection_mismatch",409);let n=i.flatMap(m=>[...m.artifactRefs,...(m.requiredOutputs??[]).flatMap(g=>g.schemaRef?[g.schemaRef]:[])]),d=ne(t);n.push(...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef,d?.execution.javascript.module].flatMap(m=>m?[m]:[]));let r=new Map;for(let m of n){let g=t.files.find(o=>o.asset.id===m.id);if(!g||u(g.asset)!==u(m))throw new x("dataset_review_asset_mismatch",409);r.set(g.asset.id,g)}for(let m of[t.taskset.metadata.environmentResources,t.environment.metadata.resources])if(m!==void 0){if(!Array.isArray(m))throw new x("dataset_review_environment_resources_invalid",422);for(let g of m){if(!g||typeof g!="object"||!("path"in g))throw new x("dataset_review_environment_resources_invalid",422);let o=t.files.filter(b=>b.asset.path===g.path);if(o.length!==1)throw new x("dataset_review_environment_resource_ambiguous",422);r.set(o[0].asset.id,o[0])}}return[...r.values()]}T(Vt,"datasetTrainingReviewFiles");function Jt(s){let e=_(s),t=e.learningResources?j(e.taskset):null,a=t?.definition??e.modelResources?.taskDefinition,i=t?.binding??e.modelResources?.rewardBinding,n=a?.instructions??V(e),d=e.taskset.metadata.tasksetOutputContract,r=d&&typeof d=="object"&&!Array.isArray(d)&&"mode"in d&&d.mode==="structured_json"&&"jsonSchema"in d?W.parse(d.jsonSchema):null,m=a?.outputSchema??r;return _e.parse({schemaVersion:"openpond.datasetTrainingReviewSource.v1",dataset:f(e.taskset),packageHash:e.contentHash,taskCount:e.taskset.tasks.length,definition:{name:a?.name??e.taskset.id,...n?.trim()?{instructions:n}:{},...a?{inputSchema:a.inputSchema}:{},...m?{outputSchema:m}:{},...a?.requiredOutputs?{requiredOutputs:a.requiredOutputs}:{}},rewardBinding:i?f(i):null,hasParentTargets:e.learningResources?.decisions.some(g=>g.approvedTarget!==null)??!1})}T(Jt,"inspectDatasetTrainingReviewPackage");function Ne(s,e,t){return`dataset-review-${u([s,e,t])}`}T(Ne,"datasetTrainingReviewIdentity");function tt(s){let e=Pe.parse(s.request),t=_(s.package);if(t.contentHash!==e.packageHash||!$(f(t.taskset),e.dataset))throw new x("dataset_review_source_mismatch",409);let a=Ne(e.teamId,s.actorId,e.operationId),i=t.learningResources?j(t.taskset):null,n=i?.definition??t.modelResources?.taskDefinition,d=i?{binding:i.binding,rewards:i.rewards,assets:t.learningResources.assets}:t.modelResources?{binding:t.modelResources.rewardBinding,rewards:t.modelResources.rewards,assets:t.modelResources.assets}:null,r=s.graph??d;if(!r)throw new x("dataset_review_reward_required",422,"Select an exact saved Reward binding before importing this Dataset for review.");let m=e.rewardBindingRef??d?.binding;if(!m||!$(f(r.binding),m))throw new x("dataset_review_reward_mismatch",409);for(let c of[r.binding,...r.rewards,...r.assets])se(c);G(r.binding,r.rewards);let g=r.rewards.flatMap(c=>[...c.assets,..."verifierRef"in c.implementation?[c.implementation.verifierRef]:[],..."rubricRef"in c.implementation?[c.implementation.rubricRef]:[],..."inputContract"in c.implementation?[c.implementation.inputContract]:[]]),o=[...new Map(g.map(c=>{let S=r.assets.find(z=>z.id===c.id);if(!S||c.visibility==="policy")throw new x("dataset_review_reward_asset_missing",422);C(S,c);let M=t.files.find(z=>z.asset.id===c.id);if(M&&u(M.asset)!==u(c))throw new x("dataset_review_asset_conflict",409);return[S.id,S]})).values()],b=e.taskIds?new Set(e.taskIds):null,l=t.taskset.tasks.filter(c=>!b||b.has(c.id));if(!l.length||l.length>1e4||b&&l.length!==b.size)throw new x("dataset_review_selection_mismatch",409);if(e.targetSource==="approved_parent"&&!t.learningResources)throw new x("dataset_review_parent_targets_unavailable",422);let P=n?.familyNamespace??s.familyNamespace;if(!P)throw new x("dataset_review_family_required",422,"Resolve the Dataset's stable family before importing its versions.");let h=e.definition.instructions??n?.instructions??V(t);if(!h.trim())throw new x("dataset_review_instructions_required",422,"Provide the task instructions before importing this Dataset.");let I=t.taskset.metadata.tasksetOutputContract,v=I&&typeof I=="object"&&!Array.isArray(I)&&"mode"in I&&I.mode==="structured_json"&&"jsonSchema"in I?W.parse(I.jsonSchema):null,w=e.definition.outputSchema??n?.outputSchema??v;if(!w)throw new x("dataset_review_output_contract_required",422,"Provide the actual output contract for this Dataset; importing does not infer a target schema.");let{environmentRelease:q,verifierSetRelease:O,...k}=t.taskset,H=K.parse(D({schemaVersion:"openpond.taskDefinition.v1",id:`${a}-definition`,revision:1,name:e.definition.name??n?.name??t.taskset.id,description:n?.description??"",instructions:h,category:n?.category??"custom",familyNamespace:P,inputSchema:e.definition.inputSchema??n?.inputSchema??{type:"object"},outputSchema:w,...e.definition.requiredOutputs??n?.requiredOutputs?{requiredOutputs:e.definition.requiredOutputs??n?.requiredOutputs}:{},...n?.contextRequirements?{contextRequirements:n.contextRequirements}:{},harness:n?.harness??null,rewardBinding:f(r.binding),execution:{policy:{...k.policy,hiddenGraderRefs:N(r.binding,r.rewards).filter(c=>c.privileged).map(c=>c.id)},environment:k.environment,tools:k.tools,capabilities:k.capabilities}})),y=ee.parse(D({schemaVersion:"openpond.learningSource.v1",id:a,revision:1,name:`${H.name.slice(0,480)} review`,kind:"direct",taskDefinition:f(H),enabled:!0,allowedSplits:[...new Set(l.map(c=>c.split))],mapping:null,adapterVersion:null,datasetOrigin:{receiptId:a,packageHash:t.contentHash,taskset:f(t.taskset)}})),E=new Map(t.learningResources?.evidence.map(c=>[c.id,c])??[]),Q=new Map(t.learningResources?.decisions.map(c=>[u(c.evidence),c])??[]),Z=l.map(c=>{let S=E.get(c.id),M=S?.submission.evaluatorContext??at(t,c.privilegedContextRef),z={...c.policyVisibleContext,...e.definition.instructions===void 0?{}:{instructions:H.instructions}},Ue=e.definition.instructions!==void 0&&e.definition.instructions!==n?.instructions;return te.parse(D({schemaVersion:"openpond.taskEvidence.v1",id:ie(y.id,c.id,`dataset-${t.contentHash}`),revision:1,source:f(y),supersedes:S?f(S):null,correctionFeedbackId:null,receivedAt:s.now,submission:{schemaVersion:"openpond.taskExample.v1",sourceId:y.id,idempotencyKey:`${a}-${u(c.id)}`,taskDefinition:f(H),exampleId:c.id,attemptId:`dataset-${t.contentHash}`,occurredAt:S?.submission.occurredAt??s.now,familyKey:c.clusterKey,split:c.split,input:c.input,policyVisibleContext:z,observedOutput:!Ue&&S?S.submission.observedOutput:null,expected:c.expectedOutput,evaluatorContext:M,assets:c.artifactRefs,...c.requiredOutputs?{requiredOutputs:c.requiredOutputs}:{},provenance:{sourceRecordRef:JSON.stringify({dataset:e.dataset,taskId:c.id}),mappingHash:u({schemaVersion:"openpond.datasetTrainingReviewMapping.v1",dataset:e.dataset,packageHash:t.contentHash})}}}))}),p=Z.flatMap(c=>{let S=E.get(c.submission.exampleId),M=e.targetSource==="expected_output"?c.submission.expected:e.targetSource==="approved_parent"&&S?Q.get(u(f(S)))?.approvedTarget??null:null;if(M===null)return[];if(!ke(H.outputSchema,M).valid)throw new x("dataset_review_target_schema_mismatch",422,"A proposed Dataset target differs from the selected output contract. Import without proposals or provide the matching contract.");return[ae.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${u([y.id,c.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:y.id,idempotencyKey:`${y.id}-${u(c.id)}`,exampleId:c.submission.exampleId,attemptId:c.submission.attemptId,expectedEvidenceHash:c.contentHash,occurredAt:s.now,kind:"target_correction",value:M,note:"Dataset target proposal. Grade and review this exact evidence before admission."},status:"pending_review",evidence:f(c),createdAt:s.now,review:null})]});return{id:a,request:e,source:y,definition:H,binding:r.binding,rewards:r.rewards,assets:o,evidence:Z,proposals:p}}T(tt,"prepareDatasetTrainingReview");function at(s,e){if(!e)return null;let t=s.files.find(a=>a.asset.id===e);if(!t||t.asset.visibility!=="host_private")throw new x("dataset_review_private_context_missing",422);try{return W.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(F(t))))}catch{throw new x("dataset_review_private_context_unsupported",422,"This Dataset's private context is not an object envelope supported by the review engine.")}}T(at,"readPrivateContext");function Ke(s){let e=s.taskset.metadata.ordinaryAuthoring,t=R.record(R.string(),R.array(R.string().min(1)).max(1e5)).parse(e?.judgeCalibrationFixtures??{});return s.taskset.graders.map(a=>{let i={...a,label:a.id,metadata:{portableGrader:a}};if(a.kind==="custom_verifier")return L.parse({...i,module:a.verifierRef.path,exportName:a.exportName??"verify",metadata:{...i.metadata,portableVerifierRef:a.verifierRef}});if(a.kind==="human"||a.kind==="model_judge"){let n=s.files.find(m=>m.asset.id===a.rubricRef.id);if(!n)throw new Error(`Imported rubric is missing: ${a.id}.`);let d=new TextDecoder("utf-8",{fatal:!0}).decode(F(n)),r={...i.metadata,portableRubricRef:a.rubricRef};if(a.kind==="human")return L.parse({...i,rubric:d,metadata:r});if(!a.model)throw new Error(`Imported judge ${a.id} requires its declared model before local preparation.`);return L.parse({...i,rubric:d,metadata:r,judge:a.model,temperature:a.temperature??0,calibrationStatus:"pending",calibrationFixtureRefs:t[a.id]??[]})}return L.parse({...i,kind:a.kind==="artifact"?"file":a.kind,config:a.kind==="artifact"?{...a.config,...a.config.refIncludes===void 0?{}:{pathIncludes:a.config.refIncludes}}:a.config})})}T(Ke,"importedPackageGraders");function oe(s,e,t=[]){let a=G(s,e);return N(s,e).map(i=>{let n=a.find(({source:r})=>r.graderId===i.id).reward,d={...i,label:n.name,metadata:{rewardBinding:f(s)}};if(i.kind==="model_judge"){if(!i.model||i.calibrationStatus!=="passed"||!n.calibrationCheckRef||!n.fixtureSetRef)throw new Error(`Reward ${i.id} needs a retained passing calibration check before preparation.`);let r=t.find(o=>o.id===i.rubricRef.id),m=t.find(o=>o.id===n.fixtureSetRef.id);if(!r||!m)throw new Error(`Reward ${i.id} is missing its immutable rubric or calibration fixtures.`);let g=be.array().min(1).max(50).parse(JSON.parse(C(m,n.fixtureSetRef)));return L.parse({...d,rubric:C(r,i.rubricRef),judge:i.model,temperature:i.temperature??0,calibrationFixtureRefs:g.map(o=>o.id),metadata:{...d.metadata,portableGrader:i,portableRubricRef:i.rubricRef,calibrationEvidenceHash:n.calibrationCheckRef.contentHash,calibrationCheckRef:n.calibrationCheckRef}})}if(i.kind==="custom_verifier")return L.parse({...d,module:i.verifierRef.path,exportName:i.exportName??"verify",metadata:{...d.metadata,portableVerifierRef:i.verifierRef}});if(i.kind==="human"){let r=t.find(m=>m.id===i.rubricRef.id);if(!r)throw new Error(`Reward ${i.id} is missing its immutable rubric.`);return L.parse({...d,rubric:C(r,i.rubricRef),metadata:{...d.metadata,portableGrader:i,portableRubricRef:i.rubricRef}})}return L.parse({...d,kind:i.kind==="artifact"?"file":i.kind})})}T(oe,"projectLearningBatchGraders");function st(s){return`graders/reward-${s}.js`}T(st,"learningVerifierModule");function ba(s){let e=_(s.package),t=e.taskset,a=e.modelResources,i=e.learningResources?j(t):void 0,n=Be.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${u({profileId:s.profileId,packageHash:e.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:e.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[e.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(e)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),d=Ce({profileId:s.profileId,id:`${t.id}-import`,name:s.name,now:s.createdAt}),r=[];for(let v of t.graders)if(v.kind==="custom_verifier"){let w=a?.assets.find(k=>k.id===v.verifierRef.id),q=e.files.find(k=>k.asset.id===v.verifierRef.id);if(!q)throw new Error(`Imported verifier source is missing: ${v.id}.`);let O=v.verifierRef.path;r.some(k=>k.path===O)||r.push({path:O,role:"verifier",content:w?C(w,v.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(F(q))})}let m=t.metadata.ordinaryAuthoring??t.metadata.starterAuthoring,g=je.array().max(1e5).parse(m?.graderFixtures??[]),o=t.environment.kind==="text"?"chat":t.environment.kind==="custom_program"?"program":t.environment.kind,b=R.record(R.string(),R.record(R.string(),R.string())).parse(t.metadata.workAssetStagingPaths??{}),l=De.array().max(1e4).parse(t.metadata.environmentResources??[]),P=l.filter(v=>v.visibility==="policy_visible").map(v=>{let w=e.files.filter(q=>q.asset.path===v.path);if(w.length!==1||w[0].asset.visibility!=="policy")throw new Error(`Policy environment resource requires one public package file: ${v.path}.`);return w[0].asset}),h=new Set(P.map(v=>v.id)),I=le.parse({schemaVersion:"openpond.taskset.v1",id:t.id,revision:t.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:V(e),status:"needs_review",sourceRefs:[n],datasetArtifact:null,policy:t.policy,environment:{...d.environment,kind:o,entrypoint:t.environment.entrypoint,resources:l,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(v=>v.name),defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{runtimeSourceTasksetId:it(s.profileId,e.contentHash),portableEnvironment:t.environment,portableTools:t.tools,portableExecutionResources:{environment:e.environment,verifierSet:e.verifierSet}}},capabilities:{...d.capabilities,taskKind:o==="chat"?"chat":o==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,rewardKinds:[...new Set(t.graders.map(v=>v.kind==="human"?"human":v.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:t.tasks.map(v=>({...v,schemaVersion:"openpond.taskData.v1",sourceRefs:[n.id],assets:[...new Map([...v.artifactRefs,...(v.requiredOutputs??[]).flatMap(w=>w.submissionMode==="structured_json"&&w.schemaRef?[w.schemaRef]:[]),...P].map(w=>[w.id,w])).values()].map(w=>({id:w.id,sourceRefId:n.id,artifactRef:w.path,fileName:w.path.split("/").at(-1),...h.has(w.id)?{stagingPath:w.path}:b[v.id]?.[w.id]?{stagingPath:b[v.id][w.id]}:{},mediaType:w.mediaType,sha256:w.contentHash,sizeBytes:w.sizeBytes,split:v.split,metadata:{portableAsset:w,...h.has(w.id)?{sharedEnvironmentResource:{id:l.find(q=>q.path===w.path).id,path:w.path}}:{}}})),...v.requiredOutputs?{requiredOutputs:v.requiredOutputs.map(w=>({...w,schemaRef:w.schemaRef?.id??null,maxBytes:w.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:v,exampleOrigin:"imported"}})),graders:a?oe(a.rewardBinding,a.rewards,a.assets):i?oe(i.binding,i.rewards,e.learningResources.assets):Ke(e),graderFixtures:g,learningSignals:d.learningSignals,...t.metrics?{metrics:t.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:u("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[e.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:e.contentHash,...t.metadata.tasksetOutputContract===void 0?{}:{tasksetOutputContract:t.metadata.tasksetOutputContract},...i?{learning:i}:{},portableFileInventory:e.files.map(v=>({asset:v.asset,sourcePath:v.asset.path})),...a?{taskDefinition:f(a.taskDefinition),rewardBinding:f(a.rewardBinding),rewardExecution:{binding:a.rewardBinding,rewards:a.rewards}}:{},portableCapabilities:t.capabilities,derivedPortableMetadata:t.metadata,...t.metadata.modelTasksetDerivation?{modelTasksetDerivation:t.metadata.modelTasksetDerivation}:{}}});return{package:e,taskset:le.parse({...I,contentHash:Ee(I)}),generatedFiles:r}}T(ba,"prepareImportedTasksetPackage");function it(s,e){return`package-${u({profileId:s,packageHash:e})}`}T(it,"tasksetPackageSourceId");var ge=R.object({draft:Y,filePaths:R.array(R.object({assetId:R.string().min(1),paths:R.array(Me).min(1).max(1e4)}).strict()).max(1e4)}).strict();function nt(s){let e=_(s.source),t=Y.parse(s.sourceDraft),a=He.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!$(f(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=fe.parse(t.metadata.portableFileInventory??[]),n=T(o=>re(o)?`source-artifacts/${e.contentHash}/${u(o)}/${o.split("/").at(-1)}`:o,"sourcePath");if([...t.tasks.flatMap(o=>(o.assets??[]).map(b=>b.artifactRef)),...(t.environment.resources??[]).map(o=>o.path),...e.taskset.tasks.flatMap(o=>(o.requiredOutputs??[]).flatMap(b=>b.schemaRef?[b.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(o=>o.kind==="custom_verifier"?[o.module]:[])].some(re))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let r=e.files.map(o=>{let b=new Set([o.asset.path]);for(let l of i)l.asset.id===o.asset.id&&b.add(l.sourcePath);for(let l of t.tasks)for(let P of l.assets??[])P.id===o.asset.id&&b.add(P.artifactRef);for(let l of e.taskset.graders)if(l.kind==="custom_verifier"&&l.verifierRef.id===o.asset.id){let P=t.graders.find(h=>h.id===l.id);P?.kind==="custom_verifier"&&b.add(P.module)}return{assetId:o.asset.id,paths:[...b].map(n)}}),m={...t.metadata};if(e.modelResources)for(let o of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete m[o];let g=Y.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(o=>({...o,metadata:{...o.metadata,portableGrader:e.taskset.graders.find(b=>b.id===o.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...m,modelTasksetAuthoring:a.lineage,portableFileInventory:i.map(o=>({...o,sourcePath:n(o.sourcePath),asset:{...o.asset,id:re(o.sourcePath)?`source-artifact-${u({packageHash:e.contentHash,assetId:o.asset.id})}`:o.asset.id,path:n(o.asset.path)}}))}});return ge.parse({draft:g,filePaths:r})}T(nt,"prepareTasksetDraftSource");function rt(s){let e=ge.parse(s.initialized),t=_(s.source);if(e.draft.modelScope?.source?.sourcePackageHash!==t.contentHash)throw new Error("Taskset draft lost its source preparation.");let a=new Map;for(let n of e.filePaths){let d=t.files.find(r=>r.asset.id===n.assetId);if(!d)throw new Error("Taskset draft source asset is missing.");for(let r of n.paths){let m=a.get(r);if(m&&m.contentHash!==d.asset.contentHash)throw new Error("Taskset draft source paths conflict.");a.set(r,{path:r,contentHash:d.asset.contentHash,sizeBytes:d.asset.sizeBytes,base64:d.base64})}}for(let n of $e(e.draft))if(!a.has(n.relativePath)){let d=new TextEncoder().encode(n.source);a.set(n.relativePath,{path:n.relativePath,contentHash:he(d),sizeBytes:d.byteLength,base64:Buffer.from(d).toString("base64")})}let i=e.draft;if(i.metrics.customAggregator){let n=a.get(i.metrics.customAggregator.module);if(!n)throw new Error("Declared Taskset metric module is missing.");Oe(n),i=Y.parse({...i,metrics:{...i.metrics,customAggregator:{...i.metrics.customAggregator,contentHash:n.contentHash}}})}return Le({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:i,files:[...a.values()]})}T(rt,"materializeTasksetDraftWorkspace");export{Je as a,We as b,Xe as c,Ye as d,Qe as e,Ze as f,B as g,Fe as h,Dt as i,et as j,jt as k,Vt as l,Jt as m,Ne as n,tt as o,oe as p,st as q,ba as r,it as s,ge as t,nt as u,rt as v};
2
+ import{a as ye,b as me,c as Se,d as Pe,e as _e}from"./chunk-ZMRP2A7K.js";import{a as re,d as Ce,e as fe,h as $e,j as Le,l as Oe}from"./chunk-VSQPWLAG.js";import{A as ue,C as F,D as ne,F as Be,H as De,I as L,J as je,L as X,M as Ae,N as V,O as _,P as qe,X as le,Z as Ee,_ as Y,l as Ie,s as He,t as Me}from"./chunk-6LAGMWJE.js";import{n as pe,r as Te,s as xe}from"./chunk-C7NQPICU.js";import{a as U}from"./chunk-J256AEEE.js";import{L as f,M as $,N as D,O as se,Q as Re,S as C,da as j,ja as be,k as W,o as K,pb as ce,qb as de,rb as ie,t as ee,w as te,z as ae}from"./chunk-ZEOYNUHL.js";import{$a as we,Aa as x,_a as ve,ab as G,bb as N,x as ke}from"./chunk-ZY32SZ2P.js";import{m as he,n as u}from"./chunk-RCT3O3HQ.js";import{A as R}from"./chunk-X2J2P5ZT.js";import{a as T}from"./chunk-FTQLQJQV.js";function Je(s){let e=_(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=V(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,i=ne(e);for(let k of i?.assets??[])a.set(k.id,k);let n=new Set([...e.taskset.tasks.flatMap(k=>k.privilegedContextRef?[k.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(k=>k?[k.id]:[])]);for(let k of n){if(a.has(k))continue;let H=e.files.find(E=>E.asset.id===k);if(!H)throw new Error(`Source Taskset context is missing: ${k}.`);let y=new TextDecoder("utf-8",{fatal:!0}).decode(F(H));a.set(k,Re.parse(D({schemaVersion:"openpond.learningTextAsset.v1",id:k,revision:1,asset:H.asset,text:y})))}for(let k of s.assets){let H=e.files.find(y=>y.asset.id===k.id);if(H&&D({asset:H.asset}).contentHash!==D({asset:k.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${k.id}.`);a.set(k.id,k)}let{policy:d,environment:r,environmentRelease:m,tools:g,capabilities:o,verifierSetRelease:b}=e.taskset,l=e.taskset.metadata.tasksetOutputContract,P=l&&typeof l=="object"&&!Array.isArray(l)&&"mode"in l&&l.mode==="structured_json"?"jsonSchema"in l?l.jsonSchema:null:{type:"object"},h=K.parse(D({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:P,rewardBinding:f(s.rewardBinding),harness:null,execution:{policy:d,environment:r,environmentRelease:m,tools:g,capabilities:o,verifierSetRelease:b}})),I=Ie({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:h,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...i?{execution:i.execution}:{}}}),v=new Map(e.files.map(k=>[k.asset.id,k]));for(let k of I.assets){let H="";for(let y of new TextEncoder().encode(k.text))H+=String.fromCharCode(y);v.set(k.id,{asset:k.asset,base64:btoa(H)})}let{taskset:w,executionResources:q,...O}=I;return qe({schemaVersion:"openpond.tasksetPackage.v1",taskset:w,...q,modelResources:O,files:[...v.values()]})}T(Je,"bindOrdinaryModelTasksetReward");var A=R.string().trim().min(1).max(500),J=R.string().regex(/^[a-f0-9]{64}$/),We=Te.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:pe.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),Xe=R.object({schemaVersion:R.literal("openpond.tasksetPackagePublication.v1"),operationId:A,modelProjectId:A,expectedProjectEtag:J.nullable(),name:R.string().trim().min(1).max(200),description:R.string().max(5e3),buildIntent:R.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:R.enum(["sft","dpo","grpo","ppo"]).nullable(),package:X,modelConfiguration:We.optional(),evaluationPackage:X.optional(),selection:R.enum(["select","attach"]).optional()}).strict().refine(s=>s.selection!=="attach"||s.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(s=>!s.evaluationPackage||s.modelConfiguration!==void 0&&s.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&u(s.modelConfiguration.trainingSetup.evaluationTasksetRef)===u(f(s.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),Ye=R.object({schemaVersion:R.literal("openpond.tasksetPackageReceipt.v1"),teamId:A,modelProjectId:A,operationId:A,taskset:U,packageHash:J,hostedTasksetId:A,projectEtag:J,project:xe.optional(),selection:R.enum(["select","attach"]).optional(),evaluation:R.object({taskset:U,packageHash:J,hostedTasksetId:A}).strict().optional()}).strict(),Qe=R.object({schemaVersion:R.literal("openpond.tasksetPackageReadback.v1"),teamId:A,modelProjectId:A,package:X}).strict(),Ze=R.object({schemaVersion:R.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:A,release:U,package:X}).strict(),B=class extends Error{constructor(t,a,i){super(i);this.status=t;this.code=a;this.name="OpenPondTasksetPackageError"}status;code;static{T(this,"OpenPondTasksetPackageError")}},Fe=class{static{T(this,"OpenPondTasksetPackageClient")}#e;constructor(e){let t=new URL(e.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...e,baseUrl:t.toString().replace(/\/+$/,"")}}async publish(e,t={}){let a=Xe.parse(e);_(a.package),a.evaluationPackage&&_(a.evaluationPackage);let{evaluationPackage:i,...n}=a,d=i?.contentHash===a.package.contentHash?n:a,r=Ye.parse(await this.#t("","POST",d,t.signal)),m=a.package.taskset;if(r.teamId!==this.#e.teamId||r.modelProjectId!==a.modelProjectId||r.operationId!==a.operationId||r.packageHash!==a.package.contentHash||r.taskset.id!==m.id||r.taskset.revision!==m.revision||r.taskset.contentHash!==m.contentHash)throw new B(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(a.selection!==void 0&&r.selection!==a.selection)throw new B(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(a.evaluationPackage&&(!r.evaluation||r.evaluation.packageHash!==a.evaluationPackage.contentHash||u(r.evaluation.taskset)!==u(f(a.evaluationPackage.taskset))))throw new B(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(a.selection==="attach"&&r.projectEtag!==a.expectedProjectEtag)throw new B(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(a.modelConfiguration){let g=a.modelConfiguration,o=r.project,b=Ae(a.package),l=pe.parse({...g.trainingSetup,tasksetRef:f(m),rewardBindingRef:b?f(b):null,tasksetRelease:null});if(!o||o.teamId!==this.#e.teamId||o.etag!==r.projectEtag||![o.id,o.portableProjectId].includes(a.modelProjectId)||o.portableProjectId!==g.portableProjectId||o.name!==g.name||o.objective!==g.objective||o.sourceRevision!==g.sourceRevision||Date.parse(o.sourceUpdatedAt)!==Date.parse(g.sourceUpdatedAt)||u(o.defaultBaseModel)!==u(g.defaultBaseModel)||o.defaultDestinationId!==g.defaultDestinationId||u(o.trainingSetup)!==u(l))throw new B(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return r}async getByRelease(e,t={}){let a=U.parse(e),i=t.expectedPackageHash===void 0?void 0:J.parse(t.expectedPackageHash),n=Ze.parse(await this.#t(`/releases/${encodeURIComponent(a.id)}/${a.revision}/${a.contentHash}/package`,"GET",void 0,t.signal)),d=_(n.package),r={id:d.taskset.id,revision:d.taskset.revision,contentHash:d.taskset.contentHash};if(n.teamId!==this.#e.teamId||u(n.release)!==u(a)||u(r)!==u(a)||i!==void 0&&d.contentHash!==i)throw new B(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return d}async get(e,t,a={}){let i=A.parse(e),n=U.parse(t),d=a.expectedPackageHash===void 0?void 0:J.parse(a.expectedPackageHash),r=Qe.parse(await this.#t(`/${encodeURIComponent(i)}/${encodeURIComponent(n.id)}/${n.revision}/${n.contentHash}`,"GET",void 0,a.signal)),m=r.package.taskset;if(r.teamId!==this.#e.teamId||r.modelProjectId!==i||m.id!==n.id||m.revision!==n.revision||m.contentHash!==n.contentHash)throw new B(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(d!==void 0&&r.package.contentHash!==d)throw new B(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return _(r.package)}async#t(e,t,a,i){let n=a===void 0?void 0:JSON.stringify(a);if(n&&new TextEncoder().encode(n).byteLength>ue)throw new B(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let d=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${e}`,{method:t,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...n?{"Content-Type":"application/json"}:{}},body:n,signal:i,redirect:"error"}),r=d.body?.getReader();if(!r)throw new B(d.status,"empty_response","Taskset package response was empty.");let m=new TextDecoder("utf-8",{fatal:!0}),g=0,o="";try{for(;;){let l=await r.read();if(l.done)break;if(g+=l.value.byteLength,g>ue)throw new B(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");o+=m.decode(l.value,{stream:!0})}o+=m.decode()}finally{await r.cancel(),r.releaseLock()}let b=JSON.parse(o);if(!d.ok){let l=R.object({code:R.string(),message:R.string()}).safeParse(b);throw new B(d.status,l.success?l.data.code:"package_request_failed",l.success?l.data.message:`Taskset package request failed (${d.status}).`)}return b}};function Ve(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new x("model_review_batch_required",422);let i=j(t.taskset),n=`model-review-${u([s.scope,e.modelId,e.operationId])}`,d=new Map(e.examples.map(p=>[u(p.evidence),p])),r=new Set(a.evidence.map(p=>u(f(p)))),m=new Map(a.decisions.map(p=>[u(p.evidence),p]));if(d.size!==e.examples.length||e.examples.some(p=>!r.has(u(p.evidence))))throw new x("model_review_evidence_mismatch",409);for(let p of[s.binding,...s.rewards,...s.assets])se(p);G(s.binding,s.rewards);let g=new Map;for(let p of s.binding.sources){let c=s.rewards.find(z=>$(f(z),p.reward)),{contentHash:S,...M}=c;g.set(c.contentHash,ve({...M,id:`${n}-reward-${c.contentHash}`,revision:1}))}let o=[...g.values()],{contentHash:b,recipeRef:l,...P}=s.binding,h=we({...P,id:`${n}-binding`,revision:1,sources:s.binding.sources.map(p=>({...p,reward:f(g.get(p.reward.contentHash))}))},o),I=o.flatMap(p=>[...p.assets,..."verifierRef"in p.implementation?[p.implementation.verifierRef]:[],..."rubricRef"in p.implementation?[p.implementation.rubricRef]:[],..."inputContract"in p.implementation?[p.implementation.inputContract]:[]]),v=[...new Map(I.map(p=>{let c=s.assets.find(S=>S.id===p.id);if(!c)throw new x("model_review_reward_asset_missing",422);if(C(c,p),p.visibility==="policy")throw new x("reward_asset_visibility_invalid",422);return[c.id,c]})).values()],{environmentRelease:w,verifierSetRelease:q,...O}=i.definition.execution,{contentHash:k,...H}=i.definition,y=K.parse(D({...H,...e.definition,id:`${n}-definition`,revision:1,rewardBinding:f(h),execution:{...O,policy:{...O.policy,hiddenGraderRefs:N(h,o).filter(p=>p.privileged).map(p=>p.id)}}})),E=ee.parse(D({schemaVersion:"openpond.learningSource.v1",id:n,revision:1,name:`${y.name} review`,kind:"direct",taskDefinition:f(y),enabled:!0,allowedSplits:[...new Set(a.evidence.map(p=>p.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:f(t.taskset),batch:f(a.batch),rewardBinding:f(s.binding)}})),Q=a.evidence.map(p=>{let c=d.get(u(f(p))),S=`review-${p.contentHash}`,M=u({instructions:y.instructions,inputSchema:y.inputSchema,outputSchema:y.outputSchema,requiredOutputs:y.requiredOutputs??[],input:c?.input??p.submission.input})!==u({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:p.submission.input});return te.parse(D({schemaVersion:"openpond.taskEvidence.v1",id:ie(E.id,p.submission.exampleId,S),revision:1,source:f(E),submission:{...p.submission,sourceId:E.id,taskDefinition:f(y),attemptId:S,observedOutput:M?null:p.submission.observedOutput,idempotencyKey:`${n}-${p.contentHash}`,...c?.input===void 0?{}:{input:c.input},...c?.expected===void 0?{}:{expected:c.expected},...c?.evaluatorContext===void 0?{}:{evaluatorContext:c.evaluatorContext}},supersedes:f(p),correctionFeedbackId:null,receivedAt:s.now}))}),Z=Q.flatMap(p=>{let c=d.get(u(p.supersedes)),S=m.get(u(p.supersedes)),M=c?.proposedTarget===void 0?S.approvedTarget:c.proposedTarget;return M===null?[]:[ae.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${u([n,p.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:E.id,idempotencyKey:`${n}-${p.id}`,exampleId:p.submission.exampleId,attemptId:p.submission.attemptId,expectedEvidenceHash:p.contentHash,occurredAt:s.now,kind:"target_correction",value:M,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:f(p),createdAt:s.now,review:null})]});return{source:E,definition:y,binding:h,rewards:o,assets:v,evidence:Q,proposals:Z}}T(Ve,"prepareModelBatchReview");var ze=T(s=>`model-batch-review-${u([s.modelId,s.operationId])}`,"operation");function Dt(s){let e=_(s);if(!e.learningResources)throw new x("model_review_batch_required",422);let t=j(e.taskset);return ye.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}T(Dt,"inspectModelBatchPackage");async function et(s,e){let t=me.parse(e),a=await s.operation(ze(t));if(!a)return null;if(a.requestHash!==u(t))throw new x("learning_idempotency_conflict",409);return Ge(s,t,a.resources)}T(et,"findModelBatchReview");async function jt(s,e){let t=me.parse(e.request),a=await et(s,t);if(a)return a;let i=_(e.package);if(!i.learningResources)throw new x("model_review_batch_required",422);let n=j(i.taskset),d=t.rewardBindingRef,r=!d||$(d,f(n.binding)),m=r?n.binding:await de(s,"binding",d),g=r?n.rewards:await Promise.all(m.sources.map(h=>de(s,"reward",h.reward))),o=new Set(g.flatMap(h=>[...h.assets,..."verifierRef"in h.implementation?[h.implementation.verifierRef]:[],..."rubricRef"in h.implementation?[h.implementation.rubricRef]:[],..."inputContract"in h.implementation?[h.implementation.inputContract]:[]]).map(h=>h.id)),b=r?i.learningResources.assets:await Promise.all([...o].map(h=>ce(s,"asset",h,1))),l=Ve({...e,request:t,package:i,binding:m,rewards:g,assets:b}),P=[];for(let h of l.assets){let I=await s.get("asset",h.id,1);if(I&&I.contentHash!==h.contentHash)throw new x("model_review_asset_conflict",409);I||await s.put("asset",h,0)}for(let h of l.rewards)await s.put("reward",h,0);await s.put("binding",l.binding,0),await s.put("definition",l.definition,0),await s.put("source",l.source,0,{parentId:t.modelId}),P.push({kind:"source",id:l.source.id,revision:1});for(let h of l.evidence)await s.put("evidence",h,0,{parentId:l.source.id}),P.push({kind:"evidence",id:h.id,revision:1});for(let h of l.proposals)await s.put("feedback",h,0,{parentId:h.evidence.id,status:h.status}),P.push({kind:"feedback",id:h.id,revision:1});return await s.saveOperation(ze(t),{requestHash:u(t),resources:P}),Ge(s,t,P)}T(jt,"beginModelBatchReview");async function Ge(s,e,t){let a=await Promise.all(t.map(i=>ce(s,i.kind,i.id,i.revision)));return Se.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}T(Ge,"readReceipt");function Vt(s,e){let t=_(s),a=e?new Set(e):null,i=t.taskset.tasks.filter(m=>!a||a.has(m.id));if(!i.length||a&&i.length!==a.size)throw new x("dataset_review_selection_mismatch",409);let n=i.flatMap(m=>[...m.artifactRefs,...(m.requiredOutputs??[]).flatMap(g=>g.schemaRef?[g.schemaRef]:[])]),d=ne(t);n.push(...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef,d?.execution.javascript.module].flatMap(m=>m?[m]:[]));let r=new Map;for(let m of n){let g=t.files.find(o=>o.asset.id===m.id);if(!g||u(g.asset)!==u(m))throw new x("dataset_review_asset_mismatch",409);r.set(g.asset.id,g)}for(let m of[t.taskset.metadata.environmentResources,t.environment.metadata.resources])if(m!==void 0){if(!Array.isArray(m))throw new x("dataset_review_environment_resources_invalid",422);for(let g of m){if(!g||typeof g!="object"||!("path"in g))throw new x("dataset_review_environment_resources_invalid",422);let o=t.files.filter(b=>b.asset.path===g.path);if(o.length!==1)throw new x("dataset_review_environment_resource_ambiguous",422);r.set(o[0].asset.id,o[0])}}return[...r.values()]}T(Vt,"datasetTrainingReviewFiles");function Jt(s){let e=_(s),t=e.learningResources?j(e.taskset):null,a=t?.definition??e.modelResources?.taskDefinition,i=t?.binding??e.modelResources?.rewardBinding,n=a?.instructions??V(e),d=e.taskset.metadata.tasksetOutputContract,r=d&&typeof d=="object"&&!Array.isArray(d)&&"mode"in d&&d.mode==="structured_json"&&"jsonSchema"in d?W.parse(d.jsonSchema):null,m=a?.outputSchema??r;return _e.parse({schemaVersion:"openpond.datasetTrainingReviewSource.v1",dataset:f(e.taskset),packageHash:e.contentHash,taskCount:e.taskset.tasks.length,definition:{name:a?.name??e.taskset.id,...n?.trim()?{instructions:n}:{},...a?{inputSchema:a.inputSchema}:{},...m?{outputSchema:m}:{},...a?.requiredOutputs?{requiredOutputs:a.requiredOutputs}:{}},rewardBinding:i?f(i):null,hasParentTargets:e.learningResources?.decisions.some(g=>g.approvedTarget!==null)??!1})}T(Jt,"inspectDatasetTrainingReviewPackage");function Ne(s,e,t){return`dataset-review-${u([s,e,t])}`}T(Ne,"datasetTrainingReviewIdentity");function tt(s){let e=Pe.parse(s.request),t=_(s.package);if(t.contentHash!==e.packageHash||!$(f(t.taskset),e.dataset))throw new x("dataset_review_source_mismatch",409);let a=Ne(e.teamId,s.actorId,e.operationId),i=t.learningResources?j(t.taskset):null,n=i?.definition??t.modelResources?.taskDefinition,d=i?{binding:i.binding,rewards:i.rewards,assets:t.learningResources.assets}:t.modelResources?{binding:t.modelResources.rewardBinding,rewards:t.modelResources.rewards,assets:t.modelResources.assets}:null,r=s.graph??d;if(!r)throw new x("dataset_review_reward_required",422,"Select an exact saved Reward binding before importing this Dataset for review.");let m=e.rewardBindingRef??d?.binding;if(!m||!$(f(r.binding),m))throw new x("dataset_review_reward_mismatch",409);for(let c of[r.binding,...r.rewards,...r.assets])se(c);G(r.binding,r.rewards);let g=r.rewards.flatMap(c=>[...c.assets,..."verifierRef"in c.implementation?[c.implementation.verifierRef]:[],..."rubricRef"in c.implementation?[c.implementation.rubricRef]:[],..."inputContract"in c.implementation?[c.implementation.inputContract]:[]]),o=[...new Map(g.map(c=>{let S=r.assets.find(z=>z.id===c.id);if(!S||c.visibility==="policy")throw new x("dataset_review_reward_asset_missing",422);C(S,c);let M=t.files.find(z=>z.asset.id===c.id);if(M&&u(M.asset)!==u(c))throw new x("dataset_review_asset_conflict",409);return[S.id,S]})).values()],b=e.taskIds?new Set(e.taskIds):null,l=t.taskset.tasks.filter(c=>!b||b.has(c.id));if(!l.length||l.length>1e4||b&&l.length!==b.size)throw new x("dataset_review_selection_mismatch",409);if(e.targetSource==="approved_parent"&&!t.learningResources)throw new x("dataset_review_parent_targets_unavailable",422);let P=n?.familyNamespace??s.familyNamespace;if(!P)throw new x("dataset_review_family_required",422,"Resolve the Dataset's stable family before importing its versions.");let h=e.definition.instructions??n?.instructions??V(t);if(!h.trim())throw new x("dataset_review_instructions_required",422,"Provide the task instructions before importing this Dataset.");let I=t.taskset.metadata.tasksetOutputContract,v=I&&typeof I=="object"&&!Array.isArray(I)&&"mode"in I&&I.mode==="structured_json"&&"jsonSchema"in I?W.parse(I.jsonSchema):null,w=e.definition.outputSchema??n?.outputSchema??v;if(!w)throw new x("dataset_review_output_contract_required",422,"Provide the actual output contract for this Dataset; importing does not infer a target schema.");let{environmentRelease:q,verifierSetRelease:O,...k}=t.taskset,H=K.parse(D({schemaVersion:"openpond.taskDefinition.v1",id:`${a}-definition`,revision:1,name:e.definition.name??n?.name??t.taskset.id,description:n?.description??"",instructions:h,category:n?.category??"custom",familyNamespace:P,inputSchema:e.definition.inputSchema??n?.inputSchema??{type:"object"},outputSchema:w,...e.definition.requiredOutputs??n?.requiredOutputs?{requiredOutputs:e.definition.requiredOutputs??n?.requiredOutputs}:{},...n?.contextRequirements?{contextRequirements:n.contextRequirements}:{},harness:n?.harness??null,rewardBinding:f(r.binding),execution:{policy:{...k.policy,hiddenGraderRefs:N(r.binding,r.rewards).filter(c=>c.privileged).map(c=>c.id)},environment:k.environment,tools:k.tools,capabilities:k.capabilities}})),y=ee.parse(D({schemaVersion:"openpond.learningSource.v1",id:a,revision:1,name:`${H.name.slice(0,480)} review`,kind:"direct",taskDefinition:f(H),enabled:!0,allowedSplits:[...new Set(l.map(c=>c.split))],mapping:null,adapterVersion:null,datasetOrigin:{receiptId:a,packageHash:t.contentHash,taskset:f(t.taskset)}})),E=new Map(t.learningResources?.evidence.map(c=>[c.id,c])??[]),Q=new Map(t.learningResources?.decisions.map(c=>[u(c.evidence),c])??[]),Z=l.map(c=>{let S=E.get(c.id),M=S?.submission.evaluatorContext??at(t,c.privilegedContextRef),z={...c.policyVisibleContext,...e.definition.instructions===void 0?{}:{instructions:H.instructions}},Ue=e.definition.instructions!==void 0&&e.definition.instructions!==n?.instructions;return te.parse(D({schemaVersion:"openpond.taskEvidence.v1",id:ie(y.id,c.id,`dataset-${t.contentHash}`),revision:1,source:f(y),supersedes:S?f(S):null,correctionFeedbackId:null,receivedAt:s.now,submission:{schemaVersion:"openpond.taskExample.v1",sourceId:y.id,idempotencyKey:`${a}-${u(c.id)}`,taskDefinition:f(H),exampleId:c.id,attemptId:`dataset-${t.contentHash}`,occurredAt:S?.submission.occurredAt??s.now,familyKey:c.clusterKey,split:c.split,input:c.input,policyVisibleContext:z,observedOutput:!Ue&&S?S.submission.observedOutput:null,expected:c.expectedOutput,evaluatorContext:M,assets:c.artifactRefs,...c.requiredOutputs?{requiredOutputs:c.requiredOutputs}:{},provenance:{sourceRecordRef:JSON.stringify({dataset:e.dataset,taskId:c.id}),mappingHash:u({schemaVersion:"openpond.datasetTrainingReviewMapping.v1",dataset:e.dataset,packageHash:t.contentHash})}}}))}),p=Z.flatMap(c=>{let S=E.get(c.submission.exampleId),M=e.targetSource==="expected_output"?c.submission.expected:e.targetSource==="approved_parent"&&S?Q.get(u(f(S)))?.approvedTarget??null:null;if(M===null)return[];if(!ke(H.outputSchema,M).valid)throw new x("dataset_review_target_schema_mismatch",422,"A proposed Dataset target differs from the selected output contract. Import without proposals or provide the matching contract.");return[ae.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${u([y.id,c.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:y.id,idempotencyKey:`${y.id}-${u(c.id)}`,exampleId:c.submission.exampleId,attemptId:c.submission.attemptId,expectedEvidenceHash:c.contentHash,occurredAt:s.now,kind:"target_correction",value:M,note:"Dataset target proposal. Grade and review this exact evidence before admission."},status:"pending_review",evidence:f(c),createdAt:s.now,review:null})]});return{id:a,request:e,source:y,definition:H,binding:r.binding,rewards:r.rewards,assets:o,evidence:Z,proposals:p}}T(tt,"prepareDatasetTrainingReview");function at(s,e){if(!e)return null;let t=s.files.find(a=>a.asset.id===e);if(!t||t.asset.visibility!=="host_private")throw new x("dataset_review_private_context_missing",422);try{return W.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(F(t))))}catch{throw new x("dataset_review_private_context_unsupported",422,"This Dataset's private context is not an object envelope supported by the review engine.")}}T(at,"readPrivateContext");function Ke(s){let e=s.taskset.metadata.ordinaryAuthoring,t=R.record(R.string(),R.array(R.string().min(1)).max(1e5)).parse(e?.judgeCalibrationFixtures??{});return s.taskset.graders.map(a=>{let i={...a,label:a.id,metadata:{portableGrader:a}};if(a.kind==="custom_verifier")return L.parse({...i,module:a.verifierRef.path,exportName:a.exportName??"verify",metadata:{...i.metadata,portableVerifierRef:a.verifierRef}});if(a.kind==="human"||a.kind==="model_judge"){let n=s.files.find(m=>m.asset.id===a.rubricRef.id);if(!n)throw new Error(`Imported rubric is missing: ${a.id}.`);let d=new TextDecoder("utf-8",{fatal:!0}).decode(F(n)),r={...i.metadata,portableRubricRef:a.rubricRef};if(a.kind==="human")return L.parse({...i,rubric:d,metadata:r});if(!a.model)throw new Error(`Imported judge ${a.id} requires its declared model before local preparation.`);return L.parse({...i,rubric:d,metadata:r,judge:a.model,temperature:a.temperature??0,calibrationStatus:"pending",calibrationFixtureRefs:t[a.id]??[]})}return L.parse({...i,kind:a.kind==="artifact"?"file":a.kind,config:a.kind==="artifact"?{...a.config,...a.config.refIncludes===void 0?{}:{pathIncludes:a.config.refIncludes}}:a.config})})}T(Ke,"importedPackageGraders");function oe(s,e,t=[]){let a=G(s,e);return N(s,e).map(i=>{let n=a.find(({source:r})=>r.graderId===i.id).reward,d={...i,label:n.name,metadata:{rewardBinding:f(s)}};if(i.kind==="model_judge"){if(!i.model||i.calibrationStatus!=="passed"||!n.calibrationCheckRef||!n.fixtureSetRef)throw new Error(`Reward ${i.id} needs a retained passing calibration check before preparation.`);let r=t.find(o=>o.id===i.rubricRef.id),m=t.find(o=>o.id===n.fixtureSetRef.id);if(!r||!m)throw new Error(`Reward ${i.id} is missing its immutable rubric or calibration fixtures.`);let g=be.array().min(1).max(50).parse(JSON.parse(C(m,n.fixtureSetRef)));return L.parse({...d,rubric:C(r,i.rubricRef),judge:i.model,temperature:i.temperature??0,calibrationFixtureRefs:g.map(o=>o.id),metadata:{...d.metadata,portableGrader:i,portableRubricRef:i.rubricRef,calibrationEvidenceHash:n.calibrationCheckRef.contentHash,calibrationCheckRef:n.calibrationCheckRef}})}if(i.kind==="custom_verifier")return L.parse({...d,module:i.verifierRef.path,exportName:i.exportName??"verify",metadata:{...d.metadata,portableVerifierRef:i.verifierRef}});if(i.kind==="human"){let r=t.find(m=>m.id===i.rubricRef.id);if(!r)throw new Error(`Reward ${i.id} is missing its immutable rubric.`);return L.parse({...d,rubric:C(r,i.rubricRef),metadata:{...d.metadata,portableGrader:i,portableRubricRef:i.rubricRef}})}return L.parse({...d,kind:i.kind==="artifact"?"file":i.kind})})}T(oe,"projectLearningBatchGraders");function st(s){return`graders/reward-${s}.js`}T(st,"learningVerifierModule");function ba(s){let e=_(s.package),t=e.taskset,a=e.modelResources,i=e.learningResources?j(t):void 0,n=Be.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${u({profileId:s.profileId,packageHash:e.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:e.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[e.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(e)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),d=Ce({profileId:s.profileId,id:`${t.id}-import`,name:s.name,now:s.createdAt}),r=[];for(let v of t.graders)if(v.kind==="custom_verifier"){let w=a?.assets.find(k=>k.id===v.verifierRef.id),q=e.files.find(k=>k.asset.id===v.verifierRef.id);if(!q)throw new Error(`Imported verifier source is missing: ${v.id}.`);let O=v.verifierRef.path;r.some(k=>k.path===O)||r.push({path:O,role:"verifier",content:w?C(w,v.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(F(q))})}let m=t.metadata.ordinaryAuthoring??t.metadata.starterAuthoring,g=je.array().max(1e5).parse(m?.graderFixtures??[]),o=t.environment.kind==="text"?"chat":t.environment.kind==="custom_program"?"program":t.environment.kind,b=R.record(R.string(),R.record(R.string(),R.string())).parse(t.metadata.workAssetStagingPaths??{}),l=De.array().max(1e4).parse(t.metadata.environmentResources??[]),P=l.filter(v=>v.visibility==="policy_visible").map(v=>{let w=e.files.filter(q=>q.asset.path===v.path);if(w.length!==1||w[0].asset.visibility!=="policy")throw new Error(`Policy environment resource requires one public package file: ${v.path}.`);return w[0].asset}),h=new Set(P.map(v=>v.id)),I=le.parse({schemaVersion:"openpond.taskset.v1",id:t.id,revision:t.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:V(e),status:"needs_review",sourceRefs:[n],datasetArtifact:null,policy:t.policy,environment:{...d.environment,kind:o,entrypoint:t.environment.entrypoint,resources:l,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(v=>v.name),defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{runtimeSourceTasksetId:it(s.profileId,e.contentHash),portableEnvironment:t.environment,portableTools:t.tools,portableExecutionResources:{environment:e.environment,verifierSet:e.verifierSet}}},capabilities:{...d.capabilities,taskKind:o==="chat"?"chat":o==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,rewardKinds:[...new Set(t.graders.map(v=>v.kind==="human"?"human":v.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:t.tasks.map(v=>({...v,schemaVersion:"openpond.taskData.v1",sourceRefs:[n.id],assets:[...new Map([...v.artifactRefs,...(v.requiredOutputs??[]).flatMap(w=>w.submissionMode==="structured_json"&&w.schemaRef?[w.schemaRef]:[]),...P].map(w=>[w.id,w])).values()].map(w=>({id:w.id,sourceRefId:n.id,artifactRef:w.path,fileName:w.path.split("/").at(-1),...h.has(w.id)?{stagingPath:w.path}:b[v.id]?.[w.id]?{stagingPath:b[v.id][w.id]}:{},mediaType:w.mediaType,sha256:w.contentHash,sizeBytes:w.sizeBytes,split:v.split,metadata:{portableAsset:w,...h.has(w.id)?{sharedEnvironmentResource:{id:l.find(q=>q.path===w.path).id,path:w.path}}:{}}})),...v.requiredOutputs?{requiredOutputs:v.requiredOutputs.map(w=>({...w,schemaRef:w.schemaRef?.id??null,maxBytes:w.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:v,exampleOrigin:"imported"}})),graders:a?oe(a.rewardBinding,a.rewards,a.assets):i?oe(i.binding,i.rewards,e.learningResources.assets):Ke(e),graderFixtures:g,learningSignals:d.learningSignals,...t.metrics?{metrics:t.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:u("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[e.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:e.contentHash,...t.metadata.tasksetOutputContract===void 0?{}:{tasksetOutputContract:t.metadata.tasksetOutputContract},...i?{learning:i}:{},portableFileInventory:e.files.map(v=>({asset:v.asset,sourcePath:v.asset.path})),...a?{taskDefinition:f(a.taskDefinition),rewardBinding:f(a.rewardBinding),rewardExecution:{binding:a.rewardBinding,rewards:a.rewards}}:{},portableCapabilities:t.capabilities,derivedPortableMetadata:t.metadata,...t.metadata.modelTasksetDerivation?{modelTasksetDerivation:t.metadata.modelTasksetDerivation}:{}}});return{package:e,taskset:le.parse({...I,contentHash:Ee(I)}),generatedFiles:r}}T(ba,"prepareImportedTasksetPackage");function it(s,e){return`package-${u({profileId:s,packageHash:e})}`}T(it,"tasksetPackageSourceId");var ge=R.object({draft:Y,filePaths:R.array(R.object({assetId:R.string().min(1),paths:R.array(Me).min(1).max(1e4)}).strict()).max(1e4)}).strict();function nt(s){let e=_(s.source),t=Y.parse(s.sourceDraft),a=He.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!$(f(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=fe.parse(t.metadata.portableFileInventory??[]),n=T(o=>re(o)?`source-artifacts/${e.contentHash}/${u(o)}/${o.split("/").at(-1)}`:o,"sourcePath");if([...t.tasks.flatMap(o=>(o.assets??[]).map(b=>b.artifactRef)),...(t.environment.resources??[]).map(o=>o.path),...e.taskset.tasks.flatMap(o=>(o.requiredOutputs??[]).flatMap(b=>b.schemaRef?[b.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(o=>o.kind==="custom_verifier"?[o.module]:[])].some(re))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let r=e.files.map(o=>{let b=new Set([o.asset.path]);for(let l of i)l.asset.id===o.asset.id&&b.add(l.sourcePath);for(let l of t.tasks)for(let P of l.assets??[])P.id===o.asset.id&&b.add(P.artifactRef);for(let l of e.taskset.graders)if(l.kind==="custom_verifier"&&l.verifierRef.id===o.asset.id){let P=t.graders.find(h=>h.id===l.id);P?.kind==="custom_verifier"&&b.add(P.module)}return{assetId:o.asset.id,paths:[...b].map(n)}}),m={...t.metadata};if(e.modelResources)for(let o of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete m[o];let g=Y.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(o=>({...o,metadata:{...o.metadata,portableGrader:e.taskset.graders.find(b=>b.id===o.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...m,modelTasksetAuthoring:a.lineage,portableFileInventory:i.map(o=>({...o,sourcePath:n(o.sourcePath),asset:{...o.asset,id:re(o.sourcePath)?`source-artifact-${u({packageHash:e.contentHash,assetId:o.asset.id})}`:o.asset.id,path:n(o.asset.path)}}))}});return ge.parse({draft:g,filePaths:r})}T(nt,"prepareTasksetDraftSource");function rt(s){let e=ge.parse(s.initialized),t=_(s.source);if(e.draft.modelScope?.source?.sourcePackageHash!==t.contentHash)throw new Error("Taskset draft lost its source preparation.");let a=new Map;for(let n of e.filePaths){let d=t.files.find(r=>r.asset.id===n.assetId);if(!d)throw new Error("Taskset draft source asset is missing.");for(let r of n.paths){let m=a.get(r);if(m&&m.contentHash!==d.asset.contentHash)throw new Error("Taskset draft source paths conflict.");a.set(r,{path:r,contentHash:d.asset.contentHash,sizeBytes:d.asset.sizeBytes,base64:d.base64})}}for(let n of $e(e.draft))if(!a.has(n.relativePath)){let d=new TextEncoder().encode(n.source);a.set(n.relativePath,{path:n.relativePath,contentHash:he(d),sizeBytes:d.byteLength,base64:Buffer.from(d).toString("base64")})}let i=e.draft;if(i.metrics.customAggregator){let n=a.get(i.metrics.customAggregator.module);if(!n)throw new Error("Declared Taskset metric module is missing.");Oe(n),i=Y.parse({...i,metrics:{...i.metrics,customAggregator:{...i.metrics.customAggregator,contentHash:n.contentHash}}})}return Le({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:i,files:[...a.values()]})}T(rt,"materializeTasksetDraftWorkspace");export{Je as a,We as b,Xe as c,Ye as d,Qe as e,Ze as f,B as g,Fe as h,Dt as i,et as j,jt as k,Vt as l,Jt as m,Ne as n,tt as o,oe as p,st as q,ba as r,it as s,ge as t,nt as u,rt as v};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as S}from"./chunk-DRLP7GIU.js";import{Aa as K,Ba as N,Ca as G,F as U,_,e as b,g as L,ga as j,ha as q,i as z,ja as x,oa as T,wa as R,ya as D}from"./chunk-BU6MW65V.js";import{k as w,l as I,m as u}from"./chunk-HIQPGYVH.js";import{E as A,P as O,Q as W}from"./chunk-DXJC3QW7.js";import{L as P}from"./chunk-4PUOWSDE.js";import{v as E}from"./chunk-ZY32SZ2P.js";import{A as i}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";var g=i.string().trim().min(1).max(500),y=i.string().regex(/^[a-f0-9]{64}$/),ce=O.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:A.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),de=i.object({schemaVersion:i.literal("openpond.tasksetPackagePublication.v1"),operationId:g,modelProjectId:g,expectedProjectEtag:y.nullable(),name:i.string().trim().min(1).max(200),description:i.string().max(5e3),buildIntent:i.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:i.enum(["sft","dpo","grpo","ppo"]).nullable(),package:j,modelConfiguration:ce.optional(),evaluationPackage:j.optional(),selection:i.enum(["select","attach"]).optional()}).strict().refine(a=>a.selection!=="attach"||a.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(a=>!a.evaluationPackage||a.modelConfiguration!==void 0&&a.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&u(a.modelConfiguration.trainingSetup.evaluationTasksetRef)===u(P(a.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),le=i.object({schemaVersion:i.literal("openpond.tasksetPackageReceipt.v1"),teamId:g,modelProjectId:g,operationId:g,taskset:S,packageHash:y,hostedTasksetId:g,projectEtag:y,project:W.optional(),selection:i.enum(["select","attach"]).optional(),evaluation:i.object({taskset:S,packageHash:y,hostedTasksetId:g}).strict().optional()}).strict(),pe=i.object({schemaVersion:i.literal("openpond.tasksetPackageReadback.v1"),teamId:g,modelProjectId:g,package:j}).strict(),ue=i.object({schemaVersion:i.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:g,release:S,package:j}).strict(),m=class extends Error{static{d(this,"OpenPondTasksetPackageError")}constructor(a,e,t){super(t),this.status=a,this.code=e,this.name="OpenPondTasksetPackageError"}status;code},He=class{static{d(this,"OpenPondTasksetPackageClient")}#e;constructor(a){let e=new URL(a.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!a.apiKey.trim()||!a.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...a,baseUrl:e.toString().replace(/\/+$/,"")}}async publish(a,e={}){let t=de.parse(a);x(t.package),t.evaluationPackage&&x(t.evaluationPackage);let{evaluationPackage:s,...r}=t,n=s?.contentHash===t.package.contentHash?r:t,o=le.parse(await this.#t("","POST",n,e.signal)),c=t.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==t.modelProjectId||o.operationId!==t.operationId||o.packageHash!==t.package.contentHash||o.taskset.id!==c.id||o.taskset.revision!==c.revision||o.taskset.contentHash!==c.contentHash)throw new m(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(t.selection!==void 0&&o.selection!==t.selection)throw new m(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(t.evaluationPackage&&(!o.evaluation||o.evaluation.packageHash!==t.evaluationPackage.contentHash||u(o.evaluation.taskset)!==u(P(t.evaluationPackage.taskset))))throw new m(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(t.selection==="attach"&&o.projectEtag!==t.expectedProjectEtag)throw new m(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(t.modelConfiguration){let p=t.modelConfiguration,l=o.project,v=q(t.package),h=A.parse({...p.trainingSetup,tasksetRef:P(c),rewardBindingRef:v?P(v):null,tasksetRelease:null});if(!l||l.teamId!==this.#e.teamId||l.etag!==o.projectEtag||![l.id,l.portableProjectId].includes(t.modelProjectId)||l.portableProjectId!==p.portableProjectId||l.name!==p.name||l.objective!==p.objective||l.sourceRevision!==p.sourceRevision||Date.parse(l.sourceUpdatedAt)!==Date.parse(p.sourceUpdatedAt)||u(l.defaultBaseModel)!==u(p.defaultBaseModel)||l.defaultDestinationId!==p.defaultDestinationId||u(l.trainingSetup)!==u(h))throw new m(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return o}async getByRelease(a,e={}){let t=S.parse(a),s=e.expectedPackageHash===void 0?void 0:y.parse(e.expectedPackageHash),r=ue.parse(await this.#t(`/releases/${encodeURIComponent(t.id)}/${t.revision}/${t.contentHash}/package`,"GET",void 0,e.signal)),n=x(r.package),o={id:n.taskset.id,revision:n.taskset.revision,contentHash:n.taskset.contentHash};if(r.teamId!==this.#e.teamId||u(r.release)!==u(t)||u(o)!==u(t)||s!==void 0&&n.contentHash!==s)throw new m(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return n}async get(a,e,t={}){let s=g.parse(a),r=S.parse(e),n=t.expectedPackageHash===void 0?void 0:y.parse(t.expectedPackageHash),o=pe.parse(await this.#t(`/${encodeURIComponent(s)}/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}`,"GET",void 0,t.signal)),c=o.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==s||c.id!==r.id||c.revision!==r.revision||c.contentHash!==r.contentHash)throw new m(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(n!==void 0&&o.package.contentHash!==n)throw new m(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return x(o.package)}async#t(a,e,t,s){let r=t===void 0?void 0:JSON.stringify(t);if(r&&new TextEncoder().encode(r).byteLength>_)throw new m(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let n=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${a}`,{method:e,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...r?{"Content-Type":"application/json"}:{}},body:r,signal:s,redirect:"error"}),o=n.body?.getReader();if(!o)throw new m(n.status,"empty_response","Taskset package response was empty.");let c=new TextDecoder("utf-8",{fatal:!0}),p=0,l="";try{for(;;){let h=await o.read();if(h.done)break;if(p+=h.value.byteLength,p>_)throw new m(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");l+=c.decode(h.value,{stream:!0})}l+=c.decode()}finally{await o.cancel(),o.releaseLock()}let v=JSON.parse(l);if(!n.ok){let h=i.object({code:i.string(),message:i.string()}).safeParse(v);throw new m(n.status,h.success?h.data.code:"package_request_failed",h.success?h.data.message:`Taskset package request failed (${n.status}).`)}return v}};var X=6e6,Y=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function C(a){let e=b.parse(a);return!Y.has(e)&&!e.startsWith("source-artifacts/")}d(C,"isWritableTasksetDraftFilePath");function Q(a){return Y.has(b.parse(a))}d(Q,"isManagedTasksetDraftFilePath");function fe(a,e){let t=C(a);if(e.byteLength>X)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");let s;try{let r=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(e);s=/[\u0000-\u0008\u000e-\u001f]/.test(r)?J(e):{encoding:"utf8",data:r}}catch{s=J(e)}return{path:a,writable:t,content:s,sizeBytes:e.byteLength,contentHash:I(e)}}d(fe,"createTasksetDraftFile");function he(a){let e=L.parse(a),t;try{if(e.encoding==="utf8")t=new TextEncoder().encode(e.data);else{let s=atob(e.data);if(btoa(s)!==e.data)throw new Error("Noncanonical base64");t=new Uint8Array(s.length);for(let r=0;r<s.length;r++)t[r]=s.charCodeAt(r)}}catch{throw new Error("Taskset draft file content is invalid or exceeds 6 MB.")}if(t.byteLength>X)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");return t}d(he,"decodeTasksetDraftFileContent");function J(a){let e="";for(let t=0;t<a.length;t+=8192)e+=String.fromCharCode(...a.subarray(t,t+8192));return{encoding:"base64",data:btoa(e)}}d(J,"base64Content");function me(a){let e=[];a.output.renderer&&e.push({relativePath:a.output.renderer.module,source:`export async function ${a.output.renderer.exportName}(output: unknown) {
2
+ import{a as S}from"./chunk-2GEZ3ZY7.js";import{Aa as K,Ba as N,Ca as G,F as U,_,e as b,g as L,ga as j,ha as q,i as z,ja as x,oa as T,wa as R,ya as D}from"./chunk-BYVE4TMU.js";import{k as w,l as I,m as u}from"./chunk-HIQPGYVH.js";import{E as A,P as O,Q as W}from"./chunk-3VT2PPKW.js";import{L as P}from"./chunk-ZEOYNUHL.js";import{v as E}from"./chunk-ZY32SZ2P.js";import{A as i}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";var g=i.string().trim().min(1).max(500),y=i.string().regex(/^[a-f0-9]{64}$/),ce=O.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:A.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),de=i.object({schemaVersion:i.literal("openpond.tasksetPackagePublication.v1"),operationId:g,modelProjectId:g,expectedProjectEtag:y.nullable(),name:i.string().trim().min(1).max(200),description:i.string().max(5e3),buildIntent:i.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:i.enum(["sft","dpo","grpo","ppo"]).nullable(),package:j,modelConfiguration:ce.optional(),evaluationPackage:j.optional(),selection:i.enum(["select","attach"]).optional()}).strict().refine(a=>a.selection!=="attach"||a.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(a=>!a.evaluationPackage||a.modelConfiguration!==void 0&&a.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&u(a.modelConfiguration.trainingSetup.evaluationTasksetRef)===u(P(a.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),le=i.object({schemaVersion:i.literal("openpond.tasksetPackageReceipt.v1"),teamId:g,modelProjectId:g,operationId:g,taskset:S,packageHash:y,hostedTasksetId:g,projectEtag:y,project:W.optional(),selection:i.enum(["select","attach"]).optional(),evaluation:i.object({taskset:S,packageHash:y,hostedTasksetId:g}).strict().optional()}).strict(),pe=i.object({schemaVersion:i.literal("openpond.tasksetPackageReadback.v1"),teamId:g,modelProjectId:g,package:j}).strict(),ue=i.object({schemaVersion:i.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:g,release:S,package:j}).strict(),m=class extends Error{static{d(this,"OpenPondTasksetPackageError")}constructor(a,e,t){super(t),this.status=a,this.code=e,this.name="OpenPondTasksetPackageError"}status;code},He=class{static{d(this,"OpenPondTasksetPackageClient")}#e;constructor(a){let e=new URL(a.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!a.apiKey.trim()||!a.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...a,baseUrl:e.toString().replace(/\/+$/,"")}}async publish(a,e={}){let t=de.parse(a);x(t.package),t.evaluationPackage&&x(t.evaluationPackage);let{evaluationPackage:s,...r}=t,n=s?.contentHash===t.package.contentHash?r:t,o=le.parse(await this.#t("","POST",n,e.signal)),c=t.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==t.modelProjectId||o.operationId!==t.operationId||o.packageHash!==t.package.contentHash||o.taskset.id!==c.id||o.taskset.revision!==c.revision||o.taskset.contentHash!==c.contentHash)throw new m(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(t.selection!==void 0&&o.selection!==t.selection)throw new m(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(t.evaluationPackage&&(!o.evaluation||o.evaluation.packageHash!==t.evaluationPackage.contentHash||u(o.evaluation.taskset)!==u(P(t.evaluationPackage.taskset))))throw new m(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(t.selection==="attach"&&o.projectEtag!==t.expectedProjectEtag)throw new m(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(t.modelConfiguration){let p=t.modelConfiguration,l=o.project,v=q(t.package),h=A.parse({...p.trainingSetup,tasksetRef:P(c),rewardBindingRef:v?P(v):null,tasksetRelease:null});if(!l||l.teamId!==this.#e.teamId||l.etag!==o.projectEtag||![l.id,l.portableProjectId].includes(t.modelProjectId)||l.portableProjectId!==p.portableProjectId||l.name!==p.name||l.objective!==p.objective||l.sourceRevision!==p.sourceRevision||Date.parse(l.sourceUpdatedAt)!==Date.parse(p.sourceUpdatedAt)||u(l.defaultBaseModel)!==u(p.defaultBaseModel)||l.defaultDestinationId!==p.defaultDestinationId||u(l.trainingSetup)!==u(h))throw new m(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return o}async getByRelease(a,e={}){let t=S.parse(a),s=e.expectedPackageHash===void 0?void 0:y.parse(e.expectedPackageHash),r=ue.parse(await this.#t(`/releases/${encodeURIComponent(t.id)}/${t.revision}/${t.contentHash}/package`,"GET",void 0,e.signal)),n=x(r.package),o={id:n.taskset.id,revision:n.taskset.revision,contentHash:n.taskset.contentHash};if(r.teamId!==this.#e.teamId||u(r.release)!==u(t)||u(o)!==u(t)||s!==void 0&&n.contentHash!==s)throw new m(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return n}async get(a,e,t={}){let s=g.parse(a),r=S.parse(e),n=t.expectedPackageHash===void 0?void 0:y.parse(t.expectedPackageHash),o=pe.parse(await this.#t(`/${encodeURIComponent(s)}/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}`,"GET",void 0,t.signal)),c=o.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==s||c.id!==r.id||c.revision!==r.revision||c.contentHash!==r.contentHash)throw new m(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(n!==void 0&&o.package.contentHash!==n)throw new m(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return x(o.package)}async#t(a,e,t,s){let r=t===void 0?void 0:JSON.stringify(t);if(r&&new TextEncoder().encode(r).byteLength>_)throw new m(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let n=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${a}`,{method:e,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...r?{"Content-Type":"application/json"}:{}},body:r,signal:s,redirect:"error"}),o=n.body?.getReader();if(!o)throw new m(n.status,"empty_response","Taskset package response was empty.");let c=new TextDecoder("utf-8",{fatal:!0}),p=0,l="";try{for(;;){let h=await o.read();if(h.done)break;if(p+=h.value.byteLength,p>_)throw new m(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");l+=c.decode(h.value,{stream:!0})}l+=c.decode()}finally{await o.cancel(),o.releaseLock()}let v=JSON.parse(l);if(!n.ok){let h=i.object({code:i.string(),message:i.string()}).safeParse(v);throw new m(n.status,h.success?h.data.code:"package_request_failed",h.success?h.data.message:`Taskset package request failed (${n.status}).`)}return v}};var X=6e6,Y=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function C(a){let e=b.parse(a);return!Y.has(e)&&!e.startsWith("source-artifacts/")}d(C,"isWritableTasksetDraftFilePath");function Q(a){return Y.has(b.parse(a))}d(Q,"isManagedTasksetDraftFilePath");function fe(a,e){let t=C(a);if(e.byteLength>X)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");let s;try{let r=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(e);s=/[\u0000-\u0008\u000e-\u001f]/.test(r)?J(e):{encoding:"utf8",data:r}}catch{s=J(e)}return{path:a,writable:t,content:s,sizeBytes:e.byteLength,contentHash:I(e)}}d(fe,"createTasksetDraftFile");function he(a){let e=L.parse(a),t;try{if(e.encoding==="utf8")t=new TextEncoder().encode(e.data);else{let s=atob(e.data);if(btoa(s)!==e.data)throw new Error("Noncanonical base64");t=new Uint8Array(s.length);for(let r=0;r<s.length;r++)t[r]=s.charCodeAt(r)}}catch{throw new Error("Taskset draft file content is invalid or exceeds 6 MB.")}if(t.byteLength>X)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");return t}d(he,"decodeTasksetDraftFileContent");function J(a){let e="";for(let t=0;t<a.length;t+=8192)e+=String.fromCharCode(...a.subarray(t,t+8192));return{encoding:"base64",data:btoa(e)}}d(J,"base64Content");function me(a){let e=[];a.output.renderer&&e.push({relativePath:a.output.renderer.module,source:`export async function ${a.output.renderer.exportName}(output: unknown) {
3
3
  // Return artifact paths or bytes derived from the model's structured output.
4
4
  return output;
5
5
  }
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{E as m,c as I,f as H,v as d,w as r,x as j,y as s}from"./chunk-WGQ3FMRF.js";import{ga as p}from"./chunk-BU6MW65V.js";import{Bb as R,Eb as P,lb as L,va as S,wb as y}from"./chunk-ZY32SZ2P.js";import{n as b}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as E}from"./chunk-FTQLQJQV.js";var u=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),N=e.object({ref:u,revision:e.string().nullable(),sourceHash:e.string()});var n=e.string().trim().min(1).max(200),o=e.string().regex(/^[a-f0-9]{64}$/),k=e.enum(["queued","running","cancelling","completed","failed","cancelled","interrupted"]),z=e.object({providerId:e.enum(["openpond","custom-openai-compatible","claude-code","codex"]),modelId:e.string().trim().min(1).max(500),configurationHash:o,maxOutputTokens:e.number().int().positive().max(262144),temperature:e.number().min(0).max(2).optional(),topP:e.number().positive().max(1).optional(),messages:e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(262144)}).strict()).max(200)}).strict(),Y=e.object({configuration:s,package:p}).strict(),Z=e.object({configuration:s,expectedPackageHash:o.optional()}).strict(),ee=e.object({schemaVersion:e.literal("openpond.localExperimentDefinition.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,revision:e.number().int().positive(),configuration:s,model:z,packageHash:o,graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime(),contentHash:o}).strict(),te=e.object({operationId:n,definition:d}).strict(),ne=e.object({teamId:n,id:n}).strict(),oe=e.object({teamId:n,projectId:n.optional(),status:k.optional(),datasetHash:o.optional(),search:e.string().max(100).optional(),afterId:n.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),f=e.object({schemaVersion:e.literal("openpond.localExperimentExecution.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,operationId:n,definition:d,kind:e.enum(["target","scoring"]),executionHash:o,sourceExecution:e.object({id:n,executionHash:o}).strict().nullable(),packageHash:o,maximumCostUsd:e.number().finite().positive(),status:k,createdAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),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(),unknown:e.number().int().nonnegative()}).strict(),usage:e.object({knownCostUsd:e.number().finite().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),heldUsd:e.number().finite().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict(),cleanupComplete:e.boolean(),error:e.string().max(2e3).nullable()}).strict(),v=f.omit({definition:!0});function g(t,i){t.kind==="scoring"!=(t.sourceExecution!==null)&&i.addIssue({code:"custom",message:"Only retained scoring passes name an original execution."}),["completed","failed","cancelled","interrupted"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&i.addIssue({code:"custom",message:"Terminal local execution requires complete population accounting."}),["completed","cancelled"].includes(t.status)&&!t.cleanupComplete&&i.addIssue({code:"custom",message:"Successful completion or cancellation requires confirmed local transport cleanup."}),t.usage.uncertainRequests>0&&t.usage.costUsd!==null&&i.addIssue({code:"custom",message:"Uncertain provider charges cannot claim a measured total."})}E(g,"validateLocalExecutionState");var ie=f.superRefine(g),c=v.superRefine(g),A=e.object({configuration:m,package:p}).strict(),U=e.object({configuration:m,expectedPackageHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),x=e.object({configuration:m,model:z,packageHash:e.string().regex(/^[a-f0-9]{64}$/),graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),retainedConfigurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),configurationHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,i)=>{let{configurationHash:a,...h}=t;b(h)!==a&&i.addIssue({code:"custom",message:"Local configuration snapshot bytes changed."})}),{definition:ae,...O}=f.shape,l=e.object({...O,kind:e.literal("target"),...x.shape}).strict().superRefine((t,i)=>{let a={configuration:t.configuration,model:t.model,packageHash:t.packageHash,graders:t.graders,availableGraders:t.availableGraders,...t.retainedConfigurationHash?{retainedConfigurationHash:t.retainedConfigurationHash}:{},configurationHash:t.configurationHash};g(t,i),x.safeParse(a).success||i.addIssue({code:"custom",message:"Local Experiment configuration changed."}),(t.operationId!==t.configuration.operationId||t.teamId!==t.configuration.request.teamId||t.maximumCostUsd!==t.configuration.maximumCostUsd)&&i.addIssue({code:"custom",message:"Local Experiment differs from its sealed admission."})}),q=e.object({items:e.array(l).max(100),nextCursor:e.string().nullable()}).strict(),G=e.object({teamId:e.string().min(1).max(200),id:e.string().min(1).max(200),configurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),T=e.object({operationId:n,execution:e.object({id:n,executionHash:o}).strict(),graderPackage:p,graders:e.array(j).min(1).max(100),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),re=T.omit({graderPackage:!0}),D=L,F=e.object({sessionId:n,turnId:n,source:S,profileRef:u,admissionHash:o,modelConfigurationHash:o,traceHash:o,runtimeEventRefs:e.array(n).max(1e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),outputHash:o,partialOutputAvailable:e.boolean()}).strict(),w=e.object({receiptId:n,taskId:n,seed:e.string(),status:e.enum(["pending","running","completed","failed","cancelled","unknown"]),input:e.record(e.string(),e.unknown()),policyVisibleContext:e.record(e.string(),e.unknown()),output:e.string().nullable(),messages:e.array(e.unknown()).max(4002),grade:H.nullable(),error:e.string().nullable(),native:D.optional(),profileNative:F.optional(),externalProcess:I.optional()}).strict(),ce=e.object({execution:e.union([l,c]),cases:e.array(w).max(1e4),contentHash:o}).strict(),$=e.object({items:e.array(e.object({sequence:e.number().int().positive(),type:e.string().min(1),payload:e.unknown()}).strict()).max(500),nextCursor:e.number().int().positive().nullable()}).strict(),se=e.object({location:e.literal("local"),execution:e.union([l,c]),case:w,trace:$}).strict(),me=e.object({items:e.array(c).max(100),nextCursor:n.nullable()}).strict(),pe=e.object({execution:c,graders:e.array(r).min(1).max(100),graderPackageHash:o}).strict(),C=e.object({execution:c,manifest:y,result:R}).strict().superRefine((t,i)=>{try{if(P(t),t.manifest.id!==t.execution.id||t.manifest.teamId!==t.execution.teamId||t.manifest.lineage?.execution.id!==(t.execution.sourceExecution?.id??t.execution.id)||t.manifest.lineage.execution.contentHash!==(t.execution.sourceExecution?.executionHash??t.execution.executionHash)||t.manifest.lineage.scoringPassId!==(t.execution.kind==="scoring"?t.execution.id:null)||t.manifest.maximumCostUsd!==t.execution.maximumCostUsd)throw new Error("Portable evidence differs from its retained local execution.")}catch(a){i.addIssue({code:"custom",message:a instanceof Error?a.message:"Local portable evidence verification failed."})}}),le=e.object({location:e.literal("local"),baseline:C,candidate:C}).strict();export{u as a,l as b,ce as c,le as d};
2
+ import{E as m,c as I,f as H,v as d,w as r,x as j,y as s}from"./chunk-XKDOPNQ5.js";import{ga as p}from"./chunk-BYVE4TMU.js";import{Bb as R,Eb as P,lb as L,va as S,wb as y}from"./chunk-ZY32SZ2P.js";import{n as b}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as E}from"./chunk-FTQLQJQV.js";var u=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),N=e.object({ref:u,revision:e.string().nullable(),sourceHash:e.string()});var n=e.string().trim().min(1).max(200),o=e.string().regex(/^[a-f0-9]{64}$/),k=e.enum(["queued","running","cancelling","completed","failed","cancelled","interrupted"]),z=e.object({providerId:e.enum(["openpond","custom-openai-compatible","claude-code","codex"]),modelId:e.string().trim().min(1).max(500),configurationHash:o,maxOutputTokens:e.number().int().positive().max(262144),temperature:e.number().min(0).max(2).optional(),topP:e.number().positive().max(1).optional(),messages:e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(262144)}).strict()).max(200)}).strict(),Y=e.object({configuration:s,package:p}).strict(),Z=e.object({configuration:s,expectedPackageHash:o.optional()}).strict(),ee=e.object({schemaVersion:e.literal("openpond.localExperimentDefinition.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,revision:e.number().int().positive(),configuration:s,model:z,packageHash:o,graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime(),contentHash:o}).strict(),te=e.object({operationId:n,definition:d}).strict(),ne=e.object({teamId:n,id:n}).strict(),oe=e.object({teamId:n,projectId:n.optional(),status:k.optional(),datasetHash:o.optional(),search:e.string().max(100).optional(),afterId:n.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),f=e.object({schemaVersion:e.literal("openpond.localExperimentExecution.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,operationId:n,definition:d,kind:e.enum(["target","scoring"]),executionHash:o,sourceExecution:e.object({id:n,executionHash:o}).strict().nullable(),packageHash:o,maximumCostUsd:e.number().finite().positive(),status:k,createdAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),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(),unknown:e.number().int().nonnegative()}).strict(),usage:e.object({knownCostUsd:e.number().finite().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),heldUsd:e.number().finite().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict(),cleanupComplete:e.boolean(),error:e.string().max(2e3).nullable()}).strict(),v=f.omit({definition:!0});function g(t,i){t.kind==="scoring"!=(t.sourceExecution!==null)&&i.addIssue({code:"custom",message:"Only retained scoring passes name an original execution."}),["completed","failed","cancelled","interrupted"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&i.addIssue({code:"custom",message:"Terminal local execution requires complete population accounting."}),["completed","cancelled"].includes(t.status)&&!t.cleanupComplete&&i.addIssue({code:"custom",message:"Successful completion or cancellation requires confirmed local transport cleanup."}),t.usage.uncertainRequests>0&&t.usage.costUsd!==null&&i.addIssue({code:"custom",message:"Uncertain provider charges cannot claim a measured total."})}E(g,"validateLocalExecutionState");var ie=f.superRefine(g),c=v.superRefine(g),A=e.object({configuration:m,package:p}).strict(),U=e.object({configuration:m,expectedPackageHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),x=e.object({configuration:m,model:z,packageHash:e.string().regex(/^[a-f0-9]{64}$/),graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),retainedConfigurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),configurationHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,i)=>{let{configurationHash:a,...h}=t;b(h)!==a&&i.addIssue({code:"custom",message:"Local configuration snapshot bytes changed."})}),{definition:ae,...O}=f.shape,l=e.object({...O,kind:e.literal("target"),...x.shape}).strict().superRefine((t,i)=>{let a={configuration:t.configuration,model:t.model,packageHash:t.packageHash,graders:t.graders,availableGraders:t.availableGraders,...t.retainedConfigurationHash?{retainedConfigurationHash:t.retainedConfigurationHash}:{},configurationHash:t.configurationHash};g(t,i),x.safeParse(a).success||i.addIssue({code:"custom",message:"Local Experiment configuration changed."}),(t.operationId!==t.configuration.operationId||t.teamId!==t.configuration.request.teamId||t.maximumCostUsd!==t.configuration.maximumCostUsd)&&i.addIssue({code:"custom",message:"Local Experiment differs from its sealed admission."})}),q=e.object({items:e.array(l).max(100),nextCursor:e.string().nullable()}).strict(),G=e.object({teamId:e.string().min(1).max(200),id:e.string().min(1).max(200),configurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),T=e.object({operationId:n,execution:e.object({id:n,executionHash:o}).strict(),graderPackage:p,graders:e.array(j).min(1).max(100),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),re=T.omit({graderPackage:!0}),D=L,F=e.object({sessionId:n,turnId:n,source:S,profileRef:u,admissionHash:o,modelConfigurationHash:o,traceHash:o,runtimeEventRefs:e.array(n).max(1e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),outputHash:o,partialOutputAvailable:e.boolean()}).strict(),w=e.object({receiptId:n,taskId:n,seed:e.string(),status:e.enum(["pending","running","completed","failed","cancelled","unknown"]),input:e.record(e.string(),e.unknown()),policyVisibleContext:e.record(e.string(),e.unknown()),output:e.string().nullable(),messages:e.array(e.unknown()).max(4002),grade:H.nullable(),error:e.string().nullable(),native:D.optional(),profileNative:F.optional(),externalProcess:I.optional()}).strict(),ce=e.object({execution:e.union([l,c]),cases:e.array(w).max(1e4),contentHash:o}).strict(),$=e.object({items:e.array(e.object({sequence:e.number().int().positive(),type:e.string().min(1),payload:e.unknown()}).strict()).max(500),nextCursor:e.number().int().positive().nullable()}).strict(),se=e.object({location:e.literal("local"),execution:e.union([l,c]),case:w,trace:$}).strict(),me=e.object({items:e.array(c).max(100),nextCursor:n.nullable()}).strict(),pe=e.object({execution:c,graders:e.array(r).min(1).max(100),graderPackageHash:o}).strict(),C=e.object({execution:c,manifest:y,result:R}).strict().superRefine((t,i)=>{try{if(P(t),t.manifest.id!==t.execution.id||t.manifest.teamId!==t.execution.teamId||t.manifest.lineage?.execution.id!==(t.execution.sourceExecution?.id??t.execution.id)||t.manifest.lineage.execution.contentHash!==(t.execution.sourceExecution?.executionHash??t.execution.executionHash)||t.manifest.lineage.scoringPassId!==(t.execution.kind==="scoring"?t.execution.id:null)||t.manifest.maximumCostUsd!==t.execution.maximumCostUsd)throw new Error("Portable evidence differs from its retained local execution.")}catch(a){i.addIssue({code:"custom",message:a instanceof Error?a.message:"Local portable evidence verification failed."})}}),le=e.object({location:e.literal("local"),baseline:C,candidate:C}).strict();export{u as a,l as b,ce as c,le as d};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{j as Q,m as We,n as Ke,r as Xe,s as Ye,x as ke,z as Qe}from"./chunk-YI6ME6PU.js";import{c as Ue,d as De,e as Ze,f as et,g as tt}from"./chunk-DRLP7GIU.js";import{Ca as Ee,Ia as Ie,Ka as Je,L as He,Ma as ge,N as Le,S as Ve,U as Fe,V as he,_ as ze,a as $e,aa as J,ba as W,c as Oe,ca as ve,d as N,da as Ge,e as pe,ea as Ne,ia as X,ja as C,ka as Y,oa as Z,wa as K,x as fe,y as xe,z as le}from"./chunk-BU6MW65V.js";import{h as me,l as G,m}from"./chunk-HIQPGYVH.js";import{d as je}from"./chunk-I6VMRQF4.js";import{ha as Ae,ja as Ce}from"./chunk-D6L6UNUQ.js";import{L as w,M as $,N as P,O as oe,Q as ce,S as de,da as L,k as U,o as F,pb as ye,qb as _e,rb as ue,t as ne,w as ie,z as re}from"./chunk-4PUOWSDE.js";import{$a as qe,Aa as x,_a as Be,ab as se,bb as ae,ga as te,x as Me}from"./chunk-ZY32SZ2P.js";import{A as j}from"./chunk-X2J2P5ZT.js";import{a as S}from"./chunk-FTQLQJQV.js";function ot(s){let e=C(s.source),t=C(s.edited),a=s.preparation;if(a.authoringGraph!=="bound"||!e.modelResources||e.learningResources||t.modelResources||t.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==a.sourcePackageHash||!$(w(e.taskset),a.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let c=S(_=>_.taskset.graders.map(q=>q.kind==="custom_verifier"?{...q,exportName:q.exportName??"verify"}:q),"normalizedGraders");if(m(c(e))!==m(c(t)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let o=e.modelResources,l=new Map(o.assets.map(_=>[_.id,_])),n=W(t),p=W(e),f=S(_=>{let{id:q,revision:be,contentHash:Se,metadata:Te,...rt}=_,{javascriptEnvironment:Rt,...Pe}=Te;return{...rt,metadata:{...Pe,resources:Pe.resources??[]}}},"environmentContent"),d=S(_=>{if(!_)return null;let{id:q,revision:be,contentHash:Se,...Te}=_.execution.javascript;return Te},"javascriptContent"),b=m(f(e.environment))===m(f(t.environment))&&m(d(p))===m(d(n)),k=b?e.environment:t.environment,v=b?p:n,h=new Set([...o.assets.map(_=>_.id),...t.taskset.tasks.flatMap(_=>_.privilegedContextRef?[_.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(_=>_?[_.id]:[]),...n?.assets.map(_=>_.id)??[]]),I=new Set([...h,...t.taskset.tasks.flatMap(_=>[..._.artifactRefs.map(q=>q.id),...(_.requiredOutputs??[]).flatMap(q=>q.schemaRef?[q.schemaRef.id]:[])])]),A=ct(e,t,I);for(let _ of h){let q=A.find(Se=>Se.asset.id===_);if(!q)throw new Error(`Bound Taskset asset is missing: ${_}.`);let be=new TextDecoder("utf-8",{fatal:!0}).decode(J(q));l.set(_,ce.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:_,revision:1,asset:q.asset,text:be})))}let M=X(t),{contentHash:V,...O}=o.taskDefinition,{policy:R,environment:D,environmentRelease:H,tools:u,capabilities:g,verifierSetRelease:T}=t.taskset,r=F.parse(P({...O,instructions:M,execution:{policy:R,environment:D,environmentRelease:H,tools:u,capabilities:g,verifierSetRelease:T}})),{contentHash:i,...y}=t.taskset,E=te.parse(P({...y,tasks:t.taskset.tasks.map(_=>o.instructionMode==="per_task"?_:{..._,policyVisibleContext:{..._.policyVisibleContext,instructions:M}})})),B=he({owner:a.lineage.owner,source:{...o,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:o.rewardBinding,rewards:o.rewards,assets:[...l.values()],edits:{taskset:E,taskDefinition:r,executionResources:{environment:k,verifierSet:t.verifierSet},...v?{execution:v.execution}:{}}}),z=Ve.parse(B.taskset.metadata.modelTasksetDerivation);if(B.taskset.id!==a.tasksetId||B.taskset.revision!==a.tasksetRevision||m({...z,schemaVersion:a.lineage.schemaVersion})!==m(a.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:we,executionResources:Re,...it}=B;return Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:we,...Re,modelResources:it,files:A})}S(ot,"publishBoundModelTasksetDraftPackage");function ct(s,e,t){let a=e.files,c=new Map(s.files.map(n=>[n.asset.id,{file:n,assetHash:m(n.asset)}])),o=S(n=>{let p=c.get(n.asset.id);return p!==void 0&&p.file.base64===n.base64&&p.assetHash===m(n.asset)},"isSourceFile"),l=s.files.filter(n=>Q(n.asset.path)).map(n=>{let p=`source-artifact-${m({packageHash:s.contentHash,assetId:n.asset.id})}`;return{original:n,asset:{...n.asset,id:p,path:`source-artifacts/${s.contentHash}/${m(n.asset.path)}/${n.asset.path.split("/").at(-1)}`}}});for(let{original:n,asset:p}of l){let f=l.filter(v=>m({...v.original.asset,id:n.asset.id})===m(n.asset)),b=e.files.find(v=>v.asset.id===p.id)??f.flatMap(v=>e.files.filter(h=>m(h.asset)===m(v.asset)))[0];if(!b||b.base64!==n.base64||!f.some(v=>m(v.asset)===m(b.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${n.asset.id}.`);let k=a.filter(v=>v.asset.path===n.asset.path||v.asset.id===n.asset.id);if(k.some(v=>v.asset.path!==n.asset.path||v.asset.id!==n.asset.id&&v.asset.id!==`taskset-file-${m(n.asset.path)}`&&!o(v)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${n.asset.id}.`);a=[...a.filter(v=>v.asset.id!==p.id&&v.asset.id!==n.asset.id&&(!k.includes(v)||o(v))),n]}for(let n of s.files.filter(p=>!a.some(f=>f.asset.id===p.asset.id))){if(n.asset.path==="environment/execution.json"){let d=He.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(J(n))));if(d.success&&m(ve(d.data))===m(n))continue}let p=a.filter(d=>d.asset.path===n.asset.path),f=S(d=>m({...d.asset,id:n.asset.id})===m(n.asset)&&d.base64===n.base64,"sameEnvelope");if(t.has(n.asset.id)||!p.length||p.some(d=>!f(d)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${n.asset.id}.`);a=[...a,n]}return a}S(ct,"retainSourceFileIdentities");function Mt(s){let e=Oe.parse(s.request),t=$e.parse(s.owner),a=C(s.source);if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(a.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(a.modelResources){let p=Fe({owner:t,source:{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:a.modelResources.rewardBinding,rewards:a.modelResources.rewards,assets:a.modelResources.assets}),f=p.taskset.metadata.modelTasksetDerivation;return N.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${m({owner:t,operationId:e.operationId})}`,requestHash:m(e),sourcePackageHash:a.contentHash,sourceTasksetRef:w(a.taskset),tasksetId:p.taskset.id,tasksetRevision:p.taskset.revision,lineage:{...f,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let c=Ne(a.taskset),o=c&&m(c.owner)===m(t),l=o?c.root:w(a.taskset),n={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:t,root:l,parent:w(a.taskset)};return N.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${m({owner:t,operationId:e.operationId})}`,requestHash:m(e),sourcePackageHash:a.contentHash,sourceTasksetRef:w(a.taskset),tasksetId:Ge(n),tasksetRevision:o?a.taskset.revision+1:1,lineage:n})}S(Mt,"prepareModelTasksetDraft");function dt(s){let e=N.parse(s.preparation);if(!$(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!s.source)throw new Error("Bound Taskset authoring requires its retained source package.");return ot({preparation:e,source:s.source,edited:s.edited})}let t=ut(s.edited),{contentHash:a,...c}=t.verifierSet,o=Ce({...c,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:w(t.verifierSet)}}),{contentHash:l,...n}=t.taskset,p=te.parse(P({...n,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:o.id,contentHash:o.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...t.taskset.metadata.environmentResources===void 0?{}:{environmentResources:t.taskset.metadata.environmentResources},...t.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:t.taskset.metadata.ordinaryAuthoring}}})),f=W(t),d=f?[...t.files.filter(b=>b.asset.id!==Le(t.taskset)),ve({...f.execution,verifierSet:o})]:t.files;return Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:p,environment:t.environment,verifierSet:o,files:d})}S(dt,"publishModelTasksetDraftPackage");function ut(s){let e=C(s);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}S(ut,"requireOrdinaryPackage");function mt(s,e,t,a){if(s.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:s,inventory:t,generatedFiles:[]};let c="environment/execution.json",o=e.get(c);if(!o||o.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let l=He.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(o))),n=S(M=>{if(!M)return null;let V=t.find(O=>O.asset.id===M.id&&O.asset.path===M.path);if(!V)throw new Error(`Authored environment dependency is missing: ${M.id}.`);return V.asset},"repin"),{contentHash:p,...f}=l.javascript,d=je.parse(P({...f,id:`javascript-${s.id}`,revision:s.revision,module:n(l.javascript.module)}));if(m(d.tools)!==m(s.environment.metadata.portableTools)||m(d.tools.map(M=>M.name))!==m(s.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let b=Ae({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${s.id}`,revision:s.revision,contract:Je(s),actionSchemaRef:n(l.environment.actionSchemaRef),observationSchemaRef:n(l.environment.observationSchemaRef),stateSchemaRef:n(l.environment.stateSchemaRef),artifactCollection:l.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:w(d),resources:s.environment.resources??[]}}),k=K.parse({...s,environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:b}}}}),v=Ie({taskset:k,adapterId:a}),h=ve({javascript:d,environment:b,verifierSet:v.verifierSetRelease}),I=[...t.filter(M=>M.sourcePath!==c),{asset:h.asset,sourcePath:c}],A=K.parse({...k,metadata:{...k.metadata,portableFileInventory:I}});return{taskset:K.parse({...A,contentHash:Ee(A)}),inventory:I,generatedFiles:[{path:c,role:"environment",content:new TextDecoder().decode(J(h))}]}}S(mt,"prepareAuthoredToolEnvironment");var ee=j.array(j.object({asset:me,sourcePath:j.string().min(1)}).strict()).max(1e4),pt=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function ft(s){return pt.has(s)}S(ft,"isGeneratedTasksetPublicationFilePath");function lt(s,e,t,a=ze){let c=K.parse(s);for(let u of c.tasks)for(let g of u.requiredOutputs??[])if(fe(g.metadata)&&g.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(c.metadata.taskDefinition!==void 0||c.metadata.rewardBinding!==void 0){for(let u of c.tasks)for(let g of ge(u).requiredOutputs??[]){let T=fe(g.metadata);if(!T)continue;let r=ge(u).artifactRefs.find(z=>z.id===T.schemaRef.id);if(!r||m(r)!==m(T.schemaRef)||!g.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let i=S((z,we)=>u.assets?.find(Re=>Re.id===z)?.artifactRef??we,"sourcePath"),y=e.get(i(g.schemaRef.id,g.schemaRef.path)),E=e.get(i(r.id,r.path));if(!y||!E)throw new Error("Sampling schema source bytes are missing.");let B=le(y,g.schemaRef.contentHash);xe(B,T,E)}return{taskset:c,generatedFiles:[]}}let o=new Map,l=0;for(let[u,g]of e){if(pe.parse(u),l+=g.byteLength,o.size>=1e4||l>a*3/4)throw new Error("Taskset source exceeds the package byte limit.");o.set(u,g.slice())}let n=c.metrics?.customAggregator,p=n?o.get(n.module):void 0;if(n&&!p)throw new Error("Declared Taskset metric module is missing.");let f=n&&p?{...c.metrics,customAggregator:{...n,contentHash:G(p)}}:c.metrics,d=new Map,b=new Set,k=[],v=S((u,g,T,r)=>{let i=o.get(g);if(!i)throw new Error(`Declared Taskset file is missing: ${g}.`);return{id:u,path:g,contentHash:G(i),sizeBytes:i.byteLength,mediaType:T,visibility:r}},"ref"),h=S((u,g=u.path)=>{let T=d.get(u.id);if(T&&m(T)!==m({asset:u,sourcePath:g}))throw new Error(`Conflicting Taskset file identity: ${u.id}.`);let r=o.get(g);if(!r||r.length!==u.sizeBytes||G(r)!==u.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${u.id}.`);d.set(u.id,{asset:u,sourcePath:g}),b.add(g)},"add");for(let u of c.tasks){let g={};for(let r of u.requiredOutputs??[])if(r.submissionMode==="structured_json"){if(!r.schemaRef||r.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let i=u.metadata.portableTaskRecord?.requiredOutputs?.find(B=>B.path===r.path)?.schemaRef,y=i?.id===r.schemaRef?i.path:r.schemaRef,E=v(r.schemaRef,y,"application/schema+json","policy");if(i&&i.id===r.schemaRef&&i.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");le(o.get(y),E.contentHash),g[r.schemaRef]=E}Object.keys(g).length&&(u.metadata={...u.metadata,outputSchemaRefs:g});let T=ge(u);for(let r of T.artifactRefs)h(r,u.assets?.find(i=>i.id===r.id)?.artifactRef??r.path);for(let r of T.requiredOutputs??[])r.schemaRef&&h(r.schemaRef);for(let r of T.requiredOutputs??[]){let i=fe(r.metadata);if(!i)continue;let y=d.get(i.schemaRef.id);if(!y||m(y.asset)!==m(i.schemaRef)||!T.artifactRefs.some(B=>B.id===i.schemaRef.id)||!r.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let E=le(o.get(d.get(r.schemaRef.id).sourcePath),r.schemaRef.contentHash);xe(E,i,o.get(y.sourcePath))}}for(let u of c.environment.resources??[])h(v(u.id,u.path,u.mediaType??"application/octet-stream",u.visibility==="policy_visible"?"policy":"host_private"));let I=c.graders.map(u=>{if(u.kind==="custom_verifier"){let g=v(`verifier-${u.id}`,u.module,"application/javascript","host_private"),T=me.safeParse(u.metadata.portableVerifierRef);return T.success&&T.data.contentHash===g.contentHash&&T.data.sizeBytes===g.sizeBytes&&(g=T.data),h(g,u.module),{...u,metadata:{...u.metadata,portableVerifierRef:g}}}if(u.kind==="human"||u.kind==="model_judge"){let g=new TextEncoder().encode(u.rubric),T=`graders/rubric-${G(g)}.md`;o.set(T,g);let r=v(`rubric-${u.id}`,T,"text/markdown","verifier"),i=me.safeParse(u.metadata.portableRubricRef);if(i.success&&i.data.contentHash===r.contentHash&&i.data.sizeBytes===r.sizeBytes){if(i.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");r=i.data}return h(r,T),k.push({path:T,role:"verifier",content:u.rubric}),{...u,metadata:{...u.metadata,portableRubricRef:r}}}return u});n&&![...d.values()].some(u=>u.asset.path===n.module&&u.sourcePath===n.module&&u.asset.visibility!=="policy")&&h(v(`metric-${m(n.module)}`,n.module,"application/javascript","host_private"));let A=ee.parse(c.metadata.portableFileInventory??[]);for(let u of[...o.keys()].sort())if(!b.has(u)){let g=A.find(T=>T.sourcePath===u&&!d.has(T.asset.id));h(g?{...v(g.asset.id,u,g.asset.mediaType,g.asset.visibility),path:g.asset.path}:v(`taskset-file-${m(u)}`,u,"application/octet-stream","host_private"),u)}let{importedPackageHash:M,derivedPortableMetadata:V,...O}=c.metadata,R={...c.environment.metadata};if(R.portableExecutionResources!==void 0){let u=j.object({environment:j.unknown(),verifierSet:j.unknown().optional()}).parse(R.portableExecutionResources);R.portableExecutionResources={environment:u.environment}}let D=K.parse({...c,graders:I,metrics:f,environment:{...c.environment,metadata:R},metadata:{...O,...M===void 0?{}:{sourceImportedPackageHash:M},portableFileInventory:ee.parse([...d.values()].sort((u,g)=>u.asset.id.localeCompare(g.asset.id)))}}),H=mt(D,o,[...d.values()],t);return{taskset:K.parse({...H.taskset,contentHash:Ee(H.taskset)}),generatedFiles:[...k,...H.generatedFiles]}}S(lt,"prepareAuthoredTasksetSource");function ht(s){let e=Ye(s.workspace,s.maximumBytes),t=s.preparation===null?null:N.parse(s.preparation);if(t?e.draft.id!==t.draftId||e.draft.modelScope?.modelId!==t.lineage.owner.modelId||e.draft.profileId!==t.lineage.owner.scopeId||m(e.draft.modelScope?.source??null)!==m(t):e.draft.modelScope?.source!==void 0)throw new Error("Taskset draft differs from its retained source preparation.");let a=Qe({draft:e.draft,now:e.draft.updatedAt,sourcePackageHash:s.sourceWorkspaceHash??e.contentHash}),c=new Map(e.files.map(f=>[f.path,ke(f)]));for(let[f,d]of Ke(e.draft))ft(f)||c.set(f,new TextEncoder().encode(d));let o=lt(a,c,s.adapterId,s.maximumBytes);for(let f of o.generatedFiles)c.set(f.path,new TextEncoder().encode(f.content));let l=Ie({taskset:o.taskset,adapterId:s.adapterId}),n=ee.parse(o.taskset.metadata.portableFileInventory),p=Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:l.tasksetRelease,environment:l.environmentRelease,verifierSet:l.verifierSetRelease,files:n.map(f=>{let d=c.get(f.sourcePath);if(!d)throw new Error(`Captured Taskset file is missing: ${f.sourcePath}.`);return{asset:f.asset,base64:Buffer.from(d).toString("base64")}})},s.maximumBytes);return t?dt({preparation:t,edited:p,source:s.source}):p}S(ht,"compileTasksetDraftWorkspace");function jt(s){if(!s.workspace.draft.modelScope)throw new Error("Taskset draft requires a Model owner.");return ht(s)}S(jt,"compileModelTasksetDraftWorkspace");function Xt(s){let e=C(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=X(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,c=W(e);for(let R of c?.assets??[])a.set(R.id,R);let o=new Set([...e.taskset.tasks.flatMap(R=>R.privilegedContextRef?[R.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(R=>R?[R.id]:[])]);for(let R of o){if(a.has(R))continue;let D=e.files.find(u=>u.asset.id===R);if(!D)throw new Error(`Source Taskset context is missing: ${R}.`);let H=new TextDecoder("utf-8",{fatal:!0}).decode(J(D));a.set(R,ce.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:R,revision:1,asset:D.asset,text:H})))}for(let R of s.assets){let D=e.files.find(H=>H.asset.id===R.id);if(D&&P({asset:D.asset}).contentHash!==P({asset:R.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${R.id}.`);a.set(R.id,R)}let{policy:l,environment:n,environmentRelease:p,tools:f,capabilities:d,verifierSetRelease:b}=e.taskset,k=e.taskset.metadata.tasksetOutputContract,v=k&&typeof k=="object"&&!Array.isArray(k)&&"mode"in k&&k.mode==="structured_json"?"jsonSchema"in k?k.jsonSchema:null:{type:"object"},h=F.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:v,rewardBinding:w(s.rewardBinding),harness:null,execution:{policy:l,environment:n,environmentRelease:p,tools:f,capabilities:d,verifierSetRelease:b}})),I=he({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:h,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...c?{execution:c.execution}:{}}}),A=new Map(e.files.map(R=>[R.asset.id,R]));for(let R of I.assets){let D="";for(let H of new TextEncoder().encode(R.text))D+=String.fromCharCode(H);A.set(R.id,{asset:R.asset,base64:btoa(D)})}let{taskset:M,executionResources:V,...O}=I;return Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:M,...V,modelResources:O,files:[...A.values()]})}S(Xt,"bindOrdinaryModelTasksetReward");function vt(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new x("model_review_batch_required",422);let c=L(t.taskset),o=`model-review-${m([s.scope,e.modelId,e.operationId])}`,l=new Map(e.examples.map(r=>[m(r.evidence),r])),n=new Set(a.evidence.map(r=>m(w(r)))),p=new Map(a.decisions.map(r=>[m(r.evidence),r]));if(l.size!==e.examples.length||e.examples.some(r=>!n.has(m(r.evidence))))throw new x("model_review_evidence_mismatch",409);for(let r of[s.binding,...s.rewards,...s.assets])oe(r);se(s.binding,s.rewards);let f=new Map;for(let r of s.binding.sources){let i=s.rewards.find(B=>$(w(B),r.reward)),{contentHash:y,...E}=i;f.set(i.contentHash,Be({...E,id:`${o}-reward-${i.contentHash}`,revision:1}))}let d=[...f.values()],{contentHash:b,recipeRef:k,...v}=s.binding,h=qe({...v,id:`${o}-binding`,revision:1,sources:s.binding.sources.map(r=>({...r,reward:w(f.get(r.reward.contentHash))}))},d),I=d.flatMap(r=>[...r.assets,..."verifierRef"in r.implementation?[r.implementation.verifierRef]:[],..."rubricRef"in r.implementation?[r.implementation.rubricRef]:[],..."inputContract"in r.implementation?[r.implementation.inputContract]:[]]),A=[...new Map(I.map(r=>{let i=s.assets.find(y=>y.id===r.id);if(!i)throw new x("model_review_reward_asset_missing",422);if(de(i,r),r.visibility==="policy")throw new x("reward_asset_visibility_invalid",422);return[i.id,i]})).values()],{environmentRelease:M,verifierSetRelease:V,...O}=c.definition.execution,{contentHash:R,...D}=c.definition,H=F.parse(P({...D,...e.definition,id:`${o}-definition`,revision:1,rewardBinding:w(h),execution:{...O,policy:{...O.policy,hiddenGraderRefs:ae(h,d).filter(r=>r.privileged).map(r=>r.id)}}})),u=ne.parse(P({schemaVersion:"openpond.learningSource.v1",id:o,revision:1,name:`${H.name} review`,kind:"direct",taskDefinition:w(H),enabled:!0,allowedSplits:[...new Set(a.evidence.map(r=>r.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:w(t.taskset),batch:w(a.batch),rewardBinding:w(s.binding)}})),g=a.evidence.map(r=>{let i=l.get(m(w(r))),y=`review-${r.contentHash}`,E=m({instructions:H.instructions,inputSchema:H.inputSchema,outputSchema:H.outputSchema,requiredOutputs:H.requiredOutputs??[],input:i?.input??r.submission.input})!==m({instructions:c.definition.instructions,inputSchema:c.definition.inputSchema,outputSchema:c.definition.outputSchema,requiredOutputs:c.definition.requiredOutputs??[],input:r.submission.input});return ie.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:ue(u.id,r.submission.exampleId,y),revision:1,source:w(u),submission:{...r.submission,sourceId:u.id,taskDefinition:w(H),attemptId:y,observedOutput:E?null:r.submission.observedOutput,idempotencyKey:`${o}-${r.contentHash}`,...i?.input===void 0?{}:{input:i.input},...i?.expected===void 0?{}:{expected:i.expected},...i?.evaluatorContext===void 0?{}:{evaluatorContext:i.evaluatorContext}},supersedes:w(r),correctionFeedbackId:null,receivedAt:s.now}))}),T=g.flatMap(r=>{let i=l.get(m(r.supersedes)),y=p.get(m(r.supersedes)),E=i?.proposedTarget===void 0?y.approvedTarget:i.proposedTarget;return E===null?[]:[re.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${m([o,r.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:u.id,idempotencyKey:`${o}-${r.id}`,exampleId:r.submission.exampleId,attemptId:r.submission.attemptId,expectedEvidenceHash:r.contentHash,occurredAt:s.now,kind:"target_correction",value:E,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:w(r),createdAt:s.now,review:null})]});return{source:u,definition:H,binding:h,rewards:d,assets:A,evidence:g,proposals:T}}S(vt,"prepareModelBatchReview");var st=S(s=>`model-batch-review-${m([s.modelId,s.operationId])}`,"operation");function es(s){let e=C(s);if(!e.learningResources)throw new x("model_review_batch_required",422);let t=L(e.taskset);return Ue.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}S(es,"inspectModelBatchPackage");async function gt(s,e){let t=De.parse(e),a=await s.operation(st(t));if(!a)return null;if(a.requestHash!==m(t))throw new x("learning_idempotency_conflict",409);return at(s,t,a.resources)}S(gt,"findModelBatchReview");async function ts(s,e){let t=De.parse(e.request),a=await gt(s,t);if(a)return a;let c=C(e.package);if(!c.learningResources)throw new x("model_review_batch_required",422);let o=L(c.taskset),l=t.rewardBindingRef,n=!l||$(l,w(o.binding)),p=n?o.binding:await _e(s,"binding",l),f=n?o.rewards:await Promise.all(p.sources.map(h=>_e(s,"reward",h.reward))),d=new Set(f.flatMap(h=>[...h.assets,..."verifierRef"in h.implementation?[h.implementation.verifierRef]:[],..."rubricRef"in h.implementation?[h.implementation.rubricRef]:[],..."inputContract"in h.implementation?[h.implementation.inputContract]:[]]).map(h=>h.id)),b=n?c.learningResources.assets:await Promise.all([...d].map(h=>ye(s,"asset",h,1))),k=vt({...e,request:t,package:c,binding:p,rewards:f,assets:b}),v=[];for(let h of k.assets){let I=await s.get("asset",h.id,1);if(I&&I.contentHash!==h.contentHash)throw new x("model_review_asset_conflict",409);I||await s.put("asset",h,0)}for(let h of k.rewards)await s.put("reward",h,0);await s.put("binding",k.binding,0),await s.put("definition",k.definition,0),await s.put("source",k.source,0,{parentId:t.modelId}),v.push({kind:"source",id:k.source.id,revision:1});for(let h of k.evidence)await s.put("evidence",h,0,{parentId:k.source.id}),v.push({kind:"evidence",id:h.id,revision:1});for(let h of k.proposals)await s.put("feedback",h,0,{parentId:h.evidence.id,status:h.status}),v.push({kind:"feedback",id:h.id,revision:1});return await s.saveOperation(st(t),{requestHash:m(t),resources:v}),at(s,t,v)}S(ts,"beginModelBatchReview");async function at(s,e,t){let a=await Promise.all(t.map(c=>ye(s,c.kind,c.id,c.revision)));return Ze.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(c=>c.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(c=>c.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(c=>c.schemaVersion==="openpond.taskFeedbackRecord.v1")})}S(at,"readReceipt");function as(s,e){let t=C(s),a=e?new Set(e):null,c=t.taskset.tasks.filter(p=>!a||a.has(p.id));if(!c.length||a&&c.length!==a.size)throw new x("dataset_review_selection_mismatch",409);let o=c.flatMap(p=>[...p.artifactRefs,...(p.requiredOutputs??[]).flatMap(f=>f.schemaRef?[f.schemaRef]:[])]),l=W(t);o.push(...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef,l?.execution.javascript.module].flatMap(p=>p?[p]:[]));let n=new Map;for(let p of o){let f=t.files.find(d=>d.asset.id===p.id);if(!f||m(f.asset)!==m(p))throw new x("dataset_review_asset_mismatch",409);n.set(f.asset.id,f)}for(let p of[t.taskset.metadata.environmentResources,t.environment.metadata.resources])if(p!==void 0){if(!Array.isArray(p))throw new x("dataset_review_environment_resources_invalid",422);for(let f of p){if(!f||typeof f!="object"||!("path"in f))throw new x("dataset_review_environment_resources_invalid",422);let d=t.files.filter(b=>b.asset.path===f.path);if(d.length!==1)throw new x("dataset_review_environment_resource_ambiguous",422);n.set(d[0].asset.id,d[0])}}return[...n.values()]}S(as,"datasetTrainingReviewFiles");function is(s){let e=C(s),t=e.learningResources?L(e.taskset):null,a=t?.definition??e.modelResources?.taskDefinition,c=t?.binding??e.modelResources?.rewardBinding,o=a?.instructions??X(e),l=e.taskset.metadata.tasksetOutputContract,n=l&&typeof l=="object"&&!Array.isArray(l)&&"mode"in l&&l.mode==="structured_json"&&"jsonSchema"in l?U.parse(l.jsonSchema):null,p=a?.outputSchema??n;return tt.parse({schemaVersion:"openpond.datasetTrainingReviewSource.v1",dataset:w(e.taskset),packageHash:e.contentHash,taskCount:e.taskset.tasks.length,definition:{name:a?.name??e.taskset.id,...o?.trim()?{instructions:o}:{},...a?{inputSchema:a.inputSchema}:{},...p?{outputSchema:p}:{},...a?.requiredOutputs?{requiredOutputs:a.requiredOutputs}:{}},rewardBinding:c?w(c):null,hasParentTargets:e.learningResources?.decisions.some(f=>f.approvedTarget!==null)??!1})}S(is,"inspectDatasetTrainingReviewPackage");function kt(s,e,t){return`dataset-review-${m([s,e,t])}`}S(kt,"datasetTrainingReviewIdentity");function ds(s){let e=et.parse(s.request),t=C(s.package);if(t.contentHash!==e.packageHash||!$(w(t.taskset),e.dataset))throw new x("dataset_review_source_mismatch",409);let a=kt(e.teamId,s.actorId,e.operationId),c=t.learningResources?L(t.taskset):null,o=c?.definition??t.modelResources?.taskDefinition,l=c?{binding:c.binding,rewards:c.rewards,assets:t.learningResources.assets}:t.modelResources?{binding:t.modelResources.rewardBinding,rewards:t.modelResources.rewards,assets:t.modelResources.assets}:null,n=s.graph??l;if(!n)throw new x("dataset_review_reward_required",422,"Select an exact saved Reward binding before importing this Dataset for review.");let p=e.rewardBindingRef??l?.binding;if(!p||!$(w(n.binding),p))throw new x("dataset_review_reward_mismatch",409);for(let i of[n.binding,...n.rewards,...n.assets])oe(i);se(n.binding,n.rewards);let f=n.rewards.flatMap(i=>[...i.assets,..."verifierRef"in i.implementation?[i.implementation.verifierRef]:[],..."rubricRef"in i.implementation?[i.implementation.rubricRef]:[],..."inputContract"in i.implementation?[i.implementation.inputContract]:[]]),d=[...new Map(f.map(i=>{let y=n.assets.find(B=>B.id===i.id);if(!y||i.visibility==="policy")throw new x("dataset_review_reward_asset_missing",422);de(y,i);let E=t.files.find(B=>B.asset.id===i.id);if(E&&m(E.asset)!==m(i))throw new x("dataset_review_asset_conflict",409);return[y.id,y]})).values()],b=e.taskIds?new Set(e.taskIds):null,k=t.taskset.tasks.filter(i=>!b||b.has(i.id));if(!k.length||k.length>1e4||b&&k.length!==b.size)throw new x("dataset_review_selection_mismatch",409);if(e.targetSource==="approved_parent"&&!t.learningResources)throw new x("dataset_review_parent_targets_unavailable",422);let v=o?.familyNamespace??s.familyNamespace;if(!v)throw new x("dataset_review_family_required",422,"Resolve the Dataset's stable family before importing its versions.");let h=e.definition.instructions??o?.instructions??X(t);if(!h.trim())throw new x("dataset_review_instructions_required",422,"Provide the task instructions before importing this Dataset.");let I=t.taskset.metadata.tasksetOutputContract,A=I&&typeof I=="object"&&!Array.isArray(I)&&"mode"in I&&I.mode==="structured_json"&&"jsonSchema"in I?U.parse(I.jsonSchema):null,M=e.definition.outputSchema??o?.outputSchema??A;if(!M)throw new x("dataset_review_output_contract_required",422,"Provide the actual output contract for this Dataset; importing does not infer a target schema.");let{environmentRelease:V,verifierSetRelease:O,...R}=t.taskset,D=F.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${a}-definition`,revision:1,name:e.definition.name??o?.name??t.taskset.id,description:o?.description??"",instructions:h,category:o?.category??"custom",familyNamespace:v,inputSchema:e.definition.inputSchema??o?.inputSchema??{type:"object"},outputSchema:M,...e.definition.requiredOutputs??o?.requiredOutputs?{requiredOutputs:e.definition.requiredOutputs??o?.requiredOutputs}:{},...o?.contextRequirements?{contextRequirements:o.contextRequirements}:{},harness:o?.harness??null,rewardBinding:w(n.binding),execution:{policy:{...R.policy,hiddenGraderRefs:ae(n.binding,n.rewards).filter(i=>i.privileged).map(i=>i.id)},environment:R.environment,tools:R.tools,capabilities:R.capabilities}})),H=ne.parse(P({schemaVersion:"openpond.learningSource.v1",id:a,revision:1,name:`${D.name.slice(0,480)} review`,kind:"direct",taskDefinition:w(D),enabled:!0,allowedSplits:[...new Set(k.map(i=>i.split))],mapping:null,adapterVersion:null,datasetOrigin:{receiptId:a,packageHash:t.contentHash,taskset:w(t.taskset)}})),u=new Map(t.learningResources?.evidence.map(i=>[i.id,i])??[]),g=new Map(t.learningResources?.decisions.map(i=>[m(i.evidence),i])??[]),T=k.map(i=>{let y=u.get(i.id),E=y?.submission.evaluatorContext??wt(t,i.privilegedContextRef),B={...i.policyVisibleContext,...e.definition.instructions===void 0?{}:{instructions:D.instructions}},z=e.definition.instructions!==void 0&&e.definition.instructions!==o?.instructions;return ie.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:ue(H.id,i.id,`dataset-${t.contentHash}`),revision:1,source:w(H),supersedes:y?w(y):null,correctionFeedbackId:null,receivedAt:s.now,submission:{schemaVersion:"openpond.taskExample.v1",sourceId:H.id,idempotencyKey:`${a}-${m(i.id)}`,taskDefinition:w(D),exampleId:i.id,attemptId:`dataset-${t.contentHash}`,occurredAt:y?.submission.occurredAt??s.now,familyKey:i.clusterKey,split:i.split,input:i.input,policyVisibleContext:B,observedOutput:!z&&y?y.submission.observedOutput:null,expected:i.expectedOutput,evaluatorContext:E,assets:i.artifactRefs,...i.requiredOutputs?{requiredOutputs:i.requiredOutputs}:{},provenance:{sourceRecordRef:JSON.stringify({dataset:e.dataset,taskId:i.id}),mappingHash:m({schemaVersion:"openpond.datasetTrainingReviewMapping.v1",dataset:e.dataset,packageHash:t.contentHash})}}}))}),r=T.flatMap(i=>{let y=u.get(i.submission.exampleId),E=e.targetSource==="expected_output"?i.submission.expected:e.targetSource==="approved_parent"&&y?g.get(m(w(y)))?.approvedTarget??null:null;if(E===null)return[];if(!Me(D.outputSchema,E).valid)throw new x("dataset_review_target_schema_mismatch",422,"A proposed Dataset target differs from the selected output contract. Import without proposals or provide the matching contract.");return[re.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${m([H.id,i.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:H.id,idempotencyKey:`${H.id}-${m(i.id)}`,exampleId:i.submission.exampleId,attemptId:i.submission.attemptId,expectedEvidenceHash:i.contentHash,occurredAt:s.now,kind:"target_correction",value:E,note:"Dataset target proposal. Grade and review this exact evidence before admission."},status:"pending_review",evidence:w(i),createdAt:s.now,review:null})]});return{id:a,request:e,source:H,definition:D,binding:n.binding,rewards:n.rewards,assets:d,evidence:T,proposals:r}}S(ds,"prepareDatasetTrainingReview");function wt(s,e){if(!e)return null;let t=s.files.find(a=>a.asset.id===e);if(!t||t.asset.visibility!=="host_private")throw new x("dataset_review_private_context_missing",422);try{return U.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(J(t))))}catch{throw new x("dataset_review_private_context_unsupported",422,"This Dataset's private context is not an object envelope supported by the review engine.")}}S(wt,"readPrivateContext");var nt=j.object({draft:Z,filePaths:j.array(j.object({assetId:j.string().min(1),paths:j.array(pe).min(1).max(1e4)}).strict()).max(1e4)}).strict();function ps(s){let e=C(s.source),t=Z.parse(s.sourceDraft),a=N.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!$(w(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let c=ee.parse(t.metadata.portableFileInventory??[]),o=S(d=>Q(d)?`source-artifacts/${e.contentHash}/${m(d)}/${d.split("/").at(-1)}`:d,"sourcePath");if([...t.tasks.flatMap(d=>(d.assets??[]).map(b=>b.artifactRef)),...(t.environment.resources??[]).map(d=>d.path),...e.taskset.tasks.flatMap(d=>(d.requiredOutputs??[]).flatMap(b=>b.schemaRef?[b.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(d=>d.kind==="custom_verifier"?[d.module]:[])].some(Q))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let n=e.files.map(d=>{let b=new Set([d.asset.path]);for(let k of c)k.asset.id===d.asset.id&&b.add(k.sourcePath);for(let k of t.tasks)for(let v of k.assets??[])v.id===d.asset.id&&b.add(v.artifactRef);for(let k of e.taskset.graders)if(k.kind==="custom_verifier"&&k.verifierRef.id===d.asset.id){let v=t.graders.find(h=>h.id===k.id);v?.kind==="custom_verifier"&&b.add(v.module)}return{assetId:d.asset.id,paths:[...b].map(o)}}),p={...t.metadata};if(e.modelResources)for(let d of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete p[d];let f=Z.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(d=>({...d,metadata:{...d.metadata,portableGrader:e.taskset.graders.find(b=>b.id===d.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...p,modelTasksetAuthoring:a.lineage,portableFileInventory:c.map(d=>({...d,sourcePath:o(d.sourcePath),asset:{...d.asset,id:Q(d.sourcePath)?`source-artifact-${m({packageHash:e.contentHash,assetId:d.asset.id})}`:d.asset.id,path:o(d.asset.path)}}))}});return nt.parse({draft:f,filePaths:n})}S(ps,"prepareTasksetDraftSource");function fs(s){let e=nt.parse(s.initialized),t=C(s.source);if(e.draft.modelScope?.source?.sourcePackageHash!==t.contentHash)throw new Error("Taskset draft lost its source preparation.");let a=new Map;for(let o of e.filePaths){let l=t.files.find(n=>n.asset.id===o.assetId);if(!l)throw new Error("Taskset draft source asset is missing.");for(let n of o.paths){let p=a.get(n);if(p&&p.contentHash!==l.asset.contentHash)throw new Error("Taskset draft source paths conflict.");a.set(n,{path:n,contentHash:l.asset.contentHash,sizeBytes:l.asset.sizeBytes,base64:l.base64})}}for(let o of We(e.draft))if(!a.has(o.relativePath)){let l=new TextEncoder().encode(o.source);a.set(o.relativePath,{path:o.relativePath,contentHash:G(l),sizeBytes:l.byteLength,base64:Buffer.from(l).toString("base64")})}let c=e.draft;if(c.metrics.customAggregator){let o=a.get(c.metrics.customAggregator.module);if(!o)throw new Error("Declared Taskset metric module is missing.");ke(o),c=Z.parse({...c,metrics:{...c.metrics,customAggregator:{...c.metrics.customAggregator,contentHash:o.contentHash}}})}return Xe({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:c,files:[...a.values()]})}S(fs,"materializeTasksetDraftWorkspace");export{Mt as a,dt as b,ee as c,ft as d,lt as e,ht as f,jt as g,Xt as h,es as i,gt as j,ts as k,as as l,is as m,kt as n,ds as o,nt as p,ps as q,fs as r};
2
+ import{j as Q,m as We,n as Ke,r as Xe,s as Ye,x as ke,z as Qe}from"./chunk-GG6PM7TB.js";import{c as Ue,d as De,e as Ze,f as et,g as tt}from"./chunk-2GEZ3ZY7.js";import{Ca as Ee,Ia as Ie,Ka as Je,L as He,Ma as ge,N as Le,S as Ve,U as Fe,V as he,_ as ze,a as $e,aa as J,ba as W,c as Oe,ca as ve,d as N,da as Ge,e as pe,ea as Ne,ia as X,ja as C,ka as Y,oa as Z,wa as K,x as fe,y as xe,z as le}from"./chunk-BYVE4TMU.js";import{h as me,l as G,m}from"./chunk-HIQPGYVH.js";import{d as je}from"./chunk-I6VMRQF4.js";import{ha as Ae,ja as Ce}from"./chunk-D6L6UNUQ.js";import{L as w,M as $,N as P,O as oe,Q as ce,S as de,da as L,k as U,o as F,pb as ye,qb as _e,rb as ue,t as ne,w as ie,z as re}from"./chunk-ZEOYNUHL.js";import{$a as qe,Aa as x,_a as Be,ab as se,bb as ae,ga as te,x as Me}from"./chunk-ZY32SZ2P.js";import{A as j}from"./chunk-X2J2P5ZT.js";import{a as S}from"./chunk-FTQLQJQV.js";function ot(s){let e=C(s.source),t=C(s.edited),a=s.preparation;if(a.authoringGraph!=="bound"||!e.modelResources||e.learningResources||t.modelResources||t.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==a.sourcePackageHash||!$(w(e.taskset),a.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let c=S(_=>_.taskset.graders.map(q=>q.kind==="custom_verifier"?{...q,exportName:q.exportName??"verify"}:q),"normalizedGraders");if(m(c(e))!==m(c(t)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let o=e.modelResources,l=new Map(o.assets.map(_=>[_.id,_])),n=W(t),p=W(e),f=S(_=>{let{id:q,revision:be,contentHash:Se,metadata:Te,...rt}=_,{javascriptEnvironment:Rt,...Pe}=Te;return{...rt,metadata:{...Pe,resources:Pe.resources??[]}}},"environmentContent"),d=S(_=>{if(!_)return null;let{id:q,revision:be,contentHash:Se,...Te}=_.execution.javascript;return Te},"javascriptContent"),b=m(f(e.environment))===m(f(t.environment))&&m(d(p))===m(d(n)),k=b?e.environment:t.environment,v=b?p:n,h=new Set([...o.assets.map(_=>_.id),...t.taskset.tasks.flatMap(_=>_.privilegedContextRef?[_.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(_=>_?[_.id]:[]),...n?.assets.map(_=>_.id)??[]]),I=new Set([...h,...t.taskset.tasks.flatMap(_=>[..._.artifactRefs.map(q=>q.id),...(_.requiredOutputs??[]).flatMap(q=>q.schemaRef?[q.schemaRef.id]:[])])]),A=ct(e,t,I);for(let _ of h){let q=A.find(Se=>Se.asset.id===_);if(!q)throw new Error(`Bound Taskset asset is missing: ${_}.`);let be=new TextDecoder("utf-8",{fatal:!0}).decode(J(q));l.set(_,ce.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:_,revision:1,asset:q.asset,text:be})))}let M=X(t),{contentHash:V,...O}=o.taskDefinition,{policy:R,environment:D,environmentRelease:H,tools:u,capabilities:g,verifierSetRelease:T}=t.taskset,r=F.parse(P({...O,instructions:M,execution:{policy:R,environment:D,environmentRelease:H,tools:u,capabilities:g,verifierSetRelease:T}})),{contentHash:i,...y}=t.taskset,E=te.parse(P({...y,tasks:t.taskset.tasks.map(_=>o.instructionMode==="per_task"?_:{..._,policyVisibleContext:{..._.policyVisibleContext,instructions:M}})})),B=he({owner:a.lineage.owner,source:{...o,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:o.rewardBinding,rewards:o.rewards,assets:[...l.values()],edits:{taskset:E,taskDefinition:r,executionResources:{environment:k,verifierSet:t.verifierSet},...v?{execution:v.execution}:{}}}),z=Ve.parse(B.taskset.metadata.modelTasksetDerivation);if(B.taskset.id!==a.tasksetId||B.taskset.revision!==a.tasksetRevision||m({...z,schemaVersion:a.lineage.schemaVersion})!==m(a.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:we,executionResources:Re,...it}=B;return Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:we,...Re,modelResources:it,files:A})}S(ot,"publishBoundModelTasksetDraftPackage");function ct(s,e,t){let a=e.files,c=new Map(s.files.map(n=>[n.asset.id,{file:n,assetHash:m(n.asset)}])),o=S(n=>{let p=c.get(n.asset.id);return p!==void 0&&p.file.base64===n.base64&&p.assetHash===m(n.asset)},"isSourceFile"),l=s.files.filter(n=>Q(n.asset.path)).map(n=>{let p=`source-artifact-${m({packageHash:s.contentHash,assetId:n.asset.id})}`;return{original:n,asset:{...n.asset,id:p,path:`source-artifacts/${s.contentHash}/${m(n.asset.path)}/${n.asset.path.split("/").at(-1)}`}}});for(let{original:n,asset:p}of l){let f=l.filter(v=>m({...v.original.asset,id:n.asset.id})===m(n.asset)),b=e.files.find(v=>v.asset.id===p.id)??f.flatMap(v=>e.files.filter(h=>m(h.asset)===m(v.asset)))[0];if(!b||b.base64!==n.base64||!f.some(v=>m(v.asset)===m(b.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${n.asset.id}.`);let k=a.filter(v=>v.asset.path===n.asset.path||v.asset.id===n.asset.id);if(k.some(v=>v.asset.path!==n.asset.path||v.asset.id!==n.asset.id&&v.asset.id!==`taskset-file-${m(n.asset.path)}`&&!o(v)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${n.asset.id}.`);a=[...a.filter(v=>v.asset.id!==p.id&&v.asset.id!==n.asset.id&&(!k.includes(v)||o(v))),n]}for(let n of s.files.filter(p=>!a.some(f=>f.asset.id===p.asset.id))){if(n.asset.path==="environment/execution.json"){let d=He.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(J(n))));if(d.success&&m(ve(d.data))===m(n))continue}let p=a.filter(d=>d.asset.path===n.asset.path),f=S(d=>m({...d.asset,id:n.asset.id})===m(n.asset)&&d.base64===n.base64,"sameEnvelope");if(t.has(n.asset.id)||!p.length||p.some(d=>!f(d)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${n.asset.id}.`);a=[...a,n]}return a}S(ct,"retainSourceFileIdentities");function Mt(s){let e=Oe.parse(s.request),t=$e.parse(s.owner),a=C(s.source);if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(a.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(a.modelResources){let p=Fe({owner:t,source:{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:a.modelResources.rewardBinding,rewards:a.modelResources.rewards,assets:a.modelResources.assets}),f=p.taskset.metadata.modelTasksetDerivation;return N.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${m({owner:t,operationId:e.operationId})}`,requestHash:m(e),sourcePackageHash:a.contentHash,sourceTasksetRef:w(a.taskset),tasksetId:p.taskset.id,tasksetRevision:p.taskset.revision,lineage:{...f,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let c=Ne(a.taskset),o=c&&m(c.owner)===m(t),l=o?c.root:w(a.taskset),n={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:t,root:l,parent:w(a.taskset)};return N.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${m({owner:t,operationId:e.operationId})}`,requestHash:m(e),sourcePackageHash:a.contentHash,sourceTasksetRef:w(a.taskset),tasksetId:Ge(n),tasksetRevision:o?a.taskset.revision+1:1,lineage:n})}S(Mt,"prepareModelTasksetDraft");function dt(s){let e=N.parse(s.preparation);if(!$(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!s.source)throw new Error("Bound Taskset authoring requires its retained source package.");return ot({preparation:e,source:s.source,edited:s.edited})}let t=ut(s.edited),{contentHash:a,...c}=t.verifierSet,o=Ce({...c,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:w(t.verifierSet)}}),{contentHash:l,...n}=t.taskset,p=te.parse(P({...n,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:o.id,contentHash:o.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...t.taskset.metadata.environmentResources===void 0?{}:{environmentResources:t.taskset.metadata.environmentResources},...t.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:t.taskset.metadata.ordinaryAuthoring}}})),f=W(t),d=f?[...t.files.filter(b=>b.asset.id!==Le(t.taskset)),ve({...f.execution,verifierSet:o})]:t.files;return Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:p,environment:t.environment,verifierSet:o,files:d})}S(dt,"publishModelTasksetDraftPackage");function ut(s){let e=C(s);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}S(ut,"requireOrdinaryPackage");function mt(s,e,t,a){if(s.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:s,inventory:t,generatedFiles:[]};let c="environment/execution.json",o=e.get(c);if(!o||o.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let l=He.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(o))),n=S(M=>{if(!M)return null;let V=t.find(O=>O.asset.id===M.id&&O.asset.path===M.path);if(!V)throw new Error(`Authored environment dependency is missing: ${M.id}.`);return V.asset},"repin"),{contentHash:p,...f}=l.javascript,d=je.parse(P({...f,id:`javascript-${s.id}`,revision:s.revision,module:n(l.javascript.module)}));if(m(d.tools)!==m(s.environment.metadata.portableTools)||m(d.tools.map(M=>M.name))!==m(s.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let b=Ae({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${s.id}`,revision:s.revision,contract:Je(s),actionSchemaRef:n(l.environment.actionSchemaRef),observationSchemaRef:n(l.environment.observationSchemaRef),stateSchemaRef:n(l.environment.stateSchemaRef),artifactCollection:l.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:w(d),resources:s.environment.resources??[]}}),k=K.parse({...s,environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:b}}}}),v=Ie({taskset:k,adapterId:a}),h=ve({javascript:d,environment:b,verifierSet:v.verifierSetRelease}),I=[...t.filter(M=>M.sourcePath!==c),{asset:h.asset,sourcePath:c}],A=K.parse({...k,metadata:{...k.metadata,portableFileInventory:I}});return{taskset:K.parse({...A,contentHash:Ee(A)}),inventory:I,generatedFiles:[{path:c,role:"environment",content:new TextDecoder().decode(J(h))}]}}S(mt,"prepareAuthoredToolEnvironment");var ee=j.array(j.object({asset:me,sourcePath:j.string().min(1)}).strict()).max(1e4),pt=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function ft(s){return pt.has(s)}S(ft,"isGeneratedTasksetPublicationFilePath");function lt(s,e,t,a=ze){let c=K.parse(s);for(let u of c.tasks)for(let g of u.requiredOutputs??[])if(fe(g.metadata)&&g.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(c.metadata.taskDefinition!==void 0||c.metadata.rewardBinding!==void 0){for(let u of c.tasks)for(let g of ge(u).requiredOutputs??[]){let T=fe(g.metadata);if(!T)continue;let r=ge(u).artifactRefs.find(z=>z.id===T.schemaRef.id);if(!r||m(r)!==m(T.schemaRef)||!g.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let i=S((z,we)=>u.assets?.find(Re=>Re.id===z)?.artifactRef??we,"sourcePath"),y=e.get(i(g.schemaRef.id,g.schemaRef.path)),E=e.get(i(r.id,r.path));if(!y||!E)throw new Error("Sampling schema source bytes are missing.");let B=le(y,g.schemaRef.contentHash);xe(B,T,E)}return{taskset:c,generatedFiles:[]}}let o=new Map,l=0;for(let[u,g]of e){if(pe.parse(u),l+=g.byteLength,o.size>=1e4||l>a*3/4)throw new Error("Taskset source exceeds the package byte limit.");o.set(u,g.slice())}let n=c.metrics?.customAggregator,p=n?o.get(n.module):void 0;if(n&&!p)throw new Error("Declared Taskset metric module is missing.");let f=n&&p?{...c.metrics,customAggregator:{...n,contentHash:G(p)}}:c.metrics,d=new Map,b=new Set,k=[],v=S((u,g,T,r)=>{let i=o.get(g);if(!i)throw new Error(`Declared Taskset file is missing: ${g}.`);return{id:u,path:g,contentHash:G(i),sizeBytes:i.byteLength,mediaType:T,visibility:r}},"ref"),h=S((u,g=u.path)=>{let T=d.get(u.id);if(T&&m(T)!==m({asset:u,sourcePath:g}))throw new Error(`Conflicting Taskset file identity: ${u.id}.`);let r=o.get(g);if(!r||r.length!==u.sizeBytes||G(r)!==u.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${u.id}.`);d.set(u.id,{asset:u,sourcePath:g}),b.add(g)},"add");for(let u of c.tasks){let g={};for(let r of u.requiredOutputs??[])if(r.submissionMode==="structured_json"){if(!r.schemaRef||r.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let i=u.metadata.portableTaskRecord?.requiredOutputs?.find(B=>B.path===r.path)?.schemaRef,y=i?.id===r.schemaRef?i.path:r.schemaRef,E=v(r.schemaRef,y,"application/schema+json","policy");if(i&&i.id===r.schemaRef&&i.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");le(o.get(y),E.contentHash),g[r.schemaRef]=E}Object.keys(g).length&&(u.metadata={...u.metadata,outputSchemaRefs:g});let T=ge(u);for(let r of T.artifactRefs)h(r,u.assets?.find(i=>i.id===r.id)?.artifactRef??r.path);for(let r of T.requiredOutputs??[])r.schemaRef&&h(r.schemaRef);for(let r of T.requiredOutputs??[]){let i=fe(r.metadata);if(!i)continue;let y=d.get(i.schemaRef.id);if(!y||m(y.asset)!==m(i.schemaRef)||!T.artifactRefs.some(B=>B.id===i.schemaRef.id)||!r.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let E=le(o.get(d.get(r.schemaRef.id).sourcePath),r.schemaRef.contentHash);xe(E,i,o.get(y.sourcePath))}}for(let u of c.environment.resources??[])h(v(u.id,u.path,u.mediaType??"application/octet-stream",u.visibility==="policy_visible"?"policy":"host_private"));let I=c.graders.map(u=>{if(u.kind==="custom_verifier"){let g=v(`verifier-${u.id}`,u.module,"application/javascript","host_private"),T=me.safeParse(u.metadata.portableVerifierRef);return T.success&&T.data.contentHash===g.contentHash&&T.data.sizeBytes===g.sizeBytes&&(g=T.data),h(g,u.module),{...u,metadata:{...u.metadata,portableVerifierRef:g}}}if(u.kind==="human"||u.kind==="model_judge"){let g=new TextEncoder().encode(u.rubric),T=`graders/rubric-${G(g)}.md`;o.set(T,g);let r=v(`rubric-${u.id}`,T,"text/markdown","verifier"),i=me.safeParse(u.metadata.portableRubricRef);if(i.success&&i.data.contentHash===r.contentHash&&i.data.sizeBytes===r.sizeBytes){if(i.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");r=i.data}return h(r,T),k.push({path:T,role:"verifier",content:u.rubric}),{...u,metadata:{...u.metadata,portableRubricRef:r}}}return u});n&&![...d.values()].some(u=>u.asset.path===n.module&&u.sourcePath===n.module&&u.asset.visibility!=="policy")&&h(v(`metric-${m(n.module)}`,n.module,"application/javascript","host_private"));let A=ee.parse(c.metadata.portableFileInventory??[]);for(let u of[...o.keys()].sort())if(!b.has(u)){let g=A.find(T=>T.sourcePath===u&&!d.has(T.asset.id));h(g?{...v(g.asset.id,u,g.asset.mediaType,g.asset.visibility),path:g.asset.path}:v(`taskset-file-${m(u)}`,u,"application/octet-stream","host_private"),u)}let{importedPackageHash:M,derivedPortableMetadata:V,...O}=c.metadata,R={...c.environment.metadata};if(R.portableExecutionResources!==void 0){let u=j.object({environment:j.unknown(),verifierSet:j.unknown().optional()}).parse(R.portableExecutionResources);R.portableExecutionResources={environment:u.environment}}let D=K.parse({...c,graders:I,metrics:f,environment:{...c.environment,metadata:R},metadata:{...O,...M===void 0?{}:{sourceImportedPackageHash:M},portableFileInventory:ee.parse([...d.values()].sort((u,g)=>u.asset.id.localeCompare(g.asset.id)))}}),H=mt(D,o,[...d.values()],t);return{taskset:K.parse({...H.taskset,contentHash:Ee(H.taskset)}),generatedFiles:[...k,...H.generatedFiles]}}S(lt,"prepareAuthoredTasksetSource");function ht(s){let e=Ye(s.workspace,s.maximumBytes),t=s.preparation===null?null:N.parse(s.preparation);if(t?e.draft.id!==t.draftId||e.draft.modelScope?.modelId!==t.lineage.owner.modelId||e.draft.profileId!==t.lineage.owner.scopeId||m(e.draft.modelScope?.source??null)!==m(t):e.draft.modelScope?.source!==void 0)throw new Error("Taskset draft differs from its retained source preparation.");let a=Qe({draft:e.draft,now:e.draft.updatedAt,sourcePackageHash:s.sourceWorkspaceHash??e.contentHash}),c=new Map(e.files.map(f=>[f.path,ke(f)]));for(let[f,d]of Ke(e.draft))ft(f)||c.set(f,new TextEncoder().encode(d));let o=lt(a,c,s.adapterId,s.maximumBytes);for(let f of o.generatedFiles)c.set(f.path,new TextEncoder().encode(f.content));let l=Ie({taskset:o.taskset,adapterId:s.adapterId}),n=ee.parse(o.taskset.metadata.portableFileInventory),p=Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:l.tasksetRelease,environment:l.environmentRelease,verifierSet:l.verifierSetRelease,files:n.map(f=>{let d=c.get(f.sourcePath);if(!d)throw new Error(`Captured Taskset file is missing: ${f.sourcePath}.`);return{asset:f.asset,base64:Buffer.from(d).toString("base64")}})},s.maximumBytes);return t?dt({preparation:t,edited:p,source:s.source}):p}S(ht,"compileTasksetDraftWorkspace");function jt(s){if(!s.workspace.draft.modelScope)throw new Error("Taskset draft requires a Model owner.");return ht(s)}S(jt,"compileModelTasksetDraftWorkspace");function Xt(s){let e=C(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=X(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,c=W(e);for(let R of c?.assets??[])a.set(R.id,R);let o=new Set([...e.taskset.tasks.flatMap(R=>R.privilegedContextRef?[R.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(R=>R?[R.id]:[])]);for(let R of o){if(a.has(R))continue;let D=e.files.find(u=>u.asset.id===R);if(!D)throw new Error(`Source Taskset context is missing: ${R}.`);let H=new TextDecoder("utf-8",{fatal:!0}).decode(J(D));a.set(R,ce.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:R,revision:1,asset:D.asset,text:H})))}for(let R of s.assets){let D=e.files.find(H=>H.asset.id===R.id);if(D&&P({asset:D.asset}).contentHash!==P({asset:R.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${R.id}.`);a.set(R.id,R)}let{policy:l,environment:n,environmentRelease:p,tools:f,capabilities:d,verifierSetRelease:b}=e.taskset,k=e.taskset.metadata.tasksetOutputContract,v=k&&typeof k=="object"&&!Array.isArray(k)&&"mode"in k&&k.mode==="structured_json"?"jsonSchema"in k?k.jsonSchema:null:{type:"object"},h=F.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:v,rewardBinding:w(s.rewardBinding),harness:null,execution:{policy:l,environment:n,environmentRelease:p,tools:f,capabilities:d,verifierSetRelease:b}})),I=he({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:h,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...c?{execution:c.execution}:{}}}),A=new Map(e.files.map(R=>[R.asset.id,R]));for(let R of I.assets){let D="";for(let H of new TextEncoder().encode(R.text))D+=String.fromCharCode(H);A.set(R.id,{asset:R.asset,base64:btoa(D)})}let{taskset:M,executionResources:V,...O}=I;return Y({schemaVersion:"openpond.tasksetPackage.v1",taskset:M,...V,modelResources:O,files:[...A.values()]})}S(Xt,"bindOrdinaryModelTasksetReward");function vt(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new x("model_review_batch_required",422);let c=L(t.taskset),o=`model-review-${m([s.scope,e.modelId,e.operationId])}`,l=new Map(e.examples.map(r=>[m(r.evidence),r])),n=new Set(a.evidence.map(r=>m(w(r)))),p=new Map(a.decisions.map(r=>[m(r.evidence),r]));if(l.size!==e.examples.length||e.examples.some(r=>!n.has(m(r.evidence))))throw new x("model_review_evidence_mismatch",409);for(let r of[s.binding,...s.rewards,...s.assets])oe(r);se(s.binding,s.rewards);let f=new Map;for(let r of s.binding.sources){let i=s.rewards.find(B=>$(w(B),r.reward)),{contentHash:y,...E}=i;f.set(i.contentHash,Be({...E,id:`${o}-reward-${i.contentHash}`,revision:1}))}let d=[...f.values()],{contentHash:b,recipeRef:k,...v}=s.binding,h=qe({...v,id:`${o}-binding`,revision:1,sources:s.binding.sources.map(r=>({...r,reward:w(f.get(r.reward.contentHash))}))},d),I=d.flatMap(r=>[...r.assets,..."verifierRef"in r.implementation?[r.implementation.verifierRef]:[],..."rubricRef"in r.implementation?[r.implementation.rubricRef]:[],..."inputContract"in r.implementation?[r.implementation.inputContract]:[]]),A=[...new Map(I.map(r=>{let i=s.assets.find(y=>y.id===r.id);if(!i)throw new x("model_review_reward_asset_missing",422);if(de(i,r),r.visibility==="policy")throw new x("reward_asset_visibility_invalid",422);return[i.id,i]})).values()],{environmentRelease:M,verifierSetRelease:V,...O}=c.definition.execution,{contentHash:R,...D}=c.definition,H=F.parse(P({...D,...e.definition,id:`${o}-definition`,revision:1,rewardBinding:w(h),execution:{...O,policy:{...O.policy,hiddenGraderRefs:ae(h,d).filter(r=>r.privileged).map(r=>r.id)}}})),u=ne.parse(P({schemaVersion:"openpond.learningSource.v1",id:o,revision:1,name:`${H.name} review`,kind:"direct",taskDefinition:w(H),enabled:!0,allowedSplits:[...new Set(a.evidence.map(r=>r.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:w(t.taskset),batch:w(a.batch),rewardBinding:w(s.binding)}})),g=a.evidence.map(r=>{let i=l.get(m(w(r))),y=`review-${r.contentHash}`,E=m({instructions:H.instructions,inputSchema:H.inputSchema,outputSchema:H.outputSchema,requiredOutputs:H.requiredOutputs??[],input:i?.input??r.submission.input})!==m({instructions:c.definition.instructions,inputSchema:c.definition.inputSchema,outputSchema:c.definition.outputSchema,requiredOutputs:c.definition.requiredOutputs??[],input:r.submission.input});return ie.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:ue(u.id,r.submission.exampleId,y),revision:1,source:w(u),submission:{...r.submission,sourceId:u.id,taskDefinition:w(H),attemptId:y,observedOutput:E?null:r.submission.observedOutput,idempotencyKey:`${o}-${r.contentHash}`,...i?.input===void 0?{}:{input:i.input},...i?.expected===void 0?{}:{expected:i.expected},...i?.evaluatorContext===void 0?{}:{evaluatorContext:i.evaluatorContext}},supersedes:w(r),correctionFeedbackId:null,receivedAt:s.now}))}),T=g.flatMap(r=>{let i=l.get(m(r.supersedes)),y=p.get(m(r.supersedes)),E=i?.proposedTarget===void 0?y.approvedTarget:i.proposedTarget;return E===null?[]:[re.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${m([o,r.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:u.id,idempotencyKey:`${o}-${r.id}`,exampleId:r.submission.exampleId,attemptId:r.submission.attemptId,expectedEvidenceHash:r.contentHash,occurredAt:s.now,kind:"target_correction",value:E,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:w(r),createdAt:s.now,review:null})]});return{source:u,definition:H,binding:h,rewards:d,assets:A,evidence:g,proposals:T}}S(vt,"prepareModelBatchReview");var st=S(s=>`model-batch-review-${m([s.modelId,s.operationId])}`,"operation");function es(s){let e=C(s);if(!e.learningResources)throw new x("model_review_batch_required",422);let t=L(e.taskset);return Ue.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}S(es,"inspectModelBatchPackage");async function gt(s,e){let t=De.parse(e),a=await s.operation(st(t));if(!a)return null;if(a.requestHash!==m(t))throw new x("learning_idempotency_conflict",409);return at(s,t,a.resources)}S(gt,"findModelBatchReview");async function ts(s,e){let t=De.parse(e.request),a=await gt(s,t);if(a)return a;let c=C(e.package);if(!c.learningResources)throw new x("model_review_batch_required",422);let o=L(c.taskset),l=t.rewardBindingRef,n=!l||$(l,w(o.binding)),p=n?o.binding:await _e(s,"binding",l),f=n?o.rewards:await Promise.all(p.sources.map(h=>_e(s,"reward",h.reward))),d=new Set(f.flatMap(h=>[...h.assets,..."verifierRef"in h.implementation?[h.implementation.verifierRef]:[],..."rubricRef"in h.implementation?[h.implementation.rubricRef]:[],..."inputContract"in h.implementation?[h.implementation.inputContract]:[]]).map(h=>h.id)),b=n?c.learningResources.assets:await Promise.all([...d].map(h=>ye(s,"asset",h,1))),k=vt({...e,request:t,package:c,binding:p,rewards:f,assets:b}),v=[];for(let h of k.assets){let I=await s.get("asset",h.id,1);if(I&&I.contentHash!==h.contentHash)throw new x("model_review_asset_conflict",409);I||await s.put("asset",h,0)}for(let h of k.rewards)await s.put("reward",h,0);await s.put("binding",k.binding,0),await s.put("definition",k.definition,0),await s.put("source",k.source,0,{parentId:t.modelId}),v.push({kind:"source",id:k.source.id,revision:1});for(let h of k.evidence)await s.put("evidence",h,0,{parentId:k.source.id}),v.push({kind:"evidence",id:h.id,revision:1});for(let h of k.proposals)await s.put("feedback",h,0,{parentId:h.evidence.id,status:h.status}),v.push({kind:"feedback",id:h.id,revision:1});return await s.saveOperation(st(t),{requestHash:m(t),resources:v}),at(s,t,v)}S(ts,"beginModelBatchReview");async function at(s,e,t){let a=await Promise.all(t.map(c=>ye(s,c.kind,c.id,c.revision)));return Ze.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(c=>c.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(c=>c.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(c=>c.schemaVersion==="openpond.taskFeedbackRecord.v1")})}S(at,"readReceipt");function as(s,e){let t=C(s),a=e?new Set(e):null,c=t.taskset.tasks.filter(p=>!a||a.has(p.id));if(!c.length||a&&c.length!==a.size)throw new x("dataset_review_selection_mismatch",409);let o=c.flatMap(p=>[...p.artifactRefs,...(p.requiredOutputs??[]).flatMap(f=>f.schemaRef?[f.schemaRef]:[])]),l=W(t);o.push(...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef,l?.execution.javascript.module].flatMap(p=>p?[p]:[]));let n=new Map;for(let p of o){let f=t.files.find(d=>d.asset.id===p.id);if(!f||m(f.asset)!==m(p))throw new x("dataset_review_asset_mismatch",409);n.set(f.asset.id,f)}for(let p of[t.taskset.metadata.environmentResources,t.environment.metadata.resources])if(p!==void 0){if(!Array.isArray(p))throw new x("dataset_review_environment_resources_invalid",422);for(let f of p){if(!f||typeof f!="object"||!("path"in f))throw new x("dataset_review_environment_resources_invalid",422);let d=t.files.filter(b=>b.asset.path===f.path);if(d.length!==1)throw new x("dataset_review_environment_resource_ambiguous",422);n.set(d[0].asset.id,d[0])}}return[...n.values()]}S(as,"datasetTrainingReviewFiles");function is(s){let e=C(s),t=e.learningResources?L(e.taskset):null,a=t?.definition??e.modelResources?.taskDefinition,c=t?.binding??e.modelResources?.rewardBinding,o=a?.instructions??X(e),l=e.taskset.metadata.tasksetOutputContract,n=l&&typeof l=="object"&&!Array.isArray(l)&&"mode"in l&&l.mode==="structured_json"&&"jsonSchema"in l?U.parse(l.jsonSchema):null,p=a?.outputSchema??n;return tt.parse({schemaVersion:"openpond.datasetTrainingReviewSource.v1",dataset:w(e.taskset),packageHash:e.contentHash,taskCount:e.taskset.tasks.length,definition:{name:a?.name??e.taskset.id,...o?.trim()?{instructions:o}:{},...a?{inputSchema:a.inputSchema}:{},...p?{outputSchema:p}:{},...a?.requiredOutputs?{requiredOutputs:a.requiredOutputs}:{}},rewardBinding:c?w(c):null,hasParentTargets:e.learningResources?.decisions.some(f=>f.approvedTarget!==null)??!1})}S(is,"inspectDatasetTrainingReviewPackage");function kt(s,e,t){return`dataset-review-${m([s,e,t])}`}S(kt,"datasetTrainingReviewIdentity");function ds(s){let e=et.parse(s.request),t=C(s.package);if(t.contentHash!==e.packageHash||!$(w(t.taskset),e.dataset))throw new x("dataset_review_source_mismatch",409);let a=kt(e.teamId,s.actorId,e.operationId),c=t.learningResources?L(t.taskset):null,o=c?.definition??t.modelResources?.taskDefinition,l=c?{binding:c.binding,rewards:c.rewards,assets:t.learningResources.assets}:t.modelResources?{binding:t.modelResources.rewardBinding,rewards:t.modelResources.rewards,assets:t.modelResources.assets}:null,n=s.graph??l;if(!n)throw new x("dataset_review_reward_required",422,"Select an exact saved Reward binding before importing this Dataset for review.");let p=e.rewardBindingRef??l?.binding;if(!p||!$(w(n.binding),p))throw new x("dataset_review_reward_mismatch",409);for(let i of[n.binding,...n.rewards,...n.assets])oe(i);se(n.binding,n.rewards);let f=n.rewards.flatMap(i=>[...i.assets,..."verifierRef"in i.implementation?[i.implementation.verifierRef]:[],..."rubricRef"in i.implementation?[i.implementation.rubricRef]:[],..."inputContract"in i.implementation?[i.implementation.inputContract]:[]]),d=[...new Map(f.map(i=>{let y=n.assets.find(B=>B.id===i.id);if(!y||i.visibility==="policy")throw new x("dataset_review_reward_asset_missing",422);de(y,i);let E=t.files.find(B=>B.asset.id===i.id);if(E&&m(E.asset)!==m(i))throw new x("dataset_review_asset_conflict",409);return[y.id,y]})).values()],b=e.taskIds?new Set(e.taskIds):null,k=t.taskset.tasks.filter(i=>!b||b.has(i.id));if(!k.length||k.length>1e4||b&&k.length!==b.size)throw new x("dataset_review_selection_mismatch",409);if(e.targetSource==="approved_parent"&&!t.learningResources)throw new x("dataset_review_parent_targets_unavailable",422);let v=o?.familyNamespace??s.familyNamespace;if(!v)throw new x("dataset_review_family_required",422,"Resolve the Dataset's stable family before importing its versions.");let h=e.definition.instructions??o?.instructions??X(t);if(!h.trim())throw new x("dataset_review_instructions_required",422,"Provide the task instructions before importing this Dataset.");let I=t.taskset.metadata.tasksetOutputContract,A=I&&typeof I=="object"&&!Array.isArray(I)&&"mode"in I&&I.mode==="structured_json"&&"jsonSchema"in I?U.parse(I.jsonSchema):null,M=e.definition.outputSchema??o?.outputSchema??A;if(!M)throw new x("dataset_review_output_contract_required",422,"Provide the actual output contract for this Dataset; importing does not infer a target schema.");let{environmentRelease:V,verifierSetRelease:O,...R}=t.taskset,D=F.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${a}-definition`,revision:1,name:e.definition.name??o?.name??t.taskset.id,description:o?.description??"",instructions:h,category:o?.category??"custom",familyNamespace:v,inputSchema:e.definition.inputSchema??o?.inputSchema??{type:"object"},outputSchema:M,...e.definition.requiredOutputs??o?.requiredOutputs?{requiredOutputs:e.definition.requiredOutputs??o?.requiredOutputs}:{},...o?.contextRequirements?{contextRequirements:o.contextRequirements}:{},harness:o?.harness??null,rewardBinding:w(n.binding),execution:{policy:{...R.policy,hiddenGraderRefs:ae(n.binding,n.rewards).filter(i=>i.privileged).map(i=>i.id)},environment:R.environment,tools:R.tools,capabilities:R.capabilities}})),H=ne.parse(P({schemaVersion:"openpond.learningSource.v1",id:a,revision:1,name:`${D.name.slice(0,480)} review`,kind:"direct",taskDefinition:w(D),enabled:!0,allowedSplits:[...new Set(k.map(i=>i.split))],mapping:null,adapterVersion:null,datasetOrigin:{receiptId:a,packageHash:t.contentHash,taskset:w(t.taskset)}})),u=new Map(t.learningResources?.evidence.map(i=>[i.id,i])??[]),g=new Map(t.learningResources?.decisions.map(i=>[m(i.evidence),i])??[]),T=k.map(i=>{let y=u.get(i.id),E=y?.submission.evaluatorContext??wt(t,i.privilegedContextRef),B={...i.policyVisibleContext,...e.definition.instructions===void 0?{}:{instructions:D.instructions}},z=e.definition.instructions!==void 0&&e.definition.instructions!==o?.instructions;return ie.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:ue(H.id,i.id,`dataset-${t.contentHash}`),revision:1,source:w(H),supersedes:y?w(y):null,correctionFeedbackId:null,receivedAt:s.now,submission:{schemaVersion:"openpond.taskExample.v1",sourceId:H.id,idempotencyKey:`${a}-${m(i.id)}`,taskDefinition:w(D),exampleId:i.id,attemptId:`dataset-${t.contentHash}`,occurredAt:y?.submission.occurredAt??s.now,familyKey:i.clusterKey,split:i.split,input:i.input,policyVisibleContext:B,observedOutput:!z&&y?y.submission.observedOutput:null,expected:i.expectedOutput,evaluatorContext:E,assets:i.artifactRefs,...i.requiredOutputs?{requiredOutputs:i.requiredOutputs}:{},provenance:{sourceRecordRef:JSON.stringify({dataset:e.dataset,taskId:i.id}),mappingHash:m({schemaVersion:"openpond.datasetTrainingReviewMapping.v1",dataset:e.dataset,packageHash:t.contentHash})}}}))}),r=T.flatMap(i=>{let y=u.get(i.submission.exampleId),E=e.targetSource==="expected_output"?i.submission.expected:e.targetSource==="approved_parent"&&y?g.get(m(w(y)))?.approvedTarget??null:null;if(E===null)return[];if(!Me(D.outputSchema,E).valid)throw new x("dataset_review_target_schema_mismatch",422,"A proposed Dataset target differs from the selected output contract. Import without proposals or provide the matching contract.");return[re.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${m([H.id,i.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:H.id,idempotencyKey:`${H.id}-${m(i.id)}`,exampleId:i.submission.exampleId,attemptId:i.submission.attemptId,expectedEvidenceHash:i.contentHash,occurredAt:s.now,kind:"target_correction",value:E,note:"Dataset target proposal. Grade and review this exact evidence before admission."},status:"pending_review",evidence:w(i),createdAt:s.now,review:null})]});return{id:a,request:e,source:H,definition:D,binding:n.binding,rewards:n.rewards,assets:d,evidence:T,proposals:r}}S(ds,"prepareDatasetTrainingReview");function wt(s,e){if(!e)return null;let t=s.files.find(a=>a.asset.id===e);if(!t||t.asset.visibility!=="host_private")throw new x("dataset_review_private_context_missing",422);try{return U.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(J(t))))}catch{throw new x("dataset_review_private_context_unsupported",422,"This Dataset's private context is not an object envelope supported by the review engine.")}}S(wt,"readPrivateContext");var nt=j.object({draft:Z,filePaths:j.array(j.object({assetId:j.string().min(1),paths:j.array(pe).min(1).max(1e4)}).strict()).max(1e4)}).strict();function ps(s){let e=C(s.source),t=Z.parse(s.sourceDraft),a=N.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!$(w(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let c=ee.parse(t.metadata.portableFileInventory??[]),o=S(d=>Q(d)?`source-artifacts/${e.contentHash}/${m(d)}/${d.split("/").at(-1)}`:d,"sourcePath");if([...t.tasks.flatMap(d=>(d.assets??[]).map(b=>b.artifactRef)),...(t.environment.resources??[]).map(d=>d.path),...e.taskset.tasks.flatMap(d=>(d.requiredOutputs??[]).flatMap(b=>b.schemaRef?[b.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(d=>d.kind==="custom_verifier"?[d.module]:[])].some(Q))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let n=e.files.map(d=>{let b=new Set([d.asset.path]);for(let k of c)k.asset.id===d.asset.id&&b.add(k.sourcePath);for(let k of t.tasks)for(let v of k.assets??[])v.id===d.asset.id&&b.add(v.artifactRef);for(let k of e.taskset.graders)if(k.kind==="custom_verifier"&&k.verifierRef.id===d.asset.id){let v=t.graders.find(h=>h.id===k.id);v?.kind==="custom_verifier"&&b.add(v.module)}return{assetId:d.asset.id,paths:[...b].map(o)}}),p={...t.metadata};if(e.modelResources)for(let d of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete p[d];let f=Z.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(d=>({...d,metadata:{...d.metadata,portableGrader:e.taskset.graders.find(b=>b.id===d.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...p,modelTasksetAuthoring:a.lineage,portableFileInventory:c.map(d=>({...d,sourcePath:o(d.sourcePath),asset:{...d.asset,id:Q(d.sourcePath)?`source-artifact-${m({packageHash:e.contentHash,assetId:d.asset.id})}`:d.asset.id,path:o(d.asset.path)}}))}});return nt.parse({draft:f,filePaths:n})}S(ps,"prepareTasksetDraftSource");function fs(s){let e=nt.parse(s.initialized),t=C(s.source);if(e.draft.modelScope?.source?.sourcePackageHash!==t.contentHash)throw new Error("Taskset draft lost its source preparation.");let a=new Map;for(let o of e.filePaths){let l=t.files.find(n=>n.asset.id===o.assetId);if(!l)throw new Error("Taskset draft source asset is missing.");for(let n of o.paths){let p=a.get(n);if(p&&p.contentHash!==l.asset.contentHash)throw new Error("Taskset draft source paths conflict.");a.set(n,{path:n,contentHash:l.asset.contentHash,sizeBytes:l.asset.sizeBytes,base64:l.base64})}}for(let o of We(e.draft))if(!a.has(o.relativePath)){let l=new TextEncoder().encode(o.source);a.set(o.relativePath,{path:o.relativePath,contentHash:G(l),sizeBytes:l.byteLength,base64:Buffer.from(l).toString("base64")})}let c=e.draft;if(c.metrics.customAggregator){let o=a.get(c.metrics.customAggregator.module);if(!o)throw new Error("Declared Taskset metric module is missing.");ke(o),c=Z.parse({...c,metrics:{...c.metrics,customAggregator:{...c.metrics.customAggregator,contentHash:o.contentHash}}})}return Xe({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:c,files:[...a.values()]})}S(fs,"materializeTasksetDraftWorkspace");export{Mt as a,dt as b,ee as c,ft as d,lt as e,ht as f,jt as g,Xt as h,es as i,gt as j,ts as k,as as l,is as m,kt as n,ds as o,nt as p,ps as q,fs as r};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as F,b as H,d as _}from"./chunk-DRMOHADV.js";import{k as j}from"./chunk-BGMAWETL.js";import{a as R}from"./chunk-2ACX7IW5.js";import{b as P,s as C,t as N,z as x}from"./chunk-YU3C6U5V.js";import{d as U}from"./chunk-U7D6Q744.js";import{B as D}from"./chunk-HG2YFMVU.js";import{b as I,c as T}from"./chunk-MZKCW6CB.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
2
+ import{a as F,b as H,d as _}from"./chunk-DRMOHADV.js";import{k as j}from"./chunk-DNRC6TPJ.js";import{a as R}from"./chunk-2ACX7IW5.js";import{b as P,s as C,t as N,z as x}from"./chunk-YU3C6U5V.js";import{d as U}from"./chunk-U7D6Q744.js";import{B as D}from"./chunk-WXG3G2O6.js";import{b as I,c as T}from"./chunk-MZKCW6CB.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
3
3
  ${o.stdout}`;if(ht(r))return;throw new Error(`Fetch Cloud source parent failed: ${E(o)}`)}await w(t.cwd,["reset","--mixed",e],"Attach Cloud source snapshot to remote branch")}n(ft,"applyRemoteBranchParent");async function G(t){let e=await V(t.cwd,["push",t.repoUrl,`HEAD:${t.branch}`],t.apiKey);if(e.code!==0)throw new Error(`Push Cloud source to OpenPond Git failed: ${E(e)}`)}n(G,"pushGitHead");async function V(t,e,o){let r=Buffer.from(`openpond:${o}`,"utf8").toString("base64");return P("git",["-c",`http.extraHeader=Authorization: Basic ${r}`,...e],t)}n(V,"runGitWithAuth");function yt(t){let e=t instanceof Error?t.message:String(t);return e.includes("non-fast-forward")||e.includes("fetch first")||e.includes("remote contains work that you do not")}n(yt,"isNonFastForwardPushError");function ht(t){return t.includes("couldn't find remote ref")||t.includes("could not find remote ref")||t.includes("Remote branch")&&t.includes("not found")}n(ht,"isMissingRemoteRefOutput");function E(t){return(t.stderr||t.stdout||"Git command failed").trim().replace(/\s+/g," ").slice(0,500)}n(E,"formatGitError");async function w(t,e,o){let r=await P("git",e,t);if(r.code!==0)throw new Error(`${o} failed: ${E(r)}`)}n(w,"runGitOrThrow");var wt=new Set(["github_repo","internal_repo","template","manual"]);function Jt(t,e){return e&&t.status!=="active"?{...t,status:"active"}:t}n(Jt,"codexHistorySessionWithLiveStatus");async function Wt(){try{let t=p(await K({type:"list"})),e=L(t.organizations),o=(e.length>0?e:L(t.teams)).map(bt).filter(a=>!!a?.teamId),r=await Promise.all(o.map(async a=>{try{let l=p(await j({type:"project_list",payload:{teamId:a.teamId}}));return L(l.projects).map(c=>X(c,a)).filter(c=>!!c)}catch{return[]}})),i=new Map;for(let a of r.flat())i.set(`${a.teamId}:${a.id}`,a);return Array.from(i.values()).sort((a,l)=>{let c=Date.parse(a.updatedAt??"")||0,d=Date.parse(l.updatedAt??"")||0;return c!==d?d-c:a.name.localeCompare(l.name)})}catch{return[]}}n(Wt,"fetchCloudProjects");function bt(t){let e=s(t.teamId)??s(t.id);return e?{teamId:e,slug:s(t.slug),displayName:s(t.displayName)??s(t.name)}:null}n(bt,"normalizeOpenPondOrganization");function X(t,e){let o=s(t.id),r=s(t.teamId)??e.teamId;if(!o||!r||s(t.status)==="archived"||s(t.archivedAt))return null;let a=s(t.name)??s(t.slug)??o,l=$(t.sourceType);return{id:o,teamId:r,name:a,slug:s(t.slug),sourceType:l,sourceLabel:Y(t,l),defaultBranch:s(t.defaultBranch)??s(t.gitBranch),internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:e.displayName,organizationSlug:e.slug,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(X,"normalizeCloudProject");function $(t){return typeof t=="string"&&wt.has(t)?t:"manual"}n($,"normalizeCloudProjectSourceType");function Y(t,e){if(e==="github_repo"){let o=s(t.gitOwner),r=s(t.gitRepo);if(o&&r)return`${o}/${r}`}return e==="internal_repo"?s(t.internalRepoPath)??"Internal repo":e==="template"?s(t.templateRepoUrl)??s(t.templateSourceProjectId)??"Template":s(t.normalizedSourceIdentity)}n(Y,"cloudProjectSourceLabel");function qt(t){return typeof t=="boolean"?t:null}n(qt,"booleanValue");function p(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}n(p,"asRecord");function Vt(t){let e=p(t);return Object.keys(e).length>0?e:null}n(Vt,"nonEmptyRecord");function L(t){return Array.isArray(t)?t.map(p).filter(e=>Object.keys(e).length>0):[]}n(L,"asRecordArray");function s(t){return typeof t=="string"&&t.trim()?t.trim():null}n(s,"stringValue");function Xt(t){if(!t)return null;if(t==="request_only"||t==="coding_core")return t;throw new Error("hostedSourceDispatch must be one of request_only, coding_core.")}n(Xt,"parseHostedSourceDispatch");function jt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>e.trim()):[]}n(jt,"stringArrayValue");function Yt(t){let e=t.code===0||t.code===null?"completed":"failed",o=t.stdout.trim()||t.stderr.trim()||`Ran profile action ${t.action}.`,r=[],i=[];try{let a=JSON.parse(t.stdout),l=p(a),c=p(l.result),d=s(c.text)??s(c.summary)??s(c.message);d&&(o=d),r=jt(c.artifactRefs);let u=s(l.traceArtifactRef);i=u?[u]:[]}catch{}return{artifactRefs:r,output:o,responseSummary:{status:e==="completed"?"available":"failed",text:o},status:e,traceArtifactRefs:i}}n(Yt,"profileActionRunSummary");function Zt(t){let e=At(t.name),o=t.id.replace(/^local_/,"").replace(/[^a-z0-9]/gi,"").slice(0,16);return`desktop-${e}-${o||"project"}`}n(Zt,"internalRepoPathForLocalProject");function At(t){return t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"project"}n(At,"slugifyInternalRepoSegment");async function Qt(t){try{let e=await W(t.localProject,{repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch,commitMessage:t.commitMessage,fallbackReadme:t.fallbackReadme}),o=p(await j({type:"project_sync",projectId:t.targetProjectId,payload:{teamId:t.teamId}}).catch(()=>({})));return{rootPath:e.rootPath,branch:e.branch,headCommit:e.headCommit,fileCount:e.fileCount,byteCount:e.byteCount,skippedCount:e.skipped.length,initializedEmptyProject:e.initializedEmptyProject,transport:e.transport,syncPayload:o}}catch{let e=await J(t.localProject),o=e.entries.length===0,r=o?[{path:"README.md",type:"file",contentsBase64:Buffer.from(t.fallbackReadme,"utf8").toString("base64")}]:e.entries,i=o?Buffer.byteLength(t.fallbackReadme,"utf8"):e.totalBytes,a=p(await j({type:"project_source_upload",projectId:t.targetProjectId,payload:{teamId:t.teamId,entries:r,branch:t.branch,commitMessage:t.commitMessage,metadata:{source:"openpond-app-local-project-cloud-setup",transport:"api_source_upload"}}}));return{rootPath:e.rootPath,branch:t.branch,headCommit:e.headCommit,fileCount:r.length,byteCount:i,skippedCount:e.skipped.length,initializedEmptyProject:o,transport:"api_source_upload",syncPayload:a}}}n(Qt,"uploadLocalProjectCloudSource");async function te(t){try{let e=p(await j({type:"project_get",projectId:t.projectId,payload:{teamId:t.teamId}})),o=p(e.project);return Object.keys(o).length>0?o:t.fallback}catch{return t.fallback}}n(te,"sandboxProjectRecordOrFallback");async function ee(t){let e=p(await j({type:"project_upsert",payload:{teamId:t.teamId,name:t.projectName,sourceType:"internal_repo",normalizedSourceIdentity:t.internalRepoPath,defaultBranch:t.branch,sourceConfig:{sourceType:"internal_repo",sourceValue:t.internalRepoPath},metadata:{source:"openpond-app-local-project-cloud-setup",localProjectId:t.localProjectId}}})),o=p(e.project);if(Object.keys(o).length===0)throw new Error("OpenPond Cloud Project response did not include a project.");return o}n(ee,"upsertInternalSandboxProject");function oe(t,e,o,r){let i=X({...t,teamId:e},{teamId:e,slug:null,displayName:null});if(i)return i;let a=s(t.id);if(!a)throw new Error("OpenPond Cloud Project response did not include a project id.");return{id:a,teamId:e,name:s(t.name)??o,slug:s(t.slug),sourceType:$(t.sourceType),sourceLabel:Y(t,$(t.sourceType)),defaultBranch:s(t.defaultBranch)??s(t.gitBranch)??r,internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:null,organizationSlug:null,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(oe,"cloudProjectFromSandboxRecord");function re(t){if(!t)return{};let e=St(t.searchParams.get("limit"));return{...e?{maxEvents:e}:{},tail:t.searchParams.get("tail")==="1"}}n(re,"codexHistoryThreadReadOptions");function ne(t){return`${t}_turn_attachment_${Pt()}`}n(ne,"nextCodexHistoryTurnId");function St(t){if(!t)return;let e=Number.parseInt(t,10);if(!(!Number.isFinite(e)||e<=0))return Math.min(5e4,e)}n(St,"positiveIntegerParam");var It={"tools.web_search":!0,"tools.view_image":!0,"features.web_search_request":!0};function ae(t){return{...It,approvals_reviewer:t==="auto-review"?"auto_review":"user"}}n(ae,"codexHistorySessionConfig");import Z from"node:path";import{promises as Rt}from"node:fs";async function ue(t){let e=await Ct(t.workspacePath);return(await Rt.stat(e).catch(()=>null))?.isDirectory()?(await _({projectRoot:t.workspacePath,build:"always"}).catalog()).actions.map(a=>D.parse({...a,sourcePath:t.workspacePath,implementation:{...a.implementation,projectId:t.id,projectRoot:Z.resolve(t.workspacePath)}})):[]}n(ue,"localProjectActionCatalog");async function Q(t){return _({projectRoot:t.projectRoot,build:"always"}).run({actionId:t.actionId,input:t.value,runId:t.runId,idempotencyKey:t.idempotencyKey,signal:t.signal})}n(Q,"runLocalProjectAction");async function Ct(t){try{let e=await H(t);return Z.resolve(t,e.sourceDirectory??"openpond/actions")}catch(e){throw new Error(`Cannot load ${F}: ${e instanceof Error?e.message:String(e)}`)}}n(Ct,"projectActionSourceDirectory");var kt="https://api.openpond.ai";async function B(t={}){let e=await(t.loadAccountContext??R)(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required.");return{apiBaseUrl:_t(e),token:o}}n(B,"resolveHostedApiAccess");async function ye(t={}){return{...await B(t),teamId:Ut(t.teamId)}}n(ye,"resolveManagedAdapterUserAccess");function he(t){let e=new Headers;return t.startsWith("opk_")?(e.set("Authorization",`ApiKey ${t}`),e.set("openpond-api-key",t)):e.set("Authorization",`Bearer ${t}`),e}n(he,"hostedApiAuthHeaders");function _t(t){return k(t.apiBaseUrl)??k(t.account?.apiBaseUrl)??k(t.config.apiBaseUrl)??tt(t.account?.baseUrl)??tt(t.config.baseUrl)??kt}n(_t,"resolveApiBaseUrl");function Ut(t){let e=t?.trim();if(!e||!/^[A-Za-z0-9_-]{3,191}$/.test(e))throw new Error("Select an OpenPond workspace before using OpenPond Managed RL.");return e}n(Ut,"managedAdapterTeamId");function tt(t){let e=k(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(tt,"normalizeOpenPondWebBaseAsApi");function k(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(k,"normalizeOptionalUrl");async function et(t,e={}){let o=await(e.resolveAccess??B)(),r=await(e.fetch??I)(o.apiBaseUrl,o.token,`/v1/project-actions/${encodeURIComponent(t.projectId)}/actions/${encodeURIComponent(t.actionId)}?teamId=${encodeURIComponent(t.teamId)}`,{method:"POST",body:JSON.stringify({input:t.value,releaseId:t.releaseId,idempotencyKey:t.idempotencyKey,callerType:"work",callerId:t.callerId}),signal:t.signal,timeoutMs:900*1e3}),i=await T(r,"Run hosted Project Action");if(i.invocation.status==="failed")throw new Error(i.invocation.failureMessage||i.invocation.failureCode||"Hosted Project Action failed.");return i.invocation}n(et,"runHostedProjectAction");function _e(t){return n(async function(o){let r=p(o),i=s(r.action)??s(r.actionName);if(!i)throw new Error("Project Action name is required.");let a=p(r.metadata);if(s(a.execution)==="hosted"){let b=await et({projectId:A(a,"projectId"),teamId:A(a,"teamId"),releaseId:A(a,"releaseId"),actionId:i,value:r.input??{},idempotencyKey:s(a.toolCallId)?`${A(a,"turnId")}:${A(a,"toolCallId")}`:void 0,callerId:s(a.turnId)??void 0}),v=s(a.sessionId);return v&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:v,turnId:A(a,"turnId"),source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(b.resultJson),data:{openPondHostedProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},releaseId:b.releaseId,invocationId:b.id,traces:b.traceJson,outputs:b.outputJson}})),b}let l=s(a.projectId);if(!l)throw new Error("Project Action Project id is required.");let c=await t.resolveProjectRoot(l);if(!c)throw new Error("Project Action Project is not registered locally.");let d=s(a.sessionId),u=s(a.turnId)??`openpond_project_action_${Date.now()}`,f=s(a.toolCallId),h=await Q({projectRoot:c,actionId:i,value:r.input??{},runId:f??void 0,idempotencyKey:f?`${u}:${f}`:null});return d&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:d,turnId:u,source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(h.output),data:{openPondProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},runId:h.runId,traces:h.traces,outputs:h.outputs,outputDirectory:h.outputDirectory,durationMs:h.durationMs}})),h},"projectActionRunPayload")}n(_e,"createProjectActionRunPayload");function A(t,e){let o=s(t[e]);if(!o)throw new Error(`Hosted Project Action ${e} is required.`);return o}n(A,"requiredMetadata");export{K as a,Ft as b,Jt as c,Wt as d,qt as e,p as f,Vt as g,s as h,Xt as i,Yt as j,Zt as k,Qt as l,te as m,ee as n,oe as o,re as p,ne as q,ae as r,ue as s,B as t,ye as u,he as v,_e as w};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Ga as E,_ as m,aa as T,ja as p}from"./chunk-BU6MW65V.js";import{da as y}from"./chunk-4PUOWSDE.js";import{n as w}from"./chunk-RCT3O3HQ.js";import{a as k}from"./chunk-FTQLQJQV.js";import{constants as u}from"node:fs";import{link as O,lstat as F,mkdir as h,mkdtemp as P,open as N,readFile as x,readdir as B,rename as A,rm as v,writeFile as I}from"node:fs/promises";import i from"node:path";async function M(r,a){let s=a.metadata.importedPackageHash;if(s===void 0)return;if(typeof s!="string"||!r)throw new Error("Imported batch requires its package storage directory.");let t=await S(r,s);if(!t.learningResources||t.taskset.id!==a.id||t.taskset.revision!==a.revision||w(y(t.taskset))!==w(a.metadata.learning))throw new Error("Imported batch differs from its pinned package.");return t}k(M,"readImportedLearningTasksetPackage");async function J(r,a,s=m){let t=p(a,s),o=i.join(r,"training","portable-packages");await h(o,{recursive:!0});let d=i.join(o,`${t.contentHash}.json`),c=await P(i.join(o,".package-"));try{let n=i.join(c,"package.json");await I(n,JSON.stringify(t),{flag:"wx",mode:384});try{await O(n,d)}catch(e){if(e.code!=="EEXIST")throw e;await S(r,t.contentHash,s)}}finally{await v(c,{recursive:!0,force:!0})}}k(J,"cacheTasksetPackage");async function S(r,a,s=m){if(!/^[a-f0-9]{64}$/.test(a))throw new Error("Invalid Taskset package cache identity.");let t=i.join(r,"training","portable-packages",`${a}.json`),o=await N(t,u.O_RDONLY|u.O_NOFOLLOW|u.O_NONBLOCK);try{let d=await o.stat();if(!d.isFile()||d.size>s)throw new Error("Taskset package cache must be a bounded regular file.");let c=Buffer.alloc(d.size),n=0;for(;n<c.length;){let f=await o.read(c,n,c.length-n,n);if(!f.bytesRead)throw new Error("Taskset package cache changed during read.");n+=f.bytesRead}if((await o.read(Buffer.alloc(1),0,1,n)).bytesRead)throw new Error("Taskset package cache changed during read.");let e=p(JSON.parse(c.toString("utf8")),s);if(e.contentHash!==a)throw new Error("Cached Taskset package differs from its saved receipt.");return e}finally{await o.close()}}k(S,"readCachedTasksetPackage");async function $(r){let a=p(r.package),s=E(r.taskset.profileId,a.contentHash);if(r.taskset.environment.metadata.runtimeSourceTasksetId!==s)throw new Error("Imported Taskset directory differs from its package identity.");let t=new Map,o=k((e,f)=>{if(i.isAbsolute(e)||e.includes("\\")||e.split("/").some(l=>!l||l==="."||l===".."))throw new Error("Taskset package file requires a safe relative path.");let g=t.get(e);if(g&&!Buffer.from(g).equals(Buffer.from(f)))throw new Error(`Taskset package files collide at ${e}.`);t.set(e,f)},"add");for(let e of a.files)o(e.asset.path,T(e));for(let e of r.generatedFiles)o(e.path,Buffer.from(e.content,"utf8"));o("taskset.json",Buffer.from(JSON.stringify(r.taskset),"utf8"));let d=i.join(r.home,"training","tasksets");await h(d,{recursive:!0});let c=await P(i.join(d,".package-import-")),n=i.join(d,s);try{for(let[e,f]of t)await h(i.dirname(i.join(c,e)),{recursive:!0}),await I(i.join(c,e),f,{flag:"wx",mode:384});try{await A(c,n)}catch(e){if(!["EEXIST","ENOTEMPTY"].includes(e.code??""))throw e;let f=await F(n);if(!f.isDirectory()||f.isSymbolicLink())throw new Error("Imported Taskset destination must be a regular directory.");let g=await j(n);if(JSON.stringify(g.sort())!==JSON.stringify([...t.keys()].sort()))throw new Error("Imported Taskset file inventory changed.");for(let[l,b]of t)if(!(await x(i.join(n,l))).equals(Buffer.from(b)))throw new Error("Imported Taskset files differ from the pinned package.")}await J(r.home,a)}finally{await v(c,{recursive:!0,force:!0})}}k($,"materializeImportedTasksetPackage");async function j(r,a=""){let s=[];for(let t of await B(i.join(r,a),{withFileTypes:!0})){let o=i.posix.join(a,t.name);if(t.isSymbolicLink())throw new Error("Imported Taskset directories cannot contain symbolic links.");if(t.isDirectory())s.push(...await j(r,o));else if(t.isFile())s.push(o);else throw new Error("Imported Taskset packages require regular files.")}return s}k(j,"regularFiles");export{M as a,J as b,S as c,$ as d};
2
+ import{Ga as E,_ as m,aa as T,ja as p}from"./chunk-BYVE4TMU.js";import{da as y}from"./chunk-ZEOYNUHL.js";import{n as w}from"./chunk-RCT3O3HQ.js";import{a as k}from"./chunk-FTQLQJQV.js";import{constants as u}from"node:fs";import{link as O,lstat as F,mkdir as h,mkdtemp as P,open as N,readFile as x,readdir as B,rename as A,rm as v,writeFile as I}from"node:fs/promises";import i from"node:path";async function M(r,a){let s=a.metadata.importedPackageHash;if(s===void 0)return;if(typeof s!="string"||!r)throw new Error("Imported batch requires its package storage directory.");let t=await S(r,s);if(!t.learningResources||t.taskset.id!==a.id||t.taskset.revision!==a.revision||w(y(t.taskset))!==w(a.metadata.learning))throw new Error("Imported batch differs from its pinned package.");return t}k(M,"readImportedLearningTasksetPackage");async function J(r,a,s=m){let t=p(a,s),o=i.join(r,"training","portable-packages");await h(o,{recursive:!0});let d=i.join(o,`${t.contentHash}.json`),c=await P(i.join(o,".package-"));try{let n=i.join(c,"package.json");await I(n,JSON.stringify(t),{flag:"wx",mode:384});try{await O(n,d)}catch(e){if(e.code!=="EEXIST")throw e;await S(r,t.contentHash,s)}}finally{await v(c,{recursive:!0,force:!0})}}k(J,"cacheTasksetPackage");async function S(r,a,s=m){if(!/^[a-f0-9]{64}$/.test(a))throw new Error("Invalid Taskset package cache identity.");let t=i.join(r,"training","portable-packages",`${a}.json`),o=await N(t,u.O_RDONLY|u.O_NOFOLLOW|u.O_NONBLOCK);try{let d=await o.stat();if(!d.isFile()||d.size>s)throw new Error("Taskset package cache must be a bounded regular file.");let c=Buffer.alloc(d.size),n=0;for(;n<c.length;){let f=await o.read(c,n,c.length-n,n);if(!f.bytesRead)throw new Error("Taskset package cache changed during read.");n+=f.bytesRead}if((await o.read(Buffer.alloc(1),0,1,n)).bytesRead)throw new Error("Taskset package cache changed during read.");let e=p(JSON.parse(c.toString("utf8")),s);if(e.contentHash!==a)throw new Error("Cached Taskset package differs from its saved receipt.");return e}finally{await o.close()}}k(S,"readCachedTasksetPackage");async function $(r){let a=p(r.package),s=E(r.taskset.profileId,a.contentHash);if(r.taskset.environment.metadata.runtimeSourceTasksetId!==s)throw new Error("Imported Taskset directory differs from its package identity.");let t=new Map,o=k((e,f)=>{if(i.isAbsolute(e)||e.includes("\\")||e.split("/").some(l=>!l||l==="."||l===".."))throw new Error("Taskset package file requires a safe relative path.");let g=t.get(e);if(g&&!Buffer.from(g).equals(Buffer.from(f)))throw new Error(`Taskset package files collide at ${e}.`);t.set(e,f)},"add");for(let e of a.files)o(e.asset.path,T(e));for(let e of r.generatedFiles)o(e.path,Buffer.from(e.content,"utf8"));o("taskset.json",Buffer.from(JSON.stringify(r.taskset),"utf8"));let d=i.join(r.home,"training","tasksets");await h(d,{recursive:!0});let c=await P(i.join(d,".package-import-")),n=i.join(d,s);try{for(let[e,f]of t)await h(i.dirname(i.join(c,e)),{recursive:!0}),await I(i.join(c,e),f,{flag:"wx",mode:384});try{await A(c,n)}catch(e){if(!["EEXIST","ENOTEMPTY"].includes(e.code??""))throw e;let f=await F(n);if(!f.isDirectory()||f.isSymbolicLink())throw new Error("Imported Taskset destination must be a regular directory.");let g=await j(n);if(JSON.stringify(g.sort())!==JSON.stringify([...t.keys()].sort()))throw new Error("Imported Taskset file inventory changed.");for(let[l,b]of t)if(!(await x(i.join(n,l))).equals(Buffer.from(b)))throw new Error("Imported Taskset files differ from the pinned package.")}await J(r.home,a)}finally{await v(c,{recursive:!0,force:!0})}}k($,"materializeImportedTasksetPackage");async function j(r,a=""){let s=[];for(let t of await B(i.join(r,a),{withFileTypes:!0})){let o=i.posix.join(a,t.name);if(t.isSymbolicLink())throw new Error("Imported Taskset directories cannot contain symbolic links.");if(t.isDirectory())s.push(...await j(r,o));else if(t.isFile())s.push(o);else throw new Error("Imported Taskset packages require regular files.")}return s}k(j,"regularFiles");export{M as a,J as b,S as c,$ as d};