sliccy 6.248.13 → 6.248.15

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 (199) hide show
  1. package/dist/ui/.vite/manifest.json +473 -473
  2. package/dist/ui/assets/{account-store-D4Humqb-.js → account-store-C8ku_32k.js} +2 -2
  3. package/dist/ui/assets/{account-store-AloIt5Ss.js → account-store-CLrcVXc0.js} +1 -1
  4. package/dist/ui/assets/{adobe-COzZgYMJ.js → adobe-Cpi2aE-H.js} +1 -1
  5. package/dist/ui/assets/{adobe-DzPNN5WH.js → adobe-ZF88lAqt.js} +2 -2
  6. package/dist/ui/assets/{agent-panels-C7WGWk6D.js → agent-panels-BeptN8xj.js} +1 -1
  7. package/dist/ui/assets/{almost-bash-shell-headless--HYnQClo.js → almost-bash-shell-headless-BVria6dz.js} +12 -12
  8. package/dist/ui/assets/{anthropic-messages-BPiITV7m.js → anthropic-messages-pITcoTin.js} +3 -3
  9. package/dist/ui/assets/{apply-layout-C4DLtjYf.js → apply-layout-mZoFZ7NI.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-DCtV7Fk7.js → azure-openai-BuzUN1Zv.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-qBC0T6wP.js → azure-openai-D8taz7yq.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-responses-CYEKOLNU.js → azure-openai-responses-BzfTIQxM.js} +1 -1
  13. package/dist/ui/assets/{backend-hostfs-C_GQqMGj.js → backend-hostfs-BlwgXw0-.js} +1 -1
  14. package/dist/ui/assets/{bedrock-camp-BRe8SyVL.js → bedrock-camp-Drg4mDwe.js} +1 -1
  15. package/dist/ui/assets/{capability-ChjrBUX1.js → capability-COwjFLjM.js} +2 -2
  16. package/dist/ui/assets/{cdp-CCSeAKYa.js → cdp-BECQB1rP.js} +1 -1
  17. package/dist/ui/assets/{cerebras-D05pSaD3.js → cerebras-DZZFW27U.js} +1 -1
  18. package/dist/ui/assets/{cerebras-BlBAjiPm.js → cerebras-DfDfqh_L.js} +1 -1
  19. package/dist/ui/assets/{classifier-shared-2vXBXYjG.js → classifier-shared-1BfNmzbv.js} +1 -1
  20. package/dist/ui/assets/{cloudflare-workers-ai-system-one-gkmS2Nb_.js → cloudflare-workers-ai-system-one-CYstFSnj.js} +1 -1
  21. package/dist/ui/assets/{compat-d34y6SaJ.js → compat-TaBTsXFP.js} +2 -2
  22. package/dist/ui/assets/{composer-speech-ZEQzpxXl.js → composer-speech-B1kWFuju.js} +1 -1
  23. package/dist/ui/assets/{connect-surface-DVe7YnEx.js → connect-surface-CXFbDGll.js} +1 -1
  24. package/dist/ui/assets/{core-DfJhnyZb.js → core-kdG72Y8N.js} +1 -1
  25. package/dist/ui/assets/{directed-approval-DpSG1Fn9.js → directed-approval-LQT_TPqz.js} +1 -1
  26. package/dist/ui/assets/{discovery-preference-DZcZKow3.js → discovery-preference-C-pw_A76.js} +1 -1
  27. package/dist/ui/assets/{dist-BZDZf9iZ.js → dist-AEgtkPbB.js} +1 -1
  28. package/dist/ui/assets/{dist-sPwgAbDH.js → dist-BOzr2Ip-.js} +1 -1
  29. package/dist/ui/assets/{dist-C3U_YVHW.js → dist-CKtiDzqm.js} +1 -1
  30. package/dist/ui/assets/{dist-Dxh_321I.js → dist-Cr80TbAt.js} +1 -1
  31. package/dist/ui/assets/{dist-Bkks4gfH.js → dist-DMTrP4j6.js} +1 -1
  32. package/dist/ui/assets/{dist-CTibI9AZ.js → dist-EaD2nXS1.js} +1 -1
  33. package/dist/ui/assets/{emscripten-vfs-hook-rbqoLuA5.js → emscripten-vfs-hook-CnPmEK30.js} +1 -1
  34. package/dist/ui/assets/{env-api-keys-Ds64PXJ4.js → env-api-keys-Cfrk_k8Z.js} +1 -1
  35. package/dist/ui/assets/esp8266-mbfP83qK.js +1 -0
  36. package/dist/ui/assets/{esptool-operations-CndxwE1S.js → esptool-operations-CTZQdeQU.js} +2 -2
  37. package/dist/ui/assets/{float-topology-PI5i_WsZ.js → float-topology-DJxhvO9u.js} +1 -1
  38. package/dist/ui/assets/{follower-navigate-watcher-B3g-lkMJ.js → follower-navigate-watcher-BThbqvla.js} +1 -1
  39. package/dist/ui/assets/{frozen-archive-writer-D6ckorva.js → frozen-archive-writer-BTbtadrW.js} +1 -1
  40. package/dist/ui/assets/{frozen-archive-writer-ClcpBoUl.js → frozen-archive-writer-CUzf7C3s.js} +1 -1
  41. package/dist/ui/assets/{frozen-session-delete-_74oIhfQ.js → frozen-session-delete-CyRcONHk.js} +1 -1
  42. package/dist/ui/assets/{frozen-session-identity-DW7M6tap.js → frozen-session-identity-BCGVU2K1.js} +1 -1
  43. package/dist/ui/assets/{frozen-session-identity-DRez4L_k.js → frozen-session-identity-DVcpz2HB.js} +1 -1
  44. package/dist/ui/assets/{fs-CQpIxK2e.js → fs-DSnZb1DK.js} +2 -2
  45. package/dist/ui/assets/{gelatiere-unit-DY9kFx7W.js → gelatiere-unit-CLfqVD6U.js} +1 -1
  46. package/dist/ui/assets/{github-BAVQKGLM.js → github--CcFgkAY.js} +2 -2
  47. package/dist/ui/assets/{github-seYRLByd.js → github-ChxmjcJc.js} +1 -1
  48. package/dist/ui/assets/{github-copilot-NuiVJlRe.js → github-copilot-Bt2MljG0.js} +1 -1
  49. package/dist/ui/assets/{github-copilot-B2ui266i.js → github-copilot-DRF3abOV.js} +1 -1
  50. package/dist/ui/assets/{google-generative-ai-y59nuAoz.js → google-generative-ai-_4RGA5R9.js} +1 -1
  51. package/dist/ui/assets/{google-shared-BixQtMJk.js → google-shared-BmjkwexI.js} +1 -1
  52. package/dist/ui/assets/{google-vertex-BuV_pgMi.js → google-vertex-CCT-gmBZ.js} +1 -1
  53. package/dist/ui/assets/{hear-LEawuxbU.js → hear-BGGOzrLe.js} +1 -1
  54. package/dist/ui/assets/icons-CPOTRcvO.js +1 -0
  55. package/dist/ui/assets/{js-realm-worker-BQ2E7b6Z.js → js-realm-worker-Qikr6DIj.js} +2 -2
  56. package/dist/ui/assets/{jsh-executor-BA7Owezg.js → jsh-executor-Cduj8RKN.js} +3 -3
  57. package/dist/ui/assets/{kernel-worker-Bl7wfxQy.js → kernel-worker-DKhuL-SB.js} +8 -8
  58. package/dist/ui/assets/{kokoro-g58mp2Gg.js → kokoro-BZ2oL9at.js} +1 -1
  59. package/dist/ui/assets/{legacy-api-aliases-DZ7QKXPR.js → legacy-api-aliases-BqXqjuwj.js} +1 -1
  60. package/dist/ui/assets/{legacy-styles-CbYwED5J.js → legacy-styles-CGcVbQni.js} +1 -1
  61. package/dist/ui/assets/{lick-ws-bridge-BIajXq6B.js → lick-ws-bridge-Bgd2UUqy.js} +1 -1
  62. package/dist/ui/assets/{lick-ws-bridge-BEHNQbo5.js → lick-ws-bridge-Cy-M-w5Q.js} +1 -1
  63. package/dist/ui/assets/{live-session-curation-BJVU7yfS.js → live-session-curation-DKF46wEh.js} +1 -1
  64. package/dist/ui/assets/{live-session-curation-C8cnTFuk.js → live-session-curation-w6IDH4Wx.js} +1 -1
  65. package/dist/ui/assets/{live-session-snapshot-DB7ATVqO.js → live-session-snapshot-DCT_jWTD.js} +1 -1
  66. package/dist/ui/assets/{local-llm-Dxm6T0ph.js → local-llm-BzQlnS5L.js} +1 -1
  67. package/dist/ui/assets/{local-llm-B72jeBdJ.js → local-llm-DUc-GBj9.js} +1 -1
  68. package/dist/ui/assets/{main-pG2z7nDr.js → main-CWx8ZbOh.js} +3 -3
  69. package/dist/ui/assets/{main-cherry-Cndxk3tr.js → main-cherry-qefabkXK.js} +1 -1
  70. package/dist/ui/assets/{mcp-command-R_syvmA2.js → mcp-command-BMbHOLse.js} +10 -10
  71. package/dist/ui/assets/{memory-curation-seam-xAt4_ZGt.js → memory-curation-seam-DqgqK6CR.js} +1 -1
  72. package/dist/ui/assets/{memory-health-N-Qft3RQ.js → memory-health-CyDp9rny.js} +1 -1
  73. package/dist/ui/assets/{memory-write-execute-CcPwzxh2.js → memory-write-execute-mLtLK-OJ.js} +1 -1
  74. package/dist/ui/assets/{merge-folded-cost-into-frozen-D5QzQftk.js → merge-folded-cost-into-frozen-VpR7-OO_.js} +1 -1
  75. package/dist/ui/assets/{mistral-conversations-BbeDfELF.js → mistral-conversations-BTfu6zaw.js} +1 -1
  76. package/dist/ui/assets/{models-K_BYbYJy.js → models-DuCVW_cU.js} +1 -1
  77. package/dist/ui/assets/{mount-Cvx8MHrJ.js → mount-iiKbRe20.js} +1 -1
  78. package/dist/ui/assets/{new-session-CzmqZfEw.js → new-session-pyHdj7ky.js} +2 -2
  79. package/dist/ui/assets/{node.browser-D-KuY2NZ.js → node.browser-POTNsJTJ.js} +1 -1
  80. package/dist/ui/assets/{oauth-bootstrap-BgBpgpMH.js → oauth-bootstrap-4_xLQ_sb.js} +2 -2
  81. package/dist/ui/assets/{oauth-service-C9_em2OO.js → oauth-service-BTbFz00g.js} +1 -1
  82. package/dist/ui/assets/{onboarding-orchestrator-B0EOdDeN.js → onboarding-orchestrator-CjdNWdMC.js} +1 -1
  83. package/dist/ui/assets/{openai-codex-CBBCnX5G.js → openai-codex-4_vQIXxb.js} +1 -1
  84. package/dist/ui/assets/{openai-codex-responses-CsoNnMnP.js → openai-codex-responses-BQf_Un8s.js} +1 -1
  85. package/dist/ui/assets/{openai-codex-BuzdyFkb.js → openai-codex-uQMjU0_s.js} +1 -1
  86. package/dist/ui/assets/{openai-completions-CwpTiqkV.js → openai-completions-UyX4inUN.js} +1 -1
  87. package/dist/ui/assets/{openai-decisions-C2a995aZ.js → openai-decisions-6D6eupBk.js} +1 -1
  88. package/dist/ui/assets/{openai-responses-CXxDIIaJ.js → openai-responses-Bn1YXtN4.js} +1 -1
  89. package/dist/ui/assets/{openai-responses-shared-Df32ziOu.js → openai-responses-shared-CHC7SqmI.js} +1 -1
  90. package/dist/ui/assets/{openrouter-CajNnUyi.js → openrouter-DneJqayx.js} +1 -1
  91. package/dist/ui/assets/{openrouter-yrPyWZSZ.js → openrouter-TLjYxLOJ.js} +1 -1
  92. package/dist/ui/assets/{openrouter-free-CoKNk8Q9.js → openrouter-free-C9Ks_BoF.js} +1 -1
  93. package/dist/ui/assets/{openrouter-free-DvQSB466.js → openrouter-free-QijswzXp.js} +1 -1
  94. package/dist/ui/assets/{openrouter-oauth-Cwnv6aaR.js → openrouter-oauth-C3NFC0lq.js} +1 -1
  95. package/dist/ui/assets/{openrouter-oauth-Dm2bFG2r.js → openrouter-oauth-CWRFCzx3.js} +1 -1
  96. package/dist/ui/assets/{opfs-mount-DqwXxpJI.js → opfs-mount-DHQkCQyR.js} +1 -1
  97. package/dist/ui/assets/{page-approval-service-BV4pp4cE.js → page-approval-service-1D_bhphG.js} +1 -1
  98. package/dist/ui/assets/{panel-rpc-handlers-0Asc887-.js → panel-rpc-handlers-DJTIyg19.js} +2 -2
  99. package/dist/ui/assets/{panelize-shell-CYWV616_.js → panelize-shell-KnM6qBOd.js} +1 -1
  100. package/dist/ui/assets/{pi-edit-execution-DUHiH3Ek.js → pi-edit-execution-KjYZMQ1M.js} +1 -1
  101. package/dist/ui/assets/{pi-transcript-context-M0uAa_Rs.js → pi-transcript-context-BD-rasES.js} +1 -1
  102. package/dist/ui/assets/preload-helper-BLdHbfdN.js +1 -0
  103. package/dist/ui/assets/{provider-gVV-Tw2o.js → provider-BUOENNXd.js} +1 -1
  104. package/dist/ui/assets/{provider-DQEpec-V.js → provider-C6GKyGbH.js} +2 -2
  105. package/dist/ui/assets/{provider-settings-HdIWRUQi.js → provider-settings-DiWaVtMa.js} +1 -1
  106. package/dist/ui/assets/provider-store-access-BLah3TfA.js +1 -0
  107. package/dist/ui/assets/provider-store-access-DK9jcMFs.js +1 -0
  108. package/dist/ui/assets/{providers-BPtyhTCJ.js → providers-D98KfVHw.js} +2 -2
  109. package/dist/ui/assets/{providers-BqUoo02I.js → providers-DQDxShvT.js} +1 -1
  110. package/dist/ui/assets/{proxied-fetch-Co-YYDT9.js → proxied-fetch-Dcpb4ieV.js} +1 -1
  111. package/dist/ui/assets/{proxied-fetch-raw-C_Y--MLW.js → proxied-fetch-raw-DFOSVEWz.js} +1 -1
  112. package/dist/ui/assets/{quick-llm-DKIeT-Bm.js → quick-llm-BpqDA4jj.js} +1 -1
  113. package/dist/ui/assets/{realm-inprocess-I1Oa37_B.js → realm-inprocess-DB9T1J06.js} +2 -2
  114. package/dist/ui/assets/{realm-unhandled-rejections-5totJ0nZ.js → realm-unhandled-rejections--yhMR2JG.js} +1 -1
  115. package/dist/ui/assets/{realm-unhandled-rejections-Vf408gQs.js → realm-unhandled-rejections-C-dWyWFT.js} +1 -1
  116. package/dist/ui/assets/{recovery-screen-d6N9mctq.js → recovery-screen-DxmS11pP.js} +1 -1
  117. package/dist/ui/assets/{remote-terminal-view-B8EZ4je-.js → remote-terminal-view-CKT9I4xa.js} +3 -3
  118. package/dist/ui/assets/{rest-ops-Bu4Fgr3O.js → rest-ops-DUxY6dMv.js} +1 -1
  119. package/dist/ui/assets/{restore-YHJZnRoZ.js → restore-DBVHFRDn.js} +1 -1
  120. package/dist/ui/assets/{run-Ds5q8C_n.js → run-B2qNRdiQ.js} +2 -2
  121. package/dist/ui/assets/{run-qBD2W0pE.js → run-D6GtWFc7.js} +1 -1
  122. package/dist/ui/assets/{run-QN9mmLnD.js → run-DWu38u8c.js} +1 -1
  123. package/dist/ui/assets/{run-jEnj-WXZ.js → run-DxF2t6YH.js} +2 -2
  124. package/dist/ui/assets/{secret-env-Da2LI-Wl.js → secret-env-BDj2iVgu.js} +1 -1
  125. package/dist/ui/assets/secret-topology-CcM8VDVI.js +1 -0
  126. package/dist/ui/assets/{serve-command-ClUJJ3EB.js → serve-command-Cj91wHBd.js} +2 -2
  127. package/dist/ui/assets/{serve-runtime-WdVepvEi.js → serve-runtime-C6U19az5.js} +1 -1
  128. package/dist/ui/assets/{session-command-memory-CQnSNVmV.js → session-command-memory-DTJrpKQG.js} +2 -2
  129. package/dist/ui/assets/{session-jsonl-BGHEGuWx.js → session-jsonl-CUGtVDjz.js} +1 -1
  130. package/dist/ui/assets/{session-jsonl-BjBaj5ud.js → session-jsonl-PBSNVf5N.js} +1 -1
  131. package/dist/ui/assets/{session-search-index-DFWu63Zi.js → session-search-index-BmWzdxol.js} +1 -1
  132. package/dist/ui/assets/{setup-feature-flags-remote-CUbaBhWB.js → setup-feature-flags-remote-Dcyvcm1c.js} +1 -1
  133. package/dist/ui/assets/{setup-model-catalog-CykSe_Dx.js → setup-model-catalog-9sIjZkxM.js} +1 -1
  134. package/dist/ui/assets/{setup-sprinkle-exec-IU4qWikH.js → setup-sprinkle-exec-CdgElwNt.js} +1 -1
  135. package/dist/ui/assets/{silent-renew-backoff-BMr_pGCU.js → silent-renew-backoff-B9OHOzRe.js} +1 -1
  136. package/dist/ui/assets/{slicc-diff-D8v8ZLu9.js → slicc-diff-BfQJcIZe.js} +1 -1
  137. package/dist/ui/assets/{slicc-editor-CEzmoAZr.js → slicc-editor-CasndIRU.js} +3 -3
  138. package/dist/ui/assets/slicc-editor-tCvqLLxb.js +1 -0
  139. package/dist/ui/assets/slicc-version-QFUwKumj.js +1 -0
  140. package/dist/ui/assets/{soundscape-Blo80kkF.js → soundscape-BotaZrDR.js} +1 -1
  141. package/dist/ui/assets/{speak-DYYfW_FH.js → speak-DHpjynd6.js} +3 -3
  142. package/dist/ui/assets/{sprinkle-manager-6IcFnb1j.js → sprinkle-manager-8dcg9Iza.js} +1 -1
  143. package/dist/ui/assets/{sprinkle-renderer-BnGOcTUx.js → sprinkle-renderer-D0vfMqnl.js} +3 -3
  144. package/dist/ui/assets/{sudo-cs2WnTRn.js → sudo-CNQ60foM.js} +1 -1
  145. package/dist/ui/assets/{supervisor-BULFrqrk.js → supervisor-CPH3uat9.js} +1 -1
  146. package/dist/ui/assets/{sync-dialog-MmcHaZwh.js → sync-dialog-DcHJ8wDd.js} +1 -1
  147. package/dist/ui/assets/{system-one-shared-DLgt2600.js → system-one-shared-sVc-bQkc.js} +1 -1
  148. package/dist/ui/assets/{telemetry-BqfutULb.js → telemetry-kqkj0A7x.js} +1 -1
  149. package/dist/ui/assets/{transform-messages-Bx3wQh2R.js → transform-messages-HTSSP3zz.js} +1 -1
  150. package/dist/ui/assets/{transformers-env-Fm5j4giD.js → transformers-env-C4aTP2JX.js} +1 -1
  151. package/dist/ui/assets/{transformers.web-BR6ghS6P.js → transformers.web-C5VLk0m7.js} +1 -1
  152. package/dist/ui/assets/{tray-leader-CFIVvD5G.js → tray-leader-BO7RLnAz.js} +1 -1
  153. package/dist/ui/assets/{tray-leave-runtime-BSxSDTw5.js → tray-leave-runtime-DrPHvVi6.js} +1 -1
  154. package/dist/ui/assets/{tray-sidecar-DQqVkAjk.js → tray-sidecar-BF8y2nH9.js} +1 -1
  155. package/dist/ui/assets/{typesafe-system-one-CXEHNzQF.js → typesafe-system-one-BdxxnbQu.js} +1 -1
  156. package/dist/ui/assets/{upgrade-detection-MAFg6kZz.js → upgrade-detection-DYeqLwkQ.js} +1 -1
  157. package/dist/ui/assets/{usb-operations-Ccb6x34d.js → usb-operations-DvSWlz_Y.js} +1 -1
  158. package/dist/ui/assets/{voice-reply-Bum2oQcA.js → voice-reply-DVgxPsp4.js} +1 -1
  159. package/dist/ui/assets/{warm-wterm-C7ml3_29.js → warm-wterm-snqvCS0-.js} +1 -1
  160. package/dist/ui/assets/{wc-attach-BJHnH6pd.js → wc-attach-DtB955Cg.js} +3 -3
  161. package/dist/ui/assets/{wc-browser-sNhsHdWm.js → wc-browser-5eX1yDaM.js} +1 -1
  162. package/dist/ui/assets/{wc-computers-CWg9NiMK.js → wc-computers-BQe7QGA5.js} +1 -1
  163. package/dist/ui/assets/{wc-detached-DZvftcPT.js → wc-detached-B448Oceh.js} +1 -1
  164. package/dist/ui/assets/{wc-extension-BaYtWo4q.js → wc-extension-DcxJvbXQ.js} +2 -2
  165. package/dist/ui/assets/{wc-follower-C3skKl26.js → wc-follower-C4HBJRkp.js} +3 -3
  166. package/dist/ui/assets/{wc-follower-oauth-iJKLKYov.js → wc-follower-oauth-DWB_1KrV.js} +1 -1
  167. package/dist/ui/assets/{wc-gelatiere-DaysrnKa.js → wc-gelatiere-DNuoJgyp.js} +1 -1
  168. package/dist/ui/assets/{wc-live-DEo-6NQK.js → wc-live-BMXg1cW0.js} +5 -5
  169. package/dist/ui/assets/{wc-nav-DqmL5N5I.js → wc-nav-C4cQdKiF.js} +2 -2
  170. package/dist/ui/assets/{wc-onboarding-Dg7G2Ykz.js → wc-onboarding-CsrFGEQ2.js} +2 -2
  171. package/dist/ui/assets/{wc-permissions-wBb5q-ot.js → wc-permissions-DMVzE1os.js} +3 -3
  172. package/dist/ui/assets/{wc-permissions-providers-r97Cs0CM.js → wc-permissions-providers-CzfeTK0C.js} +1 -1
  173. package/dist/ui/assets/{wc-placeholder-Dcqr3sQ2.js → wc-placeholder-BSqm7GOK.js} +3 -3
  174. package/dist/ui/assets/{wc-secret-request-DLngmY78.js → wc-secret-request-BMp1_Dqa.js} +1 -1
  175. package/dist/ui/assets/{wc-settings-DhxNLvFd.js → wc-settings-D_rtZFP8.js} +3 -3
  176. package/dist/ui/assets/{wc-shell-RF_bfAGN.js → wc-shell-CbiYuC-u.js} +6 -6
  177. package/dist/ui/assets/{wc-shortcut-config-Cr8zuZad.js → wc-shortcut-config-Dit9NqHJ.js} +1 -1
  178. package/dist/ui/assets/{wc-sprinkles-DyMWm1jp.js → wc-sprinkles-CRU3Bd1x.js} +2 -2
  179. package/dist/ui/assets/{wc-transcript-export-DVyU4B6b.js → wc-transcript-export-CCBgVRIb.js} +2 -2
  180. package/dist/ui/assets/{wc-tray-BjkHiwAE.js → wc-tray-DMpwCD-i.js} +4 -4
  181. package/dist/ui/assets/welcome-detection-CMa9jsjd.js +1 -0
  182. package/dist/ui/assets/{whisper-session-nBcuStI7.js → whisper-session-DOG-n_Gl.js} +2 -2
  183. package/dist/ui/assets/{xai-grok-B0VdJo2K.js → xai-grok-BwRAMV0b.js} +1 -1
  184. package/dist/ui/assets/{xai-grok-B-1EsChx.js → xai-grok-D-s6Eti2.js} +1 -1
  185. package/dist/ui/index.html +12 -12
  186. package/dist/ui/lucide-icons.js +362 -359
  187. package/dist/ui/packages/webapp/index.html +12 -12
  188. package/dist/ui/slicc-diff.js +1 -1
  189. package/dist/ui/slicc-editor.js +1 -1
  190. package/package.json +2 -2
  191. package/dist/ui/assets/esp8266-6UF0nYRf.js +0 -1
  192. package/dist/ui/assets/icons-BUdZEBvI.js +0 -1
  193. package/dist/ui/assets/preload-helper-DjzSQ1t3.js +0 -1
  194. package/dist/ui/assets/provider-store-access-BG9uc1UB.js +0 -1
  195. package/dist/ui/assets/provider-store-access-CkviLtwb.js +0 -1
  196. package/dist/ui/assets/secret-topology-B-7q9k0Q.js +0 -1
  197. package/dist/ui/assets/slicc-editor-CnQU3MQS.js +0 -1
  198. package/dist/ui/assets/slicc-version-D_fWoQ7a.js +0 -1
  199. package/dist/ui/assets/welcome-detection-ZKXELBPe.js +0 -1
@@ -1,4 +1,4 @@
1
- import{i as e,n as t,r as n,t as r}from"./diagnostics-B-5VkVir.js";import{d as i,f as a,h as o,l as s,n as c,p as l,u}from"./models-K_BYbYJy.js";import{t as d}from"./provider-env-CTOcDKrQ.js";import{t as f}from"./headers-FK4rgixo.js";import{n as p,s as m}from"./constrained-sampling-DA0j0g9I.js";import{r as h}from"./transform-messages-Bx3wQh2R.js";import{n as g,t as _}from"./error-body-pkrba6pf.js";import{t as v}from"./openai-prompt-cache-DXo9f3w5.js";import{n as y,r as b,t as x}from"./openai-responses-shared-Df32ziOu.js";var S=new Set;function C(e){return S.add(e),()=>{S.delete(e)}}var w=0xffffffffffff,T=(1n<<41n)-1n,E=-1,D;function ee(e){let t=e??Date.now();if(!Number.isInteger(t)||t<0||t>w)throw RangeError(`UUIDv7 timestamp must be an integer between 0 and ${w}`);let n=e===void 0?Math.max(t,E):e;e===void 0&&(E=n);let r=new Uint8Array(16);if(globalThis.crypto.getRandomValues(r),D===void 0)D=BigInt(r[1])<<32n|BigInt(r[2])<<24n|BigInt(r[3])<<16n|BigInt(r[4])<<8n|BigInt(r[5]);else{if(D===T)throw RangeError(`UUIDv7 generator sequence exhausted`);D++}let i=BigInt(n);for(let e=5;e>=0;e--)r[e]=Number(i>>BigInt((5-e)*8))&255;r[6]=112|Number(D>>37n&15n),r[7]=Number(D>>29n&255n),r[8]=128|Number(D>>23n&63n),r[9]=Number(D>>15n&255n),r[10]=Number(D>>7n&255n),r[11]=Number((D&127n)<<1n)|r[11]&1;let a=Array.from(r,e=>e.toString(16).padStart(2,`0`));return`${a.slice(0,4).join(``)}-${a.slice(4,6).join(``)}-${a.slice(6,8).join(``)}-${a.slice(8,10).join(``)}-${a.slice(10).join(``)}`}function te(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 O={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function k(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||d(n)||d(r)||``}function A(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function j(e){return e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1):e}function ne(e){let t=e.trim().toLowerCase();if(!t)return;if(t.startsWith(`[`)){let e=t.indexOf(`]`);if(e!==-1){let n=t.slice(1,e),r=t.slice(e+1);if(r.startsWith(`:`)){let e=Number.parseInt(r.slice(1),10);return{host:n,port:Number.isNaN(e)?0:e}}return{host:n,port:0}}}if(t.includes(`:`)&&t.split(`:`).length>2)return{host:t,port:0};let n=t.lastIndexOf(`:`);if(n!==-1&&n===t.indexOf(`:`)){let e=t.slice(0,n),r=Number.parseInt(t.slice(n+1),10);if(!Number.isNaN(r))return{host:e,port:r}}return{host:t,port:0}}function re(e,t,n){let r=k(`no_proxy`,n).toLowerCase();if(!r)return!0;if(r===`*`)return!1;let i=j(e.toLowerCase());return r.split(/[,\s]/).every(e=>{let n=ne(e);if(!n||n.port&&n.port!==t)return!0;let r=j(n.host);return r.startsWith(`*.`)?r=r.slice(2):(r.startsWith(`.`)||r.startsWith(`*`))&&(r=r.slice(1)),!r||!(i===r||i.endsWith(`.${r}`))})}function ie(e,t){let n=A(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!re(j(n.hostname||n.host.replace(/:\d*$/,``)),Number.parseInt(n.port,10)||O[r]||0,t))return``;let i=k(`${r}_proxy`,t)||k(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}var ae=`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.`;function oe(e,t){let n=ie(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`${ae} Got ${r.protocol}`);return r}var se=`https://chatgpt.com/backend-api`,ce=`https://api.openai.com/auth`,le=0,M=1e3,ue=6e4,de=15e3,fe=3,N=new Set([`openai`,`openai-codex`,`opencode`]),pe=1009,me=`websocket_connection_limit_reached`,he=`previous_response_not_found`,ge=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function P(e){if(e.stopReason===`pending`)throw Error(`Codex stream ended without a stop reason`);if(e.stopReason===`error`||e.stopReason===`aborted`)throw Error(e.errorMessage||`An unknown error occurred`)}function _e(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function ve(e,t){return e===429&&_e(t)?!1:e===429||e===500||e===502||e===503||e===504||/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function ye(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())}var be=class extends Error{};function xe(e,t){let n=t?.maxRetryDelayMs??ue;if(n>0&&e>n)throw new be(`Server requested ${Math.ceil(e/1e3)}s retry delay (max: ${Math.ceil(n/1e3)}s)`);return e}function Se(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 Ce(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function we(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function Te(e){let t=we();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:fe}});return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}catch{return null}}var F=(n,i,o)=>{let c=new e,l=a(i,n.compat?.supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let i=o?.apiKey;if(!i)throw Error(`No API key for provider: ${n.provider}`);let a=st(i),u=p(s(l.messages),n.compat?.supportsOpenAIGrammarTools??!1),d=o?.cacheRetention===`none`?void 0:o?.sessionId,m=v(d),h=De(n,l,o,m,u),g=await o?.onPayload?.(h,n);g!==void 0&&(h=g);let _=m||ee(),y=lt(n.headers,o?.headers,a,i,m),b=ut(n.headers,o?.headers,a,i,_),x=JSON.stringify(h),S=Ce(o?.timeoutMs),C=Ce(o?.websocketConnectTimeoutMs),w=o?.transport||`auto`,T=!1,E=w!==`sse`&&J(d);if(E&&Y(d),w!==`sse`&&!E){let i=!1,s=!1,l=!1;for(;;){i=!1;try{if(await at(ke(n.baseUrl),h,b,e,c,n,()=>{i=!0,T||(T=!0,c.push({type:`start`,partial:e}))},S,C,d,a,u,o),o?.signal?.aborted)throw Error(`Request was aborted`);P(e),c.push({type:`done`,reason:e.stopReason,message:e}),c.end();return}catch(n){let a=o?.signal?.aborted,c=!i&&Me(n),u=Ne(n);if(!a&&u&&!l){l=!0;continue}if(!a&&c&&!s){s=!0;continue}if(a||je(n)&&!c||(r(e,t(`provider_transport_failure`,n,{configuredTransport:w,...i?{}:{fallbackTransport:`sse`},eventsEmitted:i,phase:i?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(x).byteLength})),He(d,n),i))throw n;Y(d);break}}}let D=Te(x);D&&y.set(`content-encoding`,`zstd`);let O=D??x,k,A,j=o?.maxRetries??le;for(let e=0;e<=j;e++){if(o?.signal?.aborted)throw Error(`Request was aborted`);try{let t=S!==void 0&&S>0?AbortSignal.timeout(S):void 0,r=te([o?.signal,t]);try{k=await(o?.fetch??globalThis.fetch)(R(n.baseUrl),{method:`POST`,headers:y,body:O,signal:r.signal})}catch(e){throw t?.aborted&&!o?.signal?.aborted?Error(`Codex SSE response headers timed out after ${S}ms`):e}finally{r.cleanup()}if(await o?.onResponse?.({status:k.status,headers:f(k.headers)},n),k.ok)break;let i=await k.text();if(e<j&&ve(k.status,i)){let t=ye(k.headers);await Se(t===void 0?M*2**e:xe(t,o),o?.signal);continue}let a=await ot(new Response(i,{status:k.status,statusText:k.statusText}));throw Error(a.friendlyMessage||a.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(A=t instanceof Error?t:Error(String(t)),e<j&&!(A instanceof be)&&!A.message.includes(`usage limit`)){await Se(M*2**e,o?.signal);continue}throw A}}if(!k?.ok)throw A??Error(`Failed after retries`);if(!k.body)throw Error(`No response body`);if(T||(T=!0,c.push({type:`start`,partial:e})),await Ae(k,e,c,n,u,o),o?.signal?.aborted)throw Error(`Request was aborted`);P(e),c.push({type:`done`,reason:e.stopReason,message:e}),c.end()}catch(t){for(let t of e.content)delete t.partialJson,delete t.customInput;e.stopReason=o?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(g(t)),c.push({type:`error`,reason:e.stopReason,error:e}),c.end()}})(),c},Ee=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let i={...h(e,t,n,r),toolChoice:n?.toolChoice},a=n?.reasoning?c(e,n.reasoning):void 0,o=a===`off`?void 0:a;return F(e,t,{...i,reasoningEffort:o})};function De(e,t,n,r,i=p(s(t.messages),e.compat?.supportsOpenAIGrammarTools??!1)){let a=e.compat?.supportsStrictMode??!0,c=e.compat?.supportsOpenAIGrammarTools??!1,d=e.compat?.supportsAdditionalTools??!1,f=e.compat?.supportsToolSearch??!1,m=l(t.messages,d||f),h=x(e,t,N,{includeSystemPrompt:!1,grammarToolInputProperties:i,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:d,supportsToolSearch:f,toolOptions:{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:c}}),g=u(t.messages),_=g?o(g):``,v={model:e.id,store:!1,stream:!0,instructions:_||`You are a helpful assistant.`,input:h,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:r,tool_choice:n?.toolChoice??`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(v.temperature=n.temperature),n?.serviceTier!==void 0&&(v.service_tier=n.serviceTier),m.requestTools.length>0&&(v.tools=y(m.requestTools,{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:c})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off===void 0?`none`:e.thinkingLevelMap.off:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(v.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}else e.reasoning&&e.thinkingLevelMap?.off!==null&&(v.reasoning={effort:e.thinkingLevelMap?.off??`none`});return v}function Oe(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function I(e,t,n){let r=Oe(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 L(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function R(e){let t=(e&&e.trim().length>0?e:se).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function ke(e){let t=new URL(R(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function Ae(e,t,n,r,i,a){await b(H(Ie(e,a?.signal),t,r,a?.onProviderStreamEvent),t,n,r,{serviceTier:a?.serviceTier,grammarToolInputProperties:i,resolveServiceTier:L,applyServiceTierPricing:(e,t)=>I(e,t,r)})}var z=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}},B=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}},V=class extends Error{constructor(e){super(n(e)),this.name=`ProviderStreamEventCallbackError`,this.cause=e}};function je(e){return e instanceof z||e instanceof B||e instanceof V}function Me(e){return e instanceof z&&e.code===me}function Ne(e){return e instanceof z&&e.code===he}function Pe(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*H(e,t,n,r){for await(let i of e){try{await r?.(i,n)}catch(e){throw new V(e)}let e=typeof i.type==`string`?i.type:void 0;if(e){if(e===`error`){let{code:e,message:t}=Pe(i);throw new z(`Codex error: ${t||e||JSON.stringify(i)}`,{code:e,payload:i})}if(e===`response.failed`){let e=i.response,t=e?.error?.code,n=e?.error?.message;throw new z(n||`Codex response failed`,{code:t,payload:i})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=i.response;typeof e?.end_turn==`boolean`&&(t.endTurn=e.end_turn);let n=e&&{...e,status:Fe(e.status)};yield{...i,type:`response.completed`,response:n};return}yield i}}}function Fe(e){if(typeof e==`string`)return ge.has(e)?e:void 0}async function*Ie(e,t){if(!e.body)return;let r=e.body.getReader(),i=new TextDecoder,a=``,o=()=>{r.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await r.read();if(t?.aborted)throw Error(`Request was aborted`);a+=e?i.decode():i.decode(o,{stream:!0}),e&&a.trim()&&(a+=`
1
+ import{i as e,n as t,r as n,t as r}from"./diagnostics-B-5VkVir.js";import{d as i,f as a,h as o,l as s,n as c,p as l,u}from"./models-DuCVW_cU.js";import{t as d}from"./provider-env-CTOcDKrQ.js";import{t as f}from"./headers-FK4rgixo.js";import{n as p,s as m}from"./constrained-sampling-DA0j0g9I.js";import{r as h}from"./transform-messages-HTSSP3zz.js";import{n as g,t as _}from"./error-body-pkrba6pf.js";import{t as v}from"./openai-prompt-cache-DXo9f3w5.js";import{n as y,r as b,t as x}from"./openai-responses-shared-CHC7SqmI.js";var S=new Set;function C(e){return S.add(e),()=>{S.delete(e)}}var w=0xffffffffffff,T=(1n<<41n)-1n,E=-1,D;function ee(e){let t=e??Date.now();if(!Number.isInteger(t)||t<0||t>w)throw RangeError(`UUIDv7 timestamp must be an integer between 0 and ${w}`);let n=e===void 0?Math.max(t,E):e;e===void 0&&(E=n);let r=new Uint8Array(16);if(globalThis.crypto.getRandomValues(r),D===void 0)D=BigInt(r[1])<<32n|BigInt(r[2])<<24n|BigInt(r[3])<<16n|BigInt(r[4])<<8n|BigInt(r[5]);else{if(D===T)throw RangeError(`UUIDv7 generator sequence exhausted`);D++}let i=BigInt(n);for(let e=5;e>=0;e--)r[e]=Number(i>>BigInt((5-e)*8))&255;r[6]=112|Number(D>>37n&15n),r[7]=Number(D>>29n&255n),r[8]=128|Number(D>>23n&63n),r[9]=Number(D>>15n&255n),r[10]=Number(D>>7n&255n),r[11]=Number((D&127n)<<1n)|r[11]&1;let a=Array.from(r,e=>e.toString(16).padStart(2,`0`));return`${a.slice(0,4).join(``)}-${a.slice(4,6).join(``)}-${a.slice(6,8).join(``)}-${a.slice(8,10).join(``)}-${a.slice(10).join(``)}`}function te(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 O={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function k(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||d(n)||d(r)||``}function A(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function j(e){return e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1):e}function ne(e){let t=e.trim().toLowerCase();if(!t)return;if(t.startsWith(`[`)){let e=t.indexOf(`]`);if(e!==-1){let n=t.slice(1,e),r=t.slice(e+1);if(r.startsWith(`:`)){let e=Number.parseInt(r.slice(1),10);return{host:n,port:Number.isNaN(e)?0:e}}return{host:n,port:0}}}if(t.includes(`:`)&&t.split(`:`).length>2)return{host:t,port:0};let n=t.lastIndexOf(`:`);if(n!==-1&&n===t.indexOf(`:`)){let e=t.slice(0,n),r=Number.parseInt(t.slice(n+1),10);if(!Number.isNaN(r))return{host:e,port:r}}return{host:t,port:0}}function re(e,t,n){let r=k(`no_proxy`,n).toLowerCase();if(!r)return!0;if(r===`*`)return!1;let i=j(e.toLowerCase());return r.split(/[,\s]/).every(e=>{let n=ne(e);if(!n||n.port&&n.port!==t)return!0;let r=j(n.host);return r.startsWith(`*.`)?r=r.slice(2):(r.startsWith(`.`)||r.startsWith(`*`))&&(r=r.slice(1)),!r||!(i===r||i.endsWith(`.${r}`))})}function ie(e,t){let n=A(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!re(j(n.hostname||n.host.replace(/:\d*$/,``)),Number.parseInt(n.port,10)||O[r]||0,t))return``;let i=k(`${r}_proxy`,t)||k(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}var ae=`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.`;function oe(e,t){let n=ie(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`${ae} Got ${r.protocol}`);return r}var se=`https://chatgpt.com/backend-api`,ce=`https://api.openai.com/auth`,le=0,M=1e3,ue=6e4,de=15e3,fe=3,N=new Set([`openai`,`openai-codex`,`opencode`]),pe=1009,me=`websocket_connection_limit_reached`,he=`previous_response_not_found`,ge=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function P(e){if(e.stopReason===`pending`)throw Error(`Codex stream ended without a stop reason`);if(e.stopReason===`error`||e.stopReason===`aborted`)throw Error(e.errorMessage||`An unknown error occurred`)}function _e(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function ve(e,t){return e===429&&_e(t)?!1:e===429||e===500||e===502||e===503||e===504||/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function ye(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())}var be=class extends Error{};function xe(e,t){let n=t?.maxRetryDelayMs??ue;if(n>0&&e>n)throw new be(`Server requested ${Math.ceil(e/1e3)}s retry delay (max: ${Math.ceil(n/1e3)}s)`);return e}function Se(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 Ce(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function we(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function Te(e){let t=we();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:fe}});return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}catch{return null}}var F=(n,i,o)=>{let c=new e,l=a(i,n.compat?.supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let i=o?.apiKey;if(!i)throw Error(`No API key for provider: ${n.provider}`);let a=st(i),u=p(s(l.messages),n.compat?.supportsOpenAIGrammarTools??!1),d=o?.cacheRetention===`none`?void 0:o?.sessionId,m=v(d),h=De(n,l,o,m,u),g=await o?.onPayload?.(h,n);g!==void 0&&(h=g);let _=m||ee(),y=lt(n.headers,o?.headers,a,i,m),b=ut(n.headers,o?.headers,a,i,_),x=JSON.stringify(h),S=Ce(o?.timeoutMs),C=Ce(o?.websocketConnectTimeoutMs),w=o?.transport||`auto`,T=!1,E=w!==`sse`&&J(d);if(E&&Y(d),w!==`sse`&&!E){let i=!1,s=!1,l=!1;for(;;){i=!1;try{if(await at(ke(n.baseUrl),h,b,e,c,n,()=>{i=!0,T||(T=!0,c.push({type:`start`,partial:e}))},S,C,d,a,u,o),o?.signal?.aborted)throw Error(`Request was aborted`);P(e),c.push({type:`done`,reason:e.stopReason,message:e}),c.end();return}catch(n){let a=o?.signal?.aborted,c=!i&&Me(n),u=Ne(n);if(!a&&u&&!l){l=!0;continue}if(!a&&c&&!s){s=!0;continue}if(a||je(n)&&!c||(r(e,t(`provider_transport_failure`,n,{configuredTransport:w,...i?{}:{fallbackTransport:`sse`},eventsEmitted:i,phase:i?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(x).byteLength})),He(d,n),i))throw n;Y(d);break}}}let D=Te(x);D&&y.set(`content-encoding`,`zstd`);let O=D??x,k,A,j=o?.maxRetries??le;for(let e=0;e<=j;e++){if(o?.signal?.aborted)throw Error(`Request was aborted`);try{let t=S!==void 0&&S>0?AbortSignal.timeout(S):void 0,r=te([o?.signal,t]);try{k=await(o?.fetch??globalThis.fetch)(R(n.baseUrl),{method:`POST`,headers:y,body:O,signal:r.signal})}catch(e){throw t?.aborted&&!o?.signal?.aborted?Error(`Codex SSE response headers timed out after ${S}ms`):e}finally{r.cleanup()}if(await o?.onResponse?.({status:k.status,headers:f(k.headers)},n),k.ok)break;let i=await k.text();if(e<j&&ve(k.status,i)){let t=ye(k.headers);await Se(t===void 0?M*2**e:xe(t,o),o?.signal);continue}let a=await ot(new Response(i,{status:k.status,statusText:k.statusText}));throw Error(a.friendlyMessage||a.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(A=t instanceof Error?t:Error(String(t)),e<j&&!(A instanceof be)&&!A.message.includes(`usage limit`)){await Se(M*2**e,o?.signal);continue}throw A}}if(!k?.ok)throw A??Error(`Failed after retries`);if(!k.body)throw Error(`No response body`);if(T||(T=!0,c.push({type:`start`,partial:e})),await Ae(k,e,c,n,u,o),o?.signal?.aborted)throw Error(`Request was aborted`);P(e),c.push({type:`done`,reason:e.stopReason,message:e}),c.end()}catch(t){for(let t of e.content)delete t.partialJson,delete t.customInput;e.stopReason=o?.signal?.aborted?`aborted`:`error`,e.errorMessage=_(g(t)),c.push({type:`error`,reason:e.stopReason,error:e}),c.end()}})(),c},Ee=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let i={...h(e,t,n,r),toolChoice:n?.toolChoice},a=n?.reasoning?c(e,n.reasoning):void 0,o=a===`off`?void 0:a;return F(e,t,{...i,reasoningEffort:o})};function De(e,t,n,r,i=p(s(t.messages),e.compat?.supportsOpenAIGrammarTools??!1)){let a=e.compat?.supportsStrictMode??!0,c=e.compat?.supportsOpenAIGrammarTools??!1,d=e.compat?.supportsAdditionalTools??!1,f=e.compat?.supportsToolSearch??!1,m=l(t.messages,d||f),h=x(e,t,N,{includeSystemPrompt:!1,grammarToolInputProperties:i,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:d,supportsToolSearch:f,toolOptions:{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:c}}),g=u(t.messages),_=g?o(g):``,v={model:e.id,store:!1,stream:!0,instructions:_||`You are a helpful assistant.`,input:h,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:r,tool_choice:n?.toolChoice??`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(v.temperature=n.temperature),n?.serviceTier!==void 0&&(v.service_tier=n.serviceTier),m.requestTools.length>0&&(v.tools=y(m.requestTools,{strict:null,supportsStrictMode:a,supportsOpenAIGrammarTools:c})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off===void 0?`none`:e.thinkingLevelMap.off:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(v.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}else e.reasoning&&e.thinkingLevelMap?.off!==null&&(v.reasoning={effort:e.thinkingLevelMap?.off??`none`});return v}function Oe(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function I(e,t,n){let r=Oe(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 L(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function R(e){let t=(e&&e.trim().length>0?e:se).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function ke(e){let t=new URL(R(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function Ae(e,t,n,r,i,a){await b(H(Ie(e,a?.signal),t,r,a?.onProviderStreamEvent),t,n,r,{serviceTier:a?.serviceTier,grammarToolInputProperties:i,resolveServiceTier:L,applyServiceTierPricing:(e,t)=>I(e,t,r)})}var z=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}},B=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}},V=class extends Error{constructor(e){super(n(e)),this.name=`ProviderStreamEventCallbackError`,this.cause=e}};function je(e){return e instanceof z||e instanceof B||e instanceof V}function Me(e){return e instanceof z&&e.code===me}function Ne(e){return e instanceof z&&e.code===he}function Pe(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*H(e,t,n,r){for await(let i of e){try{await r?.(i,n)}catch(e){throw new V(e)}let e=typeof i.type==`string`?i.type:void 0;if(e){if(e===`error`){let{code:e,message:t}=Pe(i);throw new z(`Codex error: ${t||e||JSON.stringify(i)}`,{code:e,payload:i})}if(e===`response.failed`){let e=i.response,t=e?.error?.code,n=e?.error?.message;throw new z(n||`Codex response failed`,{code:t,payload:i})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=i.response;typeof e?.end_turn==`boolean`&&(t.endTurn=e.end_turn);let n=e&&{...e,status:Fe(e.status)};yield{...i,type:`response.completed`,response:n};return}yield i}}}function Fe(e){if(typeof e==`string`)return ge.has(e)?e:void 0}async function*Ie(e,t){if(!e.body)return;let r=e.body.getReader(),i=new TextDecoder,a=``,o=()=>{r.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await r.read();if(t?.aborted)throw Error(`Request was aborted`);a+=e?i.decode():i.decode(o,{stream:!0}),e&&a.trim()&&(a+=`
2
2
 
3
3
  `);let s=a.indexOf(`
4
4
 
@@ -1 +1 @@
1
- import{a as e}from"./diagnostics-B-5VkVir.js";import{a as t}from"./compat-d34y6SaJ.js";import{n,o as r}from"./legacy-api-aliases-DZ7QKXPR.js";import{K as i,u as a}from"./account-store-D4Humqb-.js";import"./main-pG2z7nDr.js";import{n as o}from"./pi-transcript-context-M0uAa_Rs.js";import{n as s,r as c}from"./bridge-token-required-DMk2va9k.js";import{n as l,r as u,t as d}from"./pkce-hGf_TEnP.js";var f=`openai-codex`,p=`app_EMoamEEZ73f0CkXaXp7hrann`,m=`https://auth.openai.com/oauth/authorize`,h=`https://auth.openai.com/oauth/token`,g=`openid profile email offline_access`,_=`http://localhost:1455/auth/callback`,v=`http://localhost:1455/auth/callback*`,y=`https://chatgpt.com/backend-api`,b=`openai-codex-responses`,x=`${f}-openai`,S={xhigh:`xhigh`,minimal:`low`},C=[{id:`gpt-5.5`,name:`GPT-5.5`,input:[`text`,`image`]},{id:`gpt-5.4`,name:`GPT-5.4`,input:[`text`,`image`]},{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,input:[`text`,`image`]},{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,input:[`text`,`image`]},{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,input:[`text`]},{id:`gpt-5.2`,name:`GPT-5.2`,input:[`text`,`image`]}].map(e=>({...e,api:`openai`,reasoning:!0,context_window:272e3,max_tokens:128e3,thinkingLevelMap:S}));async function w(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,client_id:p,code:e,code_verifier:t,redirect_uri:_}),r=await fetch(h,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw Error(`OpenAI Codex token exchange failed: ${r.status} ${await r.text()}`);let i=await r.json();if(!i.access_token)throw Error(`OpenAI Codex token exchange did not return access_token.`);return i}async function T(e){if(s())return null;try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:p}),n=await fetch(h,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text();return c(n.status,e)||console.error(`[openai-codex] refresh failed:`,n.status,e),null}return await n.json()}catch(e){return console.error(`[openai-codex] refresh error:`,e instanceof Error?e.message:String(e)),null}}function E(e){try{let t=e.split(`.`);if(t.length!==3)return;let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`);return n.length%4&&(n+=`=`.repeat(4-n.length%4)),JSON.parse(atob(n))}catch{return}}function D(e){let t=E(e)?.[`https://api.openai.com/profile`]?.email;return typeof t==`string`?t:void 0}function O(e){let t=E(e)?.[`https://api.openai.com/auth`],n=D(e),r=typeof t?.chatgpt_plan_type==`string`?t.chatgpt_plan_type:void 0,i=r?r.charAt(0).toUpperCase()+r.slice(1):void 0;if(n&&i)return`${n} (${i})`;if(n)return n;if(i)return`ChatGPT ${i}`}async function k(e){let t=D(e);if(t)try{let e=t.trim().toLowerCase(),n=new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)));return`https://www.gravatar.com/avatar/${Array.from(n).map(e=>e.toString(16).padStart(2,`0`)).join(``)}?s=128&d=404`}catch{return}}function A(){return a().find(e=>e.providerId===f)}async function j(){let e=A();if(!e?.accessToken)throw Error("Not signed in to OpenAI Codex — run `oauth-token openai-codex` or /login");let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await T(e.refreshToken);if(t?.access_token)return await i({providerId:f,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??3600)*1e3,baseUrl:y,userName:O(t.access_token),userAvatar:await k(t.access_token),scopes:t.scope??e.scopes}),t.access_token}return e.accessToken}function M(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:x,provider:f,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function N(e){console.error(`[openai-codex] Stream error:`,e instanceof Error?e.message:String(e))}async function P(e,t,r,i){try{let a=await j(),s={...t,baseUrl:y,api:b},c=n(s,o(r),{...i,apiKey:a,transport:`sse`});for await(let t of c)e.push(t);e.end()}catch(n){N(n),e.push(M(t,n)),e.end()}}async function F(e,t,n,i){try{let a=await j(),s={...t,baseUrl:y,api:b},c=r(s,o(n),{...i,apiKey:a,transport:`sse`});for await(let t of c)e.push(t);e.end()}catch(n){N(n),e.push(M(t,n)),e.end()}}var I=(t,n,r={})=>{let i=e();return P(i,t,n,r).catch(N),i},L=(t,n,r)=>{let i=e();return F(i,t,n,r).catch(N),i},R={id:f,name:`OpenAI Codex (ChatGPT Subscription)`,description:`GPT-5 Codex via your ChatGPT Plus/Pro/Business subscription — OAuth login, no API key needed. Default model is GPT-5.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-5.5`,oauthTokenDomains:[`chatgpt.com`,`*.chatgpt.com`,`auth.openai.com`,`api.openai.com`],getModelIds:()=>C,onOAuthLoginIntercepted:async(e,t,n)=>{let r=l(),a=await d(r),o=u(),s=new URL(m);s.searchParams.set(`response_type`,`code`),s.searchParams.set(`client_id`,p),s.searchParams.set(`redirect_uri`,_),s.searchParams.set(`scope`,n?.scopes??g),s.searchParams.set(`code_challenge`,a),s.searchParams.set(`code_challenge_method`,`S256`),s.searchParams.set(`state`,o),s.searchParams.set(`id_token_add_organizations`,`true`),s.searchParams.set(`codex_cli_simplified_flow`,`true`),s.searchParams.set(`originator`,`pi`);let c=await e({authorizeUrl:s.toString(),redirectUriPattern:v,onCapture:`close`});if(!c)throw Error(`OpenAI Codex OAuth login was cancelled or timed out`);let h=new URL(c),b=h.searchParams.get(`code`),x=h.searchParams.get(`state`);if(!b)throw Error(`OpenAI Codex OAuth redirect did not include a code`);if(x!==o)throw Error(`OpenAI Codex OAuth state mismatch — possible CSRF, aborting`);let S=await w(b,r);await i({providerId:f,accessToken:S.access_token,refreshToken:S.refresh_token,tokenExpiresAt:Date.now()+(S.expires_in??3600)*1e3,baseUrl:y,userName:O(S.access_token),userAvatar:await k(S.access_token),scopes:S.scope}),t()},onOAuthLogout:async()=>{await i({providerId:f,accessToken:``})},onSilentRenew:async()=>{let e=A();if(!e?.refreshToken)return null;let t=await T(e.refreshToken);return t?.access_token?(await i({providerId:f,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??3600)*1e3,baseUrl:y,userName:O(t.access_token),userAvatar:await k(t.access_token),scopes:t.scope??e.scopes}),t.access_token):null}};function z(){t({api:x,stream:I,streamSimple:L})}export{R as config,z as register};
1
+ import{a as e}from"./diagnostics-B-5VkVir.js";import{a as t}from"./compat-TaBTsXFP.js";import{n,o as r}from"./legacy-api-aliases-BqXqjuwj.js";import{K as i,u as a}from"./account-store-C8ku_32k.js";import"./main-CWx8ZbOh.js";import{n as o}from"./pi-transcript-context-BD-rasES.js";import{n as s,r as c}from"./bridge-token-required-DMk2va9k.js";import{n as l,r as u,t as d}from"./pkce-hGf_TEnP.js";var f=`openai-codex`,p=`app_EMoamEEZ73f0CkXaXp7hrann`,m=`https://auth.openai.com/oauth/authorize`,h=`https://auth.openai.com/oauth/token`,g=`openid profile email offline_access`,_=`http://localhost:1455/auth/callback`,v=`http://localhost:1455/auth/callback*`,y=`https://chatgpt.com/backend-api`,b=`openai-codex-responses`,x=`${f}-openai`,S={xhigh:`xhigh`,minimal:`low`},C=[{id:`gpt-5.5`,name:`GPT-5.5`,input:[`text`,`image`]},{id:`gpt-5.4`,name:`GPT-5.4`,input:[`text`,`image`]},{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,input:[`text`,`image`]},{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,input:[`text`,`image`]},{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,input:[`text`]},{id:`gpt-5.2`,name:`GPT-5.2`,input:[`text`,`image`]}].map(e=>({...e,api:`openai`,reasoning:!0,context_window:272e3,max_tokens:128e3,thinkingLevelMap:S}));async function w(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,client_id:p,code:e,code_verifier:t,redirect_uri:_}),r=await fetch(h,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw Error(`OpenAI Codex token exchange failed: ${r.status} ${await r.text()}`);let i=await r.json();if(!i.access_token)throw Error(`OpenAI Codex token exchange did not return access_token.`);return i}async function T(e){if(s())return null;try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:p}),n=await fetch(h,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text();return c(n.status,e)||console.error(`[openai-codex] refresh failed:`,n.status,e),null}return await n.json()}catch(e){return console.error(`[openai-codex] refresh error:`,e instanceof Error?e.message:String(e)),null}}function E(e){try{let t=e.split(`.`);if(t.length!==3)return;let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`);return n.length%4&&(n+=`=`.repeat(4-n.length%4)),JSON.parse(atob(n))}catch{return}}function D(e){let t=E(e)?.[`https://api.openai.com/profile`]?.email;return typeof t==`string`?t:void 0}function O(e){let t=E(e)?.[`https://api.openai.com/auth`],n=D(e),r=typeof t?.chatgpt_plan_type==`string`?t.chatgpt_plan_type:void 0,i=r?r.charAt(0).toUpperCase()+r.slice(1):void 0;if(n&&i)return`${n} (${i})`;if(n)return n;if(i)return`ChatGPT ${i}`}async function k(e){let t=D(e);if(t)try{let e=t.trim().toLowerCase(),n=new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)));return`https://www.gravatar.com/avatar/${Array.from(n).map(e=>e.toString(16).padStart(2,`0`)).join(``)}?s=128&d=404`}catch{return}}function A(){return a().find(e=>e.providerId===f)}async function j(){let e=A();if(!e?.accessToken)throw Error("Not signed in to OpenAI Codex — run `oauth-token openai-codex` or /login");let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await T(e.refreshToken);if(t?.access_token)return await i({providerId:f,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??3600)*1e3,baseUrl:y,userName:O(t.access_token),userAvatar:await k(t.access_token),scopes:t.scope??e.scopes}),t.access_token}return e.accessToken}function M(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:x,provider:f,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function N(e){console.error(`[openai-codex] Stream error:`,e instanceof Error?e.message:String(e))}async function P(e,t,r,i){try{let a=await j(),s={...t,baseUrl:y,api:b},c=n(s,o(r),{...i,apiKey:a,transport:`sse`});for await(let t of c)e.push(t);e.end()}catch(n){N(n),e.push(M(t,n)),e.end()}}async function F(e,t,n,i){try{let a=await j(),s={...t,baseUrl:y,api:b},c=r(s,o(n),{...i,apiKey:a,transport:`sse`});for await(let t of c)e.push(t);e.end()}catch(n){N(n),e.push(M(t,n)),e.end()}}var I=(t,n,r={})=>{let i=e();return P(i,t,n,r).catch(N),i},L=(t,n,r)=>{let i=e();return F(i,t,n,r).catch(N),i},R={id:f,name:`OpenAI Codex (ChatGPT Subscription)`,description:`GPT-5 Codex via your ChatGPT Plus/Pro/Business subscription — OAuth login, no API key needed. Default model is GPT-5.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-5.5`,oauthTokenDomains:[`chatgpt.com`,`*.chatgpt.com`,`auth.openai.com`,`api.openai.com`],getModelIds:()=>C,onOAuthLoginIntercepted:async(e,t,n)=>{let r=l(),a=await d(r),o=u(),s=new URL(m);s.searchParams.set(`response_type`,`code`),s.searchParams.set(`client_id`,p),s.searchParams.set(`redirect_uri`,_),s.searchParams.set(`scope`,n?.scopes??g),s.searchParams.set(`code_challenge`,a),s.searchParams.set(`code_challenge_method`,`S256`),s.searchParams.set(`state`,o),s.searchParams.set(`id_token_add_organizations`,`true`),s.searchParams.set(`codex_cli_simplified_flow`,`true`),s.searchParams.set(`originator`,`pi`);let c=await e({authorizeUrl:s.toString(),redirectUriPattern:v,onCapture:`close`});if(!c)throw Error(`OpenAI Codex OAuth login was cancelled or timed out`);let h=new URL(c),b=h.searchParams.get(`code`),x=h.searchParams.get(`state`);if(!b)throw Error(`OpenAI Codex OAuth redirect did not include a code`);if(x!==o)throw Error(`OpenAI Codex OAuth state mismatch — possible CSRF, aborting`);let S=await w(b,r);await i({providerId:f,accessToken:S.access_token,refreshToken:S.refresh_token,tokenExpiresAt:Date.now()+(S.expires_in??3600)*1e3,baseUrl:y,userName:O(S.access_token),userAvatar:await k(S.access_token),scopes:S.scope}),t()},onOAuthLogout:async()=>{await i({providerId:f,accessToken:``})},onSilentRenew:async()=>{let e=A();if(!e?.refreshToken)return null;let t=await T(e.refreshToken);return t?.access_token?(await i({providerId:f,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??3600)*1e3,baseUrl:y,userName:O(t.access_token),userAvatar:await k(t.access_token),scopes:t.scope??e.scopes}),t.access_token):null}};function z(){t({api:x,stream:I,streamSimple:L})}export{R as config,z as register};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./diagnostics-B-5VkVir.js";import{f as t,g as n,h as r,l as i,n as a,p as o,t as s}from"./models-K_BYbYJy.js";import{n as c}from"./json-parse-CgFfIg4Q.js";import{t as l}from"./provider-env-CTOcDKrQ.js";import{t as u}from"./headers-FK4rgixo.js";import{a as d,i as f,n as p,o as m,r as h,s as g,t as _}from"./constrained-sampling-DA0j0g9I.js";import{t as ee}from"./provider-retry-RVfYd5Vz.js";import{t as v}from"./sanitize-unicode-DmIE6hZJ.js";import{n as y,t as b}from"./github-copilot-headers-DRgtIyTm.js";import{c as x,o as S,r as C,s as w,t as T}from"./transform-messages-Bx3wQh2R.js";import{n as E}from"./openai-C1l1fzN1.js";import{n as D,t as O}from"./error-body-pkrba6pf.js";import{t as k}from"./openai-prompt-cache-DXo9f3w5.js";import{t as A}from"./hash-yQufAZII.js";function j(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function M(e,t,n){if(t)return t;if(j(n,`authorization`)||j(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function N(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 P(e){return e.type===`text`}function F(e){return e.type===`thinking`}function I(e){return e.type===`toolCall`}function te(e){return e.type===`image`}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return(e.id===void 0||e.id===null||typeof e.id==`string`)&&(e.format===void 0||typeof e.format==`string`)&&(e.index===void 0||typeof e.index==`number`)}function z(e){if(!L(e)||!R(e))return!1;switch(e.type){case`reasoning.summary`:return typeof e.summary==`string`;case`reasoning.encrypted`:return typeof e.data==`string`;case`reasoning.text`:return typeof e.text==`string`&&(e.signature===void 0||e.signature===null||typeof e.signature==`string`);default:return!1}}function ne(e){if(e)try{let t=JSON.parse(e);return Array.isArray(t)&&t.length>0&&t.every(z)?t:void 0}catch{return}}function re(e){if(e)try{let t=JSON.parse(e);return z(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function B(e,t){e.id??=t.id,e.format||=t.format,e.index??=t.index}function ie(e,t){let n=e[e.length-1];if(t.type===`reasoning.text`&&n?.type===`reasoning.text`){n.text+=t.text,n.signature||=t.signature,B(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,B(n,t);return}e.push({...t})}var ae=[`reasoning`,`reasoning_content`,`reasoning_text`];function oe(e){return ae.includes(e)}function V(e,t){return e||(l(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var H=(n,r,a)=>{let o=new e,s=t(r,$(n).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},t,r=e=>{t!==void 0&&(e.thinkingSignature=JSON.stringify(t))};try{let l=M(n.provider,a?.apiKey,a?.headers),d=$(n),f=p(i(s.messages),d.supportsOpenAIGrammarTools),m=V(a?.cacheRetention,a?.env),h=m===`none`?void 0:a?.sessionId,g=W(n,s,l,a?.headers,a?.fetch,h,d),v=G(n,s,a,d,m,f),y=await a?.onPayload?.(v,n);y!==void 0&&(v=y);let b={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:x,response:S}=await ee(()=>g.chat.completions.create(v,b).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:S.status,headers:u(S.headers)},n),o.push({type:`start`,partial:e});let C=null,w=null,T=!1,E=new Map,D=new Map,O=e.content,k=e=>O.indexOf(e),A=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},j=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=_(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},N=t=>{let n=k(t);if(n!==-1){if(t.type===`text`)o.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)r(t),o.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=j(t,A(t),!0);r!==void 0&&o.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=c(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,o.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},P=()=>(C||(C={type:`text`,text:``},O.push(C),o.push({type:`text_start`,contentIndex:k(C),partial:e})),C),F=t=>(w||(w={type:`thinking`,thinking:``,thinkingSignature:t},O.push(w),o.push({type:`thinking_start`,contentIndex:k(w),partial:e})),w),I=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:E.get(n);if(!i&&t.id&&(i=D.get(t.id)),!i){let a=t.custom&&!t.function?f.get(r)??`input`:void 0,s=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:s?{[a]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&E.set(n,i),t.id&&D.set(t.id,i),O.push(i),o.push({type:`toolcall_start`,contentIndex:k(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,E.set(n,i)),t.id&&D.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=f.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return i};for await(let r of x){if(await a?.onProviderStreamEvent?.(r,n),!r||typeof r!=`object`)continue;e.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==n.id&&(e.responseModel||=r.model),r.usage&&(e.usage=Q(r.usage,n));let i=Array.isArray(r.choices)?r.choices[0]:void 0;if(i){if(!r.usage&&i.usage&&(e.usage=Q(i.usage,n)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=he(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),T=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=P();t.text+=i.delta.content,o.push({type:`text_delta`,contentIndex:k(t),delta:i.delta.content,partial:e})}let r=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,s=null;for(let e of r){let t=a[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let t=a[s];if(typeof t==`string`&&t.length>0){let r=F(n.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=t,o.push({type:`thinking_delta`,contentIndex:k(r),delta:t,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=I(t);!n.id&&t.id&&(n.id=t.id,D.set(t.id,n));let r=t.function?.name??t.custom?.name;!n.name&&r&&(n.name=r);let i=``;t.function?.arguments?(i=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=c(n.partialArgs)):t.custom?.input&&(i=j(n,A(n)+t.custom.input,!1)??``),o.push({type:`toolcall_delta`,contentIndex:k(n),delta:i,partial:e})}let l=i.delta.reasoning_details;if(Array.isArray(l))for(let e of l)z(e)&&(F(``),t??=[],ie(t,e))}}}for(let e of O)N(e);if(a?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!T&&!d.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(d.supportsFinishReason&&!T||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)t.type===`thinking`&&r(t),delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=O(D(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},U=(e,t,n)=>{M(e.provider,n?.apiKey,n?.headers);let r={...C(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},i=n?.reasoning?a(e,n.reasoning):void 0,o=i===`off`?void 0:i;return H(e,t,{...r,reasoningEffort:o,thinkingBudgets:n?.thinkingBudgets})};function W(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":g(),...e.headers};if(e.provider===`github-copilot`){let e=y(t.messages),n=b({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new E({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function G(e,t,n,r=$(e),a=V(n?.cacheRetention,n?.env),s=p(i(t.messages),r.supportsOpenAIGrammarTools)){let c=o(t.messages,r.supportsMidConvoSystemMessages===!0&&r.supportsMidConvoToolAdditions===!0),l=X(e,t,r,{grammarToolInputProperties:s}),u=le(r,a),d={model:e.id,messages:l,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&a!==`none`||a===`long`&&r.supportsLongCacheRetention?k(n?.sessionId):void 0,prompt_cache_retention:a===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(d.stream_options={include_usage:!0}),r.supportsStore&&(d.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?d.max_tokens=n.maxTokens:d.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(d.temperature=n.temperature),c.requestTools.length>0?(d.tools=Z(c.requestTools,r),r.zaiToolStream&&(d.tool_stream=!0)):N(t.messages)&&(d.tools=[]),u&&ue(l,d.tools,u),n?.toolChoice&&(d.tool_choice=n.toolChoice),r.vllmPriority!==void 0&&(d.priority=r.vllmPriority);let f=K(r),m=se(e,n,d);if(r.thinkingFormat===`zai`&&e.reasoning){let t=d;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(d.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(d.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)d.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=q(e,n,r.chatTemplateKwargs,m);t&&(d.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=d,i=q(e,n,r.chatTemplateArgs,m);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?d.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(d.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(d.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=d;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`&&(d.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=d;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=d;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)d.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(d.reasoning_effort=t)}if(f&&m!==void 0&&Object.assign(d,{[f]:m}),e.compat?.openRouterRouting&&(d.provider=e.compat.openRouterRouting),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),d.providerOptions={gateway:e}}}let h=w(e,n?.reasoningEffort??`off`,n?.samplingParams);return h&&Object.assign(d,h),d}function K(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function se(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=S(x(t.reasoningEffort,t.thinkingBudgets),r);return i>0?i:void 0}function q(e,t,n,r){let i={};for(let[a,o]of Object.entries(n)){let n=ce(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function ce(e,t,n,r){if(typeof n!=`object`||!n)return n;let i=t?.reasoningEffort;if(!i&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!i;if(n.$var===`thinking.budget`)return r;let a=i?e.thinkingLevelMap?.[i]:e.thinkingLevelMap?.off;return a===void 0?i:typeof a==`string`?a:void 0}function le(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 ue(e,t,n){de(e,n),pe(t,n),fe(e,n)}function de(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){J(n,t);return}}function fe(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&me(r,t))return}}function pe(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function J(e,t){return Y(e,t)}function me(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(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 X(e,i,a,s){let c=t(i,a.supportsMidConvoSystemMessages),l=[],u=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=A(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},d=T(c.messages,e,e=>u(e)),f=o(c.messages,a.supportsMidConvoSystemMessages===!0&&a.supportsMidConvoToolAdditions===!0),p=e.reasoning&&a.supportsDeveloperRole?`developer`:`system`,m=null;for(let t=0;t<d.length;t++){let i=d[t];if(a.requiresAssistantAfterToolResult&&m===`toolResult`&&i.role===`user`&&l.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`system`){let e=t>0&&f.anchorsAdditions?i.toolsAdded??[]:[];if(e.length>0){let t={role:`system`,tools:Z(e,a)};l.push(t)}let o=t===0?r(i):n(i);o.length>0&&l.push({role:p,content:v(o)})}else if(i.role===`user`){if(typeof i.content==`string`)l.push({role:`user`,content:v(i.content)});else{let e=i.content.filter(e=>e.type!==`text`||e.text.length>0).map(e=>e.type===`text`?{type:`text`,text:v(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;l.push({role:`user`,content:e})}}else if(i.role===`assistant`){let t={role:`assistant`,content:a.requiresAssistantAfterToolResult?``:null},n=i.content.filter(P).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:v(e.text)})),r=n.map(e=>e.text).join(``),o=i.content.filter(F),c=i.content.filter(I),u=o.map(e=>ne(e.thinkingSignature)).find(e=>e!==void 0),d=c.map(e=>re(e.thoughtSignature)).filter(e=>e!==void 0),f=u??(d.length>0?d:void 0),p=o.filter(e=>e.thinking.trim().length>0);if(p.length>0){if(a.requiresThinkingAsText)t.content=[{type:`text`,text:p.map(e=>v(e.thinking)).join(`
1
+ import{i as e}from"./diagnostics-B-5VkVir.js";import{f as t,g as n,h as r,l as i,n as a,p as o,t as s}from"./models-DuCVW_cU.js";import{n as c}from"./json-parse-CgFfIg4Q.js";import{t as l}from"./provider-env-CTOcDKrQ.js";import{t as u}from"./headers-FK4rgixo.js";import{a as d,i as f,n as p,o as m,r as h,s as g,t as _}from"./constrained-sampling-DA0j0g9I.js";import{t as ee}from"./provider-retry-RVfYd5Vz.js";import{t as v}from"./sanitize-unicode-DmIE6hZJ.js";import{n as y,t as b}from"./github-copilot-headers-DRgtIyTm.js";import{c as x,o as S,r as C,s as w,t as T}from"./transform-messages-HTSSP3zz.js";import{n as E}from"./openai-C1l1fzN1.js";import{n as D,t as O}from"./error-body-pkrba6pf.js";import{t as k}from"./openai-prompt-cache-DXo9f3w5.js";import{t as A}from"./hash-yQufAZII.js";function j(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function M(e,t,n){if(t)return t;if(j(n,`authorization`)||j(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function N(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 P(e){return e.type===`text`}function F(e){return e.type===`thinking`}function I(e){return e.type===`toolCall`}function te(e){return e.type===`image`}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return(e.id===void 0||e.id===null||typeof e.id==`string`)&&(e.format===void 0||typeof e.format==`string`)&&(e.index===void 0||typeof e.index==`number`)}function z(e){if(!L(e)||!R(e))return!1;switch(e.type){case`reasoning.summary`:return typeof e.summary==`string`;case`reasoning.encrypted`:return typeof e.data==`string`;case`reasoning.text`:return typeof e.text==`string`&&(e.signature===void 0||e.signature===null||typeof e.signature==`string`);default:return!1}}function ne(e){if(e)try{let t=JSON.parse(e);return Array.isArray(t)&&t.length>0&&t.every(z)?t:void 0}catch{return}}function re(e){if(e)try{let t=JSON.parse(e);return z(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function B(e,t){e.id??=t.id,e.format||=t.format,e.index??=t.index}function ie(e,t){let n=e[e.length-1];if(t.type===`reasoning.text`&&n?.type===`reasoning.text`){n.text+=t.text,n.signature||=t.signature,B(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,B(n,t);return}e.push({...t})}var ae=[`reasoning`,`reasoning_content`,`reasoning_text`];function oe(e){return ae.includes(e)}function V(e,t){return e||(l(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var H=(n,r,a)=>{let o=new e,s=t(r,$(n).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},t,r=e=>{t!==void 0&&(e.thinkingSignature=JSON.stringify(t))};try{let l=M(n.provider,a?.apiKey,a?.headers),d=$(n),f=p(i(s.messages),d.supportsOpenAIGrammarTools),m=V(a?.cacheRetention,a?.env),h=m===`none`?void 0:a?.sessionId,g=W(n,s,l,a?.headers,a?.fetch,h,d),v=G(n,s,a,d,m,f),y=await a?.onPayload?.(v,n);y!==void 0&&(v=y);let b={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:x,response:S}=await ee(()=>g.chat.completions.create(v,b).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:S.status,headers:u(S.headers)},n),o.push({type:`start`,partial:e});let C=null,w=null,T=!1,E=new Map,D=new Map,O=e.content,k=e=>O.indexOf(e),A=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},j=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=_(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},N=t=>{let n=k(t);if(n!==-1){if(t.type===`text`)o.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)r(t),o.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=j(t,A(t),!0);r!==void 0&&o.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=c(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,o.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},P=()=>(C||(C={type:`text`,text:``},O.push(C),o.push({type:`text_start`,contentIndex:k(C),partial:e})),C),F=t=>(w||(w={type:`thinking`,thinking:``,thinkingSignature:t},O.push(w),o.push({type:`thinking_start`,contentIndex:k(w),partial:e})),w),I=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:E.get(n);if(!i&&t.id&&(i=D.get(t.id)),!i){let a=t.custom&&!t.function?f.get(r)??`input`:void 0,s=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:s?{[a]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&E.set(n,i),t.id&&D.set(t.id,i),O.push(i),o.push({type:`toolcall_start`,contentIndex:k(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,E.set(n,i)),t.id&&D.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=f.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return i};for await(let r of x){if(await a?.onProviderStreamEvent?.(r,n),!r||typeof r!=`object`)continue;e.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==n.id&&(e.responseModel||=r.model),r.usage&&(e.usage=Q(r.usage,n));let i=Array.isArray(r.choices)?r.choices[0]:void 0;if(i){if(!r.usage&&i.usage&&(e.usage=Q(i.usage,n)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=he(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),T=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=P();t.text+=i.delta.content,o.push({type:`text_delta`,contentIndex:k(t),delta:i.delta.content,partial:e})}let r=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,s=null;for(let e of r){let t=a[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let t=a[s];if(typeof t==`string`&&t.length>0){let r=F(n.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=t,o.push({type:`thinking_delta`,contentIndex:k(r),delta:t,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=I(t);!n.id&&t.id&&(n.id=t.id,D.set(t.id,n));let r=t.function?.name??t.custom?.name;!n.name&&r&&(n.name=r);let i=``;t.function?.arguments?(i=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=c(n.partialArgs)):t.custom?.input&&(i=j(n,A(n)+t.custom.input,!1)??``),o.push({type:`toolcall_delta`,contentIndex:k(n),delta:i,partial:e})}let l=i.delta.reasoning_details;if(Array.isArray(l))for(let e of l)z(e)&&(F(``),t??=[],ie(t,e))}}}for(let e of O)N(e);if(a?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!T&&!d.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(d.supportsFinishReason&&!T||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)t.type===`thinking`&&r(t),delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=O(D(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},U=(e,t,n)=>{M(e.provider,n?.apiKey,n?.headers);let r={...C(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},i=n?.reasoning?a(e,n.reasoning):void 0,o=i===`off`?void 0:i;return H(e,t,{...r,reasoningEffort:o,thinkingBudgets:n?.thinkingBudgets})};function W(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":g(),...e.headers};if(e.provider===`github-copilot`){let e=y(t.messages),n=b({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new E({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function G(e,t,n,r=$(e),a=V(n?.cacheRetention,n?.env),s=p(i(t.messages),r.supportsOpenAIGrammarTools)){let c=o(t.messages,r.supportsMidConvoSystemMessages===!0&&r.supportsMidConvoToolAdditions===!0),l=X(e,t,r,{grammarToolInputProperties:s}),u=le(r,a),d={model:e.id,messages:l,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&a!==`none`||a===`long`&&r.supportsLongCacheRetention?k(n?.sessionId):void 0,prompt_cache_retention:a===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(d.stream_options={include_usage:!0}),r.supportsStore&&(d.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?d.max_tokens=n.maxTokens:d.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(d.temperature=n.temperature),c.requestTools.length>0?(d.tools=Z(c.requestTools,r),r.zaiToolStream&&(d.tool_stream=!0)):N(t.messages)&&(d.tools=[]),u&&ue(l,d.tools,u),n?.toolChoice&&(d.tool_choice=n.toolChoice),r.vllmPriority!==void 0&&(d.priority=r.vllmPriority);let f=K(r),m=se(e,n,d);if(r.thinkingFormat===`zai`&&e.reasoning){let t=d;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(d.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(d.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)d.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=q(e,n,r.chatTemplateKwargs,m);t&&(d.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=d,i=q(e,n,r.chatTemplateArgs,m);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?d.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(d.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(d.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=d;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`&&(d.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=d;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=d;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)d.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(d.reasoning_effort=t)}if(f&&m!==void 0&&Object.assign(d,{[f]:m}),e.compat?.openRouterRouting&&(d.provider=e.compat.openRouterRouting),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),d.providerOptions={gateway:e}}}let h=w(e,n?.reasoningEffort??`off`,n?.samplingParams);return h&&Object.assign(d,h),d}function K(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function se(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=S(x(t.reasoningEffort,t.thinkingBudgets),r);return i>0?i:void 0}function q(e,t,n,r){let i={};for(let[a,o]of Object.entries(n)){let n=ce(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function ce(e,t,n,r){if(typeof n!=`object`||!n)return n;let i=t?.reasoningEffort;if(!i&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!i;if(n.$var===`thinking.budget`)return r;let a=i?e.thinkingLevelMap?.[i]:e.thinkingLevelMap?.off;return a===void 0?i:typeof a==`string`?a:void 0}function le(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 ue(e,t,n){de(e,n),pe(t,n),fe(e,n)}function de(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){J(n,t);return}}function fe(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&me(r,t))return}}function pe(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function J(e,t){return Y(e,t)}function me(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(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 X(e,i,a,s){let c=t(i,a.supportsMidConvoSystemMessages),l=[],u=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=A(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},d=T(c.messages,e,e=>u(e)),f=o(c.messages,a.supportsMidConvoSystemMessages===!0&&a.supportsMidConvoToolAdditions===!0),p=e.reasoning&&a.supportsDeveloperRole?`developer`:`system`,m=null;for(let t=0;t<d.length;t++){let i=d[t];if(a.requiresAssistantAfterToolResult&&m===`toolResult`&&i.role===`user`&&l.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`system`){let e=t>0&&f.anchorsAdditions?i.toolsAdded??[]:[];if(e.length>0){let t={role:`system`,tools:Z(e,a)};l.push(t)}let o=t===0?r(i):n(i);o.length>0&&l.push({role:p,content:v(o)})}else if(i.role===`user`){if(typeof i.content==`string`)l.push({role:`user`,content:v(i.content)});else{let e=i.content.filter(e=>e.type!==`text`||e.text.length>0).map(e=>e.type===`text`?{type:`text`,text:v(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;l.push({role:`user`,content:e})}}else if(i.role===`assistant`){let t={role:`assistant`,content:a.requiresAssistantAfterToolResult?``:null},n=i.content.filter(P).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:v(e.text)})),r=n.map(e=>e.text).join(``),o=i.content.filter(F),c=i.content.filter(I),u=o.map(e=>ne(e.thinkingSignature)).find(e=>e!==void 0),d=c.map(e=>re(e.thoughtSignature)).filter(e=>e!==void 0),f=u??(d.length>0?d:void 0),p=o.filter(e=>e.thinking.trim().length>0);if(p.length>0){if(a.requiresThinkingAsText)t.content=[{type:`text`,text:p.map(e=>v(e.thinking)).join(`
2
2
 
3
3
  `)},...n];else if(r.length>0&&(t.content=r),!f){let n=p[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&oe(n)&&(t[n]=p.map(e=>e.thinking).join(`
4
4
  `))}}else r.length>0&&(t.content=r);c.length>0&&(t.tool_calls=c.map(e=>{let t=s?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:v(h(e.name,e.arguments,t))}}})),f&&(t.reasoning_details=f),a.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let m=t.content;if(!(m!=null&&m.length>0)&&!t.tool_calls)continue;l.push(t)}else if(i.role===`toolResult`){let n=[],r=t;for(;r<d.length&&d[r].role===`toolResult`;r++){let t=d[r],i=t.content.filter(P).map(e=>e.text).join(`
@@ -1,2 +1,2 @@
1
- import{n as e,t}from"./error-body-pkrba6pf.js";import{i as n,n as r,r as i,t as a}from"./classifier-shared-2vXBXYjG.js";var o=`OpenAI Decisions`,s=128;function c(e){let t=[e.criteria.true?`True means: ${e.criteria.true}`:``,e.criteria.false?`False means: ${e.criteria.false}`:``].filter(Boolean);return t.length>0?`${e.instructions}\n\n${t.join(`
1
+ import{n as e,t}from"./error-body-pkrba6pf.js";import{i as n,n as r,r as i,t as a}from"./classifier-shared-1BfNmzbv.js";var o=`OpenAI Decisions`,s=128;function c(e){let t=[e.criteria.true?`True means: ${e.criteria.true}`:``,e.criteria.false?`False means: ${e.criteria.false}`:``].filter(Boolean);return t.length>0?`${e.instructions}\n\n${t.join(`
2
2
  `)}`:e.instructions}function l(e,t){return t.type===`choice`?{type:`choice`,name:e,instructions:t.instructions,choices:Object.entries(t.criteria).map(([e,t])=>t?{value:e,description:t}:{value:e})}:t.type===`score`?{type:`score`,name:e,instructions:t.instructions,levels:t.criteria.map(e=>({label:e}))}:{type:`predicate`,name:e,instructions:c(t)}}function u(e){let t=JSON.stringify(e.state),n=e.images??[];if(n.length===0)return t;if(n.length>s)throw Error(`${o} accepts at most ${s} images, got ${n.length}`);return[{role:`user`,content:[{type:`input_text`,text:t},...n.map(e=>({type:`input_image`,image_url:`data:${e.mimeType};base64,${e.data}`}))]}]}function d(e,t){if(!Array.isArray(e))throw Error(`${o} returned invalid probabilities for ${t}`);return Object.fromEntries(e.map(e=>{if(!a(e)||typeof e.value!=`string`)throw Error(`${o} returned invalid probabilities for ${t}`);return[e.value,n(o,e.probability,`probability for ${t}.${e.value}`)]}))}function f(e,t,r){if(r.type===`refusal`)throw Error(`${o} refused to answer ${e}`);if(t.type===`choice`){if(r.type!==`choice`||typeof r.choice!=`string`)throw Error(`${o} did not return a choice answer for ${e}`);return{type:`choice`,choice:r.choice,probabilities:d(r.probabilities,e),confidence:n(o,r.confidence,`confidence for ${e}`)}}if(t.type===`score`){if(r.type!==`score`)throw Error(`${o} did not return a score answer for ${e}`);return{type:`score`,score:n(o,r.score,`score for ${e}`),confidence:n(o,r.confidence,`confidence for ${e}`)}}if(r.type!==`predicate`)throw Error(`${o} did not return a predicate answer for ${e}`);return{type:`bool`,probability:n(o,r.probability,`probability for ${e}`)}}function p(e,t){if(!Array.isArray(e))throw Error(`${o} returned an unexpected response`);let n=new Map;for(let t of e)a(t)&&typeof t.name==`string`&&n.set(t.name,t);return Object.fromEntries(Object.entries(t.questions).map(([e,t])=>{let r=n.get(e);if(!r)throw Error(`${o} did not return an answer for ${e}`);return[e,f(e,t,r)]}))}var m=[504];function h(n){return n.status===504?`${o} error (504): the request timed out at the gateway. Very large inputs (above roughly 600K tokens) currently exceed its time limit.`:t(e(n),`${o} error`)}var g=async(e,t,n)=>{let s={api:e.api,provider:e.provider,model:e.id,answers:{},stopReason:`stop`,timestamp:Date.now()};try{if(e.api!==`openai-decisions`)throw Error(`Unsupported classifier API: ${e.api}`);let c=await i(o,new URL(`decisions`,`${e.baseUrl.replace(/\/+$/u,``)}/`),e,{model:e.id,input:u(t),questions:Object.entries(t.questions).map(([e,t])=>l(e,t))},n,m);if(!a(c))throw Error(`${o} returned an unexpected response`);let d=r(c.usage,e);return d&&(s.usage=d),s.answers=p(c.answers,t),s}catch(e){return s.answers={},s.stopReason=n?.signal?.aborted?`aborted`:`error`,s.errorMessage=h(e),s}};export{g as classify};
@@ -1 +1 @@
1
- import{i as e}from"./diagnostics-B-5VkVir.js";import{f as t,l as n,n as r,p as i}from"./models-K_BYbYJy.js";import{t as a}from"./provider-env-CTOcDKrQ.js";import{t as o}from"./headers-FK4rgixo.js";import{n as s,s as c}from"./constrained-sampling-DA0j0g9I.js";import{t as l}from"./provider-retry-RVfYd5Vz.js";import{n as u,t as d}from"./github-copilot-headers-DRgtIyTm.js";import{r as f,s as p}from"./transform-messages-Bx3wQh2R.js";import{n as m}from"./openai-C1l1fzN1.js";import{n as h,t as g}from"./error-body-pkrba6pf.js";import{t as _}from"./openai-prompt-cache-DXo9f3w5.js";import{n as v,r as y,t as b}from"./openai-responses-shared-Df32ziOu.js";var x=new Set([`openai`,`openai-codex`,`opencode`]),S=16,C=`https://chatgpt.com/settings/usage`;function w(e,t){return e.provider===`openai`&&e.baseUrl===`https://api.openai.com/v1`&&t!==void 0&&!t.startsWith(`sk-`)}function T(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function E(e,t,n){if(t)return t;if(T(n,`authorization`)||T(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function D(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function O(e,t){return e||(a(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function k(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,sessionAffinityFormat:e.compat?.sessionAffinityFormat??D(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1,supportsMaxOutputTokens:e.compat?.supportsMaxOutputTokens??!0}}function A(e,t){return t===`long`&&e.supportsLongCacheRetention&&!e.supportsExplicitPromptCacheMode?`24h`:void 0}function j(e,t){if(e.supportsExplicitPromptCacheMode){if(t===`none`)return{mode:`explicit`};if(t===`long`&&e.supportsLongCacheRetention)return{ttl:`30m`}}}var M=(r,i,a)=>{let c=new e,u=t(i,k(r).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:r.api,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let t=E(r.provider,a?.apiKey,a?.headers),i=O(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,d=k(r),f=s(n(u.messages),d.supportsOpenAIGrammarTools),p=P(r,u,t,a?.headers,a?.fetch,i),m=F(r,u,a,d,f),h=await a?.onPayload?.(m,r);h!==void 0&&(m=h);let g={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:_,response:v}=await l(()=>p.responses.create(m,g).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});if(await a?.onResponse?.({status:v.status,headers:o(v.headers)},r),c.push({type:`start`,partial:e}),await y(_,e,c,r,{onProviderStreamEvent:a?.onProviderStreamEvent,serviceTier:a?.serviceTier,grammarToolInputProperties:f,applyServiceTierPricing:(e,t)=>L(e,t,r)}),a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);c.push({type:`done`,reason:e.stopReason,message:e}),c.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=a?.signal?.aborted?`aborted`:`error`;let n=g(h(t),`${r.provider===`openai`?`OpenAI`:r.provider} API error`);e.errorMessage=n.includes(`subscription_sharing_usage_limit_exceeded`)?`${n}\nCheck your ChatGPT usage: ${C}`:n,c.push({type:`error`,reason:e.stopReason,error:e}),c.end()}})(),c},N=(e,t,n)=>{E(e.provider,n?.apiKey,n?.headers);let i={...f(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},a=n?.reasoning?r(e,n.reasoning):void 0,o=a===`off`?void 0:a;return M(e,t,{...i,reasoningEffort:o})};function P(e,t,n,r,i,a){let o=k(e),s={"User-Agent":c(),...e.headers};if(e.provider===`github-copilot`){let e=u(t.messages),n=d({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a)),r&&Object.assign(s,r),new m({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function F(e,t,r,a=k(e),o=s(n(t.messages),a.supportsOpenAIGrammarTools)){let c=i(t.messages,a.supportsAdditionalTools||a.supportsToolSearch),l=b(e,t,x,{grammarToolInputProperties:o,supportsMidConvoSystemMessages:a.supportsMidConvoSystemMessages,supportsAdditionalTools:a.supportsAdditionalTools,supportsToolSearch:a.supportsToolSearch,toolOptions:{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools}}),u=O(r?.cacheRetention,r?.env),d=w(e,r?.apiKey),f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:_(r?.sessionId),prompt_cache_retention:d?void 0:A(a,u),prompt_cache_options:d?void 0:j(a,u),store:!1};r?.maxTokens&&a.supportsMaxOutputTokens&&!d&&(f.max_output_tokens=Math.max(r.maxTokens,S)),r?.temperature!==void 0&&!d&&(f.temperature=r?.temperature),r?.serviceTier!==void 0&&(f.service_tier=r.serviceTier),c.requestTools.length>0&&(f.tools=v(c.requestTools,{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools})),r?.toolChoice!==void 0&&(f.tool_choice=r.toolChoice);let m=r?.reasoningEffort??(r?.reasoningSummary?`medium`:void 0);e.reasoning&&(m?(f.reasoning={effort:r?.reasoningEffort?e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort:m,summary:r?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(f.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(f.include=[`reasoning.encrypted_content`]));let h=p(e,m??`off`,r?.samplingParams);return h&&Object.assign(f,h),f}function I(e,t){switch(t){case`flex`:return .5;case`priority`:case`fast`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function L(e,t,n){let r=I(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{M as stream,N as streamSimple};
1
+ import{i as e}from"./diagnostics-B-5VkVir.js";import{f as t,l as n,n as r,p as i}from"./models-DuCVW_cU.js";import{t as a}from"./provider-env-CTOcDKrQ.js";import{t as o}from"./headers-FK4rgixo.js";import{n as s,s as c}from"./constrained-sampling-DA0j0g9I.js";import{t as l}from"./provider-retry-RVfYd5Vz.js";import{n as u,t as d}from"./github-copilot-headers-DRgtIyTm.js";import{r as f,s as p}from"./transform-messages-HTSSP3zz.js";import{n as m}from"./openai-C1l1fzN1.js";import{n as h,t as g}from"./error-body-pkrba6pf.js";import{t as _}from"./openai-prompt-cache-DXo9f3w5.js";import{n as v,r as y,t as b}from"./openai-responses-shared-CHC7SqmI.js";var x=new Set([`openai`,`openai-codex`,`opencode`]),S=16,C=`https://chatgpt.com/settings/usage`;function w(e,t){return e.provider===`openai`&&e.baseUrl===`https://api.openai.com/v1`&&t!==void 0&&!t.startsWith(`sk-`)}function T(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function E(e,t,n){if(t)return t;if(T(n,`authorization`)||T(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function D(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function O(e,t){return e||(a(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function k(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,sessionAffinityFormat:e.compat?.sessionAffinityFormat??D(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1,supportsMaxOutputTokens:e.compat?.supportsMaxOutputTokens??!0}}function A(e,t){return t===`long`&&e.supportsLongCacheRetention&&!e.supportsExplicitPromptCacheMode?`24h`:void 0}function j(e,t){if(e.supportsExplicitPromptCacheMode){if(t===`none`)return{mode:`explicit`};if(t===`long`&&e.supportsLongCacheRetention)return{ttl:`30m`}}}var M=(r,i,a)=>{let c=new e,u=t(i,k(r).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:r.api,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let t=E(r.provider,a?.apiKey,a?.headers),i=O(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,d=k(r),f=s(n(u.messages),d.supportsOpenAIGrammarTools),p=P(r,u,t,a?.headers,a?.fetch,i),m=F(r,u,a,d,f),h=await a?.onPayload?.(m,r);h!==void 0&&(m=h);let g={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:_,response:v}=await l(()=>p.responses.create(m,g).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});if(await a?.onResponse?.({status:v.status,headers:o(v.headers)},r),c.push({type:`start`,partial:e}),await y(_,e,c,r,{onProviderStreamEvent:a?.onProviderStreamEvent,serviceTier:a?.serviceTier,grammarToolInputProperties:f,applyServiceTierPricing:(e,t)=>L(e,t,r)}),a?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);c.push({type:`done`,reason:e.stopReason,message:e}),c.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=a?.signal?.aborted?`aborted`:`error`;let n=g(h(t),`${r.provider===`openai`?`OpenAI`:r.provider} API error`);e.errorMessage=n.includes(`subscription_sharing_usage_limit_exceeded`)?`${n}\nCheck your ChatGPT usage: ${C}`:n,c.push({type:`error`,reason:e.stopReason,error:e}),c.end()}})(),c},N=(e,t,n)=>{E(e.provider,n?.apiKey,n?.headers);let i={...f(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},a=n?.reasoning?r(e,n.reasoning):void 0,o=a===`off`?void 0:a;return M(e,t,{...i,reasoningEffort:o})};function P(e,t,n,r,i,a){let o=k(e),s={"User-Agent":c(),...e.headers};if(e.provider===`github-copilot`){let e=u(t.messages),n=d({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a)),r&&Object.assign(s,r),new m({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function F(e,t,r,a=k(e),o=s(n(t.messages),a.supportsOpenAIGrammarTools)){let c=i(t.messages,a.supportsAdditionalTools||a.supportsToolSearch),l=b(e,t,x,{grammarToolInputProperties:o,supportsMidConvoSystemMessages:a.supportsMidConvoSystemMessages,supportsAdditionalTools:a.supportsAdditionalTools,supportsToolSearch:a.supportsToolSearch,toolOptions:{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools}}),u=O(r?.cacheRetention,r?.env),d=w(e,r?.apiKey),f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:_(r?.sessionId),prompt_cache_retention:d?void 0:A(a,u),prompt_cache_options:d?void 0:j(a,u),store:!1};r?.maxTokens&&a.supportsMaxOutputTokens&&!d&&(f.max_output_tokens=Math.max(r.maxTokens,S)),r?.temperature!==void 0&&!d&&(f.temperature=r?.temperature),r?.serviceTier!==void 0&&(f.service_tier=r.serviceTier),c.requestTools.length>0&&(f.tools=v(c.requestTools,{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools})),r?.toolChoice!==void 0&&(f.tool_choice=r.toolChoice);let m=r?.reasoningEffort??(r?.reasoningSummary?`medium`:void 0);e.reasoning&&(m?(f.reasoning={effort:r?.reasoningEffort?e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort:m,summary:r?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(f.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(f.include=[`reasoning.encrypted_content`]));let h=p(e,m??`off`,r?.samplingParams);return h&&Object.assign(f,h),f}function I(e,t){switch(t){case`flex`:return .5;case`priority`:case`fast`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function L(e,t,n){let r=I(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{M as stream,N as streamSimple};
@@ -1,4 +1,4 @@
1
- import{f as e,g as t,h as n,p as r,t as i}from"./models-K_BYbYJy.js";import{n as a}from"./json-parse-CgFfIg4Q.js";import{a as o,i as s,o as c,r as l,t as u}from"./constrained-sampling-DA0j0g9I.js";import{t as d}from"./sanitize-unicode-DmIE6hZJ.js";import{t as f}from"./transform-messages-Bx3wQh2R.js";import{t as p}from"./hash-yQufAZII.js";function m(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function h(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 g(e,t){let n=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{f as e,g as t,h as n,p as r,t as i}from"./models-DuCVW_cU.js";import{n as a}from"./json-parse-CgFfIg4Q.js";import{a as o,i as s,o as c,r as l,t as u}from"./constrained-sampling-DA0j0g9I.js";import{t as d}from"./sanitize-unicode-DmIE6hZJ.js";import{t as f}from"./transform-messages-HTSSP3zz.js";import{t as p}from"./hash-yQufAZII.js";function m(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function h(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 g(e,t){let n=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `),r=t.filter(e=>e.type===`image`),i=n.length>0;if(r.length===0||!e.input.includes(`image`))return d(i?n:r.length>0?`(see attached image)`:`(no tool output)`);let a=[];i&&a.push({type:`input_text`,text:d(n)});for(let e of r)a.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return a}function _(i,a,o,s){let c=e(a,s?.supportsMidConvoSystemMessages),u=[],m=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},_=e=>{let t=`fc_${p(e)}`;return t.length>64?t.slice(0,64):t},y=f(c.messages,i,(e,t,n)=>{if(!o.has(i.provider)||!e.includes(`|`))return m(e);let[r,a]=e.split(`|`),s=m(r),c=n.provider!==i.provider||n.api!==i.api?_(a):m(a);return c.startsWith(`fc_`)||(c=m(`fc_${c}`)),`${s}|${c}`}),b=r(c.messages,(s?.supportsAdditionalTools??!1)||(s?.supportsToolSearch??!1)),x=(e,t)=>{let n=b.anchorsAdditions?e.toolsAdded??[]:[];if(n.length===0)return;if(s?.supportsAdditionalTools){u.push({type:`additional_tools`,role:`developer`,tools:v(n,s.toolOptions)});return}if(!s?.supportsToolSearch)return;let r=n.map(e=>e.name),i=`pi_tool_load_${p(`${t}:${r.join(`,`)}`)}`;u.push({type:`tool_search_call`,call_id:i,execution:`client`,status:`completed`,arguments:{query:r.join(` `),limit:r.length}}),u.push({type:`tool_search_output`,call_id:i,execution:`client`,status:`completed`,tools:v(n,{...s.toolOptions,toolSearchResult:!0})})},S=s?.includeSystemPrompt??!0,C=i.compat,w=i.reasoning&&C?.supportsDeveloperRole!==!1?`developer`:`system`,T=0,E=0;for(let e of y){let r=E++===0&&e.role===`system`;if(e.role===`system`){if(r||x(e,`system:${T}`),!r||S){let i=r?n(e):t(e);i.length>0&&u.push({role:w,content:d(i)})}}else if(e.role===`user`){if(typeof e.content==`string`)u.push({role:`user`,content:[{type:`input_text`,text:d(e.content)}]});else{let t=e.content.map(e=>e.type===`text`?{type:`input_text`,text:d(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(t.length===0)continue;u.push({role:`user`,content:t})}}else if(e.role===`assistant`){let t=[],n=e,r=n.provider===i.provider&&n.api===i.api,a=r&&n.model===i.id,o=r&&n.model!==i.id,c=0;for(let n of e.content)if(n.type===`thinking`){if(n.thinkingSignature){let e=JSON.parse(n.thinkingSignature);t.push(e)}}else if(n.type===`text`){let e=n,r=h(e.textSignature),i=c===0?`msg_pi_${T}`:`msg_pi_${T}_${c}`;c++;let a=r?.id;a?a.length>64&&(a=`msg_${p(a)}`):a=i,t.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:d(e.text),annotations:[]}],status:`completed`,id:a,phase:r?.phase})}else if(n.type===`toolCall`){let e=n,[r,i]=e.id.split(`|`),c=s?.grammarToolInputProperties?.get(e.name),u=i,f=c===void 0?`fc_`:`ctc_`;(o||!u?.startsWith(f))&&(u=void 0),c===void 0?t.push({type:`function_call`,id:u,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments),...a&&e.namespace!==void 0?{namespace:e.namespace}:{}}):t.push({type:`custom_tool_call`,id:u,call_id:r,name:e.name,input:d(l(e.name,e.arguments,c)),...a&&e.namespace!==void 0?{namespace:e.namespace}:{}})}if(t.length===0)continue;u.push(...t)}else if(e.role===`toolResult`){let[t]=e.toolCallId.split(`|`),n=g(i,e.content);s?.grammarToolInputProperties?.has(e.toolName)?u.push({type:`custom_tool_call_output`,call_id:t,output:n}):u.push({type:`function_call_output`,call_id:t,output:n})}r||T++}return u}function v(e,t){let n=t?.strict!==void 0&&t.strict,r=t?.supportsStrictMode??!0,i=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let a=o(e,i);if(a)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:a.format,definition:a.definition},...t?.toolSearchResult?{defer_loading:!0}:{}};let l=c(e,r)??n,u={type:`function`,name:e.name,description:e.description,parameters:s(e,l===!0),...t?.toolSearchResult?{defer_loading:!0}:{}};return r&&(u.strict=l),u})}function y(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function b(e,t,n){let r=e.customInput;if(!r)return;let i=u(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function x(e,t,n,r,o){let s=!1,c=new Map,l=new Map,u=e=>{e.type===`message`&&e.phase===`final_answer`&&(t.stopReason=`stop`)},d=(e,t)=>{let n=c.get(e);return n?.type===t?n:void 0},f=(e,r)=>{r!==void 0&&n.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:r,partial:t})},p=(e,r)=>{if(r.type===`reasoning`){let r={type:`thinking`,thinking:``};t.content.push(r);let i={type:`thinking`,block:r,contentIndex:t.content.length-1};return c.set(e,i),n.push({type:`thinking_start`,contentIndex:i.contentIndex,partial:t}),i}if(r.type===`message`){u(r);let i={type:`text`,text:``};t.content.push(i);let a={type:`text`,block:i,contentIndex:t.content.length-1};return c.set(e,a),n.push({type:`text_start`,contentIndex:a.contentIndex,partial:t}),a}if(r.type===`function_call`){let i={type:`toolCall`,id:`${r.call_id}|${r.id}`,name:r.name,arguments:{},...r.namespace===void 0?{}:{namespace:r.namespace},partialJson:r.arguments||``};t.content.push(i);let a={type:`toolCall`,block:i,contentIndex:t.content.length-1};return c.set(e,a),n.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:t}),a}if(r.type===`custom_tool_call`){let i=o?.grammarToolInputProperties?.get(r.name)??`input`,a=r.input||``,s={type:`toolCall`,id:`${r.call_id}|${r.id}`,name:r.name,arguments:{[i]:a},...r.namespace===void 0?{}:{namespace:r.namespace},customInput:{property:i,jsonBuffer:{input:``,started:!1,closed:!1}}};t.content.push(s);let l={type:`toolCall`,block:s,contentIndex:t.content.length-1};return c.set(e,l),n.push({type:`toolcall_start`,contentIndex:l.contentIndex,partial:t}),l}},h=(e,t)=>c.get(e)??p(e,t),g=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=l.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},_=e=>{if(s=!0,g(e.output??[]),e?.id&&(t.responseId=e.id),e?.usage){let n=e.usage.input_tokens_details,r=n?.cached_tokens||0,i=n?.cache_write_tokens||0;t.usage={input:Math.max(0,(e.usage.input_tokens||0)-r-i),output:e.usage.output_tokens||0,cacheRead:r,cacheWrite:i,reasoning:e.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:e.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(i(r,t.usage),o?.applyServiceTierPricing){let n=o.resolveServiceTier?o.resolveServiceTier(e?.service_tier,o.serviceTier):e?.service_tier??o.serviceTier;o.applyServiceTierPricing(t.usage,n)}let n=e?.status,a=e?.incomplete_details,c=typeof a?.reason==`string`?a.reason:void 0;t.rawStopReason=c?`${n}.${c}`:n;let l=S(n,c);t.stopReason=l.stopReason,l.errorMessage===void 0?delete t.errorMessage:t.errorMessage=l.errorMessage,t.content.some(e=>e.type===`toolCall`)&&t.stopReason===`stop`&&(t.stopReason=`toolUse`)};for await(let i of e)if(await o?.onProviderStreamEvent?.(i,r),i.type===`response.created`)t.responseId=i.response.id;else if(i.type===`response.output_item.added`)p(i.output_index,i.item);else if(i.type===`response.reasoning_summary_text.delta`){let e=d(i.output_index,`thinking`);if(!e)continue;e.block.thinking+=i.delta,n.push({type:`thinking_delta`,contentIndex:e.contentIndex,delta:i.delta,partial:t})}else if(i.type===`response.reasoning_summary_part.done`){let e=d(i.output_index,`thinking`);if(!e)continue;e.block.thinking+=`
3
3
 
4
4
  `,n.push({type:`thinking_delta`,contentIndex:e.contentIndex,delta:`
@@ -1 +1 @@
1
- import{a as e}from"./compat-d34y6SaJ.js";import{r as t,s as n}from"./legacy-api-aliases-DZ7QKXPR.js";import{K as r,h as i}from"./account-store-D4Humqb-.js";import"./main-pG2z7nDr.js";import{n as a}from"./pi-transcript-context-M0uAa_Rs.js";import{fetchModels as o,getCatalog as s}from"./openrouter-models-BAx3qulP.js";import{loginIntercepted as c}from"./openrouter-oauth-Dm2bFG2r.js";var l=`openrouter`,u=`https://openrouter.ai/api/v1`,d=`openai-completions`,f=`${l}-openai`,p={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function m(e){return{...e,baseUrl:u,api:d}}function h(e){return{...e??{},...p}}var g=(e,n,r={})=>t(m(e),a(n),{...r,apiKey:i(l)??r.apiKey,headers:h(r.headers)}),_=(e,t,r={})=>n(m(e),a(t),{...r,apiKey:i(l)??r.apiKey,headers:h(r.headers)}),v={id:l,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:s,refreshModels:async()=>{await o()},onOAuthLoginIntercepted:async(e,t,n)=>{await c(e,()=>void 0,n),await o().catch(()=>void 0),t()},onOAuthLogout:async()=>{await r({providerId:l,accessToken:``})}};function y(){e({api:f,stream:g,streamSimple:_})}export{v as config,y as register};
1
+ import{a as e}from"./compat-TaBTsXFP.js";import{r as t,s as n}from"./legacy-api-aliases-BqXqjuwj.js";import{K as r,h as i}from"./account-store-C8ku_32k.js";import"./main-CWx8ZbOh.js";import{n as a}from"./pi-transcript-context-BD-rasES.js";import{fetchModels as o,getCatalog as s}from"./openrouter-models-BAx3qulP.js";import{loginIntercepted as c}from"./openrouter-oauth-CWRFCzx3.js";var l=`openrouter`,u=`https://openrouter.ai/api/v1`,d=`openai-completions`,f=`${l}-openai`,p={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function m(e){return{...e,baseUrl:u,api:d}}function h(e){return{...e??{},...p}}var g=(e,n,r={})=>t(m(e),a(n),{...r,apiKey:i(l)??r.apiKey,headers:h(r.headers)}),_=(e,t,r={})=>n(m(e),a(t),{...r,apiKey:i(l)??r.apiKey,headers:h(r.headers)}),v={id:l,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:s,refreshModels:async()=>{await o()},onOAuthLoginIntercepted:async(e,t,n)=>{await c(e,()=>void 0,n),await o().catch(()=>void 0),t()},onOAuthLogout:async()=>{await r({providerId:l,accessToken:``})}};function y(){e({api:f,stream:g,streamSimple:_})}export{v as config,y as register};
@@ -1 +1 @@
1
- import{_ as e,a as t}from"./account-store-AloIt5Ss.js";import{a as n}from"./compat-CuWVDYYO.js";import{r,s as i}from"./legacy-api-aliases-DcPvcesD.js";import{n as a}from"./pi-transcript-context-C6LXdArv.js";import"./provider-settings-HdIWRUQi.js";import{fetchModels as o,getCatalog as s}from"./openrouter-models-BH7IBYKI.js";import{loginIntercepted as c}from"./openrouter-oauth-Cwnv6aaR.js";const l=`openrouter`,u=`${l}-openai`,d={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function f(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function p(e){return{...e??{},...d}}const m=(e,n,i={})=>r(f(e),a(n),{...i,apiKey:t(l)??i.apiKey,headers:p(i.headers)}),h=(e,n,r={})=>i(f(e),a(n),{...r,apiKey:t(l)??r.apiKey,headers:p(r.headers)}),g={id:l,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:s,refreshModels:async()=>{await o()},onOAuthLoginIntercepted:async(e,t,n)=>{await c(e,()=>void 0,n),await o().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:l,accessToken:``})}};function _(){n({api:u,stream:m,streamSimple:h})}export{g as config,_ as register};
1
+ import{_ as e,a as t}from"./account-store-CLrcVXc0.js";import{a as n}from"./compat-CuWVDYYO.js";import{r,s as i}from"./legacy-api-aliases-DcPvcesD.js";import{n as a}from"./pi-transcript-context-C6LXdArv.js";import"./provider-settings-DiWaVtMa.js";import{fetchModels as o,getCatalog as s}from"./openrouter-models-BH7IBYKI.js";import{loginIntercepted as c}from"./openrouter-oauth-C3NFC0lq.js";const l=`openrouter`,u=`${l}-openai`,d={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function f(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function p(e){return{...e??{},...d}}const m=(e,n,i={})=>r(f(e),a(n),{...i,apiKey:t(l)??i.apiKey,headers:p(i.headers)}),h=(e,n,r={})=>i(f(e),a(n),{...r,apiKey:t(l)??r.apiKey,headers:p(r.headers)}),g={id:l,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:s,refreshModels:async()=>{await o()},onOAuthLoginIntercepted:async(e,t,n)=>{await c(e,()=>void 0,n),await o().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:l,accessToken:``})}};function _(){n({api:u,stream:m,streamSimple:h})}export{g as config,_ as register};
@@ -1 +1 @@
1
- import{a as e}from"./diagnostics-B-5VkVir.js";import{a as t}from"./compat-d34y6SaJ.js";import{r as n,s as r}from"./legacy-api-aliases-DZ7QKXPR.js";import{K as i,h as a}from"./account-store-D4Humqb-.js";import"./main-pG2z7nDr.js";import{n as o}from"./pi-transcript-context-M0uAa_Rs.js";import{FREE_ROUTER_FALLBACK as s,fetchModels as c,getFreeCatalog as l,isModelInFreeCatalog as u}from"./openrouter-models-BAx3qulP.js";import{loginIntercepted as d}from"./openrouter-oauth-Dm2bFG2r.js";var f=`openrouter-free`,p=`https://openrouter.ai/api/v1`,m=`openai-completions`,h=`${f}-openai`,g={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function _(e){return{...e,baseUrl:p,api:m}}function v(e){return{...e??{},...g}}function y(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:h,provider:f,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function b(t){let n=e(),r=Error(`OpenRouter (Free) refused "${t.id}" — it is not in the current free catalog. Choose another free model or refresh the catalog.`);return queueMicrotask(()=>{n.push(y(t,r)),n.end()}),n}var x=(e,t,r={})=>u(e.id)?n(_(e),o(t),{...r,apiKey:a(f)??r.apiKey,headers:v(r.headers)}):b(e),S=(e,t,n={})=>u(e.id)?r(_(e),o(t),{...n,apiKey:a(f)??n.apiKey,headers:v(n.headers)}):b(e),C={id:f,name:`OpenRouter (Free)`,description:`Currently free OpenRouter models that support vision and tools. Catalog refreshes from OpenRouter; paid models are excluded.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:s.id,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:l,refreshModels:async()=>{await c()},onOAuthLoginIntercepted:async(e,t,n)=>{await d(e,()=>void 0,{...n,providerId:f}),await c().catch(()=>void 0),t()},onOAuthLogout:async()=>{await i({providerId:f,accessToken:``})}};function w(){t({api:h,stream:x,streamSimple:S})}export{C as config,w as register};
1
+ import{a as e}from"./diagnostics-B-5VkVir.js";import{a as t}from"./compat-TaBTsXFP.js";import{r as n,s as r}from"./legacy-api-aliases-BqXqjuwj.js";import{K as i,h as a}from"./account-store-C8ku_32k.js";import"./main-CWx8ZbOh.js";import{n as o}from"./pi-transcript-context-BD-rasES.js";import{FREE_ROUTER_FALLBACK as s,fetchModels as c,getFreeCatalog as l,isModelInFreeCatalog as u}from"./openrouter-models-BAx3qulP.js";import{loginIntercepted as d}from"./openrouter-oauth-CWRFCzx3.js";var f=`openrouter-free`,p=`https://openrouter.ai/api/v1`,m=`openai-completions`,h=`${f}-openai`,g={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function _(e){return{...e,baseUrl:p,api:m}}function v(e){return{...e??{},...g}}function y(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:h,provider:f,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function b(t){let n=e(),r=Error(`OpenRouter (Free) refused "${t.id}" — it is not in the current free catalog. Choose another free model or refresh the catalog.`);return queueMicrotask(()=>{n.push(y(t,r)),n.end()}),n}var x=(e,t,r={})=>u(e.id)?n(_(e),o(t),{...r,apiKey:a(f)??r.apiKey,headers:v(r.headers)}):b(e),S=(e,t,n={})=>u(e.id)?r(_(e),o(t),{...n,apiKey:a(f)??n.apiKey,headers:v(n.headers)}):b(e),C={id:f,name:`OpenRouter (Free)`,description:`Currently free OpenRouter models that support vision and tools. Catalog refreshes from OpenRouter; paid models are excluded.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:s.id,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:l,refreshModels:async()=>{await c()},onOAuthLoginIntercepted:async(e,t,n)=>{await d(e,()=>void 0,{...n,providerId:f}),await c().catch(()=>void 0),t()},onOAuthLogout:async()=>{await i({providerId:f,accessToken:``})}};function w(){t({api:h,stream:x,streamSimple:S})}export{C as config,w as register};
@@ -1 +1 @@
1
- import{_ as e,a as t}from"./account-store-AloIt5Ss.js";import{a as n}from"./diagnostics-B-5VkVir.js";import{a as r}from"./compat-CuWVDYYO.js";import{r as i,s as a}from"./legacy-api-aliases-DcPvcesD.js";import{n as o}from"./pi-transcript-context-C6LXdArv.js";import"./provider-settings-HdIWRUQi.js";import{FREE_ROUTER_FALLBACK as s,fetchModels as c,getFreeCatalog as l,isModelInFreeCatalog as u}from"./openrouter-models-BH7IBYKI.js";import{loginIntercepted as d}from"./openrouter-oauth-Cwnv6aaR.js";const f=`openrouter-free`,p=`${f}-openai`,m={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function h(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function g(e){return{...e??{},...m}}function _(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:p,provider:f,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function v(e){let t=n(),r=/* @__PURE__ */ Error(`OpenRouter (Free) refused "${e.id}" — it is not in the current free catalog. Choose another free model or refresh the catalog.`);return queueMicrotask(()=>{t.push(_(e,r)),t.end()}),t}const y=(e,n,r={})=>u(e.id)?i(h(e),o(n),{...r,apiKey:t(f)??r.apiKey,headers:g(r.headers)}):v(e),b=(e,n,r={})=>u(e.id)?a(h(e),o(n),{...r,apiKey:t(f)??r.apiKey,headers:g(r.headers)}):v(e),x={id:f,name:`OpenRouter (Free)`,description:`Currently free OpenRouter models that support vision and tools. Catalog refreshes from OpenRouter; paid models are excluded.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:s.id,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:l,refreshModels:async()=>{await c()},onOAuthLoginIntercepted:async(e,t,n)=>{await d(e,()=>void 0,{...n,providerId:f}),await c().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:f,accessToken:``})}};function S(){r({api:p,stream:y,streamSimple:b})}export{x as config,S as register};
1
+ import{_ as e,a as t}from"./account-store-CLrcVXc0.js";import{a as n}from"./diagnostics-B-5VkVir.js";import{a as r}from"./compat-CuWVDYYO.js";import{r as i,s as a}from"./legacy-api-aliases-DcPvcesD.js";import{n as o}from"./pi-transcript-context-C6LXdArv.js";import"./provider-settings-DiWaVtMa.js";import{FREE_ROUTER_FALLBACK as s,fetchModels as c,getFreeCatalog as l,isModelInFreeCatalog as u}from"./openrouter-models-BH7IBYKI.js";import{loginIntercepted as d}from"./openrouter-oauth-C3NFC0lq.js";const f=`openrouter-free`,p=`${f}-openai`,m={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function h(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function g(e){return{...e??{},...m}}function _(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:p,provider:f,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:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function v(e){let t=n(),r=/* @__PURE__ */ Error(`OpenRouter (Free) refused "${e.id}" — it is not in the current free catalog. Choose another free model or refresh the catalog.`);return queueMicrotask(()=>{t.push(_(e,r)),t.end()}),t}const y=(e,n,r={})=>u(e.id)?i(h(e),o(n),{...r,apiKey:t(f)??r.apiKey,headers:g(r.headers)}):v(e),b=(e,n,r={})=>u(e.id)?a(h(e),o(n),{...r,apiKey:t(f)??r.apiKey,headers:g(r.headers)}):v(e),x={id:f,name:`OpenRouter (Free)`,description:`Currently free OpenRouter models that support vision and tools. Catalog refreshes from OpenRouter; paid models are excluded.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:s.id,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:l,refreshModels:async()=>{await c()},onOAuthLoginIntercepted:async(e,t,n)=>{await d(e,()=>void 0,{...n,providerId:f}),await c().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:f,accessToken:``})}};function S(){r({api:p,stream:y,streamSimple:b})}export{x as config,S as register};
@@ -1 +1 @@
1
- import{_ as e}from"./account-store-AloIt5Ss.js";import"./provider-settings-HdIWRUQi.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";const r=`http://127.0.0.1:3000/callback`,i=`http://127.0.0.1:3000/*`;function a(e,t){let n=new URL(`https://openrouter.ai/auth`);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function o(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function s(e,t,n=fetch){let r=await n(`https://openrouter.ai/api/v1/auth/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let i;try{i=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let a=i&&typeof i==`object`&&typeof i.key==`string`?i.key.trim():``;if(!a)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return a}async function c(c,l,u){let d=u?.providerId??`openrouter`,f=t(),p=await n(f),m=await s(o(await c({authorizeUrl:a(r,p),redirectUriPattern:i,onCapture:`close`})),f);await e({providerId:d,accessToken:m,tokenExpiresAt:2**53-1,baseUrl:`https://openrouter.ai/api/v1`}),l()}export{r as OPENROUTER_CALLBACK_URL,i as OPENROUTER_REDIRECT_URI_PATTERN,a as buildAuthorizeUrl,n as deriveCodeChallenge,s as exchangeCodeForKey,t as generateCodeVerifier,c as loginIntercepted,o as parseCallbackCode};
1
+ import{_ as e}from"./account-store-CLrcVXc0.js";import"./provider-settings-DiWaVtMa.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";const r=`http://127.0.0.1:3000/callback`,i=`http://127.0.0.1:3000/*`;function a(e,t){let n=new URL(`https://openrouter.ai/auth`);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function o(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function s(e,t,n=fetch){let r=await n(`https://openrouter.ai/api/v1/auth/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let i;try{i=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let a=i&&typeof i==`object`&&typeof i.key==`string`?i.key.trim():``;if(!a)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return a}async function c(c,l,u){let d=u?.providerId??`openrouter`,f=t(),p=await n(f),m=await s(o(await c({authorizeUrl:a(r,p),redirectUriPattern:i,onCapture:`close`})),f);await e({providerId:d,accessToken:m,tokenExpiresAt:2**53-1,baseUrl:`https://openrouter.ai/api/v1`}),l()}export{r as OPENROUTER_CALLBACK_URL,i as OPENROUTER_REDIRECT_URI_PATTERN,a as buildAuthorizeUrl,n as deriveCodeChallenge,s as exchangeCodeForKey,t as generateCodeVerifier,c as loginIntercepted,o as parseCallbackCode};
@@ -1 +1 @@
1
- import{K as e}from"./account-store-D4Humqb-.js";import"./main-pG2z7nDr.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";var r=`https://openrouter.ai/auth`,i=`https://openrouter.ai/api/v1/auth/keys`,a=`https://openrouter.ai/api/v1`,o=`http://127.0.0.1:3000/callback`,s=`http://127.0.0.1:3000/*`;function c(e,t){let n=new URL(r);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function l(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function u(e,t,n=fetch){let r=await n(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let a;try{a=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let o=a&&typeof a==`object`&&typeof a.key==`string`?a.key.trim():``;if(!o)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return o}async function d(r,i,d){let f=d?.providerId??`openrouter`,p=t(),m=await u(l(await r({authorizeUrl:c(o,await n(p)),redirectUriPattern:s,onCapture:`close`})),p);await e({providerId:f,accessToken:m,tokenExpiresAt:2**53-1,baseUrl:a}),i()}export{o as OPENROUTER_CALLBACK_URL,s as OPENROUTER_REDIRECT_URI_PATTERN,c as buildAuthorizeUrl,n as deriveCodeChallenge,u as exchangeCodeForKey,t as generateCodeVerifier,d as loginIntercepted,l as parseCallbackCode};
1
+ import{K as e}from"./account-store-C8ku_32k.js";import"./main-CWx8ZbOh.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";var r=`https://openrouter.ai/auth`,i=`https://openrouter.ai/api/v1/auth/keys`,a=`https://openrouter.ai/api/v1`,o=`http://127.0.0.1:3000/callback`,s=`http://127.0.0.1:3000/*`;function c(e,t){let n=new URL(r);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function l(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function u(e,t,n=fetch){let r=await n(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let a;try{a=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let o=a&&typeof a==`object`&&typeof a.key==`string`?a.key.trim():``;if(!o)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return o}async function d(r,i,d){let f=d?.providerId??`openrouter`,p=t(),m=await u(l(await r({authorizeUrl:c(o,await n(p)),redirectUriPattern:s,onCapture:`close`})),p);await e({providerId:f,accessToken:m,tokenExpiresAt:2**53-1,baseUrl:a}),i()}export{o as OPENROUTER_CALLBACK_URL,s as OPENROUTER_REDIRECT_URI_PATTERN,c as buildAuthorizeUrl,n as deriveCodeChallenge,u as exchangeCodeForKey,t as generateCodeVerifier,d as loginIntercepted,l as parseCallbackCode};
@@ -1,2 +1,2 @@
1
- import{Async as e,FileSystem as t,InMemory as n,IndexFS as r,Inode as i,Sync as a,a as o,d as s,f as c,h as l,i as u,isFile as d,m as f,n as p,o as m,p as h,r as g,resolveMountConfig as _,s as v,t as y,u as b,v as x}from"./dist-C8GTDH_7.js";import{i as S,r as C}from"./fs-CQpIxK2e.js";function w(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function T(e,t){if(e instanceof f)return e;let n=e instanceof DOMException?h[w(e)]:h.EIO,r=new f(n,e.message);return r.stack=e.stack,Error.captureStackTrace?.(r,T),r.cause=e.cause,r}function E(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function D(e){return e instanceof ArrayBuffer?e.resizable:E(e)?e.growable:!1}function O(e,t){return e.kind==t}var k=class extends e(r){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=u(e,n);this._handles.set(t,r),O(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}c(`webaccessfs: no metadata file specified, generating new metadata`);for(let[e,t]of this._handles){let n=this.index._alloc();if(O(t,`file`)){let{lastModified:r,size:a}=await t.getFile();this.index.set(e,new i({mode:420|v,size:a,mtimeMs:r,ino:n,data:n+1,nlink:1}));continue}if(!O(t,`directory`))throw l(`EIO`,`Invalid handle`);this.index.set(e,new i({mode:511|o,size:0,ino:n,data:n+1,nlink:1}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=n.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),a=new i({ino:r,data:r+1,nlink:1});if(O(n,`file`)){let e=await n.getFile();a.update({mode:420|v,size:e.size,mtimeMs:e.lastModified})}else a.update({mode:o|511,size:0});return this.index.set(e,a),a}}async touch(e,t){let n=this.index.get(e);if(!n)throw l(`ENOENT`);if(typeof t.size!=`number`||!d(n))return await super.touch(e,t);let r=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!r)return await super.touch(e,t);let{size:i}=await r.getFile();if(i==t.size)return await super.touch(e,t);let a=await r.createWritable({keepExistingData:!!t.size});try{await a.truncate(t.size)}catch{await a.write({type:`truncate`,size:t.size})}await a.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,g(e));for(let t of this._handles.keys())g(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(p(e),{recursive:!0}).catch(t=>{let n=T(t,e);n.code!=`ENOENT`&&x(n)})}removeSync(){throw s(l(`ENOSYS`))}async read(e,t,n,r){if(r<=n)return;let i=await this.get(`file`,e),a=r-n,o=()=>b(l(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${a} bytes at ${n}.`,`path: ${e}`].join(`
1
+ import{Async as e,FileSystem as t,InMemory as n,IndexFS as r,Inode as i,Sync as a,a as o,d as s,f as c,h as l,i as u,isFile as d,m as f,n as p,o as m,p as h,r as g,resolveMountConfig as _,s as v,t as y,u as b,v as x}from"./dist-C8GTDH_7.js";import{i as S,r as C}from"./fs-DSnZb1DK.js";function w(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function T(e,t){if(e instanceof f)return e;let n=e instanceof DOMException?h[w(e)]:h.EIO,r=new f(n,e.message);return r.stack=e.stack,Error.captureStackTrace?.(r,T),r.cause=e.cause,r}function E(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function D(e){return e instanceof ArrayBuffer?e.resizable:E(e)?e.growable:!1}function O(e,t){return e.kind==t}var k=class extends e(r){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=u(e,n);this._handles.set(t,r),O(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}c(`webaccessfs: no metadata file specified, generating new metadata`);for(let[e,t]of this._handles){let n=this.index._alloc();if(O(t,`file`)){let{lastModified:r,size:a}=await t.getFile();this.index.set(e,new i({mode:420|v,size:a,mtimeMs:r,ino:n,data:n+1,nlink:1}));continue}if(!O(t,`directory`))throw l(`EIO`,`Invalid handle`);this.index.set(e,new i({mode:511|o,size:0,ino:n,data:n+1,nlink:1}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=n.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),a=new i({ino:r,data:r+1,nlink:1});if(O(n,`file`)){let e=await n.getFile();a.update({mode:420|v,size:e.size,mtimeMs:e.lastModified})}else a.update({mode:o|511,size:0});return this.index.set(e,a),a}}async touch(e,t){let n=this.index.get(e);if(!n)throw l(`ENOENT`);if(typeof t.size!=`number`||!d(n))return await super.touch(e,t);let r=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!r)return await super.touch(e,t);let{size:i}=await r.getFile();if(i==t.size)return await super.touch(e,t);let a=await r.createWritable({keepExistingData:!!t.size});try{await a.truncate(t.size)}catch{await a.write({type:`truncate`,size:t.size})}await a.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,g(e));for(let t of this._handles.keys())g(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(p(e),{recursive:!0}).catch(t=>{let n=T(t,e);n.code!=`ENOENT`&&x(n)})}removeSync(){throw s(l(`ENOSYS`))}async read(e,t,n,r){if(r<=n)return;let i=await this.get(`file`,e),a=r-n,o=()=>b(l(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${a} bytes at ${n}.`,`path: ${e}`].join(`
2
2
  `+` `.repeat(24))));if(typeof i.createSyncAccessHandle==`function`){let e;try{e=await i.createSyncAccessHandle();let r=t.subarray(0,a);if(e.read(r,{at:n})<a)throw o();return}catch(e){if(e&&e.code===`EIO`)throw e}finally{e?.close()}}let s=e=>e instanceof DOMException&&e.name===`NotReadableError`,c=e=>new Promise(t=>setTimeout(t,25*(e+1))),u,d=!1;for(let e=0;;e++){let t;try{t=await i.getFile()}catch(t){if(!s(t)||e>=2)throw t;await c(e);continue}try{d=typeof t.slice==`function`,u=await(d?t.slice(n,r):t).arrayBuffer();break}catch(t){if(!s(t)||e>=2)throw t;await c(e)}}if(!d&&u.byteLength<r||d&&u.byteLength<a)throw o();t.set(d?new Uint8Array(u):new Uint8Array(u,n,a))}async write(e,t,n){if(D(t.buffer)||E(t.buffer)){let e=new Uint8Array(new ArrayBuffer(t.byteLength),t.byteOffset,t.byteLength);e.set(t),t=e}let r=this.index.get(e);if(!r)throw l(`ENOENT`);let i=(r.mode&m)==o,a;try{a=await this.get(i?`directory`:`file`,e)}catch{a=await(await this.get(`directory`,g(e)))[i?`getDirectoryHandle`:`getFileHandle`](p(e),{create:!0}).catch(t=>x(T(t,e))),this.disableHandleCache||this._handles.set(e,a)}if(i)return;if(O(a,`directory`)){s(l(`EIO`,`Mismatch in entry kind on write`));return}if(typeof a.createSyncAccessHandle==`function`){let i;try{i=await a.createSyncAccessHandle()}catch{i=void 0}if(i){try{let r=i.write(t,{at:n||0});if(r<t.byteLength)throw l(`EIO`,`short write: ${r} of ${t.byteLength} bytes at ${n||0} to ${e}`);i.flush()}finally{i.close()}let{size:o,lastModified:s}=await a.getFile();r.update({size:o,mtimeMs:s}),this.index.set(e,r);return}}let c=await a.createWritable({keepExistingData:!0});if(n)try{await c.seek(n)}catch{await c.write({type:`seek`,position:n})}await c.write(t),await c.close();let{size:u,lastModified:d}=await a.getFile();r.update({size:u,mtimeMs:d}),this.index.set(e,r)}async writeFile(e,t){return this.write(e,t,0)}async _create(e,t){let n=await(await this.get(`directory`,g(e))).getFileHandle(p(e),{create:!0}).catch(t=>x(T(t,e)));this.disableHandleCache||this._handles.set(e,n)}async _mkdir(e){let t=await(await this.get(`directory`,g(e))).getDirectoryHandle(p(e),{create:!0}).catch(t=>x(T(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let n=this._handles.get(t);if(!this.disableHandleCache&&n){if(e&&!O(n,e))throw l(e==`directory`?`ENOTDIR`:`EISDIR`);return n}if(t==`/`)return this.root;let r=t.slice(1).split(`/`),i=this.root;for(let e=0;e<r.length-1;++e)i=await i.getDirectoryHandle(r[e]).catch(e=>x(e.name==`TypeMismatchError`?l(`ENOTDIR`):T(e,t)));try{let n=await i[e==`file`?`getFileHandle`:`getDirectoryHandle`](r.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(n){if(n.name!=`TypeMismatchError`)throw T(n,t);if(e===null){let e=await i.getFileHandle(r.at(-1)).catch(e=>x(T(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}throw l(e==`file`?`EISDIR`:`ENOTDIR`)}}},A={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1},maxOpenFilesForCopy:{type:`number`,required:!1}},async create(e){let t=new k(e.handle,e.disableHandleCache);return t._crossCopySemaphore=new y(e.maxOpenFilesForCopy??128),await t._loadMetadata(e.metadata),t}};a(t);var j=16;async function M({handle:e,dbName:t,asyncCache:n,onRepairProgress:r,withWriteLock:i}){let a=()=>i(()=>C(e,r));try{let e=await a();e?.changed&&console.warn(`[virtual-fs] repaired metadata sidecar before mount (#2146)`,{dbName:t,kindFixed:e.kindFixed,sizesFixed:e.sizesFixed,dropped:e.dropped,inosReassigned:e.inosReassigned,nlinksFixed:e.nlinksFixed,selfEntryDropped:e.selfEntryDropped})}catch{}return S(()=>_({backend:A,handle:e,metadata:`/.metadata.json`,maxOpenFilesForCopy:j,disableAsyncCache:n===!1}),a,e=>console.warn(`[virtual-fs] repaired poisoned metadata sidecar; retrying mount`,{dbName:t,kindFixed:e.kindFixed,sizesFixed:e.sizesFixed,dropped:e.dropped,nlinksFixed:e.nlinksFixed,selfEntryDropped:e.selfEntryDropped}))}export{M as resolveOpfsMount};
@@ -1 +1 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./float-topology-PI5i_WsZ.js";import{n}from"./types-DSxCdZw6.js";var r=e(`sudo-panel`),i=typeof globalThis.confirm==`function`?globalThis.confirm.bind(globalThis):void 0,a=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function o(){return globalThis.document?.visibilityState===`hidden`}function s(e,t={}){let s=t.confirm??i,c=t.prompt??a;if(!s)return r.warn(`no native confirm available in this realm — denying`),n();let l=t.isHidden??o,u=e.requester?`Requested by: ${e.requester}\n\n`:``,d=e.reason?`\n\nReason given: ${e.reason}`:``,f=`Approve ${e.kind}:\n\n${u}${e.detail}${d}\n\nOK = allow · Cancel = deny`,p=l();if(!s(f))return p||l()?(r.warn(`native confirm returned false in a hidden document — unavailable, not refused`),n()):{decision:`deny`};let m=e.suggestedPattern?.trim()||e.detail.trim();if(!s(`Always allow actions matching:\n\n${m}\n\nOK = always · Cancel = just this once`))return{decision:`allow`};let h=c?.(`Edit the "Always" allow pattern:`,m);return{decision:`always`,pattern:h&&h.trim().length>0?h.trim():m}}function c(e={}){let t=globalThis.chrome?.runtime?.onMessage;return!t||typeof t.addListener!=`function`?!1:(t.addListener((t,i,a)=>{if(!l(t))return;let o=t.payload.request;try{a({ok:!0,decision:s(o,e)})}catch(e){r.warn(`panel responder threw — denying`,{error:e instanceof Error?e.message:String(e)}),a({ok:!1,decision:n(),error:`panel responder error`})}return!1}),!0)}function l(e){if(!e||typeof e!=`object`)return!1;let t=e;if(t.source!==`offscreen`)return!1;let n=t.payload;if(!n||n.type!==`sudo-request`)return!1;let r=n.request;return!!r&&typeof r.kind==`string`&&typeof r.detail==`string`}var u=e(`sudo:page`),d=null;function f(e){d=e}async function p(e){let t=d;if(!t)return null;let r=!1;try{r=t.shouldDelegate()}catch(e){u.warn(`tray delegate probe threw — treating as not delegable`,{error:e instanceof Error?e.message:String(e)})}if(!r)return null;try{return{decision:await t.requestApproval(e),handled:!0}}catch(e){return u.warn(`tray-delegated sudo approval threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:n(),handled:!0}}}async function m(e,t){try{return{decision:t(e),handled:!0}}catch(e){return u.warn(`in-page sudo prompt threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:n(),handled:!0}}}async function h(e,n=`resolve`,r={}){let i=await p(e);if(i)return i;let a=r.hasLocalNodeServer??t;return n===`tray-first`&&a()?{decision:{decision:`deny`},handled:!1}:m(e,r.nativeResolve??s)}export{s as n,h as resolveSudoApprovalInPage,f as setSudoTrayDelegate,c as t};
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./float-topology-DJxhvO9u.js";import{n}from"./types-DSxCdZw6.js";var r=e(`sudo-panel`),i=typeof globalThis.confirm==`function`?globalThis.confirm.bind(globalThis):void 0,a=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function o(){return globalThis.document?.visibilityState===`hidden`}function s(e,t={}){let s=t.confirm??i,c=t.prompt??a;if(!s)return r.warn(`no native confirm available in this realm — denying`),n();let l=t.isHidden??o,u=e.requester?`Requested by: ${e.requester}\n\n`:``,d=e.reason?`\n\nReason given: ${e.reason}`:``,f=`Approve ${e.kind}:\n\n${u}${e.detail}${d}\n\nOK = allow · Cancel = deny`,p=l();if(!s(f))return p||l()?(r.warn(`native confirm returned false in a hidden document — unavailable, not refused`),n()):{decision:`deny`};let m=e.suggestedPattern?.trim()||e.detail.trim();if(!s(`Always allow actions matching:\n\n${m}\n\nOK = always · Cancel = just this once`))return{decision:`allow`};let h=c?.(`Edit the "Always" allow pattern:`,m);return{decision:`always`,pattern:h&&h.trim().length>0?h.trim():m}}function c(e={}){let t=globalThis.chrome?.runtime?.onMessage;return!t||typeof t.addListener!=`function`?!1:(t.addListener((t,i,a)=>{if(!l(t))return;let o=t.payload.request;try{a({ok:!0,decision:s(o,e)})}catch(e){r.warn(`panel responder threw — denying`,{error:e instanceof Error?e.message:String(e)}),a({ok:!1,decision:n(),error:`panel responder error`})}return!1}),!0)}function l(e){if(!e||typeof e!=`object`)return!1;let t=e;if(t.source!==`offscreen`)return!1;let n=t.payload;if(!n||n.type!==`sudo-request`)return!1;let r=n.request;return!!r&&typeof r.kind==`string`&&typeof r.detail==`string`}var u=e(`sudo:page`),d=null;function f(e){d=e}async function p(e){let t=d;if(!t)return null;let r=!1;try{r=t.shouldDelegate()}catch(e){u.warn(`tray delegate probe threw — treating as not delegable`,{error:e instanceof Error?e.message:String(e)})}if(!r)return null;try{return{decision:await t.requestApproval(e),handled:!0}}catch(e){return u.warn(`tray-delegated sudo approval threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:n(),handled:!0}}}async function m(e,t){try{return{decision:t(e),handled:!0}}catch(e){return u.warn(`in-page sudo prompt threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:n(),handled:!0}}}async function h(e,n=`resolve`,r={}){let i=await p(e);if(i)return i;let a=r.hasLocalNodeServer??t;return n===`tray-first`&&a()?{decision:{decision:`deny`},handled:!1}:m(e,r.nativeResolve??s)}export{s as n,h as resolveSudoApprovalInPage,f as setSudoTrayDelegate,c as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-D734Xx8G.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-B-gpiOVR.js","assets/logger-DDBAeTLF.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/mount-bridge-client-DTSknauQ.js","assets/types-D8gIX-W-.js","assets/page-approval-service-BV4pp4cE.js","assets/float-topology-PI5i_WsZ.js","assets/proxied-fetch-Co-YYDT9.js","assets/preload-helper-DjzSQ1t3.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/types-DSxCdZw6.js","assets/esptool-operations-CndxwE1S.js","assets/rom-eeWiO07Z.js","assets/usb-claim-broker-Dacw2Z3M.js","assets/usb-device-registry--JwKRTYp.js","assets/providers-BPtyhTCJ.js","assets/speak-DYYfW_FH.js","assets/speech-assets-bridge-DtbOauCq.js","assets/transformers-env-Fm5j4giD.js","assets/wc-shell-RF_bfAGN.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-D4Humqb-.js","assets/core-DfJhnyZb.js","assets/compat-d34y6SaJ.js","assets/models-K_BYbYJy.js","assets/diagnostics-B-5VkVir.js","assets/env-api-keys-Ds64PXJ4.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-C88RzzVZ.js","assets/azure-openai-config-D2vLg_Tc.js","assets/utf16-clip-CGL7omVm.js","assets/feature-flags-Lh2dvGiT.js","assets/secret-topology-B-7q9k0Q.js","assets/image-markers-4eaAm9QS.js","assets/tool-ui-eSQ1g2I1.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/renamed-providers-DDe6My59.js","assets/same-file-identity-OexpsaSD.js","assets/telemetry-BqfutULb.js","assets/icons-BUdZEBvI.js","assets/wc-shell-WkeczD9x.css","assets/shared-DSEuryGJ.js","assets/hear-LEawuxbU.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-nBcuStI7.js","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/proxied-fetch-raw-C_Y--MLW.js","assets/proxied-fetch-raw-types-BapqdEuh.js","assets/proxied-fetch-raw-port-Dv7XYtb4.js","assets/theme-engine-ZV7CeqWw.js","assets/tab-D9i-XOmT.js","assets/slicc-app-url-BKHBBuTR.js","assets/scale-B8PGb3fG.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-DjzSQ1t3.js";import{c as t,o as n,s as r}from"./feature-flags-Lh2dvGiT.js";import{Y as i,f as a}from"./account-store-D4Humqb-.js";import"./proxied-fetch-Co-YYDT9.js";import{s as o,t as s}from"./api-endpoint-DuEQRZ4g.js";import{t as c}from"./proxied-fetch-raw-types-BapqdEuh.js";import"./main-pG2z7nDr.js";import{n as l,r as u}from"./hid-device-registry-B2R-0rNt.js";import{a as d,i as f}from"./serial-port-registry-CCqklAEr.js";import{_ as p,a as m,c as ee,d as te,f as ne,g as re,h as ie,i as ae,l as oe,m as se,n as ce,o as le,p as ue,r as de,s as fe,t as pe,u as me,v as he}from"./hid-operations-C97SZtrY.js";import{a as ge,i as _e}from"./usb-device-registry--JwKRTYp.js";import{a as ve,c as ye,d as be,f as xe,g as Se,h as Ce,i 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}from"./usb-operations-Ccb6x34d.js";function T(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-D734Xx8G.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6]));return{response:await r(t,n)}}}}function E(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-DTSknauQ.js`);return{callMountBridge:e}},__vite__mapDeps([7,2,3,4,5,6,8]));return{response:await r(t,n)}}}}function D(){return{"sudo-request":async({request:t,mode:n})=>{let{resolveSudoApprovalInPage:r}=await e(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-BV4pp4cE.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([9,3,10,11,1,12,13,14,4,5,15]));return r(t,n??`resolve`)}}}function O(){return{"secret-request":async t=>{let{getSecretRequestSurface:n}=await e(async()=>{let{getSecretRequestSurface:e}=await import(`./secret-request-registry-DrOMKR1H.js`);return{getSecretRequestSurface:e}},[]),r=n();return r?r(t):{stored:!1,reason:`unavailable`}}}}function k(){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-Co-YYDT9.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([11,1,12,13,14,4,5])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function A(){return navigator.userActivation?.isActive??!0}var we={usb:`use a USB device`,hid:`use a HID device`,serial:`use a serial port`,screenshare:`share a screen`};async function j(e,t,n){let r=e();if(!r)throw Error(`${t} request: the chooser needs a click, and no permission prompt is open`);let i=await r.prompt({kinds:[t],description:`A command in the terminal asks to ${we[t]}.`,requestOptions:{[t]:n}}),a=i.status===`granted`?i.grants.find(e=>e.kind===t):void 0;if(!a){let e=i.message?`: ${i.message}`:``;throw Error(`${t} request: ${i.reason??i.status}${e}`)}return a}function Te(e,t){return A()?e:{getDevices:()=>e.getDevices(),requestDevice:async({filters:e})=>(await j(t,`usb`,{filters:e})).device}}function Ee(e,t){return A()?e:{getDevices:()=>e.getDevices(),requestDevice:async({filters:e})=>(await j(t,`hid`,{filters:e})).devices}}function De(e,t){return A()?e:{getPorts:()=>e.getPorts(),requestPort:async e=>(await j(t,`serial`,{filters:e?.filters??[]})).port}}function Oe(e){return A()?e=>navigator.mediaDevices.getDisplayMedia(e):async t=>(await j(e,`screenshare`,{constraints:t})).stream}function ke(e){Ne(e.emitEvent);let t=()=>e.getPermissionsSurface?.()??null;return{"usb-list":async()=>({devices:await g(M(),F())}),"usb-request":async({filters:e})=>({device:await xe(M(),Te(F(),t),e)}),"usb-device-info":({handle:e})=>({device:S(M(),e)}),"usb-open":async({handle:e})=>(await w(M(),e),{done:!0}),"usb-close":async({handle:e,owner:t,force:n})=>(await h(M(),e,{owner:t,force:n}),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await _(M(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t,owner:n,wait:r})=>(await v(M(),e,t,{owner:n,wait:r}),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t,owner:n})=>(await be(M(),e,t,{owner:n}),{done:!0}),"usb-cancel-claim-wait":async({handle:e,interfaceNumber:t,owner:n})=>(await C(M(),e,t,n??`usb`),{done:!0}),"usb-drop-owner":async({owner:e})=>(await ye(M(),e),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>ve(M(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>y(M(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>Ce(M(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>Se(M(),e,t,n),"usb-reset":async({handle:e,owner:t,force:n})=>(await b(M(),e,{owner:t,force:n}),{done:!0}),"usb-clear-halt":async({handle:e,direction:t,endpointNumber:n})=>(await x(M(),e,t,n),{done:!0})}}function Ae(e,t){let n=()=>e.getPermissionsSurface?.()??null;return{"hid-list":async()=>({devices:await de(I(),L())}),"hid-request":async({filters:e})=>({devices:await le(I(),Ee(L(),n),e)}),"hid-device-info":({handle:e})=>({device:ce(I(),e)}),"hid-open":async({handle:e})=>(await ae(I(),e),{done:!0}),"hid-close":async({handle:e})=>(await pe(I(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await ee(I(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await fe(I(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>m(I(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await oe(I(),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 je(e={}){let t=()=>e.getPermissionsSurface?.()??null;return{"serial-list":async()=>({devices:await ue(R(),z())}),"serial-request":async({filters:e})=>({device:await re(R(),De(z(),t),e)}),"serial-device-info":({handle:e})=>({device:te(R(),e)}),"serial-open":async({handle:e,options:t})=>(await se(R(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await me(R(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await ie(R(),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 he(R(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await ne(R(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await p(R(),e,t),{done:!0})}}function Me(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolChipInfo(R(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolReadMac(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolEraseFlash(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolFlash(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolReadFlash(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolReadReg(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolFlashId(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolEraseRegion(R(),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-CndxwE1S.js`),__vite__mapDeps([16,1,12,17]))).esptoolRun(R(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function M(){return ge()}var N=null,P;function Ne(t){P=t,!N&&t&&e(()=>import(`./usb-claim-broker-Dacw2Z3M.js`).then(e=>{N||=e.addClaimListener(M(),e=>{P?.(`usb-claim-event`,e)})}),__vite__mapDeps([18,19,1]))}function F(){let e=_e();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function I(){return u()}function L(){let e=l();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function R(){return d()}function z(){let e=f();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}function Pe(t){return{"tray-reset":async()=>{if(!t.resetTray)throw Error(`host reset: no active tray session to reset`);return await t.resetTray()},"tray-webhook-rotate":async()=>{if(!t.rotateWebhook)throw Error(`webhook rotate: no active leader tray`);return await t.rotateWebhook()},"tray-webhook-revoke":async e=>{if(!t.revokeWebhook)throw Error(`webhook delete: no active leader tray`);return await t.revokeWebhook(e.webhookId),{ok:!0}},"tray-open-preview":async e=>{if(!t.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await t.mintPreview(e)},"tray-revoke-preview":async e=>{if(!t.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await t.revokePreview(e)},"tray-list-previews":async()=>{if(!t.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await t.listPreviews()},"tray-mint-biscotto":async e=>{if(!t.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await t.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!t.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await t.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!t.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await t.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!t.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return t.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!t.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return t.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:n})=>{if(!t.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await t.leaveTray({workerBaseUrl:e,requestId:n})},"tray-join":async({joinUrl:e,requestId:n})=>{if(!t.joinTray)throw Error(`host join: tray join is not available in this environment`);return await t.joinTray({joinUrl:e,requestId:n})},"cherry-emit":async({runtimeId:e,name:n,detail:r})=>{if(!t.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:t.emitCherrySliccEvent(e,n,r)}},"tray-exec":async e=>{if(!t.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await t.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(t.signalRemoteExec?.({execToken:e}),{ok:!0}),"tray-computer-native":async e=>{if(!t.computerNative)throw Error(`computer native: no active leader tray in this environment`);return await t.computerNative(e)},"oauth-extras-set":({providerId:e,domains:t})=>(i(e,t),{storeAfter:a()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-BPtyhTCJ.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([20,1,12])),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})}}async function Fe(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return B(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await Ie(n,e);return t===void 0?null:B(t)}return B(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function B(e){return new Promise(t=>{let n=!1,r=null,i=()=>{n||(n=!0,window.removeEventListener(`message`,a),clearTimeout(c),r&&clearInterval(r))},a=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(i(),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`,a),r=setInterval(async()=>{if(!n)try{let e=await fetch(o(`/api/oauth-result`),{headers:s()});if(e.status===204||!e.ok)return;let r=await e.json();if(n)return;if(i(),r.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,r.error),t(null);return}t(r.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{i();try{e?.close()}catch{}t(null)},12e4)})}async function Ie(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}async function Le(t,n){let{captureDisplayMedia:r,sessionCaptureRequest:i}=await e(async()=>{let{captureDisplayMedia:e,sessionCaptureRequest:t}=await import(`./screencapture-media-BxRLHqjA.js`);return{captureDisplayMedia:e,sessionCaptureRequest:t}},[]),{mimeType:a,quality:o,mode:s,durationMs:c,audio:l,session:u,handle:d,maxWidth:f}=n,p=await r(s===`session`?i({session:u,handle:d,mimeType:a,quality:o,durationMs:c,maxWidth:f}):s===`video`?{mode:`video`,mimeType:a,durationMs:c??5e3,audio:!!l}:{mode:`image`,mimeType:a,quality:o},Oe(t));return{bytes:p.bytes.buffer.slice(p.bytes.byteOffset,p.bytes.byteOffset+p.bytes.byteLength),width:p.width,height:p.height,mimeType:p.mimeType,nativeWidth:p.nativeWidth,nativeHeight:p.nativeHeight,...p.durationMs===void 0?{}:{durationMs:p.durationMs},...p.handle===void 0?{}:{handle:p.handle}}}function Re(t={}){let n=()=>t.getPermissionsSurface?.()??null;return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:e=>Le(n,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-DYYfW_FH.js`);return{speak:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));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-DYYfW_FH.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51])),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(W)]};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(W)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-DYYfW_FH.js`);return{kokoroStatus:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-DYYfW_FH.js`);return{kokoroWarmup:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));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-DYYfW_FH.js`);return{synthesizeToWav:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51])),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 ze(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 G(),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 Ge(r),await G(),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})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await Fe(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await Ue(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 Be(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-LEawuxbU.js`);return{hearCapture:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-LEawuxbU.js`);return{hearTranscribe:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-LEawuxbU.js`);return{hearStatus:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-LEawuxbU.js`);return{hearWarmup:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return t()}}}var V=null,H;function Ve(t){H=t,!V&&t&&e(()=>import(`./screencapture-media-BxRLHqjA.js`).then(e=>{V||=e.displaySessions.onEnded(t=>{H?.(e.SCREENCAPTURE_SESSION_ENDED_CHANNEL,{handle:t})})}),[])}var He=1500;async function Ue(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 We({wantVideo:t,videoDeviceId:t?await U(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await U(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??He;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 U(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 We(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}}:!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()})}}function W(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function Ge(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 G(e=3e5){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 Ke(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function qe(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 Je(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function Ye(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,skipIfGranted:Je(n.kinds,n.skipIfGranted)});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=M().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=I().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=R().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-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([55,3,56,5])),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})}return{grants:a}}}}var K=3e5,Xe=class{pending=null;waiter=null;stream=new ReadableStream({pull:async e=>{for(;!this.pending;)await new Promise(e=>{this.waiter=e});let{chunk:t,taken:n}=this.pending;this.pending=null,t?e.enqueue(t):e.close(),n()}},{highWaterMark:0});write(e){return new Promise(t=>{this.pending={chunk:e,taken:t};let n=this.waiter;this.waiter=null,n?.()})}},q=new Map;function J(e){return e instanceof c?{ok:!1,code:e.code,status:e.status,error:e.message}:{ok:!1,code:`bridge`,status:502,error:e instanceof Error?e.message:String(e)}}var Y=()=>({ok:!1,code:`bridge`,status:502,error:`raw fetch: unknown or finished session`});function X(e){let t=q.get(e);t&&(q.delete(e),clearTimeout(t.idle),t.abort.abort(),t.reader?.cancel().catch(()=>void 0))}function Z(e){let t=q.get(e);if(t)return clearTimeout(t.idle),t.idle=setTimeout(()=>X(e),K),t}function Ze(e){return e.response.then(()=>new Promise(()=>{}))}function Qe(){return{"raw-fetch-probe":async t=>{let{getRawFetchCapabilities:n}=await e(async()=>{let{getRawFetchCapabilities:e}=await import(`./proxied-fetch-raw-C_Y--MLW.js`);return{getRawFetchCapabilities:e}},__vite__mapDeps([57,12,14,4,5,58,59,13]));return n()},"raw-fetch-open":async({url:t,method:n,headers:r,hasBody:i,bodyLength:a})=>{let[{extensionPortConnector:o},{rawFetchViaPort:s}]=await Promise.all([e(()=>import(`./proxied-fetch-raw-C_Y--MLW.js`),__vite__mapDeps([57,12,14,4,5,58,59,13])),e(()=>import(`./proxied-fetch-raw-port-Dv7XYtb4.js`),__vite__mapDeps([59,13,58,4,5]))]),c=o();if(!c)throw Error(`raw fetch: no extension Port in this realm`);let l=crypto.randomUUID(),u=i?new Xe:null,d=new AbortController,f=s(c,t,{method:n,headers:r,body:u?.stream,bodyLength:a,signal:d.signal});return f.catch(()=>void 0),q.set(l,{upload:u,response:f,reader:null,abort:d,idle:setTimeout(()=>X(l),K)}),{id:l}},"raw-fetch-write":async({id:e,chunk:t})=>{let n=Z(e);if(!n?.upload)return Y();try{return await Promise.race([n.upload.write(t),Ze(n)]),{ok:!0}}catch(t){return X(e),J(t)}},"raw-fetch-head":async({id:e})=>{let t=Z(e);if(!t)return Y();try{let{body:n,...r}=await t.response;return t.reader=n?.getReader()??null,n||X(e),{ok:!0,head:r,hasBody:n!==null}}catch(t){return X(e),J(t)}},"raw-fetch-read":async({id:e})=>{let t=Z(e);if(!t?.reader)return Y();try{let{done:n,value:r}=await t.reader.read();return n&&X(e),{ok:!0,chunk:n?null:r}}catch(t){return X(e),J(t)}},"raw-fetch-cancel":async({id:e})=>(X(e),{ok:!0})}}function $e(e){let t=n().find(t=>t.id===e);return t?t.id:null}function Q(){return{"feature-flag-set":({id:e,value:n})=>{let i=$e(e);if(!i)throw Error(`unknown flag ${e}`);if(t(i,n),r()[i]!==n)throw Error(`flag ${e} cannot be overridden on this float`);return{overridesJson:localStorage.getItem(`slicc_feature_flags`)??`{}`}}}}function et(){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-ZV7CeqWw.js`).then(e=>e._);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([60,1,3]));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}}}}function tt(){return{"layout-apply":async t=>{let{getLayoutApplier:n}=await e(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=n();return r?await r(t)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}function $(){let e=globalThis;if(!e.__slicc_browser)throw Error(`no browser API on this page`);return e.__slicc_browser}function nt(){return{"computer-tab-screenshot":async t=>{let{screenshotTab:n}=await e(async()=>{let{screenshotTab:e}=await import(`./tab-D9i-XOmT.js`);return{screenshotTab:e}},__vite__mapDeps([61,62,26,63]));return n($(),t.targetId,{maxWidth:t.maxWidth,format:t.format})},"computer-tab-input":async t=>{let{inputTab:n}=await e(async()=>{let{inputTab:e}=await import(`./tab-D9i-XOmT.js`);return{inputTab:e}},__vite__mapDeps([61,62,26,63]));return await n($(),t.targetId,t.events),{ok:!0}}}}function rt(e={}){let t=new Map;return Ve(e.emitEvent),{...Re(e),...ze(e),...Be(),...Pe(e),...Ke(e),...ke(e),...Ae(e,t),...je(e),...Me(e),...qe(e),...Ye(e),...k(),...Qe(),...D(),...O(),...T(),...E(),...et(),...tt(),...Q(),...nt()}}export{rt as createStandalonePanelRpcHandlers};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-D734Xx8G.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-B-gpiOVR.js","assets/logger-DDBAeTLF.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/mount-bridge-client-DTSknauQ.js","assets/types-D8gIX-W-.js","assets/page-approval-service-1D_bhphG.js","assets/float-topology-DJxhvO9u.js","assets/proxied-fetch-Dcpb4ieV.js","assets/preload-helper-BLdHbfdN.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/types-DSxCdZw6.js","assets/esptool-operations-CTZQdeQU.js","assets/rom-eeWiO07Z.js","assets/usb-claim-broker-Dacw2Z3M.js","assets/usb-device-registry--JwKRTYp.js","assets/providers-D98KfVHw.js","assets/speak-DHpjynd6.js","assets/speech-assets-bridge-DtbOauCq.js","assets/transformers-env-C4aTP2JX.js","assets/wc-shell-CbiYuC-u.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-C8ku_32k.js","assets/core-kdG72Y8N.js","assets/compat-TaBTsXFP.js","assets/models-DuCVW_cU.js","assets/diagnostics-B-5VkVir.js","assets/env-api-keys-Cfrk_k8Z.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-C88RzzVZ.js","assets/azure-openai-config-D2vLg_Tc.js","assets/utf16-clip-CGL7omVm.js","assets/feature-flags-Lh2dvGiT.js","assets/secret-topology-CcM8VDVI.js","assets/image-markers-4eaAm9QS.js","assets/tool-ui-eSQ1g2I1.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/renamed-providers-DDe6My59.js","assets/same-file-identity-OexpsaSD.js","assets/telemetry-kqkj0A7x.js","assets/icons-CPOTRcvO.js","assets/wc-shell-WkeczD9x.css","assets/shared-DSEuryGJ.js","assets/hear-BGGOzrLe.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-DOG-n_Gl.js","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/proxied-fetch-raw-DFOSVEWz.js","assets/proxied-fetch-raw-types-BapqdEuh.js","assets/proxied-fetch-raw-port-Dv7XYtb4.js","assets/theme-engine-ZV7CeqWw.js","assets/tab-D9i-XOmT.js","assets/slicc-app-url-BKHBBuTR.js","assets/scale-B8PGb3fG.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BLdHbfdN.js";import{c as t,o as n,s as r}from"./feature-flags-Lh2dvGiT.js";import{Y as i,f as a}from"./account-store-C8ku_32k.js";import"./proxied-fetch-Dcpb4ieV.js";import{s as o,t as s}from"./api-endpoint-DuEQRZ4g.js";import{t as c}from"./proxied-fetch-raw-types-BapqdEuh.js";import"./main-CWx8ZbOh.js";import{n as l,r as u}from"./hid-device-registry-B2R-0rNt.js";import{a as d,i as f}from"./serial-port-registry-CCqklAEr.js";import{_ as p,a as m,c as ee,d as te,f as ne,g as re,h as ie,i as ae,l as oe,m as se,n as ce,o as le,p as ue,r as de,s as fe,t as pe,u as me,v as he}from"./hid-operations-C97SZtrY.js";import{a as ge,i as _e}from"./usb-device-registry--JwKRTYp.js";import{a as ve,c as ye,d as be,f as xe,g as Se,h as Ce,i 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}from"./usb-operations-DvSWlz_Y.js";function T(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-D734Xx8G.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6]));return{response:await r(t,n)}}}}function E(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-DTSknauQ.js`);return{callMountBridge:e}},__vite__mapDeps([7,2,3,4,5,6,8]));return{response:await r(t,n)}}}}function D(){return{"sudo-request":async({request:t,mode:n})=>{let{resolveSudoApprovalInPage:r}=await e(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-1D_bhphG.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([9,3,10,11,1,12,13,14,4,5,15]));return r(t,n??`resolve`)}}}function O(){return{"secret-request":async t=>{let{getSecretRequestSurface:n}=await e(async()=>{let{getSecretRequestSurface:e}=await import(`./secret-request-registry-DrOMKR1H.js`);return{getSecretRequestSurface:e}},[]),r=n();return r?r(t):{stored:!1,reason:`unavailable`}}}}function k(){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-Dcpb4ieV.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([11,1,12,13,14,4,5])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function A(){return navigator.userActivation?.isActive??!0}var we={usb:`use a USB device`,hid:`use a HID device`,serial:`use a serial port`,screenshare:`share a screen`};async function j(e,t,n){let r=e();if(!r)throw Error(`${t} request: the chooser needs a click, and no permission prompt is open`);let i=await r.prompt({kinds:[t],description:`A command in the terminal asks to ${we[t]}.`,requestOptions:{[t]:n}}),a=i.status===`granted`?i.grants.find(e=>e.kind===t):void 0;if(!a){let e=i.message?`: ${i.message}`:``;throw Error(`${t} request: ${i.reason??i.status}${e}`)}return a}function Te(e,t){return A()?e:{getDevices:()=>e.getDevices(),requestDevice:async({filters:e})=>(await j(t,`usb`,{filters:e})).device}}function Ee(e,t){return A()?e:{getDevices:()=>e.getDevices(),requestDevice:async({filters:e})=>(await j(t,`hid`,{filters:e})).devices}}function De(e,t){return A()?e:{getPorts:()=>e.getPorts(),requestPort:async e=>(await j(t,`serial`,{filters:e?.filters??[]})).port}}function Oe(e){return A()?e=>navigator.mediaDevices.getDisplayMedia(e):async t=>(await j(e,`screenshare`,{constraints:t})).stream}function ke(e){Ne(e.emitEvent);let t=()=>e.getPermissionsSurface?.()??null;return{"usb-list":async()=>({devices:await g(M(),F())}),"usb-request":async({filters:e})=>({device:await xe(M(),Te(F(),t),e)}),"usb-device-info":({handle:e})=>({device:S(M(),e)}),"usb-open":async({handle:e})=>(await w(M(),e),{done:!0}),"usb-close":async({handle:e,owner:t,force:n})=>(await h(M(),e,{owner:t,force:n}),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await _(M(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t,owner:n,wait:r})=>(await v(M(),e,t,{owner:n,wait:r}),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t,owner:n})=>(await be(M(),e,t,{owner:n}),{done:!0}),"usb-cancel-claim-wait":async({handle:e,interfaceNumber:t,owner:n})=>(await C(M(),e,t,n??`usb`),{done:!0}),"usb-drop-owner":async({owner:e})=>(await ye(M(),e),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>ve(M(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>y(M(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>Ce(M(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>Se(M(),e,t,n),"usb-reset":async({handle:e,owner:t,force:n})=>(await b(M(),e,{owner:t,force:n}),{done:!0}),"usb-clear-halt":async({handle:e,direction:t,endpointNumber:n})=>(await x(M(),e,t,n),{done:!0})}}function Ae(e,t){let n=()=>e.getPermissionsSurface?.()??null;return{"hid-list":async()=>({devices:await de(I(),L())}),"hid-request":async({filters:e})=>({devices:await le(I(),Ee(L(),n),e)}),"hid-device-info":({handle:e})=>({device:ce(I(),e)}),"hid-open":async({handle:e})=>(await ae(I(),e),{done:!0}),"hid-close":async({handle:e})=>(await pe(I(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await ee(I(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await fe(I(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>m(I(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await oe(I(),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 je(e={}){let t=()=>e.getPermissionsSurface?.()??null;return{"serial-list":async()=>({devices:await ue(R(),z())}),"serial-request":async({filters:e})=>({device:await re(R(),De(z(),t),e)}),"serial-device-info":({handle:e})=>({device:te(R(),e)}),"serial-open":async({handle:e,options:t})=>(await se(R(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await me(R(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await ie(R(),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 he(R(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await ne(R(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await p(R(),e,t),{done:!0})}}function Me(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolChipInfo(R(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolReadMac(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolEraseFlash(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolFlash(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolReadFlash(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolReadReg(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolFlashId(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolEraseRegion(R(),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-CTZQdeQU.js`),__vite__mapDeps([16,1,12,17]))).esptoolRun(R(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function M(){return ge()}var N=null,P;function Ne(t){P=t,!N&&t&&e(()=>import(`./usb-claim-broker-Dacw2Z3M.js`).then(e=>{N||=e.addClaimListener(M(),e=>{P?.(`usb-claim-event`,e)})}),__vite__mapDeps([18,19,1]))}function F(){let e=_e();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function I(){return u()}function L(){let e=l();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function R(){return d()}function z(){let e=f();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}function Pe(t){return{"tray-reset":async()=>{if(!t.resetTray)throw Error(`host reset: no active tray session to reset`);return await t.resetTray()},"tray-webhook-rotate":async()=>{if(!t.rotateWebhook)throw Error(`webhook rotate: no active leader tray`);return await t.rotateWebhook()},"tray-webhook-revoke":async e=>{if(!t.revokeWebhook)throw Error(`webhook delete: no active leader tray`);return await t.revokeWebhook(e.webhookId),{ok:!0}},"tray-open-preview":async e=>{if(!t.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await t.mintPreview(e)},"tray-revoke-preview":async e=>{if(!t.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await t.revokePreview(e)},"tray-list-previews":async()=>{if(!t.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await t.listPreviews()},"tray-mint-biscotto":async e=>{if(!t.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await t.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!t.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await t.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!t.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await t.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!t.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return t.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!t.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return t.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:n})=>{if(!t.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await t.leaveTray({workerBaseUrl:e,requestId:n})},"tray-join":async({joinUrl:e,requestId:n})=>{if(!t.joinTray)throw Error(`host join: tray join is not available in this environment`);return await t.joinTray({joinUrl:e,requestId:n})},"cherry-emit":async({runtimeId:e,name:n,detail:r})=>{if(!t.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:t.emitCherrySliccEvent(e,n,r)}},"tray-exec":async e=>{if(!t.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await t.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(t.signalRemoteExec?.({execToken:e}),{ok:!0}),"tray-computer-native":async e=>{if(!t.computerNative)throw Error(`computer native: no active leader tray in this environment`);return await t.computerNative(e)},"oauth-extras-set":({providerId:e,domains:t})=>(i(e,t),{storeAfter:a()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-D98KfVHw.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([20,1,12])),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})}}async function Fe(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return B(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await Ie(n,e);return t===void 0?null:B(t)}return B(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function B(e){return new Promise(t=>{let n=!1,r=null,i=()=>{n||(n=!0,window.removeEventListener(`message`,a),clearTimeout(c),r&&clearInterval(r))},a=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(i(),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`,a),r=setInterval(async()=>{if(!n)try{let e=await fetch(o(`/api/oauth-result`),{headers:s()});if(e.status===204||!e.ok)return;let r=await e.json();if(n)return;if(i(),r.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,r.error),t(null);return}t(r.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{i();try{e?.close()}catch{}t(null)},12e4)})}async function Ie(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}async function Le(t,n){let{captureDisplayMedia:r,sessionCaptureRequest:i}=await e(async()=>{let{captureDisplayMedia:e,sessionCaptureRequest:t}=await import(`./screencapture-media-BxRLHqjA.js`);return{captureDisplayMedia:e,sessionCaptureRequest:t}},[]),{mimeType:a,quality:o,mode:s,durationMs:c,audio:l,session:u,handle:d,maxWidth:f}=n,p=await r(s===`session`?i({session:u,handle:d,mimeType:a,quality:o,durationMs:c,maxWidth:f}):s===`video`?{mode:`video`,mimeType:a,durationMs:c??5e3,audio:!!l}:{mode:`image`,mimeType:a,quality:o},Oe(t));return{bytes:p.bytes.buffer.slice(p.bytes.byteOffset,p.bytes.byteOffset+p.bytes.byteLength),width:p.width,height:p.height,mimeType:p.mimeType,nativeWidth:p.nativeWidth,nativeHeight:p.nativeHeight,...p.durationMs===void 0?{}:{durationMs:p.durationMs},...p.handle===void 0?{}:{handle:p.handle}}}function Re(t={}){let n=()=>t.getPermissionsSurface?.()??null;return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:e=>Le(n,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-DHpjynd6.js`);return{speak:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));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-DHpjynd6.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51])),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(W)]};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(W)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-DHpjynd6.js`);return{kokoroStatus:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-DHpjynd6.js`);return{kokoroWarmup:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));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-DHpjynd6.js`);return{synthesizeToWav:e}},__vite__mapDeps([21,12,3,5,22,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51])),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 ze(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 G(),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 Ge(r),await G(),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})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await Fe(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await Ue(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 Be(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-BGGOzrLe.js`);return{hearCapture:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-BGGOzrLe.js`);return{hearTranscribe:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-BGGOzrLe.js`);return{hearStatus:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-BGGOzrLe.js`);return{hearWarmup:e}},__vite__mapDeps([52,3,53,54,12,23,24,1,25,13,26,27,28,29,30,31,32,33,34,35,36,37,38,11,14,4,5,39,10,0,2,6,40,41,20,42,43,44,45,46,47,48,8,49,50,51]));return t()}}}var V=null,H;function Ve(t){H=t,!V&&t&&e(()=>import(`./screencapture-media-BxRLHqjA.js`).then(e=>{V||=e.displaySessions.onEnded(t=>{H?.(e.SCREENCAPTURE_SESSION_ENDED_CHANNEL,{handle:t})})}),[])}var He=1500;async function Ue(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 We({wantVideo:t,videoDeviceId:t?await U(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await U(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??He;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 U(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 We(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}}:!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()})}}function W(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function Ge(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 G(e=3e5){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 Ke(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function qe(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 Je(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function Ye(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,skipIfGranted:Je(n.kinds,n.skipIfGranted)});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=M().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=I().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=R().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-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([55,3,56,5])),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})}return{grants:a}}}}var K=3e5,Xe=class{pending=null;waiter=null;stream=new ReadableStream({pull:async e=>{for(;!this.pending;)await new Promise(e=>{this.waiter=e});let{chunk:t,taken:n}=this.pending;this.pending=null,t?e.enqueue(t):e.close(),n()}},{highWaterMark:0});write(e){return new Promise(t=>{this.pending={chunk:e,taken:t};let n=this.waiter;this.waiter=null,n?.()})}},q=new Map;function J(e){return e instanceof c?{ok:!1,code:e.code,status:e.status,error:e.message}:{ok:!1,code:`bridge`,status:502,error:e instanceof Error?e.message:String(e)}}var Y=()=>({ok:!1,code:`bridge`,status:502,error:`raw fetch: unknown or finished session`});function X(e){let t=q.get(e);t&&(q.delete(e),clearTimeout(t.idle),t.abort.abort(),t.reader?.cancel().catch(()=>void 0))}function Z(e){let t=q.get(e);if(t)return clearTimeout(t.idle),t.idle=setTimeout(()=>X(e),K),t}function Ze(e){return e.response.then(()=>new Promise(()=>{}))}function Qe(){return{"raw-fetch-probe":async t=>{let{getRawFetchCapabilities:n}=await e(async()=>{let{getRawFetchCapabilities:e}=await import(`./proxied-fetch-raw-DFOSVEWz.js`);return{getRawFetchCapabilities:e}},__vite__mapDeps([57,12,14,4,5,58,59,13]));return n()},"raw-fetch-open":async({url:t,method:n,headers:r,hasBody:i,bodyLength:a})=>{let[{extensionPortConnector:o},{rawFetchViaPort:s}]=await Promise.all([e(()=>import(`./proxied-fetch-raw-DFOSVEWz.js`),__vite__mapDeps([57,12,14,4,5,58,59,13])),e(()=>import(`./proxied-fetch-raw-port-Dv7XYtb4.js`),__vite__mapDeps([59,13,58,4,5]))]),c=o();if(!c)throw Error(`raw fetch: no extension Port in this realm`);let l=crypto.randomUUID(),u=i?new Xe:null,d=new AbortController,f=s(c,t,{method:n,headers:r,body:u?.stream,bodyLength:a,signal:d.signal});return f.catch(()=>void 0),q.set(l,{upload:u,response:f,reader:null,abort:d,idle:setTimeout(()=>X(l),K)}),{id:l}},"raw-fetch-write":async({id:e,chunk:t})=>{let n=Z(e);if(!n?.upload)return Y();try{return await Promise.race([n.upload.write(t),Ze(n)]),{ok:!0}}catch(t){return X(e),J(t)}},"raw-fetch-head":async({id:e})=>{let t=Z(e);if(!t)return Y();try{let{body:n,...r}=await t.response;return t.reader=n?.getReader()??null,n||X(e),{ok:!0,head:r,hasBody:n!==null}}catch(t){return X(e),J(t)}},"raw-fetch-read":async({id:e})=>{let t=Z(e);if(!t?.reader)return Y();try{let{done:n,value:r}=await t.reader.read();return n&&X(e),{ok:!0,chunk:n?null:r}}catch(t){return X(e),J(t)}},"raw-fetch-cancel":async({id:e})=>(X(e),{ok:!0})}}function $e(e){let t=n().find(t=>t.id===e);return t?t.id:null}function Q(){return{"feature-flag-set":({id:e,value:n})=>{let i=$e(e);if(!i)throw Error(`unknown flag ${e}`);if(t(i,n),r()[i]!==n)throw Error(`flag ${e} cannot be overridden on this float`);return{overridesJson:localStorage.getItem(`slicc_feature_flags`)??`{}`}}}}function et(){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-ZV7CeqWw.js`).then(e=>e._);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([60,1,3]));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}}}}function tt(){return{"layout-apply":async t=>{let{getLayoutApplier:n}=await e(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=n();return r?await r(t)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}function $(){let e=globalThis;if(!e.__slicc_browser)throw Error(`no browser API on this page`);return e.__slicc_browser}function nt(){return{"computer-tab-screenshot":async t=>{let{screenshotTab:n}=await e(async()=>{let{screenshotTab:e}=await import(`./tab-D9i-XOmT.js`);return{screenshotTab:e}},__vite__mapDeps([61,62,26,63]));return n($(),t.targetId,{maxWidth:t.maxWidth,format:t.format})},"computer-tab-input":async t=>{let{inputTab:n}=await e(async()=>{let{inputTab:e}=await import(`./tab-D9i-XOmT.js`);return{inputTab:e}},__vite__mapDeps([61,62,26,63]));return await n($(),t.targetId,t.events),{ok:!0}}}}function rt(e={}){let t=new Map;return Ve(e.emitEvent),{...Re(e),...ze(e),...Be(),...Pe(e),...Ke(e),...ke(e),...Ae(e,t),...je(e),...Me(e),...qe(e),...Ye(e),...k(),...Qe(),...D(),...O(),...T(),...E(),...et(),...tt(),...Q(),...nt()}}export{rt as createStandalonePanelRpcHandlers};