openpond 0.2.67 → 0.2.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/dist/app-server.d.ts +668 -1
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{account-context-TIJOM22A.js → account-context-MWB6HN6I.js} +1 -1
  4. package/dist/chunks/{acp-NASAJV5E.js → acp-2OIXATRY.js} +1 -1
  5. package/dist/chunks/{acp-agent-C3CRF6DT.js → acp-agent-PAGX2B47.js} +1 -1
  6. package/dist/chunks/actions-command-2VE6YI4W.js +2 -0
  7. package/dist/chunks/{app-layer-XIEZ6ALX.js → app-layer-YNEUEOEP.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-IB6M35NS.js → app-server-connected-apps-TZOAUOYR.js} +1 -1
  9. package/dist/chunks/app-server-evaluations-RRLYWLPK.js +2 -0
  10. package/dist/chunks/app-server-harness-services-XXM336NU.js +2 -0
  11. package/dist/chunks/app-server-runtime-GBX65JJ7.js +2 -0
  12. package/dist/chunks/apps-RSFEJOQN.js +2 -0
  13. package/dist/chunks/chunk-2PXKSAG6.js +2 -0
  14. package/dist/chunks/{chunk-XEU4J4GJ.js → chunk-2TGHZXJE.js} +2 -2
  15. package/dist/chunks/{chunk-AXO6OHJB.js → chunk-3A2Y7UK3.js} +1 -1
  16. package/dist/chunks/chunk-3Z4VM2LF.js +4 -0
  17. package/dist/chunks/{chunk-V3T2OJBZ.js → chunk-4BUM6JEC.js} +2 -2
  18. package/dist/chunks/chunk-4G3GTEVS.js +23 -0
  19. package/dist/chunks/{chunk-43QYVOYA.js → chunk-4KNPCJR4.js} +1 -1
  20. package/dist/chunks/chunk-4KTGYHCE.js +2 -0
  21. package/dist/chunks/chunk-4PUOWSDE.js +13 -0
  22. package/dist/chunks/chunk-55YD4UTW.js +2 -0
  23. package/dist/chunks/chunk-5G7BQAUA.js +2 -0
  24. package/dist/chunks/chunk-65FJWWXG.js +2 -0
  25. package/dist/chunks/{chunk-4EZI4KCT.js → chunk-65WRWLUD.js} +1 -1
  26. package/dist/chunks/chunk-6D3FI2XT.js +2 -0
  27. package/dist/chunks/chunk-73TW6BKK.js +6 -0
  28. package/dist/chunks/{chunk-5TPYBXWM.js → chunk-7NCM6GBN.js} +1 -1
  29. package/dist/chunks/chunk-7OFD6TFD.js +2 -0
  30. package/dist/chunks/chunk-7OKZCJHS.js +3 -0
  31. package/dist/chunks/{chunk-ADOCQA4D.js → chunk-7PKDJHT6.js} +1 -1
  32. package/dist/chunks/chunk-7RJOCGQ6.js +2 -0
  33. package/dist/chunks/{chunk-YR5URT73.js → chunk-7RSQOC5M.js} +3 -3
  34. package/dist/chunks/{chunk-FVK4W27G.js → chunk-AFH462DO.js} +1 -1
  35. package/dist/chunks/{chunk-GUG2SWRZ.js → chunk-AFKFN25T.js} +1 -1
  36. package/dist/chunks/chunk-AFYYIJ6K.js +2 -0
  37. package/dist/chunks/{chunk-U3MVH2YT.js → chunk-APKXXAUF.js} +1 -1
  38. package/dist/chunks/chunk-AQUZCWM3.js +2 -0
  39. package/dist/chunks/chunk-AUO5DCEU.js +2 -0
  40. package/dist/chunks/chunk-AYOMVI7J.js +2 -0
  41. package/dist/chunks/{chunk-RWRKUO5D.js → chunk-B66QCXH2.js} +1 -1
  42. package/dist/chunks/{chunk-SODAOLAP.js → chunk-BHKXPWFB.js} +1 -1
  43. package/dist/chunks/chunk-BU6MW65V.js +10 -0
  44. package/dist/chunks/{chunk-P6NQYXN6.js → chunk-CCZ276IA.js} +1 -1
  45. package/dist/chunks/{chunk-YONDU5TN.js → chunk-CIZI6Z7D.js} +1 -1
  46. package/dist/chunks/{chunk-ATFV2NA4.js → chunk-CO23RRN7.js} +1 -1
  47. package/dist/chunks/{chunk-QAFXQHHG.js → chunk-D6L6UNUQ.js} +2 -2
  48. package/dist/chunks/chunk-DDOIPTOM.js +2 -0
  49. package/dist/chunks/{chunk-CSU7RDA5.js → chunk-DKOVZ6R2.js} +3 -3
  50. package/dist/chunks/chunk-DRLP7GIU.js +2 -0
  51. package/dist/chunks/{chunk-DAEUVT2I.js → chunk-DRTHKWHK.js} +1 -1
  52. package/dist/chunks/{chunk-XDFXKRTI.js → chunk-DWF3FCY4.js} +1 -1
  53. package/dist/chunks/{chunk-W3ZILZUL.js → chunk-DWM5G7BU.js} +1 -1
  54. package/dist/chunks/chunk-DXJC3QW7.js +2 -0
  55. package/dist/chunks/{chunk-IDILAYCW.js → chunk-E2JB5OCO.js} +1 -1
  56. package/dist/chunks/{chunk-GI7LTJV3.js → chunk-EDYCSW22.js} +1 -1
  57. package/dist/chunks/{chunk-4JYTFEND.js → chunk-EFP75UEX.js} +1 -1
  58. package/dist/chunks/{chunk-CX7HKSQ4.js → chunk-EGP6DF34.js} +2 -2
  59. package/dist/chunks/{chunk-D5OFN47Z.js → chunk-ESYPMD7Q.js} +1 -1
  60. package/dist/chunks/{chunk-PWKJ5KLZ.js → chunk-EXYSD45J.js} +1 -1
  61. package/dist/chunks/{chunk-R6VI7MX5.js → chunk-EYTTZ5H4.js} +1 -1
  62. package/dist/chunks/chunk-FKUWCJ73.js +161 -0
  63. package/dist/chunks/{chunk-WD6ANOLL.js → chunk-FNGZ4UDZ.js} +1 -1
  64. package/dist/chunks/{chunk-JFZ6USNQ.js → chunk-G7X73SBG.js} +1 -1
  65. package/dist/chunks/{chunk-36FNNR5N.js → chunk-GEYZVOGD.js} +1 -1
  66. package/dist/chunks/{chunk-ULJZ7NUF.js → chunk-GY7YSD6J.js} +1 -1
  67. package/dist/chunks/{chunk-CWAQOFLP.js → chunk-GYYJ47GX.js} +1 -1
  68. package/dist/chunks/chunk-HG2YFMVU.js +4 -0
  69. package/dist/chunks/{chunk-YQBL5P6R.js → chunk-HKVFU3B3.js} +1 -1
  70. package/dist/chunks/{chunk-VEXJV5H5.js → chunk-IIT66347.js} +4 -4
  71. package/dist/chunks/{chunk-B2K5WQZE.js → chunk-IO5DZUKL.js} +1 -1
  72. package/dist/chunks/chunk-J256AEEE.js +2 -0
  73. package/dist/chunks/{chunk-CRDKBFRN.js → chunk-JEMECEQH.js} +1 -1
  74. package/dist/chunks/{chunk-7P5SH3CI.js → chunk-JPUSTFZC.js} +1 -1
  75. package/dist/chunks/{chunk-YMCF5GR2.js → chunk-JQOVC35K.js} +1 -1
  76. package/dist/chunks/{chunk-6LFTQBXP.js → chunk-JT5YQ52I.js} +1 -1
  77. package/dist/chunks/chunk-JVMSN7LH.js +2 -0
  78. package/dist/chunks/{chunk-HORMGT2Q.js → chunk-JXYJQT5Q.js} +1 -1
  79. package/dist/chunks/{chunk-WDKZMXIU.js → chunk-K7KBFM2T.js} +1 -1
  80. package/dist/chunks/{chunk-UBTP3QWI.js → chunk-KCLMA2IH.js} +1 -1
  81. package/dist/chunks/chunk-KDER7R45.js +2 -0
  82. package/dist/chunks/{chunk-IXZ5ZGIL.js → chunk-KOC3YJEU.js} +2 -2
  83. package/dist/chunks/{chunk-R6MMWEH4.js → chunk-KP2MYTP5.js} +1 -1
  84. package/dist/chunks/{chunk-TV2LE2BD.js → chunk-KU4TPDPH.js} +2 -2
  85. package/dist/chunks/{chunk-WJSJXK2N.js → chunk-KUE46HTH.js} +1 -1
  86. package/dist/chunks/chunk-LVXL7T5O.js +2 -0
  87. package/dist/chunks/{chunk-TSQ2I6XV.js → chunk-M4A7G4S5.js} +2 -2
  88. package/dist/chunks/{chunk-MX7KV5DA.js → chunk-M4ZHFDRJ.js} +1 -1
  89. package/dist/chunks/{chunk-26ID6A5C.js → chunk-MEJLWNRS.js} +1 -1
  90. package/dist/chunks/{chunk-XT5WUQGT.js → chunk-MIFVX5PK.js} +1 -1
  91. package/dist/chunks/{chunk-4VZJQRQI.js → chunk-MOXIGLN2.js} +1 -1
  92. package/dist/chunks/{chunk-UKSSFB4Q.js → chunk-N5EAVX4G.js} +1 -1
  93. package/dist/chunks/{chunk-4B7EGNYX.js → chunk-NMMHXYDJ.js} +1 -1
  94. package/dist/chunks/{chunk-EBOTNBUS.js → chunk-NRYC4NH6.js} +1 -1
  95. package/dist/chunks/chunk-NSSZ2ZIU.js +2 -0
  96. package/dist/chunks/{chunk-4TTXNVCE.js → chunk-OFJPOTES.js} +1 -1
  97. package/dist/chunks/chunk-OIH2LPIT.js +2 -0
  98. package/dist/chunks/chunk-OUJ63LMU.js +2 -0
  99. package/dist/chunks/{chunk-SD2XDZQW.js → chunk-P4QM63L3.js} +1 -1
  100. package/dist/chunks/chunk-PACLKDTN.js +2 -0
  101. package/dist/chunks/{chunk-VPAEFG7X.js → chunk-PAYFJHPO.js} +1 -1
  102. package/dist/chunks/{chunk-OPTJYDZN.js → chunk-PHZZBXDO.js} +1 -1
  103. package/dist/chunks/{chunk-HPTEJBP4.js → chunk-PKJHN666.js} +1 -1
  104. package/dist/chunks/{chunk-HNDAGZCF.js → chunk-PLROXHG2.js} +1 -1
  105. package/dist/chunks/{chunk-UNE52L3Y.js → chunk-PNPV2LDE.js} +1 -1
  106. package/dist/chunks/{chunk-2RSGVLZT.js → chunk-PSY6IRJE.js} +8 -8
  107. package/dist/chunks/{chunk-SVNEPXU3.js → chunk-Q73RKX7I.js} +1 -1
  108. package/dist/chunks/{chunk-IF5A3XWP.js → chunk-Q7FBVLLB.js} +1 -1
  109. package/dist/chunks/{chunk-V5AOM5MZ.js → chunk-Q7P34B2O.js} +1 -1
  110. package/dist/chunks/{chunk-375PADDM.js → chunk-QLGP2OAQ.js} +1 -1
  111. package/dist/chunks/{chunk-QQLS5FB7.js → chunk-QUNQM2E3.js} +1 -1
  112. package/dist/chunks/chunk-R2FYCJL6.js +2 -0
  113. package/dist/chunks/{chunk-6HQUIKC5.js → chunk-R4EEGWXB.js} +1 -1
  114. package/dist/chunks/chunk-RBTDSI4L.js +11 -0
  115. package/dist/chunks/chunk-RCQYEHHD.js +2 -0
  116. package/dist/chunks/{chunk-TGULVWPV.js → chunk-RFQD6B44.js} +1 -1
  117. package/dist/chunks/{chunk-3WJQ4IGK.js → chunk-RPM4FDRX.js} +1 -1
  118. package/dist/chunks/{chunk-MCBRB5D6.js → chunk-RY46UPBO.js} +4 -4
  119. package/dist/chunks/{chunk-K3LS5SK7.js → chunk-SDHG6CKU.js} +1 -1
  120. package/dist/chunks/{chunk-XKZ4PFMQ.js → chunk-SO4GMSNP.js} +1 -1
  121. package/dist/chunks/{chunk-O6ZYDHEJ.js → chunk-SSHE6B7Z.js} +1 -1
  122. package/dist/chunks/{chunk-SH7POUVX.js → chunk-SV7ZBEK2.js} +6 -6
  123. package/dist/chunks/{chunk-BJXPQIVD.js → chunk-U7D6Q744.js} +1 -1
  124. package/dist/chunks/chunk-U7X5ZLAL.js +2 -0
  125. package/dist/chunks/{chunk-N54CPLVD.js → chunk-UANH7U3Y.js} +1 -1
  126. package/dist/chunks/{chunk-BUZ7CBJC.js → chunk-UGFSAG4U.js} +1 -1
  127. package/dist/chunks/chunk-ULTV6INR.js +2 -0
  128. package/dist/chunks/{chunk-V3ILZQER.js → chunk-UMAVVMXL.js} +7 -7
  129. package/dist/chunks/chunk-V24VHT76.js +2 -0
  130. package/dist/chunks/chunk-VEBW7NKD.js +2 -0
  131. package/dist/chunks/chunk-VJR2GNRY.js +2 -0
  132. package/dist/chunks/{chunk-JD76ANPN.js → chunk-VJYOKU3C.js} +1 -1
  133. package/dist/chunks/{chunk-H2XG5N7D.js → chunk-VWWKWYSQ.js} +1 -1
  134. package/dist/chunks/chunk-WCNPGKST.js +2 -0
  135. package/dist/chunks/chunk-WD4KAKEX.js +2 -0
  136. package/dist/chunks/chunk-WGQ3FMRF.js +2 -0
  137. package/dist/chunks/{chunk-6C3CXME7.js → chunk-WNXUSELC.js} +1 -1
  138. package/dist/chunks/{chunk-RS526BG7.js → chunk-WZ35ICTE.js} +3 -3
  139. package/dist/chunks/chunk-XHACK2KR.js +2 -0
  140. package/dist/chunks/chunk-XOPHFUUY.js +2 -0
  141. package/dist/chunks/{chunk-YKTJPCYZ.js → chunk-XQAUHXL4.js} +4 -4
  142. package/dist/chunks/{chunk-ZVMQLIRA.js → chunk-XT4CSKHM.js} +1 -1
  143. package/dist/chunks/{chunk-KQD36SBJ.js → chunk-XY7HFXLH.js} +1 -1
  144. package/dist/chunks/{chunk-UXO33ST5.js → chunk-XYZV3FKD.js} +1 -1
  145. package/dist/chunks/{chunk-GC6RJBRZ.js → chunk-Y2WNZWT2.js} +1 -1
  146. package/dist/chunks/chunk-Y4I6CFZJ.js +2 -0
  147. package/dist/chunks/chunk-YDZBX4XQ.js +2 -0
  148. package/dist/chunks/chunk-YI6ME6PU.js +22 -0
  149. package/dist/chunks/{chunk-H42UW6IF.js → chunk-YXMYK5P7.js} +1 -1
  150. package/dist/chunks/{chunk-QFL2VQKX.js → chunk-Z33RVGP6.js} +1 -1
  151. package/dist/chunks/{chunk-OY4B7Y3T.js → chunk-ZDEIVUUI.js} +1 -1
  152. package/dist/chunks/{chunk-XGJG2ZKE.js → chunk-ZIQJDTQB.js} +1 -1
  153. package/dist/chunks/{chunk-IR2Y2VQY.js → chunk-ZYLLPRPU.js} +1 -1
  154. package/dist/chunks/cli-R7TAP6Z2.js +2 -0
  155. package/dist/chunks/{command-NWOZXU57.js → command-LNOVZQSK.js} +3 -3
  156. package/dist/chunks/{configuration-command-ZEIBQKB3.js → configuration-command-CNITTZRP.js} +1 -1
  157. package/dist/chunks/connected-app-executor-FGWCLOJO.js +2 -0
  158. package/dist/chunks/connected-evidence-5VZBYNWN.js +2 -0
  159. package/dist/chunks/{connected-starting-assets-66Y46ZPM.js → connected-starting-assets-KWOFEIE4.js} +1 -1
  160. package/dist/chunks/{connection-GDWPMHPC.js → connection-VMBXW5PD.js} +1 -1
  161. package/dist/chunks/{continual-TNPTWTKK.js → continual-FVOLGGOE.js} +1 -1
  162. package/dist/chunks/core-commands-BPYXVT7O.js +2 -0
  163. package/dist/chunks/dataset-preparation-authoring-UUYFWWCT.js +4 -0
  164. package/dist/chunks/datasets-E5TXSVIY.js +2 -0
  165. package/dist/chunks/desktop-test-FX7DTY4N.js +3 -0
  166. package/dist/chunks/dist-2MKJC6HN.js +2 -0
  167. package/dist/chunks/{dist-GR56E3QK.js → dist-DKE7RJZN.js} +1 -1
  168. package/dist/chunks/evaluation-coordination-KUTZEEPB.js +2 -0
  169. package/dist/chunks/experiment-improvements-PQNR5YHN.js +2 -0
  170. package/dist/chunks/experiments-Z4BJWT3Y.js +2 -0
  171. package/dist/chunks/experiments-signal-3GCLKUWZ.js +2 -0
  172. package/dist/chunks/{extension-UH34ZF7N.js → extension-3EKIT6BB.js} +1 -1
  173. package/dist/chunks/{help-O53DTZGN.js → help-K6YLZ3KL.js} +1 -1
  174. package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +2 -0
  175. package/dist/chunks/host-profile-external-dataset-KSEPXY2S.js +2 -0
  176. package/dist/chunks/hosted-app-server-composition-LA3BZ4SE.js +2 -0
  177. package/dist/chunks/hosted-experiment-improvement-VG2WE7XZ.js +3 -0
  178. package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +2 -0
  179. package/dist/chunks/hosted-profile-candidate-PTGQLPZO.js +3 -0
  180. package/dist/chunks/hosted-profile-compiler-FS5R6CHJ.js +2 -0
  181. package/dist/chunks/hosted-profile-evaluation-control-UUEZEMXU.js +2 -0
  182. package/dist/chunks/hosted-profile-evaluation-inspection-4F7OEF4T.js +3 -0
  183. package/dist/chunks/hosted-profile-evaluation-preparation-LIJJZDHQ.js +3 -0
  184. package/dist/chunks/hosted-tasksets-NXVF4AQA.js +2 -0
  185. package/dist/chunks/human-review-2ZOB7CJZ.js +2 -0
  186. package/dist/chunks/{import-OBAKUJPM.js → import-YHYKZ6JN.js} +2 -2
  187. package/dist/chunks/{learning-CRR6NRPN.js → learning-LAXMGWSQ.js} +1 -1
  188. package/dist/chunks/learning-Y3UKNUGE.js +2 -0
  189. package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +2 -0
  190. package/dist/chunks/local-harness-taskset-review-XQHQ6JCR.js +2 -0
  191. package/dist/chunks/{model-projects-HP4DELCP.js → model-projects-6YWVD2TS.js} +1 -1
  192. package/dist/chunks/opchat-XXI2ZM53.js +3 -0
  193. package/dist/chunks/opchat-bounded-chat-3MZGCRLY.js +2 -0
  194. package/dist/chunks/organizations-W7HI2JA4.js +2 -0
  195. package/dist/chunks/{profile-3WZJ65CT.js → profile-P2SJPBOJ.js} +1 -1
  196. package/dist/chunks/project-action-payload-LTIQBX77.js +2 -0
  197. package/dist/chunks/project-agent-XRIXMXQK.js +2 -0
  198. package/dist/chunks/published-experiment-source-SDXUVPE7.js +2 -0
  199. package/dist/chunks/refiner-profile-service-56VYLZQJ.js +2 -0
  200. package/dist/chunks/{runtime-XP4DEGR3.js → runtime-Q7JUJO4D.js} +2 -2
  201. package/dist/chunks/sandbox-command-HVA5FJU4.js +2 -0
  202. package/dist/chunks/{sandbox-template-YFMHEMUQ.js → sandbox-template-U536EEWY.js} +1 -1
  203. package/dist/chunks/saved-work-KSIQPXC2.js +2 -0
  204. package/dist/chunks/{send-turn-D3GTSSHI.js → send-turn-YLY3YNEQ.js} +1 -1
  205. package/dist/chunks/setup-RMZ2BHLM.js +2 -0
  206. package/dist/chunks/{src-GQPWOPYA.js → src-C3ZUESMK.js} +1 -1
  207. package/dist/chunks/src-SGQYVBNQ.js +424 -0
  208. package/dist/chunks/standalone-experiment-turn-owner-TW5MTWIO.js +2 -0
  209. package/dist/chunks/store-chat-resources-IRHBW2EC.js +2 -0
  210. package/dist/chunks/{store-continual-support-reviews-VVRQO2JK.js → store-continual-support-reviews-3KK42L4I.js} +1 -1
  211. package/dist/chunks/store-conversation-serving-IVURK52V.js +2 -0
  212. package/dist/chunks/{store-create-improve-2XI36AET.js → store-create-improve-UTCLBXF2.js} +1 -1
  213. package/dist/chunks/{store-datasets-UFY422NG.js → store-datasets-4AQOVAQY.js} +1 -1
  214. package/dist/chunks/store-evaluation-results-PK2P3IMH.js +7 -0
  215. package/dist/chunks/{store-harness-workspaces-SGUEYDO2.js → store-harness-workspaces-YEXB4IRV.js} +1 -1
  216. package/dist/chunks/store-human-review-O4BVHP25.js +7 -0
  217. package/dist/chunks/store-learned-preference-migration-validation-44SVX6YB.js +2 -0
  218. package/dist/chunks/{store-learning-BFOT4QVT.js → store-learning-SIUQIY5C.js} +1 -1
  219. package/dist/chunks/{store-learning-credentials-DYTMWQTC.js → store-learning-credentials-BUHR7SN6.js} +1 -1
  220. package/dist/chunks/store-local-experiments-BHVTKPPE.js +97 -0
  221. package/dist/chunks/store-model-batch-review-RVAYUVK2.js +2 -0
  222. package/dist/chunks/{store-model-configuration-NJFWSYSA.js → store-model-configuration-6L3OYXF4.js} +1 -1
  223. package/dist/chunks/store-model-project-preparation-AAEKCF6V.js +2 -0
  224. package/dist/chunks/store-modification-recordings-LCPK6K2T.js +9 -0
  225. package/dist/chunks/{store-preference-comparison-MZAYONCK.js → store-preference-comparison-5YVIQNVB.js} +1 -1
  226. package/dist/chunks/{store-sidebar-file-bookmarks-J3JEVAYR.js → store-sidebar-file-bookmarks-WLMYDA4E.js} +1 -1
  227. package/dist/chunks/{store-sidebar-preferences-2JHTFXJK.js → store-sidebar-preferences-AFMYIDWT.js} +1 -1
  228. package/dist/chunks/{store-subagents-PUBQVWSU.js → store-subagents-KFPVSTRO.js} +1 -1
  229. package/dist/chunks/{store-task-inbox-3BREANOX.js → store-task-inbox-L6IQTY26.js} +1 -1
  230. package/dist/chunks/{store-task-inventory-5HRZCDUT.js → store-task-inventory-QWS2C656.js} +1 -1
  231. package/dist/chunks/store-taskset-drafts-FRFL6ITK.js +9 -0
  232. package/dist/chunks/{store-training-S3FXWLT6.js → store-training-FYXZU2FE.js} +1 -1
  233. package/dist/chunks/{store-training-jobs-2LCXPA7G.js → store-training-jobs-3N3VKPIY.js} +1 -1
  234. package/dist/chunks/{store-training-models-7AMKS7ZW.js → store-training-models-VOFVGPZR.js} +1 -1
  235. package/dist/chunks/{taskset-PLKWRT4X.js → taskset-UDDLFYKV.js} +1 -1
  236. package/dist/chunks/taskset-catalog-RZYEBCRQ.js +2 -0
  237. package/dist/chunks/taskset-packages-T6B6HYKZ.js +2 -0
  238. package/dist/chunks/taskset-packages-WMG5DUBN.js +2 -0
  239. package/dist/chunks/{teams-bot-VQXUA7U4.js → teams-bot-MPWL2PP4.js} +1 -1
  240. package/dist/chunks/tool-learning-ZQ6NSJ5K.js +2 -0
  241. package/dist/chunks/training-5NT2YB2L.js +2 -0
  242. package/dist/chunks/training-5UMT45UL.js +2 -0
  243. package/dist/chunks/training-UY6KRG4M.js +2 -0
  244. package/dist/chunks/{training-error-LQKCOQDJ.js → training-error-WF463UNZ.js} +1 -1
  245. package/dist/chunks/{training-hardware-ESXRWUIK.js → training-hardware-UWQCRDMV.js} +1 -1
  246. package/dist/chunks/training-hosted-CKSDRVL6.js +2 -0
  247. package/dist/chunks/training-hosted-alphaedit-HSMRDJTD.js +2 -0
  248. package/dist/chunks/training-hosted-decision-7JALOU6O.js +2 -0
  249. package/dist/chunks/training-hosted-engram-SXO75MFG.js +2 -0
  250. package/dist/chunks/{training-hosted-learning-WQ2IP5FP.js → training-hosted-learning-E2N32YU5.js} +1 -1
  251. package/dist/chunks/training-hosted-modification-comparison-TXFDJFTG.js +2 -0
  252. package/dist/chunks/training-hosted-neuron-training-J42WK4EH.js +2 -0
  253. package/dist/chunks/training-hosted-serving-report-BAEABGJH.js +2 -0
  254. package/dist/chunks/training-hosted-steering-T556BUBG.js +2 -0
  255. package/dist/chunks/training-model-start-P3PXDWNT.js +2 -0
  256. package/dist/chunks/web-search-ZEKJHZW4.js +2 -0
  257. package/dist/chunks/{workspaces-MCS2AQX6.js → workspaces-EK62ANTB.js} +1 -1
  258. package/dist/cli.js +1 -1
  259. package/dist/index.js +1 -1
  260. package/dist/sandbox/types/billing.d.ts +87 -6
  261. package/dist/sandbox/types/io.d.ts +3 -0
  262. package/dist/sandbox-template/manifest.js +1 -1
  263. package/dist/skills/manifest.json +3 -3
  264. package/dist/skills/openpond-cli/references/experiments-and-training.md +461 -1
  265. package/dist/web/assets/App-CCuh99JW.js +54 -0
  266. package/dist/web/assets/{AppDialog-BvskhHE9.js → AppDialog-CxjDHVk9.js} +1 -1
  267. package/dist/web/assets/AppTerminalPanel-CKJIVpKa.js +2 -0
  268. package/dist/web/assets/{AppToastContext-D2788RqX.js → AppToastContext-EpiT1dHs.js} +1 -1
  269. package/dist/web/assets/AppsView-BsMyPX_3.js +1 -0
  270. package/dist/web/assets/{AttachmentTypeIcon-DVluUHuc.js → AttachmentTypeIcon-BXvZy5gB.js} +1 -1
  271. package/dist/web/assets/BrowserSidebar-BIIV4aq4.js +1 -0
  272. package/dist/web/assets/{CartesianChart-DdBZ69lI.js → CartesianChart-brqLBqnF.js} +1 -1
  273. package/dist/web/assets/ChatTimelineEntry-CwZbn16X.js +8 -0
  274. package/dist/web/assets/{CollaborationTabs-ba6WupeJ.js → CollaborationTabs-BU4uc4tZ.js} +1 -1
  275. package/dist/web/assets/{CommandMenu-D7wTaEgl.js → CommandMenu-DkWpXR55.js} +1 -1
  276. package/dist/web/assets/CommunityView-CsSxJZGn.js +1 -0
  277. package/dist/web/assets/{ComposerAttachments-aO90qXYz.js → ComposerAttachments-BdJGCYzI.js} +1 -1
  278. package/dist/web/assets/{ComposerCreateImproveStrip-BPUJBSyS.js → ComposerCreateImproveStrip-CWy0j1vv.js} +1 -1
  279. package/dist/web/assets/{ConversationImportsSettings-Bo836wKJ.js → ConversationImportsSettings-DCmiakbZ.js} +1 -1
  280. package/dist/web/assets/DatasetReviewImport-DEnF_pGu.js +1 -0
  281. package/dist/web/assets/ExperimentTrainingDataWorkspace-WhwQ0QBi.js +2 -0
  282. package/dist/web/assets/{FilePagePreview-C6wIp6uX.js → FilePagePreview-BRhhz99q.js} +2 -2
  283. package/dist/web/assets/{GetStartedView-CxMv8q-h.js → GetStartedView-CLVD-qEi.js} +1 -1
  284. package/dist/web/assets/{GettingStartedDialog-CEb0cS-o.js → GettingStartedDialog-CMxaAMg-.js} +1 -1
  285. package/dist/web/assets/HostedModelLearningReview-Cn-j-rDo.js +1 -0
  286. package/dist/web/assets/HostedModelLearningSettings-VNBvf38S.js +1 -0
  287. package/dist/web/assets/{HtmlVisual-CCuUkYT8.js → HtmlVisual-D5y2WG9L.js} +10 -10
  288. package/dist/web/assets/LabModelVersionDetailPage-BxRmYD6h.js +1 -0
  289. package/dist/web/assets/{TrainingRunLineage-PXzWR65d.css → LabModelWorkspace-DOrgCk9Z.css} +1 -1
  290. package/dist/web/assets/LabModelWorkspace-u2Ulm_z4.js +1 -0
  291. package/dist/web/assets/{LabSkillSidebar-CFROlATQ.js → LabSkillSidebar-C7IceJTJ.js} +1 -1
  292. package/dist/web/assets/LabsRoute-C9Y0GU34.css +1 -0
  293. package/dist/web/assets/LabsRoute-CbztQaEf.js +74 -0
  294. package/dist/web/assets/LearningBatchesPage-B1NZTBSv.css +1 -0
  295. package/dist/web/assets/LearningBatchesPage-CJqgZNvM.js +26 -0
  296. package/dist/web/assets/MainChatThread-DNMfrrRq.js +2 -0
  297. package/dist/web/assets/{MainPane-BOWkynGB.css → MainPane-BZlNLfTM.css} +1 -1
  298. package/dist/web/assets/MainPane-CQQxSDPS.js +13 -0
  299. package/dist/web/assets/ModelProjectPageHeader-Dge19aE1.js +1 -0
  300. package/dist/web/assets/NativeSetupTerminal-D4JnbpyD.js +2 -0
  301. package/dist/web/assets/{NativeSkillSidebar-MAJWS4mL.js → NativeSkillSidebar-Jzx1BeKV.js} +1 -1
  302. package/dist/web/assets/{NewProjectDialog-MQiUBVx3.js → NewProjectDialog-DcnGzEd9.js} +1 -1
  303. package/dist/web/assets/{OutputsPage-DpF-aRTu.js → OutputsPage-Cmk15Vt_.js} +1 -1
  304. package/dist/web/assets/{PageChrome-8gH2hyDb.js → PageChrome-Cz_fCqtn.js} +1 -1
  305. package/dist/web/assets/{ProjectsPage-BQ98oGyu.js → ProjectsPage-BZ3Eo3Mz.js} +1 -1
  306. package/dist/web/assets/RightChatPanelStack-C6H2vU9N.js +1 -0
  307. package/dist/web/assets/RightSidebarHomePanel-BfMMVkM1.js +1 -0
  308. package/dist/web/assets/{ScheduledWorkPage-CGCqZz_H.js → ScheduledWorkPage-CAkSwM0T.js} +1 -1
  309. package/dist/web/assets/{SettingsView-CqpMFLxy.js → SettingsView-DvQXGw3_.js} +3 -3
  310. package/dist/web/assets/{TasksetDraftEditorPrimitives-DJvIvzBb.js → TasksetDraftEditorPrimitives-JuU1k8vr.js} +1 -1
  311. package/dist/web/assets/TeamChatView-DmHjr8W9.js +1 -0
  312. package/dist/web/assets/{TerminalOverlay-D--M876l.js → TerminalOverlay-DlaM9d8F.js} +1 -1
  313. package/dist/web/assets/{TrainingCreationPanel-DDUoHQHU.js → TrainingCreationPanel-ClpylNsr.js} +1 -1
  314. package/dist/web/assets/{TrainingDraftPanel-CwLXn3Z7.js → TrainingDraftPanel-6tH2xSDj.js} +1 -1
  315. package/dist/web/assets/{UsageSettingsSection-CGwPregx.js → UsageSettingsSection-CzDqxOYM.js} +2 -2
  316. package/dist/web/assets/WorkSidebarPanel-CY-AHZ4-.js +1 -0
  317. package/dist/web/assets/WorkspaceDiffPanel-B4e0lyF7.js +11 -0
  318. package/dist/web/assets/WorkspaceEnvironmentMenu-D01ZkZZF.js +35 -0
  319. package/dist/web/assets/{WorkspaceFileLocation-D-ctFM4d.js → WorkspaceFileLocation-C5s_njZb.js} +1 -1
  320. package/dist/web/assets/{WorkspaceGitDialogs-CQ28j3R7.js → WorkspaceGitDialogs-DjPZ6KIh.js} +1 -1
  321. package/dist/web/assets/{WorkspaceMonacoEditor-BrZs6-EW.js → WorkspaceMonacoEditor-CC4sfOiU.js} +3 -3
  322. package/dist/web/assets/{WorkspacePdfPreview-CU6PSjjN.js → WorkspacePdfPreview-vszQqFa4.js} +2 -2
  323. package/dist/web/assets/{WorkspacePresentationPreview-IjXVXpIy.js → WorkspacePresentationPreview-DQTvhaRD.js} +1 -1
  324. package/dist/web/assets/api-client-DJRVOFzS.js +1 -0
  325. package/dist/web/assets/{app-models-CKXrDTEU.js → app-models-BUdzQbXo.js} +1 -1
  326. package/dist/web/assets/bot-Doyx3T4j.js +1 -0
  327. package/dist/web/assets/{browser-sidebar-links-D9v2cyJa.js → browser-sidebar-links-PVPCrsDJ.js} +1 -1
  328. package/dist/web/assets/chat-resources-Beh5lB36.js +1 -0
  329. package/dist/web/assets/chevron-down-DX1hzujj.js +1 -0
  330. package/dist/web/assets/chevron-right-DHN0y3KC.js +1 -0
  331. package/dist/web/assets/chevron-up-_QrW88NF.js +1 -0
  332. package/dist/web/assets/{chunk-TLSP5JKG-BrrVo5rJ.js → chunk-3BYFS4RO-ztZjcMmt.js} +1 -1
  333. package/dist/web/assets/chunk-AG6UJ3DI-D9KZjTYP.js +1 -0
  334. package/dist/web/assets/chunk-C3TS766N-ppRhs95p.js +1 -0
  335. package/dist/web/assets/chunk-GCUWJUUM-Dy6oUNJ6.js +9 -0
  336. package/dist/web/assets/chunk-GS5HEE4M-C0RLeIsy.js +1 -0
  337. package/dist/web/assets/{chunk-H3JZ3P5T-CzpTARDY.js → chunk-H3JZ3P5T-DolwEJXo.js} +2 -2
  338. package/dist/web/assets/chunk-Q4RGCEOI-Cr-dg4Nk.js +1 -0
  339. package/dist/web/assets/client-DwZ92xtu.js +1 -0
  340. package/dist/web/assets/{client-choice-storage-DUWsS4X0.js → client-choice-storage-DitqKiIT.js} +1 -1
  341. package/dist/web/assets/cloud-upload-HdzNTgr2.js +1 -0
  342. package/dist/web/assets/common-BWVSBnpX.js +1 -0
  343. package/dist/web/assets/copy-DTQhoBNg.js +1 -0
  344. package/dist/web/assets/create-pipeline-DsZzNkt9.js +1 -0
  345. package/dist/web/assets/{cssMode-SclUkqPt.js → cssMode-BRTtfXxU.js} +1 -1
  346. package/dist/web/assets/dataset-workspaces-BTPi71mz.js +1 -0
  347. package/dist/web/assets/external-link-H1629UU6.js +1 -0
  348. package/dist/web/assets/folder-open-CAGdWOrr.js +1 -0
  349. package/dist/web/assets/folder-plus-C14cs2mE.js +1 -0
  350. package/dist/web/assets/git-commit-horizontal-DFUfuVvF.js +1 -0
  351. package/dist/web/assets/{htmlMode-X3mQtOeh.js → htmlMode-BVaCcL76.js} +1 -1
  352. package/dist/web/assets/icons-Bk2b68aC.js +1 -0
  353. package/dist/web/assets/image-0DPVY6Ev.js +1 -0
  354. package/dist/web/assets/{index-LXNhSUEL.js → index-B6XX_0h3.js} +2 -2
  355. package/dist/web/assets/info-C8b_tafZ.js +1 -0
  356. package/dist/web/assets/{intake-contracts-wCkD2ErR.js → intake-contracts-B8JZKYwb.js} +1 -1
  357. package/dist/web/assets/{jsonMode-BoKiIdHd.js → jsonMode-BCKKQmmV.js} +1 -1
  358. package/dist/web/assets/loader-circle-y-SSPwpk.js +1 -0
  359. package/dist/web/assets/{lspLanguageFeatures-CO2mzpy1.js → lspLanguageFeatures-DozmNUOx.js} +1 -1
  360. package/dist/web/assets/maximize-2-CByk9-zN.js +1 -0
  361. package/dist/web/assets/message-square-C889vRqm.js +1 -0
  362. package/dist/web/assets/{monaco.contribution-wacA5FjV.js → monaco.contribution-B9q6qbbo.js} +2 -2
  363. package/dist/web/assets/{monaco.contribution-CVe3mWSY.js → monaco.contribution-BITdsRbn.js} +2 -2
  364. package/dist/web/assets/{monaco.contribution-hrusiaZi.js → monaco.contribution-BqA-XZ44.js} +2 -2
  365. package/dist/web/assets/{monaco.contribution-C7CAQIKF.js → monaco.contribution-DxAV1oS5.js} +2 -2
  366. package/dist/web/assets/monitor-BtxlcLuI.js +1 -0
  367. package/dist/web/assets/paperclip-BeIdaspf.js +1 -0
  368. package/dist/web/assets/{pdf-Ct3M2mVw.js → pdf-perlzwEB.js} +1 -1
  369. package/dist/web/assets/play-CHXXdkuO.js +1 -0
  370. package/dist/web/assets/plus-DFFWjhPw.js +1 -0
  371. package/dist/web/assets/{ponder-desktop-D-zB6X4L.js → ponder-desktop-Ca-9KggQ.js} +1 -1
  372. package/dist/web/assets/presentation-0bzvu6_u.js +1 -0
  373. package/dist/web/assets/{profile-ref-CCxrOCio.js → profile-ref-D8lxL7dW.js} +1 -1
  374. package/dist/web/assets/{python-C0-pUUAU.js → python-B9hOnkOI.js} +1 -1
  375. package/dist/web/assets/refresh-cw-D61-Ozk3.js +1 -0
  376. package/dist/web/assets/{requests-DjSt-duM.js → requests-DmeUYik4.js} +1 -1
  377. package/dist/web/assets/reward-checks-DJJZYgf8.js +7 -0
  378. package/dist/web/assets/save-iEMNZoPe.js +1 -0
  379. package/dist/web/assets/schemas-Brv9Vmnk.js +64 -0
  380. package/dist/web/assets/settings-BC-bzgk6.js +21 -0
  381. package/dist/web/assets/settings-lists-C84qxFmP.js +5 -0
  382. package/dist/web/assets/square-BE_4JMR3.js +1 -0
  383. package/dist/web/assets/square-terminal-Djpzo2Qs.js +1 -0
  384. package/dist/web/assets/{submit-issue-command-Gk3RKrY-.js → submit-issue-command-HfKzyxg5.js} +1 -1
  385. package/dist/web/assets/{toggleHighContrast-BnYUBgZB.js → toggleHighContrast-ClsXu39R.js} +1 -1
  386. package/dist/web/assets/training-DWfghwfZ.js +1 -0
  387. package/dist/web/assets/{training-model-data-CxR3xpmK.js → training-model-data-CIysl8wH.js} +4 -4
  388. package/dist/web/assets/{tsMode-BVNyOY8h.js → tsMode-nbmaMc-D.js} +1 -1
  389. package/dist/web/assets/upload-C6ug8RD-.js +1 -0
  390. package/dist/web/assets/{useAccountSettings-4_XfwJQi.js → useAccountSettings-Dr9h4Qz_.js} +1 -1
  391. package/dist/web/assets/{useAgentInventory-CVuamyT3.js → useAgentInventory-ByCk2JAv.js} +1 -1
  392. package/dist/web/assets/useChatContextSelection-C0eMm2g6.js +1 -0
  393. package/dist/web/assets/{useLocalAgentSchedules-CmwN4ohy.js → useLocalAgentSchedules-Do0y_leJ.js} +1 -1
  394. package/dist/web/assets/useQuery-D2MQ7e5U.js +1 -0
  395. package/dist/web/assets/wifi-off-Dr-CapyW.js +1 -0
  396. package/dist/web/assets/work-outputs-D_8TovAK.js +1 -0
  397. package/dist/web/assets/{workers-CjtQ2aBD.js → workers-DKvM2NdM.js} +1 -1
  398. package/dist/web/assets/x-Jx2jlP9u.js +1 -0
  399. package/dist/web/assets/{yaml-N1KUjBZ8.js → yaml-C02vq4ar.js} +1 -1
  400. package/dist/web/index.html +1 -1
  401. package/docs/command-reference.md +93 -3
  402. package/package.json +1 -1
  403. package/dist/chunks/actions-command-BYPLSGZL.js +0 -2
  404. package/dist/chunks/app-server-evaluations-5YZUFXQ2.js +0 -2
  405. package/dist/chunks/app-server-harness-services-N5F5QVZI.js +0 -2
  406. package/dist/chunks/app-server-runtime-HJ2N57DL.js +0 -2
  407. package/dist/chunks/apps-WJTW64NW.js +0 -2
  408. package/dist/chunks/chunk-263WS3TB.js +0 -2
  409. package/dist/chunks/chunk-2UZHLO2V.js +0 -23
  410. package/dist/chunks/chunk-2W22IXHB.js +0 -2
  411. package/dist/chunks/chunk-46RMTR2Z.js +0 -2
  412. package/dist/chunks/chunk-4JJ4RYIB.js +0 -6
  413. package/dist/chunks/chunk-4NN5OLKW.js +0 -161
  414. package/dist/chunks/chunk-543QHE3D.js +0 -2
  415. package/dist/chunks/chunk-5QOFUGYQ.js +0 -2
  416. package/dist/chunks/chunk-5ZNE43XC.js +0 -10
  417. package/dist/chunks/chunk-6IS5OLI5.js +0 -2
  418. package/dist/chunks/chunk-7HAGSE7L.js +0 -2
  419. package/dist/chunks/chunk-AXYAEWWA.js +0 -2
  420. package/dist/chunks/chunk-B7XJBP4U.js +0 -2
  421. package/dist/chunks/chunk-BBIA24GD.js +0 -10
  422. package/dist/chunks/chunk-CJDGLPNX.js +0 -4
  423. package/dist/chunks/chunk-FCXDPVGJ.js +0 -3
  424. package/dist/chunks/chunk-FE2ENE3U.js +0 -2
  425. package/dist/chunks/chunk-H6EUFJJK.js +0 -2
  426. package/dist/chunks/chunk-IOSBGCRT.js +0 -2
  427. package/dist/chunks/chunk-K6DB5QWG.js +0 -2
  428. package/dist/chunks/chunk-LI56PPCN.js +0 -2
  429. package/dist/chunks/chunk-OE2OOWEQ.js +0 -2
  430. package/dist/chunks/chunk-OYIFH2OM.js +0 -2
  431. package/dist/chunks/chunk-QOUOU7FE.js +0 -22
  432. package/dist/chunks/chunk-R5GRESW3.js +0 -2
  433. package/dist/chunks/chunk-TERKCK4I.js +0 -2
  434. package/dist/chunks/chunk-TS5HNRZB.js +0 -2
  435. package/dist/chunks/chunk-V3KEG6MI.js +0 -2
  436. package/dist/chunks/chunk-WGISITX6.js +0 -4
  437. package/dist/chunks/chunk-XD4ZIQZ2.js +0 -2
  438. package/dist/chunks/chunk-XHU4BZQY.js +0 -13
  439. package/dist/chunks/chunk-ZWEY66RT.js +0 -2
  440. package/dist/chunks/cli-HV32F7HD.js +0 -2
  441. package/dist/chunks/connected-app-executor-DFHWNMRM.js +0 -2
  442. package/dist/chunks/connected-evidence-WOM6N5HO.js +0 -2
  443. package/dist/chunks/core-commands-GWRHH53F.js +0 -2
  444. package/dist/chunks/dataset-preparation-authoring-WJ2XEUO7.js +0 -4
  445. package/dist/chunks/datasets-XIMF54QN.js +0 -2
  446. package/dist/chunks/desktop-test-HF42V2EP.js +0 -3
  447. package/dist/chunks/dist-T6ES2TSM.js +0 -2
  448. package/dist/chunks/evaluation-coordination-WZT6FDMS.js +0 -2
  449. package/dist/chunks/experiment-improvements-H35VS6XZ.js +0 -2
  450. package/dist/chunks/experiments-F54C32EE.js +0 -2
  451. package/dist/chunks/experiments-signal-ONIGTGYR.js +0 -2
  452. package/dist/chunks/host-profile-evaluation-tools-LMCJ3MDJ.js +0 -2
  453. package/dist/chunks/host-profile-external-dataset-4HOXANWK.js +0 -2
  454. package/dist/chunks/hosted-app-server-composition-Y64A2A2B.js +0 -2
  455. package/dist/chunks/hosted-experiment-improvement-B2V2WIUI.js +0 -3
  456. package/dist/chunks/hosted-harness-runtime-C7I4KSDK.js +0 -2
  457. package/dist/chunks/hosted-profile-candidate-CXPVEEYQ.js +0 -3
  458. package/dist/chunks/hosted-profile-compiler-FGCI2VRW.js +0 -2
  459. package/dist/chunks/hosted-profile-evaluation-control-INNUYMBD.js +0 -2
  460. package/dist/chunks/hosted-profile-evaluation-inspection-UPTBRYMS.js +0 -3
  461. package/dist/chunks/hosted-profile-evaluation-preparation-TIQSVKLQ.js +0 -3
  462. package/dist/chunks/hosted-tasksets-7VMYOTIO.js +0 -2
  463. package/dist/chunks/human-review-7XC77NQP.js +0 -2
  464. package/dist/chunks/learning-3XDGIYUL.js +0 -2
  465. package/dist/chunks/local-harness-improvement-runtime-UIKQSAMM.js +0 -2
  466. package/dist/chunks/local-harness-taskset-review-6KJN3EQL.js +0 -2
  467. package/dist/chunks/opchat-NWYWWIA7.js +0 -3
  468. package/dist/chunks/opchat-bounded-chat-ICURZM6R.js +0 -2
  469. package/dist/chunks/organizations-7DBQGCCV.js +0 -2
  470. package/dist/chunks/project-action-payload-7DRABTHY.js +0 -2
  471. package/dist/chunks/project-agent-AXJOWXRU.js +0 -2
  472. package/dist/chunks/published-experiment-source-YBBPLNF2.js +0 -2
  473. package/dist/chunks/refiner-profile-service-ATEFPF5O.js +0 -2
  474. package/dist/chunks/sandbox-command-CF2PJCFX.js +0 -2
  475. package/dist/chunks/saved-work-3OAVRBH3.js +0 -2
  476. package/dist/chunks/setup-RHIMFI2Y.js +0 -2
  477. package/dist/chunks/src-V236S6MV.js +0 -424
  478. package/dist/chunks/standalone-experiment-turn-owner-CDRMGLWW.js +0 -2
  479. package/dist/chunks/store-chat-resources-P4EKCLSY.js +0 -2
  480. package/dist/chunks/store-conversation-serving-YFEZYQD3.js +0 -2
  481. package/dist/chunks/store-evaluation-results-VBH4R2U7.js +0 -7
  482. package/dist/chunks/store-human-review-RFCVZ3HP.js +0 -7
  483. package/dist/chunks/store-learned-preference-migration-validation-FNBGGZU6.js +0 -2
  484. package/dist/chunks/store-local-experiments-XPXGYXNM.js +0 -97
  485. package/dist/chunks/store-model-batch-review-J2L5JQV2.js +0 -2
  486. package/dist/chunks/store-model-project-preparation-OCLIFKI2.js +0 -2
  487. package/dist/chunks/store-taskset-drafts-BNKUVHPA.js +0 -9
  488. package/dist/chunks/taskset-packages-SXBLYHSP.js +0 -2
  489. package/dist/chunks/taskset-packages-V5T4V7YN.js +0 -2
  490. package/dist/chunks/tool-learning-47XQKELE.js +0 -2
  491. package/dist/chunks/training-7VQNCOGH.js +0 -2
  492. package/dist/chunks/training-VKLPNCMC.js +0 -2
  493. package/dist/chunks/training-hosted-NNE6BP6S.js +0 -2
  494. package/dist/chunks/training-hosted-serving-report-VZ4SMLMG.js +0 -2
  495. package/dist/chunks/training-model-start-G7YDZ7ZG.js +0 -2
  496. package/dist/chunks/web-search-56QRZGPR.js +0 -2
  497. package/dist/web/assets/App-DmEA-Lia.js +0 -53
  498. package/dist/web/assets/AppTerminalPanel-ScQKJV4z.js +0 -2
  499. package/dist/web/assets/AppsView-B1uNg9IQ.js +0 -1
  500. package/dist/web/assets/BrowserSidebar-DfVQoJHn.js +0 -1
  501. package/dist/web/assets/ChatTimelineEntry-Bbc6HRks.js +0 -8
  502. package/dist/web/assets/CommunityView-mO58f2B0.js +0 -1
  503. package/dist/web/assets/HostedModelLearningReview-BQIS7hkd.js +0 -1
  504. package/dist/web/assets/HostedModelLearningSettings-BQ-YeFMT.js +0 -1
  505. package/dist/web/assets/LabModelVersionDetailPage-BkHeVbAx.js +0 -1
  506. package/dist/web/assets/LabsRoute-CE45yAXJ.css +0 -1
  507. package/dist/web/assets/LabsRoute-YA9YckKj.js +0 -101
  508. package/dist/web/assets/MainChatThread-DpyPgGKW.js +0 -2
  509. package/dist/web/assets/MainPane-WOeodByM.js +0 -10
  510. package/dist/web/assets/NativeSetupTerminal-fmG2c65K.js +0 -2
  511. package/dist/web/assets/RightChatPanelStack-Bs7A4dLs.js +0 -1
  512. package/dist/web/assets/RightSidebarHomePanel-C-D4kba2.js +0 -1
  513. package/dist/web/assets/TeamChatView-DjmIaLO1.js +0 -1
  514. package/dist/web/assets/TrainingRunLineage-CtYe1KGX.js +0 -1
  515. package/dist/web/assets/WorkSidebarPanel-C6wWuo7U.js +0 -1
  516. package/dist/web/assets/WorkspaceDiffPanel-JDOUmrC-.js +0 -11
  517. package/dist/web/assets/WorkspaceEnvironmentMenu-sfL5LZeB.js +0 -35
  518. package/dist/web/assets/api-client-Dgz-fOMl.js +0 -1
  519. package/dist/web/assets/bot-Cd761lRF.js +0 -1
  520. package/dist/web/assets/chat-resources-BUDXdoG0.js +0 -1
  521. package/dist/web/assets/chevron-down-DEbd6Ek-.js +0 -1
  522. package/dist/web/assets/chevron-right-DLYNg_Oq.js +0 -1
  523. package/dist/web/assets/chevron-up-DFJJccDl.js +0 -1
  524. package/dist/web/assets/chunk-GHPCQXG5-DKDBSd8H.js +0 -9
  525. package/dist/web/assets/chunk-GJRXJL6G-luaxRTYI.js +0 -1
  526. package/dist/web/assets/chunk-JDQVAG3R-C0-rh1aR.js +0 -1
  527. package/dist/web/assets/chunk-XMVSQIK4-BBU7r_NH.js +0 -1
  528. package/dist/web/assets/client-BNjO4Xi8.js +0 -1
  529. package/dist/web/assets/cloud-upload-CoM1FGeB.js +0 -1
  530. package/dist/web/assets/common-CFsO2ppZ.js +0 -1
  531. package/dist/web/assets/copy-BGOhV6Pk.js +0 -1
  532. package/dist/web/assets/create-pipeline-DRR0Qeec.js +0 -1
  533. package/dist/web/assets/createLucideIcon-Bv-_eGcE.js +0 -1
  534. package/dist/web/assets/external-link-CVXsNeO3.js +0 -1
  535. package/dist/web/assets/folder-open-MnOmh19D.js +0 -1
  536. package/dist/web/assets/folder-plus-BRddLBtO.js +0 -1
  537. package/dist/web/assets/git-commit-horizontal-Bm4rkXug.js +0 -1
  538. package/dist/web/assets/icons-CZxmQtZs.js +0 -1
  539. package/dist/web/assets/image-BViGUAiq.js +0 -1
  540. package/dist/web/assets/info-DYPIbKKD.js +0 -1
  541. package/dist/web/assets/loader-circle-JFgFNsP5.js +0 -1
  542. package/dist/web/assets/maximize-2-DXZCQO0b.js +0 -1
  543. package/dist/web/assets/message-square-cOCAL8J1.js +0 -1
  544. package/dist/web/assets/models-route-CWcJuOd0.js +0 -1
  545. package/dist/web/assets/monitor-B35XSAvn.js +0 -1
  546. package/dist/web/assets/paperclip-CKgDxioG.js +0 -1
  547. package/dist/web/assets/play-DzqLr7fM.js +0 -1
  548. package/dist/web/assets/plus-Ddp1vXnw.js +0 -1
  549. package/dist/web/assets/presentation-B0S9v7ib.js +0 -1
  550. package/dist/web/assets/refresh-cw-D45mW-vs.js +0 -1
  551. package/dist/web/assets/reward-checks-D139zwha.js +0 -7
  552. package/dist/web/assets/save-Gu4R_82E.js +0 -1
  553. package/dist/web/assets/schemas-C9IwV7NS.js +0 -64
  554. package/dist/web/assets/settings-DdonLCIN.js +0 -21
  555. package/dist/web/assets/settings-lists-CFHFtO0D.js +0 -5
  556. package/dist/web/assets/square-Dqduqyyu.js +0 -1
  557. package/dist/web/assets/square-terminal-DS3zwi6X.js +0 -1
  558. package/dist/web/assets/training-QBuGBGJd.js +0 -2
  559. package/dist/web/assets/upload-ABSJxuUM.js +0 -1
  560. package/dist/web/assets/useQuery-CCjwL8VI.js +0 -1
  561. package/dist/web/assets/wifi-off-DGJH7Pke.js +0 -1
  562. package/dist/web/assets/work-outputs-CnbRtTLg.js +0 -1
  563. package/dist/web/assets/x-B-_zJVOZ.js +0 -1
  564. /package/dist/chunks/{chunk-SFR32TMJ.js → chunk-JXLDEYRW.js} +0 -0
@@ -0,0 +1,2 @@
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};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as S,f as C,g as _,h as I,i as b,j as R}from"./chunk-SSJV3VX7.js";import{a as q}from"./chunk-7KWD2I6W.js";import{a as v,b as P}from"./chunk-BJXPQIVD.js";import{a as U}from"./chunk-FYWQWKVS.js";import{c as T}from"./chunk-2MEOUS24.js";import{a as s}from"./chunk-FTQLQJQV.js";import{randomUUID as L}from"node:crypto";function j(e){let t=e.filter(r=>r.role==="system").map(r=>r.content??"").join(`
2
+ import{b as S,f as C,g as _,h as I,i as b,j as R}from"./chunk-SSJV3VX7.js";import{a as q}from"./chunk-7KWD2I6W.js";import{a as v,b as P}from"./chunk-U7D6Q744.js";import{a as U}from"./chunk-FYWQWKVS.js";import{c as T}from"./chunk-2MEOUS24.js";import{a as s}from"./chunk-FTQLQJQV.js";import{randomUUID as L}from"node:crypto";function j(e){let t=e.filter(r=>r.role==="system").map(r=>r.content??"").join(`
3
3
 
4
4
  `),o=[];for(let r of e){if(r.role==="system")continue;let i=r.role==="assistant"?"assistant":"user",d=[];if(r.role==="tool"){if(!r.tool_call_id)throw new Error("Anthropic tool result is missing its call ID.");d.push({type:"tool_result",tool_use_id:r.tool_call_id,content:r.content??""})}else{r.content&&d.push({type:"text",text:r.content});for(let a of r.images??[]){let f=/^data:([^;,]+);base64,(.+)$/s.exec(a.url);d.push({type:"image",source:f?{type:"base64",media_type:f[1],data:f[2]}:{type:"url",url:a.url}})}for(let a of r.tool_calls??[]){if(!a.id||!a.function?.name)throw new Error("Anthropic tool call is missing its ID or name.");d.push({type:"tool_use",id:a.id,name:a.function.name,input:JSON.parse(a.function.arguments||"{}")})}}if(!d.length)continue;let p=o.at(-1);p?.role===i?p.content.push(...d):o.push({role:i,content:d})}return{system:t,messages:o}}s(j,"messagesBody");function k(e){let t=e.settings.providers.anthropic,o=e.secrets.providers.anthropic,r=o?.source==="local_secret"?o.value?.trim():o?.source==="env"&&o.envVar?process.env[o.envVar]?.trim():null;if(!t?.enabled||!r)throw new Error("Connect the direct Anthropic API-key provider in Settings.");let i=new URL(e.baseUrl??t.baseUrl??"https://api.anthropic.com");if(i.protocol!=="https:"&&i.hostname!=="localhost"&&i.hostname!=="127.0.0.1")throw new Error("Anthropic requires an HTTPS endpoint.");return i.pathname=i.pathname.replace(/\/$/,"").replace(/\/v1$/,"")+"/v1",i.search="",i.hash="",{key:r,base:i}}s(k,"anthropicConnection");async function*O(e){let{key:t,base:o}=k(e);o.pathname+="/messages";let r=e.modelId??e.settings.providers.anthropic?.defaultModel;if(!r)throw new Error("Choose a configured Anthropic model.");let i=e.settings.modelCaches.anthropic?.models.find(l=>l.id===r),d=Math.max(1,Math.min(e.maxOutputTokens??8192,i?.outputLimit??8192)),p=e.tools?.map(l=>{if(l.type!=="function"||!l.function)throw new Error("Anthropic only supports function tools.");return{name:l.function.name,description:l.function.description,input_schema:l.function.parameters??{type:"object",properties:{}}}}),a=e.toolChoice,f=a==="required"?{type:"any"}:a==="auto"||a==="none"?{type:a}:a?{type:"tool",name:a.function.name}:void 0,m=b(e.signal,e.requestTimeoutMs);try{let l=await fetch(o,{method:"POST",redirect:"error",headers:{"x-api-key":t,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({model:r,max_tokens:d,stream:!0,...j(e.messages),...p?.length?{tools:p,tool_choice:f}:{}}),signal:m.signal});if(!l.ok||!l.body){let h=await _(l,void 0,m.signal,m.touch);throw new Error(`Provider anthropic stream failed: ${l.status} ${h.replaceAll(t,"[redacted]")}`)}let c=new Map,g={},y,x=!1;for await(let h of R(l.body,m.signal,m.touch)){if(!h||typeof h!="object")continue;let n=h;if(n.type==="error")throw new Error(`Provider anthropic stream failed: ${(n.error?.message??"stream error").replaceAll(t,"[redacted]")}`);if(n.type==="message_start"&&(g={...n.message?.usage}),n.type==="content_block_start"&&n.content_block?.type==="tool_use"){let u=n.content_block;if(!u.id||!u.name||n.index===void 0)throw new Error("Invalid Anthropic tool block.");c.set(n.index,{id:u.id,name:u.name,arguments:"",initial:u.input})}if(n.type==="content_block_delta"&&(n.delta?.type==="text_delta"&&(yield{type:"text_delta",text:n.delta.text??"",raw:h}),n.delta?.type==="thinking_delta"&&(yield{type:"reasoning_delta",text:n.delta.thinking??"",raw:h}),n.delta?.type==="input_json_delta"&&n.index!==void 0)){let u=c.get(n.index);if(!u)throw new Error("Anthropic tool delta has no matching call.");u.arguments+=n.delta.partial_json??""}if(n.type==="content_block_stop"&&n.index!==void 0){let u=c.get(n.index);if(u){let A=u.arguments||JSON.stringify(u.initial??{});JSON.parse(A),yield{type:"tool_call_delta",toolCalls:[{id:u.id,type:"function",function:{name:u.name,arguments:A}}],raw:h},c.delete(n.index)}}n.type==="message_delta"&&(g={...g,...n.usage},y=n.delta?.stop_reason),n.type==="message_stop"&&(x=!0,yield{type:"usage",usage:g,raw:h})}if(!x||c.size||!y)throw new Error("Anthropic stream ended before the message completed.");yield{type:"finish",finishReason:y==="tool_use"?"tool_calls":y==="max_tokens"?"length":"stop",raw:{stop_reason:y}}}finally{m.cleanup()}}s(O,"streamAnthropicChatCompletion");async function D(e){let{key:t,base:o}=k(e);o.pathname+="/models",o.searchParams.set("limit","1000");let r=b(e.signal),i=[],d=new Set;try{for(let p=0;p<20;p++){let a=await fetch(o,{redirect:"error",headers:{"x-api-key":t,"anthropic-version":"2023-06-01",Accept:"application/json"},signal:r.signal});if(!a.ok)throw new Error(`Anthropic model discovery failed: ${a.status} ${(await _(a,void 0,r.signal,r.touch)).replaceAll(t,"[redacted]")}`);let{text:f}=await I(a,5*1024*1024,{truncate:!1},r.signal,r.touch),m=JSON.parse(f);if(!Array.isArray(m.data))throw new Error("Invalid Anthropic model catalog.");for(let c of m.data){if(!c.id||d.has(c.id))continue;d.add(c.id);let g=e.settings.modelCaches.anthropic?.models.find(y=>y.id===c.id);i.push(T.parse({...g,id:c.id,displayName:c.display_name??c.id,providerId:"anthropic",source:"provider",contextWindow:c.max_input_tokens??g?.contextWindow,outputLimit:c.max_tokens??g?.outputLimit,capabilities:{...g?.capabilities,toolCalling:!0,vision:!0}}))}if(!m.has_more)return i;let l=m.last_id;if(!l||o.searchParams.get("after_id")===l)throw new Error("Anthropic model catalog did not advance.");o.searchParams.set("after_id",l)}throw new Error("Anthropic model catalog exceeded the page limit.")}finally{r.cleanup()}}s(D,"listAnthropicProviderModels");async function Y(e){let{base:t}=k(e),o=e.modelId??e.settings.providers.anthropic?.defaultModel??"",r=await D(e),i=r.some(p=>p.id===o),d=i?[]:[`Model ${o} was not returned by Anthropic model discovery.`];return{providerId:"anthropic",ok:!d.length,live:!0,baseUrl:t.toString(),modelId:o,modelFound:i,modelCount:r.length,errors:d}}s(Y,"validateAnthropicProvider");function E(e){return e==="anthropic"||S(e)}s(E,"isManagedLocalChatProvider");function re(e){return e.providerId==="anthropic"?O(e):C(e)}s(re,"streamManagedLocalChatCompletion");function $(e){let t=q(e.usage),o=e.requestKind??W({session:e.session,turn:e.turn??null,requestOrdinal:e.requestOrdinal}),r=e.completedAt,i=e.error&&P(e.error)||null;return{id:`usage_${L()}`,requestId:e.requestId,requestOrdinal:e.requestOrdinal,sessionId:e.session.id,turnId:e.turn?.id??null,provider:e.provider,model:e.model||"unknown",route:N(e.provider),source:t.promptTokens!==null||t.completionTokens!==null||t.totalTokens!==null?"provider_usage":"missing",requestKind:o,visibility:F(e.session,o),status:e.status,startedAt:e.startedAt,completedAt:r,durationMs:r?Math.max(0,Date.parse(r)-Date.parse(e.startedAt)):null,firstTokenMs:e.firstTokenMs,promptTokens:t.promptTokens,cachedPromptTokens:t.cachedPromptTokens,uncachedPromptTokens:t.uncachedPromptTokens,cacheWritePromptTokens:t.cacheWritePromptTokens,cacheTelemetrySource:t.cacheTelemetrySource,completionTokens:t.completionTokens,totalTokens:t.totalTokens,errorType:e.error?G(e.error):null,errorMessage:i,attribution:J({session:e.session,turn:e.turn??null,requestKind:o,requestOrdinal:e.requestOrdinal})}}s($,"createProviderRequestUsageRecord");async function ue(e){let t=new w(e);return await t.start(),t}s(ue,"startProviderRequestUsageRecorder");var w=class{constructor(t){this.input=t}input;static{s(this,"ProviderRequestUsageRecorder")}latestUsage=null;firstTokenMs=null;startedAt=v();startedAtMs=Date.now();async start(){await this.upsert("started",null)}observeDelta(t){this.firstTokenMs===null&&H(t)&&(this.firstTokenMs=Math.max(0,Date.now()-this.startedAtMs)),t.usage&&(this.latestUsage=t.usage)}async complete(){await this.upsert("completed",v())}async fail(t,o){await this.upsert(o,v(),t)}async upsert(t,o,r){await this.input.upsert($({session:this.input.session,turn:this.input.turn,provider:this.input.provider,model:this.input.model,requestId:this.input.requestId,requestOrdinal:this.input.requestOrdinal,requestKind:this.input.requestKind,startedAt:this.startedAt,completedAt:o,firstTokenMs:this.firstTokenMs,usage:this.latestUsage,status:t,error:r}))}};function H(e){return!!(e.text||e.reasoningText||e.toolCalls&&e.toolCalls.length>0)}s(H,"modelUsageDeltaHasOutput");function N(e){return e==="openpond"?"openpond_hosted":e==="codex"?"codex_app_server":E(e)?"local_byok":"unknown"}s(N,"modelUsageRoute");function W(e){let t=M(e.turn);return t?.subagentRunId||t?.workflowKind==="subagent"?"subagent":e.turn&&K(e.turn)?"slash_command":e.requestOrdinal===0?"chat_turn":"tool_loop"}s(W,"modelUsageRequestKind");function F(e,t){return e.systemKind?"system":t==="context_compaction"||t==="create_improve_planner"||t==="harness_refiner"||t==="subagent"||t==="codex_context"?"background":"user_facing"}s(F,"modelUsageVisibility");function J(e){let t=M(e.turn),o=K(e.turn);return{surface:t?.surface??V(e.session,e.requestKind),workflowKind:t?.workflowKind??z(e.requestKind,e.requestOrdinal,o),sessionId:e.session.id,turnId:e.turn?.id??null,goalId:t?.goalId??null,subagentRunId:t?.subagentRunId??null,subagentRoleId:t?.subagentRoleId??null,createImproveRunId:t?.createImproveRunId??e.turn?.createImproveRun?.id??null,commandName:o,commandSource:t?.commandSource??B(e.turn,o),appId:e.session.appId,workspaceKind:e.session.workspaceKind??null,workspaceId:e.session.workspaceId??null,localProjectId:e.session.localProjectId??null,cloudProjectId:e.session.cloudProjectId??null,sourceEventSequence:null}}s(J,"modelUsageAttribution");function V(e,t){return t==="create_improve_planner"?"create_improve":t==="harness_refiner"?"system":t==="context_compaction"?"compaction":"chat"}s(V,"usageSurface");function z(e,t,o){return e==="create_improve_planner"?"planner":e==="harness_refiner"?"other":e==="context_compaction"?"summary":e==="subagent"?"subagent":o||e==="slash_command"?"slash_command":t===0?"direct_chat":"tool_loop"}s(z,"usageWorkflowKind");function M(e){if(!e)return null;let t=U.safeParse(e.metadata?.usageAttribution);return t.success?t.data:null}s(M,"usageRequestAttributionFromTurn");function K(e){if(!e)return null;let o=M(e)?.commandName;if(typeof o=="string"&&o.trim())return o.trim();let r=e.createImproveRun?.command;return typeof r=="string"&&r.trim().startsWith("/")?r.trim():null}s(K,"commandNameFromTurn");function B(e,t){return e?.createImproveRun?.metadata?.source==="native_model_tool"?"model_tool":t?"prompt_parse":null}s(B,"commandSourceFromTurn");function G(e){return e instanceof Error&&e.name.trim()?e.name.trim():"Error"}s(G,"errorType");export{D as a,Y as b,E as c,re as d,$ as e,ue as f};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as _}from"./chunk-ZWEY66RT.js";import{a as J}from"./chunk-XD4ZIQZ2.js";import{b as U}from"./chunk-RHMULF56.js";import{I as z,K as V,ja as M,na as G,v as O}from"./chunk-CJDGLPNX.js";import{aa as N}from"./chunk-5ZNE43XC.js";import{Pb as F,Rb as q,qb as C,ub as A}from"./chunk-QAFXQHHG.js";import{d as H,e as b,ga as x,ja as j}from"./chunk-ZY32SZ2P.js";import{f as T}from"./chunk-HNQPEOJD.js";import{c as I,d as S,e as W,j as $,m as L,n as c}from"./chunk-RCT3O3HQ.js";import{A as P}from"./chunk-X2J2P5ZT.js";import{a as h}from"./chunk-FTQLQJQV.js";import Y from"node:path";import{constants as K}from"node:fs";import{open as ae,realpath as X}from"node:fs/promises";async function Q(e){let i=e.attempt.profileNative,p=P.array($).max(16).parse(e.attempt.artifactRefs??[]);if(!p.length)return[];if(!i||!e.storeDir)throw new Error("The actual retained artifact owner is unavailable.");await e.authorize();let t=await e.events(i.turnId);if(c(t)!==i.traceHash||t.some(r=>r.sessionId!==i.sessionId||r.turnId!==i.turnId))throw new Error("The saved artifacts differ from their actual retained case trace.");let o=[],l=0;for(let r of p){let f=t.filter(d=>(d.action==="work_output_save"||d.action==="sandbox_save_output")&&d.status==="completed").flatMap(d=>{let k=P.object({outputRef:M}).passthrough().safeParse(d.data);return k.success?[k.data.outputRef]:[]}).filter(d=>`${i.sessionId}/${d.id}/${d.revision}/${d.title}`===r.id&&d.sourceTaskId===i.sessionId&&d.sourceTurnId===i.turnId&&d.sha256===r.contentHash&&d.sizeBytes===r.sizeBytes&&d.contentType===r.mediaType);if(f.length!==1)throw new Error("The selected artifact has no unique actual saved output.");let s=f[0];if(s.location.kind!=="local"&&(s.location.kind!=="managed"||!e.readManaged)||s.sizeBytes>G)throw new Error("The retained artifact has no supported local byte owner.");if((l+=s.sizeBytes)>2e7)throw new Error("The retained artifacts exceed their aggregate grading byte limit.");await e.authorize(),e.signal?.throwIfAborted();let a;if(s.location.kind==="managed")a=await e.readManaged(s,e.signal);else if(s.location.kind==="local"){let d=await X(Y.join(e.storeDir,"work","outputs")),k=await X(s.location.path);if(!k.startsWith(`${d}${Y.sep}`))throw new Error("The artifact escaped canonical output storage.");let w=await ae(k,K.O_RDONLY|K.O_NOFOLLOW);try{let g=await w.stat();if(!g.isFile()||g.size!==s.sizeBytes)throw new Error("The artifact bytes changed.");a=await w.readFile()}finally{await w.close()}}else throw new Error("The saved artifact has no admitted byte owner.");if(a.length!==s.sizeBytes||L(a)!==s.sha256)throw new Error("The artifact bytes differ from their sealed receipt.");await e.authorize(),o.push({reference:r,title:s.title,contentType:s.contentType,base64:a.toString("base64"),...s.contentType.startsWith("text/")||s.contentType==="application/json"?{text:new TextDecoder("utf8",{fatal:!0}).decode(a)}:{}})}return await e.authorize(),o}h(Q,"readLocalProfileArtifacts");import oe from"node:path";async function Z(e,i){if(e.limits.maximumSpendUsd===null)return;let p=process.env.OPENPOND_API_KEY?.trim(),t=process.env.OPENPOND_OPCHAT_API_URL?.trim();if(!p||!t)throw new Error("Profile evaluation requires an admitted hosted spend ceiling.");let o=new URL(`${t.replace(/\/+$/,"")}/experiment-budget`);if(o.protocol!=="https:"||o.username||o.password||o.search||o.hash)throw new Error("Profile evaluation spend authority URL is invalid.");o.searchParams.set("runId",e.id),o.searchParams.set("manifestHash",e.contentHash);let l=await fetch(o,{headers:{Authorization:`Bearer ${p}`},signal:i});if(!l.ok)throw new Error("The exact Profile evaluation spend ceiling is unavailable.");let r=P.object({runId:P.string(),manifestHash:P.string(),maximumCostUsd:P.number().positive()}).strict().parse(await l.json());if(r.runId!==e.id||r.manifestHash!==e.contentHash||r.maximumCostUsd!==e.limits.maximumSpendUsd)throw new Error("Profile evaluation spend authority differs from its admitted manifest.")}h(Z,"assertProfileEvaluationSpendAuthority");async function ee(e){e.signal?.throwIfAborted();let i,p,t=h(()=>{},"rejectCancellation"),o=new Promise((s,a)=>{t=a}),l=h((s,a)=>{p||(p=new Error(s),e.onInterrupt?.(a),e.interrupt?(i=e.interrupt(s),i.catch(()=>{})):t(p))},"cancel"),r=h(()=>l("Profile evaluation run cancelled.","cancelled"),"aborted"),f=setTimeout(()=>l(`Profile evaluation case exceeded its ${e.timeoutMs}ms timeout.`,"timed_out"),e.timeoutMs);e.signal?.addEventListener("abort",r,{once:!0});try{e.signal?.aborted&&r();let s=await Promise.race([e.send(),o]);if(i){let a=await i;if(a.status==="in_progress"||!a.completedAt)throw new Error("Profile evaluation cleanup remains unconfirmed.")}if(s.status==="in_progress"||!s.completedAt)throw new Error("Workflow evaluation turn did not settle.");return s}catch(s){if(i){let a=await i;if(a.status==="in_progress"||!a.completedAt)throw new Error("Profile evaluation cleanup remains unconfirmed.",{cause:s})}throw s}finally{clearTimeout(f),e.signal?.removeEventListener("abort",r)}}h(ee,"awaitProfileEvaluationTurn");function te(e){let i=e.manifest.profileEvaluation,p=e.manifest.policy;if(!i||p.kind!=="model"||e.manifest.execution.kind!=="harness")throw new Error("Profile evaluation requires a released source and model policy.");if(i.profileId!==e.profileRef.profileId||i.profileId!==e.binding.profileId||i.sourceRevision!==e.binding.sourceRevision||i.harnessRelease.id!==e.binding.harnessRelease.id||i.harnessRelease.contentHash!==e.binding.harnessRelease.contentHash||(e.binding.schemaVersion==="openpond.profileWorkflowBinding.v1"?i.target.kind!=="workflow"||i.target.workflowId!==e.binding.workflowId:i.target.kind==="workflow"||c(i.target)!==c(e.binding.target)))throw new Error("Profile evaluation binding differs from its admitted source.");if(p.model.provider!==e.modelRef.providerId||p.model.model!==e.modelRef.modelId||p.configurationHash!==e.modelConfigurationHash)throw new Error("Workflow evaluation model differs from its admitted configuration.");return async t=>{if(c(t.source)!==c(i))throw new Error("Workflow evaluation case differs from its admitted Profile source.");t.signal?.throwIfAborted(),await(e.assertSpendAuthority??Z)(e.manifest,t.signal);let o=!!(e.attachments?.length||e.requiredOutputs?.length),l=o&&!e.ownedSessionMetadata?.localProfileExperiment&&e.profileRef.source==="local"&&(e.modelRef.providerId==="codex"||U(e.modelRef.providerId)),r=await e.createSession({...o?{experience:"work"}:{},provider:e.modelRef.providerId,modelRef:e.modelRef,currentProfile:e.profileRef,...e.binding.schemaVersion==="openpond.profileWorkflowBinding.v1"?{profileWorkflowBinding:e.binding}:{profileComponentBinding:e.binding},hiddenFromDefaultSidebar:!0,metadata:{profileEvaluationRun:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:t.task.id,seed:t.seed,...o&&e.profileRef.source==="local"?{workspaceTarget:"local"}:{},...o?{profileEvaluationOutputs:e.requiredOutputs??[]}:{},...e.ownedSessionMetadata}}),f=[...o?[l?`This is a local evaluation run. Complete the requested task using its public inputs. Save these required files at their declared paths relative to the current task workspace: ${JSON.stringify(e.requiredOutputs??[])}. The app preserves those declared files automatically when the turn finishes; work_save_output is not a shell command and is not needed here. For headless tools that write user preferences, use writable configuration, cache and profile directories within this task workspace and a bounded command timeout. Send the requested final response to finish the case. Private grading runs afterward; do not wait for grader feedback.`:"This is an evaluation run. Complete the requested task using its public inputs. work_exec starts in writable Work storage; inputs are ../inputs and released policy source is ../harness. When work_finish is available, create every declared output in Work and call work_finish with the path of your complete working response file, then send a short final answer. Otherwise save each required output with work_save_output and send your final response. Private grading runs after your final response; do not wait for grader feedback."]:[],typeof t.task.input=="string"?t.task.input:JSON.stringify(t.task.input),...Object.keys(t.task.policyVisibleContext).length?[`Policy-visible task context:
2
+ import{c as _}from"./chunk-OUJ63LMU.js";import{a as J}from"./chunk-PACLKDTN.js";import{b as U}from"./chunk-RHMULF56.js";import{I as z,K as V,ja as M,na as G,v as O}from"./chunk-HG2YFMVU.js";import{aa as N}from"./chunk-BU6MW65V.js";import{Pb as F,Rb as q,v as C,z as A}from"./chunk-D6L6UNUQ.js";import{d as H,e as b,ga as x,ja as j}from"./chunk-ZY32SZ2P.js";import{f as T}from"./chunk-HNQPEOJD.js";import{c as I,d as S,e as W,j as $,m as L,n as c}from"./chunk-RCT3O3HQ.js";import{A as P}from"./chunk-X2J2P5ZT.js";import{a as h}from"./chunk-FTQLQJQV.js";import Y from"node:path";import{constants as K}from"node:fs";import{open as ae,realpath as X}from"node:fs/promises";async function Q(e){let i=e.attempt.profileNative,p=P.array($).max(16).parse(e.attempt.artifactRefs??[]);if(!p.length)return[];if(!i||!e.storeDir)throw new Error("The actual retained artifact owner is unavailable.");await e.authorize();let t=await e.events(i.turnId);if(c(t)!==i.traceHash||t.some(r=>r.sessionId!==i.sessionId||r.turnId!==i.turnId))throw new Error("The saved artifacts differ from their actual retained case trace.");let o=[],l=0;for(let r of p){let f=t.filter(d=>(d.action==="work_output_save"||d.action==="sandbox_save_output")&&d.status==="completed").flatMap(d=>{let k=P.object({outputRef:M}).passthrough().safeParse(d.data);return k.success?[k.data.outputRef]:[]}).filter(d=>`${i.sessionId}/${d.id}/${d.revision}/${d.title}`===r.id&&d.sourceTaskId===i.sessionId&&d.sourceTurnId===i.turnId&&d.sha256===r.contentHash&&d.sizeBytes===r.sizeBytes&&d.contentType===r.mediaType);if(f.length!==1)throw new Error("The selected artifact has no unique actual saved output.");let s=f[0];if(s.location.kind!=="local"&&(s.location.kind!=="managed"||!e.readManaged)||s.sizeBytes>G)throw new Error("The retained artifact has no supported local byte owner.");if((l+=s.sizeBytes)>2e7)throw new Error("The retained artifacts exceed their aggregate grading byte limit.");await e.authorize(),e.signal?.throwIfAborted();let a;if(s.location.kind==="managed")a=await e.readManaged(s,e.signal);else if(s.location.kind==="local"){let d=await X(Y.join(e.storeDir,"work","outputs")),k=await X(s.location.path);if(!k.startsWith(`${d}${Y.sep}`))throw new Error("The artifact escaped canonical output storage.");let w=await ae(k,K.O_RDONLY|K.O_NOFOLLOW);try{let g=await w.stat();if(!g.isFile()||g.size!==s.sizeBytes)throw new Error("The artifact bytes changed.");a=await w.readFile()}finally{await w.close()}}else throw new Error("The saved artifact has no admitted byte owner.");if(a.length!==s.sizeBytes||L(a)!==s.sha256)throw new Error("The artifact bytes differ from their sealed receipt.");await e.authorize(),o.push({reference:r,title:s.title,contentType:s.contentType,base64:a.toString("base64"),...s.contentType.startsWith("text/")||s.contentType==="application/json"?{text:new TextDecoder("utf8",{fatal:!0}).decode(a)}:{}})}return await e.authorize(),o}h(Q,"readLocalProfileArtifacts");import oe from"node:path";async function Z(e,i){if(e.limits.maximumSpendUsd===null)return;let p=process.env.OPENPOND_API_KEY?.trim(),t=process.env.OPENPOND_OPCHAT_API_URL?.trim();if(!p||!t)throw new Error("Profile evaluation requires an admitted hosted spend ceiling.");let o=new URL(`${t.replace(/\/+$/,"")}/experiment-budget`);if(o.protocol!=="https:"||o.username||o.password||o.search||o.hash)throw new Error("Profile evaluation spend authority URL is invalid.");o.searchParams.set("runId",e.id),o.searchParams.set("manifestHash",e.contentHash);let l=await fetch(o,{headers:{Authorization:`Bearer ${p}`},signal:i});if(!l.ok)throw new Error("The exact Profile evaluation spend ceiling is unavailable.");let r=P.object({runId:P.string(),manifestHash:P.string(),maximumCostUsd:P.number().positive()}).strict().parse(await l.json());if(r.runId!==e.id||r.manifestHash!==e.contentHash||r.maximumCostUsd!==e.limits.maximumSpendUsd)throw new Error("Profile evaluation spend authority differs from its admitted manifest.")}h(Z,"assertProfileEvaluationSpendAuthority");async function ee(e){e.signal?.throwIfAborted();let i,p,t=h(()=>{},"rejectCancellation"),o=new Promise((s,a)=>{t=a}),l=h((s,a)=>{p||(p=new Error(s),e.onInterrupt?.(a),e.interrupt?(i=e.interrupt(s),i.catch(()=>{})):t(p))},"cancel"),r=h(()=>l("Profile evaluation run cancelled.","cancelled"),"aborted"),f=setTimeout(()=>l(`Profile evaluation case exceeded its ${e.timeoutMs}ms timeout.`,"timed_out"),e.timeoutMs);e.signal?.addEventListener("abort",r,{once:!0});try{e.signal?.aborted&&r();let s=await Promise.race([e.send(),o]);if(i){let a=await i;if(a.status==="in_progress"||!a.completedAt)throw new Error("Profile evaluation cleanup remains unconfirmed.")}if(s.status==="in_progress"||!s.completedAt)throw new Error("Workflow evaluation turn did not settle.");return s}catch(s){if(i){let a=await i;if(a.status==="in_progress"||!a.completedAt)throw new Error("Profile evaluation cleanup remains unconfirmed.",{cause:s})}throw s}finally{clearTimeout(f),e.signal?.removeEventListener("abort",r)}}h(ee,"awaitProfileEvaluationTurn");function te(e){let i=e.manifest.profileEvaluation,p=e.manifest.policy;if(!i||p.kind!=="model"||e.manifest.execution.kind!=="harness")throw new Error("Profile evaluation requires a released source and model policy.");if(i.profileId!==e.profileRef.profileId||i.profileId!==e.binding.profileId||i.sourceRevision!==e.binding.sourceRevision||i.harnessRelease.id!==e.binding.harnessRelease.id||i.harnessRelease.contentHash!==e.binding.harnessRelease.contentHash||(e.binding.schemaVersion==="openpond.profileWorkflowBinding.v1"?i.target.kind!=="workflow"||i.target.workflowId!==e.binding.workflowId:i.target.kind==="workflow"||c(i.target)!==c(e.binding.target)))throw new Error("Profile evaluation binding differs from its admitted source.");if(p.model.provider!==e.modelRef.providerId||p.model.model!==e.modelRef.modelId||p.configurationHash!==e.modelConfigurationHash)throw new Error("Workflow evaluation model differs from its admitted configuration.");return async t=>{if(c(t.source)!==c(i))throw new Error("Workflow evaluation case differs from its admitted Profile source.");t.signal?.throwIfAborted(),await(e.assertSpendAuthority??Z)(e.manifest,t.signal);let o=!!(e.attachments?.length||e.requiredOutputs?.length),l=o&&!e.ownedSessionMetadata?.localProfileExperiment&&e.profileRef.source==="local"&&(e.modelRef.providerId==="codex"||U(e.modelRef.providerId)),r=await e.createSession({...o?{experience:"work"}:{},provider:e.modelRef.providerId,modelRef:e.modelRef,currentProfile:e.profileRef,...e.binding.schemaVersion==="openpond.profileWorkflowBinding.v1"?{profileWorkflowBinding:e.binding}:{profileComponentBinding:e.binding},hiddenFromDefaultSidebar:!0,metadata:{profileEvaluationRun:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:t.task.id,seed:t.seed,...o&&e.profileRef.source==="local"?{workspaceTarget:"local"}:{},...o?{profileEvaluationOutputs:e.requiredOutputs??[]}:{},...e.ownedSessionMetadata}}),f=[...o?[l?`This is a local evaluation run. Complete the requested task using its public inputs. Save these required files at their declared paths relative to the current task workspace: ${JSON.stringify(e.requiredOutputs??[])}. The app preserves those declared files automatically when the turn finishes; work_save_output is not a shell command and is not needed here. For headless tools that write user preferences, use writable configuration, cache and profile directories within this task workspace and a bounded command timeout. Send the requested final response to finish the case. Private grading runs afterward; do not wait for grader feedback.`:"This is an evaluation run. Complete the requested task using its public inputs. work_exec starts in writable Work storage; inputs are ../inputs and released policy source is ../harness. When work_finish is available, create every declared output in Work and call work_finish with the path of your complete working response file, then send a short final answer. Otherwise save each required output with work_save_output and send your final response. Private grading runs after your final response; do not wait for grader feedback."]:[],typeof t.task.input=="string"?t.task.input:JSON.stringify(t.task.input),...Object.keys(t.task.policyVisibleContext).length?[`Policy-visible task context:
3
3
  ${JSON.stringify(t.task.policyVisibleContext)}`]:[]].join(`
4
4
 
5
5
  `)||" ";await e.admitSession?.(r);try{let s=!1,a=await ee({signal:t.signal,timeoutMs:e.manifest.limits.timeoutMs,onInterrupt:h(n=>{s=n==="timed_out",e.onInterrupt?.(n)},"onInterrupt"),...e.interruptSessionTurn?{interrupt:h(n=>e.interruptSessionTurn(r.id,n),"interrupt")}:{},send:h(()=>{let n={prompt:f,...e.binding.schemaVersion==="openpond.profileWorkflowBinding.v1"?{workflowInput:{}}:e.binding.target.kind==="agent_action"?{workflowInput:t.task.input}:{},modelRef:e.modelRef,approvalPolicy:"on-request",...o?{sandbox:"workspace-write",codexPermissionMode:"default"}:{},...e.attachments?.length?{attachments:e.attachments}:{}};return e.modelRef.providerId==="codex"?e.sendTurn(r.id,n,{nativeTimeoutMs:e.manifest.limits.timeoutMs}):e.sendTurn(r.id,n)},"send")});if(a.status==="in_progress"||!a.completedAt)throw new Error("Workflow evaluation turn did not settle.");if(await e.validateTerminalTurn?.(r,a),!a.harnessSnapshot||a.harnessSnapshot.harnessRelease.id!==i.harnessRelease.id||a.harnessSnapshot.harnessRelease.contentHash!==i.harnessRelease.contentHash)throw new Error("Workflow evaluation turn executed a different Harness release.");if(!a.modelRef||c(a.modelRef)!==c(e.modelRef))throw new Error("Workflow evaluation turn executed a different model.");let d=await e.runtimeEventsForTurn(a.id),k=d.filter(n=>n.name==="workspace_action_result"&&(n.action==="sandbox_save_output"||n.action==="work_output_save")&&n.status==="completed"&&n.turnId===a.id).flatMap(n=>D(n.data)).filter(n=>n.sourceTaskId===r.id&&n.sourceTurnId===a.id&&n.location.kind!=="external"),g=(e.requiredOutputs??[]).flatMap(n=>{let y=[...k].reverse().find(B=>B.title===n.path&&B.contentType===n.mediaType&&(n.maxBytes===null||B.sizeBytes<=n.maxBytes));return y?[y]:[]}).map(n=>({id:`${r.id}/${n.id}/${n.revision}/${n.title}`,contentHash:n.sha256,mediaType:n.contentType,sizeBytes:n.sizeBytes})),v=-1;for(let n=d.length-1;n>=0;n-=1)if(d[n]?.name.endsWith(".delta")){v=n;break}let R=d.flatMap((n,y)=>n.name.endsWith(".delta")&&y!==v?[]:[n.id]);if(R.length+g.length>1e4)throw new Error("Profile evaluation produced more than 10,000 substantive evidence references.");let u=J(d,i.target.kind,a.status),m=Math.min(e.manifest.limits.maxOutputBytes,e.maximumOutputBytes??e.manifest.limits.maxOutputBytes);if(!Number.isSafeInteger(m)||m<1)throw new Error("Profile evaluation requires a positive bounded output limit.");let E=Buffer.byteLength(u,"utf8")>m;if(E&&!e.retainOutputLimitEvidence)throw new Error(`Profile evaluation case exceeded its ${m}-byte output limit.`);return E&&e.onOutputLimit?.(c(u)),{evidence:{output:{text:E?"":u},runtimeEventRefs:R,artifactRefs:g.map(n=>n.id),...E?{infrastructureError:`Profile evaluation case exceeded its ${m}-byte output limit.`}:a.status!=="completed"?{infrastructureError:a.error??`Workflow evaluation turn ${a.status}.`}:{}},traceHash:c(d),retainedEvidenceRef:{sessionId:r.id,turnId:a.id},artifactRefs:g,startedAt:a.startedAt,completedAt:a.completedAt,latencyMs:Math.max(0,Date.parse(a.completedAt)-Date.parse(a.startedAt)),costUsd:null,terminal:a.status==="completed"&&!E,failureClass:a.status==="completed"&&!E?null:a.status==="interrupted"?s?"timeout":"cancelled":"infrastructure_failure"}}finally{await e.settleSession?.(r.id)}}}h(te,"createProfileWorkflowEvaluationExecutor");function D(e,i=0){if(e==null||i>8)return[];let p=M.safeParse(e);return p.success?[p.data]:Array.isArray(e)?e.flatMap(t=>D(t,i+1)):typeof e!="object"?[]:Object.values(e).flatMap(t=>D(t,i+1))}h(D,"findFileOutputs");var re=P.object({manifest:C,taskset:x,profileRef:O,binding:P.union([H,b]),modelRef:T,modelConfigurationHash:S,taskId:I,seed:P.string().trim().min(1).max(500)}).strict();function De(e){return async(i,p)=>{let t=re.parse(i),o=await e.selectedProfile();if(!o||c(o.ref)!==c(t.profileRef)||o.sourceRevision!==t.binding.sourceRevision)throw new Error("Evaluation Profile differs from the app-server's authorized selection.");let l=await e.loadCatalog({ref:o.ref,sourceRevision:o.sourceRevision,harnessRelease:t.binding.harnessRelease}),r=t.manifest.profileEvaluation,f=await _({manifest:t.manifest,taskset:t.taskset,selected:{profileRef:o.ref,sourceRevision:o.sourceRevision,harnessRelease:t.binding.harnessRelease},loadCatalog:e.loadCatalog,resolveExternalDataset:e.resolveExternalDataset}),s=f?.definition??l.definitions.find(u=>u.id===r?.definitionId);if(A(t.manifest,t.taskset,f?.catalog??{schemaVersion:"openpond.profileEvaluations.v1",definitions:l.definitions,suites:l.suites}),!r||!s||(f?c(f.catalog):l.catalogHash)!==r.catalogHash||c(s)!==r.definitionHash||c(s.target)!==c(r.target)||s.tasksetRelease.id!==t.manifest.tasksetRelease.id||s.tasksetRelease.contentHash!==t.manifest.tasksetRelease.contentHash||!s.taskIds.includes(t.taskId)||!s.seeds.includes(t.seed)||t.manifest.population.filter(u=>u.taskId===t.taskId&&u.seed===t.seed).length!==1)throw new Error("Evaluation case differs from its released definition or admitted population.");let a=t.taskset.tasks.find(u=>u.id===t.taskId),d=j(a);if(d.artifactRefs.length!==a.artifactRefs.length||d.artifactRefs.length>z.maxAttachments)throw new Error("Evaluation case has an unauthorized task attachment.");if(d.artifactRefs.length&&!e.storeDir)throw new Error("Evaluation case attachment storage is unavailable.");let k=f?.packageValue??(d.artifactRefs.length||a.requiredOutputs?.length?await e.loadTasksetPackage(s,o.ref.profileId,t.binding.harnessRelease):null);if(k&&(k.contentHash!==t.manifest.packageHash||k.taskset.contentHash!==t.taskset.contentHash))throw new Error("Evaluation case Taskset differs from its frozen package or admitted manifest.");let w=d.artifactRefs.map(u=>{if(u.mediaType!=="application/pdf"||u.sizeBytes>z.maxAttachmentBytes)throw new Error(`Evaluation case attachment ${u.id} is not an admitted PDF.`);let m=k?.files.find(E=>E.asset.id===u.id);if(!m||c(m.asset)!==c(u))throw new Error(`Evaluation case attachment ${u.id} differs from its frozen Taskset file.`);return N(m),V.parse({id:u.id,name:oe.basename(u.path),kind:"file",mediaType:u.mediaType,sizeBytes:u.sizeBytes,contentsBase64:m.base64})}),g=te({manifest:t.manifest,profileRef:o.ref,binding:t.binding,modelRef:t.modelRef,modelConfigurationHash:t.modelConfigurationHash,createSession:e.createSession,sendTurn:e.sendTurn,...e.admitSession?{admitSession:h(u=>e.admitSession(u,t.manifest,t.taskId,t.seed,w),"admitSession")}:{},...e.settleSession?{settleSession:e.settleSession}:{},interruptSessionTurn:e.interruptSessionTurn,runtimeEventsForTurn:h(u=>e.store.runtimeEventsForTurn(u),"runtimeEventsForTurn"),attachments:w,requiredOutputs:a.requiredOutputs??[]});f&&await f.authorize(),p?.throwIfAborted();let v=await g({task:d,seed:t.seed,source:r,...p?{signal:p}:{}}),R=await Q({storeDir:e.storeDir,readManaged:e.readManagedArtifact,attempt:{artifactRefs:v.artifactRefs,profileNative:v.retainedEvidenceRef?.sessionId&&v.retainedEvidenceRef.turnId?{sessionId:v.retainedEvidenceRef.sessionId,turnId:v.retainedEvidenceRef.turnId,traceHash:v.traceHash}:null},events:h(u=>e.store.runtimeEventsForTurn(u),"events"),signal:p,authorize:h(async()=>{p?.throwIfAborted();let u=await e.selectedProfile();if(!u||c(u)!==c(o))throw new Error("The current artifact Profile authority changed.");f&&await f.authorize()},"authorize")});return{...v,evidence:{...v.evidence,artifacts:R,caseOwner:{...v.retainedEvidenceRef,traceHash:v.traceHash}}}}}h(De,"createProfileEvaluationCaseService");var ie=P.object({manifest:C,taskset:x,profileRef:O,binding:P.union([H,b]),modelRef:T,modelConfigurationHash:S}).strict();function Ve(e){let i=new Map,p=h(async(t,o)=>{let l=await e.selectedProfile();if(!l||c(l.ref)!==c(t.profileRef)||l.sourceRevision!==t.binding.sourceRevision)throw new Error("Evaluation Profile differs from the app-server's authorized selection.");let r=await e.loadCatalog({ref:l.ref,sourceRevision:l.sourceRevision,harnessRelease:t.binding.harnessRelease}),f=await _({manifest:t.manifest,taskset:t.taskset,selected:{profileRef:l.ref,sourceRevision:l.sourceRevision,harnessRelease:t.binding.harnessRelease},loadCatalog:e.loadCatalog,resolveExternalDataset:e.resolveExternalDataset}),s=f?.catalog??{schemaVersion:"openpond.profileEvaluations.v1",definitions:r.definitions,suites:r.suites};if(A(t.manifest,t.taskset,s),!e.privateGrading&&(t.taskset.graders.some(m=>m.kind==="model_judge"||m.kind==="custom_verifier")||t.taskset.metrics?.aggregation==="custom"))throw new Error("Profile evaluation cannot run this Taskset's model judge, custom verifier, or custom metric in the current app-server runtime.");let a=t.manifest.profileEvaluation,d=t.manifest.policy;if(a.profileId!==l.ref.profileId||a.sourceRevision!==t.binding.sourceRevision||a.harnessRelease.id!==t.binding.harnessRelease.id||a.harnessRelease.contentHash!==t.binding.harnessRelease.contentHash||(t.binding.schemaVersion==="openpond.profileWorkflowBinding.v1"?a.target.kind!=="workflow"||a.target.workflowId!==t.binding.workflowId:a.target.kind==="workflow"||c(a.target)!==c(t.binding.target))||d.kind!=="model"||d.model.provider!==t.modelRef.providerId||d.model.model!==t.modelRef.modelId||d.configurationHash!==t.modelConfigurationHash)throw new Error("Evaluation request differs from its admitted Profile workflow or model configuration.");let k=s.definitions.find(m=>m.id===a.definitionId),w=e.privateGrading?f?.packageValue??await(e.loadTasksetPackage?e.loadTasksetPackage(k,l.ref.profileId,a.harnessRelease):Promise.reject(new Error("The current private Taskset owner is unavailable."))):null,g=w?await e.privateGrading?.(t.manifest,w,o):void 0;await g?.authorize();let v=await e.store.getProfileEvaluationRun(t.manifest.id);if(v){if(v.manifest.contentHash!==t.manifest.contentHash||c(v.profileRef)!==c(l.ref))throw new Error(`Profile evaluation run ${t.manifest.id} already exists with another manifest.`);return v}f&&await f.authorize(),o?.throwIfAborted();let R=await q({manifest:t.manifest,taskset:t.taskset,catalog:s,...g?{customVerifier:g.customVerifier,modelJudge:g.modelJudge,metricSource:g.metricSource,metricExecutor:g.metricExecutor}:{},execute:h(({task:m,seed:E,signal:n})=>e.executeCase({...t,taskId:m.id,seed:E},n),"execute"),...o?{signal:o}:{},saveGrade:h(async m=>(await e.store.saveProfileEvaluationGrade(m),{id:m.contentHash,contentHash:m.contentHash,mediaType:"application/json",sizeBytes:null}),"saveGrade"),saveReceipt:h(async m=>{await e.store.saveProfileEvaluationReceipt(m)},"saveReceipt"),loadCompletedMember:h(async({receiptId:m})=>{let E=await e.store.getProfileEvaluationReceipt(m);if(!E)return null;let n=E.graderEvidenceRefs[0],y=n&&await e.store.getProfileEvaluationGrade(n.contentHash);if(!y)throw new Error(`Retained Profile evaluation receipt ${m} is missing its grade.`);return{receipt:E,grade:y}},"loadCompletedMember")});await g?.authorize(),f&&await f.authorize();let u={profileRef:l.ref,manifest:t.manifest,metric:R.metric,gradeRefs:R.grades.map(m=>({id:m.contentHash,contentHash:m.contentHash})),receiptRefs:R.receipts.map(m=>({id:m.id,contentHash:m.contentHash})),passRate:R.passRate,passed:R.passed,completedAt:new Date().toISOString()};return e.store.saveProfileEvaluationRun({...u,contentHash:c(u)})},"run");return(t,o)=>{let l=ie.parse(t),r=i.get(l.manifest.id);if(r){if(r.manifestHash!==l.manifest.contentHash)throw new Error(`Profile evaluation run ${l.manifest.id} is already running with another manifest.`);return r.promise}let f=p(l,o);return i.set(l.manifest.id,{manifestHash:l.manifest.contentHash,promise:f}),f.finally(()=>{i.get(l.manifest.id)?.promise===f&&i.delete(l.manifest.id)}).catch(()=>{}),f}}h(Ve,"createProfileEvaluationRunService");var se=P.object({id:I,suiteId:I,createdAt:W,modelRef:T,hostModelConfigurationHash:S.optional()}).strict();function Xe(e){let i=new Map,p=h(async t=>{let o=await e.selectedWorkflows(),l=await e.loadCatalog({ref:o.profileRef,sourceRevision:o.sourceRevision,harnessRelease:o.harnessRelease}),r={schemaVersion:"openpond.profileEvaluations.v1",definitions:l.definitions,suites:l.suites},f=r.suites.find(w=>w.id===t.suiteId);if(!f)throw new Error(`Profile evaluation suite ${t.suiteId} is absent from the selected release.`);let s=[];for(let w of f.definitionIds)s.push(await e.prepareRun({id:`suite-${c([t.id,w]).slice(0,32)}`,createdAt:t.createdAt,definitionId:w,modelRef:t.modelRef,...t.hostModelConfigurationHash?{hostModelConfigurationHash:t.hostModelConfigurationHash}:{}}));let a=await e.store.getProfileEvaluationSuiteRun(t.id);if(a){if(a.suiteId!==f.id||a.catalogHash!==c(r)||a.profileId!==o.profileRef.profileId||a.sourceRevision!==o.sourceRevision||a.harnessRelease.id!==o.harnessRelease.id||a.harnessRelease.contentHash!==o.harnessRelease.contentHash||a.createdAt!==t.createdAt)throw new Error(`Profile evaluation suite run ${t.id} already exists with another request.`);for(let[w,g]of a.members.entries()){let v=await e.store.getProfileEvaluationRun(g.runManifest.id);if(!v||v.contentHash!==g.runHash||v.manifest.contentHash!==g.runManifest.contentHash||v.manifest.contentHash!==s[w]?.manifest.contentHash)throw new Error("Retained Profile evaluation suite is missing member evidence.");let R=v.manifest.policy;if(R.kind!=="model"||R.model.provider!==t.modelRef.providerId||R.model.model!==t.modelRef.modelId)throw new Error(`Profile evaluation suite run ${t.id} already exists with another model.`)}return a}let d=[];for(let[w,g]of f.definitionIds.entries()){let v=s[w],R=await e.executeRun(v);d.push({definitionId:g,manifest:R.manifest,runHash:R.contentHash,passed:R.passed,score:R.metric.value})}let k=F({id:t.id,suiteId:f.id,catalog:r,members:d,createdAt:t.createdAt,completedAt:new Date().toISOString()});return e.store.saveProfileEvaluationSuiteRun(o.profileRef,r,k)},"run");return t=>{let o=se.parse(t),l=c(o),r=i.get(o.id);if(r){if(r.requestHash!==l)throw new Error(`Profile evaluation suite run ${o.id} is already running with another request.`);return r.promise}let f=p(o);return i.set(o.id,{requestHash:l,promise:f}),f.finally(()=>{i.get(o.id)?.promise===f&&i.delete(o.id)}).catch(()=>{}),f}}h(Xe,"createProfileEvaluationSuiteService");export{Q as a,te as b,De as c,Ve as d,Xe as e};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{k as W}from"./chunk-WD4KAKEX.js";import{d as U,e as Y}from"./chunk-JVMSN7LH.js";import{Ia as K,Ka as V,La as N,Y as v,_ as w,ka as q}from"./chunk-BU6MW65V.js";import{V as z,W as B,Xb as j,f as _,k as M,l as $,la as G,ma as D,ta as F,ua as L}from"./chunk-D6L6UNUQ.js";import{S as P}from"./chunk-4PUOWSDE.js";import{e as E,i as I}from"./chunk-OTDDXEQ6.js";import{i as x,l as C,n as u}from"./chunk-RCT3O3HQ.js";import{a as c}from"./chunk-FTQLQJQV.js";import{constants as b}from"node:fs";import{lstat as oe,open as ne,readdir as ie}from"node:fs/promises";import S from"node:path";function pe(e){let t=N(e.taskset),{agentSnapshot:a,harnessRelease:s}=e.releasedHarness?{agentSnapshot:E.parse(e.releasedHarness.agentSnapshot),harnessRelease:I.parse(e.releasedHarness.harnessRelease)}:Q(e.taskset,e.profile);if(s.agentSnapshot.id!==a.id||s.agentSnapshot.contentHash!==a.contentHash)throw new Error("Released Harness does not bind the supplied Agent snapshot.");let d=V(e.taskset),n=e.taskset.tasks.length?e.taskset.tasks:e.selectedTask?[e.selectedTask]:[];if(!n.length)throw new Error("A portable Taskset release requires at least one resolved task.");let{environmentRelease:i,verifierSetRelease:o,tasksetRelease:l}=K({taskset:e.taskset,selectedTasks:n,adapterId:e.adapterId??A(e.taskset),admittedTasksetRelease:e.tasksetRelease,rewardExecution:e.rewardExecution}),R=e.now??(()=>new Date().toISOString()),f=M({schemaVersion:"openpond.runManifest.v1",id:`run-manifest-${u([s.contentHash,l.contentHash,e.model]).slice(0,24)}`,harnessRelease:{id:s.id,contentHash:s.contentHash},tasksetRelease:{id:l.id,contentHash:l.contentHash},model:{provider:e.model.providerId,model:e.model.modelId,revision:null,artifactHash:null,tokenizerRevision:null,chatTemplateHash:null},runtimeTarget:{adapterId:e.adapterId??A(e.taskset),placement:"local",runtimeVersion:"desktop-v1",capabilityReceipt:u({environment:d,tools:t,capabilities:e.taskset.capabilities})},limits:{maxTurns:128,timeoutMs:e.taskset.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:null},approval:null,createdAt:R(),metadata:{sourceTasksetId:e.taskset.id,sourceTasksetRevision:e.taskset.revision,reasoningEffort:e.reasoningEffort??null}});return{agentSnapshot:a,harnessRelease:s,environmentRelease:i,verifierSetRelease:o,tasksetRelease:l,runManifest:f}}c(pe,"compileDesktopHarnessContext");function Q(e,t){let a=e.profileRelease?{id:e.profileRelease.id,contentHash:k(e.profileRelease.contentHash)}:t?.git?.head?{id:`source-${h(t.git.head)}`,contentHash:k(t.git.head)}:null;return W({sourceRelease:a,profileHead:t?.git?.head??null,skills:se(t),agents:re(t)})}c(Q,"compileTemporaryProfileHarness");function ee(e){let t=e.artifacts.map(T),a=e.artifacts.find(n=>n.kind==="environment_state")??e.artifacts.find(n=>n.kind==="runtime_trace")??e.artifacts.find(n=>n.kind==="raw_model_response"),s=J(e.attempt,e.grade),d=e.grade.components.map(n=>({id:`grader-${h(n.graderId)}-${e.grade.id}`,contentHash:u(n),mediaType:"application/vnd.openpond.grader-evidence+json",sizeBytes:Buffer.byteLength(C(n))}));return _.parse($({schemaVersion:"openpond.attemptReceipt.v1",id:`receipt-${u([e.manifest.contentHash,e.attempt.id,e.grade.id]).slice(0,24)}`,runManifest:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:e.attempt.taskId,seed:String(e.attempt.seed),terminal:!["infrastructure_failure","timeout","cancelled"].includes(s??""),failureClass:s,outputHash:e.attempt.infrastructureError?null:u(e.attempt.output),traceHash:a?k(a.sha256):u({attemptId:e.attempt.id,output:e.attempt.output,runtimeEventRefs:e.attempt.runtimeEventRefs,artifactRefs:e.attempt.artifactRefs,metadata:e.attempt.metadata}),artifactRefs:t,graderEvidenceRefs:d,startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,latencyMs:e.attempt.latencyMs,costUsd:e.attempt.costUsd,legacyAttemptRef:e.attempt.id,metadata:{legacyGradeRef:e.grade.id,rewardEligible:e.grade.rewardEligible,score:e.grade.score,passed:e.grade.passed,usage:e.attempt.metadata.usage??[]}}))}c(ee,"projectDesktopAttemptReceipt");function ue(e){let t=ee({manifest:e.context.runManifest,attempt:e.attempt,grade:e.grade,artifacts:e.artifacts}),a=e.context.tasksetRelease.tasks.find(r=>r.id===e.attempt.taskId);if(!a)throw new Error(`Task ${e.attempt.taskId} is absent from the admitted Taskset Release.`);let s=a.requiredOutputs??[],d=e.artifacts.filter(r=>r.kind==="output_artifact").map(r=>({path:typeof r.metadata.requiredOutputPath=="string"?r.metadata.requiredOutputPath:r.path,artifact:T(r),detectedMediaType:r.mediaType??null,status:"collected",parseStatus:X(r.metadata.parseStatus),schemaStatus:X(r.metadata.schemaStatus),evidenceRefs:[T(r)],metadata:{sourceArtifactId:r.id}})),n=F({id:`artifact-manifest-${t.id}`,attemptRef:{id:t.id,contentHash:t.contentHash},requiredOutputs:s,collectedArtifacts:d,createdAt:e.attempt.completedAt,metadata:{legacyAttemptRef:e.attempt.id}}),i=e.grade.components.map((r,O)=>te({component:r,grader:e.context.verifierSetRelease.graders.find(g=>g.id===r.graderId),evidenceRef:t.graderEvidenceRefs[O]??null,gradeScored:e.grade.score!==null,boundResult:e.grade.rewardComposition?.results.find(g=>g.graderId===r.graderId)})),o=L({requiredOutputs:s,manifest:n}),l=ae(e.attempt,e.grade),R=o.some(r=>r.status==="unscorable"&&r.failureOwner==="collector"),f=o.some(r=>r.status==="scored"&&!r.passed),p=l.outcomeClass==="completed"&&R?{outcomeClass:"collector_failure",failureOwner:"collector"}:l.outcomeClass==="completed"&&f?{outcomeClass:"incomplete_output",failureOwner:"policy"}:l,m=D({id:`reward-${u([t.contentHash,e.context.verifierSetRelease.contentHash,n.contentHash,e.grade.id]).slice(0,24)}`,attemptRef:{id:t.id,contentHash:t.contentHash},verifierSet:e.context.verifierSetRelease,artifactManifest:n,...p,components:[...i,...o],createdAt:e.grade.createdAt,metadata:{legacyGradeRef:e.grade.id,legacyAttemptRef:e.attempt.id,...e.grade.rewardComposition?{rewardComposition:e.grade.rewardComposition}:{}}});return{attemptReceipt:t,artifactManifest:n,rewardReceipt:m}}c(ue,"projectDesktopCanonicalReceipts");function Re(e){let t=e.artifacts.find(n=>n.kind==="runtime_trace")??e.artifacts.find(n=>n.kind==="raw_model_response"),a=t?T(t):{id:`trace-${e.canonical.attemptReceipt.id}`,contentHash:e.canonical.attemptReceipt.traceHash,mediaType:"application/vnd.openpond.attempt-trace+json",sizeBytes:null},s=e.canonical.rewardReceipt.outcomeClass==="task_deadline"||e.canonical.rewardReceipt.outcomeClass==="infrastructure_timeout",d=e.canonical.rewardReceipt.outcomeClass==="cancelled";return j({id:`rollout-${u([e.canonical.attemptReceipt.contentHash,e.canonical.rewardReceipt.contentHash,a.contentHash]).slice(0,24)}`,attemptReceipt:e.canonical.attemptReceipt,rewardReceipt:e.canonical.rewardReceipt,artifactManifestRef:{id:e.canonical.artifactManifest.id,contentHash:e.canonical.artifactManifest.contentHash},tasksetRelease:{id:e.context.tasksetRelease.id,contentHash:e.context.tasksetRelease.contentHash},environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},harnessRelease:{id:e.context.harnessRelease.id,contentHash:e.context.harnessRelease.contentHash},taskId:e.attempt.taskId,split:e.attempt.split,model:e.context.runManifest.model,seed:String(e.attempt.seed),traceRef:a,optimizerSample:e.optimizerSample??null,environmentExecutions:[{id:`environment-execution-${e.attempt.id}`,environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},status:d?"cancelled":s?"timed_out":e.canonical.rewardReceipt.status==="scored"?"completed":"failed",startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,traceRefs:[a],metadata:{legacyAttemptRef:e.attempt.id,runtimeEventCount:e.attempt.runtimeEventRefs.length}}],startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,metadata:{source:"openpond.desktop-local-runtime",optimizerSamplePresent:!!e.optimizerSample}})}c(Re,"projectDesktopCanonicalRollout");function te(e){if(!e.grader)throw new Error(`Grade component ${e.component.graderId} has no admitted Verifier definition.`);let t=(e.boundResult?e.boundResult.status==="scored":e.gradeScored)?"scored":"unscorable",a=t==="scored"&&e.component.rewardEligible,s=e.evidenceRef?[e.evidenceRef]:[];return{verifierId:e.component.graderId,verifierVersion:e.component.graderVersion,status:t,rawScore:t==="scored"?e.boundResult?.rawScore??e.component.score:null,normalizedScore:t==="scored"?e.boundResult?.normalizedScore??e.component.score:null,weight:e.grader.weight,passed:e.component.passed,hardGate:e.component.hardGate,rewardEligible:a,rewardContribution:a?e.component.score:null,failureOwner:e.component.passed?null:t==="scored"?"policy":"verifier",feedback:e.component.feedback?[e.component.feedback]:[],visibleEvidenceRefs:e.grader.privileged?[]:s,privilegedEvidenceRefs:e.grader.privileged?s:[],metadata:{judge:e.component.judge??null,calibrationStatus:e.component.calibrationStatus,legacyEvidenceRefs:e.component.evidenceRefs}}}c(te,"portableRewardComponent");function ae(e,t){let a=B.safeParse(e.metadata.outcomeClass);if(a.success){let d=e.metadata.failureOwner===null?null:z.safeParse(e.metadata.failureOwner);if(d!==null&&!d.success)throw new Error("Attempt has an invalid explicit failure owner.");return{outcomeClass:a.data,failureOwner:d===null?null:d.data}}let s=J(e,t);return s?G({failureClass:s,timeoutKind:e.metadata.timeoutKind==="task_deadline"?"task_deadline":"infrastructure_timeout"}):t.score===null?{outcomeClass:"verifier_failure",failureOwner:"verifier"}:t.passed?{outcomeClass:"completed",failureOwner:null}:{outcomeClass:"policy_failure",failureOwner:"policy"}}c(ae,"canonicalOutcome");function X(e){return e==="passed"||e==="failed"?e:"not_requested"}c(X,"artifactValidationStatus");function se(e){return(e?.skills??[]).filter(t=>t.enabled).map(t=>({id:`skill-${h(t.name)}`,path:`skills/${h(t.name)}/SKILL.md`,contentHash:k(t.sourceHash),sizeBytes:Math.max(0,t.charCount),mediaType:"text/markdown",visibility:"policy"}))}c(se,"portableSkills");function re(e){let t=new Map;for(let a of e?.agents??[])a.enabled&&t.set(a.id,u({name:a.name,path:a.path}));return[...t].map(([a,s])=>({id:`agent-${h(a)}`,path:`agents/${h(a)}/release.json`,contentHash:k(s),sizeBytes:0,mediaType:"application/vnd.openpond.agent-release+json",visibility:"policy"}))}c(re,"portableAgents");function A(e){let t=e.environment.metadata.runtimeAdapterId;if(typeof t=="string"&&t.trim())return t.trim();let a=e.environment.metadata.benchmark;if(a&&typeof a=="object"&&!Array.isArray(a)){let s=Reflect.get(a,"id");if(typeof s=="string"&&s.trim())return`conformance:${s.trim()}`}return e.environment.kind==="work"?"openpond:desktop-work":e.environment.kind==="chat"?"openpond:desktop-text":`openpond:${h(e.environment.entrypoint)}`}c(A,"desktopTasksetRuntimeAdapterId");function T(e){return{id:e.id,contentHash:k(e.sha256),mediaType:e.mediaType??null,sizeBytes:e.sizeBytes}}c(T,"portableArtifact");function J(e,t){if(e.infrastructureError)return"infrastructure_failure";if(t.failureClass)return t.failureClass;let a=e.metadata.failureClass;return a==="policy_failure"||a==="grader_failure"||a==="environment_failure"||a==="infrastructure_failure"||a==="timeout"||a==="cancelled"?a:null}c(J,"attemptFailureClass");function k(e){return/^[a-f0-9]{64}$/.test(e)?e:u(e)}c(k,"hash");function h(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}c(h,"segment");async function be(e,t){if(e.metadata.taskDefinition!==void 0||e.metadata.rewardBinding!==void 0)return{taskset:e,generatedFiles:[]};let a=await oe(t);if(!a.isDirectory()||a.isSymbolicLink())throw new Error("Taskset source must be a regular directory.");let s=new Map,d=0;async function n(i=""){for(let o of await ie(S.join(t,i),{withFileTypes:!0})){let l=S.posix.join(i,o.name);if(o.isSymbolicLink())throw new Error("Taskset files cannot contain symbolic links.");if(o.name.startsWith(".env"))throw new Error("Environment files cannot be included in a Taskset package.");if(o.isDirectory()){await n(l);continue}if(!o.isFile())throw new Error("Taskset packages require regular files.");if(U(l))continue;if(s.size>=1e4)throw new Error("Taskset source exceeds the file inventory limit.");let R=await ne(S.join(t,l),b.O_RDONLY|b.O_NOFOLLOW|b.O_NONBLOCK);try{let f=await R.stat();if(d+=f.size,!f.isFile()||d>w*3/4)throw new Error("Taskset source exceeds the package byte limit.");let p=Buffer.alloc(f.size),m=0;for(;m<p.length;){let r=await R.read(p,m,p.length-m,m);if(!r.bytesRead)throw new Error("Taskset source changed during capture.");m+=r.bytesRead}if((await R.read(Buffer.alloc(1),0,1,m)).bytesRead)throw new Error("Taskset source changed during capture.");s.set(l,p)}finally{await R.close()}}}return c(n,"visit"),await n(),Y(e,s,A(e))}c(be,"prepareAuthoredTasksetFiles");import{constants as H}from"node:fs";import{open as ce,realpath as Z}from"node:fs/promises";import y from"node:path";function Me(e,t){return t?new Set:new Set([...(e.modelResources?.assets??[]).map(a=>a.asset.id),...(e.learningResources?.assets??[]).map(a=>a.asset.id),...e.learningResources?v(e.learningResources).map(a=>a.asset.id):[]])}c(Me,"tasksetPackageInlineAssetIds");async function $e(e){let t=e.sources.length?await Z(e.root):y.resolve(e.root),a=[],s=new Set,d=0,n=c((i,o)=>{if(s.has(i.id))throw new Error(`Duplicate local Taskset asset: ${i.id}.`);if(s.add(i.id),d+=4*Math.ceil(o.byteLength/3),d>w)throw new Error("Local Taskset files exceed the package envelope.");a.push({asset:i,base64:Buffer.from(o).toString("base64")})},"append");for(let i of e.sources){let o=x.parse(i.asset);if(!i.sourcePath||y.isAbsolute(i.sourcePath))throw new Error(`Taskset asset ${o.id} requires a relative source path.`);let l=y.resolve(t,i.sourcePath);if(!l.startsWith(`${t}${y.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);if(!(await Z(l)).startsWith(`${t}${y.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);let f=await ce(l,H.O_RDONLY|H.O_NOFOLLOW|H.O_NONBLOCK);try{let p=await f.stat();if(!p.isFile()||p.size!==o.sizeBytes)throw new Error(`Taskset asset ${o.id} differs from its immutable file size.`);if(4*Math.ceil(p.size/3)+d>w)throw new Error("Local Taskset files exceed the package envelope.");let m=Buffer.alloc(p.size),r=0;for(;r<m.length;){let g=await f.read(m,r,m.length-r,r);if(!g.bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);r+=g.bytesRead}if((await f.read(Buffer.alloc(1),0,1,r)).bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);n(o,m)}finally{await f.close()}}for(let i of[...e.content.modelResources?.assets??[],...e.content.learningResources?.assets??[]])s.has(i.asset.id)||n(i.asset,Buffer.from(P(i,i.asset),"utf8"));if(e.content.learningResources)for(let i of v(e.content.learningResources))s.has(i.asset.id)||n(i.asset,Buffer.from(i.base64,"base64"));if(e.fileOrder){if(new Set(e.fileOrder).size!==a.length||e.fileOrder.length!==a.length||e.fileOrder.some(o=>!s.has(o)))throw new Error("Saved package file order differs from its inventory.");let i=new Map(e.fileOrder.map((o,l)=>[o,l]));a.sort((o,l)=>i.get(o.asset.id)-i.get(l.asset.id))}return q({...e.content,files:a})}c($e,"captureLocalTasksetPackage");export{pe as a,ue as b,Re as c,A as d,be as e,Me as f,$e as g};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{$ as oe,G as ne,H as re,Z as F,_ as J,aa as ce,b as ee,p as ae,u as se,v as ie}from"./chunk-2PXKSAG6.js";import{a as de,b as le,d as pe,e as me,f as ue}from"./chunk-ULTV6INR.js";import{Ca as Z,Da as be,Ha as we,Ma as ke,_ as he,ja as ge,na as ve,v as fe,wa as W}from"./chunk-BU6MW65V.js";import{b as q,c as I,d as G,f as B,k as D,l as $,m as d}from"./chunk-HIQPGYVH.js";import{p as te}from"./chunk-DXJC3QW7.js";import{L as V,S as O,b as K,ca as Y,da as X}from"./chunk-4PUOWSDE.js";import{bb as U}from"./chunk-ZY32SZ2P.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a as k}from"./chunk-FTQLQJQV.js";var Ie=n.object({id:q,purpose:n.string().trim().min(1).max(500),audience:n.enum(["orchestrator","environment","privileged_scorer","trainer","infrastructure"]),required:n.boolean(),ttlSeconds:n.number().int().positive().max(86400),scopes:n.array(n.string().trim().min(1).max(500)).max(100).default([])}).strict(),qe=n.object({declarationId:q,leaseRef:n.string().trim().min(8).max(1e3),audience:Ie.shape.audience,expiresAt:G}).strict(),Me=n.object({adapterId:q,placement:n.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:I,runtimeVersion:n.string().trim().min(1).max(200),dataPlane:n.object({provider:q,dataPlaneId:q,cellId:q,runnerPoolId:q,runtimeImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:I}).strict().nullable()}).strict(),je=n.object({adapterId:q,kind:n.enum(["local","ssh","managed","custom"]),deviceOrPool:n.string().trim().min(1).max(1e3),capabilityReceipt:I,provider:q.nullable()}).strict(),Pe=n.object({adapterId:q,workerVersion:n.string().trim().min(1).max(200),workerImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),upstreamRevision:n.string().trim().min(1).max(500),capabilityReceipt:I}).strict(),Re=n.object({schemaVersion:n.literal("openpond.harnessRunManifest.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),id:q,harnessRelease:B,datasetRelease:B,evidenceSets:n.array(B).max(1e4),model:n.object({source:n.string().trim().min(1).max(200),revision:n.string().trim().min(1).max(500),artifactHash:I.nullable(),tokenizerRevision:n.string().trim().min(1).max(500),chatTemplateHash:I}).strict(),recipe:n.object({method:n.string().trim().min(1).max(100),version:n.string().trim().min(1).max(200),configHash:I}).strict(),runtimeTarget:Me,computeTarget:je,engine:Pe,resolvedBundleHash:I,secretLeaseRefs:n.array(qe).max(1e3),approval:n.object({approvalHash:I,approvedAt:G,maximumSpendUsd:n.number().nonnegative().nullable()}).strict(),createdAt:G}).strict(),xe=Re.extend({contentHash:I}).strict(),Te=n.object({schemaVersion:n.literal("openpond.resolvedTrainingBundle.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),projection:n.literal("trainer"),harnessRelease:B,datasetRelease:B,evidenceSetRelease:B.nullable(),files:n.array(n.object({path:n.string().trim().min(1).max(2e3),sha256:I,sizeBytes:n.number().int().nonnegative()}).strict()).max(1e5)}).strict(),He=Te.extend({contentHash:I}).strict(),_e=[{label:"OpenAI-style API key",pattern:/\bsk-[A-Za-z0-9_-]{16,}\b/g},{label:"OpenPond API key",pattern:/\bopk_[A-Za-z0-9_-]{12,}\b/g},{label:"private key",pattern:/-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----/g},{label:"credential assignment",pattern:/\b(?:api[_-]?key|password|secret|token)["']?\s*[:=]\s*["']?[^\s"']{8,}/gi}],N=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,Q=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function Be(e){let t=[],a=e;for(let s of _e)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);N.lastIndex=0;let r=N.test(a);N.lastIndex=0,r&&t.push("email address"),a=a.replace(N,"[REDACTED email]"),Q.lastIndex=0;let o=Q.test(a);return Q.lastIndex=0,o&&t.push("phone number"),a=a.replace(Q,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:r||o?"review":"passed",findings:t,redacted:a}}k(Be,"scanAndRedactEvidence");function ze(e){let t=new Map;return{tasks:e.tasks.map(({artifactRefs:r,...o})=>({...o,assets:r.map(s=>{if(s.visibility!=="policy")throw new Error("Learning task inputs must be policy-visible assets.");let i=e.assets?.find(m=>m.id===s.id),p=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(O(i,s)):void 0);if(!p||p.byteLength!==s.sizeBytes||$(p)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let l=`learning/assets/${d({task:o.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(l,new Uint8Array(p)),{id:s.id,sourceRefId:e.sourceId,artifactRef:l,fileName:s.path.split("/").at(-1),stagingPath:s.path,mediaType:s.mediaType,sha256:s.contentHash,sizeBytes:s.sizeBytes,split:o.split,metadata:{portableAsset:s}}}),...o.requiredOutputs?{requiredOutputs:o.requiredOutputs.map(s=>({...s,schemaRef:s.schemaRef?.id??null,maxBytes:s.maxBytes??void 0}))}:{}})),tasksetAssetBytes:t}}k(ze,"materializeLearningBatchAssets");function Ce(e){let t=Y(e),a=X(t),r=t.environment.kind==="work";if(!r&&(t.environment.kind!=="text"||t.tools.length||t.tasks.some(c=>c.artifactRefs.length))||r&&t.tasks.some(c=>!c.requiredOutputs?.length))throw new Error("This learning batch requires a supported text or Work environment with declared outputs.");let o=e.source.id,s=ze({tasks:t.tasks,sourceId:o,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},p=[];for(let c of a.admissions){let b=e.evidence.find(h=>h.id===c.evidence.id),f=e.decisions.find(h=>h.id===c.decision.id);e.batch.purpose==="reward_training"&&f.grade?.training.status==="scored"&&i.rewards.push({id:`reward-${c.taskId}`,taskId:c.taskId,kind:"reward",task:e.definition.instructions,rules:[{id:e.binding.id,points:1,condition:"Execute the released Reward binding with its declared normalization, weights and gates."}],otherwisePoints:0,executable:!0,approved:!0,confidence:1,sourceRefs:[o],artifactRef:e.binding.id,metadata:{rewardBinding:V(e.binding),evidence:c.evidence,decision:c.decision}}),c.supervisedTarget!==null&&i.demonstrations.push({kind:"demonstration",id:`demo-${c.taskId}`,taskId:c.taskId,sourceRefs:[o],artifactRef:c.decision.id,approved:!0,confidence:1,prompt:null,response:JSON.stringify(c.supervisedTarget),metadata:{evidence:c.evidence,decision:c.decision,targetGradeHash:f.targetGrade?.contentHash}});for(let[h,x,S]of[["observed",b.submission.observedOutput,f.grade],["target",f.approvedTarget,f.targetGrade]]){let H=Oe(S);x===null||H===null||p.push({id:`fixture-${h}-${c.taskId}`,taskId:c.taskId,label:H.passed?"positive":"negative",output:x,infrastructureError:null,expectedPassed:H.passed,expectedRewardEligible:H.rewardEligible,metadata:{gradeReceiptHash:S.contentHash,evidence:c.evidence,decision:c.decision}})}}if(!p.length&&e.batch.purpose!=="reward_training")throw new Error("Grade at least one reviewed response before preparing this batch. Grader fixtures must come from actual receipts.");let l=be(e.binding,e.rewards,e.assets),m=[];for(let c of t.graders){if(c.kind!=="custom_verifier")continue;let b=e.assets?.find(h=>h.id===c.verifierRef.id);if(!b)throw new Error(`Reward ${c.id} is missing its immutable verifier source.`);let f=c.verifierRef.path;m.some(h=>h.path===f)||m.push({path:f,role:"verifier",content:O(b,c.verifierRef)})}let v=W.parse({schemaVersion:"openpond.taskset.v1",id:`learning-${d([e.profileId,e.batch.contentHash]).slice(0,40)}`,revision:1,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:`${e.definition.name} \xB7 ${e.batch.examples.length} approved examples`,objective:e.definition.instructions,purpose:"general",benchmark:null,status:"needs_review",sourceRefs:[e.source],datasetArtifact:null,policy:t.policy,environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:r?"work":"chat",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(c=>c.name),lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{portableEnvironment:t.environment,portableTools:t.tools}},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:r?"single_agent":"chat",supportedSignals:i.demonstrations.length?["demonstration","reward"]:["reward"],compatibleMethods:e.batch.purpose==="supervised_training"?["sft"]:e.batch.purpose==="reward_training"?["grpo","ppo"]:["none"],rewardKinds:[...new Set(t.graders.map(c=>c.kind==="human"?"human":c.kind==="model_judge"?"model_judge":"deterministic"))],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote"],exportable:!0,portabilityBlockers:[]},tasks:s.tasks.map(c=>({...c,schemaVersion:"openpond.taskData.v1",sourceRefs:[o],metadata:{admission:a.admissions.find(b=>b.taskId===c.id),exampleOrigin:e.evidence.find(b=>b.id===c.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:l,graderFixtures:p,learningSignals:i,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:d("openpond-learning-batch-v1"),promptTemplateVersion:"learning-batch-v1",buildIntent:e.batch.purpose==="supervised_training"?"demonstrations":"verifiable_reward",buildSpecification:null,evidenceHashes:e.batch.examples.map(c=>c.evidence.contentHash),tasksetSdkVersion:"learning-batch-v1",sourceCommit:null,repairHistory:[],createdAt:e.batch.sealedAt},readiness:null,contentHash:"00000000",createdAt:e.batch.sealedAt,updatedAt:e.batch.sealedAt,metadata:{learning:a,learningRelease:V(t),trainingMethod:e.batch.purpose==="supervised_training"?"sft":e.batch.purpose==="reward_training"?"grpo":"none",tasksetOutputContract:r?{mode:"artifacts",requiredOutputSource:"task.requiredOutputs"}:{mode:"structured_json",jsonSchema:e.definition.outputSchema,renderer:null}}});return{taskset:W.parse({...v,contentHash:Z(v)}),release:t,generatedFiles:m,tasksetAssetBytes:s.tasksetAssetBytes}}k(Ce,"materializeLearningBatchTaskset");function Oe(e){if(!e)return null;let t=e.training.status==="not_configured"?e.evaluation:e.training;return t.status!=="scored"?null:{passed:t.passed===!0,rewardEligible:e.training.status==="scored"}}k(Oe,"fixtureOutcome");function ct(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(p=>[p.id,p]))).values()){let i=e.assetBytes?.get(s.id),p=e.assets?.find(m=>m.id===s.id),l=i?.byteLength??(p?new TextEncoder().encode(p.text).byteLength:0);if(a+=l,a>he)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):p&&t.push(p.text)}let r=Be(JSON.stringify({tasks:e.evidence.map(s=>s.submission),targets:e.decisions.map(s=>s.approvedTarget),definition:e.definition,inputAssets:t}));if(r.secretStatus!=="passed"||r.piiStatus!=="passed")throw new Error(`Learning batch contains unresolved data findings (${r.findings.join(", ")}). Correct the source examples and seal a revised batch before training.`);let o=fe.parse({schemaVersion:"openpond.learningBatchDatasetSource.v1",kind:"learning_batch",id:`batch-source-${e.batch.contentHash.slice(0,40)}`,profileId:e.profileId,title:e.definition.name,sourceHash:e.batch.contentHash,occurredAt:e.batch.sealedAt,batch:V(e.batch),taskDefinition:e.batch.taskDefinition,admittedBy:e.batch.sealedBy,licensingStatus:"approved",secretScanStatus:r.secretStatus,piiScanStatus:r.piiStatus,metadata:{admission:e.admissionContext??"explicit_local_batch_review",privacyScanner:"openpond-evidence-v1",findings:r.findings}});return Ce({...e,source:o})}k(ct,"prepareReviewedLearningBatch");async function lt(e){let t=structuredClone(e),{project:a,recipe:r,taskset:o,approval:s}=t,i=xe.parse(t.manifest),p=He.parse(t.bundleManifest),l=t.executionMode==="qualification",m=t.gpuSelection??a.trainingSetup.managedGpuSelection?te.parse(t.gpuSelection??a.trainingSetup.managedGpuSelection):void 0,v=t.physicalPlacement?ae.parse(t.physicalPlacement):void 0,c=i.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(r).rollout.groupSize;if(i.qualificationSamples!==p.qualificationSamples||i.qualificationSamples!==void 0&&(!l||i.qualificationSamples>c))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i.executionMode!==t.executionMode||p.executionMode!==t.executionMode)throw new Error("Managed submission execution mode differs from its immutable bundle.");if(l&&(t.evaluationSource||t.resumeFrom||t.rewardSource.kind!=="deterministic"))throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");let{contentHash:b,...f}=i,{contentHash:h,...x}=p;if(d(f)!==b||d(x)!==h||i.resolvedBundleHash!==h||d(i.harnessRelease)!==d(p.harnessRelease)||d(i.datasetRelease)!==d(p.datasetRelease)||d(i.evidenceSets)!==d(p.evidenceSetRelease?[p.evidenceSetRelease]:[]))throw new Error("The managed training manifest or resolved bundle changed.");if(!a.hosted||a.hosted.syncedSourceRevision!==a.revision||a.hosted.portableProjectId!==a.id)throw new Error("Sync the exact Model Project revision before preparing managed training.");let S=a.trainingSetup.baseModel;if(!S||S.modelId!==i.model.source||S.revision!==i.model.revision||S.tokenizerRevision!==i.model.tokenizerRevision||S.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(!["grpo","sft"].includes(r.method)||d(r)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved supported recipe and spend ceiling.");if(r.method==="sft"){let T=ee.parse(r);if(d(T)!==d(r))throw new Error("SFT recipe must be fully materialized before approval.");if(l||t.resumeFrom||v||(m?.gpuCount??1)!==1)throw new Error("Initial managed SFT requires a fresh single-GPU run without reuse-only placement or rollout qualification.")}let H=n.object({wallTimeMs:n.number().positive()}).parse(r.resourceLimits);t.idempotencyKey!==void 0&&n.string().trim().min(16).max(191).parse(t.idempotencyKey);let E=$e(p,t.files),A=l?null:J.parse(t.evaluationSource),y=E.find(T=>T.path===F);if(A&&(!y||d(JSON.parse(Buffer.from(y.content,"base64").toString("utf8")))!==d(A)))throw new Error("The evaluation source differs from the immutable training bundle.");if(l&&(y||E.some(T=>T.path==="dataset/train.json")||!E.some(T=>T.path==="dataset/qualification.json")||!E.some(T=>T.path==="qualification-source.json")))throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");if(!l&&E.some(T=>T.path==="dataset/qualification.json"||T.path==="qualification-source.json"))throw new Error("Qualification datasets cannot be prepared as training.");let _=A?await ce(A):null,C={schemaVersion:"openpond.managedRlPortableSubmission.v1",...l?{executionMode:"qualification"}:{},...t.origin?{origin:K.parse(t.origin)}:{},...v?{physicalPlacement:v}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${b}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:o,modelImprovementQualification:t.modelImprovementQualification??null,recipe:r,resolvedBundle:{manifest:p,files:E},validationTasks:A?.tasks??[],validationAssets:A?.assets??[]},j={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??b}`,sourceManifest:{id:i.id,contentHash:b},payload:C},P=await ie({...j,contentHash:await se(j)}),u={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${b}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:K.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:j.sourceManifest,harnessRelease:i.harnessRelease,taskset:o,tasksetRelease:{id:o.id,contentHash:o.contentHash},dataset:p.datasetRelease,..._?{evaluation:_}:{},evidenceSets:p.evidenceSetRelease?[p.evidenceSetRelease]:[]},job:{kind:"policy_optimize",...l?{executionMode:"qualification"}:{},baseModel:S,recipe:r,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:l?"managed_rl.policy.qualification":r.method==="sft"?"managed_training.sft":"managed_rl.policy.grpo",version:"1",required:!0},...m?.gpuCount===2?[{id:"managed_rl.policy.data_parallel",version:"1",required:!0}]:[],{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,...m?{gpuSelection:m}:{},...v?{physicalPlacement:v}:{},budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(H.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},w=await re({...u,contentHash:await ne(u)});return{artifact:P,submission:w}}k(lt,"prepareManagedTrainingSubmission");function $e(e,t){if(t.length!==e.files.length||new Set(t.map(r=>r.path)).size!==t.length)throw new Error("The managed bundle file inventory changed.");let a=new Map(t.map(r=>[r.path,r]));return e.files.map(r=>{let o=a.get(r.path);if(!o||o.path.includes("\\")||o.path.includes("\0")||o.path.split("/").some(i=>!i||i==="."||i==="..")||o.path==="bundle-manifest.json"||o.encoding!=="base64")throw new Error("The managed bundle contains an invalid file.");let s=Buffer.from(o.content,"base64");if(s.toString("base64")!==o.content||o.sha256!==r.sha256||o.sizeBytes!==r.sizeBytes||s.byteLength!==r.sizeBytes||$(s)!==r.sha256)throw new Error(`Managed training bundle file ${o.path} changed before upload.`);return o})}k($e,"verifyFiles");var Le=n.object({name:n.literal("adamw").default("adamw"),weightDecay:n.number().nonnegative().max(1).default(0),beta1:n.number().positive().lt(1).default(.9),beta2:n.number().positive().lt(1).default(.999),epsilon:n.number().positive().max(.01).default(1e-8)}).strict().default({name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8});function mt(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let y=R(a.policyModel),_=R(a.referenceModel),C=R(a.dataset),j=d({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(P=>({id:P.id,artifactRef:P.artifactRef,prompt:P.prompt,chosen:P.chosen,rejected:P.rejected,approved:P.approved})),policyModel:y,referenceModel:_,dataset:C});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:d(["dpo-reference-logprobs",j]),invalidationHash:j}}}if(a.method==="ppo"){let y=R(a.policyOptimization),_=R(y.policyModel),C=R(y.referenceModel),j=R(y.optimizer),P=R(j.valueModel),u=R(y.dataset),w=R(y.reward),T=d(_),g=d(C),L=d(P);return{...a,policyOptimization:{...y,dataset:{...u,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...w,graderHash:d(e.graders)}},resume:{...R(a.resume),policyHash:T,referenceHash:g,valueModelHash:L}}}if(a.method!=="grpo")return t;let r=a.reward&&typeof a.reward=="object"&&!Array.isArray(a.reward)?a.reward:{},o=e.environment.metadata.toolContractHash,s=typeof o=="string"&&o.trim()?o:r.toolContractHash,i=R(a.baseModel),p=R(a.dataset),l=R(a.rollout),m=R(a.optimizer),v=R(a.loss),c=R(a.resourceLimits),b=M(p.maxExamples,1),f=M(l.groupSize,2),h=M(l.maxOutputTokens,1),x=M(p.maxPromptTokens,1),S=M(m.maxSteps,1),H=M(m.iterations,2),E=M(c.maxRollouts,S*f),A=M(l.maxTurns,1);return{...a,resourceLimits:{...c,maxGpuSeconds:c.maxGpuSeconds??Math.min(10800,Math.ceil(M(c.wallTimeMs,18e4)/1e3))},reward:{...r,graderHash:d(e.graders),toolContractHash:s},policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:i,referenceModel:i,dataset:{tasksetId:e.id,tasksetHash:e.contentHash,split:"train",selectionStrategy:p.selectionStrategy,selectionSeed:l.seed,maxExamples:b},sampler:{temperature:l.temperature,topP:l.topP,maxOutputTokens:h,maxTurns:l.maxTurns,concurrency:l.concurrency},environment:{id:r.environmentId,version:r.environmentVersion,toolContractHash:s},reward:{graderId:r.graderId,graderHash:d(e.graders),learnedPreference:r.learnedPreference??null},kl:{coefficient:v.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:E,maxEnvironmentExecutions:E,maxInputTokens:E*A*x,maxOutputTokens:E*A*h,maxOptimizerSteps:S*H,wallTimeMs:M(c.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:l.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:f,normalization:"group_standardized",advantageEpsilon:typeof m.advantageEpsilon=="number"?m.advantageEpsilon:1e-8,loss:v.method??"grpo",clipRange:typeof m.clipRange=="number"?m.clipRange:.2,iterations:H,microbatchSize:M(m.microbatchSize,1),gradientAccumulationSteps:M(m.gradientAccumulationSteps,1),adamw:Le.parse(m.adamw)}}}}k(mt,"withAuthoritativeRecipeHashes");function R(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}k(R,"record");function M(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}k(M,"positiveInteger");function ut(e){let t=e.sourceRelease,a=[],r=e.skills??[],o=e.agents??[];if([...r,...o].some(m=>m.visibility!=="policy"))throw new Error("The portable policy Harness requires policy-visible dependencies.");let s=Se({id:"desktop-dependency-lock",path:".openpond/harness/dependency-lock.json",hashInput:{profileHead:e.profileHead??null,sourceRelease:t,tools:a,skills:r.map(({id:m,contentHash:v})=>({id:m,contentHash:v})),agents:o.map(({id:m,contentHash:v})=>({id:m,contentHash:v}))},mediaType:"application/json",visibility:"policy"}),i=de({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${d([t,a,s.contentHash]).slice(0,24)}`,sourceRelease:t,instructions:[],skills:r,agents:o,toolDeclarations:a,capabilityRequirements:[],dependencyLock:s,portability:{portable:!0,blockers:[],localOnlyAssetRefs:[],hostPrivateAssetRefs:[]},metadata:{sourceReleaseId:t?.id??null}}),p=Se({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),l=le({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${d([i.contentHash,p.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:p,tools:a,lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},files:[...r,...o],metadata:{runtimeProtocol:"openpond.desktop-agent-loop.v1"}});return{agentSnapshot:i,harnessRelease:l}}k(ut,"createPolicyHarnessContext");function Se(e){let t=D(e.hashInput);return{id:e.id,path:e.path,contentHash:d(e.hashInput),sizeBytes:new TextEncoder().encode(t).byteLength,mediaType:e.mediaType,visibility:e.visibility}}k(Se,"asset");function ft(e){let{taskset:t,modelProject:a,harnessRelease:r,tasksetRelease:o}=e,s=a.trainingSetup,i=e.executionMode==="qualification",p=e.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(e.modelProject.trainingSetup.recipe).rollout.groupSize;if(e.qualificationSamples!==void 0&&(!i||!Number.isInteger(e.qualificationSamples)||e.qualificationSamples<1||e.qualificationSamples>p))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i&&e.evaluationSource)throw new Error("Qualification does not consume an independent evaluation source.");let l=i?ge(e.qualificationSource):null;if(!i&&e.qualificationSource)throw new Error("Qualification sources cannot be used for training.");if(!i&&e.qualificationTaskId!==void 0)throw new Error("Qualification selection cannot be used for training.");if(i&&(!e.qualificationTaskId||!t.tasks.some(u=>u.id===e.qualificationTaskId)))throw new Error("Qualification requires one explicit task ID from its published source.");if(l&&(l.modelResources||l.learningResources||d(t.tasks.map(ke))!==d(l.taskset.tasks)||ye(e.tasksetRelease)!==ye(l.taskset)))throw new Error("Qualification must preserve its ordinary source release and complete task population.");let m=B.parse(r),v=B.parse(o);if(e.openpondRelease,e.workerProtocol,Z(t)!==t.contentHash)throw new Error("Taskset authoring state changed after its release was selected.");if(!s.baseModel?.revision||!s.baseModel.tokenizerRevision||!s.baseModel.chatTemplateHash||!s.recipe||!s.tasksetRef||s.tasksetRef.id!==(i?o.id:t.id)||s.tasksetRef.contentHash!==(i?o.contentHash:t.contentHash))throw new Error("Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe.");let b=t.profileRelease??{id:`profile_${t.profileId}`,revision:t.revision,contentHash:d({profileId:t.profileId,sourceCommit:t.authoringProvenance.sourceCommit,skillHash:t.authoringProvenance.skillHash})},f=new Map;if(l&&z(f,"qualification-source.json",l),e.evaluationSource){let u=J.parse(e.evaluationSource);if(d(u.taskset)!==d(s.evaluationTasksetRef))throw new Error("The evaluation source differs from the prepared Model configuration.");oe(t.tasks.filter(w=>w.split==="train"),u.tasks),f.set(F,new TextEncoder().encode(D(u)))}else if(!i&&s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let h=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?me(e.harnessSource,m):ue(e.harnessSource,m):null;if(s.harnessRelease&&!h)throw new Error("A selected Harness requires its complete immutable source package.");if(h&&(!s.harnessRelease||s.harnessRelease.id!==m.id||s.harnessRelease.contentHash!==m.contentHash))throw new Error("Harness source differs from the Model's explicit selection.");if(h){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!h.agentSnapshot.portability.portable||h.schemaVersion==="openpond.harnessSourcePackage.v1"&&h.harnessRelease.files.some(w=>w.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");z(f,"harness/source-package.json",h)}z(f,"harness/execution.json",pe.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:h?"selected_release":"taskset_owned",harnessRelease:m,sourcePackageHash:h?.contentHash??null}));let x=we(t,e.rewardExecution);if(l&&(!x||d(U(x.binding,x.rewards))!==d(l.taskset.graders)||l.taskset.graders.some(u=>u.kind==="model_judge"||u.kind==="human")))throw new Error("Qualification requires the source package's exact deterministic graders.");if(x){let u=e.verifierAssets??[],w=[...x.rewards.flatMap(g=>g.assets),...U(x.binding,x.rewards).flatMap(g=>g.kind==="custom_verifier"?[g.verifierRef]:g.kind==="model_judge"?[g.rubricRef]:[])],T=new Set(w.map(g=>g.id));if(new Set(u.map(g=>g.id)).size!==u.length||new Set(u.map(g=>g.asset.path)).size!==u.length||u.some(g=>!T.has(g.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let g of w){let L=u.find(Ae=>Ae.id===g.id);if(!L||g.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");O(L,g)}z(f,"reward-binding.json",{kind:"reward_binding_v1",binding:x.binding,rewards:x.rewards,assets:u})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");let S=t.metadata.tasksetOutputContract;S&&typeof S=="object"&&"responsePath"in S&&ve.parse({jsonSchema:null,renderer:null,...S}),z(f,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:{...t.environment,metadata:{...t.environment.metadata,policySystemPrompt:t.objective}},capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),z(f,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),z(f,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let H=i?t.tasks.filter(u=>u.id===e.qualificationTaskId):t.tasks.filter(u=>u.split==="train");if(H.length>0)z(f,i?"dataset/qualification.json":"dataset/train.json",{schemaVersion:i?"openpond.qualificationDataset.v1":"openpond.datasetSplit.v1",...i?{selectedTaskId:e.qualificationTaskId}:{split:"train"},tasks:H}),Ve({assets:f,tasks:H,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)z(f,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let E=Object.values(t.learningSignals).flat().filter(u=>u.approved);for(let u of E){let w=Ee(u);f.set(`evidence/signals/${$(w)}.json`,w)}let A={id:`dataset_${t.id}_r${t.revision}`,contentHash:d({taskset:v,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,...i?{executionMode:"qualification",tasks:H}:{trainTasks:H}})},y=E.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:d({taskset:v,harnessRelease:m,datasetRelease:A,profileRelease:b,signals:E})}:null,_=Te.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},projection:"trainer",harnessRelease:m,datasetRelease:A,evidenceSetRelease:y,files:[...f.entries()].sort(([u],[w])=>u.localeCompare(w)).map(([u,w])=>({path:u,sha256:$(w),sizeBytes:w.byteLength}))}),C=He.parse({..._,contentHash:d(_)}),j=Re.parse({schemaVersion:"openpond.harnessRunManifest.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},id:`manifest_${e.modelRunId}_${e.approval.approvalHash.slice(0,16)}`,harnessRelease:r,datasetRelease:A,evidenceSets:y?[y]:[],model:{source:s.baseModel.modelId,revision:s.baseModel.revision,artifactHash:null,tokenizerRevision:s.baseModel.tokenizerRevision,chatTemplateHash:s.baseModel.chatTemplateHash},recipe:{method:s.recipe.method,version:"openpond.trainingRecipe.v1",configHash:d(s.recipe)},runtimeTarget:e.runtime,computeTarget:e.compute,engine:e.engine,resolvedBundleHash:C.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:xe.parse({...j,contentHash:d(j)}),resolvedBundleManifest:C,assets:f,profileRelease:b,harnessRelease:m,tasksetRelease:v,datasetRelease:A,evidenceSetRelease:y}}k(ft,"buildTasksetTrainingBundle");function Ve(e){let t=new Set;for(let a of e.tasks)for(let r of a.assets??[]){t.add(r.artifactRef);let o=e.tasksetAssetBytes.get(r.artifactRef);if(!o)throw new Error(`Resolved Training Bundle is missing Work asset ${r.artifactRef}.`);if(o.byteLength!==r.sizeBytes||$(o)!==r.sha256)throw new Error(`Resolved Training Bundle Work asset ${r.artifactRef} failed immutable verification.`);e.assets.set(r.artifactRef,o)}for(let a of e.tasksetAssetBytes.keys())if(!t.has(a))throw new Error(`Resolved Training Bundle received unexpected Work asset ${a}.`)}k(Ve,"addTasksetAssets");function z(e,t,a){e.set(t,Ee(a))}k(z,"addJsonAsset");function Ee(e){return Buffer.from(D(e),"utf8")}k(Ee,"bytes");function ye(e){return d({id:e.id,contentHash:e.contentHash})}k(ye,"releasedRefHash");export{Me as a,je as b,Pe as c,xe as d,He as e,Be as f,ct as g,lt as h,Le as i,mt as j,ut as k,ft as l};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{j as Y,m as g,n as M}from"./chunk-HIQPGYVH.js";import{j as n,l as H,x,y as Z}from"./chunk-DXJC3QW7.js";import{A as W,f as Q,t as X,v as T}from"./chunk-D6L6UNUQ.js";import{Ka as C,Na as J,W as V,Za as L,fb as F,l as B,lb as K,m as N,oa as P,va as q}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as p}from"./chunk-FTQLQJQV.js";var k=e.string().regex(/^[a-f0-9]{64}$/),ee=e.object({providerId:e.literal("claude-code"),configurationHash:k,executableHash:k,version:e.string().regex(/^2\.\d+\.\d+$/),capabilityHash:k,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5),maximumTurns:e.number().int().min(1).max(100),holdOpen:e.boolean()}).strict(),Ee=e.object({id:e.string().min(1).max(200),receiptId:e.string().min(1).max(200),sessionId:e.uuid(),operationId:e.string().min(1).max(200),action:e.enum(["message","seal"]),text:e.string().max(262144).optional()}).strict().superRefine((t,a)=>{t.action==="message"&&!t.text?.trim()&&a.addIssue({code:"custom",message:"A human intervention requires a message."}),t.action==="seal"&&t.text!==void 0&&a.addIssue({code:"custom",message:"Sealing does not add a prompt."})}),Pe=e.object({provider:e.literal("claude-code"),sessionId:e.uuid(),requestId:e.string().min(1).max(200),modelId:e.string().min(1).max(500),runtime:ee,sourceHash:k,outputHash:k,traceHash:k,runtimeEventRefs:e.array(e.string().min(1).max(200)).min(1).max(2e4),eventCount:e.number().int().positive().max(2e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),cleanupComplete:e.literal(!0)}).strict().superRefine((t,a)=>{(t.runtimeEventRefs.length!==t.eventCount||new Set(t.runtimeEventRefs).size!==t.eventCount)&&a.addIssue({code:"custom",message:"Process event references must match the exact retained trace population."})}),_=e.object({providerId:e.literal("codex"),configurationHash:e.string().regex(/^[a-f0-9]{64}$/),accountHash:e.string().regex(/^[a-f0-9]{64}$/),reasoningEffort:e.enum(["low","medium","high","xhigh"]),maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict(),w=e.object({id:e.string().trim().min(1).max(240),revision:e.number().int().positive(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),targetId:e.string().trim().min(1).max(240).nullable()}).strict(),ce=e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(1e5)}).strict()).max(100).superRefine((t,a)=>{t.reduce((i,r)=>i+r.content.length,0)>1e5&&a.addIssue({code:"custom",message:"Evaluation prompt exceeds 100,000 characters."})}),le=e.object({schemaVersion:e.literal("openpond.experimentAttemptGrade.v1"),selectionHash:e.string().regex(/^[a-f0-9]{64}$/),grades:e.array(C).min(1).max(100),score:e.number().min(0).max(1).nullable(),passed:e.boolean(),rewardEligible:e.boolean(),gradingStatus:e.enum(["scored","pending","unscorable","not_configured"]),failureClass:Y.nullable(),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,a)=>{let{contentHash:i,...r}=t;g(r)!==i&&a.addIssue({code:"custom",message:"Experiment grading integrity failed."});let s=t.grades.flatMap(o=>o.components);(s.length!==t.grades.length||new Set(s.map(o=>o.graderId)).size!==s.length)&&a.addIssue({code:"custom",message:"Each selected criterion requires exactly one distinct grader result."});for(let o of t.grades){let{contentHash:d,...c}=o;g(c)!==d&&a.addIssue({code:"custom",message:"A retained criterion changed."});for(let h of o.components){let{contentHash:E,...f}=h;g(f)!==E&&a.addIssue({code:"custom",message:"A retained grader result changed."})}}}),m=e.string().trim().min(1).max(200),y=e.string().regex(/^[a-f0-9]{64}$/),O=e.discriminatedUnion("kind",[e.object({kind:e.literal("hosted_chat"),modelId:m,localRuntime:e.union([e.object({providerId:e.literal("custom-openai-compatible"),configurationHash:y,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict(),ee,_]).optional(),candidate:e.object({artifactId:m,contentHash:y,preparationId:m,dispatchId:m,baseProfileId:m,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),harness:F.optional(),messages:ce.optional(),maxOutputTokens:e.number().int().min(1).max(1e6).default(1e5),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict(),e.object({kind:e.literal("fixture"),fixtureId:m}).strict()]),te=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptRequest.v1"),operationId:m,teamId:m,modelProjectId:m.nullable(),project:w.optional(),taskset:x,taskId:m,environmentSeed:e.number().int().min(0).max(2147483647).default(0),policy:O}).strict(),pe=e.object({modelProjectId:m.nullable(),taskset:x,afterTaskId:m.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),ue=e.object({modelProjectId:m.nullable(),taskset:x,available:e.boolean(),unavailableReason:e.string().max(1e3).nullable(),models:e.array(e.object({id:m,name:e.string().max(500),maximumOutputTokens:e.number().int().min(1).max(1e6).optional(),baseModel:Z.nullable().optional()}).strict()).max(200),tasks:e.array(e.object({id:m,split:V,inputPreview:e.string().max(500),fixtures:e.array(e.object({id:m,label:e.string().max(200)}).strict()).max(1e3)}).strict()).max(100),nextCursor:m.nullable()}).strict(),j=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptSummary.v1"),id:m,revision:e.number().int().positive(),request:te,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),policySnapshot:e.object({modelId:m,provider:m,upstreamModelId:e.string().min(1).max(500),configurationHash:y}).strict().nullable(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),gradingStatus:e.enum(["not_started","pending","scored","unscorable","not_configured"]).default("not_started"),passed:e.boolean().nullable(),outputPreview:e.string().max(500).nullable(),error:e.object({code:m,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,a)=>{t.request.policy.kind==="fixture"!=(t.policySnapshot===null)&&a.addIssue({code:"custom",path:["policySnapshot"],message:"Fixture execution must not claim a model identity."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable||!t.completedAt)&&a.addIssue({code:"custom",message:"Completed attempts require retained results and confirmed cleanup."})}),he=e.object({modelProjectId:m,afterId:m.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),fe=e.object({items:e.array(j).max(100),nextCursor:m.nullable()}).strict(),ge=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptResult.v1"),attempt:j,output:e.string().max(1048576).nullable(),messages:e.array(e.record(e.string(),e.unknown())).max(4002),composition:L.nullable(),grade:C.nullable().optional(),experimentGrade:le.nullable().optional(),environment:e.object({status:e.enum(["completed","budget_exhausted","cancelled","timed_out","policy_failure","environment_failure"]),collected:e.boolean(),definition:x,initialStateHash:y.nullable(),finalStateHash:y.nullable(),attemptHash:y}).strict(),native:K.optional(),providerRequestIds:e.array(m).max(1001),contentHash:y}).strict().superRefine((t,a)=>{let i=t.attempt.request.policy.kind==="hosted_chat"?t.attempt.request.policy.harness:void 0;!!i!=!!t.native&&a.addIssue({code:"custom",path:["native"],message:"Standalone Harness results require their exact native evidence."}),t.native&&(!i||g(i)!==g(t.native.source)||t.native.modelConfigurationHash!==t.attempt.policySnapshot?.configurationHash||t.environment.initialStateHash!==null||t.environment.finalStateHash!==null||t.environment.status==="completed"&&(!t.environment.collected||t.output===null||t.native.partialOutputAvailable||t.native.outputHash!==g(t.output)))&&a.addIssue({code:"custom",path:["native"],message:"Native evidence differs from the admitted source, model or output."}),t.experimentGrade&&((t.grade||t.composition)&&a.addIssue({code:"custom",message:"Selected Experiment grading cannot claim another grade population."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.experimentGrade.score||t.attempt.gradingStatus!==t.experimentGrade.gradingStatus||t.attempt.passed!==(t.experimentGrade.score===null?null:t.experimentGrade.passed))&&a.addIssue({code:"custom",message:"Experiment grading differs from its retained attempt summary."})),t.grade&&(t.composition&&a.addIssue({code:"custom",path:["grade"],message:"An ordinary grade cannot also claim a Reward composition."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.grade.score||t.attempt.gradingStatus!==t.grade.gradingStatus||t.attempt.passed!==(t.grade.score===null?null:t.grade.passed))&&a.addIssue({code:"custom",path:["grade"],message:"Ordinary grade differs from its terminal attempt summary."}))}),b=class extends Error{static{p(this,"OpenPondModelStarterAttemptError")}constructor(t,a,i){super(i),this.status=t,this.code=a,this.name="OpenPondModelStarterAttemptError"}status;code},$e=class{static{p(this,"OpenPondModelStarterAttemptsClient")}#e;constructor(t){let a=new URL(t.baseUrl);if(!t.apiKey.trim()||!t.teamId.trim()||!["https:","http:"].includes(a.protocol)||a.username||a.password||a.search||a.hash)throw new Error("Starter attempts require an HTTP(S) endpoint and workspace credentials.");this.#e={...t,baseUrl:a.toString().replace(/\/+$/,"")}}async create(t,a={}){let i=te.parse(t);if(i.teamId!==this.#e.teamId)throw new Error("Attempt belongs to another workspace.");let r=this.#a(await this.#t("","POST",i,a.signal));if(n(r.request)!==n(i))throw new b(502,"attempt_request_mismatch","Attempt receipt differs from the submitted request.");return r}async get(t,a={}){return this.#a(await this.#t(`/${encodeURIComponent(m.parse(t))}`,"GET",void 0,a.signal),t)}async choices(t,a={}){let i=pe.parse(t),r=new URLSearchParams({...i.modelProjectId?{modelProjectId:i.modelProjectId}:{},tasksetId:i.taskset.id,revision:String(i.taskset.revision),contentHash:i.taskset.contentHash,limit:String(i.limit)});i.afterTaskId&&r.set("afterTaskId",i.afterTaskId);let s=ue.parse(await this.#t(`/choices?${r}`,"GET",void 0,a.signal));if(s.modelProjectId!==i.modelProjectId||n(s.taskset)!==n(i.taskset)||s.tasks.length>i.limit||new Set(s.tasks.map(o=>o.id)).size!==s.tasks.length)throw new b(502,"attempt_choices_mismatch","Attempt choices differ from the selected model or Taskset.");return s}async cancel(t,a={}){return this.#a(await this.#t(`/${encodeURIComponent(m.parse(t))}/cancel`,"POST",void 0,a.signal),t)}async result(t,a={}){let i=ge.parse(await this.#t(`/${encodeURIComponent(m.parse(t))}/result`,"GET",void 0,a.signal));this.#a(i.attempt,t);let{contentHash:r,...s}=i;if(!i.attempt.resultAvailable||await H(s)!==r)throw new b(502,"attempt_result_integrity","Attempt result integrity failed.");return i}async list(t,a={}){let i=he.parse(t),r=new URLSearchParams({modelProjectId:i.modelProjectId,limit:String(i.limit)});i.afterId&&r.set("afterId",i.afterId);let s=fe.parse(await this.#t(`?${r}`,"GET",void 0,a.signal));if(s.items.length>i.limit||new Set(s.items.map(o=>o.id)).size!==s.items.length||s.items.some(o=>this.#a(o).request.modelProjectId!==i.modelProjectId))throw new b(502,"attempt_page_mismatch","Attempt page differs from the selected model.");return s}#a(t,a){let i=j.parse(t);if(i.request.teamId!==this.#e.teamId||a&&i.id!==a)throw new b(502,"attempt_identity_mismatch","Attempt receipt belongs to another identity or workspace.");return i}async#t(t,a,i,r){let s=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/model-starter-attempts${t}`,{method:a,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,"Content-Type":"application/json",Accept:"application/json"},...i===void 0?{}:{body:JSON.stringify(i)},signal:r,redirect:"error"}),o=s.body?.getReader();if(!o)throw new b(s.status,"attempt_empty_response","Attempt response was empty.");let d=0,c="",h=new TextDecoder;try{for(;;){let f=await o.read();if(f.done)break;if(d+=f.value.byteLength,d>16777216)throw new b(502,"attempt_response_too_large","Attempt response exceeded its byte limit.");c+=h.decode(f.value,{stream:!0})}c+=h.decode()}finally{await o.cancel(),o.releaseLock()}let E=JSON.parse(c);if(!s.ok){let f=e.object({code:m,message:e.string().max(2e3)}).safeParse(E);throw new b(s.status,f.success?f.data.code:"attempt_request_failed",f.success?f.data.message:"Attempt request failed.")}return E}};var R=e.string().trim().min(1).max(240),z=e.string().regex(/^[a-f0-9]{64}$/),A=e.object({maxOutputTokens:e.number().int().min(1).max(1e6).default(4096),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict();function Xe(t){return A.parse({maxOutputTokens:t.maxOutputTokens,temperature:t.temperature,topP:t.topP})}p(Xe,"resolveHarnessExperimentSampling");var I=e.object({kind:e.literal("hosted_harness"),modelId:R,maxOutputTokens:A.shape.maxOutputTokens.removeDefault().optional(),temperature:A.shape.temperature.removeDefault().optional(),topP:A.shape.topP.removeDefault().optional(),localRuntime:_.optional(),candidate:e.object({artifactId:R,contentHash:z,preparationId:R,dispatchId:R,baseProfileId:R,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),sourceCandidate:q.shape.sourceCandidate,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),profileRepositoryId:R,source:q,modelConfigurationHash:z,packageHash:z,externalDatasetBinding:P.optional()}).strict().superRefine((t,a)=>{JSON.stringify(t.externalDatasetBinding??null)!==JSON.stringify(t.source.externalDatasetBinding??null)&&a.addIssue({code:"custom",message:"The policy and source must bind the same external Dataset recipe."}),JSON.stringify(t.sourceCandidate??null)!==JSON.stringify(t.source.sourceCandidate??null)&&a.addIssue({code:"custom",message:"The policy and prepared source must bind the same actual source candidate."})}),u=e.string().trim().min(1).max(200),ae=e.string().regex(/^[a-f0-9]{64}$/),xe=e.discriminatedUnion("kind",[O.options[0],e.object({kind:e.literal("fixture")}).strict(),I]),S=e.object({schemaVersion:e.literal("openpond.modelTasksetRunRequest.v1"),operationId:u,teamId:u,modelProjectId:u.nullable(),name:e.string().trim().min(1).max(200).optional(),project:w.optional(),taskset:x,policy:xe,population:e.array(X).min(1).max(1e4)}).strict().superRefine((t,a)=>{new Set(t.population.map(i=>i.receiptId)).size!==t.population.length&&a.addIssue({code:"custom",path:["population"],message:"Run receipt identities must be unique."}),t.population.some(i=>i.fixtureId!==null!=(t.policy.kind==="fixture"))&&a.addIssue({code:"custom",path:["population"],message:"Only fixture runs require a fixture identity for every member."}),t.population.some(i=>!/^(0|[1-9][0-9]*)$/.test(i.seed)||Number(i.seed)>2147483647)&&a.addIssue({code:"custom",path:["population"],message:"Hosted environment seeds must be integers from 0 to 2147483647."}),t.policy.kind==="hosted_harness"&&t.modelProjectId!==null&&a.addIssue({code:"custom",path:["modelProjectId"],message:"A Harness target retains its released Profile binding separately from Model artifacts."}),t.policy.kind==="hosted_harness"&&new Set(t.population.map(i=>n([i.taskId,i.seed]))).size!==t.population.length&&a.addIssue({code:"custom",path:["population"],message:"Harness case identities must be unique for each task and seed."})}),ie=e.object({schemaVersion:e.literal("openpond.modelTasksetRunSummary.v1"),id:u,revision:e.number().int().positive(),teamId:u,modelProjectId:u.nullable(),name:e.string().trim().min(1).max(200).optional(),project:w.optional(),operationId:u,taskset:x,policyKind:e.enum(["hosted_chat","fixture","hosted_harness"]),manifestHash:ae,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),metricName:e.string().min(1).max(240),error:e.object({code:u,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,a)=>{Object.values(t.counts).reduce((i,r)=>i+r,0)!==t.totalCount&&a.addIssue({code:"custom",path:["counts"],message:"Run counts must account for the complete population."}),t.status!=="completed"&&t.score!==null&&a.addIssue({code:"custom",path:["score"],message:"Only completed evaluations publish a metric value."}),["completed","failed","cancelled"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&a.addIssue({code:"custom",message:"Terminal runs require complete population accounting."}),t.status==="cancelled"&&!t.cleanupComplete&&a.addIssue({code:"custom",message:"Cancelled runs require confirmed cleanup."}),t.resultAvailable&&!["completed","failed","cancelled"].includes(t.status)&&a.addIssue({code:"custom",message:"Run results require terminal population accounting."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable)&&a.addIssue({code:"custom",message:"Completed evaluations require retained results and confirmed cleanup."})}),se=e.object({summary:ie,request:S,manifest:T,policySnapshot:j.shape.policySnapshot}).strict(),et=e.object({modelProjectId:u.optional(),projectId:w.shape.id.optional(),afterId:u.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),tt=e.object({items:e.array(ie).max(100),nextCursor:u.nullable()}).strict(),be=e.object({schemaVersion:e.literal("openpond.modelTasksetRunResult.v1"),run:se,receipts:e.array(Q).min(1).max(1e4),metric:B.nullable(),contentHash:ae}).strict();function ye(t,a){M(a,"Taskset run manifest");let i=t.policy;if(i.kind!=="hosted_harness"||a.execution.kind!=="harness"||n(a.profileEvaluation)!==n(i.source)||n(a.execution.harnessRelease)!==n(i.source.harnessRelease)||a.metadata.profileRepositoryId!==i.profileRepositoryId||a.packageHash!==i.packageHash||a.policy.kind!=="model"||a.policy.model.provider!==(i.localRuntime?.providerId??"openpond")||a.policy.model.model!==i.modelId||a.policy.model.revision!==null||a.policy.model.artifactHash!==(i.candidate?.contentHash??null)||a.policy.model.tokenizerRevision!==null||a.policy.model.chatTemplateHash!==null||a.policy.configurationHash!==i.modelConfigurationHash||a.tasksetRelease.id!==t.taskset.id||a.tasksetRelease.contentHash!==t.taskset.contentHash||n(a.population)!==n(t.population)||a.population.some(r=>r.receiptId!==`evaluation-${g(a.profileEvaluation?.externalDatasetBinding?[a.id,r.taskId,r.seed,r.fixtureId]:[a.id,r.taskId,r.seed]).slice(0,32)}`))throw new Error("Harness evaluation differs from its admitted source, package or model configuration.")}p(ye,"verifyHarnessExperimentManifest");async function Ie(t){let a=se.parse(t),{summary:i,request:r,manifest:s,policySnapshot:o}=a;if(M(s,"Taskset run manifest"),s.contentHash!==i.manifestHash||s.id!==i.id||s.createdAt!==i.createdAt||i.teamId!==r.teamId||i.modelProjectId!==r.modelProjectId||n(i.project??null)!==n(r.project??null)||n(s.metadata.project??null)!==n(r.project??null)||(i.name??null)!==(r.name??null)||i.operationId!==r.operationId||i.policyKind!==r.policy.kind||i.totalCount!==r.population.length||i.metricName!==s.metricPolicy.primaryMetric||n(i.taskset)!==n(r.taskset)||s.tasksetRelease.id!==r.taskset.id||s.tasksetRelease.contentHash!==r.taskset.contentHash||n(s.population)!==n(r.population))throw new Error("Evaluation run differs from its admitted request or manifest.");if(r.policy.kind==="fixture"){if(s.policy.kind!=="fixture"||o!==null)throw new Error("Fixture checks cannot claim a model identity.")}else if(r.policy.kind==="hosted_harness"){if(ye(r,s),o!==null)throw new Error("Harness evaluations retain the native host model configuration.")}else if(s.policy.kind!=="model"||!o||o.modelId!==r.policy.modelId||s.policy.model.provider!==o.provider||s.policy.model.model!==o.upstreamModelId||s.policy.model.revision!==null||s.policy.model.artifactHash!==(r.policy.candidate?.contentHash??null)||s.policy.model.tokenizerRevision!==null||s.policy.model.chatTemplateHash!==null||s.policy.configurationHash!==await H({policy:r.policy,snapshot:o}))throw new Error("Evaluation model differs from its admitted policy.");return a}p(Ie,"verifyModelTasksetRunDetails");async function at(t){let a=be.parse(t),{contentHash:i,...r}=a;if(await H(r)!==i)throw new Error("Evaluation result integrity failed.");let{summary:s,manifest:o}=await Ie(a.run);if(!s.resultAvailable||!["completed","failed","cancelled"].includes(s.status))throw new Error("Evaluation result is not terminal.");let d=W(o,a.receipts);if(n(d)!==n(a.receipts))throw new Error("Evaluation receipts differ from the admitted order.");if(s.status==="completed"!=(a.metric!==null))throw new Error("Only completed evaluations retain a metric.");if(a.metric&&(N(a.metric),a.metric.runManifest.id!==o.id||a.metric.runManifest.contentHash!==o.contentHash||n(a.metric.tasksetRelease)!==n(o.tasksetRelease)||n(a.metric.policy)!==n(o.metricPolicy)||n(a.metric.receiptRefs)!==n(a.receipts.map(({id:c,contentHash:h})=>({id:c,contentHash:h})))||a.metric.value!==s.score))throw new Error("Evaluation metric differs from its admitted run or receipt population.");return a}p(at,"verifyModelTasksetRunResult");var me=e.string().min(1).max(200).refine(t=>!["__proto__","prototype","constructor"].includes(t),"Use an ordinary field name."),Se=e.array(me).min(1).max(20),re=e.enum(["input","output","expectedOutput","evaluatorContext"]),ve=e.object({destination:re,path:Se,source:re,sourcePath:e.array(me).max(20)}).strict(),U=e.array(ve).max(100).superRefine((t,a)=>{for(let[i,r]of t.entries())t.slice(0,i).some(s=>s.destination===r.destination&&(ne(s.path,r.path)||ne(r.path,s.path)))&&a.addIssue({code:"custom",path:[i,"path"],message:"Mapped destination paths must not overlap."})});function nt(t,a){let i=U.parse(a),r=structuredClone(t);for(let s of i){let o=t[s.source];for(let c of s.sourcePath){if(!oe(o)||!Object.hasOwn(o,c))throw new Error("The configured grader source field is unavailable.");o=o[c]}if(o===void 0)throw new Error("The configured grader source field is unavailable.");let d=r[s.destination];d===null&&(r[s.destination]=d={});for(let c of s.path.slice(0,-1)){let h=Object.hasOwn(d,c)?d[c]:void 0;if(h!==void 0&&!oe(h))throw new Error("A grader destination path crosses a scalar field.");h===void 0&&(d[c]={}),d=d[c]}d[s.path.at(-1)]=structuredClone(o)}return r}p(nt,"mapExperimentGradingFields");function oe(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}p(oe,"record");function ne(t,a){return t.length<=a.length&&t.every((i,r)=>i===a[r])}p(ne,"prefix");var l=e.string().trim().min(1).max(200),v=e.string().regex(/^[a-f0-9]{64}$/),$=e.object({id:l,revision:e.number().int().positive(),contentHash:v}).strict(),D=e.object({id:l,version:e.string().min(1).max(200),contentHash:v,name:e.string().trim().min(1).max(500).optional(),feedbackKey:J,release:$.nullable(),mappings:U.optional()}).strict(),G=e.object({id:l,version:e.string().min(1).max(200),contentHash:v,mappings:U}).strict(),pt=e.object({operationId:l,id:l.optional(),expectedRevision:e.number().int().nonnegative(),request:S,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(G).min(1).max(100).optional()}).strict().superRefine((t,a)=>{t.request.name||a.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before saving it."}),!!t.id!=t.expectedRevision>0&&a.addIssue({code:"custom",path:["expectedRevision"],message:"An update requires its saved definition revision."}),Math.round(t.maximumCostUsd*1e6)<1&&a.addIssue({code:"custom",path:["maximumCostUsd"],message:"The budget must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&a.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})}),ke=e.object({schemaVersion:e.literal("openpond.experimentDefinition.v1"),id:l,teamId:l,revision:e.number().int().positive(),request:S,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(D).min(1).max(100),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),ut=ke.extend({contentHash:v}),ht=e.object({operationId:l,definition:$}).strict(),ft=e.object({projectId:l.optional(),datasetHash:v.optional(),search:e.string().trim().max(200).optional(),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]).optional(),afterId:l.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),gt=e.object({definition:$.nullable(),configurationHash:v.optional(),admissionRequestHash:v.optional(),sourceExperimentId:l.optional(),maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(D).min(1).max(100)}).strict().superRefine((t,a)=>{t.definition===null&&(!t.configurationHash||!t.admissionRequestHash)&&a.addIssue({code:"custom",path:["configurationHash"],message:"A flat Experiment requires its sealed configuration hash."})}),xt=e.object({operationId:l,profileRepositoryId:l,definitionId:l,modelId:l,localRuntime:I.shape.localRuntime,maxOutputTokens:I.shape.maxOutputTokens,temperature:I.shape.temperature,topP:I.shape.topP,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),maximumCostUsd:e.number().finite().positive().max(1e4),externalDatasetBinding:P.optional(),sourceCandidate:I.shape.sourceCandidate}).strict(),bt=e.object({request:S,manifest:T,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(D).min(1).max(100)}).strict();var de=e.string().trim().min(1).max(200),Rt=e.object({operationId:de,request:S,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(G).min(1).max(100).optional(),sourceExperimentId:de.optional()}).strict().superRefine((t,a)=>{t.request.name||a.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before starting it."}),t.operationId!==t.request.operationId&&a.addIssue({code:"custom",path:["request","operationId"],message:"Use one operation identity for this Experiment."}),Math.round(t.maximumCostUsd*1e6)<1&&a.addIssue({code:"custom",path:["maximumCostUsd"],message:"The spending cap must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&a.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})});export{ee as a,Ee as b,Pe as c,w as d,ce as e,le as f,O as g,pe as h,$e as i,A as j,Xe as k,I as l,S as m,se as n,et as o,tt as p,ye as q,Ie as r,at as s,U as t,nt as u,$ as v,D as w,G as x,pt as y,ut as z,ft as A,gt as B,xt as C,bt as D,Rt as E};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as m}from"./chunk-MCBRB5D6.js";import{e as h}from"./chunk-JCLTFDVW.js";import{a as s}from"./chunk-FTQLQJQV.js";var g=5,A=10,f=1200;function b(e){let r=y(e.endpoint),t=e.fetchImpl??fetch,n=e.apiKey?.trim()||null;return async(i,c)=>{let a=S(i),u=new Headers;u.set("Accept","application/json"),u.set("Content-Type","application/json"),u.set("x-openpond-client","openpond-app"),n&&(n.startsWith("opk_")&&u.set("openpond-api-key",n),u.set("Authorization",`Bearer ${n}`));let l=await t(r,{method:"POST",headers:u,body:JSON.stringify(a),signal:c?.signal});if(!l.ok)throw new Error(`Hosted web search failed: ${l.status} ${await O(l)}`);return w(await l.json(),a.query)}}s(b,"createHostedWebSearchExecutor");function D(e=process.env,r={}){let t=r.loadAccountContext??m;return async(n,i)=>{let c=p(e.OPENPOND_WEB_SEARCH_API_KEY,e.OPENPOND_SEARCH_API_KEY,e.OPENPOND_API_KEY),a=c?null:await t().catch(()=>null),u=E(e,a),l=c??a?.token??null;return b({endpoint:u,apiKey:l,fetchImpl:r.fetchImpl})(n,i)}}s(D,"createWebSearchExecutorFromEnv");function E(e=process.env,r){let t=p(e.OPENPOND_WEB_SEARCH_ENDPOINT);if(t)return y(t);let n=p(e.OPENPOND_SEARCH_API_URL);if(n)return d(n);let i=p(e.OPENPOND_PUBLIC_API_URL,e.OPENPOND_API_URL,r?.apiBaseUrl);if(i)return d(i);let c=p(e.OPENPOND_OPCHAT_API_URL,e.OPENPOND_CHAT_API_URL,r?.chatApiBaseUrl);return d(c||h)}s(E,"resolveWebSearchEndpoint");function d(e){let r=e.trim().replace(/\/+$/,"");if(!r)throw new Error("Hosted web search endpoint is required.");let t=new URL(r);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("Hosted web search endpoint must use http or https.");let n=t.pathname.split("/").filter(Boolean),i=n.findIndex(c=>c.toLowerCase()==="opchat");if(i>=0)t.pathname=`/${[...n.slice(0,i),"v1","search"].join("/")}`;else{let c=n.findIndex(a=>a.toLowerCase()==="search");if(c>=0)t.pathname=`/${n.slice(0,c+1).join("/")}`;else{let a=n.findIndex(u=>u.toLowerCase()==="v1");t.pathname=a>=0?`/${[...n.slice(0,a+1),"search"].join("/")}`:`${t.pathname.replace(/\/+$/,"")}/v1/search`.replace(/\/{2,}/g,"/")}}return t.search="",t.hash="",t.toString()}s(d,"normalizeSearchApiUrl");function S(e){let r=e.query.trim();if(!r)throw new Error("web_search query is required.");let t=_(e.limit),n=Array.isArray(e.domains)?e.domains.map(i=>i.trim()).filter(Boolean).slice(0,10):void 0;return{query:r,limit:t,...typeof e.recencyDays=="number"&&Number.isFinite(e.recencyDays)&&e.recencyDays>=0?{recencyDays:Math.floor(e.recencyDays)}:{},...n&&n.length>0?{domains:n}:{}}}s(S,"normalizeWebSearchRequest");function y(e){let r=e.trim();if(!r)throw new Error("Hosted web search endpoint is required.");let t=new URL(r);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("Hosted web search endpoint must use http or https.");return t.toString()}s(y,"normalizeEndpoint");function p(...e){for(let r of e){let t=r?.trim();if(t)return t}return null}s(p,"firstNonEmpty");function _(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?g:Math.min(Math.floor(e),A)}s(_,"normalizeLimit");function w(e,r){let t=e&&typeof e=="object"?e:{},i=(Array.isArray(t.results)?t.results:Array.isArray(t.items)?t.items:[]).map(P).filter(c=>!!c);return{query:o(t.query)??r,provider:o(t.provider)??"hosted",searchedAt:o(t.searchedAt)??o(t.searched_at)??new Date().toISOString(),results:i,truncated:t.truncated===!0}}s(w,"normalizeWebSearchResult");function P(e,r){if(!e||typeof e!="object")return null;let t=e,n=o(t.url),i=o(t.title);return!n||!i?null:{id:o(t.id)??`result_${r+1}`,title:i,url:n,snippet:R(o(t.snippet)??o(t.description)??o(t.text)??o(t.content)),sourceName:o(t.sourceName)??o(t.source_name)??o(t.source)??I(n),faviconUrl:x(o(t.faviconUrl)??o(t.favicon_url)??o(t.iconUrl)??o(t.icon_url))??N(n),publishedAt:o(t.publishedAt)??o(t.published_at)??o(t.publishedDate)??o(t.published_date),updatedAt:o(t.updatedAt)??o(t.updated_at)??o(t.updatedDate)??o(t.updated_date)}}s(P,"normalizeWebSearchItem");function R(e){if(!e)return"";let r=e.replace(/\s+/g," ").trim();return r.length<=f?r:`${r.slice(0,f-1).trimEnd()}\u2026`}s(R,"normalizeSnippet");function x(e){if(!e)return null;try{let r=new URL(e);return r.protocol!=="http:"&&r.protocol!=="https:"?null:r.toString()}catch{return null}}s(x,"normalizeOptionalUrl");function N(e){try{return new URL("/favicon.ico",e).toString()}catch{return null}}s(N,"faviconUrlFromPageUrl");function I(e){try{return new URL(e).hostname.replace(/^www\./i,"")}catch{return null}}s(I,"hostnameFromUrl");async function O(e){let r=await e.text().catch(()=>"");if(!r)return e.statusText||`HTTP ${e.status}`;try{let t=JSON.parse(r);if(t&&typeof t=="object"){let n=t,i=n.error;return i&&typeof i=="object"?o(i.message)??JSON.stringify(t):o(n.message)??o(n.error)??JSON.stringify(t)}}catch{return r}return r}s(O,"readSearchError");function o(e){return typeof e=="string"&&e.trim()?e.trim():null}s(o,"stringValue");export{b as a,D as b,E as c,d,S as e};
2
+ import{a as m}from"./chunk-RY46UPBO.js";import{e as h}from"./chunk-JCLTFDVW.js";import{a as s}from"./chunk-FTQLQJQV.js";var g=5,A=10,f=1200;function b(e){let r=y(e.endpoint),t=e.fetchImpl??fetch,n=e.apiKey?.trim()||null;return async(i,c)=>{let a=S(i),u=new Headers;u.set("Accept","application/json"),u.set("Content-Type","application/json"),u.set("x-openpond-client","openpond-app"),n&&(n.startsWith("opk_")&&u.set("openpond-api-key",n),u.set("Authorization",`Bearer ${n}`));let l=await t(r,{method:"POST",headers:u,body:JSON.stringify(a),signal:c?.signal});if(!l.ok)throw new Error(`Hosted web search failed: ${l.status} ${await O(l)}`);return w(await l.json(),a.query)}}s(b,"createHostedWebSearchExecutor");function D(e=process.env,r={}){let t=r.loadAccountContext??m;return async(n,i)=>{let c=p(e.OPENPOND_WEB_SEARCH_API_KEY,e.OPENPOND_SEARCH_API_KEY,e.OPENPOND_API_KEY),a=c?null:await t().catch(()=>null),u=E(e,a),l=c??a?.token??null;return b({endpoint:u,apiKey:l,fetchImpl:r.fetchImpl})(n,i)}}s(D,"createWebSearchExecutorFromEnv");function E(e=process.env,r){let t=p(e.OPENPOND_WEB_SEARCH_ENDPOINT);if(t)return y(t);let n=p(e.OPENPOND_SEARCH_API_URL);if(n)return d(n);let i=p(e.OPENPOND_PUBLIC_API_URL,e.OPENPOND_API_URL,r?.apiBaseUrl);if(i)return d(i);let c=p(e.OPENPOND_OPCHAT_API_URL,e.OPENPOND_CHAT_API_URL,r?.chatApiBaseUrl);return d(c||h)}s(E,"resolveWebSearchEndpoint");function d(e){let r=e.trim().replace(/\/+$/,"");if(!r)throw new Error("Hosted web search endpoint is required.");let t=new URL(r);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("Hosted web search endpoint must use http or https.");let n=t.pathname.split("/").filter(Boolean),i=n.findIndex(c=>c.toLowerCase()==="opchat");if(i>=0)t.pathname=`/${[...n.slice(0,i),"v1","search"].join("/")}`;else{let c=n.findIndex(a=>a.toLowerCase()==="search");if(c>=0)t.pathname=`/${n.slice(0,c+1).join("/")}`;else{let a=n.findIndex(u=>u.toLowerCase()==="v1");t.pathname=a>=0?`/${[...n.slice(0,a+1),"search"].join("/")}`:`${t.pathname.replace(/\/+$/,"")}/v1/search`.replace(/\/{2,}/g,"/")}}return t.search="",t.hash="",t.toString()}s(d,"normalizeSearchApiUrl");function S(e){let r=e.query.trim();if(!r)throw new Error("web_search query is required.");let t=_(e.limit),n=Array.isArray(e.domains)?e.domains.map(i=>i.trim()).filter(Boolean).slice(0,10):void 0;return{query:r,limit:t,...typeof e.recencyDays=="number"&&Number.isFinite(e.recencyDays)&&e.recencyDays>=0?{recencyDays:Math.floor(e.recencyDays)}:{},...n&&n.length>0?{domains:n}:{}}}s(S,"normalizeWebSearchRequest");function y(e){let r=e.trim();if(!r)throw new Error("Hosted web search endpoint is required.");let t=new URL(r);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("Hosted web search endpoint must use http or https.");return t.toString()}s(y,"normalizeEndpoint");function p(...e){for(let r of e){let t=r?.trim();if(t)return t}return null}s(p,"firstNonEmpty");function _(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?g:Math.min(Math.floor(e),A)}s(_,"normalizeLimit");function w(e,r){let t=e&&typeof e=="object"?e:{},i=(Array.isArray(t.results)?t.results:Array.isArray(t.items)?t.items:[]).map(P).filter(c=>!!c);return{query:o(t.query)??r,provider:o(t.provider)??"hosted",searchedAt:o(t.searchedAt)??o(t.searched_at)??new Date().toISOString(),results:i,truncated:t.truncated===!0}}s(w,"normalizeWebSearchResult");function P(e,r){if(!e||typeof e!="object")return null;let t=e,n=o(t.url),i=o(t.title);return!n||!i?null:{id:o(t.id)??`result_${r+1}`,title:i,url:n,snippet:R(o(t.snippet)??o(t.description)??o(t.text)??o(t.content)),sourceName:o(t.sourceName)??o(t.source_name)??o(t.source)??I(n),faviconUrl:x(o(t.faviconUrl)??o(t.favicon_url)??o(t.iconUrl)??o(t.icon_url))??N(n),publishedAt:o(t.publishedAt)??o(t.published_at)??o(t.publishedDate)??o(t.published_date),updatedAt:o(t.updatedAt)??o(t.updated_at)??o(t.updatedDate)??o(t.updated_date)}}s(P,"normalizeWebSearchItem");function R(e){if(!e)return"";let r=e.replace(/\s+/g," ").trim();return r.length<=f?r:`${r.slice(0,f-1).trimEnd()}\u2026`}s(R,"normalizeSnippet");function x(e){if(!e)return null;try{let r=new URL(e);return r.protocol!=="http:"&&r.protocol!=="https:"?null:r.toString()}catch{return null}}s(x,"normalizeOptionalUrl");function N(e){try{return new URL("/favicon.ico",e).toString()}catch{return null}}s(N,"faviconUrlFromPageUrl");function I(e){try{return new URL(e).hostname.replace(/^www\./i,"")}catch{return null}}s(I,"hostnameFromUrl");async function O(e){let r=await e.text().catch(()=>"");if(!r)return e.statusText||`HTTP ${e.status}`;try{let t=JSON.parse(r);if(t&&typeof t=="object"){let n=t,i=n.error;return i&&typeof i=="object"?o(i.message)??JSON.stringify(t):o(n.message)??o(n.error)??JSON.stringify(t)}}catch{return r}return r}s(O,"readSearchError");function o(e){return typeof e=="string"&&e.trim()?e.trim():null}s(o,"stringValue");export{b as a,D as b,E as c,d,S as e};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as bt,c as at}from"./chunk-GF55VEMR.js";import{I as At,L as ne,b as Y,fa as st,ob as Pt,pb as Rt,qb as oe,ub as re,vb as se,xb as ae}from"./chunk-CJDGLPNX.js";import{S as mt,T as ee,U as vt,e as Qt}from"./chunk-SH7POUVX.js";import{I as te}from"./chunk-2MEOUS24.js";import{e as qt,f as Zt}from"./chunk-HNQPEOJD.js";import{A as y}from"./chunk-X2J2P5ZT.js";import{a as s}from"./chunk-FTQLQJQV.js";var Ko=y.object({id:y.string(),location:y.literal("local"),sessionId:y.string().nullable(),modelRef:Zt.nullable(),revision:y.number().int().positive(),remoteAccessEnabled:y.literal(!1),hostedSandboxesEnabled:y.boolean(),hostedActivation:y.literal("inactive")}),Vo=y.object({sessionId:y.string(),coordinatorId:y.string(),coordinatorSessionId:y.string(),owner:y.enum(["ponder","user"]),revision:y.number().int().positive(),assignment:y.string(),creationKey:y.string(),createdAt:y.string(),updatedAt:y.string()}),Jo="You are Pal (Ponder Assisted Learning), the user's persistent desktop coordinator. Delegate bounded assignments to real local agents through openpond_start_agent. Use the exact inputId returned by delegation or follow-up when waiting for completion. Inspect real transcripts/results before synthesizing. Never claim acceptance means completion. Workers are persistent sessions. A user-controlled worker remains observable but you must not send it instructions until the user explicitly returns control. Never launch paid compute, deploy, or expand access without user authority. Local history stays on this desktop. Hosted capabilities are unavailable unless explicitly enabled and authorized. Discover configured models and projects before selecting a worker; do not invent provider availability or paths. Native workers own their context and compaction.";var kt="This native agent is controlled by its parent conversation. You can inspect its transcript; send further instructions through the parent conversation.";function qo(t){if(t.metadata?.nativeWorker===!0&&t.metadata.nativeWorkerCanResume===!1)throw new Error(kt)}s(qo,"assertNativeWorkerDirectInput");import{promises as Ht}from"node:fs";import{createHash as rn}from"node:crypto";import Dt from"node:path";import en from"node:os";import ie from"node:path";function Mt(t){let e=t.trim();return e.startsWith("# AGENTS.md instructions for ")||e.startsWith("<environment_context>")||e.startsWith("<summary>")||e.startsWith("<user_info>")||/^<external_codex_apps_open_page>[\s\S]*<\/external_codex_apps_open_page>$/.test(e)}s(Mt,"isCodexInjectedUserMessage");function pt(t){let e=t.trim(),n=/^<(goal_context|turn_aborted)>\s*([\s\S]*?)\s*<\/\1>$/.exec(e);if(n){let o=n[1];return{kind:o,text:n[2]?.trim()||Et(o)}}return e==="<turn_aborted>"?{kind:"turn_aborted",text:Et("turn_aborted")}:e==="<goal_context>"?{kind:"goal_context",text:Et("goal_context")}:null}s(pt,"codexControlMessage");function Z(t,e){return t.length<=e?t:`${t.slice(0,e)}
2
+ import{a as bt,c as at}from"./chunk-GF55VEMR.js";import{I as At,L as ne,b as Y,fa as st,ob as Pt,pb as Rt,qb as oe,ub as re,vb as se,xb as ae}from"./chunk-HG2YFMVU.js";import{S as mt,T as ee,U as vt,e as qt}from"./chunk-SV7ZBEK2.js";import{I as te}from"./chunk-2MEOUS24.js";import{e as Zt,f as Qt}from"./chunk-HNQPEOJD.js";import{A as y}from"./chunk-X2J2P5ZT.js";import{a as s}from"./chunk-FTQLQJQV.js";var Ko=y.object({id:y.string(),location:y.literal("local"),sessionId:y.string().nullable(),modelRef:Qt.nullable(),revision:y.number().int().positive(),remoteAccessEnabled:y.literal(!1),hostedSandboxesEnabled:y.boolean(),hostedActivation:y.literal("inactive")}),Vo=y.object({sessionId:y.string(),coordinatorId:y.string(),coordinatorSessionId:y.string(),owner:y.enum(["ponder","user"]),revision:y.number().int().positive(),assignment:y.string(),creationKey:y.string(),createdAt:y.string(),updatedAt:y.string()}),Jo="You are Pal (Ponder Assisted Learning), the user's persistent desktop coordinator. Delegate bounded assignments to real local agents through openpond_start_agent. Use the exact inputId returned by delegation or follow-up when waiting for completion. Inspect real transcripts/results before synthesizing. Never claim acceptance means completion. Workers are persistent sessions. A user-controlled worker remains observable but you must not send it instructions until the user explicitly returns control. Never launch paid compute, deploy, or expand access without user authority. Local history stays on this desktop. Hosted capabilities are unavailable unless explicitly enabled and authorized. Discover configured models and projects before selecting a worker; do not invent provider availability or paths. Native workers own their context and compaction.";var kt="This native agent is controlled by its parent conversation. You can inspect its transcript; send further instructions through the parent conversation.";function qo(t){if(t.metadata?.nativeWorker===!0&&t.metadata.nativeWorkerCanResume===!1)throw new Error(kt)}s(qo,"assertNativeWorkerDirectInput");import{promises as Ht}from"node:fs";import{createHash as rn}from"node:crypto";import Dt from"node:path";import en from"node:os";import ie from"node:path";function Mt(t){let e=t.trim();return e.startsWith("# AGENTS.md instructions for ")||e.startsWith("<environment_context>")||e.startsWith("<summary>")||e.startsWith("<user_info>")||/^<external_codex_apps_open_page>[\s\S]*<\/external_codex_apps_open_page>$/.test(e)}s(Mt,"isCodexInjectedUserMessage");function pt(t){let e=t.trim(),n=/^<(goal_context|turn_aborted)>\s*([\s\S]*?)\s*<\/\1>$/.exec(e);if(n){let o=n[1];return{kind:o,text:n[2]?.trim()||Et(o)}}return e==="<turn_aborted>"?{kind:"turn_aborted",text:Et("turn_aborted")}:e==="<goal_context>"?{kind:"goal_context",text:Et("goal_context")}:null}s(pt,"codexControlMessage");function Z(t,e){return t.length<=e?t:`${t.slice(0,e)}
3
3
 
4
- [truncated ${t.length-e} characters from Codex history]`}s(Z,"truncateText");function it(t){return t.replace(/\s+/g," ").trim()}s(it,"normalizeTitleText");function de(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}s(de,"parseMaybeJson");function tt(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}s(tt,"parseJson");function _(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}s(_,"asRecord");function l(t){return typeof t=="string"&&t.trim()?t.trim():null}s(l,"stringValue");function j(t){return typeof t=="number"&&Number.isFinite(t)?t:null}s(j,"numberValue");function ce(t){let e=new Map;if(!t)return e;for(let[n,o]of Object.entries(t))typeof o=="string"&&o.trim()&&e.set(n,o.trim());return e}s(ce,"stringMap");function k(t){return t.replace(/[^a-zA-Z0-9_-]+/g,"_").slice(0,96)||"item"}s(k,"safeId");function Nt(t){let e=0;for(let n of t)typeof n=="number"&&n>e&&(e=n);return e}s(Nt,"latestMillis");function et(t){let e=Nt(t.map(E));return new Date(e||Date.now()).toISOString()}s(et,"latestIso");function E(t){if(!t)return 0;let e=Date.parse(t);return Number.isFinite(e)?e:0}s(E,"millisFromIso");function J(t){if(typeof t!="string"||!t.trim())return null;let e=t.trim().replace(/(\.\d{3})\d+(Z)$/i,"$1$2"),n=Date.parse(e);return Number.isFinite(n)?new Date(n).toISOString():null}s(J,"isoTimestamp");function le(t){if(t===null)return null;let e=t*1e3;return Number.isFinite(e)?new Date(e).toISOString():null}s(le,"isoFromEpochSeconds");function ue(t){let e=/rollout-(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-/.exec(ie.basename(t));return e?J(`${e[1]}T${e[2]}:${e[3]}:${e[4]}.000Z`):null}s(ue,"isoFromFileName");function nt(){return process.env.CODEX_HOME?.trim()||ie.join(en.homedir(),".codex")}s(nt,"codexHomePath");function Et(t){return t==="turn_aborted"?"The previous turn was interrupted.":"Goal context updated."}s(Et,"defaultCodexControlText");import{createReadStream as nn}from"node:fs";import{createInterface as on}from"node:readline";async function Q(t,e){let n=nn(t,{encoding:"utf8"}),o=on({input:n,crlfDelay:1/0});for await(let r of o){if(!r.trim())continue;let a=tt(r);a&&e(a)}}s(Q,"readJsonlRecords");function $t(t,e=!1){let n=new Map;async function o(r){let a=await Ht.stat(r),i=e?rn("sha256").update(await Ht.readFile(r)).digest("hex"):"";return`${a.dev}:${a.ino}:${a.size}:${a.mtimeMs}:${a.ctimeMs}:${i}`}return s(o,"signature"),async r=>{let a;try{a=await o(r)}catch{return n.delete(r),t(r)}let i=n.get(r);if(i?.signature===a)return i.value;let d=t(r).then(async c=>(await o(r).catch(()=>null)!==a&&n.get(r)?.value===d&&n.delete(r),c)).catch(c=>{throw n.get(r)?.value===d&&n.delete(r),c});return n.set(r,{signature:a,value:d}),n.size>4&&n.delete(n.keys().next().value),d}}s($t,"cachedFileReader");var sn=$t(cn),an=$t(ln,!0),dn=$t(un,!0),me=s(t=>sn(Dt.join(t,"history.jsonl")),"readPromptHistory"),pe=s(t=>an(Dt.join(t,"session_index.jsonl")),"readSessionIndex"),ge=s(t=>dn(Dt.join(t,".codex-global-state.json")),"readGlobalState");async function cn(t){let e=new Map;return await Q(t,n=>{let o=_(n),r=l(o?.session_id),a=l(o?.text)??"",i=le(j(o?.ts));if(!r||!/\S/.test(a)||!i)return;let d=e.get(r)??{firstPrompt:null,latestPrompt:null,firstAt:null,latestAt:null};(!d.firstAt||E(i)<E(d.firstAt))&&(d.firstAt=i,d.firstPrompt=it(a).slice(0,160)),(!d.latestAt||E(i)>E(d.latestAt))&&(d.latestAt=i),e.set(r,d)}).catch(()=>{}),e}s(cn,"parsePromptHistory");async function ln(t){let e=new Map;return await Q(t,n=>{let o=_(n),r=l(o?.id);r&&e.set(r,{id:r,threadName:it(l(o?.thread_name)??"")||null,updatedAt:J(l(o?.updated_at))})}).catch(()=>{}),e}s(ln,"parseSessionIndex");async function un(t){let e;try{e=JSON.parse(await Ht.readFile(t,"utf8"))}catch{e=null}let n=_(e);return{workspaceRootHints:ce(_(n?.["thread-workspace-root-hints"]))}}s(un,"parseGlobalState");import{createReadStream as On,existsSync as Pe,mkdirSync as Fn,promises as Ln,readFileSync as jn,statSync as Gt,writeFileSync as Bn}from"node:fs";import xt from"node:os";import M from"node:path";import{createInterface as zn}from"node:readline";import{promises as gt}from"node:fs";import O from"node:path";var mn=12e4,pn=15*1024*1024,dt=2*1024*1024,fe=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),gn=new Set(fe.values()),fn=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),hn=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function _r(t){let e=t.attachments??[];if(e.length===0)return[];let n=O.join(t.attachmentRootDir,A(t.sessionId),A(t.turnId)),o=new Set,r=[];for(let[a,i]of e.entries()){let c={...he(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await gt.mkdir(n,{recursive:!0});let m=_n(i.relativePath||i.name,o,a+1),u=O.join(n,m);await gt.mkdir(O.dirname(u),{recursive:!0});let f=Buffer.from(i.contentsBase64,"base64"),p=await mt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:f});await Qt(u,f),c.localPath=p.path,c.storageName=m}r.push(c)}return r}s(_r,"materializeChatAttachments");function Tr(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let r=he(o),a=n.get(o.id),i=K(o.mediaType,a?.storageName??o.name);return e&&r.kind==="image"&&a?.localPath&&a.storageName&&i?{...r,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=dt&&ct(o.mediaType,a.storageName)?{...r,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:r})}s(Tr,"chatAttachmentSummaries");function Cr(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=mn;for(let[o,r]of t.entries()){let a=r.localPath?` Saved locally at: ${r.localPath}`:"";e.push(`${o+1}. ${r.name} (${r.mediaType}, ${Tn(r.sizeBytes)}, ${r.kind}).${a}`);let i=r.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
4
+ [truncated ${t.length-e} characters from Codex history]`}s(Z,"truncateText");function it(t){return t.replace(/\s+/g," ").trim()}s(it,"normalizeTitleText");function de(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}s(de,"parseMaybeJson");function tt(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}s(tt,"parseJson");function _(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}s(_,"asRecord");function l(t){return typeof t=="string"&&t.trim()?t.trim():null}s(l,"stringValue");function j(t){return typeof t=="number"&&Number.isFinite(t)?t:null}s(j,"numberValue");function ce(t){let e=new Map;if(!t)return e;for(let[n,o]of Object.entries(t))typeof o=="string"&&o.trim()&&e.set(n,o.trim());return e}s(ce,"stringMap");function k(t){return t.replace(/[^a-zA-Z0-9_-]+/g,"_").slice(0,96)||"item"}s(k,"safeId");function Nt(t){let e=0;for(let n of t)typeof n=="number"&&n>e&&(e=n);return e}s(Nt,"latestMillis");function et(t){let e=Nt(t.map(E));return new Date(e||Date.now()).toISOString()}s(et,"latestIso");function E(t){if(!t)return 0;let e=Date.parse(t);return Number.isFinite(e)?e:0}s(E,"millisFromIso");function J(t){if(typeof t!="string"||!t.trim())return null;let e=t.trim().replace(/(\.\d{3})\d+(Z)$/i,"$1$2"),n=Date.parse(e);return Number.isFinite(n)?new Date(n).toISOString():null}s(J,"isoTimestamp");function le(t){if(t===null)return null;let e=t*1e3;return Number.isFinite(e)?new Date(e).toISOString():null}s(le,"isoFromEpochSeconds");function ue(t){let e=/rollout-(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-/.exec(ie.basename(t));return e?J(`${e[1]}T${e[2]}:${e[3]}:${e[4]}.000Z`):null}s(ue,"isoFromFileName");function nt(){return process.env.CODEX_HOME?.trim()||ie.join(en.homedir(),".codex")}s(nt,"codexHomePath");function Et(t){return t==="turn_aborted"?"The previous turn was interrupted.":"Goal context updated."}s(Et,"defaultCodexControlText");import{createReadStream as nn}from"node:fs";import{createInterface as on}from"node:readline";async function Q(t,e){let n=nn(t,{encoding:"utf8"}),o=on({input:n,crlfDelay:1/0});for await(let r of o){if(!r.trim())continue;let a=tt(r);a&&e(a)}}s(Q,"readJsonlRecords");function $t(t,e=!1){let n=new Map;async function o(r){let a=await Ht.stat(r),i=e?rn("sha256").update(await Ht.readFile(r)).digest("hex"):"";return`${a.dev}:${a.ino}:${a.size}:${a.mtimeMs}:${a.ctimeMs}:${i}`}return s(o,"signature"),async r=>{let a;try{a=await o(r)}catch{return n.delete(r),t(r)}let i=n.get(r);if(i?.signature===a)return i.value;let d=t(r).then(async c=>(await o(r).catch(()=>null)!==a&&n.get(r)?.value===d&&n.delete(r),c)).catch(c=>{throw n.get(r)?.value===d&&n.delete(r),c});return n.set(r,{signature:a,value:d}),n.size>4&&n.delete(n.keys().next().value),d}}s($t,"cachedFileReader");var sn=$t(cn),an=$t(ln,!0),dn=$t(un,!0),me=s(t=>sn(Dt.join(t,"history.jsonl")),"readPromptHistory"),pe=s(t=>an(Dt.join(t,"session_index.jsonl")),"readSessionIndex"),ge=s(t=>dn(Dt.join(t,".codex-global-state.json")),"readGlobalState");async function cn(t){let e=new Map;return await Q(t,n=>{let o=_(n),r=l(o?.session_id),a=l(o?.text)??"",i=le(j(o?.ts));if(!r||!/\S/.test(a)||!i)return;let d=e.get(r)??{firstPrompt:null,latestPrompt:null,firstAt:null,latestAt:null};(!d.firstAt||E(i)<E(d.firstAt))&&(d.firstAt=i,d.firstPrompt=it(a).slice(0,160)),(!d.latestAt||E(i)>E(d.latestAt))&&(d.latestAt=i),e.set(r,d)}).catch(()=>{}),e}s(cn,"parsePromptHistory");async function ln(t){let e=new Map;return await Q(t,n=>{let o=_(n),r=l(o?.id);r&&e.set(r,{id:r,threadName:it(l(o?.thread_name)??"")||null,updatedAt:J(l(o?.updated_at))})}).catch(()=>{}),e}s(ln,"parseSessionIndex");async function un(t){let e;try{e=JSON.parse(await Ht.readFile(t,"utf8"))}catch{e=null}let n=_(e);return{workspaceRootHints:ce(_(n?.["thread-workspace-root-hints"]))}}s(un,"parseGlobalState");import{createReadStream as On,existsSync as Pe,mkdirSync as Fn,promises as Ln,readFileSync as jn,statSync as Gt,writeFileSync as Bn}from"node:fs";import xt from"node:os";import M from"node:path";import{createInterface as zn}from"node:readline";import{promises as gt}from"node:fs";import O from"node:path";var mn=12e4,pn=15*1024*1024,dt=2*1024*1024,fe=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),gn=new Set(fe.values()),fn=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),hn=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function _r(t){let e=t.attachments??[];if(e.length===0)return[];let n=O.join(t.attachmentRootDir,A(t.sessionId),A(t.turnId)),o=new Set,r=[];for(let[a,i]of e.entries()){let c={...he(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await gt.mkdir(n,{recursive:!0});let m=_n(i.relativePath||i.name,o,a+1),u=O.join(n,m);await gt.mkdir(O.dirname(u),{recursive:!0});let f=Buffer.from(i.contentsBase64,"base64"),p=await mt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:f});await qt(u,f),c.localPath=p.path,c.storageName=m}r.push(c)}return r}s(_r,"materializeChatAttachments");function Tr(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let r=he(o),a=n.get(o.id),i=K(o.mediaType,a?.storageName??o.name);return e&&r.kind==="image"&&a?.localPath&&a.storageName&&i?{...r,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=dt&&ct(o.mediaType,a.storageName)?{...r,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:r})}s(Tr,"chatAttachmentSummaries");function Cr(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=mn;for(let[o,r]of t.entries()){let a=r.localPath?` Saved locally at: ${r.localPath}`:"";e.push(`${o+1}. ${r.name} (${r.mediaType}, ${Tn(r.sizeBytes)}, ${r.kind}).${a}`);let i=r.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
5
5
  [attachment text truncated]`:i;e.push("Text content:"),e.push("~~~text"),e.push(d),e.push("~~~"),n-=d.length}}return e.push("</attachments>"),e.join(`
6
6
  `)}s(Cr,"chatAttachmentContext");function wr(t,e){let n=t.trim()||"Please review the attached files.",o=e.trim();return o?`${n}
7
7
 
@@ -14,4 +14,4 @@ ${o}`:n}s(wr,"formatPromptWithAttachmentContext");function he(t){let e=t.lineCou
14
14
  `)).replace(je,`
15
15
  `).replace(ho,`
16
16
  `).trim());return o.push(...Te({attachmentRootDir:e.attachmentRootDir,mentions:a,offset:o.length,sessionId:e.sessionId,turnId:e.turnId})),o.push(...Ao(n.inputImages,i,e,o.length)),n.inputImages.length===0&&o.push(...Po(i,e,o.length)),{prompt:d||(o.length>0?"Please review the attached files.":n.text.trim()),attachments:o}}s(To,"visibleCodexUserContent");function Co(t){let e=xo.exec(t);if(!e)return t;let n=t.slice(e.index+e[0].length),o=yo.exec(n);return o?n.slice(o.index+o[0].length).trim():t}s(Co,"visibleCodexPromptText");function ze(t){if(typeof t=="string")return{text:t.trim(),inputImages:[]};if(!Array.isArray(t))return{text:"",inputImages:[]};let e=[],n=[];for(let o of t){if(typeof o=="string"){e.push(o);continue}let r=_(o),a=l(r?.text);a&&e.push(a);let i=l(r?.image_url);i&&l(r?.type)==="input_image"&&n.push(i)}return{text:e.filter(Boolean).join(`
17
- `).trim(),inputImages:n}}s(ze,"codexUserContentParts");function wo(t){return ze(t).inputImages.length>0}s(wo,"codexContentHasInputImage");function So(t){return Array.from(t.matchAll(je)).map(e=>({label:e[1]??e[2]??e[3]??e[4]??null,localPath:e[5]??null}))}s(So,"codexImageReferences");function vo(t,e,n){let o=[];for(let r of t.split(/\r?\n/)){let a=fo.exec(r);if(!a)continue;let i=a[1]?.trim(),d=a[2]?.trim(),c=Mo(a[3],a[4]),m=No(a[5]);if(!i||!d||c===null||!m)continue;let u=`${e.turnId}_attachment_${n+1}_${o.length+1}`,f=a[6]?.trim()||ko(i),p=Ro({attachmentId:u,context:e,kind:m,localPath:f,mediaType:d}),g=Ce({attachmentId:u,attachmentRootDir:e.attachmentRootDir,localPath:f,mediaType:d,name:i,sessionId:e.sessionId,sizeBytes:c});o.push({id:u,name:i,mediaType:d,sizeBytes:c,kind:m,...p?{imagePreview:p}:{},...g})}return o}s(vo,"parseCodexAttachmentContext");function Ao(t,e,n,o){let r=[];for(let[a,i]of t.entries()){let d=bo(i);if(!d)continue;let c=e[a],m=Ue(c,d.contentType,a),u=`${n.turnId}_input_image_${a+1+o}`,f=Kt({bytes:d.bytes,attachmentId:u,contentType:d.contentType,context:n,name:m});r.push({id:u,name:m,mediaType:d.contentType,sizeBytes:d.bytes.byteLength,kind:"image",...f?{imagePreview:f}:{}})}return r}s(Ao,"codexInputImageAttachments");function Po(t,e,n){let o=[];for(let[r,a]of t.entries()){let i=a.localPath??null;if(!i)continue;let d=K("",i),c=Ge(i);if(!d||!c)continue;let m=Ue(a,d,r),u=`${e.turnId}_image_reference_${r+1+n}`,f=Kt({bytes:c,attachmentId:u,contentType:d,context:e,name:m});o.push({id:u,name:m,mediaType:d,sizeBytes:c.byteLength,kind:"image",...f?{imagePreview:f}:{}})}return o}s(Po,"codexImageReferenceAttachments");function Ro(t){if(t.kind!=="image"||!t.localPath||!t.context.attachmentRootDir)return;let e=M.basename(t.localPath),n=K(t.mediaType,e);if(!n)return;let o=M.resolve(t.localPath),r=M.resolve(t.context.attachmentRootDir,A(t.context.sessionId),A(t.context.turnId));if(o===r||!o.startsWith(`${r}${M.sep}`)){let a=Ge(t.localPath);return a?Kt({attachmentId:t.attachmentId,bytes:a,contentType:n,context:t.context,name:e}):void 0}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:n}}s(Ro,"codexHistoryImagePreview");function Kt(t){if(!t.context.attachmentRootDir||t.bytes.byteLength>It)return;let e=Eo(t.attachmentId,t.name,t.contentType),n=M.join(t.context.attachmentRootDir,A(t.context.sessionId),A(t.context.turnId)),o=M.join(n,e);try{Fn(n,{recursive:!0}),Pe(o)||Bn(o,t.bytes,{mode:384})}catch{return}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:t.contentType}}s(Kt,"materializedCodexHistoryImagePreview");function bo(t){let e=_o.exec(t.trim());if(!e)return null;let n=K(e[1],"");if(!n)return null;let o=Buffer.from(e[2].replace(/\s+/g,""),"base64");return o.byteLength===0||o.byteLength>It?null:{bytes:o,contentType:n}}s(bo,"parseDataImageUrl");function Ge(t){try{let e=Gt(t);return!e.isFile()||e.size<=0||e.size>It?null:jn(t)}catch{return null}}s(Ge,"readCodexHistoryImageBytes");function ko(t){return[M.join(xt.homedir(),"Pictures","Screenshots",t),M.join(xt.homedir(),"Pictures",t),M.join(xt.homedir(),"Downloads",t),M.join(xt.homedir(),"Desktop",t)].find(n=>{if(!K("",n))return!1;try{let r=Gt(n);return r.isFile()&&r.size>0&&r.size<=It}catch{return!1}})}s(ko,"localImagePathByName");function Ue(t,e,n){let o=t?.localPath?M.basename(t.localPath):"";if(o)return o;let r=t?.label?.trim();return r?`${r}${zt(e)}`:`image-${n+1}${zt(e)}`}s(Ue,"imageAttachmentName");function Eo(t,e,n){let o=M.extname(e)||zt(n),r=M.basename(e,M.extname(e)).replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()||"image";return`${k(t)}-${r}${o}`}s(Eo,"uniqueCodexHistoryImageStorageName");function zt(t){return t==="image/jpeg"?".jpg":t==="image/gif"?".gif":t==="image/webp"?".webp":".png"}s(zt,"imageExtension");function Mo(t,e){if(!t||!e)return null;let n=Number.parseFloat(t);if(!Number.isFinite(n)||n<0)return null;let o=e.toUpperCase(),a={B:1,KB:1024,MB:1024**2,GB:1024**3,TB:1024**4}[o];return a?Math.round(n*a):null}s(Mo,"parseAttachmentByteSize");function No(t){return t==="image"||t==="text"||t==="file"?t:null}s(No,"attachmentKind");function Ho(){return Vt("OPENPOND_CODEX_HISTORY_LIMIT",Gn)}s(Ho,"metadataLimit");function Do(){return Vt("OPENPOND_CODEX_HISTORY_EVENT_LIMIT",Re)}s(Do,"eventLimit");function $o(){return Vt("OPENPOND_CODEX_HISTORY_THREAD_TAIL_BYTES",Xn)}s($o,"threadTailBytes");function Vt(t,e){let n=process.env[t],o=n?Number.parseInt(n,10):NaN;return Number.isFinite(o)&&o>0?o:e}s(Vt,"positiveIntegerEnv");import{createHash as Xe}from"node:crypto";import{createHash as Oo}from"node:crypto";function Ct(t){return t.provider==="openpond"?t.id:t.provider==="codex"?t.codexThreadId:t.nativeAgent?.sessionId??null}s(Ct,"localManagedSessionId");function as(t){return qt(t)||["openpond","codex","claude-code","opencode","grok-build"].includes(t)}s(as,"localManagedProviderSupported");function We(t,e){return Oo("sha256").update(JSON.stringify({id:t.id,provider:t.provider,managedSessionId:Ct(t),nativeAgent:t.nativeAgent??null,cwd:t.cwd,nativeHistoryProjection:t.metadata?.nativeHistoryProjection===!0,nativeResumeAvailable:t.metadata?.nativeResumeAvailable===!0,nativeBranch:t.metadata?.nativeBranch??null,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,latestTurnId:e})).digest("hex")}s(We,"localManagedTargetRevision");function Ke(t){return Xe("sha256").update(Y("POST","/ponder/desktop/catalog",t)).digest("hex")}s(Ke,"localSessionIdentityHash");function wt(t,e){return Ke({managedRevision:We(t,e),modelRef:t.modelRef??null,profile:t.currentProfile??null,profileWorkflowBinding:t.profileWorkflowBinding??null,profileComponentBinding:t.profileComponentBinding??null,experience:t.experience,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}s(wt,"localSessionOwnershipRevision");function Jt(t){return Ke({provider:t.provider,modelRef:t.modelRef??null,experience:t.experience,profile:t.currentProfile??null,workflow:t.profileWorkflowBinding??null,component:t.profileComponentBinding??null,cwd:t.cwd,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,cloudProjectId:t.cloudProjectId??null,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}s(Jt,"localSessionConfigurationRevision");function ys(t){return t.metadata?.ponderLocalOwner===void 0&&!t.archived&&!t.systemKind&&!t.hiddenFromDefaultSidebar&&t.status!=="closed"&&!t.metadata?.nativeHistoryProjection&&!ke(t.id)&&!["sandbox","sandbox_template","sandbox_app"].includes(t.workspaceKind??"")}s(ys,"localSessionMayResolveOwnership");function Fo(t){return Xe("sha256").update(JSON.stringify({provider:t.provider,modelRef:t.modelRef,profile:t.currentProfile,workflow:t.profileWorkflowBinding,component:t.profileComponentBinding,cwd:t.cwd,workspaceKind:t.workspaceKind,workspaceId:t.workspaceId,localProjectId:t.localProjectId,owner:t.metadata?.ponderLocalOwner,commandAccessMode:t.openPondCommandAccessMode})).digest("hex")}s(Fo,"remoteExecutionRevision");function Lo(t){return{revision:Fo(t),managedSessionId:Ct(t)}}s(Lo,"remoteExecutionSnapshot");function Is(t,e){if(!t.payload.remoteDevice)return;let n=t.payload.remoteDeviceExecution,o=Lo(e);if(!n||n.revision!==o.revision||n.managedSessionId&&n.managedSessionId!==o.managedSessionId)throw new Error("The local task's provider, Profile, workspace or original agent changed before the remote instruction could run.")}s(Is,"assertRemoteExecution");import{createHash as jo}from"node:crypto";function Ss(t){return{ponderDesktopReservation:t}}s(Ss,"localSessionReservationMetadata");function Ve(t){let e=t.metadata?.ponderDesktopReservation;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;return typeof n.operationId!="string"||typeof n.payloadHash!="string"||typeof n.creationHash!="string"?null:n}s(Ve,"readLocalSessionReservation");function vs(t){return jo("sha256").update(Y("POST","/local/session",t)).digest("hex")}s(vs,"localSessionCreationHash");import{createHash as Bo}from"node:crypto";function Je(t){return Bo("sha256").update(Y("POST","/ponder/desktop/catalog",t)).digest("hex")}s(Je,"hash");function zo(t){return t?Je(t):null}s(zo,"ponderDesktopProfileSelectionId");async function Os(t){let e=[];for(let n of t.sessions){if(!at(n,t.owner)||n.archived||n.systemKind||n.experience==="development"||n.hiddenFromDefaultSidebar||n.status==="closed"||["sandbox","sandbox_template","sandbox_app"].includes(n.workspaceKind??""))continue;let o=await t.inspect(n.id),r=n.localProjectId??n.workspaceId??n.cwd;if(!r)continue;let a=zo(n.currentProfile);if(e.length>=Rt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(Pt.parse({id:n.id,kind:"session",title:n.title||"Local task",providerId:n.provider,modelId:n.modelRef?.modelId??null,experience:n.experience,workspaceId:r,workspaceLabel:n.workspaceName??n.cwd??r,profileSelectionId:a,revision:wt(n,o.latestTurnId),available:o.canSendFollowup,unavailableReason:o.unavailableReason,canMessage:o.canSendFollowup,canSteer:o.canSteer,canStop:o.activeTurnId!==null&&o.managedSessionId!==null,activeTurnId:o.activeTurnId}))}for(let n of t.starters){let o=Pt.parse(n);if(o.kind!=="starter")throw new Error("ponder_desktop_starter_kind_invalid");if(e.length>=Rt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(o)}if(e.sort((n,o)=>n.id.localeCompare(o.id)),new Set(e.map(n=>n.id)).size!==e.length)throw new Error("ponder_desktop_catalog_duplicate_target");return oe.parse({targets:e,capturedAt:new Date().toISOString(),revision:Je(e)})}s(Os,"capturePonderDesktopCatalog");import{createHash as Yt}from"node:crypto";function Ye(t,e){return Yt("sha256").update(Y("POST",t,e)).digest("hex")}s(Ye,"payloadHash");function qe(t){let e=`ponder-desktop-op:${Yt("sha256").update(JSON.stringify([t.origin.scope.bindingId,t.origin.originChatTurnId,Ye("/ponder/desktop/intent",t.intent),...t.origin.humanControlId?[t.origin.humanControlId]:[]])).digest("hex")}`;if(t.id!==e||t.payloadHash!==Ye("/ponder/desktop/operation",ae(t)))throw new Error("ponder_desktop_operation_identity_invalid")}s(qe,"assertPonderDesktopOperationIdentity");function Ze(t){return`ponder-desktop-${Yt("sha256").update(t).digest("hex")}`}s(Ze,"ponderDesktopReservedSessionId");var Qe=y.object({operation:se,sessionRevision:y.string().regex(/^[a-f0-9]{64}$/),executionRevision:y.string().regex(/^[a-f0-9]{64}$/),managedSessionId:y.string().min(1).nullable()}).strict();function Go(t,e){if(t.senderKind!=="ponder")return;let n=Qe.parse(t.payload.ponderDesktop),o=e.provider==="codex"?e.codexThreadId:e.nativeAgent?.sessionId??null;if(n.executionRevision!==Jt(e)||n.managedSessionId!==null&&n.managedSessionId!==o)throw new Error("The local task's model, Profile, workspace or original agent changed before the queued instruction could run.")}s(Go,"assertPonderDesktopExecution");function Uo(t,e,n,o,r){qe(e);let a=e.intent,i=t.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1"),d=i?re.parse(JSON.parse(i.payload)):null;if(!d||d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.epoch!==e.claimedEpoch||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([u,f])=>d.scope[u]===f))throw new Error("ponder_desktop_local_authority_changed");if(e.state!=="dispatching"||!e.claimId)throw new Error("ponder_desktop_input_identity_invalid");let c=bt.parse(n.metadata?.ponderLocalOwner),m=e.origin.scope;if(!at(n,{...c,installationId:m.installationId,profileId:m.profileId,ownerUserId:m.ownerUserId,teamId:m.teamId}))throw new Error("ponder_desktop_input_owner_changed");if(a.action!=="create"&&a.targetId!==n.id)throw new Error("ponder_desktop_input_target_changed");if(r!==wt(n,o)||a.action!=="create"&&r!==a.targetRevision)throw new Error("ponder_desktop_input_target_changed");if(a.action==="create"){if(n.id!==Ze(e.id))throw new Error("ponder_desktop_input_reservation_invalid");let u=Ve(n);if(!u||typeof u!="object"||u.operationId!==e.id||u.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_input_reservation_invalid")}}s(Uo,"assertPonderDesktopRecipient");function qs(t,e,n,o){if(e.senderKind!=="ponder"&&e.payload.ponderDesktop===void 0)return;if(e.senderKind!=="ponder"||e.senderSessionId!==null)throw new Error("ponder_desktop_input_authority_invalid");let{operation:r,sessionRevision:a}=Qe.parse(e.payload.ponderDesktop),i=r.intent;if(i.action==="stop"||i.action==="observe"||i.action==="inspect"||e.id!==`ponder-input:${r.id}`||e.idempotencyKey!==r.id||e.body!==i.prompt||e.replyTo!==null||e.kind!==(i.action==="steer"?"steer":"queued")||e.expectedTurnId!==(i.action==="steer"?i.expectedTurnId:null))throw new Error("ponder_desktop_input_identity_invalid");Uo(t,r,n,o,a),Go(e,n)}s(qs,"assertPonderDesktopInput");export{Ko as a,Vo as b,Jo as c,_r as d,Tr as e,Cr as f,wr as g,Sr as h,vr as i,Ss as j,Ve as k,vs as l,Ct as m,as as n,We as o,kt as p,qo as q,tt as r,_ as s,l as t,nt as u,Lt as v,Jn as w,ke as x,Zr as y,Qr as z,ts as A,es as B,Me as C,ns as D,wt as E,Jt as F,ys as G,Lo as H,Is as I,zo as J,Os as K,qe as L,Ze as M,Qe as N,Go as O,Uo as P,qs as Q};
17
+ `).trim(),inputImages:n}}s(ze,"codexUserContentParts");function wo(t){return ze(t).inputImages.length>0}s(wo,"codexContentHasInputImage");function So(t){return Array.from(t.matchAll(je)).map(e=>({label:e[1]??e[2]??e[3]??e[4]??null,localPath:e[5]??null}))}s(So,"codexImageReferences");function vo(t,e,n){let o=[];for(let r of t.split(/\r?\n/)){let a=fo.exec(r);if(!a)continue;let i=a[1]?.trim(),d=a[2]?.trim(),c=Mo(a[3],a[4]),m=No(a[5]);if(!i||!d||c===null||!m)continue;let u=`${e.turnId}_attachment_${n+1}_${o.length+1}`,f=a[6]?.trim()||ko(i),p=Ro({attachmentId:u,context:e,kind:m,localPath:f,mediaType:d}),g=Ce({attachmentId:u,attachmentRootDir:e.attachmentRootDir,localPath:f,mediaType:d,name:i,sessionId:e.sessionId,sizeBytes:c});o.push({id:u,name:i,mediaType:d,sizeBytes:c,kind:m,...p?{imagePreview:p}:{},...g})}return o}s(vo,"parseCodexAttachmentContext");function Ao(t,e,n,o){let r=[];for(let[a,i]of t.entries()){let d=bo(i);if(!d)continue;let c=e[a],m=Ue(c,d.contentType,a),u=`${n.turnId}_input_image_${a+1+o}`,f=Kt({bytes:d.bytes,attachmentId:u,contentType:d.contentType,context:n,name:m});r.push({id:u,name:m,mediaType:d.contentType,sizeBytes:d.bytes.byteLength,kind:"image",...f?{imagePreview:f}:{}})}return r}s(Ao,"codexInputImageAttachments");function Po(t,e,n){let o=[];for(let[r,a]of t.entries()){let i=a.localPath??null;if(!i)continue;let d=K("",i),c=Ge(i);if(!d||!c)continue;let m=Ue(a,d,r),u=`${e.turnId}_image_reference_${r+1+n}`,f=Kt({bytes:c,attachmentId:u,contentType:d,context:e,name:m});o.push({id:u,name:m,mediaType:d,sizeBytes:c.byteLength,kind:"image",...f?{imagePreview:f}:{}})}return o}s(Po,"codexImageReferenceAttachments");function Ro(t){if(t.kind!=="image"||!t.localPath||!t.context.attachmentRootDir)return;let e=M.basename(t.localPath),n=K(t.mediaType,e);if(!n)return;let o=M.resolve(t.localPath),r=M.resolve(t.context.attachmentRootDir,A(t.context.sessionId),A(t.context.turnId));if(o===r||!o.startsWith(`${r}${M.sep}`)){let a=Ge(t.localPath);return a?Kt({attachmentId:t.attachmentId,bytes:a,contentType:n,context:t.context,name:e}):void 0}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:n}}s(Ro,"codexHistoryImagePreview");function Kt(t){if(!t.context.attachmentRootDir||t.bytes.byteLength>It)return;let e=Eo(t.attachmentId,t.name,t.contentType),n=M.join(t.context.attachmentRootDir,A(t.context.sessionId),A(t.context.turnId)),o=M.join(n,e);try{Fn(n,{recursive:!0}),Pe(o)||Bn(o,t.bytes,{mode:384})}catch{return}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:t.contentType}}s(Kt,"materializedCodexHistoryImagePreview");function bo(t){let e=_o.exec(t.trim());if(!e)return null;let n=K(e[1],"");if(!n)return null;let o=Buffer.from(e[2].replace(/\s+/g,""),"base64");return o.byteLength===0||o.byteLength>It?null:{bytes:o,contentType:n}}s(bo,"parseDataImageUrl");function Ge(t){try{let e=Gt(t);return!e.isFile()||e.size<=0||e.size>It?null:jn(t)}catch{return null}}s(Ge,"readCodexHistoryImageBytes");function ko(t){return[M.join(xt.homedir(),"Pictures","Screenshots",t),M.join(xt.homedir(),"Pictures",t),M.join(xt.homedir(),"Downloads",t),M.join(xt.homedir(),"Desktop",t)].find(n=>{if(!K("",n))return!1;try{let r=Gt(n);return r.isFile()&&r.size>0&&r.size<=It}catch{return!1}})}s(ko,"localImagePathByName");function Ue(t,e,n){let o=t?.localPath?M.basename(t.localPath):"";if(o)return o;let r=t?.label?.trim();return r?`${r}${zt(e)}`:`image-${n+1}${zt(e)}`}s(Ue,"imageAttachmentName");function Eo(t,e,n){let o=M.extname(e)||zt(n),r=M.basename(e,M.extname(e)).replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()||"image";return`${k(t)}-${r}${o}`}s(Eo,"uniqueCodexHistoryImageStorageName");function zt(t){return t==="image/jpeg"?".jpg":t==="image/gif"?".gif":t==="image/webp"?".webp":".png"}s(zt,"imageExtension");function Mo(t,e){if(!t||!e)return null;let n=Number.parseFloat(t);if(!Number.isFinite(n)||n<0)return null;let o=e.toUpperCase(),a={B:1,KB:1024,MB:1024**2,GB:1024**3,TB:1024**4}[o];return a?Math.round(n*a):null}s(Mo,"parseAttachmentByteSize");function No(t){return t==="image"||t==="text"||t==="file"?t:null}s(No,"attachmentKind");function Ho(){return Vt("OPENPOND_CODEX_HISTORY_LIMIT",Gn)}s(Ho,"metadataLimit");function Do(){return Vt("OPENPOND_CODEX_HISTORY_EVENT_LIMIT",Re)}s(Do,"eventLimit");function $o(){return Vt("OPENPOND_CODEX_HISTORY_THREAD_TAIL_BYTES",Xn)}s($o,"threadTailBytes");function Vt(t,e){let n=process.env[t],o=n?Number.parseInt(n,10):NaN;return Number.isFinite(o)&&o>0?o:e}s(Vt,"positiveIntegerEnv");import{createHash as Xe}from"node:crypto";import{createHash as Oo}from"node:crypto";function Ct(t){return t.provider==="openpond"?t.id:t.provider==="codex"?t.codexThreadId:t.nativeAgent?.sessionId??null}s(Ct,"localManagedSessionId");function as(t){return Zt(t)||["openpond","codex","claude-code","opencode","grok-build"].includes(t)}s(as,"localManagedProviderSupported");function We(t,e){return Oo("sha256").update(JSON.stringify({id:t.id,provider:t.provider,managedSessionId:Ct(t),nativeAgent:t.nativeAgent??null,cwd:t.cwd,nativeHistoryProjection:t.metadata?.nativeHistoryProjection===!0,nativeResumeAvailable:t.metadata?.nativeResumeAvailable===!0,nativeBranch:t.metadata?.nativeBranch??null,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,latestTurnId:e})).digest("hex")}s(We,"localManagedTargetRevision");function Ke(t){return Xe("sha256").update(Y("POST","/ponder/desktop/catalog",t)).digest("hex")}s(Ke,"localSessionIdentityHash");function wt(t,e){return Ke({managedRevision:We(t,e),modelRef:t.modelRef??null,profile:t.currentProfile??null,profileWorkflowBinding:t.profileWorkflowBinding??null,profileComponentBinding:t.profileComponentBinding??null,experience:t.experience,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}s(wt,"localSessionOwnershipRevision");function Jt(t){return Ke({provider:t.provider,modelRef:t.modelRef??null,experience:t.experience,profile:t.currentProfile??null,workflow:t.profileWorkflowBinding??null,component:t.profileComponentBinding??null,cwd:t.cwd,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,cloudProjectId:t.cloudProjectId??null,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}s(Jt,"localSessionConfigurationRevision");function ys(t){return t.metadata?.ponderLocalOwner===void 0&&!t.archived&&!t.systemKind&&!t.hiddenFromDefaultSidebar&&t.status!=="closed"&&!t.metadata?.nativeHistoryProjection&&!ke(t.id)&&!["sandbox","sandbox_template","sandbox_app"].includes(t.workspaceKind??"")}s(ys,"localSessionMayResolveOwnership");function Fo(t){return Xe("sha256").update(JSON.stringify({provider:t.provider,modelRef:t.modelRef,profile:t.currentProfile,workflow:t.profileWorkflowBinding,component:t.profileComponentBinding,cwd:t.cwd,workspaceKind:t.workspaceKind,workspaceId:t.workspaceId,localProjectId:t.localProjectId,owner:t.metadata?.ponderLocalOwner,commandAccessMode:t.openPondCommandAccessMode})).digest("hex")}s(Fo,"remoteExecutionRevision");function Lo(t){return{revision:Fo(t),managedSessionId:Ct(t)}}s(Lo,"remoteExecutionSnapshot");function Is(t,e){if(!t.payload.remoteDevice)return;let n=t.payload.remoteDeviceExecution,o=Lo(e);if(!n||n.revision!==o.revision||n.managedSessionId&&n.managedSessionId!==o.managedSessionId)throw new Error("The local task's provider, Profile, workspace or original agent changed before the remote instruction could run.")}s(Is,"assertRemoteExecution");import{createHash as jo}from"node:crypto";function Ss(t){return{ponderDesktopReservation:t}}s(Ss,"localSessionReservationMetadata");function Ve(t){let e=t.metadata?.ponderDesktopReservation;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;return typeof n.operationId!="string"||typeof n.payloadHash!="string"||typeof n.creationHash!="string"?null:n}s(Ve,"readLocalSessionReservation");function vs(t){return jo("sha256").update(Y("POST","/local/session",t)).digest("hex")}s(vs,"localSessionCreationHash");import{createHash as Bo}from"node:crypto";function Je(t){return Bo("sha256").update(Y("POST","/ponder/desktop/catalog",t)).digest("hex")}s(Je,"hash");function zo(t){return t?Je(t):null}s(zo,"ponderDesktopProfileSelectionId");async function Os(t){let e=[];for(let n of t.sessions){if(!at(n,t.owner)||n.archived||n.systemKind||n.experience==="development"||n.hiddenFromDefaultSidebar||n.status==="closed"||["sandbox","sandbox_template","sandbox_app"].includes(n.workspaceKind??""))continue;let o=await t.inspect(n.id),r=n.localProjectId??n.workspaceId??n.cwd;if(!r)continue;let a=zo(n.currentProfile);if(e.length>=Rt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(Pt.parse({id:n.id,kind:"session",title:n.title||"Local task",providerId:n.provider,modelId:n.modelRef?.modelId??null,experience:n.experience,workspaceId:r,workspaceLabel:n.workspaceName??n.cwd??r,profileSelectionId:a,revision:wt(n,o.latestTurnId),available:o.canSendFollowup,unavailableReason:o.unavailableReason,canMessage:o.canSendFollowup,canSteer:o.canSteer,canStop:o.activeTurnId!==null&&o.managedSessionId!==null,activeTurnId:o.activeTurnId}))}for(let n of t.starters){let o=Pt.parse(n);if(o.kind!=="starter")throw new Error("ponder_desktop_starter_kind_invalid");if(e.length>=Rt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(o)}if(e.sort((n,o)=>n.id.localeCompare(o.id)),new Set(e.map(n=>n.id)).size!==e.length)throw new Error("ponder_desktop_catalog_duplicate_target");return oe.parse({targets:e,capturedAt:new Date().toISOString(),revision:Je(e)})}s(Os,"capturePonderDesktopCatalog");import{createHash as Yt}from"node:crypto";function Ye(t,e){return Yt("sha256").update(Y("POST",t,e)).digest("hex")}s(Ye,"payloadHash");function qe(t){let e=`ponder-desktop-op:${Yt("sha256").update(JSON.stringify([t.origin.scope.bindingId,t.origin.originChatTurnId,Ye("/ponder/desktop/intent",t.intent),...t.origin.humanControlId?[t.origin.humanControlId]:[]])).digest("hex")}`;if(t.id!==e||t.payloadHash!==Ye("/ponder/desktop/operation",ae(t)))throw new Error("ponder_desktop_operation_identity_invalid")}s(qe,"assertPonderDesktopOperationIdentity");function Ze(t){return`ponder-desktop-${Yt("sha256").update(t).digest("hex")}`}s(Ze,"ponderDesktopReservedSessionId");var Qe=y.object({operation:se,sessionRevision:y.string().regex(/^[a-f0-9]{64}$/),executionRevision:y.string().regex(/^[a-f0-9]{64}$/),managedSessionId:y.string().min(1).nullable()}).strict();function Go(t,e){if(t.senderKind!=="ponder")return;let n=Qe.parse(t.payload.ponderDesktop),o=e.provider==="codex"?e.codexThreadId:e.nativeAgent?.sessionId??null;if(n.executionRevision!==Jt(e)||n.managedSessionId!==null&&n.managedSessionId!==o)throw new Error("The local task's model, Profile, workspace or original agent changed before the queued instruction could run.")}s(Go,"assertPonderDesktopExecution");function Uo(t,e,n,o,r){qe(e);let a=e.intent,i=t.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1"),d=i?re.parse(JSON.parse(i.payload)):null;if(!d||d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.epoch!==e.claimedEpoch||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([u,f])=>d.scope[u]===f))throw new Error("ponder_desktop_local_authority_changed");if(e.state!=="dispatching"||!e.claimId)throw new Error("ponder_desktop_input_identity_invalid");let c=bt.parse(n.metadata?.ponderLocalOwner),m=e.origin.scope;if(!at(n,{...c,installationId:m.installationId,profileId:m.profileId,ownerUserId:m.ownerUserId,teamId:m.teamId}))throw new Error("ponder_desktop_input_owner_changed");if(a.action!=="create"&&a.targetId!==n.id)throw new Error("ponder_desktop_input_target_changed");if(r!==wt(n,o)||a.action!=="create"&&r!==a.targetRevision)throw new Error("ponder_desktop_input_target_changed");if(a.action==="create"){if(n.id!==Ze(e.id))throw new Error("ponder_desktop_input_reservation_invalid");let u=Ve(n);if(!u||typeof u!="object"||u.operationId!==e.id||u.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_input_reservation_invalid")}}s(Uo,"assertPonderDesktopRecipient");function qs(t,e,n,o){if(e.senderKind!=="ponder"&&e.payload.ponderDesktop===void 0)return;if(e.senderKind!=="ponder"||e.senderSessionId!==null)throw new Error("ponder_desktop_input_authority_invalid");let{operation:r,sessionRevision:a}=Qe.parse(e.payload.ponderDesktop),i=r.intent;if(i.action==="stop"||i.action==="observe"||i.action==="inspect"||e.id!==`ponder-input:${r.id}`||e.idempotencyKey!==r.id||e.body!==i.prompt||e.replyTo!==null||e.kind!==(i.action==="steer"?"steer":"queued")||e.expectedTurnId!==(i.action==="steer"?i.expectedTurnId:null))throw new Error("ponder_desktop_input_identity_invalid");Uo(t,r,n,o,a),Go(e,n)}s(qs,"assertPonderDesktopInput");export{Ko as a,Vo as b,Jo as c,_r as d,Tr as e,Cr as f,wr as g,Sr as h,vr as i,Ss as j,Ve as k,vs as l,Ct as m,as as n,We as o,kt as p,qo as q,tt as r,_ as s,l as t,nt as u,Lt as v,Jn as w,ke as x,Zr as y,Qr as z,ts as A,es as B,Me as C,ns as D,wt as E,Jt as F,ys as G,Lo as H,Is as I,zo as J,Os as K,qe as L,Ze as M,Qe as N,Go as O,Uo as P,qs as Q};