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,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as F,b as H,d as _}from"./chunk-4BJGUCHY.js";import{k as j}from"./chunk-XLULTQLZ.js";import{a as R}from"./chunk-ZBBVRYU3.js";import{b as P,s as C,t as N,z as x}from"./chunk-YU3C6U5V.js";import{g as U}from"./chunk-FJ3HMHT6.js";import{s as D}from"./chunk-D5ADDBS5.js";import{b as I,c as T}from"./chunk-YR5ID2SS.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
2
+ import{a as F,b as H,d as _}from"./chunk-4BJGUCHY.js";import{k as j}from"./chunk-DTTFUANI.js";import{a as R}from"./chunk-WWQNMC7C.js";import{b as P,s as C,t as N,z as x}from"./chunk-YU3C6U5V.js";import{g as U}from"./chunk-LKKMLBOH.js";import{A as D}from"./chunk-M3FLEZ4E.js";import{b as I,c as T}from"./chunk-JCLTFDVW.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
3
3
  ${o.stdout}`;if(ht(r))return;throw new Error(`Fetch Cloud source parent failed: ${E(o)}`)}await w(t.cwd,["reset","--mixed",e],"Attach Cloud source snapshot to remote branch")}n(ft,"applyRemoteBranchParent");async function G(t){let e=await V(t.cwd,["push",t.repoUrl,`HEAD:${t.branch}`],t.apiKey);if(e.code!==0)throw new Error(`Push Cloud source to OpenPond Git failed: ${E(e)}`)}n(G,"pushGitHead");async function V(t,e,o){let r=Buffer.from(`openpond:${o}`,"utf8").toString("base64");return P("git",["-c",`http.extraHeader=Authorization: Basic ${r}`,...e],t)}n(V,"runGitWithAuth");function yt(t){let e=t instanceof Error?t.message:String(t);return e.includes("non-fast-forward")||e.includes("fetch first")||e.includes("remote contains work that you do not")}n(yt,"isNonFastForwardPushError");function ht(t){return t.includes("couldn't find remote ref")||t.includes("could not find remote ref")||t.includes("Remote branch")&&t.includes("not found")}n(ht,"isMissingRemoteRefOutput");function E(t){return(t.stderr||t.stdout||"Git command failed").trim().replace(/\s+/g," ").slice(0,500)}n(E,"formatGitError");async function w(t,e,o){let r=await P("git",e,t);if(r.code!==0)throw new Error(`${o} failed: ${E(r)}`)}n(w,"runGitOrThrow");var wt=new Set(["github_repo","internal_repo","template","manual"]);function Jt(t,e){return e&&t.status!=="active"?{...t,status:"active"}:t}n(Jt,"codexHistorySessionWithLiveStatus");async function Wt(){try{let t=p(await K({type:"list"})),e=L(t.organizations),o=(e.length>0?e:L(t.teams)).map(bt).filter(a=>!!a?.teamId),r=await Promise.all(o.map(async a=>{try{let l=p(await j({type:"project_list",payload:{teamId:a.teamId}}));return L(l.projects).map(c=>X(c,a)).filter(c=>!!c)}catch{return[]}})),i=new Map;for(let a of r.flat())i.set(`${a.teamId}:${a.id}`,a);return Array.from(i.values()).sort((a,l)=>{let c=Date.parse(a.updatedAt??"")||0,d=Date.parse(l.updatedAt??"")||0;return c!==d?d-c:a.name.localeCompare(l.name)})}catch{return[]}}n(Wt,"fetchCloudProjects");function bt(t){let e=s(t.teamId)??s(t.id);return e?{teamId:e,slug:s(t.slug),displayName:s(t.displayName)??s(t.name)}:null}n(bt,"normalizeOpenPondOrganization");function X(t,e){let o=s(t.id),r=s(t.teamId)??e.teamId;if(!o||!r||s(t.status)==="archived"||s(t.archivedAt))return null;let a=s(t.name)??s(t.slug)??o,l=$(t.sourceType);return{id:o,teamId:r,name:a,slug:s(t.slug),sourceType:l,sourceLabel:Y(t,l),defaultBranch:s(t.defaultBranch)??s(t.gitBranch),internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:e.displayName,organizationSlug:e.slug,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(X,"normalizeCloudProject");function $(t){return typeof t=="string"&&wt.has(t)?t:"manual"}n($,"normalizeCloudProjectSourceType");function Y(t,e){if(e==="github_repo"){let o=s(t.gitOwner),r=s(t.gitRepo);if(o&&r)return`${o}/${r}`}return e==="internal_repo"?s(t.internalRepoPath)??"Internal repo":e==="template"?s(t.templateRepoUrl)??s(t.templateSourceProjectId)??"Template":s(t.normalizedSourceIdentity)}n(Y,"cloudProjectSourceLabel");function qt(t){return typeof t=="boolean"?t:null}n(qt,"booleanValue");function p(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}n(p,"asRecord");function Vt(t){let e=p(t);return Object.keys(e).length>0?e:null}n(Vt,"nonEmptyRecord");function L(t){return Array.isArray(t)?t.map(p).filter(e=>Object.keys(e).length>0):[]}n(L,"asRecordArray");function s(t){return typeof t=="string"&&t.trim()?t.trim():null}n(s,"stringValue");function Xt(t){if(!t)return null;if(t==="request_only"||t==="coding_core")return t;throw new Error("hostedSourceDispatch must be one of request_only, coding_core.")}n(Xt,"parseHostedSourceDispatch");function jt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>e.trim()):[]}n(jt,"stringArrayValue");function Yt(t){let e=t.code===0||t.code===null?"completed":"failed",o=t.stdout.trim()||t.stderr.trim()||`Ran profile action ${t.action}.`,r=[],i=[];try{let a=JSON.parse(t.stdout),l=p(a),c=p(l.result),d=s(c.text)??s(c.summary)??s(c.message);d&&(o=d),r=jt(c.artifactRefs);let u=s(l.traceArtifactRef);i=u?[u]:[]}catch{}return{artifactRefs:r,output:o,responseSummary:{status:e==="completed"?"available":"failed",text:o},status:e,traceArtifactRefs:i}}n(Yt,"profileActionRunSummary");function Zt(t){let e=At(t.name),o=t.id.replace(/^local_/,"").replace(/[^a-z0-9]/gi,"").slice(0,16);return`desktop-${e}-${o||"project"}`}n(Zt,"internalRepoPathForLocalProject");function At(t){return t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"project"}n(At,"slugifyInternalRepoSegment");async function Qt(t){try{let e=await W(t.localProject,{repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch,commitMessage:t.commitMessage,fallbackReadme:t.fallbackReadme}),o=p(await j({type:"project_sync",projectId:t.targetProjectId,payload:{teamId:t.teamId}}).catch(()=>({})));return{rootPath:e.rootPath,branch:e.branch,headCommit:e.headCommit,fileCount:e.fileCount,byteCount:e.byteCount,skippedCount:e.skipped.length,initializedEmptyProject:e.initializedEmptyProject,transport:e.transport,syncPayload:o}}catch{let e=await J(t.localProject),o=e.entries.length===0,r=o?[{path:"README.md",type:"file",contentsBase64:Buffer.from(t.fallbackReadme,"utf8").toString("base64")}]:e.entries,i=o?Buffer.byteLength(t.fallbackReadme,"utf8"):e.totalBytes,a=p(await j({type:"project_source_upload",projectId:t.targetProjectId,payload:{teamId:t.teamId,entries:r,branch:t.branch,commitMessage:t.commitMessage,metadata:{source:"openpond-app-local-project-cloud-setup",transport:"api_source_upload"}}}));return{rootPath:e.rootPath,branch:t.branch,headCommit:e.headCommit,fileCount:r.length,byteCount:i,skippedCount:e.skipped.length,initializedEmptyProject:o,transport:"api_source_upload",syncPayload:a}}}n(Qt,"uploadLocalProjectCloudSource");async function te(t){try{let e=p(await j({type:"project_get",projectId:t.projectId,payload:{teamId:t.teamId}})),o=p(e.project);return Object.keys(o).length>0?o:t.fallback}catch{return t.fallback}}n(te,"sandboxProjectRecordOrFallback");async function ee(t){let e=p(await j({type:"project_upsert",payload:{teamId:t.teamId,name:t.projectName,sourceType:"internal_repo",normalizedSourceIdentity:t.internalRepoPath,defaultBranch:t.branch,sourceConfig:{sourceType:"internal_repo",sourceValue:t.internalRepoPath},metadata:{source:"openpond-app-local-project-cloud-setup",localProjectId:t.localProjectId}}})),o=p(e.project);if(Object.keys(o).length===0)throw new Error("OpenPond Cloud Project response did not include a project.");return o}n(ee,"upsertInternalSandboxProject");function oe(t,e,o,r){let i=X({...t,teamId:e},{teamId:e,slug:null,displayName:null});if(i)return i;let a=s(t.id);if(!a)throw new Error("OpenPond Cloud Project response did not include a project id.");return{id:a,teamId:e,name:s(t.name)??o,slug:s(t.slug),sourceType:$(t.sourceType),sourceLabel:Y(t,$(t.sourceType)),defaultBranch:s(t.defaultBranch)??s(t.gitBranch)??r,internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:null,organizationSlug:null,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(oe,"cloudProjectFromSandboxRecord");function re(t){if(!t)return{};let e=St(t.searchParams.get("limit"));return{...e?{maxEvents:e}:{},tail:t.searchParams.get("tail")==="1"}}n(re,"codexHistoryThreadReadOptions");function ne(t){return`${t}_turn_attachment_${Pt()}`}n(ne,"nextCodexHistoryTurnId");function St(t){if(!t)return;let e=Number.parseInt(t,10);if(!(!Number.isFinite(e)||e<=0))return Math.min(5e4,e)}n(St,"positiveIntegerParam");var It={"tools.web_search":!0,"tools.view_image":!0,"features.web_search_request":!0};function ae(t){return{...It,approvals_reviewer:t==="auto-review"?"auto_review":"user"}}n(ae,"codexHistorySessionConfig");import Z from"node:path";import{promises as Rt}from"node:fs";async function ue(t){let e=await Ct(t.workspacePath);return(await Rt.stat(e).catch(()=>null))?.isDirectory()?(await _({projectRoot:t.workspacePath,build:"always"}).catalog()).actions.map(a=>D.parse({...a,sourcePath:t.workspacePath,implementation:{...a.implementation,projectId:t.id,projectRoot:Z.resolve(t.workspacePath)}})):[]}n(ue,"localProjectActionCatalog");async function Q(t){return _({projectRoot:t.projectRoot,build:"always"}).run({actionId:t.actionId,input:t.value,runId:t.runId,idempotencyKey:t.idempotencyKey,signal:t.signal})}n(Q,"runLocalProjectAction");async function Ct(t){try{let e=await H(t);return Z.resolve(t,e.sourceDirectory??"openpond/actions")}catch(e){throw new Error(`Cannot load ${F}: ${e instanceof Error?e.message:String(e)}`)}}n(Ct,"projectActionSourceDirectory");var kt="https://api.openpond.ai";async function B(t={}){let e=await(t.loadAccountContext??R)(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required.");return{apiBaseUrl:_t(e),token:o}}n(B,"resolveHostedApiAccess");async function ye(t={}){return{...await B(t),teamId:Ut(t.teamId)}}n(ye,"resolveManagedAdapterUserAccess");function he(t){let e=new Headers;return t.startsWith("opk_")?(e.set("Authorization",`ApiKey ${t}`),e.set("openpond-api-key",t)):e.set("Authorization",`Bearer ${t}`),e}n(he,"hostedApiAuthHeaders");function _t(t){return k(t.apiBaseUrl)??k(t.account?.apiBaseUrl)??k(t.config.apiBaseUrl)??tt(t.account?.baseUrl)??tt(t.config.baseUrl)??kt}n(_t,"resolveApiBaseUrl");function Ut(t){let e=t?.trim();if(!e||!/^[A-Za-z0-9_-]{3,191}$/.test(e))throw new Error("Select an OpenPond workspace before using OpenPond Managed RL.");return e}n(Ut,"managedAdapterTeamId");function tt(t){let e=k(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(tt,"normalizeOpenPondWebBaseAsApi");function k(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(k,"normalizeOptionalUrl");async function et(t,e={}){let o=await(e.resolveAccess??B)(),r=await(e.fetch??I)(o.apiBaseUrl,o.token,`/v1/project-actions/${encodeURIComponent(t.projectId)}/actions/${encodeURIComponent(t.actionId)}?teamId=${encodeURIComponent(t.teamId)}`,{method:"POST",body:JSON.stringify({input:t.value,releaseId:t.releaseId,idempotencyKey:t.idempotencyKey,callerType:"work",callerId:t.callerId}),signal:t.signal,timeoutMs:900*1e3}),i=await T(r,"Run hosted Project Action");if(i.invocation.status==="failed")throw new Error(i.invocation.failureMessage||i.invocation.failureCode||"Hosted Project Action failed.");return i.invocation}n(et,"runHostedProjectAction");function _e(t){return n(async function(o){let r=p(o),i=s(r.action)??s(r.actionName);if(!i)throw new Error("Project Action name is required.");let a=p(r.metadata);if(s(a.execution)==="hosted"){let b=await et({projectId:A(a,"projectId"),teamId:A(a,"teamId"),releaseId:A(a,"releaseId"),actionId:i,value:r.input??{},idempotencyKey:s(a.toolCallId)?`${A(a,"turnId")}:${A(a,"toolCallId")}`:void 0,callerId:s(a.turnId)??void 0}),v=s(a.sessionId);return v&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:v,turnId:A(a,"turnId"),source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(b.resultJson),data:{openPondHostedProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},releaseId:b.releaseId,invocationId:b.id,traces:b.traceJson,outputs:b.outputJson}})),b}let l=s(a.projectId);if(!l)throw new Error("Project Action Project id is required.");let c=await t.resolveProjectRoot(l);if(!c)throw new Error("Project Action Project is not registered locally.");let d=s(a.sessionId),u=s(a.turnId)??`openpond_project_action_${Date.now()}`,f=s(a.toolCallId),h=await Q({projectRoot:c,actionId:i,value:r.input??{},runId:f??void 0,idempotencyKey:f?`${u}:${f}`:null});return d&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:d,turnId:u,source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(h.output),data:{openPondProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},runId:h.runId,traces:h.traces,outputs:h.outputs,outputDirectory:h.outputDirectory,durationMs:h.durationMs}})),h},"projectActionRunPayload")}n(_e,"createProjectActionRunPayload");function A(t,e){let o=s(t[e]);if(!o)throw new Error(`Hosted Project Action ${e} is required.`);return o}n(A,"requiredMetadata");export{K as a,Ft as b,Jt as c,Wt as d,qt as e,p as f,Vt as g,s as h,Xt as i,Yt as j,Zt as k,Qt as l,te as m,ee as n,oe as o,re as p,ne as q,ae as r,ue as s,B as t,ye as u,he as v,_e as w};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as A,b as $,c as Se,e as oe,f as Te,g as q,h as K,i as p,j as S,l as u,m as k,n as Ie,o as d,p as x,q as se,r as ht,w as Re}from"./chunk-NG2L6D7G.js";import{f as at,t as rt,v as re}from"./chunk-ABF3W2MO.js";import{$b as ut,G as ct,I as mt,L as pt,f as O,hc as lt,kc as gt,s as ot,tb as dt,w as st}from"./chunk-J572ANHX.js";import{Ia as Xe,J as ie,Ma as Ye,O as Ke,Ra as Ze,Ua as et,Ya as tt,eb as ae,lb as ye,qb as nt,ra as We,wb as it}from"./chunk-PBZCXPPC.js";import{t as Qe,v as Fe}from"./chunk-NJLULBTM.js";import{g as be,k as Le,n as w,o as xe}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as s}from"./chunk-FTQLQJQV.js";var C=e.string().trim().min(1).max(240),ve=d.extend({revision:e.number().int().positive()}).strict(),ft=ve.extend({teamId:C,jobId:C,plan:d,baseline:d,candidate:d,state:lt.shape.state,updatedAt:e.string().datetime()}).strict(),bt=e.object({schemaVersion:e.literal("openpond.trainingAcceptanceGroupPage.v1"),teamId:C,jobId:C,groups:e.array(ft).max(100),nextCursor:C.nullable()}).strict(),xt=e.object({cursor:C.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict();function yt(t){let n=s(i=>(C.parse(i.teamId),`/v1/training/jobs/${encodeURIComponent(C.parse(i.jobId))}/acceptance-groups`),"route");return{async acceptanceGroups(i,a={}){let r=xt.parse(a),o=new URLSearchParams({limit:String(r.limit)});r.cursor&&o.set("cursor",r.cursor);let m=bt.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 p("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?ve.parse({id:r.id,revision:r.revision,contentHash:r.contentHash}):null;if(o&&o.id!==a)throw new p("acceptance_group_identity_mismatch","The retained group reference differs from the requested group.");let m=o?`?revision=${o.revision}`:"",c=gt(await t(`${n(i)}/${encodeURIComponent(C.parse(a))}${m}`));if(c.manifest.teamId!==i.teamId||c.manifest.trainingJob.id!==i.jobId||c.manifest.id!==a||o&&(c.revision!==o.revision||c.contentHash!==o.contentHash))throw new p("acceptance_group_identity_mismatch","Acceptance evidence does not match the requested workspace, job or retained revision.");return c}}}s(yt,"createTrainingAcceptanceClient");var N=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(),St=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 V=e.string().regex(/^[a-f0-9]{64}$/),we=e.object({providerId:e.literal("claude-code"),configurationHash:V,executableHash:V,version:e.string().regex(/^2\.\d+\.\d+$/),capabilityHash:V,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(),mi=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."})}),pi=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:we,sourceHash:V,outputHash:V,traceHash:V,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 ce=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 Tt=e.object({schemaVersion:e.literal("openpond.experimentAttemptGrade.v1"),selectionHash:e.string().regex(/^[a-f0-9]{64}$/),grades:e.array(ie).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:Le.nullable(),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,n)=>{let{contentHash:i,...a}=t;w(a)!==i&&n.addIssue({code:"custom",message:"Experiment grading integrity failed."});let r=t.grades.flatMap(o=>o.components);(r.length!==t.grades.length||new Set(r.map(o=>o.graderId)).size!==r.length)&&n.addIssue({code:"custom",message:"Each selected criterion requires exactly one distinct grader result."});for(let o of t.grades){let{contentHash:m,...c}=o;w(c)!==m&&n.addIssue({code:"custom",message:"A retained criterion changed."});for(let I of o.components){let{contentHash:f,...y}=I;w(y)!==f&&n.addIssue({code:"custom",message:"A retained grader result changed."})}}});var h=e.string().trim().min(1).max(200),U=e.string().regex(/^[a-f0-9]{64}$/),Pe=e.discriminatedUnion("kind",[e.object({kind:e.literal("hosted_chat"),modelId:h,localRuntime:e.union([e.object({providerId:e.literal("custom-openai-compatible"),configurationHash:U,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict(),we,ce]).optional(),candidate:e.object({artifactId:h,contentHash:U,preparationId:h,dispatchId:h,baseProfileId:h,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),harness:nt.optional(),messages:St.optional(),maxOutputTokens:e.number().int().min(1).max(1e6).default(1e5),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict(),e.object({kind:e.literal("fixture"),fixtureId:h}).strict()]),mn=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptRequest.v1"),operationId:h,teamId:h,modelProjectId:h.nullable(),project:N.optional(),taskset:x,taskId:h,environmentSeed:e.number().int().min(0).max(2147483647).default(0),policy:Pe}).strict(),ji=e.object({modelProjectId:h.nullable(),taskset:x,afterTaskId:h.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Hi=e.object({modelProjectId:h.nullable(),taskset:x,available:e.boolean(),unavailableReason:e.string().max(1e3).nullable(),models:e.array(e.object({id:h,name:e.string().max(500),maximumOutputTokens:e.number().int().min(1).max(1e6).optional()}).strict()).max(200),tasks:e.array(e.object({id:h,split:We,inputPreview:e.string().max(500),fixtures:e.array(e.object({id:h,label:e.string().max(200)}).strict()).max(1e3)}).strict()).max(100),nextCursor:h.nullable()}).strict(),me=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptSummary.v1"),id:h,revision:e.number().int().positive(),request:mn,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),policySnapshot:e.object({modelId:h,provider:h,upstreamModelId:e.string().min(1).max(500),configurationHash:U}).strict().nullable(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),gradingStatus:e.enum(["not_started","pending","scored","unscorable","not_configured"]).default("not_started"),passed:e.boolean().nullable(),outputPreview:e.string().max(500).nullable(),error:e.object({code:h,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,n)=>{t.request.policy.kind==="fixture"!=(t.policySnapshot===null)&&n.addIssue({code:"custom",path:["policySnapshot"],message:"Fixture execution must not claim a model identity."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable||!t.completedAt)&&n.addIssue({code:"custom",message:"Completed attempts require retained results and confirmed cleanup."})}),Ei=e.object({modelProjectId:h,afterId:h.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Ai=e.object({items:e.array(me).max(100),nextCursor:h.nullable()}).strict(),Ci=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptResult.v1"),attempt:me,output:e.string().max(1048576).nullable(),messages:e.array(e.record(e.string(),e.unknown())).max(4002),composition:et.nullable(),grade:ie.nullable().optional(),experimentGrade:Tt.nullable().optional(),environment:e.object({status:e.enum(["completed","budget_exhausted","cancelled","timed_out","policy_failure","environment_failure"]),collected:e.boolean(),definition:x,initialStateHash:U.nullable(),finalStateHash:U.nullable(),attemptHash:U}).strict(),native:it.optional(),providerRequestIds:e.array(h).max(1001),contentHash:U}).strict().superRefine((t,n)=>{let i=t.attempt.request.policy.kind==="hosted_chat"?t.attempt.request.policy.harness:void 0;!!i!=!!t.native&&n.addIssue({code:"custom",path:["native"],message:"Standalone Harness results require their exact native evidence."}),t.native&&(!i||w(i)!==w(t.native.source)||t.native.modelConfigurationHash!==t.attempt.policySnapshot?.configurationHash||t.environment.initialStateHash!==null||t.environment.finalStateHash!==null||t.environment.status==="completed"&&(!t.environment.collected||t.output===null||t.native.partialOutputAvailable||t.native.outputHash!==w(t.output)))&&n.addIssue({code:"custom",path:["native"],message:"Native evidence differs from the admitted source, model or output."}),t.experimentGrade&&((t.grade||t.composition)&&n.addIssue({code:"custom",message:"Selected Experiment grading cannot claim another grade population."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.experimentGrade.score||t.attempt.gradingStatus!==t.experimentGrade.gradingStatus||t.attempt.passed!==(t.experimentGrade.score===null?null:t.experimentGrade.passed))&&n.addIssue({code:"custom",message:"Experiment grading differs from its retained attempt summary."})),t.grade&&(t.composition&&n.addIssue({code:"custom",path:["grade"],message:"An ordinary grade cannot also claim a Reward composition."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.grade.score||t.attempt.gradingStatus!==t.grade.gradingStatus||t.attempt.passed!==(t.grade.score===null?null:t.grade.passed))&&n.addIssue({code:"custom",path:["grade"],message:"Ordinary grade differs from its terminal attempt summary."}))});var B=e.string().trim().min(1).max(240),ke=e.string().regex(/^[a-f0-9]{64}$/),_e=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 z=e.object({kind:e.literal("hosted_harness"),modelId:B,maxOutputTokens:_e.shape.maxOutputTokens.removeDefault().optional(),temperature:_e.shape.temperature.removeDefault().optional(),topP:_e.shape.topP.removeDefault().optional(),localRuntime:ce.optional(),candidate:e.object({artifactId:B,contentHash:ke,preparationId:B,dispatchId:B,baseProfileId:B,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),sourceCandidate:ye.shape.sourceCandidate,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),profileRepositoryId:B,source:ye,modelConfigurationHash:ke,packageHash:ke,externalDatasetBinding:ae.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),It=e.string().regex(/^[a-f0-9]{64}$/),pn=e.discriminatedUnion("kind",[Pe.options[0],e.object({kind:e.literal("fixture")}).strict(),z]),G=e.object({schemaVersion:e.literal("openpond.modelTasksetRunRequest.v1"),operationId:_,teamId:_,modelProjectId:_.nullable(),name:e.string().trim().min(1).max(200).optional(),project:N.optional(),taskset:x,policy:pn,population:e.array(rt).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=>S([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."})}),Rt=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:N.optional(),operationId:_,taskset:x,policyKind:e.enum(["hosted_chat","fixture","hosted_harness"]),manifestHash:It,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),metricName:e.string().min(1).max(240),error:e.object({code:_,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,n)=>{Object.values(t.counts).reduce((i,a)=>i+a,0)!==t.totalCount&&n.addIssue({code:"custom",path:["counts"],message:"Run counts must account for the complete population."}),t.status!=="completed"&&t.score!==null&&n.addIssue({code:"custom",path:["score"],message:"Only completed evaluations publish a metric value."}),["completed","failed","cancelled"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&n.addIssue({code:"custom",message:"Terminal runs require complete population accounting."}),t.status==="cancelled"&&!t.cleanupComplete&&n.addIssue({code:"custom",message:"Cancelled runs require confirmed cleanup."}),t.resultAvailable&&!["completed","failed","cancelled"].includes(t.status)&&n.addIssue({code:"custom",message:"Run results require terminal population accounting."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable)&&n.addIssue({code:"custom",message:"Completed evaluations require retained results and confirmed cleanup."})}),vt=e.object({summary:Rt,request:G,manifest:re,policySnapshot:me.shape.policySnapshot}).strict(),Yi=e.object({modelProjectId:_.optional(),projectId:N.shape.id.optional(),afterId:_.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Zi=e.object({items:e.array(Rt).max(100),nextCursor:_.nullable()}).strict(),ea=e.object({schemaVersion:e.literal("openpond.modelTasksetRunResult.v1"),run:vt,receipts:e.array(at).min(1).max(1e4),metric:Ke.nullable(),contentHash:It}).strict();function dn(t,n){xe(n,"Taskset run manifest");let i=t.policy;if(i.kind!=="hosted_harness"||n.execution.kind!=="harness"||S(n.profileEvaluation)!==S(i.source)||S(n.execution.harnessRelease)!==S(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||S(n.population)!==S(t.population)||n.population.some(a=>a.receiptId!==`evaluation-${w(n.profileEvaluation?.externalDatasetBinding?[n.id,a.taskId,a.seed,a.fixtureId]:[n.id,a.taskId,a.seed]).slice(0,32)}`))throw new Error("Harness evaluation differs from its admitted source, package or model configuration.")}s(dn,"verifyHarnessExperimentManifest");async function ta(t){let n=vt.parse(t),{summary:i,request:a,manifest:r,policySnapshot:o}=n;if(xe(r,"Taskset run manifest"),r.contentHash!==i.manifestHash||r.id!==i.id||r.createdAt!==i.createdAt||i.teamId!==a.teamId||i.modelProjectId!==a.modelProjectId||S(i.project??null)!==S(a.project??null)||S(r.metadata.project??null)!==S(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||S(i.taskset)!==S(a.taskset)||r.tasksetRelease.id!==a.taskset.id||r.tasksetRelease.contentHash!==a.taskset.contentHash||S(r.population)!==S(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(dn(a,r),o!==null)throw new Error("Harness evaluations retain the native host model configuration.")}else if(r.policy.kind!=="model"||!o||o.modelId!==a.policy.modelId||r.policy.model.provider!==o.provider||r.policy.model.model!==o.upstreamModelId||r.policy.model.revision!==null||r.policy.model.artifactHash!==(a.policy.candidate?.contentHash??null)||r.policy.model.tokenizerRevision!==null||r.policy.model.chatTemplateHash!==null||r.policy.configurationHash!==await u({policy:a.policy,snapshot:o}))throw new Error("Evaluation model differs from its admitted policy.");return n}s(ta,"verifyModelTasksetRunDetails");var kt=e.string().min(1).max(200).refine(t=>!["__proto__","prototype","constructor"].includes(t),"Use an ordinary field name."),un=e.array(kt).min(1).max(20),wt=e.enum(["input","output","expectedOutput","evaluatorContext"]),ln=e.object({destination:wt,path:un,source:wt,sourcePath:e.array(kt).max(20)}).strict(),je=e.array(ln).max(100).superRefine((t,n)=>{for(let[i,a]of t.entries())t.slice(0,i).some(r=>r.destination===a.destination&&(Pt(r.path,a.path)||Pt(a.path,r.path)))&&n.addIssue({code:"custom",path:[i,"path"],message:"Mapped destination paths must not overlap."})});function Pt(t,n){return t.length<=n.length&&t.every((i,a)=>i===n[a])}s(Pt,"prefix");var R=e.string().trim().min(1).max(200),D=e.string().regex(/^[a-f0-9]{64}$/),He=e.object({id:R,revision:e.number().int().positive(),contentHash:D}).strict(),Ee=e.object({id:R,version:e.string().min(1).max(200),contentHash:D,name:e.string().trim().min(1).max(500).optional(),feedbackKey:Xe,release:He.nullable(),mappings:je.optional()}).strict(),Ae=e.object({id:R,version:e.string().min(1).max(200),contentHash:D,mappings:je}).strict(),ga=e.object({operationId:R,id:R.optional(),expectedRevision:e.number().int().nonnegative(),request:G,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Ae).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."})}),gn=e.object({schemaVersion:e.literal("openpond.experimentDefinition.v1"),id:R,teamId:R,revision:e.number().int().positive(),request:G,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Ee).min(1).max(100),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),ha=gn.extend({contentHash:D}),fa=e.object({operationId:R,definition:He}).strict(),ba=e.object({projectId:R.optional(),datasetHash:D.optional(),search:e.string().trim().max(200).optional(),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]).optional(),afterId:R.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),xa=e.object({definition:He.nullable(),configurationHash:D.optional(),admissionRequestHash:D.optional(),sourceExperimentId:R.optional(),maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Ee).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."})}),ya=e.object({operationId:R,profileRepositoryId:R,definitionId:R,modelId:R,localRuntime:z.shape.localRuntime,maxOutputTokens:z.shape.maxOutputTokens,temperature:z.shape.temperature,topP:z.shape.topP,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),maximumCostUsd:e.number().finite().positive().max(1e4),externalDatasetBinding:ae.optional(),sourceCandidate:z.shape.sourceCandidate}).strict(),Sa=e.object({request:G,manifest:re,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Ee).min(1).max(100)}).strict();var _t=e.string().trim().min(1).max(200),Ce=e.object({operationId:_t,request:G,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Ae).min(1).max(100).optional(),sourceExperimentId:_t.optional()}).strict().superRefine((t,n)=>{t.request.name||n.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before starting it."}),t.operationId!==t.request.operationId&&n.addIssue({code:"custom",path:["request","operationId"],message:"Use one operation identity for this Experiment."}),Math.round(t.maximumCostUsd*1e6)<1&&n.addIssue({code:"custom",path:["maximumCostUsd"],message:"The spending cap must be at least $0.000001."}),t.graders&&new Set(t.graders.map(i=>i.id)).size!==t.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})});var g=e.string().trim().min(1).max(200),H=e.string().regex(/^[a-f0-9]{64}$/),pe=e.object({id:g,contentHash:H}).strict(),za=e.object({available:e.boolean(),reason:e.string().max(1e3).nullable(),origin:O.nullable()}).strict(),jt=e.object({schemaVersion:e.literal("openpond.postTrainingAttachment.v1"),binding:e.object({kind:e.enum(["preparation","policy"]),id:g,revision:e.number().int().positive(),contentHash:H}).strict(),projectId:g.nullable(),automatic:e.boolean(),maximumSpendUsd:e.number().finite().positive().max(1e4),experiments:e.array(e.object({id:g,configuration:Ce}).strict()).min(1).max(20),acceptancePlan:ut.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 hn=e.object({baseline:pe,checks:e.array(e.object({id:g,sourceRunId:g,sourceManifestHash:H,targetConfigurationHash:H,executionHash:H,populationHash:H,evaluator:pe,feedbackKey:g,output:e.enum(["boolean","score"]),unit:e.string().min(1).max(80)}).strict()).min(1).max(100)}).strict(),fn=e.enum(["waiting_for_training","ready","preparing","queued","running","cleaning","completed","failed","blocked","cancelled","budget_exhausted"]),Ht=e.object({schemaVersion:e.literal("openpond.postTrainingSummary.v1"),id:g,teamId:g,jobId:g,revision:e.number().int().positive(),planHash:H,automatic:e.boolean(),candidate:pe.nullable(),state:fn,total:e.number().int().positive(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),requiredOutcome:e.enum(["none","pending","passed","failed","blocked"]),reason:e.string().max(500).nullable(),groupId:g.nullable(),experimentIds:e.array(g).max(20),updatedAt:e.iso.datetime()}).strict().superRefine((t,n)=>{t.completed+t.failed>t.total&&n.addIssue({code:"custom",message:"Evaluation totals are inconsistent."}),["preparing","queued","running","cleaning","completed"].includes(t.state)&&!t.candidate&&n.addIssue({code:"custom",message:"Evaluation execution requires the exact trained candidate."})}),bn=e.object({operationId:g,expectedRevision:e.number().int().positive(),planHash:H}).strict(),xn=e.object({operationId:g,attachment:jt}).strict(),yn=e.object({id:g,teamId:g,ownerUserId:g,attachment:jt,qualification:hn.nullable(),contentHash:H,createdAt:e.iso.datetime()}).strict();function Sn(t){let n=yn.parse(t);if(n.contentHash!==w({attachment:n.attachment,qualification:n.qualification}))throw new Error("The retained evaluation attachment or qualification changed.");return n}s(Sn,"verifyPostTrainingPlan");function Et(t){let{request:n}=t,i=s(r=>`/v1/training/jobs/${encodeURIComponent(g.parse(r))}/post-training`,"path");async function a(r,o,m){if(r===null)return null;let c=Ht.parse(r);if(c.teamId!==o||c.jobId!==m)throw new p("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=xn.parse(o),c=Sn(await n("/v1/training/post-training-plans",{method:"POST",body:JSON.stringify(m)}));if(c.teamId!==r||await u(c.attachment)!==await u(m.attachment))throw new p("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 I=bn.parse(c),f=await a(await n(`${i(o)}/${m}`,{method:"POST",body:JSON.stringify(I)}),r,o);if(!f||f.planHash!==I.planHash)throw new p("post_training_control_mismatch","Evaluation control did not retain the approved plan.");return f}}}s(Et,"createPostTrainingClient");var Ma=e.object({teamId:g,actorId:g,projectId:g.nullable(),configuration:Re,batches:e.array(ct).max(1e4),sources:e.array(st).max(1e4),definitions:e.array(ot).max(1e4),experiments:e.array(e.object({id:g,name:e.string().max(500),configuration:Ce,graders:e.array(e.object({feedbackKey:g,name:e.string().max(500),ref:pe}).strict()).max(100)}).strict()).max(1e4)}).strict(),Oa=e.enum(["prepare","start","cancel","publish","attach"]),Ua=e.object({teamId:g,actorId:g,configuration:Re,policy:mt,inspection:dt,iterations:e.array(e.object({iteration:pt,evals:Ht.nullable()}).strict()).max(100),nextCursor:g.nullable()}).strict(),Ga=e.object({id:g,expectedRevision:e.number().int().positive(),policyHash:H,operationId:g,action:e.enum(["pause","resume","reserve","cancel-iteration","retry-iteration"]),iterationId:g.optional(),iterationRevision:e.number().int().positive().optional()}).strict();var W=e.string().trim().min(1).max(191),de=e.string().regex(/^[a-f0-9]{64}$/),At=e.object({schemaVersion:e.literal("openpond.checkpointRecoveryResourceApproval.v1"),ownerUserId:W,teamId:W,sourceJobId:W,sourceJobVersion:e.number().int().positive(),sourceInputManifestSha256:de,checkpointId:W,adapterSha256:de,resumeSha256:de,idempotencyKey:e.string().trim().min(16).max(191),approvedAt:e.iso.datetime({offset:!0}),maximumSpendUsd:e.number().positive().finite().max(30).refine(t=>Number(t.toFixed(6))===t,"Recovery spend must use whole microdollars"),maximumGpuSeconds:e.number().int().positive().max(21600),maximumWallSeconds:e.number().int().positive().max(21600)}).strict(),X=At.extend({approvalHash:de}).strict().superRefine((t,n)=>{t.maximumGpuSeconds>t.maximumWallSeconds&&n.addIssue({code:"custom",path:["maximumGpuSeconds"],message:"Recovery GPU duration exceeds its wall"})});async function Tn(t){let n=At.parse(t);return X.parse({...n,approvalHash:await u(n)})}s(Tn,"createTrainingCheckpointRecoveryResourceApproval");var qe=e.object({resourceApproval:X.optional(),mode:e.literal("evaluation_only").optional(),evaluationGpuType:e.enum(["NVIDIA A100 80GB PCIe","NVIDIA A100-SXM4-80GB","NVIDIA H100 80GB HBM3"]).optional(),expectedVersion:e.number().int().positive(),checkpointId:W,idempotencyKey:e.string().trim().min(16).max(191),maximumSpendUsd:e.number().positive().finite(),maximumWallSeconds:e.number().int().positive().max(21600)}).strict().superRefine((t,n)=>{t.evaluationGpuType&&t.mode!=="evaluation_only"&&n.addIssue({code:"custom",path:["evaluationGpuType"],message:"GPU substitution requires explicit evaluation-only recovery"});let i=t.resourceApproval;i&&(i.sourceJobVersion!==t.expectedVersion||i.checkpointId!==t.checkpointId||i.idempotencyKey!==t.idempotencyKey||i.maximumSpendUsd!==t.maximumSpendUsd||i.maximumWallSeconds!==t.maximumWallSeconds)&&n.addIssue({code:"custom",path:["resourceApproval"],message:"Recovery resource approval does not match its request"})});var Y=e.object({mode:e.literal("reuse_only"),physicalWorkerId:e.string().trim().min(1).max(191),providerPodId:e.string().trim().min(1).max(191),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),baseProfileSha256:e.string().regex(/^[a-f0-9]{64}$/),gpuType:e.string().trim().min(1).max(200),sourceJobId:e.string().trim().min(1).max(191),sourceInputManifestSha256:e.string().regex(/^[a-f0-9]{64}$/),ownerTeamId:e.string().trim().min(1).max(191),deadlineAt:e.string().datetime({offset:!0})}).strict();var T=e.string().trim().min(1).max(191),Z=e.string().regex(/^[a-f0-9]{64}$/),Me=e.object({schemaVersion:e.literal("openpond.trainingPreparationRequest.v1"),teamId:T,operationId:T,projectId:T.nullable(),configuration:e.object({id:T,expectedRevision:e.number().int().positive(),expectedEtag:Z}).strict(),origin:O.optional(),batch:x,name:e.string().trim().min(1).max(191),maximumSpendUsd:e.number().finite().positive().max(1e6),gpuSelection:A.optional(),physicalPlacement:Y.optional()}).strict(),Ct=e.object({schemaVersion:e.literal("openpond.trainingPreparationPlan.v1"),id:T,creatorUserId:T,request:Me,requestHash:Z,source:e.lazy(()=>Ue),submissionHash:Z,createdAt:e.string().datetime({offset:!0})}).strict(),qt=Ct.extend({contentHash:Z}).strict(),Oe=e.object({schemaVersion:e.literal("openpond.trainingPreparationReceipt.v1"),plan:qt,revision:e.number().int().positive(),state:e.enum(["prepared","submitted","cancelled"]),jobId:T.nullable()}).strict().superRefine((t,n)=>{t.state==="submitted"!=!!t.jobId&&n.addIssue({code:"custom",path:["jobId"],message:"Only submitted preparations identify a job."})}),ze=e.object({teamId:T,planHash:Z,expectedRevision:e.number().int().positive(),estimateReview:$.optional()}).strict(),zt=e.object({projectId:T.optional(),state:e.enum(["prepared","submitted","cancelled"]).optional(),afterId:T.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Mt=e.object({schemaVersion:e.literal("openpond.trainingPreparationPage.v1"),teamId:T,items:e.array(Oe).max(100),nextCursor:T.nullable()}).strict();async function Ot(t){let n=Oe.parse(t),{contentHash:i,...a}=n.plan;if(await u(a)!==i||await u(a.request)!==a.requestHash||a.source.modelProject.id!==a.request.configuration.id||await u(a.source.origin??null)!==await u(a.request.origin??null))throw new p("training_preparation_mismatch","The prepared training inputs changed.");return n}s(Ot,"parseAndVerifyTrainingPreparationReceipt");function Ut(t){async function n(i,a,r){let o=await Ot(i);if(o.plan.request.teamId!==a||r&&o.plan.id!==r)throw new p("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=T.parse(i),o=zt.parse(a),m=new URLSearchParams;for(let[f,y]of Object.entries(o))m.set(f,String(y));let c=Mt.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 p("training_preparation_page_mismatch","The preparation page does not match its workspace or cursor.");let I=await Promise.all(c.items.map(async f=>{let y=await n(f,r);if(o.projectId&&y.plan.request.projectId!==o.projectId||o.state&&y.state!==o.state)throw new p("training_preparation_page_mismatch","A preparation does not match the requested Project or state.");return y}));return{...c,items:I}},async prepareRun(i){let a=Me.parse(i),r=await n(await t("/v1/training/preparations",{method:"POST",body:JSON.stringify(a)}),a.teamId);if(r.plan.requestHash!==await u(a))throw new p("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(T.parse(a))}`),T.parse(i),a)},async startPreparation(i,a){let r=ze.parse(a),o=await n(await t(`/v1/training/preparations/${encodeURIComponent(T.parse(i))}/start`,{method:"POST",body:JSON.stringify(r)}),r.teamId,i);if(o.plan.contentHash!==r.planHash||o.state!=="submitted")throw new p("training_preparation_start_mismatch","The submitted run does not match the approved preparation.");return o},async cancelPreparation(i,a){let r=ze.parse(a),o=await n(await t(`/v1/training/preparations/${encodeURIComponent(T.parse(i))}/cancel`,{method:"POST",body:JSON.stringify(r)}),r.teamId,i);if(o.plan.contentHash!==r.planHash||o.state!=="cancelled")throw new p("training_preparation_cancel_mismatch","The preparation cancellation could not be verified.");return o}}}s(Ut,"createTrainingPreparationClient");var v=e.string().trim().min(1).max(191),L=e.string().regex(/^[a-f0-9]{64}$/),Ge=e.string().datetime({offset:!0}),P=e.number().finite().nonnegative(),Gt=e.discriminatedUnion("kind",[e.object({kind:e.literal("preparation"),id:v,planHash:L,expectedRevision:e.number().int().positive()}).strict(),e.object({kind:e.literal("configuration"),id:v,expectedRevision:e.number().int().positive(),expectedEtag:L,batch:x.nullable().default(null)}).strict(),e.object({kind:e.literal("submission"),submission:e.lazy(()=>De)}).strict()]),Dt=e.object({schemaVersion:e.literal("openpond.trainingEstimateRequest.v1"),teamId:v,source:Gt,gpuSelection:A.optional()}).strict(),ue=e.object({low:P,high:P}).strict().refine(t=>t.high>=t.low,"Planning range must be ordered"),Jt=e.object({phase:e.enum(["startup","baseline_evaluation","rollouts","optimization","checkpointing","backbone_materialization","final_evaluation","publication","cleanup","retention"]),resource:e.enum(["gpu","cpu","judge","storage","network"]),expectedUsd:P.nullable(),expectedSeconds:P.nullable(),planningRangeUsd:ue.nullable(),evidence:e.enum(["measured","configured_rate","unavailable"]),reason:e.string().trim().min(1).max(1e3).nullable()}).strict();function $t(t){return t.kind==="submission"?{kind:t.kind,id:t.submission.idempotencyKey,contentHash:t.submission.contentHash,revision:null}:t.kind==="preparation"?{kind:t.kind,id:t.id,contentHash:t.planHash,revision:t.expectedRevision}:{kind:t.kind,id:t.id,contentHash:t.expectedEtag,revision:t.expectedRevision}}s($t,"trainingEstimateSourceIdentity");var Nt=e.object({schemaVersion:e.literal("openpond.trainingEstimate.v1"),id:v,teamId:v,requestHash:L,inputHash:L,source:e.object({kind:e.enum(["preparation","configuration","submission"]),id:v,contentHash:L,revision:e.number().int().positive().nullable()}).strict(),status:e.enum(["available","partial","insufficient_evidence"]),currency:e.literal("USD"),createdAt:Ge,expiresAt:Ge,estimatorVersion:v,runtimeVersion:v,pricing:e.object({version:v,quoteExpiresAt:Ge.nullable()}).strict(),gpu:e.object({requested:A,resolved:e.object({availabilityId:v,gpuType:e.string().min(1).max(256),gpuCount:e.literal(1)}).strict().nullable(),customerHourlyUsd:P.nullable(),availability:e.enum(["available","limited","unavailable","unknown"])}).strict(),configuration:e.object({modelId:v,modelRevision:e.string().min(1).max(256),method:v,loraRank:e.number().int().positive().nullable(),adapterMode:e.enum(["residual_append","shared","sequential_merge"]).nullable(),groups:e.number().int().nonnegative().nullable(),rolloutConcurrency:e.number().int().positive().nullable(),maxOutputTokens:e.number().int().positive().nullable(),trainingRows:e.number().int().nonnegative().nullable(),evaluationRows:e.number().int().nonnegative().nullable(),retentionDays:e.number().int().positive().nullable(),approvedMaximumUsd:P.nullable()}).strict(),cost:e.object({expectedUsd:P.nullable(),planningRangeUsd:ue.nullable(),knownMinimumUsd:P,recommendedMaximumUsd:P.nullable(),minimumCleanupReserveUsd:P.nullable(),components:e.array(Jt).max(50)}).strict(),executionSeconds:e.object({expected:P.nullable(),planningRange:ue.nullable()}).strict(),queueWaitSeconds:e.object({expected:P,planningRange:ue.nullable()}).strict().nullable(),calibration:e.object({version:v,cohortHash:L,completedSamples:e.number().int().nonnegative(),partialSamples:e.number().int().nonnegative(),scope:e.enum(["workspace","authorized_aggregate"])}).strict(),assumptions:e.array(e.string().trim().min(1).max(1e3)).max(50),unknowns:e.array(e.string().trim().min(1).max(1e3)).max(50),review:$}).strict().superRefine((t,n)=>{(t.review.estimateId!==t.id||t.review.inputHash!==t.inputHash||t.review.requestHash!==t.requestHash||t.review.pricingVersion!==t.pricing.version||t.review.expiresAt!==t.expiresAt)&&n.addIssue({code:"custom",path:["review"],message:"Estimate review identity differs from the estimate"}),Date.parse(t.expiresAt)<=Date.parse(t.createdAt)&&n.addIssue({code:"custom",path:["expiresAt"],message:"Estimate must expire after its creation"}),t.status==="available"&&(t.cost.expectedUsd===null||t.executionSeconds.expected===null||t.unknowns.length>0)&&n.addIssue({code:"custom",path:["status"],message:"An available estimate requires complete cost and duration coverage"}),t.gpu.requested.mode==="manual"&&t.gpu.resolved&&(t.gpu.requested.availabilityId!==t.gpu.resolved.availabilityId||t.gpu.requested.gpuType!==t.gpu.resolved.gpuType)&&n.addIssue({code:"custom",path:["gpu"],message:"An explicit GPU offering cannot be substituted"})});function Vt(t){return{async estimate(n){let i=Dt.parse(n);i.source.kind==="submission"&&await le(i.source.submission);let a=Nt.parse(await t("/v1/training/estimates",{method:"POST",body:JSON.stringify(i)}));if(a.teamId!==i.teamId||a.requestHash!==await u(i)||await u(a.source)!==await u($t(i.source))||i.gpuSelection&&await u(a.gpu.requested)!==await u(i.gpuSelection))throw new p("training_estimate_scope_mismatch","The estimate does not match the requested workspace and exact configuration.");return a}}}s(Vt,"createTrainingEstimateClient");var ge=e.string().datetime({offset:!0}),Je=e.object({ticketId:e.string().trim().min(1).max(191),ticketNumber:e.number().int().positive().max(Number.MAX_SAFE_INTEGER),label:e.literal("Waiting for resources"),position:e.number().int().positive().nullable(),positionScope:e.literal("compatible_fair_queue"),enqueuedAt:ge,asOf:ge,estimate:e.object({revision:e.number().int().nonnegative(),estimatedStartAt:ge,expiresAt:ge,evidence:e.enum(["observed_capacity","measured_bootstrap","scheduled_release"])}).strict().nullable()}).strict().superRefine((t,n)=>{t.estimate&&Date.parse(t.estimate.expiresAt)<=Date.parse(t.asOf)&&n.addIssue({code:"custom",path:["estimate"],message:"An expired queue forecast must be returned as unavailable"})});var Lt=e.object({schemaVersion:e.literal("openpond.trainingHarnessSourcePublication.v1"),harnessRelease:be,sourcePackageHash:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().positive().max(67108864)}).strict();function Qt(t){let n=s(i=>{let a=be.parse(i);return`/v1/training/harness-sources/${encodeURIComponent(a.id)}/${a.contentHash}`},"route");return{async publishHarnessSource(i){k(i,67108864,"Training Harness source");let a=Bt(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=Lt.parse(await t(n({id:a.harnessRelease.id,contentHash:a.harnessRelease.contentHash}),{method:"PUT",body:JSON.stringify(a)}));if(o.harnessRelease.id!==a.harnessRelease.id||o.harnessRelease.contentHash!==a.harnessRelease.contentHash||o.sourcePackageHash!==a.contentHash)throw new Error("Published Harness source differs from the selected immutable package.");return o},async getHarnessSource(i){let a=await t(n(i),void 0,67108864);return k(a,67108864,"Training Harness source"),Bt(a,i)}}}s(Qt,"createTrainingHarnessSourceClient");function Bt(t,n){return typeof t=="object"&&t!==null&&Reflect.get(t,"schemaVersion")==="openpond.harnessPolicySourcePackage.v1"?Qe(t,n):Fe(t,n)}s(Bt,"validateSource");var M=e.string().trim().min(1).max(500),In=e.string().regex(/^[a-f0-9]{64}$/),he=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecisionRequest.v1"),teamId:M,jobId:M,artifact:d,evaluation:d,executionReceipt:d,decision:e.enum(["accepted","rejected"]),reason:e.string().trim().min(1).max(5e3),idempotencyKey:M,expectedDecision:d.nullable()}).strict(),Ft=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecision.v1"),id:M,request:he,revision:e.number().int().positive(),actor:e.object({userId:M,kind:e.enum(["user","api_key","agent_delegate"]),id:M}).strict(),decidedAt:e.string().datetime({offset:!0}),contentHash:In}).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 Kt(t){let{contentHash:n,...i}=t;return u(i)}s(Kt,"trainingCandidateDecisionHash");async function $e(t,n){k(t,32768,"Training candidate decision");let i=Ft.parse(t);if(i.contentHash!==await Kt(i))throw new p("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 p("candidate_decision_identity_mismatch","Training candidate decision belongs to a different team, Job or artifact.");if(n.request&&await u(i.request)!==await u(he.parse(n.request)))throw new p("candidate_decision_request_mismatch","Training candidate decision does not match the submitted review.");return i}s($e,"parseAndVerifyTrainingCandidateDecision");function Wt(t){function n(i){return`/v1/training/jobs/${encodeURIComponent(M.parse(i.jobId))}/candidates/${encodeURIComponent(d.parse(i.artifact).id)}/decision`}return s(n,"route"),{async candidateDecision(i,a={}){M.parse(i.teamId);let r=a.decision?d.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 $e(m.decision,i);if(r&&(c.id!==r.id||c.contentHash!==r.contentHash))throw new p("candidate_decision_identity_mismatch","Training candidate decision does not match the requested history entry.");return c},async recordCandidateDecision(i){let a=he.parse(i),r=await t(n(a),{method:"POST",body:JSON.stringify(a)});return $e(r,{...a,request:a})}}}s(Wt,"createTrainingCandidateDecisionClient");var Q=e.string().trim().min(1).max(500),ee=e.string().regex(/^[a-f0-9]{64}$/),Xt=e.object({taskId:Q,taskSha256:ee,resultSha256:ee,input:e.object({instruction:e.string().max(1e6),context:e.record(e.string(),e.unknown())}).strict(),output:e.string().max(1e6),outputSha256:ee,score:e.number().finite().min(0).max(1),evidence:e.object({kind:e.enum(["worker_command","hosted_trace","local_trace"]),id:Q}).strict()}).strict(),Yt=e.object({schemaVersion:e.literal("openpond.trainingEvaluationTaskPage.v1"),jobId:Q,teamId:Q,evaluation:d,kind:e.enum(["baseline","candidate"]),policyVersion:e.number().int().nonnegative(),taskset:x,panelSha256:ee,offset:e.number().int().nonnegative(),total:e.number().int().min(1).max(1e4),tasks:e.array(Xt).min(1).max(100),nextCursor:e.string().regex(/^[1-9]\d*$/).nullable(),contentHash:ee}).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 Zt(t){let{contentHash:n,...i}=t;return u(i)}s(Zt,"trainingEvaluationTaskPageHash");async function Ne(t,n){k(t,8388608,"Training evaluation task page");let i=Yt.parse(t),a=d.parse(n.evaluation);if(i.jobId!==Q.parse(n.jobId)||i.evaluation.id!==a.id||i.evaluation.contentHash!==a.contentHash||i.offset!==(n.offset??0)||n.teamId!==void 0&&i.teamId!==Q.parse(n.teamId))throw new p("evaluation_page_identity_mismatch","Evaluation results differ from the requested Job, evaluation, or page.");if(await Zt(i)!==i.contentHash)throw new p("evaluation_page_hash_mismatch","Evaluation task page content hash did not match.");for(let r of i.tasks)if(await u(r.output)!==r.outputSha256)throw new p("evaluation_output_hash_mismatch","A retained evaluation output hash did not match.");return i}s(Ne,"parseAndVerifyTrainingEvaluationTaskPage");var Rn=e.array(e.object({id:e.string().trim().min(1)}).catchall(e.unknown())).min(1).max(1e3),vn=e.object({binding:Ze,rewards:e.array(Ye).min(1).max(100)}).strict();async function wn(t){let n=t.rewardExecution?vn.parse(t.rewardExecution):null,i=Rn.parse(n?tt(n.binding,n.rewards):t.graders);if(new Set(i.map(r=>r.id)).size!==i.length)throw new Error("Training grader identities must be unique.");let a=await u({schemaVersion:"openpond.trainingGraderSet.v1",graders:i});return{kind:"deterministic",grader:{id:`training-graders-${a.slice(0,32)}`,contentHash:a},composer:n?{id:n.binding.id,contentHash:n.binding.contentHash}:null}}s(wn,"deterministicTrainingRewardSource");var Pn="evaluation-source.json",Ve=e.object({id:e.string().trim().min(1),clusterKey:e.string().trim().min(1),split:e.enum(["train","validation","frozen_eval"])}).passthrough(),en=e.object({schemaVersion:e.literal("openpond.trainingEvaluationSource.v1"),taskset:x,tasks:e.array(Ve).min(1).max(1e4),assets:e.array(e.object({path:e.string().trim().min(1).max(2e3),sha256:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().nonnegative(),encoding:e.literal("base64"),content:e.string().max(32*1024*1024)}).strict()).max(1e4)}).strict().superRefine((t,n)=>{let i=new Set;t.tasks.forEach((a,r)=>{a.split==="train"&&n.addIssue({code:"custom",path:["tasks",r,"split"],message:"Evaluation sources require held-out tasks."}),i.has(a.id)&&n.addIssue({code:"custom",path:["tasks",r,"id"],message:"Evaluation task identities must be unique."}),i.add(a.id)})});function kn(t,n){let i=e.array(Ve).min(1).max(1e4).parse(t),a=e.array(Ve).min(1).max(1e4).parse(n),r=new Set,o=new Set;for(let c of i){if(c.split!=="train")throw new Error("The training population contains a held-out task.");if(r.has(c.id))throw new Error("Training task identities must be unique.");r.add(c.id),o.add(c.clusterKey)}let m=new Set;for(let c of a){if(c.split==="train")throw new Error("The evaluation population contains a training task.");if(m.has(c.id))throw new Error("Evaluation task identities must be unique.");if(r.has(c.id)||o.has(c.clusterKey))throw new Error("Training and evaluation tasks or families overlap.");m.add(c.id)}}s(kn,"assertTrainingEvaluationIsolation");async function _n(t){let n=en.parse(t),i=await u(n);return{taskset:n.taskset,dataset:{id:`training-evaluation-${i.slice(0,32)}`,contentHash:i}}}s(_n,"trainingEvaluationSourceRef");var l=e.string().trim().min(1).max(500),b=e.string().regex(/^[a-f0-9]{64}$/),j=e.string().datetime({offset:!0}),jn=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:d,payload:e.unknown(),contentHash:b}).strict(),Hn=e.object({schemaVersion:e.literal("openpond.trainingInputArtifact.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),sourceManifest:d,artifactRef:e.string().trim().min(1).max(2e3),contentHash:b,sizeBytes:e.number().int().positive(),createdAt:j}).strict();async function En(t){let{contentHash:n,...i}=t;return u(i)}s(En,"trainingInputArtifactUploadHash");async function An(t){k(t,67108864,"Training input artifact");let n=jn.parse(t),i=await En(n);if(n.contentHash!==i)throw new p("content_hash_mismatch",`Training input artifact contentHash ${n.contentHash} does not match ${i}.`);return n}s(An,"parseAndVerifyTrainingInputArtifactUpload");var rn=e.enum(["reward_model_train","policy_optimize"]),Cn=e.enum(["queued","admitting","provisioning","running","stopping","cancelling","succeeded","failed","cancelled"]),qn=e.object({id:l,version:e.string().trim().min(1).max(200).nullable().default(null),required:e.boolean().default(!0)}).strict(),Ue=e.object({origin:O.optional(),modelProject:e.object({id:l,portableProjectId:l,revision:e.number().int().positive(),contentHash:b}).strict(),harnessRunManifest:d,harnessRelease:d,taskset:x,tasksetRelease:d,evaluation:e.object({taskset:x,dataset:d}).strict().nullable().optional(),dataset:d,evidenceSets:e.array(d).max(1e4)}).strict(),zn=e.object({kind:e.literal("reward_model_train"),baseModel:se,preferenceDatasetRelease:d,processorRelease:d,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(),Mn=e.object({kind:e.literal("deterministic"),grader:d,composer:d.nullable().default(null)}).strict(),On=e.object({kind:e.literal("learned_reward"),rewardModelVersion:d,qualificationReport:d.nullable().default(null),evaluationReferences:e.array(d).max(1e3).default([]),scorerArtifact:e.object({artifactRef:e.string().trim().min(1).max(2e3),contentHash:b,executionReceipt:d}).strict(),processorRelease:d,rewardComposerRelease:d}).strict(),on=se.extend({revision:e.string().regex(/^[a-f0-9]{40,64}$/),tokenizerRevision:e.string().regex(/^[a-f0-9]{40,64}$/),chatTemplateHash:b}).strict(),Un=e.object({kind:e.literal("policy_optimize"),executionMode:e.literal("qualification").optional(),baseModel:se,recipe:ht,rewardSource:e.discriminatedUnion("kind",[Mn,On]),resumeFrom:d.nullable().default(null)}).strict(),Gn=e.discriminatedUnion("kind",[zn,Un]),Dn=e.object({approvalHash:b,approvedAt:j,exportApproved:e.boolean(),maximumSpendUsd:e.number().nonnegative(),retentionDays:e.number().int().nonnegative().nullable(),region:e.string().trim().min(1).max(200).nullable().default(null)}).strict(),De=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:Ue,job:Gn,requestedCapabilities:e.array(qn).max(1e3),placementObjective:e.enum(["fast","balanced","economical"]),gpuSelection:A.optional(),physicalPlacement:Y.optional(),budget:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive()}).strict(),approval:Dn,contentHash:b}).strict().superRefine((t,n)=>{if(t.physicalPlacement&&(t.job.kind!=="policy_optimize"||t.job.resumeFrom||t.job.executionMode||t.job.recipe.continuation!==void 0)&&n.addIssue({code:"custom",path:["physicalPlacement"],message:"Reuse-only placement requires fresh-base policy training without continuation."}),t.job.kind==="policy_optimize"&&t.job.executionMode==="qualification"){let i=t.job;on.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 Jn(t){let{contentHash:n,...i}=t;return u(i)}s(Jn,"trainingJobSubmissionHash");async function le(t){k(t,1048576,"Training Job submission");let n=De.parse(t),i=await Jn(n);if(n.contentHash!==i)throw new p("content_hash_mismatch",`Training Job contentHash ${n.contentHash} does not match ${i}.`);return n}s(le,"parseAndVerifyTrainingJobSubmission");var $n=e.object({resourceApproval:X.optional(),mode:e.literal("evaluation_only").optional(),trainingWorkloadComplete:e.boolean().optional(),sourceJobId:l,checkpointId:l,policyVersion:e.number().int().positive(),completedGroups:e.number().int().positive(),optimizerMode:e.literal("continue")}).strict(),F=e.object({schemaVersion:e.literal("openpond.trainingJob.v2"),id:l,teamId:l,kind:rn,executionMode:e.literal("qualification").optional(),recovery:$n.optional(),modelProjectId:l,portableProjectId:l,sourceProjectRevision:e.number().int().positive(),submissionHash:b,state:Cn,queue:Je.optional(),phase:e.string().trim().min(1).max(200),version:e.number().int().nonnegative(),progress:e.number().min(0).max(1),rolloutProgress:e.object({groupsCompleted:e.number().int().nonnegative(),groupsTarget:e.number().int().nonnegative(),optimizerUpdatesApplied:e.number().int().nonnegative(),optimizerUpdatesSkipped:e.number().int().nonnegative()}).strict(),accruedSpendUsd:e.number().nonnegative(),terminalReason:e.string().trim().min(1).max(5e3).nullable(),createdAt:j,updatedAt:j,completedAt:j.nullable()}).strict(),Nn=e.object({schemaVersion:e.literal("openpond.trainingJobPage.v2"),jobs:e.array(F).max(1e3),nextCursor:e.string().trim().min(1).max(2e3).nullable()}).strict(),Vn=e.object({schemaVersion:e.literal("openpond.trainingJobEvent.v2"),id:l,jobId:l,sequence:e.number().int().nonnegative(),type:l,phase:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3).nullable(),data:e.record(e.string(),e.unknown()).default({}),createdAt:j}).strict(),Bn=e.object({schemaVersion:e.literal("openpond.trainingJobLog.v2"),jobId:l,sequence:e.number().int().nonnegative(),level:e.enum(["debug","info","warning","error"]),message:e.string().max(2e4),createdAt:j}).strict(),tn=e.object({expectedVersion:e.number().int().nonnegative()}).strict(),Ln=e.object({schemaVersion:e.literal("openpond.trainingJobOutput.v2"),id:l,jobId:l,kind:e.enum(["checkpoint","adapter","scorer","metrics","evaluation","trace","receipt"]),artifactRef:e.string().trim().min(1).max(2e3),contentHash:b,sizeBytes:e.number().int().nonnegative(),metadata:e.record(e.string(),e.unknown()).default({}),createdAt:j}).strict(),sn=e.object({schemaVersion:e.literal("openpond.trainingQualificationEvidence.v1"),baseModel:on,group:d,rolloutReceipts:e.array(d).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."})}),Be=e.object({schemaVersion:e.literal("openpond.trainingExecutionReceipt.v2"),id:l,teamId:l,jobId:l,submissionHash:b,manifestHash:b,recipeHash:b,capabilityHash:b,runtimeRelease:d,inputs:e.array(d).max(1e4),outputs:e.array(d).max(1e4),spendUsd:e.number().nonnegative(),durationSeconds:e.number().nonnegative(),cleanupComplete:e.boolean(),qualification:sn.optional(),issuer:l,issuedAt:j,signature:e.string().trim().min(1).max(1e4).nullable()}).strict();async function Qn(t){return u(Be.parse(t))}s(Qn,"trainingExecutionReceiptHash");async function no(t,n){let i=Be.parse(t),a=l.parse(n.id),r=b.parse(n.contentHash),o=await Qn(i);if(i.id!==a||o!==r)throw new p("execution_receipt_mismatch","The execution receipt identity or canonical content hash did not match.");if(n.teamId!==void 0&&i.teamId!==l.parse(n.teamId))throw new p("execution_receipt_team_mismatch","The execution receipt belongs to a different team.");if(n.jobId!==void 0&&i.jobId!==l.parse(n.jobId))throw new p("execution_receipt_job_mismatch","The execution receipt belongs to a different Training Job.");if((n.requireCleanup??!0)&&!i.cleanupComplete)throw new p("execution_cleanup_incomplete","The execution receipt does not attest complete terminal cleanup.");if(n.qualificationSubmission){let m=await le(n.qualificationSubmission);if(m.job.kind!=="policy_optimize"||m.job.executionMode!=="qualification")throw new p("qualification_submission_required","Expected an immutable qualification submission.");await Fn(i,{submissionHash:m.contentHash,baseModel:m.job.baseModel,outputs:n.outputs})}return i}s(no,"parseAndVerifyTrainingExecutionReceipt");async function Fn(t,n){let i=sn.parse(t.qualification);if(t.submissionHash!==n.submissionHash||!t.cleanupComplete)throw new p("qualification_receipt_mismatch","Qualification must attest the expected submission and complete cleanup.");if(n.baseModel&&await u(i.baseModel)!==await u(n.baseModel))throw new p("qualification_learner_mismatch","Qualification used a different original learner or tokenizer.");if(n.outputs?.some(a=>["checkpoint","adapter","scorer"].includes(a.kind)))throw new p("qualification_updated_artifact","Qualification must not publish trained artifacts or checkpoints.")}s(Fn,"assertTrainingQualificationReceipt");var Kn=e.object({schemaVersion:e.literal("openpond.trainingJobOutputs.v2"),outputs:e.array(Ln).max(1e4),receipt:Be.nullable()}).strict(),Wn=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(),fe=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}},Xn=e.object({workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),envelopeRank:e.number().int().positive().max(256),supportedRanks:e.array(e.number().int().positive().max(256)).max(256),qualification:e.object({evidenceRef:e.string().min(1),evidenceSha256:b}).strict().nullable(),continuation:e.object({sharedRequiresSameRank:e.literal(!0),mergedRequiresSameRank:e.literal(!0),residualAppendRequiresFreeCapacity:e.literal(!0),stageOptimizer:e.literal("reset"),interruptedRecoveryOptimizer:e.literal("restore")}).strict()}).strict().superRefine((t,n)=>{(new Set(t.supportedRanks).size!==t.supportedRanks.length||t.supportedRanks.some(i=>i>t.envelopeRank))&&n.addIssue({code:"custom",path:["supportedRanks"],message:"Supported ranks must be unique and fit the physical adapter envelope."}),t.supportedRanks.length&&!t.qualification&&n.addIssue({code:"custom",path:["qualification"],message:"Advertised ranks require immutable image qualification evidence."})});function io(t,n,i){return t.supportedRanks.includes(n)?i?i.mode==="residual_append"?i.parentEnabledRank+n<=t.envelopeRank:i.parentEnabledRank===n:!0:!1}s(io,"supportsTrainingPolicyLoraRank");var Yn=e.object({schemaVersion:e.literal("openpond.trainingCapabilities.v2"),capabilityHash:b,jobKinds:e.array(rn),methods:e.array(e.string().trim().min(1).max(200)),executionModes:e.array(e.enum(["training","qualification"])).optional(),policyLora:Xn.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(),estimates:e.object({schemaVersion:e.literal("openpond.trainingEstimate.v1")}).strict().optional(),limits:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive(),maximumArtifactBytes:e.number().int().positive()}).strict(),checkedAt:j,expiresAt:j}).strict();function nn(t){let n={};return new Headers(t).forEach((i,a)=>{n[a]=i}),n}s(nn,"headersRecord");function ao(t){let n=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function a(r,o,m=8388608){let I=o?.method===void 0||o.method.toUpperCase()==="GET"?3:1;for(let f=1;f<=I;f+=1){let y;try{let J=typeof t.headers=="function"?await t.headers():t.headers??{};y=await n(`${i}${r}`,{...o,headers:{accept:oe,...o?.body?{"content-type":oe}:{},...nn(J),...nn(o?.headers)}})}catch(J){if(f===I||o?.signal?.aborted||!an(null,J))throw J;await new Promise(cn=>setTimeout(cn,250*2**(f-1)));continue}let te=Ie(await y.text(),m,"Training API response");if(y.ok)return te;let ne=Zn(te,y.status);if(f===I||!an(y.status,ne))throw ne;await new Promise(J=>setTimeout(J,250*2**(f-1)))}throw new p("training_read_retry_exhausted","Training read retry loop exhausted without a response.")}return s(a,"request"),{postTraining:Et({request:a}),...Ut(a),...Vt(a),...yt(a),...Qt(a),...Wt(a),async capabilities(){return Yn.parse(E(await a("/v1/training/capabilities"),"capabilities"))},async gpuCatalog(){return Se.parse(E(await a("/v1/training/gpu-catalog"),"catalog"))},async stageArtifact(r){let o=await An(r);return Hn.parse(E(await a("/v1/training/artifacts",{method:"POST",body:JSON.stringify(o)}),"artifact"))},async createJob(r){let o=await le(r);return F.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",l.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 Nn.parse(await a(`/v1/training/jobs${m}`))},async getJob(r){return F.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}`),"job"))},async cancelJob(r,o){let m=tn.parse({expectedVersion:o});return F.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}/cancel`,{method:"POST",body:JSON.stringify(m)}),"job"))},async stopAfterGroup(r,o){let m=tn.parse({expectedVersion:o});return F.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}/stop-after-group`,{method:"POST",body:JSON.stringify(m)}),"job"))},async recoverCheckpoint(r,o){let m=qe.parse(o);if(m.resourceApproval){let{approvalHash:c,...I}=m.resourceApproval;if(I.sourceJobId!==r||await u(I)!==c)throw new p("content_hash_mismatch","Recovery resource approval does not bind this source request.")}return F.parse(E(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}/recover`,{method:"POST",body:JSON.stringify(m)}),"job"))},async events(r){return e.array(Vn).parse(E(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}/events`),"events"))},async outputs(r){return Kn.parse(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}/outputs`))},async evaluationTasks(r,o,m={}){let c=l.parse(r),I=d.parse(o),f=new URLSearchParams,y=m.cursor===void 0?void 0:e.string().regex(/^[1-9]\d*$/).parse(m.cursor),te=y===void 0?0:e.number().int().min(1).max(9999).parse(Number(y));y!==void 0&&f.set("cursor",y),m.limit!==void 0&&f.set("limit",String(e.number().int().min(1).max(100).parse(m.limit)));let ne=f.size?`?${f.toString()}`:"";return Ne(await a(`/v1/training/jobs/${encodeURIComponent(c)}/evaluations/${encodeURIComponent(I.id)}/tasks${ne}`),{jobId:c,evaluation:I,offset:te})},async logs(r){return e.array(Bn).max(1e5).parse(E(await a(`/v1/training/jobs/${encodeURIComponent(l.parse(r))}/logs`),"logs"))}}}s(ao,"createTrainingClient");function an(t,n){return t!==null?t===408||t===429||t>=500:n instanceof fe?n.retryable:n instanceof p?n.code==="invalid_error_response":n instanceof TypeError}s(an,"trainingReadFailureIsRetryable");function E(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}s(E,"unwrapObject");function Zn(t,n){let i=Wn.safeParse(t);return i.success?new fe(n,i.data):new p("invalid_error_response",`Training request failed with HTTP ${n} and an invalid error envelope.`)}s(Zn,"trainingApiError");export{ve as a,ft as b,bt as c,xt as d,G as e,vt as f,dn as g,ta as h,je as i,Ee as j,ba as k,xa as l,ya as m,Sa as n,Ce as o,X as p,Tn as q,qe as r,Y as s,Me as t,Ct as u,qt as v,Oe as w,ze as x,zt as y,Mt as z,Ot as A,Gt as B,Dt as C,Jt as D,$t as E,Nt as F,Je as G,Lt as H,he as I,Ft as J,Kt as K,$e as L,Xt as M,Yt as N,Zt as O,Ne as P,wn as Q,Pn as R,en as S,kn as T,_n as U,jn as V,Hn as W,En as X,An as Y,rn as Z,Cn as _,qn as $,Ue as aa,zn as ba,on as ca,Un as da,Gn as ea,Dn as fa,De as ga,Jn as ha,le as ia,$n as ja,F as ka,Nn as la,Vn as ma,Bn as na,tn as oa,Ln as pa,sn as qa,Be as ra,Qn as sa,no as ta,Fn as ua,Kn as va,Wn as wa,fe as xa,Xn as ya,io as za,Yn as Aa,ao as Ba};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{m as d}from"./chunk-UBCLPZSQ.js";import{a as n}from"./chunk-FTQLQJQV.js";import{access as m,readFile as g}from"node:fs/promises";import{createHash as h}from"node:crypto";import o from"node:path";import{fileURLToPath as w}from"node:url";var i="openpond-taskset-authoring",f="artifact.json",u=o.dirname(w(import.meta.url));async function P(e=process.cwd()){return(await p(e)).bundle}n(P,"loadTasksetAuthoringSkillBundle");async function p(e=process.cwd()){let s=await k(e),t=JSON.parse(await g(o.join(s,f),"utf8"));if(t.schemaVersion!==1||t.skillName!==i||!t.artifactVersion||!t.bundle||!/^[a-f0-9]{64}$/.test(t.contentHash))throw new Error("Bundled Taskset Authoring artifact is invalid.");let{contentHash:r,...a}=t;if(h("sha256").update(JSON.stringify(a)).digest("hex")!==r)throw new Error("Bundled Taskset Authoring artifact hash does not match.");for(let l of t.files)if(h("sha256").update(l.contents).digest("hex")!==l.sha256)throw new Error(`Bundled Taskset Authoring file hash does not match: ${l.path}`);return t}n(p,"loadTasksetAuthoringSkillArtifact");async function S(e=process.cwd()){let s=await k(e),t=await p(e),r=t.bundle,a=d.find(c=>c.name===i);if(!a)throw new Error("Taskset Authoring skill metadata is missing.");return{...a,path:o.join(s,"SKILL.md"),sourcePath:s,charCount:r.length,sourceHash:t.contentHash,validationMessages:[...a.validationMessages],resourceFiles:[...a.resourceFiles]}}n(S,"loadTasksetAuthoringProfileSkill");async function O(e=process.cwd()){let s=await S(e),t=await P(e);return{name:s.name,description:s.description,body:t,path:s.path,sourceHash:s.sourceHash,charCount:s.charCount,packagePath:s.sourcePath,resourceFiles:s.resourceFiles}}n(O,"readTasksetAuthoringProfileSkill");async function k(e=process.cwd(),s=process.execPath){let t=[process.env.OPENPOND_TASKSET_AUTHORING_SKILL_ROOT,o.resolve(e,"apps","cli","skills",i),o.resolve(e,"dist","skills",i),o.resolve(o.dirname(s),"skills",i),o.resolve(u,"skills",i),o.resolve(u,"..","skills",i)].filter(r=>!!r);for(let r of t)if(await m(o.join(r,f)).then(()=>!0,()=>!1))return r;throw new Error(`Bundled Taskset Authoring skill was not found. Checked: ${t.join(", ")}`)}n(k,"resolveTasksetAuthoringSkillRoot");export{p as a,S as b,O as c};
2
+ import{E as d}from"./chunk-M3FLEZ4E.js";import{a as n}from"./chunk-FTQLQJQV.js";import{access as m,readFile as g}from"node:fs/promises";import{createHash as h}from"node:crypto";import o from"node:path";import{fileURLToPath as w}from"node:url";var i="openpond-taskset-authoring",f="artifact.json",u=o.dirname(w(import.meta.url));async function P(e=process.cwd()){return(await p(e)).bundle}n(P,"loadTasksetAuthoringSkillBundle");async function p(e=process.cwd()){let s=await k(e),t=JSON.parse(await g(o.join(s,f),"utf8"));if(t.schemaVersion!==1||t.skillName!==i||!t.artifactVersion||!t.bundle||!/^[a-f0-9]{64}$/.test(t.contentHash))throw new Error("Bundled Taskset Authoring artifact is invalid.");let{contentHash:r,...a}=t;if(h("sha256").update(JSON.stringify(a)).digest("hex")!==r)throw new Error("Bundled Taskset Authoring artifact hash does not match.");for(let l of t.files)if(h("sha256").update(l.contents).digest("hex")!==l.sha256)throw new Error(`Bundled Taskset Authoring file hash does not match: ${l.path}`);return t}n(p,"loadTasksetAuthoringSkillArtifact");async function S(e=process.cwd()){let s=await k(e),t=await p(e),r=t.bundle,a=d.find(c=>c.name===i);if(!a)throw new Error("Taskset Authoring skill metadata is missing.");return{...a,path:o.join(s,"SKILL.md"),sourcePath:s,charCount:r.length,sourceHash:t.contentHash,validationMessages:[...a.validationMessages],resourceFiles:[...a.resourceFiles]}}n(S,"loadTasksetAuthoringProfileSkill");async function O(e=process.cwd()){let s=await S(e),t=await P(e);return{name:s.name,description:s.description,body:t,path:s.path,sourceHash:s.sourceHash,charCount:s.charCount,packagePath:s.sourcePath,resourceFiles:s.resourceFiles}}n(O,"readTasksetAuthoringProfileSkill");async function k(e=process.cwd(),s=process.execPath){let t=[process.env.OPENPOND_TASKSET_AUTHORING_SKILL_ROOT,o.resolve(e,"apps","cli","skills",i),o.resolve(e,"dist","skills",i),o.resolve(o.dirname(s),"skills",i),o.resolve(u,"skills",i),o.resolve(u,"..","skills",i)].filter(r=>!!r);for(let r of t)if(await m(o.join(r,f)).then(()=>!0,()=>!1))return r;throw new Error(`Bundled Taskset Authoring skill was not found. Checked: ${t.join(", ")}`)}n(k,"resolveTasksetAuthoringSkillRoot");export{p as a,S as b,O as c};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{m as r}from"./chunk-DTTFUANI.js";import{Ca as s,Da as a,Ea as d}from"./chunk-M3FLEZ4E.js";import{a as n}from"./chunk-FTQLQJQV.js";async function u(){return{...s.parse(await r({path:"/saved-work"})),webBaseUrl:i()}}n(u,"listHostedSavedWork");async function m(e){let t=a.parse(e);return r({path:"/saved-work",method:"POST",body:t})}n(m,"createHostedSavedWork");async function h(e,t){let o=d.parse(t);return r({path:`/saved-work/schedules/${encodeURIComponent(e)}`,method:"PATCH",body:o})}n(h,"updateHostedSavedWork");async function k(e){return r({path:`/saved-work/schedules/${encodeURIComponent(e)}`,method:"DELETE"})}n(k,"deleteHostedSavedWork");async function P(e,t){return r({path:`/saved-work/schedules/${encodeURIComponent(e)}/run`,method:"POST",body:{clientRequestId:t}})}n(P,"runHostedSavedWork");function i(e=process.env){let t=e.OPENPOND_HOSTED_WEB_URL?.trim()||e.OPENPOND_SANDBOX_BASE_URL?.trim()||e.OPENPOND_API_URL?.trim()||e.OPENPOND_SANDBOX_API_URL?.trim()||"https://api.openpond.ai",o=new URL(t);return o.hostname==="api.openpond.ai"||o.hostname.endsWith(".api.openpond.ai")?"https://openpond.ai":(o.pathname="",o.search="",o.hash="",o.origin)}n(i,"hostedWebBaseUrl");export{u as a,m as b,h as c,k as d,P as e,i as f};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{l as E}from"./chunk-J572ANHX.js";import{x as j}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as s}from"./chunk-FTQLQJQV.js";var m=e.string().trim().min(1).max(191),w=e.string().regex(/^[a-f0-9]{64}$/),O=e.discriminatedUnion("mode",[e.object({mode:e.literal("automatic"),objective:e.enum(["balanced","fast","economical"])}).strict(),e.object({mode:e.literal("manual"),availabilityId:m,gpuType:e.string().trim().min(1).max(256)}).strict()]),oe=e.object({estimateId:m,inputHash:w,requestHash:w,pricingVersion:m,expiresAt:e.string().datetime({offset:!0}),token:e.string().min(1).max(8192)}).strict(),re=e.object({schemaVersion:e.literal("openpond.trainingGpuCatalog.v1"),observedAt:e.string().datetime({offset:!0}),expiresAt:e.string().datetime({offset:!0}),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),supportedLoraRanks:e.array(e.number().int().positive()),pricingBasis:e.literal("accepted_compute_and_disk_hourly_before_credits"),offerings:e.array(e.object({availabilityId:m,gpuType:e.string().min(1).max(256),provider:m,region:e.string().min(1),dataCenterId:e.string().nullable(),gpuCount:e.number().int().positive(),gpuMemoryGb:e.number().positive(),stockStatus:e.enum(["High","Medium","Low"]),computeHourlyUsd:e.number().nonnegative(),diskHourlyUsd:e.number().nonnegative(),totalHourlyUsd:e.number().nonnegative()}).strict()).max(1e3)}).strict();var ie=2,se="application/vnd.openpond.training+json;version=2",x="application/vnd.openpond.model-project+json;version=2",le=1048576,ce=67108864,de=8388608;var d=class extends Error{static{s(this,"OpenPondProtocolError")}code;constructor(n,r){super(r),this.name="OpenPondProtocolError",this.code=n}};function A(t){return JSON.stringify(P(t))}s(A,"canonicalJson");function B(t){return new TextEncoder().encode(A(t)).byteLength}s(B,"canonicalJsonByteLength");async function k(t){let n=new TextEncoder().encode(A(t)),r=await globalThis.crypto.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(r),a=>a.toString(16).padStart(2,"0")).join("")}s(k,"canonicalSha256");function _(t,n,r){let a=B(t);if(a>n)throw new d("payload_too_large",`${r} is ${a} bytes; the maximum is ${n} bytes.`)}s(_,"assertCanonicalPayloadSize");function C(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.`)}}s(C,"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 i=t[a];if(i===void 0||typeof i=="function"||typeof i=="symbol")throw new d("non_json_value",`Canonical JSON cannot contain ${typeof i} at ${a}.`);r[a]=P(i)}return r}throw new d("non_json_value",`Canonical JSON cannot contain ${typeof t}.`)}s(P,"normalizeCanonicalJson");var M=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 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(),v=p.extend({revision:e.number().int().positive()}).strict(),f=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(),J=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),z=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:J,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),q=e.object({profileProjectId:o,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:p}).strict(),V=e.object({profileProjectId:o,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:u,definitionId:o,harnessRelease:p,tasksetRelease:p}).strict(),D=e.object({tasksetRef:v.nullable().default(null),evaluationTasksetRef:v.nullable().optional(),profileSource:q.nullable().optional(),profileEvaluation:V.nullable().optional(),rewardBindingRef:v.nullable().optional(),tasksetRelease:p.nullable().default(null),harnessRelease:p.nullable().default(null),baseModel:f.nullable().default(null),method:J.nullable().default(null),destinationId:o.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuSelection:O.optional(),continuationAdapterMode:e.enum(["residual_append","shared","sequential_merge"]).optional(),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:z.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),L=D,G=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(),Y=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(),X=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:f.nullable(),defaultDestinationId:o.nullable(),trainingSetup:D,hosted:G.nullable().default(null),tasksetSyncs:e.array(Y).max(1e4).default([]),createdAt:c,updatedAt:c}).strict(),U=X.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),F=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:o,expectedRevision:e.number().int().nonnegative(),project:U,learning:M.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."})}),Z=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(),K=e.object({id:o,name:e.string().min(1).max(500),available:e.boolean(),preference:f}).strict();function I(t){try{j(t,524288)}catch{throw new y(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return F.parse(t)}s(I,"parseModelProjectSaveRequest");async function Pe(t,n,r){j(t,524288);let a=U.parse(t);_(a,524288,"Model configuration");let i=r?M.parse(r):void 0,l=await k({project:a,expectedRevision:n,...i?{learning:i}:{}});return I({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${l}`,expectedRevision:n,project:a,...i?{learning:i}:{}})}s(Pe,"createModelProjectSaveRequest");var Q=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:f.nullable(),defaultDestinationId:o.nullable(),trainingSetup:L,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:f.nullable(),defaultDestinationId:o.nullable(),trainingSetup:L,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,revision:e.number().int().positive(),etag:u,createdAt:c,updatedAt:c}).strict(),W=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(),ee=e.object({project:b,resources:e.array(W).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(o).max(100)}).strict(),te=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(),y=class extends Error{static{s(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 N(t){let n={};return new Headers(t).forEach((r,a)=>{n[a]=r}),n}s(N,"headersRecord");function xe(t){let n=t.fetch??fetch,r=t.baseUrl.replace(/\/$/,"");async function a(i,l){let S=typeof t.headers=="function"?await t.headers():t.headers??{},g=await n(`${r}${i}`,{...l,headers:{accept:x,...l?.body?{"content-type":x}:{},...N(S),...N(l?.headers)}}),R=C(await g.text(),8388608,"Model Project API response");if(!g.ok){let T=te.safeParse(R);throw T.success?new y(g.status,T.data):new d("invalid_error_response",`Model Project request failed with HTTP ${g.status} and an invalid error envelope.`)}return R}return s(a,"request"),{async configurationCandidates(){return e.object({candidates:e.array(K).max(1e3)}).strict().parse(await a("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(i){let l=I(i);return Z.parse(await a("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async saveConfiguration(i){let l=I(i);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(i){_(i,524288,"Model Project sync");let l=Q.parse(i),S=await a(`/v1/model-projects/${encodeURIComponent(l.portableProjectId)}`,{method:"PUT",body:JSON.stringify(l)});return b.parse(H(S,"project"))},async list(){let i=await a("/v1/model-projects");return e.array(b).parse(H(i,"projects"))},async get(i){let l=await a(`/v1/model-projects/${encodeURIComponent(o.parse(i))}`);return ee.parse(l)}}}s(xe,"createModelProjectsClient");function H(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}s(H,"unwrapObject");export{O as a,oe as b,re as c,ie as d,se as e,le as f,ce as g,de as h,d as i,A as j,B as k,k as l,_ as m,C as n,p as o,v as p,f as q,z as r,L as s,U as t,Pe as u,Q as v,b as w,xe as x};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as k}from"./chunk-6DCXAXVD.js";import{A as h}from"./chunk-PF56N7ZY.js";import{a as i}from"./chunk-FTQLQJQV.js";import{createHash as J}from"node:crypto";var ie=h.object({models:h.array(h.object({slug:h.string().trim().min(1),display_name:h.string().trim().min(1),visibility:h.string(),priority:h.number().default(0),context_window:h.number().positive().nullable().optional(),input_modalities:h.array(h.string()).default([]),supported_reasoning_levels:h.array(h.object({effort:h.string()})).default([])})).max(500)});function j(e){let t=ie.parse(e).models.filter(n=>n.visibility==="list").sort((n,r)=>n.priority-r.priority),o=new Set;return t.map(n=>{if(o.has(n.slug))throw new Error("OpenAI returned a duplicate subscription model.");o.add(n.slug);let r=n.supported_reasoning_levels.map(s=>s.effort).filter(s=>["off","low","medium","high","xhigh","max"].includes(s));return k.parse({id:n.slug,providerId:"openai",displayName:n.display_name,source:"provider",contextWindow:n.context_window,capabilities:{streaming:!0,toolCalling:!0,reasoning:r.length>0,reasoningEfforts:r,vision:n.input_modalities.includes("image")}})})}i(j,"openAiSubscriptionModels");import{createHash as se,randomBytes as D}from"node:crypto";import{createServer as ae}from"node:http";var O="app_EMoamEEZ73f0CkXaXp7hrann",y="https://auth.openai.com",w=1455,I=300*1e3,de=5e3,le=3e3;function We(e){let t=null,o=null;async function n(){let{redirectUri:a}=await l(),d=ue(),u=R(D(32));o&&(o.reject(new Error("A previous OpenAI ChatGPT login was replaced.")),clearTimeout(o.timeout),o=null);let v=Date.now()+I;return new Promise((b,C)=>{o={pkce:d,state:u,resolve:b,reject:C,timeout:setTimeout(()=>{o=null,C(new Error("OpenAI ChatGPT login timed out."))},I)}}).then(b=>f(b)).catch(()=>{}).finally(()=>p()),{url:ce(a,d,u),redirectUri:a,expiresAt:v}}i(n,"startBrowserLogin");async function r(){let a=await fetch(`${y}/api/accounts/deviceauth/usercode`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({client_id:O})});if(!a.ok)throw new Error(`OpenAI device authorization failed: ${a.status}`);let d=await a.json();if(!d.device_auth_id||!d.user_code)throw new Error("OpenAI device authorization returned an incomplete response.");let u=Math.max(Number.parseInt(d.interval??"",10)||de/1e3,1)*1e3,v=Date.now()+I;return s({deviceAuthId:d.device_auth_id,userCode:d.user_code,intervalMs:u,expiresAt:v}).catch(()=>{}),{url:`${y}/codex/device`,userCode:d.user_code,expiresAt:v}}i(r,"startDeviceLogin");async function s(a){for(;Date.now()<a.expiresAt;){let d=await fetch(`${y}/api/accounts/deviceauth/token`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({device_auth_id:a.deviceAuthId,user_code:a.userCode})});if(d.ok){let u=await d.json();if(!u.authorization_code||!u.code_verifier)throw new Error("OpenAI device login returned an incomplete authorization response.");await f(await L(u.authorization_code,`${y}/deviceauth/callback`,{verifier:u.code_verifier}));return}if(d.status!==403&&d.status!==404)throw new Error(`OpenAI device login failed: ${d.status}`);await me(a.intervalMs+le)}throw new Error("OpenAI device login timed out.")}i(s,"pollDeviceLogin");async function l(){return t?{redirectUri:`http://localhost:${w}/auth/callback`}:(t=ae((a,d)=>{let u=new URL(a.url||"/",`http://localhost:${w}`);if(u.pathname!=="/auth/callback"){d.writeHead(404),d.end("Not found");return}let v=o,P=u.searchParams.get("error"),b=u.searchParams.get("error_description");if(P){c(b||P),d.writeHead(200,{"Content-Type":"text/html"}),d.end(A("Authorization Failed",b||P));return}let C=u.searchParams.get("code"),re=u.searchParams.get("state");if(!C){c("Missing authorization code."),d.writeHead(400,{"Content-Type":"text/html"}),d.end(A("Authorization Failed","Missing authorization code."));return}if(!v||re!==v.state){c("Invalid OAuth state."),d.writeHead(400,{"Content-Type":"text/html"}),d.end(A("Authorization Failed","Invalid OAuth state."));return}o=null,clearTimeout(v.timeout),L(C,`http://localhost:${w}/auth/callback`,v.pkce).then(v.resolve).catch(v.reject),d.writeHead(200,{"Content-Type":"text/html"}),d.end(A("Authorization Successful","You can close this window and return to OpenPond."))}),await new Promise((a,d)=>{t.once("error",d),t.listen(w,()=>{t.off("error",d),a()})}),{redirectUri:`http://localhost:${w}/auth/callback`})}i(l,"ensureOAuthServer");function c(a){let d=o;o=null,d&&(clearTimeout(d.timeout),d.reject(new Error(a)))}i(c,"failBrowserOAuth");function p(){let a=t;t=null,a&&a.close()}i(p,"stopOAuthServer");async function f(a){let d=a.access_token?.trim()||null,u=a.refresh_token?.trim();if(!u)throw new Error("OpenAI login did not return a refresh token.");await e.saveCredential({accessToken:d,refreshToken:u,expiresAt:Date.now()+(a.expires_in??3600)*1e3,accountId:z(a)})}return i(f,"saveTokens"),{startBrowserLogin:n,startDeviceLogin:r}}i(We,"createOpenAiSubscriptionAuthService");function ce(e,t,o){let n=new URLSearchParams({response_type:"code",client_id:O,redirect_uri:e,scope:"openid profile email offline_access",code_challenge:t.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:o,originator:"openpond"});return`${y}/oauth/authorize?${n.toString()}`}i(ce,"buildAuthorizeUrl");async function L(e,t,o){let n=await fetch(`${y}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:e,redirect_uri:t,client_id:O,code_verifier:o.verifier}).toString()});if(!n.ok)throw new Error(`OpenAI token exchange failed: ${n.status}`);return await n.json()}i(L,"exchangeCodeForTokens");async function B(e){let t=await fetch(`${y}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:O}).toString()});if(t.status===401)throw new Error("Your OpenAI ChatGPT sign-in has expired or was invalidated. Reconnect it in Settings > Providers > OpenAI > Subscription by selecting Connect ChatGPT. This is an authentication issue, not a billing or model-access error.");if(!t.ok)throw new Error(`OpenAI token refresh failed: ${t.status}`);return await t.json()}i(B,"refreshOpenAiSubscriptionToken");function N(e,t){return{accessToken:e.access_token?.trim()||t.accessToken,refreshToken:e.refresh_token?.trim()||t.refreshToken,expiresAt:Date.now()+(e.expires_in??3600)*1e3,accountId:z(e)??t.accountId}}i(N,"credentialFromRefreshResponse");function ue(){let e=R(D(32)),t=R(se("sha256").update(e).digest());return{verifier:e,challenge:t}}i(ue,"generatePkce");function z(e){for(let t of[e.id_token,e.access_token]){let o=pe(t),n=x(o?.chatgpt_account_id);if(n)return n;let r=o?.["https://api.openai.com/auth"];if(r&&typeof r=="object"){let l=x(r.chatgpt_account_id);if(l)return l}let s=o?.organizations;if(Array.isArray(s)){for(let l of s)if(l&&typeof l=="object"){let c=x(l.id);if(c)return c}}}return null}i(z,"extractAccountId");function pe(e){if(!e)return null;let t=e.split(".");if(t.length!==3)return null;try{return JSON.parse(Buffer.from(t[1],"base64url").toString("utf8"))}catch{return null}}i(pe,"parseJwtClaims");function A(e,t){return`<!doctype html><html><head><meta charset="utf-8"><title>OpenPond - ${S(e)}</title></head><body><h1>${S(e)}</h1><p>${S(t)}</p></body></html>`}i(A,"htmlPage");function S(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}i(S,"escapeHtml");function R(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}i(R,"base64Url");function x(e){return typeof e=="string"&&e.trim()?e.trim():null}i(x,"stringValue");function me(e){return new Promise(t=>setTimeout(t,e))}i(me,"sleep");function E(e){let t=e.model?.trim().toLowerCase()??"";return e.provider==="zai"&&/(?:^|[/_-])glm-(?:4\.(?:[5-9]|\d{2,})|[5-9](?:\.\d+)?)(?:$|[/_-])/.test(t)?{kind:"chat_completions_reasoning",requestThinking:"zai_clear_thinking",supportsToolChoice:!0}:e.provider==="deepseek"&&/(?:^|[/_-])deepseek-v(?:3\.2|[4-9](?:\.\d+)?)(?:$|[/_-])/.test(t)?{kind:"chat_completions_reasoning",requestThinking:"deepseek_enabled",supportsToolChoice:!1}:null}i(E,"chatCompletionsReasoningPolicy");function G(e){return!e.hasToolCalls||e.reasoningText.length===0||!E(e)?null:{kind:"chat_completions_reasoning",reasoningContent:e.reasoningText}}i(G,"chatCompletionsContinuation");function q(e){return e.some(t=>t.continuation?.kind==="chat_completions_reasoning"&&t.continuation.reasoningContent.length>0)}i(q,"hasChatCompletionsReasoningContinuation");var fe=["openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible"],he=9e4,F=5*6e4,ge=5*1024*1024,ve=64*1024,ye="https://chatgpt.com/backend-api/codex/responses",be=6e4;function _e(e){return fe.includes(e)}i(_e,"isOpenAiCompatibleProviderId");function M(e){if(!_e(e.providerId))throw new Error(`Provider ${e.providerId} is not OpenAI-compatible.`);let t=e.settings.providers[e.providerId],o=e.settings.modelCaches[e.providerId],n=X(e.baseUrl??t?.baseUrl??"");if(!n)throw new Error(`Provider ${e.providerId} requires a base URL.`);let r=e.secrets.providers[e.providerId],s=Ce(e.providerId,r);if(!s)throw new Error(we(e.providerId,e.settings));let l=e.modelId?.trim()||t?.defaultModel?.trim()||o?.models.find(c=>c.id.trim())?.id.trim()||"";if(!l&&e.requireModel!==!1)throw new Error(`Provider ${e.providerId} requires a model.`);return{providerId:e.providerId,baseUrl:n,auth:s,model:l}}i(M,"resolveOpenAiCompatibleProvider");function Ce(e,t){if(e==="openai"&&t?.source==="chatgpt_subscription"&&t.oauth?.refreshToken)return{type:"chatgpt_subscription",credential:t.oauth};let o=t?.source==="local_secret"?t.value?.trim()??"":t?.source==="env"&&t.envVar?process.env[t.envVar]?.trim()??"":"";return o?{type:"api_key",apiKey:o}:null}i(Ce,"resolveProviderAuth");function we(e,t){let o=t.statuses[e]?.displayName?.trim()||e,n="Add an API key in Settings > Providers.";return e==="openai"?`${o} has no connected API key. The raw OpenAI provider uses Platform API credentials. ${n}`:`${o} has no connected API key. ${n}`}i(we,"missingApiKeyMessage");async function Pe(e){let t=M({...e,requireModel:!1}),o=U(e.signal,e.requestTimeoutMs);try{let n=t.auth.type==="chatgpt_subscription",r=t.auth.type==="chatgpt_subscription"?await Y({providerId:t.providerId,credential:t.auth.credential,saveChatGptSubscriptionCredential:e.saveChatGptSubscriptionCredential}):null,s=new URL(n?"https://chatgpt.com/backend-api/codex/models":W(t.baseUrl,"models"));n&&s.searchParams.set("client_version",e.subscriptionClientVersion??"0.159.1");let l=r?Z(r,void 0):Q(t.auth.type==="api_key"?t.auth.apiKey:"","application/json");l.set("Accept","application/json");let c=await fetch(s,{method:"GET",headers:l,signal:o.signal});if(!c.ok){o.touch();let a=await $(c,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} model list failed: ${c.status} ${ee(t,a)}`)}let p=await De(c,`Provider ${t.providerId} model list`,e.responseBodyLimitBytes,o.signal,o.touch),f=n?j(p):$e(t.providerId,p);if(f.length===0)throw new Error(`Provider ${t.providerId} returned no models.`);return f}finally{o.cleanup()}}i(Pe,"listOpenAiCompatibleProviderModels");async function st(e){let t=M(e),o=await Pe({...e,providerId:t.providerId,baseUrl:t.baseUrl,modelId:t.model}),n=o.some(s=>s.id===t.model),r=n?[]:[`Model ${t.model} was not returned by provider model discovery.`];return{providerId:t.providerId,ok:r.length===0,live:!0,baseUrl:t.baseUrl,modelId:t.model,modelFound:n,modelCount:o.length,errors:r}}i(st,"validateOpenAiCompatibleProvider");async function*at(e){let t=e.resolvedProvider??M(e);if(t.auth.type==="chatgpt_subscription"){let n={...t,auth:t.auth};yield*ke({...e,provider:n});return}let o=U(e.signal,e.requestTimeoutMs);try{let n=W(t.baseUrl,"chat/completions"),r=await fetch(n,{method:"POST",redirect:"error",headers:Q(t.auth.apiKey,"text/event-stream",e.allowAnonymous),body:JSON.stringify(Ae({providerId:t.providerId,model:t.model,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,reasoningEffort:e.reasoningEffort,maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,seed:e.seed})),signal:o.signal});if(!r.ok||!r.body){o.touch();let a=await $(r,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} stream failed: ${r.status} ${ee(t,a)}`)}let s="",l=!1,c=null,p=null;o.touch();for await(let a of ne(r.body,o.signal,o.touch)){if(p=a,a&&typeof a=="object"&&"error"in a)throw new Error(`Provider ${t.providerId} stream failed: ${H(a)}`);let d=Ge(a);d&&(yield{type:"usage",usage:d,raw:a});for(let u of Be(a))u.type==="reasoning_delta"&&(s+=u.text),u.type==="tool_call_delta"&&(l=!0),u.type==="finish"?c=u:yield u}let f=G({provider:t.providerId,model:t.model,reasoningText:s,hasToolCalls:l});f&&(yield{type:"continuation",continuation:f,raw:p}),c&&(yield c)}finally{o.cleanup()}}i(at,"streamOpenAiCompatibleChatCompletion");async function*ke(e){let t=await Y({providerId:e.provider.providerId,credential:e.provider.auth.credential,saveChatGptSubscriptionCredential:e.saveChatGptSubscriptionCredential});if(!t.accessToken)throw new Error("OpenAI ChatGPT subscription credential has no access token.");let o=Ie(e.promptCacheKey),n=U(e.signal,e.requestTimeoutMs);try{let r=await fetch(ye,{method:"POST",headers:Z(t,o??e.requestId),body:JSON.stringify(Te({model:e.provider.model,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,reasoningEffort:e.reasoningEffort,promptCacheKey:o})),signal:n.signal});if(!r.ok||!r.body){n.touch();let a=await $(r,e.errorBodyLimitBytes,n.signal,n.touch);throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${r.status} ${a}`)}let s=new Set,l=new Map,c=!1,p=null,f=null;n.touch();for await(let a of ne(r.body,n.signal,n.touch)){if(f=a,a&&typeof a=="object"&&"error"in a)throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${H(a)}`);for(let d of xe(a)){let u=m(d.id)??JSON.stringify(d);l.set(u,d)}for(let d of Ne(a,s))d.type==="tool_call_delta"&&(c=!0),d.type==="finish"?p=d:yield d}c&&l.size>0&&(yield{type:"continuation",continuation:{kind:"responses_reasoning_items",items:[...l.values()]},raw:f}),p&&(yield p)}finally{n.cleanup()}}i(ke,"streamOpenAiSubscriptionResponses");async function Y(e){if(e.credential.accessToken&&e.credential.expiresAt>Date.now()+be)return e.credential;let t=N(await B(e.credential.refreshToken),e.credential);return await e.saveChatGptSubscriptionCredential?.(e.providerId,t),t}i(Y,"usableSubscriptionCredential");function Ae(e){let t={model:e.model,messages:Oe(Me(e.messages)),stream:!0};e.tools&&(t.tools=e.tools),e.providerId==="openai"&&e.reasoningEffort&&(t.reasoning_effort=e.reasoningEffort),e.maxOutputTokens!=null&&(t.max_tokens=e.maxOutputTokens),e.temperature!=null&&(t.temperature=e.temperature),e.topP!=null&&(t.top_p=e.topP),e.seed!=null&&(t.seed=e.seed),e.providerId==="zai"&&e.tools&&e.tools.length>0&&(t.tool_stream=!0);let o=E({provider:e.providerId,model:e.model});return e.tools&&e.tools.length>0&&o?.requestThinking==="zai_clear_thinking"&&(t.thinking={type:"enabled",clear_thinking:!q(e.messages)}),e.tools&&e.tools.length>0&&o?.requestThinking==="deepseek_enabled"&&(t.thinking={type:"enabled"}),e.toolChoice!==void 0&&o?.supportsToolChoice!==!1&&(t.tool_choice=e.toolChoice),t}i(Ae,"buildChatCompletionBody");function Oe(e){return e.map(t=>{let{continuation:o,images:n,...r}=t,s=n?.length?[...typeof t.content=="string"&&t.content.trim()?[{type:"text",text:t.content}]:[],...n.map(l=>({type:"image_url",image_url:{url:l.url,...l.detail?{detail:l.detail}:{}}}))]:t.content;return o?.kind==="chat_completions_reasoning"?{...r,...s!==void 0?{content:s}:{},reasoning_content:o.reasoningContent}:{...r,...s!==void 0?{content:s}:{}}})}i(Oe,"chatCompletionMessages");function Te(e){let t=Se(e.messages),o={model:e.model,input:t.input,stream:!0,store:!1};t.instructions&&(o.instructions=t.instructions),e.promptCacheKey&&(o.prompt_cache_key=e.promptCacheKey),o.reasoning={...e.reasoningEffort?{effort:e.reasoningEffort}:{},summary:"auto"},e.maxOutputTokens!=null&&(o.max_output_tokens=e.maxOutputTokens),e.temperature!=null&&(o.temperature=e.temperature),e.topP!=null&&(o.top_p=e.topP);let n=Re(e.tools);n.length>0&&(o.tools=n);let r=Ee(e.toolChoice);return r!==void 0&&(o.tool_choice=r),o}i(Te,"buildResponsesBody");function Ie(e){let t=e?.trim();if(t)return t.length<=64?t:J("sha256").update(t).digest("hex")}i(Ie,"normalizedPromptCacheKey");function Se(e){let t=[],o=[];for(let n of e){let r=typeof n.content=="string"?n.content:"";if(n.role==="system"){r.trim()&&t.push(r.trim());continue}if(n.role==="tool"){o.push({type:"function_call_output",call_id:n.tool_call_id,output:r});continue}n.continuation?.kind==="responses_reasoning_items"&&o.push(...n.continuation.items),(r.trim()||n.images?.length)&&o.push({type:"message",role:n.role,content:[...r.trim()?[{type:n.role==="assistant"?"output_text":"input_text",text:r}]:[],...(n.images??[]).map(s=>({type:"input_image",image_url:s.url,...s.detail?{detail:s.detail}:{}}))]});for(let s of n.tool_calls??[]){let l=s.function&&typeof s.function=="object"?s.function:{};o.push({type:"function_call",call_id:s.id,name:l.name,arguments:typeof l.arguments=="string"?l.arguments:""})}}return{instructions:t.join(`
2
+ import{c as k}from"./chunk-BKEDG3A4.js";import{A as h}from"./chunk-PF56N7ZY.js";import{a as i}from"./chunk-FTQLQJQV.js";import{createHash as J}from"node:crypto";var ie=h.object({models:h.array(h.object({slug:h.string().trim().min(1),display_name:h.string().trim().min(1),visibility:h.string(),priority:h.number().default(0),context_window:h.number().positive().nullable().optional(),input_modalities:h.array(h.string()).default([]),supported_reasoning_levels:h.array(h.object({effort:h.string()})).default([])})).max(500)});function j(e){let t=ie.parse(e).models.filter(n=>n.visibility==="list").sort((n,r)=>n.priority-r.priority),o=new Set;return t.map(n=>{if(o.has(n.slug))throw new Error("OpenAI returned a duplicate subscription model.");o.add(n.slug);let r=n.supported_reasoning_levels.map(s=>s.effort).filter(s=>["off","low","medium","high","xhigh","max"].includes(s));return k.parse({id:n.slug,providerId:"openai",displayName:n.display_name,source:"provider",contextWindow:n.context_window,capabilities:{streaming:!0,toolCalling:!0,reasoning:r.length>0,reasoningEfforts:r,vision:n.input_modalities.includes("image")}})})}i(j,"openAiSubscriptionModels");import{createHash as se,randomBytes as D}from"node:crypto";import{createServer as ae}from"node:http";var O="app_EMoamEEZ73f0CkXaXp7hrann",y="https://auth.openai.com",w=1455,I=300*1e3,de=5e3,le=3e3;function We(e){let t=null,o=null;async function n(){let{redirectUri:a}=await l(),d=ue(),u=R(D(32));o&&(o.reject(new Error("A previous OpenAI ChatGPT login was replaced.")),clearTimeout(o.timeout),o=null);let v=Date.now()+I;return new Promise((b,C)=>{o={pkce:d,state:u,resolve:b,reject:C,timeout:setTimeout(()=>{o=null,C(new Error("OpenAI ChatGPT login timed out."))},I)}}).then(b=>f(b)).catch(()=>{}).finally(()=>p()),{url:ce(a,d,u),redirectUri:a,expiresAt:v}}i(n,"startBrowserLogin");async function r(){let a=await fetch(`${y}/api/accounts/deviceauth/usercode`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({client_id:O})});if(!a.ok)throw new Error(`OpenAI device authorization failed: ${a.status}`);let d=await a.json();if(!d.device_auth_id||!d.user_code)throw new Error("OpenAI device authorization returned an incomplete response.");let u=Math.max(Number.parseInt(d.interval??"",10)||de/1e3,1)*1e3,v=Date.now()+I;return s({deviceAuthId:d.device_auth_id,userCode:d.user_code,intervalMs:u,expiresAt:v}).catch(()=>{}),{url:`${y}/codex/device`,userCode:d.user_code,expiresAt:v}}i(r,"startDeviceLogin");async function s(a){for(;Date.now()<a.expiresAt;){let d=await fetch(`${y}/api/accounts/deviceauth/token`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({device_auth_id:a.deviceAuthId,user_code:a.userCode})});if(d.ok){let u=await d.json();if(!u.authorization_code||!u.code_verifier)throw new Error("OpenAI device login returned an incomplete authorization response.");await f(await L(u.authorization_code,`${y}/deviceauth/callback`,{verifier:u.code_verifier}));return}if(d.status!==403&&d.status!==404)throw new Error(`OpenAI device login failed: ${d.status}`);await me(a.intervalMs+le)}throw new Error("OpenAI device login timed out.")}i(s,"pollDeviceLogin");async function l(){return t?{redirectUri:`http://localhost:${w}/auth/callback`}:(t=ae((a,d)=>{let u=new URL(a.url||"/",`http://localhost:${w}`);if(u.pathname!=="/auth/callback"){d.writeHead(404),d.end("Not found");return}let v=o,P=u.searchParams.get("error"),b=u.searchParams.get("error_description");if(P){c(b||P),d.writeHead(200,{"Content-Type":"text/html"}),d.end(A("Authorization Failed",b||P));return}let C=u.searchParams.get("code"),re=u.searchParams.get("state");if(!C){c("Missing authorization code."),d.writeHead(400,{"Content-Type":"text/html"}),d.end(A("Authorization Failed","Missing authorization code."));return}if(!v||re!==v.state){c("Invalid OAuth state."),d.writeHead(400,{"Content-Type":"text/html"}),d.end(A("Authorization Failed","Invalid OAuth state."));return}o=null,clearTimeout(v.timeout),L(C,`http://localhost:${w}/auth/callback`,v.pkce).then(v.resolve).catch(v.reject),d.writeHead(200,{"Content-Type":"text/html"}),d.end(A("Authorization Successful","You can close this window and return to OpenPond."))}),await new Promise((a,d)=>{t.once("error",d),t.listen(w,()=>{t.off("error",d),a()})}),{redirectUri:`http://localhost:${w}/auth/callback`})}i(l,"ensureOAuthServer");function c(a){let d=o;o=null,d&&(clearTimeout(d.timeout),d.reject(new Error(a)))}i(c,"failBrowserOAuth");function p(){let a=t;t=null,a&&a.close()}i(p,"stopOAuthServer");async function f(a){let d=a.access_token?.trim()||null,u=a.refresh_token?.trim();if(!u)throw new Error("OpenAI login did not return a refresh token.");await e.saveCredential({accessToken:d,refreshToken:u,expiresAt:Date.now()+(a.expires_in??3600)*1e3,accountId:z(a)})}return i(f,"saveTokens"),{startBrowserLogin:n,startDeviceLogin:r}}i(We,"createOpenAiSubscriptionAuthService");function ce(e,t,o){let n=new URLSearchParams({response_type:"code",client_id:O,redirect_uri:e,scope:"openid profile email offline_access",code_challenge:t.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:o,originator:"openpond"});return`${y}/oauth/authorize?${n.toString()}`}i(ce,"buildAuthorizeUrl");async function L(e,t,o){let n=await fetch(`${y}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:e,redirect_uri:t,client_id:O,code_verifier:o.verifier}).toString()});if(!n.ok)throw new Error(`OpenAI token exchange failed: ${n.status}`);return await n.json()}i(L,"exchangeCodeForTokens");async function B(e){let t=await fetch(`${y}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:O}).toString()});if(t.status===401)throw new Error("Your OpenAI ChatGPT sign-in has expired or was invalidated. Reconnect it in Settings > Providers > OpenAI > Subscription by selecting Connect ChatGPT. This is an authentication issue, not a billing or model-access error.");if(!t.ok)throw new Error(`OpenAI token refresh failed: ${t.status}`);return await t.json()}i(B,"refreshOpenAiSubscriptionToken");function N(e,t){return{accessToken:e.access_token?.trim()||t.accessToken,refreshToken:e.refresh_token?.trim()||t.refreshToken,expiresAt:Date.now()+(e.expires_in??3600)*1e3,accountId:z(e)??t.accountId}}i(N,"credentialFromRefreshResponse");function ue(){let e=R(D(32)),t=R(se("sha256").update(e).digest());return{verifier:e,challenge:t}}i(ue,"generatePkce");function z(e){for(let t of[e.id_token,e.access_token]){let o=pe(t),n=x(o?.chatgpt_account_id);if(n)return n;let r=o?.["https://api.openai.com/auth"];if(r&&typeof r=="object"){let l=x(r.chatgpt_account_id);if(l)return l}let s=o?.organizations;if(Array.isArray(s)){for(let l of s)if(l&&typeof l=="object"){let c=x(l.id);if(c)return c}}}return null}i(z,"extractAccountId");function pe(e){if(!e)return null;let t=e.split(".");if(t.length!==3)return null;try{return JSON.parse(Buffer.from(t[1],"base64url").toString("utf8"))}catch{return null}}i(pe,"parseJwtClaims");function A(e,t){return`<!doctype html><html><head><meta charset="utf-8"><title>OpenPond - ${S(e)}</title></head><body><h1>${S(e)}</h1><p>${S(t)}</p></body></html>`}i(A,"htmlPage");function S(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}i(S,"escapeHtml");function R(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}i(R,"base64Url");function x(e){return typeof e=="string"&&e.trim()?e.trim():null}i(x,"stringValue");function me(e){return new Promise(t=>setTimeout(t,e))}i(me,"sleep");function E(e){let t=e.model?.trim().toLowerCase()??"";return e.provider==="zai"&&/(?:^|[/_-])glm-(?:4\.(?:[5-9]|\d{2,})|[5-9](?:\.\d+)?)(?:$|[/_-])/.test(t)?{kind:"chat_completions_reasoning",requestThinking:"zai_clear_thinking",supportsToolChoice:!0}:e.provider==="deepseek"&&/(?:^|[/_-])deepseek-v(?:3\.2|[4-9](?:\.\d+)?)(?:$|[/_-])/.test(t)?{kind:"chat_completions_reasoning",requestThinking:"deepseek_enabled",supportsToolChoice:!1}:null}i(E,"chatCompletionsReasoningPolicy");function G(e){return!e.hasToolCalls||e.reasoningText.length===0||!E(e)?null:{kind:"chat_completions_reasoning",reasoningContent:e.reasoningText}}i(G,"chatCompletionsContinuation");function q(e){return e.some(t=>t.continuation?.kind==="chat_completions_reasoning"&&t.continuation.reasoningContent.length>0)}i(q,"hasChatCompletionsReasoningContinuation");var fe=["openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible"],he=9e4,F=5*6e4,ge=5*1024*1024,ve=64*1024,ye="https://chatgpt.com/backend-api/codex/responses",be=6e4;function _e(e){return fe.includes(e)}i(_e,"isOpenAiCompatibleProviderId");function M(e){if(!_e(e.providerId))throw new Error(`Provider ${e.providerId} is not OpenAI-compatible.`);let t=e.settings.providers[e.providerId],o=e.settings.modelCaches[e.providerId],n=X(e.baseUrl??t?.baseUrl??"");if(!n)throw new Error(`Provider ${e.providerId} requires a base URL.`);let r=e.secrets.providers[e.providerId],s=Ce(e.providerId,r);if(!s)throw new Error(we(e.providerId,e.settings));let l=e.modelId?.trim()||t?.defaultModel?.trim()||o?.models.find(c=>c.id.trim())?.id.trim()||"";if(!l&&e.requireModel!==!1)throw new Error(`Provider ${e.providerId} requires a model.`);return{providerId:e.providerId,baseUrl:n,auth:s,model:l}}i(M,"resolveOpenAiCompatibleProvider");function Ce(e,t){if(e==="openai"&&t?.source==="chatgpt_subscription"&&t.oauth?.refreshToken)return{type:"chatgpt_subscription",credential:t.oauth};let o=t?.source==="local_secret"?t.value?.trim()??"":t?.source==="env"&&t.envVar?process.env[t.envVar]?.trim()??"":"";return o?{type:"api_key",apiKey:o}:null}i(Ce,"resolveProviderAuth");function we(e,t){let o=t.statuses[e]?.displayName?.trim()||e,n="Add an API key in Settings > Providers.";return e==="openai"?`${o} has no connected API key. The raw OpenAI provider uses Platform API credentials. ${n}`:`${o} has no connected API key. ${n}`}i(we,"missingApiKeyMessage");async function Pe(e){let t=M({...e,requireModel:!1}),o=U(e.signal,e.requestTimeoutMs);try{let n=t.auth.type==="chatgpt_subscription",r=t.auth.type==="chatgpt_subscription"?await Y({providerId:t.providerId,credential:t.auth.credential,saveChatGptSubscriptionCredential:e.saveChatGptSubscriptionCredential}):null,s=new URL(n?"https://chatgpt.com/backend-api/codex/models":W(t.baseUrl,"models"));n&&s.searchParams.set("client_version",e.subscriptionClientVersion??"0.159.1");let l=r?Z(r,void 0):Q(t.auth.type==="api_key"?t.auth.apiKey:"","application/json");l.set("Accept","application/json");let c=await fetch(s,{method:"GET",headers:l,signal:o.signal});if(!c.ok){o.touch();let a=await $(c,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} model list failed: ${c.status} ${ee(t,a)}`)}let p=await De(c,`Provider ${t.providerId} model list`,e.responseBodyLimitBytes,o.signal,o.touch),f=n?j(p):$e(t.providerId,p);if(f.length===0)throw new Error(`Provider ${t.providerId} returned no models.`);return f}finally{o.cleanup()}}i(Pe,"listOpenAiCompatibleProviderModels");async function st(e){let t=M(e),o=await Pe({...e,providerId:t.providerId,baseUrl:t.baseUrl,modelId:t.model}),n=o.some(s=>s.id===t.model),r=n?[]:[`Model ${t.model} was not returned by provider model discovery.`];return{providerId:t.providerId,ok:r.length===0,live:!0,baseUrl:t.baseUrl,modelId:t.model,modelFound:n,modelCount:o.length,errors:r}}i(st,"validateOpenAiCompatibleProvider");async function*at(e){let t=e.resolvedProvider??M(e);if(t.auth.type==="chatgpt_subscription"){let n={...t,auth:t.auth};yield*ke({...e,provider:n});return}let o=U(e.signal,e.requestTimeoutMs);try{let n=W(t.baseUrl,"chat/completions"),r=await fetch(n,{method:"POST",redirect:"error",headers:Q(t.auth.apiKey,"text/event-stream",e.allowAnonymous),body:JSON.stringify(Ae({providerId:t.providerId,model:t.model,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,reasoningEffort:e.reasoningEffort,maxOutputTokens:e.maxOutputTokens,temperature:e.temperature,topP:e.topP,seed:e.seed})),signal:o.signal});if(!r.ok||!r.body){o.touch();let a=await $(r,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} stream failed: ${r.status} ${ee(t,a)}`)}let s="",l=!1,c=null,p=null;o.touch();for await(let a of ne(r.body,o.signal,o.touch)){if(p=a,a&&typeof a=="object"&&"error"in a)throw new Error(`Provider ${t.providerId} stream failed: ${H(a)}`);let d=Ge(a);d&&(yield{type:"usage",usage:d,raw:a});for(let u of Be(a))u.type==="reasoning_delta"&&(s+=u.text),u.type==="tool_call_delta"&&(l=!0),u.type==="finish"?c=u:yield u}let f=G({provider:t.providerId,model:t.model,reasoningText:s,hasToolCalls:l});f&&(yield{type:"continuation",continuation:f,raw:p}),c&&(yield c)}finally{o.cleanup()}}i(at,"streamOpenAiCompatibleChatCompletion");async function*ke(e){let t=await Y({providerId:e.provider.providerId,credential:e.provider.auth.credential,saveChatGptSubscriptionCredential:e.saveChatGptSubscriptionCredential});if(!t.accessToken)throw new Error("OpenAI ChatGPT subscription credential has no access token.");let o=Ie(e.promptCacheKey),n=U(e.signal,e.requestTimeoutMs);try{let r=await fetch(ye,{method:"POST",headers:Z(t,o??e.requestId),body:JSON.stringify(Te({model:e.provider.model,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,reasoningEffort:e.reasoningEffort,promptCacheKey:o})),signal:n.signal});if(!r.ok||!r.body){n.touch();let a=await $(r,e.errorBodyLimitBytes,n.signal,n.touch);throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${r.status} ${a}`)}let s=new Set,l=new Map,c=!1,p=null,f=null;n.touch();for await(let a of ne(r.body,n.signal,n.touch)){if(f=a,a&&typeof a=="object"&&"error"in a)throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${H(a)}`);for(let d of xe(a)){let u=m(d.id)??JSON.stringify(d);l.set(u,d)}for(let d of Ne(a,s))d.type==="tool_call_delta"&&(c=!0),d.type==="finish"?p=d:yield d}c&&l.size>0&&(yield{type:"continuation",continuation:{kind:"responses_reasoning_items",items:[...l.values()]},raw:f}),p&&(yield p)}finally{n.cleanup()}}i(ke,"streamOpenAiSubscriptionResponses");async function Y(e){if(e.credential.accessToken&&e.credential.expiresAt>Date.now()+be)return e.credential;let t=N(await B(e.credential.refreshToken),e.credential);return await e.saveChatGptSubscriptionCredential?.(e.providerId,t),t}i(Y,"usableSubscriptionCredential");function Ae(e){let t={model:e.model,messages:Oe(Me(e.messages)),stream:!0};e.tools&&(t.tools=e.tools),e.providerId==="openai"&&e.reasoningEffort&&(t.reasoning_effort=e.reasoningEffort),e.maxOutputTokens!=null&&(t.max_tokens=e.maxOutputTokens),e.temperature!=null&&(t.temperature=e.temperature),e.topP!=null&&(t.top_p=e.topP),e.seed!=null&&(t.seed=e.seed),e.providerId==="zai"&&e.tools&&e.tools.length>0&&(t.tool_stream=!0);let o=E({provider:e.providerId,model:e.model});return e.tools&&e.tools.length>0&&o?.requestThinking==="zai_clear_thinking"&&(t.thinking={type:"enabled",clear_thinking:!q(e.messages)}),e.tools&&e.tools.length>0&&o?.requestThinking==="deepseek_enabled"&&(t.thinking={type:"enabled"}),e.toolChoice!==void 0&&o?.supportsToolChoice!==!1&&(t.tool_choice=e.toolChoice),t}i(Ae,"buildChatCompletionBody");function Oe(e){return e.map(t=>{let{continuation:o,images:n,...r}=t,s=n?.length?[...typeof t.content=="string"&&t.content.trim()?[{type:"text",text:t.content}]:[],...n.map(l=>({type:"image_url",image_url:{url:l.url,...l.detail?{detail:l.detail}:{}}}))]:t.content;return o?.kind==="chat_completions_reasoning"?{...r,...s!==void 0?{content:s}:{},reasoning_content:o.reasoningContent}:{...r,...s!==void 0?{content:s}:{}}})}i(Oe,"chatCompletionMessages");function Te(e){let t=Se(e.messages),o={model:e.model,input:t.input,stream:!0,store:!1};t.instructions&&(o.instructions=t.instructions),e.promptCacheKey&&(o.prompt_cache_key=e.promptCacheKey),o.reasoning={...e.reasoningEffort?{effort:e.reasoningEffort}:{},summary:"auto"},e.maxOutputTokens!=null&&(o.max_output_tokens=e.maxOutputTokens),e.temperature!=null&&(o.temperature=e.temperature),e.topP!=null&&(o.top_p=e.topP);let n=Re(e.tools);n.length>0&&(o.tools=n);let r=Ee(e.toolChoice);return r!==void 0&&(o.tool_choice=r),o}i(Te,"buildResponsesBody");function Ie(e){let t=e?.trim();if(t)return t.length<=64?t:J("sha256").update(t).digest("hex")}i(Ie,"normalizedPromptCacheKey");function Se(e){let t=[],o=[];for(let n of e){let r=typeof n.content=="string"?n.content:"";if(n.role==="system"){r.trim()&&t.push(r.trim());continue}if(n.role==="tool"){o.push({type:"function_call_output",call_id:n.tool_call_id,output:r});continue}n.continuation?.kind==="responses_reasoning_items"&&o.push(...n.continuation.items),(r.trim()||n.images?.length)&&o.push({type:"message",role:n.role,content:[...r.trim()?[{type:n.role==="assistant"?"output_text":"input_text",text:r}]:[],...(n.images??[]).map(s=>({type:"input_image",image_url:s.url,...s.detail?{detail:s.detail}:{}}))]});for(let s of n.tool_calls??[]){let l=s.function&&typeof s.function=="object"?s.function:{};o.push({type:"function_call",call_id:s.id,name:l.name,arguments:typeof l.arguments=="string"?l.arguments:""})}}return{instructions:t.join(`
3
3
 
4
4
  `)||null,input:o}}i(Se,"responsesInputFromMessages");function xe(e){if(!e||typeof e!="object")return[];let t=e,o=m(t.type);if(o==="response.output_item.done"){let r=t.item&&typeof t.item=="object"?t.item:null;return r?.type==="reasoning"?[r]:[]}if(o!=="response.completed")return[];let n=t.response&&typeof t.response=="object"?t.response:null;return Array.isArray(n?.output)?n.output.filter(r=>!!r&&typeof r=="object"&&r.type==="reasoning"):[]}i(xe,"responsesReasoningItemsFromEvent");function Re(e){return(e??[]).filter(t=>t.type==="function"&&t.function?.name).map(t=>({type:"function",name:t.function.name,description:t.function.description,parameters:t.function.parameters??{}}))}i(Re,"responsesTools");function Ee(e){if(e!==void 0)return typeof e=="string"?e:{type:"function",name:e.function.name}}i(Ee,"responsesToolChoice");function Me(e){let t=[],o=[];for(let n of e){if(n.role==="system"){let r=typeof n.content=="string"?n.content.trim():"";r&&t.push(r);continue}o.push(n)}return t.length===0?e:[{role:"system",content:t.join(`
5
5
 
6
6
  `)},...o]}i(Me,"mergeSystemMessages");function W(e,t){let o=X(e);if(!o)throw new Error("Provider base URL is required.");return`${o}/${t}`}i(W,"providerEndpointUrl");function X(e){let t=(e??"").trim();if(!t)return"";let o;try{o=new URL(t)}catch{throw new Error("Provider base URL must be a valid http(s) URL.")}if(o.protocol!=="http:"&&o.protocol!=="https:")throw new Error("Provider base URL must use http or https.");o.search="",o.hash="";let n=o.pathname.replace(/\/+$/,"");return/\/chat\/completions$/i.test(n)?o.pathname=n.replace(/\/chat\/completions$/i,"")||"/":/\/models$/i.test(n)?o.pathname=n.replace(/\/models$/i,"")||"/":o.pathname=n||"/",o.toString().replace(/\/+$/,"")}i(X,"normalizeOpenAiCompatibleBaseUrl");function Q(e,t,o=!1){let n=e.trim();if(!n&&!o)throw new Error("Provider API key is required.");let r=new Headers;return n&&r.set("Authorization",`Bearer ${n}`),r.set("Content-Type","application/json"),r.set("Accept",t),r}i(Q,"providerHeaders");function Z(e,t){let o=new Headers;return o.set("Authorization",`Bearer ${e.accessToken}`),o.set("Content-Type","application/json"),o.set("Accept","text/event-stream"),o.set("originator","openpond"),o.set("User-Agent","openpond-app"),t&&o.set("session-id",t.length<=64?t:J("sha256").update(t).digest("hex")),e.accountId&&o.set("ChatGPT-Account-Id",e.accountId),o}i(Z,"subscriptionHeaders");function $e(e,t){let o=t&&typeof t=="object"?t:{},n=Array.isArray(o.data)?o.data:Array.isArray(t)?t:[],r=[];for(let s of n){let l=Ue(e,s);l&&r.push(l)}return He(r)}i($e,"modelsFromPayload");function Ue(e,t){if(!t||typeof t!="object")return null;let o=t,n=m(o.id);if(!n)return null;let r=m(o.name)??m(o.display_name)??n;return k.parse({id:n,providerId:e,displayName:r,contextWindow:g(o.context_window)??g(o.context_length)??g(o.max_context_length)??K(o.top_provider,"context_length")??null,outputLimit:g(o.max_completion_tokens)??g(o.max_output_tokens)??K(o.top_provider,"max_completion_tokens")??null,lifecycleStatus:"active",source:"provider",capabilities:je(n),raw:Le(o)})}i(Ue,"providerModelFromUnknown");function He(e){let t=new Set,o=[];for(let n of e)t.has(n.id)||(t.add(n.id),o.push(n));return o}i(He,"uniqueProviderModels");function je(e){let t=e.toLowerCase();return{streaming:!0,toolCalling:!0,structuredOutput:!0,reasoningEfforts:[],vision:/vision|gpt-4\.1|gpt-5|gemini|claude|pixtral|vl/.test(t),reasoning:/reason|r1|o1|o3|o4|gpt-5|grok|glm-(?:4\.[5-9]|5(?:\.\d+)?)|kimi-k2/.test(t)}}i(je,"capabilitiesForModelId");function Le(e){return Object.fromEntries(["id","object","owned_by","created","name","display_name","description","context_window","context_length","max_context_length","max_completion_tokens","max_output_tokens","pricing","architecture","top_provider"].map(o=>[o,e[o]]).filter(([,o])=>o!==void 0))}i(Le,"rawProviderModel");async function $(e,t=ve,o,n){let r=await te(e,t,{truncate:!0},o,n).catch(()=>{if(o?.aborted)throw _(o);return{text:"",truncated:!1}}),s=r.text;if(!s)return e.statusText||`HTTP ${e.status}`;try{return`${H(JSON.parse(s))}${r.truncated?" (truncated)":""}`}catch{return`${s}${r.truncated?" (truncated)":""}`}}i($,"readProviderError");function ee(e,t){return e.providerId==="zai"&&/\b1113\b|insufficient balance|resource package/i.test(t)?[t,"Z.ai Coding Plan subscriptions use https://api.z.ai/api/coding/paas/v4; the general API endpoint uses separate API balance/resource packages.","If this base URL is already configured, check the Coding Plan quota/reset window and that the selected model is included in the plan."].join(" "):t}i(ee,"providerErrorDetail");async function De(e,t,o=ge,n,r){let s=await te(e,o,{truncate:!1},n,r);try{return JSON.parse(s.text)}catch{throw new Error(`${t} returned invalid JSON.`)}}i(De,"readProviderJson");async function te(e,t,o,n,r){if(!e.body)return{text:"",truncated:!1};let s=e.body.getReader(),l=new TextDecoder,c=0,p="",f=!1;try{for(;;){let{done:a,value:d}=await oe(s,n,r);if(a)break;if(c+=d.byteLength,c>t){if(f=!0,!o.truncate)throw new Error(`Provider response body exceeds ${t} bytes.`);let u=Math.max(0,d.byteLength-(c-t));u>0&&(p+=l.decode(d.slice(0,u),{stream:!0})),await s.cancel().catch(()=>{});break}p+=l.decode(d,{stream:!0})}}finally{s.releaseLock()}return p+=l.decode(),{text:p,truncated:f}}i(te,"readLimitedResponseText");function U(e,t=he){if(e?.aborted)throw _(e);let o=new AbortController,n=i(()=>o.abort(_(e)),"onAbort");e?.addEventListener("abort",n,{once:!0});let r=null,s=i(()=>{o.signal.aborted||(r&&clearTimeout(r),r=setTimeout(()=>o.abort(new Error(`Provider request timed out after ${t}ms without progress.`)),t))},"touch");s();let l=setTimeout(()=>o.abort(new Error(`Provider request exceeded ${F}ms.`)),F);return{signal:o.signal,touch:s,cleanup:i(()=>{r&&clearTimeout(r),clearTimeout(l),e?.removeEventListener("abort",n)},"cleanup")}}i(U,"createProviderRequestSignal");function _(e){return e?.reason instanceof Error?e.reason:new Error("provider_request_aborted")}i(_,"abortReason");async function oe(e,t,o){if(!t){let r=await e.read();return r.done||o?.(),r}if(t.aborted)throw _(t);let n=i(()=>{e.cancel(_(t)).catch(()=>{})},"onAbort");t.addEventListener("abort",n,{once:!0});try{let r=await e.read();if(t.aborted)throw _(t);return r.done||o?.(),r}finally{t.removeEventListener("abort",n)}}i(oe,"readResponseChunk");function H(e){if(!e||typeof e!="object")return String(e||"unknown_error");let t=e,o=t.error;if(o&&typeof o=="object"){let n=o;return[m(n.code),m(n.type),m(n.message)].filter(Boolean).join(": ")}return[m(t.error),m(t.message)].filter(Boolean).join(": ")||JSON.stringify(e)}i(H,"errorMessageFromPayload");async function*ne(e,t,o){let n=e.getReader(),r=new TextDecoder,s="";try{for(;;){let l=await oe(n,t,o);if(l.done)break;s+=r.decode(l.value,{stream:!0});let c=s.split(/\r?\n\r?\n/);s=c.pop()??"";for(let p of c)for(let f of V(p))yield f}}finally{n.releaseLock()}if(s+=r.decode(),s.trim())for(let l of V(s))yield l}i(ne,"parseSse");function V(e){let t=e.split(/\r?\n/).filter(o=>o.startsWith("data:")).map(o=>o.slice(5).trim()).join(`
7
- `).trim();return!t||t==="[DONE]"?[]:[JSON.parse(t)]}i(V,"parseSseBlock");function Be(e){if(!e||typeof e!="object")return[];let t=e,o=Array.isArray(t.choices)?t.choices:[],n=[];for(let r of o){if(!r||typeof r!="object")continue;let s=r,l=s.delta&&typeof s.delta=="object"?s.delta:{};for(let f of["content","reasoning_content"]){let a=T(l[f]);a&&n.push({type:f==="content"?"text_delta":"reasoning_delta",text:a,raw:e})}let c=ze(l.tool_calls);c.length>0&&n.push({type:"tool_call_delta",toolCalls:c,raw:e});let p=m(s.finish_reason);p&&n.push({type:"finish",finishReason:p,raw:e})}return n}i(Be,"streamDeltasFromChunk");function Ne(e,t){if(!e||typeof e!="object")return[];let o=e,n=m(o.type);if(n==="response.output_text.delta"){let r=T(o.delta);return r?[{type:"text_delta",text:r,raw:e}]:[]}if(n==="response.reasoning_text.delta"||n==="response.reasoning_summary_text.delta"){let r=T(o.delta);return r?[{type:"reasoning_delta",text:r,raw:e}]:[]}if(n==="response.output_item.added"){let r=o.item&&typeof o.item=="object"?o.item:null;return r?.type!=="function_call"?[]:[{type:"tool_call_delta",toolCalls:[{id:m(r.call_id)??m(r.id)??void 0,type:"function",function:{name:m(r.name)??void 0,arguments:typeof r.arguments=="string"?r.arguments:""},index:g(o.output_index)??g(r.output_index)??0}],raw:e}]}if(n==="response.function_call_arguments.delta"){let r=m(o.item_id)??String(g(o.output_index)??0);return t.add(r),[{type:"tool_call_delta",toolCalls:[{id:m(o.call_id)??m(o.item_id)??void 0,type:"function",function:{arguments:T(o.delta)??""},index:g(o.output_index)??0}],raw:e}]}if(n==="response.function_call_arguments.done"){let r=m(o.item_id)??String(g(o.output_index)??0);return t.has(r)?[]:[{type:"tool_call_delta",toolCalls:[{id:m(o.call_id)??m(o.item_id)??void 0,type:"function",function:{arguments:typeof o.arguments=="string"?o.arguments:""},index:g(o.output_index)??0}],raw:e}]}if(n==="response.completed"){let r=o.response&&typeof o.response=="object"?o.response:{},s=[],l=r.usage&&typeof r.usage=="object"?r.usage:null;return l&&s.push({type:"usage",usage:l,raw:e}),s.push({type:"finish",finishReason:"stop",raw:e}),s}return[]}i(Ne,"responseDeltasFromChunk");function ze(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}i(ze,"parseToolCalls");function Ge(e){if(!e||typeof e!="object")return null;let t=e.usage;return t&&typeof t=="object"?t:null}i(Ge,"parseUsage");function m(e){return typeof e=="string"&&e.trim()?e.trim():null}i(m,"stringValue");function T(e){return typeof e=="string"&&e.length>0?e:null}i(T,"streamTextValue");function g(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.round(e):null}i(g,"numberValue");function K(e,t){return!e||typeof e!="object"?null:g(e[t])}i(K,"nestedNumberValue");export{We as a,_e as b,M as c,Pe as d,st as e,at as f};
7
+ `).trim();return!t||t==="[DONE]"?[]:[JSON.parse(t)]}i(V,"parseSseBlock");function Be(e){if(!e||typeof e!="object")return[];let t=e,o=Array.isArray(t.choices)?t.choices:[],n=[];for(let r of o){if(!r||typeof r!="object")continue;let s=r,l=s.delta&&typeof s.delta=="object"?s.delta:{};for(let f of["content","reasoning_content"]){let a=T(l[f]);a&&n.push({type:f==="content"?"text_delta":"reasoning_delta",text:a,raw:e})}let c=ze(l.tool_calls);c.length>0&&n.push({type:"tool_call_delta",toolCalls:c,raw:e});let p=m(s.finish_reason);p&&n.push({type:"finish",finishReason:p,raw:e})}return n}i(Be,"streamDeltasFromChunk");function Ne(e,t){if(!e||typeof e!="object")return[];let o=e,n=m(o.type);if(n==="response.output_text.delta"){let r=T(o.delta);return r?[{type:"text_delta",text:r,raw:e}]:[]}if(n==="response.reasoning_text.delta"||n==="response.reasoning_summary_text.delta"){let r=T(o.delta);return r?[{type:"reasoning_delta",text:r,raw:e}]:[]}if(n==="response.output_item.added"){let r=o.item&&typeof o.item=="object"?o.item:null;return r?.type!=="function_call"?[]:[{type:"tool_call_delta",toolCalls:[{id:m(r.call_id)??m(r.id)??void 0,type:"function",function:{name:m(r.name)??void 0,arguments:typeof r.arguments=="string"?r.arguments:""},index:g(o.output_index)??g(r.output_index)??0}],raw:e}]}if(n==="response.function_call_arguments.delta"){let r=m(o.item_id)??String(g(o.output_index)??0);return t.add(r),[{type:"tool_call_delta",toolCalls:[{id:m(o.call_id)??m(o.item_id)??void 0,type:"function",function:{arguments:T(o.delta)??""},index:g(o.output_index)??0}],raw:e}]}if(n==="response.function_call_arguments.done"){let r=m(o.item_id)??String(g(o.output_index)??0);return t.has(r)?[]:[{type:"tool_call_delta",toolCalls:[{id:m(o.call_id)??m(o.item_id)??void 0,type:"function",function:{arguments:typeof o.arguments=="string"?o.arguments:""},index:g(o.output_index)??0}],raw:e}]}if(n==="response.completed"){let r=o.response&&typeof o.response=="object"?o.response:{},s=[],l=r.usage&&typeof r.usage=="object"?r.usage:null;return l&&s.push({type:"usage",usage:l,raw:e}),s.push({type:"finish",finishReason:"stop",raw:e}),s}return[]}i(Ne,"responseDeltasFromChunk");function ze(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}i(ze,"parseToolCalls");function Ge(e){if(!e||typeof e!="object")return null;let t=e.usage;return t&&typeof t=="object"?t:null}i(Ge,"parseUsage");function m(e){return typeof e=="string"&&e.trim()?e.trim():null}i(m,"stringValue");function T(e){return typeof e=="string"&&e.length>0?e:null}i(T,"streamTextValue");function g(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.round(e):null}i(g,"numberValue");function K(e,t){return!e||typeof e!="object"?null:g(e[t])}i(K,"nestedNumberValue");export{We as a,_e as b,M as c,Pe as d,st as e,at as f,$ as g,te as h,U as i,ne as j};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{k as m}from"./chunk-E3EKBPCB.js";import{f as d}from"./chunk-4N3UF3U5.js";import{n as f}from"./chunk-VVNV4NNW.js";import{a as n}from"./chunk-FTQLQJQV.js";import h from"node:path";function p(r){let o=r.environment.metadata.runtimeSourceTasksetId,s=o===void 0?r.id:o;if(typeof s!="string"||!s||s==="."||s===".."||h.basename(s)!==s||s.includes("\\"))throw new Error(`Taskset ${r.id} has an invalid package directory identity.`);return s}n(p,"tasksetPackageDirectoryId");import R from"node:path";async function D(r){let{taskset:o}=r,{taskset:s,modelResources:k,learningResources:u}=r.content,l=new Set([...k?.assets??[],...u?.assets??[]].map(e=>e.id)),c=new Map,i=n((e,a=e.path)=>{if(l.has(e.id))return;let t=c.get(e.id);if(t&&(f(t.asset)!==f(e)||t.sourcePath!==a))throw new Error(`Conflicting local Taskset file reference: ${e.id}.`);c.set(e.id,{asset:e,sourcePath:a})},"add");for(let e of d.parse(o.metadata.portableFileInventory??[]))i(e.asset,e.sourcePath);for(let e of s.tasks){let a=o.tasks.find(t=>t.id===e.id);for(let t of e.artifactRefs)i(t,a?.assets?.find(g=>g.id===t.id)?.artifactRef??t.path);for(let t of e.requiredOutputs??[])t.schemaRef&&i(t.schemaRef)}for(let e of s.graders){let a=o.graders.find(t=>t.id===e.id);"verifierRef"in e&&i(e.verifierRef,a?.kind==="custom_verifier"?a.module:e.verifierRef.path),"rubricRef"in e&&i(e.rubricRef)}return m({root:R.join(r.storeDir,"training","tasksets",p(o)),content:r.content,sources:[...c.values()]})}n(D,"captureAuthoredModelTasksetPackage");export{p as a,D as b};
2
+ import{g as m}from"./chunk-6EBCS57F.js";import{f as d}from"./chunk-6RS4NAOY.js";import{n as f}from"./chunk-VVNV4NNW.js";import{a as n}from"./chunk-FTQLQJQV.js";import h from"node:path";function p(r){let o=r.environment.metadata.runtimeSourceTasksetId,s=o===void 0?r.id:o;if(typeof s!="string"||!s||s==="."||s===".."||h.basename(s)!==s||s.includes("\\"))throw new Error(`Taskset ${r.id} has an invalid package directory identity.`);return s}n(p,"tasksetPackageDirectoryId");import R from"node:path";async function D(r){let{taskset:o}=r,{taskset:s,modelResources:k,learningResources:u}=r.content,l=new Set([...k?.assets??[],...u?.assets??[]].map(e=>e.id)),c=new Map,i=n((e,a=e.path)=>{if(l.has(e.id))return;let t=c.get(e.id);if(t&&(f(t.asset)!==f(e)||t.sourcePath!==a))throw new Error(`Conflicting local Taskset file reference: ${e.id}.`);c.set(e.id,{asset:e,sourcePath:a})},"add");for(let e of d.parse(o.metadata.portableFileInventory??[]))i(e.asset,e.sourcePath);for(let e of s.tasks){let a=o.tasks.find(t=>t.id===e.id);for(let t of e.artifactRefs)i(t,a?.assets?.find(g=>g.id===t.id)?.artifactRef??t.path);for(let t of e.requiredOutputs??[])t.schemaRef&&i(t.schemaRef)}for(let e of s.graders){let a=o.graders.find(t=>t.id===e.id);"verifierRef"in e&&i(e.verifierRef,a?.kind==="custom_verifier"?a.module:e.verifierRef.path),"rubricRef"in e&&i(e.rubricRef)}return m({root:R.join(r.storeDir,"training","tasksets",p(o)),content:r.content,sources:[...c.values()]})}n(D,"captureAuthoredModelTasksetPackage");export{p as a,D as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as K,c as q}from"./chunk-SGK4GR44.js";import{d as C,e as g}from"./chunk-YR5ID2SS.js";import{a as r}from"./chunk-FTQLQJQV.js";var re=new URL(g).hostname,G=new URL(C).hostname,se=`${g}/opchat/v1`;function s(e){if(!e)return null;let n=e.trim();return n?n.replace(/\/+$/,""):null}r(s,"normalizeBaseUrl");function H(e){let n=s(e);if(!n)return null;try{let o=new URL(n).hostname.toLowerCase();if(o===re)return g;if(o===G||o===`www.${G}`||o==="openpond.live"||o==="www.openpond.live")return g;if(o.startsWith("api."))return n}catch{return null}return null}r(H,"mapUiBaseToApiBase");function D(e,n){let t=s(process.env.OPENPOND_API_URL);if(t)return t;let o=s(e?.apiBaseUrl);if(o)return o;let a=s(n.apiBaseUrl);if(a)return a;let l=H(process.env.OPENPOND_BASE_URL);return l||(H(e?.baseUrl||n.baseUrl)??g)}r(D,"resolvePublicApiBaseUrl");function B(e,n,t){return ae(e,n,t)}r(B,"resolveHostedChatApiBaseUrl");function ae(e,n,t){let o=typeof process<"u"?process.env:{};return S(o.OPENPOND_OPCHAT_API_URL)??S(e?.chatApiBaseUrl??n.chatApiBaseUrl)??S(o.OPENPOND_CHAT_API_URL)??ie(t)}r(ae,"resolveOpChatApiBaseUrl");function S(e){let n=s(e);if(!n)return null;try{let t=new URL(n),o=t.pathname.split("/").filter(Boolean),a=o.findIndex(i=>i.toLowerCase()==="opchat");return a>=0?(t.pathname=`/${[...o.slice(0,a+1),"v1"].join("/")}`,t.search="",t.hash="",s(t.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(t.pathname="/opchat/v1",t.search="",t.hash="",s(t.toString())??null):(t.pathname=`${t.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),t.search="",t.hash="",s(t.toString())??null)}catch{return null}}r(S,"normalizeOpChatApiBaseUrl");function ie(e){return S(e)??se}r(ie,"opChatBaseFromPublicApiBase");function A(e){return e?.trim()?e.trim():"production"}r(A,"deriveEnvironment");function N(e,n=process.env){let t=[e?.apiKey,e?.session?.token,e?.token,n.OPENPOND_API_KEY];for(let o of t){let a=typeof o=="string"?o.trim():"";if(a)return a}return null}r(N,"accountToken");function y(e,n){return!!(e&&n&&e.toLowerCase()===n.toLowerCase())}r(y,"handleEquals");function w(e,n){return s(e)===s(n)}r(w,"baseUrlEquals");function M(e,n){return`${e?.trim().toLowerCase()||""}|${s(n)??"default"}`}r(M,"profileKey");function E(e){return s(e?.baseUrl)}r(E,"selectorBaseUrl");function x(e){let n=s(e.baseUrl);return n?{handle:e.handle,baseUrl:n}:{handle:e.handle}}r(x,"selectorFromAccount");function d(e){let n=typeof e?.handle=="string"?e.handle.trim():"";if(!n)return null;let t=s(e?.baseUrl);return t?{handle:n,baseUrl:t}:{handle:n}}r(d,"normalizeActiveProfile");function R(e,n){if(!y(e.handle,n.handle))return!1;let t=E(n);return t?w(e.baseUrl,t):!s(e.baseUrl)}r(R,"accountMatchesSelector");function $(e,n){if(!y(e.handle,n.handle))return!1;let t=E(n);return t?w(e.baseUrl,t):!s(e.baseUrl)}r($,"profileMatchesSelector");function J(e,n,t){let o=Array.isArray(e.accounts)?e.accounts:[],a=n||process.env.OPENPOND_ACCOUNT?d({handle:n||process.env.OPENPOND_ACCOUNT||"",baseUrl:t??process.env.OPENPOND_BASE_URL??null}):d(e.activeProfile);if(a){let l=o.find(u=>R(u,a));if(l)return l;let i=o.filter(u=>y(u.handle,a.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}r(J,"findActiveAccount");function V(e){let n=Array.isArray(e.accounts)?e.accounts:[],t=d(e.activeProfile)??(n[0]?x(n[0]):null);return j(n.map(o=>({handle:o.handle,baseUrl:s(o.baseUrl),apiBaseUrl:s(o.apiBaseUrl),chatApiBaseUrl:s(o.chatApiBaseUrl),environment:A(o.environment),isActive:t?R(o,t):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}r(V,"fallbackProfilesFromConfig");function j(e){let n=new Map;for(let t of e){let o=s(t.baseUrl),a=`${t.handle.toLowerCase()}|${o??"default"}`,l={...t,baseUrl:o,apiBaseUrl:s(t.apiBaseUrl),chatApiBaseUrl:s(t.chatApiBaseUrl),environment:A(t.environment),isActive:t.isActive},i=n.get(a);(!i||l.isActive&&!i.isActive||l.hasApiKey&&!i.hasApiKey)&&n.set(a,l)}return Array.from(n.values())}r(j,"normalizeProfiles");function W(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}r(W,"profileAuthHealth");function le(e,n){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||n,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}r(le,"normalizeHealth");function X(e){let n=e?.account;return n?{id:n.id??null,email:n.email??null,name:n.name??null,handle:n.handle??null,image:n.image??null,timezone:n.timezone??null,isAdmin:n.isAdmin??null,isVerified:n.isVerified??null,dailyAgentAppId:n.dailyAgentAppId??null,dailyAgentDeploymentId:n.dailyAgentDeploymentId??null,credits:n.credits??null}:null}r(X,"normalizeProfile");function ce(e){return(e??[]).map(n=>({...n,id:n.id||n.userProductId||n.openPondProductId||n.name,name:n.name,type:n.type,status:n.status,isActive:n.isActive??null,price:n.price??null,currency:n.currency??null,credits:n.credits??null}))}r(ce,"normalizeProducts");function ue(e){return e.handle.trim().toLowerCase()==="default"&&!s(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}r(ue,"isEmptyDefaultProfile");function de(e){let n=e?.trim();return n?n.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${n.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}r(de,"apiKeyHint");function pe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}r(pe,"apiKeyAccess");function _(e){let{config:n,profiles:t,account:o,token:a,apiBaseUrl:l,accountResponse:i,accountProfiles:u,health:P,authFailed:f,error:h}=e,k=B(o,n,l),m=X(i??null),Q=d(n.activeProfile),U=(o?x(o):null)??Q,O=m?.handle||o?.handle||U?.handle||null,I=(U?t.find(c=>$(c,U)):null)??t.find(c=>c.isActive)??null,Z=f?"auth_error":a?"signed_in":"signed_out",ee=m?.name||m?.handle||m?.email||O||"Signed out",ne=s(I?.baseUrl||o?.baseUrl||C),F=A(I?.environment||o?.environment),v=d(U)??(O?d({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),te=(t.length>0?t:O?[{handle:O,baseUrl:E(v)??s(o?.baseUrl),apiBaseUrl:l,chatApiBaseUrl:k,environment:F,isActive:!0,hasApiKey:!!a,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(c=>!ue(c));return{state:Z,activeProfile:v,label:ee,email:m?.email??null,avatarUrl:m?.image??null,environment:F,baseUrl:ne,apiBaseUrl:l,chatApiBaseUrl:k,creditsLabel:m?.credits??null,profile:m,products:ce(i?.products),apiHealth:le(P??null,l),accounts:te.map(c=>{let T=s(c.baseUrl),oe=n.accounts?.find(z=>y(z.handle,c.handle)&&w(z.baseUrl,T)),L=u?.[M(c.handle,T)]??null,b=X(L?.response??null);return{handle:c.handle,baseUrl:T,apiBaseUrl:s(c.apiBaseUrl),chatApiBaseUrl:s(c.chatApiBaseUrl),environment:A(c.environment),isActive:v?$(c,v):!1,authHealth:L?.authFailed?"auth_error":W(c),displayLabel:b?.name||b?.handle||b?.email||c.handle,email:b?.email??null,avatarUrl:b?.image??null,apiKeyHint:de(oe?.apiKey),apiKeyAccess:pe(L?.response??null)}}),error:h??P?.error??null}}r(_,"toAccountState");async function fe(e){try{return j(await q())}catch{return V(e)}}r(fe,"loadProfiles");async function p(e,n){let t=await K(),o=await fe(t),a=J(t,e,n),l=N(a),i=D(a,t),u=B(a,t,i);return{config:t,profiles:o,account:a,token:l,apiBaseUrl:i,chatApiBaseUrl:u,accountState:_({config:t,profiles:o,account:a,token:l,apiBaseUrl:i})}}r(p,"loadOpenPondAccountContext");import{spawn as me}from"node:child_process";function Y(e,n=process.platform){return n==="darwin"?{command:"open",args:[e]}:n==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}r(Y,"resolveSystemBrowserCommand");async function he(e,n={}){let t=n.command??Y(e),o=n.handoffTimeoutMs??1500;return new Promise(a=>{let l=!1,i=null,u=r(f=>{l||(l=!0,i&&clearTimeout(i),a(f))},"finish"),P=me(t.command,t.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});P.once("error",f=>{let h=f.code;u({opened:!1,error:h?`browser launcher ${t.command} failed (${h})`:`browser launcher ${t.command} failed`})}),P.once("close",(f,h)=>{if(f===0){u({opened:!0});return}let k=h?`signal ${h}`:`code ${f??"unknown"}`;u({opened:!1,error:`browser launcher ${t.command} exited with ${k}`})}),i=setTimeout(()=>{P.unref(),u({opened:!0})},o),i.unref()})}r(he,"openUrlWithSystemBrowser");export{p as a,he as b};
2
+ import{b as K,c as q}from"./chunk-HFJUXKT5.js";import{d as C,e as g}from"./chunk-JCLTFDVW.js";import{a as r}from"./chunk-FTQLQJQV.js";var re=new URL(g).hostname,G=new URL(C).hostname,se=`${g}/opchat/v1`;function s(e){if(!e)return null;let n=e.trim();return n?n.replace(/\/+$/,""):null}r(s,"normalizeBaseUrl");function H(e){let n=s(e);if(!n)return null;try{let o=new URL(n).hostname.toLowerCase();if(o===re)return g;if(o===G||o===`www.${G}`||o==="openpond.live"||o==="www.openpond.live")return g;if(o.startsWith("api."))return n}catch{return null}return null}r(H,"mapUiBaseToApiBase");function D(e,n){let t=s(process.env.OPENPOND_API_URL);if(t)return t;let o=s(e?.apiBaseUrl);if(o)return o;let a=s(n.apiBaseUrl);if(a)return a;let l=H(process.env.OPENPOND_BASE_URL);return l||(H(e?.baseUrl||n.baseUrl)??g)}r(D,"resolvePublicApiBaseUrl");function B(e,n,t){return ae(e,n,t)}r(B,"resolveHostedChatApiBaseUrl");function ae(e,n,t){let o=typeof process<"u"?process.env:{};return S(o.OPENPOND_OPCHAT_API_URL)??S(e?.chatApiBaseUrl??n.chatApiBaseUrl)??S(o.OPENPOND_CHAT_API_URL)??ie(t)}r(ae,"resolveOpChatApiBaseUrl");function S(e){let n=s(e);if(!n)return null;try{let t=new URL(n),o=t.pathname.split("/").filter(Boolean),a=o.findIndex(i=>i.toLowerCase()==="opchat");return a>=0?(t.pathname=`/${[...o.slice(0,a+1),"v1"].join("/")}`,t.search="",t.hash="",s(t.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(t.pathname="/opchat/v1",t.search="",t.hash="",s(t.toString())??null):(t.pathname=`${t.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),t.search="",t.hash="",s(t.toString())??null)}catch{return null}}r(S,"normalizeOpChatApiBaseUrl");function ie(e){return S(e)??se}r(ie,"opChatBaseFromPublicApiBase");function A(e){return e?.trim()?e.trim():"production"}r(A,"deriveEnvironment");function N(e,n=process.env){let t=[e?.apiKey,e?.session?.token,e?.token,n.OPENPOND_API_KEY];for(let o of t){let a=typeof o=="string"?o.trim():"";if(a)return a}return null}r(N,"accountToken");function y(e,n){return!!(e&&n&&e.toLowerCase()===n.toLowerCase())}r(y,"handleEquals");function w(e,n){return s(e)===s(n)}r(w,"baseUrlEquals");function M(e,n){return`${e?.trim().toLowerCase()||""}|${s(n)??"default"}`}r(M,"profileKey");function E(e){return s(e?.baseUrl)}r(E,"selectorBaseUrl");function x(e){let n=s(e.baseUrl);return n?{handle:e.handle,baseUrl:n}:{handle:e.handle}}r(x,"selectorFromAccount");function d(e){let n=typeof e?.handle=="string"?e.handle.trim():"";if(!n)return null;let t=s(e?.baseUrl);return t?{handle:n,baseUrl:t}:{handle:n}}r(d,"normalizeActiveProfile");function R(e,n){if(!y(e.handle,n.handle))return!1;let t=E(n);return t?w(e.baseUrl,t):!s(e.baseUrl)}r(R,"accountMatchesSelector");function $(e,n){if(!y(e.handle,n.handle))return!1;let t=E(n);return t?w(e.baseUrl,t):!s(e.baseUrl)}r($,"profileMatchesSelector");function J(e,n,t){let o=Array.isArray(e.accounts)?e.accounts:[],a=n||process.env.OPENPOND_ACCOUNT?d({handle:n||process.env.OPENPOND_ACCOUNT||"",baseUrl:t??process.env.OPENPOND_BASE_URL??null}):d(e.activeProfile);if(a){let l=o.find(u=>R(u,a));if(l)return l;let i=o.filter(u=>y(u.handle,a.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}r(J,"findActiveAccount");function V(e){let n=Array.isArray(e.accounts)?e.accounts:[],t=d(e.activeProfile)??(n[0]?x(n[0]):null);return j(n.map(o=>({handle:o.handle,baseUrl:s(o.baseUrl),apiBaseUrl:s(o.apiBaseUrl),chatApiBaseUrl:s(o.chatApiBaseUrl),environment:A(o.environment),isActive:t?R(o,t):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}r(V,"fallbackProfilesFromConfig");function j(e){let n=new Map;for(let t of e){let o=s(t.baseUrl),a=`${t.handle.toLowerCase()}|${o??"default"}`,l={...t,baseUrl:o,apiBaseUrl:s(t.apiBaseUrl),chatApiBaseUrl:s(t.chatApiBaseUrl),environment:A(t.environment),isActive:t.isActive},i=n.get(a);(!i||l.isActive&&!i.isActive||l.hasApiKey&&!i.hasApiKey)&&n.set(a,l)}return Array.from(n.values())}r(j,"normalizeProfiles");function W(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}r(W,"profileAuthHealth");function le(e,n){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||n,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}r(le,"normalizeHealth");function X(e){let n=e?.account;return n?{id:n.id??null,email:n.email??null,name:n.name??null,handle:n.handle??null,image:n.image??null,timezone:n.timezone??null,isAdmin:n.isAdmin??null,isVerified:n.isVerified??null,dailyAgentAppId:n.dailyAgentAppId??null,dailyAgentDeploymentId:n.dailyAgentDeploymentId??null,credits:n.credits??null}:null}r(X,"normalizeProfile");function ce(e){return(e??[]).map(n=>({...n,id:n.id||n.userProductId||n.openPondProductId||n.name,name:n.name,type:n.type,status:n.status,isActive:n.isActive??null,price:n.price??null,currency:n.currency??null,credits:n.credits??null}))}r(ce,"normalizeProducts");function ue(e){return e.handle.trim().toLowerCase()==="default"&&!s(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}r(ue,"isEmptyDefaultProfile");function de(e){let n=e?.trim();return n?n.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${n.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}r(de,"apiKeyHint");function pe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}r(pe,"apiKeyAccess");function _(e){let{config:n,profiles:t,account:o,token:a,apiBaseUrl:l,accountResponse:i,accountProfiles:u,health:P,authFailed:f,error:h}=e,k=B(o,n,l),m=X(i??null),Q=d(n.activeProfile),U=(o?x(o):null)??Q,O=m?.handle||o?.handle||U?.handle||null,I=(U?t.find(c=>$(c,U)):null)??t.find(c=>c.isActive)??null,Z=f?"auth_error":a?"signed_in":"signed_out",ee=m?.name||m?.handle||m?.email||O||"Signed out",ne=s(I?.baseUrl||o?.baseUrl||C),F=A(I?.environment||o?.environment),v=d(U)??(O?d({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),te=(t.length>0?t:O?[{handle:O,baseUrl:E(v)??s(o?.baseUrl),apiBaseUrl:l,chatApiBaseUrl:k,environment:F,isActive:!0,hasApiKey:!!a,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(c=>!ue(c));return{state:Z,activeProfile:v,label:ee,email:m?.email??null,avatarUrl:m?.image??null,environment:F,baseUrl:ne,apiBaseUrl:l,chatApiBaseUrl:k,creditsLabel:m?.credits??null,profile:m,products:ce(i?.products),apiHealth:le(P??null,l),accounts:te.map(c=>{let T=s(c.baseUrl),oe=n.accounts?.find(z=>y(z.handle,c.handle)&&w(z.baseUrl,T)),L=u?.[M(c.handle,T)]??null,b=X(L?.response??null);return{handle:c.handle,baseUrl:T,apiBaseUrl:s(c.apiBaseUrl),chatApiBaseUrl:s(c.chatApiBaseUrl),environment:A(c.environment),isActive:v?$(c,v):!1,authHealth:L?.authFailed?"auth_error":W(c),displayLabel:b?.name||b?.handle||b?.email||c.handle,email:b?.email??null,avatarUrl:b?.image??null,apiKeyHint:de(oe?.apiKey),apiKeyAccess:pe(L?.response??null)}}),error:h??P?.error??null}}r(_,"toAccountState");async function fe(e){try{return j(await q())}catch{return V(e)}}r(fe,"loadProfiles");async function p(e,n){let t=await K(),o=await fe(t),a=J(t,e,n),l=N(a),i=D(a,t),u=B(a,t,i);return{config:t,profiles:o,account:a,token:l,apiBaseUrl:i,chatApiBaseUrl:u,accountState:_({config:t,profiles:o,account:a,token:l,apiBaseUrl:i})}}r(p,"loadOpenPondAccountContext");import{spawn as me}from"node:child_process";function Y(e,n=process.platform){return n==="darwin"?{command:"open",args:[e]}:n==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}r(Y,"resolveSystemBrowserCommand");async function he(e,n={}){let t=n.command??Y(e),o=n.handoffTimeoutMs??1500;return new Promise(a=>{let l=!1,i=null,u=r(f=>{l||(l=!0,i&&clearTimeout(i),a(f))},"finish"),P=me(t.command,t.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});P.once("error",f=>{let h=f.code;u({opened:!1,error:h?`browser launcher ${t.command} failed (${h})`:`browser launcher ${t.command} failed`})}),P.once("close",(f,h)=>{if(f===0){u({opened:!0});return}let k=h?`signal ${h}`:`code ${f??"unknown"}`;u({opened:!1,error:`browser launcher ${t.command} exited with ${k}`})}),i=setTimeout(()=>{P.unref(),u({opened:!0})},o),i.unref()})}r(he,"openUrlWithSystemBrowser");export{p as a,he as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{d as c,e as i}from"./chunk-TTN63EAM.js";import{j as l}from"./chunk-OZ6LRNRE.js";import{n as o}from"./chunk-VVNV4NNW.js";import{a as n}from"./chunk-FTQLQJQV.js";async function u(e,s){let a=await e.getHarnessRunOverlay(s);if(!a)return c(e);let t=await e.getHarnessWorkspace(a.workspace.workspaceId),r=await e.getHarnessReleaseRecord(a.baseHarnessRelease.contentHash);if(!t||!r||r.harnessRelease.id!==a.baseHarnessRelease.id)throw new Error("Durable Agent run overlay references an unavailable Harness release.");return i({workspace:t,release:r})}n(u,"loadLocalHarnessRuntimeForAgentRun");async function m(e){let s=await e.store.getHarnessRunOverlay(e.runId);if(s){if(s.workspace.workspaceId!==e.workspace.id||s.baseHarnessRelease.id!==e.harnessRelease.id||s.baseHarnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("The durable Agent run is already bound to a different Harness release; start a fresh run or explicitly rebase its overlay.");return s}let a=l({schemaVersion:"openpond.harnessRunOverlay.v1",id:`overlay-${o({runId:e.runId,harnessRelease:e.harnessRelease}).slice(0,24)}`,runId:e.runId,baseHarnessRelease:e.harnessRelease,workspace:{workspaceId:e.workspace.id,revision:e.workspace.revision,sourceRevision:e.workspace.sourceRevision,channelRevision:e.workspace.currentChannel.revision},revision:0,status:"active",edits:[],createdAt:e.admittedAt,updatedAt:e.admittedAt,metadata:{}});return e.store.createHarnessRunOverlay(a)}n(m,"ensureLocalHarnessRunOverlay");export{u as a,m as b};
2
+ import{d as c,e as i}from"./chunk-AH26AQN7.js";import{j as l}from"./chunk-MPNJ2BB4.js";import{n as o}from"./chunk-VVNV4NNW.js";import{a as n}from"./chunk-FTQLQJQV.js";async function u(e,s){let a=await e.getHarnessRunOverlay(s);if(!a)return c(e);let t=await e.getHarnessWorkspace(a.workspace.workspaceId),r=await e.getHarnessReleaseRecord(a.baseHarnessRelease.contentHash);if(!t||!r||r.harnessRelease.id!==a.baseHarnessRelease.id)throw new Error("Durable Agent run overlay references an unavailable Harness release.");return i({workspace:t,release:r})}n(u,"loadLocalHarnessRuntimeForAgentRun");async function m(e){let s=await e.store.getHarnessRunOverlay(e.runId);if(s){if(s.workspace.workspaceId!==e.workspace.id||s.baseHarnessRelease.id!==e.harnessRelease.id||s.baseHarnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("The durable Agent run is already bound to a different Harness release; start a fresh run or explicitly rebase its overlay.");return s}let a=l({schemaVersion:"openpond.harnessRunOverlay.v1",id:`overlay-${o({runId:e.runId,harnessRelease:e.harnessRelease}).slice(0,24)}`,runId:e.runId,baseHarnessRelease:e.harnessRelease,workspace:{workspaceId:e.workspace.id,revision:e.workspace.revision,sourceRevision:e.workspace.sourceRevision,channelRevision:e.workspace.currentChannel.revision},revision:0,status:"active",edits:[],createdAt:e.admittedAt,updatedAt:e.admittedAt,metadata:{}});return e.store.createHarnessRunOverlay(a)}n(m,"ensureLocalHarnessRunOverlay");export{u as a,m as b};