sliccy 5.22.0 → 5.23.0

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 (273) hide show
  1. package/dist/ui/assets/__vite-browser-external-B0uIxSgw.js +1 -0
  2. package/dist/ui/assets/__vite-browser-external-SwrSgYTf.js +1 -0
  3. package/dist/ui/assets/{account-store-DOlleCyl.js → account-store-BPvwufEr.js} +3 -3
  4. package/dist/ui/assets/account-store-DRcHIayv.js +38 -0
  5. package/dist/ui/assets/addon-fit-Crogpbda.js +13 -0
  6. package/dist/ui/assets/addon-fit-DIOBYJe3.js +1 -0
  7. package/dist/ui/assets/{adobe-uTCM-4D4.js → adobe-BQa2f_tZ.js} +2 -2
  8. package/dist/ui/assets/{adobe-BApjrbPj.js → adobe-C1RMD4-d.js} +1 -1
  9. package/dist/ui/assets/{adobe-oauth-state-Dw_mocKc.js → adobe-oauth-state-CblNBQQR.js} +1 -1
  10. package/dist/ui/assets/{agent-message-to-chat-BdRCjeVB.js → agent-message-to-chat-LRySxnvm.js} +1 -1
  11. package/dist/ui/assets/{anthropic-DwYAPtk5.js → anthropic-BOEkIcb-.js} +1 -1
  12. package/dist/ui/assets/{anthropic-UMaEJx-B.js → anthropic-LjoeX6v-.js} +1 -1
  13. package/dist/ui/assets/{apps-BWPFf1Yf.js → apps-CZ4QaYIZ.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-BSJnjcfJ.js → azure-openai-D-59h58z.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-Bn5unC0Z.js → azure-openai-DZghfFcd.js} +1 -1
  16. package/dist/ui/assets/{azure-openai-responses-Bnxym5u-.js → azure-openai-responses-CbJrQGi8.js} +1 -1
  17. package/dist/ui/assets/{azure-openai-responses-Ds4b3a5B.js → azure-openai-responses-DPSrcT4o.js} +1 -1
  18. package/dist/ui/assets/{backend-local-D7FqJaoi.js → backend-local-BgTSBOxM.js} +1 -1
  19. package/dist/ui/assets/bedrock-camp-DjKgax8m.js +1 -0
  20. package/dist/ui/assets/{bedrock-camp-C1lmRgcD.js → bedrock-camp-DlP7CPgV.js} +2 -2
  21. package/dist/ui/assets/{browser-D0vICVpZ.js → browser-2wdq8OwU.js} +5 -5
  22. package/dist/ui/assets/{cdp-5C0rLyuM.js → cdp-D7cRI5-J.js} +1 -1
  23. package/dist/ui/assets/clipboard-DuHpK59o.js +1 -0
  24. package/dist/ui/assets/{composer-speech-DXkl5-5T.js → composer-speech-CzcwBzGA.js} +1 -1
  25. package/dist/ui/assets/{connect-surface-C597ydah.js → connect-surface-RiZUIrxS.js} +1 -1
  26. package/dist/ui/assets/{context-compaction-CFWyOzX1.js → context-compaction-DvlXtgVG.js} +1 -1
  27. package/dist/ui/assets/dip-BFDee3ZP.js +1 -0
  28. package/dist/ui/assets/{dist-jdlcYxrm.js → dist-0c-Ms6jt.js} +1 -1
  29. package/dist/ui/assets/{dist-k2Xmqc09.js → dist-BHXb30bf.js} +2 -2
  30. package/dist/ui/assets/{dist-BBhtjNOt.js → dist-Bw2SRiP7.js} +1 -1
  31. package/dist/ui/assets/dist-C30gQBcj2.js +12 -0
  32. package/dist/ui/assets/{dist-Dnh15m1q.js → dist-CC_gNVTb.js} +1 -1
  33. package/dist/ui/assets/dist-Cn_I6fkq.js +18 -0
  34. package/dist/ui/assets/{dist-DQRYKv91.js → dist-D1pcMg_U.js} +1 -1
  35. package/dist/ui/assets/{dist-CrC-F8vu.js → dist-D58cmC11.js} +1 -1
  36. package/dist/ui/assets/{dist-BmWy99kl.js → dist-D69OmKNn.js} +3 -3
  37. package/dist/ui/assets/{dist-AEf8Bitj2.js → dist-DD6YY4Ks2.js} +1 -1
  38. package/dist/ui/assets/{dist-CziJ8tXT.js → dist-SzMJHiOE.js} +1 -1
  39. package/dist/ui/assets/{ensure-speech-assets-BPhOGGfO.js → ensure-speech-assets-Bax4J0R4.js} +1 -1
  40. package/dist/ui/assets/{es-C8ey2woP.js → es-kEo2Tmh4.js} +4 -4
  41. package/dist/ui/assets/esp32-D9ZurRwV.js +1 -0
  42. package/dist/ui/assets/{esp32c2-CpROmlB0.js → esp32c2-F0yCL7ES.js} +1 -1
  43. package/dist/ui/assets/esp32c3-wVAODszM.js +1 -0
  44. package/dist/ui/assets/{esp32c5-KJSqwo2Q.js → esp32c5-ChTI-uFN.js} +1 -1
  45. package/dist/ui/assets/{esp32c6-BMEnOhZ6.js → esp32c6-IwoGEmKl.js} +1 -1
  46. package/dist/ui/assets/{esp32c61-sRp43nbI.js → esp32c61-BJScMw70.js} +1 -1
  47. package/dist/ui/assets/{esp32h2-BKv-WORi.js → esp32h2-YosZEx9u.js} +1 -1
  48. package/dist/ui/assets/{esp32p4-g1tFG0sh.js → esp32p4-BSe822vW.js} +1 -1
  49. package/dist/ui/assets/{esp32s2-BE2gO68i.js → esp32s2-Dhlhu16A.js} +1 -1
  50. package/dist/ui/assets/{esp32s3-CjMu3q4c.js → esp32s3-PqxbnxPZ.js} +1 -1
  51. package/dist/ui/assets/esp8266-CgqhR4Wc.js +1 -0
  52. package/dist/ui/assets/esp8266-CuMaVNVI.js +1 -0
  53. package/dist/ui/assets/{esptool-operations-wnHF1cOB.js → esptool-operations-CNxPdlH_.js} +2 -2
  54. package/dist/ui/assets/esptool-operations-KWVZgO7d.js +12 -0
  55. package/dist/ui/assets/{follower-navigate-watcher-CnHWEu_l.js → follower-navigate-watcher-quUh7-CS.js} +1 -1
  56. package/dist/ui/assets/fs-D6GWcrVb.js +1 -0
  57. package/dist/ui/assets/{fs-DGzEyyjW.js → fs-njSrzhNh.js} +2 -2
  58. package/dist/ui/assets/{github-DrBasfDl.js → github-C5iKeyIZ.js} +2 -2
  59. package/dist/ui/assets/{github-CrEpWTT4.js → github-CY1vTcwt.js} +1 -1
  60. package/dist/ui/assets/{github-copilot-fQiOd3tX.js → github-copilot-BkzVAtWq.js} +1 -1
  61. package/dist/ui/assets/{github-copilot-CYUdwY7c.js → github-copilot-C_XDJI-F.js} +2 -2
  62. package/dist/ui/assets/{google-CEOynCO5.js → google-C3U0TK_l.js} +1 -1
  63. package/dist/ui/assets/{google-CSaY-DQE.js → google-DPvIPcfE.js} +1 -1
  64. package/dist/ui/assets/google-shared-CFmFmYdk.js +11 -0
  65. package/dist/ui/assets/{google-shared-RiqqHuiz.js → google-shared-CwjAeP6N.js} +1 -1
  66. package/dist/ui/assets/{google-vertex-CBHKHWKe.js → google-vertex-BbeV3aSP.js} +1 -1
  67. package/dist/ui/assets/{google-vertex-C7BX8ATF.js → google-vertex-CEGsokz8.js} +1 -1
  68. package/dist/ui/assets/{handoff-link-ywwq4k0t.js → handoff-link-w8LYa3Ua.js} +1 -1
  69. package/dist/ui/assets/{hear-DH3US_c_.js → hear--VyWD7WJ.js} +1 -1
  70. package/dist/ui/assets/{hear-DcjeM2tc.js → hear-DMzpXyvS.js} +1 -1
  71. package/dist/ui/assets/hid-device-registry-6w-g8ZpF.js +1 -0
  72. package/dist/ui/assets/hid-picker-CE6gGmQt.js +1 -0
  73. package/dist/ui/assets/icons-C5g936Qd.js +1 -0
  74. package/dist/ui/assets/{index-BeMnZBAU.js → index-AMF5XZgS.js} +72 -71
  75. package/dist/ui/assets/intercepted-oauth-CaCw-rJ5.js +1 -0
  76. package/dist/ui/assets/js-realm-worker-BYZQ59hJ.js +49 -0
  77. package/dist/ui/assets/json-parse-B51EftGA.js +3 -0
  78. package/dist/ui/assets/json-parse-C7d6hyOc.js +3 -0
  79. package/dist/ui/assets/{kernel-worker--emmdYcK.js → kernel-worker-BuLAKxNE.js} +1237 -837
  80. package/dist/ui/assets/kokoro-BFFlHn4y.js +4 -0
  81. package/dist/ui/assets/kokoro-C-DxSDte.js +4 -0
  82. package/dist/ui/assets/{kokoro-engine-D6CvO4ll.js → kokoro-engine-CVpfUNNb.js} +2 -2
  83. package/dist/ui/assets/{legacy-styles-4PP74ISo.js → legacy-styles-CF6h7ytf.js} +1 -1
  84. package/dist/ui/assets/{lick-ws-bridge-BW2oth5z.js → lick-ws-bridge--Vksc7F9.js} +1 -1
  85. package/dist/ui/assets/{lick-ws-bridge-ldh3QesL.js → lick-ws-bridge-DAzGsuBg.js} +1 -1
  86. package/dist/ui/assets/llm-session-id-bZQs6gBN.js +1 -0
  87. package/dist/ui/assets/{local-llm-B-K_aJrM.js → local-llm-B3sNRJii.js} +1 -1
  88. package/dist/ui/assets/{main-ONpvMnyR.js → main-BME4pJJo.js} +4 -4
  89. package/dist/ui/assets/{main-cherry-NiJ4PeFm.js → main-cherry-DkK6hE90.js} +1 -1
  90. package/dist/ui/assets/mistral-CLF3Mo4W.js +46 -0
  91. package/dist/ui/assets/mistral-DkJAVbOW.js +46 -0
  92. package/dist/ui/assets/mount-Bix58hlG.js +1 -0
  93. package/dist/ui/assets/{mount-DcGhI7cC.js → mount-CW5miKSN.js} +2 -2
  94. package/dist/ui/assets/mount-bridge-client-DnDk55XZ.js +2 -0
  95. package/dist/ui/assets/mount-picker-popup-Cw_D7c_n.js +1 -0
  96. package/dist/ui/assets/mount-table-store-CfQUN_2R.js +1 -0
  97. package/dist/ui/assets/mount-table-store-s20mtVA3.js +1 -0
  98. package/dist/ui/assets/{navigation-watcher-BxAAD5To.js → navigation-watcher-C2s0i0h4.js} +1 -1
  99. package/dist/ui/assets/{new-session-CnM_DXhJ.js → new-session-CS1WEhLm.js} +2 -2
  100. package/dist/ui/assets/{oauth-bootstrap-BZCLo8I2.js → oauth-bootstrap-B2wuItHI.js} +2 -2
  101. package/dist/ui/assets/{oauth-service-D-lmxdpH.js → oauth-service-R7EZswi4.js} +1 -1
  102. package/dist/ui/assets/{oauth-service-ahaKd8Mt.js → oauth-service-ySAsf2gs.js} +1 -1
  103. package/dist/ui/assets/{onboarding-orchestrator-CADSztcp.js → onboarding-orchestrator-cZ36aqC6.js} +1 -1
  104. package/dist/ui/assets/{openai-Cn5LRPCm.js → openai-BeH6aC_-.js} +1 -1
  105. package/dist/ui/assets/{openai-i4HWKCeW.js → openai-BvKpRLAG.js} +1 -1
  106. package/dist/ui/assets/{openai-codex-CceLJ6J-.js → openai-codex-BnYyNqXj.js} +1 -1
  107. package/dist/ui/assets/{openai-codex-BfTcuFL3.js → openai-codex-D_k1NXCs.js} +1 -1
  108. package/dist/ui/assets/{openai-codex-responses-Cq5XDqVc.js → openai-codex-responses-B2oZ1hgB.js} +1 -1
  109. package/dist/ui/assets/{openai-codex-responses-7JN1dUxK.js → openai-codex-responses-Dumyd9t2.js} +1 -1
  110. package/dist/ui/assets/{openai-completions-DLI0t_lj.js → openai-completions-B2n4Op2S.js} +1 -1
  111. package/dist/ui/assets/openai-completions-aHU8w14d.js +5 -0
  112. package/dist/ui/assets/{openai-responses-ANbRIlpa.js → openai-responses-4ryIAXQS.js} +1 -1
  113. package/dist/ui/assets/{openai-responses-nczmKECx.js → openai-responses-BurVahs3.js} +1 -1
  114. package/dist/ui/assets/{openai-responses-shared-CM2vkuNI.js → openai-responses-shared-BebU8o_f.js} +1 -1
  115. package/dist/ui/assets/{openai-responses-shared-9YVaeX5D.js → openai-responses-shared-D9O9OCYB.js} +1 -1
  116. package/dist/ui/assets/{openrouter-Cy2dLX1Z.js → openrouter-B1ruTb6k.js} +1 -1
  117. package/dist/ui/assets/{openrouter-QETwrep8.js → openrouter-XmffhsNH.js} +1 -1
  118. package/dist/ui/assets/page-follower-tray-CKvoa8Vc.js +5 -0
  119. package/dist/ui/assets/panel-rpc-CjFVE0nK.js +1 -0
  120. package/dist/ui/assets/panel-rpc-DmJSNs0I.js +1 -0
  121. package/dist/ui/assets/panel-rpc-handlers-B-gE3pP7.js +2 -0
  122. package/dist/ui/assets/{pdfjs-C3ks1z_T.js → pdfjs-BdCnB7P8.js} +7 -7
  123. package/dist/ui/assets/preload-helper-CZgWQFsJ.js +1 -0
  124. package/dist/ui/assets/{provider-eCpA8_Iv.js → provider-DO4PGsF_.js} +2 -2
  125. package/dist/ui/assets/{provider-B3fKSgvd.js → provider-lR1ovrWJ.js} +1 -1
  126. package/dist/ui/assets/provider-store-access-4kR4SrNf.js +1 -0
  127. package/dist/ui/assets/provider-store-access-Clj85PSW.js +1 -0
  128. package/dist/ui/assets/providers-CChuPgRN.js +1 -0
  129. package/dist/ui/assets/providers-lNcU6L-a.js +2 -0
  130. package/dist/ui/assets/proxied-fetch-DzLglfG5.js +2 -0
  131. package/dist/ui/assets/proxied-fetch-R_Zw2ZFI.js +1 -0
  132. package/dist/ui/assets/py-realm-worker-Cr26Gsx8.js +244 -0
  133. package/dist/ui/assets/{pyodide-CPgzyJWn.js → pyodide-CHuPF4e3.js} +2 -2
  134. package/dist/ui/assets/{pyodide-BFyW4kyI.js → pyodide-Dp0v7U2K.js} +2 -2
  135. package/dist/ui/assets/quick-llm-BcXxSY4e.js +1 -0
  136. package/dist/ui/assets/remote-cache-D59F5FOx.js +1 -0
  137. package/dist/ui/assets/remote-cdp-transport-DTCu2BgA.js +1 -0
  138. package/dist/ui/assets/{remote-terminal-view-DIEOCe9M.js → remote-terminal-view-B_2LHY8s.js} +1 -1
  139. package/dist/ui/assets/{secret-env-Bs2du0RF.js → secret-env-guT2rdYI.js} +1 -1
  140. package/dist/ui/assets/{secret-topology-Bp0wH2ni.js → secret-topology-CC_yKaqL.js} +1 -1
  141. package/dist/ui/assets/secrets-bridge-client-C3K9ItX4.js +2 -0
  142. package/dist/ui/assets/serial-picker-1VVNQI8D.js +1 -0
  143. package/dist/ui/assets/serial-port-registry-DsPZvGpT.js +1 -0
  144. package/dist/ui/assets/session-freezer-CgXtJVLu.js +1 -0
  145. package/dist/ui/assets/session-store-DAM8GRJ0.js +1 -0
  146. package/dist/ui/assets/{setup-sprinkle-exec-C7SBZY7y.js → setup-sprinkle-exec-P2hO-taT.js} +1 -1
  147. package/dist/ui/assets/shared-CrHp2zdc.js +1 -0
  148. package/dist/ui/assets/{slicc-editor-BdfBeQCF.js → slicc-editor-DKckizoI.js} +2 -2
  149. package/dist/ui/assets/{speak-CmXyuska.js → speak-B0KXFDjL.js} +1 -1
  150. package/dist/ui/assets/{speak-7UzWyUVB.js → speak-BwWMiCus.js} +3 -3
  151. package/dist/ui/assets/speech-assets-bridge-CFYafE89.js +1 -0
  152. package/dist/ui/assets/{sprinkle-bridge-CwelAMwV.js → sprinkle-bridge-DL0PzEfD.js} +1 -1
  153. package/dist/ui/assets/{sprinkle-manager-BcNkmc-E.js → sprinkle-manager-BrnXYZNe.js} +1 -1
  154. package/dist/ui/assets/{sprinkle-renderer-GiRRbdBx.js → sprinkle-renderer-CsUow5K7.js} +3 -3
  155. package/dist/ui/assets/{sql-wasm-BWbkWL23.js → sql-wasm-JpZkOS2Q.js} +1 -1
  156. package/dist/ui/assets/store-CiLd7Ltk.js +1 -0
  157. package/dist/ui/assets/{sudo-CGD0Ki6b.js → sudo-SbEy0lx-.js} +3 -3
  158. package/dist/ui/assets/{sync-dialog-BFKWO6DT.js → sync-dialog-Ie_5SqoO.js} +1 -1
  159. package/dist/ui/assets/theme-Ca4mHxHv.js +1 -0
  160. package/dist/ui/assets/theme-engine-LmGLoWYX.js +3 -0
  161. package/dist/ui/assets/theme-presets-xiOb9AFN.js +1 -0
  162. package/dist/ui/assets/transform-messages-DiIjWKhh.js +1 -0
  163. package/dist/ui/assets/{transformers-env-ChIHsg1x.js → transformers-env-Blt6HC_1.js} +1 -1
  164. package/dist/ui/assets/{transformers-env-BQUf39mx.js → transformers-env-D24AdCVb.js} +1 -1
  165. package/dist/ui/assets/{transformers.web-BxHOGVSB.js → transformers.web-C6PlPLR-.js} +1 -1
  166. package/dist/ui/assets/{transformers.web-CuUo4MLm.js → transformers.web-DkJGoARp.js} +1 -1
  167. package/dist/ui/assets/tray-leader-Ce8YyKO5.js +1 -0
  168. package/dist/ui/assets/{tray-leave-runtime-CVAUUyWv.js → tray-leave-runtime-DWG6ewDi.js} +1 -1
  169. package/dist/ui/assets/{upgrade-detection-D6i1xD-s.js → upgrade-detection-Bahy2mfY.js} +1 -1
  170. package/dist/ui/assets/usb-device-registry-k6vTKonT.js +1 -0
  171. package/dist/ui/assets/{usb-operations-CkcrNzZw.js → usb-operations-D-YdmmuG.js} +1 -1
  172. package/dist/ui/assets/usb-picker-SsbXAvwt.js +1 -0
  173. package/dist/ui/assets/{voice-reply-DeTF05vK.js → voice-reply-CdDTbx5C.js} +1 -1
  174. package/dist/ui/assets/{wc-attach-D63LJy4C.js → wc-attach-P61GYoY8.js} +3 -3
  175. package/dist/ui/assets/wc-extension-C_Atv9M1.js +2 -0
  176. package/dist/ui/assets/wc-float-label-COQsLLC2.js +1 -0
  177. package/dist/ui/assets/wc-follower-DLWJH9Wm.js +2 -0
  178. package/dist/ui/assets/{wc-live-BjRY1nkF.js → wc-live-CKisGrn6.js} +16 -16
  179. package/dist/ui/assets/wc-nav-C8bnEda_.js +2 -0
  180. package/dist/ui/assets/{wc-onboarding-CO2r3rtk.js → wc-onboarding-DQOqFqNj.js} +2 -2
  181. package/dist/ui/assets/{wc-permissions-DmHMvdiC.js → wc-permissions-CBFvg_0i.js} +3 -3
  182. package/dist/ui/assets/{wc-permissions-providers-BufEXbhX.js → wc-permissions-providers-Cdznv6xX.js} +2 -2
  183. package/dist/ui/assets/wc-permissions-registry-Blyunq37.js +1 -0
  184. package/dist/ui/assets/wc-permissions-registry-C7PhTX3c.js +1 -0
  185. package/dist/ui/assets/{wc-placeholder-DmDCYMMv.js → wc-placeholder-ClGtIyUC.js} +3 -3
  186. package/dist/ui/assets/wc-settings-CH0fgu4m.js +48 -0
  187. package/dist/ui/assets/{wc-shell-DwWXZMDq.js → wc-shell-FqlPeZfJ.js} +4 -4
  188. package/dist/ui/assets/wc-sprinkles-BtyrEgiD.js +2 -0
  189. package/dist/ui/assets/wc-tray-Dgcd1QIL.js +2 -0
  190. package/dist/ui/assets/welcome-detection-CQY88hjL.js +1 -0
  191. package/dist/ui/assets/{whisper-engine-B4F1IZk5.js → whisper-engine-DcSK9vG0.js} +1 -1
  192. package/dist/ui/assets/{whisper-session-bkHemaIa.js → whisper-session-tJ8m9ShN.js} +2 -2
  193. package/dist/ui/assets/{xai-grok-DnE_hbXu.js → xai-grok-CEiCsU5v.js} +1 -1
  194. package/dist/ui/assets/{xai-grok-CSI7j4LP.js → xai-grok-CtCLXgPn.js} +1 -1
  195. package/dist/ui/assets/{xterm-DooSxjI5.js → xterm-DMlKjmUi.js} +2 -2
  196. package/dist/ui/assets/{xterm-B5O_KJMf.js → xterm-Dwh1I9AE.js} +2 -2
  197. package/dist/ui/index.html +16 -16
  198. package/dist/ui/packages/webapp/index.html +16 -16
  199. package/package.json +4 -4
  200. package/dist/ui/assets/__vite-browser-external-BdY91arR.js +0 -1
  201. package/dist/ui/assets/__vite-browser-external-C7iut881.js +0 -1
  202. package/dist/ui/assets/account-store-DvidGCSz.js +0 -38
  203. package/dist/ui/assets/addon-fit-CuuUKmBe.js +0 -13
  204. package/dist/ui/assets/addon-fit-DthTIhi3.js +0 -1
  205. package/dist/ui/assets/bedrock-camp-9-QEmC9Z.js +0 -1
  206. package/dist/ui/assets/clipboard-DgFtRQbq.js +0 -1
  207. package/dist/ui/assets/dip-ZwIIoTvH.js +0 -1
  208. package/dist/ui/assets/dist-4q7gK6W0.js +0 -18
  209. package/dist/ui/assets/dist-eRjRxbMY2.js +0 -12
  210. package/dist/ui/assets/esp32-CatgC_Vd.js +0 -1
  211. package/dist/ui/assets/esp32c3-heViyR1Q.js +0 -1
  212. package/dist/ui/assets/esp8266-BPLrOmN4.js +0 -1
  213. package/dist/ui/assets/esp8266-DJkN1NMD.js +0 -1
  214. package/dist/ui/assets/esptool-operations-CiX8mbpu.js +0 -12
  215. package/dist/ui/assets/fs-CNaqdxK1.js +0 -1
  216. package/dist/ui/assets/google-shared-CVRDRmWo.js +0 -11
  217. package/dist/ui/assets/hid-device-registry-D2LsJCRr.js +0 -1
  218. package/dist/ui/assets/hid-picker-DUJBI46p.js +0 -1
  219. package/dist/ui/assets/icons-BU6llBsN.js +0 -1
  220. package/dist/ui/assets/intercepted-oauth-E9BfBX02.js +0 -1
  221. package/dist/ui/assets/js-realm-worker-CPYpgfMX.js +0 -49
  222. package/dist/ui/assets/json-parse-BUunmmNl.js +0 -3
  223. package/dist/ui/assets/json-parse-CWht3lea.js +0 -3
  224. package/dist/ui/assets/kokoro-B5jJ2WUJ.js +0 -4
  225. package/dist/ui/assets/kokoro-BdpwC7DT.js +0 -4
  226. package/dist/ui/assets/llm-session-id-DVmZ9C2t.js +0 -1
  227. package/dist/ui/assets/mistral-BTNTllXI.js +0 -46
  228. package/dist/ui/assets/mistral-BzfpfZhh.js +0 -46
  229. package/dist/ui/assets/mount-BIAbddcu.js +0 -1
  230. package/dist/ui/assets/mount-bridge-client-tEnjiHyh.js +0 -2
  231. package/dist/ui/assets/mount-picker-popup-Hrvzr69c.js +0 -1
  232. package/dist/ui/assets/mount-table-store-DAENz45Q.js +0 -1
  233. package/dist/ui/assets/mount-table-store-ggb440m4.js +0 -1
  234. package/dist/ui/assets/openai-completions-YNL_qr9N.js +0 -5
  235. package/dist/ui/assets/page-follower-tray-3aCyiYwD.js +0 -4
  236. package/dist/ui/assets/panel-rpc-D0J5pskz.js +0 -1
  237. package/dist/ui/assets/panel-rpc-DqT2FG7c.js +0 -1
  238. package/dist/ui/assets/panel-rpc-handlers-CY1CkLFB.js +0 -2
  239. package/dist/ui/assets/preload-helper-zJ_50EbN.js +0 -1
  240. package/dist/ui/assets/provider-store-access-CxkFfgDe.js +0 -1
  241. package/dist/ui/assets/provider-store-access-DrEF70fE.js +0 -1
  242. package/dist/ui/assets/providers-BaPDWsNI.js +0 -2
  243. package/dist/ui/assets/providers-Dge7mhGc.js +0 -1
  244. package/dist/ui/assets/proxied-fetch-B5vr_AP8.js +0 -2
  245. package/dist/ui/assets/proxied-fetch-I4cndszg.js +0 -1
  246. package/dist/ui/assets/py-realm-worker-LVNFvu8J.js +0 -244
  247. package/dist/ui/assets/quick-llm-3huRDf4h.js +0 -1
  248. package/dist/ui/assets/remote-cache-BL6NRenp.js +0 -1
  249. package/dist/ui/assets/remote-cdp-transport-BrkfZae9.js +0 -1
  250. package/dist/ui/assets/secrets-bridge-client-DXw32cXb.js +0 -2
  251. package/dist/ui/assets/serial-picker-B6s4NeaB.js +0 -1
  252. package/dist/ui/assets/serial-port-registry-Bc4wlwED.js +0 -1
  253. package/dist/ui/assets/session-freezer-Bu6IGBjC.js +0 -1
  254. package/dist/ui/assets/session-store-CCH7W8KY.js +0 -1
  255. package/dist/ui/assets/shared-DAA_6m5R.js +0 -1
  256. package/dist/ui/assets/speech-assets-bridge-B8NqCAE8.js +0 -1
  257. package/dist/ui/assets/store-GRbFxjv_.js +0 -1
  258. package/dist/ui/assets/theme-BBwuyzvz.js +0 -1
  259. package/dist/ui/assets/transform-messages-DzB_lMo-.js +0 -1
  260. package/dist/ui/assets/tray-leader-_L-5FP9I.js +0 -1
  261. package/dist/ui/assets/usb-device-registry-BP58Vi0S.js +0 -1
  262. package/dist/ui/assets/usb-picker-D_K0weAY.js +0 -1
  263. package/dist/ui/assets/wc-extension-CoQsUqQu.js +0 -2
  264. package/dist/ui/assets/wc-float-label-dfUH87GD.js +0 -1
  265. package/dist/ui/assets/wc-follower-3KEzkDWq.js +0 -2
  266. package/dist/ui/assets/wc-nav-HoPMQ97b.js +0 -2
  267. package/dist/ui/assets/wc-permissions-registry-CR1rTd2H.js +0 -1
  268. package/dist/ui/assets/wc-permissions-registry-Dx-BRiKK.js +0 -1
  269. package/dist/ui/assets/wc-settings-Dd2Pbdn9.js +0 -24
  270. package/dist/ui/assets/wc-sprinkles-DQtTnVxO.js +0 -2
  271. package/dist/ui/assets/wc-tray-B2k2gf2c.js +0 -2
  272. package/dist/ui/assets/welcome-detection-Cr8mNEkt.js +0 -1
  273. /package/dist/ui/assets/{chunk-aKtaBQYM.js → rolldown-runtime-aKtaBQYM.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,r as n}from"./transform-messages-BjP6vDPY.js";import{i as r,n as i,r as a,t as o}from"./diagnostics-DRDFDs4d.js";import{t as s}from"./headers-DO1UzNKu.js";import{t as c}from"./openai-prompt-cache-DXo9f3w5.js";import{n as l,r as u,t as d}from"./openai-responses-shared-9YVaeX5D.js";function f(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}var p=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e};let m=null;const h=e=>import(p(e));typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&h(`node:os`).then(e=>{m=e});const g=1e3,_=1e4,v=new Set([`openai`,`openai-codex`,`opencode`]),y=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function b(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function x(e,t){return e===429&&b(t)?!1:e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function ee(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}function te(e,t){let n=t?.maxRetryDelayMs??6e4;return n>0?Math.min(e,n):e}function S(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function C(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function ne(){let e=new AbortController,t,n=setTimeout(()=>{t=Error(`Codex SSE response headers timed out after ${_}ms`),e.abort(t)},_);return{signal:e.signal,clear:()=>clearTimeout(n),error:()=>t}}const w=(t,n,r)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${t.provider}`);let l=be(c),u=E(t,n,r),d=await r?.onPayload?.(u,t);d!==void 0&&(u=d);let p=r?.sessionId||xe(),m=Se(t.headers,r?.headers,l,c,r?.sessionId),h=Ce(t.headers,r?.headers,l,c,p),_=JSON.stringify(u),v=C(r?.timeoutMs),y=C(r?.websocketConnectTimeoutMs),b=r?.transport||`auto`,w=b!==`sse`&&B(r?.sessionId);if(w&&V(r?.sessionId),b!==`sse`&&!w){let n=!1;try{if(await ve(re(t.baseUrl),u,h,e,a,t,()=>{n=!0},v,y,r),r?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end();return}catch(t){if(r?.signal?.aborted||ae(t)||(o(e,i(`provider_transport_failure`,t,{configuredTransport:b,fallbackTransport:n?void 0:`sse`,eventsEmitted:n,phase:n?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(_).byteLength})),H(r?.sessionId,t),n))throw t;V(r?.sessionId)}}let T,D,O=r?.maxRetries??0;for(let e=0;e<=O;e++){if(r?.signal?.aborted)throw Error(`Request was aborted`);try{let n=ne(),i=f([r?.signal,n.signal]);try{T=await fetch(A(t.baseUrl),{method:`POST`,headers:m,body:_,signal:i.signal})}catch(e){let t=n.error();throw t&&!r?.signal?.aborted?t:e}finally{i.cleanup(),n.clear()}if(await r?.onResponse?.({status:T.status,headers:s(T.headers)},t),T.ok)break;let a=await T.text();if(e<O&&x(T.status,a)){let t=ee(T.headers);await S(t===void 0?g*2**e:T.status===429?te(t,r):t,r?.signal);continue}let o=await ye(new Response(a,{status:T.status,statusText:T.statusText}));throw Error(o.friendlyMessage||o.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(D=t instanceof Error?t:Error(String(t)),e<O&&!D.message.includes(`usage limit`)){await S(g*2**e,r?.signal);continue}throw D}}if(!T?.ok)throw D??Error(`Failed after retries`);if(!T.body)throw Error(`No response body`);if(a.push({type:`start`,partial:e}),await ie(T,e,a,t,r),r?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:String(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},T=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=n(e,i,a),s=i?.reasoning?t(e,i.reasoning):void 0,c=s===`off`?void 0:s;return w(e,r,{...o,reasoningEffort:c})};function E(e,t,n){let r=d(e,t,v,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:r,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:c(n?.sessionId),tool_choice:`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(i.temperature=n.temperature),n?.serviceTier!==void 0&&(i.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(i.tools=l(t.tools,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(i.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return i}function D(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function O(e,t,n){let r=D(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}function k(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function A(e){let t=(e&&e.trim().length>0?e:`https://chatgpt.com/backend-api`).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function re(e){let t=new URL(A(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function ie(e,t,n,r,i){await u(N(P(e,i?.signal)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:k,applyServiceTierPricing:(e,t)=>O(e,t,r)})}var j=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},M=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function ae(e){return e instanceof j||e instanceof M}async function*N(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``;throw new j(`Codex error: ${t.message||e||JSON.stringify(t)}`,{code:e||void 0,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new j(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:oe(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function oe(e){if(typeof e==`string`)return y.has(e)?e:void 0}async function*P(e,t){if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,i=``,o=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);if(e)break;i+=r.decode(o,{stream:!0});let s=i.indexOf(`
1
+ import{a as e,c as t,r as n}from"./transform-messages-BjP6vDPY.js";import{i as r,n as i,r as a,t as o}from"./diagnostics-DRDFDs4d.js";import{t as s}from"./headers-DO1UzNKu.js";import{t as c}from"./openai-prompt-cache-DXo9f3w5.js";import{n as l,r as u,t as d}from"./openai-responses-shared-D9O9OCYB.js";function f(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}var p=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e};let m=null;const h=e=>import(p(e));typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&h(`node:os`).then(e=>{m=e});const g=1e3,_=1e4,v=new Set([`openai`,`openai-codex`,`opencode`]),y=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function b(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function x(e,t){return e===429&&b(t)?!1:e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function ee(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}function te(e,t){let n=t?.maxRetryDelayMs??6e4;return n>0?Math.min(e,n):e}function S(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function C(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function ne(){let e=new AbortController,t,n=setTimeout(()=>{t=Error(`Codex SSE response headers timed out after ${_}ms`),e.abort(t)},_);return{signal:e.signal,clear:()=>clearTimeout(n),error:()=>t}}const w=(t,n,r)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${t.provider}`);let l=be(c),u=E(t,n,r),d=await r?.onPayload?.(u,t);d!==void 0&&(u=d);let p=r?.sessionId||xe(),m=Se(t.headers,r?.headers,l,c,r?.sessionId),h=Ce(t.headers,r?.headers,l,c,p),_=JSON.stringify(u),v=C(r?.timeoutMs),y=C(r?.websocketConnectTimeoutMs),b=r?.transport||`auto`,w=b!==`sse`&&B(r?.sessionId);if(w&&V(r?.sessionId),b!==`sse`&&!w){let n=!1;try{if(await ve(re(t.baseUrl),u,h,e,a,t,()=>{n=!0},v,y,r),r?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end();return}catch(t){if(r?.signal?.aborted||ae(t)||(o(e,i(`provider_transport_failure`,t,{configuredTransport:b,fallbackTransport:n?void 0:`sse`,eventsEmitted:n,phase:n?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(_).byteLength})),H(r?.sessionId,t),n))throw t;V(r?.sessionId)}}let T,D,O=r?.maxRetries??0;for(let e=0;e<=O;e++){if(r?.signal?.aborted)throw Error(`Request was aborted`);try{let n=ne(),i=f([r?.signal,n.signal]);try{T=await fetch(A(t.baseUrl),{method:`POST`,headers:m,body:_,signal:i.signal})}catch(e){let t=n.error();throw t&&!r?.signal?.aborted?t:e}finally{i.cleanup(),n.clear()}if(await r?.onResponse?.({status:T.status,headers:s(T.headers)},t),T.ok)break;let a=await T.text();if(e<O&&x(T.status,a)){let t=ee(T.headers);await S(t===void 0?g*2**e:T.status===429?te(t,r):t,r?.signal);continue}let o=await ye(new Response(a,{status:T.status,statusText:T.statusText}));throw Error(o.friendlyMessage||o.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(D=t instanceof Error?t:Error(String(t)),e<O&&!D.message.includes(`usage limit`)){await S(g*2**e,r?.signal);continue}throw D}}if(!T?.ok)throw D??Error(`Failed after retries`);if(!T.body)throw Error(`No response body`);if(a.push({type:`start`,partial:e}),await ie(T,e,a,t,r),r?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=t instanceof Error?t.message:String(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},T=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=n(e,i,a),s=i?.reasoning?t(e,i.reasoning):void 0,c=s===`off`?void 0:s;return w(e,r,{...o,reasoningEffort:c})};function E(e,t,n){let r=d(e,t,v,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:r,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:c(n?.sessionId),tool_choice:`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(i.temperature=n.temperature),n?.serviceTier!==void 0&&(i.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(i.tools=l(t.tools,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(i.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return i}function D(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function O(e,t,n){let r=D(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}function k(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function A(e){let t=(e&&e.trim().length>0?e:`https://chatgpt.com/backend-api`).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function re(e){let t=new URL(A(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function ie(e,t,n,r,i){await u(N(P(e,i?.signal)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:k,applyServiceTierPricing:(e,t)=>O(e,t,r)})}var j=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},M=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function ae(e){return e instanceof j||e instanceof M}async function*N(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``;throw new j(`Codex error: ${t.message||e||JSON.stringify(t)}`,{code:e||void 0,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new j(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:oe(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function oe(e){if(typeof e==`string`)return y.has(e)?e:void 0}async function*P(e,t){if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,i=``,o=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);if(e)break;i+=r.decode(o,{stream:!0});let s=i.indexOf(`
2
2
 
3
3
  `);for(;s!==-1;){let e=i.slice(0,s);i=i.slice(s+2);let t=e.split(`
4
4
  `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
@@ -1,4 +1,4 @@
1
- import{i as e,r as t,t as n}from"./event-stream-BJI_nGaK.js";import{n as r}from"./json-parse-BUunmmNl.js";import{r as i,t as a}from"./transform-messages-DzB_lMo-.js";import{t as o}from"./headers-DO1UzNKu.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{i as c,n as l,r as u,t as d}from"./github-copilot-headers-DZtWWv8W.js";import{n as f}from"./openai-Cn5LRPCm.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";function m(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function h(e){return e.type===`text`}function g(e){return e.type===`thinking`}function _(e){return e.type===`toolCall`}function v(e){return e.type===`image`}function y(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}var b=(e,t,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let s=i?.apiKey;if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=L(e),l=y(i?.cacheRetention),u=l===`none`?void 0:i?.sessionId,d=S(e,t,s,i?.headers,u,c),f=C(e,t,i,c,l),p=await i?.onPayload?.(f,e);p!==void 0&&(f=p);let m={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await i?.onResponse?.({status:g.status,headers:o(g.headers)},e),a.push({type:`start`,partial:n});let _=null,v=null,b=!1,x=new Map,w=new Map,T=n.content,E=e=>T.indexOf(e),D=e=>{let t=E(e);t!==-1&&(e.type===`text`?a.push({type:`text_end`,contentIndex:t,content:e.text,partial:n}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:t,content:e.thinking,partial:n}):e.type===`toolCall`&&(e.arguments=r(e.partialArgs),delete e.partialArgs,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:t,toolCall:e,partial:n})))},O=()=>(_||(_={type:`text`,text:``},T.push(_),a.push({type:`text_start`,contentIndex:E(_),partial:n})),_),k=e=>(v||(v={type:`thinking`,thinking:``,thinkingSignature:e},T.push(v),a.push({type:`thinking_start`,contentIndex:E(v),partial:n})),v),A=e=>{let t=typeof e.index==`number`?e.index:void 0,r=t===void 0?void 0:x.get(t);return!r&&e.id&&(r=w.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:t},t!==void 0&&x.set(t,r),e.id&&w.set(e.id,r),T.push(r),a.push({type:`toolcall_start`,contentIndex:E(r),partial:n})),t!==void 0&&r.streamIndex===void 0&&(r.streamIndex=t,x.set(t,r)),e.id&&w.set(e.id,r),r};for await(let t of h){if(!t||typeof t!=`object`)continue;n.responseId||=t.id,typeof t.model==`string`&&t.model.length>0&&t.model!==e.id&&(n.responseModel||=t.model),t.usage&&(n.usage=P(t.usage,e));let i=Array.isArray(t.choices)?t.choices[0]:void 0;if(i){if(!t.usage&&i.usage&&(n.usage=P(i.usage,e)),i.finish_reason){let e=F(i.finish_reason);n.stopReason=e.stopReason,e.errorMessage&&(n.errorMessage=e.errorMessage),b=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let e=O();e.text+=i.delta.content,a.push({type:`text_delta`,contentIndex:E(e),delta:i.delta.content,partial:n})}let t=[`reasoning_content`,`reasoning`,`reasoning_text`],o=i.delta,s=null;for(let e of t){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let t=o[s];if(typeof t==`string`&&t.length>0){let r=k(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=t,a.push({type:`thinking_delta`,contentIndex:E(r),delta:t,partial:n})}}if(i?.delta?.tool_calls)for(let e of i.delta.tool_calls){let t=A(e);!t.id&&e.id&&(t.id=e.id,w.set(e.id,t)),!t.name&&e.function?.name&&(t.name=e.function.name);let i=``;e.function?.arguments&&(i=e.function.arguments,t.partialArgs=(t.partialArgs??``)+e.function.arguments,t.arguments=r(t.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:E(t),delta:i,partial:n})}let c=i.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=n.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}for(let e of T)D(e);if(i?.signal?.aborted||n.stopReason===`aborted`)throw Error(`Request was aborted`);if(n.stopReason===`error`)throw Error(n.errorMessage||`Provider returned an error stop reason`);if(!b)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialArgs,delete e.streamIndex;n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(n.errorMessage+=`\n${t}`),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},x=(t,n,r)=>{let a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=i(t,r,a),s=r?.reasoning?e(t,r.reasoning):void 0,c=s===`off`?void 0:s,l=r?.toolChoice;return b(t,n,{...o,reasoningEffort:c,toolChoice:l})};function S(e,t,n,r,i,a=L(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=d({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let s=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new f({apiKey:n,baseURL:u(e.provider)?c(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function C(e,t,n,r=L(e),i=y(n?.cacheRetention)){let a=M(e,t,r),o=w(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?p(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools&&t.tools.length>0?(s.tools=N(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):m(t.messages)&&(s.tools=[]),o&&T(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function w(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function T(e,t,n){E(e,n),O(t,n),D(e,n)}function E(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){k(n,t);return}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&A(r,t))return}}function O(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function k(e,t){return j(e,t)}function A(e,t){return e.role===`user`||e.role===`assistant`?j(e,t):!1}function j(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function M(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=a(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:s(t.systemPrompt)})}let c=null;for(let t=0;t<o.length;t++){let i=o[t];if(n.requiresAssistantAfterToolResult&&c===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:s(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:s(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(h).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=i.content.filter(g).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
1
+ import{i as e,r as t,t as n}from"./event-stream-BJI_nGaK.js";import{n as r}from"./json-parse-C7d6hyOc.js";import{r as i,t as a}from"./transform-messages-DiIjWKhh.js";import{t as o}from"./headers-DO1UzNKu.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{i as c,n as l,r as u,t as d}from"./github-copilot-headers-DZtWWv8W.js";import{n as f}from"./openai-BeH6aC_-.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";function m(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function h(e){return e.type===`text`}function g(e){return e.type===`thinking`}function _(e){return e.type===`toolCall`}function v(e){return e.type===`image`}function y(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}var b=(e,t,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let s=i?.apiKey;if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=L(e),l=y(i?.cacheRetention),u=l===`none`?void 0:i?.sessionId,d=S(e,t,s,i?.headers,u,c),f=C(e,t,i,c,l),p=await i?.onPayload?.(f,e);p!==void 0&&(f=p);let m={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await i?.onResponse?.({status:g.status,headers:o(g.headers)},e),a.push({type:`start`,partial:n});let _=null,v=null,b=!1,x=new Map,w=new Map,T=n.content,E=e=>T.indexOf(e),D=e=>{let t=E(e);t!==-1&&(e.type===`text`?a.push({type:`text_end`,contentIndex:t,content:e.text,partial:n}):e.type===`thinking`?a.push({type:`thinking_end`,contentIndex:t,content:e.thinking,partial:n}):e.type===`toolCall`&&(e.arguments=r(e.partialArgs),delete e.partialArgs,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:t,toolCall:e,partial:n})))},O=()=>(_||(_={type:`text`,text:``},T.push(_),a.push({type:`text_start`,contentIndex:E(_),partial:n})),_),k=e=>(v||(v={type:`thinking`,thinking:``,thinkingSignature:e},T.push(v),a.push({type:`thinking_start`,contentIndex:E(v),partial:n})),v),A=e=>{let t=typeof e.index==`number`?e.index:void 0,r=t===void 0?void 0:x.get(t);return!r&&e.id&&(r=w.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:t},t!==void 0&&x.set(t,r),e.id&&w.set(e.id,r),T.push(r),a.push({type:`toolcall_start`,contentIndex:E(r),partial:n})),t!==void 0&&r.streamIndex===void 0&&(r.streamIndex=t,x.set(t,r)),e.id&&w.set(e.id,r),r};for await(let t of h){if(!t||typeof t!=`object`)continue;n.responseId||=t.id,typeof t.model==`string`&&t.model.length>0&&t.model!==e.id&&(n.responseModel||=t.model),t.usage&&(n.usage=P(t.usage,e));let i=Array.isArray(t.choices)?t.choices[0]:void 0;if(i){if(!t.usage&&i.usage&&(n.usage=P(i.usage,e)),i.finish_reason){let e=F(i.finish_reason);n.stopReason=e.stopReason,e.errorMessage&&(n.errorMessage=e.errorMessage),b=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let e=O();e.text+=i.delta.content,a.push({type:`text_delta`,contentIndex:E(e),delta:i.delta.content,partial:n})}let t=[`reasoning_content`,`reasoning`,`reasoning_text`],o=i.delta,s=null;for(let e of t){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let t=o[s];if(typeof t==`string`&&t.length>0){let r=k(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=t,a.push({type:`thinking_delta`,contentIndex:E(r),delta:t,partial:n})}}if(i?.delta?.tool_calls)for(let e of i.delta.tool_calls){let t=A(e);!t.id&&e.id&&(t.id=e.id,w.set(e.id,t)),!t.name&&e.function?.name&&(t.name=e.function.name);let i=``;e.function?.arguments&&(i=e.function.arguments,t.partialArgs=(t.partialArgs??``)+e.function.arguments,t.arguments=r(t.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:E(t),delta:i,partial:n})}let c=i.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=n.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}for(let e of T)D(e);if(i?.signal?.aborted||n.stopReason===`aborted`)throw Error(`Request was aborted`);if(n.stopReason===`error`)throw Error(n.errorMessage||`Provider returned an error stop reason`);if(!b)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialArgs,delete e.streamIndex;n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(n.errorMessage+=`\n${t}`),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},x=(t,n,r)=>{let a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=i(t,r,a),s=r?.reasoning?e(t,r.reasoning):void 0,c=s===`off`?void 0:s,l=r?.toolChoice;return b(t,n,{...o,reasoningEffort:c,toolChoice:l})};function S(e,t,n,r,i,a=L(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=d({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let s=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new f({apiKey:n,baseURL:u(e.provider)?c(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:s})}function C(e,t,n,r=L(e),i=y(n?.cacheRetention)){let a=M(e,t,r),o=w(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?p(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools&&t.tools.length>0?(s.tools=N(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):m(t.messages)&&(s.tools=[]),o&&T(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function w(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function T(e,t,n){E(e,n),O(t,n),D(e,n)}function E(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){k(n,t);return}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&A(r,t))return}}function O(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function k(e,t){return j(e,t)}function A(e,t){return e.role===`user`||e.role===`assistant`?j(e,t):!1}function j(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function M(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=a(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:s(t.systemPrompt)})}let c=null;for(let t=0;t<o.length;t++){let i=o[t];if(n.requiresAssistantAfterToolResult&&c===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:s(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:s(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(h).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=i.content.filter(g).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
2
2
 
3
3
  `)},...a];else{o.length>0&&(t.content=o);let n=c[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=c.map(e=>e.thinking).join(`
4
4
  `))}else o.length>0&&(t.content=o);let l=i.content.filter(_);if(l.length>0){t.tool_calls=l.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=l.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;r.push(t)}else if(i.role===`toolResult`){let i=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],c=t.content.filter(h).map(e=>e.text).join(`
@@ -0,0 +1,5 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,c as n,r,s as i,t as a}from"./transform-messages-BjP6vDPY.js";import{n as o}from"./json-parse-B51EftGA.js";import{n as s}from"./openai-BvKpRLAG.js";import{t as c}from"./headers-DO1UzNKu.js";import{t as l}from"./sanitize-unicode-DmIE6hZJ.js";import{i as u,n as d,r as f,t as p}from"./github-copilot-headers-DZtWWv8W.js";import{t as m}from"./openai-prompt-cache-DXo9f3w5.js";var h=e({convertMessages:()=>P,streamOpenAICompletions:()=>S,streamSimpleOpenAICompletions:()=>C});function g(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function _(e){return e.type===`text`}function v(e){return e.type===`thinking`}function y(e){return e.type===`toolCall`}function b(e){return e.type===`image`}function x(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}const S=(e,n,r)=>{let i=new t;return(async()=>{let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let a=r?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let s=z(e),l=x(r?.cacheRetention),u=l===`none`?void 0:r?.sessionId,d=w(e,n,a,r?.headers,u,s),f=T(e,n,r,s,l),p=await r?.onPayload?.(f,e);p!==void 0&&(f=p);let m={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await r?.onResponse?.({status:g.status,headers:c(g.headers)},e),i.push({type:`start`,partial:t});let _=null,v=null,y=!1,b=new Map,S=new Map,C=t.content,E=e=>C.indexOf(e),D=e=>{let n=E(e);n!==-1&&(e.type===`text`?i.push({type:`text_end`,contentIndex:n,content:e.text,partial:t}):e.type===`thinking`?i.push({type:`thinking_end`,contentIndex:n,content:e.thinking,partial:t}):e.type===`toolCall`&&(e.arguments=o(e.partialArgs),delete e.partialArgs,delete e.streamIndex,i.push({type:`toolcall_end`,contentIndex:n,toolCall:e,partial:t})))},O=()=>(_||(_={type:`text`,text:``},C.push(_),i.push({type:`text_start`,contentIndex:E(_),partial:t})),_),k=e=>(v||(v={type:`thinking`,thinking:``,thinkingSignature:e},C.push(v),i.push({type:`thinking_start`,contentIndex:E(v),partial:t})),v),A=e=>{let n=typeof e.index==`number`?e.index:void 0,r=n===void 0?void 0:b.get(n);return!r&&e.id&&(r=S.get(e.id)),r||(r={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&b.set(n,r),e.id&&S.set(e.id,r),C.push(r),i.push({type:`toolcall_start`,contentIndex:E(r),partial:t})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,b.set(n,r)),e.id&&S.set(e.id,r),r};for await(let n of h){if(!n||typeof n!=`object`)continue;t.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==e.id&&(t.responseModel||=n.model),n.usage&&(t.usage=I(n.usage,e));let r=Array.isArray(n.choices)?n.choices[0]:void 0;if(r){if(!n.usage&&r.usage&&(t.usage=I(r.usage,e)),r.finish_reason){let e=L(r.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage),y=!0}if(r.delta){if(r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0){let e=O();e.text+=r.delta.content,i.push({type:`text_delta`,contentIndex:E(e),delta:r.delta.content,partial:t})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=r.delta,s=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=a[s];if(typeof n==`string`&&n.length>0){let r=k(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,i.push({type:`thinking_delta`,contentIndex:E(r),delta:n,partial:t})}}if(r?.delta?.tool_calls)for(let e of r.delta.tool_calls){let n=A(e);!n.id&&e.id&&(n.id=e.id,S.set(e.id,n)),!n.name&&e.function?.name&&(n.name=e.function.name);let r=``;e.function?.arguments&&(r=e.function.arguments,n.partialArgs=(n.partialArgs??``)+e.function.arguments,n.arguments=o(n.partialArgs)),i.push({type:`toolcall_delta`,contentIndex:E(n),delta:r,partial:t})}let c=r.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let n=t.content.find(t=>t.type===`toolCall`&&t.id===e.id);n&&(n.thoughtSignature=JSON.stringify(e))}}}}}for(let e of C)D(e);if(r?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);if(!y)throw Error(`Stream ended without finish_reason`);i.push({type:`done`,reason:t.stopReason,message:t}),i.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialArgs,delete e.streamIndex;t.stopReason=r?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let n=e?.error?.metadata?.raw;n&&(t.errorMessage+=`\n${n}`),i.push({type:`error`,reason:t.stopReason,error:t}),i.end()}})(),i},C=(e,t,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=r(e,i,a),s=i?.reasoning?n(e,i.reasoning):void 0,c=s===`off`?void 0:s,l=i?.toolChoice;return S(e,t,{...o,reasoningEffort:c,toolChoice:l})};function w(e,t,n,r,i,a=z(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=d(t.messages),n=p({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let c=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new s({apiKey:n,baseURL:f(e.provider)?u(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:c})}function T(e,t,n,r=z(e),i=x(n?.cacheRetention)){let a=P(e,t,r),o=E(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?m(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools&&t.tools.length>0?(s.tools=F(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):g(t.messages)&&(s.tools=[]),o&&D(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function E(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function D(e,t,n){O(e,n),A(t,n),k(e,n)}function O(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){j(n,t);return}}function k(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&M(r,t))return}}function A(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function j(e,t){return N(e,t)}function M(e,t){return e.role===`user`||e.role===`assistant`?N(e,t):!1}function N(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function P(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=a(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:l(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let i=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:l(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:l(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(_).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:l(e.text)})),o=a.map(e=>e.text).join(``),s=i.content.filter(v).filter(e=>e.thinking.trim().length>0);if(s.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:s.map(e=>l(e.thinking)).join(`
2
+
3
+ `)},...a];else{o.length>0&&(t.content=o);let n=s[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=s.map(e=>e.thinking).join(`
4
+ `))}else o.length>0&&(t.content=o);let c=i.content.filter(y);if(c.length>0){t.tool_calls=c.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=c.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;r.push(t)}else if(i.role===`toolResult`){let i=[],a=t;for(;a<o.length&&o[a].role===`toolResult`;a++){let t=o[a],s=t.content.filter(_).map(e=>e.text).join(`
5
+ `),c=t.content.some(e=>e.type===`image`),u={role:`tool`,content:l(s.length>0?s:`(see attached image)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(u.name=t.toolName),r.push(u),c&&e.input.includes(`image`))for(let e of t.content)b(e)&&i.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=a-1,i.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...i]}),s=`user`):s=`toolResult`;continue}s=i.role}return r}function F(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function I(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,n-r-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:r,cacheWrite:a,totalTokens:o+s+r+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return i(t,c),c}function L(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function R(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,f=n.includes(`chutes.ai`)||a||c||i||l||u,p=t===`xai`||n.includes(`api.x.ai`),m=t===`deepseek`||n.includes(`deepseek.com`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!d,supportsDeveloperRole:h||!d&&!o,supportsReasoningEffort:!p&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,maxTokensField:f?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:m,thinkingFormat:m?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!c&&!l,cacheControlFormat:g,sendSessionAffinityHeaders:!1,supportsLongCacheRetention:!(i||s||c||l||u)}}function z(e){let t=R(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{S as n,C as r,h as t};
@@ -1 +1 @@
1
- import{i as e,t}from"./event-stream-BJI_nGaK.js";import{r as n}from"./transform-messages-DzB_lMo-.js";import{t as r}from"./headers-DO1UzNKu.js";import{i,n as a,r as o,t as s}from"./github-copilot-headers-DZtWWv8W.js";import{n as c}from"./openai-Cn5LRPCm.js";import{t as l}from"./openai-prompt-cache-DXo9f3w5.js";import{n as u,r as d,t as f}from"./openai-responses-shared-CM2vkuNI.js";var p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}var v=(e,n,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=i?.apiKey;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=m(i?.cacheRetention)===`none`?void 0:i?.sessionId,c=b(e,n,o,i?.headers,s),l=x(e,n,i),u=await i?.onPayload?.(l,e);u!==void 0&&(l=u);let f={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:p,response:h}=await c.responses.create(l,f).withResponse();if(await i?.onResponse?.({status:h.status,headers:r(h.headers)},e),a.push({type:`start`,partial:t}),await d(p,t,a,e,{serviceTier:i?.serviceTier,applyServiceTierPricing:(t,n)=>C(t,n,e)}),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialJson;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=_(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},y=(t,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=n(t,i,a),s=i?.reasoning?e(t,i.reasoning):void 0,c=s===`off`?void 0:s;return v(t,r,{...o,reasoningEffort:c})};function b(e,t,n,r,l){let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=s({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),r&&Object.assign(d,r);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new c({apiKey:n,baseURL:o(e.provider)?i(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:l(n?.sessionId),prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
1
+ import{i as e,t}from"./event-stream-BJI_nGaK.js";import{r as n}from"./transform-messages-DiIjWKhh.js";import{t as r}from"./headers-DO1UzNKu.js";import{i,n as a,r as o,t as s}from"./github-copilot-headers-DZtWWv8W.js";import{n as c}from"./openai-BeH6aC_-.js";import{t as l}from"./openai-prompt-cache-DXo9f3w5.js";import{n as u,r as d,t as f}from"./openai-responses-shared-BebU8o_f.js";var p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}var v=(e,n,i)=>{let a=new t;return(async()=>{let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=i?.apiKey;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=m(i?.cacheRetention)===`none`?void 0:i?.sessionId,c=b(e,n,o,i?.headers,s),l=x(e,n,i),u=await i?.onPayload?.(l,e);u!==void 0&&(l=u);let f={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:p,response:h}=await c.responses.create(l,f).withResponse();if(await i?.onResponse?.({status:h.status,headers:r(h.headers)},e),a.push({type:`start`,partial:t}),await d(p,t,a,e,{serviceTier:i?.serviceTier,applyServiceTierPricing:(t,n)=>C(t,n,e)}),i?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialJson;t.stopReason=i?.signal?.aborted?`aborted`:`error`,t.errorMessage=_(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},y=(t,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${t.provider}`);let o=n(t,i,a),s=i?.reasoning?e(t,i.reasoning):void 0,c=s===`off`?void 0:s;return v(t,r,{...o,reasoningEffort:c})};function b(e,t,n,r,l){let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=s({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),r&&Object.assign(d,r);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new c({apiKey:n,baseURL:o(e.provider)?i(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:l(n?.sessionId),prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
@@ -1 +1 @@
1
- import{a as e,c as t,r as n}from"./transform-messages-BjP6vDPY.js";import{n as r}from"./openai-i4HWKCeW.js";import{t as i}from"./headers-DO1UzNKu.js";import{i as a,n as o,r as s,t as c}from"./github-copilot-headers-DZtWWv8W.js";import{t as l}from"./openai-prompt-cache-DXo9f3w5.js";import{n as u,r as d,t as f}from"./openai-responses-shared-9YVaeX5D.js";const p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}const v=(t,n,r)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=r?.apiKey;if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=m(r?.cacheRetention)===`none`?void 0:r?.sessionId,c=b(t,n,o,r?.headers,s),l=x(t,n,r),u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:h}=await c.responses.create(l,f).withResponse();if(await r?.onResponse?.({status:h.status,headers:i(h.headers)},t),a.push({type:`start`,partial:e}),await d(p,e,a,t,{serviceTier:r?.serviceTier,applyServiceTierPricing:(e,n)=>C(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},y=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=n(e,i,a),s=i?.reasoning?t(e,i.reasoning):void 0,c=s===`off`?void 0:s;return v(e,r,{...o,reasoningEffort:c})};function b(e,t,n,i,l){let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),i&&Object.assign(d,i);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new r({apiKey:n,baseURL:s(e.provider)?a(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:l(n?.sessionId),prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
1
+ import{a as e,c as t,r as n}from"./transform-messages-BjP6vDPY.js";import{n as r}from"./openai-BvKpRLAG.js";import{t as i}from"./headers-DO1UzNKu.js";import{i as a,n as o,r as s,t as c}from"./github-copilot-headers-DZtWWv8W.js";import{t as l}from"./openai-prompt-cache-DXo9f3w5.js";import{n as u,r as d,t as f}from"./openai-responses-shared-D9O9OCYB.js";const p=new Set([`openai`,`openai-codex`,`opencode`]);function m(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function h(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function g(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function _(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}const v=(t,n,r)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=r?.apiKey;if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=m(r?.cacheRetention)===`none`?void 0:r?.sessionId,c=b(t,n,o,r?.headers,s),l=x(t,n,r),u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:h}=await c.responses.create(l,f).withResponse();if(await r?.onResponse?.({status:h.status,headers:i(h.headers)},t),a.push({type:`start`,partial:e}),await d(p,e,a,t,{serviceTier:r?.serviceTier,applyServiceTierPricing:(e,n)=>C(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(t),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},y=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=n(e,i,a),s=i?.reasoning?t(e,i.reasoning):void 0,c=s===`off`?void 0:s;return v(e,r,{...o,reasoningEffort:c})};function b(e,t,n,i,l){let u=h(e),d={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(d,n)}l&&(u.sendSessionIdHeader&&(d.session_id=l),d[`x-client-request-id`]=l),i&&Object.assign(d,i);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new r({apiKey:n,baseURL:s(e.provider)?a(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function x(e,t,n){let r=f(e,t,p),i=m(n?.cacheRetention),a=h(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:l(n?.sessionId),prompt_cache_retention:g(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=u(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function S(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function C(e,t,n){let r=S(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{v as streamOpenAIResponses,y as streamSimpleOpenAIResponses};
@@ -1,4 +1,4 @@
1
- import{r as e}from"./event-stream-BJI_nGaK.js";import{n as t}from"./json-parse-BUunmmNl.js";import{t as n}from"./transform-messages-DzB_lMo-.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=n(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let n=e.compat,i=e.reasoning&&n?.supportsDeveloperRole!==!1?`developer`:`system`;c.push({role:i,content:r(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{r as e}from"./event-stream-BJI_nGaK.js";import{n as t}from"./json-parse-C7d6hyOc.js";import{t as n}from"./transform-messages-DiIjWKhh.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=n(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let n=e.compat,i=e.reasoning&&n?.supportsDeveloperRole!==!1?`developer`:`system`;c.push({role:i,content:r(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `),i=t.content.some(e=>e.type===`image`),a=n.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:r(n)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}else s=r(a?n:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(n,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of n)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
3
3
 
4
4
  `,e.text+=`
@@ -1,4 +1,4 @@
1
- import{s as e,t}from"./transform-messages-BjP6vDPY.js";import{n}from"./json-parse-CWht3lea.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,n,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=t(n.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let t=e.compat,i=e.reasoning&&t?.supportsDeveloperRole!==!1?`developer`:`system`;c.push({role:i,content:r(n.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{s as e,t}from"./transform-messages-BjP6vDPY.js";import{n}from"./json-parse-B51EftGA.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,n,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=t(n.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let t=e.compat,i=e.reasoning&&t?.supportsDeveloperRole!==!1?`developer`:`system`;c.push({role:i,content:r(n.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,l=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=l===0?`msg_pi_${f}`:`msg_pi_${f}_${l}`;l++;let c=a?.id;c?c.length>64&&(c=`msg_${i(c)}`):c=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:c,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;c.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `),i=t.content.some(e=>e.type===`image`),a=n.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:r(n)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}else s=r(a?n:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(t,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of t)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
3
3
 
4
4
  `,e.text+=`
@@ -1 +1 @@
1
- import{t as e}from"./headers-DO1UzNKu.js";import{t}from"./sanitize-unicode-DmIE6hZJ.js";import{n}from"./openai-Cn5LRPCm.js";var r=async(t,n,r)=>{let s={api:t.api,provider:t.provider,model:t.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${t.provider}`);let l=i(t,c,r?.headers),u=a(t,n),d=await r?.onPayload?.(u,t);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:e(m.headers)},t);let h=p;s.responseId=h.id,h.usage&&(s.usage=o(h.usage,t));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&s.output.push({type:`text`,text:e});for(let e of g.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&s.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return s}catch(e){return s.stopReason=r?.signal?.aborted?`aborted`:`error`,s.errorMessage=e instanceof Error?e.message:JSON.stringify(e),s}};function i(e,t,r){return new n({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...e.headers,...r}})}function a(e,n){let r=n.input.map(e=>e.type===`text`?{type:`text`,text:t(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function o(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{r as generateImagesOpenRouter};
1
+ import{t as e}from"./headers-DO1UzNKu.js";import{t}from"./sanitize-unicode-DmIE6hZJ.js";import{n}from"./openai-BeH6aC_-.js";var r=async(t,n,r)=>{let s={api:t.api,provider:t.provider,model:t.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${t.provider}`);let l=i(t,c,r?.headers),u=a(t,n),d=await r?.onPayload?.(u,t);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:e(m.headers)},t);let h=p;s.responseId=h.id,h.usage&&(s.usage=o(h.usage,t));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&s.output.push({type:`text`,text:e});for(let e of g.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&s.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return s}catch(e){return s.stopReason=r?.signal?.aborted?`aborted`:`error`,s.errorMessage=e instanceof Error?e.message:JSON.stringify(e),s}};function i(e,t,r){return new n({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...e.headers,...r}})}function a(e,n){let r=n.input.map(e=>e.type===`text`?{type:`text`,text:t(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function o(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{r as generateImagesOpenRouter};
@@ -1 +1 @@
1
- import{n as e}from"./openai-i4HWKCeW.js";import{t}from"./headers-DO1UzNKu.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";const r=async(e,n,r)=>{let s={api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${e.provider}`);let l=i(e,c,r?.headers),u=a(e,n),d=await r?.onPayload?.(u,e);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:t(m.headers)},e);let h=p;s.responseId=h.id,h.usage&&(s.usage=o(h.usage,e));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&s.output.push({type:`text`,text:e});for(let e of g.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&s.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return s}catch(e){return s.stopReason=r?.signal?.aborted?`aborted`:`error`,s.errorMessage=e instanceof Error?e.message:JSON.stringify(e),s}};function i(t,n,r){return new e({apiKey:n,baseURL:t.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...t.headers,...r}})}function a(e,t){let r=t.input.map(e=>e.type===`text`?{type:`text`,text:n(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function o(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{r as generateImagesOpenRouter};
1
+ import{n as e}from"./openai-BvKpRLAG.js";import{t}from"./headers-DO1UzNKu.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";const r=async(e,n,r)=>{let s={api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let c=r?.apiKey;if(!c)throw Error(`No API key for provider: ${e.provider}`);let l=i(e,c,r?.headers),u=a(e,n),d=await r?.onPayload?.(u,e);d!==void 0&&(u=d);let f={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:p,response:m}=await l.chat.completions.create(u,f).withResponse();await r?.onResponse?.({status:m.status,headers:t(m.headers)},e);let h=p;s.responseId=h.id,h.usage&&(s.usage=o(h.usage,e));let g=h.choices[0];if(g){let e=g.message.content;typeof e==`string`&&e.length>0&&s.output.push({type:`text`,text:e});for(let e of g.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&s.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return s}catch(e){return s.stopReason=r?.signal?.aborted?`aborted`:`error`,s.errorMessage=e instanceof Error?e.message:JSON.stringify(e),s}};function i(t,n,r){return new e({apiKey:n,baseURL:t.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...t.headers,...r}})}function a(e,t){let r=t.input.map(e=>e.type===`text`?{type:`text`,text:n(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function o(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{r as generateImagesOpenRouter};
@@ -0,0 +1,5 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/theme-engine-LmGLoWYX.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-CZgWQFsJ.js";import{a as t}from"./context-compaction-DvlXtgVG.js";import{t as n}from"./logger-DDBAeTLF.js";import{i as r,r as i}from"./src-x0cJ68Fe.js";import{f as a,m as o,p as s}from"./main-BME4pJJo.js";import{c,o as l,r as u,s as d,t as f}from"./remote-cdp-transport-DTCu2BgA.js";import{n as p}from"./shared-CrHp2zdc.js";import{t as m}from"./sprinkle-renderer-CsUow5K7.js";var h=class{logger;failureMessage;recoveryMessage;throttleMs;sustainedRelogMs;recoveryDebounceTicks;now;lastErrorLogAt=-1/0;inFailingState=!1;consecutiveSuccesses=0;constructor(e,t){if(!t.failureMessage.trim())throw RangeError(`ThrottledErrorTracker: failureMessage must be non-empty`);if(!t.recoveryMessage.trim())throw RangeError(`ThrottledErrorTracker: recoveryMessage must be non-empty`);let n=t.throttleMs??6e4;if(!Number.isFinite(n)||n<0)throw RangeError(`ThrottledErrorTracker: throttleMs must be a non-negative finite number, got ${n}`);let r=t.sustainedRelogMs??3e5;if(!Number.isFinite(r)||r<0)throw RangeError(`ThrottledErrorTracker: sustainedRelogMs must be a non-negative finite number, got ${r}`);let i=t.recoveryDebounceTicks??5;if(!Number.isInteger(i)||i<1)throw RangeError(`ThrottledErrorTracker: recoveryDebounceTicks must be a positive integer, got ${i}`);this.logger=e,this.failureMessage=t.failureMessage,this.recoveryMessage=t.recoveryMessage,this.throttleMs=n,this.sustainedRelogMs=r,this.recoveryDebounceTicks=i,this.now=t.now??(()=>performance.now())}reportFailure(e){let t=this.inFailingState;this.inFailingState=!0,this.consecutiveSuccesses=0;let n=this.now(),r=n-this.lastErrorLogAt;if(r>(t?this.sustainedRelogMs:this.throttleMs)){let i=t,a=i?`${this.failureMessage} (sustained)`:this.failureMessage;try{try{this.logger.error(a,i?{error:e instanceof Error?e.message:String(e),elapsedMs:Math.round(r)}:{error:e instanceof Error?e.message:String(e)})}catch(t){try{console.error(`[throttled-error-tracker] logger.error threw`,t,{originalMessage:a,originalError:e instanceof Error?e.message:String(e)})}catch{}}}finally{this.lastErrorLogAt=n}}}reportSuccess(){if(this.inFailingState&&(this.consecutiveSuccesses++,!(this.consecutiveSuccesses<this.recoveryDebounceTicks)))try{try{this.logger.error(this.recoveryMessage,{kind:`recovery`})}catch(e){try{console.error(`[throttled-error-tracker] logger.error (recovery) threw`,e,{originalMessage:this.recoveryMessage})}catch{}}}finally{this.inFailingState=!1,this.consecutiveSuccesses=0,this.lastErrorLogAt=-1/0}}},g=n(`data-channel-keepalive`),_=class{sendPing;onDead;intervalMs;maxMissed;timer=null;missedPongs=0;awaitingPong=!1;stopped=!1;constructor(e){this.sendPing=e.sendPing,this.onDead=e.onDead,this.intervalMs=e.intervalMs??1e4,this.maxMissed=e.maxMissed??3}start(){this.timer||this.stopped||(this.timer=setInterval(()=>this.tick(),this.intervalMs))}stop(){this.stopped=!0,this.timer&&=(clearInterval(this.timer),null)}receivePong(){this.awaitingPong=!1,this.missedPongs=0}receivePing(){this.missedPongs=0,this.awaitingPong=!1}get missed(){return this.missedPongs}tick(){if(!this.stopped){if(this.awaitingPong&&(this.missedPongs++,g.debug(`Missed pong`,{missedPongs:this.missedPongs,maxMissed:this.maxMissed}),this.missedPongs>=this.maxMissed)){g.warn(`Channel declared dead`,{missedPongs:this.missedPongs}),this.stop(),this.onDead();return}this.awaitingPong=!0,this.sendPing()}}},v=64*1024;async function y(e,t){try{switch(t.op){case`readFile`:return await b(e,t.path,t.encoding);case`writeFile`:return[await x(e,t.path,t.content,t.encoding)];case`stat`:return[await S(e,t.path)];case`readDir`:return[await ee(e,t.path)];case`mkdir`:return[await te(e,t.path,t.recursive)];case`rm`:return[await C(e,t.path,t.recursive)];case`exists`:return[await w(e,t.path)];case`walk`:return[await ne(e,t.path)];default:return[{ok:!1,error:`Unknown fs operation: ${t.op}`}]}}catch(e){return[re(e)]}}async function b(e,t,n){return(n??`utf-8`)===`utf-8`?T(await e.readFile(t,{encoding:`utf-8`}),`utf-8`):T(r(await e.readFile(t,{encoding:`binary`})),`base64`)}async function x(e,t,n,r){if(r===`base64`){let r=i(n);await e.writeFile(t,r)}else await e.writeFile(t,n);return{ok:!0,data:{type:`void`}}}async function S(e,t){return{ok:!0,data:{type:`stat`,stat:await e.stat(t)}}}async function ee(e,t){return{ok:!0,data:{type:`dirEntries`,entries:await e.readDir(t)}}}async function te(e,t,n){return await e.mkdir(t,{recursive:n}),{ok:!0,data:{type:`void`}}}async function C(e,t,n){return await e.rm(t,{recursive:n}),{ok:!0,data:{type:`void`}}}async function w(e,t){return{ok:!0,data:{type:`exists`,exists:await e.exists(t)}}}async function ne(e,t){let n=[];for await(let r of e.walk(t))n.push(r);return{ok:!0,data:{type:`paths`,paths:n}}}function T(e,t){if(e.length<=v)return[{ok:!0,data:{type:`file`,content:e,encoding:t}}];let n=Math.ceil(e.length/v),r=[];for(let i=0;i<n;i++){let a=i*v,o=e.slice(a,a+v);r.push({ok:!0,data:{type:`file`,content:o,encoding:t},chunkIndex:i,totalChunks:n})}return r}function re(e){return e instanceof Error&&`code`in e?{ok:!1,error:e.message,code:e.code}:{ok:!1,error:e instanceof Error?e.message:String(e)}}var E=n(`tray-follower-sync`),D=15e3,O=class{options;sync;eventListeners=new Set;unsubscribe;keepalive;latestSnapshot=null;sentMessageIds=new Set;targetEntries=[];remoteTransports=new Map;cdpChunkBuffers=new Map;snapshotChunkBuffer=null;remoteCDPSessions=new Set;cdpEventCleanups=[];tabOpenResolvers=new Map;fsResolvers=new Map;latestSprinkles=[];sprinkleContentCache=new Map;pendingSprinkleFetches=new Map;inflightSprinkleByName=new Map;sprinkleContentWaiters=new Map;cacheEpoch=0;fetchEpoch=new Map;constructor(e,t={}){this.options=t;let n=t.sprinkleFetchTimeoutMs;if(n!==void 0&&(!Number.isFinite(n)||n<0))throw RangeError(`sprinkleFetchTimeoutMs must be a non-negative finite number (0 disables the timer); got ${n}`);this.sync=u(e),this.unsubscribe=this.sync.onMessage(e=>{this.handleLeaderMessage(e)}),this.keepalive=new _({sendPing:()=>this.sync.send({type:`ping`}),onDead:()=>{E.warn(`Leader keepalive dead, cleaning up`),this.handleDisconnect(`Keepalive timeout — leader not responding`),this.options.onDead?.()}}),this.keepalive.start(),e.addEventListener(`close`,()=>{E.warn(`Data channel closed`),this.handleDisconnect(`Data channel closed`)}),e.addEventListener(`error`,()=>{E.warn(`Data channel error`),this.handleDisconnect(`Data channel error`)})}sendMessage(e,n,r){let i=n??`follower-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;this.sentMessageIds.add(i);let a=r?.length?t(r):r;this.sync.send({type:`user_message`,text:e,messageId:i,attachments:a}),E.info(`Sent user message to leader`,{messageId:i})}onEvent(e){return this.eventListeners.add(e),()=>this.eventListeners.delete(e)}stop(){this.sync.send({type:`abort`}),E.info(`Sent abort to leader`)}requestSnapshot(){this.sync.send({type:`request_snapshot`})}getLatestSnapshot(){return this.latestSnapshot}close(){this.disconnected||(this.disconnected=!0,this.keepalive.stop(),this.unsubscribe(),this.sync.close(),this.eventListeners.clear(),this.cleanupCDPEventForwarding(),this.rejectPendingRequests(`Follower sync closed`),E.info(`Follower sync closed`))}rejectPendingRequests(e){this.rejectPendingSprinkleFetches(e);let t=Error(e);for(let{reject:e}of this.tabOpenResolvers.values())e(t);this.tabOpenResolvers.clear();for(let{reject:e}of this.fsResolvers.values())e(t);this.fsResolvers.clear(),this.cdpChunkBuffers.clear();for(let e of this.remoteTransports.values())e.disconnect();this.remoteTransports.clear()}advertiseTargets(e,t){this.sync.send({type:`targets.advertise`,targets:e,runtimeId:t})}getTargets(){return this.targetEntries}sendCherryHostEvent(e,t){this.sync.send({type:`cherry.host_event`,targetId:this.options.selfRuntimeId??``,name:e,detail:t})}getSprinkles(){return this.latestSprinkles}refreshSprinkles(){this.sync.send({type:`sprinkles.refresh`})}fetchSprinkleContent(e){let t=this.sprinkleContentCache.get(e);if(t!==void 0)return Promise.resolve(t);let n=this.options.sprinkleFetchTimeoutMs??D;return new Promise((t,r)=>{let i=Symbol(`sprinkle-waiter`),a,o=e=>{a!==void 0&&clearTimeout(a),t(e)},s=e=>{a!==void 0&&clearTimeout(a),r(e)},c=this.sprinkleContentWaiters.get(e)??[];if(c.push({id:i,resolve:o,reject:s}),this.sprinkleContentWaiters.set(e,c),n>0&&(a=setTimeout(()=>{let t=this.sprinkleContentWaiters.get(e);if(t){let r=t.findIndex(e=>e.id===i);r>=0&&t.splice(r,1),t.length===0&&(this.sprinkleContentWaiters.delete(e),this.cancelSprinkleFetch(e,`Sprinkle fetch for "${e}" timed out after ${n}ms`))}r(Error(`Sprinkle fetch for "${e}" timed out after ${n}ms`))},n)),this.inflightSprinkleByName.has(e))return;let l=`sprinkle-fetch-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;this.inflightSprinkleByName.set(e,l),this.pendingSprinkleFetches.set(l,{sprinkleName:e,chunks:new Map,totalChunks:1}),this.fetchEpoch.set(l,this.cacheEpoch),this.sync.send({type:`sprinkle.fetch`,requestId:l,sprinkleName:e})})}sendSprinkleLick(e,t,n){this.sync.send({type:`sprinkle.lick`,sprinkleName:e,body:t,targetScoop:n})||E.warn(`sendSprinkleLick dropped: tray channel closed`,{sprinkleName:e})}forwardLick(e){let t=this.sync.send({type:`lick`,event:e});return t||E.warn(`forwardLick dropped: tray channel closed`,{type:e.type}),t}clearSprinkleCache(e){e===void 0?this.sprinkleContentCache.clear():this.sprinkleContentCache.delete(e)}cancelSprinkleFetch(e,t=`fetch cancelled`){let n=this.sprinkleContentWaiters.get(e)??[];this.sprinkleContentWaiters.delete(e);let r=this.inflightSprinkleByName.get(e);if(r!==void 0&&(this.inflightSprinkleByName.delete(e),this.pendingSprinkleFetches.delete(r),this.fetchEpoch.delete(r)),n.length===0)return;let i=Error(t);for(let e of n)e.reject(i)}disconnected=!1;handleDisconnect(e){this.disconnected||(this.disconnected=!0,o({...a(),state:`error`,error:e}),this.emitEvent({type:`error`,error:`Connection to leader lost: ${e}`}),this.keepalive.stop(),this.cleanupCDPEventForwarding(),this.unsubscribe(),this.sync.close(),this.rejectPendingRequests(`Follower sync disconnected: ${e}`),this.options.onDisconnect?.(e))}handleLeaderMessage(e){if(e.type===`theme.apply`){this.applyLeaderTheme(e.themeJson);return}switch(e.type){case`snapshot`:E.info(`Snapshot received from leader`,{messageCount:e.messages.length,scoopJid:e.scoopJid}),this.snapshotChunkBuffer=null,this.latestSnapshot={messages:e.messages,scoopJid:e.scoopJid},this.options.onSnapshot?.(e.messages,e.scoopJid);break;case`snapshot_chunk`:{let t=d(this.snapshotChunkBuffer,e);this.snapshotChunkBuffer=t.buffer,t.result&&(E.info(`Chunked snapshot reassembled from leader`,{messageCount:t.result.messages.length,scoopJid:t.result.scoopJid}),this.latestSnapshot=t.result,this.options.onSnapshot?.(t.result.messages,t.result.scoopJid));break}case`agent_event`:this.emitEvent(e.event);break;case`user_message_echo`:if(this.sentMessageIds.has(e.messageId)){this.sentMessageIds.delete(e.messageId),E.debug(`Skipping own message echo`,{messageId:e.messageId});break}E.info(`User message echo received`,{messageId:e.messageId,scoopJid:e.scoopJid}),this.options.onUserMessage?.(e.text,e.messageId,e.scoopJid,e.attachments);break;case`status`:this.options.onStatus?.(e.scoopStatus);break;case`error`:E.warn(`Error from leader`,{error:e.error}),this.emitEvent({type:`error`,error:e.error});break;case`targets.registry`:E.info(`Target registry received from leader`,{targetCount:e.targets.length}),this.targetEntries=e.targets,this.options.onTargetsUpdated?.(this.targetEntries);break;case`cdp.request`:{let{requestId:t,localTargetId:n,method:r,params:i,sessionId:a}=e;this.executeLocalCDP(t,n,r,i,a);break}case`cdp.response`:this.routeCDPResponse(e);break;case`cdp.event`:for(let t of this.remoteTransports.values())t.handleEvent(e.method,e.params);break;case`tab.open`:case`preview.open`:this.executeLocalTabOpen(e.requestId,e.url);break;case`tab.opened`:{let t=this.tabOpenResolvers.get(e.requestId);t&&(this.tabOpenResolvers.delete(e.requestId),t.resolve(e.targetId));break}case`tab.open.error`:{let t=this.tabOpenResolvers.get(e.requestId);t&&(this.tabOpenResolvers.delete(e.requestId),t.reject(Error(e.error)));break}case`fs.request`:this.executeLocalFs(e.requestId,e.request);break;case`fs.response`:this.routeFsResponse(e.requestId,e.response);break;case`sprinkles.list`:E.info(`Sprinkles list received from leader`,{sprinkleCount:e.sprinkles.length}),this.sprinkleContentCache.clear(),this.cacheEpoch++,this.latestSprinkles=e.sprinkles,this.options.onSprinklesList?.(e.sprinkles);break;case`sprinkle.content`:this.handleSprinkleContent(e);break;case`sprinkle.update`:this.options.onSprinkleUpdate?.(e.sprinkleName,e.data);break;case`sprinkle.reloaded`:this.handleSprinkleReloaded(e.sprinkleName);break;case`cherry.slicc_event`:this.options.onCherrySliccEvent?.(e.name,e.detail);break;case`ping`:this.keepalive.receivePing(),this.sync.send({type:`pong`});break;case`pong`:this.keepalive.receivePong(),s(Date.now());break;default:E.debug(`Unknown leader message type`,{type:e.type});break}}handleSprinkleReloaded(e){this.sprinkleContentCache.delete(e),this.options.onSprinkleReloaded?.(e)}handleSprinkleContent(e){let{requestId:t,sprinkleName:n,content:r,chunkIndex:i,totalChunks:a,error:o}=e;if(o){E.warn(`sprinkle.content error from leader`,{sprinkleName:n,error:o}),this.pendingSprinkleFetches.delete(t),this.inflightSprinkleByName.delete(n),this.fetchEpoch.delete(t);let e=this.sprinkleContentWaiters.get(n)??[];this.sprinkleContentWaiters.delete(n);for(let t of e)t.reject(Error(o));return}if(!this.pendingSprinkleFetches.has(t)){E.debug(`Dropping sprinkle.content for unknown requestId`,{sprinkleName:n,requestId:t});return}let s=null;if(i!==void 0&&a!==void 0){if(i<0||i>=a){E.warn(`Dropping sprinkle.content with out-of-range chunkIndex`,{sprinkleName:n,chunkIndex:i,totalChunks:a});return}let e=this.pendingSprinkleFetches.get(t);if(e.totalChunks=a,e.chunks.has(i)?E.warn(`Dropping duplicate sprinkle.content chunk`,{sprinkleName:n,chunkIndex:i}):e.chunks.set(i,r),e.chunks.size>=a){let r=[];for(let t=0;t<a;t++){let i=e.chunks.get(t);if(i===void 0){E.warn(`Chunked sprinkle.content missing chunk after assembly`,{sprinkleName:n,missingIndex:t});return}r.push(i)}s=r.join(``),this.pendingSprinkleFetches.delete(t)}}else s=r,this.pendingSprinkleFetches.delete(t);if(s===null)return;let c=this.fetchEpoch.get(t);this.fetchEpoch.delete(t),c===this.cacheEpoch&&this.sprinkleContentCache.set(n,s),this.inflightSprinkleByName.delete(n);let l=this.sprinkleContentWaiters.get(n)??[];this.sprinkleContentWaiters.delete(n);for(let e of l)e.resolve(s)}rejectPendingSprinkleFetches(e){let t=Error(e);for(let[,e]of this.sprinkleContentWaiters)for(let n of e)n.reject(t);this.sprinkleContentWaiters.clear(),this.pendingSprinkleFetches.clear(),this.inflightSprinkleByName.clear(),this.fetchEpoch.clear()}applyLeaderTheme(t){e(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-LmGLoWYX.js`).then(e=>e.f);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([0,1])).then(({importTheme:e,saveCustomTheme:n,setActiveTheme:r,clearActiveTheme:i,applyThemeOverrides:a})=>{if(!t)i();else{let i=e(t);n(i),r(i.id)}a()}).catch(e=>E.error(`Failed to apply leader theme`,{err:e}))}emitEvent(e){for(let t of this.eventListeners)try{t(e)}catch(t){E.error(`Listener error`,{eventType:e.type,error:t instanceof Error?t.message:String(t)})}}createRemoteTransport(e,t){let n=new f({sendCDPRequest:(n,r,i,a)=>{this.sync.send({type:`cdp.request`,requestId:n,targetRuntimeId:e,localTargetId:t,method:r,params:i,sessionId:a})}});return this.remoteTransports.set(`${e}:${t}`,n),n}removeRemoteTransport(e,t){let n=`${e}:${t}`,r=this.remoteTransports.get(n);r&&(r.disconnect(),this.remoteTransports.delete(n))}openRemoteTab(e,t){let n=`tab-open-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise((r,i)=>{this.tabOpenResolvers.set(n,{resolve:r,reject:i}),this.sync.send({type:`tab.open`,requestId:n,targetRuntimeId:e,url:t})})}async executeLocalTabOpen(e,t){let n=this.options.browserTransport;if(!n){this.sync.send({type:`tab.open.error`,requestId:e,error:`Follower has no browser transport`});return}try{let r=(await n.send(`Target.createTarget`,{url:t,background:!0})).targetId;if(typeof r!=`string`||r.length===0){this.sync.send({type:`tab.open.error`,requestId:e,error:`Target.createTarget did not return a usable targetId`});return}this.sync.send({type:`tab.opened`,requestId:e,targetId:r}),this.options.onTargetsChanged?.()}catch(t){this.sync.send({type:`tab.open.error`,requestId:e,error:t instanceof Error?t.message:String(t)})}}async executeLocalCDP(e,t,n,r,i){let a=this.options.browserTransport;if(!a){this.sync.send({type:`cdp.response`,requestId:e,error:`Follower has no browser transport`});return}try{let t=await a.send(n,r,i);if(n===`Target.attachToTarget`&&t.sessionId){let e=t.sessionId;this.remoteCDPSessions.add(e),this.setupCDPEventForwarding(a,e),E.debug(`Tracking remote CDP session`,{remoteSessionId:e})}n===`Target.detachFromTarget`&&i&&this.remoteCDPSessions.has(i)&&(this.remoteCDPSessions.delete(i),E.debug(`Removed remote CDP session on detach`,{sessionId:i})),c(this.sync,e,t)}catch(t){this.sync.send({type:`cdp.response`,requestId:e,error:t instanceof Error?t.message:String(t)})}}setupCDPEventForwarding(e,t){for(let n of[`Page.frameNavigated`,`Page.loadEventFired`,`Page.domContentEventFired`,`Network.responseReceived`,`Network.loadingFinished`,`Network.requestWillBeSent`]){let r=e=>{if(e.sessionId!==t||!this.remoteCDPSessions.has(t))return;let{sessionId:r,...i}=e;this.sync.send({type:`cdp.event`,method:n,params:i,sessionId:t})};e.on(n,r),this.cdpEventCleanups.push(()=>e.off(n,r))}}cleanupCDPEventForwarding(){for(let e of this.cdpEventCleanups)e();this.cdpEventCleanups.length=0,this.remoteCDPSessions.clear()}routeCDPResponse(e){let t=l(this.cdpChunkBuffers,e);if(t)for(let n of this.remoteTransports.values())n.handleResponse(e.requestId,t.result,t.error)}async executeLocalFs(e,t){let n=this.options.vfs;if(!n){this.sync.send({type:`fs.response`,requestId:e,response:{ok:!1,error:`Follower has no VFS`}});return}let r;try{r=await y(n,t)}catch(t){this.sync.send({type:`fs.response`,requestId:e,response:{ok:!1,error:t instanceof Error?t.message:String(t)}});return}for(let t of r)this.sync.send({type:`fs.response`,requestId:e,response:t})}routeFsResponse(e,t){let n=this.fsResolvers.get(e);if(!n)return;n.responses.push(t);let r=t.ok&&t.totalChunks||1;n.responses.length>=r&&(this.fsResolvers.delete(e),n.resolve(n.responses))}sendFsRequest(e,t){let n=`fs-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return new Promise((r,i)=>{this.fsResolvers.set(n,{resolve:r,reject:i,responses:[]}),this.sync.send({type:`fs.request`,requestId:n,targetRuntimeId:e,request:t})})}},k=n(`tray-follower`);function A(e){let t=new URL(e);return t.searchParams.set(`json`,`true`),t.toString()}async function ie(e){let t=A(e.joinUrl),n=await I(await(e.fetchImpl??fetch)(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({controllerId:e.controllerId,runtime:e.runtime})}));return k.info(`Follower tray attach response`,{trayId:n.trayId,action:n.result.action,code:n.result.code,participantCount:n.participantCount}),ae(n)}function ae(e){let t={trayId:e.trayId,controllerId:e.controllerId,participantCount:e.participantCount,leader:e.leader,action:e.result.action,code:e.result.code,iceServers:e.iceServers};return e.result.action===`wait`?{...t,retryAfterMs:e.result.retryAfterMs}:e.result.action===`signal`?{...t,bootstrap:e.result.bootstrap}:e.result.action===`fail`?{...t,error:e.result.error}:t}async function j(e){return F(await L(e,{action:`poll`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,cursor:e.cursor}))}async function M(e){return F(await L(e,{action:`answer`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,answer:e.answer}))}async function N(e){return F(await L(e,{action:`ice-candidate`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,candidate:e.candidate}))}async function P(e){return F(await L(e,{action:`retry`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,runtime:e.runtime}))}function F(e){return{trayId:e.trayId,controllerId:e.controllerId,participantCount:e.participantCount,leader:e.leader,bootstrap:e.bootstrap,events:e.events}}async function I(e){let t=null,n=null;try{t=await e.text(),n=JSON.parse(t)}catch{}if(!R(n)){let n=t?t.slice(0,200):`(empty)`;throw k.warn(`Tray follower attach returned an invalid response`,{status:e.status,body:n}),Error(`Tray follower attach returned an invalid response (${e.status}): ${n}`)}return n}async function L(e,t){let n=A(e.joinUrl),r=await(e.fetchImpl??fetch)(n,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)}),i=await r.json().catch(()=>null);if(!z(i))throw Error(`Tray follower bootstrap returned an invalid response (${r.status})`);return i}function R(e){if(!e||typeof e!=`object`)return!1;let t=e;if(typeof t.trayId!=`string`||typeof t.controllerId!=`string`||t.role!==`follower`||typeof t.participantCount!=`number`)return!1;let n=t.result;if(!n||typeof n!=`object`)return!1;let r=n;return r.action===`wait`?(r.code===`LEADER_NOT_ELECTED`||r.code===`LEADER_NOT_CONNECTED`)&&typeof r.retryAfterMs==`number`:r.action===`signal`?r.code===`LEADER_CONNECTED`&&B(r.bootstrap):r.action===`fail`?(r.code===`INVALID_JOIN_CAPABILITY`||r.code===`TRAY_EXPIRED`)&&typeof r.error==`string`:!1}function z(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.trayId==`string`&&typeof t.controllerId==`string`&&t.role===`follower`&&typeof t.participantCount==`number`&&B(t.bootstrap)&&Array.isArray(t.events)}function B(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.controllerId==`string`&&typeof t.bootstrapId==`string`&&typeof t.attempt==`number`&&typeof t.state==`string`&&typeof t.expiresAt==`string`&&typeof t.cursor==`number`&&typeof t.maxRetries==`number`&&typeof t.retriesRemaining==`number`}var V=n(`tray-webrtc`),H=`tray-control`,U=250,W=class{options;peerConnectionFactory;dataChannelLabel;peers=new Map;iceServers;constructor(e){this.options=e,this.iceServers=e.iceServers,this.peerConnectionFactory=e.peerConnectionFactory??(()=>q(this.iceServers)),this.dataChannelLabel=e.dataChannelLabel??H}setIceServers(e){this.iceServers=e}async handleControlMessage(e){e.type===`follower.join_requested`?(e.iceServers&&!this.iceServers&&(this.iceServers=e.iceServers),await this.handleJoinRequested(e)):e.type===`bootstrap.answer`?await this.peers.get(e.bootstrapId)?.peer.setRemoteDescription(e.answer):e.type===`bootstrap.ice_candidate`&&await this.peers.get(e.bootstrapId)?.peer.addIceCandidate(e.candidate)}getPeers(){return Array.from(this.peers.values()).map(({state:e})=>({...e}))}getChannel(e){return this.peers.get(e)?.channel??null}stop(){for(let e of this.peers.values())e.peer.close();this.peers.clear()}async handleJoinRequested(e){this.closeControllerPeers(e.controllerId);let t=this.peerConnectionFactory(),n={controllerId:e.controllerId,bootstrapId:e.bootstrapId,attempt:e.attempt,state:`connecting`,connectedAt:null,runtime:e.runtime},r=t.createDataChannel(this.dataChannelLabel);this.peers.set(e.bootstrapId,{state:n,peer:t,channel:r}),t.addEventListener(`icecandidate`,({candidate:t})=>{let n=Y(t);n&&this.options.sendControlMessage({type:`bootstrap.ice_candidate`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,candidate:n})}),t.addEventListener(`connectionstatechange`,()=>{let n=this.peers.get(e.bootstrapId);n&&(n.state.state===`connected`?(t.connectionState===`disconnected`||t.connectionState===`failed`)&&(V.warn(`Leader peer connection state changed post-connect`,{bootstrapId:e.bootstrapId,state:t.connectionState}),this.options.onPeerDisconnected?.(e.bootstrapId,`Peer connection ${t.connectionState}`)):t.connectionState===`failed`&&this.failPeer(e,`Leader peer connection failed before the data channel opened`))}),r.addEventListener(`open`,()=>{let t=this.peers.get(e.bootstrapId);!t||t.state.state===`connected`||(t.state.state=`connected`,t.state.connectedAt=new Date().toISOString(),this.options.onPeerConnected?.({...t.state},t.channel))}),r.addEventListener(`close`,()=>{let t=this.peers.get(e.bootstrapId);t&&(t.state.state===`connected`?(V.warn(`Leader data channel closed post-connect`,{bootstrapId:e.bootstrapId}),this.options.onPeerDisconnected?.(e.bootstrapId,`Data channel closed`)):this.failPeer(e,`Leader data channel closed before opening`))}),r.addEventListener(`error`,()=>{let t=this.peers.get(e.bootstrapId);t&&(t.state.state===`connected`?(V.warn(`Leader data channel error post-connect`,{bootstrapId:e.bootstrapId}),this.options.onPeerDisconnected?.(e.bootstrapId,`Data channel error`)):this.failPeer(e,`Leader data channel failed before opening`))});try{let n=await t.createOffer();await t.setLocalDescription(n),this.options.sendControlMessage({type:`bootstrap.offer`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,offer:J(t.localDescription??n,`offer`)})}catch(t){this.failPeer(e,t instanceof Error?t.message:String(t))}}closeControllerPeers(e){for(let[t,n]of this.peers.entries())n.state.controllerId===e&&(n.peer.close(),this.peers.delete(t))}failPeer(e,t){let n=this.peers.get(e.bootstrapId);if(n){n.peer.close(),this.peers.delete(e.bootstrapId);try{this.options.sendControlMessage({type:`bootstrap.failed`,controllerId:e.controllerId,bootstrapId:e.bootstrapId,code:`WEBRTC_BOOTSTRAP_FAILED`,message:t,retryable:!0,retryAfterMs:1e3})}catch(e){V.warn(`Failed to report tray bootstrap failure`,{error:e instanceof Error?e.message:String(e)})}}}},G=class{options;fetchImpl;peerConnectionFactory;controllerIdFactory;sleep;pollIntervalMs;iceServers;activePeer=null;stopped=!1;constructor(e){this.options=e,this.fetchImpl=e.fetchImpl??fetch,this.iceServers=e.iceServers,this.peerConnectionFactory=e.peerConnectionFactory??(()=>q(this.iceServers)),this.controllerIdFactory=e.controllerIdFactory??(()=>crypto.randomUUID()),this.sleep=e.sleep??(e=>new Promise(t=>setTimeout(t,e))),this.pollIntervalMs=e.pollIntervalMs??U}async start(){this.stopped=!1;let e=this.controllerIdFactory(),t=Date.now();o({state:`connecting`,joinUrl:this.options.joinUrl,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:t,lastError:null}),V.info(`Follower tray join starting`,{joinUrl:this.options.joinUrl});let n=0;for(;;){X(this.stopped),n++;let t;try{t=await ie({joinUrl:this.options.joinUrl,controllerId:e,runtime:this.options.runtime,fetchImpl:this.fetchImpl})}catch(e){let t=e instanceof Error?e.message:String(e);throw o({...a(),attachAttempts:n,lastError:t}),e}if(o({...a(),attachAttempts:n,lastAttachCode:t.code}),t.action===`wait`){let e=t.retryAfterMs??1e3;V.info(`Follower tray attach waiting`,{attempt:n,code:t.code,retryAfterMs:e}),n%10==0&&V.warn(`Follower tray attach still waiting after ${n} attempts`,{attempt:n,code:t.code,retryAfterMs:e}),await this.sleep(e);continue}if(t.action===`fail`||!t.bootstrap){let e=t.error??`Tray follower attach failed (${t.code})`;throw o({state:`error`,joinUrl:this.options.joinUrl,trayId:null,error:e,lastPingTime:null,reconnectAttempts:0,attachAttempts:n,lastAttachCode:t.code,connectingSince:null,lastError:e}),V.warn(`Follower tray attach failed`,{error:e}),Error(e)}t.iceServers&&(this.iceServers=t.iceServers);try{let r=await this.completeBootstrap(t.trayId,e,t.bootstrap);return o({state:`connected`,joinUrl:this.options.joinUrl,trayId:r.trayId,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:n,lastAttachCode:t.code,connectingSince:null,lastError:null}),V.info(`Follower tray connected`,{trayId:r.trayId,controllerId:e}),r}catch(e){let r=e instanceof Error?e.message:String(e);throw o({state:`error`,joinUrl:this.options.joinUrl,trayId:t.trayId,error:r,lastPingTime:null,reconnectAttempts:0,attachAttempts:n,lastAttachCode:t.code,connectingSince:null,lastError:r}),V.warn(`Follower tray bootstrap failed`,{error:r}),e}}}stop(){this.stopped=!0,this.activePeer?.peer.close(),this.activePeer?.channel?.close(),this.activePeer=null,o({state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null})}async completeBootstrap(e,t,n){let r=n,i=0;for(this.activePeer=this.createFollowerPeer(t,r.bootstrapId);;){if(X(this.stopped),this.activePeer.open&&this.activePeer.channel)return{trayId:e,controllerId:t,bootstrapId:r.bootstrapId,channel:this.activePeer.channel};if(this.activePeer.openError)throw Error(this.activePeer.openError);let n=await j({joinUrl:this.options.joinUrl,controllerId:t,bootstrapId:r.bootstrapId,cursor:i,fetchImpl:this.fetchImpl});r=n.bootstrap,i=r.cursor;try{await this.applyBootstrapEvents(n.events,this.activePeer,t,r.bootstrapId)}catch(e){if(r.failure?.retryable&&r.retriesRemaining>0){r=(await P({joinUrl:this.options.joinUrl,controllerId:t,bootstrapId:r.bootstrapId,runtime:this.options.runtime,fetchImpl:this.fetchImpl})).bootstrap,i=0,this.activePeer.peer.close(),this.activePeer=this.createFollowerPeer(t,r.bootstrapId);continue}throw e}this.activePeer.open||await this.sleep(this.pollIntervalMs)}}async applyBootstrapEvents(e,t,n,r){for(let i of e)if(i.type===`bootstrap.offer`){await t.peer.setRemoteDescription(i.offer);let e=await t.peer.createAnswer();await t.peer.setLocalDescription(e),await M({joinUrl:this.options.joinUrl,controllerId:n,bootstrapId:r,answer:J(t.peer.localDescription??e,`answer`),fetchImpl:this.fetchImpl})}else if(i.type===`bootstrap.ice_candidate`)await t.peer.addIceCandidate(i.candidate);else if(i.type===`bootstrap.failed`)throw Error(i.failure.message)}createFollowerPeer(e,t){let n=this.peerConnectionFactory(),r={peer:n,channel:null,open:!1,openError:null};return n.addEventListener(`connectionstatechange`,()=>{r.open&&(n.connectionState===`disconnected`||n.connectionState===`failed`)&&(V.warn(`Follower peer connection state changed post-connect`,{bootstrapId:t,state:n.connectionState}),this.options.onDisconnected?.(`Peer connection ${n.connectionState}`))}),n.addEventListener(`datachannel`,({channel:e})=>{r.channel=e,e.addEventListener(`open`,()=>{r.open=!0}),e.addEventListener(`close`,()=>{r.open?(V.warn(`Follower data channel closed post-connect`,{bootstrapId:t}),this.options.onDisconnected?.(`Data channel closed`)):r.openError=`Follower data channel closed before opening`}),e.addEventListener(`error`,()=>{r.open?(V.warn(`Follower data channel error post-connect`,{bootstrapId:t}),this.options.onDisconnected?.(`Data channel error`)):r.openError=`Follower data channel failed before opening`})}),n.addEventListener(`icecandidate`,({candidate:n})=>{let r=Y(n);r&&N({joinUrl:this.options.joinUrl,controllerId:e,bootstrapId:t,candidate:r,fetchImpl:this.fetchImpl}).catch(e=>{V.warn(`Failed to send follower ICE candidate`,{error:e instanceof Error?e.message:String(e)})})}),r}};function K(e,t){let n=t.baseDelayMs??1e3,r=t.backoffMultiplier??2,i=t.maxDelayMs??3e4,s=t.maxAttempts??10,c=t.sleep??e.sleep??(e=>new Promise(t=>setTimeout(t,e))),l=!1,u=!1,d=null,f={cancel(){l=!0,u=!1,d?.stop(),d=null},get reconnecting(){return u}},p=()=>{let t=new G({...e,sleep:c,onDisconnected:e=>{l||(V.warn(`Follower disconnected, starting reconnect loop`,{reason:e}),m(e))}});return d=t,{manager:t,connectionPromise:t.start()}},m=async f=>{if(l||u)return;u=!0,d?.stop(),d=null;let m=0,h=n,g=f??`Unknown disconnect`;for(;!l&&m<s&&(m++,t.onReconnecting?.(m),o({...a(),state:`reconnecting`,error:null,reconnectAttempts:m}),V.info(`Reconnect attempt`,{attempt:m,delay:h}),await c(h),!l);){let n=null;try{let r=p();n=r.manager;let i=await r.connectionPromise;if(l){n.stop();break}u=!1,o({...a(),state:`connected`,joinUrl:e.joinUrl,trayId:i.trayId,error:null,lastPingTime:null,reconnectAttempts:0,connectingSince:null,lastError:null}),V.info(`Reconnect successful`,{attempt:m,trayId:i.trayId}),t.onConnected(i);return}catch(e){g=e instanceof Error?e.message:String(e),V.warn(`Reconnect attempt failed`,{attempt:m,error:g}),n?.stop(),d=null}h=Math.min(h*r,i)}l||(u=!1,o({...a(),state:`error`,error:`Reconnect failed after ${m} attempts: ${g}`,reconnectAttempts:m}),V.warn(`Reconnect gave up`,{attempts:m,lastError:g}),t.onGaveUp?.(g))},{connectionPromise:h}=p();return h.then(e=>{l||t.onConnected(e)}).catch(e=>{l||(V.error(`Initial follower connection failed`,{error:e instanceof Error?e.message:String(e)}),m(e instanceof Error?e.message:String(e)))}),f}function q(e){if(typeof RTCPeerConnection>`u`)throw Error(`RTCPeerConnection is not available in this runtime`);let t=e?.length?{iceServers:e}:void 0;return new RTCPeerConnection(t)}function J(e,t){if(!e||e.type!==t||typeof e.sdp!=`string`)throw Error(`Expected a local ${t} description before signaling`);return{type:e.type,sdp:e.sdp}}function Y(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.candidate==`string`?{candidate:t.candidate,sdpMid:typeof t.sdpMid==`string`?t.sdpMid:null,sdpMLineIndex:typeof t.sdpMLineIndex==`number`?t.sdpMLineIndex:null,usernameFragment:typeof t.usernameFragment==`string`?t.usernameFragment:null}:null}function X(e){if(e)throw Error(`Tray follower stopped before WebRTC bootstrap completed`)}function Z(e){if(!e)throw Error(`canonicalRuntimeId: bootstrapId is required`);return e.startsWith(`follower-`)?e:`follower-${e}`}var Q=n(`sprinkle-follower`),oe=class{sync;addSprinkle;removeSprinkle;zone;openPath;open=new Map;opening=new Set;latestDesiredOpen=new Set;pendingUpdates=new Map;updateListeners=new Map;disposed=!1;constructor(e){this.sync=e.sync,this.addSprinkle=e.addSprinkle,this.removeSprinkle=e.removeSprinkle,this.zone=e.zone,this.openPath=e.open}async updateAvailable(e){if(this.disposed)return;let t=new Map;for(let n of e)n.open&&t.set(n.name,n);this.latestDesiredOpen=new Set(t.keys());for(let e of[...this.open.keys()])t.has(e)||this.closeLocally(e);for(let e of[...this.pendingUpdates.keys()])t.has(e)||this.pendingUpdates.delete(e);let n=[];for(let[e,r]of t)this.open.has(e)||this.opening.has(e)||n.push(this.openLocally(e,r));await Promise.allSettled(n)}handleSprinkleUpdate(e,t){if(this.disposed)return;let n=this.open.get(e);if(n){n.renderer.pushUpdate(t),this.fanOutToListeners(e,t);return}if(this.opening.has(e)){this.pendingUpdates.set(e,t);return}Q.debug(`Dropping sprinkle.update for unknown sprinkle`,{sprinkleName:e})}async handleSprinkleReloaded(e){if(this.disposed)return;let t=this.open.get(e);if(!t){this.opening.has(e)&&this.pendingUpdates.delete(e);return}this.updateListeners.delete(e);let n;try{n=await this.sync.fetchSprinkleContent(e)}catch(t){Q.warn(`Failed to fetch sprinkle content for reload`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)});return}if(this.disposed||!this.open.has(e))return;try{t.renderer.dispose()}catch(t){Q.warn(`Sprinkle dispose threw during reload`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}let r=this.createBridge(e),i=new m(t.container,r);try{await i.render(n,e)}catch(t){Q.warn(`Sprinkle re-render failed during reload`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}if(this.disposed||!this.open.has(e)){i.dispose();return}t.renderer=i,Q.info(`Sprinkle reloaded in place`,{sprinkleName:e})}dispose(){if(!this.disposed){this.disposed=!0;for(let e of[...this.open.keys()])this.closeLocally(e);this.pendingUpdates.clear(),this.latestDesiredOpen.clear(),this.updateListeners.clear()}}async openLocally(e,t){this.opening.add(e);let n;try{n=await this.sync.fetchSprinkleContent(e)}catch(t){this.opening.delete(e),this.pendingUpdates.delete(e),Q.warn(`Failed to fetch sprinkle content from leader`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)});return}if(this.disposed||!this.latestDesiredOpen.has(e)){this.opening.delete(e),this.pendingUpdates.delete(e);return}let r=document.createElement(`div`);r.className=`sprinkle-panel`,r.style.cssText=`width: 100%; height: 100%; display: flex; flex-direction: column; overflow-y: auto;`,r.dataset.sprinkle=e;let i=new m(r,this.createBridge(e));this.addSprinkle(e,t.title,r,this.zone);try{await i.render(n,e)}catch(t){Q.warn(`Sprinkle render failed`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}if(this.disposed||!this.latestDesiredOpen.has(e)){this.updateListeners.delete(e),this.opening.delete(e),this.pendingUpdates.delete(e);try{i.dispose()}catch(t){Q.warn(`Sprinkle dispose threw during post-render cleanup`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}r.remove();try{this.removeSprinkle(e)}catch(t){Q.warn(`removeSprinkle callback threw during post-render cleanup`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}return}this.open.set(e,{renderer:i,container:r}),this.opening.delete(e);let a=this.pendingUpdates.get(e);a!==void 0&&(this.pendingUpdates.delete(e),i.pushUpdate(a),this.fanOutToListeners(e,a))}fanOutToListeners(e,t){let n=this.updateListeners.get(e);if(n)for(let r of[...n])try{r(t)}catch(t){Q.warn(`Sprinkle update listener threw`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}}closeLocally(e){this.updateListeners.delete(e),this.pendingUpdates.delete(e);let t=this.open.get(e);if(t){try{t.renderer.dispose()}catch(t){Q.warn(`Sprinkle dispose threw`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}t.container.remove(),this.open.delete(e);try{this.removeSprinkle(e)}catch(t){Q.warn(`removeSprinkle callback threw`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}}}createBridge(e){return{name:e,lick:t=>{let n=typeof t==`string`?t:t.action,r=typeof t==`string`?void 0:t.data;this.sync.sendSprinkleLick(e,{action:n,data:r})},on:(t,n)=>{if(t!==`update`)return;let r=this.updateListeners.get(e);r||(r=new Set,this.updateListeners.set(e,r)),r.add(n)},off:(t,n)=>{t===`update`&&this.updateListeners.get(e)?.delete(n)},readFile:()=>Promise.reject(Error(`readFile not supported in follower-rendered sprinkle`)),writeFile:()=>Promise.reject(Error(`writeFile not supported in follower-rendered sprinkle`)),readDir:()=>Promise.reject(Error(`readDir not supported in follower-rendered sprinkle`)),exists:()=>Promise.resolve(!1),stat:()=>Promise.reject(Error(`stat not supported in follower-rendered sprinkle`)),mkdir:()=>Promise.reject(Error(`mkdir not supported in follower-rendered sprinkle`)),rm:()=>Promise.reject(Error(`rm not supported in follower-rendered sprinkle`)),screenshot:()=>Promise.reject(Error(`screenshot not supported in follower-rendered sprinkle`)),setState:t=>{try{localStorage.setItem(`slicc-sprinkle-state:${e}`,JSON.stringify(t))}catch(t){Q.warn(`Sprinkle setState failed`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)})}},getState:()=>{try{let t=localStorage.getItem(`slicc-sprinkle-state:${e}`);return t?JSON.parse(t):null}catch(t){return Q.warn(`Sprinkle getState failed`,{sprinkleName:e,error:t instanceof Error?t.message:String(t)}),null}},open:e=>{if(this.openPath){this.openPath(e);return}let t=/^https?:|^chrome-extension:/.test(e)?e:p(e);window.open(t,`_blank`)},close:()=>this.closeLocally(e),minimize:()=>{},stopCone:()=>{this.sync.sendSprinkleLick(e,{action:`__stopCone__`})},attachImage:()=>{},captureScreen:()=>Promise.reject(Error(`captureScreen not supported in follower-rendered sprinkle`)),exec:Object.assign(()=>Promise.resolve({stdout:``,stderr:`exec not supported in follower-rendered sprinkle
3
+ `,exitCode:127}),{spawn:()=>Promise.resolve({stdout:``,stderr:`exec.spawn not supported in follower-rendered sprinkle
4
+ `,exitCode:127})}),agent:()=>Promise.resolve({stdout:`agent not supported in follower-rendered sprinkle
5
+ `,exitCode:127}),fetch:()=>Promise.reject(Error(`fetch not supported in follower-rendered sprinkle`)),http:{client:()=>{let e=()=>Promise.reject(Error(`http not supported in follower-rendered sprinkle`));return{get:e,post:e,put:e,patch:e,delete:e}}},browser:{findTab:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`)),ensureTab:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`)),eval:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`)),evalAsync:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`)),cookie:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`)),localStorage:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`)),fetch:()=>Promise.reject(Error(`browser not supported in follower-rendered sprinkle`))},hid:{list:()=>Promise.reject(Error(`hid not supported in follower-rendered sprinkle`)),request:()=>Promise.reject(Error(`hid not supported in follower-rendered sprinkle`)),open:()=>Promise.reject(Error(`hid not supported in follower-rendered sprinkle`)),close:()=>Promise.reject(Error(`hid not supported in follower-rendered sprinkle`)),sendReport:()=>Promise.reject(Error(`hid not supported in follower-rendered sprinkle`)),on:()=>{},off:()=>{}},serial:{list:()=>Promise.reject(Error(`serial not supported in follower-rendered sprinkle`)),request:()=>Promise.reject(Error(`serial not supported in follower-rendered sprinkle`)),open:()=>Promise.reject(Error(`serial not supported in follower-rendered sprinkle`)),close:()=>Promise.reject(Error(`serial not supported in follower-rendered sprinkle`))},usb:{list:()=>Promise.reject(Error(`usb not supported in follower-rendered sprinkle`)),request:()=>Promise.reject(Error(`usb not supported in follower-rendered sprinkle`)),open:()=>Promise.reject(Error(`usb not supported in follower-rendered sprinkle`)),close:()=>Promise.reject(Error(`usb not supported in follower-rendered sprinkle`))},readFileBinary:()=>Promise.reject(Error(`readFileBinary not supported in follower-rendered sprinkle`)),writeFileBinary:()=>Promise.reject(Error(`writeFileBinary not supported in follower-rendered sprinkle`)),fetchToFile:()=>Promise.reject(Error(`fetchToFile not supported in follower-rendered sprinkle`)),_jsh:()=>Promise.reject(Error(`jsh globals not supported in follower-rendered sprinkle`)),_device:()=>Promise.reject(Error(`device ops not supported in follower-rendered sprinkle`))}}},$=n(`page-follower-tray`);function se(e,t){return t===`slicc-cherry`?e.map(e=>({targetId:e.targetId,title:e.title,url:e.url,kind:`cherry`,capabilities:{navigate:!0,network:!1,screenshot:!0}})):e.map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}function ce(e){let t=e._refreshIntervalMs??5e3,n=null,r=null,i=null,a=null,s=(t=!0)=>{i&&=(clearInterval(i),null),r&&=(r.dispose(),null),n&&=(e.onForwardingToggle?.(!1),t&&e.onConnectionChange?.(!1),e.browserAPI.setTrayTargetProvider(null),n.close(),null)};return a=K({joinUrl:e.joinUrl,runtime:e.runtime??`slicc-standalone`,fetchImpl:e._fetchImpl,peerConnectionFactory:e._peerConnectionFactory,sleep:e._sleep},{onConnected:a=>{s();let o=Z(a.bootstrapId),c=null,l=new O(a.channel,{browserTransport:e.browserAPI.getTransport(),browserAPI:e.browserAPI,onSnapshot:e.onSnapshot,onUserMessage:e.onUserMessage,onStatus:e.onStatus,onCherrySliccEvent:e.onCherrySliccEvent,selfRuntimeId:o,onTargetsChanged:()=>void d(),onSprinklesList:t=>{e.onSprinklesList?.(t),c?.updateAvailable(t)},onSprinkleUpdate:(e,t)=>c?.handleSprinkleUpdate(e,t),onSprinkleReloaded:e=>void c?.handleSprinkleReloaded(e),onDisconnect:e=>{$.warn(`Follower sync disconnected`,{reason:e}),s()}});e.addSprinkle&&e.removeSprinkle&&(c=new oe({sync:l,addSprinkle:e.addSprinkle,removeSprinkle:e.removeSprinkle,open:e.onOpen}),r=c);let u=new h($,{failureMessage:`Follower CDP target listing failed (best-effort, throttled)`,recoveryMessage:`Follower CDP target listing recovered (stable for debounce window)`}),d=async()=>{let t;try{t=await e.browserAPI.listPages()}catch(e){u.reportFailure(e);return}if(n===l){u.reportSuccess();try{l.advertiseTargets(se(t,e.runtime??`slicc-standalone`),o)}catch(e){$.error(`Follower target advertisement broadcast failed (sync.advertiseTargets threw)`,{error:e instanceof Error?e.message:String(e)})}}};n=l,e.browserAPI.setTrayTargetProvider(l),e.setChatAgent(l),e.onForwardingToggle?.(!0),e.onConnectionChange?.(!0),l.requestSnapshot(),i=setInterval(()=>void d(),t),d(),$.info(`Follower sync wired`,{trayId:a.trayId})},onReconnecting:e=>{$.info(`Follower reconnecting`,{attempt:e})},onGaveUp:t=>{$.warn(`Follower reconnect gave up`,{lastError:t}),s(!1),e.onGaveUp?.(t)},sleep:e._sleep}),{stop(){s(),a?.cancel(),a=null,o({state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null})},get currentSync(){return n}}}export{_ as a,y as i,Z as n,h as o,W as r,ce as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({PANEL_RPC_DEFAULT_TIMEOUT_MS:()=>i,createPanelRpcClient:()=>o,getPanelRpcClient:()=>c,hasLocalDom:()=>l,panelRpcChannelName:()=>a});const n=`slicc-panel-rpc`,r=15e3,i=r;function a(e){return e?`${n}:${e}`:n}function o(e={}){if(typeof BroadcastChannel!=`function`)return{call:()=>Promise.reject(Error(`panel-rpc: BroadcastChannel is unavailable`)),onEvent:()=>()=>{},registerPushTarget:()=>{},unregisterPushTarget:()=>{},dispose:()=>{}};let t=a(e.instanceId),n=new BroadcastChannel(t),i=new Map,o=new Map,c=new Map,l=e=>{let t=c.get(e.channel);if(t)for(let n of t)try{n(e.payload)}catch(t){console.warn(`panel-rpc: event handler for '${e.channel}' threw:`,t instanceof Error?t.message:String(t))}},u=e=>{if(e.op!==`remote-cdp-event`)return;let t=e.payload;o.get(`${t.runtimeId}:${t.localTargetId}`)?.(t)},d=e=>{let t=i.get(e.id);t&&(i.delete(e.id),clearTimeout(t.timer),typeof e.error==`string`?t.reject(Error(e.error)):t.resolve(e.result))};n.addEventListener(`message`,e=>{let t=e.data;t?.type===`panel-rpc-event`?l(t):t?.type===`panel-rpc-push`?u(t):t?.type===`panel-rpc-response`&&d(t)});function f(e,t){let n=c.get(e);return n||(n=new Set,c.set(e,n)),n.add(t),()=>{let n=c.get(e);n&&(n.delete(t),n.size===0&&c.delete(e))}}function p(e,t,a={}){let o=s(),c=a.timeoutMs??r;return new Promise((r,a)=>{let s=setTimeout(()=>{i.delete(o),a(Error(`panel-rpc: op '${e}' timed out after ${c}ms`))},c);i.set(o,{resolve:r,reject:a,timer:s});let l={type:`panel-rpc-request`,id:o,op:e,payload:t};n.postMessage(l)})}function m(e,t){o.set(e,t)}function h(e){o.delete(e)}function g(){for(let[,e]of i)clearTimeout(e.timer),e.reject(Error(`panel-rpc: client disposed`));i.clear(),c.clear(),o.clear();try{n.close()}catch{}}return{call:p,onEvent:f,registerPushTarget:m,unregisterPushTarget:h,dispose:g}}function s(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`prpc-${crypto.randomUUID()}`:`prpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,12)}`}function c(){return globalThis.__slicc_panelRpc??null}function l(){return typeof window<`u`&&typeof document<`u`}export{t as i,c as n,l as r,i as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";var t=e({PANEL_RPC_DEFAULT_TIMEOUT_MS:()=>PANEL_RPC_DEFAULT_TIMEOUT_MS,createPanelRpcEventEmitter:()=>i,getPanelRpcClient:()=>o,hasLocalDom:()=>s,installPanelRpcHandler:()=>a,panelRpcChannelName:()=>r}),n=`slicc-panel-rpc`;function r(e){return e?`${n}:${e}`:n}function i(e={}){if(typeof BroadcastChannel!=`function`)return{emit:()=>{},dispose:()=>{}};let t=new BroadcastChannel(r(e.instanceId));return{emit(e,n){let r={type:`panel-rpc-event`,channel:e,payload:n};try{t.postMessage(r)}catch(t){console.warn(`panel-rpc: failed to emit event '${e}':`,t instanceof Error?t.message:String(t))}},dispose(){try{t.close()}catch{}}}}function a(e){if(typeof BroadcastChannel!=`function`)return()=>{};let t=new BroadcastChannel(r(e.instanceId)),n=(e,n,r)=>{let i={type:`panel-rpc-response`,id:e};r===void 0?i.result=n:i.error=r;try{t.postMessage(i)}catch(t){let n=t instanceof Error?t.message:String(t);console.warn(`panel-rpc: failed to post response for id=${e}: ${n}`)}},i=async t=>{let r=t.data;if(r?.type!==`panel-rpc-request`)return;let i=e.handlers[r.op];if(!i){n(r.id,void 0,`panel-rpc: no handler for op '${r.op}'`);return}try{let e=await i(r.payload);n(r.id,e)}catch(e){n(r.id,void 0,e instanceof Error?e.message:String(e))}};return t.addEventListener(`message`,i),()=>{t.removeEventListener(`message`,i);try{t.close()}catch{}}}function o(){return globalThis.__slicc_panelRpc??null}function s(){return typeof window<`u`&&typeof document<`u`}export{t as i,s as n,r,o as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-C3K9ItX4.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-CZgWQFsJ.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DzLglfG5.js","assets/src-x0cJ68Fe.js","assets/fetch-body-D2PwksUW.js","assets/mount-bridge-client-DnDk55XZ.js","assets/types-idfTVsM8.js","assets/panel-responder-BKgfV-nl.js","assets/speak-BwWMiCus.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-Blt6HC_1.js","assets/shared-CrHp2zdc.js","assets/mime-types-ugOWOUZ9.js","assets/hear--VyWD7WJ.js","assets/wc-permissions-registry-Blyunq37.js","assets/whisper-session-tJ8m9ShN.js","assets/providers-lNcU6L-a.js","assets/esptool-operations-KWVZgO7d.js","assets/rom-eeWiO07Z.js","assets/mount-picker-popup-Cw_D7c_n.js","assets/picker-popup-CpulHQsi.js","assets/theme-engine-LmGLoWYX.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-CZgWQFsJ.js";import{V as t,p as n}from"./account-store-DRcHIayv.js";import{a as r,t as i}from"./proxied-fetch-DzLglfG5.js";import"./main-BME4pJJo.js";import{n as a,r as o}from"./hid-device-registry-6w-g8ZpF.js";import{a as s,i as c}from"./serial-port-registry-DsPZvGpT.js";import{A as l,C as u,D as d,E as ee,O as te,S as ne,T as re,_ as ie,a as ae,b as oe,c as se,d as ce,f as le,g as ue,h as f,i as p,j as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as O}from"./usb-operations-D-YdmmuG.js";import{i as k,r as A}from"./usb-device-registry-k6vTKonT.js";function j(e={}){let t=new Map;return{...de(),...I(e),...L(),...R(e),...z(),...B(e,t),...V(),...H(e),...fe(e),...pe(e),...F(),...P(),...M(),...N(),...xe()}}function M(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-C3K9ItX4.js`).then(e=>e.n);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6]));return{response:await r(t,n)}}}}function N(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-DnDk55XZ.js`).then(e=>e.n);return{callMountBridge:e}},__vite__mapDeps([7,1,2,3,4,5,6,8]));return{reply:await r(t,n)}}}}function P(){return{"sudo-request":async({request:t})=>{let{resolveSudoRequest:n}=await e(async()=>{let{resolveSudoRequest:e}=await import(`./panel-responder-BKgfV-nl.js`);return{resolveSudoRequest:e}},__vite__mapDeps([9,3]));return{decision:n(t)}}}}function F(){return{"proxied-fetch":async({url:t,method:n,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await e(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-DzLglfG5.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([4,1,2,5,6])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function de(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await ve(e,t),r=await n.arrayBuffer(),i=await ye(n);return{bytes:r,width:i.width,height:i.height,mimeType:e}},"speak-text":async({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await e(async()=>{let{speak:e}=await import(`./speak-BwWMiCus.js`);return{speak:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14]));return await s({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:t}=await e(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-BwWMiCus.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14])),n=t().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(n.length>0)return{voices:n};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...n,...r.map(Q)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...n,...i.map(Q)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-BwWMiCus.js`);return{kokoroStatus:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-BwWMiCus.js`);return{kokoroWarmup:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14]));return t()},"synthesize-to-wav":async({text:t,lang:n,voice:r,rate:i})=>{let{synthesizeToWav:a}=await e(async()=>{let{synthesizeToWav:e}=await import(`./speak-BwWMiCus.js`);return{synthesizeToWav:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14])),o=await a({text:t,...n===void 0?{}:{lang:n},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function I(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await $(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await be(r),await $(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>({redirectUrl:await X(t,e.getPermissionsSurface)}),"capture-camera":async e=>await he(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function L(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear--VyWD7WJ.js`);return{hearCapture:e}},__vite__mapDeps([15,3,16,1,17,2,12,4,5,6,13,14]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear--VyWD7WJ.js`);return{hearTranscribe:e}},__vite__mapDeps([15,3,16,1,17,2,12,4,5,6,13,14]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear--VyWD7WJ.js`);return{hearStatus:e}},__vite__mapDeps([15,3,16,1,17,2,12,4,5,6,13,14]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear--VyWD7WJ.js`);return{hearWarmup:e}},__vite__mapDeps([15,3,16,1,17,2,12,4,5,6,13,14]));return t()}}}function R(r){return{"tray-reset":async()=>{if(!r.resetTray)throw Error(`host reset: no active tray session to reset`);return await r.resetTray()},"tray-open-preview":async e=>{if(!r.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await r.mintPreview(e)},"tray-leave":async({workerBaseUrl:e,requestId:t})=>{if(!r.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await r.leaveTray({workerBaseUrl:e,requestId:t})},"tray-join":async({joinUrl:e,requestId:t})=>{if(!r.joinTray)throw Error(`host join: tray join is not available in this environment`);return await r.joinTray({joinUrl:e,requestId:t})},"cherry-emit":async({runtimeId:e,name:t,detail:n})=>{if(!r.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:r.emitCherrySliccEvent(e,t,n)}},"oauth-extras-set":({providerId:e,domains:r})=>(t(e,r),{storeAfter:n()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-lNcU6L-a.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([18,1,2])),r=n(t);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}function z(){return{"usb-list":async()=>({devices:await y(U(),W())}),"usb-request":async({filters:e})=>({device:await g(U(),W(),e)}),"usb-device-info":({handle:e})=>({device:ae(U(),e)}),"usb-open":async({handle:e})=>(await S(U(),e),{done:!0}),"usb-close":async({handle:e})=>(await v(U(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await ce(U(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await C(U(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t})=>(await se(U(),e,t),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>x(U(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>p(U(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>le(U(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>b(U(),e,t,n),"usb-reset":async({handle:e})=>(await w(U(),e),{done:!0})}}function B(e,t){return{"hid-list":async()=>({devices:await ue(G(),K())}),"hid-request":async({filters:e})=>({devices:await O(G(),K(),e)}),"hid-device-info":({handle:e})=>({device:f(G(),e)}),"hid-open":async({handle:e})=>(await ie(G(),e),{done:!0}),"hid-close":async({handle:e})=>(await _(G(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await D(G(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await oe(G(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>T(G(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await ne(G(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function V(){return{"serial-list":async()=>({devices:await ee(q(),J())}),"serial-request":async({filters:e})=>({device:await h(q(),J(),e)}),"serial-device-info":({handle:e})=>({device:E(q(),e)}),"serial-open":async({handle:e,options:t})=>(await d(q(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await u(q(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(q(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await m(q(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(q(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(q(),e,t),{done:!0})}}function H(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolChipInfo(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolReadMac(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-flash":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolEraseFlash(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-flash":async({handle:n,baudRate:r,eraseAll:i,segments:a})=>(await(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolFlash(q(),n,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-read-flash":async({handle:n,baudRate:r,address:i,size:a})=>{let o=await(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolReadFlash(q(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:n,baudRate:r,address:i})=>(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolReadReg(q(),n,r,i,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-flash-id":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolFlashId(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-region":async({handle:n,baudRate:r,address:i,size:a})=>(await(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolEraseRegion(q(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-run":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-KWVZgO7d.js`),__vite__mapDeps([19,1,2,20]))).esptoolRun(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function fe(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function pe(t){return{"permission-request":async n=>{let r=t.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:n.kinds,description:n.description,heading:n.heading,grantLabel:n.grantLabel,cancelLabel:n.cancelLabel});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let t of i.grants)switch(t.kind){case`usb`:{let e=U().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=G().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=q().register(t.port);a.push({kind:`serial`,handle:e});break}case`filesystem`:{let{storePendingHandle:n}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Cw_D7c_n.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([21,1,3,22])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await n(r,t.handle),a.push({kind:`filesystem`,idbKey:r,dirName:t.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let e of t.stream.getTracks())e.stop();a.push({kind:t.kind,ok:!0});break}return{grants:a}}}}function U(){return k()}function W(){let e=A();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function G(){return o()}function K(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function q(){return s()}function J(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var me=1500;async function he(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await ge({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??me;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function ge(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?e.audioDeviceId?{deviceId:{exact:e.audioDeviceId}}:!0:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}async function X(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await _e(n,e);return t===void 0?null:Z(t)}return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function Z(e){return new Promise(t=>{let n=!1,a=null,o=()=>{n||(n=!0,window.removeEventListener(`message`,s),clearTimeout(c),a&&clearInterval(a))},s=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(o(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;typeof r!=`string`&&r!=null||t(r??null)};window.addEventListener(`message`,s),a=setInterval(async()=>{if(!n)try{let e=await fetch(r(`/api/oauth-result`),{headers:i()});if(e.status===204||!e.ok)return;let a=await e.json();if(n)return;if(o(),a.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{o();try{e?.close()}catch{}t(null)},12e4)})}async function _e(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}function Q(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function ve(e,t){if(!navigator.mediaDevices?.getDisplayMedia)throw Error(`screen capture is not supported in this browser`);let n=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});try{let r=document.createElement(`video`);r.srcObject=n,r.muted=!0,r.playsInline=!0,await new Promise((e,t)=>{r.onloadedmetadata=()=>r.play().then(()=>e()).catch(t),r.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100));let i=r.videoWidth,a=r.videoHeight,o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s)throw Error(`Failed to get canvas context`);return s.drawImage(r,0,0,i,a),await new Promise((n,r)=>{o.toBlob(e=>e?n(e):r(Error(`Failed to create image blob`)),e,t)})}finally{n.getTracks().forEach(e=>{e.stop()})}}async function ye(e){let t=URL.createObjectURL(e);try{let e=new Image;return await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to decode capture`)),e.src=t}),{width:e.naturalWidth,height:e.naturalHeight}}finally{URL.revokeObjectURL(t)}}async function be(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function $(e=5*6e4){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function xe(){return{"theme-apply":async({themeJson:t,action:n})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await e(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-LmGLoWYX.js`).then(e=>e.f);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([23,1]));if(n===`reset`)return o(),s(),{applied:null};if(t){let e=r(t);return i(e),a(e.id),s(),{applied:e.id}}return{applied:null}}}}export{j as createStandalonePanelRpcHandlers};