sliccy 6.242.0 → 6.243.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/node-server/_shared/tray-sync-protocol.d.ts +9 -0
  2. package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
  3. package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
  4. package/dist/ui/.vite/manifest.json +421 -392
  5. package/dist/ui/assets/account-store-BUXWCO9c.js +2 -0
  6. package/dist/ui/assets/account-store-BwbUEHb5.js +1 -0
  7. package/dist/ui/assets/adobe-B1NvyhgA.js +2 -0
  8. package/dist/ui/assets/adobe-Cj-kss61.js +1 -0
  9. package/dist/ui/assets/{agent-panels-DZgCn_Eh.js → agent-panels-hMZHYKB4.js} +1 -1
  10. package/dist/ui/assets/{agent-tools-WbCq5rUh.js → agent-tools-DOAwvp2r.js} +1 -1
  11. package/dist/ui/assets/{almost-bash-shell-headless-9Czv5t8a.js → almost-bash-shell-headless-CAZee0uN.js} +16 -16
  12. package/dist/ui/assets/anthropic-messages-B2uIMNYL.js +19 -0
  13. package/dist/ui/assets/anthropic-messages-C787NPvk.js +18 -0
  14. package/dist/ui/assets/{apply-layout-DF4jjEp1.js → apply-layout-Pq0XxQj9.js} +1 -1
  15. package/dist/ui/assets/{approver-agent-CivzfuZ7.js → approver-agent-B9MJsDkQ.js} +1 -1
  16. package/dist/ui/assets/{azure-openai-3Gr9AGS9.js → azure-openai-BHir9Y8r.js} +1 -1
  17. package/dist/ui/assets/azure-openai-config--zABV6W_.js +1 -0
  18. package/dist/ui/assets/azure-openai-config-CvD1Dsr0.js +1 -0
  19. package/dist/ui/assets/azure-openai-responses-DcjVJRMr.js +1 -0
  20. package/dist/ui/assets/azure-openai-responses-Zz2PEXb6.js +1 -0
  21. package/dist/ui/assets/{azure-openai-DF83DQdU.js → azure-openai-yVG_O_XO.js} +1 -1
  22. package/dist/ui/assets/{bedrock-camp-DLQhETva.js → bedrock-camp-CLQpuikj.js} +1 -1
  23. package/dist/ui/assets/{bedrock-camp-BYH3KVc9.js → bedrock-camp-Sm0RNsDN.js} +1 -1
  24. package/dist/ui/assets/{browser-BhTdBqdp.js → browser-Chc3wUwj.js} +35 -30
  25. package/dist/ui/assets/{browser-CGX7MbCQ.js → browser-L7W6uZ79.js} +1 -1
  26. package/dist/ui/assets/{cdp-BMRNgxhA.js → cdp-DOkrWHSv.js} +1 -1
  27. package/dist/ui/assets/{cerebras-dDv6G5NB.js → cerebras-BsMLiSLC.js} +1 -1
  28. package/dist/ui/assets/{cerebras-BLbXU4bU.js → cerebras-Dr97p_v3.js} +1 -1
  29. package/dist/ui/assets/classifier-shared-BJysQIY7.js +1 -0
  30. package/dist/ui/assets/classifier-shared-DgL5N50m.js +1 -0
  31. package/dist/ui/assets/cloudflare-workers-ai-system-one-3WA5LP90.js +1 -0
  32. package/dist/ui/assets/cloudflare-workers-ai-system-one-BQQga1NM.js +1 -0
  33. package/dist/ui/assets/{codemode-tool-FcP24sWd.js → codemode-tool-BFVivVHy.js} +1 -1
  34. package/dist/ui/assets/compat-0YnuwvMn.js +2 -0
  35. package/dist/ui/assets/compat-Ba4wPWa_.js +1 -0
  36. package/dist/ui/assets/{composer-speech-BkKa1N94.js → composer-speech-qaRqAyXj.js} +1 -1
  37. package/dist/ui/assets/{connect-surface-Bm6PRdh4.js → connect-surface-DIi81fIW.js} +1 -1
  38. package/dist/ui/assets/{connection-manager-D0LxHiWb.js → connection-manager-BDqqVban.js} +1 -1
  39. package/dist/ui/assets/{context-compaction-BCsq-2e6.js → context-compaction-Dee1PlIX.js} +1 -1
  40. package/dist/ui/assets/core-C--iyWKC.js +1 -0
  41. package/dist/ui/assets/core-DzRw0pz2.js +27 -0
  42. package/dist/ui/assets/{cost-command-QgykPPks.js → cost-command-VPxRuwNr.js} +1 -1
  43. package/dist/ui/assets/{descriptor-CuhPBdq8.js → descriptor-1ECGTjSt.js} +1 -1
  44. package/dist/ui/assets/{descriptor-CKLcFFX3.js → descriptor-xRf4P0gd.js} +1 -1
  45. package/dist/ui/assets/diagnostics-B-5VkVir.js +1 -0
  46. package/dist/ui/assets/{directed-approval-BXnjNc8s.js → directed-approval-m8VBcGoU.js} +1 -1
  47. package/dist/ui/assets/dist-DRjYxtT0.js +9 -0
  48. package/dist/ui/assets/dist-Ue_WrVH6.js +4 -0
  49. package/dist/ui/assets/{emscripten-vfs-hook-DjpWiWGw.js → emscripten-vfs-hook-DS6HyOQN.js} +1 -1
  50. package/dist/ui/assets/env-api-keys-BMbk-OAv.js +1 -0
  51. package/dist/ui/assets/env-api-keys-DkgZK-ct.js +1 -0
  52. package/dist/ui/assets/error-BTdmRKoB.js +1 -0
  53. package/dist/ui/assets/{frozen-archive-writer-CxARY_u0.js → frozen-archive-writer-BXYZXVMO.js} +1 -1
  54. package/dist/ui/assets/{frozen-archive-writer-BmnL05hC.js → frozen-archive-writer-B_3LDxDv.js} +1 -1
  55. package/dist/ui/assets/{frozen-session-delete-CMYnzw-I.js → frozen-session-delete-S6fe3MHM.js} +1 -1
  56. package/dist/ui/assets/{frozen-session-identity-BvbW8Joj.js → frozen-session-identity-BzZR-tcg.js} +1 -1
  57. package/dist/ui/assets/{frozen-session-identity-Be3WxQiL.js → frozen-session-identity-Cm2y7ECd.js} +1 -1
  58. package/dist/ui/assets/{gelatiere-unit-xNfF_7ob.js → gelatiere-unit-CbpoXshu.js} +1 -1
  59. package/dist/ui/assets/github-copilot-Bpxt8DcY.js +2 -0
  60. package/dist/ui/assets/{github-copilot-DWvHSe9j.js → github-copilot-CIJWouor.js} +1 -1
  61. package/dist/ui/assets/{github-DNdt8ojA.js → github-u46P7a92.js} +1 -1
  62. package/dist/ui/assets/{github-CeB2d2Q-.js → github-z8d7X5by.js} +1 -1
  63. package/dist/ui/assets/google-generative-ai-C1S3RP6G.js +1 -0
  64. package/dist/ui/assets/{google-generative-ai-CHKS5an4.js → google-generative-ai-D_dvyaRG.js} +1 -1
  65. package/dist/ui/assets/{google-shared-Q-3oSdLJ.js → google-shared-CjU_LieG.js} +1 -1
  66. package/dist/ui/assets/{google-shared-C6X3xab7.js → google-shared-DWTs99zb.js} +1 -1
  67. package/dist/ui/assets/{google-vertex-DBm4s85u.js → google-vertex-Ckh_e-Px.js} +1 -1
  68. package/dist/ui/assets/google-vertex-DmOYmn7m.js +1 -0
  69. package/dist/ui/assets/{guest-tool-gate-83ZVVYjM.js → guest-tool-gate-D5-Z-l4h.js} +1 -1
  70. package/dist/ui/assets/{hear-D9quYsjw.js → hear-CexFR0lD.js} +1 -1
  71. package/dist/ui/assets/{host-command-CvUauhDf.js → host-command-B9z8gGwK.js} +1 -1
  72. package/dist/ui/assets/{idle-compaction-DGln8tkz.js → idle-compaction-WANlPP4R.js} +1 -1
  73. package/dist/ui/assets/{interrupted-work-recovery-CWSaMQsO.js → interrupted-work-recovery-Bc8UHznp.js} +1 -1
  74. package/dist/ui/assets/{js-realm-worker-DDuU-XgK.js → js-realm-worker-DOBX_BWP.js} +2 -2
  75. package/dist/ui/assets/{jsh-executor-DOnIPgNs.js → jsh-executor-OyG5H3M0.js} +2 -2
  76. package/dist/ui/assets/kernel-worker-Co5O2WRg.js +1262 -0
  77. package/dist/ui/assets/{key-B2Bki3fU.js → key-CMmCg0hr.js} +1 -1
  78. package/dist/ui/assets/{legacy-api-aliases--xyLjPgC.js → legacy-api-aliases-C3_OAyZB.js} +1 -1
  79. package/dist/ui/assets/{legacy-api-aliases-BjgG1CsY.js → legacy-api-aliases-D-3Ssy_B.js} +1 -1
  80. package/dist/ui/assets/{libesm-CTQYxJIv.js → libesm-CSMdpGMF.js} +4 -4
  81. package/dist/ui/assets/{lick-ws-bridge-BGMhFgVP.js → lick-ws-bridge-B4nMBMxl.js} +1 -1
  82. package/dist/ui/assets/{lick-ws-bridge-C-Y8nKtx.js → lick-ws-bridge-CZbIps3D.js} +1 -1
  83. package/dist/ui/assets/{live-session-curation-DClAHiV3.js → live-session-curation-BF1WGcAY.js} +1 -1
  84. package/dist/ui/assets/{live-session-curation-Cm7e6ohY.js → live-session-curation-CygXbAY3.js} +1 -1
  85. package/dist/ui/assets/{live-session-snapshot-a18bKxI5.js → live-session-snapshot-CWtnoNYy.js} +1 -1
  86. package/dist/ui/assets/{local-llm-CyPxIK9W.js → local-llm-B4KZH4Xt.js} +1 -1
  87. package/dist/ui/assets/{local-llm-BsgdFg8Z.js → local-llm-D0l_JQnX.js} +1 -1
  88. package/dist/ui/assets/{main-cherry-C_30DmYa.js → main-cherry-C9W_D65Z.js} +1 -1
  89. package/dist/ui/assets/main-rwkIawzW.js +22 -0
  90. package/dist/ui/assets/{mcp-command-ChutbHAT.js → mcp-command-Ce7aNwu8.js} +11 -11
  91. package/dist/ui/assets/{memory-curation-seam-C5ZMA6ti.js → memory-curation-seam-Dm3c2GeP.js} +1 -1
  92. package/dist/ui/assets/{memory-health-Bc0NK5hs.js → memory-health-Dfnf_Tuq.js} +1 -1
  93. package/dist/ui/assets/{memory-write-execute-DH0aqBWk.js → memory-write-execute-pZFV468-.js} +1 -1
  94. package/dist/ui/assets/{merge-folded-cost-into-frozen-DIOtNg18.js → merge-folded-cost-into-frozen-DTl_zOBf.js} +1 -1
  95. package/dist/ui/assets/{mistral-conversations-oqRyTLwY.js → mistral-conversations-BvlrZkA-.js} +3 -3
  96. package/dist/ui/assets/{mistral-conversations-SlnX__FI.js → mistral-conversations-gYKoKyXX.js} +4 -4
  97. package/dist/ui/assets/models-D9KYIFyv.js +8 -0
  98. package/dist/ui/assets/models-DMUS_WIm.js +8 -0
  99. package/dist/ui/assets/new-session-DEO7gD2x.js +2 -0
  100. package/dist/ui/assets/{node.browser-DfltYbWr.js → node.browser-C8yuEzbc.js} +1 -1
  101. package/dist/ui/assets/node.browser-GIQn8hjM.js +1 -0
  102. package/dist/ui/assets/node.browser-HQ5SKBOf.js +1 -0
  103. package/dist/ui/assets/{node.browser-DFNMSkXf.js → node.browser-PnMdIUDP.js} +1 -1
  104. package/dist/ui/assets/oauth-bootstrap-ZC5NQ4lP.js +2 -0
  105. package/dist/ui/assets/{onboarding-orchestrator-usjOiqL0.js → onboarding-orchestrator-DK8WHqbf.js} +1 -1
  106. package/dist/ui/assets/{openai-codex-CQ3zgei0.js → openai-codex-D8hNye9V.js} +1 -1
  107. package/dist/ui/assets/{openai-codex-responses-BFVkRFGY.js → openai-codex-responses-DL3QfjAj.js} +2 -2
  108. package/dist/ui/assets/{openai-codex-responses-N8ybD_eh.js → openai-codex-responses-D_RW7WEX.js} +2 -2
  109. package/dist/ui/assets/{openai-codex-w6oO3AnS.js → openai-codex-x6y1P4FE.js} +1 -1
  110. package/dist/ui/assets/openai-completions-B8gZJNrA.js +5 -0
  111. package/dist/ui/assets/openai-completions-Eh0-DkGU.js +5 -0
  112. package/dist/ui/assets/openai-decisions-DZc3eKSh.js +2 -0
  113. package/dist/ui/assets/openai-decisions-umTQkmTO.js +2 -0
  114. package/dist/ui/assets/openai-responses-C7rBSmmd.js +1 -0
  115. package/dist/ui/assets/openai-responses-ChllZFHw.js +1 -0
  116. package/dist/ui/assets/{openai-responses-shared-CbNa5Pf-.js → openai-responses-shared-BkcHIDFS.js} +2 -2
  117. package/dist/ui/assets/{openai-responses-shared-yguGWfYx.js → openai-responses-shared-BvBjbnyp.js} +2 -2
  118. package/dist/ui/assets/{openrouter-BEKlOYFb.js → openrouter-B2CBG3R_.js} +1 -1
  119. package/dist/ui/assets/{openrouter-lsfNukd5.js → openrouter-BUd9j3yx.js} +1 -1
  120. package/dist/ui/assets/{openrouter-free-DwguItbS.js → openrouter-free-CPJCCuxG.js} +1 -1
  121. package/dist/ui/assets/{openrouter-free-mNgVVlhf.js → openrouter-free-DMf-9uyL.js} +1 -1
  122. package/dist/ui/assets/{openrouter-images-DInxQ8hj.js → openrouter-images-BLhPKhhs.js} +1 -1
  123. package/dist/ui/assets/{openrouter-images-B2LpvEOZ.js → openrouter-images-BxgQP1ZC.js} +1 -1
  124. package/dist/ui/assets/{openrouter-models-DawLtPaY.js → openrouter-models-BmhhmiWg.js} +1 -1
  125. package/dist/ui/assets/{openrouter-models-RwlwKz0P.js → openrouter-models-W7XmIrEt.js} +1 -1
  126. package/dist/ui/assets/{openrouter-oauth-5IQSzB1f.js → openrouter-oauth-BPULLBJW.js} +1 -1
  127. package/dist/ui/assets/{openrouter-oauth-BRdBbrLx.js → openrouter-oauth-Cr_iFRGQ.js} +1 -1
  128. package/dist/ui/assets/openrouter.models-BSx3ITDA.js +1 -0
  129. package/dist/ui/assets/openrouter.models-C88RzzVZ.js +1 -0
  130. package/dist/ui/assets/panel-rpc-handlers-Cx2DCZvj.js +2 -0
  131. package/dist/ui/assets/{panelize-shell-Cjf6GQSz.js → panelize-shell-BszF1QxA.js} +1 -1
  132. package/dist/ui/assets/pi-edit-execution-BuYIhqkU.js +12 -0
  133. package/dist/ui/assets/{pi-messages-BMxZw_ob.js → pi-messages-CiydoVXP.js} +1 -1
  134. package/dist/ui/assets/{pi-messages-F6N-eNkX.js → pi-messages-DElkezfJ.js} +1 -1
  135. package/dist/ui/assets/pi-transcript-context-CE8ItnBz.js +1 -0
  136. package/dist/ui/assets/{pi-transcript-context-miZCMig3.js → pi-transcript-context-DZyPy5yf.js} +1 -1
  137. package/dist/ui/assets/{provider-IGig8YLE.js → provider-DtMdxE0s.js} +1 -1
  138. package/dist/ui/assets/{provider-DUDuxXak.js → provider-XOGGlnmA.js} +1 -1
  139. package/dist/ui/assets/{provider-retry-CSlu6hjs.js → provider-retry-RVfYd5Vz.js} +1 -1
  140. package/dist/ui/assets/{provider-settings-DphpnNLH.js → provider-settings-DQAajlVX.js} +1 -1
  141. package/dist/ui/assets/provider-store-access-BUiCzkDB.js +1 -0
  142. package/dist/ui/assets/provider-store-access-Dum4LRDl.js +1 -0
  143. package/dist/ui/assets/{providers-C0ZOpyUo.js → providers-D0vvekBQ.js} +1 -1
  144. package/dist/ui/assets/providers-s1F7GmE9.js +2 -0
  145. package/dist/ui/assets/{quick-llm-D5BvwAIg.js → quick-llm-j6dAyTk3.js} +1 -1
  146. package/dist/ui/assets/{realm-inprocess-B6cokKhd.js → realm-inprocess-CLnOkvVF.js} +2 -2
  147. package/dist/ui/assets/{realm-unhandled-rejections-Be7LHx6d.js → realm-unhandled-rejections-DLfoHmia.js} +1 -1
  148. package/dist/ui/assets/{realm-unhandled-rejections-C5YXTNtv.js → realm-unhandled-rejections-Pyc_Yywn.js} +1 -1
  149. package/dist/ui/assets/record-Ban9cWMI.js +1 -0
  150. package/dist/ui/assets/record-DtD74Jn0.js +1 -0
  151. package/dist/ui/assets/{recovery-screen-e0y59jaB.js → recovery-screen-BUmrgmsy.js} +1 -1
  152. package/dist/ui/assets/{remote-terminal-view-DY5NhlfN.js → remote-terminal-view-C-Hj8oAA.js} +3 -3
  153. package/dist/ui/assets/renamed-providers-BUZBzl5L.js +1 -0
  154. package/dist/ui/assets/renamed-providers-DDe6My59.js +1 -0
  155. package/dist/ui/assets/{restore-DDyFEUyi.js → restore-l8tgPxKq.js} +1 -1
  156. package/dist/ui/assets/{run-1aVr5LLS.js → run-BT657BwR.js} +2 -2
  157. package/dist/ui/assets/{run-CwX8trIr.js → run-Bj8m57a_.js} +2 -2
  158. package/dist/ui/assets/{run-CZtMT0UW.js → run-D7FxVJc4.js} +1 -1
  159. package/dist/ui/assets/{run-CVAZx0m2.js → run-DCE15NzA.js} +1 -1
  160. package/dist/ui/assets/{run-CRTEPV5c.js → run-DaNuW9og.js} +1 -1
  161. package/dist/ui/assets/{run-DnxVNWPE.js → run-DcyrwtHx.js} +1 -1
  162. package/dist/ui/assets/{run-BJGzDxyk.js → run-xC8FUB2Z.js} +2 -2
  163. package/dist/ui/assets/{serve-command-BkAERAvQ.js → serve-command-B21r3jG_.js} +2 -2
  164. package/dist/ui/assets/{serve-runtime-CSyDtgVs.js → serve-runtime-BbcsYX3I.js} +1 -1
  165. package/dist/ui/assets/{session-command-memory-BOhKw7oW.js → session-command-memory-l9ApFSFO.js} +2 -2
  166. package/dist/ui/assets/{session-jsonl-CVJ9R5Rq.js → session-jsonl-BYCO0I9a.js} +1 -1
  167. package/dist/ui/assets/{session-jsonl-CEqurmTu.js → session-jsonl-CSOU88vz.js} +1 -1
  168. package/dist/ui/assets/{session-search-index-XOtFaFT2.js → session-search-index-3mybEW_M.js} +1 -1
  169. package/dist/ui/assets/{setup-feature-flags-remote-B-VirOkj.js → setup-feature-flags-remote-CLSmsGdK.js} +1 -1
  170. package/dist/ui/assets/setup-model-catalog-BOpU3mm5.js +1 -0
  171. package/dist/ui/assets/{silent-renew-backoff-CminHszT.js → silent-renew-backoff-C0Cks-_q.js} +1 -1
  172. package/dist/ui/assets/slicc-version-UL1MqRLq.js +1 -0
  173. package/dist/ui/assets/{soundscape-CKh7yLzm.js → soundscape-SNL86WsS.js} +1 -1
  174. package/dist/ui/assets/{speak-CgQxHra5.js → speak-CxZBHdSG.js} +1 -1
  175. package/dist/ui/assets/{sprinkle-manager-D1lNcJD2.js → sprinkle-manager-DmTv72o3.js} +1 -1
  176. package/dist/ui/assets/{sprinkle-renderer-C1AKQbf2.js → sprinkle-renderer-C088Z2du.js} +1 -1
  177. package/dist/ui/assets/{ssh-CVu8tZ_S.js → ssh-Bqz2CHhO.js} +1 -1
  178. package/dist/ui/assets/{sudo-8CgZUyow.js → sudo-CgGH1nWr.js} +1 -1
  179. package/dist/ui/assets/{supervisor-RB5hROJ0.js → supervisor-Clc6jzo1.js} +1 -1
  180. package/dist/ui/assets/{sync-dialog-mOaP3WSo.js → sync-dialog-Bi9sGuoT.js} +1 -1
  181. package/dist/ui/assets/system-one-shared-D_uXoohg.js +1 -0
  182. package/dist/ui/assets/system-one-shared-Do49zet2.js +1 -0
  183. package/dist/ui/assets/transform-messages-DF4OdhKs.js +1 -0
  184. package/dist/ui/assets/transform-messages-DuvHh3qm.js +1 -0
  185. package/dist/ui/assets/{transformers-env-BPNoQ4X7.js → transformers-env-CN_VjXi2.js} +1 -1
  186. package/dist/ui/assets/{tray-leader-CjMPhQNY.js → tray-leader-Cv5k1C5q.js} +1 -1
  187. package/dist/ui/assets/{tray-leave-runtime-OnRBQWsq.js → tray-leave-runtime-DNmvjMzs.js} +1 -1
  188. package/dist/ui/assets/{tray-sidecar-t4dm1U_C.js → tray-sidecar-Ceta0R1c.js} +1 -1
  189. package/dist/ui/assets/{turn-journal-CVQtwHPx.js → turn-journal-BJ3lAG7q.js} +1 -1
  190. package/dist/ui/assets/typesafe-system-one-B1zebM2I.js +1 -0
  191. package/dist/ui/assets/typesafe-system-one-B3Qz9-cZ.js +1 -0
  192. package/dist/ui/assets/{upgrade-detection-CvWsoSfP.js → upgrade-detection-CQrDUmjN.js} +1 -1
  193. package/dist/ui/assets/{voice-reply-LyPY66-z.js → voice-reply-COflgUcS.js} +1 -1
  194. package/dist/ui/assets/wc-attach-CdnSkLjJ.js +13 -0
  195. package/dist/ui/assets/{wc-browser-k_U7kFtS.js → wc-browser-aoHYpHLG.js} +1 -1
  196. package/dist/ui/assets/{wc-computers-BKXABDjS.js → wc-computers-B5vnJoiB.js} +1 -1
  197. package/dist/ui/assets/{wc-detached-DJFxz5jb.js → wc-detached-C6-SQG2h.js} +1 -1
  198. package/dist/ui/assets/wc-extension-BgJvQcjo.js +2 -0
  199. package/dist/ui/assets/wc-follower-CEckNoTF.js +17 -0
  200. package/dist/ui/assets/{wc-follower-oauth-BiHrXTeh.js → wc-follower-oauth-DFirJqdu.js} +1 -1
  201. package/dist/ui/assets/{wc-gelatiere-ChtRPt5b.js → wc-gelatiere-B22UQpCW.js} +1 -1
  202. package/dist/ui/assets/wc-live-B88AgkoT.js +248 -0
  203. package/dist/ui/assets/wc-nav-ByiM69qS.js +2 -0
  204. package/dist/ui/assets/{wc-onboarding-BbBqVLNY.js → wc-onboarding-BP6ckmvh.js} +2 -2
  205. package/dist/ui/assets/{wc-permissions-DadG0Lur.js → wc-permissions-CzJm8Vy5.js} +2 -2
  206. package/dist/ui/assets/wc-placeholder-CScMfgTw.js +4 -0
  207. package/dist/ui/assets/{wc-secret-request-B18qHj4I.js → wc-secret-request-CLvYlRbO.js} +1 -1
  208. package/dist/ui/assets/{wc-settings-DzPcEdim.js → wc-settings-Cnn5g7GW.js} +3 -3
  209. package/dist/ui/assets/{wc-shell-BeGVTjhP.js → wc-shell-DQ63Uu06.js} +4 -4
  210. package/dist/ui/assets/{wc-shortcut-config-QgREiwAI.js → wc-shortcut-config-DDSaSoFX.js} +1 -1
  211. package/dist/ui/assets/wc-sprinkles-DVDFpasV.js +2 -0
  212. package/dist/ui/assets/wc-transcript-export-tZ99xlcb.js +2 -0
  213. package/dist/ui/assets/wc-tray-wFWMCf2U.js +5 -0
  214. package/dist/ui/assets/{wc-unit-context-CZro7UrY.js → wc-unit-context-D5liISq3.js} +1 -1
  215. package/dist/ui/assets/welcome-detection-DOSSqBIu.js +1 -0
  216. package/dist/ui/assets/whisper-session-DjRUnpJX.js +2 -0
  217. package/dist/ui/assets/xai-grok-Cf4LDhyH.js +1 -0
  218. package/dist/ui/assets/xai-grok-DNP_69yB.js +1 -0
  219. package/dist/ui/index.html +12 -11
  220. package/dist/ui/packages/webapp/index.html +12 -11
  221. package/package.json +1 -1
  222. package/dist/ui/assets/account-store-CDJ2a01U.js +0 -1
  223. package/dist/ui/assets/account-store-DmRIEeKD.js +0 -2
  224. package/dist/ui/assets/adobe-C6KwRVMm.js +0 -2
  225. package/dist/ui/assets/adobe-QGrvyCz5.js +0 -1
  226. package/dist/ui/assets/anthropic-messages-COqhstcs.js +0 -40
  227. package/dist/ui/assets/anthropic-messages-CjSN1VV8.js +0 -41
  228. package/dist/ui/assets/azure-openai-responses-BG1E_58j.js +0 -1
  229. package/dist/ui/assets/azure-openai-responses-DT2eVjgI.js +0 -1
  230. package/dist/ui/assets/build-Dnkjpm_v.js +0 -3
  231. package/dist/ui/assets/cloudflare-workers-ai-system-one-CfgjeR2q.js +0 -1
  232. package/dist/ui/assets/cloudflare-workers-ai-system-one-DBa2hfSp.js +0 -1
  233. package/dist/ui/assets/compat-BAGLwgqY.js +0 -2
  234. package/dist/ui/assets/compat-nGhSz-U1.js +0 -1
  235. package/dist/ui/assets/context-CrZ58_Xy.js +0 -1
  236. package/dist/ui/assets/core-BFRZk2b-.js +0 -62
  237. package/dist/ui/assets/core-EGZ5TU35.js +0 -36
  238. package/dist/ui/assets/diagnostics-Cag7MsZI.js +0 -1
  239. package/dist/ui/assets/dist-Cu98pw2t.js +0 -9
  240. package/dist/ui/assets/dist-xQGtC96q.js +0 -4
  241. package/dist/ui/assets/edit-dC5128uh.js +0 -16
  242. package/dist/ui/assets/env-api-keys-BXRkymgV.js +0 -1
  243. package/dist/ui/assets/env-api-keys-CPPAm2nU.js +0 -1
  244. package/dist/ui/assets/error-CJ3RHG07.js +0 -1
  245. package/dist/ui/assets/github-copilot-DIBlC63Z.js +0 -2
  246. package/dist/ui/assets/google-generative-ai-BiB1UYSx.js +0 -1
  247. package/dist/ui/assets/google-vertex-B2qHfYD5.js +0 -1
  248. package/dist/ui/assets/kernel-worker-Yrt1LuLv.js +0 -1260
  249. package/dist/ui/assets/libesm-BypnjKEL.js +0 -13
  250. package/dist/ui/assets/main-bbC4wIXo.js +0 -22
  251. package/dist/ui/assets/models-CET5SEuw.js +0 -8
  252. package/dist/ui/assets/models-Xc0Gclrk.js +0 -8
  253. package/dist/ui/assets/new-session-CQJNUpUX.js +0 -2
  254. package/dist/ui/assets/node.browser-3Nibdso-.js +0 -1
  255. package/dist/ui/assets/node.browser-DFtqp6Hr.js +0 -1
  256. package/dist/ui/assets/oauth-bootstrap-CkaHhcfV.js +0 -2
  257. package/dist/ui/assets/openai-completions-Dx5kqcwu.js +0 -5
  258. package/dist/ui/assets/openai-completions-nAjVDcoU.js +0 -5
  259. package/dist/ui/assets/openai-responses-BzrpHAlB.js +0 -1
  260. package/dist/ui/assets/openai-responses-CnpU2GL3.js +0 -1
  261. package/dist/ui/assets/openrouter.models-BWF0jSAQ.js +0 -1
  262. package/dist/ui/assets/openrouter.models-DHpsqCCC.js +0 -1
  263. package/dist/ui/assets/panel-rpc-handlers-Q7Onn8CV.js +0 -2
  264. package/dist/ui/assets/pi-edit-execution-CqQRMS94.js +0 -2
  265. package/dist/ui/assets/pi-transcript-context-4pjVPiVC.js +0 -1
  266. package/dist/ui/assets/provider-store-access-DaIGmNhr.js +0 -1
  267. package/dist/ui/assets/provider-store-access-DvRuksc2.js +0 -1
  268. package/dist/ui/assets/providers-CA0WVcn4.js +0 -2
  269. package/dist/ui/assets/record-CBv8rWFt.js +0 -1
  270. package/dist/ui/assets/record-COQlaFL1.js +0 -1
  271. package/dist/ui/assets/setup-model-catalog-CB1b-8rG.js +0 -1
  272. package/dist/ui/assets/slicc-version-Ddt_Udk9.js +0 -1
  273. package/dist/ui/assets/system-one-shared-B0og9uUi.js +0 -1
  274. package/dist/ui/assets/system-one-shared-iVEDyuts.js +0 -1
  275. package/dist/ui/assets/transform-messages-BeurHGV0.js +0 -1
  276. package/dist/ui/assets/transform-messages-k2mfzJwY.js +0 -1
  277. package/dist/ui/assets/typesafe-system-one-D_iVKLH6.js +0 -1
  278. package/dist/ui/assets/typesafe-system-one-Ds8-mdzH.js +0 -1
  279. package/dist/ui/assets/wc-attach-DxjWEg8W.js +0 -13
  280. package/dist/ui/assets/wc-extension-CCj12o2_.js +0 -2
  281. package/dist/ui/assets/wc-follower-yHGrKVtf.js +0 -17
  282. package/dist/ui/assets/wc-live-D8Nh84rj.js +0 -248
  283. package/dist/ui/assets/wc-nav-CkRCT8hx.js +0 -2
  284. package/dist/ui/assets/wc-placeholder-CvIvwf-6.js +0 -4
  285. package/dist/ui/assets/wc-sprinkles-B6D8C3QF.js +0 -2
  286. package/dist/ui/assets/wc-transcript-export-DVQxHFUf.js +0 -2
  287. package/dist/ui/assets/wc-tray-gC6RCtTD.js +0 -5
  288. package/dist/ui/assets/welcome-detection-D6QVWgHU.js +0 -1
  289. package/dist/ui/assets/whisper-session-BGOkv9WY.js +0 -2
  290. package/dist/ui/assets/xai-grok-CWY2weXy.js +0 -1
  291. package/dist/ui/assets/xai-grok-xRvTAXQ3.js +0 -1
@@ -1,13 +0,0 @@
1
- var e=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends e{};function t(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function n(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function r(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function i(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function a(e,t){return r(e,t,``)}function o(e,t){return i(e,t,``)}function s(e,t){return t.slice(0,c(e,t))}function c(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function l(e,t){let n=[];for(let r of Array.from(t.segment(e))){let e=r.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}return n}function u(e,t){if(t)return f(e,t)[1];let n;for(n=e.length-1;n>=0&&e[n].match(/\s/);n--);return e.substring(n+1)}function d(e,t){if(t)return f(e,t)[0];let n=e.match(/^\s*/);return n?n[0]:``}function f(e,t){if(!t)return[d(e),u(e)];if(t.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);let n=l(e,t),r=n[0],i=n[n.length-1];return[/\s/.test(r)?r:``,/\s/.test(i)?i:``]}var p=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,m=RegExp(`[${p}]+|\\s+|[^${p}]`,`ug`);new class extends e{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=l(e,r)}else n=e.match(m)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&h(n,i,r,e,t.intlSegmenter),n=e,r=null,i=null)}),(r||i)&&h(n,i,r,null,t.intlSegmenter),e}};function h(e,c,l,p,m){if(c&&l){let[s,u]=f(c.value,m),[d,h]=f(l.value,m);if(e){let n=t(s,d);e.value=i(e.value,d,n),c.value=a(c.value,n),l.value=a(l.value,n)}if(p){let e=n(u,h);p.value=r(p.value,h,e),c.value=o(c.value,e),l.value=o(l.value,e)}}else if(l){if(e){let e=d(l.value,m);l.value=l.value.substring(e.length)}if(p){let e=d(p.value,m);p.value=p.value.substring(e.length)}}else if(e&&p){let s=d(p.value,m),[l,u]=f(c.value,m),h=t(s,l);c.value=a(c.value,h);let g=n(a(s,h),u);c.value=o(c.value,g),p.value=r(p.value,s,g),e.value=i(e.value,s,s.slice(0,s.length-g.length))}else if(p){let e=d(p.value,m),t=s(u(c.value,m),e);c.value=o(c.value,t)}else if(e){let t=s(u(e.value,m),d(c.value,m));c.value=a(c.value,t)}}new class extends e{tokenize(e){let t=RegExp(`(\\r?\\n)|[${p}]+|[^\\S\\n\\r]+|[^${p}]`,`ug`);return e.match(t)||[]}};var g=new class extends e{constructor(){super(...arguments),this.tokenize=v}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
2
- `))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
3
- `))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
4
- `)&&(e=e.slice(0,-1)),t.endsWith(`
5
- `)&&(t=t.slice(0,-1))),super.equals(e,t,n)}};function _(e,t,n){return g.diff(e,t,n)}function v(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
6
- `));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function y(e){return e==`.`||e==`!`||e==`?`}new class extends e{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(y(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends e{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends e{constructor(){super(...arguments),this.tokenize=v}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(b(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function b(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=b(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=b(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends e{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};var x={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function S(e,t,n,r,i,a,o){let s;s=o?typeof o==`function`?{callback:o}:o:{},s.context===void 0&&(s.context=4);let c=s.context;if(s.newlineIsToken)throw Error(`newlineIsToken may not be used with patch-generation functions, only with diffing functions`);if(s.callback){let{callback:e}=s;_(n,r,Object.assign(Object.assign({},s),{callback:t=>{let n=l(t);e(n)}}))}else return l(_(n,r,s));function l(n){if(!n)return;n.push({value:``,lines:[]});function r(e){return e.map(function(e){return` `+e})}let o=[],s=0,l=0,u=[],d=1,f=1;for(let e=0;e<n.length;e++){let t=n[e],i=t.lines||T(t.value);if(t.lines=i,t.added||t.removed){if(!s){let t=n[e-1];s=d,l=f,t&&(u=c>0?r(t.lines.slice(-c)):[],s-=u.length,l-=u.length)}for(let e of i)u.push((t.added?`+`:`-`)+e);t.added?f+=i.length:d+=i.length}else{if(s){if(i.length<=c*2&&e<n.length-2)for(let e of r(i))u.push(e);else{let e=Math.min(i.length,c);for(let t of r(i.slice(0,e)))u.push(t);let t={oldStart:s,oldLines:d-s+e,newStart:l,newLines:f-l+e,lines:u};o.push(t),s=0,l=0,u=[]}}d+=i.length,f+=i.length}}for(let e of o)for(let t=0;t<e.lines.length;t++)e.lines[t].endsWith(`
7
- `)?e.lines[t]=e.lines[t].slice(0,-1):(e.lines.splice(t+1,0,`\`),t++);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:a,hunks:o}}}function C(e,t){if(t||=x,Array.isArray(e)){if(e.length>1&&!t.includeFileHeaders)throw Error(`Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)`);return e.map(e=>C(e,t)).join(`
8
- `)}let n=[];t.includeIndex&&e.oldFileName==e.newFileName&&n.push(`Index: `+e.oldFileName),t.includeUnderline&&n.push(`===================================================================`),t.includeFileHeaders&&(n.push(`--- `+e.oldFileName+(e.oldHeader===void 0?``:` `+e.oldHeader)),n.push(`+++ `+e.newFileName+(e.newHeader===void 0?``:` `+e.newHeader)));for(let t=0;t<e.hunks.length;t++){let r=e.hunks[t];r.oldLines===0&&--r.oldStart,r.newLines===0&&--r.newStart,n.push(`@@ -`+r.oldStart+`,`+r.oldLines+` +`+r.newStart+`,`+r.newLines+` @@`);for(let e of r.lines)n.push(e)}return n.join(`
9
- `)+`
10
- `}function w(e,t,n,r,i,a,o){if(typeof o==`function`&&(o={callback:o}),o?.callback){let{callback:s}=o;S(e,t,n,r,i,a,Object.assign(Object.assign({},o),{callback:e=>{s(e?C(e,o.headerOptions):void 0)}}))}else{let s=S(e,t,n,r,i,a,o);return s?C(s,o?.headerOptions):void 0}}function T(e){let t=e.endsWith(`
11
- `),n=e.split(`
12
- `).map(e=>e+`
13
- `);return t?n.pop():n.push(n.pop().slice(0,-1)),n}export{w as t};
@@ -1,22 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-feature-flags-remote-B-VirOkj.js","assets/feature-flags-DvsApnS-.js","assets/sudo-8CgZUyow.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/quick-llm-D5BvwAIg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/utf16-clip-CGL7omVm.js","assets/account-store-DmRIEeKD.js","assets/core-BFRZk2b-.js","assets/libesm-BypnjKEL.js","assets/proxied-fetch-4VBgrEIu.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-hMRoGGjt.js","assets/float-topology-C_iRKPQK.js","assets/secrets-bridge-client-D734Xx8G.js","assets/port-bridge-client-B-gpiOVR.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-CA0WVcn4.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-Df3uDddz.js","assets/claude-model-version-3MWQoaco.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-BJTFywJo.js","assets/types-DSxCdZw6.js","assets/approval-decision-BvumWm-U.js","assets/capability-6V-AYPSJ.js","assets/page-approval-service-ja6kjLj8.js","assets/extension-bridge-transport-B-i9vQpb.js","assets/pending-request-table-k-D7ZZsL.js","assets/lick-ws-bridge-C-Y8nKtx.js","assets/tray-leader-CjMPhQNY.js","assets/logger-BoSvu4mW.js","assets/cdp-BMRNgxhA.js","assets/navigation-watcher-CPcnZL9l.js","assets/bridge-protocol-C52CnDIj.js","assets/wc-follower-oauth-BiHrXTeh.js","assets/wc-shell-BeGVTjhP.js","assets/mime-types-D0xZwlMO.js","assets/same-file-identity-OexpsaSD.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/wc-shell-WkeczD9x.css","assets/sprinkle-renderer-C1AKQbf2.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-DSEuryGJ.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/slicc-app-url-BKHBBuTR.js","assets/transcript-export-DP-r8eDz.js","assets/tray-follower-status-BAjnN7Ar.js","assets/record-CBv8rWFt.js","assets/export-spool-CuNzzI8a.js","assets/src-BWaKqLvQ.js","assets/main-cherry-C_30DmYa.js","assets/synthetic-cdp-transport-OUVdC4zy.js","assets/oauth-service-GpUOM3Aw.js","assets/setup-model-catalog-CB1b-8rG.js","assets/wc-follower-yHGrKVtf.js","assets/wc-live-D8Nh84rj.js","assets/slugify-BYJ6QVAt.js","assets/frozen-archive-writer-BmnL05hC.js","assets/provider-budget-LCzMPlKv.js","assets/browser-BhTdBqdp.js","assets/descriptor-CuhPBdq8.js","assets/types-CFfBWsH5.js","assets/frozen-session-identity-BvbW8Joj.js","assets/session-jsonl-CEqurmTu.js","assets/live-session-curation-DClAHiV3.js","assets/thinking-level-DCJktR5U.js","assets/wc-unit-context-CZro7UrY.js","assets/wc-sprinkles-B6D8C3QF.js","assets/wc-attach-DxjWEg8W.js","assets/wc-permissions-DadG0Lur.js","assets/oauth-bootstrap-CkaHhcfV.js","assets/legacy-styles-B3nS5QUo.js","assets/connect-surface-Bm6PRdh4.js","assets/wc-extension-CCj12o2_.js","assets/wc-detached-DJFxz5jb.js","assets/recovery-screen-e0y59jaB.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./modulepreload-polyfill-P2Xu9kJm.js";import"./core-BFRZk2b-.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./logger-DDBAeTLF.js";import{i as r}from"./feature-flags-DvsApnS-.js";import{a as i,i as a,n as o,o as s,r as c,t as l}from"./bridge-protocol-C52CnDIj.js";import{A as u,B as d,C as f,D as p,E as m,F as h,G as g,H as _,I as v,J as y,K as b,L as x,M as S,N as C,O as ee,P as te,R as w,S as ne,T as re,U as ie,V as ae,W as oe,X as se,Y as ce,_ as le,a as ue,b as de,c as fe,d as pe,f as me,g as he,h as ge,i as _e,j as ve,k as ye,l as be,m as xe,n as T,o as Se,p as Ce,q as we,r as Te,s as Ee,t as De,u as E,v as Oe,w as D,x as ke,y as Ae,z as je}from"./account-store-DmRIEeKD.js";import"./proxied-fetch-4VBgrEIu.js";import{n as O,t as Me}from"./runtime-env-Dlaokqg1.js";import{c as Ne,d as Pe,l as Fe,n as Ie,o as Le,s as Re,t as ze,u as Be}from"./api-endpoint-DuEQRZ4g.js";import{o as Ve,t as He}from"./telemetry-B0sKnLBU.js";import{a as Ue}from"./providers-CA0WVcn4.js";import{t as We}from"./stored-accounts-ChNHYF68.js";import{t as Ge}from"./tray-follower-status-BAjnN7Ar.js";import{n as Ke}from"./clipboard-eqmn97SP.js";var qe=`role`;function Je(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e&&typeof e.source==`string`}function Ye(e){if(!e)return!1;let t=e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1):e;return!!(t===`localhost`||t===`::1`||/^127(\.\d{1,3}){3}$/.test(t))}var k=`tray`,Xe=`trayWorkerUrl`,Ze=`lead`;function A(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}function Qe(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.toString(),r=t.pathname.split(`/`).filter(Boolean);if(r.length<2||r.at(-2)!==`join`)return null;let[i,a,...o]=decodeURIComponent(r.at(-1)).split(`.`);if(!i||!a||o.length>0)return null;r.splice(-2,2),t.pathname=r.length>0?`/${r.join(`/`)}`:`/`;let s=A(t.toString());return s?{workerBaseUrl:s,trayId:i,joinUrl:n}:null}catch{return null}}function $e(e,t){let n=new URL(e);return n.searchParams.delete(Xe),n.searchParams.delete(Ze),n.searchParams.set(k,t),n.toString()}function et(e){try{let t=new URL(e);return`${t.protocol===`wss:`?`https:`:`http:`}//${t.host}`}catch{return null}}function tt(e){try{let t=new URL(e);return`${t.protocol}//${t.host}/licks-ws`}catch{return null}}function nt(e){let t;try{t=new URLSearchParams(e)}catch{return null}let n=t.get(a),r=t.get(c);if(!n||!r||!/^wss?:\/\//.test(n))return null;let i;try{i=new URL(n).hostname}catch{return null}if(!Ye(i))return null;let o=t.get(qe),s=o===`leader`||o===`follower`?o:null;return{url:n,subprotocol:`${l}${r}`,token:r,apiBaseUrl:et(n),lickWsUrl:tt(n),role:s}}var rt=`slicc:bridge-config`,it=`slicc:extension-delegate-config`;function at(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.type===`slicc:ext-fetch`&&typeof t.extensionId==`string`&&!!t.request&&typeof t.request==`object`}var ot=n(`boot/ext-fetch-delegate`);function st(){let e=globalThis.chrome?.runtime;return e&&typeof e.connect==`function`?e:null}function ct(e,t,n){let r=st();if(!r){try{t.postMessage({type:`response-error`,error:`extension-delegate: chrome.runtime.connect unavailable`})}catch{}t.close();return}let i=e.extensionId||n,a;try{a=r.connect(i,{name:`fetch-proxy.fetch`})}catch(e){try{t.postMessage({type:`response-error`,error:`extension-delegate: connect failed — ${e instanceof Error?e.message:String(e)}`})}catch{}t.close();return}let o=!1,s=()=>{o=!0;try{a.disconnect()}catch{}try{t.close()}catch{}};a.onMessage.addListener(e=>{if(o)return;let n=e;try{t.postMessage(n)}catch{}(n.type===`response-end`||n.type===`response-error`)&&s()}),a.onDisconnect.addListener(()=>{if(!o){try{t.postMessage({type:`response-error`,error:`extension-delegate: fetch-proxy port disconnected`})}catch{}s()}}),a.postMessage({type:`request`,...e.request})}function lt(e){typeof navigator>`u`||!navigator.serviceWorker||navigator.serviceWorker.addEventListener(`message`,t=>{if(!at(t.data))return;let n=t.ports?.[0];if(!n){ot.warn(`delegated fetch envelope arrived without a response port`);return}ct(t.data,n,e)})}var ut=`slicc_feature_flags_remote`;function dt(e){return`${ut}:${e}`}function ft(e,t){let n=mt(t);r(e,ht(n,e)??{})}function pt(e,t,n){try{e?.setItem(dt(t),JSON.stringify(n))}catch{}}function mt(e){if(e!==void 0)return e;try{let e=globalThis.localStorage;return typeof e?.getItem!=`function`||typeof e.setItem!=`function`?void 0:e}catch{return}}function ht(e,t){try{let n=e?.getItem(dt(t));return n?gt(JSON.parse(n)):null}catch{return null}}function gt(e){return!_t(e)||Object.values(e).some(e=>typeof e!=`string`)?null:e}function _t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function vt(e){return Je(e)}var j=`slicc.trayWorkerBaseUrl`,M=`slicc.trayJoinUrl`;function N(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),r=null;if(n.length>=2&&n.at(-2)===`tray`)r=decodeURIComponent(n.at(-1)),n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`;else if(n.length>=2&&n.at(-2)===`join`)return Qe(t.toString());let i=A(t.toString());return i?{workerBaseUrl:i,trayId:r,joinUrl:null}:null}catch{return null}}function P(e){let t=N(e);return t?.joinUrl?t:null}var yt=i,bt=s;function xt(e,t){let n=A(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t.replace(/^\/+/,``);return new URL(r,`${n}/`).toString()}function F(e,t){let n=P(t);return n?(e.setItem(M,n.joinUrl),e.setItem(j,n.workerBaseUrl),n):null}function St(e){return!!P(e?.getItem(`slicc.trayJoinUrl`)??null)}function Ct(e,t){let n=!1;try{let t=new URL(e),r=t.searchParams.get(k);if(r!==null){n=!0;let e=N(r);if(e?.joinUrl)return e.joinUrl}t.searchParams.get(`slicc`)===`leader`&&(n=!0)}catch{}let r=N(e);return r?.joinUrl?r.joinUrl:(r?.trayId&&(n=!0),n?null:P(t?.getItem(`slicc.trayJoinUrl`)??null)?.joinUrl??null)}function wt(e){try{let t=new URL(e);t.searchParams.delete(k);let n=t.pathname.split(`/`).filter(Boolean);return n.length>=2&&n.at(-2)===`join`&&(n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`),t.toString()}catch{return e}}function Tt(e,t){let n=A(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t?.trim();return r?new URL(`tray/${encodeURIComponent(r)}`,`${n}/`).toString():n}function Et(e,t,n){return $e(e,Tt(t,n))}async function Dt(e){let t=At(e.locationHref);if(t)return e.storage&&(t.joinUrl&&e.storage.setItem(M,t.joinUrl),e.storage.setItem(j,t.workerBaseUrl)),t;let n=P(e.storage?.getItem(`slicc.trayJoinUrl`)??null);if(n)return e.storage&&e.storage.setItem(j,n.workerBaseUrl),n;let r=e.runtimeConfigFetcher?await jt(e.runtimeConfigFetcher):null;if(r?.joinConfig)return e.storage&&(e.storage.setItem(M,r.joinConfig.joinUrl),e.storage.setItem(j,r.joinConfig.workerBaseUrl)),r.joinConfig;let i=r?.workerBaseUrl??null,a=A(e.storage?.getItem(`slicc.trayWorkerBaseUrl`)??null),o=A(e.envBaseUrl??null),s=A(e.defaultWorkerBaseUrl??null),c=i??a??o??s;return c?(e.storage&&e.storage.setItem(j,c),{workerBaseUrl:c,trayId:null,joinUrl:null}):null}async function Ot(e){return(await Dt(e))?.workerBaseUrl??null}async function kt(e=fetch){try{let t=await e(Re(`/api/runtime-config`),{cache:`no-store`,headers:ze()});return await Pe(t),t.ok?await t.json():null}catch(e){if(Le(e))throw e;return null}}function At(e){try{let t=new URL(e),n=N(t.searchParams.get(k));if(n)return n;let r=N(t.searchParams.get(Ze));if(r)return r;let i=A(t.searchParams.get(Xe));return i?{workerBaseUrl:i,trayId:null,joinUrl:null}:Qe(e)||null}catch{return null}}async function jt(e){let t=await e();if(!t)return null;let n=P(t.trayJoinUrl??null);return{workerBaseUrl:A(t.trayWorkerBaseUrl??null),joinConfig:n}}function Mt(e,t,n){if(t){try{if(new URL(e).searchParams.has(`detached`))return`extension-detached`}catch{}return`extension`}try{let t=new URL(e);return t.searchParams.get(`connect`)===`1`?`connect`:t.searchParams.get(`runtime`)===`hosted-leader`?`hosted-leader`:t.searchParams.get(`cherry`)===`1`?`cherry`:Ct(e,n===void 0?typeof window<`u`?window.localStorage:null:n)?`follower`:Pt(t)?`electron-overlay`:`standalone`}catch{return`standalone`}}function Nt(e,t){return e===`electron-overlay`||e===`hosted-leader`||e===`standalone`&&t}function Pt(e){return e.pathname===`/electron`||e.pathname===`/electron/`||e.searchParams.get(`runtime`)===`electron-overlay`}function Ft(e,n){ft(e,n.storage),t(async()=>{let{refreshFeatureFlagsForPage:e,scheduleFeatureFlagsRefresh:t}=await import(`./setup-feature-flags-remote-B-VirOkj.js`);return{refreshFeatureFlagsForPage:e,scheduleFeatureFlagsRefresh:t}},__vite__mapDeps([0,1])).then(({refreshFeatureFlagsForPage:t,scheduleFeatureFlagsRefresh:r})=>(r(e,n),t(e,n))).catch(()=>{})}function It(e){let t=Mt(e.locationHref,e.isExtension,e.storage);return Ft(t,e),t}function Lt(){if(O())return;let e=new Blob([`
3
- let lastPong = Date.now();
4
- let frozen = false;
5
- setInterval(() => {
6
- postMessage({ type: 'ping' });
7
- const elapsed = Date.now() - lastPong;
8
- if (elapsed > 5000 && !frozen) {
9
- frozen = true;
10
- postMessage({ type: 'freeze-detected', elapsed });
11
- }
12
- }, 2000);
13
- self.onmessage = (e) => {
14
- if (e.data.type === 'pong') {
15
- lastPong = Date.now();
16
- if (frozen) {
17
- frozen = false;
18
- postMessage({ type: 'freeze-recovered' });
19
- }
20
- }
21
- };
22
- `],{type:`application/javascript`}),t=URL.createObjectURL(e),n=new Worker(t);URL.revokeObjectURL(t),n.onmessage=e=>{if(e.data.type===`ping`)n.postMessage({type:`pong`});else if(e.data.type===`freeze-detected`)console.error(`[freeze-watchdog] Main thread blocked for ${e.data.elapsed}ms — capturing trace on recovery`);else if(e.data.type===`freeze-recovered`){console.error(`[freeze-watchdog] Main thread recovered. Stack trace at recovery point:`),console.trace(`[freeze-watchdog] recovery stack`);let e=performance.getEntriesByType(`longtask`);e.length>0&&console.error(`[freeze-watchdog] Long tasks:`,e.map(e=>({duration:e.duration,startTime:e.startTime,name:e.name})))}},window.addEventListener(`beforeunload`,()=>{n.terminate()},{once:!0})}var Rt=`slicc-nuke-control`,zt=[`slicc:welcome-flow-fired`,`slicc.trayJoinUrl`,`slicc.trayWorkerBaseUrl`];function Bt(e=()=>location.reload()){if(typeof BroadcastChannel!=`function`)return()=>{};let t=new BroadcastChannel(Rt),n=t=>{let n=t.data;if(n?.type===`nuke-reload`){if(Array.isArray(n.keysToRemove)){for(let e of n.keysToRemove)if(typeof e==`string`)try{localStorage.removeItem(e)}catch{}}e()}};return t.addEventListener(`message`,n),()=>{t.removeEventListener(`message`,n),t.close()}}var I=null;function Vt(){return I||(I=Bt(),I)}n(`stale-asset`);var Ht=`slicc-stale-asset-reload`;function Ut(e,t){if(typeof BroadcastChannel!=`function`)return()=>{};let n=new BroadcastChannel(Ht),r=n=>{let r=n.data;r?.type===`stale-asset-reload`&&r.instanceId===e&&t(r.replayTurn===!0)};return n.addEventListener(`message`,r),()=>{n.removeEventListener(`message`,r),n.close()}}var Wt=`slicc:stale-asset-reloaded-at`,Gt=6e4,L=`slicc:stale-asset-replay`;function Kt(e=window.sessionStorage){try{e.setItem(L,`1`)}catch{}}function qt(e=window.sessionStorage){try{return e.getItem(L)===`1`&&(e.removeItem(L),!0)}catch{return!1}}function Jt(){return{reload:()=>window.location.reload(),storage:window.sessionStorage,now:()=>Date.now(),windowMs:Gt,storageKey:Wt}}function Yt(e,t,n){return e===null||t-e>=n}function R(e=Jt()){let t;try{t=e.storage.getItem(e.storageKey)}catch{return!1}let n=t===null?null:Number(t),r=n!==null&&Number.isFinite(n)?n:null,i=e.now();if(!Yt(r,i,e.windowMs))return!1;try{e.storage.setItem(e.storageKey,String(i))}catch{return!1}return e.reload(),!0}var z=null,B=null;function Xt(e){z||(B={...Jt(),...e},z=e=>{R(B)&&e.preventDefault()},window.addEventListener(`vite:preloadError`,z))}var V=null;function Zt(e){return V||(V=Ut(e,e=>{e&&Kt(),R(B??void 0)}),V)}var Qt=3e4,$t=.2,en=`CDP bridge rejected the session token (bridge-token-required). Open SLICC again from Sliccstart to pick up a fresh token.`,tn=class extends Error{constructor(e=en){super(e),this.name=`CdpBridgeRejectedError`}},nn=class extends Error{constructor(){super(`CDP reconnect is backing off`),this.name=`CdpReconnectBackoffError`}};function rn(e,t=Math.random){let n=Math.min(Qt,250*2**Math.min(Math.max(0,e),16)),r=Math.round(n*$t*t());return Math.min(Qt,n+r)}function an(e){try{let t=new URL(e);return t.protocol!==`ws:`&&t.protocol!==`wss:`?null:`${t.protocol===`wss:`?`https:`:`http:`}//${t.host}`}catch{return null}}function on(e){let t=(e===void 0?[]:Array.isArray(e)?e:[e]).find(e=>e.startsWith(l));if(!t)return null;let n=t.slice(l.length);return n.length>0?n:null}async function sn(e,t=globalThis.fetch){let n=on(e.protocols),r=an(e.url);if(!n||!r||typeof t!=`function`)return`transient`;try{let e=await t(`${r}/api/status`,{method:`GET`,headers:{[o]:n},cache:`no-store`,signal:AbortSignal.timeout(1e3)}),i=await e.text();return e.status===403&&i.includes(`bridge-token-required`)?`terminal`:`transient`}catch{return`transient`}}var H=`slicc-cdp-superseded-banner`,cn=`slicc-cdp-bridge-rejected-banner`,ln=[`position:fixed`,`left:0`,`right:0`,`z-index:2147483647`,`padding:10px 16px`,`background:#b3261e`,`color:#fff`,`font:13px/1.4 system-ui,sans-serif`,`text-align:center`,`box-shadow:0 1px 4px rgba(0,0,0,0.3)`].join(`;`);function un(e){if(e.getElementById(H))return;let t=e.createElement(`div`);t.id=H,t.setAttribute(`role`,`alert`),t.textContent=`Another SLICC tab or window has taken control of this browser instance. Only one tab can drive the browser per instance — close the other tabs, then reload this page to resume.`,t.style.cssText=`top:0;${ln}`,e.body.appendChild(t)}function dn(e){if(e.getElementById(cn))return;let t=e.createElement(`div`);t.id=cn,t.setAttribute(`role`,`alert`),t.textContent=`The bridge token for this tab was rejected by the local SLICC server. Open SLICC again from Sliccstart so the tab picks up a fresh token.`;let n=e.getElementById(H)?`top:44px;`:`top:0;`;t.style.cssText=`${n}${ln}`,e.body.appendChild(t)}var fn=e({setupSudoExtension:()=>mn,setupSudoStandalone:()=>pn});async function pn(e){let{createSudoBroker:n,installSudoTestHook:r}=await t(async()=>{let{createSudoBroker:e,installSudoTestHook:t}=await import(`./sudo-8CgZUyow.js`);return{createSudoBroker:e,installSudoTestHook:t}},__vite__mapDeps([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])),{createRestCapabilityBroker:i}=await t(async()=>{let{createRestCapabilityBroker:e}=await import(`./capability-6V-AYPSJ.js`).then(e=>e.t);return{createRestCapabilityBroker:e}},__vite__mapDeps([39,6,3]));r(n(i()))}async function mn(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo-8CgZUyow.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));n()}function hn(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`slicc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function gn(e){let t;try{t=new URLSearchParams(e)}catch{return null}if(t.get(`slicc`)!==`leader`)return null;let n=t.get(`ext`);return n?{extensionId:n}:null}var _n=[100,200,400,800,1600];async function vn(e,t,n,r=_n,i=e=>new Promise(t=>setTimeout(t,e))){let a=r.length+1,o=null;for(let s=0;s<a;s++)try{await e.connect(t),s>0&&n.info(`CDP bridge connect succeeded after retry`,{attempt:s+1});return}catch(e){if(o=e,e instanceof tn){n.error(`CDP bridge rejected the session token; stopped reconnecting`,e.message);return}s<r.length&&await i(r[s]??0)}n.warn(`Initial CDP connect failed after retries; worker-forwarded commands will retry on demand`,o instanceof Error?o.message:String(o))}async function yn(e,n,r){let{ExtensionBridgeTransport:i}=await t(async()=>{let{ExtensionBridgeTransport:e}=await import(`./extension-bridge-transport-B-i9vQpb.js`);return{ExtensionBridgeTransport:e}},__vite__mapDeps([41,4,42])),{mapDiscoveryPayloadToLickEvent:a,mapNavigatePayloadToLickEvent:o}=await t(async()=>{let{mapDiscoveryPayloadToLickEvent:e,mapNavigatePayloadToLickEvent:t}=await import(`./lick-ws-bridge-C-Y8nKtx.js`);return{mapDiscoveryPayloadToLickEvent:e,mapNavigatePayloadToLickEvent:t}},__vite__mapDeps([43,4,44,6,20,21,22,45])),s=null,c=[],l=!1,u=e=>{s=e;for(let t of c)e.sendForwardedLick(t);c.length=0},d=e=>{if(e){if(s){s.sendForwardedLick(e);return}c.length>=50&&(c.shift(),l||(l=!0,r.warn(`extension-bridge lick buffer overflow (cap 50); dropping oldest pending licks until the kernel client attaches`))),c.push(e)}},f=new e(new i({extensionId:n,onLick:e=>{d(o(e))},onDiscovery:e=>{d(a(e))},onOpenSettings:()=>{globalThis.dispatchEvent(new CustomEvent(`slicc:open-settings-from-panel`))}}));return await vn(f,void 0,r),{browser:f,attachLickForwardingClient:u}}async function bn(e){let{browser:t,bridge:n,log:r,document:i,sleep:a}=e;t.setCdpConnectFailureClassifier(sn),t.setCdpBridgeRejectedHandler(()=>dn(i)),n&&r.info(`Routing CDP through local standalone bridge`,{url:n.url,role:n.role??`(unset)`});let o=n?{url:n.url,protocols:n.subprotocol}:void 0;if(n?.role===`follower`){r.info(`Skipping CDP connect for follower overlay tab`),t.primeConnectOptions(o);return}await vn(t,o,r,void 0,a),t.setCdpSupersededHandler(()=>un(i))}async function xn(e){let{runtimeMode:n,envBaseUrl:r,window:i,log:a,sleep:o}=e,s=n===`electron-overlay`;a.info(`setting up standalone page runtime (BrowserAPI + CDP)`,{runtimeMode:n});let{BrowserAPI:c}=await t(async()=>{let{BrowserAPI:e}=await import(`./cdp-BMRNgxhA.js`);return{BrowserAPI:e}},__vite__mapDeps([46,4,47,48,49,6,3,50,51,19,15,16,7,8,9,10,11,12,13,17,14,1,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,52,53,54,36,55,56,57,58,59,60,61,62,63,64,65,66,67,68,42,69,70,71]));await pn({log:a});let l,u,d,f=null,p=null,m=null,h=null,g,_=n===`cherry`?null:gn(i.location.search),v=!!_&&Me(),y=n===`cherry`||v?null:nt(i.location.search);y?.apiBaseUrl&&(f=y.apiBaseUrl,Be(y.apiBaseUrl),p=y.token,Ne(y.token)),y?.lickWsUrl&&(m=y.lickWsUrl);let b=n===`cherry`||v||y!==null,x=await kt(),S=Nt(n,x!==null)?yt:null;if(await Dt({locationHref:i.location.href,storage:i.localStorage,envBaseUrl:r,defaultWorkerBaseUrl:S,runtimeConfigFetcher:async()=>x}),n===`cherry`){let{setupCherryFollower:e}=await t(async()=>{let{setupCherryFollower:e}=await import(`./main-cherry-C_30DmYa.js`);return{setupCherryFollower:e}},__vite__mapDeps([72,4,67,42,46,47,48,49,6,3,50,51,19,15,16,7,8,9,10,11,12,13,17,14,1,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,52,53,54,36,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,71,73])),n=await e();l=n.browser,u=n.joinUrl,d=n.transport}else if(_&&Me()){a.info(`Routing CDP through the extension bridge (leader tab)`);let e=await yn(c,_.extensionId,a);l=e.browser,g=e.attachLickForwardingClient,h=_.extensionId,Fe(_.extensionId)}else l=new c,await bn({browser:l,bridge:y,log:a,document:i.document,sleep:o});let C=l.getUnderlyingTransport();return globalThis.__slicc_browser=l,{browser:l,realCdpTransport:C,hasLocalCdpSurface:b,cherryJoinUrl:u,cherryTransport:d,instanceId:hn(),isElectronOverlay:s,localApiBaseUrl:f,bridgeToken:p,localLickWsUrl:m,extensionDelegateId:h,attachLickForwardingClient:g}}var U=n(`storage-persist`);function Sn(){try{return globalThis.navigator?.storage}catch{return}}async function Cn(e=Sn()){try{return typeof e?.persist==`function`?typeof e.persisted==`function`&&await e.persisted()?`already-persisted`:await e.persist()?`granted`:`denied`:`unsupported`}catch(e){return U.warn(`storage persistence check failed`,e),`failed`}}var wn=!1;function Tn(){wn||(wn=!0,Cn().then(e=>{switch(e){case`granted`:U.info(`OPFS marked persistent — SLICC data is now exempt from disk-pressure eviction`);break;case`already-persisted`:U.debug(`OPFS already persistent`);break;case`denied`:U.warn(`Browser declined persistent storage — SLICC data can be evicted if the disk fills up`);break;case`unsupported`:U.debug(`navigator.storage.persist() unavailable in this runtime`)}}).catch(()=>{}))}var W=n(`boot/sw-registration`);async function En(e=null,t=null){let n=(()=>{try{return new URL(window.location.href).searchParams.get(`connect`)===`1`}catch{return!1}})();if(`serviceWorker`in navigator&&n&&await kn())return`reload-pending`;if(!(`serviceWorker`in navigator)||n)return`ready`;try{if(await navigator.serviceWorker.register(`/preview-sw.js`,{scope:`/preview/`}),W.info(`Preview SW registered`),!O())try{await navigator.serviceWorker.register(`/llm-proxy-sw.js`,{scope:`/`}),W.info(`LLM-proxy SW registered`)}catch(e){W.error(`LLM-proxy SW registration failed — cross-origin LLM calls will hit CORS`,e)}if(navigator.serviceWorker.controller||await Promise.race([new Promise(e=>navigator.serviceWorker.addEventListener(`controllerchange`,()=>e(),{once:!0})),new Promise(e=>setTimeout(e,1500))]),!navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-sw-reloaded`))return sessionStorage.setItem(`slicc-sw-reloaded`,`1`),W.info(`Reloading once to gain SW control`),location.reload(),`reload-pending`;sessionStorage.removeItem(`slicc-sw-reloaded`),e&&(Dn(e),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{Dn(e)})),t&&(On(t),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{On(t)}))}catch(e){W.error(`Preview SW registration failed — preview feature will not work`,e)}return`ready`}function Dn(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:rt,apiBaseUrl:e.apiBaseUrl,token:e.token};try{t.postMessage(n)}catch(e){W.warn(`LLM-proxy SW bridge-config postMessage failed`,e)}}function On(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:it,extensionId:e.extensionId};try{t.postMessage(n)}catch(e){W.warn(`LLM-proxy SW extension-delegate postMessage failed`,e)}}async function kn(){try{let e=await navigator.serviceWorker.getRegistrations();if(await Promise.all(e.map(e=>e.unregister().catch(()=>!1))),navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-connect-sw-cleared`))return sessionStorage.setItem(`slicc-connect-sw-cleared`,`1`),W.info(`connect mode: detaching from service worker (no proxy on worker origin)`),location.reload(),!0;sessionStorage.removeItem(`slicc-connect-sw-cleared`)}catch(e){W.error(`connect-mode SW cleanup failed`,e)}return!1}function An(e,t){if(e.state===`inactive`&&t.state===`inactive`)return{kind:`leader-offer`,label:`Enable multi-browser sync`,caption:`Connect another browser to this session.`};if(e.state===`leader`&&e.session?.joinUrl)return{kind:`leader-copy`,joinUrl:e.session.joinUrl,label:`Enable multi-browser sync`,caption:`Share this URL to connect more browsers.`};if(e.state!==`inactive`){let t=e.state===`connecting`?`Setting up multi-browser sync…`:e.state===`reconnecting`?`Reconnecting…`:`Sync service unreachable.`;return{kind:`leader-pending`,label:`Multi-browser sync`,caption:e.error??t}}return{kind:`follower`,label:`Multi-browser sync`,caption:t.error??t.lastError??jn(t.state)??`Mirroring another browser.`}}function jn(e){switch(e){case`connected`:return`Connected — mirroring another browser.`;case`connecting`:return`Connecting to the other browser…`;case`reconnecting`:return`Reconnecting…`;case`disconnected`:return`Disconnected from the other browser.`;default:return null}}function Mn(e){let t=e.trim();if(!t)return`Paste a sync URL to continue.`;let n=null;try{n=new URL(t)}catch{return`That doesn’t look like a URL. Paste the full https://… link from the other browser.`}return n.protocol!==`https:`&&n.protocol!==`http:`?`Sync URLs must start with https://.`:n.pathname.includes(`/join/`)?`That sync URL is malformed. Re-copy it from the other browser and try again.`:`This URL is missing the /join/… capability. Use “Enable multi-browser sync” on the other browser.`}var Nn=e({ACCOUNTS_KEY:()=>We,__test__:()=>De,addAccount:()=>T,applyProviderDefaults:()=>Te,clearAllSettings:()=>_e,clearApiKey:()=>ue,clearBaseUrl:()=>Se,clearSelectedProvider:()=>Ee,describeInvalidJoinUrl:()=>Mn,downloadProviders:()=>Ln,ensureOAuthMaskReplica:()=>fe,exportProviders:()=>be,getAccounts:()=>E,getAllAvailableModels:()=>pe,getAllExtraOAuthDomains:()=>me,getAlternativeModelProviders:()=>Ce,getApiKey:()=>xe,getApiKeyForProvider:()=>ge,getApiVersionForProvider:()=>he,getAvailableProviders:()=>le,getBaseUrl:()=>Oe,getBaseUrlForProvider:()=>Ae,getDeploymentForProvider:()=>de,getExtraOAuthDomains:()=>ke,getModelCatalogProviderIds:()=>ne,getOAuthAccountInfo:()=>f,getProviderConfig:()=>D,getProviderModels:()=>re,getRawApiKeyForProvider:()=>m,getSelectedModelId:()=>p,getSelectedProvider:()=>ee,isModelHiddenFromPicker:()=>ye,isUsableOAuthMaskReplica:()=>u,logoutOAuthAccount:()=>ve,maskOAuthTokenWithRetry:()=>S,migrateLegacyAuthOnlySelection:()=>C,modelRunsOnProvider:()=>te,persistOAuthMaskViaServiceWorker:()=>h,policyVisible:()=>v,providerOffersLlmModels:()=>x,reloginOAuthAccount:()=>Un,removeAccount:()=>w,resolveCurrentModel:()=>je,resolveModelById:()=>d,resolveModelByShorthand:()=>ae,resolveModelIdForScoop:()=>_,resolveModelSelectionForScoop:()=>ie,saveOAuthAccount:()=>oe,setApiKey:()=>g,setBaseUrl:()=>b,setExtraOAuthDomains:()=>we,setExtraOAuthDomainsAsync:()=>y,setSelectedModelId:()=>ce,setSelectedProvider:()=>se,showProviderSettings:()=>lr,testOnlyDispatchTrayJoinWithFailureFeedback:()=>Fn}),Pn=n(`provider-settings`);function Fn(e,t){return In(e,t)}function In(e,t){let n=`tray-join-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=!1,i,a=()=>{r||(r=!0,i!==void 0&&clearTimeout(i),window.removeEventListener(`slicc:tray-join-failed`,o))},o=r=>{let i=r.detail;if(i.requestId!==void 0&&i.requestId!==n)return;if(a(),!t.isConnected){Pn.error(`Tray-join failure arrived after dialog dismissed (UX swallowed half-state)`,{joinUrl:e,error:i.error,requestId:n});return}let o=t.dataset.dismissTimer;if(o){let e=Number(o);Number.isFinite(e)&&clearTimeout(e),delete t.dataset.dismissTimer}t.textContent=`Sync failed: ${i.error}. Reload the page and try again.`,t.style.color=`var(--slicc-cone)`};return window.addEventListener(`slicc:tray-join-failed`,o),i=setTimeout(a,1e4),window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e,requestId:n}})),a}function Ln(){let e=JSON.stringify(be(),null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`providers.json`,r.click(),URL.revokeObjectURL(n)}function Rn(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function G(e){let t=`http://www.w3.org/2000/svg`,n=document.createElementNS(t,`svg`);n.setAttribute(`width`,`14`),n.setAttribute(`height`,`14`),n.setAttribute(`viewBox`,`0 0 20 20`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,`1.5`),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`);for(let r of e){let e=document.createElementNS(t,`path`);e.setAttribute(`d`,r),n.appendChild(e)}return n}var K={pen:[`M14.3 3.3a1.5 1.5 0 0 1 2.1 0l.3.3a1.5 1.5 0 0 1 0 2.1L7.7 14.8l-3.2.7.7-3.2z`],trash:[`M4 6h12`,`M8 6V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2`,`M6 6v10a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V6`],logout:[`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,`M16 17l5-5-5-5`,`M21 12H9`],login:[`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,`M10 17l5-5-5-5`,`M15 12H3`]},zn=`background: transparent; border: 1px solid var(--s2-border-subtle); color: var(--s2-content-secondary); border-radius: var(--s2-radius-s); padding: 6px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color 0.15s, border-color 0.15s;`;function q(e,t){e.addEventListener(`mouseenter`,()=>{e.style.color=t,e.style.borderColor=t}),e.addEventListener(`mouseleave`,()=>{e.style.color=`var(--s2-content-secondary)`,e.style.borderColor=`var(--s2-border-subtle)`})}function Bn(e){e.overlay.remove(),e.resolve((localStorage.getItem(`slicc_accounts`)??``)!==e.accountsBefore)}function Vn(e){e.options?.startInAddAccount?Bn(e):J(e)}function Hn(e){let t=document.createElement(`div`);return t.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,e.loggedOut?(t.textContent=e.userName?`Logged out — was ${e.userName}`:`Logged out`,t.style.color=`var(--s2-content-disabled)`):t.textContent=e.userName?e.userName:e.accessToken?`Logged in`:Rn(e.apiKey),e.baseUrl&&(t.textContent+=` • `+e.baseUrl),t}async function Un(e,n){let{createOAuthLauncher:r,createInterceptingOAuthLauncherForCurrentRuntime:i}=await t(async()=>{let{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}=await import(`./oauth-service-GpUOM3Aw.js`);return{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}},__vite__mapDeps([74,3,18,6,19,20,21,22,27,57])),a={forceReauth:!0};if(e.onOAuthLoginIntercepted){let t=await i();t&&await e.onOAuthLoginIntercepted(t,n,a)}else if(e.onOAuthLogin){let t=r();await e.onOAuthLogin(t,n,a)}}function Wn(e,t){let n=document.createElement(`button`);return n.style.cssText=zn,n.setAttribute(`aria-label`,`Edit account`),n.appendChild(G(K.pen)),q(n,`var(--s2-accent)`),n.addEventListener(`click`,()=>Y(e,t)),n}function Gn(e,t,n){let r=document.createElement(`button`);return r.style.cssText=zn,t.loggedOut===!0?(r.setAttribute(`aria-label`,`Log in`),r.setAttribute(`title`,`Log in`),r.appendChild(G(K.login)),q(r,`var(--s2-accent)`),r.addEventListener(`click`,()=>{Un(n,()=>J(e))})):(r.setAttribute(`aria-label`,`Log out`),r.setAttribute(`title`,`Log out`),r.appendChild(G(K.logout)),q(r,`var(--s2-warning, #f59e0b)`),r.addEventListener(`click`,()=>{(async()=>{await ve(t.providerId),J(e)})()})),r}function Kn(e,t){let n=document.createElement(`button`);return n.style.cssText=zn,n.setAttribute(`aria-label`,`Remove account`),n.appendChild(G(K.trash)),q(n,`var(--s2-negative)`),n.addEventListener(`click`,()=>{(async()=>{await w(t.providerId),J(e)})()}),n}function qn(e,t){let n=D(t.providerId),r=document.createElement(`div`);r.style.cssText=`display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); margin-bottom: 8px; border: 1px solid var(--s2-border-subtle);`;let i=document.createElement(`div`);i.style.cssText=`flex: 1; min-width: 0;`;let a=document.createElement(`div`);a.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,a.textContent=n.name,i.appendChild(a),i.appendChild(Hn(t)),r.appendChild(i);let o=document.createElement(`div`);return o.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`,o.appendChild(Wn(e,t)),n.isOAuth&&o.appendChild(Gn(e,t,n)),o.appendChild(Kn(e,t)),r.appendChild(o),r}function Jn(e){let t=document.createDocumentFragment(),n=document.createElement(`hr`);n.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-weight: 600; margin-bottom: 8px;`,r.textContent=`Tray`,t.appendChild(r);let i=Ge(),a=i.state!==`inactive`,o=St(window.localStorage);if(a||o){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${a?i.state:`configured`}`,i.error&&(e.textContent+=` — ${i.error}`,e.style.color=`var(--slicc-cone)`),t.appendChild(e)}let s=document.createElement(`button`);return s.className=`dialog__btn dialog__btn--secondary`,s.textContent=a||o?`Reconnect to other browser`:`Connect to another browser`,s.addEventListener(`click`,()=>X(e)),t.appendChild(s),t}function J(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Accounts`,t.appendChild(n);let r=E();if(r.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,t.appendChild(e)}else{let n=document.createElement(`div`);n.style.cssText=`margin-bottom: 16px;`;for(let t of r)n.appendChild(qn(e,t));t.appendChild(n)}let i=document.createElement(`div`);i.style.cssText=`display: flex; gap: 8px;`;let a=document.createElement(`button`);a.className=r.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,a.style.flex=`1`,a.textContent=`Add Account`,a.addEventListener(`click`,()=>Y(e)),i.appendChild(a);let o=document.createElement(`button`);o.className=`dialog__btn dialog__btn--secondary`,o.style.flex=`1`,o.textContent=`Export`,o.addEventListener(`click`,()=>Ln()),i.appendChild(o),t.appendChild(i),t.appendChild(Jn(e));let s=document.createElement(`hr`);s.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Get Started`,c.addEventListener(`click`,()=>Bn(e)),t.appendChild(c)}function Yn(e,t){let n=document.createElement(`select`);if(n.className=`dialog__input`,n.style.marginBottom=`8px`,t){let e=D(t.providerId),r=document.createElement(`option`);return r.value=t.providerId,r.textContent=e.name,n.appendChild(r),n.disabled=!0,n.style.opacity=`0.7`,n}let r=document.createElement(`option`);r.value=``,r.textContent=`Select a provider…`,r.disabled=!0,r.selected=!0,r.hidden=!0,n.appendChild(r);let i=new Set(E().map(e=>e.providerId)),a=[...le()].sort((e,t)=>D(e).name.localeCompare(D(t).name));for(let t of a){if(i.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!x(t))continue;let r=document.createElement(`option`);r.value=t,r.textContent=D(t).name,n.appendChild(r)}return n}function Xn(e,t){let n=Yn(e,t),r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`;let i=document.createElement(`div`);i.style.cssText=`margin-bottom: 16px; display: none;`;let a=document.createElement(`button`);a.className=`dialog__btn`,a.textContent=`Login`,a.style.cssText=`width: 100%; margin-bottom: 8px;`,i.appendChild(a);let o=document.createElement(`div`);o.className=`dialog__desc`,o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,i.appendChild(o);let s=document.createElement(`div`),c=document.createElement(`div`);c.className=`dialog__desc`,s.appendChild(c);let l=document.createElement(`input`);l.className=`dialog__input`,l.type=`password`,l.autocomplete=`off`,l.spellcheck=!1,t&&(l.value=t.apiKey),s.appendChild(l);let u=document.createElement(`div`),d=document.createElement(`div`);d.className=`dialog__desc`,d.textContent=`Base URL:`,u.appendChild(d);let f=document.createElement(`input`);f.className=`dialog__input`,f.type=`text`,f.autocomplete=`off`,f.spellcheck=!1,t?.baseUrl&&(f.value=t.baseUrl),u.appendChild(f);let p=document.createElement(`div`);p.className=`dialog__desc`,p.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,u.appendChild(p);let m=document.createElement(`div`);m.style.display=`none`;let h=document.createElement(`div`);h.className=`dialog__desc`,h.textContent=`Deployment:`,m.appendChild(h);let g=document.createElement(`input`);g.className=`dialog__input`,g.type=`text`,g.autocomplete=`off`,g.spellcheck=!1,t?.deployment&&(g.value=t.deployment),m.appendChild(g);let _=document.createElement(`div`);_.className=`dialog__desc`,_.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,m.appendChild(_);let v=document.createElement(`div`);v.style.display=`none`;let y=document.createElement(`div`);y.className=`dialog__desc`,y.textContent=`API Version:`,v.appendChild(y);let b=document.createElement(`input`);b.className=`dialog__input`,b.type=`text`,b.autocomplete=`off`,b.spellcheck=!1,t?.apiVersion&&(b.value=t.apiVersion),v.appendChild(b);let x=document.createElement(`div`);x.className=`dialog__desc`,x.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,v.appendChild(x);let S=document.createElement(`div`);S.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`;let C=document.createElement(`button`);return C.className=`dialog__btn`,C.textContent=t?`Save`:`Add`,{providerSelect:n,providerDesc:r,oauth:{section:i,loginBtn:a,status:o},apiKeySection:s,apiKeyLabel:c,apiKeyInput:l,baseUrlSection:u,baseUrlInput:f,baseUrlDesc:p,deploymentSection:m,deploymentInput:g,deploymentDesc:_,apiVersionSection:v,apiVersionInput:b,apiVersionDesc:x,errorEl:S,saveBtn:C}}function Zn(e){let t=document.createElement(`div`);t.setAttribute(`data-slicc-device-code-prompt`,``),t.style.cssText=`display:flex;flex-direction:column;gap:8px`;let n=document.createElement(`div`);n.className=`dialog__desc`,n.textContent=`Verification code`,n.style.cssText=`font-size: 11px; color: var(--s2-content-tertiary);`;let r=document.createElement(`div`);r.textContent=e,r.style.cssText=[`font: 600 22px ui-monospace, SFMono-Regular, Menlo, monospace`,`letter-spacing: 2px`,`color: var(--s2-content-primary, #e6edf3)`,`background: var(--s2-bg-secondary, #161b22)`,`border: 1px solid var(--s2-border, #30363d)`,`border-radius: 6px`,`padding: 10px 12px`,`text-align: center`,`user-select: all`,`cursor: text`].join(`;`);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.cssText=`font-size: 12px; color: var(--s2-content-secondary);`,i.textContent=`Click Copy & Continue — we will open the GitHub authorization page in a new tab. Paste this code there if it is not already filled in.`;let a=document.createElement(`div`);a.style.cssText=`display:flex;gap:8px;justify-content:flex-end;margin-top:4px`;let o=document.createElement(`button`);o.type=`button`,o.className=`dialog__btn`,o.textContent=`Cancel`;let s=document.createElement(`button`);return s.type=`button`,s.className=`dialog__btn dialog__btn--primary`,s.textContent=`Copy & Continue`,a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(r),t.appendChild(i),t.appendChild(a),{prompt:t,cancelBtn:o,continueBtn:s}}function Qn(e){return t=>new Promise(n=>{let r=e.loginBtn.style.display,i=e.status.style.display;e.loginBtn.style.display=`none`,e.status.style.display=`none`;let{prompt:a,cancelBtn:o,continueBtn:s}=Zn(t.userCode),c=()=>{try{a.remove()}catch{}e.loginBtn.style.display=r,e.status.style.display=i};o.addEventListener(`click`,()=>{c(),n(`cancel`)}),s.addEventListener(`click`,()=>{(async()=>{try{await Ke(t.userCode)}catch{}c(),e.status.style.display=i,e.status.textContent=`Waiting for you to authorize in the new tab…`,n(`continue`)})()}),e.section.appendChild(a)})}async function $n(e,n){let r=n.providerSelect.value;if(!r)return;let i=D(r);if(!i.onOAuthLogin&&!i.onOAuthLoginIntercepted)return;let{status:a}=n.oauth,o=E().some(e=>e.providerId===r),s=Ae(r);if(i.requiresBaseUrl&&!n.baseUrlInput.value.trim()&&!s){a.textContent=`Base URL is required.`,a.style.color=`var(--slicc-cone)`,n.baseUrlInput.focus();return}i.requiresBaseUrl&&n.baseUrlInput.value.trim()&&T(r,``,n.baseUrlInput.value.trim()),a.textContent=`Opening login window...`;try{if(i.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:r}=await t(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-GpUOM3Aw.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([74,3,18,6,19,20,21,22,27,57])),a=await r();if(!a)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await i.onOAuthLoginIntercepted(a,()=>Vn(e),{presentDeviceCode:Qn(n.oauth)})}else if(i.onOAuthLogin){let{createOAuthLauncher:n}=await t(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-GpUOM3Aw.js`);return{createOAuthLauncher:e}},__vite__mapDeps([74,3,18,6,19,20,21,22,27,57])),r=n();await i.onOAuthLogin(r,()=>Vn(e))}}catch(e){if(!o)try{await w(r)}catch{}Pn.error(`OAuth login failed`,{providerId:r,error:e instanceof Error?e.message:String(e)}),a.textContent=`Login failed: ${e instanceof Error?e.message:String(e)}`}}function er(e,t){if(t.isOAuth){e.oauth.section.style.display=``,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``),e.oauth.loginBtn.textContent=`Login with ${t.name}`,e.saveBtn.style.display=`none`;return}e.oauth.section.style.display=`none`;let n=t.requiresApiKey?`API Key`:`API Key (optional)`;e.apiKeyLabel.textContent=`${n}${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,e.apiKeyInput.placeholder=t.apiKeyPlaceholder||`API key`,e.apiKeySection.style.display=t.requiresApiKey||t.optionalApiKey?``:`none`,e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,e.saveBtn.style.display=``}function tr(e,t){t.requiresDeployment?(e.deploymentSection.style.display=``,e.deploymentInput.placeholder=t.deploymentPlaceholder||`deployment-name`,e.deploymentDesc.textContent=t.deploymentDescription||``):e.deploymentSection.style.display=`none`}function nr(e,t){t.requiresApiVersion?(e.apiVersionSection.style.display=``,!e.apiVersionInput.value&&t.apiVersionDefault&&(e.apiVersionInput.value=t.apiVersionDefault),e.apiVersionInput.placeholder=t.apiVersionDefault||`api-version`,e.apiVersionDesc.textContent=t.apiVersionDescription||``):e.apiVersionSection.style.display=`none`}function rr(e){let t=e.providerSelect.value;if(!t){e.providerDesc.textContent=``,e.oauth.section.style.display=`none`,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=`none`,e.deploymentSection.style.display=`none`,e.apiVersionSection.style.display=`none`,e.saveBtn.style.display=`none`;return}let n=D(t);e.providerDesc.textContent=n.description,er(e,n),tr(e,n),nr(e,n)}function ir(e,t){let n=t.providerSelect.value;if(!n)return;let r=D(n),i=(e,n)=>{t.errorEl.textContent=e,t.errorEl.style.display=``,n.focus()};if(r.requiresApiKey&&t.apiKeyInput.value.trim().length<5){i(`API key is required (at least 5 characters).`,t.apiKeyInput);return}if(r.requiresBaseUrl&&!t.baseUrlInput.value.trim()){i(`Base URL is required for this provider.`,t.baseUrlInput);return}if(r.requiresDeployment&&!t.deploymentInput.value.trim()){i(`Deployment name is required for this provider.`,t.deploymentInput);return}T(n,t.apiKeyInput.value.trim(),t.baseUrlInput.value.trim()||void 0,t.deploymentInput.value.trim()||void 0,t.apiVersionInput.value.trim()||void 0),Vn(e)}function ar(e,t){let{dialog:n,options:r}=e,i=E().length>0;if(r?.startInAddAccount){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Cancel`,t.addEventListener(`click`,()=>Bn(e)),n.appendChild(t)}else if(!t&&!i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Connect to another browser`,t.addEventListener(`click`,()=>X(e)),n.appendChild(t)}else if(i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Back`,t.addEventListener(`click`,()=>J(e)),n.appendChild(t)}}function Y(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=t?`Edit Account`:`Add Account`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.textContent=`Provider:`,n.appendChild(i);let a=Xn(e.options,t);n.appendChild(a.providerSelect),n.appendChild(a.providerDesc),a.oauth.loginBtn.addEventListener(`click`,()=>{$n(e,a)}),t?.userName&&(a.oauth.status.textContent=`Logged in as ${t.userName}`,a.oauth.loginBtn.textContent=`Re-login`),n.appendChild(a.oauth.section),n.appendChild(a.apiKeySection),n.appendChild(a.baseUrlSection),n.appendChild(a.deploymentSection),n.appendChild(a.apiVersionSection),n.appendChild(a.errorEl),a.providerSelect.addEventListener(`change`,()=>{a.errorEl.style.display=`none`,rr(a)}),rr(a),a.saveBtn.addEventListener(`click`,()=>ir(e,a));let o=t=>{t.key===`Enter`&&ir(e,a)};a.apiKeyInput.addEventListener(`keydown`,o),a.baseUrlInput.addEventListener(`keydown`,o),a.deploymentInput.addEventListener(`keydown`,o),a.apiVersionInput.addEventListener(`keydown`,o),n.appendChild(a.saveBtn),ar(e,!!t),requestAnimationFrame(()=>{let e=a.providerSelect.value;if(!e)return;let t=D(e);t.requiresApiKey?a.apiKeyInput.focus():t.requiresBaseUrl&&a.baseUrlInput.focus()})}function or(e,t,n){In(t,n),n.textContent=`Connecting…`,n.style.display=``,n.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{e.overlay.remove(),e.resolve(!1)},800);n.dataset.dismissTimer=String(r)}function sr(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=`Connect this browser?`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.marginBottom=`12px`,i.textContent=`You’ve been invited to mirror another SLICC browser. Click below to start syncing.`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.style.cssText=`font-family: monospace; font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 16px; padding: 8px; background: var(--s2-bg-secondary); border-radius: 4px;`,a.textContent=t.length>80?t.slice(0,40)+`…`+t.slice(-37):t,n.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,n.appendChild(o);let s=document.createElement(`button`);s.className=`dialog__btn`,s.textContent=`Connect`,s.addEventListener(`click`,()=>{let n=F(window.localStorage,t);if(!n){o.textContent=`Invalid sync URL.`,o.style.display=``,o.style.color=`var(--slicc-cone)`;return}or(e,n.joinUrl,o)}),n.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn dialog__btn--secondary`,c.style.marginTop=`8px`,c.textContent=`Set up an account instead`,c.addEventListener(`click`,()=>Y(e)),n.appendChild(c)}function cr(){let e=document.createElement(`details`);e.style.cssText=`margin-bottom: 12px; font-size: 12px; color: var(--s2-content-secondary);`;let t=document.createElement(`summary`);t.style.cssText=`cursor: pointer; user-select: none; color: var(--s2-content-secondary);`,t.textContent=`How do I get the sync URL?`,e.appendChild(t);let n=document.createElement(`div`);n.style.cssText=`margin-top: 8px; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5;`;let r=document.createElement(`ol`);r.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`On the other SLICC, click the avatar (top right).`,`Choose “Enable multi-browser sync” — the URL is copied automatically.`,`Paste it below. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,r.appendChild(t)}return n.appendChild(r),e.appendChild(n),e}function X(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Connect to another browser`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.marginBottom=`12px`,r.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,t.appendChild(r),t.appendChild(cr());let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Sync URL:`,t.appendChild(a);let o=document.createElement(`input`);o.className=`dialog__input`,o.type=`text`,o.autocomplete=`off`,o.spellcheck=!1,o.placeholder=`${i}/join/<token>`,t.appendChild(o);let s=document.createElement(`div`);s.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,t.appendChild(s);let c=document.createElement(`div`);c.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let l=document.createElement(`button`);l.className=`dialog__btn`,l.textContent=`Connect`,l.addEventListener(`click`,()=>{let t=o.value.trim();if(!t){s.textContent=`Paste a sync URL to continue.`,s.style.display=``,o.focus();return}let n=F(window.localStorage,t);if(!n){s.textContent=Mn(t),s.style.display=``,o.focus();return}or(e,n.joinUrl,c)}),t.appendChild(l),t.appendChild(c);let u=document.createElement(`button`);u.className=`dialog__btn dialog__btn--secondary`,u.style.marginTop=`8px`,u.textContent=`Back`,u.addEventListener(`click`,()=>Y(e)),t.appendChild(u),o.addEventListener(`input`,()=>{s.style.display=`none`}),o.addEventListener(`keydown`,e=>{e.key===`Enter`&&l.click()}),requestAnimationFrame(()=>o.focus())}function lr(e){return Ve(`button`),new Promise(t=>{let n=document.createElement(`div`);n.className=`dialog-overlay`;let r=document.createElement(`div`);r.className=`dialog`,r.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`;let i={overlay:n,dialog:r,options:e,accountsBefore:localStorage.getItem(`slicc_accounts`)??``,resolve:t};e?.startInAddAccount?Y(i):E().length>0?J(i):e?.autoJoinUrl?sr(i,e.autoJoinUrl):e?.preferTrayJoin?X(i):Y(i),n.appendChild(r),document.body.appendChild(n)})}var ur=n(`tray-leader-lock`),dr=!1,Z=null,Q=null;function fr(e){let t=()=>{Z===t&&(Z=null),e()};return Z=t,t}function pr(e){Q=e}function mr(){return dr}function hr(){dr=!0;let e=Q;Q=null;try{e?.()}catch(e){ur.error(`Fatal-boot leader teardown threw`,e)}let t=Z;Z=null,t?.()}var $=n(`main`);function gr(e){try{return new URL(e).searchParams.has(`ui-fixture`)}catch{return!1}}function _r(){t(async()=>{let{setupModelCatalog:e}=await import(`./setup-model-catalog-CB1b-8rG.js`);return{setupModelCatalog:e}},__vite__mapDeps([75,16,6,7,8,9,3,10,11,12,13,17,4,14,1,18,19,20,21,22,23,24,25,26,27,28,29,15,30,31,32,33,34,0])).then(({setupModelCatalog:e})=>e({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,isDev:!1})).catch(()=>{})}async function vr(){Xt();let e=document.getElementById(`app`);if(!e)throw Error(`#app element not found`);let n=O(),r=It({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,isDev:!1,isExtension:n});if(gr(window.location.href)){let{mountWcUiPreview:n}=await t(async()=>{let{mountWcUiPreview:e}=await import(`./wc-shell-BeGVTjhP.js`).then(e=>e.s);return{mountWcUiPreview:e}},__vite__mapDeps([50,6,3,4,51,19,48,15,16,7,8,9,10,11,12,13,17,14,1,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,52,53,54,36,55]));n(e);return}Lt(),Vt(),Tn(),r!==`connect`&&He({isExtensionRealm:n}).catch(()=>{});let i=nt(window.location.search),a=r===`cherry`?null:gn(window.location.search),o=!!a&&Me();if(await En(i?{apiBaseUrl:i.apiBaseUrl,token:i.token}:null,o&&a?{extensionId:a.extensionId}:null)===`reload-pending`)return;if(!n&&(r===`follower`||r===`cherry`)){let{bootFollowerFloat:n}=await t(async()=>{let{bootFollowerFloat:e}=await import(`./wc-follower-yHGrKVtf.js`);return{bootFollowerFloat:e}},__vite__mapDeps([76,3,4,1,67,49,6,50,51,19,48,15,16,7,8,9,10,11,12,13,17,14,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,52,53,54,36,55,56,57,58,59,60,61,62,63,64,65,66,68,42,69,70,71,77,78,79,80,81,44,82,83,84,85,86,87,88,89,90,91]));return n(e,$,r)}await Ue(),Te(),_r(),i?.apiBaseUrl&&!o&&(Be(i.apiBaseUrl),Ne(i.token),await Ie());let{bootstrapOAuthReplicas:s}=await t(async()=>{let{bootstrapOAuthReplicas:e}=await import(`./oauth-bootstrap-CkaHhcfV.js`);return{bootstrapOAuthReplicas:e}},__vite__mapDeps([92,3,4,15,16,6,7,8,9,10,11,12,13,17,14,1,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,45]));if(await Promise.race([s().catch(e=>{$.error(`OAuth bootstrap failed`,e)}),new Promise(e=>setTimeout(e,1e4))]),r===`connect`){globalThis.__slicc_connect_mode=!0;let{loadLegacyStyles:n}=await t(async()=>{let{loadLegacyStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadLegacyStyles:e}},__vite__mapDeps([93,3]));await n();let{mountConnectSurface:r}=await t(async()=>{let{mountConnectSurface:e}=await import(`./connect-surface-Bm6PRdh4.js`);return{mountConnectSurface:e}},__vite__mapDeps([94,15,16,6,7,8,9,3,10,11,12,13,17,4,14,1,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]));await r(e);return}if(n){let{bootExtensionFloat:n}=await t(async()=>{let{bootExtensionFloat:e}=await import(`./wc-extension-CCj12o2_.js`);return{bootExtensionFloat:e}},__vite__mapDeps([95,3,77,6,16,7,8,9,10,11,12,13,17,4,14,1,18,19,20,21,22,23,24,25,26,27,28,29,50,51,48,15,30,31,32,33,34,52,53,54,36,55,56,57,58,59,60,61,62,63,64,65,78,67,79,68,71,80,81,44,69,82,83,84,85,86,87,88,96]));return n(e,$,r===`extension-detached`)}o&&a&&lt(a.extensionId);let{bootLeaderFloat:c}=await t(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-D8Nh84rj.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([77,6,16,7,8,9,3,10,11,12,13,17,4,14,1,18,19,20,21,22,23,24,25,26,27,28,29,50,51,48,15,30,31,32,33,34,52,53,54,36,55,56,57,58,59,60,61,62,63,64,65,78,67,79,68,71,80,81,44,69,82,83,84,85,86,87,88]));return c(e,$,r)}function yr(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.textContent=`Failed to start`;let i=document.createElement(`p`);i.textContent=t instanceof Error?t.message:String(t);let a=document.createElement(`button`);a.type=`button`,a.textContent=`Reload`,a.addEventListener(`click`,()=>location.reload()),n.append(r,i,a),e.replaceChildren(n)}async function br(e,n){let r;try{({renderBootRecoveryScreen:r}=await t(()=>import(`./recovery-screen-e0y59jaB.js`),__vite__mapDeps([97,21,22])))}catch{yr(e,n);return}if(r(e,n),n instanceof Error&&n.message.includes(`did not signal ready`))try{let{triageModuleWorkerHealth:i}=await t(async()=>{let{triageModuleWorkerHealth:e}=await import(`./worker-triage-BvsMZrdR.js`);return{triageModuleWorkerHealth:e}},[]),a=await i();a===`browser-wedged`&&r(e,n,{verdict:a})}catch{}}vr().catch(e=>{$.error(`Fatal error`,e),hr();let t=document.getElementById(`app`);t&&br(t,e)});export{pt as A,F as C,j as D,M as E,Ye as M,vt as O,Ot as S,P as T,bt as _,lr as a,St as b,fn as c,rn as d,qt as f,yt as g,zt as h,Nn as i,A as j,mt as k,tn as l,Zt as m,mr as n,An as o,R as p,pr as r,xn as s,fr as t,nn as u,Et as v,wt as w,Ct as x,xt as y};
@@ -1,8 +0,0 @@
1
- import{i as e,r as t}from"./diagnostics-Cag7MsZI.js";function n(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function r(e){return typeof e.result==`function`}async function i(e,t){for await(let n of t)e.push(n);e.end(r(t)?await t.result():void 0)}function a(t,r){let a=new e;return r().then(e=>i(a,e)).catch(e=>{let r=n(t,e);a.push({type:`error`,reason:`error`,error:r}),a.end(r)}),a}function o(e,t){let n={stream:(t,n,r)=>a(t,async()=>(await e()).stream(t,n,r)),streamSimple:(t,n,r)=>a(t,async()=>(await e()).streamSimple(t,n,r))};return t?.fetchDeferred&&(n.fetchDeferred=(t,n,r)=>a(t,async()=>{let i=await e();if(!i.fetchDeferred)throw Error(`API does not support deferred responses`);return i.fetchDeferred(t,n,r)})),t?.cancelDeferred&&(n.cancelDeferred=async(t,n,r)=>{let i=await e();if(!i.cancelDeferred)throw Error(`API cannot cancel deferred responses`);await i.cancelDeferred(t,n,r)}),n}var s=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e};const c=e=>import(s(e));function l(){return globalThis.process?.env}function u(){return{async env(e){let t=l()?.[e];return typeof t==`string`&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await c(`node:fs/promises`),n=e;return n.startsWith(`~`)&&(n=(await c(`node:os`)).homedir()+n.slice(1)),await t.access(n),!0}catch{return!1}}}}function d(e){if(e.reason!==void 0)return e.reason;let t=Error(`The operation was aborted`);return t.name=`AbortError`,t}function f(e){return e??new AbortController().signal}function p(e,t){return t.aborted?(e.catch(()=>{}),Promise.reject(d(t))):new Promise((n,r)=>{let i=!1,a=()=>t.removeEventListener(`abort`,o),o=()=>{i||(i=!0,a(),r(d(t)))};t.addEventListener(`abort`,o,{once:!0}),e.then(e=>{i||(i=!0,a(),n(e))},e=>{i||(i=!0,a(),r(e))}),t.aborted&&o()})}var m=class{credentials=new Map;chains=new Map;enqueue(e,t,n){let r=f(n?.signal),i=this.chains.get(e)??Promise.resolve(),a=(async()=>(await i.catch(()=>{}),r.throwIfAborted(),t()))(),o=a.catch(()=>{});return this.chains.set(e,o),o.then(()=>{this.chains.get(e)===o&&this.chains.delete(e)}),p(a,r)}async read(e,t){return t?.signal?.throwIfAborted(),this.credentials.get(e)}async list(e){return e?.signal?.throwIfAborted(),[...this.credentials].map(([e,t])=>({providerId:e,type:t.type}))}modify(e,t,n){return this.enqueue(e,async()=>{let r=this.credentials.get(e),i=await t(r);return n?.signal?.throwIfAborted(),i!==void 0&&this.credentials.set(e,i),i??r},n)}delete(e,t){return this.enqueue(e,async()=>{this.credentials.delete(e)},t)}},h=class extends Error{code;constructor(e,t,n){super(g(t,n?.cause),n),this.name=`ModelsError`,this.code=e}};function g(e,n){if(n==null)return e;let r=t(n).trim();return!r||e.includes(r)?e:`${e}: ${r}`}function _(e,t,n,r){let i=f(r?.signal);return p(v(e,t,n,r,i),i)}async function v(e,t,n,r,i){i.throwIfAborted();let a=r?.env?y(n,r.env):n;if(r?.apiKey!==void 0&&e.auth.apiKey)return x(a,e.auth.apiKey,e.id,{type:`api_key`,key:r.apiKey,env:r.env},i);let o=await S(t,e.id,i);if(o){if(o.type===`oauth`&&e.auth.oauth)return b(t,e.id,e.auth.oauth,o,i,r?.minOAuthValidityMs);if(o.type===`api_key`&&e.auth.apiKey){let t=r?.env?{...o,env:{...o.env,...r.env}}:o;return x(a,e.auth.apiKey,e.id,t,i)}return}return e.auth.apiKey?x(a,e.auth.apiKey,e.id,void 0,i):void 0}function y(e,t){return{env:async n=>t[n]||await e.env(n),fileExists:t=>e.fileExists(t)}}async function b(e,t,n,r,i,a){let o=Math.max(3e5,a??0),s=e=>Date.now()+o>=e.expires,c=r;if(s(c)){let r;try{r=await e.modify(t,async e=>{if(e?.type===`oauth`&&s(e))try{let t=AbortSignal.any([i,AbortSignal.timeout(15e3)]);return await n.refresh(e,t)}catch(e){throw new h(`oauth`,`OAuth refresh failed for ${t}`,{cause:e})}},{signal:i})}catch(e){throw e instanceof h?e:new h(`auth`,`Credential store modify failed for ${t}`,{cause:e})}if(r?.type!==`oauth`)return;if(c=r,a!==void 0&&s(c))throw new h(`oauth`,`OAuth refresh returned a token that expires too soon for ${t}`)}try{return{auth:await n.toAuth(c),source:`OAuth`}}catch(e){throw new h(`oauth`,`OAuth auth derivation failed for ${t}`,{cause:e})}}async function x(e,t,n,r,i){try{return await t.resolve({ctx:e,credential:r,signal:i})}catch(e){throw new h(`auth`,`API key auth failed for provider ${n}`,{cause:e})}}async function S(e,t,n){try{return await e.read(t,{signal:n})}catch(e){throw new h(`auth`,`Credential store read failed for ${t}`,{cause:e})}}var C=class{entries=new Map;async read(e,t){t?.signal?.throwIfAborted();let n=this.entries.get(e);return n?structuredClone(n):void 0}async write(e,t,n){n?.signal?.throwIfAborted(),this.entries.set(e,structuredClone(t))}async delete(e,t){t?.signal?.throwIfAborted(),this.entries.delete(e)}};function w(e){return e.type??`chat`}function T(e,t){return w(e)===t}function E(e){if(!T(e,`chat`))throw new h(`provider`,`Model ${e.provider}/${e.id} is not a chat model`)}function ee(e){if(!T(e,`image`))throw new h(`provider`,`Model ${e.provider}/${e.id} is not an image model`)}function te(e){if(!T(e,`classifier`))throw new h(`provider`,`Model ${e.provider}/${e.id} is not a classifier model`)}function D(e,t,n=!1){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:n?`aborted`:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function O(e,t,n=!1){return{api:e.api,provider:e.provider,model:e.id,answers:{},stopReason:n?`aborted`:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function k(e,t=`
2
- `){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(t)}function A(e){let t=[k(e.content)];for(let n of Object.values(e.sections??{}))n!==null&&t.push(n);return t.filter(e=>e.length>0).join(`
3
-
4
- `)}function j(e){let t=[],n=k(e.content);n.length>0&&t.push(n);for(let[n,r]of Object.entries(e.sections??{}))t.push(r===null?`Removed system prompt section "${n}".`:`Updated system prompt section "${n}":\n\n${r}`);return t.join(`
5
-
6
- `)}function M(e,t){let n=e!==void 0&&e.length>0,r=t!==void 0&&t.length>0;if(!(!n&&!r))return{role:`system`,content:e??``,...r?{toolsAdded:t}:{},timestamp:0}}function N(e){let t=M(e.systemPrompt,e.tools);return{messages:t?[t,...e.messages]:e.messages}}function P(e){return e.role===`system`}function F(e){let t=e[0];return t&&P(t)?t:void 0}function ne(e){return F(e)?e.slice(1):e}function I(e){let t=new Map;for(let n of e)if(P(n)){for(let e of n.toolsRemoved??[])t.delete(e.name);for(let e of n.toolsAdded??[])t.set(e.name,e)}return[...t.values()]}function L(e){let t=[],n=new Map,r;for(let i of e){if(!P(i))continue;r??=i.timestamp;let e=k(i.content);e.length>0&&t.push(e);for(let[e,t]of Object.entries(i.sections??{}))t===null?n.delete(e):n.set(e,t)}let i=I(e);if(r!==void 0||i.length!==0)return{role:`system`,content:t.join(`
7
-
8
- `),...n.size>0?{sections:Object.fromEntries(n)}:{},...i.length>0?{toolsAdded:i}:{},timestamp:r??0}}function R(e){let t=L(e);return t?A(t):``}function z(e){let t=L(e.messages),n=e.messages.filter(e=>e.role!==`system`);return{messages:t?[t,...n]:n}}function B(e,t){return t?e:z(e)}function V(e){return{name:e.name,description:e.description,parameters:JSON.parse(JSON.stringify(e.parameters)),...e.constrainedSampling===void 0?{}:{constrainedSampling:e.constrainedSampling}}}function H(e,t){return JSON.stringify(V(e))===JSON.stringify(V(t))}function U(e,t){let n=new Map(e.map(e=>[e.name,e])),r=new Map(t.map(e=>[e.name,e]));return{toolsAdded:t.filter(e=>{let t=n.get(e.name);return t===void 0||!H(t,e)}).map(V),toolsRemoved:e.filter(e=>{let t=r.get(e.name);return t===void 0||!H(e,t)}).map(e=>({name:e.name}))}}function W(e){let t=new Map;for(let n of e)if(P(n))for(let e of n.toolsAdded??[])t.set(e.name,e);return[...t.values()]}function G(e){let t=new Map;for(let n of e)if(P(n))for(let e of n.toolsAdded??[]){let n=t.get(e.name);if(n!==void 0&&!H(n,e))return!0;t.set(e.name,e)}return!1}function K(e){let t=new Set;for(let n of e)if(P(n)){if((n.toolsRemoved?.length??0)>0)return!0;for(let e of n.toolsAdded??[]){if(t.has(e.name))return!0;t.add(e.name)}}return!1}function q(e,t){let n=t&&!K(e);return{requestTools:n?F(e)?.toolsAdded??[]:I(e),anchorsAdditions:n}}const J={chat:!0,image:!0,classifier:!0};function Y(e){return Object.hasOwn(J,w(e))}function X(e){return{...e,models:e.models.filter(Y)}}function Z(e,t){if(!e&&!t)return;let n={...e};for(let[e,r]of Object.entries(t??{})){let t=e.toLowerCase();for(let e of Object.keys(n))e.toLowerCase()===t&&delete n[e];n[e]=r}return n}var re=class{providers=new Map;credentials;modelsStore;authContext;refreshGenerations=new Map;refreshControllers=new Map;publicationChains=new Map;constructor(e){this.credentials=e?.credentials??new m,this.modelsStore=e?.modelsStore??new C,this.authContext=e?.authContext??u()}setProvider(e){this.supersedeProviderRefresh(e.id),this.providers.set(e.id,e)}deleteProvider(e){this.supersedeProviderRefresh(e),this.providers.delete(e)}clearProviders(){for(let e of new Set([...this.providers.keys(),...this.refreshControllers.keys()]))this.supersedeProviderRefresh(e);this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let t=this.providers.get(e);if(!t)return[];try{return t.getModels()}catch{return[]}}let t=[];for(let e of this.providers.values())try{t.push(...e.getModels())}catch{}return t}getAllModels(e){if(e!==void 0){let t=this.providers.get(e);if(!t)return[];try{return t.getAllModels?.()??t.getModels()}catch{return[]}}let t=[];for(let e of this.providers.values())try{t.push(...e.getAllModels?.()??e.getModels())}catch{}return t}getModelsOfType(e,t){return this.getAllModels(t).filter(t=>T(t,e))}getModel(e,t){return this.getModels(e).find(e=>e.id===t)}getModelOfType(e,t,n){return this.getModelsOfType(e,t).find(e=>e.id===n)}supersedeProviderRefresh(e){let t=(this.refreshGenerations.get(e)??0)+1;this.refreshGenerations.set(e,t);let n=this.refreshControllers.get(e);return n&&(this.refreshControllers.delete(e),n.abort()),t}beginProviderRefresh(e){let t=this.supersedeProviderRefresh(e),n=new AbortController;return this.refreshControllers.set(e,n),{generation:t,controller:n}}publishProviderModels(e,t,n,r){let i=this.publicationChains.get(e)??Promise.resolve(),a=(async()=>(await i.catch(()=>{}),n.aborted||this.refreshGenerations.get(e)!==t||(r.persist===null?await this.modelsStore.delete(e,{signal:n}):r.persist!==void 0&&await this.modelsStore.write(e,structuredClone(r.persist),{signal:n}),n.aborted||this.refreshGenerations.get(e)!==t)?!1:(r.update?.(),!0)))(),o=a.catch(()=>{});return this.publicationChains.set(e,o),o.then(()=>{this.publicationChains.get(e)===o&&this.publicationChains.delete(e)}),p(a,n)}async runProviderRefreshPhase(e,t,n,r,i,a){let o=await this.modelsStore.read(e.id,{signal:a});await e.refreshModels({credential:t,stored:o?X(structuredClone(o)):void 0,publish:t=>this.publishProviderModels(e.id,i,a,t),allowNetwork:n,force:n?r:void 0,signal:a})}async refresh(e={}){let t=e.allowNetwork??!0,n=f(e.signal),r=new Map;if(n.aborted)return{aborted:!0,errors:r};let i=e.providers?new Set(e.providers):void 0,a=Array.from(this.providers.values()).filter(e=>e.refreshModels!==void 0&&(!i||i.has(e.id))),o=Promise.all(a.map(async i=>{let{generation:a,controller:o}=this.beginProviderRefresh(i.id),s=AbortSignal.any([n,o.signal]),c=(async()=>{let n,r;try{n=await this.readCredential(i.id,s)}catch(e){r=e}if(await this.runProviderRefreshPhase(i,n,!1,void 0,a,s),r!==void 0)throw r;if(!t||s.aborted)return;let o=await this.resolveRefreshCredential(i,n,s);o&&await this.runProviderRefreshPhase(i,o,!0,e.force,a,s)})();try{await p(c,s)}catch(e){s.aborted||r.set(i.id,e instanceof Error?e:new h(`model_source`,`Model refresh failed for ${i.id}`,{cause:e}))}finally{this.refreshControllers.get(i.id)===o&&this.refreshControllers.delete(i.id)}}));try{await p(o,n)}catch(e){if(!n.aborted)throw e}return{aborted:n.aborted,errors:new Map(r)}}async resolveRefreshCredential(e,t,n){if(t?.type===`oauth`){let r=e.auth.oauth;if(!r)return;if(Date.now()<t.expires)return t;if(n.aborted)return;let i=await this.credentials.modify(e.id,async e=>{if(!(e?.type!==`oauth`||Date.now()<e.expires))return r.refresh(e,n)},{signal:n});return i?.type===`oauth`?i:void 0}let r=e.auth.apiKey;if(!r)return;let i=t?.type===`api_key`?t:void 0,a=await r.resolve({ctx:this.authContext,credential:i,signal:n});if(a)return{type:`api_key`,key:a.auth.apiKey,env:a.env}}async readCredential(e,t){try{return await this.credentials.read(e,{signal:t})}catch(t){throw new h(`auth`,`Credential store read failed for ${e}`,{cause:t})}}async checkProviderAuth(e,t,n){if(t?.type===`oauth`)return e.auth.oauth?{source:`OAuth`,type:`oauth`}:void 0;let r=e.auth.apiKey;if(!r)return;if(r.check)try{return await r.check({ctx:this.authContext,credential:t?.type===`api_key`?t:void 0,signal:n})}catch(t){throw new h(`auth`,`API key auth check failed for provider ${e.id}`,{cause:t})}let i=await _(e,this.credentials,this.authContext,{signal:n});return i?{source:i.source,type:`api_key`}:void 0}checkAuth(e,t){let n=f(t?.signal);return p((async()=>{n.throwIfAborted();let t=this.providers.get(e);if(t)return this.checkProviderAuth(t,await this.readCredential(e,n),n)})(),n)}async getAuthenticatedProviders(e,t){t.throwIfAborted();let n=e?[this.providers.get(e)].filter(e=>e!==void 0):this.getProviders();return(await Promise.all(n.map(async e=>{let n=await this.readCredential(e.id,t);return{provider:e,credential:n,auth:await this.checkProviderAuth(e,n,t)}}))).filter(e=>e.auth!==void 0)}getAvailable(e,t){let n=f(t?.signal);return p((async()=>(await this.getAuthenticatedProviders(e,n)).flatMap(({provider:e,credential:t})=>{let n=e.getModels();return e.filterModels?.(n,t)??n}))(),n)}async getAvailableOfType(e,t,n){return(await this.getAllAvailable(t,n)).filter(t=>T(t,e))}getAllAvailable(e,t){let n=f(t?.signal);return p((async()=>(await this.getAuthenticatedProviders(e,n)).flatMap(({provider:e,credential:t})=>{let n=e.getAllModels?.()??e.getModels();if(e.filterAllModels)return e.filterAllModels(n,t);if(!e.filterModels)return n;let r=new Set(e.filterModels(e.getModels(),t).map(e=>e.id));return n.filter(e=>!T(e,`chat`)||r.has(e.id))}))(),n)}async getAuth(e,t){let n=f(t?.signal),r=typeof e==`string`?e:e.provider,i=this.providers.get(r);if(!i)return;let a=await _(i,this.credentials,this.authContext,{...t,signal:n});return!a||typeof e==`string`||!e.headers?a:{...a,auth:{...a.auth,headers:Z(a.auth.headers,e.headers)}}}async login(e,t,n,r){let i=f(n.signal);i.throwIfAborted();let a=this.providers.get(e);if(!a)throw new h(`provider`,`Unknown provider: ${e}`);let o=t===`oauth`?a.auth.oauth:a.auth.apiKey;if(!o?.login)throw new h(`auth`,`${a.name} does not support ${t} login`);let s=await p(o.login({...n,signal:i},r),i),c=!1,l,u=new Promise(e=>{l=e}),d=this.credentials.modify(e,async()=>(c=!0,l?.(),s),{signal:i});d.catch(()=>{});try{await new Promise((e,t)=>{let n=()=>{c||t(i.reason)};i.addEventListener(`abort`,n,{once:!0}),Promise.race([u,d]).then(()=>{i.removeEventListener(`abort`,n),e()},e=>{i.removeEventListener(`abort`,n),t(e)}),i.aborted&&n()}),await d}catch(t){throw i.throwIfAborted(),new h(`auth`,`Credential store modify failed for ${e}`,{cause:t})}return s}async logout(e,t){let n=f(t?.signal);n.throwIfAborted();try{await this.credentials.delete(e,{signal:n})}catch(t){throw n.throwIfAborted(),new h(`auth`,`Credential store delete failed for ${e}`,{cause:t})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new h(`provider`,`Unknown provider: ${e.provider}`);return t}requireChatProvider(e){return E(e),this.requireProvider(e)}async applyAuth(e,t){this.requireProvider(e);let n=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env,signal:t?.signal});if(!n)throw new h(`auth`,`Provider is not configured: ${e.provider}`);let r=n.auth,i=t?.apiKey??r.apiKey,a=Z(r.headers,t?.headers);t?.transformHeaders&&(a=await t.transformHeaders(a??{}));let o=n.env||t?.env?{...n.env??{},...t?.env??{}}:void 0,s=r.baseUrl?{...e,baseUrl:r.baseUrl}:e,{transformHeaders:c,...l}=t??{};return{requestModel:s,requestOptions:{...l,apiKey:i,headers:a,env:o}}}stream(e,t,n){let r=N(t);return a(e,async()=>{let t=this.requireChatProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return t.stream(i,r,a)})}async complete(e,t,n){return this.stream(e,t,n).result()}streamSimple(e,t,n){let r=N(t);return a(e,async()=>{let t=this.requireChatProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return t.streamSimple(i,r,a)})}async completeSimple(e,t,n){return this.streamSimple(e,t,n).result()}streamDeferred(e,t,n){return a(e,async()=>{let r=this.requireChatProvider(e);if(!r.fetchDeferred)throw new h(`provider`,`Provider ${e.provider} does not support deferred responses`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return r.fetchDeferred(i,t,a)})}async fetchDeferred(e,t,n){return this.streamDeferred(e,t,n).result()}async cancelDeferred(e,t,n){let r=this.requireChatProvider(e);if(!r.cancelDeferred)throw new h(`provider`,`Provider ${e.provider} does not support deferred responses`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);await r.cancelDeferred(i,t,a)}async generateImages(e,t,n){try{ee(e);let r=this.requireProvider(e);if(!r.generateImages)throw new h(`provider`,`Provider ${e.provider} does not support image generation`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return await r.generateImages(i,t,a)}catch(t){return D(e,t,n?.signal?.aborted)}}async classify(e,t,n){try{te(e);let r=this.requireProvider(e);if(!r.classify)throw new h(`provider`,`Provider ${e.provider} does not support classification`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return await r.classify(i,t,a)}catch(t){return O(e,t,n?.signal?.aborted)}}};function ie(e){return new re(e)}function ae(e){let t=e.api&&typeof e.api.stream==`function`?e.api:void 0,n=t||!e.api?void 0:e.api,r=e.images,i=e.classifiers,o=t?[t]:Object.values(n??{}).filter(e=>e!==void 0),s=Object.values(r??{}).filter(e=>e!==void 0),c=Object.values(i??{}).filter(e=>e!==void 0);if(o.length===0&&s.length===0&&c.length===0)throw Error(`Provider ${e.id}: at least one of "api", "images", or "classifiers" is required.`);let l=e.models,u=[],d=e.fetchModels,f=()=>{let e=[...l];for(let t of u){let n=e.findIndex(e=>w(e)===w(t)&&e.id===t.id);n>=0?e[n]=t:e.push(t)}return e},p=e=>t??n?.[e.api],m=(t,n)=>{let r=p(t);return r?n(r):a(t,async()=>{throw new h(`stream`,`Provider ${e.id} has no API implementation for "${t.api}"`)})},g={id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:()=>f().filter(e=>T(e,`chat`)),getAllModels:f,refreshModels:d?async t=>{if(t.stored){let n=t.stored.models.filter(t=>t.provider===e.id).map(e=>e);if(!await t.publish({update:()=>{u=n}}))return}if(!t.allowNetwork||t.signal.aborted)return;let n=await d(t);if(t.signal.aborted)return;let r=n.filter(Y);await t.publish({persist:{models:r,checkedAt:Date.now()},update:()=>{u=r}})}:void 0,filterModels:e.filterModels,filterAllModels:e.filterAllModels,stream:(e,t,n)=>m(e,r=>r.stream(e,t,n)),streamSimple:(e,t,n)=>m(e,r=>r.streamSimple(e,t,n))};return o.some(e=>e.fetchDeferred!==void 0)&&(g.fetchDeferred=(t,n,r)=>a(t,async()=>{let i=p(t);if(!i?.fetchDeferred)throw new h(`provider`,`Provider ${e.id} does not support deferred responses for "${t.api}"`);return i.fetchDeferred(t,n,r)})),o.some(e=>e.cancelDeferred!==void 0)&&(g.cancelDeferred=async(t,n,r)=>{let i=p(t);if(!i?.cancelDeferred)throw new h(`provider`,`Provider ${e.id} cannot cancel deferred responses for "${t.api}"`);await i.cancelDeferred(t,n,r)}),r&&s.length>0&&(g.generateImages=async(t,n,i)=>{let a=r[t.api];return a?a.generateImages(t,n,i):D(t,new h(`provider`,`Provider ${e.id} has no image generation implementation for "${t.api}"`))}),i&&c.length>0&&(g.classify=async(t,n,r)=>{let a=i[t.api];return a?a.classify(t,n,r):O(t,new h(`provider`,`Provider ${e.id} has no classifier implementation for "${t.api}"`))}),g}function oe(e,t){let n=t.input+t.cacheRead+t.cacheWrite,r=e.cost,i=-1;for(let t of e.cost.tiers??[])n>t.inputTokensAbove&&t.inputTokensAbove>i&&(r=t,i=t.inputTokensAbove);let a=t.cacheWrite1h??0,o=t.cacheWrite-a;return t.cost.input=r.input/1e6*t.input,t.cost.output=r.output/1e6*t.output,t.cost.cacheRead=r.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(r.cacheWrite*o+r.input*2*a)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}const Q=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`];function $(e){return e.reasoning?Q.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`||t===`max`?n!==void 0:!0}):[`off`]}function se(e,t){let n=$(e);if(n.includes(t))return t;let r=Q.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<Q.length;e++){let t=Q[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=Q[e];if(n.includes(t))return t}return n[0]??`off`}export{o as S,q as _,$ as a,A as b,L as c,W as d,F as f,B as g,N as h,ae as i,R as l,G as m,se as n,z as o,U as p,ie as r,M as s,oe as t,I as u,V as v,j as x,ne as y};
@@ -1,8 +0,0 @@
1
- import{i as e,r as t}from"./diagnostics-Cag7MsZI.js";import{t as n}from"./preload-helper-Czpn1I53.js";function r(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function i(e){return typeof e.result==`function`}async function a(e,t){for await(let n of t)e.push(n);e.end(i(t)?await t.result():void 0)}function o(t,n){let i=new e;return n().then(e=>a(i,e)).catch(e=>{let n=r(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}function s(e,t){let n={stream:(t,n,r)=>o(t,async()=>(await e()).stream(t,n,r)),streamSimple:(t,n,r)=>o(t,async()=>(await e()).streamSimple(t,n,r))};return t?.fetchDeferred&&(n.fetchDeferred=(t,n,r)=>o(t,async()=>{let i=await e();if(!i.fetchDeferred)throw Error(`API does not support deferred responses`);return i.fetchDeferred(t,n,r)})),t?.cancelDeferred&&(n.cancelDeferred=async(t,n,r)=>{let i=await e();if(!i.cancelDeferred)throw Error(`API cannot cancel deferred responses`);await i.cancelDeferred(t,n,r)}),n}var c=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e},l=e=>n(()=>import(c(e)),[]);function u(){return globalThis.process?.env}function d(){return{async env(e){let t=u()?.[e];return typeof t==`string`&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await l(`node:fs/promises`),n=e;return n.startsWith(`~`)&&(n=(await l(`node:os`)).homedir()+n.slice(1)),await t.access(n),!0}catch{return!1}}}}function f(e){if(e.reason!==void 0)return e.reason;let t=Error(`The operation was aborted`);return t.name=`AbortError`,t}function p(e){return e??new AbortController().signal}function m(e,t){return t.aborted?(e.catch(()=>{}),Promise.reject(f(t))):new Promise((n,r)=>{let i=!1,a=()=>t.removeEventListener(`abort`,o),o=()=>{i||(i=!0,a(),r(f(t)))};t.addEventListener(`abort`,o,{once:!0}),e.then(e=>{i||(i=!0,a(),n(e))},e=>{i||(i=!0,a(),r(e))}),t.aborted&&o()})}var h=class{credentials=new Map;chains=new Map;enqueue(e,t,n){let r=p(n?.signal),i=this.chains.get(e)??Promise.resolve(),a=(async()=>(await i.catch(()=>{}),r.throwIfAborted(),t()))(),o=a.catch(()=>{});return this.chains.set(e,o),o.then(()=>{this.chains.get(e)===o&&this.chains.delete(e)}),m(a,r)}async read(e,t){return t?.signal?.throwIfAborted(),this.credentials.get(e)}async list(e){return e?.signal?.throwIfAborted(),[...this.credentials].map(([e,t])=>({providerId:e,type:t.type}))}modify(e,t,n){return this.enqueue(e,async()=>{let r=this.credentials.get(e),i=await t(r);return n?.signal?.throwIfAborted(),i!==void 0&&this.credentials.set(e,i),i??r},n)}delete(e,t){return this.enqueue(e,async()=>{this.credentials.delete(e)},t)}},g=class extends Error{code;constructor(e,t,n){super(_(t,n?.cause),n),this.name=`ModelsError`,this.code=e}};function _(e,n){if(n==null)return e;let r=t(n).trim();return!r||e.includes(r)?e:`${e}: ${r}`}function v(e,t,n,r){let i=p(r?.signal);return m(y(e,t,n,r,i),i)}async function y(e,t,n,r,i){i.throwIfAborted();let a=r?.env?b(n,r.env):n;if(r?.apiKey!==void 0&&e.auth.apiKey)return C(a,e.auth.apiKey,e.id,{type:`api_key`,key:r.apiKey,env:r.env},i);let o=await w(t,e.id,i);if(o){if(o.type===`oauth`&&e.auth.oauth)return S(t,e.id,e.auth.oauth,o,i,r?.minOAuthValidityMs);if(o.type===`api_key`&&e.auth.apiKey){let t=r?.env?{...o,env:{...o.env,...r.env}}:o;return C(a,e.auth.apiKey,e.id,t,i)}return}return e.auth.apiKey?C(a,e.auth.apiKey,e.id,void 0,i):void 0}function b(e,t){return{env:async n=>t[n]||await e.env(n),fileExists:t=>e.fileExists(t)}}var ee=3e5,x=15e3;async function S(e,t,n,r,i,a){let o=Math.max(ee,a??0),s=e=>Date.now()+o>=e.expires,c=r;if(s(c)){let r;try{r=await e.modify(t,async e=>{if(e?.type===`oauth`&&s(e))try{let t=AbortSignal.any([i,AbortSignal.timeout(x)]);return await n.refresh(e,t)}catch(e){throw new g(`oauth`,`OAuth refresh failed for ${t}`,{cause:e})}},{signal:i})}catch(e){throw e instanceof g?e:new g(`auth`,`Credential store modify failed for ${t}`,{cause:e})}if(r?.type!==`oauth`)return;if(c=r,a!==void 0&&s(c))throw new g(`oauth`,`OAuth refresh returned a token that expires too soon for ${t}`)}try{return{auth:await n.toAuth(c),source:`OAuth`}}catch(e){throw new g(`oauth`,`OAuth auth derivation failed for ${t}`,{cause:e})}}async function C(e,t,n,r,i){try{return await t.resolve({ctx:e,credential:r,signal:i})}catch(e){throw new g(`auth`,`API key auth failed for provider ${n}`,{cause:e})}}async function w(e,t,n){try{return await e.read(t,{signal:n})}catch(e){throw new g(`auth`,`Credential store read failed for ${t}`,{cause:e})}}var te=class{entries=new Map;async read(e,t){t?.signal?.throwIfAborted();let n=this.entries.get(e);return n?structuredClone(n):void 0}async write(e,t,n){n?.signal?.throwIfAborted(),this.entries.set(e,structuredClone(t))}async delete(e,t){t?.signal?.throwIfAborted(),this.entries.delete(e)}};function T(e){return e.type??`chat`}function E(e,t){return T(e)===t}function D(e){if(!E(e,`chat`))throw new g(`provider`,`Model ${e.provider}/${e.id} is not a chat model`)}function ne(e){if(!E(e,`image`))throw new g(`provider`,`Model ${e.provider}/${e.id} is not an image model`)}function O(e){if(!E(e,`classifier`))throw new g(`provider`,`Model ${e.provider}/${e.id} is not a classifier model`)}function k(e,t,n=!1){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:n?`aborted`:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function A(e,t,n=!1){return{api:e.api,provider:e.provider,model:e.id,answers:{},stopReason:n?`aborted`:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function j(e,t=`
2
- `){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(t)}function M(e){let t=[j(e.content)];for(let n of Object.values(e.sections??{}))n!==null&&t.push(n);return t.filter(e=>e.length>0).join(`
3
-
4
- `)}function re(e){let t=[],n=j(e.content);n.length>0&&t.push(n);for(let[n,r]of Object.entries(e.sections??{}))t.push(r===null?`Removed system prompt section "${n}".`:`Updated system prompt section "${n}":\n\n${r}`);return t.join(`
5
-
6
- `)}function N(e,t){let n=e!==void 0&&e.length>0,r=t!==void 0&&t.length>0;if(!(!n&&!r))return{role:`system`,content:e??``,...r?{toolsAdded:t}:{},timestamp:0}}function P(e){let t=N(e.systemPrompt,e.tools);return{messages:t?[t,...e.messages]:e.messages}}function F(e){return e.role===`system`}function I(e){let t=e[0];return t&&F(t)?t:void 0}function L(e){return I(e)?e.slice(1):e}function R(e){let t=new Map;for(let n of e)if(F(n)){for(let e of n.toolsRemoved??[])t.delete(e.name);for(let e of n.toolsAdded??[])t.set(e.name,e)}return[...t.values()]}function z(e){let t=[],n=new Map,r;for(let i of e){if(!F(i))continue;r??=i.timestamp;let e=j(i.content);e.length>0&&t.push(e);for(let[e,t]of Object.entries(i.sections??{}))t===null?n.delete(e):n.set(e,t)}let i=R(e);if(r!==void 0||i.length!==0)return{role:`system`,content:t.join(`
7
-
8
- `),...n.size>0?{sections:Object.fromEntries(n)}:{},...i.length>0?{toolsAdded:i}:{},timestamp:r??0}}function B(e){let t=z(e);return t?M(t):``}function V(e){let t=z(e.messages),n=e.messages.filter(e=>e.role!==`system`);return{messages:t?[t,...n]:n}}function H(e,t){return t?e:V(e)}function U(e){return{name:e.name,description:e.description,parameters:JSON.parse(JSON.stringify(e.parameters)),...e.constrainedSampling===void 0?{}:{constrainedSampling:e.constrainedSampling}}}function W(e,t){return JSON.stringify(U(e))===JSON.stringify(U(t))}function G(e){let t=new Map;for(let n of e)if(F(n))for(let e of n.toolsAdded??[])t.set(e.name,e);return[...t.values()]}function K(e){let t=new Map;for(let n of e)if(F(n))for(let e of n.toolsAdded??[]){let n=t.get(e.name);if(n!==void 0&&!W(n,e))return!0;t.set(e.name,e)}return!1}function q(e){let t=new Set;for(let n of e)if(F(n)){if((n.toolsRemoved?.length??0)>0)return!0;for(let e of n.toolsAdded??[]){if(t.has(e.name))return!0;t.add(e.name)}}return!1}function J(e,t){let n=t&&!q(e);return{requestTools:n?I(e)?.toolsAdded??[]:R(e),anchorsAdditions:n}}var Y={chat:!0,image:!0,classifier:!0};function X(e){return Object.hasOwn(Y,T(e))}function ie(e){return{...e,models:e.models.filter(X)}}function Z(e,t){if(!e&&!t)return;let n={...e};for(let[e,r]of Object.entries(t??{})){let t=e.toLowerCase();for(let e of Object.keys(n))e.toLowerCase()===t&&delete n[e];n[e]=r}return n}var ae=class{providers=new Map;credentials;modelsStore;authContext;refreshGenerations=new Map;refreshControllers=new Map;publicationChains=new Map;constructor(e){this.credentials=e?.credentials??new h,this.modelsStore=e?.modelsStore??new te,this.authContext=e?.authContext??d()}setProvider(e){this.supersedeProviderRefresh(e.id),this.providers.set(e.id,e)}deleteProvider(e){this.supersedeProviderRefresh(e),this.providers.delete(e)}clearProviders(){for(let e of new Set([...this.providers.keys(),...this.refreshControllers.keys()]))this.supersedeProviderRefresh(e);this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let t=this.providers.get(e);if(!t)return[];try{return t.getModels()}catch{return[]}}let t=[];for(let e of this.providers.values())try{t.push(...e.getModels())}catch{}return t}getAllModels(e){if(e!==void 0){let t=this.providers.get(e);if(!t)return[];try{return t.getAllModels?.()??t.getModels()}catch{return[]}}let t=[];for(let e of this.providers.values())try{t.push(...e.getAllModels?.()??e.getModels())}catch{}return t}getModelsOfType(e,t){return this.getAllModels(t).filter(t=>E(t,e))}getModel(e,t){return this.getModels(e).find(e=>e.id===t)}getModelOfType(e,t,n){return this.getModelsOfType(e,t).find(e=>e.id===n)}supersedeProviderRefresh(e){let t=(this.refreshGenerations.get(e)??0)+1;this.refreshGenerations.set(e,t);let n=this.refreshControllers.get(e);return n&&(this.refreshControllers.delete(e),n.abort()),t}beginProviderRefresh(e){let t=this.supersedeProviderRefresh(e),n=new AbortController;return this.refreshControllers.set(e,n),{generation:t,controller:n}}publishProviderModels(e,t,n,r){let i=this.publicationChains.get(e)??Promise.resolve(),a=(async()=>(await i.catch(()=>{}),n.aborted||this.refreshGenerations.get(e)!==t||(r.persist===null?await this.modelsStore.delete(e,{signal:n}):r.persist!==void 0&&await this.modelsStore.write(e,structuredClone(r.persist),{signal:n}),n.aborted||this.refreshGenerations.get(e)!==t)?!1:(r.update?.(),!0)))(),o=a.catch(()=>{});return this.publicationChains.set(e,o),o.then(()=>{this.publicationChains.get(e)===o&&this.publicationChains.delete(e)}),m(a,n)}async runProviderRefreshPhase(e,t,n,r,i,a){let o=await this.modelsStore.read(e.id,{signal:a});await e.refreshModels({credential:t,stored:o?ie(structuredClone(o)):void 0,publish:t=>this.publishProviderModels(e.id,i,a,t),allowNetwork:n,force:n?r:void 0,signal:a})}async refresh(e={}){let t=e.allowNetwork??!0,n=p(e.signal),r=new Map;if(n.aborted)return{aborted:!0,errors:r};let i=e.providers?new Set(e.providers):void 0,a=Array.from(this.providers.values()).filter(e=>e.refreshModels!==void 0&&(!i||i.has(e.id))),o=Promise.all(a.map(async i=>{let{generation:a,controller:o}=this.beginProviderRefresh(i.id),s=AbortSignal.any([n,o.signal]),c=(async()=>{let n,r;try{n=await this.readCredential(i.id,s)}catch(e){r=e}if(await this.runProviderRefreshPhase(i,n,!1,void 0,a,s),r!==void 0)throw r;if(!t||s.aborted)return;let o=await this.resolveRefreshCredential(i,n,s);o&&await this.runProviderRefreshPhase(i,o,!0,e.force,a,s)})();try{await m(c,s)}catch(e){s.aborted||r.set(i.id,e instanceof Error?e:new g(`model_source`,`Model refresh failed for ${i.id}`,{cause:e}))}finally{this.refreshControllers.get(i.id)===o&&this.refreshControllers.delete(i.id)}}));try{await m(o,n)}catch(e){if(!n.aborted)throw e}return{aborted:n.aborted,errors:new Map(r)}}async resolveRefreshCredential(e,t,n){if(t?.type===`oauth`){let r=e.auth.oauth;if(!r)return;if(Date.now()<t.expires)return t;if(n.aborted)return;let i=await this.credentials.modify(e.id,async e=>{if(!(e?.type!==`oauth`||Date.now()<e.expires))return r.refresh(e,n)},{signal:n});return i?.type===`oauth`?i:void 0}let r=e.auth.apiKey;if(!r)return;let i=t?.type===`api_key`?t:void 0,a=await r.resolve({ctx:this.authContext,credential:i,signal:n});if(a)return{type:`api_key`,key:a.auth.apiKey,env:a.env}}async readCredential(e,t){try{return await this.credentials.read(e,{signal:t})}catch(t){throw new g(`auth`,`Credential store read failed for ${e}`,{cause:t})}}async checkProviderAuth(e,t,n){if(t?.type===`oauth`)return e.auth.oauth?{source:`OAuth`,type:`oauth`}:void 0;let r=e.auth.apiKey;if(!r)return;if(r.check)try{return await r.check({ctx:this.authContext,credential:t?.type===`api_key`?t:void 0,signal:n})}catch(t){throw new g(`auth`,`API key auth check failed for provider ${e.id}`,{cause:t})}let i=await v(e,this.credentials,this.authContext,{signal:n});return i?{source:i.source,type:`api_key`}:void 0}checkAuth(e,t){let n=p(t?.signal);return m((async()=>{n.throwIfAborted();let t=this.providers.get(e);if(t)return this.checkProviderAuth(t,await this.readCredential(e,n),n)})(),n)}async getAuthenticatedProviders(e,t){t.throwIfAborted();let n=e?[this.providers.get(e)].filter(e=>e!==void 0):this.getProviders();return(await Promise.all(n.map(async e=>{let n=await this.readCredential(e.id,t);return{provider:e,credential:n,auth:await this.checkProviderAuth(e,n,t)}}))).filter(e=>e.auth!==void 0)}getAvailable(e,t){let n=p(t?.signal);return m((async()=>(await this.getAuthenticatedProviders(e,n)).flatMap(({provider:e,credential:t})=>{let n=e.getModels();return e.filterModels?.(n,t)??n}))(),n)}async getAvailableOfType(e,t,n){return(await this.getAllAvailable(t,n)).filter(t=>E(t,e))}getAllAvailable(e,t){let n=p(t?.signal);return m((async()=>(await this.getAuthenticatedProviders(e,n)).flatMap(({provider:e,credential:t})=>{let n=e.getAllModels?.()??e.getModels();if(e.filterAllModels)return e.filterAllModels(n,t);if(!e.filterModels)return n;let r=new Set(e.filterModels(e.getModels(),t).map(e=>e.id));return n.filter(e=>!E(e,`chat`)||r.has(e.id))}))(),n)}async getAuth(e,t){let n=p(t?.signal),r=typeof e==`string`?e:e.provider,i=this.providers.get(r);if(!i)return;let a=await v(i,this.credentials,this.authContext,{...t,signal:n});return!a||typeof e==`string`||!e.headers?a:{...a,auth:{...a.auth,headers:Z(a.auth.headers,e.headers)}}}async login(e,t,n,r){let i=p(n.signal);i.throwIfAborted();let a=this.providers.get(e);if(!a)throw new g(`provider`,`Unknown provider: ${e}`);let o=t===`oauth`?a.auth.oauth:a.auth.apiKey;if(!o?.login)throw new g(`auth`,`${a.name} does not support ${t} login`);let s=await m(o.login({...n,signal:i},r),i),c=!1,l,u=new Promise(e=>{l=e}),d=this.credentials.modify(e,async()=>(c=!0,l?.(),s),{signal:i});d.catch(()=>{});try{await new Promise((e,t)=>{let n=()=>{c||t(i.reason)};i.addEventListener(`abort`,n,{once:!0}),Promise.race([u,d]).then(()=>{i.removeEventListener(`abort`,n),e()},e=>{i.removeEventListener(`abort`,n),t(e)}),i.aborted&&n()}),await d}catch(t){throw i.throwIfAborted(),new g(`auth`,`Credential store modify failed for ${e}`,{cause:t})}return s}async logout(e,t){let n=p(t?.signal);n.throwIfAborted();try{await this.credentials.delete(e,{signal:n})}catch(t){throw n.throwIfAborted(),new g(`auth`,`Credential store delete failed for ${e}`,{cause:t})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new g(`provider`,`Unknown provider: ${e.provider}`);return t}requireChatProvider(e){return D(e),this.requireProvider(e)}async applyAuth(e,t){this.requireProvider(e);let n=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env,signal:t?.signal});if(!n)throw new g(`auth`,`Provider is not configured: ${e.provider}`);let r=n.auth,i=t?.apiKey??r.apiKey,a=Z(r.headers,t?.headers);t?.transformHeaders&&(a=await t.transformHeaders(a??{}));let o=n.env||t?.env?{...n.env??{},...t?.env??{}}:void 0,s=r.baseUrl?{...e,baseUrl:r.baseUrl}:e,{transformHeaders:c,...l}=t??{};return{requestModel:s,requestOptions:{...l,apiKey:i,headers:a,env:o}}}stream(e,t,n){let r=P(t);return o(e,async()=>{let t=this.requireChatProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return t.stream(i,r,a)})}async complete(e,t,n){return this.stream(e,t,n).result()}streamSimple(e,t,n){let r=P(t);return o(e,async()=>{let t=this.requireChatProvider(e),{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return t.streamSimple(i,r,a)})}async completeSimple(e,t,n){return this.streamSimple(e,t,n).result()}streamDeferred(e,t,n){return o(e,async()=>{let r=this.requireChatProvider(e);if(!r.fetchDeferred)throw new g(`provider`,`Provider ${e.provider} does not support deferred responses`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return r.fetchDeferred(i,t,a)})}async fetchDeferred(e,t,n){return this.streamDeferred(e,t,n).result()}async cancelDeferred(e,t,n){let r=this.requireChatProvider(e);if(!r.cancelDeferred)throw new g(`provider`,`Provider ${e.provider} does not support deferred responses`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);await r.cancelDeferred(i,t,a)}async generateImages(e,t,n){try{ne(e);let r=this.requireProvider(e);if(!r.generateImages)throw new g(`provider`,`Provider ${e.provider} does not support image generation`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return await r.generateImages(i,t,a)}catch(t){return k(e,t,n?.signal?.aborted)}}async classify(e,t,n){try{O(e);let r=this.requireProvider(e);if(!r.classify)throw new g(`provider`,`Provider ${e.provider} does not support classification`);let{requestModel:i,requestOptions:a}=await this.applyAuth(e,n);return await r.classify(i,t,a)}catch(t){return A(e,t,n?.signal?.aborted)}}};function oe(e){return new ae(e)}function se(e){let t=e.api&&typeof e.api.stream==`function`?e.api:void 0,n=t||!e.api?void 0:e.api,r=e.images,i=e.classifiers,a=t?[t]:Object.values(n??{}).filter(e=>e!==void 0),s=Object.values(r??{}).filter(e=>e!==void 0),c=Object.values(i??{}).filter(e=>e!==void 0);if(a.length===0&&s.length===0&&c.length===0)throw Error(`Provider ${e.id}: at least one of "api", "images", or "classifiers" is required.`);let l=e.models,u=[],d=e.fetchModels,f=()=>{let e=[...l];for(let t of u){let n=e.findIndex(e=>T(e)===T(t)&&e.id===t.id);n>=0?e[n]=t:e.push(t)}return e},p=e=>t??n?.[e.api],m=(t,n)=>{let r=p(t);return r?n(r):o(t,async()=>{throw new g(`stream`,`Provider ${e.id} has no API implementation for "${t.api}"`)})},h={id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:()=>f().filter(e=>E(e,`chat`)),getAllModels:f,refreshModels:d?async t=>{if(t.stored){let n=t.stored.models.filter(t=>t.provider===e.id).map(e=>e);if(!await t.publish({update:()=>{u=n}}))return}if(!t.allowNetwork||t.signal.aborted)return;let n=await d(t);if(t.signal.aborted)return;let r=n.filter(X);await t.publish({persist:{models:r,checkedAt:Date.now()},update:()=>{u=r}})}:void 0,filterModels:e.filterModels,filterAllModels:e.filterAllModels,stream:(e,t,n)=>m(e,r=>r.stream(e,t,n)),streamSimple:(e,t,n)=>m(e,r=>r.streamSimple(e,t,n))};return a.some(e=>e.fetchDeferred!==void 0)&&(h.fetchDeferred=(t,n,r)=>o(t,async()=>{let i=p(t);if(!i?.fetchDeferred)throw new g(`provider`,`Provider ${e.id} does not support deferred responses for "${t.api}"`);return i.fetchDeferred(t,n,r)})),a.some(e=>e.cancelDeferred!==void 0)&&(h.cancelDeferred=async(t,n,r)=>{let i=p(t);if(!i?.cancelDeferred)throw new g(`provider`,`Provider ${e.id} cannot cancel deferred responses for "${t.api}"`);await i.cancelDeferred(t,n,r)}),r&&s.length>0&&(h.generateImages=async(t,n,i)=>{let a=r[t.api];return a?a.generateImages(t,n,i):k(t,new g(`provider`,`Provider ${e.id} has no image generation implementation for "${t.api}"`))}),i&&c.length>0&&(h.classify=async(t,n,r)=>{let a=i[t.api];return a?a.classify(t,n,r):A(t,new g(`provider`,`Provider ${e.id} has no classifier implementation for "${t.api}"`))}),h}function ce(e,t){let n=t.input+t.cacheRead+t.cacheWrite,r=e.cost,i=-1;for(let t of e.cost.tiers??[])n>t.inputTokensAbove&&t.inputTokensAbove>i&&(r=t,i=t.inputTokensAbove);let a=t.cacheWrite1h??0,o=t.cacheWrite-a;return t.cost.input=r.input/1e6*t.input,t.cost.output=r.output/1e6*t.output,t.cost.cacheRead=r.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(r.cacheWrite*o+r.input*2*a)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}var Q=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`];function $(e){return e.reasoning?Q.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`||t===`max`?n!==void 0:!0}):[`off`]}function le(e,t){let n=$(e);if(n.includes(t))return t;let r=Q.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<Q.length;e++){let t=Q[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=Q[e];if(n.includes(t))return t}return n[0]??`off`}export{re as _,$ as a,R as c,K as d,P as f,M as g,L as h,se as i,G as l,J as m,le as n,V as o,H as p,oe as r,B as s,ce as t,I as u,s as v};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-D5BvwAIg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/preload-helper-Czpn1I53.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/logger-DDBAeTLF.js","assets/utf16-clip-CGL7omVm.js","assets/account-store-DmRIEeKD.js","assets/core-BFRZk2b-.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-4VBgrEIu.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-hMRoGGjt.js","assets/float-topology-C_iRKPQK.js","assets/secrets-bridge-client-D734Xx8G.js","assets/port-bridge-client-B-gpiOVR.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-CA0WVcn4.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-Df3uDddz.js","assets/claude-model-version-3MWQoaco.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-BJTFywJo.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{a as n}from"./feature-flags-DvsApnS-.js";import{m as r,z as i}from"./account-store-DmRIEeKD.js";import"./main-bbC4wIXo.js";import{t as a}from"./llm-session-id-bZQs6gBN.js";import{F as o,G as s,I as c,L as l,R as u,W as d,z as f}from"./wc-live-D8Nh84rj.js";import{findIndexedFrozenRow as p,removeCuratorByproducts as m}from"./frozen-session-delete-CMYnzw-I.js";var h=t(`new-session`),g=`ui-new-session`,_=2e4,v=5e3,y=250;async function b(e){try{let t=await e.openVfs(),n=r()??void 0;if(!n)return;let o;try{o=i()}catch{return}let s=o.provider===`adobe`?{"X-Session-Id":a(g)}:void 0;await f({vfs:t,model:o,apiKey:n,headers:s}),e.onComplete?.()}catch(e){h.warn(`Pending session catch-up failed (boot continues)`,{error:e instanceof Error?e.message:String(e)})}}function x(e){(e.schedule??S)(()=>{b(e)})}function S(e){if(typeof globalThis.requestIdleCallback==`function`){globalThis.requestIdleCallback(e,{timeout:5e3});return}setTimeout(e,0)}function C(e){if(n(`agentic-memory`)){if(!e.agenticMemorySpawn){h.info(`Agentic memory enabled but agent bridge unavailable — using legacy enrichment`);return}return e.agenticMemorySpawn}}async function w(e,t,n,r,i,a){let o=await l({sessionStore:t,vfs:e.vfs,mode:`quick`,agenticMemorySpawn:a,cone:e.cone});return o?(await O(e,o),D(e,t,n,r,i,a,o),o):null}async function T(e,t){let n;try{n=await p(e,t)}catch(e){return h.warn(`Could not confirm the frozen session still exists — treating it as still frozen`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),t}return n.kind===`absent`?null:n.kind===`present`&&n.row.filename!==t.filename?{...t,filename:n.row.filename}:t}async function E(e,t){let n;try{n=await p(e,t)}catch(e){return h.warn(`Could not confirm whether the frozen session was deleted — leftovers left in place`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),!1}if(n.kind!==`absent`)return!1;try{let r=await m(e,t,n.entries);r.length>0&&h.warn(`Curator leftovers of a deleted session not fully removed`,{filename:t.filename,errors:r})}catch(e){h.warn(`Curator leftovers sweep threw`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}return!0}async function D(t,n,r,i,a,s,l){let u=l;try{let n=await c(t.vfs,l,{model:r,apiKey:i,headers:a,skipMemory:!0,pickIcon:t=>e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-D5BvwAIg.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])).then(({pickLucideIcon:e})=>e(t))});n&&(u={...n,archive:l.archive},t.onBackgroundEnriched?.(n))}catch(e){h.warn(`Agentic title enrichment threw (draft stays pending)`,{filename:l.filename,error:e instanceof Error?e.message:String(e)})}let d=await T(t.vfs,u);if(!d){h.info(`Frozen session deleted before curation — curator skipped`,{filename:u.filename});return}u=d;let f=await o({sessionStore:n,vfs:t.vfs,mode:`full`,model:r,apiKey:i,headers:a,agenticMemorySpawn:s,cone:t.cone},u).catch(e=>(h.warn(`Agentic memory curator threw (entry stays pending)`,{filename:u.filename,error:e instanceof Error?e.message:String(e)}),null));h.info(`Agentic memory curator finished`,{filename:u.filename,memoryPending:!f||f.memoryPending===!0}),!await E(t.vfs,u)&&(t.onBackgroundEnriched?.(f),t.onSessionSettled?.(f??u))}async function O(e,t){if(!e.captureCompleteSnapshot)return;let n=new AbortController,r,i=new Promise((e,t)=>{r=setTimeout(()=>{n.abort(),t(Object.assign(Error(`Complete snapshot timed out`),{code:`snapshot-timeout`}))},v)});try{await Promise.race([e.captureCompleteSnapshot(t,n.signal),i])}catch(n){let r=n?.code??`unknown`;h.warn(`captureCompleteSnapshot failed`,{code:r}),t.completeSnapshotUnavailable=!0;try{await u(e.vfs,t.filename)}catch{}}finally{r&&clearTimeout(r)}}function k(e){return e?.code===`ENOENT`}function A(e,t){return e===t||t.startsWith(e.endsWith(`/`)?e:`${e}/`)}async function j(e,t,n,r){for(let i of n){let n=`${t}/${i.name}`;if(!r.has(n)){if(i.type===`directory`){let t;try{t=await e.readDir(n)}catch(e){if(k(e))continue;throw e}if(await j(e,n,t,r),[...r].some(e=>e.startsWith(`${n}/`)))continue}try{await e.rm(n)}catch(e){if(!k(e))throw e}}}}async function M(e,t){let n=(await e.listMountPoints()).map(({path:e})=>e);if(n.some(e=>A(e,t)))return;let r=new Set(n.filter(e=>e.startsWith(`${t}/`))),i;try{i=await e.readDir(t)}catch(n){if(n?.code!==`ENOENT`)throw n;await e.mkdir(t,{recursive:!0});return}await j(e,t,i,r),await e.mkdir(t,{recursive:!0})}async function N(t){let n=t.enrichmentRaceMs??_,o=r()??void 0,u;try{u=i()}catch(e){h.info(`No active model — freezing without LLM enrichment`,{error:e instanceof Error?e.message:String(e)})}let f=u?.provider===`adobe`?{"X-Session-Id":a(g)}:void 0,p=new s(new d),m=o&&u?C(t):void 0;if(m)return await w(t,p,u,o,f,m);let v=await l({sessionStore:p,vfs:t.vfs,mode:`quick`,cone:t.cone});if(!v)return null;if(await O(t,v),!o||!u)return h.info(`Frozen without enrichment (no LLM credentials) — left pending`,{filename:v.filename}),t.onSessionSettled?.(v),v;let y=u,b=c(t.vfs,v,{model:y,apiKey:o,headers:f,pickIcon:t=>e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-D5BvwAIg.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])).then(({pickLucideIcon:e})=>e(t))}).catch(e=>(h.warn(`Single-click enrichment threw (entry stays pending)`,{filename:v.filename,error:e instanceof Error?e.message:String(e)}),null)),x=await P(b,n,t.onProgress);if(x.kind===`llm`){let e=x.updated?{...x.updated,archive:v.archive}:v;return t.onSessionSettled?.(e),e}return b.then(async e=>{h.info(`Background enrichment resolved after race window`,{filename:v.filename,enriched:e?.filename??null}),t.onBackgroundEnriched?.(e);let n=await T(t.vfs,e??v);n&&t.onSessionSettled?.(n)}),v}async function P(e,t,n){let r=Date.now(),i,a;n?.(0),n&&(i=setInterval(()=>{n(Math.min(1,(Date.now()-r)/t))},y));let o=new Promise(e=>{a=setTimeout(()=>e({kind:`timer`}),t)}),s=e.then(e=>({kind:`llm`,updated:e}));try{return await Promise.race([s,o])}finally{i&&clearInterval(i),a&&clearTimeout(a),n?.(null)}}async function F(e){return L(e,void 0)}async function I(e){return L(e,`skip`)}async function L(e,t){let n=new s(new d),r=await l({sessionStore:n,vfs:e.vfs,mode:`quick`,cone:e.cone,...t?{memory:t}:{}});return r&&await O(e,r),r&&e.onSessionSettled?.(r),r}export{M as resetNewSessionTmp,I as runNewSessionArchiveOnly,N as runNewSessionFreeze,F as runNewSessionFreezeQuick,x as schedulePendingSessionCatchup};
@@ -1 +0,0 @@
1
- import{r as e}from"./anthropic-messages-COqhstcs.js";function t(t){return new Proxy({},{get(n,r){if(typeof r!=`symbol`)throw new e(`\`${t}.${r}\` is not available in this environment; it needs a Node.js-compatible runtime`)}})}t(`child_process`),t(`crypto`);const n=t(`fs`);t(`os`);const r=t(`path`);t(`stream`),t(`util`);export{n as fs,r as path};
@@ -1 +0,0 @@
1
- import{a as e}from"./error-CJ3RHG07.js";function t(t){return new Proxy({},{get(n,r){if(typeof r!=`symbol`)throw new e(`\`${t}.${r}\` is not available in this environment; it needs a Node.js-compatible runtime`)}})}t(`child_process`),t(`crypto`);var n=t(`fs`);t(`os`);var r=t(`path`);t(`stream`),t(`util`);export{n as fs,r as path};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-IGig8YLE.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/account-store-DmRIEeKD.js","assets/core-BFRZk2b-.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/utf16-clip-CGL7omVm.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-4VBgrEIu.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-hMRoGGjt.js","assets/float-topology-C_iRKPQK.js","assets/secrets-bridge-client-D734Xx8G.js","assets/port-bridge-client-B-gpiOVR.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-CA0WVcn4.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-Df3uDddz.js","assets/claude-model-version-3MWQoaco.js","assets/global-db-CbuLl-zx.js","assets/bridge-token-required-DMk2va9k.js","assets/pkce-hGf_TEnP.js","assets/types-D8gIX-W-.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{W as n,u as r}from"./account-store-DmRIEeKD.js";import{t as i}from"./providers-CA0WVcn4.js";import"./main-bbC4wIXo.js";import"./logger-BoSvu4mW.js";var a=t(`oauth-bootstrap`),o=6e4;function s(e){return e instanceof Error?e.message:String(e)}async function c(){try{let{ensureAllMcpProvidersRegistered:t}=await e(async()=>{let{ensureAllMcpProvidersRegistered:e}=await import(`./provider-IGig8YLE.js`);return{ensureAllMcpProvidersRegistered:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36])),n=await t();n.length>0&&a.debug(`Pre-registered MCP providers for OAuth bootstrap`,{count:n.length})}catch(e){a.warn(`Failed to pre-register MCP providers for OAuth bootstrap`,{error:s(e)})}}function l(e){return(e.tokenExpiresAt??1/0)-Date.now()<=o}async function u(e){let t=i(e.providerId);if(!t?.onSilentRenew){a.debug(`Skipping expired account (no silent-renew hook)`,{providerId:e.providerId});return}try{if(await t.onSilentRenew()){a.info(`Silently renewed OAuth token`,{providerId:e.providerId});return}a.warn(`Silent renewal yielded no token; user must re-authenticate`,{providerId:e.providerId})}catch(t){a.warn(`Silent renewal failed`,{providerId:e.providerId,error:s(t)})}}async function d(e,t){try{await n({providerId:e.providerId,accessToken:t,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar}),a.debug(`Bootstrapped OAuth replica`,{providerId:e.providerId})}catch(t){a.error(`OAuth bootstrap failed`,{providerId:e.providerId,error:s(t)})}}async function f(e){let t=e.accessToken;if(!t){a.debug(`Skipping account without token`,{providerId:e.providerId});return}if(l(e)){await u(e);return}await d(e,t)}async function p(){await c();let e=r();a.info(`Bootstrap OAuth replicas`,{count:e.length});for(let t of e)await f(t)}export{p as bootstrapOAuthReplicas};
@@ -1,5 +0,0 @@
1
- import{i as e}from"./diagnostics-Cag7MsZI.js";import{_ as t,b as n,d as r,g as i,n as a,t as o,x as s}from"./models-CET5SEuw.js";import{n as c}from"./json-parse-ClXMvBdK.js";import{t as l}from"./provider-env-CILujRmO.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-auYJ_zjz.js";import{t as v}from"./provider-retry-CSlu6hjs.js";import{t as y}from"./sanitize-unicode-DmIE6hZJ.js";import{n as b,t as x}from"./github-copilot-headers-DRgtIyTm.js";import{o as S,r as C,s as w,t as T}from"./transform-messages-BeurHGV0.js";import{n as E}from"./openai-zaDKJgTh.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 L(e){return e.type===`image`}function ee(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function te(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 R(e){if(!ee(e)||!te(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(R)?t:void 0}catch{return}}function re(e){if(e)try{let t=JSON.parse(e);return R(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function z(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,z(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,z(n,t);return}e.push({...t})}const ae=[`reasoning`,`reasoning_content`,`reasoning_text`];function oe(e){return ae.includes(e)}function B(e,t){return e||(l(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}const V=(t,n,a)=>{let o=new e,s=i(n,$(t).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},n,i=e=>{n!==void 0&&(e.thinkingSignature=JSON.stringify(n))};try{let l=M(t.provider,a?.apiKey,a?.headers),d=$(t),f=p(r(s.messages),d.supportsOpenAIGrammarTools),m=B(a?.cacheRetention,a?.env),h=m===`none`?void 0:a?.sessionId,g=U(t,s,l,a?.headers,a?.fetch,h,d),y=W(t,s,a,d,m,f),b=await a?.onPayload?.(y,t);b!==void 0&&(y=b);let x={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:S,response:C}=await v(()=>g.chat.completions.create(y,x).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});await a?.onResponse?.({status:C.status,headers:u(C.headers)},t),o.push({type:`start`,partial:e});let w=null,T=null,E=!1,D=new Map,O=new Map,k=e.content,A=e=>k.indexOf(e),j=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},N=(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},P=t=>{let n=A(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`)i(t),o.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=N(t,j(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})}}},F=()=>(w||(w={type:`text`,text:``},k.push(w),o.push({type:`text_start`,contentIndex:A(w),partial:e})),w),I=t=>(T||(T={type:`thinking`,thinking:``,thinkingSignature:t},k.push(T),o.push({type:`thinking_start`,contentIndex:A(T),partial:e})),T),L=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:D.get(n);if(!i&&t.id&&(i=O.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&&D.set(n,i),t.id&&O.set(t.id,i),k.push(i),o.push({type:`toolcall_start`,contentIndex:A(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,D.set(n,i)),t.id&&O.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 S){if(await a?.onProviderStreamEvent?.(r,t),!r||typeof r!=`object`)continue;e.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==t.id&&(e.responseModel||=r.model),r.usage&&(e.usage=Q(r.usage,t));let i=Array.isArray(r.choices)?r.choices[0]:void 0;if(i){if(!r.usage&&i.usage&&(e.usage=Q(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=me(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),E=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=F();t.text+=i.delta.content,o.push({type:`text_delta`,contentIndex:A(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 n=a[s];if(typeof n==`string`&&n.length>0){let r=I(t.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,o.push({type:`thinking_delta`,contentIndex:A(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=L(t);!n.id&&t.id&&(n.id=t.id,O.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=N(n,j(n)+t.custom.input,!1)??``),o.push({type:`toolcall_delta`,contentIndex:A(n),delta:i,partial:e})}let l=i.delta.reasoning_details;if(Array.isArray(l))for(let e of l)R(e)&&(I(``),n??=[],ie(n,e))}}}for(let e of k)P(e);if(a?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!E&&!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&&!E||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`&&i(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},H=(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 V(e,t,{...r,reasoningEffort:o,thinkingBudgets:n?.thinkingBudgets})};function U(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":g(),...e.headers};if(e.provider===`github-copilot`){let e=b(t.messages),n=x({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 W(e,n,i,a=$(e),o=B(i?.cacheRetention,i?.env),s=p(r(n.messages),a.supportsOpenAIGrammarTools)){let c=t(n.messages,a.supportsMidConvoSystemMessages===!0&&a.supportsMidConvoToolAdditions===!0),l=X(e,n,a,{grammarToolInputProperties:s}),u=ce(a,o),d={model:e.id,messages:l,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&o!==`none`||o===`long`&&a.supportsLongCacheRetention?k(i?.sessionId):void 0,prompt_cache_retention:o===`long`&&a.supportsLongCacheRetention?`24h`:void 0};a.supportsUsageInStreaming!==!1&&(d.stream_options={include_usage:!0}),a.supportsStore&&(d.store=!1),i?.maxTokens&&(a.maxTokensField===`max_tokens`?d.max_tokens=i.maxTokens:d.max_completion_tokens=i.maxTokens),i?.temperature!==void 0&&(d.temperature=i.temperature),c.requestTools.length>0?(d.tools=Z(c.requestTools,a),a.zaiToolStream&&(d.tool_stream=!0)):N(n.messages)&&(d.tools=[]),u&&le(l,d.tools,u),i?.toolChoice&&(d.tool_choice=i.toolChoice),a.vllmPriority!==void 0&&(d.priority=a.vllmPriority);let f=G(a),m=K(e,i,d);if(a.thinkingFormat===`zai`&&e.reasoning){let t=d;if(t.thinking=i?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},i?.reasoningEffort&&a.supportsReasoningEffort){let n=e.thinkingLevelMap?.[i.reasoningEffort],r=n===void 0?i.reasoningEffort:n;typeof r==`string`&&(t.reasoning_effort=r)}}else if(a.thinkingFormat===`qwen`&&e.reasoning){if(d.enable_thinking=!!i?.reasoningEffort,i?.reasoningEffort&&a.supportsReasoningEffort){let t=e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort;typeof t==`string`&&(d.reasoning_effort=t)}}else if(a.thinkingFormat===`qwen-chat-template`&&e.reasoning)d.chat_template_kwargs={enable_thinking:!!i?.reasoningEffort,preserve_thinking:!0};else if(a.thinkingFormat===`chat-template`&&e.reasoning){let t=q(e,i,a.chatTemplateKwargs,m);t&&(d.chat_template_kwargs=t)}else if(a.thinkingFormat===`baseten`&&e.reasoning){let t=d,n=q(e,i,a.chatTemplateArgs,m);if(n&&(t.chat_template_args=n),a.supportsReasoningEffort){let n=i?.reasoningEffort,r=n?e.thinkingLevelMap?.[n]:e.thinkingLevelMap?.off,a=r===void 0?n:r;typeof a==`string`&&(t.reasoning_effort=a)}}else if(a.thinkingFormat===`deepseek`&&e.reasoning)i?.reasoningEffort?d.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(d.thinking={type:`disabled`}),i?.reasoningEffort&&a.supportsReasoningEffort&&(d.reasoning_effort=e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort);else if(a.thinkingFormat===`openrouter`&&e.reasoning){let t=d;i?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(a.thinkingFormat===`ant-ling`&&e.reasoning&&i?.reasoningEffort){let t=e.thinkingLevelMap?.[i.reasoningEffort];typeof t==`string`&&(d.reasoning={effort:t})}else if(a.thinkingFormat===`together`&&e.reasoning){let t=d;t.reasoning={enabled:!!i?.reasoningEffort},i?.reasoningEffort&&a.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort)}else if(a.thinkingFormat===`string-thinking`&&e.reasoning){let t=d;i?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(i?.reasoningEffort&&e.reasoning&&a.supportsReasoningEffort)d.reasoning_effort=e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort;else if(!i?.reasoningEffort&&e.reasoning&&a.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}}}return Object.assign(d,e.samplingParams,i?.samplingParams),d}function G(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function K(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=S(w(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=se(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function se(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 ce(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 le(e,t,n){ue(e,n),fe(t,n),de(e,n)}function ue(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){pe(n,t);return}}function de(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`)&&J(r,t))return}}function fe(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function pe(e,t){return Y(e,t)}function J(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,r,a,o){let c=i(r,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=t(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 r=d[t];if(a.requiresAssistantAfterToolResult&&m===`toolResult`&&r.role===`user`&&l.push({role:`assistant`,content:`I have processed the tool results.`}),r.role===`system`){let e=t>0&&f.anchorsAdditions?r.toolsAdded??[]:[];if(e.length>0){let t={role:`system`,tools:Z(e,a)};l.push(t)}let i=t===0?n(r):s(r);i.length>0&&l.push({role:p,content:y(i)})}else if(r.role===`user`){if(typeof r.content==`string`)l.push({role:`user`,content:y(r.content)});else{let e=r.content.filter(e=>e.type!==`text`||e.text.length>0).map(e=>e.type===`text`?{type:`text`,text:y(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(r.role===`assistant`){let t={role:`assistant`,content:a.requiresAssistantAfterToolResult?``:null},n=r.content.filter(P).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:y(e.text)})),i=n.map(e=>e.text).join(``),s=r.content.filter(F),c=r.content.filter(I),u=s.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=s.filter(e=>e.thinking.trim().length>0);if(p.length>0){if(a.requiresThinkingAsText)t.content=[{type:`text`,text:p.map(e=>y(e.thinking)).join(`
2
-
3
- `)},...n];else if(i.length>0&&(t.content=i),!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
- `))}}else i.length>0&&(t.content=i);c.length>0&&(t.tool_calls=c.map(e=>{let t=o?.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:y(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(r.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(`
5
- `),o=t.content.some(e=>e.type===`image`),s=i.length>0?i:o?`(see attached image)`:`(no tool output)`,c={role:`tool`,content:y(s),tool_call_id:t.toolCallId};if(a.requiresToolResultName&&t.toolName&&(c.name=t.toolName),l.push(c),o&&e.input.includes(`image`))for(let e of t.content)L(e)&&n.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=r-1,n.length>0?(a.requiresAssistantAfterToolResult&&l.push({role:`assistant`,content:`I have processed the tool results.`}),l.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...n]}),m=`user`):m=`toolResult`;continue}m=r.role}return l}function Z(e,t){return e.map(e=>{let n=d(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=m(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:f(e,r),...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Q(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??e.cached_tokens??0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=Math.max(0,n-r-i),s=e.completion_tokens||0,c={input:a,output:s,cacheRead:r,cacheWrite:i,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:a+s+r+i,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return o(t,c),c}function me(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function he(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=t===`cerebras`||n.includes(`cerebras.ai`),f=t===`deepseek`||n.toLowerCase().includes(`deepseek.com`),p=l||d||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||f||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,m=n.includes(`chutes.ai`)||f||a||c||i||l||u||r,h=t===`xai`||n.includes(`api.x.ai`),g=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),_=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!p,supportsDeveloperRole:g||!p&&!o,supportsReasoningEffort:!h&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:m?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:f,thinkingFormat:f?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,thinkingTokenBudgetField:void 0,supportsStrictMode:!1,supportsOpenAIGrammarTools:!1,supportsMidConvoSystemMessages:!1,supportsMidConvoToolAdditions:!1,cacheControlFormat:_,sendSessionAffinityHeaders:o,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=he(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,thinkingTokenBudgetField:e.compat.thinkingTokenBudgetField??t.thinkingTokenBudgetField,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,supportsMidConvoSystemMessages:e.compat.supportsMidConvoSystemMessages??t.supportsMidConvoSystemMessages,supportsMidConvoToolAdditions:e.compat.supportsMidConvoToolAdditions??t.supportsMidConvoToolAdditions,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention,vllmPriority:e.compat.vllmPriority}:t}export{X as convertMessages,V as stream,H as streamSimple};
@@ -1,5 +0,0 @@
1
- import{i as e}from"./diagnostics-Cag7MsZI.js";import{_ as t,g as n,l as r,m as i,n as a,p as o,t as s}from"./models-Xc0Gclrk.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-DOxF6Eck.js";import{t as v}from"./provider-retry-CSlu6hjs.js";import{t as y}from"./sanitize-unicode-DmIE6hZJ.js";import{n as b,t as x}from"./github-copilot-headers-DRgtIyTm.js";import{o as S,r as C,s as w,t as T}from"./transform-messages-k2mfzJwY.js";import{n as E}from"./openai-CmkcIaBM.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 L(e){return e.type===`image`}function ee(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function te(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 R(e){if(!ee(e)||!te(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(R)?t:void 0}catch{return}}function re(e){if(e)try{let t=JSON.parse(e);return R(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function z(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,z(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,z(n,t);return}e.push({...t})}var ae=[`reasoning`,`reasoning_content`,`reasoning_text`];function oe(e){return ae.includes(e)}function B(e,t){return e||(l(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var V=(t,n,i)=>{let a=new e,s=o(n,$(t).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},n,o=e=>{n!==void 0&&(e.thinkingSignature=JSON.stringify(n))};try{let l=M(t.provider,i?.apiKey,i?.headers),d=$(t),f=p(r(s.messages),d.supportsOpenAIGrammarTools),m=B(i?.cacheRetention,i?.env),h=m===`none`?void 0:i?.sessionId,g=U(t,s,l,i?.headers,i?.fetch,h,d),y=W(t,s,i,d,m,f),b=await i?.onPayload?.(y,t);b!==void 0&&(y=b);let x={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:S,response:C}=await v(()=>g.chat.completions.create(y,x).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:C.status,headers:u(C.headers)},t),a.push({type:`start`,partial:e});let w=null,T=null,E=!1,D=new Map,O=new Map,k=e.content,A=e=>k.indexOf(e),j=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},N=(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},P=t=>{let n=A(t);if(n!==-1){if(t.type===`text`)a.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)o(t),a.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=N(t,j(t),!0);r!==void 0&&a.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,a.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},F=()=>(w||(w={type:`text`,text:``},k.push(w),a.push({type:`text_start`,contentIndex:A(w),partial:e})),w),I=t=>(T||(T={type:`thinking`,thinking:``,thinkingSignature:t},k.push(T),a.push({type:`thinking_start`,contentIndex:A(T),partial:e})),T),L=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:D.get(n);if(!i&&t.id&&(i=O.get(t.id)),!i){let o=t.custom&&!t.function?f.get(r)??`input`:void 0,s=o!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:s?{[o]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:o,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&D.set(n,i),t.id&&O.set(t.id,i),k.push(i),a.push({type:`toolcall_start`,contentIndex:A(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,D.set(n,i)),t.id&&O.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 S){if(await i?.onProviderStreamEvent?.(r,t),!r||typeof r!=`object`)continue;e.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==t.id&&(e.responseModel||=r.model),r.usage&&(e.usage=Q(r.usage,t));let o=Array.isArray(r.choices)?r.choices[0]:void 0;if(o){if(!r.usage&&o.usage&&(e.usage=Q(o.usage,t)),o.finish_reason){e.rawStopReason=o.finish_reason;let t=me(o.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),E=!0}if(o.delta){if(o.delta.content!==null&&o.delta.content!==void 0&&o.delta.content.length>0){let t=F();t.text+=o.delta.content,a.push({type:`text_delta`,contentIndex:A(t),delta:o.delta.content,partial:e})}let r=[`reasoning_content`,`reasoning`,`reasoning_text`],i=o.delta,s=null;for(let e of r){let t=i[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=i[s];if(typeof n==`string`&&n.length>0){let r=I(t.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:A(r),delta:n,partial:e})}}if(o?.delta?.tool_calls)for(let t of o.delta.tool_calls){let n=L(t);!n.id&&t.id&&(n.id=t.id,O.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=N(n,j(n)+t.custom.input,!1)??``),a.push({type:`toolcall_delta`,contentIndex:A(n),delta:i,partial:e})}let l=o.delta.reasoning_details;if(Array.isArray(l))for(let e of l)R(e)&&(I(``),n??=[],ie(n,e))}}}for(let e of k)P(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!E&&!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&&!E||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)t.type===`thinking`&&o(t),delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.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}`),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},H=(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 V(e,t,{...r,reasoningEffort:o,thinkingBudgets:n?.thinkingBudgets})};function U(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":g(),...e.headers};if(e.provider===`github-copilot`){let e=b(t.messages),n=x({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 W(e,t,n,a=$(e),o=B(n?.cacheRetention,n?.env),s=p(r(t.messages),a.supportsOpenAIGrammarTools)){let c=i(t.messages,a.supportsMidConvoSystemMessages===!0&&a.supportsMidConvoToolAdditions===!0),l=X(e,t,a,{grammarToolInputProperties:s}),u=ce(a,o),d={model:e.id,messages:l,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&o!==`none`||o===`long`&&a.supportsLongCacheRetention?k(n?.sessionId):void 0,prompt_cache_retention:o===`long`&&a.supportsLongCacheRetention?`24h`:void 0};a.supportsUsageInStreaming!==!1&&(d.stream_options={include_usage:!0}),a.supportsStore&&(d.store=!1),n?.maxTokens&&(a.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,a),a.zaiToolStream&&(d.tool_stream=!0)):N(t.messages)&&(d.tools=[]),u&&le(l,d.tools,u),n?.toolChoice&&(d.tool_choice=n.toolChoice),a.vllmPriority!==void 0&&(d.priority=a.vllmPriority);let f=G(a),m=K(e,n,d);if(a.thinkingFormat===`zai`&&e.reasoning){let t=d;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&a.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(a.thinkingFormat===`qwen`&&e.reasoning){if(d.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&a.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(d.reasoning_effort=t)}}else if(a.thinkingFormat===`qwen-chat-template`&&e.reasoning)d.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(a.thinkingFormat===`chat-template`&&e.reasoning){let t=q(e,n,a.chatTemplateKwargs,m);t&&(d.chat_template_kwargs=t)}else if(a.thinkingFormat===`baseten`&&e.reasoning){let t=d,r=q(e,n,a.chatTemplateArgs,m);if(r&&(t.chat_template_args=r),a.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(a.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?d.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(d.thinking={type:`disabled`}),n?.reasoningEffort&&a.supportsReasoningEffort&&(d.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(a.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(a.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(d.reasoning={effort:t})}else if(a.thinkingFormat===`together`&&e.reasoning){let t=d;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&a.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(a.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&&a.supportsReasoningEffort)d.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&a.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}}}return Object.assign(d,e.samplingParams,n?.samplingParams),d}function G(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function K(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=S(w(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=se(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function se(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 ce(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 le(e,t,n){ue(e,n),fe(t,n),de(e,n)}function ue(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){pe(n,t);return}}function de(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`)&&J(r,t))return}}function fe(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function pe(e,t){return Y(e,t)}function J(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,r,a,s){let c=o(r,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=i(c.messages,a.supportsMidConvoSystemMessages===!0&&a.supportsMidConvoToolAdditions===!0),p=e.reasoning&&a.supportsDeveloperRole?`developer`:`system`,m=null;for(let r=0;r<d.length;r++){let i=d[r];if(a.requiresAssistantAfterToolResult&&m===`toolResult`&&i.role===`user`&&l.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`system`){let e=r>0&&f.anchorsAdditions?i.toolsAdded??[]:[];if(e.length>0){let t={role:`system`,tools:Z(e,a)};l.push(t)}let o=r===0?n(i):t(i);o.length>0&&l.push({role:p,content:y(o)})}else if(i.role===`user`){if(typeof i.content==`string`)l.push({role:`user`,content:y(i.content)});else{let e=i.content.filter(e=>e.type!==`text`||e.text.length>0).map(e=>e.type===`text`?{type:`text`,text:y(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:y(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=>y(e.thinking)).join(`
2
-
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
- `))}}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:y(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 t=[],n=r;for(;n<d.length&&d[n].role===`toolResult`;n++){let r=d[n],i=r.content.filter(P).map(e=>e.text).join(`
5
- `),o=r.content.some(e=>e.type===`image`),s=i.length>0?i:o?`(see attached image)`:`(no tool output)`,c={role:`tool`,content:y(s),tool_call_id:r.toolCallId};if(a.requiresToolResultName&&r.toolName&&(c.name=r.toolName),l.push(c),o&&e.input.includes(`image`))for(let e of r.content)L(e)&&t.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}r=n-1,t.length>0?(a.requiresAssistantAfterToolResult&&l.push({role:`assistant`,content:`I have processed the tool results.`}),l.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...t]}),m=`user`):m=`toolResult`;continue}m=i.role}return l}function Z(e,t){return e.map(e=>{let n=d(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=m(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:f(e,r),...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Q(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??e.cached_tokens??0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=Math.max(0,n-r-i),o=e.completion_tokens||0,c={input:a,output:o,cacheRead:r,cacheWrite:i,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:a+o+r+i,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return s(t,c),c}function me(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function he(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=t===`cerebras`||n.includes(`cerebras.ai`),f=t===`deepseek`||n.toLowerCase().includes(`deepseek.com`),p=l||d||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||f||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,m=n.includes(`chutes.ai`)||f||a||c||i||l||u||r,h=t===`xai`||n.includes(`api.x.ai`),g=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),_=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!p,supportsDeveloperRole:g||!p&&!o,supportsReasoningEffort:!h&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:m?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:f,thinkingFormat:f?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,thinkingTokenBudgetField:void 0,supportsStrictMode:!1,supportsOpenAIGrammarTools:!1,supportsMidConvoSystemMessages:!1,supportsMidConvoToolAdditions:!1,cacheControlFormat:_,sendSessionAffinityHeaders:o,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=he(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,thinkingTokenBudgetField:e.compat.thinkingTokenBudgetField??t.thinkingTokenBudgetField,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,supportsMidConvoSystemMessages:e.compat.supportsMidConvoSystemMessages??t.supportsMidConvoSystemMessages,supportsMidConvoToolAdditions:e.compat.supportsMidConvoToolAdditions??t.supportsMidConvoToolAdditions,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention,vllmPriority:e.compat.vllmPriority}:t}export{X as convertMessages,V as stream,H as streamSimple};
@@ -1 +0,0 @@
1
- import{i as e}from"./diagnostics-Cag7MsZI.js";import{_ as t,d as n,g as r,n as i}from"./models-CET5SEuw.js";import{t as a}from"./provider-env-CILujRmO.js";import{t as o}from"./headers-FK4rgixo.js";import{n as s,s as c}from"./constrained-sampling-auYJ_zjz.js";import{t as l}from"./provider-retry-CSlu6hjs.js";import{n as u,t as d}from"./github-copilot-headers-DRgtIyTm.js";import{r as f}from"./transform-messages-BeurHGV0.js";import{n as p}from"./openai-zaDKJgTh.js";import{n as m,t as h}from"./error-body-pkrba6pf.js";import{t as g}from"./openai-prompt-cache-DXo9f3w5.js";import{n as _,r as v,t as y}from"./openai-responses-shared-yguGWfYx.js";const b=new Set([`openai`,`openai-codex`,`opencode`]);function x(e,t){return e.provider===`openai`&&e.baseUrl===`https://api.openai.com/v1`&&t!==void 0&&!t.startsWith(`sk-`)}function S(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 C(e,t,n){if(t)return t;if(S(n,`authorization`)||S(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function w(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function T(e,t){return e||(a(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function E(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,sessionAffinityFormat:e.compat?.sessionAffinityFormat??w(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 D(e,t){return t===`long`&&e.supportsLongCacheRetention&&!e.supportsExplicitPromptCacheMode?`24h`:void 0}function O(e,t){if(e.supportsExplicitPromptCacheMode){if(t===`none`)return{mode:`explicit`};if(t===`long`&&e.supportsLongCacheRetention)return{ttl:`30m`}}}const k=(t,i,a)=>{let c=new e,u=r(i,E(t).supportsMidConvoSystemMessages);return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let r=C(t.provider,a?.apiKey,a?.headers),i=T(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,d=E(t),f=s(n(u.messages),d.supportsOpenAIGrammarTools),p=j(t,u,r,a?.headers,a?.fetch,i),m=M(t,u,a,d,f),h=await a?.onPayload?.(m,t);h!==void 0&&(m=h);let g={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:_,response:y}=await l(()=>p.responses.create(m,g).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});if(await a?.onResponse?.({status:y.status,headers:o(y.headers)},t),c.push({type:`start`,partial:e}),await v(_,e,c,t,{onProviderStreamEvent:a?.onProviderStreamEvent,serviceTier:a?.serviceTier,grammarToolInputProperties:f,applyServiceTierPricing:(e,n)=>P(e,n,t)}),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(n){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=a?.signal?.aborted?`aborted`:`error`;let r=h(m(n),`${t.provider===`openai`?`OpenAI`:t.provider} API error`);e.errorMessage=r.includes(`subscription_sharing_usage_limit_exceeded`)?`${r}\nCheck your ChatGPT usage: https://chatgpt.com/settings/usage`:r,c.push({type:`error`,reason:e.stopReason,error:e}),c.end()}})(),c},A=(e,t,n)=>{C(e.provider,n?.apiKey,n?.headers);let r={...f(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},a=n?.reasoning?i(e,n.reasoning):void 0,o=a===`off`?void 0:a;return k(e,t,{...r,reasoningEffort:o})};function j(e,t,n,r,i,a){let o=E(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 p({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function M(e,r,i,a=E(e),o=s(n(r.messages),a.supportsOpenAIGrammarTools)){let c=t(r.messages,a.supportsAdditionalTools||a.supportsToolSearch),l=y(e,r,b,{grammarToolInputProperties:o,supportsMidConvoSystemMessages:a.supportsMidConvoSystemMessages,supportsAdditionalTools:a.supportsAdditionalTools,supportsToolSearch:a.supportsToolSearch,toolOptions:{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools}}),u=T(i?.cacheRetention,i?.env),d=x(e,i?.apiKey),f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:g(i?.sessionId),prompt_cache_retention:d?void 0:D(a,u),prompt_cache_options:d?void 0:O(a,u),store:!1};return i?.maxTokens&&a.supportsMaxOutputTokens&&!d&&(f.max_output_tokens=Math.max(i.maxTokens,16)),i?.temperature!==void 0&&!d&&(f.temperature=i?.temperature),i?.serviceTier!==void 0&&(f.service_tier=i.serviceTier),c.requestTools.length>0&&(f.tools=_(c.requestTools,{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools})),i?.toolChoice!==void 0&&(f.tool_choice=i.toolChoice),e.reasoning&&(i?.reasoningEffort||i?.reasoningSummary?(f.reasoning={effort:i?.reasoningEffort?e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort:`medium`,summary:i?.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`])),Object.assign(f,e.samplingParams,i?.samplingParams),f}function N(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 P(e,t,n){let r=N(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{k as stream,A as streamSimple};
@@ -1 +0,0 @@
1
- import{i as e}from"./diagnostics-Cag7MsZI.js";import{l as t,m as n,n as r,p as i}from"./models-Xc0Gclrk.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-DOxF6Eck.js";import{t as l}from"./provider-retry-CSlu6hjs.js";import{n as u,t as d}from"./github-copilot-headers-DRgtIyTm.js";import{r as f}from"./transform-messages-k2mfzJwY.js";import{n as p}from"./openai-CmkcIaBM.js";import{n as m,t as h}from"./error-body-pkrba6pf.js";import{t as g}from"./openai-prompt-cache-DXo9f3w5.js";import{n as _,r as v,t as y}from"./openai-responses-shared-CbNa5Pf-.js";var b=new Set([`openai`,`openai-codex`,`opencode`]),x=16,S=`https://chatgpt.com/settings/usage`;function C(e,t){return e.provider===`openai`&&e.baseUrl===`https://api.openai.com/v1`&&t!==void 0&&!t.startsWith(`sk-`)}function w(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 T(e,t,n){if(t)return t;if(w(n,`authorization`)||w(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function E(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function D(e,t){return e||(a(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function O(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,sessionAffinityFormat:e.compat?.sessionAffinityFormat??E(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 k(e,t){return t===`long`&&e.supportsLongCacheRetention&&!e.supportsExplicitPromptCacheMode?`24h`:void 0}function A(e,t){if(e.supportsExplicitPromptCacheMode){if(t===`none`)return{mode:`explicit`};if(t===`long`&&e.supportsLongCacheRetention)return{ttl:`30m`}}}var j=(n,r,a)=>{let c=new e,u=i(r,O(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()};try{let r=T(n.provider,a?.apiKey,a?.headers),i=D(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,d=O(n),f=s(t(u.messages),d.supportsOpenAIGrammarTools),p=N(n,u,r,a?.headers,a?.fetch,i),m=P(n,u,a,d,f),h=await a?.onPayload?.(m,n);h!==void 0&&(m=h);let g={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:_,response:y}=await l(()=>p.responses.create(m,g).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});if(await a?.onResponse?.({status:y.status,headers:o(y.headers)},n),c.push({type:`start`,partial:e}),await v(_,e,c,n,{onProviderStreamEvent:a?.onProviderStreamEvent,serviceTier:a?.serviceTier,grammarToolInputProperties:f,applyServiceTierPricing:(e,t)=>I(e,t,n)}),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 r=h(m(t),`${n.provider===`openai`?`OpenAI`:n.provider} API error`);e.errorMessage=r.includes(`subscription_sharing_usage_limit_exceeded`)?`${r}\nCheck your ChatGPT usage: ${S}`:r,c.push({type:`error`,reason:e.stopReason,error:e}),c.end()}})(),c},M=(e,t,n)=>{T(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 j(e,t,{...i,reasoningEffort:o})};function N(e,t,n,r,i,a){let o=O(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 p({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function P(e,r,i,a=O(e),o=s(t(r.messages),a.supportsOpenAIGrammarTools)){let c=n(r.messages,a.supportsAdditionalTools||a.supportsToolSearch),l=y(e,r,b,{grammarToolInputProperties:o,supportsMidConvoSystemMessages:a.supportsMidConvoSystemMessages,supportsAdditionalTools:a.supportsAdditionalTools,supportsToolSearch:a.supportsToolSearch,toolOptions:{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools}}),u=D(i?.cacheRetention,i?.env),d=C(e,i?.apiKey),f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:g(i?.sessionId),prompt_cache_retention:d?void 0:k(a,u),prompt_cache_options:d?void 0:A(a,u),store:!1};return i?.maxTokens&&a.supportsMaxOutputTokens&&!d&&(f.max_output_tokens=Math.max(i.maxTokens,x)),i?.temperature!==void 0&&!d&&(f.temperature=i?.temperature),i?.serviceTier!==void 0&&(f.service_tier=i.serviceTier),c.requestTools.length>0&&(f.tools=_(c.requestTools,{supportsStrictMode:a.supportsStrictMode,supportsOpenAIGrammarTools:a.supportsOpenAIGrammarTools})),i?.toolChoice!==void 0&&(f.tool_choice=i.toolChoice),e.reasoning&&(i?.reasoningEffort||i?.reasoningSummary?(f.reasoning={effort:i?.reasoningEffort?e.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort:`medium`,summary:i?.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`])),Object.assign(f,e.samplingParams,i?.samplingParams),f}function F(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 I(e,t,n){let r=F(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{j as stream,M as streamSimple};