openpond 0.2.61 → 0.2.63

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 (549) hide show
  1. package/README.md +2 -0
  2. package/dist/app-server.d.ts +4713 -477
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/{acp-FUAWCKBH.js → acp-H3MJCPHX.js} +1 -1
  5. package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-DWA7272M.js} +1 -1
  6. package/dist/chunks/actions-command-IIYOO4LL.js +2 -0
  7. package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-K7H2WJ56.js} +1 -1
  8. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +2 -0
  9. package/dist/chunks/{app-server-evaluations-HAAYVEXB.js → app-server-evaluations-XGMGS67X.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-BHD6S5II.js +2 -0
  11. package/dist/chunks/app-server-runtime-LFIL6F7D.js +2 -0
  12. package/dist/chunks/apps-QKAHJGQ4.js +2 -0
  13. package/dist/chunks/chunk-25XXZS3E.js +2 -0
  14. package/dist/chunks/chunk-27JGS3KB.js +12 -0
  15. package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
  16. package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-2HAWOMZK.js} +1 -1
  17. package/dist/chunks/chunk-2LJCJOJ7.js +2 -0
  18. package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
  19. package/dist/chunks/{chunk-CN5OXQ7A.js → chunk-3YXYBYWK.js} +1 -1
  20. package/dist/chunks/{chunk-LHENAWLH.js → chunk-42V4NV2F.js} +1 -1
  21. package/dist/chunks/{chunk-DW3GJRY3.js → chunk-4FNCBA3Y.js} +1 -1
  22. package/dist/chunks/{chunk-TXBIZDXG.js → chunk-4L6DU6Z2.js} +1 -1
  23. package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
  24. package/dist/chunks/{chunk-MLTKB5G3.js → chunk-4SZ3HKHU.js} +1 -1
  25. package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
  26. package/dist/chunks/chunk-5EP2DZLJ.js +2 -0
  27. package/dist/chunks/chunk-5FU5RLML.js +2 -0
  28. package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-5MHYGMJG.js} +1 -1
  29. package/dist/chunks/chunk-6EBCS57F.js +2 -0
  30. package/dist/chunks/chunk-6RS4NAOY.js +2 -0
  31. package/dist/chunks/chunk-6XSSM4WT.js +3 -0
  32. package/dist/chunks/{chunk-NVHZRKXB.js → chunk-7HRLWPPZ.js} +1 -1
  33. package/dist/chunks/chunk-7O6Z3VOZ.js +2 -0
  34. package/dist/chunks/{chunk-BQUWZRWU.js → chunk-7WYL2IDD.js} +1 -1
  35. package/dist/chunks/chunk-7YLXGILH.js +2 -0
  36. package/dist/chunks/chunk-7ZLXFKRI.js +2 -0
  37. package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
  38. package/dist/chunks/{chunk-TTN63EAM.js → chunk-AH26AQN7.js} +1 -1
  39. package/dist/chunks/chunk-AHOBCBVZ.js +2 -0
  40. package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
  41. package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
  42. package/dist/chunks/chunk-B5R53U74.js +2 -0
  43. package/dist/chunks/chunk-BKEDG3A4.js +22 -0
  44. package/dist/chunks/{chunk-CO3OJFPU.js → chunk-BPZOABMC.js} +1 -1
  45. package/dist/chunks/{chunk-5VPU7OS7.js → chunk-BSPFY3Y5.js} +1 -1
  46. package/dist/chunks/{chunk-U4HZD2GM.js → chunk-BU27SLZP.js} +2 -2
  47. package/dist/chunks/chunk-C2AXMKK4.js +2 -0
  48. package/dist/chunks/{chunk-SIV5P6JO.js → chunk-C2LAEGOW.js} +2 -2
  49. package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-CZ5R4JXZ.js} +1 -1
  50. package/dist/chunks/{chunk-D4JZALZ4.js → chunk-DABBHWSF.js} +1 -1
  51. package/dist/chunks/{chunk-ROE24PN5.js → chunk-DLANLLKH.js} +1 -1
  52. package/dist/chunks/{chunk-57RY3LSR.js → chunk-DQI5TE6A.js} +2 -2
  53. package/dist/chunks/chunk-DTTFUANI.js +12 -0
  54. package/dist/chunks/{chunk-VBW2X42G.js → chunk-DUL6DXOI.js} +1 -1
  55. package/dist/chunks/{chunk-OQUKSRU3.js → chunk-ELX7VRSU.js} +1 -1
  56. package/dist/chunks/chunk-ERL2M773.js +3 -0
  57. package/dist/chunks/chunk-ERT32RZA.js +86 -0
  58. package/dist/chunks/{chunk-RPOD6I64.js → chunk-EZRUWIP6.js} +1 -1
  59. package/dist/chunks/{chunk-MCIIGQT7.js → chunk-F6UQ6PPK.js} +1 -1
  60. package/dist/chunks/chunk-F7QTIHXX.js +2 -0
  61. package/dist/chunks/chunk-FAKDGLZQ.js +8 -0
  62. package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FVRII5XO.js} +1 -1
  63. package/dist/chunks/{chunk-GEXKTGLY.js → chunk-FYYYECHE.js} +50 -48
  64. package/dist/chunks/chunk-G32BO6M5.js +4 -0
  65. package/dist/chunks/{chunk-TSAW2QVU.js → chunk-G6OR5NB6.js} +1 -1
  66. package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GGJUWIGR.js} +1 -1
  67. package/dist/chunks/{chunk-Q66LWQGF.js → chunk-GPL2Z65R.js} +1 -1
  68. package/dist/chunks/{chunk-LNRFRAV5.js → chunk-GS6ZUSIN.js} +2 -2
  69. package/dist/chunks/{chunk-OFVUN4KI.js → chunk-GVARQXYI.js} +1 -1
  70. package/dist/chunks/chunk-GXCUH2VV.js +17 -0
  71. package/dist/chunks/{chunk-IUGK6BBY.js → chunk-GXZCMO6S.js} +1 -1
  72. package/dist/chunks/{chunk-CLFYRN46.js → chunk-H6C4MAUN.js} +1 -1
  73. package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
  74. package/dist/chunks/{chunk-I3W27VK4.js → chunk-HUCBKXTU.js} +1 -1
  75. package/dist/chunks/{chunk-P4XM7LUT.js → chunk-IHB5GTOJ.js} +2 -2
  76. package/dist/chunks/{chunk-U447MS3Y.js → chunk-IWWXIUAQ.js} +1 -1
  77. package/dist/chunks/chunk-J572ANHX.js +13 -0
  78. package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-J7ZTPXRQ.js} +1 -1
  79. package/dist/chunks/chunk-JCLTFDVW.js +2 -0
  80. package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
  81. package/dist/chunks/{chunk-ELYRVTTG.js → chunk-JORRZ4BB.js} +1 -1
  82. package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
  83. package/dist/chunks/chunk-JSQRLLN6.js +2 -0
  84. package/dist/chunks/chunk-KCOTDUGW.js +2 -0
  85. package/dist/chunks/{chunk-NK4JKB7C.js → chunk-KHTAAVC2.js} +1 -1
  86. package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
  87. package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
  88. package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LK2K3SPM.js} +2 -2
  89. package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-LKKMLBOH.js} +1 -1
  90. package/dist/chunks/{chunk-BNZTJPK7.js → chunk-LSZJ5M3X.js} +1 -1
  91. package/dist/chunks/chunk-M3FLEZ4E.js +4 -0
  92. package/dist/chunks/{chunk-4LZLO4OW.js → chunk-M3SCON53.js} +1 -1
  93. package/dist/chunks/{chunk-VPDG2V2R.js → chunk-MEGKXGW3.js} +1 -1
  94. package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
  95. package/dist/chunks/chunk-MPNJ2BB4.js +2 -0
  96. package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-N33D7KCW.js} +1 -1
  97. package/dist/chunks/chunk-N42HT64M.js +2 -0
  98. package/dist/chunks/{chunk-L3GA2CQI.js → chunk-N4VHLJBZ.js} +1 -1
  99. package/dist/chunks/chunk-NEJLJ2XY.js +2 -0
  100. package/dist/chunks/chunk-NG2L6D7G.js +2 -0
  101. package/dist/chunks/{chunk-7EAWLYYB.js → chunk-NLYZ5K7U.js} +2 -2
  102. package/dist/chunks/{chunk-B47JMAVW.js → chunk-NT7N6KLE.js} +1 -1
  103. package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
  104. package/dist/chunks/{chunk-PAZDQRYU.js → chunk-NZTCH6K5.js} +1 -1
  105. package/dist/chunks/{chunk-CQF6QZEL.js → chunk-OG33QAG6.js} +1 -1
  106. package/dist/chunks/chunk-OTUBJV6C.js +6 -0
  107. package/dist/chunks/{chunk-TMMFF6DO.js → chunk-PBTXLQAU.js} +1 -1
  108. package/dist/chunks/chunk-Q34IF4PW.js +2 -0
  109. package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-QJ6KUVAR.js} +1 -1
  110. package/dist/chunks/{chunk-SID4X3YN.js → chunk-QU4UE73E.js} +1 -1
  111. package/dist/chunks/{chunk-I7JCARVH.js → chunk-R6VJDOQM.js} +3 -3
  112. package/dist/chunks/{chunk-6RVF2J47.js → chunk-R6WMY6AH.js} +1 -1
  113. package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-RDSVU6F6.js} +1 -1
  114. package/dist/chunks/{chunk-R4PDSOB4.js → chunk-RFMME46Z.js} +1 -1
  115. package/dist/chunks/{chunk-GQUS7MCH.js → chunk-RZUCVF2Q.js} +1 -1
  116. package/dist/chunks/chunk-SFKZITAG.js +9 -0
  117. package/dist/chunks/{chunk-MF35MALN.js → chunk-SHJY5RLU.js} +1 -1
  118. package/dist/chunks/chunk-SI5W5LBV.js +2 -0
  119. package/dist/chunks/chunk-SO42ZB5K.js +2 -0
  120. package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
  121. package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
  122. package/dist/chunks/{chunk-ZISYLRH6.js → chunk-TCOTXCV6.js} +1 -1
  123. package/dist/chunks/{chunk-QCSLEMZF.js → chunk-U2K7QJCG.js} +1 -1
  124. package/dist/chunks/{chunk-ISIXFK6U.js → chunk-UH4JSSRL.js} +28 -28
  125. package/dist/chunks/chunk-UPWJSNL5.js +2 -0
  126. package/dist/chunks/chunk-URNMC46H.js +157 -0
  127. package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
  128. package/dist/chunks/{chunk-WFVOG5PU.js → chunk-V7KR74NO.js} +1 -1
  129. package/dist/chunks/{chunk-QDBYLJGH.js → chunk-VHXDWAEH.js} +1 -1
  130. package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-W2TICQ62.js} +1 -1
  131. package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
  132. package/dist/chunks/chunk-WP2L2NY2.js +2 -0
  133. package/dist/chunks/chunk-WSOUMXH3.js +24 -0
  134. package/dist/chunks/chunk-WWQNMC7C.js +6 -0
  135. package/dist/chunks/chunk-XMHIQ3SK.js +5 -0
  136. package/dist/chunks/{chunk-5MTN6KXV.js → chunk-XNOMIWEY.js} +1 -1
  137. package/dist/chunks/{chunk-T4LLJC5N.js → chunk-XOB6FKQV.js} +1 -1
  138. package/dist/chunks/chunk-Y766IN7Y.js +2 -0
  139. package/dist/chunks/chunk-YCZZ62C2.js +2 -0
  140. package/dist/chunks/chunk-YM4PSVFW.js +4 -0
  141. package/dist/chunks/chunk-YNQWJWIC.js +10 -0
  142. package/dist/chunks/{chunk-LBBXVOVR.js → chunk-Z3BWCFLV.js} +1 -1
  143. package/dist/chunks/{chunk-WRQEYW3V.js → chunk-ZG6353RM.js} +1 -1
  144. package/dist/chunks/{chunk-PE7UKJXK.js → chunk-ZPTKR3GB.js} +1 -1
  145. package/dist/chunks/{chunk-2VXL6AU3.js → chunk-ZYVHOVKL.js} +1 -1
  146. package/dist/chunks/chunk-ZZHXQCNB.js +22 -0
  147. package/dist/chunks/cli-PSXMIJTF.js +2 -0
  148. package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-XYKMXIWF.js} +1 -1
  149. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +2 -0
  150. package/dist/chunks/connected-evidence-IRXYN6YD.js +2 -0
  151. package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-JONPTII6.js} +1 -1
  152. package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
  153. package/dist/chunks/{continual-CJUZM5ZQ.js → continual-Z7MO2PF6.js} +1 -1
  154. package/dist/chunks/core-commands-WWN7X3XC.js +2 -0
  155. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +4 -0
  156. package/dist/chunks/datasets-2PC2HP7N.js +2 -0
  157. package/dist/chunks/desktop-test-VU6AFAMO.js +3 -0
  158. package/dist/chunks/dist-47AYOIH6.js +2 -0
  159. package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
  160. package/dist/chunks/{dist-DCSLPBO2.js → dist-MXBEBM4D.js} +1 -1
  161. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +2 -0
  162. package/dist/chunks/experiment-improvements-EB2CV5RA.js +2 -0
  163. package/dist/chunks/experiments-SZQYR6MH.js +2 -0
  164. package/dist/chunks/experiments-signal-2KJCP25D.js +2 -0
  165. package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
  166. package/dist/chunks/{help-M2VQGPVC.js → help-7HXFWIKS.js} +1 -1
  167. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +2 -0
  168. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +2 -0
  169. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +2 -0
  170. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +3 -0
  171. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +2 -0
  172. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +3 -0
  173. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +2 -0
  174. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +2 -0
  175. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +3 -0
  176. package/dist/chunks/{hosted-profile-evaluation-preparation-ZAOGDQXO.js → hosted-profile-evaluation-preparation-2LSMZQNA.js} +1 -1
  177. package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-WGXGXJ7E.js} +1 -1
  178. package/dist/chunks/human-review-M26UKGJL.js +2 -0
  179. package/dist/chunks/{import-WLLUIDS6.js → import-6SI4BEKS.js} +2 -2
  180. package/dist/chunks/learning-HM3NWOV5.js +2 -0
  181. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +2 -0
  182. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +2 -0
  183. package/dist/chunks/model-projects-YUAMBQTO.js +2 -0
  184. package/dist/chunks/opchat-AG4CWVY4.js +3 -0
  185. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +2 -0
  186. package/dist/chunks/organizations-KDKX77XZ.js +2 -0
  187. package/dist/chunks/{profile-JRS3JNRC.js → profile-O5HL5DTQ.js} +1 -1
  188. package/dist/chunks/project-action-payload-QA24HYGF.js +2 -0
  189. package/dist/chunks/project-agent-XBOOM5TS.js +2 -0
  190. package/dist/chunks/published-experiment-source-GZGN354O.js +2 -0
  191. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +2 -0
  192. package/dist/chunks/{runtime-CBJF5GMB.js → runtime-XBA744HJ.js} +2 -2
  193. package/dist/chunks/sandbox-command-5ECGS7DG.js +2 -0
  194. package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-27U3FQN7.js} +1 -1
  195. package/dist/chunks/saved-work-KUNVTJ7O.js +2 -0
  196. package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-FIPWOXWV.js} +1 -1
  197. package/dist/chunks/src-BLWX6DRG.js +424 -0
  198. package/dist/chunks/{src-4YZF6L6H.js → src-PU7QTFO5.js} +1 -1
  199. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +2 -0
  200. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +2 -0
  201. package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-FOMYYS25.js} +1 -1
  202. package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-K324SQTO.js} +1 -1
  203. package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-3LQMIYAP.js} +1 -1
  204. package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-3KSX7RSO.js} +1 -1
  205. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +7 -0
  206. package/dist/chunks/{store-harness-evaluation-review-settings-I2R3HPO3.js → store-harness-evaluation-review-settings-AAN7KKJ5.js} +1 -1
  207. package/dist/chunks/{store-harness-refinement-candidates-SUT45FQX.js → store-harness-refinement-candidates-3PHL3BUY.js} +1 -1
  208. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +2 -0
  209. package/dist/chunks/store-human-review-QJY3ZPPF.js +7 -0
  210. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +2 -0
  211. package/dist/chunks/{store-learning-MFS4DGQR.js → store-learning-DW3QLQXU.js} +1 -1
  212. package/dist/chunks/{store-learning-credentials-BECWEG2Y.js → store-learning-credentials-67QNTPA7.js} +1 -1
  213. package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-QTVHJAEP.js} +1 -1
  214. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +2 -0
  215. package/dist/chunks/store-model-configuration-3SU73CMS.js +3 -0
  216. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +2 -0
  217. package/dist/chunks/store-ponder-history-WDLMXBIJ.js +2 -0
  218. package/dist/chunks/store-ponder-hosted-DX6E2BVW.js +4 -0
  219. package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-DWV5XSMY.js} +1 -1
  220. package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-2KUY4T6M.js} +1 -1
  221. package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-A4XCS7RM.js} +1 -1
  222. package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-V2PKRXUZ.js} +1 -1
  223. package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-UGVEFA6M.js} +1 -1
  224. package/dist/chunks/store-task-inbox-QABI4ZAH.js +33 -0
  225. package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-GEQIZELY.js} +1 -1
  226. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +9 -0
  227. package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-CQV7PL3V.js} +1 -1
  228. package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-XKN6K66J.js} +18 -10
  229. package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-Q7DTTR4S.js} +1 -1
  230. package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-XGAX7NLB.js} +1 -1
  231. package/dist/chunks/{taskset-NYLUYX6K.js → taskset-ARKJQKYQ.js} +1 -1
  232. package/dist/chunks/taskset-packages-X4K65DTW.js +2 -0
  233. package/dist/chunks/taskset-packages-XK7FSD45.js +2 -0
  234. package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-UTQAJA6H.js} +1 -1
  235. package/dist/chunks/training-3IWW4256.js +2 -0
  236. package/dist/chunks/{training-UBX6E7SK.js → training-RVIESURJ.js} +1 -1
  237. package/dist/chunks/training-error-2EWDOQ4G.js +2 -0
  238. package/dist/chunks/training-hosted-PFJHYTEU.js +2 -0
  239. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +2 -0
  240. package/dist/chunks/training-hosted-feedback-5B2KJGOT.js +2 -0
  241. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +2 -0
  242. package/dist/chunks/training-hosted-report-UVGTPDOK.js +2 -0
  243. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
  244. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +2 -0
  245. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +2 -0
  246. package/dist/chunks/training-model-start-ROLS3E4V.js +2 -0
  247. package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
  248. package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-7FBUBZ66.js} +1 -1
  249. package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-G3CMY7ZA.js} +1 -1
  250. package/dist/cli.js +2 -2
  251. package/dist/hosted-chat.d.ts +28 -0
  252. package/dist/index.js +1 -1
  253. package/dist/sandbox/url.d.ts +3 -1
  254. package/dist/skills/LICENSE +21 -0
  255. package/dist/skills/manifest.json +168 -0
  256. package/dist/skills/openpond-agent-authoring/SKILL.md +9 -3
  257. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +1 -1
  258. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +2 -2
  259. package/dist/skills/openpond-cli/SKILL.md +24 -7
  260. package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
  261. package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
  262. package/dist/skills/openpond-cli/references/experiments-and-training.md +156 -11
  263. package/dist/skills/openpond-refiner-authoring/SKILL.md +4 -0
  264. package/dist/skills/openpond-skill-authoring/SKILL.md +5 -1
  265. package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
  266. package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
  267. package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
  268. package/dist/web/assets/App-DY2R8Z6r.js +53 -0
  269. package/dist/web/assets/App-DpFKLxuA.css +1 -0
  270. package/dist/web/assets/AppDialog-8Y0FYalT.js +1 -0
  271. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +2 -0
  272. package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-BiQbbVxq.js} +1 -1
  273. package/dist/web/assets/AppsView-Dtte4h6e.js +1 -0
  274. package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-DgADV7dn.js} +1 -1
  275. package/dist/web/assets/BrowserSidebar-BUqDvEv9.js +1 -0
  276. package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-J4ChOjvG.js} +1 -1
  277. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +8 -0
  278. package/dist/web/assets/ChatTimelineEntry-DztFb85D.css +1 -0
  279. package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-CFCpk2Ck.js} +1 -1
  280. package/dist/web/assets/CommandMenu-EPPjB14H.js +1 -0
  281. package/dist/web/assets/CommunityView-Okydjpqm.js +1 -0
  282. package/dist/web/assets/ComposerAttachments-RXCiE88M.js +2 -0
  283. package/dist/web/assets/ComposerCreateImproveStrip-CSngc8-V.js +1 -0
  284. package/dist/web/assets/ConversationImportsSettings-DS73kyfj.js +1 -0
  285. package/dist/web/assets/FilePagePreview-Qc4B0vue.js +2 -0
  286. package/dist/web/assets/GetStartedView-DGFPQ1We.js +1 -0
  287. package/dist/web/assets/GettingStartedDialog-DFBYQdHz.js +1 -0
  288. package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
  289. package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-BDu3FlcU.js} +1 -1
  290. package/dist/web/assets/HostedModelLearningSettings-CHaTHwC8.js +1 -0
  291. package/dist/web/assets/HtmlVisual-C7GlEVfH.css +1 -0
  292. package/dist/web/assets/HtmlVisual-D9Mh7xds.js +81 -0
  293. package/dist/web/assets/LabModelVersionDetailPage-DgY7lAu5.js +1 -0
  294. package/dist/web/assets/LabSkillSidebar-BwtlThO7.js +1 -0
  295. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +101 -0
  296. package/dist/web/assets/MainChatThread-pzHKd_YN.js +2 -0
  297. package/dist/web/assets/MainPane-6OlLiKKb.js +10 -0
  298. package/dist/web/assets/MainPane-Dje-hfUM.css +1 -0
  299. package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
  300. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +2 -0
  301. package/dist/web/assets/NativeSkillSidebar-BEJvt5_H.js +1 -0
  302. package/dist/web/assets/NewProjectDialog-CjrjgkTN.js +1 -0
  303. package/dist/web/assets/OutputsPage-jzx93QQ3.js +1 -0
  304. package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-C1M13qG2.js} +1 -1
  305. package/dist/web/assets/ProjectsPage-DZrjlMp2.js +1 -0
  306. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +1 -0
  307. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +1 -0
  308. package/dist/web/assets/ScheduledWorkPage-Cw1ja2GF.js +1 -0
  309. package/dist/web/assets/{SettingsView-Y8f98GSE.css → SettingsView-Cc0376pY.css} +1 -1
  310. package/dist/web/assets/SettingsView-CckoIki3.js +5 -0
  311. package/dist/web/assets/TasksetDraftEditorPrimitives-ByC8bDjp.js +1 -0
  312. package/dist/web/assets/TeamChatView-OprnSKLF.js +1 -0
  313. package/dist/web/assets/TerminalOverlay-d7A2F9Lx.js +16 -0
  314. package/dist/web/assets/TrainingCreationPanel-Cyn6R6I6.js +1 -0
  315. package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-Mpb5e7t5.js} +1 -1
  316. package/dist/web/assets/TrainingRunLineage-PXzWR65d.css +1 -0
  317. package/dist/web/assets/TrainingRunLineage-VcKz7dIR.js +1 -0
  318. package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-FhYymrfc.js} +2 -2
  319. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +1 -0
  320. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +11 -0
  321. package/dist/web/assets/WorkspaceEnvironmentMenu-C8y3537a.js +35 -0
  322. package/dist/web/assets/WorkspaceFileLocation-LrEWj4UK.js +1 -0
  323. package/dist/web/assets/WorkspaceGitDialogs-NRIMXnkS.js +1 -0
  324. package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-CvDGjKAL.js} +3 -3
  325. package/dist/web/assets/WorkspacePdfPreview-BZ0BbnHv.js +2 -0
  326. package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-DJrjrvT0.js} +1 -1
  327. package/dist/web/assets/app-models-CUA9XB9U.js +1 -0
  328. package/dist/web/assets/bot-6OhUEmkE.js +1 -0
  329. package/dist/web/assets/browser-sidebar-links-ZyYiYBBd.js +1 -0
  330. package/dist/web/assets/chat-resources-CI8KFVO5.js +1 -0
  331. package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-jmVA1BIf.js} +1 -1
  332. package/dist/web/assets/chevron-right-BYmDQ7ti.js +1 -0
  333. package/dist/web/assets/chevron-up-CstyLXH3.js +1 -0
  334. package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ONGOAEY6-C__DQmRT.js} +5 -5
  335. package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-SQBYHWZU-DumrB9SB.js} +1 -1
  336. package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-BdQ_YDuk.js} +1 -1
  337. package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-Ck1ufAr8.js} +1 -1
  338. package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
  339. package/dist/web/assets/contracts-BLiqJxBv.js +1 -0
  340. package/dist/web/assets/copy-CPkbMfXt.js +1 -0
  341. package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-CXQny8HU.js} +1 -1
  342. package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-CYxYl_om.js} +1 -1
  343. package/dist/web/assets/external-link-CDKOLG_v.js +1 -0
  344. package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-CEtOb_lK.js} +1 -1
  345. package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-CVMYZs3e.js} +1 -1
  346. package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-DDyhPjxS.js} +1 -1
  347. package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-DoY4V_j0.js} +1 -1
  348. package/dist/web/assets/icons-D7jkCa2d.js +1 -0
  349. package/dist/web/assets/{image-C7HVlg3X.js → image-B-PjDSwU.js} +1 -1
  350. package/dist/web/assets/{index-BsPUniZy.js → index-D9WbJMSq.js} +2 -2
  351. package/dist/web/assets/index-g7UqJhnX.css +1 -0
  352. package/dist/web/assets/{info-BLWDShaz.js → info-CCnw-K3b.js} +1 -1
  353. package/dist/web/assets/intake-contracts-BW0Y0C2R.js +1 -0
  354. package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-CeOpZdPj.js} +1 -1
  355. package/dist/web/assets/loader-circle-CPaJeTDy.js +1 -0
  356. package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-DAbgLCqZ.js} +1 -1
  357. package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-BZX38cpr.js} +1 -1
  358. package/dist/web/assets/message-square-CvgSecgD.js +1 -0
  359. package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-CF2JDhi4.js} +2 -2
  360. package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-cbDqt48m.js} +2 -2
  361. package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-m2ze2EsL.js} +2 -2
  362. package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-yeyow_-Q.js} +2 -2
  363. package/dist/web/assets/{monitor-B6OuAu13.js → monitor-By0s4hxb.js} +1 -1
  364. package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-BJ2QgJLa.js} +1 -1
  365. package/dist/web/assets/{pdf-RXlFwNte.js → pdf-C4x-1jjP.js} +1 -1
  366. package/dist/web/assets/pdf.worker.min-BrEVksTu.js +1 -0
  367. package/dist/web/assets/play-D_SuGDBM.js +1 -0
  368. package/dist/web/assets/plus-yw95Iaj8.js +1 -0
  369. package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-I86G1Gd9.js} +1 -1
  370. package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
  371. package/dist/web/assets/{python-BQXo7wMt.js → python-CqFTPj8r.js} +1 -1
  372. package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-Dga35Eay.js} +1 -1
  373. package/dist/web/assets/requests-BCbaFiqV.js +1 -0
  374. package/dist/web/assets/{reward-checks-5AOStF27.js → reward-checks-Bcq9ETCA.js} +1 -1
  375. package/dist/web/assets/{save-BxXc21N6.js → save-BLKjYtzR.js} +1 -1
  376. package/dist/web/assets/settings-D7C-Auyi.js +21 -0
  377. package/dist/web/assets/settings-lists-DMKA1lCN.js +5 -0
  378. package/dist/web/assets/square-BY5lG2Ol.js +1 -0
  379. package/dist/web/assets/square-terminal-B-n7vUex.js +1 -0
  380. package/dist/web/assets/submit-issue-command-B7Hrt2tU.js +3 -0
  381. package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-BhmBE5XE.js} +1 -1
  382. package/dist/web/assets/training-QrdkRQZQ.js +2 -0
  383. package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-DB-jg6L_.js} +12 -12
  384. package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-BSWEII2p.js} +1 -1
  385. package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
  386. package/dist/web/assets/{upload-NXasN1wU.js → upload-C4MPhQn8.js} +1 -1
  387. package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-9oqWdRLs.js} +1 -1
  388. package/dist/web/assets/useAgentInventory-isO79ui9.js +1 -0
  389. package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CZX6PxoK.js} +1 -1
  390. package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-BD0Uexmh.js} +1 -1
  391. package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-Cloe0WuQ.js} +1 -1
  392. package/dist/web/assets/{workers-u92Boudu.js → workers-BXagz5eg.js} +1 -1
  393. package/dist/web/assets/x-Dqpel42h.js +1 -0
  394. package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-sBdvVbCc.js} +1 -1
  395. package/dist/web/index.html +12 -3
  396. package/docs/command-reference.md +49 -5
  397. package/package.json +6 -2
  398. package/dist/chunks/actions-command-LOHNQUWP.js +0 -2
  399. package/dist/chunks/app-server-connected-apps-Q2VWWJNX.js +0 -2
  400. package/dist/chunks/app-server-harness-services-2PSZBT7U.js +0 -2
  401. package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
  402. package/dist/chunks/apps-7PIBF32Q.js +0 -2
  403. package/dist/chunks/chunk-3TYCIYW6.js +0 -17
  404. package/dist/chunks/chunk-4GZ2FPB5.js +0 -2
  405. package/dist/chunks/chunk-4M3YW3EQ.js +0 -13
  406. package/dist/chunks/chunk-4N3UF3U5.js +0 -2
  407. package/dist/chunks/chunk-4P3X2RXA.js +0 -2
  408. package/dist/chunks/chunk-4RHM4WN2.js +0 -2
  409. package/dist/chunks/chunk-6DCXAXVD.js +0 -22
  410. package/dist/chunks/chunk-AWPYTDH4.js +0 -4
  411. package/dist/chunks/chunk-BLKTUFGB.js +0 -2
  412. package/dist/chunks/chunk-BN5AVRUG.js +0 -2
  413. package/dist/chunks/chunk-D5ADDBS5.js +0 -2
  414. package/dist/chunks/chunk-DGPGOBYZ.js +0 -5
  415. package/dist/chunks/chunk-E3EKBPCB.js +0 -2
  416. package/dist/chunks/chunk-E67M5WGY.js +0 -2
  417. package/dist/chunks/chunk-EIIGTADO.js +0 -2
  418. package/dist/chunks/chunk-F5JDBDYL.js +0 -2
  419. package/dist/chunks/chunk-FWIPHEVA.js +0 -12
  420. package/dist/chunks/chunk-GLVR74PX.js +0 -2
  421. package/dist/chunks/chunk-HZLV773Y.js +0 -22
  422. package/dist/chunks/chunk-JEVA7YQL.js +0 -3
  423. package/dist/chunks/chunk-KC7I6E6W.js +0 -2
  424. package/dist/chunks/chunk-M4ZRCRJM.js +0 -10
  425. package/dist/chunks/chunk-N663LL27.js +0 -2
  426. package/dist/chunks/chunk-NR5VASQB.js +0 -2
  427. package/dist/chunks/chunk-OJSK4NSW.js +0 -151
  428. package/dist/chunks/chunk-OZ6LRNRE.js +0 -2
  429. package/dist/chunks/chunk-Q324ZA5M.js +0 -2
  430. package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
  431. package/dist/chunks/chunk-UJBEWIR3.js +0 -8
  432. package/dist/chunks/chunk-V67IFV26.js +0 -86
  433. package/dist/chunks/chunk-VSUHJ46L.js +0 -18
  434. package/dist/chunks/chunk-VWJ5IYQP.js +0 -2
  435. package/dist/chunks/chunk-X3WEQL3O.js +0 -2
  436. package/dist/chunks/chunk-XK7SPL63.js +0 -2
  437. package/dist/chunks/chunk-XLULTQLZ.js +0 -12
  438. package/dist/chunks/chunk-YR5ID2SS.js +0 -2
  439. package/dist/chunks/chunk-ZBBVRYU3.js +0 -6
  440. package/dist/chunks/chunk-ZHFH2TZN.js +0 -2
  441. package/dist/chunks/chunk-ZZWAQBA2.js +0 -2
  442. package/dist/chunks/cli-WC45SI7E.js +0 -2
  443. package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
  444. package/dist/chunks/connected-evidence-4J3YXU4O.js +0 -2
  445. package/dist/chunks/core-commands-JGXU6B4C.js +0 -2
  446. package/dist/chunks/dataset-preparation-authoring-DFGJBMVF.js +0 -4
  447. package/dist/chunks/datasets-MNHZAZIB.js +0 -2
  448. package/dist/chunks/desktop-test-P23MHAIG.js +0 -3
  449. package/dist/chunks/dist-IIFTZWNR.js +0 -2
  450. package/dist/chunks/evaluation-coordination-6NQEH5WU.js +0 -2
  451. package/dist/chunks/experiment-improvements-M27Z5OF4.js +0 -2
  452. package/dist/chunks/experiments-IWSCFDBB.js +0 -2
  453. package/dist/chunks/experiments-signal-R3NNH7WR.js +0 -2
  454. package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
  455. package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
  456. package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
  457. package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
  458. package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
  459. package/dist/chunks/hosted-profile-candidate-37ZFY2LH.js +0 -3
  460. package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
  461. package/dist/chunks/hosted-profile-evaluation-control-UQBMML6K.js +0 -2
  462. package/dist/chunks/hosted-profile-evaluation-inspection-YASS4T6L.js +0 -3
  463. package/dist/chunks/human-review-IJETDOWB.js +0 -2
  464. package/dist/chunks/learning-KVLTMRLD.js +0 -2
  465. package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
  466. package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
  467. package/dist/chunks/model-projects-AVBQDNYG.js +0 -2
  468. package/dist/chunks/opchat-KSOJEL4W.js +0 -3
  469. package/dist/chunks/organizations-DJRJWC5I.js +0 -2
  470. package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
  471. package/dist/chunks/project-agent-2KNJFNZI.js +0 -2
  472. package/dist/chunks/published-experiment-source-LFYHKFAO.js +0 -2
  473. package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
  474. package/dist/chunks/sandbox-command-IIGTPYN3.js +0 -2
  475. package/dist/chunks/saved-work-QA46KCME.js +0 -2
  476. package/dist/chunks/src-E7NWAN5B.js +0 -420
  477. package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
  478. package/dist/chunks/store-chat-resources-CGW7PDCG.js +0 -2
  479. package/dist/chunks/store-evaluation-results-V5J6L4NV.js +0 -7
  480. package/dist/chunks/store-harness-workspaces-HHMM6GNK.js +0 -2
  481. package/dist/chunks/store-human-review-V5H4QDHR.js +0 -7
  482. package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
  483. package/dist/chunks/store-model-batch-review-KMYPYWJR.js +0 -2
  484. package/dist/chunks/store-model-configuration-UXNC4PGY.js +0 -3
  485. package/dist/chunks/store-task-inbox-LNDCZOYE.js +0 -33
  486. package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
  487. package/dist/chunks/taskset-packages-I7I5KBFP.js +0 -2
  488. package/dist/chunks/training-error-AYOGHHL2.js +0 -2
  489. package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
  490. package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
  491. package/dist/chunks/training-hosted-workers-KI767T4Y.js +0 -2
  492. package/dist/skills/openpond-desktop-harness/SKILL.md +0 -113
  493. package/dist/skills/openpond-desktop-harness/agents/openai.yaml +0 -4
  494. package/dist/web/assets/App-Df7uYQGj.css +0 -1
  495. package/dist/web/assets/App-Yy3l2sdD.js +0 -56
  496. package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
  497. package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
  498. package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
  499. package/dist/web/assets/ChatTimelineEntry-IKzZsHoI.js +0 -1
  500. package/dist/web/assets/CommandMenu-CBY2AJxV.js +0 -1
  501. package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
  502. package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
  503. package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
  504. package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
  505. package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
  506. package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
  507. package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
  508. package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
  509. package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
  510. package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
  511. package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
  512. package/dist/web/assets/LabsRoute-DOnw39du.js +0 -101
  513. package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
  514. package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
  515. package/dist/web/assets/MainPane-CuBUBA9F.css +0 -1
  516. package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
  517. package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
  518. package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
  519. package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
  520. package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
  521. package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
  522. package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
  523. package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
  524. package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
  525. package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
  526. package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
  527. package/dist/web/assets/TrainingMetricWorkbench-BmzHLwIP.js +0 -1
  528. package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
  529. package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
  530. package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
  531. package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
  532. package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
  533. package/dist/web/assets/app-models-BviS9b7U.js +0 -1
  534. package/dist/web/assets/browser-sidebar-links-ujSvTf5h.js +0 -1
  535. package/dist/web/assets/chat-resources-CItQ4mZD.js +0 -1
  536. package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
  537. package/dist/web/assets/contracts-BHTOD1nd.js +0 -1
  538. package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
  539. package/dist/web/assets/icons-kaq6k88m.js +0 -1
  540. package/dist/web/assets/index-DUMDOdB2.css +0 -1
  541. package/dist/web/assets/play-BPPQoqMl.js +0 -1
  542. package/dist/web/assets/plus-D18vYzHF.js +0 -1
  543. package/dist/web/assets/settings-BKmRueaw.js +0 -21
  544. package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
  545. package/dist/web/assets/square-Da8RuqW4.js +0 -1
  546. package/dist/web/assets/training-managed-adapter-81RrdT1k.js +0 -1
  547. package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
  548. package/dist/web/assets/useAgentInventory-BV4CUWzJ.js +0 -1
  549. /package/dist/chunks/{chunk-GLDYJM7O.js → chunk-T4QXKU5Y.js} +0 -0
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as X,b as d,c as y,d as h,e as w,f as se,g as p,h as T,i as W,j as Ne,n as ce}from"./chunk-BLKTUFGB.js";import{f as Ee,t as Ce,v as Y}from"./chunk-M6JRS5PA.js";import{F as ze,H as Oe,K as Ue,_b as Je,e as C,gc as $e,jc as Ge,r as qe,sb as De,v as Me}from"./chunk-4M3YW3EQ.js";import{Ia as ve,J as F,O as _e,Ua as He,eb as K,lb as oe,qb as je,ra as ke,wb as Ae}from"./chunk-PBZCXPPC.js";import{t as Re,v as we}from"./chunk-NJLULBTM.js";import{g as ae,k as Pe,n as R,o as re}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as s}from"./chunk-FTQLQJQV.js";var D=e.object({id:e.string().trim().min(1).max(240),revision:e.number().int().positive(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),targetId:e.string().trim().min(1).max(240).nullable()}).strict(),Ve=e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(1e5)}).strict()).max(100).superRefine((t,n)=>{t.reduce((i,a)=>i+a.content.length,0)>1e5&&n.addIssue({code:"custom",message:"Evaluation prompt exceeds 100,000 characters."})});var J=e.string().regex(/^[a-f0-9]{64}$/),me=e.object({providerId:e.literal("claude-code"),configurationHash:J,executableHash:J,version:e.string().regex(/^2\.\d+\.\d+$/),capabilityHash:J,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5),maximumTurns:e.number().int().min(1).max(100),holdOpen:e.boolean()}).strict(),yn=e.object({id:e.string().min(1).max(200),receiptId:e.string().min(1).max(200),sessionId:e.uuid(),operationId:e.string().min(1).max(200),action:e.enum(["message","seal"]),text:e.string().max(262144).optional()}).strict().superRefine((t,n)=>{t.action==="message"&&!t.text?.trim()&&n.addIssue({code:"custom",message:"A human intervention requires a message."}),t.action==="seal"&&t.text!==void 0&&n.addIssue({code:"custom",message:"Sealing does not add a prompt."})}),Sn=e.object({provider:e.literal("claude-code"),sessionId:e.uuid(),requestId:e.string().min(1).max(200),modelId:e.string().min(1).max(500),runtime:me,sourceHash:J,outputHash:J,traceHash:J,runtimeEventRefs:e.array(e.string().min(1).max(200)).min(1).max(2e4),eventCount:e.number().int().positive().max(2e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),cleanupComplete:e.literal(!0)}).strict().superRefine((t,n)=>{(t.runtimeEventRefs.length!==t.eventCount||new Set(t.runtimeEventRefs).size!==t.eventCount)&&n.addIssue({code:"custom",message:"Process event references must match the exact retained trace population."})});var Z=e.object({providerId:e.literal("codex"),configurationHash:e.string().regex(/^[a-f0-9]{64}$/),accountHash:e.string().regex(/^[a-f0-9]{64}$/),reasoningEffort:e.enum(["low","medium","high","xhigh"]),maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict();var Be=e.object({schemaVersion:e.literal("openpond.experimentAttemptGrade.v1"),selectionHash:e.string().regex(/^[a-f0-9]{64}$/),grades:e.array(F).min(1).max(100),score:e.number().min(0).max(1).nullable(),passed:e.boolean(),rewardEligible:e.boolean(),gradingStatus:e.enum(["scored","pending","unscorable","not_configured"]),failureClass:Pe.nullable(),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,n)=>{let{contentHash:i,...a}=t;R(a)!==i&&n.addIssue({code:"custom",message:"Experiment grading integrity failed."});let r=t.grades.flatMap(o=>o.components);(r.length!==t.grades.length||new Set(r.map(o=>o.graderId)).size!==r.length)&&n.addIssue({code:"custom",message:"Each selected criterion requires exactly one distinct grader result."});for(let o of t.grades){let{contentHash:m,...c}=o;R(c)!==m&&n.addIssue({code:"custom",message:"A retained criterion changed."});for(let P of o.components){let{contentHash:f,...x}=P;R(x)!==f&&n.addIssue({code:"custom",message:"A retained grader result changed."})}}});var l=e.string().trim().min(1).max(200),q=e.string().regex(/^[a-f0-9]{64}$/),pe=e.discriminatedUnion("kind",[e.object({kind:e.literal("hosted_chat"),modelId:l,localRuntime:e.union([e.object({providerId:e.literal("custom-openai-compatible"),configurationHash:q,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict(),me,Z]).optional(),candidate:e.object({artifactId:l,contentHash:q,preparationId:l,dispatchId:l,baseProfileId:l,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),harness:je.optional(),messages:Ve.optional(),maxOutputTokens:e.number().int().min(1).max(1e6).default(1e5),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict(),e.object({kind:e.literal("fixture"),fixtureId:l}).strict()]),Tt=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptRequest.v1"),operationId:l,teamId:l,modelProjectId:l.nullable(),project:D.optional(),taskset:T,taskId:l,environmentSeed:e.number().int().min(0).max(2147483647).default(0),policy:pe}).strict(),Dn=e.object({modelProjectId:l.nullable(),taskset:T,afterTaskId:l.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Jn=e.object({modelProjectId:l.nullable(),taskset:T,available:e.boolean(),unavailableReason:e.string().max(1e3).nullable(),models:e.array(e.object({id:l,name:e.string().max(500),maximumOutputTokens:e.number().int().min(1).max(1e6).optional()}).strict()).max(200),tasks:e.array(e.object({id:l,split:ke,inputPreview:e.string().max(500),fixtures:e.array(e.object({id:l,label:e.string().max(200)}).strict()).max(1e3)}).strict()).max(100),nextCursor:l.nullable()}).strict(),ee=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptSummary.v1"),id:l,revision:e.number().int().positive(),request:Tt,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),policySnapshot:e.object({modelId:l,provider:l,upstreamModelId:e.string().min(1).max(500),configurationHash:q}).strict().nullable(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),gradingStatus:e.enum(["not_started","pending","scored","unscorable","not_configured"]).default("not_started"),passed:e.boolean().nullable(),outputPreview:e.string().max(500).nullable(),error:e.object({code:l,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,n)=>{t.request.policy.kind==="fixture"!=(t.policySnapshot===null)&&n.addIssue({code:"custom",path:["policySnapshot"],message:"Fixture execution must not claim a model identity."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable||!t.completedAt)&&n.addIssue({code:"custom",message:"Completed attempts require retained results and confirmed cleanup."})}),$n=e.object({modelProjectId:l,afterId:l.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Gn=e.object({items:e.array(ee).max(100),nextCursor:l.nullable()}).strict(),Nn=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptResult.v1"),attempt:ee,output:e.string().max(1048576).nullable(),messages:e.array(e.record(e.string(),e.unknown())).max(4002),composition:He.nullable(),grade:F.nullable().optional(),experimentGrade:Be.nullable().optional(),environment:e.object({status:e.enum(["completed","budget_exhausted","cancelled","timed_out","policy_failure","environment_failure"]),collected:e.boolean(),definition:T,initialStateHash:q.nullable(),finalStateHash:q.nullable(),attemptHash:q}).strict(),native:Ae.optional(),providerRequestIds:e.array(l).max(1001),contentHash:q}).strict().superRefine((t,n)=>{let i=t.attempt.request.policy.kind==="hosted_chat"?t.attempt.request.policy.harness:void 0;!!i!=!!t.native&&n.addIssue({code:"custom",path:["native"],message:"Standalone Harness results require their exact native evidence."}),t.native&&(!i||R(i)!==R(t.native.source)||t.native.modelConfigurationHash!==t.attempt.policySnapshot?.configurationHash||t.environment.initialStateHash!==null||t.environment.finalStateHash!==null||t.environment.status==="completed"&&(!t.environment.collected||t.output===null||t.native.partialOutputAvailable||t.native.outputHash!==R(t.output)))&&n.addIssue({code:"custom",path:["native"],message:"Native evidence differs from the admitted source, model or output."}),t.experimentGrade&&((t.grade||t.composition)&&n.addIssue({code:"custom",message:"Selected Experiment grading cannot claim another grade population."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.experimentGrade.score||t.attempt.gradingStatus!==t.experimentGrade.gradingStatus||t.attempt.passed!==(t.experimentGrade.score===null?null:t.experimentGrade.passed))&&n.addIssue({code:"custom",message:"Experiment grading differs from its retained attempt summary."})),t.grade&&(t.composition&&n.addIssue({code:"custom",path:["grade"],message:"An ordinary grade cannot also claim a Reward composition."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.grade.score||t.attempt.gradingStatus!==t.grade.gradingStatus||t.attempt.passed!==(t.grade.score===null?null:t.grade.passed))&&n.addIssue({code:"custom",path:["grade"],message:"Ordinary grade differs from its terminal attempt summary."}))});var $=e.string().trim().min(1).max(240),de=e.string().regex(/^[a-f0-9]{64}$/),ue=e.object({maxOutputTokens:e.number().int().min(1).max(1e6).default(4096),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict();var j=e.object({kind:e.literal("hosted_harness"),modelId:$,maxOutputTokens:ue.shape.maxOutputTokens.removeDefault().optional(),temperature:ue.shape.temperature.removeDefault().optional(),topP:ue.shape.topP.removeDefault().optional(),localRuntime:Z.optional(),candidate:e.object({artifactId:$,contentHash:de,preparationId:$,dispatchId:$,baseProfileId:$,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),sourceCandidate:oe.shape.sourceCandidate,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),profileRepositoryId:$,source:oe,modelConfigurationHash:de,packageHash:de,externalDatasetBinding:K.optional()}).strict().superRefine((t,n)=>{JSON.stringify(t.externalDatasetBinding??null)!==JSON.stringify(t.source.externalDatasetBinding??null)&&n.addIssue({code:"custom",message:"The policy and source must bind the same external Dataset recipe."}),JSON.stringify(t.sourceCandidate??null)!==JSON.stringify(t.source.sourceCandidate??null)&&n.addIssue({code:"custom",message:"The policy and prepared source must bind the same actual source candidate."})});var _=e.string().trim().min(1).max(200),Le=e.string().regex(/^[a-f0-9]{64}$/),It=e.discriminatedUnion("kind",[pe.options[0],e.object({kind:e.literal("fixture")}).strict(),j]),M=e.object({schemaVersion:e.literal("openpond.modelTasksetRunRequest.v1"),operationId:_,teamId:_,modelProjectId:_.nullable(),name:e.string().trim().min(1).max(200).optional(),project:D.optional(),taskset:T,policy:It,population:e.array(Ce).min(1).max(1e4)}).strict().superRefine((t,n)=>{new Set(t.population.map(i=>i.receiptId)).size!==t.population.length&&n.addIssue({code:"custom",path:["population"],message:"Run receipt identities must be unique."}),t.population.some(i=>i.fixtureId!==null!=(t.policy.kind==="fixture"))&&n.addIssue({code:"custom",path:["population"],message:"Only fixture runs require a fixture identity for every member."}),t.population.some(i=>!/^(0|[1-9][0-9]*)$/.test(i.seed)||Number(i.seed)>2147483647)&&n.addIssue({code:"custom",path:["population"],message:"Hosted environment seeds must be integers from 0 to 2147483647."}),t.policy.kind==="hosted_harness"&&t.modelProjectId!==null&&n.addIssue({code:"custom",path:["modelProjectId"],message:"A Harness target retains its released Profile binding separately from Model artifacts."}),t.policy.kind==="hosted_harness"&&new Set(t.population.map(i=>y([i.taskId,i.seed]))).size!==t.population.length&&n.addIssue({code:"custom",path:["population"],message:"Harness case identities must be unique for each task and seed."})}),Qe=e.object({schemaVersion:e.literal("openpond.modelTasksetRunSummary.v1"),id:_,revision:e.number().int().positive(),teamId:_,modelProjectId:_.nullable(),name:e.string().trim().min(1).max(200).optional(),project:D.optional(),operationId:_,taskset:T,policyKind:e.enum(["hosted_chat","fixture","hosted_harness"]),manifestHash:Le,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),metricName:e.string().min(1).max(240),error:e.object({code:_,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,n)=>{Object.values(t.counts).reduce((i,a)=>i+a,0)!==t.totalCount&&n.addIssue({code:"custom",path:["counts"],message:"Run counts must account for the complete population."}),t.status!=="completed"&&t.score!==null&&n.addIssue({code:"custom",path:["score"],message:"Only completed evaluations publish a metric value."}),["completed","failed","cancelled"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&n.addIssue({code:"custom",message:"Terminal runs require complete population accounting."}),t.status==="cancelled"&&!t.cleanupComplete&&n.addIssue({code:"custom",message:"Cancelled runs require confirmed cleanup."}),t.resultAvailable&&!["completed","failed","cancelled"].includes(t.status)&&n.addIssue({code:"custom",message:"Run results require terminal population accounting."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable)&&n.addIssue({code:"custom",message:"Completed evaluations require retained results and confirmed cleanup."})}),Fe=e.object({summary:Qe,request:M,manifest:Y,policySnapshot:ee.shape.policySnapshot}).strict(),ci=e.object({modelProjectId:_.optional(),projectId:D.shape.id.optional(),afterId:_.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),mi=e.object({items:e.array(Qe).max(100),nextCursor:_.nullable()}).strict(),pi=e.object({schemaVersion:e.literal("openpond.modelTasksetRunResult.v1"),run:Fe,receipts:e.array(Ee).min(1).max(1e4),metric:_e.nullable(),contentHash:Le}).strict();function Pt(t,n){re(n,"Taskset run manifest");let i=t.policy;if(i.kind!=="hosted_harness"||n.execution.kind!=="harness"||y(n.profileEvaluation)!==y(i.source)||y(n.execution.harnessRelease)!==y(i.source.harnessRelease)||n.metadata.profileRepositoryId!==i.profileRepositoryId||n.packageHash!==i.packageHash||n.policy.kind!=="model"||n.policy.model.provider!==(i.localRuntime?.providerId??"openpond")||n.policy.model.model!==i.modelId||n.policy.model.revision!==null||n.policy.model.artifactHash!==(i.candidate?.contentHash??null)||n.policy.model.tokenizerRevision!==null||n.policy.model.chatTemplateHash!==null||n.policy.configurationHash!==i.modelConfigurationHash||n.tasksetRelease.id!==t.taskset.id||n.tasksetRelease.contentHash!==t.taskset.contentHash||y(n.population)!==y(t.population)||n.population.some(a=>a.receiptId!==`evaluation-${R(n.profileEvaluation?.externalDatasetBinding?[n.id,a.taskId,a.seed,a.fixtureId]:[n.id,a.taskId,a.seed]).slice(0,32)}`))throw new Error("Harness evaluation differs from its admitted source, package or model configuration.")}s(Pt,"verifyHarnessExperimentManifest");async function di(t){let n=Fe.parse(t),{summary:i,request:a,manifest:r,policySnapshot:o}=n;if(re(r,"Taskset run manifest"),r.contentHash!==i.manifestHash||r.id!==i.id||r.createdAt!==i.createdAt||i.teamId!==a.teamId||i.modelProjectId!==a.modelProjectId||y(i.project??null)!==y(a.project??null)||y(r.metadata.project??null)!==y(a.project??null)||(i.name??null)!==(a.name??null)||i.operationId!==a.operationId||i.policyKind!==a.policy.kind||i.totalCount!==a.population.length||i.metricName!==r.metricPolicy.primaryMetric||y(i.taskset)!==y(a.taskset)||r.tasksetRelease.id!==a.taskset.id||r.tasksetRelease.contentHash!==a.taskset.contentHash||y(r.population)!==y(a.population))throw new Error("Evaluation run differs from its admitted request or manifest.");if(a.policy.kind==="fixture"){if(r.policy.kind!=="fixture"||o!==null)throw new Error("Fixture checks cannot claim a model identity.")}else if(a.policy.kind==="hosted_harness"){if(Pt(a,r),o!==null)throw new Error("Harness evaluations retain the native host model configuration.")}else if(r.policy.kind!=="model"||!o||o.modelId!==a.policy.modelId||r.policy.model.provider!==o.provider||r.policy.model.model!==o.upstreamModelId||r.policy.model.revision!==null||r.policy.model.artifactHash!==(a.policy.candidate?.contentHash??null)||r.policy.model.tokenizerRevision!==null||r.policy.model.chatTemplateHash!==null||r.policy.configurationHash!==await h({policy:a.policy,snapshot:o}))throw new Error("Evaluation model differs from its admitted policy.");return n}s(di,"verifyModelTasksetRunDetails");var Xe=e.string().min(1).max(200).refine(t=>!["__proto__","prototype","constructor"].includes(t),"Use an ordinary field name."),Rt=e.array(Xe).min(1).max(20),Ke=e.enum(["input","output","expectedOutput","evaluatorContext"]),wt=e.object({destination:Ke,path:Rt,source:Ke,sourcePath:e.array(Xe).max(20)}).strict(),le=e.array(wt).max(100).superRefine((t,n)=>{for(let[i,a]of t.entries())t.slice(0,i).some(r=>r.destination===a.destination&&(Ye(r.path,a.path)||Ye(a.path,r.path)))&&n.addIssue({code:"custom",path:[i,"path"],message:"Mapped destination paths must not overlap."})});function Ye(t,n){return t.length<=n.length&&t.every((i,a)=>i===n[a])}s(Ye,"prefix");var I=e.string().trim().min(1).max(200),z=e.string().regex(/^[a-f0-9]{64}$/),ge=e.object({id:I,revision:e.number().int().positive(),contentHash:z}).strict(),he=e.object({id:I,version:e.string().min(1).max(200),contentHash:z,name:e.string().trim().min(1).max(500).optional(),feedbackKey:ve,release:ge.nullable(),mappings:le.optional()}).strict(),fe=e.object({id:I,version:e.string().min(1).max(200),contentHash:z,mappings:le}).strict(),Ri=e.object({operationId:I,id:I.optional(),expectedRevision:e.number().int().nonnegative(),request:M,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(fe).min(1).max(100).optional()}).strict().superRefine((t,n)=>{t.request.name||n.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before saving it."}),!!t.id!=t.expectedRevision>0&&n.addIssue({code:"custom",path:["expectedRevision"],message:"An update requires its saved definition revision."}),Math.round(t.maximumCostUsd*1e6)<1&&n.addIssue({code:"custom",path:["maximumCostUsd"],message:"The budget must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})}),_t=e.object({schemaVersion:e.literal("openpond.experimentDefinition.v1"),id:I,teamId:I,revision:e.number().int().positive(),request:M,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(he).min(1).max(100),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),wi=_t.extend({contentHash:z}),_i=e.object({operationId:I,definition:ge}).strict(),ki=e.object({projectId:I.optional(),datasetHash:z.optional(),search:e.string().trim().max(200).optional(),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]).optional(),afterId:I.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),vi=e.object({definition:ge.nullable(),configurationHash:z.optional(),admissionRequestHash:z.optional(),sourceExperimentId:I.optional(),maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(he).min(1).max(100)}).strict().superRefine((t,n)=>{t.definition===null&&(!t.configurationHash||!t.admissionRequestHash)&&n.addIssue({code:"custom",path:["configurationHash"],message:"A flat Experiment requires its sealed configuration hash."})}),Hi=e.object({operationId:I,profileRepositoryId:I,definitionId:I,modelId:I,localRuntime:j.shape.localRuntime,maxOutputTokens:j.shape.maxOutputTokens,temperature:j.shape.temperature,topP:j.shape.topP,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),maximumCostUsd:e.number().finite().positive().max(1e4),externalDatasetBinding:K.optional(),sourceCandidate:j.shape.sourceCandidate}).strict(),ji=e.object({request:M,manifest:Y,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(he).min(1).max(100)}).strict();var We=e.string().trim().min(1).max(200),be=e.object({operationId:We,request:M,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(fe).min(1).max(100).optional(),sourceExperimentId:We.optional()}).strict().superRefine((t,n)=>{t.request.name||n.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before starting it."}),t.operationId!==t.request.operationId&&n.addIssue({code:"custom",path:["request","operationId"],message:"Use one operation identity for this Experiment."}),Math.round(t.maximumCostUsd*1e6)<1&&n.addIssue({code:"custom",path:["maximumCostUsd"],message:"The spending cap must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})});var u=e.string().trim().min(1).max(200),v=e.string().regex(/^[a-f0-9]{64}$/),te=e.object({id:u,contentHash:v}).strict(),Bi=e.object({available:e.boolean(),reason:e.string().max(1e3).nullable(),origin:C.nullable()}).strict(),Ze=e.object({schemaVersion:e.literal("openpond.postTrainingAttachment.v1"),binding:e.object({kind:e.enum(["preparation","policy"]),id:u,revision:e.number().int().positive(),contentHash:v}).strict(),projectId:u.nullable(),automatic:e.boolean(),maximumSpendUsd:e.number().finite().positive().max(1e4),experiments:e.array(e.object({id:u,configuration:be}).strict()).min(1).max(20),acceptancePlan:Je.nullable()}).strict().superRefine((t,n)=>{if(new Set(t.experiments.map(i=>i.id)).size!==t.experiments.length&&n.addIssue({code:"custom",message:"Attach each evaluation once."}),t.experiments.reduce((i,a)=>i+a.configuration.maximumCostUsd,0)>t.maximumSpendUsd+1e-9&&n.addIssue({code:"custom",message:"Attached evaluation budgets exceed the total approved budget."}),t.experiments.some(i=>(i.configuration.request.project?.id??null)!==t.projectId)&&n.addIssue({code:"custom",message:"Attached experiments must use the training Project."}),t.acceptancePlan){let i=new Set(t.acceptancePlan.checks.map(r=>r.id));t.acceptancePlan.checks.some(r=>!t.experiments.some(o=>o.id===r.id))&&n.addIssue({code:"custom",message:"Select the frozen Experiment for each acceptance check."}),t.acceptancePlan.maximumSpendUsd+t.experiments.filter(r=>!i.has(r.id)).reduce((r,o)=>r+o.configuration.maximumCostUsd,0)>t.maximumSpendUsd+1e-9&&n.addIssue({code:"custom",message:"Paired acceptance and diagnostic ceilings exceed the approved evaluation budget."})}});var kt=e.object({baseline:te,checks:e.array(e.object({id:u,sourceRunId:u,sourceManifestHash:v,targetConfigurationHash:v,executionHash:v,populationHash:v,evaluator:te,feedbackKey:u,output:e.enum(["boolean","score"]),unit:e.string().min(1).max(80)}).strict()).min(1).max(100)}).strict(),vt=e.enum(["waiting_for_training","ready","preparing","queued","running","cleaning","completed","failed","blocked","cancelled","budget_exhausted"]),et=e.object({schemaVersion:e.literal("openpond.postTrainingSummary.v1"),id:u,teamId:u,jobId:u,revision:e.number().int().positive(),planHash:v,automatic:e.boolean(),candidate:te.nullable(),state:vt,total:e.number().int().positive(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),requiredOutcome:e.enum(["none","pending","passed","failed","blocked"]),reason:e.string().max(500).nullable(),groupId:u.nullable(),experimentIds:e.array(u).max(20),updatedAt:e.iso.datetime()}).strict().superRefine((t,n)=>{t.completed+t.failed>t.total&&n.addIssue({code:"custom",message:"Evaluation totals are inconsistent."}),["preparing","queued","running","cleaning","completed"].includes(t.state)&&!t.candidate&&n.addIssue({code:"custom",message:"Evaluation execution requires the exact trained candidate."})}),Ht=e.object({operationId:u,expectedRevision:e.number().int().positive(),planHash:v}).strict(),jt=e.object({operationId:u,attachment:Ze}).strict(),At=e.object({id:u,teamId:u,ownerUserId:u,attachment:Ze,qualification:kt.nullable(),contentHash:v,createdAt:e.iso.datetime()}).strict();function Et(t){let n=At.parse(t);if(n.contentHash!==R({attachment:n.attachment,qualification:n.qualification}))throw new Error("The retained evaluation attachment or qualification changed.");return n}s(Et,"verifyPostTrainingPlan");function tt(t){let{request:n}=t,i=s(r=>`/v1/training/jobs/${encodeURIComponent(u.parse(r))}/post-training`,"path");async function a(r,o,m){if(r===null)return null;let c=et.parse(r);if(c.teamId!==o||c.jobId!==m)throw new d("post_training_scope_mismatch","The evaluation summary belongs to another run or workspace.");return c}return s(a,"read"),{async attach(r,o){let m=jt.parse(o),c=Et(await n("/v1/training/post-training-plans",{method:"POST",body:JSON.stringify(m)}));if(c.teamId!==r||await h(c.attachment)!==await h(m.attachment))throw new d("post_training_plan_mismatch","The retained attachment differs from the reviewed plan.");return c},async get(r,o){return a(await n(i(o)),r,o)},async control(r,o,m,c){let P=Ht.parse(c),f=await a(await n(`${i(o)}/${m}`,{method:"POST",body:JSON.stringify(P)}),r,o);if(!f||f.planHash!==P.planHash)throw new d("post_training_control_mismatch","Evaluation control did not retain the approved plan.");return f}}}s(tt,"createPostTrainingClient");var Li=e.object({teamId:u,actorId:u,projectId:u.nullable(),configuration:ce,batches:e.array(ze).max(1e4),sources:e.array(Me).max(1e4),definitions:e.array(qe).max(1e4),experiments:e.array(e.object({id:u,name:e.string().max(500),configuration:be,graders:e.array(e.object({feedbackKey:u,name:e.string().max(500),ref:te}).strict()).max(100)}).strict()).max(1e4)}).strict(),Qi=e.enum(["prepare","start","cancel","publish","attach"]),Fi=e.object({teamId:u,actorId:u,configuration:ce,policy:Oe,inspection:De,iterations:e.array(e.object({iteration:Ue,evals:et.nullable()}).strict()).max(100),nextCursor:u.nullable()}).strict(),Ki=e.object({id:u,expectedRevision:e.number().int().positive(),policyHash:v,operationId:u,action:e.enum(["pause","resume","reserve","cancel-iteration","retry-iteration"]),iterationId:u.optional(),iterationRevision:e.number().int().positive().optional()}).strict();var H=e.string().trim().min(1).max(240),nt=p.extend({revision:e.number().int().positive()}).strict(),Ct=nt.extend({teamId:H,jobId:H,plan:p,baseline:p,candidate:p,state:$e.shape.state,updatedAt:e.string().datetime()}).strict(),qt=e.object({schemaVersion:e.literal("openpond.trainingAcceptanceGroupPage.v1"),teamId:H,jobId:H,groups:e.array(Ct).max(100),nextCursor:H.nullable()}).strict(),Mt=e.object({cursor:H.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict();function it(t){let n=s(i=>(H.parse(i.teamId),`/v1/training/jobs/${encodeURIComponent(H.parse(i.jobId))}/acceptance-groups`),"route");return{async acceptanceGroups(i,a={}){let r=Mt.parse(a),o=new URLSearchParams({limit:String(r.limit)});r.cursor&&o.set("cursor",r.cursor);let m=qt.parse(await t(`${n(i)}?${o}`));if(m.teamId!==i.teamId||m.jobId!==i.jobId||m.groups.length>r.limit||m.groups.some(c=>c.teamId!==i.teamId||c.jobId!==i.jobId||r.cursor&&c.id<=r.cursor)||new Set(m.groups.map(c=>c.id)).size!==m.groups.length||m.nextCursor!==null&&m.nextCursor!==m.groups.at(-1)?.id)throw new d("acceptance_group_scope_mismatch","Acceptance groups do not match the requested workspace, job or cursor.");return m},async acceptanceGroup(i,a,r){let o=r?nt.parse({id:r.id,revision:r.revision,contentHash:r.contentHash}):null;if(o&&o.id!==a)throw new d("acceptance_group_identity_mismatch","The retained group reference differs from the requested group.");let m=o?`?revision=${o.revision}`:"",c=Ge(await t(`${n(i)}/${encodeURIComponent(H.parse(a))}${m}`));if(c.manifest.teamId!==i.teamId||c.manifest.trainingJob.id!==i.jobId||c.manifest.id!==a||o&&(c.revision!==o.revision||c.contentHash!==o.contentHash))throw new d("acceptance_group_identity_mismatch","Acceptance evidence does not match the requested workspace, job or retained revision.");return c}}}s(it,"createTrainingAcceptanceClient");var zt=e.object({schemaVersion:e.literal("openpond.trainingHarnessSourcePublication.v1"),harnessRelease:ae,sourcePackageHash:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().positive().max(67108864)}).strict();function rt(t){let n=s(i=>{let a=ae.parse(i);return`/v1/training/harness-sources/${encodeURIComponent(a.id)}/${a.contentHash}`},"route");return{async publishHarnessSource(i){w(i,67108864,"Training Harness source");let a=at(i),r=a.agentSnapshot.portability;if(!r.portable||r.blockers.length||r.localOnlyAssetRefs.length||r.hostPrivateAssetRefs.length||a.schemaVersion==="openpond.harnessSourcePackage.v1"&&a.harnessRelease.files.some(m=>m.visibility!=="policy"))throw new Error("Hosted training Harness publication requires portable, policy-visible source.");let o=zt.parse(await t(n({id:a.harnessRelease.id,contentHash:a.harnessRelease.contentHash}),{method:"PUT",body:JSON.stringify(a)}));if(o.harnessRelease.id!==a.harnessRelease.id||o.harnessRelease.contentHash!==a.harnessRelease.contentHash||o.sourcePackageHash!==a.contentHash)throw new Error("Published Harness source differs from the selected immutable package.");return o},async getHarnessSource(i){let a=await t(n(i),void 0,67108864);return w(a,67108864,"Training Harness source"),at(a,i)}}}s(rt,"createTrainingHarnessSourceClient");function at(t,n){return typeof t=="object"&&t!==null&&Reflect.get(t,"schemaVersion")==="openpond.harnessPolicySourcePackage.v1"?Re(t,n):we(t,n)}s(at,"validateSource");var A=e.string().trim().min(1).max(500),Ot=e.string().regex(/^[a-f0-9]{64}$/),xe=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecisionRequest.v1"),teamId:A,jobId:A,artifact:p,evaluation:p,executionReceipt:p,decision:e.enum(["accepted","rejected"]),reason:e.string().trim().min(1).max(5e3),idempotencyKey:A,expectedDecision:p.nullable()}).strict(),Ut=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecision.v1"),id:A,request:xe,revision:e.number().int().positive(),actor:e.object({userId:A,kind:e.enum(["user","api_key","agent_delegate"]),id:A}).strict(),decidedAt:e.string().datetime({offset:!0}),contentHash:Ot}).strict().superRefine((t,n)=>{t.revision===1!=(t.request.expectedDecision===null)&&n.addIssue({code:"custom",path:["revision"],message:"A first decision has no predecessor; later decisions must reference the prior decision."}),t.request.expectedDecision?.id===t.id&&n.addIssue({code:"custom",path:["request","expectedDecision"],message:"A decision cannot supersede itself."})});async function Dt(t){let{contentHash:n,...i}=t;return h(i)}s(Dt,"trainingCandidateDecisionHash");async function ot(t,n){w(t,32768,"Training candidate decision");let i=Ut.parse(t);if(i.contentHash!==await Dt(i))throw new d("content_hash_mismatch","Training candidate decision content hash does not match.");if(i.request.teamId!==n.teamId||i.request.jobId!==n.jobId||i.request.artifact.id!==n.artifact.id||i.request.artifact.contentHash!==n.artifact.contentHash)throw new d("candidate_decision_identity_mismatch","Training candidate decision belongs to a different team, Job or artifact.");if(n.request&&await h(i.request)!==await h(xe.parse(n.request)))throw new d("candidate_decision_request_mismatch","Training candidate decision does not match the submitted review.");return i}s(ot,"parseAndVerifyTrainingCandidateDecision");function st(t){function n(i){return`/v1/training/jobs/${encodeURIComponent(A.parse(i.jobId))}/candidates/${encodeURIComponent(p.parse(i.artifact).id)}/decision`}return s(n,"route"),{async candidateDecision(i,a={}){A.parse(i.teamId);let r=a.decision?p.parse(a.decision):void 0,o=r?`?decisionId=${encodeURIComponent(r.id)}`:"",m=e.object({decision:e.unknown().nullable()}).strict().parse(await t(`${n(i)}${o}`));if(m.decision===null&&!r)return null;let c=await ot(m.decision,i);if(r&&(c.id!==r.id||c.contentHash!==r.contentHash))throw new d("candidate_decision_identity_mismatch","Training candidate decision does not match the requested history entry.");return c},async recordCandidateDecision(i){let a=xe.parse(i),r=await t(n(a),{method:"POST",body:JSON.stringify(a)});return ot(r,{...a,request:a})}}}s(st,"createTrainingCandidateDecisionClient");var G=e.string().trim().min(1).max(500),N=e.string().regex(/^[a-f0-9]{64}$/),Jt=e.object({taskId:G,taskSha256:N,resultSha256:N,input:e.object({instruction:e.string().max(1e6),context:e.record(e.string(),e.unknown())}).strict(),output:e.string().max(1e6),outputSha256:N,score:e.number().finite().min(0).max(1),evidence:e.object({kind:e.enum(["worker_command","hosted_trace","local_trace"]),id:G}).strict()}).strict(),$t=e.object({schemaVersion:e.literal("openpond.trainingEvaluationTaskPage.v1"),jobId:G,teamId:G,evaluation:p,kind:e.enum(["baseline","candidate"]),policyVersion:e.number().int().nonnegative(),taskset:T,panelSha256:N,offset:e.number().int().nonnegative(),total:e.number().int().min(1).max(1e4),tasks:e.array(Jt).min(1).max(100),nextCursor:e.string().regex(/^[1-9]\d*$/).nullable(),contentHash:N}).strict().superRefine((t,n)=>{let i=t.offset+t.tasks.length,a=i<t.total?String(i):null;(i>t.total||t.nextCursor!==a)&&n.addIssue({code:"custom",path:["nextCursor"],message:"Evaluation pagination must cover consecutive task positions."}),new Set(t.tasks.map(r=>r.taskId)).size!==t.tasks.length&&n.addIssue({code:"custom",path:["tasks"],message:"Evaluation task identities must be unique."})});async function Gt(t){let{contentHash:n,...i}=t;return h(i)}s(Gt,"trainingEvaluationTaskPageHash");async function ct(t,n){w(t,8388608,"Training evaluation task page");let i=$t.parse(t),a=p.parse(n.evaluation);if(i.jobId!==G.parse(n.jobId)||i.evaluation.id!==a.id||i.evaluation.contentHash!==a.contentHash||i.offset!==(n.offset??0)||n.teamId!==void 0&&i.teamId!==G.parse(n.teamId))throw new d("evaluation_page_identity_mismatch","Evaluation results differ from the requested Job, evaluation, or page.");if(await Gt(i)!==i.contentHash)throw new d("evaluation_page_hash_mismatch","Evaluation task page content hash did not match.");for(let r of i.tasks)if(await h(r.output)!==r.outputSha256)throw new d("evaluation_output_hash_mismatch","A retained evaluation output hash did not match.");return i}s(ct,"parseAndVerifyTrainingEvaluationTaskPage");var g=e.string().trim().min(1).max(500),b=e.string().regex(/^[a-f0-9]{64}$/),k=e.string().datetime({offset:!0}),Nt=e.object({schemaVersion:e.literal("openpond.trainingInputArtifactUpload.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),idempotencyKey:e.string().trim().min(1).max(500),sourceManifest:p,payload:e.unknown(),contentHash:b}).strict(),Vt=e.object({schemaVersion:e.literal("openpond.trainingInputArtifact.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),sourceManifest:p,artifactRef:e.string().trim().min(1).max(2e3),contentHash:b,sizeBytes:e.number().int().positive(),createdAt:k}).strict();async function Bt(t){let{contentHash:n,...i}=t;return h(i)}s(Bt,"trainingInputArtifactUploadHash");async function Lt(t){w(t,67108864,"Training input artifact");let n=Nt.parse(t),i=await Bt(n);if(n.contentHash!==i)throw new d("content_hash_mismatch",`Training input artifact contentHash ${n.contentHash} does not match ${i}.`);return n}s(Lt,"parseAndVerifyTrainingInputArtifactUpload");var bt=e.enum(["reward_model_train","policy_optimize"]),Qt=e.enum(["queued","admitting","provisioning","running","stopping","cancelling","succeeded","failed","cancelled"]),Ft=e.object({id:g,version:e.string().trim().min(1).max(200).nullable().default(null),required:e.boolean().default(!0)}).strict(),Ie=e.object({origin:C.optional(),modelProject:e.object({id:g,portableProjectId:g,revision:e.number().int().positive(),contentHash:b}).strict(),harnessRunManifest:p,harnessRelease:p,taskset:T,tasksetRelease:p,evaluation:e.object({taskset:T,dataset:p}).strict().nullable().optional(),dataset:p,evidenceSets:e.array(p).max(1e4)}).strict(),Kt=e.object({kind:e.literal("reward_model_train"),baseModel:W,preferenceDatasetRelease:p,processorRelease:p,recipe:e.object({schemaVersion:e.literal("openpond.rewardModelRecipe.v1"),method:e.literal("reward_model"),parameterization:e.literal("lora_with_scalar_head")}).catchall(e.unknown())}).strict(),Yt=e.object({kind:e.literal("deterministic"),grader:p,composer:p.nullable().default(null)}).strict(),Xt=e.object({kind:e.literal("learned_reward"),rewardModelVersion:p,qualificationReport:p.nullable().default(null),evaluationReferences:e.array(p).max(1e3).default([]),scorerArtifact:e.object({artifactRef:e.string().trim().min(1).max(2e3),contentHash:b,executionReceipt:p}).strict(),processorRelease:p,rewardComposerRelease:p}).strict(),xt=W.extend({revision:e.string().regex(/^[a-f0-9]{40,64}$/),tokenizerRevision:e.string().regex(/^[a-f0-9]{40,64}$/),chatTemplateHash:b}).strict(),Wt=e.object({kind:e.literal("policy_optimize"),executionMode:e.literal("qualification").optional(),baseModel:W,recipe:Ne,rewardSource:e.discriminatedUnion("kind",[Yt,Xt]),resumeFrom:p.nullable().default(null)}).strict(),Zt=e.discriminatedUnion("kind",[Kt,Wt]),en=e.object({approvalHash:b,approvedAt:k,exportApproved:e.boolean(),maximumSpendUsd:e.number().nonnegative(),retentionDays:e.number().int().nonnegative().nullable(),region:e.string().trim().min(1).max(200).nullable().default(null)}).strict(),tn=e.object({schemaVersion:e.literal("openpond.trainingJobSubmission.v2"),idempotencyKey:e.string().trim().min(1).max(500),name:e.string().trim().min(1).max(200),source:Ie,job:Zt,requestedCapabilities:e.array(Ft).max(1e3),placementObjective:e.enum(["fast","balanced","economical"]),budget:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive()}).strict(),approval:en,contentHash:b}).strict().superRefine((t,n)=>{if(t.job.kind==="policy_optimize"&&t.job.executionMode==="qualification"){let i=t.job;xt.safeParse(i.baseModel).success||n.addIssue({code:"custom",path:["job","baseModel"],message:"Qualification requires immutable model and tokenizer revisions and a SHA-256 chat-template pin."}),(i.resumeFrom||i.recipe.continuation!==void 0||i.rewardSource.kind!=="deterministic"||i.recipe.method!=="grpo")&&n.addIssue({code:"custom",path:["job"],message:"Qualification requires the original GRPO learner, deterministic reward, and no resume or continuation."}),t.requestedCapabilities.some(a=>a.required&&a.id==="managed_rl.policy.qualification"&&a.version==="1")||n.addIssue({code:"custom",path:["requestedCapabilities"],message:"Qualification must require managed_rl.policy.qualification@1."})}t.approval.maximumSpendUsd!==t.budget.maximumSpendUsd&&n.addIssue({code:"custom",path:["approval","maximumSpendUsd"],message:"Approved spend must equal the immutable Job budget."})});async function nn(t){let{contentHash:n,...i}=t;return h(i)}s(nn,"trainingJobSubmissionHash");async function an(t){w(t,1048576,"Training Job submission");let n=tn.parse(t),i=await nn(n);if(n.contentHash!==i)throw new d("content_hash_mismatch",`Training Job contentHash ${n.contentHash} does not match ${i}.`);return n}s(an,"parseAndVerifyTrainingJobSubmission");var V=e.object({schemaVersion:e.literal("openpond.trainingJob.v2"),id:g,teamId:g,kind:bt,executionMode:e.literal("qualification").optional(),modelProjectId:g,portableProjectId:g,sourceProjectRevision:e.number().int().positive(),submissionHash:b,state:Qt,phase:e.string().trim().min(1).max(200),version:e.number().int().nonnegative(),progress:e.number().min(0).max(1),rolloutProgress:e.object({groupsCompleted:e.number().int().nonnegative(),groupsTarget:e.number().int().nonnegative(),optimizerUpdatesApplied:e.number().int().nonnegative(),optimizerUpdatesSkipped:e.number().int().nonnegative()}).strict(),accruedSpendUsd:e.number().nonnegative(),terminalReason:e.string().trim().min(1).max(5e3).nullable(),createdAt:k,updatedAt:k,completedAt:k.nullable()}).strict(),rn=e.object({schemaVersion:e.literal("openpond.trainingJobPage.v2"),jobs:e.array(V).max(1e3),nextCursor:e.string().trim().min(1).max(2e3).nullable()}).strict(),on=e.object({schemaVersion:e.literal("openpond.trainingJobEvent.v2"),id:g,jobId:g,sequence:e.number().int().nonnegative(),type:g,phase:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3).nullable(),data:e.record(e.string(),e.unknown()).default({}),createdAt:k}).strict(),sn=e.object({schemaVersion:e.literal("openpond.trainingJobLog.v2"),jobId:g,sequence:e.number().int().nonnegative(),level:e.enum(["debug","info","warning","error"]),message:e.string().max(2e4),createdAt:k}).strict(),mt=e.object({expectedVersion:e.number().int().nonnegative()}).strict(),cn=e.object({schemaVersion:e.literal("openpond.trainingJobOutput.v2"),id:g,jobId:g,kind:e.enum(["checkpoint","adapter","scorer","metrics","evaluation","trace","receipt"]),artifactRef:e.string().trim().min(1).max(2e3),contentHash:b,sizeBytes:e.number().int().nonnegative(),metadata:e.record(e.string(),e.unknown()).default({}),createdAt:k}).strict(),yt=e.object({schemaVersion:e.literal("openpond.trainingQualificationEvidence.v1"),baseModel:xt,group:p,rolloutReceipts:e.array(p).min(1).max(1e3),rewardEvidenceHash:b,groupsCompleted:e.literal(1),optimizerUpdatesApplied:e.literal(0),optimizerUpdatesSkipped:e.literal(0),trainingStepsCreated:e.literal(0),checkpointsCreated:e.literal(0),artifactsCreated:e.literal(0)}).strict().superRefine((t,n)=>{new Set(t.rolloutReceipts.map(i=>i.id)).size!==t.rolloutReceipts.length&&n.addIssue({code:"custom",path:["rolloutReceipts"],message:"Qualification rollout receipt identities must be unique."})}),mn=e.object({schemaVersion:e.literal("openpond.trainingExecutionReceipt.v2"),id:g,teamId:g,jobId:g,submissionHash:b,manifestHash:b,recipeHash:b,capabilityHash:b,runtimeRelease:p,inputs:e.array(p).max(1e4),outputs:e.array(p).max(1e4),spendUsd:e.number().nonnegative(),durationSeconds:e.number().nonnegative(),cleanupComplete:e.boolean(),qualification:yt.optional(),issuer:g,issuedAt:k,signature:e.string().trim().min(1).max(1e4).nullable()}).strict();async function Ea(t,n){let i=yt.parse(t.qualification);if(t.submissionHash!==n.submissionHash||!t.cleanupComplete)throw new d("qualification_receipt_mismatch","Qualification must attest the expected submission and complete cleanup.");if(n.baseModel&&await h(i.baseModel)!==await h(n.baseModel))throw new d("qualification_learner_mismatch","Qualification used a different original learner or tokenizer.");if(n.outputs?.some(a=>["checkpoint","adapter","scorer"].includes(a.kind)))throw new d("qualification_updated_artifact","Qualification must not publish trained artifacts or checkpoints.")}s(Ea,"assertTrainingQualificationReceipt");var pn=e.object({schemaVersion:e.literal("openpond.trainingJobOutputs.v2"),outputs:e.array(cn).max(1e4),receipt:mn.nullable()}).strict(),dn=e.object({schemaVersion:e.literal("openpond.trainingApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),ie=class extends Error{static{s(this,"OpenPondTrainingApiError")}status;code;retryable;requestId;details;constructor(n,i){super(i.message),this.name="OpenPondTrainingApiError",this.status=n,this.code=i.code,this.retryable=i.retryable,this.requestId=i.requestId,this.details=i.details}},un=e.object({schemaVersion:e.literal("openpond.trainingCapabilities.v2"),capabilityHash:b,jobKinds:e.array(bt),methods:e.array(e.string().trim().min(1).max(200)),executionModes:e.array(e.enum(["training","qualification"])).optional(),structuredOutputs:e.object({capability:e.literal("work.structured-output.v1"),harnessRuntimeHash:b,workHarnessHash:b,schemaHash:b,artifactHash:b,invalidDataRejected:e.literal(!0),invalidBytesRejected:e.literal(!0)}).strict().optional(),placements:e.array(e.enum(["local","remote","colocated","provider_native"])),controls:e.object({cancel:e.boolean(),stopAfterGroup:e.boolean(),resumeFromCheckpoint:e.boolean()}).strict(),limits:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive(),maximumArtifactBytes:e.number().int().positive()}).strict(),checkedAt:k,expiresAt:k}).strict();function pt(t){let n={};return new Headers(t).forEach((i,a)=>{n[a]=i}),n}s(pt,"headersRecord");function Ca(t){let n=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function a(r,o,m=8388608){let P=o?.method===void 0||o.method.toUpperCase()==="GET"?3:1;for(let f=1;f<=P;f+=1){let x;try{let U=typeof t.headers=="function"?await t.headers():t.headers??{};x=await n(`${i}${r}`,{...o,headers:{accept:X,...o?.body?{"content-type":X}:{},...pt(U),...pt(o?.headers)}})}catch(U){if(f===P||o?.signal?.aborted||!dt(null,U))throw U;await new Promise(St=>setTimeout(St,250*2**(f-1)));continue}let L=se(await x.text(),m,"Training API response");if(x.ok)return L;let Q=ln(L,x.status);if(f===P||!dt(x.status,Q))throw Q;await new Promise(U=>setTimeout(U,250*2**(f-1)))}throw new d("training_read_retry_exhausted","Training read retry loop exhausted without a response.")}return s(a,"request"),{postTraining:tt({request:a}),...ft(a),...it(a),...rt(a),...st(a),async capabilities(){return un.parse(E(await a("/v1/training/capabilities"),"capabilities"))},async stageArtifact(r){let o=await Lt(r);return Vt.parse(E(await a("/v1/training/artifacts",{method:"POST",body:JSON.stringify(o)}),"artifact"))},async createJob(r){let o=await an(r);return V.parse(E(await a("/v1/training/jobs",{method:"POST",body:JSON.stringify(o)}),"job"))},async listJobs(r={}){let o=new URLSearchParams;r.modelProjectId&&o.set("modelProjectId",g.parse(r.modelProjectId)),r.cursor&&o.set("cursor",e.string().trim().min(1).max(2e3).parse(r.cursor)),r.limit!==void 0&&o.set("limit",String(e.number().int().min(1).max(1e3).parse(r.limit)));let m=o.size>0?`?${o.toString()}`:"";return rn.parse(await a(`/v1/training/jobs${m}`))},async getJob(r){return V.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(g.parse(r))}`),"job"))},async cancelJob(r,o){let m=mt.parse({expectedVersion:o});return V.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(g.parse(r))}/cancel`,{method:"POST",body:JSON.stringify(m)}),"job"))},async stopAfterGroup(r,o){let m=mt.parse({expectedVersion:o});return V.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(g.parse(r))}/stop-after-group`,{method:"POST",body:JSON.stringify(m)}),"job"))},async events(r){return e.array(on).parse(E(await a(`/v1/training/jobs/${encodeURIComponent(g.parse(r))}/events`),"events"))},async outputs(r){return pn.parse(await a(`/v1/training/jobs/${encodeURIComponent(g.parse(r))}/outputs`))},async evaluationTasks(r,o,m={}){let c=g.parse(r),P=p.parse(o),f=new URLSearchParams,x=m.cursor===void 0?void 0:e.string().regex(/^[1-9]\d*$/).parse(m.cursor),L=x===void 0?0:e.number().int().min(1).max(9999).parse(Number(x));x!==void 0&&f.set("cursor",x),m.limit!==void 0&&f.set("limit",String(e.number().int().min(1).max(100).parse(m.limit)));let Q=f.size?`?${f.toString()}`:"";return ct(await a(`/v1/training/jobs/${encodeURIComponent(c)}/evaluations/${encodeURIComponent(P.id)}/tasks${Q}`),{jobId:c,evaluation:P,offset:L})},async logs(r){return e.array(sn).max(1e5).parse(E(await a(`/v1/training/jobs/${encodeURIComponent(g.parse(r))}/logs`),"logs"))}}}s(Ca,"createTrainingClient");function dt(t,n){return t!==null?t===408||t===429||t>=500:n instanceof ie?n.retryable:n instanceof d?n.code==="invalid_error_response":n instanceof TypeError}s(dt,"trainingReadFailureIsRetryable");function E(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}s(E,"unwrapObject");function ln(t,n){let i=dn.safeParse(t);return i.success?new ie(n,i.data):new d("invalid_error_response",`Training request failed with HTTP ${n} and an invalid error envelope.`)}s(ln,"trainingApiError");var S=e.string().trim().min(1).max(191),B=e.string().regex(/^[a-f0-9]{64}$/),ye=e.object({schemaVersion:e.literal("openpond.trainingPreparationRequest.v1"),teamId:S,operationId:S,projectId:S.nullable(),configuration:e.object({id:S,expectedRevision:e.number().int().positive(),expectedEtag:B}).strict(),origin:C.optional(),batch:T,name:e.string().trim().min(1).max(191),maximumSpendUsd:e.number().finite().positive().max(1e6)}).strict(),lt=e.object({schemaVersion:e.literal("openpond.trainingPreparationPlan.v1"),id:S,creatorUserId:S,request:ye,requestHash:B,source:e.lazy(()=>Ie),submissionHash:B,createdAt:e.string().datetime({offset:!0})}).strict(),gt=lt.extend({contentHash:B}).strict(),Se=e.object({schemaVersion:e.literal("openpond.trainingPreparationReceipt.v1"),plan:gt,revision:e.number().int().positive(),state:e.enum(["prepared","submitted","cancelled"]),jobId:S.nullable()}).strict().superRefine((t,n)=>{t.state==="submitted"!=!!t.jobId&&n.addIssue({code:"custom",path:["jobId"],message:"Only submitted preparations identify a job."})}),Te=e.object({teamId:S,planHash:B,expectedRevision:e.number().int().positive()}).strict(),gn=e.object({projectId:S.optional(),state:e.enum(["prepared","submitted","cancelled"]).optional(),afterId:S.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),hn=e.object({schemaVersion:e.literal("openpond.trainingPreparationPage.v1"),teamId:S,items:e.array(Se).max(100),nextCursor:S.nullable()}).strict();async function ht(t){let n=Se.parse(t),{contentHash:i,...a}=n.plan;if(await h(a)!==i||await h(a.request)!==a.requestHash||a.source.modelProject.id!==a.request.configuration.id||await h(a.source.origin??null)!==await h(a.request.origin??null))throw new d("training_preparation_mismatch","The prepared training inputs changed.");return n}s(ht,"parseAndVerifyTrainingPreparationReceipt");function ft(t){async function n(i,a,r){let o=await ht(i);if(o.plan.request.teamId!==a||r&&o.plan.id!==r)throw new d("training_preparation_scope_mismatch","The training preparation belongs to a different workspace or request.");return o}return s(n,"read"),{async listPreparations(i,a={}){let r=S.parse(i),o=gn.parse(a),m=new URLSearchParams;for(let[f,x]of Object.entries(o))m.set(f,String(x));let c=hn.parse(await t(`/v1/training/preparations?${m}`));if(c.teamId!==r||c.items.length>o.limit||new Set(c.items.map(f=>f.plan.id)).size!==c.items.length||c.nextCursor!==null&&(c.nextCursor!==c.items.at(-1)?.plan.id||c.nextCursor===o.afterId))throw new d("training_preparation_page_mismatch","The preparation page does not match its workspace or cursor.");let P=await Promise.all(c.items.map(async f=>{let x=await n(f,r);if(o.projectId&&x.plan.request.projectId!==o.projectId||o.state&&x.state!==o.state)throw new d("training_preparation_page_mismatch","A preparation does not match the requested Project or state.");return x}));return{...c,items:P}},async prepareRun(i){let a=ye.parse(i),r=await n(await t("/v1/training/preparations",{method:"POST",body:JSON.stringify(a)}),a.teamId);if(r.plan.requestHash!==await h(a))throw new d("training_preparation_request_mismatch","The preparation does not match the requested run.");return r},async getPreparation(i,a){return n(await t(`/v1/training/preparations/${encodeURIComponent(S.parse(a))}`),S.parse(i),a)},async startPreparation(i,a){let r=Te.parse(a),o=await n(await t(`/v1/training/preparations/${encodeURIComponent(S.parse(i))}/start`,{method:"POST",body:JSON.stringify(r)}),r.teamId,i);if(o.plan.contentHash!==r.planHash||o.state!=="submitted")throw new d("training_preparation_start_mismatch","The submitted run does not match the approved preparation.");return o},async cancelPreparation(i,a){let r=Te.parse(a),o=await n(await t(`/v1/training/preparations/${encodeURIComponent(S.parse(i))}/cancel`,{method:"POST",body:JSON.stringify(r)}),r.teamId,i);if(o.plan.contentHash!==r.planHash||o.state!=="cancelled")throw new d("training_preparation_cancel_mismatch","The preparation cancellation could not be verified.");return o}}}s(ft,"createTrainingPreparationClient");export{M as a,Fe as b,Pt as c,di as d,le as e,he as f,ki as g,vi as h,Hi as i,ji as j,be as k,ye as l,ht as m,an as n,Ea as o,ie as p,Ca as q};
@@ -1,22 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{d as n,f as l}from"./chunk-OE22TAXP.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";var u=e.enum(["active","preview","planned","deprecated"]),y=e.enum(["openpond-account","openpond-managed","codex-login","native-agent-login","chatgpt-subscription","local-byok","hosted-byok","custom"]),D=e.enum(["none","local_secret","env","openpond_account","codex_login","native_agent_login","chatgpt_subscription","hosted"]),v=e.object({connected:e.boolean().default(!1),source:D.default("none"),redacted:e.string().nullable().default(null),lastValidatedAt:e.string().nullable().default(null),lastError:e.string().nullable().default(null)}),m=e.object({hostedOpChat:e.boolean().default(!1),localRuntime:e.boolean().default(!0),localByok:e.boolean().default(!1),hostedByok:e.boolean().default(!1)}),L=e.enum(["hosted","provider","manual","none"]),p=e.object({chatCompletions:e.boolean().default(!0),streaming:e.boolean().default(!0),modelDiscovery:L.default("none"),toolCalling:e.boolean().default(!1),reasoning:e.boolean().default(!1),imageInput:e.boolean().default(!1),structuredOutput:e.boolean().default(!1)}),O=e.enum(["hosted","provider","curated","manual","cache"]),f=e.object({streaming:e.boolean().default(!0),toolCalling:e.boolean().default(!1),reasoning:e.boolean().default(!1),reasoningEfforts:e.array(e.enum(["off","low","medium","high","xhigh","max"])).default([]),vision:e.boolean().default(!1),structuredOutput:e.boolean().default(!1)}),N=e.object({id:e.string().trim().min(1).max(300),providerId:n,displayName:e.string().trim().min(1).max(300),contextWindow:e.number().int().positive().nullable().default(null),outputLimit:e.number().int().positive().nullable().default(null),lifecycleStatus:u.default("active"),source:O,capabilities:f.default(()=>f.parse({})),raw:e.record(e.string(),e.unknown()).optional()}),U=e.object({providerId:n,models:e.array(N).default([]),fetchedAt:e.string().nullable().default(null),lastError:e.string().nullable().default(null),source:e.enum(["none","hosted","provider","curated","manual"]).default("none")}),P=e.object({displayName:e.string().trim().min(1).max(160),command:e.string().trim().min(1).max(4096),args:e.array(e.string().max(4096)).max(100).default([]),env:e.record(e.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/),e.string().max(2e4)).default({}),registryId:e.string().max(160).nullable().default(null),version:e.string().max(200).nullable().default(null),installUrl:e.string().url().nullable().default(null),authMethodId:e.string().max(200).nullable().default(null)}),z=e.object({acp:P.nullable().default(null),nativeMode:e.string().max(200).nullable().default(null),nativeOptions:e.record(e.string().max(200),e.string().max(300)).default({}),binaryPath:e.string().trim().min(1).max(4096).nullable().default(null),sourceHome:e.string().trim().min(1).max(4096).nullable().default(null),enabled:e.boolean().default(!1),baseUrl:e.string().trim().min(1).max(2048).nullable().default(null),defaultModel:e.string().trim().min(1).max(300).nullable().default(null),modelOverrides:e.array(e.string().trim().min(1).max(300)).max(500).default([]),updatedAt:e.string().nullable().default(null)}),F=e.object({acp:P.nullable().optional(),nativeMode:e.string().max(200).nullable().optional(),nativeOptions:e.record(e.string().max(200),e.string().max(300)).optional(),binaryPath:e.string().trim().min(1).max(4096).nullable().optional(),sourceHome:e.string().trim().min(1).max(4096).nullable().optional(),enabled:e.boolean().optional(),baseUrl:e.string().trim().min(1).max(2048).nullable().optional(),defaultModel:e.string().trim().min(1).max(300).nullable().optional(),modelOverrides:e.array(e.string().trim().min(1).max(300)).max(500).optional()}),W=e.object({id:e.string().trim().min(1).max(300),displayName:e.string().trim().min(1).max(300),contextWindow:e.number().int().positive().nullable().optional(),outputLimit:e.number().int().positive().nullable().optional(),lifecycleStatus:u.optional(),capabilities:f.partial().optional()}),B=e.object({id:n,displayName:e.string().trim().min(1).max(160),lifecycleStatus:u.default("active"),credentialModes:e.array(y).default([]),routing:m,capabilities:p,defaultEnabled:e.boolean().optional(),defaultBaseUrl:e.string().trim().min(1).max(2048).nullable().optional(),defaultModel:e.string().trim().min(1).max(300).nullable().optional(),modelCacheSource:e.enum(["none","hosted","provider","curated","manual"]),models:e.array(W).default([])}),ke=e.object({version:e.literal(1).default(1),generatedAt:e.string().datetime(),providers:e.array(B)}),q=e.object({id:n,displayName:e.string().trim().min(1).max(160),lifecycleStatus:u.default("active"),credentialModes:e.array(y).default([]),routing:m.default(()=>m.parse({})),capabilities:p.default(()=>p.parse({})),credential:v.default(()=>v.parse({})),enabled:e.boolean().default(!1),available:e.boolean().default(!1),defaultModel:e.string().trim().min(1).max(300).nullable().default(null),modelIds:e.array(e.string().trim().min(1).max(300)).max(1e3).default([]),lastError:e.string().nullable().default(null)}),V=e.object({version:e.literal(1).default(1),providers:e.record(e.string(),z).default({}),statuses:e.record(e.string(),q).default({}),modelCaches:e.record(e.string(),U).default({}),updatedAt:e.string().nullable().default(null)}),Ee=e.object({providers:e.record(e.string(),F).optional()}),Me=e.object({source:e.enum(["local_secret","env"]).default("local_secret"),value:e.string().min(1).max(2e4).optional(),envVar:e.string().trim().min(1).max(160).optional()}).superRefine((t,r)=>{t.source==="env"&&!t.envVar&&r.addIssue({code:"custom",path:["envVar"],message:"envVar is required when provider credential source is env."}),t.source==="local_secret"&&!t.value&&r.addIssue({code:"custom",path:["value"],message:"value is required when provider credential source is local_secret."})}),je=e.object({source:e.enum(["local_secret","env","chatgpt_subscription"]).optional()}),we=e.object({modelId:e.string().trim().min(1).max(300).optional(),baseUrl:e.string().trim().min(1).max(2048).optional()}),Te=e.object({query:e.string().trim().max(200).optional(),refresh:e.boolean().default(!1),limit:e.number().int().positive().max(500).default(100)}),De=e.object({query:e.string().trim().max(200).optional(),force:e.boolean().default(!1)});var H=["coding","research","review","test","docs","planner","summarizer"],ze=e.enum(H),g=e.string().trim().min(1).max(80).regex(/^[a-z][a-z0-9_-]*$/),_=e.enum(["none","worktree","copy_on_write"]),R=e.enum(["read_only","workspace_write","full_tools"]),A=e.enum(["disabled","parent_scoped"]),G=e.enum(["manual","balanced","proactive"]),Y=e.enum(["queued","running","completed","failed","cancelled","needs_resume"]),Z=["subagent.started","subagent.reported","subagent.completed","subagent.progress","subagent.failed","subagent.cancelled","subagent.cleanup","subagent.workspace_retained","subagent.workspace_retention_expiring","subagent.archived","subagent.message"],Fe=e.enum(Z),X=[{id:"coding",label:"Coding",description:"Make scoped code changes and return patch, diff, and test evidence.",defaultToolPolicy:"full_tools"},{id:"research",label:"Research",description:"Inspect docs, code, web or repo context and return cited findings.",defaultToolPolicy:"full_tools"},{id:"review",label:"Review",description:"Inspect diffs or implementation plans and return ranked findings.",defaultToolPolicy:"full_tools"},{id:"test",label:"Test",description:"Run or design validation in isolation and return command evidence.",defaultToolPolicy:"full_tools"},{id:"docs",label:"Docs",description:"Update or draft project documentation in an isolated target.",defaultToolPolicy:"full_tools"},{id:"planner",label:"Planner",description:"Decompose a goal into child assignments and context packs.",defaultToolPolicy:"full_tools"},{id:"summarizer",label:"Summarizer",description:"Compact transcripts, child results, and goal state for parent context.",defaultToolPolicy:"full_tools"}],b=e.object({id:g,enabled:e.boolean().default(!0),modelRef:l.nullable().default(null),isolationMode:_.default("none"),maxConcurrentRuns:e.number().int().min(1).max(16).default(1),toolPolicy:R.default("read_only"),background:e.boolean().default(!0),peerMessages:A.default("parent_scoped")}),x=e.object({enabled:e.boolean().default(!0),workspaceDefaultsVersion:e.literal(1).default(1),toolDefaultsVersion:e.literal(1).default(1),delegationMode:G.default("manual"),defaultModelRef:l.nullable().default(null),roles:e.array(b).max(64).default(()=>I()),maxConcurrentRuns:e.number().int().min(1).max(32).default(4),maxConcurrentRunsPerProvider:e.number().int().min(1).max(32).nullable().default(2),maxConcurrentRunsPerWorkspaceTarget:e.number().int().min(1).max(32).nullable().default(1)}).transform(t=>({...t,roles:oe(t.roles)})),i=e.object({kind:e.enum(["session","turn","file","diff","artifact"]),id:e.string().trim().min(1).max(500),label:e.string().trim().min(1).max(500)}),K=e.object({kind:e.enum(["retain_with_parent"]).default("retain_with_parent"),messageRetentionDays:e.number().int().min(1).max(3650).nullable().default(null),artifactRetentionDays:e.number().int().min(1).max(3650).nullable().default(null),cleanupAfterExpiry:e.boolean().default(!1)}).default(()=>({kind:"retain_with_parent",messageRetentionDays:null,artifactRetentionDays:null,cleanupAfterExpiry:!1})),$=e.enum(["orient","edit","validate","report"]),Q=e.object({command:e.string().trim().min(1).max(2e3),status:e.enum(["passed","failed","unknown"]).default("unknown"),exitCode:e.number().int().nullable().default(null),outputSummary:e.string().trim().max(5e3).nullable().default(null),startedAt:e.string().nullable().default(null),completedAt:e.string().nullable().default(null)}),J=e.object({phase:$.default("orient"),inspectedFiles:e.array(e.string().trim().min(1).max(1e3)).max(500).default([]),inspectedResources:e.array(e.string().trim().min(1).max(1e3)).max(500).default([]),repeatedSearches:e.array(e.string().trim().min(1).max(1e3)).max(200).default([]),repeatedReads:e.array(e.string().trim().min(1).max(1e3)).max(200).default([]),repeatedCommands:e.array(e.string().trim().min(1).max(1e3)).max(200).default([]),changedFiles:e.array(e.string().trim().min(1).max(1e3)).max(500).default([]),patchRefs:e.array(i).max(100).default([]),validationAttempts:e.array(Q).max(100).default([]),latestMeaningfulActivity:e.string().trim().max(5e3).nullable().default(null),currentBlocker:e.string().trim().max(5e3).nullable().default(null),updatedAt:e.string().nullable().default(null)}).default(()=>({phase:"orient",inspectedFiles:[],inspectedResources:[],repeatedSearches:[],repeatedReads:[],repeatedCommands:[],changedFiles:[],patchRefs:[],validationAttempts:[],latestMeaningfulActivity:null,currentBlocker:null,updatedAt:null})),ee=e.object({summary:e.string().trim().max(2e4).default(""),findings:e.array(e.string().trim().min(1).max(5e3)).max(200).default([]),artifacts:e.array(i).max(200).default([]),patchRef:i.nullable().default(null),diffRef:i.nullable().default(null),testsRun:e.array(e.string().trim().min(1).max(2e3)).max(100).default([]),blockers:e.array(e.string().trim().min(1).max(5e3)).max(100).default([]),confidence:e.enum(["low","medium","high"]).nullable().default(null),followUpNeeded:e.boolean().default(!1)}),te=e.object({id:e.string().trim().min(1).max(200),parentSessionId:e.string().trim().min(1).max(200),parentTurnId:e.string().trim().min(1).max(200).nullable().default(null),childSessionId:e.string().trim().min(1).max(200).nullable().default(null),roleId:g,objective:e.string().trim().min(1).max(5e4),modelRef:l.nullable().default(null),isolationMode:_.default("none"),toolPolicy:R.default("read_only"),background:e.boolean().default(!0),peerMessages:A.default("parent_scoped"),status:Y.default("queued"),progress:J,evidenceRetention:K,createdAt:e.string(),startedAt:e.string().nullable().default(null),completedAt:e.string().nullable().default(null),updatedAt:e.string().nullable().default(null),error:e.string().nullable().default(null),report:ee.nullable().default(null),metadata:e.record(e.string(),e.unknown()).optional().default({})}),C=e.enum(["cleanup","archive","cleanup_and_archive"]),We=e.object({action:C,reason:e.string().trim().min(1).max(2e3).nullable().default(null)}),Be=e.object({action:C,run:te,workspaceCleanup:e.record(e.string(),e.unknown()).nullable().default(null),sessionArchive:e.record(e.string(),e.unknown()).nullable().default(null),nextStep:e.string()}),ae=e.enum(["question","answer","handoff","artifact","status","blocker"]),ne=e.enum(["normal","interrupt"]),le=e.object({inputIds:e.array(e.string()).default([]),status:e.enum(["pending","delivered","undelivered"]).default("pending"),deliveredRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),acknowledgedRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),deliveredParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),acknowledgedParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeRequestedParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeQueuedParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeDeferredParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeParentReason:e.string().trim().min(1).max(1e3).nullable().default(null),wakeRequestedRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),wakeInterruptedRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),wakeDeferredRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),reason:e.string().trim().min(1).max(1e3).nullable().default(null)}),qe=e.object({id:e.string().trim().min(1).max(200),fromRunId:e.string().trim().min(1).max(200),toRunId:e.string().trim().min(1).max(200).nullable().default(null),toRole:g.nullable().default(null),kind:ae,priority:ne.optional(),body:e.string().trim().min(1).max(5e4),refs:e.array(i).max(100).default([]),delivery:le.optional(),createdAt:e.string()});function I(){return X.map(t=>b.parse({id:t.id,toolPolicy:t.defaultToolPolicy}))}c(I,"defaultSubagentRoleSettings");function oe(t){let r=I(),d=new Map(r.map(o=>[o.id,o])),S=[];for(let o of t??[]){let s=b.parse(o);d.has(s.id)?d.set(s.id,s):S.push(s)}return[...r.map(o=>d.get(o.id)??o),...S]}c(oe,"normalizeSubagentRoleSettings");var Xe="gpt-5.6-sol",re="openpond-chat",Ke="accounts/fireworks/models/deepseek-v4-flash",ie="openpond",se=re,ue="default",de="high",ce="ask",j=n,me=e.enum(["default","auto-review","full-access"]),pe=e.enum(["ask","full-access","disabled"]),fe=e.enum(["off","low","medium","high","xhigh","max"]),$e=e.enum(["sandbox_app","local_project","sandbox","sandbox_template"]),Qe=e.enum(["openpond"]),ge=e.enum(["provider_usage","provider_tokenizer","model_family","heuristic"]),Je=e.object({provider:j,model:e.string().min(1),usedTokens:e.number().int().nonnegative(),maxContextTokens:e.number().int().positive(),usableContextTokens:e.number().int().positive(),percentFull:e.number().min(0).max(100),source:ge,updatedAtEventId:e.string().nullable()}),k=e.object({pinned:e.boolean().default(!1),projects:e.boolean().default(!1),cloudProjects:e.boolean().default(!1),chats:e.boolean().default(!1),savedForLater:e.boolean().default(!0)}),be=e.enum(["auto","off"]),xe=e.enum(["typescript","python","rust"]),w=e.enum(["auto","disabled","custom"]),a=e.object({mode:w.default("auto"),customCommand:e.string().trim().max(4096).default("")}),h=e.object({languageServers:be.default("auto"),diagnosticsWhileEditing:e.boolean().default(!0),checkOnSave:e.boolean().default(!0),languages:e.object({typescript:a.optional().default(()=>a.parse({})),python:a.optional().default(()=>a.parse({})),rust:a.optional().default(()=>a.parse({}))}).optional().default(()=>({typescript:a.parse({}),python:a.parse({}),rust:a.parse({})}))}),he=e.object({language:xe,label:e.string(),mode:w,status:e.enum(["found","missing","disabled","error"]),command:e.string().nullable(),message:e.string().nullable()}),et=e.object({settings:h,languages:e.array(he),updatedAt:e.string()}),Se=e.object({id:e.string(),root:e.string(),status:e.enum(["starting","connected","unavailable","error"]),message:e.string().nullable().optional().default(null),openedDocuments:e.number().int().nonnegative(),pendingRequests:e.number().int().nonnegative(),lastUsedAt:e.string(),stderrTail:e.string()}),tt=e.object({clients:e.array(Se),maxClients:e.number().int().positive(),idleTimeoutMs:e.number().int().positive(),updatedAt:e.string()}),E=e.object({autoEnabled:e.boolean().default(!0),triggerPercent:e.number().int().min(50).max(95).default(85),summaryModel:e.enum(["same_model"]).default("same_model")}),M=e.object({defaultModelRef:l.nullable().default(null),creationMode:e.enum(["defaults","customize"]).default("customize"),autoApproveEvidence:e.boolean().default(!1)}),at=e.object({defaultChatProvider:j.default(ie),defaultChatModel:e.string().min(1).default(se),defaultChatModelRef:l.nullable().optional(),subagents:x.optional().default(()=>x.parse({})),codexPermissionMode:me.default(ue),codexReasoningEffort:fe.default(de),openPondCommandAccessMode:pe.default(ce),defaultBranchPrefix:e.string().trim().max(48).default("feat/"),defaultNewProjectDirectory:e.string().trim().max(4096).default(""),defaultTeamId:e.string().trim().max(191).nullable().default(null),advancedWorkspaceControls:e.boolean().default(!1),steerActiveResponses:e.boolean().default(!0),contextCompaction:E.optional().default(()=>E.parse({})),training:M.optional().default(()=>M.parse({})),sidebarWidth:e.number().int().min(244).max(560).default(332),diffPanelWidth:e.number().int().min(320).max(2400).default(560),sidebarSectionsCollapsed:k.optional().default(()=>k.parse({})),editor:h.optional().default(()=>h.parse({}))});var ve="default",ye=[{id:"default",name:"Balanced",source:"built_in",description:"Clear, useful, and concise.",content:`You are OpenPond Chat, a clear and useful AI assistant.
3
- Be concise, accurate, and direct.
4
- Do not use emojis.
5
- Ask only when missing information would materially change the answer.
6
- Prioritize practical next steps.`},{id:"pragmatic",name:"Pragmatic",source:"built_in",description:"Direct, practical, and engineering-minded.",content:`You are a pragmatic AI assistant with strong engineering judgment.
7
- Be direct, concrete, and outcome-focused.
8
- Do not use emojis.
9
- Prefer simple working solutions over clever abstractions.
10
- Call out weak assumptions plainly.`},{id:"friendly",name:"Friendly",source:"built_in",description:"Warm, conversational, and approachable.",content:`You are a friendly AI assistant.
11
- Use a warm, conversational tone without filler.
12
- Do not use emojis.
13
- Explain decisions clearly and keep the user moving.
14
- Be patient when clarifying tradeoffs.`},{id:"formal",name:"Formal",source:"built_in",description:"Polished, careful, and professional.",content:`You are a formal AI assistant.
15
- Use precise, professional language.
16
- Do not use emojis.
17
- Structure answers clearly and avoid casual phrasing.
18
- State uncertainty and assumptions explicitly.`},{id:"technical",name:"Technical",source:"built_in",description:"Precise, detailed, and implementation-focused.",content:`You are a technical AI assistant.
19
- Prioritize correctness, implementation detail, and edge cases.
20
- Do not use emojis.
21
- Use concise explanations, but include necessary specifics.
22
- Surface risks, constraints, and verification steps.`}],T=e.string().trim().min(1).max(120),Pe=e.object({id:T,name:e.string(),source:e.enum(["built_in","custom"]).default("custom"),description:e.string(),content:e.string()}),nt=e.object({activeTemplateId:T.default(ve),customized:e.boolean().default(!1),soul:e.string(),soulPath:e.string().nullable(),updatedAt:e.string().nullable(),templates:e.array(Pe).default(()=>[...ye])}),lt=e.object({id:e.string(),host:e.string(),port:e.number(),startedAt:e.string(),storePath:e.string(),version:e.string(),runtimeVersion:e.string()});export{v as a,p as b,N as c,U as d,P as e,z as f,B as g,ke as h,q as i,V as j,Ee as k,Me as l,je as m,we as n,Te as o,De as p,g as q,_ as r,R as s,A as t,G as u,Z as v,X as w,x,J as y,te as z,We as A,le as B,qe as C,Xe as D,re as E,Ke as F,ie as G,de as H,ce as I,j as J,me as K,pe as L,fe as M,$e as N,Je as O,k as P,h as Q,et as R,tt as S,E as T,M as U,at as V,ve as W,ye as X,T as Y,nt as Z,lt as _};
@@ -1,4 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as P,b as _}from"./chunk-MCIIGQT7.js";import{a as z}from"./chunk-FEAKTSRS.js";import{$ as V,Z as B}from"./chunk-5MTN6KXV.js";import{_ as S,ha as O}from"./chunk-M4ZRCRJM.js";import{D as A}from"./chunk-M6JRS5PA.js";import{x as I}from"./chunk-PBZCXPPC.js";import{n as k}from"./chunk-VVNV4NNW.js";import{A as g}from"./chunk-PF56N7ZY.js";import{a as i}from"./chunk-FTQLQJQV.js";import{randomUUID as E,createHash as $}from"node:crypto";import{mkdtemp as j,mkdir as q,writeFile as R,rm as L}from"node:fs/promises";import C from"node:os";import v from"node:path";var w=g.object({score:g.number().finite().min(0).max(1).nullable(),passed:g.boolean(),feedback:g.string().max(2e4),evidenceRefs:g.array(g.string().max(240)).max(1e3).default([])}).strict().refine(e=>e.score!==null||!e.passed,{message:"Unscorable verifiers cannot pass.",path:["passed"]});function N(e){if(e==="sandbox_process")throw new Error("verifier_sandbox_process_required")}i(N,"assertIsolatedVerifierRuntime");var ce=i(async e=>{let r=O(e.packageValue);if(e.grader.runtime!=="sandbox_process")throw new Error("Select the sandbox process runtime for a local file grader.");if(!r.taskset.graders.some(o=>k(o)===k(e.grader)))throw new Error("The private grader differs from its package.");if(!r.taskset.tasks.some(o=>k(o)===k(e.task)))throw new Error("The private case differs from its package.");await e.authorize(),e.signal?.throwIfAborted();let s=await j(v.join(C.tmpdir(),"profile-private-grade-")),d=E();try{let o=new Map;for(let a of r.files.filter(t=>t.asset.visibility!=="policy")){let t=a.asset.path;if(v.isAbsolute(t)||t.split(/[\\/]/).some(n=>!n||n==="."||n===".."))throw new Error("Private grader asset path invalid.");let u=o.get(t);if(u){if(u.contentHash!==a.asset.contentHash||u.sizeBytes!==a.asset.sizeBytes)throw new Error("Private grader assets declare conflicting bytes at the same path.");continue}o.set(t,{contentHash:a.asset.contentHash,sizeBytes:a.asset.sizeBytes});let x=v.join(s,"package",t);await q(v.dirname(x),{recursive:!0,mode:448}),await R(x,S(a),{mode:256})}await R(v.join(s,"request.json"),JSON.stringify({task:e.task,attempt:e.evidence,input:e.task.input,output:e.evidence.output,artifacts:"artifacts"in e.evidence?e.evidence.artifacts:[],expectedOutput:e.task.expectedOutput}),{mode:256});let c=`import fs from 'node:fs/promises'; const module=await import(${JSON.stringify("./package/"+e.grader.verifierRef.path)}); const result=await module[${JSON.stringify(e.grader.exportName??"verify")}](JSON.parse(await fs.readFile('request.json','utf8'))); console.log(JSON.stringify(result));`;await R(v.join(s,"runner.mjs"),c,{mode:256});let m=await z({authorize:i(async()=>(await e.authorize(),e.signal?.throwIfAborted(),{candidateId:d,candidateRevision:1,ownerId:d,sessionId:d,turnId:d,sourceRoot:s,writablePaths:[]}),"authorize")})({candidateId:d,sessionId:d,turnId:d,expectedRevision:1,command:"/runtime/node --max-old-space-size=512 runner.mjs",timeoutMs:e.grader.timeoutMs,maxOutputBytes:7e4,signal:e.signal});if(await e.authorize(),e.signal?.throwIfAborted(),m.code!==0||m.timedOut||m.stdoutTruncated||m.stderrTruncated)throw new Error("Private grading sandbox did not complete.");return w.parse(JSON.parse(m.stdout))}finally{await L(s,{recursive:!0,force:!0})}},"executeLocalProfileVerifier");function de(e){return async r=>{if(!r.manifest)throw new Error("The hosted grader requires its admitted manifest.");await r.authorize(),r.signal?.throwIfAborted();let s="artifacts"in r.evidence&&Array.isArray(r.evidence.artifacts)?r.evidence.artifacts.map(({reference:a,title:t,contentType:u})=>({reference:a,title:t,contentType:u})):[],d="caseOwner"in r.evidence?r.evidence.caseOwner:null;if(!d?.sessionId||!d.turnId)throw new Error("The private grader has no sealed case owner.");let o=Buffer.from(JSON.stringify({manifest:r.manifest,packageValue:r.packageValue,graderId:r.grader.id,taskId:r.task.id,evidence:{...r.evidence,artifacts:s}}));if(o.length>2e7)throw new Error("The private grading package exceeds its transport limit.");let c={callId:E(),sessionId:d.sessionId,turnId:d.turnId,sha256:$("sha256").update(o).digest("hex"),sizeBytes:o.length,timeoutMs:r.grader.timeoutMs},f=i((a,t=12e4)=>e.request(V.parse({contractVersion:B,requestId:E(),operation:"profile-evaluations/grade",params:a}),t),"request");for(let a=0;a<o.length;a+=98304)await r.authorize(),r.signal?.throwIfAborted(),await f({...c,action:"upload",offset:a,contentsBase64:o.subarray(a,a+98304).toString("base64")});let m=await f({...c,action:"execute"},r.grader.timeoutMs+12e4);return await r.authorize(),r.signal?.throwIfAborted(),w.parse(m)}}i(de,"createHostedProfileVerifier");import{Worker as W}from"node:worker_threads";async function b(e){e.signal?.throwIfAborted(),_(e);let{javascriptVerifierWorkerSource:r}=await import("./javascript-verifier-worker-source-F3LSGPOY.js");e.signal?.throwIfAborted();let s=e.signal,d={source:e.source,exportName:e.exportName,value:e.value,timeoutMs:e.timeoutMs,maxResultBytes:e.maxResultBytes,deterministic:e.deterministic===!0,errorPrefix:e.errorPrefix},o=i(c=>new Error(`${e.errorPrefix}_${c}`),"error");return new Promise((c,f)=>{let m=new W(r,{eval:!0,workerData:d,execArgv:[],env:{},resourceLimits:{maxOldGenerationSizeMb:64,maxYoungGenerationSizeMb:16,stackSizeMb:4}}),a=!1,t=i(n=>{a||(a=!0,clearTimeout(x),s?.removeEventListener("abort",u),m.terminate().then(()=>{"error"in n?f(n.error):c(n.result)},f))},"finish"),u=i(()=>t({error:s?.reason instanceof Error?s.reason:o("cancelled")}),"cancel"),x=setTimeout(()=>t({error:o("timeout")}),e.timeoutMs);s?.addEventListener("abort",u,{once:!0}),m.once("error",n=>t({error:n})),m.once("exit",()=>{a||t({error:o("worker_exited_without_result")})}),m.once("message",n=>{try{if(!n||typeof n!="object"||!("ok"in n))throw o("worker_invalid_response");if(n.ok!==!0)throw new Error("error"in n&&typeof n.error=="string"?n.error:`${e.errorPrefix}_execution_failed`);if(!("result"in n))throw o("worker_invalid_response");I(n.result,e.maxResultBytes),t({result:n.result})}catch(h){t({error:h instanceof Error?h:o("worker_invalid_response")})}}),s?.aborted&&u()})}i(b,"executeJavaScriptIsolateInWorker");import{spawn as F}from"node:child_process";async function ye(e){e.signal?.throwIfAborted(),_(e);let{javascriptIsolateProcessSource:r}=await import("./javascript-isolate-process-source-ZPQKKLR4.js");e.signal?.throwIfAborted();let{signal:s,stripTypeScript:d,...o}=e,c=i(m=>new Error(`${e.errorPrefix}_${m}`),"error"),f=`globalThis.__openpondIsolateInput = JSON.parse(${JSON.stringify(JSON.stringify(o))});
3
- ${d?`globalThis.__openpondIsolateInput.source = require("node:module").stripTypeScriptTypes(globalThis.__openpondIsolateInput.source, { mode: "strip" });
4
- `:""}${r}`;return new Promise((m,a)=>{let t=F("node",["--max-old-space-size=64","--input-type=commonjs","-"],{stdio:["pipe","pipe","pipe"],env:{PATH:process.env.PATH},windowsHide:!0}),u,x="",n=0,h=0,y=i(p=>{u??=p,t.kill("SIGKILL")},"stop"),T=i(()=>y(s?.reason instanceof Error?s.reason:c("cancelled")),"cancel"),H=setTimeout(()=>y(e.errorPrefix==="candidate"?new P("candidate_timeout"):c("timeout")),e.timeoutMs);s?.addEventListener("abort",T,{once:!0}),t.stdout.setEncoding("utf8"),t.stdout.on("data",p=>{n+=Buffer.byteLength(p),n>e.maxResultBytes+65536?y(c("process_response_too_large")):x+=p}),t.stderr.on("data",p=>{h+=p.byteLength,h>65536&&y(c("process_stderr_too_large"))}),t.once("error",p=>{u??=p}),t.stdin.on("error",p=>y(p)),t.once("close",p=>{if(clearTimeout(H),s?.removeEventListener("abort",T),u){a(u);return}try{if(p!==0)throw c("process_exited_without_result");let l=JSON.parse(x);if(!l||typeof l!="object"||!("ok"in l))throw c("process_invalid_response");if(l.ok!==!0){let J="error"in l&&typeof l.error=="string"?l.error:`${e.errorPrefix}_execution_failed`;throw"executionError"in l&&l.executionError===!0?new P(J):new Error(J)}if(!("result"in l))throw c("process_invalid_response");I(l.result,e.maxResultBytes),m(l.result)}catch(l){a(l instanceof Error?l:c("process_invalid_response"))}}),t.stdin.end(f),s?.aborted&&T()})}i(ye,"executeJavaScriptIsolateInProcess");async function be(e){return N(e.runtime),w.parse(await b({...e,exportName:e.exportName??"verify",maxResultBytes:65536,errorPrefix:"verifier"}))}i(be,"executeJavaScriptVerifierInWorker");function Oe(e){return A(e,M)}i(Oe,"aggregateTasksetEvaluationInWorker");var M=i(async({source:e,module:r,exportName:s,scores:d,timeoutMs:o,signal:c})=>{let f=/\.[cm]?ts$/.test(r)?(await import("node:module")).stripTypeScriptTypes(e,{mode:"strip"}):e;return b({source:f,exportName:s,value:d,timeoutMs:o,signal:c,maxResultBytes:1024,deterministic:!0,errorPrefix:"metric"})},"executeMetric");var Be=M;import G from"node:path";function $e(e,r){let s=g.array(g.string().min(1).max(240)).max(16).parse(r.metadata.artifactAssetIds??[]);if(new Set(s).size!==s.length)throw new Error("An artifact fixture contains duplicate assets.");let d=0;return s.map(o=>{let c=e.files.filter(a=>a.asset.id===o),f=c[0];if(c.length!==1||!f||f.asset.visibility!=="host_private")throw new Error("Artifact fixtures require a unique private package asset.");let m=S(f);if((d+=m.length)>2e7)throw new Error("Artifact fixtures exceed their aggregate byte limit.");return{reference:{id:`fixture/${r.id}/${f.asset.path}`,contentHash:f.asset.contentHash,mediaType:f.asset.mediaType,sizeBytes:f.asset.sizeBytes},title:G.posix.basename(f.asset.path),contentType:f.asset.mediaType,base64:Buffer.from(m).toString("base64")}})}i($e,"localGraderFixtureArtifacts");export{ce as a,de as b,b as c,ye as d,be as e,$e as f,Oe as g,Be as h};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{k as E}from"./chunk-4M3YW3EQ.js";import{x as j}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as i}from"./chunk-FTQLQJQV.js";var S=E.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((t,n)=>{t.maximumDailySpendUsd<t.maximumSpendUsd&&n.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});var ne="application/vnd.openpond.training+json;version=2",_="application/vnd.openpond.model-project+json;version=2";var d=class extends Error{static{i(this,"OpenPondProtocolError")}code;constructor(n,r){super(r),this.name="OpenPondProtocolError",this.code=n}};function w(t){return JSON.stringify(P(t))}i(w,"canonicalJson");function H(t){return new TextEncoder().encode(w(t)).byteLength}i(H,"canonicalJsonByteLength");async function O(t){let n=new TextEncoder().encode(w(t)),r=await globalThis.crypto.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(r),a=>a.toString(16).padStart(2,"0")).join("")}i(O,"canonicalSha256");function x(t,n,r){let a=H(t);if(a>n)throw new d("payload_too_large",`${r} is ${a} bytes; the maximum is ${n} bytes.`)}i(x,"assertCanonicalPayloadSize");function T(t,n,r){let a=new TextEncoder().encode(t).byteLength;if(a>n)throw new d("response_too_large",`${r} is ${a} bytes; the maximum is ${n} bytes.`);try{return JSON.parse(t)}catch{throw new d("invalid_json",`${r} was not valid JSON.`)}}i(T,"parseBoundedJson");function P(t){if(t===null||typeof t=="string"||typeof t=="boolean")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new d("non_json_value","Canonical JSON cannot contain a non-finite number.");return Object.is(t,-0)?0:t}if(Array.isArray(t))return t.map(n=>P(n));if(typeof t=="object"){let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw new d("non_json_value","Canonical JSON accepts only plain objects.");let r={};for(let a of Object.keys(t).sort()){let s=t[a];if(s===void 0||typeof s=="function"||typeof s=="symbol")throw new d("non_json_value",`Canonical JSON cannot contain ${typeof s} at ${a}.`);r[a]=P(s)}return r}throw new d("non_json_value",`Canonical JSON cannot contain ${typeof t}.`)}i(P,"normalizeCanonicalJson");var o=e.string().trim().min(1).max(500),u=e.string().regex(/^[a-f0-9]{64}$/),c=e.string().datetime({offset:!0}),p=e.object({id:o,contentHash:u}).strict(),M=p.extend({revision:e.number().int().positive()}).strict(),m=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:o,revision:e.string().trim().min(1).max(256).nullable(),tokenizerRevision:e.string().trim().min(1).max(256).nullable(),chatTemplateHash:e.string().trim().min(8).max(256).nullable(),modelAssetId:o.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),C=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),B=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:C,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),$=e.object({profileProjectId:o,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:p}).strict(),q=e.object({profileProjectId:o,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:u,definitionId:o,harnessRelease:p,tasksetRelease:p}).strict(),N=e.object({tasksetRef:M.nullable().default(null),evaluationTasksetRef:M.nullable().optional(),profileSource:$.nullable().optional(),profileEvaluation:q.nullable().optional(),rewardBindingRef:M.nullable().optional(),tasksetRelease:p.nullable().default(null),harnessRelease:p.nullable().default(null),baseModel:m.nullable().default(null),method:C.nullable().default(null),destinationId:o.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:B.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),J=N.omit({managedGpuRequirement:!0}),U=e.object({schemaVersion:e.literal("openpond.hostedModelProjectLink.v1"),apiOrigin:e.string().url().refine(t=>new URL(t).origin===t,"Use a canonical API origin.").nullable().default(null),teamId:o,projectId:o,portableProjectId:o,revision:e.number().int().positive(),etag:u,syncedSourceRevision:e.number().int().positive(),syncedAt:c,tasksets:e.array(e.object({localTasksetId:o,localTasksetHash:u.nullable().default(null),releaseId:o,releaseRevision:e.number().int().positive(),releaseHash:u,packageHash:u.nullable().default(null),hostedTasksetId:o,syncedAt:c}).strict()).max(1e4).default([])}).strict(),z=e.object({localTasksetId:o,releaseId:o,releaseRevision:e.number().int().positive(),releaseHash:u,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:o.nullable().default(null),lastAttemptAt:c,syncedAt:c.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),V=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:o,profileId:o,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:m.nullable(),defaultDestinationId:o.nullable(),trainingSetup:N,hosted:U.nullable().default(null),tasksetSyncs:e.array(z).max(1e4).default([]),createdAt:c,updatedAt:c}).strict(),D=V.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),Y=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:o,expectedRevision:e.number().int().nonnegative(),project:D,learning:S.optional()}).strict().superRefine((t,n)=>{t.learning&&t.expectedRevision!==0&&n.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),X=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:u,projectId:o,expectedRevision:e.number().int().nonnegative(),checkedAt:c,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:o,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),G=e.object({id:o,name:e.string().min(1).max(500),available:e.boolean(),preference:m}).strict();function I(t){try{j(t,524288)}catch{throw new h(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return Y.parse(t)}i(I,"parseModelProjectSaveRequest");async function ce(t,n,r){j(t,524288);let a=D.parse(t);x(a,524288,"Model configuration");let s=r?S.parse(r):void 0,l=await O({project:a,expectedRevision:n,...s?{learning:s}:{}});return I({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${l}`,expectedRevision:n,project:a,...s?{learning:s}:{}})}i(ce,"createModelProjectSaveRequest");var F=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:o,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:m.nullable(),defaultDestinationId:o.nullable(),trainingSetup:J,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,expectedEtag:u.nullable().default(null)}).strict(),b=e.object({id:o,teamId:o,portableProjectId:o,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:m.nullable(),defaultDestinationId:o.nullable(),trainingSetup:J,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,revision:e.number().int().positive(),etag:u,createdAt:c,updatedAt:c}).strict(),Z=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:p,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:c}).strict(),K=e.object({project:b,resources:e.array(Z).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(o).max(100)}).strict(),Q=e.object({schemaVersion:e.literal("openpond.modelProjectApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),h=class extends Error{static{i(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(n,r){super(r.message),this.name="OpenPondModelProjectApiError",this.status=n,this.code=r.code,this.retryable=r.retryable,this.requestId=r.requestId,this.details=r.details}};function A(t){let n={};return new Headers(t).forEach((r,a)=>{n[a]=r}),n}i(A,"headersRecord");function de(t){let n=t.fetch??fetch,r=t.baseUrl.replace(/\/$/,"");async function a(s,l){let y=typeof t.headers=="function"?await t.headers():t.headers??{},f=await n(`${r}${s}`,{...l,headers:{accept:_,...l?.body?{"content-type":_}:{},...A(y),...A(l?.headers)}}),R=T(await f.text(),8388608,"Model Project API response");if(!f.ok){let v=Q.safeParse(R);throw v.success?new h(f.status,v.data):new d("invalid_error_response",`Model Project request failed with HTTP ${f.status} and an invalid error envelope.`)}return R}return i(a,"request"),{async configurationCandidates(){return e.object({candidates:e.array(G).max(1e3)}).strict().parse(await a("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(s){let l=I(s);return X.parse(await a("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async saveConfiguration(s){let l=I(s);return b.parse(await a("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async upsert(s){x(s,524288,"Model Project sync");let l=F.parse(s),y=await a(`/v1/model-projects/${encodeURIComponent(l.portableProjectId)}`,{method:"PUT",body:JSON.stringify(l)});return b.parse(k(y,"project"))},async list(){let s=await a("/v1/model-projects");return e.array(b).parse(k(s,"projects"))},async get(s){let l=await a(`/v1/model-projects/${encodeURIComponent(o.parse(s))}`);return K.parse(l)}}}i(de,"createModelProjectsClient");function k(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}i(k,"unwrapObject");export{ne as a,d as b,w as c,O as d,x as e,T as f,p as g,M as h,m as i,B as j,D as k,ce as l,F as m,b as n,de as o};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{t as h}from"./chunk-UBCLPZSQ.js";import{m as f}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as m}from"./chunk-FTQLQJQV.js";var g=e.object({schemaVersion:e.literal("openpond.profileWorkCompletion.v1"),sessionId:e.string().min(1),turnId:e.string().min(1),responsePath:e.string().min(1),responseSha256:e.string().regex(/^[a-f0-9]{64}$/),responseBytes:e.number().int().min(1).max(1048576),responseChunks:e.array(e.string().max(65536)).min(1).max(32),outputs:e.array(e.object({id:e.string(),revision:e.number().int(),sha256:e.string(),sizeBytes:e.number().int(),contentType:e.string(),sourceTaskId:e.string(),sourceTurnId:e.string(),title:e.string()}).strict()).min(1).max(100)}).strict();function W(s){let u=new TextDecoder("utf-8",{fatal:!0}).decode(s.response),i=[];for(let r=0;r<u.length;r+=65536)i.push(u.slice(r,r+65536));return g.parse({schemaVersion:"openpond.profileWorkCompletion.v1",sessionId:s.sessionId,turnId:s.turnId,responsePath:s.responsePath,responseSha256:f(s.response),responseBytes:s.response.length,responseChunks:i,outputs:s.outputs.map(({id:r,revision:t,sha256:a,sizeBytes:p,contentType:c,sourceTaskId:o,sourceTurnId:d,title:n})=>({id:r,revision:t,sha256:a,sizeBytes:p,contentType:c,sourceTaskId:o,sourceTurnId:d,title:n}))})}m(W,"createProfileWorkCompletion");function _(s){let u=s.filter(o=>o.name==="tool.completed"&&o.action==="work_finish"&&o.status==="completed");if(!u.length)return null;if(u.length!==1)throw new Error("The case has multiple Work completion receipts.");let i=u[0],r=i.data,t=g.parse(r?.result);if(t.sessionId!==i.sessionId||t.turnId!==i.turnId)throw new Error("Work completion belongs to another case or turn.");let a=t.responseChunks.join(""),p=Buffer.from(a,"utf8");if(p.length!==t.responseBytes||f(p)!==t.responseSha256)throw new Error("Work completion response differs from its sealed content.");if(new Set(t.outputs.map(o=>`${o.id}/${o.revision}`)).size!==t.outputs.length)throw new Error("Work completion repeats a saved output.");let c=s.slice(0,s.indexOf(i));for(let o of t.outputs){if(o.sourceTaskId!==t.sessionId||o.sourceTurnId!==t.turnId)throw new Error("Work completion output belongs to another case or turn.");if(c.filter(n=>n.name==="workspace_action_result"&&n.action==="work_output_save"&&n.status==="completed"&&n.sessionId===t.sessionId&&n.turnId===t.turnId).flatMap(n=>{let l=h.safeParse(n.data?.outputRef);return l.success&&Object.entries(o).every(([k,I])=>l.data[k]===I)?[l.data]:[]}).length!==1)throw new Error("Work completion lacks an exact prior saved-output receipt.")}return a}m(_,"completedProfileWorkResponse");export{W as a,_ as b};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as E}from"./chunk-QRJPLZF7.js";import{h as c,i as _}from"./chunk-PWK5Z5S3.js";import{d as j}from"./chunk-OZ6LRNRE.js";import{G as v,I as A,J as t,K as d,L as o,M as g,N as l,P as I,Q as C,T as k,U as w,Y as y,k as P,q as i,u as r,x as R}from"./chunk-6DCXAXVD.js";import{c as f,f as n}from"./chunk-OE22TAXP.js";import{d as q,e as T}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as u}from"./chunk-FTQLQJQV.js";var b="local_path:";function Z(p){return`${b}${p.trim()}`}u(Z,"localPathWorkspaceId");function ee(p){return p.startsWith(b)&&p.slice(b.length).trim()||null}u(ee,"workspacePathFromLocalPathWorkspaceId");var ne=e.object({appId:e.string(),source:e.enum(["openpond","github","local_git","local_folder","unknown"]),workspacePath:e.string(),repoPath:e.string(),initialized:e.boolean(),remoteUrl:e.string().nullable(),expectedRemoteUrl:e.string().nullable(),currentBranch:e.string().nullable(),headCommit:e.string().nullable().optional().default(null),upstreamBranch:e.string().nullable().optional().default(null),ahead:e.number().int().nonnegative().optional().default(0),behind:e.number().int().nonnegative().optional().default(0),diverged:e.boolean().optional().default(!1),linkedSourceHeadCommit:e.string().nullable().optional().default(null),aheadOfLinkedSource:e.number().int().nonnegative().optional().default(0),behindLinkedSource:e.number().int().nonnegative().optional().default(0),divergedFromLinkedSource:e.boolean().optional().default(!1),linkedSourceComparisonError:e.string().nullable().optional().default(null),lastFetchAt:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable(),branches:e.array(e.string()),dirty:e.boolean(),changedFilesCount:e.number(),untrackedFilesCount:e.number(),error:e.string().nullable(),updatedAt:e.string()}),O=e.object({path:e.string(),status:e.string(),additions:e.number(),deletions:e.number(),patch:e.string(),content:e.string().nullable().optional().default(null),contentType:e.string().optional(),contentEncoding:e.enum(["base64"]).optional(),readVersion:e.string().nullable().optional(),readStamp:e.string().optional()}),te=e.object({appId:e.string(),repoPath:e.string(),initialized:e.boolean(),dirty:e.boolean(),filesChanged:e.number(),additions:e.number(),deletions:e.number(),repoFiles:e.array(e.string()).optional().default([]),files:e.array(O),error:e.string().nullable(),updatedAt:e.string()}),oe=e.object({branch:e.string().trim().min(1).max(160)}),ae=e.object({path:e.string().trim().min(1),content:e.string()}),M=e.object({line:e.number().int().nonnegative(),character:e.number().int().nonnegative()}),U=e.object({start:M,end:M}),N=e.object({path:e.string(),range:U,severity:e.enum(["error","warning","info","hint"]),message:e.string(),source:e.string().nullable().optional().default(null),code:e.string().nullable().optional().default(null)}),W=e.object({id:e.string(),root:e.string(),status:e.enum(["connected","unavailable","error"]),message:e.string().nullable().optional().default(null)}),ie=e.object({path:e.string().trim().min(1),content:e.string().optional(),waitForDiagnostics:e.boolean().optional().default(!0)}),re=e.object({appId:e.string(),path:e.string(),diagnostics:e.array(N),servers:e.array(W),updatedAt:e.string()}),K=e.object({operation:e.enum(["hover","definition","references","documentSymbol"]),path:e.string().trim().min(1),content:e.string().optional(),line:e.number().int().nonnegative().optional(),character:e.number().int().nonnegative().optional()}),le=e.object({appId:e.string(),operation:K.shape.operation,path:e.string(),results:e.unknown(),servers:e.array(W),updatedAt:e.string()}),h=e.object({pinned:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional()}),se=e.record(e.string(),h),z=e.object({path:e.string().min(1),title:e.string().min(1),contentType:e.string().min(1),sizeBytes:e.number().nonnegative().nullable(),sandboxId:e.string().nullable(),revision:e.string().optional(),updatedAt:e.string().optional()}),me=e.object({files:e.array(z)});var a=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),B=e.object({ref:a,revision:e.string().nullable(),sourceHash:e.string()});var s=e.enum(["chat","work","development"]),be=e.enum(["chat","models","console","development"]),D="work";var S=e.enum(["openpond.lab"]),x=e.object({id:e.string(),experience:s.default(D),provider:t,modelRef:n.nullable().optional(),openPondCommandAccessMode:o.default(A),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().nullable().optional(),parentTurnId:e.string().nullable().optional(),subagentRunId:e.string().nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),title:e.string(),appId:e.string().nullable(),appName:e.string().nullable(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:q.nullable().optional(),profileComponentBinding:T.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable(),codexThreadId:e.string().nullable(),nativeAgent:e.object({provider:e.union([e.enum(["claude-code","grok-build","opencode"]),f]),instanceId:e.string().min(1),sessionId:e.string().min(1),cwd:e.string().min(1)}).nullable().optional(),createdAt:e.string(),updatedAt:e.string(),status:e.enum(["idle","active","failed","closed"]),runtimeSeconds:e.number().int().nonnegative().optional(),runtimeRunningSince:e.string().nullable().optional(),pinned:e.boolean(),savedForLater:e.boolean().optional(),archived:e.boolean(),order:e.number()}),we=e.object({id:e.string(),sessionId:e.string(),providerTurnId:e.string().nullable(),modelRef:n.nullable().optional(),prompt:e.string(),startedAt:e.string(),completedAt:e.string().nullable(),status:e.enum(["in_progress","completed","failed","interrupted"]),error:e.string().nullable(),metadata:e.record(e.string(),e.unknown()).optional().default({}),createImproveRun:c.nullable().optional().default(null),profileSnapshot:B.nullable().optional(),harnessSnapshot:j.nullable().optional()});var F=e.object({id:e.string().trim().min(1).max(191),agentId:e.string().trim().min(1).max(191).optional().nullable(),sourcePath:e.string().trim().min(1).max(2e3).optional().nullable(),sourceActionId:e.string().trim().min(1).max(191).optional().nullable(),name:e.string().trim().min(1).max(191).optional().nullable(),label:e.string().trim().min(1).max(160).optional().nullable(),description:e.string().trim().max(1e3).optional().nullable(),visibility:e.string().trim().max(80).optional().nullable(),inputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),outputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),approvalPolicy:e.record(e.string(),e.unknown()).optional().nullable(),artifactPolicy:e.record(e.string(),e.unknown()).optional().nullable(),setupRequirements:e.array(e.record(e.string(),e.unknown())).optional(),mcp:e.record(e.string(),e.unknown()).optional().nullable(),schedulePolicy:e.record(e.string(),e.unknown()).optional().nullable(),trace:e.record(e.string(),e.unknown()).optional().nullable(),implementation:e.record(e.string(),e.unknown()).optional().nullable(),invokesModel:e.boolean().optional()});var H=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),V=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),X=e.enum(["native_bot","oauth_connector","wallet_connector","mcp_endpoint"]),$=e.object({kind:e.literal("integration"),provider:H,appIds:e.array(V).min(1).max(4),setupSurfaces:e.array(X).min(1).max(4),connectionIds:e.array(e.string().trim().min(1)).max(8).optional(),capabilities:e.array(e.string().trim().min(1)).max(64).optional()}).strict(),m={maxAttachments:10,maxAttachmentBytes:12*1024*1024,maxAttachmentBase64Chars:Math.ceil(12*1024*1024*4/3)+16,maxTextChars:2e5},G=e.enum(["image","text","file"]),J=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(240),contentType:e.string().trim().min(1).max(160)}),Q=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(1024),contentType:e.string().trim().min(1).max(160)}),L=e.object({id:e.string().trim().min(1),name:e.string().trim().min(1).max(240),mediaType:e.string().trim().min(1).max(160),sizeBytes:e.number().int().nonnegative().max(m.maxAttachmentBytes),kind:G,lineCount:e.number().int().nonnegative().max(m.maxAttachmentBytes+1).optional(),relativePath:e.string().trim().min(1).max(1024).optional(),text:e.string().max(m.maxTextChars).optional(),contentsBase64:e.string().max(m.maxAttachmentBase64Chars).optional()}),Xe=L.omit({text:!0,contentsBase64:!0}).extend({imagePreview:J.optional(),filePreview:Q.optional()}),$e=e.object({experience:s.optional(),provider:t.default(v),modelRef:n.optional(),openPondCommandAccessMode:o.optional(),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:x.shape.profileWorkflowBinding,profileComponentBinding:x.shape.profileComponentBinding,metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional(),title:e.string().optional(),autoTitlePrompt:e.string().trim().min(1).max(2e4).optional()}),Ge=e.object({teamId:e.string().trim().min(1),projectName:e.string().trim().min(1).max(120).optional(),branch:e.string().trim().min(1).max(120).optional(),chatSessionId:e.string().trim().min(1).max(200).optional(),displayPrompt:e.string().trim().min(1).max(2e3).optional()}),Je=e.object({branch:e.string().trim().min(1).max(120).optional()}),Qe=e.object({prompt:e.string().min(1),workflowInput:e.unknown().optional(),metadata:e.record(e.string(),e.unknown()).optional(),usageAttribution:E.optional().nullable(),cwd:e.string().nullable().optional(),model:e.string().nullable().optional(),modelRef:n.optional(),mentionedAppIds:e.array(e.string().trim().min(1)).max(8).optional(),mentionedConnectedApps:e.array($).max(8).optional(),openPondActionCatalog:e.array(F).max(100).optional(),attachments:e.array(L).max(m.maxAttachments).optional(),createImproveRun:c.optional().nullable(),approvalPolicy:e.enum(["untrusted","on-failure","on-request","never"]).default("on-request"),sandbox:e.enum(["read-only","workspace-write","danger-full-access"]).default("workspace-write"),codexPermissionMode:d.default("default"),codexReasoningEffort:g.optional()}),Ye=e.object({prompt:e.string().min(1),error:e.string().min(1),target:e.enum(["cloud_workspace","hybrid_sandbox"])}),Ze=_,en=e.object({reason:e.enum(["manual"]).default("manual"),model:e.string().nullable().optional(),modelRef:n.optional()}),nn=e.object({experience:s.optional(),provider:t.optional(),modelRef:n.nullable().optional(),openPondCommandAccessMode:o.optional(),pinned:e.boolean().optional(),savedForLater:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional(),title:e.string().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional()}),tn=e.object({command:e.string().trim().min(1),cwd:e.string().trim().min(1).max(4096).nullable().optional(),timeoutSeconds:e.number().int().min(1).max(3600).optional()}),on=h,an=e.object({appIds:e.array(e.string()).min(1)}),rn=e.object({expectedRevision:e.string().optional(),defaultChatProvider:t.optional(),defaultChatModel:e.string().min(1).optional(),defaultChatModelRef:n.nullable().optional(),subagents:R.optional(),codexPermissionMode:d.optional(),codexReasoningEffort:g.optional(),openPondCommandAccessMode:o.optional(),defaultBranchPrefix:e.string().trim().max(48).optional(),defaultNewProjectDirectory:e.string().trim().max(4096).optional(),defaultTeamId:e.string().trim().max(191).nullable().optional(),advancedWorkspaceControls:e.boolean().optional(),steerActiveResponses:e.boolean().optional(),contextCompaction:k.optional(),training:w.optional(),sidebarWidth:e.number().int().min(244).max(560).optional(),diffPanelWidth:e.number().int().min(320).max(2400).optional(),sidebarSectionsCollapsed:I.optional(),editor:C.optional()}),ln=P,sn=e.object({message:e.string().trim().min(1).max(4e3),surface:e.string().trim().min(1).max(120).default("app"),stack:e.string().max(12e3).nullable().optional(),context:e.record(e.string(),e.unknown()).optional()}).strict();var mn=e.object({activeTemplateId:y,templateName:e.string().trim().min(1).max(80),soul:e.string().trim().min(1).max(8e3),saveAsNew:e.boolean().optional().default(!1)}),pn=e.object({decision:e.enum(["accept","acceptForSession","decline","cancel"]),answers:e.record(e.string().min(1).max(2e3),e.string().trim().min(1).max(8e3)).optional()}),cn=e.object({branch:e.string().trim().min(1).max(240).nullable().optional(),surface:e.enum(["desktop","terminal"])}),un=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),dn=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),gn=e.object({handle:e.string().min(1).optional(),apiKey:e.string().min(1),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()}),bn=e.object({handle:e.string().min(1),currentBaseUrl:e.string().nullable().optional(),apiKey:e.string().min(1).optional(),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()});export{Z as a,ee as b,ne as c,O as d,te as e,oe as f,ae as g,ie as h,re as i,K as j,le as k,se as l,z as m,s as n,D as o,a as p,x as q,we as r,F as s,m as t,Q as u,L as v,$e as w,Ge as x,Je as y,Qe as z,Ye as A,Ze as B,en as C,nn as D,tn as E,on as F,an as G,rn as H,ln as I,sn as J,mn as K,pn as L,cn as M,un as N,dn as O,gn as P,bn as Q};
@@ -1,5 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as _e}from"./chunk-X3WEQL3O.js";import{k as Se}from"./chunk-4N3UF3U5.js";import{A as Re,B as Te}from"./chunk-HZLV773Y.js";import{J as me,L as ge,M as X,Nb as we,Ob as Z,P as Y,Q as se,Qb as ne,R as ke,S as he,ia as ve,ta as E,za as G}from"./chunk-M4ZRCRJM.js";import{D as K,K as J,i as g,n as C,t as ue,x as F}from"./chunk-XK7SPL63.js";import{$ as fe,N as T,O as I,P as Q,Q as q,d as W,ib as U}from"./chunk-4M3YW3EQ.js";import{Da as $,Ma as ce,Ra as ae,Xa as le,Ya as pe}from"./chunk-PBZCXPPC.js";import{i as de,n as j}from"./chunk-VVNV4NNW.js";import{a as m}from"./chunk-FTQLQJQV.js";import{createHash as xe}from"node:crypto";function w(e,t,s,i){let a=U[s].parse(i),r=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[t,s,a.id,a.revision]);if(r){if(g(JSON.parse(r.payload))!==g(a))throw new Error(`Starter dependency conflicts with an existing revision: ${a.id}.`);return}e.run("INSERT INTO learning_revisions (scope, kind, id, revision, payload) VALUES (?, ?, ?, ?, ?)",[t,s,a.id,a.revision,JSON.stringify(a)]),e.run(`INSERT INTO learning_resources (scope, kind, id, revision) VALUES (?, ?, ?, ?)
3
- ON CONFLICT (scope, kind, id) DO UPDATE SET revision = excluded.revision
4
- WHERE learning_resources.revision < excluded.revision`,[t,s,a.id,a.revision])}m(w,"importStarterReleaseInTransaction");function Pe(e,t,s){function i(o,c){let l=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[t,o,c.id,c.revision]);l||H(404,"model_reward_unavailable",`The exact ${o} resource is unavailable in this Profile.`);let d=U[o].parse(JSON.parse(l.payload));return q(d),c.contentHash&&d.contentHash!==c.contentHash&&H(409,"model_reward_changed","The selected resource does not match its immutable content hash."),d}m(i,"read");let a=i("binding",s),r=[...new Map(a.sources.map(o=>[g(o.reward),i("reward",o.reward)])).values()],n=new Map;for(let o of r){let c=o.implementation;for(let l of[...o.assets,..."verifierRef"in c?[c.verifierRef]:[],..."rubricRef"in c?[c.rubricRef]:[],..."inputContract"in c?[c.inputContract]:[]])n.has(l.id)||n.set(l.id,i("asset",{id:l.id,revision:1})),W(n.get(l.id),l)}return{rewardBinding:a,rewards:r,assets:[...n.values()]}}m(Pe,"readSelectedModelReward");function ee(e,t,s,i){let a=C.parse(t.metadata.rewardBinding),r=m((p,u)=>{let B=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[t.profileId,p,u.id,u.revision]);B||H(404,"model_reward_unavailable",`The exact ${p} resource is unavailable in this Profile.`);let h=U[p].parse(JSON.parse(B.payload));return q(h),u.contentHash&&h.contentHash!==u.contentHash&&H(409,"model_reward_changed","The selected resource does not match its immutable content hash."),h},"read"),n=r("definition",C.parse(t.metadata.taskDefinition));(g(t.policy)!==g(n.execution.policy)||g(t.environment.metadata.portableEnvironment)!==g(n.execution.environment)||g(t.environment.metadata.portableTools)!==g(n.execution.tools))&&H(409,"model_taskset_context_changed","Taskset context differs from its immutable task definition.");let o=r("binding",a),c=[...new Map(o.sources.map(p=>[g(p.reward),r("reward",p.reward)])).values()];t.metadata.rewardExecution!==void 0&&g(t.metadata.rewardExecution)!==g({binding:o,rewards:c})&&H(409,"model_taskset_rewards_changed","Taskset embedded Rewards differ from their immutable binding.");let l=r("binding",s),d=[...new Map(l.sources.map(p=>[g(p.reward),r("reward",p.reward)])).values()],k=new Map((i?.modelResources?.assets??[]).map(p=>[p.id,p])),v=m(p=>{k.has(p)||k.set(p,r("asset",{id:p,revision:1}))},"addAsset");for(let p of[...c,...d]){let u=p.implementation;for(let B of[...p.assets,..."verifierRef"in u?[u.verifierRef]:[],..."rubricRef"in u?[u.rubricRef]:[],..."inputContract"in u?[u.inputContract]:[]])v(B.id)}let R,S=ke.shape.executionResources.parse(t.environment.metadata.portableExecutionResources);if(n.execution.environment.entrypoint==="openpond.javascript-environment.v1"){let p=r("asset",{id:ge(n.execution),revision:1});R=me.parse(JSON.parse(W(p,p.asset)));for(let u of[R.javascript.module,R.environment.actionSchemaRef,R.environment.observationSchemaRef,R.environment.stateSchemaRef])u&&v(u.id)}for(let p of t.tasks)p.privilegedContextRef&&v(p.privilegedContextRef);g(t.graders)!==g(Z(o,c,[...k.values()]))&&H(409,"model_taskset_graders_changed","Taskset graders differ from their immutable Reward binding.");let N=$.parse(Q({schemaVersion:"openpond.tasksetRelease.v2",id:t.id,revision:t.revision,...n.execution,graders:pe(o,c),...t.metrics?{metrics:t.metrics}:{},tasks:t.tasks.map(p=>{let u=we(p);return p.requiredOutputs===void 0&&p.metadata.portableTaskRecord===void 0&&delete u.requiredOutputs,u}),metadata:t.metadata.derivedPortableMetadata??{localSource:T(t),starter:{taskDefinition:T(n),rewardBinding:a}}}));return{sourcePackage:i?{...i.modelResources,taskset:i.taskset,executionResources:{environment:i.environment,verifierSet:i.verifierSet}}:{taskset:N,taskDefinition:n,rewardBinding:o,rewards:c,assets:[...k.values()],...S?{executionResources:S}:{},...R?{execution:R}:{}},selectedBinding:l,selectedRewards:d,assets:k}}m(ee,"readModelTasksetSource");function H(e,t,s){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:t,message:s,retryable:!1,requestId:null,details:{}})}m(H,"fail");function ie(e,t){if(e.profileId!==t.profileId||e.tasks.length!==t.tasks.length)throw new Error("Model Taskset review differs from its compiled task scope.");let s=new Map(t.sourceRefs.map(n=>[n.id,n])),i=e.tasks.map(n=>{let o=t.tasks.find(l=>l.id===n.id);if(!o)throw new Error("Model Taskset review is missing a compiled task.");if(j(n.input)!==j(o.input)||j(n.expectedOutput)!==j(o.expectedOutput)||j(n.policyVisibleContext)!==j(o.policyVisibleContext))throw new Error("Model Taskset review differs from its compiled task content.");let c=(n.assets??[]).map(l=>{let d=o.assets?.find(R=>R.id===l.id),k=de.safeParse(d?.metadata.portableAsset),v=d?.artifactRef===l.artifactRef||k.success&&k.data.path===l.artifactRef&&k.data.id===l.id&&k.data.contentHash===l.sha256&&k.data.sizeBytes===l.sizeBytes&&k.data.mediaType===l.mediaType&&k.data.visibility==="policy";if(!d||d.sha256!==l.sha256||d.sizeBytes!==l.sizeBytes||!v||d.mediaType!==l.mediaType||d.fileName!==l.fileName||d.split!==n.split||!o.sourceRefs.includes(d.sourceRefId)||!s.has(d.sourceRefId))throw new Error("Model Taskset review differs from its compiled input asset.");return{...l,sourceRefId:d.sourceRefId,...d.stagingPath===void 0?{}:{stagingPath:d.stagingPath}}});if(c.length!==(o.assets?.length??0))throw new Error("Model Taskset review lost an input asset.");return{...n,sourceRefs:o.sourceRefs,assets:c}}),a=e.metadata.rewardBinding,r=E.parse({...e,sourceRefs:t.sourceRefs,tasks:i,metadata:{...e.metadata,...Object.fromEntries(["trainingMethod","diagnosis","buildIntent"].filter(n=>t.metadata[n]!==void 0).map(n=>[n,t.metadata[n]]))},capabilities:{...e.capabilities,supportedSignals:t.capabilities.supportedSignals,compatibleMethods:t.capabilities.compatibleMethods},graderFixtures:t.graderFixtures,learningSignals:{...t.learningSignals,rewards:t.learningSignals.rewards.map(n=>a?{...n,artifactRef:a.id,rules:[{id:a.id,points:1,condition:"Execute the published Reward binding with its declared normalization, weights and required gates."}]}:n)}});return E.parse({...r,contentHash:G(r)})}m(ie,"retainModelTasksetInputReview");function re(e){if(e?.metadata.learning===void 0)return null;let t=fe.parse(e.metadata.learning);return q(t.definition),le(t.binding,t.rewards),I(t.definition.rewardBinding,T(t.binding))||b(409,"model_batch_binding_changed","Reviewed task definition and Reward binding do not match."),t.binding}m(re,"reviewedTasksetRewardBinding");function ut(e,t,s=!0,i){let a=K(t),{project:r}=a,n=e.get("SELECT payload FROM model_projects WHERE id = ?",[r.id]),o=n?F.parse(JSON.parse(n.payload)):null;o&&o.profileId!==r.profileId&&b(404,"model_not_found","Model is not available in this Profile."),(o?.revision??0)!==a.expectedRevision&&b(409,"model_revision_conflict","Model changed since it was opened. Refresh before saving.");let c=r.trainingSetup.tasksetRef;if(!c||!r.trainingSetup.rewardBindingRef)return null;let l=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[c.id,c.revision]),d=l?E.parse(JSON.parse(l.payload)):null;(!d||d.profileId!==r.profileId)&&b(404,"model_taskset_not_found","The selected Taskset revision is not available in this Profile."),(d.contentHash!==c.contentHash||G(d)!==d.contentHash)&&b(409,"model_taskset_changed","The selected Taskset does not match its immutable content hash.");let k=re(d);if(k)return I(T(k),r.trainingSetup.rewardBindingRef)||b(422,"model_batch_reward_review_required","Changing a reviewed batch's Reward requires regrading and a new reviewed batch."),null;let v=d.metadata.rewardBinding===void 0?null:C.parse(d.metadata.rewardBinding);if(v&&I(v,r.trainingSetup.rewardBindingRef))return null;if(!v&&i&&!i.modelResources&&!i.learningResources){let f=Pe(e,r.profileId,r.trainingSetup.rewardBindingRef),_=Se({owner:{scopeId:r.profileId,modelId:r.id},source:i,...f}),O=Ee(e,a,s),P=ne({package:_,profileId:r.profileId,name:d.name,createdAt:O.created_at});P.taskset=ie(P.taskset,d);let D={..._.modelResources,taskset:_.taskset,executionResources:{environment:_.environment,verifierSet:_.verifierSet}};return{taskset:P.taskset,generatedFiles:P.generatedFiles,directoryId:String(P.taskset.environment.metadata.runtimeSourceTasksetId),source:d,sourcePackage:null,derived:D,imported:P}}v||b(422,"model_taskset_derivation_unavailable","This Taskset needs an authored task definition and Reward binding before its Reward can be changed.");let{sourcePackage:R,selectedBinding:S,selectedRewards:N,assets:x}=ee(e,d,r.trainingSetup.rewardBindingRef,i),p=se.safeParse(R.taskset.metadata.modelTasksetDerivation),B=o?.hosted?.apiOrigin&&o.hosted.tasksets.some(f=>{if(!p.success||f.localTasksetId!==d.id||!f.packageHash||!f.localTasksetHash)return!1;let _=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND content_hash = ? AND profile_id = ?",[d.id,f.localTasksetHash,r.profileId]),O=_?E.parse(JSON.parse(_.payload)):null;if(!O||O.contentHash!==f.localTasksetHash)return!1;let P=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = 'package' AND id = ? AND revision = ?",[r.profileId,f.releaseId,f.releaseRevision]),D=P?$.parse(JSON.parse(P.payload)):null,M=se.safeParse(D?.metadata.modelTasksetDerivation);return D?.contentHash===f.releaseHash&&M.success&&g(M.data.owner)===g(p.data.owner)&&I(M.data.root,p.data.root)})&&p.success&&p.data.owner.modelId===r.id?p.data.owner:{scopeId:r.profileId,modelId:r.id},h=he({owner:B,source:R,rewardBinding:S,rewards:N,assets:[...x.values()]}),z=Ee(e,a,s);if(i){let f=new Map(i.files.map(L=>[L.asset.id,L]));for(let L of h.assets)f.set(L.id,{asset:L.asset,base64:Buffer.from(L.text).toString("base64")});let{taskset:_,executionResources:O,...P}=h;if(!O)throw new Error("Derived imported package is missing execution resources.");let D=ve({schemaVersion:"openpond.tasksetPackage.v1",taskset:_,...O,modelResources:P,files:[...f.values()]}),M=ne({package:D,profileId:r.profileId,name:d.name,createdAt:z.created_at});return M.taskset=ie(M.taskset,d),{taskset:M.taskset,generatedFiles:M.generatedFiles,directoryId:String(M.taskset.environment.metadata.runtimeSourceTasksetId),source:d,sourcePackage:R,derived:h,imported:M}}let oe=`${h.taskset.id}-r${h.taskset.revision}-${Q({packageHash:h.taskset.contentHash,preparedAt:z.created_at}).contentHash}`,A=Re(d,z.created_at),Ie=new Map(h.taskset.tasks.map(f=>[f.id,f])),te=[];for(let f of h.taskset.graders)if(f.kind==="custom_verifier"){let _=f.verifierRef.path;te.some(O=>O.path===_)||te.push({path:_,role:"verifier",content:W(x.get(f.verifierRef.id),f.verifierRef)})}let V=Te({tasksetId:h.taskset.id,now:z.created_at,sourcePackageHash:h.taskset.contentHash,draft:{...A,policy:h.taskset.policy,tasks:A.tasks.map(f=>({...f,metadata:{...f.metadata,portableTaskRecord:Ie.get(f.id)}})),environment:{...A.environment,metadata:{...A.environment.metadata,runtimeSourceTasksetId:oe,portableExecutionResources:h.executionResources}},graders:Z(S,N,[...x.values()]),learningSignals:{...A.learningSignals,rewards:A.learningSignals.rewards.map(f=>({...f,rules:[{id:S.id,points:1,condition:"Execute the published Reward binding with its declared normalization, weights and required gates."}],artifactRef:S.id,metadata:{...f.metadata,rewardBinding:T(S)}}))},metadata:{...A.metadata,portableCapabilities:h.taskset.capabilities,taskDefinition:T(h.taskDefinition),rewardBinding:T(S),rewardExecution:{binding:S,rewards:N},derivedPortableMetadata:h.taskset.metadata,modelTasksetDerivation:h.taskset.metadata.modelTasksetDerivation}}});if(V.metrics=h.taskset.metrics,V.contentHash=G(V),V.revision!==h.taskset.revision)throw new Error("Derived local and portable Taskset revisions differ.");return{taskset:V,generatedFiles:te,directoryId:oe,source:d,sourcePackage:R,derived:h}}m(ut,"prepareModelTasksetSave");function ye(e,t,s){let i=t.project.profileId;for(let o of[s.sourcePackage,s.derived]){if(!o)continue;for(let l of o.assets)w(e,i,"asset",l);for(let l of o.rewards)w(e,i,"reward",l);w(e,i,"binding",o.rewardBinding),w(e,i,"package",o.taskset),w(e,i,"definition",o.taskDefinition);let c=o.executionResources??o.execution;c&&w(e,i,"asset",Y(c)),o.execution&&w(e,i,"asset",X(o.execution))}let a=s.taskset;e.get("SELECT content_hash FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[a.id,a.revision])&&b(409,"model_taskset_revision_conflict","The derived Taskset revision was already published. Refresh before saving.");let n=JSON.stringify(a);e.run("INSERT INTO tasksets (id, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status, payload = excluded.payload, updated_at = excluded.updated_at",[a.id,i,a.status,n,a.createdAt,a.updatedAt]),e.run("INSERT INTO taskset_revisions (taskset_id, revision, content_hash, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[a.id,a.revision,a.contentHash,i,a.status,n,a.createdAt,a.updatedAt]),e.run("UPDATE model_project_taskset_preparations SET state = 'committed' WHERE profile_id = ? AND operation_id = ?",[i,t.operationId])}m(ye,"commitPreparedModelTaskset");function Ee(e,t,s){let i=xe("sha256").update(g(t)).digest("hex"),a=t.project.profileId;s&&e.run("INSERT OR IGNORE INTO model_project_taskset_preparations (profile_id, operation_id, request_hash, created_at, state) VALUES (?, ?, ?, ?, 'preparing')",[a,t.operationId,i,new Date().toISOString()]);let r=e.get("SELECT request_hash, created_at FROM model_project_taskset_preparations WHERE profile_id = ? AND operation_id = ?",[a,t.operationId])??{request_hash:i,created_at:new Date().toISOString()};return r.request_hash!==i&&b(409,"model_operation_conflict","This save operation was already used with different Model configuration."),r}m(Ee,"recordModelTasksetPreparation");function b(e,t,s){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:t,message:s,retryable:!1,requestId:null,details:{}})}m(b,"fail");import{createHash as Me}from"node:crypto";function Oe(e,t){let s=K(t),i=e.get("SELECT request_hash, payload FROM model_project_save_operations WHERE profile_id = ? AND operation_id = ?",[s.project.profileId,s.operationId]);if(!i)return null;let a=Me("sha256").update(g(s)).digest("hex");return i.request_hash!==a&&y(409,"model_operation_conflict","This save operation was already used with different Model configuration."),F.parse(JSON.parse(i.payload))}m(Oe,"findModelProjectSave");function Et(e,t,s,i){e.exec("BEGIN IMMEDIATE");try{let a=be(e,t,s,i);return e.exec("COMMIT"),a}catch(a){throw e.exec("ROLLBACK"),a}}m(Et,"commitModelProjectSave");function be(e,t,s,i){let a=K(t);a.learning&&y(422,"model_learning_hosted_required","Create this Model in a hosted workspace to enable continual learning.");let r=Me("sha256").update(g(a)).digest("hex"),{project:n,operationId:o,expectedRevision:c}=a,l=Oe(e,a);if(l)return l;let d=e.get("SELECT payload FROM model_projects WHERE id = ?",[n.id]),k=d?F.parse(JSON.parse(d.payload)):null;k&&k.profileId!==n.profileId&&y(404,"model_not_found","Model is not available in this Profile."),(k?.revision??0)!==c&&y(409,"model_revision_conflict","Model changed since it was opened. Refresh before saving.");let v=Ne(e,a),R=re(v);R||Ae(e,a);let S=R?T(R):v?.metadata.rewardBinding===void 0?null:C.parse(v.metadata.rewardBinding);v&&n.trainingSetup.rewardBindingRef&&(!S||!I(S,n.trainingSetup.rewardBindingRef))&&!s&&y(409,"model_taskset_preparation_required","Changing this Reward requires publishing its model-owned Taskset revision."),s&&((!n.trainingSetup.tasksetRef||!I(n.trainingSetup.tasksetRef,T(s.source))||!n.trainingSetup.rewardBindingRef||!I(n.trainingSetup.rewardBindingRef,T(s.derived.rewardBinding)))&&y(409,"model_taskset_preparation_changed","The prepared Taskset differs from the selected configuration."),ye(e,a,s));let N=new Date().toISOString(),x=ue.parse({...n.trainingSetup,baseModel:n.trainingSetup.baseModel??n.defaultBaseModel,method:n.trainingSetup.method??(v?.authoringProvenance.buildIntent==="verifiable_reward"?"grpo":v?.authoringProvenance.buildIntent==="demonstrations"?"sft":null),...S?{rewardBindingRef:S}:{},...s?{rewardBindingRef:T(s.derived.rewardBinding),tasksetRef:T(s.taskset),tasksetRelease:null,recipe:null,...n.trainingSetup.evaluationTasksetRef&&I(n.trainingSetup.evaluationTasksetRef,T(s.source))?{evaluationTasksetRef:T(s.taskset)}:{}}:{}}),p=s?.derived??i??(v&&!R&&x.rewardBindingRef&&v.metadata.taskDefinition!==void 0&&v.metadata.rewardBinding!==void 0?ee(e,v,x.rewardBindingRef).sourcePackage:void 0),u=F.parse({...k,...n,trainingSetup:p?_e({setup:x,package:p}):x,schemaVersion:"openpond.modelProject.v2",revision:c+1,hosted:k?.hosted??null,tasksetSyncs:k?.tasksetSyncs??[],createdAt:k?.createdAt??N,updatedAt:N});return e.run(`INSERT INTO model_projects (id, profile_id, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?)
5
- ON CONFLICT(id) DO UPDATE SET payload = excluded.payload, updated_at = excluded.updated_at`,[u.id,u.profileId,JSON.stringify(u),u.createdAt,u.updatedAt]),e.run("INSERT INTO model_project_save_operations (profile_id, operation_id, request_hash, payload) VALUES (?, ?, ?, ?)",[u.profileId,o,r,JSON.stringify(u)]),u}m(be,"saveModelProjectInTransaction");function Ne(e,t){let s=t.project.trainingSetup.tasksetRef;if(!s){t.project.trainingSetup.tasksetRelease&&y(400,"model_taskset_required","Choose the Taskset corresponding to this release.");return}let i=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[s.id,s.revision]),a=i?E.parse(JSON.parse(i.payload)):null;return(!a||a.profileId!==t.project.profileId)&&y(404,"model_taskset_not_found","The selected Taskset revision is not available in this Profile."),a.contentHash!==s.contentHash&&y(409,"model_taskset_changed","The selected Taskset does not match its immutable content hash."),a}m(Ne,"assertTaskset");function Ae(e,t){let s=t.project.trainingSetup.rewardBindingRef;if(!s)return;function i(r,n){let o=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[t.project.profileId,r,n.id,n.revision]);o||y(404,"model_reward_unavailable","The exact Reward configuration is unavailable in this Profile.");let c=(r==="binding"?ae:ce).parse(JSON.parse(o.payload));return c.contentHash!==n.contentHash&&y(409,"model_reward_changed","The selected Reward does not match its immutable content hash."),q(c),c}m(i,"read");let a=ae.parse(i("binding",s));for(let r of a.sources)i("reward",r.reward)}m(Ae,"assertReward");function y(e,t,s){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:t,message:s,retryable:!1,requestId:null,details:{}})}m(y,"fail");function Nt(e,t){let{taskset:s,package:i}=t,a=s.profileId,r=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[s.id,s.revision]);if(r&&g(E.parse(JSON.parse(r.payload)))!==g(s))throw new Error("Imported Taskset revision conflicts with an existing immutable local revision.");let n=e.get("SELECT payload FROM tasksets WHERE id = ?",[s.id]),o=n?E.parse(JSON.parse(n.payload)):null;if(o&&o.profileId!==a)throw new Error("Imported Taskset belongs to another Profile.");w(e,a,"package",i.taskset);let c=i.modelResources;if(c){w(e,a,"definition",c.taskDefinition),w(e,a,"binding",c.rewardBinding);for(let d of c.rewards)w(e,a,"reward",d);for(let d of c.assets)w(e,a,"asset",d);w(e,a,"asset",Y({environment:i.environment,verifierSet:i.verifierSet})),c.execution&&w(e,a,"asset",X(c.execution))}let l=JSON.stringify(s);r||e.run("INSERT INTO taskset_revisions (taskset_id, revision, content_hash, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.revision,s.contentHash,a,s.status,l,s.createdAt,s.updatedAt]),(!o||o.revision<s.revision)&&e.run("INSERT INTO tasksets (id, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status, payload = excluded.payload, updated_at = excluded.updated_at",[s.id,a,s.status,l,s.createdAt,s.updatedAt])}m(Nt,"importTasksetPackageInTransaction");export{w as a,ie as b,ut as c,Oe as d,Et as e,be as f,Nt as g};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{k as ae}from"./chunk-E67M5WGY.js";import{g as Q,h as ee}from"./chunk-4N3UF3U5.js";import{Jb as W,Lb as X,Mb as Z,Rb as te,W as b,Y as h,_ as Y,ha as A,ia as U}from"./chunk-M4ZRCRJM.js";import{V as D,W as G,Xb as J,f as z,k as F,l as j,la as N,ma as q,ta as K,ua as V}from"./chunk-M6JRS5PA.js";import{ba as L,d as B}from"./chunk-4M3YW3EQ.js";import{e as M,i as $}from"./chunk-NJLULBTM.js";import{i as I,l as _,n as k}from"./chunk-VVNV4NNW.js";import{a as d}from"./chunk-FTQLQJQV.js";import{constants as E}from"node:fs";import{lstat as he,open as Re,readdir as we}from"node:fs/promises";import O from"node:path";function Ie(e){let t=Z(e.taskset),{agentSnapshot:a,harnessRelease:s}=e.releasedHarness?{agentSnapshot:M.parse(e.releasedHarness.agentSnapshot),harnessRelease:$.parse(e.releasedHarness.harnessRelease)}:fe(e.taskset,e.profile);if(s.agentSnapshot.id!==a.id||s.agentSnapshot.contentHash!==a.contentHash)throw new Error("Released Harness does not bind the supplied Agent snapshot.");let c=X(e.taskset),i=e.taskset.tasks.length?e.taskset.tasks:e.selectedTask?[e.selectedTask]:[];if(!i.length)throw new Error("A portable Taskset release requires at least one resolved task.");let{environmentRelease:n,verifierSetRelease:o,tasksetRelease:r}=W({taskset:e.taskset,selectedTasks:i,adapterId:e.adapterId??v(e.taskset),admittedTasksetRelease:e.tasksetRelease,rewardExecution:e.rewardExecution}),f=e.now??(()=>new Date().toISOString()),m=F({schemaVersion:"openpond.runManifest.v1",id:`run-manifest-${k([s.contentHash,r.contentHash,e.model]).slice(0,24)}`,harnessRelease:{id:s.id,contentHash:s.contentHash},tasksetRelease:{id:r.id,contentHash:r.contentHash},model:{provider:e.model.providerId,model:e.model.modelId,revision:null,artifactHash:null,tokenizerRevision:null,chatTemplateHash:null},runtimeTarget:{adapterId:e.adapterId??v(e.taskset),placement:"local",runtimeVersion:"desktop-v1",capabilityReceipt:k({environment:c,tools:t,capabilities:e.taskset.capabilities})},limits:{maxTurns:128,timeoutMs:e.taskset.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:null},approval:null,createdAt:f(),metadata:{sourceTasksetId:e.taskset.id,sourceTasksetRevision:e.taskset.revision,reasoningEffort:e.reasoningEffort??null}});return{agentSnapshot:a,harnessRelease:s,environmentRelease:n,verifierSetRelease:o,tasksetRelease:r,runManifest:m}}d(Ie,"compileDesktopHarnessContext");function fe(e,t){let a=e.profileRelease?{id:e.profileRelease.id,contentHash:y(e.profileRelease.contentHash)}:t?.git?.head?{id:`source-${R(t.git.head)}`,contentHash:y(t.git.head)}:null;return ae({sourceRelease:a,profileHead:t?.git?.head??null,skills:ge(t),agents:ke(t)})}d(fe,"compileTemporaryProfileHarness");function me(e){let t=e.artifacts.map(S),a=e.artifacts.find(i=>i.kind==="environment_state")??e.artifacts.find(i=>i.kind==="runtime_trace")??e.artifacts.find(i=>i.kind==="raw_model_response"),s=re(e.attempt,e.grade),c=e.grade.components.map(i=>({id:`grader-${R(i.graderId)}-${e.grade.id}`,contentHash:k(i),mediaType:"application/vnd.openpond.grader-evidence+json",sizeBytes:Buffer.byteLength(_(i))}));return z.parse(j({schemaVersion:"openpond.attemptReceipt.v1",id:`receipt-${k([e.manifest.contentHash,e.attempt.id,e.grade.id]).slice(0,24)}`,runManifest:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:e.attempt.taskId,seed:String(e.attempt.seed),terminal:!["infrastructure_failure","timeout","cancelled"].includes(s??""),failureClass:s,outputHash:e.attempt.infrastructureError?null:k(e.attempt.output),traceHash:a?y(a.sha256):k({attemptId:e.attempt.id,output:e.attempt.output,runtimeEventRefs:e.attempt.runtimeEventRefs,artifactRefs:e.attempt.artifactRefs,metadata:e.attempt.metadata}),artifactRefs:t,graderEvidenceRefs:c,startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,latencyMs:e.attempt.latencyMs,costUsd:e.attempt.costUsd,legacyAttemptRef:e.attempt.id,metadata:{legacyGradeRef:e.grade.id,rewardEligible:e.grade.rewardEligible,score:e.grade.score,passed:e.grade.passed,usage:e.attempt.metadata.usage??[]}}))}d(me,"projectDesktopAttemptReceipt");function _e(e){let t=me({manifest:e.context.runManifest,attempt:e.attempt,grade:e.grade,artifacts:e.artifacts}),a=e.context.tasksetRelease.tasks.find(l=>l.id===e.attempt.taskId);if(!a)throw new Error(`Task ${e.attempt.taskId} is absent from the admitted Taskset Release.`);let s=a.requiredOutputs??[],c=e.artifacts.filter(l=>l.kind==="output_artifact").map(l=>({path:typeof l.metadata.requiredOutputPath=="string"?l.metadata.requiredOutputPath:l.path,artifact:S(l),detectedMediaType:l.mediaType??null,status:"collected",parseStatus:se(l.metadata.parseStatus),schemaStatus:se(l.metadata.schemaStatus),evidenceRefs:[S(l)],metadata:{sourceArtifactId:l.id}})),i=K({id:`artifact-manifest-${t.id}`,attemptRef:{id:t.id,contentHash:t.contentHash},requiredOutputs:s,collectedArtifacts:c,createdAt:e.attempt.completedAt,metadata:{legacyAttemptRef:e.attempt.id}}),n=e.grade.components.map((l,C)=>pe({component:l,grader:e.context.verifierSetRelease.graders.find(w=>w.id===l.graderId),evidenceRef:t.graderEvidenceRefs[C]??null,gradeScored:e.grade.score!==null,boundResult:e.grade.rewardComposition?.results.find(w=>w.graderId===l.graderId)})),o=V({requiredOutputs:s,manifest:i}),r=ue(e.attempt,e.grade),f=o.some(l=>l.status==="unscorable"&&l.failureOwner==="collector"),m=o.some(l=>l.status==="scored"&&!l.passed),p=r.outcomeClass==="completed"&&f?{outcomeClass:"collector_failure",failureOwner:"collector"}:r.outcomeClass==="completed"&&m?{outcomeClass:"incomplete_output",failureOwner:"policy"}:r,u=q({id:`reward-${k([t.contentHash,e.context.verifierSetRelease.contentHash,i.contentHash,e.grade.id]).slice(0,24)}`,attemptRef:{id:t.id,contentHash:t.contentHash},verifierSet:e.context.verifierSetRelease,artifactManifest:i,...p,components:[...n,...o],createdAt:e.grade.createdAt,metadata:{legacyGradeRef:e.grade.id,legacyAttemptRef:e.attempt.id,...e.grade.rewardComposition?{rewardComposition:e.grade.rewardComposition}:{}}});return{attemptReceipt:t,artifactManifest:i,rewardReceipt:u}}d(_e,"projectDesktopCanonicalReceipts");function Me(e){let t=e.artifacts.find(i=>i.kind==="runtime_trace")??e.artifacts.find(i=>i.kind==="raw_model_response"),a=t?S(t):{id:`trace-${e.canonical.attemptReceipt.id}`,contentHash:e.canonical.attemptReceipt.traceHash,mediaType:"application/vnd.openpond.attempt-trace+json",sizeBytes:null},s=e.canonical.rewardReceipt.outcomeClass==="task_deadline"||e.canonical.rewardReceipt.outcomeClass==="infrastructure_timeout",c=e.canonical.rewardReceipt.outcomeClass==="cancelled";return J({id:`rollout-${k([e.canonical.attemptReceipt.contentHash,e.canonical.rewardReceipt.contentHash,a.contentHash]).slice(0,24)}`,attemptReceipt:e.canonical.attemptReceipt,rewardReceipt:e.canonical.rewardReceipt,artifactManifestRef:{id:e.canonical.artifactManifest.id,contentHash:e.canonical.artifactManifest.contentHash},tasksetRelease:{id:e.context.tasksetRelease.id,contentHash:e.context.tasksetRelease.contentHash},environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},harnessRelease:{id:e.context.harnessRelease.id,contentHash:e.context.harnessRelease.contentHash},taskId:e.attempt.taskId,split:e.attempt.split,model:e.context.runManifest.model,seed:String(e.attempt.seed),traceRef:a,optimizerSample:e.optimizerSample??null,environmentExecutions:[{id:`environment-execution-${e.attempt.id}`,environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},status:c?"cancelled":s?"timed_out":e.canonical.rewardReceipt.status==="scored"?"completed":"failed",startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,traceRefs:[a],metadata:{legacyAttemptRef:e.attempt.id,runtimeEventCount:e.attempt.runtimeEventRefs.length}}],startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,metadata:{source:"openpond.desktop-local-runtime",optimizerSamplePresent:!!e.optimizerSample}})}d(Me,"projectDesktopCanonicalRollout");function pe(e){if(!e.grader)throw new Error(`Grade component ${e.component.graderId} has no admitted Verifier definition.`);let t=(e.boundResult?e.boundResult.status==="scored":e.gradeScored)?"scored":"unscorable",a=t==="scored"&&e.component.rewardEligible,s=e.evidenceRef?[e.evidenceRef]:[];return{verifierId:e.component.graderId,verifierVersion:e.component.graderVersion,status:t,rawScore:t==="scored"?e.boundResult?.rawScore??e.component.score:null,normalizedScore:t==="scored"?e.boundResult?.normalizedScore??e.component.score:null,weight:e.grader.weight,passed:e.component.passed,hardGate:e.component.hardGate,rewardEligible:a,rewardContribution:a?e.component.score:null,failureOwner:e.component.passed?null:t==="scored"?"policy":"verifier",feedback:e.component.feedback?[e.component.feedback]:[],visibleEvidenceRefs:e.grader.privileged?[]:s,privilegedEvidenceRefs:e.grader.privileged?s:[],metadata:{judge:e.component.judge??null,calibrationStatus:e.component.calibrationStatus,legacyEvidenceRefs:e.component.evidenceRefs}}}d(pe,"portableRewardComponent");function ue(e,t){let a=G.safeParse(e.metadata.outcomeClass);if(a.success){let c=e.metadata.failureOwner===null?null:D.safeParse(e.metadata.failureOwner);if(c!==null&&!c.success)throw new Error("Attempt has an invalid explicit failure owner.");return{outcomeClass:a.data,failureOwner:c===null?null:c.data}}let s=re(e,t);return s?N({failureClass:s,timeoutKind:e.metadata.timeoutKind==="task_deadline"?"task_deadline":"infrastructure_timeout"}):t.score===null?{outcomeClass:"verifier_failure",failureOwner:"verifier"}:t.passed?{outcomeClass:"completed",failureOwner:null}:{outcomeClass:"policy_failure",failureOwner:"policy"}}d(ue,"canonicalOutcome");function se(e){return e==="passed"||e==="failed"?e:"not_requested"}d(se,"artifactValidationStatus");function ge(e){return(e?.skills??[]).filter(t=>t.enabled).map(t=>({id:`skill-${R(t.name)}`,path:`skills/${R(t.name)}/SKILL.md`,contentHash:y(t.sourceHash),sizeBytes:Math.max(0,t.charCount),mediaType:"text/markdown",visibility:"policy"}))}d(ge,"portableSkills");function ke(e){let t=new Map;for(let a of e?.agents??[])a.enabled&&t.set(a.id,k({name:a.name,path:a.path}));return[...t].map(([a,s])=>({id:`agent-${R(a)}`,path:`agents/${R(a)}/release.json`,contentHash:y(s),sizeBytes:0,mediaType:"application/vnd.openpond.agent-release+json",visibility:"policy"}))}d(ke,"portableAgents");function v(e){let t=e.environment.metadata.runtimeAdapterId;if(typeof t=="string"&&t.trim())return t.trim();let a=e.environment.metadata.benchmark;if(a&&typeof a=="object"&&!Array.isArray(a)){let s=Reflect.get(a,"id");if(typeof s=="string"&&s.trim())return`conformance:${s.trim()}`}return e.environment.kind==="work"?"openpond:desktop-work":e.environment.kind==="chat"?"openpond:desktop-text":`openpond:${R(e.environment.entrypoint)}`}d(v,"desktopTasksetRuntimeAdapterId");function S(e){return{id:e.id,contentHash:y(e.sha256),mediaType:e.mediaType??null,sizeBytes:e.sizeBytes}}d(S,"portableArtifact");function re(e,t){if(e.infrastructureError)return"infrastructure_failure";if(t.failureClass)return t.failureClass;let a=e.metadata.failureClass;return a==="policy_failure"||a==="grader_failure"||a==="environment_failure"||a==="infrastructure_failure"||a==="timeout"||a==="cancelled"?a:null}d(re,"attemptFailureClass");function y(e){return/^[a-f0-9]{64}$/.test(e)?e:k(e)}d(y,"hash");function R(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}d(R,"segment");async function Ne(e,t){if(e.metadata.taskDefinition!==void 0||e.metadata.rewardBinding!==void 0)return{taskset:e,generatedFiles:[]};let a=await he(t);if(!a.isDirectory()||a.isSymbolicLink())throw new Error("Taskset source must be a regular directory.");let s=new Map,c=0;async function i(n=""){for(let o of await we(O.join(t,n),{withFileTypes:!0})){let r=O.posix.join(n,o.name);if(o.isSymbolicLink())throw new Error("Taskset files cannot contain symbolic links.");if(o.name.startsWith(".env"))throw new Error("Environment files cannot be included in a Taskset package.");if(o.isDirectory()){await i(r);continue}if(!o.isFile())throw new Error("Taskset packages require regular files.");if(Q(r))continue;if(s.size>=1e4)throw new Error("Taskset source exceeds the file inventory limit.");let f=await Re(O.join(t,r),E.O_RDONLY|E.O_NOFOLLOW|E.O_NONBLOCK);try{let m=await f.stat();if(c+=m.size,!m.isFile()||c>h*3/4)throw new Error("Taskset source exceeds the package byte limit.");let p=Buffer.alloc(m.size),u=0;for(;u<p.length;){let l=await f.read(p,u,p.length-u,u);if(!l.bytesRead)throw new Error("Taskset source changed during capture.");u+=l.bytesRead}if((await f.read(Buffer.alloc(1),0,1,u)).bytesRead)throw new Error("Taskset source changed during capture.");s.set(r,p)}finally{await f.close()}}}return d(i,"visit"),await i(),ee(e,s,v(e))}d(Ne,"prepareAuthoredTasksetFiles");import{constants as H}from"node:fs";import{link as ye,lstat as Te,mkdir as x,mkdtemp as oe,open as Ae,readFile as ve,readdir as Se,rename as be,rm as ne,writeFile as ie}from"node:fs/promises";import g from"node:path";async function et(e,t){let a=t.metadata.importedPackageHash;if(a===void 0)return;if(typeof a!="string"||!e)throw new Error("Imported batch requires its package storage directory.");let s=await ce(e,a);if(!s.learningResources||s.taskset.id!==t.id||s.taskset.revision!==t.revision||k(L(s.taskset))!==k(t.metadata.learning))throw new Error("Imported batch differs from its pinned package.");return s}d(et,"readImportedLearningTasksetPackage");async function Ee(e,t,a=h){let s=A(t,a),c=g.join(e,"training","portable-packages");await x(c,{recursive:!0});let i=g.join(c,`${s.contentHash}.json`),n=await oe(g.join(c,".package-"));try{let o=g.join(n,"package.json");await ie(o,JSON.stringify(s),{flag:"wx",mode:384});try{await ye(o,i)}catch(r){if(r.code!=="EEXIST")throw r;await ce(e,s.contentHash,a)}}finally{await ne(n,{recursive:!0,force:!0})}}d(Ee,"cacheTasksetPackage");async function ce(e,t,a=h){if(!/^[a-f0-9]{64}$/.test(t))throw new Error("Invalid Taskset package cache identity.");let s=g.join(e,"training","portable-packages",`${t}.json`),c=await Ae(s,H.O_RDONLY|H.O_NOFOLLOW|H.O_NONBLOCK);try{let i=await c.stat();if(!i.isFile()||i.size>a)throw new Error("Taskset package cache must be a bounded regular file.");let n=Buffer.alloc(i.size),o=0;for(;o<n.length;){let f=await c.read(n,o,n.length-o,o);if(!f.bytesRead)throw new Error("Taskset package cache changed during read.");o+=f.bytesRead}if((await c.read(Buffer.alloc(1),0,1,o)).bytesRead)throw new Error("Taskset package cache changed during read.");let r=A(JSON.parse(n.toString("utf8")),a);if(r.contentHash!==t)throw new Error("Cached Taskset package differs from its saved receipt.");return r}finally{await c.close()}}d(ce,"readCachedTasksetPackage");async function tt(e){let t=A(e.package),a=te(e.taskset.profileId,t.contentHash);if(e.taskset.environment.metadata.runtimeSourceTasksetId!==a)throw new Error("Imported Taskset directory differs from its package identity.");let s=new Map,c=d((r,f)=>{if(g.isAbsolute(r)||r.includes("\\")||r.split("/").some(p=>!p||p==="."||p===".."))throw new Error("Taskset package file requires a safe relative path.");let m=s.get(r);if(m&&!Buffer.from(m).equals(Buffer.from(f)))throw new Error(`Taskset package files collide at ${r}.`);s.set(r,f)},"add");for(let r of t.files)c(r.asset.path,Y(r));for(let r of e.generatedFiles)c(r.path,Buffer.from(r.content,"utf8"));c("taskset.json",Buffer.from(JSON.stringify(e.taskset),"utf8"));let i=g.join(e.home,"training","tasksets");await x(i,{recursive:!0});let n=await oe(g.join(i,".package-import-")),o=g.join(i,a);try{for(let[r,f]of s)await x(g.dirname(g.join(n,r)),{recursive:!0}),await ie(g.join(n,r),f,{flag:"wx",mode:384});try{await be(n,o)}catch(r){if(!["EEXIST","ENOTEMPTY"].includes(r.code??""))throw r;let f=await Te(o);if(!f.isDirectory()||f.isSymbolicLink())throw new Error("Imported Taskset destination must be a regular directory.");let m=await le(o);if(JSON.stringify(m.sort())!==JSON.stringify([...s.keys()].sort()))throw new Error("Imported Taskset file inventory changed.");for(let[p,u]of s)if(!(await ve(g.join(o,p))).equals(Buffer.from(u)))throw new Error("Imported Taskset files differ from the pinned package.")}await Ee(e.home,t)}finally{await ne(n,{recursive:!0,force:!0})}}d(tt,"materializeImportedTasksetPackage");async function le(e,t=""){let a=[];for(let s of await Se(g.join(e,t),{withFileTypes:!0})){let c=g.posix.join(t,s.name);if(s.isSymbolicLink())throw new Error("Imported Taskset directories cannot contain symbolic links.");if(s.isDirectory())a.push(...await le(e,c));else if(s.isFile())a.push(c);else throw new Error("Imported Taskset packages require regular files.")}return a}d(le,"regularFiles");import{constants as P}from"node:fs";import{open as Oe,realpath as de}from"node:fs/promises";import T from"node:path";function dt(e,t){return t?new Set:new Set([...(e.modelResources?.assets??[]).map(a=>a.asset.id),...(e.learningResources?.assets??[]).map(a=>a.asset.id),...e.learningResources?b(e.learningResources).map(a=>a.asset.id):[]])}d(dt,"tasksetPackageInlineAssetIds");async function ft(e){let t=e.sources.length?await de(e.root):T.resolve(e.root),a=[],s=new Set,c=0,i=d((n,o)=>{if(s.has(n.id))throw new Error(`Duplicate local Taskset asset: ${n.id}.`);if(s.add(n.id),c+=4*Math.ceil(o.byteLength/3),c>h)throw new Error("Local Taskset files exceed the package envelope.");a.push({asset:n,base64:Buffer.from(o).toString("base64")})},"append");for(let n of e.sources){let o=I.parse(n.asset);if(!n.sourcePath||T.isAbsolute(n.sourcePath))throw new Error(`Taskset asset ${o.id} requires a relative source path.`);let r=T.resolve(t,n.sourcePath);if(!r.startsWith(`${t}${T.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);if(!(await de(r)).startsWith(`${t}${T.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);let m=await Oe(r,P.O_RDONLY|P.O_NOFOLLOW|P.O_NONBLOCK);try{let p=await m.stat();if(!p.isFile()||p.size!==o.sizeBytes)throw new Error(`Taskset asset ${o.id} differs from its immutable file size.`);if(4*Math.ceil(p.size/3)+c>h)throw new Error("Local Taskset files exceed the package envelope.");let u=Buffer.alloc(p.size),l=0;for(;l<u.length;){let w=await m.read(u,l,u.length-l,l);if(!w.bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);l+=w.bytesRead}if((await m.read(Buffer.alloc(1),0,1,l)).bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);i(o,u)}finally{await m.close()}}for(let n of[...e.content.modelResources?.assets??[],...e.content.learningResources?.assets??[]])s.has(n.asset.id)||i(n.asset,Buffer.from(B(n,n.asset),"utf8"));if(e.content.learningResources)for(let n of b(e.content.learningResources))s.has(n.asset.id)||i(n.asset,Buffer.from(n.base64,"base64"));if(e.fileOrder){if(new Set(e.fileOrder).size!==a.length||e.fileOrder.length!==a.length||e.fileOrder.some(o=>!s.has(o)))throw new Error("Saved package file order differs from its inventory.");let n=new Map(e.fileOrder.map((o,r)=>[o,r]));a.sort((o,r)=>n.get(o.asset.id)-n.get(r.asset.id))}return U({...e.content,files:a})}d(ft,"captureLocalTasksetPackage");export{Ie as a,_e as b,Me as c,v as d,Ne as e,et as f,Ee as g,ce as h,tt as i,dt as j,ft as k};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Ab as me,Ib as ue,Nb as fe,Ob as he,Y as ee,ha as te,hb as ae,ib as se,kb as ie,lb as ne,mb as re,ta as K,tb as F,ub as J,v as X,vb as oe,wb as ce,xb as de,yb as le,za as U,zb as pe}from"./chunk-M4ZRCRJM.js";import{b as A,c as E,d as $,f as j,k as L,l as z,m as d}from"./chunk-VNJAAYNQ.js";import{N as O,aa as Z,ba as Y,d as B,e as Q}from"./chunk-4M3YW3EQ.js";import{Ya as N}from"./chunk-PBZCXPPC.js";import{A as n}from"./chunk-PF56N7ZY.js";import{a as S}from"./chunk-FTQLQJQV.js";var xe=n.object({id:A,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(),Te=n.object({declarationId:A,leaseRef:n.string().trim().min(8).max(1e3),audience:xe.shape.audience,expiresAt:$}).strict(),He=n.object({adapterId:A,placement:n.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:E,runtimeVersion:n.string().trim().min(1).max(200),dataPlane:n.object({provider:A,dataPlaneId:A,cellId:A,runnerPoolId:A,runtimeImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:E}).strict().nullable()}).strict(),Ee=n.object({adapterId:A,kind:n.enum(["local","ssh","managed","custom"]),deviceOrPool:n.string().trim().min(1).max(1e3),capabilityReceipt:E,provider:A.nullable()}).strict(),Ae=n.object({adapterId:A,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:E}).strict(),be=n.object({schemaVersion:n.literal("openpond.harnessRunManifest.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),id:A,harnessRelease:j,datasetRelease:j,evidenceSets:n.array(j).max(1e4),model:n.object({source:n.string().trim().min(1).max(200),revision:n.string().trim().min(1).max(500),artifactHash:E.nullable(),tokenizerRevision:n.string().trim().min(1).max(500),chatTemplateHash:E}).strict(),recipe:n.object({method:n.string().trim().min(1).max(100),version:n.string().trim().min(1).max(200),configHash:E}).strict(),runtimeTarget:He,computeTarget:Ee,engine:Ae,resolvedBundleHash:E,secretLeaseRefs:n.array(Te).max(1e3),approval:n.object({approvalHash:E,approvedAt:$,maximumSpendUsd:n.number().nonnegative().nullable()}).strict(),createdAt:$}).strict(),we=be.extend({contentHash:E}).strict(),ke=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:j,datasetRelease:j,evidenceSetRelease:j.nullable(),files:n.array(n.object({path:n.string().trim().min(1).max(2e3),sha256:E,sizeBytes:n.number().int().nonnegative()}).strict()).max(1e5)}).strict(),Se=ke.extend({contentHash:E}).strict(),Ie=[{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}],V=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,D=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function Me(e){let t=[],a=e;for(let s of Ie)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);V.lastIndex=0;let r=V.test(a);V.lastIndex=0,r&&t.push("email address"),a=a.replace(V,"[REDACTED email]"),D.lastIndex=0;let o=D.test(a);return D.lastIndex=0,o&&t.push("phone number"),a=a.replace(D,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:r||o?"review":"passed",findings:t,redacted:a}}S(Me,"scanAndRedactEvidence");function qe(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),l=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(B(i,s)):void 0);if(!l||l.byteLength!==s.sizeBytes||z(l)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let p=`learning/assets/${d({task:o.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(p,new Uint8Array(l)),{id:s.id,sourceRefId:e.sourceId,artifactRef:p,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}}S(qe,"materializeLearningBatchAssets");function je(e){let t=Z(e),a=Y(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=qe({tasks:t.tasks,sourceId:o,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},l=[];for(let c of a.admissions){let v=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:O(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,T,y]of[["observed",v.submission.observedOutput,f.grade],["target",f.approvedTarget,f.targetGrade]]){let k=_e(y);T===null||k===null||l.push({id:`fixture-${h}-${c.taskId}`,taskId:c.taskId,label:k.passed?"positive":"negative",output:T,infrastructureError:null,expectedPassed:k.passed,expectedRewardEligible:k.rewardEligible,metadata:{gradeReceiptHash:y.contentHash,evidence:c.evidence,decision:c.decision}})}}if(!l.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 p=he(e.binding,e.rewards,e.assets),m=[];for(let c of t.graders){if(c.kind!=="custom_verifier")continue;let v=e.assets?.find(h=>h.id===c.verifierRef.id);if(!v)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:B(v,c.verifierRef)})}let w=K.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(v=>v.taskId===c.id),exampleOrigin:e.evidence.find(v=>v.id===c.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:p,graderFixtures:l,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:O(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:K.parse({...w,contentHash:U(w)}),release:t,generatedFiles:m,tasksetAssetBytes:s.tasksetAssetBytes}}S(je,"materializeLearningBatchTaskset");function _e(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"}}S(_e,"fixtureOutcome");function tt(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(l=>[l.id,l]))).values()){let i=e.assetBytes?.get(s.id),l=e.assets?.find(m=>m.id===s.id),p=i?.byteLength??(l?new TextEncoder().encode(l.text).byteLength:0);if(a+=p,a>ee)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):l&&t.push(l.text)}let r=Me(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=X.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:O(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 je({...e,source:o})}S(tt,"prepareReviewedLearningBatch");async function st(e){let t=structuredClone(e),{project:a,recipe:r,taskset:o,approval:s}=t,i=we.parse(t.manifest),l=Se.parse(t.bundleManifest),p=t.executionMode==="qualification",m=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!==l.qualificationSamples||i.qualificationSamples!==void 0&&(!p||i.qualificationSamples>m))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i.executionMode!==t.executionMode||l.executionMode!==t.executionMode)throw new Error("Managed submission execution mode differs from its immutable bundle.");if(p&&(t.evaluationSource||t.resumeFrom||t.rewardSource.kind!=="deterministic"))throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");let{contentHash:w,...c}=i,{contentHash:v,...f}=l;if(d(c)!==w||d(f)!==v||i.resolvedBundleHash!==v||d(i.harnessRelease)!==d(l.harnessRelease)||d(i.datasetRelease)!==d(l.datasetRelease)||d(i.evidenceSets)!==d(l.evidenceSetRelease?[l.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 h=a.trainingSetup.baseModel;if(!h||h.modelId!==i.model.source||h.revision!==i.model.revision||h.tokenizerRevision!==i.model.tokenizerRevision||h.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(r.method!=="grpo"||d(r)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved GRPO recipe and spend ceiling.");let T=n.object({wallTimeMs:n.number().positive()}).parse(r.resourceLimits);t.idempotencyKey!==void 0&&n.string().trim().min(16).max(191).parse(t.idempotencyKey);let y=Pe(l,t.files),k=p?null:J.parse(t.evaluationSource),R=y.find(g=>g.path===F);if(k&&(!R||d(JSON.parse(Buffer.from(R.content,"base64").toString("utf8")))!==d(k)))throw new Error("The evaluation source differs from the immutable training bundle.");if(p&&(R||y.some(g=>g.path==="dataset/train.json")||!y.some(g=>g.path==="dataset/qualification.json")||!y.some(g=>g.path==="qualification-source.json")))throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");if(!p&&y.some(g=>g.path==="dataset/qualification.json"||g.path==="qualification-source.json"))throw new Error("Qualification datasets cannot be prepared as training.");let M=k?await ce(k):null,P={schemaVersion:"openpond.managedRlPortableSubmission.v1",...p?{executionMode:"qualification"}:{},...t.origin?{origin:Q.parse(t.origin)}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${w}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:o,modelImprovementQualification:t.modelImprovementQualification??null,recipe:r,resolvedBundle:{manifest:l,files:y},validationTasks:k?.tasks??[],validationAssets:k?.assets??[]},q={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??w}`,sourceManifest:{id:i.id,contentHash:w},payload:P},H=await le({...q,contentHash:await de(q)}),C={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${w}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:Q.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:q.sourceManifest,harnessRelease:i.harnessRelease,taskset:o,tasksetRelease:{id:o.id,contentHash:o.contentHash},dataset:l.datasetRelease,...M?{evaluation:M}:{},evidenceSets:l.evidenceSetRelease?[l.evidenceSetRelease]:[]},job:{kind:"policy_optimize",...p?{executionMode:"qualification"}:{},baseModel:h,recipe:r,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:p?"managed_rl.policy.qualification":"managed_rl.policy.grpo",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,budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(T.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},u=await me({...C,contentHash:await pe(C)});return{artifact:H,submission:u}}S(st,"prepareManagedTrainingSubmission");function Pe(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||z(s)!==r.sha256)throw new Error(`Managed training bundle file ${o.path} changed before upload.`);return o})}S(Pe,"verifyFiles");var Be=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 nt(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let R=x(a.policyModel),M=x(a.referenceModel),P=x(a.dataset),q=d({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(H=>({id:H.id,artifactRef:H.artifactRef,prompt:H.prompt,chosen:H.chosen,rejected:H.rejected,approved:H.approved})),policyModel:R,referenceModel:M,dataset:P});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:d(["dpo-reference-logprobs",q]),invalidationHash:q}}}if(a.method==="ppo"){let R=x(a.policyOptimization),M=x(R.policyModel),P=x(R.referenceModel),q=x(R.optimizer),H=x(q.valueModel),C=x(R.dataset),u=x(R.reward),g=d(M),G=d(P),b=d(H);return{...a,policyOptimization:{...R,dataset:{...C,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...u,graderHash:d(e.graders)}},resume:{...x(a.resume),policyHash:g,referenceHash:G,valueModelHash:b}}}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=x(a.baseModel),l=x(a.dataset),p=x(a.rollout),m=x(a.optimizer),w=x(a.loss),c=x(a.resourceLimits),v=I(l.maxExamples,1),f=I(p.groupSize,2),h=I(p.maxOutputTokens,1),T=I(l.maxPromptTokens,1),y=I(m.maxSteps,1),k=I(m.iterations,2);return{...a,resourceLimits:{...c,maxGpuSeconds:c.maxGpuSeconds??Math.min(10800,Math.ceil(I(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:l.selectionStrategy,selectionSeed:p.seed,maxExamples:v},sampler:{temperature:p.temperature,topP:p.topP,maxOutputTokens:h,maxTurns:p.maxTurns,concurrency:p.concurrency},environment:{id:r.environmentId,version:r.environmentVersion,toolContractHash:s},reward:{graderId:r.graderId,graderHash:d(e.graders),learnedPreference:r.learnedPreference??null},kl:{coefficient:w.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:I(c.maxRollouts,v*f),maxEnvironmentExecutions:I(c.maxRollouts,v*f),maxInputTokens:v*f*T,maxOutputTokens:v*f*h,maxOptimizerSteps:y*k,wallTimeMs:I(c.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:p.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:f,normalization:"group_standardized",advantageEpsilon:typeof m.advantageEpsilon=="number"?m.advantageEpsilon:1e-8,loss:w.method??"grpo",clipRange:typeof m.clipRange=="number"?m.clipRange:.2,iterations:k,microbatchSize:I(m.microbatchSize,1),gradientAccumulationSteps:I(m.gradientAccumulationSteps,1),adamw:Be.parse(m.adamw)}}}}S(nt,"withAuthoritativeRecipeHashes");function x(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}S(x,"record");function I(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}S(I,"positiveInteger");function rt(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=ge({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:w})=>({id:m,contentHash:w})),agents:o.map(({id:m,contentHash:w})=>({id:m,contentHash:w}))},mediaType:"application/json",visibility:"policy"}),i=ae({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}}),l=ge({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),p=se({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${d([i.contentHash,l.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:l,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:p}}S(rt,"createPolicyHarnessContext");function ge(e){let t=L(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}}S(ge,"asset");function ot(e){let{taskset:t,modelProject:a,harnessRelease:r,tasksetRelease:o}=e,s=a.trainingSetup,i=e.executionMode==="qualification",l=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>l))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 p=i?te(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(p&&(p.modelResources||p.learningResources||d(t.tasks.map(fe))!==d(p.taskset.tasks)||ve(e.tasksetRelease)!==ve(p.taskset)))throw new Error("Qualification must preserve its ordinary source release and complete task population.");let m=j.parse(r),w=j.parse(o);if(e.openpondRelease,e.workerProtocol,U(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 v=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(p&&_(f,"qualification-source.json",p),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(g=>g.split==="train"),u.tasks),f.set(F,new TextEncoder().encode(L(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"?ne(e.harnessSource,m):re(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(g=>g.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");_(f,"harness/source-package.json",h)}_(f,"harness/execution.json",ie.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:h?"selected_release":"taskset_owned",harnessRelease:m,sourcePackageHash:h?.contentHash??null}));let T=ue(t,e.rewardExecution);if(p&&(!T||d(N(T.binding,T.rewards))!==d(p.taskset.graders)||p.taskset.graders.some(u=>u.kind==="model_judge"||u.kind==="human")))throw new Error("Qualification requires the source package's exact deterministic graders.");if(T){let u=e.verifierAssets??[],g=[...T.rewards.flatMap(b=>b.assets),...N(T.binding,T.rewards).flatMap(b=>b.kind==="custom_verifier"?[b.verifierRef]:b.kind==="model_judge"?[b.rubricRef]:[])],G=new Set(g.map(b=>b.id));if(new Set(u.map(b=>b.id)).size!==u.length||new Set(u.map(b=>b.asset.path)).size!==u.length||u.some(b=>!G.has(b.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let b of g){let W=u.find(Re=>Re.id===b.id);if(!W||b.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");B(W,b)}_(f,"reward-binding.json",{kind:"reward_binding_v1",binding:T.binding,rewards:T.rewards,assets:u})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");_(f,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:i?{...t.environment,metadata:{...t.environment.metadata,policySystemPrompt:t.objective}}:t.environment,capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),_(f,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),_(f,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let y=i?t.tasks.filter(u=>u.id===e.qualificationTaskId):t.tasks.filter(u=>u.split==="train");if(y.length>0)_(f,i?"dataset/qualification.json":"dataset/train.json",{schemaVersion:i?"openpond.qualificationDataset.v1":"openpond.datasetSplit.v1",...i?{selectedTaskId:e.qualificationTaskId}:{split:"train"},tasks:y}),ze({assets:f,tasks:y,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)_(f,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let k=Object.values(t.learningSignals).flat().filter(u=>u.approved);for(let u of k){let g=ye(u);f.set(`evidence/signals/${z(g)}.json`,g)}let R={id:`dataset_${t.id}_r${t.revision}`,contentHash:d({taskset:w,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,...i?{executionMode:"qualification",tasks:y}:{trainTasks:y}})},M=k.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:d({taskset:w,harnessRelease:m,datasetRelease:R,profileRelease:v,signals:k})}:null,P=ke.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},projection:"trainer",harnessRelease:m,datasetRelease:R,evidenceSetRelease:M,files:[...f.entries()].sort(([u],[g])=>u.localeCompare(g)).map(([u,g])=>({path:u,sha256:z(g),sizeBytes:g.byteLength}))}),q=Se.parse({...P,contentHash:d(P)}),H=be.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:R,evidenceSets:M?[M]:[],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:q.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:we.parse({...H,contentHash:d(H)}),resolvedBundleManifest:q,assets:f,profileRelease:v,harnessRelease:m,tasksetRelease:w,datasetRelease:R,evidenceSetRelease:M}}S(ot,"buildTasksetTrainingBundle");function ze(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||z(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}.`)}S(ze,"addTasksetAssets");function _(e,t,a){e.set(t,ye(a))}S(_,"addJsonAsset");function ye(e){return Buffer.from(L(e),"utf8")}S(ye,"bytes");function ve(e){return d({id:e.id,contentHash:e.contentHash})}S(ve,"releasedRefHash");export{He as a,Ee as b,Ae as c,we as d,Se as e,Me as f,tt as g,st as h,Be as i,nt as j,rt as k,ot as l};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{t as l}from"./chunk-HZLV773Y.js";import{a as f}from"./chunk-FTQLQJQV.js";function d(a,s){let{tasks:r,paths:i,policyPaths:c}=p(a.draft,s),o=a.draft.metadata.portableFileInventory,n=a.files.filter(e=>!c.has(e.path)||i.has(e.path)),t=new Set(n.map(e=>e.path));return l({schemaVersion:a.schemaVersion,files:n,draft:{...a.draft,tasks:r,metadata:{...a.draft.metadata,...Array.isArray(o)?{portableFileInventory:o.filter(e=>t.has(e.sourcePath))}:{},localDatasetTaskIds:s}}},Number.POSITIVE_INFINITY)}f(d,"projectLocalDatasetWorkspace");function p(a,s){let r=new Set(s);if(!r.size||r.size!==s.length||s.some(t=>!a.tasks.some(e=>e.id===t)))throw new Error("Select distinct existing local Dataset tasks.");for(let t of a.graderFixtures)r.add(t.taskId);let i=a.tasks.filter(t=>r.has(t.id)),c=new Set(i.flatMap(t=>(t.assets??[]).map(e=>e.artifactRef))),o=a.metadata.portableFileInventory,n=new Set;if(Array.isArray(o))for(let t of o)t.asset?.visibility==="policy"&&n.add(t.sourcePath);return{tasks:i,paths:c,policyPaths:n}}f(p,"localDatasetProjectionPaths");export{d as a,p as b};