openpond 0.2.63 → 0.2.65

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 (561) hide show
  1. package/dist/app-server.d.ts +76 -2
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/account-context-TIJOM22A.js +12 -0
  4. package/dist/chunks/acp-PHMBLRCV.js +2 -0
  5. package/dist/chunks/acp-agent-A7GK2VSH.js +19 -0
  6. package/dist/chunks/actions-command-VLKMHCMI.js +2 -0
  7. package/dist/chunks/app-layer-J66CQ2QN.js +3 -0
  8. package/dist/chunks/app-server-connected-apps-IB6M35NS.js +2 -0
  9. package/dist/chunks/app-server-evaluations-V6LRWDUF.js +2 -0
  10. package/dist/chunks/app-server-harness-services-6ZRLA3YD.js +2 -0
  11. package/dist/chunks/app-server-runtime-OMR2VE6L.js +2 -0
  12. package/dist/chunks/apps-IHUFERZO.js +2 -0
  13. package/dist/chunks/{chunk-NZTCH6K5.js → chunk-2GJD23CM.js} +1 -1
  14. package/dist/chunks/{chunk-BKEDG3A4.js → chunk-2MEOUS24.js} +1 -1
  15. package/dist/chunks/{chunk-DUL6DXOI.js → chunk-2W22IXHB.js} +1 -1
  16. package/dist/chunks/{chunk-GGJUWIGR.js → chunk-36FNNR5N.js} +1 -1
  17. package/dist/chunks/chunk-3BJ7LPE3.js +2 -0
  18. package/dist/chunks/chunk-3MVKXAH7.js +2 -0
  19. package/dist/chunks/{chunk-UTNGEMW5.js → chunk-3WJQ4IGK.js} +1 -1
  20. package/dist/chunks/{chunk-G6OR5NB6.js → chunk-4D3CICBG.js} +1 -1
  21. package/dist/chunks/chunk-4DYWVGVS.js +2 -0
  22. package/dist/chunks/{chunk-KUPJNBWG.js → chunk-4JYTFEND.js} +1 -1
  23. package/dist/chunks/chunk-4MQHIFZL.js +2 -0
  24. package/dist/chunks/chunk-4TO743HO.js +4 -0
  25. package/dist/chunks/{chunk-B4RKHHF7.js → chunk-4TTXNVCE.js} +1 -1
  26. package/dist/chunks/{chunk-3YXYBYWK.js → chunk-4V73I4OL.js} +1 -1
  27. package/dist/chunks/chunk-55Q64WWF.js +2 -0
  28. package/dist/chunks/{chunk-F7QTIHXX.js → chunk-5AU5Y6KS.js} +1 -1
  29. package/dist/chunks/chunk-5HPZGLOL.js +2 -0
  30. package/dist/chunks/{chunk-LCSBCCYC.js → chunk-5JVJQA5H.js} +1 -1
  31. package/dist/chunks/chunk-5KJMFK65.js +2 -0
  32. package/dist/chunks/{chunk-BSPFY3Y5.js → chunk-5KWKSR4P.js} +1 -1
  33. package/dist/chunks/chunk-5WPMI6QX.js +2 -0
  34. package/dist/chunks/{chunk-SHJY5RLU.js → chunk-5Z3AU5CL.js} +1 -1
  35. package/dist/chunks/{chunk-DQI5TE6A.js → chunk-66HFW4OU.js} +1 -1
  36. package/dist/chunks/{chunk-NT7N6KLE.js → chunk-67HXM6AL.js} +1 -1
  37. package/dist/chunks/{chunk-J7ZTPXRQ.js → chunk-6C3CXME7.js} +1 -1
  38. package/dist/chunks/{chunk-PWK5Z5S3.js → chunk-6ESBAHWK.js} +1 -1
  39. package/dist/chunks/{chunk-XNOMIWEY.js → chunk-6I5AUTVO.js} +1 -1
  40. package/dist/chunks/{chunk-OG33QAG6.js → chunk-6S2MWJVD.js} +1 -1
  41. package/dist/chunks/{chunk-KCOTDUGW.js → chunk-6TRVEA3T.js} +1 -1
  42. package/dist/chunks/chunk-6ZTP6CUJ.js +2 -0
  43. package/dist/chunks/{chunk-4L6DU6Z2.js → chunk-7FBWUVX7.js} +1 -1
  44. package/dist/chunks/{chunk-GPL2Z65R.js → chunk-7P5SH3CI.js} +2 -2
  45. package/dist/chunks/chunk-7PKTCMZ6.js +2 -0
  46. package/dist/chunks/chunk-7XOUM6RK.js +2 -0
  47. package/dist/chunks/chunk-A77DLBR4.js +2 -0
  48. package/dist/chunks/chunk-AF3AVDPP.js +2 -0
  49. package/dist/chunks/{chunk-RV7PUSI2.js → chunk-AJXWJLZA.js} +1 -1
  50. package/dist/chunks/chunk-AMC4Z7G4.js +2 -0
  51. package/dist/chunks/chunk-ANG2YMMD.js +2 -0
  52. package/dist/chunks/{chunk-ZPTKR3GB.js → chunk-B32CW3NT.js} +1 -1
  53. package/dist/chunks/{chunk-Y766IN7Y.js → chunk-B666Z2NS.js} +1 -1
  54. package/dist/chunks/chunk-BJXPQIVD.js +2 -0
  55. package/dist/chunks/{chunk-WBUK73ST.js → chunk-BL3CZWWD.js} +1 -1
  56. package/dist/chunks/{chunk-XMHIQ3SK.js → chunk-BTJACFU3.js} +2 -2
  57. package/dist/chunks/{chunk-25XXZS3E.js → chunk-C5B3FMV3.js} +1 -1
  58. package/dist/chunks/chunk-CRDKBFRN.js +2 -0
  59. package/dist/chunks/chunk-CYQLXS2U.js +2 -0
  60. package/dist/chunks/{chunk-N4VHLJBZ.js → chunk-D7R2AAX2.js} +1 -1
  61. package/dist/chunks/{chunk-LSZJ5M3X.js → chunk-DAEUVT2I.js} +1 -1
  62. package/dist/chunks/{chunk-ELX7VRSU.js → chunk-DIDQHTAX.js} +1 -1
  63. package/dist/chunks/chunk-DMO3UIS7.js +6 -0
  64. package/dist/chunks/{chunk-4BJGUCHY.js → chunk-DRMOHADV.js} +1 -1
  65. package/dist/chunks/{chunk-FYYYECHE.js → chunk-DSJZS77R.js} +4 -4
  66. package/dist/chunks/{chunk-7HRLWPPZ.js → chunk-DXA2UHBE.js} +1 -1
  67. package/dist/chunks/chunk-E2S2EMYQ.js +10 -0
  68. package/dist/chunks/{chunk-T6JN4PND.js → chunk-EBOTNBUS.js} +1 -1
  69. package/dist/chunks/chunk-ECOH24MC.js +9 -0
  70. package/dist/chunks/{chunk-6PKXJEJM.js → chunk-EICS777E.js} +1 -1
  71. package/dist/chunks/{chunk-4SZ3HKHU.js → chunk-EVQISX7M.js} +1 -1
  72. package/dist/chunks/chunk-FEQ7HNJR.js +2 -0
  73. package/dist/chunks/{chunk-2HAWOMZK.js → chunk-FGOTSCSE.js} +1 -1
  74. package/dist/chunks/{chunk-IWWXIUAQ.js → chunk-FHLSLOKH.js} +8 -8
  75. package/dist/chunks/{chunk-BU27SLZP.js → chunk-FS2VKOT7.js} +1 -1
  76. package/dist/chunks/{chunk-4FNCBA3Y.js → chunk-FUFI4THX.js} +1 -1
  77. package/dist/chunks/{chunk-W5W4IODW.js → chunk-FYWQWKVS.js} +1 -1
  78. package/dist/chunks/{chunk-IZ56L2ZK.js → chunk-G4747MOW.js} +1 -1
  79. package/dist/chunks/{chunk-J572ANHX.js → chunk-G4E3WGLM.js} +4 -4
  80. package/dist/chunks/{chunk-P7HRF4FM.js → chunk-GD3RCUDH.js} +1 -1
  81. package/dist/chunks/{chunk-HUCBKXTU.js → chunk-GDJ4X2ZN.js} +1 -1
  82. package/dist/chunks/{chunk-JHR3LF2F.js → chunk-GF55VEMR.js} +1 -1
  83. package/dist/chunks/{chunk-GXCUH2VV.js → chunk-GFAI2MCJ.js} +3 -3
  84. package/dist/chunks/{chunk-KOKX7PBS.js → chunk-GI7LTJV3.js} +1 -1
  85. package/dist/chunks/{chunk-TCOTXCV6.js → chunk-GIU3Z45P.js} +1 -1
  86. package/dist/chunks/{chunk-GXZCMO6S.js → chunk-GRLQHYAU.js} +2 -2
  87. package/dist/chunks/{chunk-M3SCON53.js → chunk-GUG2SWRZ.js} +1 -1
  88. package/dist/chunks/{chunk-JQRMDFF3.js → chunk-H42UW6IF.js} +1 -1
  89. package/dist/chunks/{chunk-EZRUWIP6.js → chunk-H5ML7735.js} +1 -1
  90. package/dist/chunks/{chunk-VNJAAYNQ.js → chunk-HIQPGYVH.js} +1 -1
  91. package/dist/chunks/{chunk-DLANLLKH.js → chunk-HNDAGZCF.js} +1 -1
  92. package/dist/chunks/{chunk-OE22TAXP.js → chunk-HNQPEOJD.js} +1 -1
  93. package/dist/chunks/chunk-HORMGT2Q.js +2 -0
  94. package/dist/chunks/{chunk-2V4LPUBH.js → chunk-HPTEJBP4.js} +1 -1
  95. package/dist/chunks/{chunk-UWHIU24L.js → chunk-HVM2GUM3.js} +1 -1
  96. package/dist/chunks/{chunk-NEJLJ2XY.js → chunk-HX6GXMDK.js} +1 -1
  97. package/dist/chunks/chunk-I3NYYOSS.js +2 -0
  98. package/dist/chunks/{chunk-LV3CQ72P.js → chunk-I6VMRQF4.js} +1 -1
  99. package/dist/chunks/{chunk-QU4UE73E.js → chunk-IEVJLG3V.js} +1 -1
  100. package/dist/chunks/chunk-IOSBGCRT.js +2 -0
  101. package/dist/chunks/{chunk-SO42ZB5K.js → chunk-JBFPTEVE.js} +1 -1
  102. package/dist/chunks/{chunk-G32BO6M5.js → chunk-JD76ANPN.js} +1 -1
  103. package/dist/chunks/{chunk-ERJV5BMC.js → chunk-JFZ6USNQ.js} +1 -1
  104. package/dist/chunks/{chunk-UPWJSNL5.js → chunk-JLW5BQVO.js} +1 -1
  105. package/dist/chunks/chunk-JRGECNP3.js +2 -0
  106. package/dist/chunks/{chunk-DABBHWSF.js → chunk-KAWXVMHI.js} +1 -1
  107. package/dist/chunks/chunk-KGUPAPGR.js +2 -0
  108. package/dist/chunks/{chunk-AHOBCBVZ.js → chunk-KOKBDIGR.js} +1 -1
  109. package/dist/chunks/chunk-KTIBXRWQ.js +2 -0
  110. package/dist/chunks/chunk-L4EJ5R3B.js +23 -0
  111. package/dist/chunks/{chunk-SI5W5LBV.js → chunk-LARJARMS.js} +1 -1
  112. package/dist/chunks/{chunk-MPNJ2BB4.js → chunk-LE75SVEL.js} +1 -1
  113. package/dist/chunks/{chunk-ERT32RZA.js → chunk-LI3FTPAH.js} +5 -5
  114. package/dist/chunks/chunk-LK77GI6M.js +2 -0
  115. package/dist/chunks/chunk-LOIYNRBC.js +33 -0
  116. package/dist/chunks/{chunk-7WYL2IDD.js → chunk-LXZLLTYQ.js} +1 -1
  117. package/dist/chunks/{chunk-RZUCVF2Q.js → chunk-LYVHYT3L.js} +1 -1
  118. package/dist/chunks/{chunk-MWXW2CA6.js → chunk-LZPCA6DH.js} +1 -1
  119. package/dist/chunks/{chunk-GVARQXYI.js → chunk-M5QPL5NO.js} +1 -1
  120. package/dist/chunks/{chunk-WWQNMC7C.js → chunk-MCBRB5D6.js} +1 -1
  121. package/dist/chunks/chunk-MHPCVQOE.js +2 -0
  122. package/dist/chunks/chunk-MMJU6PZV.js +2 -0
  123. package/dist/chunks/chunk-MVPKU72J.js +4 -0
  124. package/dist/chunks/{chunk-AGVOGPAZ.js → chunk-MWS2NAHJ.js} +1 -1
  125. package/dist/chunks/{chunk-R6VJDOQM.js → chunk-N2AV7PHV.js} +4 -4
  126. package/dist/chunks/{chunk-R6WMY6AH.js → chunk-NTM3KQ25.js} +1 -1
  127. package/dist/chunks/chunk-NXN7GJOH.js +2 -0
  128. package/dist/chunks/chunk-O6ZYDHEJ.js +3 -0
  129. package/dist/chunks/chunk-OKEC2EIE.js +2 -0
  130. package/dist/chunks/{chunk-KCV5VN4X.js → chunk-OKKNDQJF.js} +1 -1
  131. package/dist/chunks/{chunk-ZYVHOVKL.js → chunk-OPTJYDZN.js} +1 -1
  132. package/dist/chunks/{chunk-NJLULBTM.js → chunk-OTDDXEQ6.js} +1 -1
  133. package/dist/chunks/{chunk-RDSVU6F6.js → chunk-OTUS7NTQ.js} +1 -1
  134. package/dist/chunks/{chunk-UH4JSSRL.js → chunk-OTXGAKFH.js} +8 -8
  135. package/dist/chunks/chunk-OW3EOC5Q.js +4 -0
  136. package/dist/chunks/chunk-OXRVILDW.js +2 -0
  137. package/dist/chunks/{chunk-JEISPWWM.js → chunk-PWKJ5KLZ.js} +1 -1
  138. package/dist/chunks/{chunk-RFMME46Z.js → chunk-PYNW5OFA.js} +1 -1
  139. package/dist/chunks/{chunk-AKGCM53D.js → chunk-Q3WXB465.js} +1 -1
  140. package/dist/chunks/{chunk-KHTAAVC2.js → chunk-Q4AXZY2P.js} +1 -1
  141. package/dist/chunks/{chunk-QJ6KUVAR.js → chunk-QAEZNFAM.js} +1 -1
  142. package/dist/chunks/{chunk-ABF3W2MO.js → chunk-QAFXQHHG.js} +2 -2
  143. package/dist/chunks/chunk-QCJY6FTC.js +3 -0
  144. package/dist/chunks/{chunk-5MHYGMJG.js → chunk-QJJNHKLT.js} +1 -1
  145. package/dist/chunks/{chunk-ERL2M773.js → chunk-QYQZQVVN.js} +1 -1
  146. package/dist/chunks/{chunk-VVNV4NNW.js → chunk-RCT3O3HQ.js} +1 -1
  147. package/dist/chunks/{chunk-7R56WC7L.js → chunk-RHMULF56.js} +1 -1
  148. package/dist/chunks/chunk-RRWL5BHZ.js +2 -0
  149. package/dist/chunks/{chunk-RG3NH6YQ.js → chunk-S4WILIRA.js} +1 -1
  150. package/dist/chunks/{chunk-N33D7KCW.js → chunk-S6UCVXBC.js} +1 -1
  151. package/dist/chunks/{chunk-IHB5GTOJ.js → chunk-SAZTOGX6.js} +3 -3
  152. package/dist/chunks/{chunk-2EPR4HLF.js → chunk-SH7POUVX.js} +6 -6
  153. package/dist/chunks/{chunk-NLYZ5K7U.js → chunk-SSJV3VX7.js} +1 -1
  154. package/dist/chunks/chunk-TBODQT4W.js +2 -0
  155. package/dist/chunks/chunk-TGULVWPV.js +2 -0
  156. package/dist/chunks/{chunk-HIYQPZ7C.js → chunk-TPOAAJKA.js} +1 -1
  157. package/dist/chunks/{chunk-42V4NV2F.js → chunk-TVDZXDQW.js} +1 -1
  158. package/dist/chunks/{chunk-FVRII5XO.js → chunk-U2BD545L.js} +1 -1
  159. package/dist/chunks/chunk-UK5LGSGT.js +2 -0
  160. package/dist/chunks/{chunk-HFJUXKT5.js → chunk-ULJZ7NUF.js} +1 -1
  161. package/dist/chunks/chunk-UM6EQOT2.js +161 -0
  162. package/dist/chunks/chunk-UN2LKLGV.js +2 -0
  163. package/dist/chunks/{chunk-4NXEYPPX.js → chunk-UOFDKMRU.js} +1 -1
  164. package/dist/chunks/{chunk-2ITZW2CN.js → chunk-UTIELP6F.js} +1 -1
  165. package/dist/chunks/{chunk-NWQL6FNF.js → chunk-V3KEG6MI.js} +1 -1
  166. package/dist/chunks/{chunk-BPZOABMC.js → chunk-V3S2B6WU.js} +2 -2
  167. package/dist/chunks/{chunk-ZG6353RM.js → chunk-VD2TQCMH.js} +1 -1
  168. package/dist/chunks/{chunk-4ZBOYWQ3.js → chunk-VS2LOUCT.js} +1 -1
  169. package/dist/chunks/{chunk-V7KR74NO.js → chunk-VS3AMJEK.js} +1 -1
  170. package/dist/chunks/{chunk-YCZZ62C2.js → chunk-W22KWKF6.js} +1 -1
  171. package/dist/chunks/chunk-W7NXFRHN.js +2 -0
  172. package/dist/chunks/{chunk-DTTFUANI.js → chunk-WBO6FQHR.js} +2 -2
  173. package/dist/chunks/{chunk-5ZBLCWEJ.js → chunk-WJSJXK2N.js} +1 -1
  174. package/dist/chunks/{chunk-C2LAEGOW.js → chunk-WKHGXLJD.js} +2 -2
  175. package/dist/chunks/{chunk-H6C4MAUN.js → chunk-WLQEONBF.js} +1 -1
  176. package/dist/chunks/chunk-WLZJOCLA.js +10 -0
  177. package/dist/chunks/chunk-WMBOXX7G.js +2 -0
  178. package/dist/chunks/{chunk-PF56N7ZY.js → chunk-X2J2P5ZT.js} +5 -5
  179. package/dist/chunks/{chunk-AH26AQN7.js → chunk-XHBMK6LC.js} +1 -1
  180. package/dist/chunks/{chunk-ZZHXQCNB.js → chunk-Y3B6ZUE6.js} +1 -1
  181. package/dist/chunks/{chunk-WP2L2NY2.js → chunk-YBKDEEEH.js} +1 -1
  182. package/dist/chunks/chunk-YRDPVTEI.js +3 -0
  183. package/dist/chunks/{chunk-JORRZ4BB.js → chunk-YU4JYWCA.js} +1 -1
  184. package/dist/chunks/{chunk-CZ5R4JXZ.js → chunk-Z2TOBS3P.js} +1 -1
  185. package/dist/chunks/chunk-ZFJWA4JK.js +1 -0
  186. package/dist/chunks/chunk-ZSZXA7WB.js +2 -0
  187. package/dist/chunks/{chunk-LK2K3SPM.js → chunk-ZU3YBRXS.js} +2 -2
  188. package/dist/chunks/{chunk-5FU5RLML.js → chunk-ZUT4EM64.js} +1 -1
  189. package/dist/chunks/chunk-ZWW227M3.js +2 -0
  190. package/dist/chunks/chunk-ZY32SZ2P.js +3 -0
  191. package/dist/chunks/cli-TE7RP5H7.js +2 -0
  192. package/dist/chunks/client-I5MYOJEJ.js +2 -0
  193. package/dist/chunks/command-NDHFZAKA.js +13 -0
  194. package/dist/chunks/configuration-command-465ODYTC.js +2 -0
  195. package/dist/chunks/connected-app-executor-7DYMZCD7.js +2 -0
  196. package/dist/chunks/connected-evidence-XPAZQRFQ.js +2 -0
  197. package/dist/chunks/{connected-starting-assets-JONPTII6.js → connected-starting-assets-2YX3QVDB.js} +1 -1
  198. package/dist/chunks/connection-GDWPMHPC.js +2 -0
  199. package/dist/chunks/{continual-Z7MO2PF6.js → continual-HQCFY7GN.js} +3 -3
  200. package/dist/chunks/core-commands-PJOGRBHJ.js +2 -0
  201. package/dist/chunks/dataset-preparation-authoring-KWRTMKN6.js +4 -0
  202. package/dist/chunks/datasets-OTE2I4VT.js +2 -0
  203. package/dist/chunks/desktop-test-Q6REQJ7K.js +3 -0
  204. package/dist/chunks/dist-GR56E3QK.js +2 -0
  205. package/dist/chunks/dist-J4KHAVO3.js +2 -0
  206. package/dist/chunks/dist-O7HXZUBW.js +2 -0
  207. package/dist/chunks/enclave-7VLABNIX.js +2 -0
  208. package/dist/chunks/evaluation-coordination-KRCY2H4C.js +2 -0
  209. package/dist/chunks/experiment-improvements-7MI2VYBR.js +2 -0
  210. package/dist/chunks/experiments-CNUQKJZE.js +2 -0
  211. package/dist/chunks/experiments-VOCZ4DW3.js +2 -0
  212. package/dist/chunks/experiments-signal-4N344D4Y.js +2 -0
  213. package/dist/chunks/{extension-ZM6NI5O5.js → extension-UH34ZF7N.js} +1 -1
  214. package/dist/chunks/{help-7HXFWIKS.js → help-ZUKVY6RO.js} +1 -1
  215. package/dist/chunks/host-profile-evaluation-tools-75EPCRSZ.js +2 -0
  216. package/dist/chunks/host-profile-external-dataset-YRKG2GL5.js +2 -0
  217. package/dist/chunks/hosted-app-server-composition-DWSU6ASL.js +2 -0
  218. package/dist/chunks/hosted-experiment-improvement-NZTPZTDH.js +3 -0
  219. package/dist/chunks/hosted-harness-runtime-3AJGEIFD.js +2 -0
  220. package/dist/chunks/hosted-profile-candidate-3CAT3XBI.js +3 -0
  221. package/dist/chunks/hosted-profile-compiler-RXU626Q6.js +2 -0
  222. package/dist/chunks/hosted-profile-evaluation-control-CBDRKJ5J.js +2 -0
  223. package/dist/chunks/hosted-profile-evaluation-inspection-CHYKDYUQ.js +3 -0
  224. package/dist/chunks/hosted-profile-evaluation-preparation-H5S7JZMD.js +3 -0
  225. package/dist/chunks/hosted-tasksets-AMGDDB2R.js +2 -0
  226. package/dist/chunks/human-review-HOBGC6RC.js +2 -0
  227. package/dist/chunks/{import-6SI4BEKS.js → import-Q3YRFVY7.js} +2 -2
  228. package/dist/chunks/learning-NJLTGZFQ.js +2 -0
  229. package/dist/chunks/learning-XTY5VOTK.js +2 -0
  230. package/dist/chunks/local-harness-improvement-runtime-XEA73RGS.js +2 -0
  231. package/dist/chunks/local-harness-taskset-review-SW35G4DM.js +2 -0
  232. package/dist/chunks/local-scope-X3737QXT.js +2 -0
  233. package/dist/chunks/model-projects-GHWCKDON.js +2 -0
  234. package/dist/chunks/opchat-2LLDIWEJ.js +3 -0
  235. package/dist/chunks/opchat-bounded-chat-FLDS36LU.js +2 -0
  236. package/dist/chunks/organizations-VIFSOY6P.js +2 -0
  237. package/dist/chunks/{profile-O5HL5DTQ.js → profile-KIHMW2WB.js} +1 -1
  238. package/dist/chunks/profile-training-source-VIND2MM2.js +2 -0
  239. package/dist/chunks/project-action-payload-2G57RL74.js +2 -0
  240. package/dist/chunks/project-agent-TJLQNMLA.js +2 -0
  241. package/dist/chunks/published-experiment-source-D3C2AWQD.js +2 -0
  242. package/dist/chunks/refiner-profile-service-PPGGNVOV.js +2 -0
  243. package/dist/chunks/{runtime-XBA744HJ.js → runtime-VSOOPNYN.js} +2 -2
  244. package/dist/chunks/sandbox-command-CQO6BEMQ.js +2 -0
  245. package/dist/chunks/{sandbox-template-27U3FQN7.js → sandbox-template-MU33IILL.js} +1 -1
  246. package/dist/chunks/saved-work-LAVTNKPT.js +2 -0
  247. package/dist/chunks/send-turn-D3GTSSHI.js +2 -0
  248. package/dist/chunks/setup-HSRCZ3WR.js +2 -0
  249. package/dist/chunks/{src-PU7QTFO5.js → src-662QOKNP.js} +1 -1
  250. package/dist/chunks/{src-BLWX6DRG.js → src-CHQVWHV7.js} +117 -117
  251. package/dist/chunks/standalone-experiment-turn-owner-KKYIGGPF.js +2 -0
  252. package/dist/chunks/stdio-Z65UIX55.js +2 -0
  253. package/dist/chunks/store-chat-resources-ZWDYMDJF.js +2 -0
  254. package/dist/chunks/{store-continual-support-reviews-FOMYYS25.js → store-continual-support-reviews-7PDLGRWF.js} +1 -1
  255. package/dist/chunks/store-conversation-serving-WRT4N7N2.js +2 -0
  256. package/dist/chunks/{store-create-improve-3LQMIYAP.js → store-create-improve-G46KIUVT.js} +1 -1
  257. package/dist/chunks/{store-datasets-3KSX7RSO.js → store-datasets-O67F75BL.js} +1 -1
  258. package/dist/chunks/store-evaluation-results-BEPR4LVD.js +7 -0
  259. package/dist/chunks/{store-harness-memory-2L7ARBR4.js → store-harness-memory-4XEUITXE.js} +1 -1
  260. package/dist/chunks/{store-harness-refinement-candidates-3PHL3BUY.js → store-harness-refinement-candidates-LCN4NV23.js} +1 -1
  261. package/dist/chunks/store-harness-workspaces-PJJQ74G6.js +2 -0
  262. package/dist/chunks/store-human-review-HJ3D7ZFA.js +7 -0
  263. package/dist/chunks/store-learned-preference-migration-validation-EXNRDHCO.js +2 -0
  264. package/dist/chunks/store-learning-6P6IS7GH.js +2 -0
  265. package/dist/chunks/store-learning-credentials-EGJ2WTZI.js +2 -0
  266. package/dist/chunks/{store-local-experiments-QTVHJAEP.js → store-local-experiments-CBJA56X2.js} +1 -1
  267. package/dist/chunks/store-model-batch-review-YIVD7T2T.js +2 -0
  268. package/dist/chunks/{store-model-configuration-3SU73CMS.js → store-model-configuration-T6XJJDAB.js} +2 -2
  269. package/dist/chunks/store-model-project-preparation-WWU5CJTV.js +2 -0
  270. package/dist/chunks/{store-preference-comparison-DWV5XSMY.js → store-preference-comparison-XQFTLMGH.js} +1 -1
  271. package/dist/chunks/{store-schedules-2KUY4T6M.js → store-schedules-JPFVWL3Q.js} +1 -1
  272. package/dist/chunks/{store-sidebar-file-bookmarks-A4XCS7RM.js → store-sidebar-file-bookmarks-J3JEVAYR.js} +1 -1
  273. package/dist/chunks/{store-sidebar-preferences-V2PKRXUZ.js → store-sidebar-preferences-2JHTFXJK.js} +1 -1
  274. package/dist/chunks/{store-subagents-UGVEFA6M.js → store-subagents-PUBQVWSU.js} +1 -1
  275. package/dist/chunks/{store-task-inbox-QABI4ZAH.js → store-task-inbox-VVXZUJIO.js} +1 -1
  276. package/dist/chunks/{store-task-inventory-GEQIZELY.js → store-task-inventory-MQX44AI6.js} +1 -1
  277. package/dist/chunks/store-taskset-drafts-G3WFVN4M.js +9 -0
  278. package/dist/chunks/{store-training-CQV7PL3V.js → store-training-DUVIDYK5.js} +1 -1
  279. package/dist/chunks/{store-training-jobs-XKN6K66J.js → store-training-jobs-HHFH3V5O.js} +1 -1
  280. package/dist/chunks/{store-training-models-Q7DTTR4S.js → store-training-models-C7UUZDTO.js} +1 -1
  281. package/dist/chunks/{store-usage-XGAX7NLB.js → store-usage-6DMZM7WV.js} +1 -1
  282. package/dist/chunks/{store-work-evidence-VSLLZ6UF.js → store-work-evidence-77B36LRC.js} +1 -1
  283. package/dist/chunks/taskset-7FQCJ55X.js +2 -0
  284. package/dist/chunks/taskset-packages-NRRPON7B.js +2 -0
  285. package/dist/chunks/taskset-packages-RW4SFGDU.js +2 -0
  286. package/dist/chunks/{teams-bot-UTQAJA6H.js → teams-bot-D3LWA4S5.js} +1 -1
  287. package/dist/chunks/tool-learning-NGO7QHYK.js +2 -0
  288. package/dist/chunks/training-XFM3OOPN.js +2 -0
  289. package/dist/chunks/training-XILDD5RG.js +2 -0
  290. package/dist/chunks/training-error-LQKCOQDJ.js +2 -0
  291. package/dist/chunks/training-hardware-ESXRWUIK.js +3 -0
  292. package/dist/chunks/training-hosted-6BX2IASC.js +2 -0
  293. package/dist/chunks/training-hosted-checkpoint-evaluation-UXFW33QL.js +2 -0
  294. package/dist/chunks/training-hosted-learning-YN5VD3PW.js +2 -0
  295. package/dist/chunks/training-hosted-serving-N2MHWGZN.js +2 -0
  296. package/dist/chunks/training-hosted-serving-report-J4YOZLRP.js +2 -0
  297. package/dist/chunks/training-hosted-workers-6JTDCCWA.js +2 -0
  298. package/dist/chunks/training-model-start-E5MP3URL.js +2 -0
  299. package/dist/chunks/web-search-56QRZGPR.js +2 -0
  300. package/dist/chunks/workspaces-MCS2AQX6.js +2 -0
  301. package/dist/cli.js +1 -1
  302. package/dist/index.js +1 -1
  303. package/dist/sandbox-template/manifest.js +1 -1
  304. package/dist/skills/manifest.json +1 -1
  305. package/dist/web/assets/App-BZuSv1XM.js +53 -0
  306. package/dist/web/assets/{AppDialog-8Y0FYalT.js → AppDialog-BILEK4np.js} +1 -1
  307. package/dist/web/assets/AppTerminalPanel-BvxZ8bwD.js +2 -0
  308. package/dist/web/assets/{AppToastContext-BiQbbVxq.js → AppToastContext-C-FsCKXW.js} +1 -1
  309. package/dist/web/assets/{AppsView-Dtte4h6e.js → AppsView-BMaq5oxx.js} +1 -1
  310. package/dist/web/assets/{AttachmentTypeIcon-DgADV7dn.js → AttachmentTypeIcon-Bh7Ft_UL.js} +1 -1
  311. package/dist/web/assets/{BrowserSidebar-BUqDvEv9.js → BrowserSidebar-BG2MLJ9I.js} +1 -1
  312. package/dist/web/assets/{CartesianChart-J4ChOjvG.js → CartesianChart-CS6ES_XT.js} +1 -1
  313. package/dist/web/assets/ChatTimelineEntry-Dr5X_XyN.js +8 -0
  314. package/dist/web/assets/{ChatTimelineEntry-DztFb85D.css → ChatTimelineEntry-vs8RaEGD.css} +1 -1
  315. package/dist/web/assets/{CollaborationTabs-CFCpk2Ck.js → CollaborationTabs-CPJ2w67F.js} +1 -1
  316. package/dist/web/assets/{CommandMenu-EPPjB14H.js → CommandMenu-Fe1V7NJd.js} +1 -1
  317. package/dist/web/assets/{CommunityView-Okydjpqm.js → CommunityView-DHTcmOnI.js} +1 -1
  318. package/dist/web/assets/{ComposerAttachments-RXCiE88M.js → ComposerAttachments-Ck9VWD6o.js} +1 -1
  319. package/dist/web/assets/{ComposerCreateImproveStrip-CSngc8-V.js → ComposerCreateImproveStrip-yiXO7cf8.js} +1 -1
  320. package/dist/web/assets/{ConversationImportsSettings-DS73kyfj.js → ConversationImportsSettings-_VLzUnHQ.js} +1 -1
  321. package/dist/web/assets/{FilePagePreview-Qc4B0vue.js → FilePagePreview-BpcM1DfE.js} +2 -2
  322. package/dist/web/assets/{GetStartedView-DGFPQ1We.js → GetStartedView-BH-WJ-rW.js} +1 -1
  323. package/dist/web/assets/{GettingStartedDialog-DFBYQdHz.js → GettingStartedDialog-CdQfj7RA.js} +1 -1
  324. package/dist/web/assets/{HostedModelLearningReview-BDu3FlcU.js → HostedModelLearningReview-C3GsOlu9.js} +1 -1
  325. package/dist/web/assets/{HostedModelLearningSettings-CHaTHwC8.js → HostedModelLearningSettings-SSMst6dl.js} +1 -1
  326. package/dist/web/assets/{HtmlVisual-D9Mh7xds.js → HtmlVisual-CH0tb3fv.js} +1 -1
  327. package/dist/web/assets/{LabModelVersionDetailPage-DgY7lAu5.js → LabModelVersionDetailPage-J2t9yILv.js} +1 -1
  328. package/dist/web/assets/{LabSkillSidebar-BwtlThO7.js → LabSkillSidebar-DdDYvfj2.js} +1 -1
  329. package/dist/web/assets/LabsRoute-MJwIjSKg.js +101 -0
  330. package/dist/web/assets/MainChatThread-BcwtaTDZ.js +2 -0
  331. package/dist/web/assets/MainPane-DDO6diPt.js +10 -0
  332. package/dist/web/assets/NativeSetupTerminal-BPSUFpRm.js +2 -0
  333. package/dist/web/assets/{NativeSkillSidebar-BEJvt5_H.js → NativeSkillSidebar-DPYavzau.js} +1 -1
  334. package/dist/web/assets/{NewProjectDialog-CjrjgkTN.js → NewProjectDialog-BtmvE9Sp.js} +1 -1
  335. package/dist/web/assets/{OutputsPage-jzx93QQ3.js → OutputsPage-BMRY7RK2.js} +1 -1
  336. package/dist/web/assets/{PageChrome-C1M13qG2.js → PageChrome-5VRxH6Rp.js} +1 -1
  337. package/dist/web/assets/{ProjectsPage-DZrjlMp2.js → ProjectsPage-1LHqxOMo.js} +1 -1
  338. package/dist/web/assets/RightChatPanelStack-D_7KgExz.js +1 -0
  339. package/dist/web/assets/RightSidebarHomePanel-iznJwDMf.js +1 -0
  340. package/dist/web/assets/{ScheduledWorkPage-Cw1ja2GF.js → ScheduledWorkPage-Dtz4zJ0T.js} +1 -1
  341. package/dist/web/assets/{SettingsView-CckoIki3.js → SettingsView-BeDYNPcD.js} +3 -3
  342. package/dist/web/assets/{TasksetDraftEditorPrimitives-ByC8bDjp.js → TasksetDraftEditorPrimitives-CcvKO3YA.js} +1 -1
  343. package/dist/web/assets/{TeamChatView-OprnSKLF.js → TeamChatView-DaXxOkTe.js} +1 -1
  344. package/dist/web/assets/{TerminalOverlay-d7A2F9Lx.js → TerminalOverlay-CF8uB4qA.js} +1 -1
  345. package/dist/web/assets/{TrainingCreationPanel-Cyn6R6I6.js → TrainingCreationPanel-DmMO7x5T.js} +1 -1
  346. package/dist/web/assets/{TrainingDraftPanel-Mpb5e7t5.js → TrainingDraftPanel-DCHbXjSx.js} +1 -1
  347. package/dist/web/assets/{TrainingRunLineage-VcKz7dIR.js → TrainingRunLineage-CwisTWs_.js} +1 -1
  348. package/dist/web/assets/UsageSettingsSection-Drt7gwRb.js +7 -0
  349. package/dist/web/assets/WorkSidebarPanel-BrIIRtGW.js +1 -0
  350. package/dist/web/assets/WorkspaceDiffPanel-Dmbrg0-y.js +11 -0
  351. package/dist/web/assets/{WorkspaceEnvironmentMenu-C8y3537a.js → WorkspaceEnvironmentMenu-KEZm1gdb.js} +1 -1
  352. package/dist/web/assets/{WorkspaceFileLocation-LrEWj4UK.js → WorkspaceFileLocation-ChbOKrPO.js} +1 -1
  353. package/dist/web/assets/{WorkspaceGitDialogs-NRIMXnkS.js → WorkspaceGitDialogs-BS2JQKNQ.js} +1 -1
  354. package/dist/web/assets/{WorkspaceMonacoEditor-CvDGjKAL.js → WorkspaceMonacoEditor-CN1hE_C4.js} +3 -3
  355. package/dist/web/assets/{WorkspacePdfPreview-BZ0BbnHv.js → WorkspacePdfPreview-Clb4m0le.js} +2 -2
  356. package/dist/web/assets/{WorkspacePresentationPreview-DJrjrvT0.js → WorkspacePresentationPreview-CwQsdvAR.js} +1 -1
  357. package/dist/web/assets/app-models-Cz3yxq4x.js +1 -0
  358. package/dist/web/assets/{bot-6OhUEmkE.js → bot-BNFltD5O.js} +1 -1
  359. package/dist/web/assets/chat-resources-CTN4f6KC.js +1 -0
  360. package/dist/web/assets/{chevron-down-jmVA1BIf.js → chevron-down-BnnT0tnM.js} +1 -1
  361. package/dist/web/assets/chevron-right-C8K5PZj7.js +1 -0
  362. package/dist/web/assets/{chevron-up-CstyLXH3.js → chevron-up-BAnwJJN3.js} +1 -1
  363. package/dist/web/assets/chunk-GJRXJL6G-pJp1DyJd.js +9 -0
  364. package/dist/web/assets/chunk-TLSP5JKG-DZmxtX-4.js +1 -0
  365. package/dist/web/assets/{client-choice-storage-BdQ_YDuk.js → client-choice-storage-Iuzoszas.js} +1 -1
  366. package/dist/web/assets/{cloud-upload-Ck1ufAr8.js → cloud-upload-CdSXJ7ms.js} +1 -1
  367. package/dist/web/assets/{copy-CPkbMfXt.js → copy-CBFg6m0d.js} +1 -1
  368. package/dist/web/assets/{createLucideIcon-CXQny8HU.js → createLucideIcon-DF2VR6WA.js} +1 -1
  369. package/dist/web/assets/{cssMode-CYxYl_om.js → cssMode-BSQUZhUO.js} +1 -1
  370. package/dist/web/assets/{external-link-CDKOLG_v.js → external-link-Cql9bKdv.js} +1 -1
  371. package/dist/web/assets/{folder-open-CEtOb_lK.js → folder-open-BXdVB5J1.js} +1 -1
  372. package/dist/web/assets/{folder-plus-CVMYZs3e.js → folder-plus-Cma2HulC.js} +1 -1
  373. package/dist/web/assets/{git-commit-horizontal-DDyhPjxS.js → git-commit-horizontal-eF--16ps.js} +1 -1
  374. package/dist/web/assets/{htmlMode-DoY4V_j0.js → htmlMode-aLPlQtyU.js} +1 -1
  375. package/dist/web/assets/icons-c3vt7y6n.js +1 -0
  376. package/dist/web/assets/{image-B-PjDSwU.js → image-CqKPwnBn.js} +1 -1
  377. package/dist/web/assets/{index-D9WbJMSq.js → index-CM0IRu1U.js} +2 -2
  378. package/dist/web/assets/{info-CCnw-K3b.js → info-CqeYEqG0.js} +1 -1
  379. package/dist/web/assets/{jsonMode-CeOpZdPj.js → jsonMode-fu7bEcHB.js} +1 -1
  380. package/dist/web/assets/loader-circle-pxp89T5x.js +1 -0
  381. package/dist/web/assets/{lspLanguageFeatures-DAbgLCqZ.js → lspLanguageFeatures-DraXQA4w.js} +1 -1
  382. package/dist/web/assets/{maximize-2-BZX38cpr.js → maximize-2-yMp8X9ts.js} +1 -1
  383. package/dist/web/assets/{message-square-CvgSecgD.js → message-square-DbIMQqfj.js} +1 -1
  384. package/dist/web/assets/model-display-zPvC4L2B.js +1 -0
  385. package/dist/web/assets/models-route-CWcJuOd0.js +1 -0
  386. package/dist/web/assets/{monaco.contribution-cbDqt48m.js → monaco.contribution-BQhp1CJs.js} +2 -2
  387. package/dist/web/assets/{monaco.contribution-CF2JDhi4.js → monaco.contribution-Bd8EqYGR.js} +2 -2
  388. package/dist/web/assets/{monaco.contribution-m2ze2EsL.js → monaco.contribution-CYWKnVxQ.js} +2 -2
  389. package/dist/web/assets/{monaco.contribution-yeyow_-Q.js → monaco.contribution-CmbWO0tB.js} +2 -2
  390. package/dist/web/assets/{monitor-By0s4hxb.js → monitor-DFE2fTkT.js} +1 -1
  391. package/dist/web/assets/{paperclip-BJ2QgJLa.js → paperclip-D_qsKbVs.js} +1 -1
  392. package/dist/web/assets/{pdf-C4x-1jjP.js → pdf-DkQRsi4n.js} +1 -1
  393. package/dist/web/assets/play-BtlX2stU.js +1 -0
  394. package/dist/web/assets/plus-DbASL_gy.js +1 -0
  395. package/dist/web/assets/{presentation-I86G1Gd9.js → presentation-BN_kIBPL.js} +1 -1
  396. package/dist/web/assets/{python-CqFTPj8r.js → python-DB9pj5Hr.js} +1 -1
  397. package/dist/web/assets/{refresh-cw-Dga35Eay.js → refresh-cw-B27ohHfn.js} +1 -1
  398. package/dist/web/assets/{save-BLKjYtzR.js → save-D-rwjKop.js} +1 -1
  399. package/dist/web/assets/settings-lists-DgSaJQA4.js +5 -0
  400. package/dist/web/assets/square-C2caJ3NG.js +1 -0
  401. package/dist/web/assets/{square-terminal-B-n7vUex.js → square-terminal-CeoK51wH.js} +1 -1
  402. package/dist/web/assets/{submit-issue-command-B7Hrt2tU.js → submit-issue-command-DZNW7Evj.js} +1 -1
  403. package/dist/web/assets/{toggleHighContrast-BhmBE5XE.js → toggleHighContrast-Bs8L1gx0.js} +1 -1
  404. package/dist/web/assets/{training-QrdkRQZQ.js → training-DCdoHJ0Y.js} +2 -2
  405. package/dist/web/assets/{training-model-data-DB-jg6L_.js → training-model-data-wHvE7xL1.js} +1 -1
  406. package/dist/web/assets/{tsMode-BSWEII2p.js → tsMode-C7EqshxC.js} +1 -1
  407. package/dist/web/assets/{upload-C4MPhQn8.js → upload-BWgjC2Jf.js} +1 -1
  408. package/dist/web/assets/{useAccountSettings-9oqWdRLs.js → useAccountSettings-Dva1MpsJ.js} +1 -1
  409. package/dist/web/assets/{useAgentInventory-isO79ui9.js → useAgentInventory-CrjIOmvb.js} +1 -1
  410. package/dist/web/assets/{useLocalAgentSchedules-CZX6PxoK.js → useLocalAgentSchedules-P-UaUKMb.js} +1 -1
  411. package/dist/web/assets/{useQuery-BD0Uexmh.js → useQuery-Bn3KqR4r.js} +1 -1
  412. package/dist/web/assets/{wifi-off-Cloe0WuQ.js → wifi-off--mKrSPFc.js} +1 -1
  413. package/dist/web/assets/{workers-BXagz5eg.js → workers-p0Kn2KMK.js} +1 -1
  414. package/dist/web/assets/x-D9GTV9ke.js +1 -0
  415. package/dist/web/assets/{yaml-sBdvVbCc.js → yaml-BeIdC4tu.js} +1 -1
  416. package/dist/web/index.html +1 -1
  417. package/docs/command-reference.md +44 -2
  418. package/package.json +1 -1
  419. package/dist/chunks/acp-H3MJCPHX.js +0 -2
  420. package/dist/chunks/acp-agent-DWA7272M.js +0 -21
  421. package/dist/chunks/actions-command-IIYOO4LL.js +0 -2
  422. package/dist/chunks/app-layer-K7H2WJ56.js +0 -3
  423. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +0 -2
  424. package/dist/chunks/app-server-evaluations-XGMGS67X.js +0 -2
  425. package/dist/chunks/app-server-harness-services-BHD6S5II.js +0 -2
  426. package/dist/chunks/app-server-runtime-LFIL6F7D.js +0 -2
  427. package/dist/chunks/apps-QKAHJGQ4.js +0 -2
  428. package/dist/chunks/chunk-5EP2DZLJ.js +0 -2
  429. package/dist/chunks/chunk-6EBCS57F.js +0 -2
  430. package/dist/chunks/chunk-6RS4NAOY.js +0 -2
  431. package/dist/chunks/chunk-7O6Z3VOZ.js +0 -2
  432. package/dist/chunks/chunk-7YLXGILH.js +0 -2
  433. package/dist/chunks/chunk-7ZLXFKRI.js +0 -2
  434. package/dist/chunks/chunk-B5R53U74.js +0 -2
  435. package/dist/chunks/chunk-C2AXMKK4.js +0 -2
  436. package/dist/chunks/chunk-F6UQ6PPK.js +0 -2
  437. package/dist/chunks/chunk-GS6ZUSIN.js +0 -3
  438. package/dist/chunks/chunk-JSQRLLN6.js +0 -2
  439. package/dist/chunks/chunk-LAOLJDVB.js +0 -2
  440. package/dist/chunks/chunk-LKKMLBOH.js +0 -3
  441. package/dist/chunks/chunk-M3FLEZ4E.js +0 -4
  442. package/dist/chunks/chunk-MEGKXGW3.js +0 -2
  443. package/dist/chunks/chunk-MILEWROZ.js +0 -2
  444. package/dist/chunks/chunk-N42HT64M.js +0 -2
  445. package/dist/chunks/chunk-NG2L6D7G.js +0 -2
  446. package/dist/chunks/chunk-OSVGNONV.js +0 -2
  447. package/dist/chunks/chunk-OTUBJV6C.js +0 -6
  448. package/dist/chunks/chunk-PBTXLQAU.js +0 -2
  449. package/dist/chunks/chunk-PBZCXPPC.js +0 -10
  450. package/dist/chunks/chunk-SFKZITAG.js +0 -9
  451. package/dist/chunks/chunk-SXMR6E2W.js +0 -2
  452. package/dist/chunks/chunk-U2K7QJCG.js +0 -2
  453. package/dist/chunks/chunk-URNMC46H.js +0 -157
  454. package/dist/chunks/chunk-VHXDWAEH.js +0 -2
  455. package/dist/chunks/chunk-W2TICQ62.js +0 -2
  456. package/dist/chunks/chunk-WSOUMXH3.js +0 -24
  457. package/dist/chunks/chunk-XOB6FKQV.js +0 -2
  458. package/dist/chunks/chunk-YBNKGA5C.js +0 -2
  459. package/dist/chunks/chunk-YM4PSVFW.js +0 -4
  460. package/dist/chunks/chunk-YNQWJWIC.js +0 -10
  461. package/dist/chunks/chunk-Z3BWCFLV.js +0 -2
  462. package/dist/chunks/cli-PSXMIJTF.js +0 -2
  463. package/dist/chunks/configuration-command-XYKMXIWF.js +0 -2
  464. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +0 -2
  465. package/dist/chunks/connected-evidence-IRXYN6YD.js +0 -2
  466. package/dist/chunks/connection-XMAAGMXJ.js +0 -2
  467. package/dist/chunks/core-commands-WWN7X3XC.js +0 -2
  468. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +0 -4
  469. package/dist/chunks/datasets-2PC2HP7N.js +0 -2
  470. package/dist/chunks/desktop-test-VU6AFAMO.js +0 -3
  471. package/dist/chunks/dist-47AYOIH6.js +0 -2
  472. package/dist/chunks/dist-HSC43RG4.js +0 -2
  473. package/dist/chunks/dist-MXBEBM4D.js +0 -2
  474. package/dist/chunks/enclave-VURYNILU.js +0 -2
  475. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +0 -2
  476. package/dist/chunks/experiment-improvements-EB2CV5RA.js +0 -2
  477. package/dist/chunks/experiments-CLXGM3TZ.js +0 -2
  478. package/dist/chunks/experiments-SZQYR6MH.js +0 -2
  479. package/dist/chunks/experiments-signal-2KJCP25D.js +0 -2
  480. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +0 -2
  481. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +0 -2
  482. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +0 -2
  483. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +0 -3
  484. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +0 -2
  485. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +0 -3
  486. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +0 -2
  487. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +0 -2
  488. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +0 -3
  489. package/dist/chunks/hosted-profile-evaluation-preparation-2LSMZQNA.js +0 -3
  490. package/dist/chunks/hosted-tasksets-WGXGXJ7E.js +0 -2
  491. package/dist/chunks/human-review-M26UKGJL.js +0 -2
  492. package/dist/chunks/learning-HM3NWOV5.js +0 -2
  493. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +0 -2
  494. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +0 -2
  495. package/dist/chunks/local-scope-62GWHDXS.js +0 -2
  496. package/dist/chunks/model-projects-YUAMBQTO.js +0 -2
  497. package/dist/chunks/opchat-AG4CWVY4.js +0 -3
  498. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +0 -2
  499. package/dist/chunks/organizations-KDKX77XZ.js +0 -2
  500. package/dist/chunks/profile-training-source-3DXFM2XI.js +0 -2
  501. package/dist/chunks/project-action-payload-QA24HYGF.js +0 -2
  502. package/dist/chunks/project-agent-XBOOM5TS.js +0 -2
  503. package/dist/chunks/published-experiment-source-GZGN354O.js +0 -2
  504. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +0 -2
  505. package/dist/chunks/sandbox-command-5ECGS7DG.js +0 -2
  506. package/dist/chunks/saved-work-KUNVTJ7O.js +0 -2
  507. package/dist/chunks/send-turn-FIPWOXWV.js +0 -2
  508. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +0 -2
  509. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +0 -2
  510. package/dist/chunks/store-conversation-serving-K324SQTO.js +0 -2
  511. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +0 -7
  512. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +0 -2
  513. package/dist/chunks/store-human-review-QJY3ZPPF.js +0 -7
  514. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +0 -2
  515. package/dist/chunks/store-learning-DW3QLQXU.js +0 -2
  516. package/dist/chunks/store-learning-credentials-67QNTPA7.js +0 -2
  517. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +0 -2
  518. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +0 -2
  519. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +0 -9
  520. package/dist/chunks/taskset-ARKJQKYQ.js +0 -2
  521. package/dist/chunks/taskset-packages-X4K65DTW.js +0 -2
  522. package/dist/chunks/taskset-packages-XK7FSD45.js +0 -2
  523. package/dist/chunks/training-3IWW4256.js +0 -2
  524. package/dist/chunks/training-RVIESURJ.js +0 -2
  525. package/dist/chunks/training-error-2EWDOQ4G.js +0 -2
  526. package/dist/chunks/training-hosted-PFJHYTEU.js +0 -2
  527. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +0 -2
  528. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +0 -2
  529. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +0 -2
  530. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +0 -2
  531. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +0 -2
  532. package/dist/chunks/training-model-start-ROLS3E4V.js +0 -2
  533. package/dist/chunks/web-search-7FBUBZ66.js +0 -2
  534. package/dist/chunks/workspaces-G3CMY7ZA.js +0 -2
  535. package/dist/web/assets/App-DY2R8Z6r.js +0 -53
  536. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +0 -2
  537. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +0 -8
  538. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +0 -101
  539. package/dist/web/assets/MainChatThread-pzHKd_YN.js +0 -2
  540. package/dist/web/assets/MainPane-6OlLiKKb.js +0 -10
  541. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +0 -2
  542. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +0 -1
  543. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +0 -1
  544. package/dist/web/assets/UsageSettingsSection-FhYymrfc.js +0 -7
  545. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +0 -1
  546. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +0 -11
  547. package/dist/web/assets/app-models-CUA9XB9U.js +0 -1
  548. package/dist/web/assets/chat-resources-CI8KFVO5.js +0 -1
  549. package/dist/web/assets/chevron-right-BYmDQ7ti.js +0 -1
  550. package/dist/web/assets/chunk-ONGOAEY6-C__DQmRT.js +0 -9
  551. package/dist/web/assets/chunk-SQBYHWZU-DumrB9SB.js +0 -1
  552. package/dist/web/assets/icons-D7jkCa2d.js +0 -1
  553. package/dist/web/assets/loader-circle-CPaJeTDy.js +0 -1
  554. package/dist/web/assets/models-route-Bl_TmMl6.js +0 -1
  555. package/dist/web/assets/play-D_SuGDBM.js +0 -1
  556. package/dist/web/assets/plus-yw95Iaj8.js +0 -1
  557. package/dist/web/assets/settings-lists-DMKA1lCN.js +0 -5
  558. package/dist/web/assets/square-BY5lG2Ol.js +0 -1
  559. package/dist/web/assets/x-Dqpel42h.js +0 -1
  560. /package/dist/chunks/{chunk-IDOGNIMV.js → chunk-7J2NMUTK.js} +0 -0
  561. /package/dist/chunks/{chunk-PCB65K4G.js → chunk-SFR32TMJ.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
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(`
2
+ import{c as k}from"./chunk-2MEOUS24.js";import{A as h}from"./chunk-X2J2P5ZT.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
 
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as r}from"./chunk-FTQLQJQV.js";var n=class extends Error{constructor(o,a,e,d){super(e);this.status=o;this.code=a;this.details=d;this.name="OpenPondLearningError"}status;code;details;static{r(this,"OpenPondLearningError")}};export{n as a};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{i as s}from"./chunk-3WJQ4IGK.js";import{a as i}from"./chunk-GLUWATL5.js";import{a as n}from"./chunk-FTQLQJQV.js";import{stdin as a,stdout as c}from"node:process";import{createInterface as l}from"node:readline/promises";var p=`${i}/console/services/identity-access/api-keys`;function u(e){let t=process.env.OPENPOND_API_KEY?.trim();if(t)return t;let r=e.apiKey?.trim();if(r)return r;let o=e.token?.trim();return o&&o.startsWith("opk_")?o:null}n(u,"resolveApiKey");async function P(){if(!a.isTTY||!c.isTTY)throw new Error("OpenPond API key is required in non-interactive mode. Set OPENPOND_API_KEY or run `openpond login` in a terminal.");console.log("Open the OpenPond UI to create an API key:"),console.log(p);let e=l({input:a,output:c});try{let t=(await e.question("Paste your OpenPond API key: ")).trim();if(!t)throw new Error("API key is required");return t.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),t}finally{e.close()}}n(P,"promptForApiKey");async function A(e,t){let r=u(e);if(r)return r;let o=await P();return await s({apiKey:o,baseUrl:t,activeProfile:e.activeProfile}),console.log("Saved account credentials to the encrypted OpenPond credential store."),o}n(A,"ensureApiKey");export{u as a,P as b,A as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{l as f,m,n as d}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as s}from"./chunk-FTQLQJQV.js";function h(t){let{profileGitHead:i,...n}=t.manifest.metadata,o=t.sourceFiles.map(a=>{if(a.path!=="dependency-lock/profile-import.json")return{path:a.path,asset:a.asset};let l=e.object({source:e.literal("openpond.profile"),profileId:e.string(),profileGitHead:e.string().nullable(),dependenciesResolved:e.literal(!1)}).strict().parse(JSON.parse(Buffer.from(a.bytes).toString("utf8")));if(t.manifest.metadata.importedFrom!=="openpond.profile"||l.profileId!==t.manifest.metadata.profileId||l.profileGitHead!==i)throw new Error("Generated Profile provenance differs from compiler metadata.");let p=Buffer.from(f({...l,profileGitHead:null}));return{path:a.path,asset:{...a.asset,contentHash:m(p),sizeBytes:p.byteLength}}}),r={manifest:{...t.manifest,metadata:n},assets:o};return{contentHash:d(r),protectedClosureHash:d(t.sourceFiles.filter(a=>a.asset.visibility!=="policy").map(a=>({path:a.path,asset:a.asset}))),profileGitHead:typeof t.manifest.metadata.profileGitHead=="string"?t.manifest.metadata.profileGitHead:null}}s(h,"compiledCandidateExecutableIdentity");function v(t,i,n){let o=h(t),r=h(i);if(!/^[a-f0-9]{40}$/.test(n)||r.profileGitHead!==n||o.contentHash!==r.contentHash||o.protectedClosureHash!==r.protectedClosureHash)throw new Error("The actual committed Profile differs from tested executable source or its protected evaluator closure.");return{schemaVersion:"openpond.candidateExecutableEquivalence.v1",contentHash:o.contentHash,protectedClosureHash:o.protectedClosureHash,candidateProfileGitHead:o.profileGitHead,activeProfileGitHead:r.profileGitHead}}s(v,"qualifyCommittedCandidateEquivalence");var c=e.string().regex(/^[a-f0-9]{64}$/),H=e.object({id:e.string().min(1),contentHash:c}).strict(),u=e.object({schemaVersion:e.literal("openpond.candidateProfileAdoption.v1"),id:e.string().min(1),operationId:e.string().min(1),actorId:e.string().min(1),teamId:e.string().min(1),candidateId:e.string().min(1),testedCandidateRelease:H,activeRelease:H,expectedCommit:e.string().regex(/^[a-f0-9]{40}$/),committedProfileGit:e.string().regex(/^[a-f0-9]{40}$/),equivalence:e.object({schemaVersion:e.literal("openpond.candidateExecutableEquivalence.v1"),contentHash:c,protectedClosureHash:c,candidateProfileGitHead:e.string().nullable(),activeProfileGitHead:e.string()}).strict(),createdAt:e.string().datetime(),contentHash:c}).strict();function G(t){let i=u.parse({...t,contentHash:d(t)});if(i.equivalence.activeProfileGitHead!==i.committedProfileGit)throw new Error("Adoption receipt differs from its qualified committed source.");return i}s(G,"sealCandidateProfileAdoptionReceipt");export{h as a,v as b,u as c,G as d};
2
+ import{l as f,m,n as d}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as s}from"./chunk-FTQLQJQV.js";function h(t){let{profileGitHead:i,...n}=t.manifest.metadata,o=t.sourceFiles.map(a=>{if(a.path!=="dependency-lock/profile-import.json")return{path:a.path,asset:a.asset};let l=e.object({source:e.literal("openpond.profile"),profileId:e.string(),profileGitHead:e.string().nullable(),dependenciesResolved:e.literal(!1)}).strict().parse(JSON.parse(Buffer.from(a.bytes).toString("utf8")));if(t.manifest.metadata.importedFrom!=="openpond.profile"||l.profileId!==t.manifest.metadata.profileId||l.profileGitHead!==i)throw new Error("Generated Profile provenance differs from compiler metadata.");let p=Buffer.from(f({...l,profileGitHead:null}));return{path:a.path,asset:{...a.asset,contentHash:m(p),sizeBytes:p.byteLength}}}),r={manifest:{...t.manifest,metadata:n},assets:o};return{contentHash:d(r),protectedClosureHash:d(t.sourceFiles.filter(a=>a.asset.visibility!=="policy").map(a=>({path:a.path,asset:a.asset}))),profileGitHead:typeof t.manifest.metadata.profileGitHead=="string"?t.manifest.metadata.profileGitHead:null}}s(h,"compiledCandidateExecutableIdentity");function v(t,i,n){let o=h(t),r=h(i);if(!/^[a-f0-9]{40}$/.test(n)||r.profileGitHead!==n||o.contentHash!==r.contentHash||o.protectedClosureHash!==r.protectedClosureHash)throw new Error("The actual committed Profile differs from tested executable source or its protected evaluator closure.");return{schemaVersion:"openpond.candidateExecutableEquivalence.v1",contentHash:o.contentHash,protectedClosureHash:o.protectedClosureHash,candidateProfileGitHead:o.profileGitHead,activeProfileGitHead:r.profileGitHead}}s(v,"qualifyCommittedCandidateEquivalence");var c=e.string().regex(/^[a-f0-9]{64}$/),H=e.object({id:e.string().min(1),contentHash:c}).strict(),u=e.object({schemaVersion:e.literal("openpond.candidateProfileAdoption.v1"),id:e.string().min(1),operationId:e.string().min(1),actorId:e.string().min(1),teamId:e.string().min(1),candidateId:e.string().min(1),testedCandidateRelease:H,activeRelease:H,expectedCommit:e.string().regex(/^[a-f0-9]{40}$/),committedProfileGit:e.string().regex(/^[a-f0-9]{40}$/),equivalence:e.object({schemaVersion:e.literal("openpond.candidateExecutableEquivalence.v1"),contentHash:c,protectedClosureHash:c,candidateProfileGitHead:e.string().nullable(),activeProfileGitHead:e.string()}).strict(),createdAt:e.string().datetime(),contentHash:c}).strict();function G(t){let i=u.parse({...t,contentHash:d(t)});if(i.equivalence.activeProfileGitHead!==i.committedProfileGit)throw new Error("Adoption receipt differs from its qualified committed source.");return i}s(G,"sealCandidateProfileAdoptionReceipt");export{h as a,v as b,u as c,G as d};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Fa as I,Ga as H,Ua as d,Va as r,Wa as j,Xa as m,ab as p,ga as s}from"./chunk-YNQWJWIC.js";import{Hb as y,Mb as R,Pb as P,lb as S,wb as L}from"./chunk-PBZCXPPC.js";import{n as b}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as E}from"./chunk-FTQLQJQV.js";var u=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),N=e.object({ref:u,revision:e.string().nullable(),sourceHash:e.string()});var n=e.string().trim().min(1).max(200),o=e.string().regex(/^[a-f0-9]{64}$/),k=e.enum(["queued","running","cancelling","completed","failed","cancelled","interrupted"]),z=e.object({providerId:e.enum(["openpond","custom-openai-compatible","claude-code","codex"]),modelId:e.string().trim().min(1).max(500),configurationHash:o,maxOutputTokens:e.number().int().positive().max(262144),temperature:e.number().min(0).max(2).optional(),topP:e.number().positive().max(1).optional(),messages:e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(262144)}).strict()).max(200)}).strict(),Y=e.object({configuration:m,package:s}).strict(),Z=e.object({configuration:m,expectedPackageHash:o.optional()}).strict(),ee=e.object({schemaVersion:e.literal("openpond.localExperimentDefinition.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,revision:e.number().int().positive(),configuration:m,model:z,packageHash:o,graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime(),contentHash:o}).strict(),te=e.object({operationId:n,definition:d}).strict(),ne=e.object({teamId:n,id:n}).strict(),oe=e.object({teamId:n,projectId:n.optional(),status:k.optional(),datasetHash:o.optional(),search:e.string().max(100).optional(),afterId:n.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),f=e.object({schemaVersion:e.literal("openpond.localExperimentExecution.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,operationId:n,definition:d,kind:e.enum(["target","scoring"]),executionHash:o,sourceExecution:e.object({id:n,executionHash:o}).strict().nullable(),packageHash:o,maximumCostUsd:e.number().finite().positive(),status:k,createdAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative(),unknown:e.number().int().nonnegative()}).strict(),usage:e.object({knownCostUsd:e.number().finite().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),heldUsd:e.number().finite().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict(),cleanupComplete:e.boolean(),error:e.string().max(2e3).nullable()}).strict(),v=f.omit({definition:!0});function g(t,i){t.kind==="scoring"!=(t.sourceExecution!==null)&&i.addIssue({code:"custom",message:"Only retained scoring passes name an original execution."}),["completed","failed","cancelled","interrupted"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&i.addIssue({code:"custom",message:"Terminal local execution requires complete population accounting."}),["completed","cancelled"].includes(t.status)&&!t.cleanupComplete&&i.addIssue({code:"custom",message:"Successful completion or cancellation requires confirmed local transport cleanup."}),t.usage.uncertainRequests>0&&t.usage.costUsd!==null&&i.addIssue({code:"custom",message:"Uncertain provider charges cannot claim a measured total."})}E(g,"validateLocalExecutionState");var ie=f.superRefine(g),c=v.superRefine(g),A=e.object({configuration:p,package:s}).strict(),U=e.object({configuration:p,expectedPackageHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),x=e.object({configuration:p,model:z,packageHash:e.string().regex(/^[a-f0-9]{64}$/),graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),retainedConfigurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),configurationHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,i)=>{let{configurationHash:a,...h}=t;b(h)!==a&&i.addIssue({code:"custom",message:"Local configuration snapshot bytes changed."})}),{definition:ae,...O}=f.shape,l=e.object({...O,kind:e.literal("target"),...x.shape}).strict().superRefine((t,i)=>{let a={configuration:t.configuration,model:t.model,packageHash:t.packageHash,graders:t.graders,availableGraders:t.availableGraders,...t.retainedConfigurationHash?{retainedConfigurationHash:t.retainedConfigurationHash}:{},configurationHash:t.configurationHash};g(t,i),x.safeParse(a).success||i.addIssue({code:"custom",message:"Local Experiment configuration changed."}),(t.operationId!==t.configuration.operationId||t.teamId!==t.configuration.request.teamId||t.maximumCostUsd!==t.configuration.maximumCostUsd)&&i.addIssue({code:"custom",message:"Local Experiment differs from its sealed admission."})}),q=e.object({items:e.array(l).max(100),nextCursor:e.string().nullable()}).strict(),G=e.object({teamId:e.string().min(1).max(200),id:e.string().min(1).max(200),configurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),T=e.object({operationId:n,execution:e.object({id:n,executionHash:o}).strict(),graderPackage:s,graders:e.array(j).min(1).max(100),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),re=T.omit({graderPackage:!0}),D=L,F=e.object({sessionId:n,turnId:n,source:S,profileRef:u,admissionHash:o,modelConfigurationHash:o,traceHash:o,runtimeEventRefs:e.array(n).max(1e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),outputHash:o,partialOutputAvailable:e.boolean()}).strict(),w=e.object({receiptId:n,taskId:n,seed:e.string(),status:e.enum(["pending","running","completed","failed","cancelled","unknown"]),input:e.record(e.string(),e.unknown()),policyVisibleContext:e.record(e.string(),e.unknown()),output:e.string().nullable(),messages:e.array(e.unknown()).max(4002),grade:H.nullable(),error:e.string().nullable(),native:D.optional(),profileNative:F.optional(),externalProcess:I.optional()}).strict(),ce=e.object({execution:e.union([l,c]),cases:e.array(w).max(1e4),contentHash:o}).strict(),$=e.object({items:e.array(e.object({sequence:e.number().int().positive(),type:e.string().min(1),payload:e.unknown()}).strict()).max(500),nextCursor:e.number().int().positive().nullable()}).strict(),se=e.object({location:e.literal("local"),execution:e.union([l,c]),case:w,trace:$}).strict(),me=e.object({items:e.array(c).max(100),nextCursor:n.nullable()}).strict(),pe=e.object({execution:c,graders:e.array(r).min(1).max(100),graderPackageHash:o}).strict(),C=e.object({execution:c,manifest:y,result:R}).strict().superRefine((t,i)=>{try{if(P(t),t.manifest.id!==t.execution.id||t.manifest.teamId!==t.execution.teamId||t.manifest.lineage?.execution.id!==(t.execution.sourceExecution?.id??t.execution.id)||t.manifest.lineage.execution.contentHash!==(t.execution.sourceExecution?.executionHash??t.execution.executionHash)||t.manifest.lineage.scoringPassId!==(t.execution.kind==="scoring"?t.execution.id:null)||t.manifest.maximumCostUsd!==t.execution.maximumCostUsd)throw new Error("Portable evidence differs from its retained local execution.")}catch(a){i.addIssue({code:"custom",message:a instanceof Error?a.message:"Local portable evidence verification failed."})}}),le=e.object({location:e.literal("local"),baseline:C,candidate:C}).strict();export{u as a,l as b,ce as c,le as d};
2
+ import{Wa as I,Xa as H,ga as s,jb as d,kb as r,lb as j,mb as m,rb as p}from"./chunk-WLZJOCLA.js";import{Bb as R,Eb as P,lb as L,va as S,wb as y}from"./chunk-ZY32SZ2P.js";import{n as b}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as E}from"./chunk-FTQLQJQV.js";var u=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),N=e.object({ref:u,revision:e.string().nullable(),sourceHash:e.string()});var n=e.string().trim().min(1).max(200),o=e.string().regex(/^[a-f0-9]{64}$/),k=e.enum(["queued","running","cancelling","completed","failed","cancelled","interrupted"]),z=e.object({providerId:e.enum(["openpond","custom-openai-compatible","claude-code","codex"]),modelId:e.string().trim().min(1).max(500),configurationHash:o,maxOutputTokens:e.number().int().positive().max(262144),temperature:e.number().min(0).max(2).optional(),topP:e.number().positive().max(1).optional(),messages:e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(262144)}).strict()).max(200)}).strict(),Y=e.object({configuration:m,package:s}).strict(),Z=e.object({configuration:m,expectedPackageHash:o.optional()}).strict(),ee=e.object({schemaVersion:e.literal("openpond.localExperimentDefinition.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,revision:e.number().int().positive(),configuration:m,model:z,packageHash:o,graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime(),contentHash:o}).strict(),te=e.object({operationId:n,definition:d}).strict(),ne=e.object({teamId:n,id:n}).strict(),oe=e.object({teamId:n,projectId:n.optional(),status:k.optional(),datasetHash:o.optional(),search:e.string().max(100).optional(),afterId:n.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),f=e.object({schemaVersion:e.literal("openpond.localExperimentExecution.v1"),location:e.literal("local"),id:n,teamId:n,ownerActorId:n,operationId:n,definition:d,kind:e.enum(["target","scoring"]),executionHash:o,sourceExecution:e.object({id:n,executionHash:o}).strict().nullable(),packageHash:o,maximumCostUsd:e.number().finite().positive(),status:k,createdAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative(),unknown:e.number().int().nonnegative()}).strict(),usage:e.object({knownCostUsd:e.number().finite().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),heldUsd:e.number().finite().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict(),cleanupComplete:e.boolean(),error:e.string().max(2e3).nullable()}).strict(),v=f.omit({definition:!0});function g(t,i){t.kind==="scoring"!=(t.sourceExecution!==null)&&i.addIssue({code:"custom",message:"Only retained scoring passes name an original execution."}),["completed","failed","cancelled","interrupted"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&i.addIssue({code:"custom",message:"Terminal local execution requires complete population accounting."}),["completed","cancelled"].includes(t.status)&&!t.cleanupComplete&&i.addIssue({code:"custom",message:"Successful completion or cancellation requires confirmed local transport cleanup."}),t.usage.uncertainRequests>0&&t.usage.costUsd!==null&&i.addIssue({code:"custom",message:"Uncertain provider charges cannot claim a measured total."})}E(g,"validateLocalExecutionState");var ie=f.superRefine(g),c=v.superRefine(g),A=e.object({configuration:p,package:s}).strict(),U=e.object({configuration:p,expectedPackageHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),x=e.object({configuration:p,model:z,packageHash:e.string().regex(/^[a-f0-9]{64}$/),graders:e.array(r).min(1).max(100),availableGraders:e.array(r).min(1).max(1e3),retainedConfigurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),configurationHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,i)=>{let{configurationHash:a,...h}=t;b(h)!==a&&i.addIssue({code:"custom",message:"Local configuration snapshot bytes changed."})}),{definition:ae,...O}=f.shape,l=e.object({...O,kind:e.literal("target"),...x.shape}).strict().superRefine((t,i)=>{let a={configuration:t.configuration,model:t.model,packageHash:t.packageHash,graders:t.graders,availableGraders:t.availableGraders,...t.retainedConfigurationHash?{retainedConfigurationHash:t.retainedConfigurationHash}:{},configurationHash:t.configurationHash};g(t,i),x.safeParse(a).success||i.addIssue({code:"custom",message:"Local Experiment configuration changed."}),(t.operationId!==t.configuration.operationId||t.teamId!==t.configuration.request.teamId||t.maximumCostUsd!==t.configuration.maximumCostUsd)&&i.addIssue({code:"custom",message:"Local Experiment differs from its sealed admission."})}),q=e.object({items:e.array(l).max(100),nextCursor:e.string().nullable()}).strict(),G=e.object({teamId:e.string().min(1).max(200),id:e.string().min(1).max(200),configurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),T=e.object({operationId:n,execution:e.object({id:n,executionHash:o}).strict(),graderPackage:s,graders:e.array(j).min(1).max(100),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),re=T.omit({graderPackage:!0}),D=L,F=e.object({sessionId:n,turnId:n,source:S,profileRef:u,admissionHash:o,modelConfigurationHash:o,traceHash:o,runtimeEventRefs:e.array(n).max(1e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),outputHash:o,partialOutputAvailable:e.boolean()}).strict(),w=e.object({receiptId:n,taskId:n,seed:e.string(),status:e.enum(["pending","running","completed","failed","cancelled","unknown"]),input:e.record(e.string(),e.unknown()),policyVisibleContext:e.record(e.string(),e.unknown()),output:e.string().nullable(),messages:e.array(e.unknown()).max(4002),grade:H.nullable(),error:e.string().nullable(),native:D.optional(),profileNative:F.optional(),externalProcess:I.optional()}).strict(),ce=e.object({execution:e.union([l,c]),cases:e.array(w).max(1e4),contentHash:o}).strict(),$=e.object({items:e.array(e.object({sequence:e.number().int().positive(),type:e.string().min(1),payload:e.unknown()}).strict()).max(500),nextCursor:e.number().int().positive().nullable()}).strict(),se=e.object({location:e.literal("local"),execution:e.union([l,c]),case:w,trace:$}).strict(),me=e.object({items:e.array(c).max(100),nextCursor:n.nullable()}).strict(),pe=e.object({execution:c,graders:e.array(r).min(1).max(100),graderPackageHash:o}).strict(),C=e.object({execution:c,manifest:y,result:R}).strict().superRefine((t,i)=>{try{if(P(t),t.manifest.id!==t.execution.id||t.manifest.teamId!==t.execution.teamId||t.manifest.lineage?.execution.id!==(t.execution.sourceExecution?.id??t.execution.id)||t.manifest.lineage.execution.contentHash!==(t.execution.sourceExecution?.executionHash??t.execution.executionHash)||t.manifest.lineage.scoringPassId!==(t.execution.kind==="scoring"?t.execution.id:null)||t.manifest.maximumCostUsd!==t.execution.maximumCostUsd)throw new Error("Portable evidence differs from its retained local execution.")}catch(a){i.addIssue({code:"custom",message:a instanceof Error?a.message:"Local portable evidence verification failed."})}}),le=e.object({location:e.literal("local"),baseline:C,candidate:C}).strict();export{u as a,l as b,ce as c,le as d};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as f}from"./chunk-HUCBKXTU.js";import{Z as c}from"./chunk-XNOMIWEY.js";import{B as w,C as I,y as g}from"./chunk-M3FLEZ4E.js";import{b as m}from"./chunk-W5W4IODW.js";import{f as R}from"./chunk-PBZCXPPC.js";import{A as r}from"./chunk-PF56N7ZY.js";import{a as d}from"./chunk-FTQLQJQV.js";import n from"node:path";import{readFile as y}from"node:fs/promises";var A=r.object({profileId:r.string().min(1),sourceRevision:r.string().min(1),repositoryId:r.string().min(1),harnessRelease:r.object({id:r.string().min(1),contentHash:r.string().regex(/^[a-f0-9]{64}$/)}).strict(),hostExecution:r.object({conversationId:r.string().min(1),turnId:r.string().min(1)}).strict().optional(),workspaceId:r.string().min(1),assetsPath:r.string().min(1).refine(n.isAbsolute)}).strict();async function _(p,e){let t=A.parse(e),s=await f(p,t.harnessRelease);if(!s||n.resolve(s.release.bundlePath)!==n.resolve(t.assetsPath))throw new Error("Hosted Profile release changed after admission.");let o=s.release.harnessRelease.metadata.profile;if(!o||typeof o!="object"||o.id!==t.profileId||o.sourceRevision!==t.sourceRevision||o.repositoryId!==void 0&&o.repositoryId!==t.repositoryId)throw new Error("Hosted Profile provenance differs from admitted release.");return{profile:I(),profileLibrary:w()}}d(_,"loadHostedProfileStateAndLibrary");async function B(p,e){let t=A.parse(e),s=await f(p,t.harnessRelease);if(!s||n.resolve(s.release.bundlePath)!==n.resolve(t.assetsPath))throw new Error("Hosted Profile workflow release is unavailable.");let o=s.release.harnessRelease.metadata.profile;if(o?.id!==t.profileId||o.sourceRevision!==t.sourceRevision||o.repositoryId!==void 0&&o.repositoryId!==t.repositoryId)throw new Error("Hosted Profile workflow provenance changed.");let a=t.harnessRelease,l={source:"openpond_git",repositoryId:t.repositoryId,profileId:t.profileId};if(!s.release.harnessRelease.files.some(u=>u.path==="workflows/catalog.json"))return{profileRef:l,sourceRevision:t.sourceRevision,harnessRelease:a,workflows:[]};let i=n.join(s.release.bundlePath,"source","workflows"),v=R({agentSnapshot:s.release.agentSnapshot,harnessRelease:s.release.harnessRelease,catalogBytes:await y(n.join(i,"catalog.json")),actionBytes:await y(n.join(i,"actions.json"))});return{profileRef:l,sourceRevision:t.sourceRevision,harnessRelease:a,workflows:v.catalog.workflows.map(u=>({workflow:u,binding:{schemaVersion:"openpond.profileWorkflowBinding.v1",profileId:t.profileId,sourceRevision:t.sourceRevision,harnessRelease:a,catalogHash:v.catalogHash,workflowId:u.id}}))}}d(B,"listHostedProfileWorkflows");import{createHash as U,randomUUID as h}from"node:crypto";var b=r.object({approval:g,revision:r.number().int().positive()}).strict(),P=r.object({record:m}).strict(),x=r.object({startedAt:r.string().min(1),requestOrdinal:r.number().int().nonnegative(),id:r.string().min(1)}).strict(),k=r.object({records:r.array(m).max(200),nextBefore:x.nullable()}).strict(),H=1e4,S=class{constructor(e){this.client=e}client;static{d(this,"HostedApprovalStorage")}async readApproval(e){let t=await this.client.request({contractVersion:c,requestId:h(),operation:"approval/get",params:{approvalId:e}});return t===null?null:b.parse(t)}async getApproval(e){return(await this.readApproval(e))?.approval??null}async putApproval(e){let t=g.parse(e.approval);if(!e.requestId.trim())throw new Error("Approval mutation requires a stable request ID.");return b.parse(await this.client.request({contractVersion:c,requestId:e.requestId,operation:"approval/upsert",params:{approval:t,expectedRevision:e.expectedRevision}}))}},M=class{constructor(e){this.client=e}client;static{d(this,"HostedModelUsageStorage")}async upsertModelUsageRecord(e){let t=m.parse(e),s=U("sha256").update(JSON.stringify(t)).digest("hex"),o=await this.client.request({contractVersion:c,requestId:`usage:${s}`,operation:"usage/upsert",params:{record:t}}),a=P.parse(o).record;if(a.requestId!==t.requestId)throw new Error("Host usage upsert changed request identity.");return a}async getModelUsageRecordByRequestId(e){let t=await this.client.request({contractVersion:c,requestId:h(),operation:"usage/getByRequestId",params:{requestId:e}});return t===null?null:P.parse(t).record}async listModelUsageRecords(e={}){let t=e.limit===void 0||e.limit>=H,s=e.limit===void 0?H:Math.max(1,Math.min(1e4,Math.trunc(e.limit))),o={...e.sessionId?{sessionId:e.sessionId}:{},...e.turnId?{turnId:e.turnId}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...e.startedAtFrom?{startedAtFrom:e.startedAtFrom}:{},...e.startedAtTo?{startedAtTo:e.startedAtTo}:{},...e.visibility&&e.visibility!=="all"?{visibility:e.visibility}:{},...e.status&&e.status!=="all"?{status:e.status}:{}},a=[],l=null;for(;a.length<s+(t?1:0);){let i=k.parse(await this.client.request({contractVersion:c,requestId:h(),operation:"usage/page",params:{query:o,before:l,limit:Math.min(200,s+(t?1:0)-a.length)}}));if(a.push(...i.records),a.length>s)throw new Error(`Hosted usage query exceeds ${s} rows; narrow its filters or use a streamed aggregation.`);if(i.nextBefore===null)break;if(i.records.length===0||JSON.stringify(i.nextBefore)===JSON.stringify(l))throw new Error("Host usage cursor did not advance.");l=i.nextBefore}return a}async listModelUsageRecordsComplete(e={}){return this.listModelUsageRecords(e)}};export{A as a,_ as b,B as c,S as d,M as e};
2
+ import{b as f}from"./chunk-GDJ4X2ZN.js";import{Z as c}from"./chunk-6I5AUTVO.js";import{C as w,D as I,z as g}from"./chunk-MVPKU72J.js";import{b as m}from"./chunk-FYWQWKVS.js";import{f as R}from"./chunk-ZY32SZ2P.js";import{A as r}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";import n from"node:path";import{readFile as y}from"node:fs/promises";var A=r.object({profileId:r.string().min(1),sourceRevision:r.string().min(1),repositoryId:r.string().min(1),harnessRelease:r.object({id:r.string().min(1),contentHash:r.string().regex(/^[a-f0-9]{64}$/)}).strict(),hostExecution:r.object({conversationId:r.string().min(1),turnId:r.string().min(1)}).strict().optional(),workspaceId:r.string().min(1),assetsPath:r.string().min(1).refine(n.isAbsolute)}).strict();async function _(p,e){let t=A.parse(e),s=await f(p,t.harnessRelease);if(!s||n.resolve(s.release.bundlePath)!==n.resolve(t.assetsPath))throw new Error("Hosted Profile release changed after admission.");let o=s.release.harnessRelease.metadata.profile;if(!o||typeof o!="object"||o.id!==t.profileId||o.sourceRevision!==t.sourceRevision||o.repositoryId!==void 0&&o.repositoryId!==t.repositoryId)throw new Error("Hosted Profile provenance differs from admitted release.");return{profile:I(),profileLibrary:w()}}d(_,"loadHostedProfileStateAndLibrary");async function B(p,e){let t=A.parse(e),s=await f(p,t.harnessRelease);if(!s||n.resolve(s.release.bundlePath)!==n.resolve(t.assetsPath))throw new Error("Hosted Profile workflow release is unavailable.");let o=s.release.harnessRelease.metadata.profile;if(o?.id!==t.profileId||o.sourceRevision!==t.sourceRevision||o.repositoryId!==void 0&&o.repositoryId!==t.repositoryId)throw new Error("Hosted Profile workflow provenance changed.");let a=t.harnessRelease,l={source:"openpond_git",repositoryId:t.repositoryId,profileId:t.profileId};if(!s.release.harnessRelease.files.some(u=>u.path==="workflows/catalog.json"))return{profileRef:l,sourceRevision:t.sourceRevision,harnessRelease:a,workflows:[]};let i=n.join(s.release.bundlePath,"source","workflows"),v=R({agentSnapshot:s.release.agentSnapshot,harnessRelease:s.release.harnessRelease,catalogBytes:await y(n.join(i,"catalog.json")),actionBytes:await y(n.join(i,"actions.json"))});return{profileRef:l,sourceRevision:t.sourceRevision,harnessRelease:a,workflows:v.catalog.workflows.map(u=>({workflow:u,binding:{schemaVersion:"openpond.profileWorkflowBinding.v1",profileId:t.profileId,sourceRevision:t.sourceRevision,harnessRelease:a,catalogHash:v.catalogHash,workflowId:u.id}}))}}d(B,"listHostedProfileWorkflows");import{createHash as U,randomUUID as h}from"node:crypto";var b=r.object({approval:g,revision:r.number().int().positive()}).strict(),P=r.object({record:m}).strict(),x=r.object({startedAt:r.string().min(1),requestOrdinal:r.number().int().nonnegative(),id:r.string().min(1)}).strict(),k=r.object({records:r.array(m).max(200),nextBefore:x.nullable()}).strict(),H=1e4,S=class{constructor(e){this.client=e}client;static{d(this,"HostedApprovalStorage")}async readApproval(e){let t=await this.client.request({contractVersion:c,requestId:h(),operation:"approval/get",params:{approvalId:e}});return t===null?null:b.parse(t)}async getApproval(e){return(await this.readApproval(e))?.approval??null}async putApproval(e){let t=g.parse(e.approval);if(!e.requestId.trim())throw new Error("Approval mutation requires a stable request ID.");return b.parse(await this.client.request({contractVersion:c,requestId:e.requestId,operation:"approval/upsert",params:{approval:t,expectedRevision:e.expectedRevision}}))}},M=class{constructor(e){this.client=e}client;static{d(this,"HostedModelUsageStorage")}async upsertModelUsageRecord(e){let t=m.parse(e),s=U("sha256").update(JSON.stringify(t)).digest("hex"),o=await this.client.request({contractVersion:c,requestId:`usage:${s}`,operation:"usage/upsert",params:{record:t}}),a=P.parse(o).record;if(a.requestId!==t.requestId)throw new Error("Host usage upsert changed request identity.");return a}async getModelUsageRecordByRequestId(e){let t=await this.client.request({contractVersion:c,requestId:h(),operation:"usage/getByRequestId",params:{requestId:e}});return t===null?null:P.parse(t).record}async listModelUsageRecords(e={}){let t=e.limit===void 0||e.limit>=H,s=e.limit===void 0?H:Math.max(1,Math.min(1e4,Math.trunc(e.limit))),o={...e.sessionId?{sessionId:e.sessionId}:{},...e.turnId?{turnId:e.turnId}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...e.startedAtFrom?{startedAtFrom:e.startedAtFrom}:{},...e.startedAtTo?{startedAtTo:e.startedAtTo}:{},...e.visibility&&e.visibility!=="all"?{visibility:e.visibility}:{},...e.status&&e.status!=="all"?{status:e.status}:{}},a=[],l=null;for(;a.length<s+(t?1:0);){let i=k.parse(await this.client.request({contractVersion:c,requestId:h(),operation:"usage/page",params:{query:o,before:l,limit:Math.min(200,s+(t?1:0)-a.length)}}));if(a.push(...i.records),a.length>s)throw new Error(`Hosted usage query exceeds ${s} rows; narrow its filters or use a streamed aggregation.`);if(i.nextBefore===null)break;if(i.records.length===0||JSON.stringify(i.nextBefore)===JSON.stringify(l))throw new Error("Host usage cursor did not advance.");l=i.nextBefore}return a}async listModelUsageRecordsComplete(e={}){return this.listModelUsageRecords(e)}};export{A as a,_ as b,B as c,S as d,M as e};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as x}from"./chunk-TPOAAJKA.js";import{m as w}from"./chunk-ZU3YBRXS.js";import{j as u}from"./chunk-7PKTCMZ6.js";import{ja as f}from"./chunk-WLZJOCLA.js";import{i as h,oa as m,pa as p}from"./chunk-ZY32SZ2P.js";import{n as s}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as c}from"./chunk-FTQLQJQV.js";import g from"node:path";import{lstat as k,readFile as v,realpath as b}from"node:fs/promises";import{randomUUID as D}from"node:crypto";var y=e.object({id:e.string(),version:e.string(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),feedbackKey:e.string(),release:e.object({id:e.string(),revision:e.union([e.string(),e.number()]),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().nullable()}).strict(),H=e.object({binding:m,packageValue:e.unknown(),graders:e.array(y).max(100),actualGrading:e.object({pass:e.unknown(),evidence:e.unknown()}).strict().optional(),sourceCandidate:h.optional()}).strict();async function q(i,o){let n=await b(o),a=g.resolve(i);if(g.dirname(a)!==n||await b(a)!==a)throw new Error("External Dataset package escaped its private owner home.");let l=await k(a);if(!l.isFile()||l.isSymbolicLink()||l.size>32*1024*1024)throw new Error("External Dataset package is not a bounded regular file.");let r=H.parse(JSON.parse(new TextDecoder("utf8",{fatal:!0}).decode(await v(a))));return r.binding=p(r.binding),r.packageValue=u({...r,packageValue:f(r.packageValue)}),r}c(q,"readHostProfileExternalDataset");async function A(i){let o=H.parse(i.value),n=p(o.binding),a=i.release,l={id:a.harnessRelease.id,contentHash:a.harnessRelease.contentHash};if(n.protectedProfileClosureHash!==s(a.harnessRelease.files.filter(t=>t.visibility!=="policy").map(t=>({path:t.path,asset:t}))))throw new Error("The external Dataset protected Profile closure changed.");if(o.sourceCandidate){let t=await w({workspaceId:typeof a.agentSnapshot.metadata.workspaceId=="string"?a.agentSnapshot.metadata.workspaceId:a.workspaceId,sourceDir:g.join(a.bundlePath,"source")});if(s(o.sourceCandidate.harnessRelease)!==s(l)||x(t).protectedClosureHash!==o.sourceCandidate.protectedClosureHash)throw new Error("The external Dataset candidate differs from its retained frozen compiled source.")}let r=c(async t=>{if(e.object({authorized:e.literal(!0),bindingHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(await i.client.request({contractVersion:1,requestId:D(),operation:"profile.externalDataset.authorize",params:{...t,bindingHash:n.contentHash}})).bindingHash!==n.contentHash)throw new Error("The host authorized another external Dataset binding.")},"authorize");return{authorize:r,resolveExternalDataset:c(async(t,d)=>{if(await r(),s(t)!==s(n)||d.profileRef.profileId!==n.profileId||d.sourceRevision!==i.sourceRevision||s(d.harnessRelease)!==s(l))throw new Error("External Dataset requested another actual Profile source or recipe.");let E=u({...o,binding:t,packageValue:f(o.packageValue)});return{binding:n,packageValue:E,authorize:r}},"resolveExternalDataset"),sourceCandidate:o.sourceCandidate}}c(A,"createHostProfileExternalDataset");export{q as a,A as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{P as k,Q as E,_ as S}from"./chunk-2EPR4HLF.js";import{f as B}from"./chunk-UGOK7VTC.js";import{a as l}from"./chunk-FTQLQJQV.js";import T from"node:path";var P="default",H=["apiKey","baseUrl","apiBaseUrl","chatApiBaseUrl","token","appId","conversationId"];function y(t,e){return Object.prototype.hasOwnProperty.call(t,e)}l(y,"hasOwn");function m(t){if(typeof t!="string")return null;let e=t.trim();return e.length>0?e:null}l(m,"normalizeHandle");function d(t){if(typeof t!="string")return null;let e=t.trim();return e?e.replace(/\/$/,""):null}l(d,"normalizeBaseUrl");function N(t){let e=m(t);if(!e)throw new Error("profile handle must be non-empty");return e}l(N,"requireHandle");function $(t){if(typeof t!="string")throw new Error("apiKey must be a non-empty string");let e=t.trim();if(!e)throw new Error("apiKey must be a non-empty string");return e}l($,"requireApiKey");function b(t,e){let n=m(t),s=m(e);return!!(n&&s&&n.toLowerCase()===s.toLowerCase())}l(b,"handleEquals");function R(t,e,n){let s=d(n);return t.findIndex(r=>b(r.handle,e)?s?d(r.baseUrl)===s:!0:!1)}l(R,"findAccountIndex");function U(t){let e=m(t.handle)??P,n=d(t.baseUrl);return n?{handle:e,baseUrl:n}:{handle:e}}l(U,"selectorFromAccount");function A(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=m(typeof e.handle=="string"?e.handle:void 0);if(!n)return null;let s=d(typeof e.baseUrl=="string"?e.baseUrl:void 0);return s?{handle:n,baseUrl:s}:{handle:n}}l(A,"sanitizeActiveProfile");function x(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n=typeof e.repoPath=="string"?e.repoPath.trim():"",s=typeof e.profile=="string"&&e.profile.trim()?e.profile.trim():"default";if(!n)return;let r={repoPath:n,profile:s,mode:"local"};if(e.lastCheck&&typeof e.lastCheck=="object"&&!Array.isArray(e.lastCheck)){let o=e.lastCheck,a=o.command,c=o.status,f=o.checkedAt;(a==="inspect"||a==="build"||a==="validate"||a==="eval"||a==="run")&&(c==="passed"||c==="failed")&&typeof f=="string"&&(r.lastCheck={command:a,status:c,checkedAt:f,...typeof o.exitCode=="number"||o.exitCode===null?{exitCode:o.exitCode}:{},...typeof o.sourceHead=="string"||o.sourceHead===null?{sourceHead:o.sourceHead}:{}})}if(e.lastPush&&typeof e.lastPush=="object"&&!Array.isArray(e.lastPush)){let o=e.lastPush,a=o.status,c=o.pushedAt;(a==="pushed"||a==="failed")&&typeof c=="string"&&(r.lastPush={status:a,pushedAt:c,...typeof o.teamId=="string"||o.teamId===null?{teamId:o.teamId}:{},...typeof o.projectId=="string"||o.projectId===null?{projectId:o.projectId}:{},...typeof o.localHead=="string"||o.localHead===null?{localHead:o.localHead}:{},...typeof o.hostedHead=="string"||o.hostedHead===null?{hostedHead:o.hostedHead}:{},...typeof o.sourceRef=="string"||o.sourceRef===null?{sourceRef:o.sourceRef}:{},...o.promotionStatus==="uploaded"||o.promotionStatus==="hosted_source_materialized"||o.promotionStatus==="hosted_source_materialize_failed"||o.promotionStatus==="hosted_source_check_pending"||o.promotionStatus==="hosted_source_check_failed"||o.promotionStatus==="hosted_source_published"||o.promotionStatus==="hosted_source_publish_failed"||o.promotionStatus==="hosted_run_pending"||o.promotionStatus==="hosted_run_passed"||o.promotionStatus==="hosted_run_failed"||o.promotionStatus===null?{promotionStatus:o.promotionStatus}:{},...o.hostedRunStatus==="not_started"||o.hostedRunStatus==="running"||o.hostedRunStatus==="passed"||o.hostedRunStatus==="failed"||o.hostedRunStatus===null?{hostedRunStatus:o.hostedRunStatus}:{},...typeof o.hostedRunAgentId=="string"||o.hostedRunAgentId===null?{hostedRunAgentId:o.hostedRunAgentId}:{},...typeof o.hostedRunId=="string"||o.hostedRunId===null?{hostedRunId:o.hostedRunId}:{},...typeof o.hostedRunAt=="string"||o.hostedRunAt===null?{hostedRunAt:o.hostedRunAt}:{},...z(o.hostedSourceMaterialization)?{hostedSourceMaterialization:z(o.hostedSourceMaterialization)}:{},...K(o.hostedSourceCheck)?{hostedSourceCheck:K(o.hostedSourceCheck)}:{},...j(o.hostedPublish)?{hostedPublish:j(o.hostedPublish)}:{},...M(o.hostedRun)?{hostedRun:M(o.hostedRun)}:{},...typeof o.error=="string"||o.error===null?{error:o.error}:{}})}if(Array.isArray(e.profiles)){let o=e.profiles.flatMap(a=>{let c=x(a);if(!c)return[];let f=a,p=f.source==="github"||f.source==="openpond_git"?f.source:"local",g=typeof f.repositoryId=="string"&&f.repositoryId.trim()?f.repositoryId.trim():T.resolve(c.repoPath);return[{source:p,repositoryId:g,repoPath:c.repoPath,profile:c.profile,...c.lastCheck?{lastCheck:c.lastCheck}:{},...c.lastPush?{lastPush:c.lastPush}:{}}]});o.length>0&&(r.profiles=o)}return r}l(x,"sanitizeLocalOpenPondProfile");function z(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"runtimeAgentId"),...i(e,"projectId"),...i(e,"sourceRoot"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"manifestPath"),...i(e,"manifestSyncedAt"),...O(e,"fileCount"),...O(e,"totalBytes"),...i(e,"generatedManifestPath"),...C(e,"synthesizedOpenPondYaml"),...i(e,"uploadMetadataPath"),...u(e,"setupCommands"),...u(e,"validationCommands"),...i(e,"materializedAt"),...i(e,"error")}:null}l(z,"sanitizeHostedMaterializationStatus");function K(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"deployPlanStatus"),...C(e,"canRun"),...C(e,"canDeploy"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"manifestPath"),...u(e,"setupCommands"),...u(e,"validationCommands"),...u(e,"requiredChecks"),...u(e,"evalNames"),...u(e,"blockedReasons"),...u(e,"staleReasons"),...i(e,"runtimeId"),...i(e,"sandboxId"),...u(e,"traceArtifactRefs"),...u(e,"evalResultArtifactRefs"),...u(e,"validatorArtifactRefs"),...i(e,"checkedAt"),...i(e,"error")}:null}l(K,"sanitizeHostedSourceCheckStatus");function j(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"snapshotId"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"manifestPath"),...i(e,"buildStatus"),...i(e,"validationStatus"),...i(e,"evalStatus"),...i(e,"publishedAt"),...i(e,"error")}:null}l(j,"sanitizeHostedPublishStatus");function M(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"runId"),...i(e,"runtimeId"),...i(e,"sandboxId"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"setupGateStatus"),...u(e,"setupRequirementRefs"),...u(e,"artifactRefs"),...u(e,"traceArtifactRefs"),...u(e,"evalArtifactRefs"),...i(e,"startedAt"),...i(e,"completedAt"),...i(e,"error")}:null}l(M,"sanitizeHostedRunSummary");function i(t,e){let n=t[e];return typeof n=="string"||n===null?{[e]:n}:{}}l(i,"nullableStringProp");function C(t,e){let n=t[e];return typeof n=="boolean"||n===null?{[e]:n}:{}}l(C,"nullableBooleanProp");function O(t,e){let n=t[e];return typeof n=="number"||n===null?{[e]:n}:{}}l(O,"nullableNumberProp");function u(t,e){let n=t[e];if(!Array.isArray(n))return{};let s=n.filter(r=>typeof r=="string");return{[e]:s}}l(u,"stringArrayProp");function I(t){return typeof t=="string"&&t.trim()?t.trim():null}l(I,"stringField");function D(t,e){if(!b(t.handle,e.handle))return!1;let n=d(e.baseUrl);return n?d(t.baseUrl)===n:!d(t.baseUrl)}l(D,"accountMatchesSelector");function v(t,e,n={}){let s=d(e.baseUrl);if(s)return R(t,e.handle,s);let r=t.findIndex(a=>D(a,e));if(r!==-1)return r;let o=t.map((a,c)=>({account:a,index:c})).filter(({account:a})=>b(a.handle,e.handle));if(o.length>1&&n.requireUnambiguous)throw new Error(`multiple profiles found for ${e.handle}; pass --base-url to select one`);return o[0]?.index??-1}l(v,"findAccountIndexForSelector");function F(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n={};return typeof e.token=="string"&&(n.token=e.token),(typeof e.appId=="string"||e.appId===null)&&(n.appId=e.appId),(typeof e.conversationId=="string"||e.conversationId===null)&&(n.conversationId=e.conversationId),Object.keys(n).length>0?n:void 0}l(F,"sanitizeSession");function Y(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=m(typeof e.handle=="string"?e.handle:void 0);if(!n)return null;let s={handle:n};typeof e.apiKey=="string"&&(s.apiKey=e.apiKey),typeof e.baseUrl=="string"&&(s.baseUrl=e.baseUrl),typeof e.apiBaseUrl=="string"&&(s.apiBaseUrl=e.apiBaseUrl),typeof e.chatApiBaseUrl=="string"&&(s.chatApiBaseUrl=e.chatApiBaseUrl),typeof e.environment=="string"&&(s.environment=e.environment);let r=F(e.session);return r&&(s.session=r),s}l(Y,"sanitizeAccount");function J(t){let e={};return typeof t.token=="string"&&(e.token=t.token),(typeof t.appId=="string"||t.appId===null)&&(e.appId=t.appId),(typeof t.conversationId=="string"||t.conversationId===null)&&(e.conversationId=t.conversationId),Object.keys(e).length>0?e:void 0}l(J,"extractLegacySession");function Q(t,e){let n={handle:e};typeof t.apiKey=="string"&&(n.apiKey=t.apiKey),typeof t.baseUrl=="string"&&(n.baseUrl=t.baseUrl),typeof t.apiBaseUrl=="string"&&(n.apiBaseUrl=t.apiBaseUrl),typeof t.chatApiBaseUrl=="string"&&(n.chatApiBaseUrl=t.chatApiBaseUrl);let s=J(t);return s&&(n.session=s),n}l(Q,"extractLegacyAccount");function L(t){let e={};typeof t.lspEnabled=="boolean"&&(e.lspEnabled=t.lspEnabled),(t.executionMode==="local"||t.executionMode==="hosted")&&(e.executionMode=t.executionMode),(t.mode==="general"||t.mode==="builder")&&(e.mode=t.mode);let n=x(t.openpondProfile);n&&(e.openpondProfile=n);let s=[],r=Array.isArray(t.accounts)?t.accounts:[];for(let f of r){let p=Y(f);p&&R(s,p.handle,p.baseUrl)===-1&&s.push(p)}if(s.length===0){let f=A(t.activeProfile)?.handle||P;s.push(Q(t,f))}let o=A(t.activeProfile),a=o?v(s,o):-1,c=s[a===-1?0:a];return e.accounts=s,e.activeProfile=U(c),e}l(L,"normalizeGlobalConfig");function V(t,e,n){let s=t.accounts??[],r=d(n??process.env.OPENPOND_BASE_URL),o=m(e);if(o)return r?{handle:o,baseUrl:r}:{handle:o};let a=m(process.env.OPENPOND_ACCOUNT);if(a)return r?{handle:a,baseUrl:r}:{handle:a};let c=A(t.activeProfile);return c?r?{handle:c.handle,baseUrl:r}:c:s[0]?U(s[0]):{handle:P}}l(V,"resolveRequestedProfile");function w(t,e,n){let s=d(n);if(s){let o=R(t,e,s);if(o!==-1)return t[o]}else{let o=t.filter(a=>b(a.handle,e));if(o.length>1)throw new Error(`multiple profiles found for ${e}; pass --base-url to select one`);if(o.length===1)return o[0]}let r={handle:e};return s&&(r.baseUrl=s),t.push(r),r}l(w,"ensureAccount");function q(t){t.session&&Object.keys(t.session).length===0&&delete t.session}l(q,"cleanupAccount");function W(t,e,n,s){let r=n===null||n===void 0&&s.undefinedDeletes;switch(e){case"apiKey":{if(r){delete t.apiKey;return}typeof n=="string"&&(t.apiKey=n);return}case"baseUrl":{if(r){delete t.baseUrl;return}typeof n=="string"&&(t.baseUrl=n);return}case"apiBaseUrl":{if(r){delete t.apiBaseUrl;return}typeof n=="string"&&(t.apiBaseUrl=n);return}case"chatApiBaseUrl":{if(r){delete t.chatApiBaseUrl;return}typeof n=="string"&&(t.chatApiBaseUrl=n);return}case"token":case"appId":case"conversationId":{if(t.session||(t.session={}),r){delete t.session[e],q(t);return}(typeof n=="string"||n===null)&&(t.session[e]=n),q(t);return}}}l(W,"applyScopedKey");function X(t,e,n){if(!H.some(f=>y(e,f)))return!1;let r=t.accounts??[],o=A(e.activeProfile)??V(t),a=d(y(e,"baseUrl")?e.baseUrl??null:o.baseUrl??process.env.OPENPOND_BASE_URL),c=w(r,o.handle,a);for(let f of H)y(e,f)&&W(c,f,e[f],n);return t.accounts=r,t.activeProfile=U(c),!0}l(X,"applyAccountPatch");function Z(t,e){if(y(e,"lspEnabled")&&(typeof e.lspEnabled=="boolean"?t.lspEnabled=e.lspEnabled:e.lspEnabled===null&&delete t.lspEnabled),y(e,"executionMode")&&(e.executionMode==="local"||e.executionMode==="hosted"?t.executionMode=e.executionMode:e.executionMode===null&&delete t.executionMode),y(e,"mode")&&(e.mode==="general"||e.mode==="builder"?t.mode=e.mode:e.mode===null&&delete t.mode),y(e,"activeProfile")){let n=A(e.activeProfile);if(n){let s=v(t.accounts??[],n);t.activeProfile=s===-1?n:U((t.accounts??[])[s])}else e.activeProfile===null&&delete t.activeProfile}if(y(e,"openpondProfile")){let n=x(e.openpondProfile);n?t.openpondProfile=n:e.openpondProfile===null&&delete t.openpondProfile}}l(Z,"applyTopLevelPatch");async function _(t){let e=B();return await S(e),await E(e,n=>{let s=L(n);return t(s),s})}l(_,"updateGlobalConfig");async function ee(){let t=B();return await S(t),L(await k(t))}l(ee,"loadGlobalConfig");async function G(){let t=await ee(),e=A(t.activeProfile);return(t.accounts??[]).map(n=>{let s=m(n.handle)??P;return{handle:s,baseUrl:d(n.baseUrl),apiBaseUrl:d(n.apiBaseUrl),chatApiBaseUrl:d(n.chatApiBaseUrl),environment:n.environment?.trim()||null,isActive:!!(e&&D({...n,handle:s},e)),hasApiKey:!!n.apiKey?.trim(),hasSessionToken:!!n.session?.token?.trim(),sessionAppId:n.session?.appId??null,sessionConversationId:n.session?.conversationId??null}})}l(G,"listConfiguredProfiles");async function se(t,e={}){let n=N(t),s=d(e.baseUrl),r=-1;await _(a=>{let c=a.accounts??[];if(r=v(c,s?{handle:n,baseUrl:s}:{handle:n},{requireUnambiguous:!0}),r===-1)throw new Error(`profile not found: ${n}`);a.activeProfile=U(c[r])});let o=await G();return o.find(a=>a.isActive)??o[r]}l(se,"setActiveProfile");async function re(t){let e=N(t.handle),n=$(t.apiKey),s=d(t.baseUrl),r=d(t.apiBaseUrl),o=d(t.chatApiBaseUrl),a={handle:e};await _(p=>{let g=p.accounts??[],h=w(g,e,s);h.apiKey=n,s&&(h.baseUrl=s),r?h.apiBaseUrl=r:t.apiBaseUrl===null&&delete h.apiBaseUrl,o?h.chatApiBaseUrl=o:t.chatApiBaseUrl===null&&delete h.chatApiBaseUrl,t.environment===null?delete h.environment:typeof t.environment=="string"&&t.environment.trim()&&(h.environment=t.environment.trim()),p.accounts=g,a=U(h),t.setActive!==!1&&(p.activeProfile=a)});let f=(await G()).find(p=>b(p.handle,a.handle)?s?d(p.baseUrl)===s:!0:!1);if(!f)throw new Error(`failed to save profile: ${e}`);return f}l(re,"saveProfileApiKey");async function ie(t){await _(e=>{Z(e,t),X(e,t,{undefinedDeletes:!1})})}l(ie,"saveGlobalConfig");export{_ as a,ee as b,G as c,se as d,re as e,ie as f};
2
+ import{P as k,Q as E,_ as S}from"./chunk-SH7POUVX.js";import{f as B}from"./chunk-UGOK7VTC.js";import{a as l}from"./chunk-FTQLQJQV.js";import T from"node:path";var P="default",H=["apiKey","baseUrl","apiBaseUrl","chatApiBaseUrl","token","appId","conversationId"];function y(t,e){return Object.prototype.hasOwnProperty.call(t,e)}l(y,"hasOwn");function m(t){if(typeof t!="string")return null;let e=t.trim();return e.length>0?e:null}l(m,"normalizeHandle");function d(t){if(typeof t!="string")return null;let e=t.trim();return e?e.replace(/\/$/,""):null}l(d,"normalizeBaseUrl");function N(t){let e=m(t);if(!e)throw new Error("profile handle must be non-empty");return e}l(N,"requireHandle");function $(t){if(typeof t!="string")throw new Error("apiKey must be a non-empty string");let e=t.trim();if(!e)throw new Error("apiKey must be a non-empty string");return e}l($,"requireApiKey");function b(t,e){let n=m(t),s=m(e);return!!(n&&s&&n.toLowerCase()===s.toLowerCase())}l(b,"handleEquals");function R(t,e,n){let s=d(n);return t.findIndex(r=>b(r.handle,e)?s?d(r.baseUrl)===s:!0:!1)}l(R,"findAccountIndex");function U(t){let e=m(t.handle)??P,n=d(t.baseUrl);return n?{handle:e,baseUrl:n}:{handle:e}}l(U,"selectorFromAccount");function A(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=m(typeof e.handle=="string"?e.handle:void 0);if(!n)return null;let s=d(typeof e.baseUrl=="string"?e.baseUrl:void 0);return s?{handle:n,baseUrl:s}:{handle:n}}l(A,"sanitizeActiveProfile");function x(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n=typeof e.repoPath=="string"?e.repoPath.trim():"",s=typeof e.profile=="string"&&e.profile.trim()?e.profile.trim():"default";if(!n)return;let r={repoPath:n,profile:s,mode:"local"};if(e.lastCheck&&typeof e.lastCheck=="object"&&!Array.isArray(e.lastCheck)){let o=e.lastCheck,a=o.command,c=o.status,f=o.checkedAt;(a==="inspect"||a==="build"||a==="validate"||a==="eval"||a==="run")&&(c==="passed"||c==="failed")&&typeof f=="string"&&(r.lastCheck={command:a,status:c,checkedAt:f,...typeof o.exitCode=="number"||o.exitCode===null?{exitCode:o.exitCode}:{},...typeof o.sourceHead=="string"||o.sourceHead===null?{sourceHead:o.sourceHead}:{}})}if(e.lastPush&&typeof e.lastPush=="object"&&!Array.isArray(e.lastPush)){let o=e.lastPush,a=o.status,c=o.pushedAt;(a==="pushed"||a==="failed")&&typeof c=="string"&&(r.lastPush={status:a,pushedAt:c,...typeof o.teamId=="string"||o.teamId===null?{teamId:o.teamId}:{},...typeof o.projectId=="string"||o.projectId===null?{projectId:o.projectId}:{},...typeof o.localHead=="string"||o.localHead===null?{localHead:o.localHead}:{},...typeof o.hostedHead=="string"||o.hostedHead===null?{hostedHead:o.hostedHead}:{},...typeof o.sourceRef=="string"||o.sourceRef===null?{sourceRef:o.sourceRef}:{},...o.promotionStatus==="uploaded"||o.promotionStatus==="hosted_source_materialized"||o.promotionStatus==="hosted_source_materialize_failed"||o.promotionStatus==="hosted_source_check_pending"||o.promotionStatus==="hosted_source_check_failed"||o.promotionStatus==="hosted_source_published"||o.promotionStatus==="hosted_source_publish_failed"||o.promotionStatus==="hosted_run_pending"||o.promotionStatus==="hosted_run_passed"||o.promotionStatus==="hosted_run_failed"||o.promotionStatus===null?{promotionStatus:o.promotionStatus}:{},...o.hostedRunStatus==="not_started"||o.hostedRunStatus==="running"||o.hostedRunStatus==="passed"||o.hostedRunStatus==="failed"||o.hostedRunStatus===null?{hostedRunStatus:o.hostedRunStatus}:{},...typeof o.hostedRunAgentId=="string"||o.hostedRunAgentId===null?{hostedRunAgentId:o.hostedRunAgentId}:{},...typeof o.hostedRunId=="string"||o.hostedRunId===null?{hostedRunId:o.hostedRunId}:{},...typeof o.hostedRunAt=="string"||o.hostedRunAt===null?{hostedRunAt:o.hostedRunAt}:{},...z(o.hostedSourceMaterialization)?{hostedSourceMaterialization:z(o.hostedSourceMaterialization)}:{},...K(o.hostedSourceCheck)?{hostedSourceCheck:K(o.hostedSourceCheck)}:{},...j(o.hostedPublish)?{hostedPublish:j(o.hostedPublish)}:{},...M(o.hostedRun)?{hostedRun:M(o.hostedRun)}:{},...typeof o.error=="string"||o.error===null?{error:o.error}:{}})}if(Array.isArray(e.profiles)){let o=e.profiles.flatMap(a=>{let c=x(a);if(!c)return[];let f=a,p=f.source==="github"||f.source==="openpond_git"?f.source:"local",g=typeof f.repositoryId=="string"&&f.repositoryId.trim()?f.repositoryId.trim():T.resolve(c.repoPath);return[{source:p,repositoryId:g,repoPath:c.repoPath,profile:c.profile,...c.lastCheck?{lastCheck:c.lastCheck}:{},...c.lastPush?{lastPush:c.lastPush}:{}}]});o.length>0&&(r.profiles=o)}return r}l(x,"sanitizeLocalOpenPondProfile");function z(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"runtimeAgentId"),...i(e,"projectId"),...i(e,"sourceRoot"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"manifestPath"),...i(e,"manifestSyncedAt"),...O(e,"fileCount"),...O(e,"totalBytes"),...i(e,"generatedManifestPath"),...C(e,"synthesizedOpenPondYaml"),...i(e,"uploadMetadataPath"),...u(e,"setupCommands"),...u(e,"validationCommands"),...i(e,"materializedAt"),...i(e,"error")}:null}l(z,"sanitizeHostedMaterializationStatus");function K(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"deployPlanStatus"),...C(e,"canRun"),...C(e,"canDeploy"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"manifestPath"),...u(e,"setupCommands"),...u(e,"validationCommands"),...u(e,"requiredChecks"),...u(e,"evalNames"),...u(e,"blockedReasons"),...u(e,"staleReasons"),...i(e,"runtimeId"),...i(e,"sandboxId"),...u(e,"traceArtifactRefs"),...u(e,"evalResultArtifactRefs"),...u(e,"validatorArtifactRefs"),...i(e,"checkedAt"),...i(e,"error")}:null}l(K,"sanitizeHostedSourceCheckStatus");function j(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"snapshotId"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"manifestPath"),...i(e,"buildStatus"),...i(e,"validationStatus"),...i(e,"evalStatus"),...i(e,"publishedAt"),...i(e,"error")}:null}l(j,"sanitizeHostedPublishStatus");function M(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=I(e.status);return n?{status:n,...i(e,"agentId"),...i(e,"runId"),...i(e,"runtimeId"),...i(e,"sandboxId"),...i(e,"sourceRef"),...i(e,"sourceCommitSha"),...i(e,"manifestHash"),...i(e,"setupGateStatus"),...u(e,"setupRequirementRefs"),...u(e,"artifactRefs"),...u(e,"traceArtifactRefs"),...u(e,"evalArtifactRefs"),...i(e,"startedAt"),...i(e,"completedAt"),...i(e,"error")}:null}l(M,"sanitizeHostedRunSummary");function i(t,e){let n=t[e];return typeof n=="string"||n===null?{[e]:n}:{}}l(i,"nullableStringProp");function C(t,e){let n=t[e];return typeof n=="boolean"||n===null?{[e]:n}:{}}l(C,"nullableBooleanProp");function O(t,e){let n=t[e];return typeof n=="number"||n===null?{[e]:n}:{}}l(O,"nullableNumberProp");function u(t,e){let n=t[e];if(!Array.isArray(n))return{};let s=n.filter(r=>typeof r=="string");return{[e]:s}}l(u,"stringArrayProp");function I(t){return typeof t=="string"&&t.trim()?t.trim():null}l(I,"stringField");function D(t,e){if(!b(t.handle,e.handle))return!1;let n=d(e.baseUrl);return n?d(t.baseUrl)===n:!d(t.baseUrl)}l(D,"accountMatchesSelector");function v(t,e,n={}){let s=d(e.baseUrl);if(s)return R(t,e.handle,s);let r=t.findIndex(a=>D(a,e));if(r!==-1)return r;let o=t.map((a,c)=>({account:a,index:c})).filter(({account:a})=>b(a.handle,e.handle));if(o.length>1&&n.requireUnambiguous)throw new Error(`multiple profiles found for ${e.handle}; pass --base-url to select one`);return o[0]?.index??-1}l(v,"findAccountIndexForSelector");function F(t){if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n={};return typeof e.token=="string"&&(n.token=e.token),(typeof e.appId=="string"||e.appId===null)&&(n.appId=e.appId),(typeof e.conversationId=="string"||e.conversationId===null)&&(n.conversationId=e.conversationId),Object.keys(n).length>0?n:void 0}l(F,"sanitizeSession");function Y(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,n=m(typeof e.handle=="string"?e.handle:void 0);if(!n)return null;let s={handle:n};typeof e.apiKey=="string"&&(s.apiKey=e.apiKey),typeof e.baseUrl=="string"&&(s.baseUrl=e.baseUrl),typeof e.apiBaseUrl=="string"&&(s.apiBaseUrl=e.apiBaseUrl),typeof e.chatApiBaseUrl=="string"&&(s.chatApiBaseUrl=e.chatApiBaseUrl),typeof e.environment=="string"&&(s.environment=e.environment);let r=F(e.session);return r&&(s.session=r),s}l(Y,"sanitizeAccount");function J(t){let e={};return typeof t.token=="string"&&(e.token=t.token),(typeof t.appId=="string"||t.appId===null)&&(e.appId=t.appId),(typeof t.conversationId=="string"||t.conversationId===null)&&(e.conversationId=t.conversationId),Object.keys(e).length>0?e:void 0}l(J,"extractLegacySession");function Q(t,e){let n={handle:e};typeof t.apiKey=="string"&&(n.apiKey=t.apiKey),typeof t.baseUrl=="string"&&(n.baseUrl=t.baseUrl),typeof t.apiBaseUrl=="string"&&(n.apiBaseUrl=t.apiBaseUrl),typeof t.chatApiBaseUrl=="string"&&(n.chatApiBaseUrl=t.chatApiBaseUrl);let s=J(t);return s&&(n.session=s),n}l(Q,"extractLegacyAccount");function L(t){let e={};typeof t.lspEnabled=="boolean"&&(e.lspEnabled=t.lspEnabled),(t.executionMode==="local"||t.executionMode==="hosted")&&(e.executionMode=t.executionMode),(t.mode==="general"||t.mode==="builder")&&(e.mode=t.mode);let n=x(t.openpondProfile);n&&(e.openpondProfile=n);let s=[],r=Array.isArray(t.accounts)?t.accounts:[];for(let f of r){let p=Y(f);p&&R(s,p.handle,p.baseUrl)===-1&&s.push(p)}if(s.length===0){let f=A(t.activeProfile)?.handle||P;s.push(Q(t,f))}let o=A(t.activeProfile),a=o?v(s,o):-1,c=s[a===-1?0:a];return e.accounts=s,e.activeProfile=U(c),e}l(L,"normalizeGlobalConfig");function V(t,e,n){let s=t.accounts??[],r=d(n??process.env.OPENPOND_BASE_URL),o=m(e);if(o)return r?{handle:o,baseUrl:r}:{handle:o};let a=m(process.env.OPENPOND_ACCOUNT);if(a)return r?{handle:a,baseUrl:r}:{handle:a};let c=A(t.activeProfile);return c?r?{handle:c.handle,baseUrl:r}:c:s[0]?U(s[0]):{handle:P}}l(V,"resolveRequestedProfile");function w(t,e,n){let s=d(n);if(s){let o=R(t,e,s);if(o!==-1)return t[o]}else{let o=t.filter(a=>b(a.handle,e));if(o.length>1)throw new Error(`multiple profiles found for ${e}; pass --base-url to select one`);if(o.length===1)return o[0]}let r={handle:e};return s&&(r.baseUrl=s),t.push(r),r}l(w,"ensureAccount");function q(t){t.session&&Object.keys(t.session).length===0&&delete t.session}l(q,"cleanupAccount");function W(t,e,n,s){let r=n===null||n===void 0&&s.undefinedDeletes;switch(e){case"apiKey":{if(r){delete t.apiKey;return}typeof n=="string"&&(t.apiKey=n);return}case"baseUrl":{if(r){delete t.baseUrl;return}typeof n=="string"&&(t.baseUrl=n);return}case"apiBaseUrl":{if(r){delete t.apiBaseUrl;return}typeof n=="string"&&(t.apiBaseUrl=n);return}case"chatApiBaseUrl":{if(r){delete t.chatApiBaseUrl;return}typeof n=="string"&&(t.chatApiBaseUrl=n);return}case"token":case"appId":case"conversationId":{if(t.session||(t.session={}),r){delete t.session[e],q(t);return}(typeof n=="string"||n===null)&&(t.session[e]=n),q(t);return}}}l(W,"applyScopedKey");function X(t,e,n){if(!H.some(f=>y(e,f)))return!1;let r=t.accounts??[],o=A(e.activeProfile)??V(t),a=d(y(e,"baseUrl")?e.baseUrl??null:o.baseUrl??process.env.OPENPOND_BASE_URL),c=w(r,o.handle,a);for(let f of H)y(e,f)&&W(c,f,e[f],n);return t.accounts=r,t.activeProfile=U(c),!0}l(X,"applyAccountPatch");function Z(t,e){if(y(e,"lspEnabled")&&(typeof e.lspEnabled=="boolean"?t.lspEnabled=e.lspEnabled:e.lspEnabled===null&&delete t.lspEnabled),y(e,"executionMode")&&(e.executionMode==="local"||e.executionMode==="hosted"?t.executionMode=e.executionMode:e.executionMode===null&&delete t.executionMode),y(e,"mode")&&(e.mode==="general"||e.mode==="builder"?t.mode=e.mode:e.mode===null&&delete t.mode),y(e,"activeProfile")){let n=A(e.activeProfile);if(n){let s=v(t.accounts??[],n);t.activeProfile=s===-1?n:U((t.accounts??[])[s])}else e.activeProfile===null&&delete t.activeProfile}if(y(e,"openpondProfile")){let n=x(e.openpondProfile);n?t.openpondProfile=n:e.openpondProfile===null&&delete t.openpondProfile}}l(Z,"applyTopLevelPatch");async function _(t){let e=B();return await S(e),await E(e,n=>{let s=L(n);return t(s),s})}l(_,"updateGlobalConfig");async function ee(){let t=B();return await S(t),L(await k(t))}l(ee,"loadGlobalConfig");async function G(){let t=await ee(),e=A(t.activeProfile);return(t.accounts??[]).map(n=>{let s=m(n.handle)??P;return{handle:s,baseUrl:d(n.baseUrl),apiBaseUrl:d(n.apiBaseUrl),chatApiBaseUrl:d(n.chatApiBaseUrl),environment:n.environment?.trim()||null,isActive:!!(e&&D({...n,handle:s},e)),hasApiKey:!!n.apiKey?.trim(),hasSessionToken:!!n.session?.token?.trim(),sessionAppId:n.session?.appId??null,sessionConversationId:n.session?.conversationId??null}})}l(G,"listConfiguredProfiles");async function se(t,e={}){let n=N(t),s=d(e.baseUrl),r=-1;await _(a=>{let c=a.accounts??[];if(r=v(c,s?{handle:n,baseUrl:s}:{handle:n},{requireUnambiguous:!0}),r===-1)throw new Error(`profile not found: ${n}`);a.activeProfile=U(c[r])});let o=await G();return o.find(a=>a.isActive)??o[r]}l(se,"setActiveProfile");async function re(t){let e=N(t.handle),n=$(t.apiKey),s=d(t.baseUrl),r=d(t.apiBaseUrl),o=d(t.chatApiBaseUrl),a={handle:e};await _(p=>{let g=p.accounts??[],h=w(g,e,s);h.apiKey=n,s&&(h.baseUrl=s),r?h.apiBaseUrl=r:t.apiBaseUrl===null&&delete h.apiBaseUrl,o?h.chatApiBaseUrl=o:t.chatApiBaseUrl===null&&delete h.chatApiBaseUrl,t.environment===null?delete h.environment:typeof t.environment=="string"&&t.environment.trim()&&(h.environment=t.environment.trim()),p.accounts=g,a=U(h),t.setActive!==!1&&(p.activeProfile=a)});let f=(await G()).find(p=>b(p.handle,a.handle)?s?d(p.baseUrl)===s:!0:!1);if(!f)throw new Error(`failed to save profile: ${e}`);return f}l(re,"saveProfileApiKey");async function ie(t){await _(e=>{Z(e,t),X(e,t,{undefinedDeletes:!1})})}l(ie,"saveGlobalConfig");export{_ as a,ee as b,G as c,se as d,re as e,ie as f};