openpond 0.2.59 → 0.2.60

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 (365) hide show
  1. package/README.md +27 -0
  2. package/dist/app-server.d.ts +7 -0
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/acp-ARBNMIPT.js +2 -0
  5. package/dist/chunks/acp-agent-53COYDHB.js +21 -0
  6. package/dist/chunks/{actions-command-JJ3CU7J6.js → actions-command-6YSZ7EJS.js} +1 -1
  7. package/dist/chunks/{app-layer-KAUZAHGE.js → app-layer-TVG7KTW6.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-SXGZOUJJ.js → app-server-connected-apps-K62M6LCT.js} +1 -1
  9. package/dist/chunks/{app-server-evaluations-N4OMTPCI.js → app-server-evaluations-RM6WXX3H.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-RLKMWOQ4.js +2 -0
  11. package/dist/chunks/app-server-runtime-OKMEHNEU.js +2 -0
  12. package/dist/chunks/apps-YWZL2H34.js +2 -0
  13. package/dist/chunks/{chunk-JUQMSHNR.js → chunk-23P2O7PH.js} +1 -1
  14. package/dist/chunks/{chunk-PF5R6CMP.js → chunk-2GICDASL.js} +1 -1
  15. package/dist/chunks/{chunk-6MI4KKWF.js → chunk-2ITZW2CN.js} +1 -1
  16. package/dist/chunks/chunk-2MMCZHKL.js +2 -0
  17. package/dist/chunks/{chunk-EOBHQ3JT.js → chunk-2PAJCXFC.js} +1 -1
  18. package/dist/chunks/{chunk-GYJQKCEO.js → chunk-2RNCXDJC.js} +1 -1
  19. package/dist/chunks/{chunk-APB2STJK.js → chunk-2SUMZ73C.js} +1 -1
  20. package/dist/chunks/{chunk-DZUN5YWB.js → chunk-3CWRTKHY.js} +1 -1
  21. package/dist/chunks/{chunk-TRQQNFMO.js → chunk-44LWH5U6.js} +1 -1
  22. package/dist/chunks/{chunk-BVQWVIGK.js → chunk-52KIORRX.js} +1 -1
  23. package/dist/chunks/{chunk-TG7P7BSV.js → chunk-5RHYSQZ5.js} +1 -1
  24. package/dist/chunks/{chunk-3QIB5FXI.js → chunk-5ZBLCWEJ.js} +1 -1
  25. package/dist/chunks/{chunk-25JDHAZ5.js → chunk-637UACKH.js} +1 -1
  26. package/dist/chunks/{chunk-VRODAXFS.js → chunk-655DQ6AX.js} +26 -26
  27. package/dist/chunks/{chunk-N4FFQPLR.js → chunk-6GWOVHIG.js} +1 -1
  28. package/dist/chunks/chunk-6HQB3MQO.js +2 -0
  29. package/dist/chunks/{chunk-GOPFFQZU.js → chunk-7LZISGTA.js} +2 -2
  30. package/dist/chunks/{chunk-MMQRHR3V.js → chunk-7RC5WPVT.js} +1 -1
  31. package/dist/chunks/{chunk-H6IW2R22.js → chunk-7YTHEMWI.js} +1 -1
  32. package/dist/chunks/{chunk-PCSIOUHF.js → chunk-A3L74U3W.js} +1 -1
  33. package/dist/chunks/{chunk-XMKCCLGB.js → chunk-A66CSUBJ.js} +1 -1
  34. package/dist/chunks/{chunk-OUVIWDL2.js → chunk-AGVOGPAZ.js} +1 -1
  35. package/dist/chunks/{chunk-U2MAPON2.js → chunk-AW5Q6NXT.js} +1 -1
  36. package/dist/chunks/{chunk-7AVNZF36.js → chunk-B46HZ3MX.js} +1 -1
  37. package/dist/chunks/{chunk-KGNCKIFP.js → chunk-BIPQCJ5V.js} +1 -1
  38. package/dist/chunks/{chunk-776WNDV2.js → chunk-BIQ33JV5.js} +1 -1
  39. package/dist/chunks/{chunk-JFXWI3EN.js → chunk-BK63OQRW.js} +1 -1
  40. package/dist/chunks/{chunk-BO5JZYWG.js → chunk-CFSIU6CW.js} +1 -1
  41. package/dist/chunks/{chunk-WC42WOLG.js → chunk-D3RRUWNN.js} +1 -1
  42. package/dist/chunks/{chunk-X4OSOOSU.js → chunk-D4UX2O45.js} +1 -1
  43. package/dist/chunks/{chunk-GJ2ZJFDD.js → chunk-DG4TYVPF.js} +1 -1
  44. package/dist/chunks/{chunk-QIKWJ2AA.js → chunk-DGIEXZJV.js} +1 -1
  45. package/dist/chunks/{chunk-JMBQYBPI.js → chunk-DIGX56JY.js} +1 -1
  46. package/dist/chunks/{chunk-4GPXTISD.js → chunk-DISNCX6R.js} +1 -1
  47. package/dist/chunks/{chunk-EWOSLZDX.js → chunk-DK7IKI7O.js} +1 -1
  48. package/dist/chunks/{chunk-74IIXVAE.js → chunk-DX7YEUNQ.js} +1 -1
  49. package/dist/chunks/{chunk-523TE4BI.js → chunk-E63VWAQA.js} +1 -1
  50. package/dist/chunks/{chunk-OLDK2LKJ.js → chunk-EL454L26.js} +1 -1
  51. package/dist/chunks/{chunk-WRI4XKSK.js → chunk-ENSB6ZTM.js} +1 -1
  52. package/dist/chunks/{chunk-EAPFMACH.js → chunk-ERJV5BMC.js} +1 -1
  53. package/dist/chunks/{chunk-RNIAFXMB.js → chunk-EXJGCNRS.js} +1 -1
  54. package/dist/chunks/chunk-F5KCCDQM.js +2 -0
  55. package/dist/chunks/{chunk-57TRXBLT.js → chunk-FSQWAANK.js} +1 -1
  56. package/dist/chunks/{chunk-BGJYITVI.js → chunk-G5B3PB5X.js} +1 -1
  57. package/dist/chunks/{chunk-ARLOVWQ3.js → chunk-GAWGIJQG.js} +1 -1
  58. package/dist/chunks/{chunk-ABZ2ZOLU.js → chunk-GGGF5NHJ.js} +1 -1
  59. package/dist/chunks/{chunk-4EDIRCD3.js → chunk-GOYBYYPQ.js} +1 -1
  60. package/dist/chunks/{chunk-H7ATCPPB.js → chunk-H3BSIAQO.js} +1 -1
  61. package/dist/chunks/{chunk-RBZH6A6M.js → chunk-HCEJAOIF.js} +1 -1
  62. package/dist/chunks/{chunk-OPNRWESL.js → chunk-IFQCOSU6.js} +1 -1
  63. package/dist/chunks/{chunk-VGRMAGOK.js → chunk-IJHZBHEK.js} +2 -2
  64. package/dist/chunks/{chunk-GUOLMLZN.js → chunk-ISFIDCIH.js} +1 -1
  65. package/dist/chunks/{chunk-PY6K2JRH.js → chunk-ITKTILKI.js} +1 -1
  66. package/dist/chunks/{chunk-3CDEBKSU.js → chunk-IUBARBGI.js} +1 -1
  67. package/dist/chunks/{chunk-2L5XWJJ5.js → chunk-J24I74EM.js} +1 -1
  68. package/dist/chunks/{chunk-IRV6GWGG.js → chunk-J7QGHA7G.js} +3 -3
  69. package/dist/chunks/{chunk-FAYASU7Z.js → chunk-JGWINTT5.js} +1 -1
  70. package/dist/chunks/{chunk-GL3NX3F3.js → chunk-JHEFWB6O.js} +1 -1
  71. package/dist/chunks/{chunk-V34H7Y2T.js → chunk-JHMS2WXM.js} +2 -2
  72. package/dist/chunks/{chunk-PSGGOZFM.js → chunk-JHR3LF2F.js} +1 -1
  73. package/dist/chunks/{chunk-O4VIXU7A.js → chunk-KGLJU66U.js} +3 -3
  74. package/dist/chunks/{chunk-XEOEKFG6.js → chunk-KJFRCVQC.js} +1 -1
  75. package/dist/chunks/chunk-KNO355LC.js +2 -0
  76. package/dist/chunks/{chunk-BQS7Z4AP.js → chunk-LD7PGREF.js} +2 -2
  77. package/dist/chunks/{chunk-MNC4YUDI.js → chunk-LHA7RQBA.js} +1 -1
  78. package/dist/chunks/{chunk-RZUEVS64.js → chunk-LO3O45IX.js} +1 -1
  79. package/dist/chunks/{chunk-TIHXUKFD.js → chunk-M2SKXY5C.js} +2 -2
  80. package/dist/chunks/{chunk-2IHO4GDJ.js → chunk-M3ZQDPRS.js} +1 -1
  81. package/dist/chunks/{chunk-DPHAN6N3.js → chunk-M4ZF44H5.js} +1 -1
  82. package/dist/chunks/{chunk-Y4OWBBDD.js → chunk-M55H7KVR.js} +1 -1
  83. package/dist/chunks/{chunk-NTB2O4RP.js → chunk-MGKMIRYG.js} +1 -1
  84. package/dist/chunks/{chunk-XJZSIXEO.js → chunk-MJGU2JJ2.js} +2 -2
  85. package/dist/chunks/{chunk-7K7O3CKY.js → chunk-MS37ISA4.js} +2 -2
  86. package/dist/chunks/{chunk-BRORSFJX.js → chunk-NCKXI2VB.js} +11 -11
  87. package/dist/chunks/chunk-NHUUCNAD.js +2 -0
  88. package/dist/chunks/{chunk-2WKUBGIF.js → chunk-O3VP46SE.js} +1 -1
  89. package/dist/chunks/{chunk-EUMXMT3S.js → chunk-O4FBOUNX.js} +1 -1
  90. package/dist/chunks/chunk-O6IFVTZT.js +9 -0
  91. package/dist/chunks/{chunk-ZH3K7LKQ.js → chunk-O7B44IYN.js} +1 -1
  92. package/dist/chunks/{chunk-ZAN4DYLH.js → chunk-OGMDEA3Y.js} +1 -1
  93. package/dist/chunks/{chunk-BL3YH2QU.js → chunk-OKBIWRHC.js} +1 -1
  94. package/dist/chunks/{chunk-FFRFSDBM.js → chunk-ON2RNOCG.js} +1 -1
  95. package/dist/chunks/{chunk-76M2MEHV.js → chunk-ONDCV5QC.js} +1 -1
  96. package/dist/chunks/{chunk-UCPGRPWY.js → chunk-OQ4VGCRG.js} +1 -1
  97. package/dist/chunks/{chunk-GVZLGS2U.js → chunk-OWK7HU5I.js} +1 -1
  98. package/dist/chunks/{chunk-JQKSXCAJ.js → chunk-OY5HC2P6.js} +1 -1
  99. package/dist/chunks/{chunk-T5AACNJI.js → chunk-P7HRF4FM.js} +1 -1
  100. package/dist/chunks/{chunk-7ED24PP6.js → chunk-PCNLC5H3.js} +1 -1
  101. package/dist/chunks/{chunk-ES2ISFJC.js → chunk-PF56N7ZY.js} +1 -1
  102. package/dist/chunks/{chunk-OX3XZKGK.js → chunk-PKALOVHC.js} +2 -2
  103. package/dist/chunks/{chunk-ZCHXGRRU.js → chunk-PR5TYTY4.js} +1 -1
  104. package/dist/chunks/{chunk-Q4TBTRIG.js → chunk-PWK5Z5S3.js} +1 -1
  105. package/dist/chunks/chunk-PXS4SVQG.js +16 -0
  106. package/dist/chunks/{chunk-AY64VY4E.js → chunk-QGOPYQW3.js} +1 -1
  107. package/dist/chunks/{chunk-LPWBIGKW.js → chunk-R7YEURUQ.js} +1 -1
  108. package/dist/chunks/{chunk-ACYFMLWG.js → chunk-RCA6NGVA.js} +2 -2
  109. package/dist/chunks/{chunk-DUURYZOI.js → chunk-RG3NH6YQ.js} +1 -1
  110. package/dist/chunks/{chunk-ATAOHSFR.js → chunk-RJIUOLWY.js} +1 -1
  111. package/dist/chunks/{chunk-37MWETFU.js → chunk-RXE3FYMJ.js} +1 -1
  112. package/dist/chunks/chunk-RYGWCN2R.js +2 -0
  113. package/dist/chunks/{chunk-VYLGI3IH.js → chunk-SFNCAPCJ.js} +1 -1
  114. package/dist/chunks/{chunk-Z4Z5UOZM.js → chunk-SG6JZ7HD.js} +1 -1
  115. package/dist/chunks/{chunk-IFDALGZE.js → chunk-SKRNWRKV.js} +5 -5
  116. package/dist/chunks/{chunk-ANFDRKUU.js → chunk-SLZH4Z6C.js} +1 -1
  117. package/dist/chunks/{chunk-WN3V6KDN.js → chunk-SPDSSMFD.js} +1 -1
  118. package/dist/chunks/{chunk-EQOV34UH.js → chunk-STWRTNRK.js} +1 -1
  119. package/dist/chunks/{chunk-XMWXH7TS.js → chunk-T5J7HIHR.js} +1 -1
  120. package/dist/chunks/{chunk-E72UU4VX.js → chunk-TBUAQWFS.js} +1 -1
  121. package/dist/chunks/{chunk-ZUJ3XUCP.js → chunk-TEPRCBDV.js} +1 -1
  122. package/dist/chunks/{chunk-2G4BEISF.js → chunk-TOFMA2L5.js} +2 -2
  123. package/dist/chunks/{chunk-TKLBP3MM.js → chunk-UFHLLSCE.js} +1 -1
  124. package/dist/chunks/{chunk-BE6SS65L.js → chunk-UJKQLO6B.js} +2 -2
  125. package/dist/chunks/{chunk-O3RF72BT.js → chunk-UZQNFTLR.js} +1 -1
  126. package/dist/chunks/{chunk-F74GBN6K.js → chunk-V2HMWCT6.js} +1 -1
  127. package/dist/chunks/{chunk-6ZFPQYHG.js → chunk-V4KT5FCJ.js} +1 -1
  128. package/dist/chunks/{chunk-TVQAPBLZ.js → chunk-VHSX3JPX.js} +1 -1
  129. package/dist/chunks/{chunk-22VMH6JV.js → chunk-W2SXOGTQ.js} +1 -1
  130. package/dist/chunks/{chunk-PH6IORGZ.js → chunk-WDEO44UN.js} +1 -1
  131. package/dist/chunks/{chunk-LNCHFVHT.js → chunk-WEHBK3MC.js} +1 -1
  132. package/dist/chunks/{chunk-KO3HNMLJ.js → chunk-WGX7WY4N.js} +1 -1
  133. package/dist/chunks/{chunk-CKMSBAI2.js → chunk-WHREO7A2.js} +1 -1
  134. package/dist/chunks/{chunk-N6ENLEMY.js → chunk-WS2ZZBAQ.js} +3 -3
  135. package/dist/chunks/{chunk-DIO5CB6U.js → chunk-WYZWDMMF.js} +1 -1
  136. package/dist/chunks/{chunk-MQULU465.js → chunk-XO3H32KX.js} +1 -1
  137. package/dist/chunks/{chunk-FKJHEZCW.js → chunk-XQBIHPPX.js} +1 -1
  138. package/dist/chunks/chunk-XRKFTPHD.js +2 -0
  139. package/dist/chunks/{chunk-YHHF4Q7Y.js → chunk-XSCIOQYE.js} +1 -1
  140. package/dist/chunks/{chunk-COHMDT7A.js → chunk-XTWEWYK7.js} +7 -7
  141. package/dist/chunks/{chunk-AQD7K4Z5.js → chunk-Y3GIM6WK.js} +1 -1
  142. package/dist/chunks/{chunk-74ZXXBGN.js → chunk-Y54RKLOI.js} +1 -1
  143. package/dist/chunks/{chunk-C37PUHA6.js → chunk-Y777GISF.js} +1 -1
  144. package/dist/chunks/{chunk-PFSMXKTI.js → chunk-YDU3S6UT.js} +1 -1
  145. package/dist/chunks/{chunk-UGL7WF3W.js → chunk-YOZIZYSC.js} +1 -1
  146. package/dist/chunks/{chunk-OSIO7PLX.js → chunk-YQKOB56U.js} +1 -1
  147. package/dist/chunks/chunk-YVNDDNMK.js +3 -0
  148. package/dist/chunks/{chunk-U5FKRYJO.js → chunk-ZAZKJJOT.js} +1 -1
  149. package/dist/chunks/{chunk-2RNQQNB7.js → chunk-ZR7LIMJS.js} +1 -1
  150. package/dist/chunks/{chunk-PQJTYOR2.js → chunk-ZTJOOY2F.js} +1 -1
  151. package/dist/chunks/{chunk-GPVCOEUH.js → chunk-ZTVXRZ6D.js} +1 -1
  152. package/dist/chunks/cli-CNYNXKGQ.js +2 -0
  153. package/dist/chunks/configuration-command-5K7EE2J5.js +2 -0
  154. package/dist/chunks/connected-app-executor-E25XCNAS.js +2 -0
  155. package/dist/chunks/connected-evidence-QNSO5BTF.js +2 -0
  156. package/dist/chunks/connection-Y2KCMBYD.js +2 -0
  157. package/dist/chunks/{continual-WFPIDWPH.js → continual-SOO3QBNQ.js} +1 -1
  158. package/dist/chunks/core-commands-ZTWPYAFQ.js +2 -0
  159. package/dist/chunks/datasets-XPUMWGOC.js +2 -0
  160. package/dist/chunks/desktop-test-HVSW4JHY.js +3 -0
  161. package/dist/chunks/dist-4N6AHWNN.js +2 -0
  162. package/dist/chunks/{dist-OMGUJYPD.js → dist-N6R6VNFD.js} +1 -1
  163. package/dist/chunks/{dist-OGLX76LL.js → dist-QN7WKZ2D.js} +1 -1
  164. package/dist/chunks/{enclave-QS4BUNDU.js → enclave-VURYNILU.js} +1 -1
  165. package/dist/chunks/evaluation-coordination-AOTFPVMS.js +2 -0
  166. package/dist/chunks/experiment-improvements-75CN3VI7.js +2 -0
  167. package/dist/chunks/experiments-AGAHM2AK.js +2 -0
  168. package/dist/chunks/{experiments-VFQGE4HC.js → experiments-DYSHYBGB.js} +1 -1
  169. package/dist/chunks/{extension-JCUA3RWV.js → extension-UT4CSDJF.js} +1 -1
  170. package/dist/chunks/help-KU52CFMW.js +8 -0
  171. package/dist/chunks/host-profile-evaluation-tools-LZDMQCMT.js +2 -0
  172. package/dist/chunks/host-profile-external-dataset-VK3NJHMC.js +2 -0
  173. package/dist/chunks/hosted-app-server-composition-P7V7K7CG.js +2 -0
  174. package/dist/chunks/{hosted-experiment-improvement-42YWXB3P.js → hosted-experiment-improvement-P433KDX2.js} +1 -1
  175. package/dist/chunks/hosted-harness-runtime-Y4DONWPC.js +2 -0
  176. package/dist/chunks/{hosted-profile-candidate-HVVC43XQ.js → hosted-profile-candidate-72MMPN6U.js} +1 -1
  177. package/dist/chunks/hosted-profile-compiler-RXHLK224.js +2 -0
  178. package/dist/chunks/hosted-profile-evaluation-control-LS4DCSDO.js +2 -0
  179. package/dist/chunks/{hosted-profile-evaluation-inspection-BUWLCKCD.js → hosted-profile-evaluation-inspection-3Q6EHO66.js} +1 -1
  180. package/dist/chunks/{hosted-profile-evaluation-preparation-3XLRR6UH.js → hosted-profile-evaluation-preparation-ZD27HNLF.js} +1 -1
  181. package/dist/chunks/{hosted-tasksets-THKM5QY5.js → hosted-tasksets-V2PQZJN4.js} +1 -1
  182. package/dist/chunks/human-review-4FJFINQX.js +2 -0
  183. package/dist/chunks/{import-CBDJ4DME.js → import-GBHSLA3G.js} +1 -1
  184. package/dist/chunks/{learning-ACEVFL5M.js → learning-U3FZL5YB.js} +1 -1
  185. package/dist/chunks/local-harness-improvement-runtime-UP2P7UT4.js +2 -0
  186. package/dist/chunks/local-harness-taskset-review-ZNOKSPJJ.js +2 -0
  187. package/dist/chunks/{local-scope-HVF2GZ5W.js → local-scope-62GWHDXS.js} +1 -1
  188. package/dist/chunks/{model-projects-QPO22JPA.js → model-projects-LQ4C6R3X.js} +1 -1
  189. package/dist/chunks/opchat-Q4PIWPYW.js +3 -0
  190. package/dist/chunks/organizations-TEH6HBQ3.js +2 -0
  191. package/dist/chunks/{profile-Y2MCSOUK.js → profile-SWPVCGTR.js} +1 -1
  192. package/dist/chunks/{profile-training-source-6GOT7AHM.js → profile-training-source-J73ZLNSC.js} +1 -1
  193. package/dist/chunks/project-action-payload-OU3ZPHW7.js +2 -0
  194. package/dist/chunks/project-agent-J7ILCRBS.js +2 -0
  195. package/dist/chunks/{published-experiment-source-5TMGLKDM.js → published-experiment-source-HVHKSYDL.js} +1 -1
  196. package/dist/chunks/refiner-profile-service-E7YU4E3N.js +2 -0
  197. package/dist/chunks/{runtime-QFXCXSVB.js → runtime-LIPHPKKJ.js} +2 -2
  198. package/dist/chunks/sandbox-command-G6KID3OP.js +2 -0
  199. package/dist/chunks/{sandbox-template-XWWPWWNR.js → sandbox-template-MZTMAUFS.js} +1 -1
  200. package/dist/chunks/saved-work-LOUWLF37.js +2 -0
  201. package/dist/chunks/{send-turn-SIXOZUVJ.js → send-turn-UEUEGY5W.js} +1 -1
  202. package/dist/chunks/{src-EZAKCCUV.js → src-7WMZOWZZ.js} +102 -95
  203. package/dist/chunks/{src-6SHCCYEN.js → src-MVAK6D6Y.js} +1 -1
  204. package/dist/chunks/standalone-experiment-turn-owner-YRKEOEJ2.js +2 -0
  205. package/dist/chunks/{store-continual-support-reviews-GDX6CSUU.js → store-continual-support-reviews-FJLLNKCY.js} +1 -1
  206. package/dist/chunks/{store-conversation-serving-W55XMDH4.js → store-conversation-serving-4KWR4IZY.js} +1 -1
  207. package/dist/chunks/{store-create-improve-A7E7CUPZ.js → store-create-improve-JWBJZRAU.js} +1 -1
  208. package/dist/chunks/{store-datasets-HKF3EO7B.js → store-datasets-4N2M6Y3K.js} +2 -2
  209. package/dist/chunks/{store-evaluation-results-645RFBGR.js → store-evaluation-results-OBM4623U.js} +1 -1
  210. package/dist/chunks/{store-harness-memory-VINCZ4GK.js → store-harness-memory-4HUEMRCD.js} +1 -1
  211. package/dist/chunks/{store-harness-refinement-candidates-EA5KFQPH.js → store-harness-refinement-candidates-NMRWMN23.js} +1 -1
  212. package/dist/chunks/store-harness-workspaces-BGONIQDY.js +2 -0
  213. package/dist/chunks/{store-human-review-F5KESW52.js → store-human-review-J75SIZAL.js} +1 -1
  214. package/dist/chunks/store-learned-preference-migration-validation-VLASM4CT.js +2 -0
  215. package/dist/chunks/store-learning-TUCQFBLT.js +2 -0
  216. package/dist/chunks/{store-learning-credentials-WZQJ4HPJ.js → store-learning-credentials-S4RF57NV.js} +1 -1
  217. package/dist/chunks/{store-local-experiments-HWQWNTIU.js → store-local-experiments-LULRLTII.js} +5 -5
  218. package/dist/chunks/{store-model-batch-review-TOCSDVAP.js → store-model-batch-review-SVL4MT6D.js} +1 -1
  219. package/dist/chunks/{store-model-configuration-6543ASY2.js → store-model-configuration-ZHDSM3XM.js} +2 -2
  220. package/dist/chunks/{store-preference-comparison-LV32MHVL.js → store-preference-comparison-YMMCKXS5.js} +1 -1
  221. package/dist/chunks/{store-schedules-VGTEQVKH.js → store-schedules-6Z4QS3NU.js} +1 -1
  222. package/dist/chunks/{store-sidebar-file-bookmarks-53B7QIGS.js → store-sidebar-file-bookmarks-MX6EP6OB.js} +2 -2
  223. package/dist/chunks/{store-sidebar-preferences-YXGEJVUO.js → store-sidebar-preferences-VYREPW26.js} +1 -1
  224. package/dist/chunks/{store-subagents-HRCAK7VZ.js → store-subagents-WGBCRALX.js} +1 -1
  225. package/dist/chunks/{store-task-inbox-WF74W4U2.js → store-task-inbox-43BNZSB7.js} +6 -6
  226. package/dist/chunks/{store-task-inventory-KHCTEZVK.js → store-task-inventory-AEW4POAJ.js} +2 -2
  227. package/dist/chunks/{store-taskset-drafts-3ACG5AVX.js → store-taskset-drafts-DKFO2CYB.js} +1 -1
  228. package/dist/chunks/{store-training-R46WOGXB.js → store-training-6PFFR6ST.js} +1 -1
  229. package/dist/chunks/{store-training-jobs-D4LECE7O.js → store-training-jobs-ANDEBQ67.js} +2 -2
  230. package/dist/chunks/{store-training-models-EQVNXOVB.js → store-training-models-OOI4ZJPX.js} +2 -2
  231. package/dist/chunks/{store-usage-IE2U2FD3.js → store-usage-U72RNW64.js} +1 -1
  232. package/dist/chunks/{store-work-evidence-QQDKM5AQ.js → store-work-evidence-NY5OBATB.js} +1 -1
  233. package/dist/chunks/{taskset-NR2X2UOK.js → taskset-SL3YOXW7.js} +1 -1
  234. package/dist/chunks/{taskset-packages-ONULEIVI.js → taskset-packages-3PCEYYDA.js} +1 -1
  235. package/dist/chunks/{teams-bot-CHUYMD6K.js → teams-bot-IDEF3BMI.js} +1 -1
  236. package/dist/chunks/{training-IDSGYGU2.js → training-57ISIC7U.js} +1 -1
  237. package/dist/chunks/web-search-222Y63QW.js +2 -0
  238. package/dist/chunks/{workspaces-2TJRDM5K.js → workspaces-5DF4H5EX.js} +1 -1
  239. package/dist/cli.js +1 -1
  240. package/dist/index.js +1 -1
  241. package/dist/sandbox-template/manifest.js +1 -1
  242. package/dist/web/assets/{App-CaRMZoxo.css → App-DbYvV_W6.css} +1 -1
  243. package/dist/web/assets/{App-pcwmC4IR.js → App-nzE7JU_O.js} +4 -4
  244. package/dist/web/assets/{AppDialog-CdHad7GT.js → AppDialog-VtNvqbDm.js} +1 -1
  245. package/dist/web/assets/{AppTerminalPanel-CrmoOgd4.js → AppTerminalPanel-BMfKdrrN.js} +2 -2
  246. package/dist/web/assets/{AppsView-0P6cBsD4.js → AppsView-CdWyrDEb.js} +1 -1
  247. package/dist/web/assets/{BrowserSidebar-Cb6edJw6.js → BrowserSidebar-CtOIciOa.js} +1 -1
  248. package/dist/web/assets/{CartesianChart-B2Sxi0lv.js → CartesianChart-u1lvLM30.js} +1 -1
  249. package/dist/web/assets/{CollaborationTabs-PP0AIXhb.js → CollaborationTabs-CaBfDYRW.js} +1 -1
  250. package/dist/web/assets/{CommandMenu-GfQIMe6W.js → CommandMenu-CFW3WJ11.js} +1 -1
  251. package/dist/web/assets/{CommunityView-V6KmMl5n.js → CommunityView-D2EjaeuH.js} +1 -1
  252. package/dist/web/assets/{ComposerCreateImproveStrip-oeVeyhPX.js → ComposerCreateImproveStrip-6wYSJdzv.js} +1 -1
  253. package/dist/web/assets/{ConversationImportsSettings-CuQcvVgE.js → ConversationImportsSettings-BJ4QhF7p.js} +1 -1
  254. package/dist/web/assets/{GetStartedView-2oZ068h_.js → GetStartedView-DBcOwIJn.js} +1 -1
  255. package/dist/web/assets/{HostedModelLearningReview-DLzak_Vf.js → HostedModelLearningReview-BNpK6_W9.js} +1 -1
  256. package/dist/web/assets/{HostedModelLearningSettings-Eca6Pd9R.js → HostedModelLearningSettings-SrsdeeoA.js} +1 -1
  257. package/dist/web/assets/{LabModelVersionDetailPage-DsBblnMp.js → LabModelVersionDetailPage-Cd6bRHt9.js} +1 -1
  258. package/dist/web/assets/{LabSkillSidebar-DDknttrB.js → LabSkillSidebar-CQfvel4w.js} +1 -1
  259. package/dist/web/assets/{LabsRoute-CgNiUHsy.js → LabsRoute-sXLJt1KR.js} +4 -4
  260. package/dist/web/assets/{MainChatThread-yCVg99LU.js → MainChatThread-dlDDK2JM.js} +2 -2
  261. package/dist/web/assets/{MainPane-C86le7UF.js → MainPane-DCz38-qy.js} +4 -4
  262. package/dist/web/assets/{MarkdownText-BBVriBCj.js → MarkdownText-Drjq6-JM.js} +1 -1
  263. package/dist/web/assets/{NativeSkillSidebar-D2uVZkqh.js → NativeSkillSidebar-jncZijt-.js} +1 -1
  264. package/dist/web/assets/{NewExperienceSwitcher-DuD6GScJ.js → NewExperienceSwitcher-DXKzoMaM.js} +1 -1
  265. package/dist/web/assets/{NewProjectDialog-B6XZkJrU.js → NewProjectDialog-DIyjAxJG.js} +1 -1
  266. package/dist/web/assets/{OutputsPage-PUlmcWjv.js → OutputsPage-Dy1cNr3n.js} +1 -1
  267. package/dist/web/assets/{ProjectsPage-DWBRmej6.js → ProjectsPage-D2EeybIv.js} +1 -1
  268. package/dist/web/assets/{RightChatPanelStack-HaCVep4t.js → RightChatPanelStack-4wUL-W9_.js} +1 -1
  269. package/dist/web/assets/{RightSidebarHomePanel-BUtdPb2L.js → RightSidebarHomePanel-Bd_AHUp8.js} +1 -1
  270. package/dist/web/assets/{ScheduledWorkPage-Dg9GkGrT.js → ScheduledWorkPage-BJkSzwz2.js} +1 -1
  271. package/dist/web/assets/{SettingsView-DtldfnV-.js → SettingsView-BhcP72KH.js} +3 -3
  272. package/dist/web/assets/{TeamChatView-C71JX4je.js → TeamChatView-CR0fdicZ.js} +1 -1
  273. package/dist/web/assets/{TerminalOverlay-B4F6Q36s.js → TerminalOverlay-DGrZRZ_3.js} +10 -10
  274. package/dist/web/assets/{TrainingCreationPanel-B9MxFzQx.js → TrainingCreationPanel-BsTG7aFS.js} +1 -1
  275. package/dist/web/assets/{TrainingDraftPanel-7C48sHfC.js → TrainingDraftPanel-ByErrht7.js} +1 -1
  276. package/dist/web/assets/{UsageSettingsSection-CC57FcUB.js → UsageSettingsSection-DeYTJbcM.js} +1 -1
  277. package/dist/web/assets/{WorkSidebarPanel-Cto1usLM.js → WorkSidebarPanel-DcNvEEoy.js} +1 -1
  278. package/dist/web/assets/{WorkspaceDiffPanel-CL7wi3kp.js → WorkspaceDiffPanel-CdPRcYWN.js} +3 -3
  279. package/dist/web/assets/{WorkspaceEnvironmentMenu-zdzSDofs.js → WorkspaceEnvironmentMenu-xUYg-iGn.js} +1 -1
  280. package/dist/web/assets/{WorkspaceGitDialogs-CZSmjnrc.js → WorkspaceGitDialogs-CBViLL3S.js} +1 -1
  281. package/dist/web/assets/{WorkspaceMonacoEditor-TrUDJMKb.js → WorkspaceMonacoEditor-frxie2_S.js} +3 -3
  282. package/dist/web/assets/{agent-connections-4Dza2mDg.js → agent-connections-D7ao-vbU.js} +1 -1
  283. package/dist/web/assets/{arrow-up-right-xKb5kWQJ.js → arrow-up-right-DCWPxdbD.js} +1 -1
  284. package/dist/web/assets/{chunk-P3BRSSRD-BsGTkgyC.js → chunk-P3BRSSRD-B5JXa0Nh.js} +1 -1
  285. package/dist/web/assets/{clipboard-BgjV3aCx.js → clipboard-B-GnMVLp.js} +1 -1
  286. package/dist/web/assets/{cloud-upload-Bw9XUsKQ.js → cloud-upload-DpaGFZ9J.js} +1 -1
  287. package/dist/web/assets/{cssMode-DxsFJGb-.js → cssMode-DJHE7R3W.js} +1 -1
  288. package/dist/web/assets/{folder-open-CbmUjIYS.js → folder-open-B-DFLDFH.js} +1 -1
  289. package/dist/web/assets/{folder-plus-slsst7Ct.js → folder-plus-CPXxPvSH.js} +1 -1
  290. package/dist/web/assets/{git-commit-horizontal-BIS-8MuS.js → git-commit-horizontal-DCTzcivA.js} +1 -1
  291. package/dist/web/assets/{htmlMode-BE4VOrZo.js → htmlMode-DxZVBAYd.js} +1 -1
  292. package/dist/web/assets/index-BojtIRzO.css +1 -0
  293. package/dist/web/assets/{index-DEg0S7Qk.js → index-Di1MU6Xr.js} +2 -2
  294. package/dist/web/assets/{info-5bL9xSSf.js → info-BMxsR_bn.js} +1 -1
  295. package/dist/web/assets/{jsonMode-CYimnBhD.js → jsonMode-CzWoMkpp.js} +1 -1
  296. package/dist/web/assets/{lspLanguageFeatures-CiFuk-P7.js → lspLanguageFeatures-15K7ND6Q.js} +1 -1
  297. package/dist/web/assets/{minimize-2-BGVWKvTg.js → minimize-2-DwUgqXoR.js} +1 -1
  298. package/dist/web/assets/{monaco.contribution-DkLVGT8N.js → monaco.contribution-BBLKjER5.js} +2 -2
  299. package/dist/web/assets/{monaco.contribution-BTY4dJ0f.js → monaco.contribution-DBjvSu8p.js} +2 -2
  300. package/dist/web/assets/{monaco.contribution-DUE3CQph.js → monaco.contribution-DUWvjhIG.js} +2 -2
  301. package/dist/web/assets/{monaco.contribution-C7sMrcos.js → monaco.contribution-w0zfkYLX.js} +2 -2
  302. package/dist/web/assets/{monitor-B5hx_tzp.js → monitor-Ihu5LVYx.js} +1 -1
  303. package/dist/web/assets/{play-pmSO95Qg.js → play-D_YGCdxU.js} +1 -1
  304. package/dist/web/assets/{python-CiZvL3LX.js → python-Q4OuoXYc.js} +1 -1
  305. package/dist/web/assets/{save-CvYL4DUg.js → save-DJYUOhtD.js} +1 -1
  306. package/dist/web/assets/{square-DT_uFOml.js → square-DXtoCBNw.js} +1 -1
  307. package/dist/web/assets/{toggleHighContrast-CrE1_HY0.js → toggleHighContrast-CaNeuWVE.js} +1 -1
  308. package/dist/web/assets/{tsMode-CI_PdZmj.js → tsMode-CJnQ2wmM.js} +1 -1
  309. package/dist/web/assets/{upload-PVi8vC3T.js → upload-fCP3_OEO.js} +1 -1
  310. package/dist/web/assets/{useLocalAgentSchedules-BHJNVf42.js → useLocalAgentSchedules-BFoH_gwZ.js} +1 -1
  311. package/dist/web/assets/{useProviderSettings-CU3zXyie.js → useProviderSettings-2eysgqiA.js} +1 -1
  312. package/dist/web/assets/{useSessionTurnCache-BE7cipLX.js → useSessionTurnCache-DLF5SPD-.js} +1 -1
  313. package/dist/web/assets/{wifi-off-7WiFuOhD.js → wifi-off-DZoiFrRz.js} +1 -1
  314. package/dist/web/assets/{workers-Cv8r4CvM.js → workers-D5nr74M-.js} +1 -1
  315. package/dist/web/assets/{yaml-Bj7mdkV2.js → yaml-CwsoTJmk.js} +1 -1
  316. package/dist/web/index.html +2 -2
  317. package/docs/command-reference.md +12 -0
  318. package/package.json +1 -1
  319. package/dist/chunks/app-server-harness-services-DDFUMNYC.js +0 -2
  320. package/dist/chunks/app-server-runtime-SVB6L26M.js +0 -2
  321. package/dist/chunks/apps-EZB56RHV.js +0 -2
  322. package/dist/chunks/chunk-7UH4YDA7.js +0 -3
  323. package/dist/chunks/chunk-CGWA54LE.js +0 -2
  324. package/dist/chunks/chunk-K44RHALX.js +0 -2
  325. package/dist/chunks/chunk-MFMYWZK2.js +0 -2
  326. package/dist/chunks/chunk-P2RSBSCT.js +0 -2
  327. package/dist/chunks/chunk-QDC4OW3S.js +0 -2
  328. package/dist/chunks/chunk-SF5HJ7PL.js +0 -16
  329. package/dist/chunks/chunk-YBT2NB32.js +0 -2
  330. package/dist/chunks/chunk-YCQSVHCD.js +0 -9
  331. package/dist/chunks/cli-5DFVQL5Y.js +0 -2
  332. package/dist/chunks/configuration-command-JS6U3RMC.js +0 -2
  333. package/dist/chunks/connected-app-executor-UBMGMV76.js +0 -2
  334. package/dist/chunks/connected-evidence-NLAIEVQ3.js +0 -2
  335. package/dist/chunks/connection-NZSD3U5O.js +0 -2
  336. package/dist/chunks/core-commands-U4IBRRY5.js +0 -2
  337. package/dist/chunks/datasets-UX47DTTB.js +0 -2
  338. package/dist/chunks/desktop-test-UUU7PD4P.js +0 -3
  339. package/dist/chunks/dist-W5MJYSPF.js +0 -2
  340. package/dist/chunks/evaluation-coordination-3YQN5JQW.js +0 -2
  341. package/dist/chunks/experiment-improvements-ZRVD2AGY.js +0 -2
  342. package/dist/chunks/experiments-JEB5A2N5.js +0 -2
  343. package/dist/chunks/help-KA4OINP5.js +0 -8
  344. package/dist/chunks/host-profile-evaluation-tools-2URLU5SG.js +0 -2
  345. package/dist/chunks/host-profile-external-dataset-B2AQNSDR.js +0 -2
  346. package/dist/chunks/hosted-app-server-composition-VJQ3FM4I.js +0 -2
  347. package/dist/chunks/hosted-harness-runtime-BM4WONJN.js +0 -2
  348. package/dist/chunks/hosted-profile-compiler-RKDWHYK3.js +0 -2
  349. package/dist/chunks/hosted-profile-evaluation-control-57V24UGU.js +0 -2
  350. package/dist/chunks/human-review-CSYAW4PC.js +0 -2
  351. package/dist/chunks/local-harness-improvement-runtime-3T6E7I5Q.js +0 -2
  352. package/dist/chunks/local-harness-taskset-review-LQPQBALH.js +0 -2
  353. package/dist/chunks/opchat-6ADSONAD.js +0 -3
  354. package/dist/chunks/organizations-GT24ZTCN.js +0 -2
  355. package/dist/chunks/project-action-payload-GHSLE7K3.js +0 -2
  356. package/dist/chunks/project-agent-YYSQIHVE.js +0 -2
  357. package/dist/chunks/refiner-profile-service-ZK7KAFP5.js +0 -2
  358. package/dist/chunks/sandbox-command-U6346TVJ.js +0 -2
  359. package/dist/chunks/saved-work-SWHZ4OLO.js +0 -2
  360. package/dist/chunks/standalone-experiment-turn-owner-LIAQWTGI.js +0 -2
  361. package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +0 -2
  362. package/dist/chunks/store-learned-preference-migration-validation-V27XD4I7.js +0 -2
  363. package/dist/chunks/store-learning-WLG6KFIO.js +0 -2
  364. package/dist/chunks/web-search-BPON7H5N.js +0 -2
  365. package/dist/web/assets/index-erq7hUne.css +0 -1
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as p,b as g,c as R,f as k,g as S,m as d}from"./chunk-GJ2ZJFDD.js";import{b as c,c as u,d as m,f as l,m as H}from"./chunk-KGNCKIFP.js";import{b as t}from"./chunk-ES2ISFJC.js";import{a as i}from"./chunk-FTQLQJQV.js";var C=t.string().trim().min(1).max(1e5),x=t.record(t.string(),t.unknown()).default({}),$=t.enum(["completed_tool_batch","before_model_step","turn_completed","turn_paused"]),_=t.object({kind:$,eventSequence:t.number().int().nonnegative(),occurredAt:m}).strict(),A=t.object({id:c,sequence:t.number().int().nonnegative().nullable(),contentHash:u}).strict(),j=t.enum(["tool_failure","retry","recovery","validation","user_turn","reusable_success","completion_detour"]),D=t.enum(["open","recovered","terminal"]),U=t.object({name:t.string().trim().min(1).max(500),invocationKey:u}).strict(),O=t.object({schemaVersion:t.literal("openpond.improvementObservation.v1"),id:c,runRef:c,turnId:c,harnessRelease:l,overlay:R.nullable(),eventRefs:t.array(A).min(1).max(100),kind:j,state:D,tool:U.nullable(),deterministicClass:t.string().trim().min(1).max(500).nullable(),summary:C,createdAt:m,metadata:x}).strict().superRefine((e,n)=>{new Set(e.eventRefs.map(a=>a.id)).size!==e.eventRefs.length&&n.addIssue({code:"custom",message:"observation event refs must be unique",path:["eventRefs"]}),["tool_failure","retry","recovery","completion_detour"].includes(e.kind)&&e.tool===null&&n.addIssue({code:"custom",message:`${e.kind} observations require a tool identity`,path:["tool"]})}),M=O.extend({contentHash:u}).strict(),B=t.object({schemaVersion:t.literal("openpond.refinementTriggerPolicy.v1"),maxEstimatedCostUsd:t.number().finite().nonnegative(),cooldownMs:t.number().int().nonnegative(),maxPendingPlans:t.number().int().min(1).max(100),maxEvidenceEvents:t.number().int().min(1).max(1e3),maxProposalEdits:t.number().int().min(1).max(1e3),maxProposalBytes:t.number().int().min(1).max(1e7)}).strict(),K=t.enum(["no_action","route_deterministically","queue_refiner"]),W=t.object({schemaVersion:t.literal("openpond.refinementTriggerDecision.v1"),id:c,runRef:c,turnId:c,harnessRelease:l,overlay:R.nullable(),observations:t.array(l).max(100),decision:K,deterministicRoute:g.nullable(),suggestedRoutes:t.array(g).max(8),reason:C,deduplicationKey:u,policy:B,estimatedMaxCostUsd:t.number().finite().nonnegative(),pendingPlanCount:t.number().int().nonnegative(),boundary:_,cooldownUntil:m.nullable(),createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.estimatedMaxCostUsd>e.policy.maxEstimatedCostUsd&&n.addIssue({code:"custom",message:"estimated Refiner cost exceeds the trigger policy budget",path:["estimatedMaxCostUsd"]}),e.pendingPlanCount>e.policy.maxPendingPlans&&n.addIssue({code:"custom",message:"pending plan count exceeds the trigger policy limit",path:["pendingPlanCount"]}),e.observations.length>e.policy.maxEvidenceEvents&&n.addIssue({code:"custom",message:"trigger observations exceed the evidence budget",path:["observations"]}),e.decision==="route_deterministically"&&e.deterministicRoute===null&&n.addIssue({code:"custom",message:"deterministic decisions require a route",path:["deterministicRoute"]}),e.decision!=="route_deterministically"&&e.deterministicRoute!==null&&n.addIssue({code:"custom",message:"only deterministic decisions may declare a deterministic route",path:["deterministicRoute"]}),e.decision==="no_action"&&e.suggestedRoutes.length>0&&n.addIssue({code:"custom",message:"no-action decisions cannot suggest routes",path:["suggestedRoutes"]}),e.decision!=="no_action"&&e.observations.length===0&&n.addIssue({code:"custom",message:"actionable trigger decisions require observations",path:["observations"]})}),z=W.extend({contentHash:u}).strict(),F=t.enum(["runtime_service","refiner_model","human_review","evaluation_system","training_system"]),q=t.object({schemaVersion:t.literal("openpond.improvementRouteDecision.v1"),id:c,trigger:l,route:g,authority:F,automatic:t.boolean(),reason:C,createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.automatic&&["human_review","evaluation_system","training_system"].includes(e.authority)&&n.addIssue({code:"custom",message:`${e.authority} routes cannot be marked automatic`,path:["automatic"]}),e.route==="training"&&e.automatic&&e.authority!=="training_system"&&n.addIssue({code:"custom",message:"automatic training routes require training-system authority",path:["authority"]})}),L=q.extend({contentHash:u}).strict(),E=t.object({schemaVersion:t.literal("openpond.harnessRefinerOutcome.v1"),id:c,trigger:l,decision:t.enum(["no_action","proposed"]),proposal:l.nullable(),reason:C,evidenceRefs:t.array(l).max(100),estimatedCostUsd:t.number().finite().nonnegative(),createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.decision==="proposed"!=(e.proposal!==null)&&n.addIssue({code:"custom",message:"proposed Refiner outcomes require a proposal; no-action outcomes cannot include one",path:["proposal"]})}),N=E.extend({contentHash:u}).strict(),G=t.enum(["applied","retained","declined","conflict","rolled_back"]),T=t.object({schemaVersion:t.literal("openpond.improvementApplyReceipt.v1"),id:c,proposal:l,beforeOverlay:R,afterOverlay:R.nullable(),decision:G,boundary:_,validationRefs:t.array(l).max(100),outcomeEvidenceRefs:t.array(A).max(1e3),rollbackOf:l.nullable(),createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.decision==="applied"!=(e.afterOverlay!==null)&&n.addIssue({code:"custom",message:"applied receipts require an after-overlay; other decisions cannot include one",path:["afterOverlay"]}),e.decision==="rolled_back"!=(e.rollbackOf!==null)&&n.addIssue({code:"custom",message:"only rollback receipts require rollbackOf",path:["rollbackOf"]})}),J=T.extend({contentHash:u}).strict();function b(e){let n=e.contentSchema.parse(e.content);return e.resultSchema.parse({...n,contentHash:H(n)})}i(b,"createHashedContract");function te(e){return b({content:e,contentSchema:O,resultSchema:M})}i(te,"createImprovementObservation");function ae(e){return b({content:e,contentSchema:W,resultSchema:z})}i(ae,"createRefinementTriggerDecision");function oe(e){return b({content:e,contentSchema:q,resultSchema:L})}i(oe,"createImprovementRouteDecision");function re(e){return b({content:e,contentSchema:E,resultSchema:N})}i(re,"createHarnessRefinerOutcome");function se(e){return b({content:e,contentSchema:T,resultSchema:J})}i(se,"createImprovementApplyReceipt");var Q=new Set(["text_instruction","memory","dependency_selection"]),X=new Set(["runtime","memory","prompt","skill"]);function Y(e){let n=p.parse(e.workspace),a=k.parse(e.proposal);if(n.ownerScope.kind!=="personal")return{eligible:!1,reason:"Team workspaces require explicit promotion authority."};if(a.requestedScope!=="personal")return{eligible:!1,reason:`${a.requestedScope} changes require explicit promotion authority.`};if(a.risk!=="low")return{eligible:!1,reason:`${a.risk} risk changes require review.`};if(!X.has(a.route))return{eligible:!1,reason:`${a.route} changes cannot auto-advance.`};if(a.edits.some(r=>r.operation==="delete"))return{eligible:!1,reason:"Delete edits require review."};let o=typeof a.metadata.generatedManifestEditId=="string"?a.metadata.generatedManifestEditId:null,s=a.edits.filter(r=>!(r.target.replaceAll("\\","/").toLowerCase()==="harness.json"&&r.id===o&&r.operation==="update"&&["prompt","skill"].includes(a.route))).map(r=>r.target.replaceAll("\\","/").toLowerCase()).filter(r=>r==="harness.json"||r==="program.json"||r.startsWith("agents/")||/\.(?:[cm]?[jt]sx?|py|sh|bash|zsh|fish|ps1|exe|dll|so|dylib)$/.test(r));if(s.length>0)return{eligible:!1,reason:`Executable or structural targets require review: ${[...new Set(s)].join(", ")}.`};let v=a.effects.filter(r=>!Q.has(r));return v.length>0?{eligible:!1,reason:`Effects require review: ${[...new Set(v)].join(", ")}.`}:{eligible:!0}}i(Y,"classifyHarnessAutoAdvanceAuthority");function de(e){let n=p.parse(e.workspace),a=k.parse(e.proposal),o=e.validations.map(y=>S.parse(y)),s={id:a.id,contentHash:a.contentHash},v=o.map(y=>({id:y.id,contentHash:y.contentHash})),r={schemaVersion:"openpond.harnessAdvanceReceipt.v1",id:e.receiptId,workspaceId:n.id,ownerScope:n.ownerScope,proposal:s,expectedWorkspaceRevision:a.expectedWorkspace.revision,observedWorkspaceRevision:n.revision,previousChannelRevision:n.currentChannel.revision,previousRelease:n.currentChannel.release,validationReceipts:v,rollbackOf:null,createdAt:e.now,metadata:{}},f=V(n,a);if(f)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"conflict",reason:f})};let h=P(a,o);if(h)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:h})};let w=Y({workspace:n,proposal:a});if(!w.eligible)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:w.reason})};if(n.currentChannel.release?.id===e.nextRelease.id&&n.currentChannel.release.contentHash===e.nextRelease.contentHash)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:"The candidate release is already current."})};let I=p.parse({...n,sourceRevision:e.nextSourceRevision,revision:n.revision+1,dirty:!1,currentChannel:{...n.currentChannel,release:e.nextRelease,revision:n.currentChannel.revision+1},updatedAt:e.now});return{workspace:I,receipt:d({...r,nextChannelRevision:I.currentChannel.revision,nextRelease:e.nextRelease,decision:"advanced",reason:"Validated low-risk Personal proposal advanced atomically."})}}i(de,"advanceHarnessWorkspace");function ue(e){let n=p.parse(e.workspace),a=n.revision!==e.expectedWorkspaceRevision||n.currentChannel.revision!==e.expectedChannelRevision,o={schemaVersion:"openpond.harnessAdvanceReceipt.v1",id:e.receiptId,workspaceId:n.id,ownerScope:n.ownerScope,proposal:null,expectedWorkspaceRevision:e.expectedWorkspaceRevision,observedWorkspaceRevision:n.revision,previousChannelRevision:n.currentChannel.revision,previousRelease:n.currentChannel.release,validationReceipts:[],createdAt:e.now,metadata:{}};if(a)return{workspace:n,receipt:d({...o,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"conflict",reason:"Workspace or current-channel revision changed before rollback.",rollbackOf:null})};let s=p.parse({...n,sourceRevision:e.targetSourceRevision,revision:n.revision+1,dirty:!1,currentChannel:{...n.currentChannel,release:e.targetRelease,revision:n.currentChannel.revision+1},updatedAt:e.now});return{workspace:s,receipt:d({...o,nextChannelRevision:s.currentChannel.revision,nextRelease:e.targetRelease,decision:"rolled_back",reason:"Current channel rolled back atomically to an immutable release.",rollbackOf:e.rollbackOf})}}i(ue,"rollbackHarnessWorkspace");function me(e){let n=p.parse(e.workspace),a=k.parse(e.proposal),o=e.validations.map(h=>S.parse(h)),s={schemaVersion:"openpond.harnessAdvanceReceipt.v1",id:e.receiptId,workspaceId:n.id,ownerScope:n.ownerScope,proposal:{id:a.id,contentHash:a.contentHash},expectedWorkspaceRevision:a.expectedWorkspace.revision,observedWorkspaceRevision:n.revision,previousChannelRevision:n.currentChannel.revision,previousRelease:n.currentChannel.release,validationReceipts:o.map(h=>({id:h.id,contentHash:h.contentHash})),rollbackOf:null,createdAt:e.now,metadata:{authority:"human_review",reviewer:e.reviewer}},v=V(n,a);if(v)return{workspace:n,receipt:d({...s,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"conflict",reason:v})};let r=P(a,o);if(r)return{workspace:n,receipt:d({...s,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:r})};let f=p.parse({...n,sourceRevision:e.nextSourceRevision,revision:n.revision+1,dirty:!1,currentChannel:{...n.currentChannel,release:e.nextRelease,revision:n.currentChannel.revision+1},updatedAt:e.now});return{workspace:f,receipt:d({...s,nextChannelRevision:f.currentChannel.revision,nextRelease:e.nextRelease,decision:"advanced",reason:`Validated proposal approved by ${e.reviewer} and advanced atomically.`})}}i(me,"advanceReviewedHarnessWorkspace");function V(e,n){if(n.expectedWorkspace.workspaceId!==e.id)return"Proposal targets a different Harness workspace.";if(n.expectedWorkspace.revision!==e.revision)return"Harness workspace revision changed before advancement.";if(n.expectedWorkspace.sourceRevision!==e.sourceRevision)return"Harness source revision changed before advancement.";if(n.expectedWorkspace.channelRevision!==e.currentChannel.revision)return"Harness current-channel revision changed before advancement.";let a=e.currentChannel.release;return a===null||a.id!==n.baseHarnessRelease.id||a.contentHash!==n.baseHarnessRelease.contentHash?"Proposal base Harness release is not current.":null}i(V,"workspaceConflictReason");function P(e,n){let a=new Map;for(let o of n){if(o.proposal.id!==e.id||o.proposal.contentHash!==e.contentHash)return`Validation ${o.id} is bound to a different proposal.`;a.set(o.validationId,o)}for(let o of e.validationPlan){if(!o.required)continue;let s=a.get(o.id);if(!s)return`Required validation ${o.id} is missing.`;if(s.kind!==o.kind)return`Validation ${o.id} has kind ${s.kind}; expected ${o.kind}.`;if(s.status!=="passed")return`Required validation ${o.id} did not pass (${s.status}).`}return null}i(P,"failedValidationReason");export{M as a,z as b,L as c,N as d,J as e,te as f,ae as g,oe as h,re as i,se as j,Y as k,de as l,ue as m,me as n};
2
+ import{a as p,b as g,c as R,f as k,g as S,m as d}from"./chunk-DG4TYVPF.js";import{b as c,c as u,d as m,f as l,m as H}from"./chunk-BIPQCJ5V.js";import{A as t}from"./chunk-PF56N7ZY.js";import{a as i}from"./chunk-FTQLQJQV.js";var C=t.string().trim().min(1).max(1e5),x=t.record(t.string(),t.unknown()).default({}),$=t.enum(["completed_tool_batch","before_model_step","turn_completed","turn_paused"]),_=t.object({kind:$,eventSequence:t.number().int().nonnegative(),occurredAt:m}).strict(),A=t.object({id:c,sequence:t.number().int().nonnegative().nullable(),contentHash:u}).strict(),j=t.enum(["tool_failure","retry","recovery","validation","user_turn","reusable_success","completion_detour"]),D=t.enum(["open","recovered","terminal"]),U=t.object({name:t.string().trim().min(1).max(500),invocationKey:u}).strict(),O=t.object({schemaVersion:t.literal("openpond.improvementObservation.v1"),id:c,runRef:c,turnId:c,harnessRelease:l,overlay:R.nullable(),eventRefs:t.array(A).min(1).max(100),kind:j,state:D,tool:U.nullable(),deterministicClass:t.string().trim().min(1).max(500).nullable(),summary:C,createdAt:m,metadata:x}).strict().superRefine((e,n)=>{new Set(e.eventRefs.map(a=>a.id)).size!==e.eventRefs.length&&n.addIssue({code:"custom",message:"observation event refs must be unique",path:["eventRefs"]}),["tool_failure","retry","recovery","completion_detour"].includes(e.kind)&&e.tool===null&&n.addIssue({code:"custom",message:`${e.kind} observations require a tool identity`,path:["tool"]})}),M=O.extend({contentHash:u}).strict(),B=t.object({schemaVersion:t.literal("openpond.refinementTriggerPolicy.v1"),maxEstimatedCostUsd:t.number().finite().nonnegative(),cooldownMs:t.number().int().nonnegative(),maxPendingPlans:t.number().int().min(1).max(100),maxEvidenceEvents:t.number().int().min(1).max(1e3),maxProposalEdits:t.number().int().min(1).max(1e3),maxProposalBytes:t.number().int().min(1).max(1e7)}).strict(),K=t.enum(["no_action","route_deterministically","queue_refiner"]),W=t.object({schemaVersion:t.literal("openpond.refinementTriggerDecision.v1"),id:c,runRef:c,turnId:c,harnessRelease:l,overlay:R.nullable(),observations:t.array(l).max(100),decision:K,deterministicRoute:g.nullable(),suggestedRoutes:t.array(g).max(8),reason:C,deduplicationKey:u,policy:B,estimatedMaxCostUsd:t.number().finite().nonnegative(),pendingPlanCount:t.number().int().nonnegative(),boundary:_,cooldownUntil:m.nullable(),createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.estimatedMaxCostUsd>e.policy.maxEstimatedCostUsd&&n.addIssue({code:"custom",message:"estimated Refiner cost exceeds the trigger policy budget",path:["estimatedMaxCostUsd"]}),e.pendingPlanCount>e.policy.maxPendingPlans&&n.addIssue({code:"custom",message:"pending plan count exceeds the trigger policy limit",path:["pendingPlanCount"]}),e.observations.length>e.policy.maxEvidenceEvents&&n.addIssue({code:"custom",message:"trigger observations exceed the evidence budget",path:["observations"]}),e.decision==="route_deterministically"&&e.deterministicRoute===null&&n.addIssue({code:"custom",message:"deterministic decisions require a route",path:["deterministicRoute"]}),e.decision!=="route_deterministically"&&e.deterministicRoute!==null&&n.addIssue({code:"custom",message:"only deterministic decisions may declare a deterministic route",path:["deterministicRoute"]}),e.decision==="no_action"&&e.suggestedRoutes.length>0&&n.addIssue({code:"custom",message:"no-action decisions cannot suggest routes",path:["suggestedRoutes"]}),e.decision!=="no_action"&&e.observations.length===0&&n.addIssue({code:"custom",message:"actionable trigger decisions require observations",path:["observations"]})}),z=W.extend({contentHash:u}).strict(),F=t.enum(["runtime_service","refiner_model","human_review","evaluation_system","training_system"]),q=t.object({schemaVersion:t.literal("openpond.improvementRouteDecision.v1"),id:c,trigger:l,route:g,authority:F,automatic:t.boolean(),reason:C,createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.automatic&&["human_review","evaluation_system","training_system"].includes(e.authority)&&n.addIssue({code:"custom",message:`${e.authority} routes cannot be marked automatic`,path:["automatic"]}),e.route==="training"&&e.automatic&&e.authority!=="training_system"&&n.addIssue({code:"custom",message:"automatic training routes require training-system authority",path:["authority"]})}),L=q.extend({contentHash:u}).strict(),E=t.object({schemaVersion:t.literal("openpond.harnessRefinerOutcome.v1"),id:c,trigger:l,decision:t.enum(["no_action","proposed"]),proposal:l.nullable(),reason:C,evidenceRefs:t.array(l).max(100),estimatedCostUsd:t.number().finite().nonnegative(),createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.decision==="proposed"!=(e.proposal!==null)&&n.addIssue({code:"custom",message:"proposed Refiner outcomes require a proposal; no-action outcomes cannot include one",path:["proposal"]})}),N=E.extend({contentHash:u}).strict(),G=t.enum(["applied","retained","declined","conflict","rolled_back"]),T=t.object({schemaVersion:t.literal("openpond.improvementApplyReceipt.v1"),id:c,proposal:l,beforeOverlay:R,afterOverlay:R.nullable(),decision:G,boundary:_,validationRefs:t.array(l).max(100),outcomeEvidenceRefs:t.array(A).max(1e3),rollbackOf:l.nullable(),createdAt:m,metadata:x}).strict().superRefine((e,n)=>{e.decision==="applied"!=(e.afterOverlay!==null)&&n.addIssue({code:"custom",message:"applied receipts require an after-overlay; other decisions cannot include one",path:["afterOverlay"]}),e.decision==="rolled_back"!=(e.rollbackOf!==null)&&n.addIssue({code:"custom",message:"only rollback receipts require rollbackOf",path:["rollbackOf"]})}),J=T.extend({contentHash:u}).strict();function b(e){let n=e.contentSchema.parse(e.content);return e.resultSchema.parse({...n,contentHash:H(n)})}i(b,"createHashedContract");function te(e){return b({content:e,contentSchema:O,resultSchema:M})}i(te,"createImprovementObservation");function ae(e){return b({content:e,contentSchema:W,resultSchema:z})}i(ae,"createRefinementTriggerDecision");function oe(e){return b({content:e,contentSchema:q,resultSchema:L})}i(oe,"createImprovementRouteDecision");function re(e){return b({content:e,contentSchema:E,resultSchema:N})}i(re,"createHarnessRefinerOutcome");function se(e){return b({content:e,contentSchema:T,resultSchema:J})}i(se,"createImprovementApplyReceipt");var Q=new Set(["text_instruction","memory","dependency_selection"]),X=new Set(["runtime","memory","prompt","skill"]);function Y(e){let n=p.parse(e.workspace),a=k.parse(e.proposal);if(n.ownerScope.kind!=="personal")return{eligible:!1,reason:"Team workspaces require explicit promotion authority."};if(a.requestedScope!=="personal")return{eligible:!1,reason:`${a.requestedScope} changes require explicit promotion authority.`};if(a.risk!=="low")return{eligible:!1,reason:`${a.risk} risk changes require review.`};if(!X.has(a.route))return{eligible:!1,reason:`${a.route} changes cannot auto-advance.`};if(a.edits.some(r=>r.operation==="delete"))return{eligible:!1,reason:"Delete edits require review."};let o=typeof a.metadata.generatedManifestEditId=="string"?a.metadata.generatedManifestEditId:null,s=a.edits.filter(r=>!(r.target.replaceAll("\\","/").toLowerCase()==="harness.json"&&r.id===o&&r.operation==="update"&&["prompt","skill"].includes(a.route))).map(r=>r.target.replaceAll("\\","/").toLowerCase()).filter(r=>r==="harness.json"||r==="program.json"||r.startsWith("agents/")||/\.(?:[cm]?[jt]sx?|py|sh|bash|zsh|fish|ps1|exe|dll|so|dylib)$/.test(r));if(s.length>0)return{eligible:!1,reason:`Executable or structural targets require review: ${[...new Set(s)].join(", ")}.`};let v=a.effects.filter(r=>!Q.has(r));return v.length>0?{eligible:!1,reason:`Effects require review: ${[...new Set(v)].join(", ")}.`}:{eligible:!0}}i(Y,"classifyHarnessAutoAdvanceAuthority");function de(e){let n=p.parse(e.workspace),a=k.parse(e.proposal),o=e.validations.map(y=>S.parse(y)),s={id:a.id,contentHash:a.contentHash},v=o.map(y=>({id:y.id,contentHash:y.contentHash})),r={schemaVersion:"openpond.harnessAdvanceReceipt.v1",id:e.receiptId,workspaceId:n.id,ownerScope:n.ownerScope,proposal:s,expectedWorkspaceRevision:a.expectedWorkspace.revision,observedWorkspaceRevision:n.revision,previousChannelRevision:n.currentChannel.revision,previousRelease:n.currentChannel.release,validationReceipts:v,rollbackOf:null,createdAt:e.now,metadata:{}},f=V(n,a);if(f)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"conflict",reason:f})};let h=P(a,o);if(h)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:h})};let w=Y({workspace:n,proposal:a});if(!w.eligible)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:w.reason})};if(n.currentChannel.release?.id===e.nextRelease.id&&n.currentChannel.release.contentHash===e.nextRelease.contentHash)return{workspace:n,receipt:d({...r,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:"The candidate release is already current."})};let I=p.parse({...n,sourceRevision:e.nextSourceRevision,revision:n.revision+1,dirty:!1,currentChannel:{...n.currentChannel,release:e.nextRelease,revision:n.currentChannel.revision+1},updatedAt:e.now});return{workspace:I,receipt:d({...r,nextChannelRevision:I.currentChannel.revision,nextRelease:e.nextRelease,decision:"advanced",reason:"Validated low-risk Personal proposal advanced atomically."})}}i(de,"advanceHarnessWorkspace");function ue(e){let n=p.parse(e.workspace),a=n.revision!==e.expectedWorkspaceRevision||n.currentChannel.revision!==e.expectedChannelRevision,o={schemaVersion:"openpond.harnessAdvanceReceipt.v1",id:e.receiptId,workspaceId:n.id,ownerScope:n.ownerScope,proposal:null,expectedWorkspaceRevision:e.expectedWorkspaceRevision,observedWorkspaceRevision:n.revision,previousChannelRevision:n.currentChannel.revision,previousRelease:n.currentChannel.release,validationReceipts:[],createdAt:e.now,metadata:{}};if(a)return{workspace:n,receipt:d({...o,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"conflict",reason:"Workspace or current-channel revision changed before rollback.",rollbackOf:null})};let s=p.parse({...n,sourceRevision:e.targetSourceRevision,revision:n.revision+1,dirty:!1,currentChannel:{...n.currentChannel,release:e.targetRelease,revision:n.currentChannel.revision+1},updatedAt:e.now});return{workspace:s,receipt:d({...o,nextChannelRevision:s.currentChannel.revision,nextRelease:e.targetRelease,decision:"rolled_back",reason:"Current channel rolled back atomically to an immutable release.",rollbackOf:e.rollbackOf})}}i(ue,"rollbackHarnessWorkspace");function me(e){let n=p.parse(e.workspace),a=k.parse(e.proposal),o=e.validations.map(h=>S.parse(h)),s={schemaVersion:"openpond.harnessAdvanceReceipt.v1",id:e.receiptId,workspaceId:n.id,ownerScope:n.ownerScope,proposal:{id:a.id,contentHash:a.contentHash},expectedWorkspaceRevision:a.expectedWorkspace.revision,observedWorkspaceRevision:n.revision,previousChannelRevision:n.currentChannel.revision,previousRelease:n.currentChannel.release,validationReceipts:o.map(h=>({id:h.id,contentHash:h.contentHash})),rollbackOf:null,createdAt:e.now,metadata:{authority:"human_review",reviewer:e.reviewer}},v=V(n,a);if(v)return{workspace:n,receipt:d({...s,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"conflict",reason:v})};let r=P(a,o);if(r)return{workspace:n,receipt:d({...s,nextChannelRevision:n.currentChannel.revision,nextRelease:null,decision:"retained",reason:r})};let f=p.parse({...n,sourceRevision:e.nextSourceRevision,revision:n.revision+1,dirty:!1,currentChannel:{...n.currentChannel,release:e.nextRelease,revision:n.currentChannel.revision+1},updatedAt:e.now});return{workspace:f,receipt:d({...s,nextChannelRevision:f.currentChannel.revision,nextRelease:e.nextRelease,decision:"advanced",reason:`Validated proposal approved by ${e.reviewer} and advanced atomically.`})}}i(me,"advanceReviewedHarnessWorkspace");function V(e,n){if(n.expectedWorkspace.workspaceId!==e.id)return"Proposal targets a different Harness workspace.";if(n.expectedWorkspace.revision!==e.revision)return"Harness workspace revision changed before advancement.";if(n.expectedWorkspace.sourceRevision!==e.sourceRevision)return"Harness source revision changed before advancement.";if(n.expectedWorkspace.channelRevision!==e.currentChannel.revision)return"Harness current-channel revision changed before advancement.";let a=e.currentChannel.release;return a===null||a.id!==n.baseHarnessRelease.id||a.contentHash!==n.baseHarnessRelease.contentHash?"Proposal base Harness release is not current.":null}i(V,"workspaceConflictReason");function P(e,n){let a=new Map;for(let o of n){if(o.proposal.id!==e.id||o.proposal.contentHash!==e.contentHash)return`Validation ${o.id} is bound to a different proposal.`;a.set(o.validationId,o)}for(let o of e.validationPlan){if(!o.required)continue;let s=a.get(o.id);if(!s)return`Required validation ${o.id} is missing.`;if(s.kind!==o.kind)return`Validation ${o.id} has kind ${s.kind}; expected ${o.kind}.`;if(s.status!=="passed")return`Required validation ${o.id} did not pass (${s.status}).`}return null}i(P,"failedValidationReason");export{M as a,z as b,L as c,N as d,J as e,te as f,ae as g,oe as h,re as i,se as j,Y as k,de as l,ue as m,me as n};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as m}from"./chunk-I2NXNMRZ.js";import{k}from"./chunk-J24I74EM.js";import{f as d}from"./chunk-H3BSIAQO.js";import{m as c}from"./chunk-BIPQCJ5V.js";import{a as n}from"./chunk-FTQLQJQV.js";import h from"node:path";async function b(o){let{taskset:a}=o,{taskset:f,modelResources:p,learningResources:l}=o.content,u=new Set([...p?.assets??[],...l?.assets??[]].map(e=>e.id)),i=new Map,r=n((e,s=e.path)=>{if(u.has(e.id))return;let t=i.get(e.id);if(t&&(c(t.asset)!==c(e)||t.sourcePath!==s))throw new Error(`Conflicting local Taskset file reference: ${e.id}.`);i.set(e.id,{asset:e,sourcePath:s})},"add");for(let e of d.parse(a.metadata.portableFileInventory??[]))r(e.asset,e.sourcePath);for(let e of f.tasks){let s=a.tasks.find(t=>t.id===e.id);for(let t of e.artifactRefs)r(t,s?.assets?.find(g=>g.id===t.id)?.artifactRef??t.path);for(let t of e.requiredOutputs??[])t.schemaRef&&r(t.schemaRef)}for(let e of f.graders){let s=a.graders.find(t=>t.id===e.id);"verifierRef"in e&&r(e.verifierRef,s?.kind==="custom_verifier"?s.module:e.verifierRef.path),"rubricRef"in e&&r(e.rubricRef)}return k({root:h.join(o.storeDir,"training","tasksets",m(a)),content:o.content,sources:[...i.values()]})}n(b,"captureAuthoredModelTasksetPackage");export{b as a};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as he,b as ye,d as Ae,e as L}from"./chunk-BFKYRQMA.js";import{a as D,b as ge,c as Pe,d as we,e as Oe}from"./chunk-RZUEVS64.js";import{j as xe}from"./chunk-3QIB5FXI.js";import{d as N,e as B}from"./chunk-YR5ID2SS.js";import{E as ae,h as re}from"./chunk-Z4Z5UOZM.js";import{d as me}from"./chunk-FFRFSDBM.js";import{a}from"./chunk-FTQLQJQV.js";var De=new URL(B).hostname,be=new URL(N).hostname,$e=`${B}/opchat/v1`;function l(e){if(!e)return null;let n=e.trim();return n?n.replace(/\/+$/,""):null}a(l,"normalizeBaseUrl");function Y(e){let n=l(e);if(!n)return null;try{let o=new URL(n).hostname.toLowerCase();if(o===De)return B;if(o===be||o===`www.${be}`||o==="openpond.live"||o==="www.openpond.live")return B;if(o.startsWith("api."))return n}catch{return null}return null}a(Y,"mapUiBaseToApiBase");function Q(e,n){let t=l(process.env.OPENPOND_API_URL);if(t)return t;let o=l(e?.apiBaseUrl);if(o)return o;let r=l(n.apiBaseUrl);if(r)return r;let s=Y(process.env.OPENPOND_BASE_URL);return s||(Y(e?.baseUrl||n.baseUrl)??B)}a(Q,"resolvePublicApiBaseUrl");function X(e,n,t){return He(e,n,t)}a(X,"resolveHostedChatApiBaseUrl");function He(e,n,t){let o=typeof process<"u"?process.env:{};return J(o.OPENPOND_OPCHAT_API_URL)??J(e?.chatApiBaseUrl??n.chatApiBaseUrl)??J(o.OPENPOND_CHAT_API_URL)??Me(t)}a(He,"resolveOpChatApiBaseUrl");function J(e){let n=l(e);if(!n)return null;try{let t=new URL(n),o=t.pathname.split("/").filter(Boolean),r=o.findIndex(i=>i.toLowerCase()==="opchat");return r>=0?(t.pathname=`/${[...o.slice(0,r+1),"v1"].join("/")}`,t.search="",t.hash="",l(t.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(t.pathname="/opchat/v1",t.search="",t.hash="",l(t.toString())??null):(t.pathname=`${t.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),t.search="",t.hash="",l(t.toString())??null)}catch{return null}}a(J,"normalizeOpChatApiBaseUrl");function Me(e){return J(e)??$e}a(Me,"opChatBaseFromPublicApiBase");function $(e){return e?.trim()?e.trim():"production"}a($,"deriveEnvironment");function Z(e,n=process.env){let t=[e?.apiKey,e?.session?.token,e?.token,n.OPENPOND_API_KEY];for(let o of t){let r=typeof o=="string"?o.trim():"";if(r)return r}return null}a(Z,"accountToken");function P(e,n){return!!(e&&n&&e.toLowerCase()===n.toLowerCase())}a(P,"handleEquals");function b(e,n){return l(e)===l(n)}a(b,"baseUrlEquals");function q(e,n){return`${e?.trim().toLowerCase()||""}|${l(n)??"default"}`}a(q,"profileKey");function ee(e){return l(e?.baseUrl)}a(ee,"selectorBaseUrl");function _(e){let n=l(e.baseUrl);return n?{handle:e.handle,baseUrl:n}:{handle:e.handle}}a(_,"selectorFromAccount");function A(e){let n=typeof e?.handle=="string"?e.handle.trim():"";if(!n)return null;let t=l(e?.baseUrl);return t?{handle:n,baseUrl:t}:{handle:n}}a(A,"normalizeActiveProfile");function U(e,n){if(!P(e.handle,n.handle))return!1;let t=ee(n);return t?b(e.baseUrl,t):!l(e.baseUrl)}a(U,"accountMatchesSelector");function se(e,n){if(!P(e.handle,n.handle))return!1;let t=ee(n);return t?b(e.baseUrl,t):!l(e.baseUrl)}a(se,"profileMatchesSelector");function Ue(e,n,t){let o=Array.isArray(e.accounts)?e.accounts:[],r=n||process.env.OPENPOND_ACCOUNT?A({handle:n||process.env.OPENPOND_ACCOUNT||"",baseUrl:t??process.env.OPENPOND_BASE_URL??null}):A(e.activeProfile);if(r){let s=o.find(c=>U(c,r));if(s)return s;let i=o.filter(c=>P(c.handle,r.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}a(Ue,"findActiveAccount");function ke(e){let n=Array.isArray(e.accounts)?e.accounts:[],t=A(e.activeProfile)??(n[0]?_(n[0]):null);return ie(n.map(o=>({handle:o.handle,baseUrl:l(o.baseUrl),apiBaseUrl:l(o.apiBaseUrl),chatApiBaseUrl:l(o.chatApiBaseUrl),environment:$(o.environment),isActive:t?U(o,t):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}a(ke,"fallbackProfilesFromConfig");function ie(e){let n=new Map;for(let t of e){let o=l(t.baseUrl),r=`${t.handle.toLowerCase()}|${o??"default"}`,s={...t,baseUrl:o,apiBaseUrl:l(t.apiBaseUrl),chatApiBaseUrl:l(t.chatApiBaseUrl),environment:$(t.environment),isActive:t.isActive},i=n.get(r);(!i||s.isActive&&!i.isActive||s.hasApiKey&&!i.hasApiKey)&&n.set(r,s)}return Array.from(n.values())}a(ie,"normalizeProfiles");function Be(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}a(Be,"profileAuthHealth");function ze(e,n){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||n,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}a(ze,"normalizeHealth");function Ee(e){let n=e?.account;return n?{id:n.id??null,email:n.email??null,name:n.name??null,handle:n.handle??null,image:n.image??null,timezone:n.timezone??null,isAdmin:n.isAdmin??null,isVerified:n.isVerified??null,dailyAgentAppId:n.dailyAgentAppId??null,dailyAgentDeploymentId:n.dailyAgentDeploymentId??null,credits:n.credits??null}:null}a(Ee,"normalizeProfile");function Fe(e){return(e??[]).map(n=>({...n,id:n.id||n.userProductId||n.openPondProductId||n.name,name:n.name,type:n.type,status:n.status,isActive:n.isActive??null,price:n.price??null,currency:n.currency??null,credits:n.credits??null}))}a(Fe,"normalizeProducts");function je(e){return e.handle.trim().toLowerCase()==="default"&&!l(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}a(je,"isEmptyDefaultProfile");function Ke(e){let n=e?.trim();return n?n.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${n.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}a(Ke,"apiKeyHint");function qe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}a(qe,"apiKeyAccess");function H(e){let{config:n,profiles:t,account:o,token:r,apiBaseUrl:s,accountResponse:i,accountProfiles:c,health:m,authFailed:g,error:f}=e,w=X(o,n,s),h=Ee(i??null),C=A(n.activeProfile),v=(o?_(o):null)??C,O=h?.handle||o?.handle||v?.handle||null,I=(v?t.find(p=>se(p,v)):null)??t.find(p=>p.isActive)??null,y=g?"auth_error":r?"signed_in":"signed_out",d=h?.name||h?.handle||h?.email||O||"Signed out",R=l(I?.baseUrl||o?.baseUrl||N),k=$(I?.environment||o?.environment),x=A(v)??(O?A({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),j=(t.length>0?t:O?[{handle:O,baseUrl:ee(x)??l(o?.baseUrl),apiBaseUrl:s,chatApiBaseUrl:w,environment:k,isActive:!0,hasApiKey:!!r,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(p=>!je(p));return{state:y,activeProfile:x,label:d,email:h?.email??null,avatarUrl:h?.image??null,environment:k,baseUrl:R,apiBaseUrl:s,chatApiBaseUrl:w,creditsLabel:h?.credits??null,profile:h,products:Fe(i?.products),apiHealth:ze(m??null,s),accounts:j.map(p=>{let T=l(p.baseUrl),Le=n.accounts?.find(fe=>P(fe.handle,p.handle)&&b(fe.baseUrl,T)),oe=c?.[q(p.handle,T)]??null,K=Ee(oe?.response??null);return{handle:p.handle,baseUrl:T,apiBaseUrl:l(p.apiBaseUrl),chatApiBaseUrl:l(p.chatApiBaseUrl),environment:$(p.environment),isActive:x?se(p,x):!1,authHealth:oe?.authFailed?"auth_error":Be(p),displayLabel:K?.name||K?.handle||K?.email||p.handle,email:K?.email??null,avatarUrl:K?.image??null,apiKeyHint:Ke(Le?.apiKey),apiKeyAccess:qe(oe?.response??null)}}),error:f??m?.error??null}}a(H,"toAccountState");async function We(e){try{return ie(await Pe())}catch{return ke(e)}}a(We,"loadProfiles");async function u(e,n){let t=await ge(),o=await We(t),r=Ue(t,e,n),s=Z(r),i=Q(r,t),c=X(r,t,i);return{config:t,profiles:o,account:r,token:s,apiBaseUrl:i,chatApiBaseUrl:c,accountState:H({config:t,profiles:o,account:r,token:s,apiBaseUrl:i})}}a(u,"loadOpenPondAccountContext");async function Ve(e){let n=l(e.baseUrl);return await we(e.handle,{baseUrl:n}),u(e.handle,n)}a(Ve,"switchOpenPondAccount");import{randomUUID as Ge}from"node:crypto";function M(e){return e instanceof Error?e.message:String(e)}a(M,"errorMessage");var Je=15e3;function Ye(e){return e===ae?"OpenPond Chat":e==="deepseek-v4-flash"?"DeepSeek V4 Flash":e.replace(/[-_/]+/g," ")}a(Ye,"displayNameForHostedModel");function Qe(e){let n=typeof e.id=="string"?e.id:null;return n?{id:n,displayName:Ye(n),ownedBy:typeof e.owned_by=="string"?e.owned_by:null,streaming:!0,raw:e}:null}a(Qe,"normalizeHostedModel");async function Xe(){let e=await u();if(!e.token)return{models:[],error:"No OpenPond API key or session token is configured."};try{return{models:(await nn({apiBaseUrl:e.chatApiBaseUrl,token:e.token})).data.map(o=>Qe(o)).filter(o=>!!o),error:null}}catch(n){return{models:[],error:M(n)}}}a(Xe,"loadOpenPondHostedModels");async function Ze(){let e=await u();if(!e.token)return{catalog:null,error:"No OpenPond API key or session token is configured."};let n=new AbortController,t=setTimeout(()=>{n.abort(new Error("OpenPond provider catalog request timed out."))},Je);try{return{catalog:await Se({apiBaseUrl:e.chatApiBaseUrl,token:e.token,signal:n.signal}),error:null}}catch(o){return{catalog:null,error:M(o)}}finally{clearTimeout(t)}}a(Ze,"loadOpenPondProviderCatalog");async function*en(e){let n=await u();if(!n.token)throw new Error("OpenPond is signed out. Add an account in Settings before using OpenPond Chat.");yield*Ce({apiBaseUrl:n.chatApiBaseUrl,token:n.token,model:e.model||ae,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,requestId:e.requestId,reasoningEffort:e.reasoningEffort,maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,signal:e.signal})}a(en,"streamOpenPondHostedChatTurn");async function nn(e){let n=le(e.apiBaseUrl,"models"),t=await fetch(n,{method:"GET",headers:ce(e.token,"application/json"),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat model list failed: ${t.status} ${await ue(t)}`);return await t.json()}a(nn,"listOpChatModels");async function Se(e){let n=le(e.apiBaseUrl,"provider-catalog"),t=await fetch(n,{method:"GET",headers:ce(e.token,"application/json"),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat provider catalog failed: ${t.status} ${await ue(t)}`);let o=await t.json();return!o||typeof o!="object"||!Array.isArray(o.providers)?re.parse(o):re.parse({...o,providers:o.providers.filter(r=>r!==null&&typeof r=="object"&&me.safeParse(r.id).success)})}a(Se,"listOpChatProviderCatalog");async function*Ce(e){let n=le(e.apiBaseUrl,"chat/completions"),t=await fetch(n,{method:"POST",headers:ce(e.token,"text/event-stream",e.requestId),body:JSON.stringify(ln(e,!0)),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat request failed: ${t.status} ${await ue(t)}`);if(!t.body)throw new Error("OpenPond OpChat request failed: streaming response body is missing.");let o=new Map,r=!1,s=null,i={},c="",m=null,g=tn(t.headers),f=t.body.getReader(),w=new TextDecoder,h="",C=[],te=a(()=>{if(C.length===0)return[];let y=C.join(`
2
+ import{a as ye,b as Ae,d as ge,e as L}from"./chunk-BFKYRQMA.js";import{a as D,b as Pe,c as we,d as Oe,e as xe}from"./chunk-LO3O45IX.js";import{j as he}from"./chunk-5ZBLCWEJ.js";import{d as N,e as B}from"./chunk-YR5ID2SS.js";import{E as ae,h as re}from"./chunk-SG6JZ7HD.js";import{d as me}from"./chunk-ON2RNOCG.js";import{a}from"./chunk-FTQLQJQV.js";var De=new URL(B).hostname,be=new URL(N).hostname,$e=`${B}/opchat/v1`;function l(e){if(!e)return null;let n=e.trim();return n?n.replace(/\/+$/,""):null}a(l,"normalizeBaseUrl");function Y(e){let n=l(e);if(!n)return null;try{let o=new URL(n).hostname.toLowerCase();if(o===De)return B;if(o===be||o===`www.${be}`||o==="openpond.live"||o==="www.openpond.live")return B;if(o.startsWith("api."))return n}catch{return null}return null}a(Y,"mapUiBaseToApiBase");function Q(e,n){let t=l(process.env.OPENPOND_API_URL);if(t)return t;let o=l(e?.apiBaseUrl);if(o)return o;let r=l(n.apiBaseUrl);if(r)return r;let s=Y(process.env.OPENPOND_BASE_URL);return s||(Y(e?.baseUrl||n.baseUrl)??B)}a(Q,"resolvePublicApiBaseUrl");function X(e,n,t){return He(e,n,t)}a(X,"resolveHostedChatApiBaseUrl");function He(e,n,t){let o=typeof process<"u"?process.env:{};return J(o.OPENPOND_OPCHAT_API_URL)??J(e?.chatApiBaseUrl??n.chatApiBaseUrl)??J(o.OPENPOND_CHAT_API_URL)??Me(t)}a(He,"resolveOpChatApiBaseUrl");function J(e){let n=l(e);if(!n)return null;try{let t=new URL(n),o=t.pathname.split("/").filter(Boolean),r=o.findIndex(i=>i.toLowerCase()==="opchat");return r>=0?(t.pathname=`/${[...o.slice(0,r+1),"v1"].join("/")}`,t.search="",t.hash="",l(t.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(t.pathname="/opchat/v1",t.search="",t.hash="",l(t.toString())??null):(t.pathname=`${t.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),t.search="",t.hash="",l(t.toString())??null)}catch{return null}}a(J,"normalizeOpChatApiBaseUrl");function Me(e){return J(e)??$e}a(Me,"opChatBaseFromPublicApiBase");function $(e){return e?.trim()?e.trim():"production"}a($,"deriveEnvironment");function Z(e,n=process.env){let t=[e?.apiKey,e?.session?.token,e?.token,n.OPENPOND_API_KEY];for(let o of t){let r=typeof o=="string"?o.trim():"";if(r)return r}return null}a(Z,"accountToken");function P(e,n){return!!(e&&n&&e.toLowerCase()===n.toLowerCase())}a(P,"handleEquals");function b(e,n){return l(e)===l(n)}a(b,"baseUrlEquals");function q(e,n){return`${e?.trim().toLowerCase()||""}|${l(n)??"default"}`}a(q,"profileKey");function ee(e){return l(e?.baseUrl)}a(ee,"selectorBaseUrl");function _(e){let n=l(e.baseUrl);return n?{handle:e.handle,baseUrl:n}:{handle:e.handle}}a(_,"selectorFromAccount");function A(e){let n=typeof e?.handle=="string"?e.handle.trim():"";if(!n)return null;let t=l(e?.baseUrl);return t?{handle:n,baseUrl:t}:{handle:n}}a(A,"normalizeActiveProfile");function U(e,n){if(!P(e.handle,n.handle))return!1;let t=ee(n);return t?b(e.baseUrl,t):!l(e.baseUrl)}a(U,"accountMatchesSelector");function se(e,n){if(!P(e.handle,n.handle))return!1;let t=ee(n);return t?b(e.baseUrl,t):!l(e.baseUrl)}a(se,"profileMatchesSelector");function Ue(e,n,t){let o=Array.isArray(e.accounts)?e.accounts:[],r=n||process.env.OPENPOND_ACCOUNT?A({handle:n||process.env.OPENPOND_ACCOUNT||"",baseUrl:t??process.env.OPENPOND_BASE_URL??null}):A(e.activeProfile);if(r){let s=o.find(c=>U(c,r));if(s)return s;let i=o.filter(c=>P(c.handle,r.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}a(Ue,"findActiveAccount");function ke(e){let n=Array.isArray(e.accounts)?e.accounts:[],t=A(e.activeProfile)??(n[0]?_(n[0]):null);return ie(n.map(o=>({handle:o.handle,baseUrl:l(o.baseUrl),apiBaseUrl:l(o.apiBaseUrl),chatApiBaseUrl:l(o.chatApiBaseUrl),environment:$(o.environment),isActive:t?U(o,t):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}a(ke,"fallbackProfilesFromConfig");function ie(e){let n=new Map;for(let t of e){let o=l(t.baseUrl),r=`${t.handle.toLowerCase()}|${o??"default"}`,s={...t,baseUrl:o,apiBaseUrl:l(t.apiBaseUrl),chatApiBaseUrl:l(t.chatApiBaseUrl),environment:$(t.environment),isActive:t.isActive},i=n.get(r);(!i||s.isActive&&!i.isActive||s.hasApiKey&&!i.hasApiKey)&&n.set(r,s)}return Array.from(n.values())}a(ie,"normalizeProfiles");function Be(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}a(Be,"profileAuthHealth");function ze(e,n){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||n,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}a(ze,"normalizeHealth");function Ee(e){let n=e?.account;return n?{id:n.id??null,email:n.email??null,name:n.name??null,handle:n.handle??null,image:n.image??null,timezone:n.timezone??null,isAdmin:n.isAdmin??null,isVerified:n.isVerified??null,dailyAgentAppId:n.dailyAgentAppId??null,dailyAgentDeploymentId:n.dailyAgentDeploymentId??null,credits:n.credits??null}:null}a(Ee,"normalizeProfile");function Fe(e){return(e??[]).map(n=>({...n,id:n.id||n.userProductId||n.openPondProductId||n.name,name:n.name,type:n.type,status:n.status,isActive:n.isActive??null,price:n.price??null,currency:n.currency??null,credits:n.credits??null}))}a(Fe,"normalizeProducts");function je(e){return e.handle.trim().toLowerCase()==="default"&&!l(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}a(je,"isEmptyDefaultProfile");function Ke(e){let n=e?.trim();return n?n.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${n.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}a(Ke,"apiKeyHint");function qe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}a(qe,"apiKeyAccess");function H(e){let{config:n,profiles:t,account:o,token:r,apiBaseUrl:s,accountResponse:i,accountProfiles:c,health:m,authFailed:g,error:f}=e,w=X(o,n,s),h=Ee(i??null),C=A(n.activeProfile),v=(o?_(o):null)??C,O=h?.handle||o?.handle||v?.handle||null,I=(v?t.find(p=>se(p,v)):null)??t.find(p=>p.isActive)??null,y=g?"auth_error":r?"signed_in":"signed_out",d=h?.name||h?.handle||h?.email||O||"Signed out",R=l(I?.baseUrl||o?.baseUrl||N),k=$(I?.environment||o?.environment),x=A(v)??(O?A({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),j=(t.length>0?t:O?[{handle:O,baseUrl:ee(x)??l(o?.baseUrl),apiBaseUrl:s,chatApiBaseUrl:w,environment:k,isActive:!0,hasApiKey:!!r,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(p=>!je(p));return{state:y,activeProfile:x,label:d,email:h?.email??null,avatarUrl:h?.image??null,environment:k,baseUrl:R,apiBaseUrl:s,chatApiBaseUrl:w,creditsLabel:h?.credits??null,profile:h,products:Fe(i?.products),apiHealth:ze(m??null,s),accounts:j.map(p=>{let T=l(p.baseUrl),Le=n.accounts?.find(fe=>P(fe.handle,p.handle)&&b(fe.baseUrl,T)),oe=c?.[q(p.handle,T)]??null,K=Ee(oe?.response??null);return{handle:p.handle,baseUrl:T,apiBaseUrl:l(p.apiBaseUrl),chatApiBaseUrl:l(p.chatApiBaseUrl),environment:$(p.environment),isActive:x?se(p,x):!1,authHealth:oe?.authFailed?"auth_error":Be(p),displayLabel:K?.name||K?.handle||K?.email||p.handle,email:K?.email??null,avatarUrl:K?.image??null,apiKeyHint:Ke(Le?.apiKey),apiKeyAccess:qe(oe?.response??null)}}),error:f??m?.error??null}}a(H,"toAccountState");async function We(e){try{return ie(await we())}catch{return ke(e)}}a(We,"loadProfiles");async function u(e,n){let t=await Pe(),o=await We(t),r=Ue(t,e,n),s=Z(r),i=Q(r,t),c=X(r,t,i);return{config:t,profiles:o,account:r,token:s,apiBaseUrl:i,chatApiBaseUrl:c,accountState:H({config:t,profiles:o,account:r,token:s,apiBaseUrl:i})}}a(u,"loadOpenPondAccountContext");async function Ve(e){let n=l(e.baseUrl);return await Oe(e.handle,{baseUrl:n}),u(e.handle,n)}a(Ve,"switchOpenPondAccount");import{randomUUID as Ge}from"node:crypto";function M(e){return e instanceof Error?e.message:String(e)}a(M,"errorMessage");var Je=15e3;function Ye(e){return e===ae?"OpenPond Chat":e==="deepseek-v4-flash"?"DeepSeek V4 Flash":e.replace(/[-_/]+/g," ")}a(Ye,"displayNameForHostedModel");function Qe(e){let n=typeof e.id=="string"?e.id:null;return n?{id:n,displayName:Ye(n),ownedBy:typeof e.owned_by=="string"?e.owned_by:null,streaming:!0,raw:e}:null}a(Qe,"normalizeHostedModel");async function Xe(){let e=await u();if(!e.token)return{models:[],error:"No OpenPond API key or session token is configured."};try{return{models:(await nn({apiBaseUrl:e.chatApiBaseUrl,token:e.token})).data.map(o=>Qe(o)).filter(o=>!!o),error:null}}catch(n){return{models:[],error:M(n)}}}a(Xe,"loadOpenPondHostedModels");async function Ze(){let e=await u();if(!e.token)return{catalog:null,error:"No OpenPond API key or session token is configured."};let n=new AbortController,t=setTimeout(()=>{n.abort(new Error("OpenPond provider catalog request timed out."))},Je);try{return{catalog:await Se({apiBaseUrl:e.chatApiBaseUrl,token:e.token,signal:n.signal}),error:null}}catch(o){return{catalog:null,error:M(o)}}finally{clearTimeout(t)}}a(Ze,"loadOpenPondProviderCatalog");async function*en(e){let n=await u();if(!n.token)throw new Error("OpenPond is signed out. Add an account in Settings before using OpenPond Chat.");yield*Ce({apiBaseUrl:n.chatApiBaseUrl,token:n.token,model:e.model||ae,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,requestId:e.requestId,reasoningEffort:e.reasoningEffort,maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,signal:e.signal})}a(en,"streamOpenPondHostedChatTurn");async function nn(e){let n=le(e.apiBaseUrl,"models"),t=await fetch(n,{method:"GET",headers:ce(e.token,"application/json"),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat model list failed: ${t.status} ${await ue(t)}`);return await t.json()}a(nn,"listOpChatModels");async function Se(e){let n=le(e.apiBaseUrl,"provider-catalog"),t=await fetch(n,{method:"GET",headers:ce(e.token,"application/json"),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat provider catalog failed: ${t.status} ${await ue(t)}`);let o=await t.json();return!o||typeof o!="object"||!Array.isArray(o.providers)?re.parse(o):re.parse({...o,providers:o.providers.filter(r=>r!==null&&typeof r=="object"&&me.safeParse(r.id).success)})}a(Se,"listOpChatProviderCatalog");async function*Ce(e){let n=le(e.apiBaseUrl,"chat/completions"),t=await fetch(n,{method:"POST",headers:ce(e.token,"text/event-stream",e.requestId),body:JSON.stringify(ln(e,!0)),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat request failed: ${t.status} ${await ue(t)}`);if(!t.body)throw new Error("OpenPond OpChat request failed: streaming response body is missing.");let o=new Map,r=!1,s=null,i={},c="",m=null,g=tn(t.headers),f=t.body.getReader(),w=new TextDecoder,h="",C=[],te=a(()=>{if(C.length===0)return[];let y=C.join(`
3
3
  `);if(C=[],y==="[DONE]")return r=!0,[];let d;try{d=JSON.parse(y)}catch{throw new Error("OpenPond OpChat request failed: malformed streaming event.")}if(d&&typeof d=="object"&&"error"in d)throw new Error(`OpenPond OpChat request failed: ${Ie(d)}`);i=d;let R=d&&typeof d=="object"?d:{},k=Array.isArray(R.choices)?R.choices:[],x=k[0]&&typeof k[0]=="object"?k[0]:{},G=x.delta&&typeof x.delta=="object"?x.delta:{},j=[],p=_e(G.reasoning_content);p&&(c+=p,j.push({type:"reasoning_delta",text:p,raw:d}));let T=_e(G.content);return T&&j.push({type:"text_delta",text:T,raw:d}),an(o,G.tool_calls),s=z(x.finish_reason)??s,m=dn(d)??m,j},"consumeEvent"),v=a(y=>{let d=y.endsWith("\r")?y.slice(0,-1):y;return d?d.startsWith(":")?[]:(d.startsWith("data:")&&C.push(d.slice(5).trimStart()),[]):te()},"consumeLine");try{for(;;){let y=await f.read();if(y.done)break;h+=w.decode(y.value,{stream:!0});let d=h.split(`
4
- `);h=d.pop()??"";for(let R of d)for(let k of v(R))yield k}if(h+=w.decode(),h)for(let y of v(h))yield y;for(let y of te())yield y}finally{f.releaseLock()}if(!r)throw new Error("OpenPond OpChat request failed: stream ended before [DONE].");let O=sn(o);O.length>0&&(yield{type:"tool_call_delta",toolCalls:O,raw:i}),O.length>0&&c&&(yield{type:"continuation",continuation:{kind:"chat_completions_reasoning",reasoningContent:c},raw:i});let I=on(m,g);I&&(yield{type:"usage",usage:I,raw:i}),yield{type:"finish",finishReason:s,raw:i}}a(Ce,"streamOpChatChatCompletion");function tn(e){let n=ve(e,["fireworks-prompt-tokens","prompt-tokens"]),t=ve(e,["fireworks-cached-prompt-tokens","cached-prompt-tokens"]);return t===null?null:{...n===null?{}:{prompt_tokens:n},cached_input_tokens:t,cache_telemetry_source:"provider_response_headers"}}a(tn,"cacheUsageFromResponseHeaders");function ve(e,n){for(let t of n){let o=e.get(t);if(o===null||!/^\d+$/.test(o.trim()))continue;let r=Number(o);if(Number.isSafeInteger(r)&&r>=0)return r}return null}a(ve,"firstHeaderTokenCount");function on(e,n){if(!n||rn(e))return e;let t={...e??{},cached_input_tokens:n.cached_input_tokens,cache_telemetry_source:"provider_response_headers"};return E(e?.prompt_tokens)===null&&n.prompt_tokens!==void 0&&(t.prompt_tokens=n.prompt_tokens),t}a(on,"usageWithResponseHeaderCache");function rn(e){return e?E(e.cached_input_tokens)!==null||E(e.cache_read_input_tokens)!==null||E(e.cache_creation_input_tokens)!==null||E(e.prompt_cache_hit_tokens)!==null||E(e.prompt_cache_miss_tokens)!==null?!0:E(e.prompt_tokens_details?.cached_tokens)!==null||E(e.input_tokens_details?.cached_tokens)!==null:!1}a(rn,"usageHasCacheTelemetry");function E(e){if(typeof e=="number"&&Number.isSafeInteger(e)&&e>=0)return e;if(typeof e!="string"||!/^\d+$/.test(e.trim()))return null;let n=Number(e);return Number.isSafeInteger(n)?n:null}a(E,"usageTokenCount");function an(e,n){Array.isArray(n)&&n.forEach((t,o)=>{if(!t||typeof t!="object")return;let r=t,s=typeof r.index=="number"&&Number.isInteger(r.index)?r.index:o,i=e.get(s)??{arguments:""};typeof r.id=="string"&&(i.id=r.id);let c=r.function&&typeof r.function=="object"?r.function:{};typeof c.name=="string"&&(i.name=`${i.name??""}${c.name}`),typeof c.arguments=="string"&&(i.arguments+=c.arguments),e.set(s,i)})}a(an,"mergeOpChatToolCallDeltas");function sn(e){return[...e.entries()].sort(([n],[t])=>n-t).flatMap(([,n])=>n.id&&n.name?[{id:n.id,type:"function",function:{name:n.name,arguments:n.arguments}}]:[])}a(sn,"completedOpChatToolCalls");function ln(e,n){let t={model:e.model,messages:e.messages.map(un),stream:n};return e.tools&&(t.tools=e.tools),e.toolChoice!==void 0&&(t.tool_choice=e.toolChoice),typeof e.maxTokens=="number"&&(t.max_tokens=e.maxTokens),typeof e.temperature=="number"&&(t.temperature=e.temperature),typeof e.topP=="number"&&(t.top_p=e.topP),Object.assign(t,cn(e.reasoningEffort)),t}a(ln,"buildOpChatBody");function cn(e){return e?e==="off"?{thinking:{type:"disabled"}}:{thinking:{type:"enabled"},reasoning_effort:e}:{}}a(cn,"opChatReasoningFields");function un(e){let{continuation:n,images:t,...o}=e,r=t?.length?[...typeof e.content=="string"&&e.content.trim()?[{type:"text",text:e.content}]:[],...t.map(s=>({type:"image_url",image_url:{url:s.url,...s.detail?{detail:s.detail}:{}}}))]:e.content;return e.role==="assistant"&&n?.kind==="chat_completions_reasoning"?{...o,...r!==void 0?{content:r}:{},reasoning_content:n.reasoningContent}:{...o,...r!==void 0?{content:r}:{}}}a(un,"opChatMessage");function le(e,n){let t=e.trim().replace(/\/+$/,"");if(!t)throw new Error("OpenPond OpChat API base URL is required.");return`${t}/${n}`}a(le,"opChatEndpointUrl");function ce(e,n,t){let o=e.trim();if(!o)throw new Error("OpenPond API key is required for OpChat.");let r=new Headers;r.set("Authorization",`Bearer ${o}`),r.set("Content-Type","application/json"),r.set("Accept",n),r.set("x-openpond-client","openpond-app");let s=t||Ge();return r.set("x-openpond-request-id",s),r.set("x-request-id",s),r}a(ce,"opChatHeaders");async function ue(e){let n=await e.text().catch(()=>"");if(!n)return e.statusText||`HTTP ${e.status}`;try{return Ie(JSON.parse(n))}catch{return n}}a(ue,"readOpChatError");function Ie(e){if(!e||typeof e!="object")return String(e||"unknown_error");let n=e,t=n.error;if(t&&typeof t=="object"){let o=t;return[z(o.code),z(o.type),z(o.message)].filter(Boolean).join(": ")}return[z(n.error),z(n.message)].filter(Boolean).join(": ")||JSON.stringify(e)}a(Ie,"errorMessageFromPayload");function dn(e){if(!e||typeof e!="object")return null;let n=e.usage;return!n||typeof n!="object"?null:n}a(dn,"parseUsage");function z(e){return typeof e=="string"&&e.trim()?e:null}a(z,"stringValue");function _e(e){return typeof e=="string"&&e.length>0?e:null}a(_e,"streamTextValue");import{readFileSync as pn}from"node:fs";var W;function fn(){if(W!==void 0)return W??"openpond-code bundled";try{let e=new URL("../package.json",import.meta.resolve("openpond")),n=JSON.parse(pn(e,"utf8"));W=typeof n.version=="string"?`openpond-code@${n.version}`:null}catch{W=null}return W??"openpond-code bundled"}a(fn,"getBundledRuntimeVersion");import{spawn as mn}from"node:child_process";function Re(e,n=process.platform){return n==="darwin"?{command:"open",args:[e]}:n==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}a(Re,"resolveSystemBrowserCommand");async function hn(e,n={}){let t=n.command??Re(e),o=n.handoffTimeoutMs??1500;return new Promise(r=>{let s=!1,i=null,c=a(g=>{s||(s=!0,i&&clearTimeout(i),r(g))},"finish"),m=mn(t.command,t.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});m.once("error",g=>{let f=g.code;c({opened:!1,error:f?`browser launcher ${t.command} failed (${f})`:`browser launcher ${t.command} failed`})}),m.once("close",(g,f)=>{if(g===0){c({opened:!0});return}let w=f?`signal ${f}`:`code ${g??"unknown"}`;c({opened:!1,error:`browser launcher ${t.command} exited with ${w}`})}),i=setTimeout(()=>{m.unref(),c({opened:!0})},o),i.unref()})}a(hn,"openUrlWithSystemBrowser");import{createHash as yn}from"node:crypto";function de(e){return yn("sha256").update(JSON.stringify([e.accountState.activeProfile,e.apiBaseUrl,e.chatApiBaseUrl,e.token])).digest("hex")}a(de,"authorityKey");var V=null,F=null;async function An(e){let n=de(e);if(V?.key===n&&V.expiresAt>Date.now())return V.response;if(F?.key===n)return F.promise;V=null;let t={key:n,promise:L(e.apiBaseUrl,e.token)};F=t;try{let o=await t.promise;return F===t&&o.account?.id&&(V={key:n,response:o,expiresAt:Date.now()+5e3}),o}finally{F===t&&(F=null)}}a(An,"authenticate");async function gn(){let e=await u();if(!e.token)return e;let n=await An(e),t=await u();if(de(t)!==de(e))throw new Error("openpond_account_authority_changed");if(!n.account?.id)throw new Error("openpond_authenticated_owner_unavailable");return{...t,accountState:H({...t,accountResponse:n})}}a(gn,"loadAuthenticatedOpenPondAccountContext");function Pn(e){if(!e||typeof e!="object")return null;let n=e,t=typeof n.id=="string"?n.id:null,o=typeof n.name=="string"?n.name:t;if(!t||!o)return null;let r=n.latestDeployment&&typeof n.latestDeployment=="object"?n.latestDeployment:null,s=xe.safeParse(n.sandboxActionRegistry);return{id:t,name:o,description:typeof n.description=="string"?n.description:null,visibility:typeof n.visibility=="string"?n.visibility:null,gitOwner:typeof n.gitOwner=="string"?n.gitOwner:null,gitRepo:typeof n.gitRepo=="string"?n.gitRepo:null,gitHost:typeof n.gitHost=="string"?n.gitHost:null,defaultBranch:typeof n.defaultBranch=="string"?n.defaultBranch:null,sandbox:n.sandbox===!0,sandboxActionRegistry:s.success?s.data:null,sandboxManifestHash:typeof n.sandboxManifestHash=="string"?n.sandboxManifestHash:null,sandboxManifestPath:typeof n.sandboxManifestPath=="string"?n.sandboxManifestPath:null,sandboxManifestSyncedAt:typeof n.sandboxManifestSyncedAt=="string"?n.sandboxManifestSyncedAt:n.sandboxManifestSyncedAt instanceof Date?n.sandboxManifestSyncedAt.toISOString():null,sandboxManifestError:typeof n.sandboxManifestError=="string"?n.sandboxManifestError:null,updatedAt:typeof n.updatedAt=="string"?n.updatedAt:null,latestDeployment:r?{id:typeof r.id=="string"?r.id:void 0,status:typeof r.status=="string"?r.status:void 0,deploymentDomain:typeof r.deploymentDomain=="string"?r.deploymentDomain:null,createdAt:typeof r.createdAt=="string"?r.createdAt:void 0,isProduction:typeof r.isProduction=="boolean"?r.isProduction:null,gitBranch:typeof r.gitBranch=="string"?r.gitBranch:null}:null,scheduleSummary:On(n.scheduleSummary)}}a(Pn,"normalizeApp");function S(e){return typeof e=="string"?e:e instanceof Date?e.toISOString():null}a(S,"normalizeDateString");function wn(e){if(!e||typeof e!="object")return null;let n=e,t=typeof n.id=="string"?n.id:null,o=typeof n.name=="string"?n.name:t,r=typeof n.deploymentId=="string"?n.deploymentId:null;return!t||!o||!r?null:{id:t,name:o,description:typeof n.description=="string"?n.description:null,scheduleType:typeof n.scheduleType=="string"?n.scheduleType:"cron",scheduleExpression:typeof n.scheduleExpression=="string"?n.scheduleExpression:"",enabled:!!n.enabled,rawEnabled:typeof n.rawEnabled=="boolean"?n.rawEnabled:void 0,syncStatus:typeof n.syncStatus=="string"?n.syncStatus:null,syncError:typeof n.syncError=="string"?n.syncError:null,startAt:S(n.startAt),endAt:S(n.endAt),maxRuns:typeof n.maxRuns=="number"?n.maxRuns:null,executionCount:typeof n.executionCount=="number"?n.executionCount:null,lifecycleStatus:typeof n.lifecycleStatus=="string"?n.lifecycleStatus:null,lifecycleReason:typeof n.lifecycleReason=="string"?n.lifecycleReason:null,lastExecutionAt:S(n.lastExecutionAt),lastExecutionStatus:typeof n.lastExecutionStatus=="string"?n.lastExecutionStatus:null,lastRunNowAt:S(n.lastRunNowAt),lastRunNowStatus:typeof n.lastRunNowStatus=="string"?n.lastRunNowStatus:null,updatedAt:S(n.updatedAt)??new Date().toISOString(),deploymentId:r,isProduction:typeof n.isProduction=="boolean"?n.isProduction:void 0,payload:n.payload}}a(wn,"normalizeSchedule");function On(e){if(!e||typeof e!="object")return null;let n=e,t=Array.isArray(n.schedules)?n.schedules.map(wn).filter(i=>!!i):[],o=typeof n.total=="number"?n.total:t.length,r=typeof n.active=="number"?n.active:t.filter(i=>i.enabled).length,s=typeof n.paused=="number"?n.paused:Math.max(0,o-r);return{total:o,active:r,paused:s,enabled:typeof n.enabled=="number"?n.enabled:r,disabled:typeof n.disabled=="number"?n.disabled:s,nextRunAt:S(n.nextRunAt),lastRunAt:S(n.lastRunAt),schedules:t,truncated:typeof n.truncated=="boolean"?n.truncated:void 0}}a(On,"normalizeScheduleSummary");async function xn(e){let n=Array.isArray(e.config.accounts)?e.config.accounts:[],t=await Promise.all(n.map(async o=>{let r=q(o.handle,o.baseUrl),s=Z(o);if(!s)return[r,{response:null,authFailed:!1,error:null}];try{return[r,{response:await L(Q(o,e.config),s),authFailed:!1,error:null}]}catch(i){return[r,{response:null,authFailed:!0,error:M(i)}]}}));return Object.fromEntries(t)}a(xn,"loadAccountProfileLookups");async function Te(e){let n=await xn(e),t=e.account?n[q(e.account.handle,e.account.baseUrl)]??null:null,o=t?.response??null,r=e.token&&t?.authFailed?t.error||"OpenPond account authentication failed.":null;return{account:H({...e,accountResponse:o,accountProfiles:n,authFailed:!!r,error:r})}}a(Te,"loadOpenPondAccountStateForContext");async function bn(){return Te(await u())}a(bn,"loadOpenPondAccountState");async function Ne(e={}){let n=await u(),t=Te(n);if(!n.token)return{...await t,apps:[],error:"No OpenPond API key or session token is configured."};let[o,r]=await Promise.allSettled([t,he(n.apiBaseUrl,n.token,{handle:n.account?.handle,limit:e.limit??20,offset:e.offset??0,includeScheduled:e.includeScheduled??!0})]);if(o.status==="rejected")throw o.reason;return{account:o.value.account,apps:r.status==="fulfilled"?r.value.map(Pn).filter(s=>!!s):[],error:r.status==="rejected"?M(r.reason):null}}a(Ne,"loadOpenPondApps");async function Un(e){let n=await u();if(!n.token)throw new Error("No OpenPond API key or session token is configured.");return{account:n,response:await ye(n.apiBaseUrl,n.token,e)}}a(Un,"createOpenPondRepoApp");import{createHash as kn}from"node:crypto";function Bn(e){return`account-${kn("sha256").update(e).digest("hex").slice(0,8)}`}a(Bn,"fallbackHandleForApiKey");function ne(e){let n=e?.trim();return n?n.replace(/^@/,""):null}a(ne,"normalizeDerivedHandle");async function En(e,n){let t=ne(e.handle);if(t)return t;try{let r=(await L(n,e.apiKey)).account,s=ne(r.handle)??ne(r.email?.split("@")[0])??ne(r.id);if(s)return s}catch{}return Bn(e.apiKey)}a(En,"deriveHandleForApiKey");async function vn(e){let n=e.baseUrl??N,t=l(e.apiBaseUrl)??Y(n)??B,o=l(e.chatApiBaseUrl),r=await En(e,t);return await Oe({handle:r,apiKey:e.apiKey,baseUrl:n,apiBaseUrl:t,chatApiBaseUrl:o,environment:e.environment??"production",setActive:e.setActive}),u(r,n)}a(vn,"saveOpenPondAccount");function _n(e,n,t){let o=l(t),r=e.findIndex(i=>P(i.handle,n)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,n));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${n}; select one with its base URL.`);return-1}a(_n,"findAccountIndex");async function Sn(e){let n=e.handle.trim();if(!n)throw new Error("OpenPond account handle is required.");return await D(t=>{let o=(t.accounts??[]).map(m=>({...m})),r=_n(o,n,e.baseUrl);if(r===-1)throw new Error(`OpenPond account not found: ${n}`);let s=o[r],i=A(t.activeProfile),c=!!(i&&U(s,i));o.splice(r,1),t.accounts=o,(c||!i||!o.some(m=>U(m,i)))&&(o[0]?t.activeProfile=_(o[0]):delete t.activeProfile)}),u()}a(Sn,"removeOpenPondAccount");async function Cn(){let e;return await D(n=>{let t=A(n.activeProfile),o=(n.accounts??[]).map(s=>({...s})),r=t?o.findIndex(s=>U(s,t)):0;if(r<0||!o[r])throw new Error("No active OpenPond account to log out.");e={...o[r]},delete e.apiKey,delete e.session,o[r]=e,n.accounts=o}),u(e.handle,e.baseUrl)}a(Cn,"signOutOpenPondAccount");function In(e,n,t){let o=l(t),r=e.findIndex(i=>P(i.handle,n)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,n));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${n}; select one with its current base URL.`);return-1}a(In,"findAccountIndex");function pe(e,n,t){if(t===void 0)return;let o=l(t);if(o){e[n]=o;return}(t===null||t.trim()==="")&&delete e[n]}a(pe,"applyOptionalUrl");async function Rn(e){let n=e.handle.trim();if(!n)throw new Error("OpenPond account handle is required.");let t;return await D(o=>{let r=(o.accounts??[]).map(f=>({...f})),s=In(r,n,e.currentBaseUrl);if(s===-1)throw new Error(`OpenPond account not found: ${n}`);let i=r[s];if(t={...i},e.apiKey!==void 0){let f=e.apiKey.trim();if(!f)throw new Error("OpenPond API key cannot be empty.");t.apiKey=f,delete t.session,delete t.token}if(pe(t,"baseUrl",e.baseUrl),pe(t,"apiBaseUrl",e.apiBaseUrl),pe(t,"chatApiBaseUrl",e.chatApiBaseUrl),e.environment===null?delete t.environment:typeof e.environment=="string"&&e.environment.trim()&&(t.environment=e.environment.trim()),r.findIndex((f,w)=>w!==s&&P(f.handle,t.handle)&&b(f.baseUrl,t.baseUrl))!==-1)throw new Error("Another OpenPond account already uses that handle and base URL.");let m=A(o.activeProfile),g=!!(m&&U(i,m));r[s]=t,o.accounts=r,o.activeProfile=e.setActive||g?_(t):o.activeProfile}),u(t.handle,t.baseUrl)}a(Rn,"updateOpenPondAccountConfig");async function Tn(e){let n=await u();if(!n.token)throw new Error("OpenPond is signed out. Add an account before reading app config.");return Ae(n.apiBaseUrl,n.token,e.appId)}a(Tn,"getOpenPondAppEnvironment");function Nn(e,n){let t="",o=a(r=>{r.startsWith(e)&&n(JSON.parse(r.slice(e.length)))},"processLine");return{push(r){for(t+=r;;){let s=Ln(t);if(s<0)return;let i=t.slice(0,s).replace(/\r$/,""),c=t[s]==="\r"&&t[s+1]===`
4
+ `);h=d.pop()??"";for(let R of d)for(let k of v(R))yield k}if(h+=w.decode(),h)for(let y of v(h))yield y;for(let y of te())yield y}finally{f.releaseLock()}if(!r)throw new Error("OpenPond OpChat request failed: stream ended before [DONE].");let O=sn(o);O.length>0&&(yield{type:"tool_call_delta",toolCalls:O,raw:i}),O.length>0&&c&&(yield{type:"continuation",continuation:{kind:"chat_completions_reasoning",reasoningContent:c},raw:i});let I=on(m,g);I&&(yield{type:"usage",usage:I,raw:i}),yield{type:"finish",finishReason:s,raw:i}}a(Ce,"streamOpChatChatCompletion");function tn(e){let n=ve(e,["fireworks-prompt-tokens","prompt-tokens"]),t=ve(e,["fireworks-cached-prompt-tokens","cached-prompt-tokens"]);return t===null?null:{...n===null?{}:{prompt_tokens:n},cached_input_tokens:t,cache_telemetry_source:"provider_response_headers"}}a(tn,"cacheUsageFromResponseHeaders");function ve(e,n){for(let t of n){let o=e.get(t);if(o===null||!/^\d+$/.test(o.trim()))continue;let r=Number(o);if(Number.isSafeInteger(r)&&r>=0)return r}return null}a(ve,"firstHeaderTokenCount");function on(e,n){if(!n||rn(e))return e;let t={...e??{},cached_input_tokens:n.cached_input_tokens,cache_telemetry_source:"provider_response_headers"};return E(e?.prompt_tokens)===null&&n.prompt_tokens!==void 0&&(t.prompt_tokens=n.prompt_tokens),t}a(on,"usageWithResponseHeaderCache");function rn(e){return e?E(e.cached_input_tokens)!==null||E(e.cache_read_input_tokens)!==null||E(e.cache_creation_input_tokens)!==null||E(e.prompt_cache_hit_tokens)!==null||E(e.prompt_cache_miss_tokens)!==null?!0:E(e.prompt_tokens_details?.cached_tokens)!==null||E(e.input_tokens_details?.cached_tokens)!==null:!1}a(rn,"usageHasCacheTelemetry");function E(e){if(typeof e=="number"&&Number.isSafeInteger(e)&&e>=0)return e;if(typeof e!="string"||!/^\d+$/.test(e.trim()))return null;let n=Number(e);return Number.isSafeInteger(n)?n:null}a(E,"usageTokenCount");function an(e,n){Array.isArray(n)&&n.forEach((t,o)=>{if(!t||typeof t!="object")return;let r=t,s=typeof r.index=="number"&&Number.isInteger(r.index)?r.index:o,i=e.get(s)??{arguments:""};typeof r.id=="string"&&(i.id=r.id);let c=r.function&&typeof r.function=="object"?r.function:{};typeof c.name=="string"&&(i.name=`${i.name??""}${c.name}`),typeof c.arguments=="string"&&(i.arguments+=c.arguments),e.set(s,i)})}a(an,"mergeOpChatToolCallDeltas");function sn(e){return[...e.entries()].sort(([n],[t])=>n-t).flatMap(([,n])=>n.id&&n.name?[{id:n.id,type:"function",function:{name:n.name,arguments:n.arguments}}]:[])}a(sn,"completedOpChatToolCalls");function ln(e,n){let t={model:e.model,messages:e.messages.map(un),stream:n};return e.tools&&(t.tools=e.tools),e.toolChoice!==void 0&&(t.tool_choice=e.toolChoice),typeof e.maxTokens=="number"&&(t.max_tokens=e.maxTokens),typeof e.temperature=="number"&&(t.temperature=e.temperature),typeof e.topP=="number"&&(t.top_p=e.topP),Object.assign(t,cn(e.reasoningEffort)),t}a(ln,"buildOpChatBody");function cn(e){return e?e==="off"?{thinking:{type:"disabled"}}:{thinking:{type:"enabled"},reasoning_effort:e}:{}}a(cn,"opChatReasoningFields");function un(e){let{continuation:n,images:t,...o}=e,r=t?.length?[...typeof e.content=="string"&&e.content.trim()?[{type:"text",text:e.content}]:[],...t.map(s=>({type:"image_url",image_url:{url:s.url,...s.detail?{detail:s.detail}:{}}}))]:e.content;return e.role==="assistant"&&n?.kind==="chat_completions_reasoning"?{...o,...r!==void 0?{content:r}:{},reasoning_content:n.reasoningContent}:{...o,...r!==void 0?{content:r}:{}}}a(un,"opChatMessage");function le(e,n){let t=e.trim().replace(/\/+$/,"");if(!t)throw new Error("OpenPond OpChat API base URL is required.");return`${t}/${n}`}a(le,"opChatEndpointUrl");function ce(e,n,t){let o=e.trim();if(!o)throw new Error("OpenPond API key is required for OpChat.");let r=new Headers;r.set("Authorization",`Bearer ${o}`),r.set("Content-Type","application/json"),r.set("Accept",n),r.set("x-openpond-client","openpond-app");let s=t||Ge();return r.set("x-openpond-request-id",s),r.set("x-request-id",s),r}a(ce,"opChatHeaders");async function ue(e){let n=await e.text().catch(()=>"");if(!n)return e.statusText||`HTTP ${e.status}`;try{return Ie(JSON.parse(n))}catch{return n}}a(ue,"readOpChatError");function Ie(e){if(!e||typeof e!="object")return String(e||"unknown_error");let n=e,t=n.error;if(t&&typeof t=="object"){let o=t;return[z(o.code),z(o.type),z(o.message)].filter(Boolean).join(": ")}return[z(n.error),z(n.message)].filter(Boolean).join(": ")||JSON.stringify(e)}a(Ie,"errorMessageFromPayload");function dn(e){if(!e||typeof e!="object")return null;let n=e.usage;return!n||typeof n!="object"?null:n}a(dn,"parseUsage");function z(e){return typeof e=="string"&&e.trim()?e:null}a(z,"stringValue");function _e(e){return typeof e=="string"&&e.length>0?e:null}a(_e,"streamTextValue");import{readFileSync as pn}from"node:fs";var W;function fn(){if(W!==void 0)return W??"openpond-code bundled";try{let e=new URL("../package.json",import.meta.resolve("openpond")),n=JSON.parse(pn(e,"utf8"));W=typeof n.version=="string"?`openpond-code@${n.version}`:null}catch{W=null}return W??"openpond-code bundled"}a(fn,"getBundledRuntimeVersion");import{spawn as mn}from"node:child_process";function Re(e,n=process.platform){return n==="darwin"?{command:"open",args:[e]}:n==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}a(Re,"resolveSystemBrowserCommand");async function hn(e,n={}){let t=n.command??Re(e),o=n.handoffTimeoutMs??1500;return new Promise(r=>{let s=!1,i=null,c=a(g=>{s||(s=!0,i&&clearTimeout(i),r(g))},"finish"),m=mn(t.command,t.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});m.once("error",g=>{let f=g.code;c({opened:!1,error:f?`browser launcher ${t.command} failed (${f})`:`browser launcher ${t.command} failed`})}),m.once("close",(g,f)=>{if(g===0){c({opened:!0});return}let w=f?`signal ${f}`:`code ${g??"unknown"}`;c({opened:!1,error:`browser launcher ${t.command} exited with ${w}`})}),i=setTimeout(()=>{m.unref(),c({opened:!0})},o),i.unref()})}a(hn,"openUrlWithSystemBrowser");import{createHash as yn}from"node:crypto";function de(e){return yn("sha256").update(JSON.stringify([e.accountState.activeProfile,e.apiBaseUrl,e.chatApiBaseUrl,e.token])).digest("hex")}a(de,"authorityKey");var V=null,F=null;async function An(e){let n=de(e);if(V?.key===n&&V.expiresAt>Date.now())return V.response;if(F?.key===n)return F.promise;V=null;let t={key:n,promise:L(e.apiBaseUrl,e.token)};F=t;try{let o=await t.promise;return F===t&&o.account?.id&&(V={key:n,response:o,expiresAt:Date.now()+5e3}),o}finally{F===t&&(F=null)}}a(An,"authenticate");async function gn(){let e=await u();if(!e.token)return e;let n=await An(e),t=await u();if(de(t)!==de(e))throw new Error("openpond_account_authority_changed");if(!n.account?.id)throw new Error("openpond_authenticated_owner_unavailable");return{...t,accountState:H({...t,accountResponse:n})}}a(gn,"loadAuthenticatedOpenPondAccountContext");function Pn(e){if(!e||typeof e!="object")return null;let n=e,t=typeof n.id=="string"?n.id:null,o=typeof n.name=="string"?n.name:t;if(!t||!o)return null;let r=n.latestDeployment&&typeof n.latestDeployment=="object"?n.latestDeployment:null,s=he.safeParse(n.sandboxActionRegistry);return{id:t,name:o,description:typeof n.description=="string"?n.description:null,visibility:typeof n.visibility=="string"?n.visibility:null,gitOwner:typeof n.gitOwner=="string"?n.gitOwner:null,gitRepo:typeof n.gitRepo=="string"?n.gitRepo:null,gitHost:typeof n.gitHost=="string"?n.gitHost:null,defaultBranch:typeof n.defaultBranch=="string"?n.defaultBranch:null,sandbox:n.sandbox===!0,sandboxActionRegistry:s.success?s.data:null,sandboxManifestHash:typeof n.sandboxManifestHash=="string"?n.sandboxManifestHash:null,sandboxManifestPath:typeof n.sandboxManifestPath=="string"?n.sandboxManifestPath:null,sandboxManifestSyncedAt:typeof n.sandboxManifestSyncedAt=="string"?n.sandboxManifestSyncedAt:n.sandboxManifestSyncedAt instanceof Date?n.sandboxManifestSyncedAt.toISOString():null,sandboxManifestError:typeof n.sandboxManifestError=="string"?n.sandboxManifestError:null,updatedAt:typeof n.updatedAt=="string"?n.updatedAt:null,latestDeployment:r?{id:typeof r.id=="string"?r.id:void 0,status:typeof r.status=="string"?r.status:void 0,deploymentDomain:typeof r.deploymentDomain=="string"?r.deploymentDomain:null,createdAt:typeof r.createdAt=="string"?r.createdAt:void 0,isProduction:typeof r.isProduction=="boolean"?r.isProduction:null,gitBranch:typeof r.gitBranch=="string"?r.gitBranch:null}:null,scheduleSummary:On(n.scheduleSummary)}}a(Pn,"normalizeApp");function S(e){return typeof e=="string"?e:e instanceof Date?e.toISOString():null}a(S,"normalizeDateString");function wn(e){if(!e||typeof e!="object")return null;let n=e,t=typeof n.id=="string"?n.id:null,o=typeof n.name=="string"?n.name:t,r=typeof n.deploymentId=="string"?n.deploymentId:null;return!t||!o||!r?null:{id:t,name:o,description:typeof n.description=="string"?n.description:null,scheduleType:typeof n.scheduleType=="string"?n.scheduleType:"cron",scheduleExpression:typeof n.scheduleExpression=="string"?n.scheduleExpression:"",enabled:!!n.enabled,rawEnabled:typeof n.rawEnabled=="boolean"?n.rawEnabled:void 0,syncStatus:typeof n.syncStatus=="string"?n.syncStatus:null,syncError:typeof n.syncError=="string"?n.syncError:null,startAt:S(n.startAt),endAt:S(n.endAt),maxRuns:typeof n.maxRuns=="number"?n.maxRuns:null,executionCount:typeof n.executionCount=="number"?n.executionCount:null,lifecycleStatus:typeof n.lifecycleStatus=="string"?n.lifecycleStatus:null,lifecycleReason:typeof n.lifecycleReason=="string"?n.lifecycleReason:null,lastExecutionAt:S(n.lastExecutionAt),lastExecutionStatus:typeof n.lastExecutionStatus=="string"?n.lastExecutionStatus:null,lastRunNowAt:S(n.lastRunNowAt),lastRunNowStatus:typeof n.lastRunNowStatus=="string"?n.lastRunNowStatus:null,updatedAt:S(n.updatedAt)??new Date().toISOString(),deploymentId:r,isProduction:typeof n.isProduction=="boolean"?n.isProduction:void 0,payload:n.payload}}a(wn,"normalizeSchedule");function On(e){if(!e||typeof e!="object")return null;let n=e,t=Array.isArray(n.schedules)?n.schedules.map(wn).filter(i=>!!i):[],o=typeof n.total=="number"?n.total:t.length,r=typeof n.active=="number"?n.active:t.filter(i=>i.enabled).length,s=typeof n.paused=="number"?n.paused:Math.max(0,o-r);return{total:o,active:r,paused:s,enabled:typeof n.enabled=="number"?n.enabled:r,disabled:typeof n.disabled=="number"?n.disabled:s,nextRunAt:S(n.nextRunAt),lastRunAt:S(n.lastRunAt),schedules:t,truncated:typeof n.truncated=="boolean"?n.truncated:void 0}}a(On,"normalizeScheduleSummary");async function xn(e){let n=Array.isArray(e.config.accounts)?e.config.accounts:[],t=await Promise.all(n.map(async o=>{let r=q(o.handle,o.baseUrl),s=Z(o);if(!s)return[r,{response:null,authFailed:!1,error:null}];try{return[r,{response:await L(Q(o,e.config),s),authFailed:!1,error:null}]}catch(i){return[r,{response:null,authFailed:!0,error:M(i)}]}}));return Object.fromEntries(t)}a(xn,"loadAccountProfileLookups");async function Te(e){let n=await xn(e),t=e.account?n[q(e.account.handle,e.account.baseUrl)]??null:null,o=t?.response??null,r=e.token&&t?.authFailed?t.error||"OpenPond account authentication failed.":null;return{account:H({...e,accountResponse:o,accountProfiles:n,authFailed:!!r,error:r})}}a(Te,"loadOpenPondAccountStateForContext");async function bn(){return Te(await u())}a(bn,"loadOpenPondAccountState");async function Ne(e={}){let n=await u(),t=Te(n);if(!n.token)return{...await t,apps:[],error:"No OpenPond API key or session token is configured."};let[o,r]=await Promise.allSettled([t,ye(n.apiBaseUrl,n.token,{handle:n.account?.handle,limit:e.limit??20,offset:e.offset??0,includeScheduled:e.includeScheduled??!0})]);if(o.status==="rejected")throw o.reason;return{account:o.value.account,apps:r.status==="fulfilled"?r.value.map(Pn).filter(s=>!!s):[],error:r.status==="rejected"?M(r.reason):null}}a(Ne,"loadOpenPondApps");async function Un(e){let n=await u();if(!n.token)throw new Error("No OpenPond API key or session token is configured.");return{account:n,response:await Ae(n.apiBaseUrl,n.token,e)}}a(Un,"createOpenPondRepoApp");import{createHash as kn}from"node:crypto";function Bn(e){return`account-${kn("sha256").update(e).digest("hex").slice(0,8)}`}a(Bn,"fallbackHandleForApiKey");function ne(e){let n=e?.trim();return n?n.replace(/^@/,""):null}a(ne,"normalizeDerivedHandle");async function En(e,n){let t=ne(e.handle);if(t)return t;try{let r=(await L(n,e.apiKey)).account,s=ne(r.handle)??ne(r.email?.split("@")[0])??ne(r.id);if(s)return s}catch{}return Bn(e.apiKey)}a(En,"deriveHandleForApiKey");async function vn(e){let n=e.baseUrl??N,t=l(e.apiBaseUrl)??Y(n)??B,o=l(e.chatApiBaseUrl),r=await En(e,t);return await xe({handle:r,apiKey:e.apiKey,baseUrl:n,apiBaseUrl:t,chatApiBaseUrl:o,environment:e.environment??"production",setActive:e.setActive}),u(r,n)}a(vn,"saveOpenPondAccount");function _n(e,n,t){let o=l(t),r=e.findIndex(i=>P(i.handle,n)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,n));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${n}; select one with its base URL.`);return-1}a(_n,"findAccountIndex");async function Sn(e){let n=e.handle.trim();if(!n)throw new Error("OpenPond account handle is required.");return await D(t=>{let o=(t.accounts??[]).map(m=>({...m})),r=_n(o,n,e.baseUrl);if(r===-1)throw new Error(`OpenPond account not found: ${n}`);let s=o[r],i=A(t.activeProfile),c=!!(i&&U(s,i));o.splice(r,1),t.accounts=o,(c||!i||!o.some(m=>U(m,i)))&&(o[0]?t.activeProfile=_(o[0]):delete t.activeProfile)}),u()}a(Sn,"removeOpenPondAccount");async function Cn(){let e;return await D(n=>{let t=A(n.activeProfile),o=(n.accounts??[]).map(s=>({...s})),r=t?o.findIndex(s=>U(s,t)):0;if(r<0||!o[r])throw new Error("No active OpenPond account to log out.");e={...o[r]},delete e.apiKey,delete e.session,o[r]=e,n.accounts=o}),u(e.handle,e.baseUrl)}a(Cn,"signOutOpenPondAccount");function In(e,n,t){let o=l(t),r=e.findIndex(i=>P(i.handle,n)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,n));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${n}; select one with its current base URL.`);return-1}a(In,"findAccountIndex");function pe(e,n,t){if(t===void 0)return;let o=l(t);if(o){e[n]=o;return}(t===null||t.trim()==="")&&delete e[n]}a(pe,"applyOptionalUrl");async function Rn(e){let n=e.handle.trim();if(!n)throw new Error("OpenPond account handle is required.");let t;return await D(o=>{let r=(o.accounts??[]).map(f=>({...f})),s=In(r,n,e.currentBaseUrl);if(s===-1)throw new Error(`OpenPond account not found: ${n}`);let i=r[s];if(t={...i},e.apiKey!==void 0){let f=e.apiKey.trim();if(!f)throw new Error("OpenPond API key cannot be empty.");t.apiKey=f,delete t.session,delete t.token}if(pe(t,"baseUrl",e.baseUrl),pe(t,"apiBaseUrl",e.apiBaseUrl),pe(t,"chatApiBaseUrl",e.chatApiBaseUrl),e.environment===null?delete t.environment:typeof e.environment=="string"&&e.environment.trim()&&(t.environment=e.environment.trim()),r.findIndex((f,w)=>w!==s&&P(f.handle,t.handle)&&b(f.baseUrl,t.baseUrl))!==-1)throw new Error("Another OpenPond account already uses that handle and base URL.");let m=A(o.activeProfile),g=!!(m&&U(i,m));r[s]=t,o.accounts=r,o.activeProfile=e.setActive||g?_(t):o.activeProfile}),u(t.handle,t.baseUrl)}a(Rn,"updateOpenPondAccountConfig");async function Tn(e){let n=await u();if(!n.token)throw new Error("OpenPond is signed out. Add an account before reading app config.");return ge(n.apiBaseUrl,n.token,e.appId)}a(Tn,"getOpenPondAppEnvironment");function Nn(e,n){let t="",o=a(r=>{r.startsWith(e)&&n(JSON.parse(r.slice(e.length)))},"processLine");return{push(r){for(t+=r;;){let s=Ln(t);if(s<0)return;let i=t.slice(0,s).replace(/\r$/,""),c=t[s]==="\r"&&t[s+1]===`
5
5
  `?2:1;t=t.slice(s+c),o(i)}},flush(){let r=t.trimEnd();t="",r&&o(r)}}}a(Nn,"createReadyLineParser");function Ln(e){let n=e.indexOf(`
6
6
  `),t=e.indexOf("\r");return n<0?t:t<0?n:Math.min(n,t)}a(Ln,"nextLineEnd");export{u as a,Ve as b,gn as c,bn as d,Ne as e,Un as f,Xe as g,Ze as h,en as i,Ce as j,vn as k,Sn as l,Cn as m,Rn as n,Tn as o,fn as p,Nn as q,hn as r};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as c}from"./chunk-PCSIOUHF.js";import{a as l}from"./chunk-7KWD2I6W.js";import{d as o,e as d}from"./chunk-57TRXBLT.js";import{a as u}from"./chunk-DIO5CB6U.js";import{a as s}from"./chunk-FTQLQJQV.js";import{randomUUID as p}from"node:crypto";function f(e){let r=l(e.usage),t=e.requestKind??h({session:e.session,turn:e.turn??null,requestOrdinal:e.requestOrdinal}),n=e.completedAt,g=e.error&&d(e.error)||null;return{id:`usage_${p()}`,requestId:e.requestId,requestOrdinal:e.requestOrdinal,sessionId:e.session.id,turnId:e.turn?.id??null,provider:e.provider,model:e.model||"unknown",route:U(e.provider),source:r.promptTokens!==null||r.completionTokens!==null||r.totalTokens!==null?"provider_usage":"missing",requestKind:t,visibility:b(e.session,t),status:e.status,startedAt:e.startedAt,completedAt:n,durationMs:n?Math.max(0,Date.parse(n)-Date.parse(e.startedAt)):null,firstTokenMs:e.firstTokenMs,promptTokens:r.promptTokens,cachedPromptTokens:r.cachedPromptTokens,uncachedPromptTokens:r.uncachedPromptTokens,cacheWritePromptTokens:r.cacheWritePromptTokens,cacheTelemetrySource:r.cacheTelemetrySource,completionTokens:r.completionTokens,totalTokens:r.totalTokens,errorType:e.error?R(e.error):null,errorMessage:g,attribution:M({session:e.session,turn:e.turn??null,requestKind:t,requestOrdinal:e.requestOrdinal})}}s(f,"createProviderRequestUsageRecord");async function P(e){let r=new a(e);return await r.start(),r}s(P,"startProviderRequestUsageRecorder");var a=class{constructor(r){this.input=r}input;static{s(this,"ProviderRequestUsageRecorder")}latestUsage=null;firstTokenMs=null;startedAt=o();startedAtMs=Date.now();async start(){await this.upsert("started",null)}observeDelta(r){this.firstTokenMs===null&&k(r)&&(this.firstTokenMs=Math.max(0,Date.now()-this.startedAtMs)),r.usage&&(this.latestUsage=r.usage)}async complete(){await this.upsert("completed",o())}async fail(r,t){await this.upsert(t,o(),r)}async upsert(r,t,n){await this.input.upsert(f({session:this.input.session,turn:this.input.turn,provider:this.input.provider,model:this.input.model,requestId:this.input.requestId,requestOrdinal:this.input.requestOrdinal,requestKind:this.input.requestKind,startedAt:this.startedAt,completedAt:t,firstTokenMs:this.firstTokenMs,usage:this.latestUsage,status:r,error:n}))}};function k(e){return!!(e.text||e.reasoningText||e.toolCalls&&e.toolCalls.length>0)}s(k,"modelUsageDeltaHasOutput");function U(e){return e==="openpond"?"openpond_hosted":e==="codex"?"codex_app_server":c(e)?"local_byok":"unknown"}s(U,"modelUsageRoute");function h(e){let r=i(e.turn);return r?.subagentRunId||r?.workflowKind==="subagent"?"subagent":e.turn&&m(e.turn)?"slash_command":e.requestOrdinal===0?"chat_turn":"tool_loop"}s(h,"modelUsageRequestKind");function b(e,r){return e.systemKind?"system":r==="context_compaction"||r==="create_improve_planner"||r==="harness_refiner"||r==="subagent"||r==="codex_context"?"background":"user_facing"}s(b,"modelUsageVisibility");function M(e){let r=i(e.turn),t=m(e.turn);return{surface:r?.surface??q(e.session,e.requestKind),workflowKind:r?.workflowKind??T(e.requestKind,e.requestOrdinal,t),sessionId:e.session.id,turnId:e.turn?.id??null,goalId:r?.goalId??null,subagentRunId:r?.subagentRunId??null,subagentRoleId:r?.subagentRoleId??null,createImproveRunId:r?.createImproveRunId??e.turn?.createImproveRun?.id??null,commandName:t,commandSource:r?.commandSource??v(e.turn,t),appId:e.session.appId,workspaceKind:e.session.workspaceKind??null,workspaceId:e.session.workspaceId??null,localProjectId:e.session.localProjectId??null,cloudProjectId:e.session.cloudProjectId??null,sourceEventSequence:null}}s(M,"modelUsageAttribution");function q(e,r){return r==="create_improve_planner"?"create_improve":r==="harness_refiner"?"system":r==="context_compaction"?"compaction":"chat"}s(q,"usageSurface");function T(e,r,t){return e==="create_improve_planner"?"planner":e==="harness_refiner"?"other":e==="context_compaction"?"summary":e==="subagent"?"subagent":t||e==="slash_command"?"slash_command":r===0?"direct_chat":"tool_loop"}s(T,"usageWorkflowKind");function i(e){if(!e)return null;let r=u.safeParse(e.metadata?.usageAttribution);return r.success?r.data:null}s(i,"usageRequestAttributionFromTurn");function m(e){if(!e)return null;let t=i(e)?.commandName;if(typeof t=="string"&&t.trim())return t.trim();let n=e.createImproveRun?.command;return typeof n=="string"&&n.trim().startsWith("/")?n.trim():null}s(m,"commandNameFromTurn");function v(e,r){return e?.createImproveRun?.metadata?.source==="native_model_tool"?"model_tool":r?"prompt_parse":null}s(v,"commandSourceFromTurn");function R(e){return e instanceof Error&&e.name.trim()?e.name.trim():"Error"}s(R,"errorType");export{f as a,P as b};
2
+ import{b as d}from"./chunk-A3L74U3W.js";import{a as c}from"./chunk-7KWD2I6W.js";import{d as o,e as l}from"./chunk-FSQWAANK.js";import{a as u}from"./chunk-WYZWDMMF.js";import{a as s}from"./chunk-FTQLQJQV.js";import{randomUUID as p}from"node:crypto";function f(e){let r=c(e.usage),t=e.requestKind??h({session:e.session,turn:e.turn??null,requestOrdinal:e.requestOrdinal}),n=e.completedAt,g=e.error&&l(e.error)||null;return{id:`usage_${p()}`,requestId:e.requestId,requestOrdinal:e.requestOrdinal,sessionId:e.session.id,turnId:e.turn?.id??null,provider:e.provider,model:e.model||"unknown",route:U(e.provider),source:r.promptTokens!==null||r.completionTokens!==null||r.totalTokens!==null?"provider_usage":"missing",requestKind:t,visibility:b(e.session,t),status:e.status,startedAt:e.startedAt,completedAt:n,durationMs:n?Math.max(0,Date.parse(n)-Date.parse(e.startedAt)):null,firstTokenMs:e.firstTokenMs,promptTokens:r.promptTokens,cachedPromptTokens:r.cachedPromptTokens,uncachedPromptTokens:r.uncachedPromptTokens,cacheWritePromptTokens:r.cacheWritePromptTokens,cacheTelemetrySource:r.cacheTelemetrySource,completionTokens:r.completionTokens,totalTokens:r.totalTokens,errorType:e.error?R(e.error):null,errorMessage:g,attribution:M({session:e.session,turn:e.turn??null,requestKind:t,requestOrdinal:e.requestOrdinal})}}s(f,"createProviderRequestUsageRecord");async function P(e){let r=new a(e);return await r.start(),r}s(P,"startProviderRequestUsageRecorder");var a=class{constructor(r){this.input=r}input;static{s(this,"ProviderRequestUsageRecorder")}latestUsage=null;firstTokenMs=null;startedAt=o();startedAtMs=Date.now();async start(){await this.upsert("started",null)}observeDelta(r){this.firstTokenMs===null&&k(r)&&(this.firstTokenMs=Math.max(0,Date.now()-this.startedAtMs)),r.usage&&(this.latestUsage=r.usage)}async complete(){await this.upsert("completed",o())}async fail(r,t){await this.upsert(t,o(),r)}async upsert(r,t,n){await this.input.upsert(f({session:this.input.session,turn:this.input.turn,provider:this.input.provider,model:this.input.model,requestId:this.input.requestId,requestOrdinal:this.input.requestOrdinal,requestKind:this.input.requestKind,startedAt:this.startedAt,completedAt:t,firstTokenMs:this.firstTokenMs,usage:this.latestUsage,status:r,error:n}))}};function k(e){return!!(e.text||e.reasoningText||e.toolCalls&&e.toolCalls.length>0)}s(k,"modelUsageDeltaHasOutput");function U(e){return e==="openpond"?"openpond_hosted":e==="codex"?"codex_app_server":d(e)?"local_byok":"unknown"}s(U,"modelUsageRoute");function h(e){let r=i(e.turn);return r?.subagentRunId||r?.workflowKind==="subagent"?"subagent":e.turn&&m(e.turn)?"slash_command":e.requestOrdinal===0?"chat_turn":"tool_loop"}s(h,"modelUsageRequestKind");function b(e,r){return e.systemKind?"system":r==="context_compaction"||r==="create_improve_planner"||r==="harness_refiner"||r==="subagent"||r==="codex_context"?"background":"user_facing"}s(b,"modelUsageVisibility");function M(e){let r=i(e.turn),t=m(e.turn);return{surface:r?.surface??q(e.session,e.requestKind),workflowKind:r?.workflowKind??T(e.requestKind,e.requestOrdinal,t),sessionId:e.session.id,turnId:e.turn?.id??null,goalId:r?.goalId??null,subagentRunId:r?.subagentRunId??null,subagentRoleId:r?.subagentRoleId??null,createImproveRunId:r?.createImproveRunId??e.turn?.createImproveRun?.id??null,commandName:t,commandSource:r?.commandSource??v(e.turn,t),appId:e.session.appId,workspaceKind:e.session.workspaceKind??null,workspaceId:e.session.workspaceId??null,localProjectId:e.session.localProjectId??null,cloudProjectId:e.session.cloudProjectId??null,sourceEventSequence:null}}s(M,"modelUsageAttribution");function q(e,r){return r==="create_improve_planner"?"create_improve":r==="harness_refiner"?"system":r==="context_compaction"?"compaction":"chat"}s(q,"usageSurface");function T(e,r,t){return e==="create_improve_planner"?"planner":e==="harness_refiner"?"other":e==="context_compaction"?"summary":e==="subagent"?"subagent":t||e==="slash_command"?"slash_command":r===0?"direct_chat":"tool_loop"}s(T,"usageWorkflowKind");function i(e){if(!e)return null;let r=u.safeParse(e.metadata?.usageAttribution);return r.success?r.data:null}s(i,"usageRequestAttributionFromTurn");function m(e){if(!e)return null;let t=i(e)?.commandName;if(typeof t=="string"&&t.trim())return t.trim();let n=e.createImproveRun?.command;return typeof n=="string"&&n.trim().startsWith("/")?n.trim():null}s(m,"commandNameFromTurn");function v(e,r){return e?.createImproveRun?.metadata?.source==="native_model_tool"?"model_tool":r?"prompt_parse":null}s(v,"commandSourceFromTurn");function R(e){return e instanceof Error&&e.name.trim()?e.name.trim():"Error"}s(R,"errorType");export{f as a,P as b};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as Ci,c as Ii}from"./chunk-ACYFMLWG.js";import{b as M}from"./chunk-ES2ISFJC.js";import{a as o,b as He,c as y,e as Aa}from"./chunk-FTQLQJQV.js";var O=y(_=>{"use strict";var Ht=Symbol.for("yaml.alias"),Pi=Symbol.for("yaml.document"),xe=Symbol.for("yaml.map"),Mi=Symbol.for("yaml.pair"),xt=Symbol.for("yaml.scalar"),Xe=Symbol.for("yaml.seq"),U=Symbol.for("yaml.node.type"),qa=o(s=>!!s&&typeof s=="object"&&s[U]===Ht,"isAlias"),Oa=o(s=>!!s&&typeof s=="object"&&s[U]===Pi,"isDocument"),Ea=o(s=>!!s&&typeof s=="object"&&s[U]===xe,"isMap"),La=o(s=>!!s&&typeof s=="object"&&s[U]===Mi,"isPair"),_i=o(s=>!!s&&typeof s=="object"&&s[U]===xt,"isScalar"),Ta=o(s=>!!s&&typeof s=="object"&&s[U]===Xe,"isSeq");function $i(s){if(s&&typeof s=="object")switch(s[U]){case xe:case Xe:return!0}return!1}o($i,"isCollection");function Ca(s){if(s&&typeof s=="object")switch(s[U]){case Ht:case xe:case xt:case Xe:return!0}return!1}o(Ca,"isNode");var Ia=o(s=>(_i(s)||$i(s))&&!!s.anchor,"hasAnchor");_.ALIAS=Ht;_.DOC=Pi;_.MAP=xe;_.NODE_TYPE=U;_.PAIR=Mi;_.SCALAR=xt;_.SEQ=Xe;_.hasAnchor=Ia;_.isAlias=qa;_.isCollection=$i;_.isDocument=Oa;_.isMap=Ea;_.isNode=Ca;_.isPair=La;_.isScalar=_i;_.isSeq=Ta});var we=y(Xt=>{"use strict";var P=O(),$=Symbol("break visit"),Di=Symbol("skip children"),F=Symbol("remove node");function ze(s,e){let t=Bi(e);P.isDocument(s)?le(null,s.contents,t,Object.freeze([s]))===F&&(s.contents=null):le(null,s,t,Object.freeze([]))}o(ze,"visit");ze.BREAK=$;ze.SKIP=Di;ze.REMOVE=F;function le(s,e,t,i){let n=Ki(s,e,t,i);if(P.isNode(n)||P.isPair(n))return ji(s,i,n),le(s,n,t,i);if(typeof n!="symbol"){if(P.isCollection(e)){i=Object.freeze(i.concat(e));for(let r=0;r<e.items.length;++r){let a=le(r,e.items[r],t,i);if(typeof a=="number")r=a-1;else{if(a===$)return $;a===F&&(e.items.splice(r,1),r-=1)}}}else if(P.isPair(e)){i=Object.freeze(i.concat(e));let r=le("key",e.key,t,i);if(r===$)return $;r===F&&(e.key=null);let a=le("value",e.value,t,i);if(a===$)return $;a===F&&(e.value=null)}}return n}o(le,"visit_");async function Ze(s,e){let t=Bi(e);P.isDocument(s)?await ce(null,s.contents,t,Object.freeze([s]))===F&&(s.contents=null):await ce(null,s,t,Object.freeze([]))}o(Ze,"visitAsync");Ze.BREAK=$;Ze.SKIP=Di;Ze.REMOVE=F;async function ce(s,e,t,i){let n=await Ki(s,e,t,i);if(P.isNode(n)||P.isPair(n))return ji(s,i,n),ce(s,n,t,i);if(typeof n!="symbol"){if(P.isCollection(e)){i=Object.freeze(i.concat(e));for(let r=0;r<e.items.length;++r){let a=await ce(r,e.items[r],t,i);if(typeof a=="number")r=a-1;else{if(a===$)return $;a===F&&(e.items.splice(r,1),r-=1)}}}else if(P.isPair(e)){i=Object.freeze(i.concat(e));let r=await ce("key",e.key,t,i);if(r===$)return $;r===F&&(e.key=null);let a=await ce("value",e.value,t,i);if(a===$)return $;a===F&&(e.value=null)}}return n}o(ce,"visitAsync_");function Bi(s){return typeof s=="object"&&(s.Collection||s.Node||s.Value)?Object.assign({Alias:s.Node,Map:s.Node,Scalar:s.Node,Seq:s.Node},s.Value&&{Map:s.Value,Scalar:s.Value,Seq:s.Value},s.Collection&&{Map:s.Collection,Seq:s.Collection},s):s}o(Bi,"initVisitor");function Ki(s,e,t,i){if(typeof t=="function")return t(s,e,i);if(P.isMap(e))return t.Map?.(s,e,i);if(P.isSeq(e))return t.Seq?.(s,e,i);if(P.isPair(e))return t.Pair?.(s,e,i);if(P.isScalar(e))return t.Scalar?.(s,e,i);if(P.isAlias(e))return t.Alias?.(s,e,i)}o(Ki,"callVisitor");function ji(s,e,t){let i=e[e.length-1];if(P.isCollection(i))i.items[s]=t;else if(P.isPair(i))s==="key"?i.key=t:i.value=t;else if(P.isDocument(i))i.contents=t;else{let n=P.isAlias(i)?"alias":"scalar";throw new Error(`Cannot replace node with ${n} parent`)}}o(ji,"replaceNode");Xt.visit=ze;Xt.visitAsync=Ze});var zt=y(Ri=>{"use strict";var Fi=O(),Pa=we(),Ma={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},_a=o(s=>s.replace(/[!,[\]{}]/g,e=>Ma[e]),"escapeTagName"),Se=class s{static{o(this,"Directives")}constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,e),this.tags=Object.assign({},s.defaultTags,t)}clone(){let e=new s(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1);let i=e.trim().split(/[ \t]+/),n=i.shift();switch(n){case"%TAG":{if(i.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;let[r,a]=i;return this.tags[r]=a,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=i;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let a=/^\d+\.\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,a),!1}}default:return t(0,`Unknown directive ${n}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let a=e.slice(2,-1);return a==="!"||a==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),a)}let[,i,n]=e.match(/^(.*!)([^!]*)$/s);n||t(`The ${e} tag has no suffix`);let r=this.tags[i];if(r)try{return r+decodeURIComponent(n)}catch(a){return t(String(a)),null}return i==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,i]of Object.entries(this.tags))if(e.startsWith(i))return t+_a(e.substring(i.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags),n;if(e&&i.length>0&&Fi.isNode(e.contents)){let r={};Pa.visit(e.contents,(a,l)=>{Fi.isNode(l)&&l.tag&&(r[l.tag]=!0)}),n=Object.keys(r)}else n=[];for(let[r,a]of i)r==="!!"&&a==="tag:yaml.org,2002:"||(!e||n.some(l=>l.startsWith(a)))&&t.push(`%TAG ${r} ${a}`);return t.join(`
2
+ import{a as Ci,c as Ii}from"./chunk-RCA6NGVA.js";import{A as M}from"./chunk-PF56N7ZY.js";import{a as o,b as He,c as y,e as Aa}from"./chunk-FTQLQJQV.js";var O=y(_=>{"use strict";var Ht=Symbol.for("yaml.alias"),Pi=Symbol.for("yaml.document"),xe=Symbol.for("yaml.map"),Mi=Symbol.for("yaml.pair"),xt=Symbol.for("yaml.scalar"),Xe=Symbol.for("yaml.seq"),U=Symbol.for("yaml.node.type"),qa=o(s=>!!s&&typeof s=="object"&&s[U]===Ht,"isAlias"),Oa=o(s=>!!s&&typeof s=="object"&&s[U]===Pi,"isDocument"),Ea=o(s=>!!s&&typeof s=="object"&&s[U]===xe,"isMap"),La=o(s=>!!s&&typeof s=="object"&&s[U]===Mi,"isPair"),_i=o(s=>!!s&&typeof s=="object"&&s[U]===xt,"isScalar"),Ta=o(s=>!!s&&typeof s=="object"&&s[U]===Xe,"isSeq");function $i(s){if(s&&typeof s=="object")switch(s[U]){case xe:case Xe:return!0}return!1}o($i,"isCollection");function Ca(s){if(s&&typeof s=="object")switch(s[U]){case Ht:case xe:case xt:case Xe:return!0}return!1}o(Ca,"isNode");var Ia=o(s=>(_i(s)||$i(s))&&!!s.anchor,"hasAnchor");_.ALIAS=Ht;_.DOC=Pi;_.MAP=xe;_.NODE_TYPE=U;_.PAIR=Mi;_.SCALAR=xt;_.SEQ=Xe;_.hasAnchor=Ia;_.isAlias=qa;_.isCollection=$i;_.isDocument=Oa;_.isMap=Ea;_.isNode=Ca;_.isPair=La;_.isScalar=_i;_.isSeq=Ta});var we=y(Xt=>{"use strict";var P=O(),$=Symbol("break visit"),Di=Symbol("skip children"),F=Symbol("remove node");function ze(s,e){let t=Bi(e);P.isDocument(s)?le(null,s.contents,t,Object.freeze([s]))===F&&(s.contents=null):le(null,s,t,Object.freeze([]))}o(ze,"visit");ze.BREAK=$;ze.SKIP=Di;ze.REMOVE=F;function le(s,e,t,i){let n=Ki(s,e,t,i);if(P.isNode(n)||P.isPair(n))return ji(s,i,n),le(s,n,t,i);if(typeof n!="symbol"){if(P.isCollection(e)){i=Object.freeze(i.concat(e));for(let r=0;r<e.items.length;++r){let a=le(r,e.items[r],t,i);if(typeof a=="number")r=a-1;else{if(a===$)return $;a===F&&(e.items.splice(r,1),r-=1)}}}else if(P.isPair(e)){i=Object.freeze(i.concat(e));let r=le("key",e.key,t,i);if(r===$)return $;r===F&&(e.key=null);let a=le("value",e.value,t,i);if(a===$)return $;a===F&&(e.value=null)}}return n}o(le,"visit_");async function Ze(s,e){let t=Bi(e);P.isDocument(s)?await ce(null,s.contents,t,Object.freeze([s]))===F&&(s.contents=null):await ce(null,s,t,Object.freeze([]))}o(Ze,"visitAsync");Ze.BREAK=$;Ze.SKIP=Di;Ze.REMOVE=F;async function ce(s,e,t,i){let n=await Ki(s,e,t,i);if(P.isNode(n)||P.isPair(n))return ji(s,i,n),ce(s,n,t,i);if(typeof n!="symbol"){if(P.isCollection(e)){i=Object.freeze(i.concat(e));for(let r=0;r<e.items.length;++r){let a=await ce(r,e.items[r],t,i);if(typeof a=="number")r=a-1;else{if(a===$)return $;a===F&&(e.items.splice(r,1),r-=1)}}}else if(P.isPair(e)){i=Object.freeze(i.concat(e));let r=await ce("key",e.key,t,i);if(r===$)return $;r===F&&(e.key=null);let a=await ce("value",e.value,t,i);if(a===$)return $;a===F&&(e.value=null)}}return n}o(ce,"visitAsync_");function Bi(s){return typeof s=="object"&&(s.Collection||s.Node||s.Value)?Object.assign({Alias:s.Node,Map:s.Node,Scalar:s.Node,Seq:s.Node},s.Value&&{Map:s.Value,Scalar:s.Value,Seq:s.Value},s.Collection&&{Map:s.Collection,Seq:s.Collection},s):s}o(Bi,"initVisitor");function Ki(s,e,t,i){if(typeof t=="function")return t(s,e,i);if(P.isMap(e))return t.Map?.(s,e,i);if(P.isSeq(e))return t.Seq?.(s,e,i);if(P.isPair(e))return t.Pair?.(s,e,i);if(P.isScalar(e))return t.Scalar?.(s,e,i);if(P.isAlias(e))return t.Alias?.(s,e,i)}o(Ki,"callVisitor");function ji(s,e,t){let i=e[e.length-1];if(P.isCollection(i))i.items[s]=t;else if(P.isPair(i))s==="key"?i.key=t:i.value=t;else if(P.isDocument(i))i.contents=t;else{let n=P.isAlias(i)?"alias":"scalar";throw new Error(`Cannot replace node with ${n} parent`)}}o(ji,"replaceNode");Xt.visit=ze;Xt.visitAsync=Ze});var zt=y(Ri=>{"use strict";var Fi=O(),Pa=we(),Ma={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},_a=o(s=>s.replace(/[!,[\]{}]/g,e=>Ma[e]),"escapeTagName"),Se=class s{static{o(this,"Directives")}constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,e),this.tags=Object.assign({},s.defaultTags,t)}clone(){let e=new s(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1);let i=e.trim().split(/[ \t]+/),n=i.shift();switch(n){case"%TAG":{if(i.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;let[r,a]=i;return this.tags[r]=a,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=i;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let a=/^\d+\.\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,a),!1}}default:return t(0,`Unknown directive ${n}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let a=e.slice(2,-1);return a==="!"||a==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),a)}let[,i,n]=e.match(/^(.*!)([^!]*)$/s);n||t(`The ${e} tag has no suffix`);let r=this.tags[i];if(r)try{return r+decodeURIComponent(n)}catch(a){return t(String(a)),null}return i==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,i]of Object.entries(this.tags))if(e.startsWith(i))return t+_a(e.substring(i.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags),n;if(e&&i.length>0&&Fi.isNode(e.contents)){let r={};Pa.visit(e.contents,(a,l)=>{Fi.isNode(l)&&l.tag&&(r[l.tag]=!0)}),n=Object.keys(r)}else n=[];for(let[r,a]of i)r==="!!"&&a==="tag:yaml.org,2002:"||(!e||n.some(l=>l.startsWith(a)))&&t.push(`%TAG ${r} ${a}`);return t.join(`
3
3
  `)}};Se.defaultYaml={explicit:!1,version:"1.2"};Se.defaultTags={"!!":"tag:yaml.org,2002:"};Ri.Directives=Se});var et=y(ve=>{"use strict";var Ui=O(),$a=we();function Da(s){if(/[\x00-\x19\s,[\]{}]/.test(s)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(s)}`;throw new Error(t)}return!0}o(Da,"anchorIsValid");function Yi(s){let e=new Set;return $a.visit(s,{Value(t,i){i.anchor&&e.add(i.anchor)}}),e}o(Yi,"anchorNames");function Vi(s,e){for(let t=1;;++t){let i=`${s}${t}`;if(!e.has(i))return i}}o(Vi,"findNewAnchor");function Ba(s,e){let t=[],i=new Map,n=null;return{onAnchor:o(r=>{t.push(r),n??(n=Yi(s));let a=Vi(e,n);return n.add(a),a},"onAnchor"),setAnchors:o(()=>{for(let r of t){let a=i.get(r);if(typeof a=="object"&&a.anchor&&(Ui.isScalar(a.node)||Ui.isCollection(a.node)))a.node.anchor=a.anchor;else{let l=new Error("Failed to resolve repeated object (this should not happen)");throw l.source=r,l}}},"setAnchors"),sourceObjects:i}}o(Ba,"createNodeAnchors");ve.anchorIsValid=Da;ve.anchorNames=Yi;ve.createNodeAnchors=Ba;ve.findNewAnchor=Vi});var Zt=y(Ji=>{"use strict";function ke(s,e,t,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let n=0,r=i.length;n<r;++n){let a=i[n],l=ke(s,i,String(n),a);l===void 0?delete i[n]:l!==a&&(i[n]=l)}else if(i instanceof Map)for(let n of Array.from(i.keys())){let r=i.get(n),a=ke(s,i,n,r);a===void 0?i.delete(n):a!==r&&i.set(n,a)}else if(i instanceof Set)for(let n of Array.from(i)){let r=ke(s,i,n,n);r===void 0?i.delete(n):r!==n&&(i.delete(n),i.add(r))}else for(let[n,r]of Object.entries(i)){let a=ke(s,i,n,r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}return s.call(e,t,i)}o(ke,"applyReviver");Ji.applyReviver=ke});var J=y(Qi=>{"use strict";var Ka=O();function Wi(s,e,t){if(Array.isArray(s))return s.map((i,n)=>Wi(i,String(n),t));if(s&&typeof s.toJSON=="function"){if(!t||!Ka.hasAnchor(s))return s.toJSON(e,t);let i={aliasCount:0,count:1,res:void 0};t.anchors.set(s,i),t.onCreate=r=>{i.res=r,delete t.onCreate};let n=s.toJSON(e,t);return t.onCreate&&t.onCreate(n),n}return typeof s=="bigint"&&!t?.keep?Number(s):s}o(Wi,"toJS");Qi.toJS=Wi});var tt=y(Hi=>{"use strict";var ja=Zt(),Gi=O(),Fa=J(),es=class{static{o(this,"NodeBase")}constructor(e){Object.defineProperty(this,Gi.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:i,onAnchor:n,reviver:r}={}){if(!Gi.isDocument(e))throw new TypeError("A document argument is required");let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Fa.toJS(this,"",a);if(typeof n=="function")for(let{count:c,res:f}of a.anchors.values())n(f,c);return typeof r=="function"?ja.applyReviver(r,{"":l},"",l):l}};Hi.NodeBase=es});var Ne=y(xi=>{"use strict";var Ra=et(),Ua=we(),fe=O(),Ya=tt(),Va=J(),ts=class extends Ya.NodeBase{static{o(this,"Alias")}constructor(e){super(fe.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if(t?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],Ua.visit(e,{Node:o((r,a)=>{(fe.isAlias(a)||fe.hasAnchor(a))&&i.push(a)},"Node")}),t&&(t.aliasResolveCache=i));let n;for(let r of i){if(r===this)break;r.anchor===this.source&&(n=r)}return n}toJSON(e,t){if(!t)return{source:this.source};let{anchors:i,doc:n,maxAliasCount:r}=t,a=this.resolve(n,t);if(!a){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let l=i.get(a);if(l||(Va.toJS(a,null,t),l=i.get(a)),l?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(r>=0&&(l.count+=1,l.aliasCount===0&&(l.aliasCount=st(n,a,i)),l.count*l.aliasCount>r)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return l.res}toString(e,t,i){let n=`*${this.source}`;if(e){if(Ra.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${n} `}return n}};function st(s,e,t){if(fe.isAlias(e)){let i=e.resolve(s),n=t&&i&&t.get(i);return n?n.count*n.aliasCount:0}else if(fe.isCollection(e)){let i=0;for(let n of e.items){let r=st(s,n,t);r>i&&(i=r)}return i}else if(fe.isPair(e)){let i=st(s,e.key,t),n=st(s,e.value,t);return Math.max(i,n)}return 1}o(st,"getAliasCount");xi.Alias=ts});var T=y(ss=>{"use strict";var Ja=O(),Wa=tt(),Qa=J(),Ga=o(s=>!s||typeof s!="function"&&typeof s!="object","isScalarValue"),W=class extends Wa.NodeBase{static{o(this,"Scalar")}constructor(e){super(Ja.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Qa.toJS(this.value,e,t)}toString(){return String(this.value)}};W.BLOCK_FOLDED="BLOCK_FOLDED";W.BLOCK_LITERAL="BLOCK_LITERAL";W.PLAIN="PLAIN";W.QUOTE_DOUBLE="QUOTE_DOUBLE";W.QUOTE_SINGLE="QUOTE_SINGLE";ss.Scalar=W;ss.isScalarValue=Ga});var Ae=y(zi=>{"use strict";var Ha=Ne(),te=O(),Xi=T(),xa="tag:yaml.org,2002:";function Xa(s,e,t){if(e){let i=t.filter(r=>r.tag===e),n=i.find(r=>!r.format)??i[0];if(!n)throw new Error(`Tag ${e} not found`);return n}return t.find(i=>i.identify?.(s)&&!i.format)}o(Xa,"findTagObject");function za(s,e,t){if(te.isDocument(s)&&(s=s.contents),te.isNode(s))return s;if(te.isPair(s)){let u=t.schema[te.MAP].createNode?.(t.schema,null,t);return u.items.push(s),u}(s instanceof String||s instanceof Number||s instanceof Boolean||typeof BigInt<"u"&&s instanceof BigInt)&&(s=s.valueOf());let{aliasDuplicateObjects:i,onAnchor:n,onTagObj:r,schema:a,sourceObjects:l}=t,c;if(i&&s&&typeof s=="object"){if(c=l.get(s),c)return c.anchor??(c.anchor=n(s)),new Ha.Alias(c.anchor);c={anchor:null,node:null},l.set(s,c)}e?.startsWith("!!")&&(e=xa+e.slice(2));let f=Xa(s,e,a.tags);if(!f){if(s&&typeof s.toJSON=="function"&&(s=s.toJSON()),!s||typeof s!="object"){let u=new Xi.Scalar(s);return c&&(c.node=u),u}f=s instanceof Map?a[te.MAP]:Symbol.iterator in Object(s)?a[te.SEQ]:a[te.MAP]}r&&(r(f),delete t.onTagObj);let p=f?.createNode?f.createNode(t.schema,s,t):typeof f?.nodeClass?.from=="function"?f.nodeClass.from(t.schema,s,t):new Xi.Scalar(s);return e?p.tag=e:f.default||(p.tag=f.tag),c&&(c.node=p),p}o(za,"createNode");zi.createNode=za});var nt=y(it=>{"use strict";var Za=Ae(),R=O(),eo=tt();function is(s,e,t){let i=t;for(let n=e.length-1;n>=0;--n){let r=e[n];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let a=[];a[r]=i,i=a}else i=new Map([[r,i]])}return Za.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:o(()=>{throw new Error("This should not happen, please report a bug.")},"onAnchor"),schema:s,sourceObjects:new Map})}o(is,"collectionFromPath");var Zi=o(s=>s==null||typeof s=="object"&&!!s[Symbol.iterator]().next().done,"isEmptyPath"),ns=class extends eo.NodeBase{static{o(this,"Collection")}constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(i=>R.isNode(i)||R.isPair(i)?i.clone(e):i),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Zi(e))this.add(t);else{let[i,...n]=e,r=this.get(i,!0);if(R.isCollection(r))r.addIn(n,t);else if(r===void 0&&this.schema)this.set(i,is(this.schema,n,t));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${n}`)}}deleteIn(e){let[t,...i]=e;if(i.length===0)return this.delete(t);let n=this.get(t,!0);if(R.isCollection(n))return n.deleteIn(i);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${i}`)}getIn(e,t){let[i,...n]=e,r=this.get(i,!0);return n.length===0?!t&&R.isScalar(r)?r.value:r:R.isCollection(r)?r.getIn(n,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!R.isPair(t))return!1;let i=t.value;return i==null||e&&R.isScalar(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(e){let[t,...i]=e;if(i.length===0)return this.has(t);let n=this.get(t,!0);return R.isCollection(n)?n.hasIn(i):!1}setIn(e,t){let[i,...n]=e;if(n.length===0)this.set(i,t);else{let r=this.get(i,!0);if(R.isCollection(r))r.setIn(n,t);else if(r===void 0&&this.schema)this.set(i,is(this.schema,n,t));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${n}`)}}};it.Collection=ns;it.collectionFromPath=is;it.isEmptyPath=Zi});var qe=y(rt=>{"use strict";var to=o(s=>s.replace(/^(?!$)(?: $)?/gm,"#"),"stringifyComment");function rs(s,e){return/^\n+$/.test(s)?s.substring(1):e?s.replace(/^(?! *$)/gm,e):s}o(rs,"indentComment");var so=o((s,e,t)=>s.endsWith(`
4
4
  `)?rs(t,e):t.includes(`
5
5
  `)?`
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as O}from"./chunk-Z4Z5UOZM.js";import{a as i}from"./chunk-FTQLQJQV.js";import{createHash as K}from"node:crypto";import{createHash as oe,randomBytes as L}from"node:crypto";import{createServer as ne}from"node:http";var k="app_EMoamEEZ73f0CkXaXp7hrann",y="https://auth.openai.com",C=1455,T=300*1e3,re=5e3,ie=3e3;function Ge(e){let t=null,o=null;async function n(){let{redirectUri:d}=await c(),a=ae(),l=R(L(32));o&&(o.reject(new Error("A previous OpenAI ChatGPT login was replaced.")),clearTimeout(o.timeout),o=null);let g=Date.now()+T;return new Promise((v,_)=>{o={pkce:a,state:l,resolve:v,reject:_,timeout:setTimeout(()=>{o=null,_(new Error("OpenAI ChatGPT login timed out."))},T)}}).then(v=>f(v)).catch(()=>{}).finally(()=>m()),{url:se(d,a,l),redirectUri:d,expiresAt:g}}i(n,"startBrowserLogin");async function r(){let d=await fetch(`${y}/api/accounts/deviceauth/usercode`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({client_id:k})});if(!d.ok)throw new Error(`OpenAI device authorization failed: ${d.status}`);let a=await d.json();if(!a.device_auth_id||!a.user_code)throw new Error("OpenAI device authorization returned an incomplete response.");let l=Math.max(Number.parseInt(a.interval??"",10)||re/1e3,1)*1e3,g=Date.now()+T;return s({deviceAuthId:a.device_auth_id,userCode:a.user_code,intervalMs:l,expiresAt:g}).catch(()=>{}),{url:`${y}/codex/device`,userCode:a.user_code,expiresAt:g}}i(r,"startDeviceLogin");async function s(d){for(;Date.now()<d.expiresAt;){let a=await fetch(`${y}/api/accounts/deviceauth/token`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({device_auth_id:d.deviceAuthId,user_code:d.userCode})});if(a.ok){let l=await a.json();if(!l.authorization_code||!l.code_verifier)throw new Error("OpenAI device login returned an incomplete authorization response.");await f(await H(l.authorization_code,`${y}/deviceauth/callback`,{verifier:l.code_verifier}));return}if(a.status!==403&&a.status!==404)throw new Error(`OpenAI device login failed: ${a.status}`);await ce(d.intervalMs+ie)}throw new Error("OpenAI device login timed out.")}i(s,"pollDeviceLogin");async function c(){return t?{redirectUri:`http://localhost:${C}/auth/callback`}:(t=ne((d,a)=>{let l=new URL(d.url||"/",`http://localhost:${C}`);if(l.pathname!=="/auth/callback"){a.writeHead(404),a.end("Not found");return}let g=o,w=l.searchParams.get("error"),v=l.searchParams.get("error_description");if(w){u(v||w),a.writeHead(200,{"Content-Type":"text/html"}),a.end(P("Authorization Failed",v||w));return}let _=l.searchParams.get("code"),te=l.searchParams.get("state");if(!_){u("Missing authorization code."),a.writeHead(400,{"Content-Type":"text/html"}),a.end(P("Authorization Failed","Missing authorization code."));return}if(!g||te!==g.state){u("Invalid OAuth state."),a.writeHead(400,{"Content-Type":"text/html"}),a.end(P("Authorization Failed","Invalid OAuth state."));return}o=null,clearTimeout(g.timeout),H(_,`http://localhost:${C}/auth/callback`,g.pkce).then(g.resolve).catch(g.reject),a.writeHead(200,{"Content-Type":"text/html"}),a.end(P("Authorization Successful","You can close this window and return to OpenPond."))}),await new Promise((d,a)=>{t.once("error",a),t.listen(C,()=>{t.off("error",a),d()})}),{redirectUri:`http://localhost:${C}/auth/callback`})}i(c,"ensureOAuthServer");function u(d){let a=o;o=null,a&&(clearTimeout(a.timeout),a.reject(new Error(d)))}i(u,"failBrowserOAuth");function m(){let d=t;t=null,d&&d.close()}i(m,"stopOAuthServer");async function f(d){let a=d.access_token?.trim()||null,l=d.refresh_token?.trim();if(!l)throw new Error("OpenAI login did not return a refresh token.");await e.saveCredential({accessToken:a,refreshToken:l,expiresAt:Date.now()+(d.expires_in??3600)*1e3,accountId:B(d)})}return i(f,"saveTokens"),{startBrowserLogin:n,startDeviceLogin:r}}i(Ge,"createOpenAiSubscriptionAuthService");function se(e,t,o){let n=new URLSearchParams({response_type:"code",client_id:k,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(se,"buildAuthorizeUrl");async function H(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:k,code_verifier:o.verifier}).toString()});if(!n.ok)throw new Error(`OpenAI token exchange failed: ${n.status}`);return await n.json()}i(H,"exchangeCodeForTokens");async function j(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:k}).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(j,"refreshOpenAiSubscriptionToken");function D(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:B(e)??t.accountId}}i(D,"credentialFromRefreshResponse");function ae(){let e=R(L(32)),t=R(oe("sha256").update(e).digest());return{verifier:e,challenge:t}}i(ae,"generatePkce");function B(e){for(let t of[e.id_token,e.access_token]){let o=de(t),n=S(o?.chatgpt_account_id);if(n)return n;let r=o?.["https://api.openai.com/auth"];if(r&&typeof r=="object"){let c=S(r.chatgpt_account_id);if(c)return c}let s=o?.organizations;if(Array.isArray(s)){for(let c of s)if(c&&typeof c=="object"){let u=S(c.id);if(u)return u}}}return null}i(B,"extractAccountId");function de(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(de,"parseJwtClaims");function P(e,t){return`<!doctype html><html><head><meta charset="utf-8"><title>OpenPond - ${I(e)}</title></head><body><h1>${I(e)}</h1><p>${I(t)}</p></body></html>`}i(P,"htmlPage");function I(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}i(I,"escapeHtml");function R(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}i(R,"base64Url");function S(e){return typeof e=="string"&&e.trim()?e.trim():null}i(S,"stringValue");function ce(e){return new Promise(t=>setTimeout(t,e))}i(ce,"sleep");function x(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(x,"chatCompletionsReasoningPolicy");function N(e){return!e.hasToolCalls||e.reasoningText.length===0||!x(e)?null:{kind:"chat_completions_reasoning",reasoningContent:e.reasoningText}}i(N,"chatCompletionsContinuation");function z(e){return e.some(t=>t.continuation?.kind==="chat_completions_reasoning"&&t.continuation.reasoningContent.length>0)}i(z,"hasChatCompletionsReasoningContinuation");var le=["openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible"],ue=9e4,q=5*6e4,pe=5*1024*1024,me=64*1024,fe="https://chatgpt.com/backend-api/codex/responses",he=6e4;function ge(e){return le.includes(e)}i(ge,"isOpenAiCompatibleProviderId");function E(e){if(!ge(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=J(e.baseUrl??t?.baseUrl??"");if(!n)throw new Error(`Provider ${e.providerId} requires a base URL.`);let r=e.secrets.providers[e.providerId],s=ye(e.providerId,r);if(!s)throw new Error(ve(e.providerId,e.settings));let c=e.modelId?.trim()||t?.defaultModel?.trim()||o?.models.find(u=>u.id.trim())?.id.trim()||"";if(!c&&e.requireModel!==!1)throw new Error(`Provider ${e.providerId} requires a model.`);return{providerId:e.providerId,baseUrl:n,auth:s,model:c}}i(E,"resolveOpenAiCompatibleProvider");function ye(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(ye,"resolveProviderAuth");function ve(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(ve,"missingApiKeyMessage");async function be(e){let t=E({...e,requireModel:!1});if(t.auth.type==="chatgpt_subscription")return Ee(e.settings,t.providerId);let o=$(e.signal,e.requestTimeoutMs);try{let n=V(t.baseUrl,"models"),r=await fetch(n,{method:"GET",headers:Y(t.auth.apiKey,"application/json"),signal:o.signal});if(!r.ok){o.touch();let u=await M(r,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} model list failed: ${r.status} ${X(t,u)}`)}let s=await Le(r,`Provider ${t.providerId} model list`,e.responseBodyLimitBytes,o.signal,o.touch),c=Me(t.providerId,s);if(c.length===0)throw new Error(`Provider ${t.providerId} returned no models.`);return c}finally{o.cleanup()}}i(be,"listOpenAiCompatibleProviderModels");async function Ze(e){let t=E(e),o=await be({...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(Ze,"validateOpenAiCompatibleProvider");async function*et(e){let t=e.resolvedProvider??E(e);if(t.auth.type==="chatgpt_subscription"){let n={...t,auth:t.auth};yield*_e({...e,provider:n});return}let o=$(e.signal,e.requestTimeoutMs);try{let n=V(t.baseUrl,"chat/completions"),r=await fetch(n,{method:"POST",redirect:"error",headers:Y(t.auth.apiKey,"text/event-stream",e.allowAnonymous),body:JSON.stringify(we({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 d=await M(r,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} stream failed: ${r.status} ${X(t,d)}`)}let s="",c=!1,u=null,m=null;o.touch();for await(let d of ee(r.body,o.signal,o.touch)){if(m=d,d&&typeof d=="object"&&"error"in d)throw new Error(`Provider ${t.providerId} stream failed: ${U(d)}`);let a=Ne(d);a&&(yield{type:"usage",usage:a,raw:d});for(let l of je(d))l.type==="reasoning_delta"&&(s+=l.text),l.type==="tool_call_delta"&&(c=!0),l.type==="finish"?u=l:yield l}let f=N({provider:t.providerId,model:t.model,reasoningText:s,hasToolCalls:c});f&&(yield{type:"continuation",continuation:f,raw:m}),u&&(yield u)}finally{o.cleanup()}}i(et,"streamOpenAiCompatibleChatCompletion");async function*_e(e){let t=await Ce({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=Ae(e.promptCacheKey),n=$(e.signal,e.requestTimeoutMs);try{let r=await fetch(fe,{method:"POST",headers:xe(t,o??e.requestId),body:JSON.stringify(ke({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 d=await M(r,e.errorBodyLimitBytes,n.signal,n.touch);throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${r.status} ${d}`)}let s=new Set,c=new Map,u=!1,m=null,f=null;n.touch();for await(let d of ee(r.body,n.signal,n.touch)){if(f=d,d&&typeof d=="object"&&"error"in d)throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${U(d)}`);for(let a of Te(d)){let l=p(a.id)??JSON.stringify(a);c.set(l,a)}for(let a of De(d,s))a.type==="tool_call_delta"&&(u=!0),a.type==="finish"?m=a:yield a}u&&c.size>0&&(yield{type:"continuation",continuation:{kind:"responses_reasoning_items",items:[...c.values()]},raw:f}),m&&(yield m)}finally{n.cleanup()}}i(_e,"streamOpenAiSubscriptionResponses");async function Ce(e){if(e.credential.accessToken&&e.credential.expiresAt>Date.now()+he)return e.credential;let t=D(await j(e.credential.refreshToken),e.credential);return await e.saveChatGptSubscriptionCredential?.(e.providerId,t),t}i(Ce,"usableSubscriptionCredential");function we(e){let t={model:e.model,messages:Pe(Re(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=x({provider:e.providerId,model:e.model});return e.tools&&e.tools.length>0&&o?.requestThinking==="zai_clear_thinking"&&(t.thinking={type:"enabled",clear_thinking:!z(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(we,"buildChatCompletionBody");function Pe(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(c=>({type:"image_url",image_url:{url:c.url,...c.detail?{detail:c.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(Pe,"chatCompletionMessages");function ke(e){let t=Oe(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=Ie(e.tools);n.length>0&&(o.tools=n);let r=Se(e.toolChoice);return r!==void 0&&(o.tool_choice=r),o}i(ke,"buildResponsesBody");function Ae(e){let t=e?.trim();if(t)return t.length<=64?t:K("sha256").update(t).digest("hex")}i(Ae,"normalizedPromptCacheKey");function Oe(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 c=s.function&&typeof s.function=="object"?s.function:{};o.push({type:"function_call",call_id:s.id,name:c.name,arguments:typeof c.arguments=="string"?c.arguments:""})}}return{instructions:t.join(`
2
+ import{c as O}from"./chunk-SG6JZ7HD.js";import{a as i}from"./chunk-FTQLQJQV.js";import{createHash as K}from"node:crypto";import{createHash as oe,randomBytes as L}from"node:crypto";import{createServer as ne}from"node:http";var k="app_EMoamEEZ73f0CkXaXp7hrann",y="https://auth.openai.com",C=1455,T=300*1e3,re=5e3,ie=3e3;function Ge(e){let t=null,o=null;async function n(){let{redirectUri:d}=await c(),a=ae(),l=R(L(32));o&&(o.reject(new Error("A previous OpenAI ChatGPT login was replaced.")),clearTimeout(o.timeout),o=null);let g=Date.now()+T;return new Promise((v,_)=>{o={pkce:a,state:l,resolve:v,reject:_,timeout:setTimeout(()=>{o=null,_(new Error("OpenAI ChatGPT login timed out."))},T)}}).then(v=>f(v)).catch(()=>{}).finally(()=>m()),{url:se(d,a,l),redirectUri:d,expiresAt:g}}i(n,"startBrowserLogin");async function r(){let d=await fetch(`${y}/api/accounts/deviceauth/usercode`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({client_id:k})});if(!d.ok)throw new Error(`OpenAI device authorization failed: ${d.status}`);let a=await d.json();if(!a.device_auth_id||!a.user_code)throw new Error("OpenAI device authorization returned an incomplete response.");let l=Math.max(Number.parseInt(a.interval??"",10)||re/1e3,1)*1e3,g=Date.now()+T;return s({deviceAuthId:a.device_auth_id,userCode:a.user_code,intervalMs:l,expiresAt:g}).catch(()=>{}),{url:`${y}/codex/device`,userCode:a.user_code,expiresAt:g}}i(r,"startDeviceLogin");async function s(d){for(;Date.now()<d.expiresAt;){let a=await fetch(`${y}/api/accounts/deviceauth/token`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"openpond-app"},body:JSON.stringify({device_auth_id:d.deviceAuthId,user_code:d.userCode})});if(a.ok){let l=await a.json();if(!l.authorization_code||!l.code_verifier)throw new Error("OpenAI device login returned an incomplete authorization response.");await f(await H(l.authorization_code,`${y}/deviceauth/callback`,{verifier:l.code_verifier}));return}if(a.status!==403&&a.status!==404)throw new Error(`OpenAI device login failed: ${a.status}`);await ce(d.intervalMs+ie)}throw new Error("OpenAI device login timed out.")}i(s,"pollDeviceLogin");async function c(){return t?{redirectUri:`http://localhost:${C}/auth/callback`}:(t=ne((d,a)=>{let l=new URL(d.url||"/",`http://localhost:${C}`);if(l.pathname!=="/auth/callback"){a.writeHead(404),a.end("Not found");return}let g=o,w=l.searchParams.get("error"),v=l.searchParams.get("error_description");if(w){u(v||w),a.writeHead(200,{"Content-Type":"text/html"}),a.end(P("Authorization Failed",v||w));return}let _=l.searchParams.get("code"),te=l.searchParams.get("state");if(!_){u("Missing authorization code."),a.writeHead(400,{"Content-Type":"text/html"}),a.end(P("Authorization Failed","Missing authorization code."));return}if(!g||te!==g.state){u("Invalid OAuth state."),a.writeHead(400,{"Content-Type":"text/html"}),a.end(P("Authorization Failed","Invalid OAuth state."));return}o=null,clearTimeout(g.timeout),H(_,`http://localhost:${C}/auth/callback`,g.pkce).then(g.resolve).catch(g.reject),a.writeHead(200,{"Content-Type":"text/html"}),a.end(P("Authorization Successful","You can close this window and return to OpenPond."))}),await new Promise((d,a)=>{t.once("error",a),t.listen(C,()=>{t.off("error",a),d()})}),{redirectUri:`http://localhost:${C}/auth/callback`})}i(c,"ensureOAuthServer");function u(d){let a=o;o=null,a&&(clearTimeout(a.timeout),a.reject(new Error(d)))}i(u,"failBrowserOAuth");function m(){let d=t;t=null,d&&d.close()}i(m,"stopOAuthServer");async function f(d){let a=d.access_token?.trim()||null,l=d.refresh_token?.trim();if(!l)throw new Error("OpenAI login did not return a refresh token.");await e.saveCredential({accessToken:a,refreshToken:l,expiresAt:Date.now()+(d.expires_in??3600)*1e3,accountId:B(d)})}return i(f,"saveTokens"),{startBrowserLogin:n,startDeviceLogin:r}}i(Ge,"createOpenAiSubscriptionAuthService");function se(e,t,o){let n=new URLSearchParams({response_type:"code",client_id:k,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(se,"buildAuthorizeUrl");async function H(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:k,code_verifier:o.verifier}).toString()});if(!n.ok)throw new Error(`OpenAI token exchange failed: ${n.status}`);return await n.json()}i(H,"exchangeCodeForTokens");async function j(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:k}).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(j,"refreshOpenAiSubscriptionToken");function D(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:B(e)??t.accountId}}i(D,"credentialFromRefreshResponse");function ae(){let e=R(L(32)),t=R(oe("sha256").update(e).digest());return{verifier:e,challenge:t}}i(ae,"generatePkce");function B(e){for(let t of[e.id_token,e.access_token]){let o=de(t),n=S(o?.chatgpt_account_id);if(n)return n;let r=o?.["https://api.openai.com/auth"];if(r&&typeof r=="object"){let c=S(r.chatgpt_account_id);if(c)return c}let s=o?.organizations;if(Array.isArray(s)){for(let c of s)if(c&&typeof c=="object"){let u=S(c.id);if(u)return u}}}return null}i(B,"extractAccountId");function de(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(de,"parseJwtClaims");function P(e,t){return`<!doctype html><html><head><meta charset="utf-8"><title>OpenPond - ${I(e)}</title></head><body><h1>${I(e)}</h1><p>${I(t)}</p></body></html>`}i(P,"htmlPage");function I(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}i(I,"escapeHtml");function R(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}i(R,"base64Url");function S(e){return typeof e=="string"&&e.trim()?e.trim():null}i(S,"stringValue");function ce(e){return new Promise(t=>setTimeout(t,e))}i(ce,"sleep");function x(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(x,"chatCompletionsReasoningPolicy");function N(e){return!e.hasToolCalls||e.reasoningText.length===0||!x(e)?null:{kind:"chat_completions_reasoning",reasoningContent:e.reasoningText}}i(N,"chatCompletionsContinuation");function z(e){return e.some(t=>t.continuation?.kind==="chat_completions_reasoning"&&t.continuation.reasoningContent.length>0)}i(z,"hasChatCompletionsReasoningContinuation");var le=["openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible"],ue=9e4,q=5*6e4,pe=5*1024*1024,me=64*1024,fe="https://chatgpt.com/backend-api/codex/responses",he=6e4;function ge(e){return le.includes(e)}i(ge,"isOpenAiCompatibleProviderId");function E(e){if(!ge(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=J(e.baseUrl??t?.baseUrl??"");if(!n)throw new Error(`Provider ${e.providerId} requires a base URL.`);let r=e.secrets.providers[e.providerId],s=ye(e.providerId,r);if(!s)throw new Error(ve(e.providerId,e.settings));let c=e.modelId?.trim()||t?.defaultModel?.trim()||o?.models.find(u=>u.id.trim())?.id.trim()||"";if(!c&&e.requireModel!==!1)throw new Error(`Provider ${e.providerId} requires a model.`);return{providerId:e.providerId,baseUrl:n,auth:s,model:c}}i(E,"resolveOpenAiCompatibleProvider");function ye(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(ye,"resolveProviderAuth");function ve(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(ve,"missingApiKeyMessage");async function be(e){let t=E({...e,requireModel:!1});if(t.auth.type==="chatgpt_subscription")return Ee(e.settings,t.providerId);let o=$(e.signal,e.requestTimeoutMs);try{let n=V(t.baseUrl,"models"),r=await fetch(n,{method:"GET",headers:Y(t.auth.apiKey,"application/json"),signal:o.signal});if(!r.ok){o.touch();let u=await M(r,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} model list failed: ${r.status} ${X(t,u)}`)}let s=await Le(r,`Provider ${t.providerId} model list`,e.responseBodyLimitBytes,o.signal,o.touch),c=Me(t.providerId,s);if(c.length===0)throw new Error(`Provider ${t.providerId} returned no models.`);return c}finally{o.cleanup()}}i(be,"listOpenAiCompatibleProviderModels");async function Ze(e){let t=E(e),o=await be({...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(Ze,"validateOpenAiCompatibleProvider");async function*et(e){let t=e.resolvedProvider??E(e);if(t.auth.type==="chatgpt_subscription"){let n={...t,auth:t.auth};yield*_e({...e,provider:n});return}let o=$(e.signal,e.requestTimeoutMs);try{let n=V(t.baseUrl,"chat/completions"),r=await fetch(n,{method:"POST",redirect:"error",headers:Y(t.auth.apiKey,"text/event-stream",e.allowAnonymous),body:JSON.stringify(we({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 d=await M(r,e.errorBodyLimitBytes,o.signal,o.touch);throw new Error(`Provider ${t.providerId} stream failed: ${r.status} ${X(t,d)}`)}let s="",c=!1,u=null,m=null;o.touch();for await(let d of ee(r.body,o.signal,o.touch)){if(m=d,d&&typeof d=="object"&&"error"in d)throw new Error(`Provider ${t.providerId} stream failed: ${U(d)}`);let a=Ne(d);a&&(yield{type:"usage",usage:a,raw:d});for(let l of je(d))l.type==="reasoning_delta"&&(s+=l.text),l.type==="tool_call_delta"&&(c=!0),l.type==="finish"?u=l:yield l}let f=N({provider:t.providerId,model:t.model,reasoningText:s,hasToolCalls:c});f&&(yield{type:"continuation",continuation:f,raw:m}),u&&(yield u)}finally{o.cleanup()}}i(et,"streamOpenAiCompatibleChatCompletion");async function*_e(e){let t=await Ce({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=Ae(e.promptCacheKey),n=$(e.signal,e.requestTimeoutMs);try{let r=await fetch(fe,{method:"POST",headers:xe(t,o??e.requestId),body:JSON.stringify(ke({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 d=await M(r,e.errorBodyLimitBytes,n.signal,n.touch);throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${r.status} ${d}`)}let s=new Set,c=new Map,u=!1,m=null,f=null;n.touch();for await(let d of ee(r.body,n.signal,n.touch)){if(f=d,d&&typeof d=="object"&&"error"in d)throw new Error(`Provider ${e.provider.providerId} subscription stream failed: ${U(d)}`);for(let a of Te(d)){let l=p(a.id)??JSON.stringify(a);c.set(l,a)}for(let a of De(d,s))a.type==="tool_call_delta"&&(u=!0),a.type==="finish"?m=a:yield a}u&&c.size>0&&(yield{type:"continuation",continuation:{kind:"responses_reasoning_items",items:[...c.values()]},raw:f}),m&&(yield m)}finally{n.cleanup()}}i(_e,"streamOpenAiSubscriptionResponses");async function Ce(e){if(e.credential.accessToken&&e.credential.expiresAt>Date.now()+he)return e.credential;let t=D(await j(e.credential.refreshToken),e.credential);return await e.saveChatGptSubscriptionCredential?.(e.providerId,t),t}i(Ce,"usableSubscriptionCredential");function we(e){let t={model:e.model,messages:Pe(Re(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=x({provider:e.providerId,model:e.model});return e.tools&&e.tools.length>0&&o?.requestThinking==="zai_clear_thinking"&&(t.thinking={type:"enabled",clear_thinking:!z(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(we,"buildChatCompletionBody");function Pe(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(c=>({type:"image_url",image_url:{url:c.url,...c.detail?{detail:c.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(Pe,"chatCompletionMessages");function ke(e){let t=Oe(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=Ie(e.tools);n.length>0&&(o.tools=n);let r=Se(e.toolChoice);return r!==void 0&&(o.tool_choice=r),o}i(ke,"buildResponsesBody");function Ae(e){let t=e?.trim();if(t)return t.length<=64?t:K("sha256").update(t).digest("hex")}i(Ae,"normalizedPromptCacheKey");function Oe(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 c=s.function&&typeof s.function=="object"?s.function:{};o.push({type:"function_call",call_id:s.id,name:c.name,arguments:typeof c.arguments=="string"?c.arguments:""})}}return{instructions:t.join(`
3
3
 
4
4
  `)||null,input:o}}i(Oe,"responsesInputFromMessages");function Te(e){if(!e||typeof e!="object")return[];let t=e,o=p(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(Te,"responsesReasoningItemsFromEvent");function Ie(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(Ie,"responsesTools");function Se(e){if(e!==void 0)return typeof e=="string"?e:{type:"function",name:e.function.name}}i(Se,"responsesToolChoice");function Re(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