openpond 0.2.70 → 0.2.72

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 (361) hide show
  1. package/dist/app-server.js +1 -1
  2. package/dist/chunks/{acp-QTA6IU6W.js → acp-7A2UPCG5.js} +1 -1
  3. package/dist/chunks/{acp-agent-N77HPAYQ.js → acp-agent-AGALGR6V.js} +1 -1
  4. package/dist/chunks/{actions-command-BZQCUDMD.js → actions-command-AXGXBU75.js} +1 -1
  5. package/dist/chunks/{app-layer-YQQNLIXA.js → app-layer-DUCNCJ2X.js} +1 -1
  6. package/dist/chunks/{app-server-evaluations-RRLYWLPK.js → app-server-evaluations-SNWXULKD.js} +1 -1
  7. package/dist/chunks/{app-server-harness-services-XXM336NU.js → app-server-harness-services-YNMGMKPK.js} +1 -1
  8. package/dist/chunks/app-server-runtime-BKJ7L6JZ.js +2 -0
  9. package/dist/chunks/{apps-WG7WY5CB.js → apps-2OWE23BH.js} +1 -1
  10. package/dist/chunks/{chunk-ZDEIVUUI.js → chunk-27OJ2OLP.js} +1 -1
  11. package/dist/chunks/{chunk-NSSZ2ZIU.js → chunk-2EAZB2MW.js} +1 -1
  12. package/dist/chunks/{chunk-DRLP7GIU.js → chunk-2GEZ3ZY7.js} +1 -1
  13. package/dist/chunks/{chunk-PAYFJHPO.js → chunk-2PVW2XFF.js} +1 -1
  14. package/dist/chunks/chunk-2Q2AWPP2.js +2 -0
  15. package/dist/chunks/{chunk-Y2WNZWT2.js → chunk-2Q6FTL4C.js} +1 -1
  16. package/dist/chunks/{chunk-KP2MYTP5.js → chunk-2QHB5P2K.js} +1 -1
  17. package/dist/chunks/{chunk-HG2YFMVU.js → chunk-2THZ6GZY.js} +1 -1
  18. package/dist/chunks/{chunk-DXJC3QW7.js → chunk-3VT2PPKW.js} +1 -1
  19. package/dist/chunks/{chunk-4BUM6JEC.js → chunk-4JKWCLTQ.js} +1 -1
  20. package/dist/chunks/{chunk-AQUZCWM3.js → chunk-5TPJ5ECJ.js} +1 -1
  21. package/dist/chunks/{chunk-RCQYEHHD.js → chunk-5TTQCT3G.js} +1 -1
  22. package/dist/chunks/{chunk-NMMHXYDJ.js → chunk-5WFKBZCU.js} +1 -1
  23. package/dist/chunks/{chunk-P4QM63L3.js → chunk-5ZBDHIIE.js} +1 -1
  24. package/dist/chunks/{chunk-WD4KAKEX.js → chunk-64EDQ7UV.js} +1 -1
  25. package/dist/chunks/{chunk-KU4TPDPH.js → chunk-6LAGMWJE.js} +1 -1
  26. package/dist/chunks/{chunk-VJYOKU3C.js → chunk-6OD2FKUS.js} +1 -1
  27. package/dist/chunks/{chunk-65FJWWXG.js → chunk-6YR5IYHH.js} +1 -1
  28. package/dist/chunks/{chunk-AUO5DCEU.js → chunk-73COPJ32.js} +1 -1
  29. package/dist/chunks/{chunk-SSHE6B7Z.js → chunk-AITV76GO.js} +1 -1
  30. package/dist/chunks/{chunk-PLROXHG2.js → chunk-ATI52WMB.js} +1 -1
  31. package/dist/chunks/chunk-AWD72O3G.js +2 -0
  32. package/dist/chunks/{chunk-DKOVZ6R2.js → chunk-BQNU4HZW.js} +1 -1
  33. package/dist/chunks/{chunk-UANH7U3Y.js → chunk-BTEBZYK3.js} +1 -1
  34. package/dist/chunks/{chunk-3Z4VM2LF.js → chunk-BUMCJHQP.js} +1 -1
  35. package/dist/chunks/{chunk-BU6MW65V.js → chunk-BYVE4TMU.js} +1 -1
  36. package/dist/chunks/{chunk-PNPV2LDE.js → chunk-BZS2PA4O.js} +1 -1
  37. package/dist/chunks/{chunk-AFYYIJ6K.js → chunk-C7NQPICU.js} +1 -1
  38. package/dist/chunks/{chunk-EWH64WRR.js → chunk-CAYKEJJY.js} +1 -1
  39. package/dist/chunks/{chunk-K7KBFM2T.js → chunk-CBD554GZ.js} +1 -1
  40. package/dist/chunks/{chunk-7RJOCGQ6.js → chunk-CHRED2FK.js} +1 -1
  41. package/dist/chunks/{chunk-3A2Y7UK3.js → chunk-CQRA5TXF.js} +1 -1
  42. package/dist/chunks/{chunk-GYYJ47GX.js → chunk-CWE2N3JI.js} +1 -1
  43. package/dist/chunks/{chunk-ZYLLPRPU.js → chunk-CX4T7I47.js} +1 -1
  44. package/dist/chunks/{chunk-TAXCMCYZ.js → chunk-CX4U32VO.js} +4 -4
  45. package/dist/chunks/{chunk-7TM25J6S.js → chunk-DFSQ5HZ7.js} +2 -2
  46. package/dist/chunks/{chunk-2PXKSAG6.js → chunk-DLOJG7LP.js} +1 -1
  47. package/dist/chunks/{chunk-BGMAWETL.js → chunk-DNRC6TPJ.js} +1 -1
  48. package/dist/chunks/{chunk-5FSPDSAO.js → chunk-DUR32LJG.js} +1 -1
  49. package/dist/chunks/{chunk-FHDH4OUA.js → chunk-EHMA5XS7.js} +1 -1
  50. package/dist/chunks/{chunk-Z33RVGP6.js → chunk-ENY24ZBB.js} +1 -1
  51. package/dist/chunks/{chunk-JVNKSU27.js → chunk-F3IEAU7O.js} +1 -1
  52. package/dist/chunks/{chunk-M4A7G4S5.js → chunk-FOAM3YZQ.js} +1 -1
  53. package/dist/chunks/{chunk-VJR2GNRY.js → chunk-FVMTQSVW.js} +1 -1
  54. package/dist/chunks/{chunk-YI6ME6PU.js → chunk-GG6PM7TB.js} +1 -1
  55. package/dist/chunks/{chunk-DDOIPTOM.js → chunk-GMA365GI.js} +1 -1
  56. package/dist/chunks/{chunk-KCLMA2IH.js → chunk-GPGXBKXU.js} +1 -1
  57. package/dist/chunks/{chunk-JVMSN7LH.js → chunk-GR4MJJCE.js} +1 -1
  58. package/dist/chunks/{chunk-7OFD6TFD.js → chunk-HA762QYM.js} +1 -1
  59. package/dist/chunks/{chunk-Q7FBVLLB.js → chunk-HBGTHOOB.js} +1 -1
  60. package/dist/chunks/{chunk-AFH462DO.js → chunk-HT6ILPD6.js} +1 -1
  61. package/dist/chunks/{chunk-XYZV3FKD.js → chunk-I6KTJ3GH.js} +1 -1
  62. package/dist/chunks/{chunk-OUJ63LMU.js → chunk-IA6CTX7A.js} +1 -1
  63. package/dist/chunks/{chunk-XHACK2KR.js → chunk-IUYGQO2K.js} +1 -1
  64. package/dist/chunks/{chunk-55YD4UTW.js → chunk-IV2HEX3I.js} +1 -1
  65. package/dist/chunks/{chunk-MOXIGLN2.js → chunk-JALL5NPH.js} +1 -1
  66. package/dist/chunks/{chunk-U7X5ZLAL.js → chunk-JCHLDNCX.js} +1 -1
  67. package/dist/chunks/{chunk-7PKDJHT6.js → chunk-JH4RACOB.js} +1 -1
  68. package/dist/chunks/{chunk-MIFVX5PK.js → chunk-JSDGOQ5U.js} +1 -1
  69. package/dist/chunks/{chunk-65WRWLUD.js → chunk-JVEIK4RH.js} +1 -1
  70. package/dist/chunks/{chunk-PPF6EBTQ.js → chunk-K3WM4NEC.js} +1 -1
  71. package/dist/chunks/{chunk-CCZ276IA.js → chunk-KOIXRLZZ.js} +1 -1
  72. package/dist/chunks/{chunk-6C6ZCYTL.js → chunk-KRJZ5CW3.js} +1 -1
  73. package/dist/chunks/{chunk-CUB6PWAJ.js → chunk-KTQWWCP2.js} +6 -6
  74. package/dist/chunks/{chunk-Y4E5AAI7.js → chunk-KUEVP7WM.js} +1 -1
  75. package/dist/chunks/{chunk-U7D6Q744.js → chunk-L5L3H6CI.js} +1 -1
  76. package/dist/chunks/{chunk-VWWKWYSQ.js → chunk-LHTRQAPZ.js} +1 -1
  77. package/dist/chunks/{chunk-QLGP2OAQ.js → chunk-MLLMLXKG.js} +1 -1
  78. package/dist/chunks/{chunk-QUNQM2E3.js → chunk-MPEK4ZNY.js} +1 -1
  79. package/dist/chunks/{chunk-EGP6DF34.js → chunk-MPXOPL7R.js} +2 -2
  80. package/dist/chunks/{chunk-PHZZBXDO.js → chunk-MQMMJKOZ.js} +1 -1
  81. package/dist/chunks/{chunk-B66QCXH2.js → chunk-MWPMYCYB.js} +1 -1
  82. package/dist/chunks/{chunk-5G7BQAUA.js → chunk-N5FT6PTI.js} +1 -1
  83. package/dist/chunks/{chunk-SDHG6CKU.js → chunk-NDNSLCPE.js} +1 -1
  84. package/dist/chunks/{chunk-WCNPGKST.js → chunk-O4YHISU2.js} +1 -1
  85. package/dist/chunks/{chunk-IO5DZUKL.js → chunk-OI4DAZ4U.js} +1 -1
  86. package/dist/chunks/{chunk-Q73RKX7I.js → chunk-OIIE5GUK.js} +1 -1
  87. package/dist/chunks/{chunk-N5EAVX4G.js → chunk-OOKHHOIU.js} +1 -1
  88. package/dist/chunks/{chunk-7OKZCJHS.js → chunk-OXRN2257.js} +1 -1
  89. package/dist/chunks/{chunk-HES4VP3D.js → chunk-PYPXP5R3.js} +1 -1
  90. package/dist/chunks/{chunk-ZK3ET5EP.js → chunk-QKBMXL4D.js} +3 -3
  91. package/dist/chunks/{chunk-YAA7F5LI.js → chunk-QKGNAYSC.js} +1 -1
  92. package/dist/chunks/{chunk-KDER7R45.js → chunk-RIFWD5XM.js} +1 -1
  93. package/dist/chunks/{chunk-WZ35ICTE.js → chunk-RWBP2H4M.js} +1 -1
  94. package/dist/chunks/{chunk-SO4GMSNP.js → chunk-S5ACNR5Y.js} +1 -1
  95. package/dist/chunks/{chunk-M4ZHFDRJ.js → chunk-SRK4WX7D.js} +1 -1
  96. package/dist/chunks/{chunk-XY7HFXLH.js → chunk-SVLVIYH2.js} +1 -1
  97. package/dist/chunks/{chunk-FNGZ4UDZ.js → chunk-T6ML5SCD.js} +1 -1
  98. package/dist/chunks/{chunk-CO23RRN7.js → chunk-TD5YYA5Z.js} +1 -1
  99. package/dist/chunks/{chunk-7NCM6GBN.js → chunk-TOWY6Y23.js} +1 -1
  100. package/dist/chunks/{chunk-OXQ2WFIH.js → chunk-TR5UC5AF.js} +1 -1
  101. package/dist/chunks/{chunk-JQOVC35K.js → chunk-UCPD526R.js} +1 -1
  102. package/dist/chunks/{chunk-Y4I6CFZJ.js → chunk-UGDBMRCT.js} +1 -1
  103. package/dist/chunks/{chunk-E2JB5OCO.js → chunk-UZE3C2SF.js} +1 -1
  104. package/dist/chunks/{chunk-PACLKDTN.js → chunk-V4VM2R6D.js} +1 -1
  105. package/dist/chunks/{chunk-XOPHFUUY.js → chunk-VMBWCIGG.js} +1 -1
  106. package/dist/chunks/{chunk-CIZI6Z7D.js → chunk-VMW23TIZ.js} +1 -1
  107. package/dist/chunks/{chunk-4G3GTEVS.js → chunk-VSQPWLAG.js} +1 -1
  108. package/dist/chunks/{chunk-54755JYM.js → chunk-VXFGSFIE.js} +2 -2
  109. package/dist/chunks/{chunk-R2FYCJL6.js → chunk-W4JBPYGW.js} +1 -1
  110. package/dist/chunks/{chunk-JZKTBYNB.js → chunk-WMJEQK4G.js} +1 -1
  111. package/dist/chunks/{chunk-ESYPMD7Q.js → chunk-X2MJFTLS.js} +1 -1
  112. package/dist/chunks/{chunk-67U7PAMU.js → chunk-X7ZMUWJO.js} +1 -1
  113. package/dist/chunks/{chunk-WGQ3FMRF.js → chunk-XKDOPNQ5.js} +1 -1
  114. package/dist/chunks/{chunk-EYTTZ5H4.js → chunk-XLZMSD5K.js} +1 -1
  115. package/dist/chunks/{chunk-ZIQJDTQB.js → chunk-XTT3K3TR.js} +1 -1
  116. package/dist/chunks/{chunk-Q7P34B2O.js → chunk-YFHQRDNQ.js} +1 -1
  117. package/dist/chunks/{chunk-UGFSAG4U.js → chunk-YG3HITOU.js} +1 -1
  118. package/dist/chunks/{chunk-DWF3FCY4.js → chunk-Z5R4OSGC.js} +1 -1
  119. package/dist/chunks/{chunk-JT5YQ52I.js → chunk-Z6HWSTEP.js} +1 -1
  120. package/dist/chunks/{chunk-4PUOWSDE.js → chunk-ZEOYNUHL.js} +1 -1
  121. package/dist/chunks/{chunk-4KTGYHCE.js → chunk-ZMRP2A7K.js} +1 -1
  122. package/dist/chunks/{chunk-OL3L3U36.js → chunk-ZSWATWK2.js} +1 -1
  123. package/dist/chunks/cli-KXU5DNVV.js +2 -0
  124. package/dist/chunks/{command-5AXJMFYC.js → command-X35I53H3.js} +3 -3
  125. package/dist/chunks/{configuration-command-5LUNWPOL.js → configuration-command-VJUK34UQ.js} +1 -1
  126. package/dist/chunks/{connected-app-executor-DHXZE4X3.js → connected-app-executor-JBFJF2H5.js} +1 -1
  127. package/dist/chunks/{connected-evidence-NWMPICKJ.js → connected-evidence-CQ533AML.js} +1 -1
  128. package/dist/chunks/{connected-starting-assets-NRVXIKQ2.js → connected-starting-assets-RL5X6LZ7.js} +1 -1
  129. package/dist/chunks/{continual-UCKQ2QLH.js → continual-PHGIZFF6.js} +1 -1
  130. package/dist/chunks/{core-commands-ZPBX35M2.js → core-commands-5DYMDWXY.js} +1 -1
  131. package/dist/chunks/{dataset-preparation-authoring-UUYFWWCT.js → dataset-preparation-authoring-UDSX33YK.js} +1 -1
  132. package/dist/chunks/{datasets-6K3ZANIV.js → datasets-BW4JFUUU.js} +1 -1
  133. package/dist/chunks/{desktop-test-57INNJ76.js → desktop-test-RIG4CB2Z.js} +1 -1
  134. package/dist/chunks/{dist-2MKJC6HN.js → dist-C5XFRP53.js} +1 -1
  135. package/dist/chunks/{evaluation-coordination-B7CN4R2D.js → evaluation-coordination-6QJ6XTUX.js} +1 -1
  136. package/dist/chunks/{experiment-improvements-G357VLDB.js → experiment-improvements-2XF63AQ4.js} +1 -1
  137. package/dist/chunks/{experiments-BHQO26LJ.js → experiments-3S2BVNK6.js} +1 -1
  138. package/dist/chunks/{experiments-signal-BI6NKETB.js → experiments-signal-IRBHGGW5.js} +1 -1
  139. package/dist/chunks/{help-UQN5RUPA.js → help-Q2VMJVTR.js} +1 -1
  140. package/dist/chunks/host-profile-evaluation-tools-5LZQHA32.js +2 -0
  141. package/dist/chunks/{host-profile-external-dataset-KSEPXY2S.js → host-profile-external-dataset-C6ZPMTX6.js} +1 -1
  142. package/dist/chunks/{hosted-app-server-composition-WDDO6F23.js → hosted-app-server-composition-AYZM2HY6.js} +1 -1
  143. package/dist/chunks/{hosted-experiment-improvement-VVYXQ65K.js → hosted-experiment-improvement-SMZJYRJ7.js} +1 -1
  144. package/dist/chunks/hosted-harness-runtime-QWIFAITG.js +2 -0
  145. package/dist/chunks/{hosted-profile-candidate-PTGQLPZO.js → hosted-profile-candidate-WOMWAE5N.js} +1 -1
  146. package/dist/chunks/{hosted-profile-compiler-FS5R6CHJ.js → hosted-profile-compiler-NZ2BXN32.js} +1 -1
  147. package/dist/chunks/{hosted-profile-evaluation-control-UUEZEMXU.js → hosted-profile-evaluation-control-3ECFFM7E.js} +1 -1
  148. package/dist/chunks/{hosted-profile-evaluation-inspection-4F7OEF4T.js → hosted-profile-evaluation-inspection-TM7RKONG.js} +1 -1
  149. package/dist/chunks/{hosted-profile-evaluation-preparation-LIJJZDHQ.js → hosted-profile-evaluation-preparation-2MZIRT75.js} +1 -1
  150. package/dist/chunks/{hosted-tasksets-KCLNMPG5.js → hosted-tasksets-IUK3VWSL.js} +1 -1
  151. package/dist/chunks/{human-review-PX6DBIFT.js → human-review-PG4WWVWV.js} +1 -1
  152. package/dist/chunks/{import-2HEYPHPW.js → import-FAZAVZBF.js} +1 -1
  153. package/dist/chunks/{learning-Y3UKNUGE.js → learning-3XDYMYBE.js} +1 -1
  154. package/dist/chunks/{learning-LSXBL5DB.js → learning-OR4CYV4B.js} +1 -1
  155. package/dist/chunks/local-harness-improvement-runtime-OYLTKMJU.js +2 -0
  156. package/dist/chunks/local-harness-taskset-review-I7YU4RZI.js +2 -0
  157. package/dist/chunks/{model-projects-6YWVD2TS.js → model-projects-POZRHXTF.js} +1 -1
  158. package/dist/chunks/{opchat-66BCRKEZ.js → opchat-TCZA6373.js} +1 -1
  159. package/dist/chunks/{opchat-bounded-chat-KQWXZVFN.js → opchat-bounded-chat-GMYDXLWB.js} +1 -1
  160. package/dist/chunks/{organizations-IOYWDOCC.js → organizations-PYKGA2P2.js} +1 -1
  161. package/dist/chunks/{profile-YH6G3ZTD.js → profile-GYYI555I.js} +1 -1
  162. package/dist/chunks/project-action-payload-FE6M2OXJ.js +2 -0
  163. package/dist/chunks/{project-agent-RYVMKW2F.js → project-agent-4ISJFMJD.js} +1 -1
  164. package/dist/chunks/{published-experiment-source-SDXUVPE7.js → published-experiment-source-E2YAJCLM.js} +1 -1
  165. package/dist/chunks/{refiner-profile-service-56VYLZQJ.js → refiner-profile-service-LKGXD5WJ.js} +1 -1
  166. package/dist/chunks/{runtime-ISLJIGWC.js → runtime-UDLOZD4Y.js} +2 -2
  167. package/dist/chunks/{sandbox-command-DI45NRTV.js → sandbox-command-4J6DAY7T.js} +1 -1
  168. package/dist/chunks/{sandbox-template-T42MDUSR.js → sandbox-template-TSXWJMWG.js} +1 -1
  169. package/dist/chunks/saved-work-QTEBKVUB.js +2 -0
  170. package/dist/chunks/{send-turn-YLY3YNEQ.js → send-turn-4MH4WMLW.js} +1 -1
  171. package/dist/chunks/{setup-D6TY2GWV.js → setup-IVT2FQSE.js} +1 -1
  172. package/dist/chunks/{src-7RN7BF4W.js → src-DC7N2H7A.js} +111 -113
  173. package/dist/chunks/{src-LF5X4RNQ.js → src-TOSQX36I.js} +1 -1
  174. package/dist/chunks/{standalone-experiment-turn-owner-TW5MTWIO.js → standalone-experiment-turn-owner-UYPA6XHW.js} +1 -1
  175. package/dist/chunks/{store-chat-resources-IRHBW2EC.js → store-chat-resources-QLXKKYYC.js} +1 -1
  176. package/dist/chunks/{store-continual-support-reviews-3KK42L4I.js → store-continual-support-reviews-4F2BOG3H.js} +1 -1
  177. package/dist/chunks/{store-conversation-serving-IVURK52V.js → store-conversation-serving-EUD47W6X.js} +1 -1
  178. package/dist/chunks/{store-create-improve-UTCLBXF2.js → store-create-improve-QUOTNNIM.js} +1 -1
  179. package/dist/chunks/{store-datasets-4AQOVAQY.js → store-datasets-ZUC7CNVO.js} +1 -1
  180. package/dist/chunks/{store-evaluation-results-PK2P3IMH.js → store-evaluation-results-LHHPHESK.js} +1 -1
  181. package/dist/chunks/{store-harness-workspaces-YEXB4IRV.js → store-harness-workspaces-TKX5PZWP.js} +1 -1
  182. package/dist/chunks/{store-human-review-O4BVHP25.js → store-human-review-7WZWRJ6X.js} +1 -1
  183. package/dist/chunks/{store-learned-preference-migration-validation-44SVX6YB.js → store-learned-preference-migration-validation-MVNKBR4X.js} +1 -1
  184. package/dist/chunks/{store-learning-SIUQIY5C.js → store-learning-WLUW2PWE.js} +1 -1
  185. package/dist/chunks/{store-learning-credentials-BUHR7SN6.js → store-learning-credentials-FDKCEDHK.js} +1 -1
  186. package/dist/chunks/{store-local-experiments-BHVTKPPE.js → store-local-experiments-HB53QFLL.js} +1 -1
  187. package/dist/chunks/{store-model-batch-review-RVAYUVK2.js → store-model-batch-review-O3I6GIAA.js} +1 -1
  188. package/dist/chunks/{store-model-configuration-AYFGMC5D.js → store-model-configuration-CDIGNU6Q.js} +1 -1
  189. package/dist/chunks/{store-model-project-preparation-5DEIS7TB.js → store-model-project-preparation-QMQ2HMJV.js} +1 -1
  190. package/dist/chunks/{store-modification-recordings-LCPK6K2T.js → store-modification-recordings-W4VEZKKQ.js} +1 -1
  191. package/dist/chunks/{store-preference-comparison-5YVIQNVB.js → store-preference-comparison-JKURBESE.js} +1 -1
  192. package/dist/chunks/{store-sidebar-file-bookmarks-WLMYDA4E.js → store-sidebar-file-bookmarks-KAEDHVVF.js} +1 -1
  193. package/dist/chunks/{store-sidebar-preferences-AFMYIDWT.js → store-sidebar-preferences-QPBLTHY6.js} +1 -1
  194. package/dist/chunks/{store-subagents-KFPVSTRO.js → store-subagents-ZELQP3MX.js} +1 -1
  195. package/dist/chunks/{store-task-inbox-L6IQTY26.js → store-task-inbox-4ZDQR2E7.js} +1 -1
  196. package/dist/chunks/{store-task-inventory-QWS2C656.js → store-task-inventory-CTIJDLYE.js} +1 -1
  197. package/dist/chunks/{store-taskset-drafts-EAOOY6CR.js → store-taskset-drafts-FRPBYLTW.js} +1 -1
  198. package/dist/chunks/{store-training-FYXZU2FE.js → store-training-WQAYUT7B.js} +1 -1
  199. package/dist/chunks/{store-training-jobs-3N3VKPIY.js → store-training-jobs-O5EHGTH7.js} +1 -1
  200. package/dist/chunks/{store-training-models-VOFVGPZR.js → store-training-models-YSZMC66T.js} +1 -1
  201. package/dist/chunks/{taskset-HNDIGYQG.js → taskset-OVYM4QMS.js} +1 -1
  202. package/dist/chunks/{taskset-packages-WMG5DUBN.js → taskset-packages-FUQWNTSB.js} +1 -1
  203. package/dist/chunks/{taskset-packages-T6B6HYKZ.js → taskset-packages-GM6IUOTY.js} +1 -1
  204. package/dist/chunks/{teams-bot-Z5CZLWE4.js → teams-bot-U2M3ORWR.js} +1 -1
  205. package/dist/chunks/{tool-learning-ZQ6NSJ5K.js → tool-learning-NXVR4YPA.js} +1 -1
  206. package/dist/chunks/{training-JTYQA7GA.js → training-EQ7G5FDY.js} +1 -1
  207. package/dist/chunks/training-LQUAL4Y4.js +2 -0
  208. package/dist/chunks/training-PEZYJ2SN.js +2 -0
  209. package/dist/chunks/{training-hosted-36SZFS4U.js → training-hosted-XKSUTMLQ.js} +1 -1
  210. package/dist/chunks/{training-hosted-alphaedit-HSMRDJTD.js → training-hosted-alphaedit-VCOEYLKK.js} +1 -1
  211. package/dist/chunks/{training-hosted-decision-7JALOU6O.js → training-hosted-decision-IKWWXA56.js} +1 -1
  212. package/dist/chunks/{training-hosted-engram-SXO75MFG.js → training-hosted-engram-3TOPPVSW.js} +1 -1
  213. package/dist/chunks/{training-hosted-learning-E2N32YU5.js → training-hosted-learning-UEBGSSNC.js} +1 -1
  214. package/dist/chunks/{training-hosted-modification-comparison-TXFDJFTG.js → training-hosted-modification-comparison-C6S4JFHW.js} +1 -1
  215. package/dist/chunks/{training-hosted-neuron-training-J42WK4EH.js → training-hosted-neuron-training-EP2U4PHG.js} +1 -1
  216. package/dist/chunks/{training-hosted-serving-report-BAEABGJH.js → training-hosted-serving-report-KJMRZJLQ.js} +1 -1
  217. package/dist/chunks/{training-hosted-steering-T556BUBG.js → training-hosted-steering-I27DV6A2.js} +1 -1
  218. package/dist/chunks/{training-model-start-P3PXDWNT.js → training-model-start-NWXNGRDC.js} +1 -1
  219. package/dist/chunks/{workspaces-EK62ANTB.js → workspaces-FVQYJPOS.js} +1 -1
  220. package/dist/cli.js +1 -1
  221. package/dist/index.js +1 -1
  222. package/dist/skills/manifest.json +3 -3
  223. package/dist/skills/openpond-cli/references/experiments-and-training.md +19 -0
  224. package/dist/web/assets/App-QM6Y2Eod.js +54 -0
  225. package/dist/web/assets/{AppDialog-x1HU1uLv.js → AppDialog-C8um481a.js} +1 -1
  226. package/dist/web/assets/{AppTerminalPanel-CNIKmqKc.js → AppTerminalPanel-OwNr-bp6.js} +2 -2
  227. package/dist/web/assets/{AppToastContext-DNWd43HS.js → AppToastContext-BQ4iRFif.js} +1 -1
  228. package/dist/web/assets/{AppsView-BvOD83Z1.js → AppsView-mk8m_Cra.js} +1 -1
  229. package/dist/web/assets/{AttachmentTypeIcon-BLdDr3JZ.js → AttachmentTypeIcon-SITPqTtF.js} +1 -1
  230. package/dist/web/assets/{BrowserSidebar-Ar0FlFKg.js → BrowserSidebar-BghdIKTB.js} +1 -1
  231. package/dist/web/assets/{CartesianChart-tS7f1HZv.js → CartesianChart-BdRx7q_O.js} +1 -1
  232. package/dist/web/assets/{ChatTimelineEntry-z7_kur3h.js → ChatTimelineEntry-BBOnAzJB.js} +1 -1
  233. package/dist/web/assets/{CollaborationTabs-CaiFEKrv.js → CollaborationTabs-Beja-9s5.js} +1 -1
  234. package/dist/web/assets/{CommandMenu-BpubEqaA.js → CommandMenu-CQtrSUpu.js} +1 -1
  235. package/dist/web/assets/{CommunityView-TGR4s99l.js → CommunityView-LPTAakS-.js} +1 -1
  236. package/dist/web/assets/{ComposerAttachments-DPWCjKXz.js → ComposerAttachments-DI-Gr7Zw.js} +1 -1
  237. package/dist/web/assets/{ComposerCreateImproveStrip-Drji01_6.js → ComposerCreateImproveStrip-CY5Uw1yc.js} +1 -1
  238. package/dist/web/assets/{ConversationImportsSettings-B_oW0cz7.js → ConversationImportsSettings-DFwhKERw.js} +1 -1
  239. package/dist/web/assets/{DatasetReviewImport-Dr3unJSY.js → DatasetReviewImport-C9xraQk7.js} +1 -1
  240. package/dist/web/assets/{ExperimentTrainingDataWorkspace-DObvpJAw.js → ExperimentTrainingDataWorkspace-Cx58S6R_.js} +2 -2
  241. package/dist/web/assets/{FilePagePreview-9kkXbARN.js → FilePagePreview-dlbmR8s8.js} +2 -2
  242. package/dist/web/assets/{GetStartedView-Dv2b_SlH.js → GetStartedView-BkTV_shK.js} +1 -1
  243. package/dist/web/assets/{GettingStartedDialog-sPaPMc61.js → GettingStartedDialog-DulDLYnr.js} +1 -1
  244. package/dist/web/assets/{HostedModelLearningReview-BlwhGxS6.js → HostedModelLearningReview--fXJEOfI.js} +1 -1
  245. package/dist/web/assets/{HostedModelLearningSettings-B5ahk3je.js → HostedModelLearningSettings-BEb7B_PC.js} +1 -1
  246. package/dist/web/assets/{HtmlVisual-rGsClq0p.js → HtmlVisual-BS61T2qR.js} +1 -1
  247. package/dist/web/assets/{LabModelVersionDetailPage-Da7AwZWV.js → LabModelVersionDetailPage-CmzUIDbR.js} +1 -1
  248. package/dist/web/assets/{LabModelWorkspace-DTeYViWH.js → LabModelWorkspace-DoAnQKWk.js} +1 -1
  249. package/dist/web/assets/{LabSkillSidebar-BieHbNl6.js → LabSkillSidebar-DJTm7ZQs.js} +1 -1
  250. package/dist/web/assets/{LabsRoute-D3XqPB0-.js → LabsRoute-DNtBot4a.js} +4 -4
  251. package/dist/web/assets/{LearningBatchesPage-CCBuf2u4.js → LearningBatchesPage-C_oQjciE.js} +1 -1
  252. package/dist/web/assets/{MainChatThread-B6BQJfcq.js → MainChatThread-D9e-to8e.js} +2 -2
  253. package/dist/web/assets/{MainPane-D3fQou29.js → MainPane-mWeD0M-f.js} +6 -6
  254. package/dist/web/assets/{ModelProjectPageHeader-BZn9Lu_J.js → ModelProjectPageHeader-BecKU_2p.js} +1 -1
  255. package/dist/web/assets/{NativeSetupTerminal-Bglqab_g.js → NativeSetupTerminal-DO0DN4fH.js} +2 -2
  256. package/dist/web/assets/{NativeSkillSidebar-pUGRdnV_.js → NativeSkillSidebar-jnxgQASC.js} +1 -1
  257. package/dist/web/assets/{NewProjectDialog-BpHN38MA.js → NewProjectDialog-ByHR4vMf.js} +1 -1
  258. package/dist/web/assets/{OutputsPage-LunDCQ6w.js → OutputsPage-DZY4BUCy.js} +1 -1
  259. package/dist/web/assets/{PageChrome-DThEcWAx.js → PageChrome-DjPuwWsn.js} +1 -1
  260. package/dist/web/assets/{ProjectsPage-vct_TQgL.js → ProjectsPage-DKbwhIM4.js} +1 -1
  261. package/dist/web/assets/{RightChatPanelStack-CgFK7DY0.js → RightChatPanelStack-BARH0XuL.js} +1 -1
  262. package/dist/web/assets/RightSidebarHomePanel-qKL8dZrN.js +1 -0
  263. package/dist/web/assets/{ScheduledWorkPage-mmaZfybl.js → ScheduledWorkPage-CElrmRz9.js} +1 -1
  264. package/dist/web/assets/{SettingsView-CJfeRsWR.js → SettingsView-CsFSjE9s.js} +3 -3
  265. package/dist/web/assets/{TasksetDraftEditorPrimitives-CuimAfkv.js → TasksetDraftEditorPrimitives-DJoYkvWq.js} +1 -1
  266. package/dist/web/assets/{TeamChatView-BcK0lF1b.js → TeamChatView-D9Y4e98Y.js} +1 -1
  267. package/dist/web/assets/{TerminalOverlay-0pzEvy-C.js → TerminalOverlay-CUO8yZjy.js} +1 -1
  268. package/dist/web/assets/{TrainingCreationPanel-CcyzFz7l.js → TrainingCreationPanel-_mnLQ1HA.js} +1 -1
  269. package/dist/web/assets/{TrainingDraftPanel-DSLZXdLz.js → TrainingDraftPanel-CCqQTHo5.js} +1 -1
  270. package/dist/web/assets/{UsageSettingsSection-BT9pcnCn.js → UsageSettingsSection-CdWq5oYC.js} +1 -1
  271. package/dist/web/assets/WorkSidebarPanel-DRXaK-E6.js +1 -0
  272. package/dist/web/assets/{WorkspaceDiffPanel-Bbz5qrVA.js → WorkspaceDiffPanel-CdHr8bX6.js} +3 -3
  273. package/dist/web/assets/{WorkspaceEnvironmentMenu-6hXpvMTl.js → WorkspaceEnvironmentMenu-BnUh4dg9.js} +1 -1
  274. package/dist/web/assets/{WorkspaceFileLocation-BijVemBl.js → WorkspaceFileLocation-VzrSq_Ki.js} +1 -1
  275. package/dist/web/assets/{WorkspaceGitDialogs-BOO0E5i9.js → WorkspaceGitDialogs-nwvQOm9r.js} +1 -1
  276. package/dist/web/assets/{WorkspaceMonacoEditor-B_YzK7Do.js → WorkspaceMonacoEditor-m3bCIpZe.js} +3 -3
  277. package/dist/web/assets/{WorkspacePdfPreview-CFti1fvu.js → WorkspacePdfPreview-u6Iv0qr0.js} +2 -2
  278. package/dist/web/assets/{WorkspacePresentationPreview-DPAhNaV6.js → WorkspacePresentationPreview-CjvTjhUO.js} +1 -1
  279. package/dist/web/assets/{bot-BE2rL_qv.js → bot-DiDSZBLn.js} +1 -1
  280. package/dist/web/assets/{chat-resources-Beh5lB36.js → chat-resources-CmBtWC5V.js} +1 -1
  281. package/dist/web/assets/chevron-down-CqxKXYPf.js +1 -0
  282. package/dist/web/assets/chevron-right-ClP6ukIq.js +1 -0
  283. package/dist/web/assets/chevron-up-DY7wpdJ1.js +1 -0
  284. package/dist/web/assets/{chunk-C3TS766N-j1MK0e3c.js → chunk-C3TS766N-DSA4vs-Y.js} +1 -1
  285. package/dist/web/assets/{client-BnJhN-14.js → client-_uDCFdg5.js} +1 -1
  286. package/dist/web/assets/{client-choice-storage-CQ0CNkzG.js → client-choice-storage-CRKZpilL.js} +1 -1
  287. package/dist/web/assets/{cloud-upload-DFjZE4O4.js → cloud-upload-CWamjPts.js} +1 -1
  288. package/dist/web/assets/{copy-CGrLUtw5.js → copy-B56YjDkW.js} +1 -1
  289. package/dist/web/assets/{cssMode-DvRw2fUx.js → cssMode-BuC9qQvo.js} +1 -1
  290. package/dist/web/assets/{external-link-3ZnEFUXd.js → external-link-BSn21e-y.js} +1 -1
  291. package/dist/web/assets/{folder-open-i9n8450i.js → folder-open-CaJGWSr2.js} +1 -1
  292. package/dist/web/assets/{folder-plus-cu8Md_ej.js → folder-plus-eTUep-az.js} +1 -1
  293. package/dist/web/assets/{git-commit-horizontal-CwckmC09.js → git-commit-horizontal-Buk_hy6T.js} +1 -1
  294. package/dist/web/assets/{htmlMode-8VF4Ovtw.js → htmlMode-D7kF2kDL.js} +1 -1
  295. package/dist/web/assets/{icons-4yRSxBZj.js → icons-B4B5eUyR.js} +1 -1
  296. package/dist/web/assets/{image-D-umhyyK.js → image--4h1aK2l.js} +1 -1
  297. package/dist/web/assets/{index-DiVhx1GM.js → index-CCaTs7xt.js} +2 -2
  298. package/dist/web/assets/{info-Dq2RsPDJ.js → info-DjMTH4sJ.js} +1 -1
  299. package/dist/web/assets/{jsonMode-CvCYQHkB.js → jsonMode-BVX_7KjE.js} +1 -1
  300. package/dist/web/assets/loader-circle-DNHvEoaP.js +1 -0
  301. package/dist/web/assets/{lspLanguageFeatures-CjufNNFF.js → lspLanguageFeatures-RBOb-3wX.js} +1 -1
  302. package/dist/web/assets/{maximize-2-CKY8dua6.js → maximize-2-Cjg-f1xT.js} +1 -1
  303. package/dist/web/assets/{message-square-CVDgKlKX.js → message-square-oIMQDMc3.js} +1 -1
  304. package/dist/web/assets/{monaco.contribution-BYAgjZbj.js → monaco.contribution-CIbGU5-C.js} +2 -2
  305. package/dist/web/assets/{monaco.contribution-PjJ1258q.js → monaco.contribution-CIwt2mTE.js} +2 -2
  306. package/dist/web/assets/{monaco.contribution-BYY3-y9l.js → monaco.contribution-Dd1cPdSS.js} +2 -2
  307. package/dist/web/assets/{monaco.contribution-Bh0CKj9i.js → monaco.contribution-KRLNg324.js} +2 -2
  308. package/dist/web/assets/{monitor-UYe42gew.js → monitor-BWaitd6I.js} +1 -1
  309. package/dist/web/assets/{paperclip-DrlSVUoz.js → paperclip-FYK6OySO.js} +1 -1
  310. package/dist/web/assets/{pdf-BMhday2W.js → pdf-DbwlsqZP.js} +1 -1
  311. package/dist/web/assets/play-DieChKfF.js +1 -0
  312. package/dist/web/assets/plus-DkfcQyma.js +1 -0
  313. package/dist/web/assets/{presentation-DcZKqH7w.js → presentation-B6MaAPC7.js} +1 -1
  314. package/dist/web/assets/{python-CiA01i07.js → python-DRYJxjiM.js} +1 -1
  315. package/dist/web/assets/{refresh-cw-00D-GDnF.js → refresh-cw-DOVpqCfJ.js} +1 -1
  316. package/dist/web/assets/{save-CXe7bqR7.js → save-BuyyyR4Q.js} +1 -1
  317. package/dist/web/assets/{settings-lists-B5J40WM6.js → settings-lists-BeAdxSjx.js} +1 -1
  318. package/dist/web/assets/square-D0YnIVh6.js +1 -0
  319. package/dist/web/assets/{square-terminal-DxC7TTds.js → square-terminal-DTOIZy6_.js} +1 -1
  320. package/dist/web/assets/{submit-issue-command-Dq3TqJLV.js → submit-issue-command-V--K9lVQ.js} +1 -1
  321. package/dist/web/assets/{toggleHighContrast-BH3Jckfo.js → toggleHighContrast-nNzCoE0h.js} +1 -1
  322. package/dist/web/assets/training-DZgfVcI-.js +1 -0
  323. package/dist/web/assets/{training-model-data-B6IZ3x-t.js → training-model-data-CWoTokkb.js} +1 -1
  324. package/dist/web/assets/{tsMode-DXkj4bqC.js → tsMode-BfVi5_FZ.js} +1 -1
  325. package/dist/web/assets/{upload-B3KRHVHl.js → upload-C2MnlWjj.js} +1 -1
  326. package/dist/web/assets/{useAccountSettings-BGRkTRrp.js → useAccountSettings-QwRbZIKu.js} +1 -1
  327. package/dist/web/assets/{useAgentInventory-D_1AlAZJ.js → useAgentInventory-B7xEgMCA.js} +1 -1
  328. package/dist/web/assets/{useChatContextSelection-hoMSuUSE.js → useChatContextSelection-O6wo4EqD.js} +1 -1
  329. package/dist/web/assets/{useLocalAgentSchedules-DxTER7Ow.js → useLocalAgentSchedules-DpHnOGoV.js} +1 -1
  330. package/dist/web/assets/{useQuery-DkPec_9x.js → useQuery-CvZ8bzdW.js} +1 -1
  331. package/dist/web/assets/{wifi-off-CMzpvbWl.js → wifi-off-B8d12Alh.js} +1 -1
  332. package/dist/web/assets/{workers-ziY_bTv2.js → workers-sIVKxb8c.js} +1 -1
  333. package/dist/web/assets/x-BvVvVB-j.js +1 -0
  334. package/dist/web/assets/{yaml-mSvqVSko.js → yaml-8-aLM3zj.js} +1 -1
  335. package/dist/web/index.html +1 -1
  336. package/docs/command-reference.md +1 -0
  337. package/package.json +1 -1
  338. package/dist/chunks/app-server-runtime-B7AMBGQZ.js +0 -2
  339. package/dist/chunks/chunk-6D3FI2XT.js +0 -2
  340. package/dist/chunks/chunk-VEBW7NKD.js +0 -2
  341. package/dist/chunks/cli-ALEEFAJ7.js +0 -2
  342. package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +0 -2
  343. package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +0 -2
  344. package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +0 -2
  345. package/dist/chunks/local-harness-taskset-review-E5GN5LTR.js +0 -2
  346. package/dist/chunks/project-action-payload-53OH6WDH.js +0 -2
  347. package/dist/chunks/saved-work-54I5ZJTC.js +0 -2
  348. package/dist/chunks/training-5NT2YB2L.js +0 -2
  349. package/dist/chunks/training-UY6KRG4M.js +0 -2
  350. package/dist/web/assets/App-CXhxya9x.js +0 -54
  351. package/dist/web/assets/RightSidebarHomePanel-BJmzUcmy.js +0 -1
  352. package/dist/web/assets/WorkSidebarPanel-CP-nHAsJ.js +0 -1
  353. package/dist/web/assets/chevron-down-Bn8yph2O.js +0 -1
  354. package/dist/web/assets/chevron-right-BU-jUmb2.js +0 -1
  355. package/dist/web/assets/chevron-up-DacwuDJZ.js +0 -1
  356. package/dist/web/assets/loader-circle-DBl6qqtR.js +0 -1
  357. package/dist/web/assets/play-DIqZnaNf.js +0 -1
  358. package/dist/web/assets/plus-CFNxAPMK.js +0 -1
  359. package/dist/web/assets/square-DJEaBefe.js +0 -1
  360. package/dist/web/assets/training-DWfghwfZ.js +0 -1
  361. package/dist/web/assets/x-omjwMPbJ.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as oe}from"./chunk-UGFSAG4U.js";import{b as be}from"./chunk-SSHE6B7Z.js";import{f as J}from"./chunk-WD4KAKEX.js";import{m as L}from"./chunk-HIQPGYVH.js";import{o as ye}from"./chunk-DXJC3QW7.js";import{l as W}from"./chunk-4PUOWSDE.js";import{v as B}from"./chunk-ZY32SZ2P.js";import{I as Ee,K as Te}from"./chunk-SV7ZBEK2.js";import{c as M,d as z,e as Ie,n as y}from"./chunk-RCT3O3HQ.js";import{f as ve}from"./chunk-UGOK7VTC.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as u}from"./chunk-FTQLQJQV.js";var c=Object.freeze({eventBytes:65536,actionBytes:16384,resultBytes:8192,stateBytes:8192,eventsPerAppend:32,eventsPerEpisode:256,episodeBytes:2097152,assetBytes:1048576,assetsPerEpisode:16,queueBytes:52428800,queueEvents:5e3,queueAgeSeconds:86400,capabilities:32,consultationRounds:3,consultationBytes:65536,manifestSeconds:300}),s=M,g=z,w=Ie,K=e.enum(["codex","claude_code","opencode","openpond"]),h=e.object({id:M,contentHash:z}).strict(),C=e.object({teamId:M,projectId:M}).strict();function T(n,t){return e.preprocess((o,i)=>{try{B(o,t)}catch{return i.addIssue({code:"custom",message:"Tool learning data exceeds its JSON boundary."}),e.NEVER}return o},n)}u(T,"boundedToolLearningSchema");function x(n){return e.string().max(n).refine(t=>new TextEncoder().encode(t).byteLength<=n,"Tool learning text exceeds its UTF-8 byte limit.")}u(x,"toolLearningText");var ze=T(e.record(e.string().min(1).max(120),e.union([x(2e3),e.number().finite(),e.boolean(),e.null()])).refine(n=>Object.keys(n).length<=32,"Use at most 32 explicit state fields."),c.stateBytes),j=e.object({application:e.string().trim().min(1).max(200),version:e.string().trim().min(1).max(200),state:ze,fingerprint:z}).strict(),Y=e.object({id:M,contentHash:z,mediaType:e.enum(["text/plain","application/json","text/x-python","text/x-diff"]),sizeBytes:e.number().int().nonnegative().max(c.assetBytes),purpose:e.enum(["action","result","state","verification"])}).strict(),Le=e.object({policyRevision:e.number().int().positive(),policyHash:z,redactedFields:e.number().int().nonnegative().max(1e4),omittedFields:e.number().int().nonnegative().max(1e4),truncated:e.boolean()}).strict();function E(n,t=c.eventBytes){return B(n,t),y(n)}u(E,"toolLearningContentHash");var Q=x(c.actionBytes),xe=e.string().min(1).max(1e3).refine(n=>!n.startsWith("/")&&!n.includes("\\")&&!/^[A-Za-z]:/u.test(n)&&n.split("/").every(t=>t!==""&&t!=="."&&t!==".."),"Use a workspace-relative artifact path."),P=T(e.discriminatedUnion("kind",[e.object({kind:e.literal("python"),code:Q}).strict(),e.object({kind:e.literal("shell"),command:Q,shell:e.string().min(1).max(120)}).strict(),e.object({kind:e.literal("tool_arguments"),arguments:e.record(e.string().min(1).max(200),e.json())}).strict(),e.object({kind:e.literal("edit"),patch:Q,baseFiles:e.array(e.object({path:xe,contentHash:g.nullable()}).strict()).min(1).max(32)}).strict()]),c.actionBytes),yt=e.discriminatedUnion("kind",[e.object({kind:e.literal("replacement"),expectedActionHash:g,environmentFingerprint:g,action:P}).strict(),e.object({kind:e.literal("patch"),expectedActionHash:g,environmentFingerprint:g,files:e.array(e.object({path:xe,expectedContentHash:g,patch:Q}).strict()).min(1).max(16)}).strict()]);var Ve=e.object({intent:x(2e3),tool:e.object({name:e.string().min(1).max(200),version:e.string().max(200).nullable(),server:e.string().max(200).nullable()}).strict(),action:P,actionHash:g,environment:j,contextAssets:e.array(Y).max(c.assetsPerEpisode),selection:e.discriminatedUnion("kind",[e.object({kind:e.literal("eligible_attempt")}).strict(),e.object({kind:e.literal("unchanged_control"),numerator:e.number().int().positive(),denominator:e.number().int().positive(),policyHash:g}).strict()])}).strict().superRefine((n,t)=>{E(n.action)!==n.actionHash&&t.addIssue({code:"custom",path:["actionHash"],message:"Action bytes differ from their hash."}),n.selection.kind==="unchanged_control"&&n.selection.numerator>n.selection.denominator&&t.addIssue({code:"custom",path:["selection"],message:"Sampling probability cannot exceed one."})}),Ke=e.enum(["validation_failure","execution_failure","process_failure","timeout","cancelled","infrastructure_failure","authorization_denied","outcome_failure","unknown_failure"]),ie={attempt:h,actionHash:g,execution:e.enum(["not_executed","executed","unknown"]),sideEffects:e.enum(["none","possible","observed","unknown"]),resultExcerpt:x(c.resultBytes),resultHash:g.nullable(),assets:e.array(Y).max(c.assetsPerEpisode)},$e=e.discriminatedUnion("outcome",[e.object({...ie,outcome:e.literal("succeeded"),exitCode:e.literal(0).nullable()}).strict(),e.object({...ie,outcome:e.literal("failed"),classification:Ke,errorCode:e.string().min(1).max(200),message:x(2e3),exitCode:e.number().int().min(-255).max(255).nullable()}).strict(),e.object({...ie,outcome:e.literal("incomplete"),reason:e.enum(["completion_not_observed","observer_restarted","transport_interrupted","coverage_gap"])}).strict()]).superRefine((n,t)=>{n.execution==="not_executed"&&n.sideEffects!=="none"&&t.addIssue({code:"custom",path:["sideEffects"],message:"An unexecuted action cannot claim tool effects."}),n.outcome==="succeeded"&&n.execution!=="executed"&&t.addIssue({code:"custom",path:["execution"],message:"Successful execution requires an observed execution."}),n.outcome==="failed"&&(n.classification==="validation_failure"&&n.execution!=="not_executed"&&t.addIssue({code:"custom",path:["execution"],message:"Pre-execution validation failure must be unexecuted."}),n.classification==="process_failure"&&(n.execution!=="executed"||n.exitCode===null||n.exitCode===0)&&t.addIssue({code:"custom",path:["exitCode"],message:"Process failure requires a nonzero observed exit."}))}),Xe=e.object({failedAttempt:h,failedObservation:h,replacementAttempt:h,goalId:s,basis:e.enum(["explicit_relation","artifact_lineage","unverified"]),attributionEvidence:e.array(h).max(16)}).strict().superRefine((n,t)=>{n.failedAttempt.id===n.replacementAttempt.id&&t.addIssue({code:"custom",message:"A recovery must reference a different attempt."}),n.basis!=="unverified"&&n.attributionEvidence.length===0&&t.addIssue({code:"custom",path:["attributionEvidence"],message:"Recovery attribution needs retained evidence."})}),Ge=e.object({attempt:h,actionHash:g,outcome:e.enum(["passed","failed","unknown"]),verifierRelease:h.nullable(),verifierReceipt:h.nullable(),environmentFingerprint:g,resetStateHash:g.nullable(),outputArtifacts:e.array(Y).max(c.assetsPerEpisode),reason:x(2e3)}).strict().superRefine((n,t)=>{n.outcome!=="unknown"&&(!n.verifierRelease||!n.verifierReceipt)&&t.addIssue({code:"custom",message:"A verification outcome requires an exact verifier and execution receipt."})}),$=e.object({schemaVersion:e.literal("openpond.toolEpisodeEvent.v1"),operationId:s,installationId:s,episodeId:s,eventId:s,sessionId:s,parentSessionId:s.nullable(),turnId:s.nullable(),callId:s,occurredAt:w,sequence:e.number().int().nonnegative(),adapterVersion:e.string().min(1).max(200),sanitization:Le,contentHash:g}).strict(),R=T(e.discriminatedUnion("eventKind",[$.extend({eventKind:e.literal("attempt"),payload:Ve}).strict(),$.extend({eventKind:e.literal("observation"),payload:$e}).strict(),$.extend({eventKind:e.literal("recovery_link"),payload:Xe}).strict(),$.extend({eventKind:e.literal("verification"),payload:Ge}).strict(),$.extend({eventKind:e.literal("lineage"),payload:e.object({relation:e.enum(["fork","split","reopen"]),parentEpisode:h,parentSessionId:s,reason:x(1e3)}).strict()}).strict()]).superRefine((n,t)=>{let{contentHash:o,...i}=n;E(i)!==o&&t.addIssue({code:"custom",path:["contentHash"],message:"Episode event content hash mismatch."})}),c.eventBytes);function ae(n){let t=E(n);if(!n||typeof n!="object"||Array.isArray(n)||Object.hasOwn(n,"contentHash"))throw new Error("tool_episode_unsigned_envelope_required");return R.parse({...n,contentHash:t})}u(ae,"sealToolEpisodeEvent");var Se=T(e.object({schemaVersion:e.literal("openpond.toolEpisodeAppend.v1"),operationId:s,installationId:s,events:e.array(R).min(1).max(c.eventsPerAppend)}).strict().superRefine((n,t)=>{n.events.some(o=>o.installationId!==n.installationId)&&t.addIssue({code:"custom",path:["events"],message:"Append events must belong to the exact installation."}),new Set(n.events.map(o=>o.eventId)).size!==n.events.length&&t.addIssue({code:"custom",path:["events"],message:"Append event IDs must be unique."})}),c.eventBytes*c.eventsPerAppend),Re=e.object({schemaVersion:e.literal("openpond.toolEpisodeAppendReceipt.v1"),operationId:s,requestHash:g,installationId:s,teamId:s,projectId:s,receivedAt:w,events:e.array(e.object({eventId:s,contentHash:g,state:e.enum(["retained","already_retained","privacy_rejected"]),receiptId:s,reason:e.string().max(200).nullable()}).strict()).min(1).max(c.eventsPerAppend),learningEnrollment:e.literal(!1)}).strict();var V=e.object({revision:e.number().int().positive(),permittedTools:e.array(e.string().min(1).max(200)).min(1).max(100),workspaceRootHashes:e.array(g).min(1).max(32),permittedFields:e.array(e.enum(["action","intent","state","result_excerpt","artifact_reference"])).min(1).max(5),unchangedControls:e.object({numerator:e.number().int().nonnegative(),denominator:e.number().int().positive()}).strict(),maximumEventBytes:e.number().int().positive().max(c.eventBytes),maximumEpisodeBytes:e.number().int().positive().max(c.episodeBytes),maximumEpisodeEvents:e.number().int().positive().max(c.eventsPerEpisode),maximumQueueBytes:e.number().int().positive().max(c.queueBytes),maximumQueueEvents:e.number().int().positive().max(c.queueEvents),maximumQueueAgeSeconds:e.number().int().positive().max(c.queueAgeSeconds),rawRetentionDays:e.number().int().min(1).max(30),purposes:e.array(e.enum(["capture","consultation"])).min(1).max(2),modelUpdates:e.literal("requires_separate_review"),variantGeneration:e.literal("disabled")}).strict().superRefine((n,t)=>{n.unchangedControls.numerator>n.unchangedControls.denominator&&t.addIssue({code:"custom",path:["unchangedControls"],message:"Sampling probability cannot exceed one."});for(let o of["permittedTools","workspaceRootHashes","permittedFields","purposes"])new Set(n[o]).size!==n[o].length&&t.addIssue({code:"custom",path:[o],message:"Policy entries must be unique."});(n.maximumEpisodeBytes<n.maximumEventBytes||n.maximumQueueBytes<n.maximumEventBytes)&&t.addIssue({code:"custom",message:"Episode and queue capacities must fit one permitted event."})}),We=e.object({receipt:h.nullable(),start:e.enum(["observed","documented","unsupported","unqualified"]),resume:e.enum(["observed","documented","unsupported","unqualified"]),compaction:e.enum(["observed","documented","unsupported","unqualified"]),executionFailure:e.enum(["observed","documented","unsupported","unqualified"]),processFailure:e.enum(["observed","documented","unsupported","unqualified"]),validationFailure:e.enum(["observed","documented","unsupported","unqualified"]),nestedCalls:e.enum(["observed","documented","unsupported","unqualified"]),contextRefresh:e.enum(["session_start","start_resume","start_resume_compaction","revision_aware_turn","unqualified"]),gaps:e.array(e.string().min(1).max(500)).max(32)}).strict().superRefine((n,t)=>{Object.values(n).includes("observed")&&!n.receipt&&t.addIssue({code:"custom",path:["receipt"],message:"Observed coverage requires a qualification receipt."})}),we=T(e.object({schemaVersion:e.literal("openpond.toolLearningRegistration.v1"),operationId:s,installationId:s,projectId:s,machineSourceId:s,client:K,clientVersion:e.string().min(1).max(200),adapterRelease:h,collectionPolicy:V}).strict(),c.eventBytes),H=e.object({schemaVersion:e.literal("openpond.toolLearningInstallation.v1"),id:s,revision:e.number().int().positive(),scope:C,ownerUserId:s,machineSourceId:s,client:K,clientVersion:e.string().min(1).max(200),adapterRelease:h,state:e.enum(["pending_client_trust","enabled","disabled","revoked"]),collectionPolicy:V,collectionPolicyHash:g,coverage:We,credential:e.object({id:s,expiresAt:w,revokedAt:w.nullable(),capabilities:e.array(e.enum(["episode_append","manifest_read","consultation_submit","consultation_read"])).min(1).max(4)}).strict().nullable(),createdAt:w,updatedAt:w}).strict(),Ne=e.object({operationId:s,expectedRevision:e.number().int().positive(),state:e.enum(["enabled","disabled","revoked"])}).strict(),Ct=e.object({schemaVersion:e.literal("openpond.toolEpisodeOrigin.v1"),installationId:s,projectId:s,ownerUserId:s,episode:h,event:h,appendReceipt:h,purpose:e.literal("private_dataset_evidence"),trainingConsent:e.literal("not_granted")}).strict();import{DatabaseSync as Qe}from"node:sqlite";import{chmodSync as Ce,closeSync as Ze,existsSync as je,lstatSync as ce,mkdirSync as et,openSync as tt}from"node:fs";import{join as He}from"node:path";var Z=e.object({id:s,application:e.string().min(1).max(200),versions:e.array(e.string().min(1).max(200)).min(1).max(32),tools:e.array(e.string().min(1).max(200)).min(1).max(32),mode:e.literal("recovery"),routingInstruction:x(2e3),qualification:e.discriminatedUnion("kind",[e.object({kind:e.literal("integration"),receipt:h}).strict(),e.object({kind:e.literal("learned"),receipt:h,trainingRun:h,adapter:h,evaluation:h,activation:h}).strict()])}).strict(),Je=e.object({schemaVersion:e.literal("openpond.toolLearningManifest.v1"),installationId:s,scope:C,revision:e.number().int().positive(),contentHash:g,issuedAt:w,expiresAt:w,modelRelease:h,responseSchema:e.literal("openpond.toolLearningDecision.v1"),capabilities:e.array(Z).max(c.capabilities)}).strict().superRefine((n,t)=>{let{contentHash:o,...i}=n;E(i)!==o&&t.addIssue({code:"custom",path:["contentHash"],message:"Manifest content hash mismatch."});let a=Date.parse(n.expiresAt)-Date.parse(n.issuedAt);(a<=0||a>c.manifestSeconds*1e3)&&t.addIssue({code:"custom",path:["expiresAt"],message:"Manifest expiry exceeds the supported lifetime."}),new Set(n.capabilities.map(l=>l.id)).size!==n.capabilities.length&&t.addIssue({code:"custom",path:["capabilities"],message:"Capability IDs must be unique."})}),Oe=T(Je,c.consultationBytes),O=T(e.object({schemaVersion:e.literal("openpond.toolLearningConsultation.v1"),operationId:s,installationId:s,scope:C,sessionId:s,callId:s,capabilityId:s,manifestHash:g,modelRelease:h,mode:e.literal("recovery"),intent:x(2e3),action:P,actionHash:g,environment:j,contextHash:g,failure:e.object({message:x(c.resultBytes),observation:h}).strict(),round:e.number().int().min(1).max(c.consultationRounds)}).strict().superRefine((n,t)=>{E(n.action)!==n.actionHash&&t.addIssue({code:"custom",path:["actionHash"],message:"Consultation action hash mismatch."}),E({intent:n.intent,environment:n.environment,failure:n.failure})!==n.contextHash&&t.addIssue({code:"custom",path:["contextHash"],message:"Consultation context hash mismatch."})}),c.consultationBytes),se=e.discriminatedUnion("decision",[e.object({decision:e.literal("proceed")}).strict(),e.object({decision:e.literal("revise"),issues:e.array(e.object({category:e.string().min(1).max(120),feedback:x(2e3)}).strict()).min(1).max(8)}).strict(),e.object({decision:e.literal("needs_context"),missing:e.array(e.object({field:e.string().min(1).max(120),reason:x(500)}).strict()).min(1).max(8)}).strict()]),Ae={operationId:s,installationId:s,capabilityId:s,manifestHash:g,modelRelease:h,actionHash:g,contextHash:g},Ye=T(e.discriminatedUnion("state",[e.object({schemaVersion:e.literal("openpond.toolLearningDecision.v1"),...Ae,state:e.literal("completed"),decision:se,usageReceipt:h,completedAt:w}).strict(),e.object({schemaVersion:e.literal("openpond.toolLearningDecision.v1"),...Ae,state:e.literal("unavailable"),reason:e.enum(["disabled","revoked","expired_manifest","unsupported_scope","budget_exhausted","timeout","invalid_output","cancelled","dispatch_uncertain"]),usageReceipt:h.nullable()}).strict()]),c.consultationBytes);function re(n,t){let o=O.parse(n),i=Ye.parse(t);for(let a of["operationId","installationId","capabilityId","manifestHash","actionHash","contextHash"])if(o[a]!==i[a])throw new Error(`tool_learning_consultation_${a}_mismatch`);if(o.modelRelease.id!==i.modelRelease.id||o.modelRelease.contentHash!==i.modelRelease.contentHash)throw new Error("tool_learning_consultation_model_mismatch");return i}u(re,"assertToolLearningConsultationResponse");function le(n,t){let o=R.parse(n),i=V.parse(t);if(!i.purposes.includes("capture"))throw new Error("tool_learning_capture_not_enabled");if(o.sanitization.policyRevision!==i.revision||o.sanitization.policyHash!==E(i))throw new Error("tool_learning_capture_policy_changed");if(new TextEncoder().encode(JSON.stringify(o)).byteLength>i.maximumEventBytes)throw new Error("tool_learning_event_policy_limit");let a=u(l=>i.permittedFields.includes(l),"permits");if(o.eventKind==="attempt"){if(!i.permittedTools.includes(o.payload.tool.name))throw new Error("tool_learning_tool_outside_collection_policy");if(!a("action")||!a("intent")&&o.payload.intent!==""||!a("state")&&Object.keys(o.payload.environment.state).length>0||!a("artifact_reference")&&o.payload.contextAssets.length>0)throw new Error("tool_learning_attempt_field_outside_collection_policy")}if(o.eventKind==="observation"&&(!a("result_excerpt")&&(o.payload.resultExcerpt!==""||o.payload.outcome==="failed"&&o.payload.message!=="")||!a("artifact_reference")&&o.payload.assets.length>0))throw new Error("tool_learning_result_field_outside_collection_policy");if(o.eventKind==="verification"&&(!a("result_excerpt")&&o.payload.reason!==""||!a("artifact_reference")&&o.payload.outputArtifacts.length>0))throw new Error("tool_learning_verification_field_outside_collection_policy");if(o.eventKind==="lineage"&&!a("intent")&&o.payload.reason!=="")throw new Error("tool_learning_lineage_field_outside_collection_policy")}u(le,"assertToolEpisodeCapturePolicy");var de=e.object({schemaVersion:e.literal("openpond.localToolLearningInstallation.v1"),id:s,teamId:s,projectId:s,client:K,workspaceRoot:e.string().min(1).max(4e3),enabled:e.boolean(),policy:V,createdAt:e.iso.datetime({offset:!0})}).strict(),X=class{static{u(this,"ToolLearningLocalStore")}db;constructor(n){let t=He(n,"tool-learning");if(je(t)&&ce(t).isSymbolicLink())throw new Error("tool_learning_directory_symlink_forbidden");et(t,{recursive:!0,mode:448}),Ce(t,448);let o=He(t,"queue.sqlite");if(je(o)){if(!ce(o).isFile()||ce(o).isSymbolicLink())throw new Error("tool_learning_queue_file_invalid")}else Ze(tt(o,"wx",384));Ce(o,384),this.db=new Qe(o),this.db.exec("PRAGMA busy_timeout = 3000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL;"),this.db.exec(`
2
+ import{b as oe}from"./chunk-YG3HITOU.js";import{b as be}from"./chunk-AITV76GO.js";import{f as J}from"./chunk-64EDQ7UV.js";import{m as L}from"./chunk-HIQPGYVH.js";import{o as ye}from"./chunk-3VT2PPKW.js";import{l as W}from"./chunk-ZEOYNUHL.js";import{v as B}from"./chunk-ZY32SZ2P.js";import{I as Ee,K as Te}from"./chunk-SV7ZBEK2.js";import{c as M,d as z,e as Ie,n as y}from"./chunk-RCT3O3HQ.js";import{f as ve}from"./chunk-UGOK7VTC.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as u}from"./chunk-FTQLQJQV.js";var c=Object.freeze({eventBytes:65536,actionBytes:16384,resultBytes:8192,stateBytes:8192,eventsPerAppend:32,eventsPerEpisode:256,episodeBytes:2097152,assetBytes:1048576,assetsPerEpisode:16,queueBytes:52428800,queueEvents:5e3,queueAgeSeconds:86400,capabilities:32,consultationRounds:3,consultationBytes:65536,manifestSeconds:300}),s=M,g=z,w=Ie,K=e.enum(["codex","claude_code","opencode","openpond"]),h=e.object({id:M,contentHash:z}).strict(),C=e.object({teamId:M,projectId:M}).strict();function T(n,t){return e.preprocess((o,i)=>{try{B(o,t)}catch{return i.addIssue({code:"custom",message:"Tool learning data exceeds its JSON boundary."}),e.NEVER}return o},n)}u(T,"boundedToolLearningSchema");function x(n){return e.string().max(n).refine(t=>new TextEncoder().encode(t).byteLength<=n,"Tool learning text exceeds its UTF-8 byte limit.")}u(x,"toolLearningText");var ze=T(e.record(e.string().min(1).max(120),e.union([x(2e3),e.number().finite(),e.boolean(),e.null()])).refine(n=>Object.keys(n).length<=32,"Use at most 32 explicit state fields."),c.stateBytes),j=e.object({application:e.string().trim().min(1).max(200),version:e.string().trim().min(1).max(200),state:ze,fingerprint:z}).strict(),Y=e.object({id:M,contentHash:z,mediaType:e.enum(["text/plain","application/json","text/x-python","text/x-diff"]),sizeBytes:e.number().int().nonnegative().max(c.assetBytes),purpose:e.enum(["action","result","state","verification"])}).strict(),Le=e.object({policyRevision:e.number().int().positive(),policyHash:z,redactedFields:e.number().int().nonnegative().max(1e4),omittedFields:e.number().int().nonnegative().max(1e4),truncated:e.boolean()}).strict();function E(n,t=c.eventBytes){return B(n,t),y(n)}u(E,"toolLearningContentHash");var Q=x(c.actionBytes),xe=e.string().min(1).max(1e3).refine(n=>!n.startsWith("/")&&!n.includes("\\")&&!/^[A-Za-z]:/u.test(n)&&n.split("/").every(t=>t!==""&&t!=="."&&t!==".."),"Use a workspace-relative artifact path."),P=T(e.discriminatedUnion("kind",[e.object({kind:e.literal("python"),code:Q}).strict(),e.object({kind:e.literal("shell"),command:Q,shell:e.string().min(1).max(120)}).strict(),e.object({kind:e.literal("tool_arguments"),arguments:e.record(e.string().min(1).max(200),e.json())}).strict(),e.object({kind:e.literal("edit"),patch:Q,baseFiles:e.array(e.object({path:xe,contentHash:g.nullable()}).strict()).min(1).max(32)}).strict()]),c.actionBytes),yt=e.discriminatedUnion("kind",[e.object({kind:e.literal("replacement"),expectedActionHash:g,environmentFingerprint:g,action:P}).strict(),e.object({kind:e.literal("patch"),expectedActionHash:g,environmentFingerprint:g,files:e.array(e.object({path:xe,expectedContentHash:g,patch:Q}).strict()).min(1).max(16)}).strict()]);var Ve=e.object({intent:x(2e3),tool:e.object({name:e.string().min(1).max(200),version:e.string().max(200).nullable(),server:e.string().max(200).nullable()}).strict(),action:P,actionHash:g,environment:j,contextAssets:e.array(Y).max(c.assetsPerEpisode),selection:e.discriminatedUnion("kind",[e.object({kind:e.literal("eligible_attempt")}).strict(),e.object({kind:e.literal("unchanged_control"),numerator:e.number().int().positive(),denominator:e.number().int().positive(),policyHash:g}).strict()])}).strict().superRefine((n,t)=>{E(n.action)!==n.actionHash&&t.addIssue({code:"custom",path:["actionHash"],message:"Action bytes differ from their hash."}),n.selection.kind==="unchanged_control"&&n.selection.numerator>n.selection.denominator&&t.addIssue({code:"custom",path:["selection"],message:"Sampling probability cannot exceed one."})}),Ke=e.enum(["validation_failure","execution_failure","process_failure","timeout","cancelled","infrastructure_failure","authorization_denied","outcome_failure","unknown_failure"]),ie={attempt:h,actionHash:g,execution:e.enum(["not_executed","executed","unknown"]),sideEffects:e.enum(["none","possible","observed","unknown"]),resultExcerpt:x(c.resultBytes),resultHash:g.nullable(),assets:e.array(Y).max(c.assetsPerEpisode)},$e=e.discriminatedUnion("outcome",[e.object({...ie,outcome:e.literal("succeeded"),exitCode:e.literal(0).nullable()}).strict(),e.object({...ie,outcome:e.literal("failed"),classification:Ke,errorCode:e.string().min(1).max(200),message:x(2e3),exitCode:e.number().int().min(-255).max(255).nullable()}).strict(),e.object({...ie,outcome:e.literal("incomplete"),reason:e.enum(["completion_not_observed","observer_restarted","transport_interrupted","coverage_gap"])}).strict()]).superRefine((n,t)=>{n.execution==="not_executed"&&n.sideEffects!=="none"&&t.addIssue({code:"custom",path:["sideEffects"],message:"An unexecuted action cannot claim tool effects."}),n.outcome==="succeeded"&&n.execution!=="executed"&&t.addIssue({code:"custom",path:["execution"],message:"Successful execution requires an observed execution."}),n.outcome==="failed"&&(n.classification==="validation_failure"&&n.execution!=="not_executed"&&t.addIssue({code:"custom",path:["execution"],message:"Pre-execution validation failure must be unexecuted."}),n.classification==="process_failure"&&(n.execution!=="executed"||n.exitCode===null||n.exitCode===0)&&t.addIssue({code:"custom",path:["exitCode"],message:"Process failure requires a nonzero observed exit."}))}),Xe=e.object({failedAttempt:h,failedObservation:h,replacementAttempt:h,goalId:s,basis:e.enum(["explicit_relation","artifact_lineage","unverified"]),attributionEvidence:e.array(h).max(16)}).strict().superRefine((n,t)=>{n.failedAttempt.id===n.replacementAttempt.id&&t.addIssue({code:"custom",message:"A recovery must reference a different attempt."}),n.basis!=="unverified"&&n.attributionEvidence.length===0&&t.addIssue({code:"custom",path:["attributionEvidence"],message:"Recovery attribution needs retained evidence."})}),Ge=e.object({attempt:h,actionHash:g,outcome:e.enum(["passed","failed","unknown"]),verifierRelease:h.nullable(),verifierReceipt:h.nullable(),environmentFingerprint:g,resetStateHash:g.nullable(),outputArtifacts:e.array(Y).max(c.assetsPerEpisode),reason:x(2e3)}).strict().superRefine((n,t)=>{n.outcome!=="unknown"&&(!n.verifierRelease||!n.verifierReceipt)&&t.addIssue({code:"custom",message:"A verification outcome requires an exact verifier and execution receipt."})}),$=e.object({schemaVersion:e.literal("openpond.toolEpisodeEvent.v1"),operationId:s,installationId:s,episodeId:s,eventId:s,sessionId:s,parentSessionId:s.nullable(),turnId:s.nullable(),callId:s,occurredAt:w,sequence:e.number().int().nonnegative(),adapterVersion:e.string().min(1).max(200),sanitization:Le,contentHash:g}).strict(),R=T(e.discriminatedUnion("eventKind",[$.extend({eventKind:e.literal("attempt"),payload:Ve}).strict(),$.extend({eventKind:e.literal("observation"),payload:$e}).strict(),$.extend({eventKind:e.literal("recovery_link"),payload:Xe}).strict(),$.extend({eventKind:e.literal("verification"),payload:Ge}).strict(),$.extend({eventKind:e.literal("lineage"),payload:e.object({relation:e.enum(["fork","split","reopen"]),parentEpisode:h,parentSessionId:s,reason:x(1e3)}).strict()}).strict()]).superRefine((n,t)=>{let{contentHash:o,...i}=n;E(i)!==o&&t.addIssue({code:"custom",path:["contentHash"],message:"Episode event content hash mismatch."})}),c.eventBytes);function ae(n){let t=E(n);if(!n||typeof n!="object"||Array.isArray(n)||Object.hasOwn(n,"contentHash"))throw new Error("tool_episode_unsigned_envelope_required");return R.parse({...n,contentHash:t})}u(ae,"sealToolEpisodeEvent");var Se=T(e.object({schemaVersion:e.literal("openpond.toolEpisodeAppend.v1"),operationId:s,installationId:s,events:e.array(R).min(1).max(c.eventsPerAppend)}).strict().superRefine((n,t)=>{n.events.some(o=>o.installationId!==n.installationId)&&t.addIssue({code:"custom",path:["events"],message:"Append events must belong to the exact installation."}),new Set(n.events.map(o=>o.eventId)).size!==n.events.length&&t.addIssue({code:"custom",path:["events"],message:"Append event IDs must be unique."})}),c.eventBytes*c.eventsPerAppend),Re=e.object({schemaVersion:e.literal("openpond.toolEpisodeAppendReceipt.v1"),operationId:s,requestHash:g,installationId:s,teamId:s,projectId:s,receivedAt:w,events:e.array(e.object({eventId:s,contentHash:g,state:e.enum(["retained","already_retained","privacy_rejected"]),receiptId:s,reason:e.string().max(200).nullable()}).strict()).min(1).max(c.eventsPerAppend),learningEnrollment:e.literal(!1)}).strict();var V=e.object({revision:e.number().int().positive(),permittedTools:e.array(e.string().min(1).max(200)).min(1).max(100),workspaceRootHashes:e.array(g).min(1).max(32),permittedFields:e.array(e.enum(["action","intent","state","result_excerpt","artifact_reference"])).min(1).max(5),unchangedControls:e.object({numerator:e.number().int().nonnegative(),denominator:e.number().int().positive()}).strict(),maximumEventBytes:e.number().int().positive().max(c.eventBytes),maximumEpisodeBytes:e.number().int().positive().max(c.episodeBytes),maximumEpisodeEvents:e.number().int().positive().max(c.eventsPerEpisode),maximumQueueBytes:e.number().int().positive().max(c.queueBytes),maximumQueueEvents:e.number().int().positive().max(c.queueEvents),maximumQueueAgeSeconds:e.number().int().positive().max(c.queueAgeSeconds),rawRetentionDays:e.number().int().min(1).max(30),purposes:e.array(e.enum(["capture","consultation"])).min(1).max(2),modelUpdates:e.literal("requires_separate_review"),variantGeneration:e.literal("disabled")}).strict().superRefine((n,t)=>{n.unchangedControls.numerator>n.unchangedControls.denominator&&t.addIssue({code:"custom",path:["unchangedControls"],message:"Sampling probability cannot exceed one."});for(let o of["permittedTools","workspaceRootHashes","permittedFields","purposes"])new Set(n[o]).size!==n[o].length&&t.addIssue({code:"custom",path:[o],message:"Policy entries must be unique."});(n.maximumEpisodeBytes<n.maximumEventBytes||n.maximumQueueBytes<n.maximumEventBytes)&&t.addIssue({code:"custom",message:"Episode and queue capacities must fit one permitted event."})}),We=e.object({receipt:h.nullable(),start:e.enum(["observed","documented","unsupported","unqualified"]),resume:e.enum(["observed","documented","unsupported","unqualified"]),compaction:e.enum(["observed","documented","unsupported","unqualified"]),executionFailure:e.enum(["observed","documented","unsupported","unqualified"]),processFailure:e.enum(["observed","documented","unsupported","unqualified"]),validationFailure:e.enum(["observed","documented","unsupported","unqualified"]),nestedCalls:e.enum(["observed","documented","unsupported","unqualified"]),contextRefresh:e.enum(["session_start","start_resume","start_resume_compaction","revision_aware_turn","unqualified"]),gaps:e.array(e.string().min(1).max(500)).max(32)}).strict().superRefine((n,t)=>{Object.values(n).includes("observed")&&!n.receipt&&t.addIssue({code:"custom",path:["receipt"],message:"Observed coverage requires a qualification receipt."})}),we=T(e.object({schemaVersion:e.literal("openpond.toolLearningRegistration.v1"),operationId:s,installationId:s,projectId:s,machineSourceId:s,client:K,clientVersion:e.string().min(1).max(200),adapterRelease:h,collectionPolicy:V}).strict(),c.eventBytes),H=e.object({schemaVersion:e.literal("openpond.toolLearningInstallation.v1"),id:s,revision:e.number().int().positive(),scope:C,ownerUserId:s,machineSourceId:s,client:K,clientVersion:e.string().min(1).max(200),adapterRelease:h,state:e.enum(["pending_client_trust","enabled","disabled","revoked"]),collectionPolicy:V,collectionPolicyHash:g,coverage:We,credential:e.object({id:s,expiresAt:w,revokedAt:w.nullable(),capabilities:e.array(e.enum(["episode_append","manifest_read","consultation_submit","consultation_read"])).min(1).max(4)}).strict().nullable(),createdAt:w,updatedAt:w}).strict(),Ne=e.object({operationId:s,expectedRevision:e.number().int().positive(),state:e.enum(["enabled","disabled","revoked"])}).strict(),Ct=e.object({schemaVersion:e.literal("openpond.toolEpisodeOrigin.v1"),installationId:s,projectId:s,ownerUserId:s,episode:h,event:h,appendReceipt:h,purpose:e.literal("private_dataset_evidence"),trainingConsent:e.literal("not_granted")}).strict();import{DatabaseSync as Qe}from"node:sqlite";import{chmodSync as Ce,closeSync as Ze,existsSync as je,lstatSync as ce,mkdirSync as et,openSync as tt}from"node:fs";import{join as He}from"node:path";var Z=e.object({id:s,application:e.string().min(1).max(200),versions:e.array(e.string().min(1).max(200)).min(1).max(32),tools:e.array(e.string().min(1).max(200)).min(1).max(32),mode:e.literal("recovery"),routingInstruction:x(2e3),qualification:e.discriminatedUnion("kind",[e.object({kind:e.literal("integration"),receipt:h}).strict(),e.object({kind:e.literal("learned"),receipt:h,trainingRun:h,adapter:h,evaluation:h,activation:h}).strict()])}).strict(),Je=e.object({schemaVersion:e.literal("openpond.toolLearningManifest.v1"),installationId:s,scope:C,revision:e.number().int().positive(),contentHash:g,issuedAt:w,expiresAt:w,modelRelease:h,responseSchema:e.literal("openpond.toolLearningDecision.v1"),capabilities:e.array(Z).max(c.capabilities)}).strict().superRefine((n,t)=>{let{contentHash:o,...i}=n;E(i)!==o&&t.addIssue({code:"custom",path:["contentHash"],message:"Manifest content hash mismatch."});let a=Date.parse(n.expiresAt)-Date.parse(n.issuedAt);(a<=0||a>c.manifestSeconds*1e3)&&t.addIssue({code:"custom",path:["expiresAt"],message:"Manifest expiry exceeds the supported lifetime."}),new Set(n.capabilities.map(l=>l.id)).size!==n.capabilities.length&&t.addIssue({code:"custom",path:["capabilities"],message:"Capability IDs must be unique."})}),Oe=T(Je,c.consultationBytes),O=T(e.object({schemaVersion:e.literal("openpond.toolLearningConsultation.v1"),operationId:s,installationId:s,scope:C,sessionId:s,callId:s,capabilityId:s,manifestHash:g,modelRelease:h,mode:e.literal("recovery"),intent:x(2e3),action:P,actionHash:g,environment:j,contextHash:g,failure:e.object({message:x(c.resultBytes),observation:h}).strict(),round:e.number().int().min(1).max(c.consultationRounds)}).strict().superRefine((n,t)=>{E(n.action)!==n.actionHash&&t.addIssue({code:"custom",path:["actionHash"],message:"Consultation action hash mismatch."}),E({intent:n.intent,environment:n.environment,failure:n.failure})!==n.contextHash&&t.addIssue({code:"custom",path:["contextHash"],message:"Consultation context hash mismatch."})}),c.consultationBytes),se=e.discriminatedUnion("decision",[e.object({decision:e.literal("proceed")}).strict(),e.object({decision:e.literal("revise"),issues:e.array(e.object({category:e.string().min(1).max(120),feedback:x(2e3)}).strict()).min(1).max(8)}).strict(),e.object({decision:e.literal("needs_context"),missing:e.array(e.object({field:e.string().min(1).max(120),reason:x(500)}).strict()).min(1).max(8)}).strict()]),Ae={operationId:s,installationId:s,capabilityId:s,manifestHash:g,modelRelease:h,actionHash:g,contextHash:g},Ye=T(e.discriminatedUnion("state",[e.object({schemaVersion:e.literal("openpond.toolLearningDecision.v1"),...Ae,state:e.literal("completed"),decision:se,usageReceipt:h,completedAt:w}).strict(),e.object({schemaVersion:e.literal("openpond.toolLearningDecision.v1"),...Ae,state:e.literal("unavailable"),reason:e.enum(["disabled","revoked","expired_manifest","unsupported_scope","budget_exhausted","timeout","invalid_output","cancelled","dispatch_uncertain"]),usageReceipt:h.nullable()}).strict()]),c.consultationBytes);function re(n,t){let o=O.parse(n),i=Ye.parse(t);for(let a of["operationId","installationId","capabilityId","manifestHash","actionHash","contextHash"])if(o[a]!==i[a])throw new Error(`tool_learning_consultation_${a}_mismatch`);if(o.modelRelease.id!==i.modelRelease.id||o.modelRelease.contentHash!==i.modelRelease.contentHash)throw new Error("tool_learning_consultation_model_mismatch");return i}u(re,"assertToolLearningConsultationResponse");function le(n,t){let o=R.parse(n),i=V.parse(t);if(!i.purposes.includes("capture"))throw new Error("tool_learning_capture_not_enabled");if(o.sanitization.policyRevision!==i.revision||o.sanitization.policyHash!==E(i))throw new Error("tool_learning_capture_policy_changed");if(new TextEncoder().encode(JSON.stringify(o)).byteLength>i.maximumEventBytes)throw new Error("tool_learning_event_policy_limit");let a=u(l=>i.permittedFields.includes(l),"permits");if(o.eventKind==="attempt"){if(!i.permittedTools.includes(o.payload.tool.name))throw new Error("tool_learning_tool_outside_collection_policy");if(!a("action")||!a("intent")&&o.payload.intent!==""||!a("state")&&Object.keys(o.payload.environment.state).length>0||!a("artifact_reference")&&o.payload.contextAssets.length>0)throw new Error("tool_learning_attempt_field_outside_collection_policy")}if(o.eventKind==="observation"&&(!a("result_excerpt")&&(o.payload.resultExcerpt!==""||o.payload.outcome==="failed"&&o.payload.message!=="")||!a("artifact_reference")&&o.payload.assets.length>0))throw new Error("tool_learning_result_field_outside_collection_policy");if(o.eventKind==="verification"&&(!a("result_excerpt")&&o.payload.reason!==""||!a("artifact_reference")&&o.payload.outputArtifacts.length>0))throw new Error("tool_learning_verification_field_outside_collection_policy");if(o.eventKind==="lineage"&&!a("intent")&&o.payload.reason!=="")throw new Error("tool_learning_lineage_field_outside_collection_policy")}u(le,"assertToolEpisodeCapturePolicy");var de=e.object({schemaVersion:e.literal("openpond.localToolLearningInstallation.v1"),id:s,teamId:s,projectId:s,client:K,workspaceRoot:e.string().min(1).max(4e3),enabled:e.boolean(),policy:V,createdAt:e.iso.datetime({offset:!0})}).strict(),X=class{static{u(this,"ToolLearningLocalStore")}db;constructor(n){let t=He(n,"tool-learning");if(je(t)&&ce(t).isSymbolicLink())throw new Error("tool_learning_directory_symlink_forbidden");et(t,{recursive:!0,mode:448}),Ce(t,448);let o=He(t,"queue.sqlite");if(je(o)){if(!ce(o).isFile()||ce(o).isSymbolicLink())throw new Error("tool_learning_queue_file_invalid")}else Ze(tt(o,"wx",384));Ce(o,384),this.db=new Qe(o),this.db.exec("PRAGMA busy_timeout = 3000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL;"),this.db.exec(`
3
3
  CREATE TABLE IF NOT EXISTS installations (id TEXT PRIMARY KEY, payload TEXT NOT NULL);
4
4
  CREATE TABLE IF NOT EXISTS events (
5
5
  id TEXT PRIMARY KEY, installation_id TEXT NOT NULL, episode_id TEXT NOT NULL,
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Ab as _,Bb as E,zb as F}from"./chunk-HG2YFMVU.js";import{a as L,b as j,c as H,d as w,e as b,f as S,g as y,l as k}from"./chunk-HVM2GUM3.js";import{e as x,f as R}from"./chunk-SV7ZBEK2.js";import{l as O,n as T}from"./chunk-RCT3O3HQ.js";import{h as g,p as A,r as C,s as N}from"./chunk-UGOK7VTC.js";import{a as r}from"./chunk-FTQLQJQV.js";import{promises as z}from"node:fs";import d from"node:path";import{randomUUID as J}from"node:crypto";import{promises as v}from"node:fs";import U from"node:path";function u(e){return{binding:r(()=>{let i=C(e.home,"refiner_bindings","active");return i?w.parse(i.value):null},"binding"),releases:r(async()=>{let i=(await v.readdir(e.releases)).filter(n=>n.endsWith(".json"));return Promise.all(i.map(async n=>H.parse(JSON.parse(await v.readFile(U.join(e.releases,n),"utf8")))))},"releases"),transitions:r(()=>Object.values(N(e.home,"refiner_transitions")).map(i=>b.parse(i.value)),"transitions"),release:r(async i=>{let n=H.parse(JSON.parse(await v.readFile(U.join(e.releases,`${i.contentHash}.json`),"utf8")));if(n.id!==i.id||n.contentHash!==i.contentHash)throw new Error("Refiner release reference does not match immutable release content.");return n},"release"),persistRelease:r(async i=>V(e.releases+`/${i.contentHash}.json`,O(i),!0),"persistRelease"),writeSource:r(async i=>V(e.source,i),"writeSource"),transition:r(async(i,n)=>{A(e.home,t=>{t.exec("BEGIN IMMEDIATE");try{let a=t.prepare("SELECT payload FROM refiner_bindings WHERE id = 'active'").get(),o=a?w.parse(JSON.parse(a.payload)):null,s=new Date().toISOString(),l={id:i.id,contentHash:i.contentHash},c={schemaVersion:"openpond.refinerTransitionReceipt.v1",id:`refiner-transition-${J()}`,operation:n.operation,bindingChanged:n.bindingChanged,previousRelease:o?.release??null,nextRelease:l,actor:n.actor,reason:n.reason,authoringSkillHash:n.authoringSkillHash,validation:{valid:!0,messages:[]},createdAt:s},p=b.parse({...c,contentHash:T(c)});if(t.prepare("INSERT INTO refiner_transitions VALUES (?, ?, 1)").run(p.contentHash,JSON.stringify(p)),n.bindingChanged){let m=w.parse({schemaVersion:"openpond.refinerBinding.v1",channel:"active",revision:(o?.revision??-1)+1,release:l,updatedAt:s});t.prepare("INSERT INTO refiner_bindings VALUES ('active', ?, 1) ON CONFLICT(id) DO UPDATE SET payload=excluded.payload, revision=revision+1").run(JSON.stringify(m))}t.exec("COMMIT")}catch(a){throw t.exec("ROLLBACK"),a}})},"transition")}}r(u,"createLocalRefinerProfileRepository");async function V(e,i,n=!1){await R(e,async()=>{if(n){let t=await v.readFile(e,"utf8").catch(()=>null);if(t!==null){if(t!==i)throw new Error("Immutable Refiner release bytes changed.");return}}await x(e,i)})}r(V,"atomicWrite");var B="OpenPond Refiner Core: evidence admission, privacy, ownership, validation, and immutable activation boundaries.";function P(e){let i=d.join(e,"library","refiners");return{home:e,root:i,source:d.join(i,"source","openpond.review.json"),releases:d.join(i,"releases")}}r(P,"refinerProfilePaths");function Re(e){let i=r(()=>f(e),"inspect"),n=r(o=>M(e,o),"update"),t=r(o=>q(e,o),"activate"),a=r(o=>G(e,o),"rollback");return{refinerHistoryPayload:i,updateRefinerProfilePayload:n,activateRefinerReleasePayload:t,rollbackRefinerReleasePayload:a,inspectRefiner:i,updateRefiner:n,activateRefiner:t,rollbackRefiner:a}}r(Re,"createRefinerProfileRoutePayloads");async function f(e){let i=P(e),n=u(i),t=n.binding();if(!t)throw new Error("Active Refiner binding is unavailable.");let a=(await n.releases()).sort((l,c)=>c.createdAt.localeCompare(l.createdAt)),o=a.find(l=>l.id===t.release.id&&l.contentHash===t.release.contentHash);if(!o)throw new Error("Active Refiner release is unavailable.");let s=n.transitions().sort((l,c)=>c.createdAt.localeCompare(l.createdAt));return F.parse({rootPath:i.root,sourcePath:i.source,binding:t,currentRelease:o,releases:a,transitions:s})}r(f,"inspectRefinerProfile");async function ue(e){return(await f(e)).currentRelease}r(ue,"loadActiveRefinerRelease");async function M(e,i){return R(d.join(g(e).runtime,"refiner-edit"),()=>W(e,i))}r(M,"updateRefinerProfile");async function W(e,i){let n=_.parse(i),t=P(e),a=u(t);await I(t);let o=L.parse(n.profile),s=S({profile:o,coreVersion:k,corePrompt:B}),c=(await a.releases()).find(m=>m.composedPromptHash===s.composedPromptHash&&m.profileHash===s.profileHash)??s;await a.persistRelease(c),await a.writeSource(y(o));let p=a.binding();if(!p)throw new Error("Active Refiner binding is unavailable.");return n.activate&&p.release.contentHash===c.contentHash||!n.activate&&a.transitions().some(h=>!h.bindingChanged&&h.nextRelease.contentHash===c.contentHash&&h.actor===n.actor&&h.reason===n.reason&&h.authoringSkillHash===n.authoringSkillHash)||await a.transition(c,{operation:"update",bindingChanged:n.activate,actor:n.actor,reason:n.reason,authoringSkillHash:n.authoringSkillHash}),f(e)}r(W,"updateRefinerProfileUnlocked");async function q(e,i){return R(d.join(g(e).runtime,"refiner-edit"),()=>$(e,i))}r(q,"activateRefinerRelease");async function $(e,i){let n=E.parse(i),t=P(e),a=u(t);await I(t);let o=await a.release(n.release),s=a.binding();if(!s)throw new Error("Active Refiner binding is unavailable.");return s.release.contentHash===o.contentHash||(await a.transition(o,{operation:"activate",bindingChanged:!0,actor:n.actor,reason:n.reason,authoringSkillHash:null}),await a.writeSource(y(o.profile))),f(e)}r($,"activateRefinerReleaseUnlocked");async function G(e,i){return R(d.join(g(e).runtime,"refiner-edit"),()=>K(e,i))}r(G,"rollbackRefinerRelease");async function K(e,i){let n=E.parse(i),t=P(e),a=u(t);await I(t);let o=await a.release(n.release),s=a.binding();if(!s)throw new Error("Active Refiner binding is unavailable.");return s.release.contentHash===o.contentHash||(await a.transition(o,{operation:"rollback",bindingChanged:!0,actor:n.actor,reason:n.reason,authoringSkillHash:null}),await a.writeSource(y(o.profile))),f(e)}r(K,"rollbackRefinerReleaseUnlocked");async function Y(e){await R(d.join(g(e).runtime,"refiner-initialize"),()=>Q(P(e)))}r(Y,"initializeRefinerProfile");async function I(e){await Y(e.home)}r(I,"ensureInitialized");async function Q(e){let i=u(e);if(await Promise.all([z.mkdir(d.dirname(e.source),{recursive:!0,mode:448}),z.mkdir(e.releases,{recursive:!0,mode:448})]),i.binding())return;let n=S({profile:j,coreVersion:k,corePrompt:B});await i.persistRelease(n),await i.writeSource(y(n.profile)),await i.transition(n,{operation:"initialize",bindingChanged:!0,actor:"openpond",reason:"Initialize the default Refiner Review Profile.",authoringSkillHash:null})}r(Q,"initialize");export{u as a,P as b,Re as c,f as d,ue as e,M as f,q as g,G as h,Y as i};
2
+ import{Ab as _,Bb as E,zb as F}from"./chunk-2THZ6GZY.js";import{a as L,b as j,c as H,d as w,e as b,f as S,g as y,l as k}from"./chunk-HVM2GUM3.js";import{e as x,f as R}from"./chunk-SV7ZBEK2.js";import{l as O,n as T}from"./chunk-RCT3O3HQ.js";import{h as g,p as A,r as C,s as N}from"./chunk-UGOK7VTC.js";import{a as r}from"./chunk-FTQLQJQV.js";import{promises as z}from"node:fs";import d from"node:path";import{randomUUID as J}from"node:crypto";import{promises as v}from"node:fs";import U from"node:path";function u(e){return{binding:r(()=>{let i=C(e.home,"refiner_bindings","active");return i?w.parse(i.value):null},"binding"),releases:r(async()=>{let i=(await v.readdir(e.releases)).filter(n=>n.endsWith(".json"));return Promise.all(i.map(async n=>H.parse(JSON.parse(await v.readFile(U.join(e.releases,n),"utf8")))))},"releases"),transitions:r(()=>Object.values(N(e.home,"refiner_transitions")).map(i=>b.parse(i.value)),"transitions"),release:r(async i=>{let n=H.parse(JSON.parse(await v.readFile(U.join(e.releases,`${i.contentHash}.json`),"utf8")));if(n.id!==i.id||n.contentHash!==i.contentHash)throw new Error("Refiner release reference does not match immutable release content.");return n},"release"),persistRelease:r(async i=>V(e.releases+`/${i.contentHash}.json`,O(i),!0),"persistRelease"),writeSource:r(async i=>V(e.source,i),"writeSource"),transition:r(async(i,n)=>{A(e.home,t=>{t.exec("BEGIN IMMEDIATE");try{let a=t.prepare("SELECT payload FROM refiner_bindings WHERE id = 'active'").get(),o=a?w.parse(JSON.parse(a.payload)):null,s=new Date().toISOString(),l={id:i.id,contentHash:i.contentHash},c={schemaVersion:"openpond.refinerTransitionReceipt.v1",id:`refiner-transition-${J()}`,operation:n.operation,bindingChanged:n.bindingChanged,previousRelease:o?.release??null,nextRelease:l,actor:n.actor,reason:n.reason,authoringSkillHash:n.authoringSkillHash,validation:{valid:!0,messages:[]},createdAt:s},p=b.parse({...c,contentHash:T(c)});if(t.prepare("INSERT INTO refiner_transitions VALUES (?, ?, 1)").run(p.contentHash,JSON.stringify(p)),n.bindingChanged){let m=w.parse({schemaVersion:"openpond.refinerBinding.v1",channel:"active",revision:(o?.revision??-1)+1,release:l,updatedAt:s});t.prepare("INSERT INTO refiner_bindings VALUES ('active', ?, 1) ON CONFLICT(id) DO UPDATE SET payload=excluded.payload, revision=revision+1").run(JSON.stringify(m))}t.exec("COMMIT")}catch(a){throw t.exec("ROLLBACK"),a}})},"transition")}}r(u,"createLocalRefinerProfileRepository");async function V(e,i,n=!1){await R(e,async()=>{if(n){let t=await v.readFile(e,"utf8").catch(()=>null);if(t!==null){if(t!==i)throw new Error("Immutable Refiner release bytes changed.");return}}await x(e,i)})}r(V,"atomicWrite");var B="OpenPond Refiner Core: evidence admission, privacy, ownership, validation, and immutable activation boundaries.";function P(e){let i=d.join(e,"library","refiners");return{home:e,root:i,source:d.join(i,"source","openpond.review.json"),releases:d.join(i,"releases")}}r(P,"refinerProfilePaths");function Re(e){let i=r(()=>f(e),"inspect"),n=r(o=>M(e,o),"update"),t=r(o=>q(e,o),"activate"),a=r(o=>G(e,o),"rollback");return{refinerHistoryPayload:i,updateRefinerProfilePayload:n,activateRefinerReleasePayload:t,rollbackRefinerReleasePayload:a,inspectRefiner:i,updateRefiner:n,activateRefiner:t,rollbackRefiner:a}}r(Re,"createRefinerProfileRoutePayloads");async function f(e){let i=P(e),n=u(i),t=n.binding();if(!t)throw new Error("Active Refiner binding is unavailable.");let a=(await n.releases()).sort((l,c)=>c.createdAt.localeCompare(l.createdAt)),o=a.find(l=>l.id===t.release.id&&l.contentHash===t.release.contentHash);if(!o)throw new Error("Active Refiner release is unavailable.");let s=n.transitions().sort((l,c)=>c.createdAt.localeCompare(l.createdAt));return F.parse({rootPath:i.root,sourcePath:i.source,binding:t,currentRelease:o,releases:a,transitions:s})}r(f,"inspectRefinerProfile");async function ue(e){return(await f(e)).currentRelease}r(ue,"loadActiveRefinerRelease");async function M(e,i){return R(d.join(g(e).runtime,"refiner-edit"),()=>W(e,i))}r(M,"updateRefinerProfile");async function W(e,i){let n=_.parse(i),t=P(e),a=u(t);await I(t);let o=L.parse(n.profile),s=S({profile:o,coreVersion:k,corePrompt:B}),c=(await a.releases()).find(m=>m.composedPromptHash===s.composedPromptHash&&m.profileHash===s.profileHash)??s;await a.persistRelease(c),await a.writeSource(y(o));let p=a.binding();if(!p)throw new Error("Active Refiner binding is unavailable.");return n.activate&&p.release.contentHash===c.contentHash||!n.activate&&a.transitions().some(h=>!h.bindingChanged&&h.nextRelease.contentHash===c.contentHash&&h.actor===n.actor&&h.reason===n.reason&&h.authoringSkillHash===n.authoringSkillHash)||await a.transition(c,{operation:"update",bindingChanged:n.activate,actor:n.actor,reason:n.reason,authoringSkillHash:n.authoringSkillHash}),f(e)}r(W,"updateRefinerProfileUnlocked");async function q(e,i){return R(d.join(g(e).runtime,"refiner-edit"),()=>$(e,i))}r(q,"activateRefinerRelease");async function $(e,i){let n=E.parse(i),t=P(e),a=u(t);await I(t);let o=await a.release(n.release),s=a.binding();if(!s)throw new Error("Active Refiner binding is unavailable.");return s.release.contentHash===o.contentHash||(await a.transition(o,{operation:"activate",bindingChanged:!0,actor:n.actor,reason:n.reason,authoringSkillHash:null}),await a.writeSource(y(o.profile))),f(e)}r($,"activateRefinerReleaseUnlocked");async function G(e,i){return R(d.join(g(e).runtime,"refiner-edit"),()=>K(e,i))}r(G,"rollbackRefinerRelease");async function K(e,i){let n=E.parse(i),t=P(e),a=u(t);await I(t);let o=await a.release(n.release),s=a.binding();if(!s)throw new Error("Active Refiner binding is unavailable.");return s.release.contentHash===o.contentHash||(await a.transition(o,{operation:"rollback",bindingChanged:!0,actor:n.actor,reason:n.reason,authoringSkillHash:null}),await a.writeSource(y(o.profile))),f(e)}r(K,"rollbackRefinerReleaseUnlocked");async function Y(e){await R(d.join(g(e).runtime,"refiner-initialize"),()=>Q(P(e)))}r(Y,"initializeRefinerProfile");async function I(e){await Y(e.home)}r(I,"ensureInitialized");async function Q(e){let i=u(e);if(await Promise.all([z.mkdir(d.dirname(e.source),{recursive:!0,mode:448}),z.mkdir(e.releases,{recursive:!0,mode:448})]),i.binding())return;let n=S({profile:j,coreVersion:k,corePrompt:B});await i.persistRelease(n),await i.writeSource(y(n.profile)),await i.transition(n,{operation:"initialize",bindingChanged:!0,actor:"openpond",reason:"Initialize the default Refiner Review Profile.",authoringSkillHash:null})}r(Q,"initialize");export{u as a,P as b,Re as c,f as d,ue as e,M as f,q as g,G as h,Y as i};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as D}from"./chunk-IR3YJWPW.js";import{Wb as G}from"./chunk-HG2YFMVU.js";import{b as $,c as z,d as H,e as V,f as R,g as U}from"./chunk-I6VMRQF4.js";import{Q as P,S as Q}from"./chunk-4PUOWSDE.js";import{fb as q,v,x as T}from"./chunk-ZY32SZ2P.js";import{n as E}from"./chunk-RCT3O3HQ.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=F(await e),[o,c,{QuickJSWASMModule:w}]=await Promise.all([t.importModuleLoader().then(F),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(F)]),l=await o();l.type="sync";let s=new c(l);return new w(l,s)}a(K,"newQuickJSWASMModuleFromVariant");function F(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(F,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e,t){te(e),e.signal?.throwIfAborted();let o=a(s=>new Error(`${e.errorPrefix}_${s}`),"error"),c=Date.now()+e.timeoutMs,{default:w}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let l=await K(w);e.signal?.throwIfAborted();try{return D.withScope(s=>{let m=s.manage(l.newRuntime());m.setMemoryLimit(33554432),m.setMaxStackSize(262144),m.setInterruptHandler(()=>Date.now()>=c||e.signal?.aborted===!0);let i=s.manage(m.newContext());t&&(c=Date.now()+e.timeoutMs,t.onExecutionReady()),e.deterministic&&s.manage(i.unwrapResult(i.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let r=s.manage(i.unwrapResult(i.evalCode("JSON.stringify"))),p=s.manage(i.unwrapResult(i.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),S=s.manage(i.unwrapResult(i.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),M=s.manage(X(i,S,c,e.signal,o)),g=s.manage(i.getProp(M,e.exportName));if(i.typeof(g)!=="function")throw o("function_export_missing");let b=s.manage(i.unwrapResult(i.callFunction(g,i.undefined,p))),d=s.manage(X(i,b,c,e.signal,o)),h=s.manage(i.unwrapResult(i.callFunction(r,i.undefined,d)));if(i.typeof(h)!=="string")throw o("result_not_json");let y=i.getString(h);if(new TextEncoder().encode(y).byteLength>e.maxResultBytes)throw o("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=c)throw o("timeout");let f=JSON.parse(y);return v(f,e.maxResultBytes),f})}catch(s){throw e.signal?.throwIfAborted(),new k(s instanceof Error?s.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);v(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,o,c,w){for(;;){if(c?.throwIfAborted(),Date.now()>=o)throw w("timeout");let l=e.getPromiseState(t);if(l.type==="fulfilled")return l.notAPromise?l.value.dup():l.value;if(l.type==="rejected")return e.unwrapResult(l);if(e.runtime.executePendingJobs(1).unwrap()===0)throw w("unresolved_promise")}}a(X,"settle");function I(e,t){let o=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let c of t.path){if(!o||typeof o!="object"||!Object.hasOwn(o,c))throw new Error("environment_service_reference_missing");o=o[c]}return o}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");v(e.value,4194304);let o=e.executionServices.map(m=>z.parse(m));if(o.length>16)throw new Error("environment_service_limit");if(new Set(o.map(m=>m.id)).size!==o.length)throw new Error("environment_service_identity_collision");let c=Date.now(),w=new AbortController,l=e.signal?AbortSignal.any([e.signal,w.signal]):w.signal,s=setTimeout(()=>w.abort(new Error("environment_timeout")),e.timeoutMs);try{let m=Object.create(null);for(let r of o){if(l.throwIfAborted(),r.operation!==e.operation||r.operation==="step"&&r.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(r.timeoutMs,e.timeoutMs-(Date.now()-c));if(p<1)throw new Error("environment_timeout");let S=new AbortController,M=AbortSignal.any([l,S.signal]),g=setTimeout(()=>S.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(r.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let d=I(e.value,r.sql);if(typeof d!="string"||!d.length||new TextEncoder().encode(d).byteLength>65536||d.includes("\0")){m[r.id]={status:"rejected",code:"invalid_submission"};continue}let h=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,r.snapshot),sql:d,maxRows:r.maxRows,maxResultBytes:r.maxResultBytes});m[r.id]=await t.sql({request:h,timeoutMs:e.timeoutMs,signal:M})}else{let d=I(e.value,r.source),h=I(e.value,r.cases);if(typeof d!="string"||new TextEncoder().encode(d).byteLength>524288){m[r.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(h)||!h.length||h.length>r.maxCases||h.some(f=>!f||typeof f!="object"||!Object.hasOwn(f,"input")))throw new Error("environment_service_cases_invalid");let y=[];for(let f of h){let u=p-(Date.now()-b);if(u<1&&(S.abort(new Error("environment_service_timeout")),M.throwIfAborted()),y.push(await t.candidate({source:d,exportName:r.exportName,value:structuredClone(f.input),timeoutMs:Math.max(1,u),maxResultBytes:r.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:M})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:y})).byteLength>r.maxResultBytes)throw new k("candidate_result_too_large")}m[r.id]={status:"completed",cases:y}}}catch(d){if(l.throwIfAborted(),S.signal.aborted)m[r.id]={status:"rejected",code:"timeout"};else if(d instanceof k)m[r.id]={status:"rejected",code:"execution_failed"};else throw d}finally{clearTimeout(g)}}l.throwIfAborted();let i=e.timeoutMs-(Date.now()-c);if(i<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:m},timeoutMs:i,signal:l})}finally{clearTimeout(s)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async o=>R.parse(await O({...o,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),o=Q(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let c=e.seed;v(e.input,1048576),v(e.initialState,t.maxStateBytes);let w=structuredClone(e.input),l=structuredClone(e.initialState),s=e.execute??re,m=new AbortController,i=e.signal?AbortSignal.any([e.signal,m.signal]):m.signal,r={},p=0,S=!1,M=!1,g=null,b=[],d=null;async function h(f,u){if(S||M)throw new Error("environment_closed");if(g)throw new Error("environment_operation_in_progress");i.throwIfAborted(),u&&(v(u,262144),u=structuredClone(u));let L=E(r),_=u?t.tools.find(x=>x.name===u.name):null;if(f==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((x,C)=>b.push({sequence:b.length,operation:f,toolName:u?.name??null,arguments:u?structuredClone(u.arguments):null,observation:x,beforeStateHash:L,afterStateHash:E(r),error:C}),"record");try{if(u&&!_)throw new J("unknown_tool");if(u&&_&&!T(_.inputSchema,u.arguments).valid)throw new J("invalid_arguments");let x=t.executionServices?.filter(N=>N.operation===f&&(f!=="step"||N.toolName===u?.name)),C=s({source:o,operation:f,value:{input:w,initialState:l,seed:c,state:structuredClone(r),sequence:p,action:u?structuredClone(u):null},timeoutMs:Math.min(t.operationTimeoutMs,_?.timeoutMs??t.operationTimeoutMs),signal:i,...x?.length?{executionServices:x}:{}});g=C;let A=R.parse(await C);if(i.throwIfAborted(),v(A.state,t.maxStateBytes),v(A.observation,t.maxObservationBytes),(f==="collect"||_?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");r=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(r),observation:B}}catch(x){throw j(null,x instanceof Error?x.message:"environment_execution_failed"),x}finally{g=null}}a(h,"invoke");async function y(){return d||(M=!0,m.abort(new Error("environment_destroyed")),d=(async()=>{try{try{await g}catch{}await s({source:o,operation:"destroy",value:{input:w,initialState:l,seed:c,state:structuredClone(r),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{r={},S=!0}})(),d)}a(y,"destroy");try{await h("create");let f=await h("reset"),u=E(r),L=a(()=>{if(S)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(w),seed:c,initialStateHash:u,finalStateHash:E(r),state:structuredClone(r),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:f.observation,async step(_){return(await h("step",_)).observation},async collect(){let _=await h("collect");return{...L(),observation:_.observation}},snapshot:L,destroy:y}}catch(f){try{await y()}catch{}throw f}}a(Qe,"createJavaScriptEnvironmentSession");var ne=n.string().trim().min(1).max(500),oe=n.string().regex(/^[a-f0-9]{64}$/),W=n.object({kind:n.literal("model"),id:n.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:n.string().max(262144),harness:q.optional(),input:n.record(n.string(),n.unknown()),policyVisibleContext:n.record(n.string(),n.unknown()),timeoutMs:n.number().int().positive().max(36e5),environment:n.discriminatedUnion("kind",[n.object({kind:n.literal("text")}).strict(),n.object({kind:n.literal("javascript"),definition:H,asset:P,initialState:n.record(n.string(),n.unknown()),seed:n.number().int().safe()}).strict()])}).strict(),Ye=n.discriminatedUnion("kind",[W,n.object({kind:n.literal("profile"),request:n.unknown()}).strict()]);var Z=n.string().trim().min(1).max(200),mt=n.object({receiptId:Z,taskId:Z,seed:n.string(),request:W}).strict(),ee=class extends Error{constructor(o,c,w=409){super(c);this.code=o;this.status=w}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
2
+ import{c as D}from"./chunk-IR3YJWPW.js";import{Wb as G}from"./chunk-2THZ6GZY.js";import{b as $,c as z,d as H,e as V,f as R,g as U}from"./chunk-I6VMRQF4.js";import{Q as P,S as Q}from"./chunk-ZEOYNUHL.js";import{fb as q,v,x as T}from"./chunk-ZY32SZ2P.js";import{n as E}from"./chunk-RCT3O3HQ.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=F(await e),[o,c,{QuickJSWASMModule:w}]=await Promise.all([t.importModuleLoader().then(F),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(F)]),l=await o();l.type="sync";let s=new c(l);return new w(l,s)}a(K,"newQuickJSWASMModuleFromVariant");function F(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(F,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e,t){te(e),e.signal?.throwIfAborted();let o=a(s=>new Error(`${e.errorPrefix}_${s}`),"error"),c=Date.now()+e.timeoutMs,{default:w}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let l=await K(w);e.signal?.throwIfAborted();try{return D.withScope(s=>{let m=s.manage(l.newRuntime());m.setMemoryLimit(33554432),m.setMaxStackSize(262144),m.setInterruptHandler(()=>Date.now()>=c||e.signal?.aborted===!0);let i=s.manage(m.newContext());t&&(c=Date.now()+e.timeoutMs,t.onExecutionReady()),e.deterministic&&s.manage(i.unwrapResult(i.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let r=s.manage(i.unwrapResult(i.evalCode("JSON.stringify"))),p=s.manage(i.unwrapResult(i.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),S=s.manage(i.unwrapResult(i.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),M=s.manage(X(i,S,c,e.signal,o)),g=s.manage(i.getProp(M,e.exportName));if(i.typeof(g)!=="function")throw o("function_export_missing");let b=s.manage(i.unwrapResult(i.callFunction(g,i.undefined,p))),d=s.manage(X(i,b,c,e.signal,o)),h=s.manage(i.unwrapResult(i.callFunction(r,i.undefined,d)));if(i.typeof(h)!=="string")throw o("result_not_json");let y=i.getString(h);if(new TextEncoder().encode(y).byteLength>e.maxResultBytes)throw o("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=c)throw o("timeout");let f=JSON.parse(y);return v(f,e.maxResultBytes),f})}catch(s){throw e.signal?.throwIfAborted(),new k(s instanceof Error?s.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);v(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,o,c,w){for(;;){if(c?.throwIfAborted(),Date.now()>=o)throw w("timeout");let l=e.getPromiseState(t);if(l.type==="fulfilled")return l.notAPromise?l.value.dup():l.value;if(l.type==="rejected")return e.unwrapResult(l);if(e.runtime.executePendingJobs(1).unwrap()===0)throw w("unresolved_promise")}}a(X,"settle");function I(e,t){let o=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let c of t.path){if(!o||typeof o!="object"||!Object.hasOwn(o,c))throw new Error("environment_service_reference_missing");o=o[c]}return o}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");v(e.value,4194304);let o=e.executionServices.map(m=>z.parse(m));if(o.length>16)throw new Error("environment_service_limit");if(new Set(o.map(m=>m.id)).size!==o.length)throw new Error("environment_service_identity_collision");let c=Date.now(),w=new AbortController,l=e.signal?AbortSignal.any([e.signal,w.signal]):w.signal,s=setTimeout(()=>w.abort(new Error("environment_timeout")),e.timeoutMs);try{let m=Object.create(null);for(let r of o){if(l.throwIfAborted(),r.operation!==e.operation||r.operation==="step"&&r.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(r.timeoutMs,e.timeoutMs-(Date.now()-c));if(p<1)throw new Error("environment_timeout");let S=new AbortController,M=AbortSignal.any([l,S.signal]),g=setTimeout(()=>S.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(r.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let d=I(e.value,r.sql);if(typeof d!="string"||!d.length||new TextEncoder().encode(d).byteLength>65536||d.includes("\0")){m[r.id]={status:"rejected",code:"invalid_submission"};continue}let h=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,r.snapshot),sql:d,maxRows:r.maxRows,maxResultBytes:r.maxResultBytes});m[r.id]=await t.sql({request:h,timeoutMs:e.timeoutMs,signal:M})}else{let d=I(e.value,r.source),h=I(e.value,r.cases);if(typeof d!="string"||new TextEncoder().encode(d).byteLength>524288){m[r.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(h)||!h.length||h.length>r.maxCases||h.some(f=>!f||typeof f!="object"||!Object.hasOwn(f,"input")))throw new Error("environment_service_cases_invalid");let y=[];for(let f of h){let u=p-(Date.now()-b);if(u<1&&(S.abort(new Error("environment_service_timeout")),M.throwIfAborted()),y.push(await t.candidate({source:d,exportName:r.exportName,value:structuredClone(f.input),timeoutMs:Math.max(1,u),maxResultBytes:r.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:M})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:y})).byteLength>r.maxResultBytes)throw new k("candidate_result_too_large")}m[r.id]={status:"completed",cases:y}}}catch(d){if(l.throwIfAborted(),S.signal.aborted)m[r.id]={status:"rejected",code:"timeout"};else if(d instanceof k)m[r.id]={status:"rejected",code:"execution_failed"};else throw d}finally{clearTimeout(g)}}l.throwIfAborted();let i=e.timeoutMs-(Date.now()-c);if(i<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:m},timeoutMs:i,signal:l})}finally{clearTimeout(s)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async o=>R.parse(await O({...o,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),o=Q(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let c=e.seed;v(e.input,1048576),v(e.initialState,t.maxStateBytes);let w=structuredClone(e.input),l=structuredClone(e.initialState),s=e.execute??re,m=new AbortController,i=e.signal?AbortSignal.any([e.signal,m.signal]):m.signal,r={},p=0,S=!1,M=!1,g=null,b=[],d=null;async function h(f,u){if(S||M)throw new Error("environment_closed");if(g)throw new Error("environment_operation_in_progress");i.throwIfAborted(),u&&(v(u,262144),u=structuredClone(u));let L=E(r),_=u?t.tools.find(x=>x.name===u.name):null;if(f==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((x,C)=>b.push({sequence:b.length,operation:f,toolName:u?.name??null,arguments:u?structuredClone(u.arguments):null,observation:x,beforeStateHash:L,afterStateHash:E(r),error:C}),"record");try{if(u&&!_)throw new J("unknown_tool");if(u&&_&&!T(_.inputSchema,u.arguments).valid)throw new J("invalid_arguments");let x=t.executionServices?.filter(N=>N.operation===f&&(f!=="step"||N.toolName===u?.name)),C=s({source:o,operation:f,value:{input:w,initialState:l,seed:c,state:structuredClone(r),sequence:p,action:u?structuredClone(u):null},timeoutMs:Math.min(t.operationTimeoutMs,_?.timeoutMs??t.operationTimeoutMs),signal:i,...x?.length?{executionServices:x}:{}});g=C;let A=R.parse(await C);if(i.throwIfAborted(),v(A.state,t.maxStateBytes),v(A.observation,t.maxObservationBytes),(f==="collect"||_?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");r=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(r),observation:B}}catch(x){throw j(null,x instanceof Error?x.message:"environment_execution_failed"),x}finally{g=null}}a(h,"invoke");async function y(){return d||(M=!0,m.abort(new Error("environment_destroyed")),d=(async()=>{try{try{await g}catch{}await s({source:o,operation:"destroy",value:{input:w,initialState:l,seed:c,state:structuredClone(r),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{r={},S=!0}})(),d)}a(y,"destroy");try{await h("create");let f=await h("reset"),u=E(r),L=a(()=>{if(S)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(w),seed:c,initialStateHash:u,finalStateHash:E(r),state:structuredClone(r),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:f.observation,async step(_){return(await h("step",_)).observation},async collect(){let _=await h("collect");return{...L(),observation:_.observation}},snapshot:L,destroy:y}}catch(f){try{await y()}catch{}throw f}}a(Qe,"createJavaScriptEnvironmentSession");var ne=n.string().trim().min(1).max(500),oe=n.string().regex(/^[a-f0-9]{64}$/),W=n.object({kind:n.literal("model"),id:n.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:n.string().max(262144),harness:q.optional(),input:n.record(n.string(),n.unknown()),policyVisibleContext:n.record(n.string(),n.unknown()),timeoutMs:n.number().int().positive().max(36e5),environment:n.discriminatedUnion("kind",[n.object({kind:n.literal("text")}).strict(),n.object({kind:n.literal("javascript"),definition:H,asset:P,initialState:n.record(n.string(),n.unknown()),seed:n.number().int().safe()}).strict()])}).strict(),Ye=n.discriminatedUnion("kind",[W,n.object({kind:n.literal("profile"),request:n.unknown()}).strict()]);var Z=n.string().trim().min(1).max(200),mt=n.object({receiptId:Z,taskId:Z,seed:n.string(),request:W}).strict(),ee=class extends Error{constructor(o,c,w=409){super(c);this.code=o;this.status=w}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as m}from"./chunk-DMFUEUAZ.js";import{a as c}from"./chunk-U7D6Q744.js";import{t as p}from"./chunk-HG2YFMVU.js";import{I as i,L as d}from"./chunk-2MEOUS24.js";import{a as n}from"./chunk-FTQLQJQV.js";async function r(e,o){return(await e.allPayloadRows(`SELECT payload FROM ${o} ORDER BY sort_index ASC`)).map(t=>JSON.parse(t.payload))}n(r,"readStorePayloads");function S(e){let o=e,a=d.safeParse(o.openPondCommandAccessMode);return{...o,experience:l(o),openPondCommandAccessMode:a.success?a.data:i,currentProfile:o.currentProfile??null}}n(S,"normalizeSessionPayload");function l(e){let o=p.safeParse(e.experience);return o.success?o.data:!!(e.provider==="codex"||e.codexThreadId||e.systemKind||e.parentSessionId||e.subagentRunId||e.appId||e.workspaceKind||e.workspaceId||e.localProjectId||e.cloudProjectId)?"development":"chat"}n(l,"storedSessionExperience");async function E(e){return{sessions:(await r(e,"sessions")).map(S),turns:await r(e,"turns"),approvals:await r(e,"approvals")}}n(E,"readStoreMetadata");async function T(e){return{...await E(e),events:(await r(e,"events")).map(m)}}n(T,"readStoreData");async function D(e,o){let a=c();await o.exec("BEGIN IMMEDIATE");try{await o.exec("DELETE FROM approvals; DELETE FROM events; DELETE FROM turns; DELETE FROM sessions;");for(let[t,s]of e.sessions.entries())await o.run("INSERT INTO sessions (id, sort_index, payload, updated_at) VALUES (?, ?, ?, ?)",[s.id,t,JSON.stringify(s),s.updatedAt]);for(let[t,s]of e.turns.entries())await o.run("INSERT INTO turns (id, session_id, provider_turn_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.providerTurnId,s.status,t,JSON.stringify(s),s.completedAt??s.startedAt]);for(let[t,s]of e.events.entries()){let u=t+1;await o.run("INSERT INTO events (id, session_id, turn_id, name, timestamp, sequence, sort_index, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId??null,s.turnId??null,s.name,s.timestamp,u,t,JSON.stringify(s)])}for(let[t,s]of e.approvals.entries())await o.run("INSERT INTO approvals (id, session_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.status,t,JSON.stringify(s),a]);await o.exec("COMMIT")}catch(t){throw await o.exec("ROLLBACK"),t}}n(D,"persistStoreData");export{S as a,E as b,T as c,D as d};
2
+ import{a as m}from"./chunk-DMFUEUAZ.js";import{a as c}from"./chunk-L5L3H6CI.js";import{t as p}from"./chunk-2THZ6GZY.js";import{I as i,L as d}from"./chunk-2MEOUS24.js";import{a as n}from"./chunk-FTQLQJQV.js";async function r(e,o){return(await e.allPayloadRows(`SELECT payload FROM ${o} ORDER BY sort_index ASC`)).map(t=>JSON.parse(t.payload))}n(r,"readStorePayloads");function S(e){let o=e,a=d.safeParse(o.openPondCommandAccessMode);return{...o,experience:l(o),openPondCommandAccessMode:a.success?a.data:i,currentProfile:o.currentProfile??null}}n(S,"normalizeSessionPayload");function l(e){let o=p.safeParse(e.experience);return o.success?o.data:!!(e.provider==="codex"||e.codexThreadId||e.systemKind||e.parentSessionId||e.subagentRunId||e.appId||e.workspaceKind||e.workspaceId||e.localProjectId||e.cloudProjectId)?"development":"chat"}n(l,"storedSessionExperience");async function E(e){return{sessions:(await r(e,"sessions")).map(S),turns:await r(e,"turns"),approvals:await r(e,"approvals")}}n(E,"readStoreMetadata");async function T(e){return{...await E(e),events:(await r(e,"events")).map(m)}}n(T,"readStoreData");async function D(e,o){let a=c();await o.exec("BEGIN IMMEDIATE");try{await o.exec("DELETE FROM approvals; DELETE FROM events; DELETE FROM turns; DELETE FROM sessions;");for(let[t,s]of e.sessions.entries())await o.run("INSERT INTO sessions (id, sort_index, payload, updated_at) VALUES (?, ?, ?, ?)",[s.id,t,JSON.stringify(s),s.updatedAt]);for(let[t,s]of e.turns.entries())await o.run("INSERT INTO turns (id, session_id, provider_turn_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.providerTurnId,s.status,t,JSON.stringify(s),s.completedAt??s.startedAt]);for(let[t,s]of e.events.entries()){let u=t+1;await o.run("INSERT INTO events (id, session_id, turn_id, name, timestamp, sequence, sort_index, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId??null,s.turnId??null,s.name,s.timestamp,u,t,JSON.stringify(s)])}for(let[t,s]of e.approvals.entries())await o.run("INSERT INTO approvals (id, session_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.status,t,JSON.stringify(s),a]);await o.exec("COMMIT")}catch(t){throw await o.exec("ROLLBACK"),t}}n(D,"persistStoreData");export{S as a,E as b,T as c,D as d};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{h as i}from"./chunk-4PUOWSDE.js";import{A as e}from"./chunk-X2J2P5ZT.js";var t=i.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((m,a)=>{m.maximumDailySpendUsd<m.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});export{t as a};
2
+ import{h as i}from"./chunk-ZEOYNUHL.js";import{A as e}from"./chunk-X2J2P5ZT.js";var t=i.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((m,a)=>{m.maximumDailySpendUsd<m.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});export{t as a};
@@ -1,2 +1,2 @@
1
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};
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-DLOJG7LP.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-BYVE4TMU.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-3VT2PPKW.js";import{L as V,S as O,b as K,ca as Y,da as X}from"./chunk-ZEOYNUHL.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};