@ltgiang/9router 0.5.74 → 0.5.75

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 (394) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +12 -12
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/expose-models/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  33. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  42. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  43. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  44. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  45. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  46. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  47. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  48. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  49. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/api/combos/reorder/route.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/api/expose-combos/[id]/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/expose-combos/reorder/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/expose-combos/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/models/order/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  82. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/providers/[id]/connections/disabled/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/providers/[id]/pool/pull/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/providers/[id]/pool/push/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/providers/[id]/pool/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/v2/models/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  161. package/app/.next-cli-build/server/app/callback.html +1 -1
  162. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  163. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  164. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  165. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  166. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  167. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  168. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  169. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  170. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  171. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  172. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  173. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  174. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  175. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  176. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  178. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  179. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  180. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  181. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  182. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  183. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  184. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  185. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  186. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  187. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  188. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  189. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  190. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  191. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  192. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  193. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  194. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  195. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  196. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  197. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  198. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  199. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  200. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  201. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  202. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  203. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  204. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  205. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  206. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  207. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  208. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  209. package/app/.next-cli-build/server/app/dashboard/expose-models.html +1 -1
  210. package/app/.next-cli-build/server/app/dashboard/expose-models.rsc +6 -6
  211. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/!KGRhc2hib2FyZCk/dashboard/expose-models/__PAGE__.segment.rsc +2 -2
  212. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/!KGRhc2hib2FyZCk/dashboard/expose-models.segment.rsc +1 -1
  213. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  214. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  215. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/_full.segment.rsc +6 -6
  216. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/_head.segment.rsc +1 -1
  217. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/_index.segment.rsc +4 -4
  218. package/app/.next-cli-build/server/app/dashboard/expose-models.segments/_tree.segment.rsc +1 -1
  219. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  220. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  221. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  222. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  223. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  224. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  225. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  226. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  227. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  229. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  230. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  231. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  232. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  233. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  234. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  236. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  237. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  239. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  241. package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  242. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  243. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  244. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  246. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  247. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  248. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  249. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  252. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  253. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  254. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  257. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  258. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  260. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  263. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  264. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  267. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  268. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  270. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  272. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  273. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  274. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  277. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  278. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  280. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  282. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  283. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  284. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  287. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  288. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  290. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  293. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  294. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  295. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  297. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  299. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  304. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  305. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  308. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  309. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  311. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  314. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  315. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  318. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  319. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  321. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  324. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  325. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  328. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  329. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  330. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  331. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  334. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  335. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  338. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  339. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  341. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  343. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  344. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  345. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  347. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  348. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  349. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  350. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/index.html +1 -1
  352. package/app/.next-cli-build/server/app/index.rsc +4 -4
  353. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  354. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  355. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  356. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  357. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  358. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  359. package/app/.next-cli-build/server/app/landing.html +1 -1
  360. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  361. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  362. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  363. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  364. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  366. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  368. package/app/.next-cli-build/server/app/login.html +1 -1
  369. package/app/.next-cli-build/server/app/login.rsc +5 -5
  370. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  371. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  373. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  375. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  376. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  377. package/app/.next-cli-build/server/app-paths-manifest.json +12 -12
  378. package/app/.next-cli-build/server/chunks/1961.js +1 -1
  379. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  380. package/app/.next-cli-build/server/chunks/4827.js +1 -1
  381. package/app/.next-cli-build/server/chunks/5330.js +3 -3
  382. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  383. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  384. package/app/.next-cli-build/server/chunks/8914.js +1 -1
  385. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  386. package/app/.next-cli-build/server/pages/404.html +1 -1
  387. package/app/.next-cli-build/server/pages/500.html +1 -1
  388. package/app/.next-cli-build/static/chunks/{1321-54bfaaa645910514.js → 1321-70d379b9f3d9ef15.js} +1 -1
  389. package/app/cli/.build-home/.9router/db/backups/{upgrade-0.5.51-to-0.5.52-0.5.52-20260706-170938 → upgrade-0.5.73-to-0.5.74-0.5.74-20260904-150619}/data.sqlite +0 -0
  390. package/app/cli/.build-home/.9router/db/data.sqlite +0 -0
  391. package/app/package.json +1 -1
  392. package/package.json +1 -1
  393. /package/app/.next-cli-build/static/{pk5IWWLb82tfWAEmNAAOm → iTKj9eXrN-bXh1oF46Hqt}/_buildManifest.js +0 -0
  394. /package/app/.next-cli-build/static/{pk5IWWLb82tfWAEmNAAOm → iTKj9eXrN-bXh1oF46Hqt}/_ssgManifest.js +0 -0
@@ -180,7 +180,7 @@ ${d[e].content}`}:d.unshift({id:b,role:"user",content:a})}return d}(x,y);if(0===
180
180
 
181
181
  `)))}),!o.finishEmitted){let c;o.finishEmitted=!0,function(a){if(a.usage)return;let b=a.totalContentLength&&a.totalContentLength>0?Math.max(1,Math.floor(a.totalContentLength/4)):0,c=a.contextUsagePercentage&&a.contextUsagePercentage>0?Math.floor(2e5*a.contextUsagePercentage/100):0;c<=0&&b<=0||(a.usage={prompt_tokens:c,completion_tokens:b,total_tokens:c+b})}(o);let d=(c={id:g,object:"chat.completion.chunk",created:i,model:b,choices:[{index:0,delta:{},finish_reason:o.hasToolCalls?"tool_calls":"stop"}]},o.usage&&(c.usage=o.usage),c);a.enqueue(j.encode(`data: ${JSON.stringify(d)}
182
182
 
183
- `))}a.enqueue(j.encode("data: [DONE]\n\n"))}},{highWaterMark:16384},{highWaterMark:16384});return new Response(a.body.pipeThrough(p),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await (0,g.Ql)(a.refreshToken,a.providerSpecificData,b);if(!c||c.error)return c;if(c._newClientId){let b={...a.providerSpecificData||{},clientId:c._newClientId,clientSecret:c._newClientSecret,clientSecretExpiresAt:c._newClientSecretExpiresAt};return{accessToken:c.accessToken,refreshToken:c.refreshToken,expiresIn:c.expiresIn,providerSpecificData:b}}return c}catch(c){let a=c instanceof Error?c:Error(String(c));return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},13568:(a,b,c)=>{c.d(b,{G:()=>h});var d=c(55511),e=c(97510);let f=["x-opencode-session","x-opencode-request","x-opencode-project","x-opencode-client"];function g(a,b){return Object.entries(a).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1]}function h(a,b,c){let h=b["User-Agent"]||b["user-agent"];for(let c of(h&&(0,e.Uv)(a,h),f)){let d=g(b,c);d&&(a[c]=d)}if(c?.synthesizeRequestId&&!a["x-opencode-session"]){let c=g(b,"x-session-affinity")||g(b,"x-session-id");c&&(a["x-opencode-session"]=c,a["x-opencode-request"]||(a["x-opencode-request"]=(0,d.randomUUID)()))}}},15890:(a,b,c)=>{c.d(b,{i:()=>r});var d=c(97510),e=c(61408),f=c(77598);let g="https://server.self-serve.windsurf.com/exa.language_server_pb.LanguageServerService/GetChatMessage",h="3.14.0",i={"swe-1.6-fast":"swe-1-6-fast","swe-1.6":"swe-1-6","swe-1.5-fast":"swe-1p5","swe-1.5":"swe-1p5","claude-opus-4.7-max":"claude-opus-4-7-max","claude-opus-4.7-xhigh":"claude-opus-4-7-xhigh","claude-opus-4.7-high":"claude-opus-4-7-high","claude-opus-4.7-medium":"claude-opus-4-7-medium","claude-opus-4.7-low":"claude-opus-4-7-low","claude-opus-4.7-review":"opus-4-7-review","claude-sonnet-4.6-thinking-1m":"claude-sonnet-4-6-thinking-1m","claude-sonnet-4.6-1m":"claude-sonnet-4-6-1m","claude-sonnet-4.6-thinking":"claude-sonnet-4-6-thinking","claude-sonnet-4.6":"claude-sonnet-4-6","claude-opus-4.6-thinking":"claude-opus-4-6-thinking","claude-opus-4.6":"claude-opus-4-6","claude-opus-4.5-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-opus-4.5":"MODEL_CLAUDE_4_5_OPUS","claude-sonnet-4.5-thinking":"MODEL_PRIVATE_3","claude-sonnet-4.5":"MODEL_PRIVATE_2","claude-haiku-4.5":"MODEL_PRIVATE_11","claude-4.5-opus-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-4.5-opus":"MODEL_CLAUDE_4_5_OPUS","claude-4.5-sonnet-thinking":"MODEL_PRIVATE_3","claude-4.5-sonnet":"MODEL_PRIVATE_2","claude-4.5-haiku":"MODEL_PRIVATE_11","gpt-5.5-xhigh-fast":"gpt-5-5-xhigh-priority","gpt-5.5-high-fast":"gpt-5-5-high-priority","gpt-5.5-medium-fast":"gpt-5-5-medium-priority","gpt-5.5-low-fast":"gpt-5-5-low-priority","gpt-5.5-none-fast":"gpt-5-5-none-priority","gpt-5.5-xhigh":"gpt-5-5-xhigh","gpt-5.5-high":"gpt-5-5-high","gpt-5.5-medium":"gpt-5-5-medium","gpt-5.5-low":"gpt-5-5-low","gpt-5.5-none":"gpt-5-5-none","gpt-5.5-review":"gpt-5-5-review","gpt-5.5":"gpt-5-5-medium","gpt-5.4-xhigh-fast":"gpt-5-4-xhigh-priority","gpt-5.4-high-fast":"gpt-5-4-high-priority","gpt-5.4-medium-fast":"gpt-5-4-medium-priority","gpt-5.4-low-fast":"gpt-5-4-low-priority","gpt-5.4-none-fast":"gpt-5-4-none-priority","gpt-5.4-xhigh":"gpt-5-4-xhigh","gpt-5.4-high":"gpt-5-4-high","gpt-5.4-medium":"gpt-5-4-medium","gpt-5.4-low":"gpt-5-4-low","gpt-5.4-none":"gpt-5-4-none","gpt-5.4-mini-xhigh":"gpt-5-4-mini-xhigh","gpt-5.4-mini-high":"gpt-5-4-mini-high","gpt-5.4-mini-medium":"gpt-5-4-mini-medium","gpt-5.4-mini-low":"gpt-5-4-mini-low","gpt-5.4":"gpt-5-4-medium","gpt-5.3-codex-xhigh-fast":"gpt-5-3-codex-xhigh-priority","gpt-5.3-codex-high-fast":"gpt-5-3-codex-high-priority","gpt-5.3-codex-medium-fast":"gpt-5-3-codex-medium-priority","gpt-5.3-codex-low-fast":"gpt-5-3-codex-low-priority","gpt-5.3-codex-xhigh":"gpt-5-3-codex-xhigh","gpt-5.3-codex-high":"gpt-5-3-codex-high","gpt-5.3-codex-medium":"gpt-5-3-codex-medium","gpt-5.3-codex-low":"gpt-5-3-codex-low","gpt-5.3-codex":"gpt-5-3-codex-medium","gpt-5.2-xhigh":"MODEL_GPT_5_2_XHIGH","gpt-5.2-high":"MODEL_GPT_5_2_HIGH","gpt-5.2-medium":"MODEL_GPT_5_2_MEDIUM","gpt-5.2-low":"MODEL_GPT_5_2_LOW","gpt-5.2-none":"MODEL_GPT_5_2_NONE","gpt-5.2":"MODEL_GPT_5_2_MEDIUM","gpt-5":"gpt-5","gpt-4.1":"MODEL_CHAT_GPT_4_1_2025_04_14","gpt-4.1-mini":"gpt-4.1-mini","gpt-4o":"MODEL_CHAT_GPT_4O_2024_08_06","gemini-3.1-pro-high":"gemini-3-1-pro-high","gemini-3.1-pro-low":"gemini-3-1-pro-low","gemini-3.1-pro":"gemini-3-1-pro-high","gemini-3.0-flash-high":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-3.0-flash-medium":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM","gemini-3.0-flash-low":"MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW","gemini-3.0-flash-minimal":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL","gemini-3.0-flash":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-2.5-pro":"MODEL_GOOGLE_GEMINI_2_5_PRO","deepseek-v4":"deepseek-v4","kimi-k2.6":"kimi-k2-6","kimi-k2.5":"kimi-k2-5","glm-5.1":"glm-5-1"};function j(a){let b=[],c=a>>>0;for(;c>127;)b.push(127&c|128),c>>>=7;return b.push(127&c),new Uint8Array(b)}function k(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let l=new TextEncoder,m=new TextDecoder;function n(a,b){return k([j(a<<3|2),j(b.length),b])}function o(a,b){return n(a,l.encode(b))}function p(a,b){let c=0,d=0;for(;b<a.length;){let e=a[b++];if(c|=(127&e)<<d,(128&e)==0)break;d+=7}return[c>>>0,b]}function q(a,b){let c=0;for(;c<a.length;){let d;[d,c]=p(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=p(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return m.decode(f)}else if(0===f){let b;[b,c]=p(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class r extends d.Hv{constructor(){super("windsurf",e.xq.windsurf||{id:"windsurf",baseUrl:g})}buildUrl(){return g}buildHeaders(a){let b=a.accessToken||a.apiKey||"";return{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto",...b?{Authorization:`Bearer ${b}`}:{},"User-Agent":`windsurf/${h}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:e,signal:g,log:j,upstreamExtraHeaders:l}){let m,p=e.accessToken||e.apiKey||"",q=i[a]??a,r=b??{},s=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));b.push({role:a,content:d,toolCallId:c.tool_call_id})}return b}(Array.isArray(r.messages)?r.messages:[]);0===s.length&&s.push({role:"user",content:""});let t=function(a,b,c){let d=(0,f.randomUUID)(),e=(0,f.randomUUID)(),g=[n(1,k([o(1,a),o(2,"windsurf"),o(3,h),o(4,"3.14.0"),o(5,d),o(6,"en-US")])),o(2,e),n(3,o(1,b))];for(let a of c)g.push(n(4,function(a){let b=[o(1,a.role),o(2,a.content)];return a.toolCallId&&b.push(o(3,a.toolCallId)),k(b)}(a)));return k(g)}(p,q,s),u=((m=new Uint8Array(5+t.length))[0]=0,new DataView(m.buffer).setUint32(1,t.length,!1),m.set(t,5),m),v=this.buildUrl(),w=this.buildHeaders(e);(0,d._F)(w,l),j?.info?.("WS",`Windsurf → ${q} (${s.length} messages)`);let x=await fetch(v,{method:"POST",headers:w,body:u,signal:g??void 0});return x.ok||200===x.status?{response:this.transformToSSE(x,a,c),url:v,headers:w,transformedBody:t}:{response:x,url:v,headers:w,transformedBody:t}}transformToSSE(a,b,c){let d=`chatcmpl-ws-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=new ReadableStream({async start(c){let f=new TextEncoder,g=!1,h="",i=0,j=0,l=null;function n(a){c.enqueue(f.encode(a))}try{let f=new Uint8Array(0),o=a.body?.getReader(),r=(a,c)=>{if(128===a){let a=m.decode(c),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);l=c?decodeURIComponent(c[1].trim()):`gRPC status ${b[1]}`}return}if(0!==a)return;let f=function(a){let b=0;for(;b<a.length;){let d;[d,b]=p(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=p(a,b);let f=a.slice(b,b+d);if(b+=d,1===e){var c;let a=(c=f,q(c,1));if(null!==a)return{kind:"content",text:a}}else if(3===e){let a=function(a){let b=0,c=null;for(;b<a.length;){let d;[d,b]=p(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=p(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=p(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=p(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=p(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=p(c,b),b+=a}else break}return[d,e]}(f);return{kind:"done",promptTokens:a[0],completionTokens:a[1]}}else if(4===e)return{kind:"error",message:q(f,1)??"unknown windsurf error"}}else if(0===f){let c;[c,b]=p(a,b)}else if(1===f)b+=8;else if(5===f)b+=4;else break}return{kind:"unknown"}}(c);"content"===f.kind&&f.text?(h+=f.text,g||(n(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
183
+ `))}a.enqueue(j.encode("data: [DONE]\n\n"))}},{highWaterMark:16384},{highWaterMark:16384});return new Response(a.body.pipeThrough(p),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await (0,g.Ql)(a.refreshToken,a.providerSpecificData,b);if(!c||c.error)return c;if(c._newClientId){let b={...a.providerSpecificData||{},clientId:c._newClientId,clientSecret:c._newClientSecret,clientSecretExpiresAt:c._newClientSecretExpiresAt};return{accessToken:c.accessToken,refreshToken:c.refreshToken,expiresIn:c.expiresIn,providerSpecificData:b}}return c}catch(c){let a=c instanceof Error?c:Error(String(c));return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},13568:(a,b,c)=>{c.d(b,{DP:()=>m,Gz:()=>l});var d=c(55511),e=c(97510);let f=["x-opencode-session","x-opencode-request","x-opencode-project","x-opencode-client"],g=process.env.OMNIROUTE_OPENCODE_USER_AGENT?.trim()||"opencode/1.18.27 ai-sdk/provider-utils/4.0.23 runtime/bun/1.3.14",h=process.env.OMNIROUTE_OPENCODE_CLIENT?.trim()||"cli",i=process.env.OMNIROUTE_OPENCODE_PROJECT?.trim()||"global";function j(a){return`${a}_${(0,d.randomUUID)().replace(/-/g,"").slice(0,24)}`}function k(a,b){return Object.entries(a).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1]}function l(a,b,c){let g=b["User-Agent"]||b["user-agent"];for(let c of(g&&(0,e.Uv)(a,g),f)){let d=k(b,c);d&&(a[c]=d)}if(c?.synthesizeRequestId&&!a["x-opencode-session"]){let c=k(b,"x-session-affinity")||k(b,"x-session-id");c&&(a["x-opencode-session"]=c,a["x-opencode-request"]||(a["x-opencode-request"]=(0,d.randomUUID)()))}}function m(a,b=null){var c;let d;if("0"===(d=(process.env.OMNIROUTE_OPENCODE_FAKE_HEADERS??"").trim().toLowerCase())||"false"===d||"off"===d||"no"===d)return a;if(!a["x-opencode-client"]){let c=b?k(b,"x-opencode-client"):null;a["x-opencode-client"]=c||h}if(!a["x-opencode-project"]){let c=b?k(b,"x-opencode-project"):null;a["x-opencode-project"]=c||i}return a["x-opencode-session"]||(a["x-opencode-session"]=j("ses")),a["x-opencode-request"]||(a["x-opencode-request"]=j("msg")),"string"==typeof(c=a["User-Agent"]||a["user-agent"])&&c.trim().toLowerCase().startsWith("opencode/")||(0,e.Uv)(a,g),a}},15890:(a,b,c)=>{c.d(b,{i:()=>r});var d=c(97510),e=c(61408),f=c(77598);let g="https://server.self-serve.windsurf.com/exa.language_server_pb.LanguageServerService/GetChatMessage",h="3.14.0",i={"swe-1.6-fast":"swe-1-6-fast","swe-1.6":"swe-1-6","swe-1.5-fast":"swe-1p5","swe-1.5":"swe-1p5","claude-opus-4.7-max":"claude-opus-4-7-max","claude-opus-4.7-xhigh":"claude-opus-4-7-xhigh","claude-opus-4.7-high":"claude-opus-4-7-high","claude-opus-4.7-medium":"claude-opus-4-7-medium","claude-opus-4.7-low":"claude-opus-4-7-low","claude-opus-4.7-review":"opus-4-7-review","claude-sonnet-4.6-thinking-1m":"claude-sonnet-4-6-thinking-1m","claude-sonnet-4.6-1m":"claude-sonnet-4-6-1m","claude-sonnet-4.6-thinking":"claude-sonnet-4-6-thinking","claude-sonnet-4.6":"claude-sonnet-4-6","claude-opus-4.6-thinking":"claude-opus-4-6-thinking","claude-opus-4.6":"claude-opus-4-6","claude-opus-4.5-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-opus-4.5":"MODEL_CLAUDE_4_5_OPUS","claude-sonnet-4.5-thinking":"MODEL_PRIVATE_3","claude-sonnet-4.5":"MODEL_PRIVATE_2","claude-haiku-4.5":"MODEL_PRIVATE_11","claude-4.5-opus-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-4.5-opus":"MODEL_CLAUDE_4_5_OPUS","claude-4.5-sonnet-thinking":"MODEL_PRIVATE_3","claude-4.5-sonnet":"MODEL_PRIVATE_2","claude-4.5-haiku":"MODEL_PRIVATE_11","gpt-5.5-xhigh-fast":"gpt-5-5-xhigh-priority","gpt-5.5-high-fast":"gpt-5-5-high-priority","gpt-5.5-medium-fast":"gpt-5-5-medium-priority","gpt-5.5-low-fast":"gpt-5-5-low-priority","gpt-5.5-none-fast":"gpt-5-5-none-priority","gpt-5.5-xhigh":"gpt-5-5-xhigh","gpt-5.5-high":"gpt-5-5-high","gpt-5.5-medium":"gpt-5-5-medium","gpt-5.5-low":"gpt-5-5-low","gpt-5.5-none":"gpt-5-5-none","gpt-5.5-review":"gpt-5-5-review","gpt-5.5":"gpt-5-5-medium","gpt-5.4-xhigh-fast":"gpt-5-4-xhigh-priority","gpt-5.4-high-fast":"gpt-5-4-high-priority","gpt-5.4-medium-fast":"gpt-5-4-medium-priority","gpt-5.4-low-fast":"gpt-5-4-low-priority","gpt-5.4-none-fast":"gpt-5-4-none-priority","gpt-5.4-xhigh":"gpt-5-4-xhigh","gpt-5.4-high":"gpt-5-4-high","gpt-5.4-medium":"gpt-5-4-medium","gpt-5.4-low":"gpt-5-4-low","gpt-5.4-none":"gpt-5-4-none","gpt-5.4-mini-xhigh":"gpt-5-4-mini-xhigh","gpt-5.4-mini-high":"gpt-5-4-mini-high","gpt-5.4-mini-medium":"gpt-5-4-mini-medium","gpt-5.4-mini-low":"gpt-5-4-mini-low","gpt-5.4":"gpt-5-4-medium","gpt-5.3-codex-xhigh-fast":"gpt-5-3-codex-xhigh-priority","gpt-5.3-codex-high-fast":"gpt-5-3-codex-high-priority","gpt-5.3-codex-medium-fast":"gpt-5-3-codex-medium-priority","gpt-5.3-codex-low-fast":"gpt-5-3-codex-low-priority","gpt-5.3-codex-xhigh":"gpt-5-3-codex-xhigh","gpt-5.3-codex-high":"gpt-5-3-codex-high","gpt-5.3-codex-medium":"gpt-5-3-codex-medium","gpt-5.3-codex-low":"gpt-5-3-codex-low","gpt-5.3-codex":"gpt-5-3-codex-medium","gpt-5.2-xhigh":"MODEL_GPT_5_2_XHIGH","gpt-5.2-high":"MODEL_GPT_5_2_HIGH","gpt-5.2-medium":"MODEL_GPT_5_2_MEDIUM","gpt-5.2-low":"MODEL_GPT_5_2_LOW","gpt-5.2-none":"MODEL_GPT_5_2_NONE","gpt-5.2":"MODEL_GPT_5_2_MEDIUM","gpt-5":"gpt-5","gpt-4.1":"MODEL_CHAT_GPT_4_1_2025_04_14","gpt-4.1-mini":"gpt-4.1-mini","gpt-4o":"MODEL_CHAT_GPT_4O_2024_08_06","gemini-3.1-pro-high":"gemini-3-1-pro-high","gemini-3.1-pro-low":"gemini-3-1-pro-low","gemini-3.1-pro":"gemini-3-1-pro-high","gemini-3.0-flash-high":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-3.0-flash-medium":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM","gemini-3.0-flash-low":"MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW","gemini-3.0-flash-minimal":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL","gemini-3.0-flash":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-2.5-pro":"MODEL_GOOGLE_GEMINI_2_5_PRO","deepseek-v4":"deepseek-v4","kimi-k2.6":"kimi-k2-6","kimi-k2.5":"kimi-k2-5","glm-5.1":"glm-5-1"};function j(a){let b=[],c=a>>>0;for(;c>127;)b.push(127&c|128),c>>>=7;return b.push(127&c),new Uint8Array(b)}function k(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let l=new TextEncoder,m=new TextDecoder;function n(a,b){return k([j(a<<3|2),j(b.length),b])}function o(a,b){return n(a,l.encode(b))}function p(a,b){let c=0,d=0;for(;b<a.length;){let e=a[b++];if(c|=(127&e)<<d,(128&e)==0)break;d+=7}return[c>>>0,b]}function q(a,b){let c=0;for(;c<a.length;){let d;[d,c]=p(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=p(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return m.decode(f)}else if(0===f){let b;[b,c]=p(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class r extends d.Hv{constructor(){super("windsurf",e.xq.windsurf||{id:"windsurf",baseUrl:g})}buildUrl(){return g}buildHeaders(a){let b=a.accessToken||a.apiKey||"";return{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto",...b?{Authorization:`Bearer ${b}`}:{},"User-Agent":`windsurf/${h}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:e,signal:g,log:j,upstreamExtraHeaders:l}){let m,p=e.accessToken||e.apiKey||"",q=i[a]??a,r=b??{},s=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));b.push({role:a,content:d,toolCallId:c.tool_call_id})}return b}(Array.isArray(r.messages)?r.messages:[]);0===s.length&&s.push({role:"user",content:""});let t=function(a,b,c){let d=(0,f.randomUUID)(),e=(0,f.randomUUID)(),g=[n(1,k([o(1,a),o(2,"windsurf"),o(3,h),o(4,"3.14.0"),o(5,d),o(6,"en-US")])),o(2,e),n(3,o(1,b))];for(let a of c)g.push(n(4,function(a){let b=[o(1,a.role),o(2,a.content)];return a.toolCallId&&b.push(o(3,a.toolCallId)),k(b)}(a)));return k(g)}(p,q,s),u=((m=new Uint8Array(5+t.length))[0]=0,new DataView(m.buffer).setUint32(1,t.length,!1),m.set(t,5),m),v=this.buildUrl(),w=this.buildHeaders(e);(0,d._F)(w,l),j?.info?.("WS",`Windsurf → ${q} (${s.length} messages)`);let x=await fetch(v,{method:"POST",headers:w,body:u,signal:g??void 0});return x.ok||200===x.status?{response:this.transformToSSE(x,a,c),url:v,headers:w,transformedBody:t}:{response:x,url:v,headers:w,transformedBody:t}}transformToSSE(a,b,c){let d=`chatcmpl-ws-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=new ReadableStream({async start(c){let f=new TextEncoder,g=!1,h="",i=0,j=0,l=null;function n(a){c.enqueue(f.encode(a))}try{let f=new Uint8Array(0),o=a.body?.getReader(),r=(a,c)=>{if(128===a){let a=m.decode(c),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);l=c?decodeURIComponent(c[1].trim()):`gRPC status ${b[1]}`}return}if(0!==a)return;let f=function(a){let b=0;for(;b<a.length;){let d;[d,b]=p(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=p(a,b);let f=a.slice(b,b+d);if(b+=d,1===e){var c;let a=(c=f,q(c,1));if(null!==a)return{kind:"content",text:a}}else if(3===e){let a=function(a){let b=0,c=null;for(;b<a.length;){let d;[d,b]=p(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=p(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=p(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=p(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=p(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=p(c,b),b+=a}else break}return[d,e]}(f);return{kind:"done",promptTokens:a[0],completionTokens:a[1]}}else if(4===e)return{kind:"error",message:q(f,1)??"unknown windsurf error"}}else if(0===f){let c;[c,b]=p(a,b)}else if(1===f)b+=8;else if(5===f)b+=4;else break}return{kind:"unknown"}}(c);"content"===f.kind&&f.text?(h+=f.text,g||(n(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
184
184
 
185
185
  `),g=!0),n(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{content:f.text},finish_reason:null}]})}
186
186
 
@@ -246,7 +246,7 @@ ${a}`):b.push(a))}return b.join("\n\n")}(G);if(!H.trim())return p(400,"No messag
246
246
 
247
247
  ${d.content}`:Array.isArray(d.content)&&d.content.unshift({type:"text",text:c}):a.messages.unshift({role:"system",content:c})}(h),f))void 0!==h[a]&&delete h[a];if(delete h.system,g=(0,e.gK)(a),(g?.provider==="anthropic"||g?.upstreamProvider==="anthropic"||/(^|[-_/])(?:claude|anthropic)(?:[-_/]|$)/i.test(String(a||"")))&&(delete h.reasoning_effort,delete h.reasoning,delete h.thinking),Array.isArray(h?.messages))for(let a of h.messages)a&&"object"==typeof a&&(delete a.cache_control,Array.isArray(a.content)&&(a.content=a.content.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,signature:c,...d}=a;return d})));Array.isArray(h?.tools)&&(h.tools=h.tools.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,...c}=a;return c}));let i=a.includes("/")?a.split("/").pop():a,j=[`model:${i}`,"phase:explore"],k=Array.isArray(h.tags)?h.tags:[];return h.tags=[...j,...k.filter(a=>!j.includes(a))],h}}},33085:(a,b,c)=>{c.d(b,{c:()=>h});var d=c(97510),e=c(43659);let f="https://www.doubao.com",g=`${f}/api/chat`;class h extends d.Hv{constructor(){super("doubao-web",{id:"doubao-web",baseUrl:"https://www.doubao.com"})}async execute(a){let b,{body:c,credentials:d,signal:h,stream:i}=a,j=c||{},k=(0,e.sY)(String(d?.apiKey??"").trim()),l=j.messages||[],m=j.model||"doubao-default",n={messages:l.map(a=>({role:a.role,content:a.content})),model:m,stream:i,max_tokens:j.max_tokens||4096},o={"Content-Type":"application/json","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:i?"text/event-stream":"application/json",Referer:`${f}/`,Origin:f};k&&(o.Cookie=k);try{b=await fetch(g,{method:"POST",headers:o,body:JSON.stringify(n),signal:h})}catch(a){return(0,e.DV)(502,`Doubao fetch failed: ${a instanceof Error?a.message:"unknown"}`,c,g)}if(!b.ok){let a=await b.text().catch(()=>"");return(0,e.DV)(b.status,`Doubao error: ${a}`,c,g)}if(!i){let a=await b.json(),c=a?.choices?.[0]?.message?.content||a?.content||"";return{response:new Response(JSON.stringify({id:`chatcmpl-doubao-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,message:{role:"assistant",content:c},finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:g,headers:o,transformedBody:n}}let p=new TextEncoder,q=new TextDecoder;return{response:new Response(new ReadableStream({async start(a){let c=b.body?.getReader();if(!c)return void a.close();let d="";try{for(;;){let{done:b,value:e}=await c.read();if(b)break;let f=(d+=q.decode(e,{stream:!0})).split("\n");for(let b of(d=f.pop()||"",f)){if(!b.startsWith("data:"))continue;let c=b.slice(5).trim();if("[DONE]"===c){a.enqueue(p.encode("data: [DONE]\n\n"));continue}try{let b=JSON.parse(c),d=b.choices?.[0]?.delta?.content||"";if(d){let b={id:`chatcmpl-doubao-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,delta:{content:d},finish_reason:null}]};a.enqueue(p.encode(`data: ${JSON.stringify(b)}
248
248
 
249
- `))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},34156:(a,b,c)=>{c.d(b,{f:()=>f});var d=c(74350),e=c(9427);class f extends d.L{constructor(){super("azure-openai")}buildUrl(a,b,c=0,d=null){var f;let g,h=d?.providerSpecificData||{},i=(f=h.baseUrl||this.config.baseUrl,(g=(0,e.o)((f||"").trim()))?g.replace(/\/openai$/i,"").replace(/\/openai\/deployments\/[^/]+\/chat\/completions[^/]*$/i,""):""),j="string"==typeof h.apiVersion&&h.apiVersion.trim()?h.apiVersion.trim():"2024-12-01-preview";return`${i}/openai/deployments/${encodeURIComponent(a)}/chat/completions?api-version=${encodeURIComponent(j)}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json","api-key":a?.apiKey||a?.accessToken||""};return c.Accept=b?"text/event-stream":"application/json",c}}},35538:(a,b,c)=>{c.d(b,{P:()=>k});var d=c(97510),e=c(61408),f=c(57247);let g=[/deepseek/i,/\bkimi\b/i,/\bk2\b/i,/\bminimax\b/i];var h=c(95538),i=c(13568);let j=["low","medium","high","max"];class k extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai),this._requestFormat=null,this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0}syncAccountsFromCredentials(a){let b=a?.providerSpecificData,c=Array.isArray(b?.fingerprints)?b.fingerprints.filter(a=>"string"==typeof a):[],d=b?.accountProxies,e=Array.isArray(d)?new Map(d.map(a=>[a.fingerprint,a.proxy??null])):null;if(0===c.length){this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0;return}let f=new Map(this.accounts.map(a=>[a.fingerprint,a]));this.accounts=c.map(a=>{let b=f.get(a);return{fingerprint:a,cooldownUntil:b?.cooldownUntil??0,consecutiveFails:b?.consecutiveFails??0,proxy:e?e.get(a)??null:null}}),this.nextAccountIdx>=this.accounts.length&&(this.nextAccountIdx=0)}isAccountReady(a){return a.cooldownUntil<=Date.now()}pickAccount(){for(let a=0;a<this.accounts.length;a++){let b=(this.nextAccountIdx+a)%this.accounts.length,c=this.accounts[b];if(this.isAccountReady(c))return this.nextAccountIdx=(b+1)%this.accounts.length,c}let a=this.nextAccountIdx%this.accounts.length;return this.nextAccountIdx=(this.nextAccountIdx+1)%this.accounts.length,this.accounts[a]}markCooldown(a){a.consecutiveFails++;let b=Math.min(5e3*Math.pow(2,a.consecutiveFails-1),6e4);a.cooldownUntil=Date.now()+b+1e3*Math.random()}markSuccess(a){a.consecutiveFails=0}static maskAccountId(a){return a?`${a.slice(0,8)}…`:"direct"}async execute(a){this._requestFormat=(0,f.ux)(this.provider,a.model)||"openai";try{this.syncAccountsFromCredentials(a.credentials);let b=this.accounts.some(a=>null!==a.proxy);if(1===this.accounts.length&&!b)return await super.execute(a);let{log:c}=a,d=null;for(let b=0;b<this.accounts.length;b++){let e=this.pickAccount(),f=k.maskAccountId(e.fingerprint);c?.info?.("OPENCODE",`dispatch via account ${f} (idx ${b+1}/${this.accounts.length})`+(e.proxy?` through proxy ${e.proxy.host}:${e.proxy.port}`:" direct"));let g=await (0,h.jf)(e.proxy,()=>super.execute({...a,skipUpstreamRetry:!0}));d=g;let i=g.response.status;if(429===i){this.markCooldown(e),c?.warn?.("OPENCODE",`Rate limited (429) on account ${f}, rotating to next…`);continue}return this.markSuccess(e),g}return d??await super.execute(a)}finally{this._requestFormat=null}}buildUrl(a,b,c=0,d=null){let e=this.config.baseUrl;switch(this._requestFormat){case"claude":return`${e}/messages`;case"openai-responses":return`${e}/responses`;case"gemini":return`${e}/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:return`${e}/chat/completions`}}buildHeaders(a,b=!0,c,d){let e={"Content-Type":"application/json"},f=a?.apiKey||a?.accessToken;return f&&("claude"===this._requestFormat?e["x-api-key"]=f:e.Authorization=`Bearer ${f}`),"claude"===this._requestFormat&&(e["anthropic-version"]="2023-06-01"),b&&(e.Accept="text/event-stream"),c&&(0,i.G)(e,c,{synthesizeRequestId:!0}),e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(e&&"object"==typeof e&&Array.isArray(e.tools)&&e.tools.length>128&&(e.tools=e.tools.slice(0,128)),e&&"object"==typeof e&&!Array.isArray(e)){let b,c,d=e,f=(b=String(a||""),(c=j.find(a=>b.endsWith(`-${a}`)))&&"deepseek-v4-pro"===b.slice(0,-c.length-1).toLowerCase()?{baseModel:"deepseek-v4-pro",effort:c}:null);f&&(d.model=f.baseModel,void 0===d.reasoning_effort&&(d.reasoning_effort=f.effort))}return a&&"string"==typeof a&&g.some(b=>b.test(a))&&(e=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||!Array.isArray(a.messages))return a;let b=!1,c=a.messages.map(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"assistant"===a.role?"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0?a:(b=!0,{...a,reasoning_content:" "}):a);return b?{...a,messages:c}:a}(e)),e}}},36770:(a,b,c)=>{c.d(b,{Gt:()=>i,Vv:()=>j});var d=c(77598);let e=new Map,f=0;function g(a){let b=e.get(a);b&&(f-=b.bytes.length,e.delete(a))}function h(a=Date.now()){for(let[b,c]of e)a>=c.expiresAt&&g(b)}function i(a,b,c=18e5,j){let k;h(),!function(a,b){for(;(e.size>=25||f+b>a)&&e.size>0;){let a=e.keys().next().value;if(!a)break;g(a)}}(!Number.isFinite(k=Number(process.env.OMNIROUTE_CGPT_WEB_IMAGE_CACHE_MAX_MB))||k<=0?0xa00000:Math.floor(1024*k*1024),a.length);let l=(0,d.randomUUID)().replace(/-/g,""),m=(0,d.createHash)("sha256").update(a).digest("hex");return e.set(l,{bytes:a,mime:b,expiresAt:Date.now()+c,context:j,bytesSha256:m}),f+=a.length,l}function j(a){let b;return(h(),!(b=e.get(a))?null:Date.now()>=b.expiresAt?(g(a),null):b)?.context??null}},39326:(a,b,c)=>{let d;c.d(b,{id:()=>R,kG:()=>N,sO:()=>E,Az:()=>B});var e=c(97510),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(73136);class k{getCachedUint8Memory(){return this.cachedUint8Memory?.byteLength||(this.cachedUint8Memory=new Uint8Array(this.wasmInstance.memory.buffer)),this.cachedUint8Memory}encodeString(a,b,c){let d=a.length,e=b(d,1)>>>0,f=this.getCachedUint8Memory(),g=0;for(;g<d&&!(a.charCodeAt(g)>127);g++)f[e+g]=a.charCodeAt(g);if(g!==d){g>0&&(a=a.slice(g)),e=c(e,d,g+3*a.length,1)>>>0;let b=this.cachedTextEncoder.encodeInto(a,this.getCachedUint8Memory().subarray(e+g,e+g+3*a.length));g+=b.written,e=c(e,g+3*a.length,g,1)>>>0}return this.offset=g,e}calculateHash(a,b,c){try{let d=this.wasmInstance.__wbindgen_add_to_stack_pointer(-16),e=this.encodeString(a,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),f=this.offset,g=this.encodeString(b,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),h=this.offset;this.wasmInstance.wasm_solve(d,e,f,g,h,c);let i=new DataView(this.wasmInstance.memory.buffer),j=i.getInt32(d+0,!0),k=i.getFloat64(d+8,!0);return 0===j?void 0:k}finally{this.wasmInstance.__wbindgen_add_to_stack_pointer(16)}}async init(a){let b=await g().promises.readFile(a),{instance:c}=await WebAssembly.instantiate(b,{wbg:{}});this.wasmInstance=c.exports}constructor(){this.offset=0,this.cachedUint8Memory=null,this.cachedTextEncoder=new TextEncoder}}let l=null,m=!1;async function n(){if(m)return null;if(l)return l;try{let a=new k,b=i().join(i().dirname((0,j.fileURLToPath)("file:///home/letruonggiang/work/9router/open-sse/lib/deepseek-pow.js")),"sha3_wasm_bg.wasm");return await a.init(b),l=a,a}catch{return m=!0,null}}async function o(a,b,e,f,g){let h;if("DeepSeekHashV1"!==a)throw Error(`Unsupported: ${a}`);let i=`${e}_${g}_`,j=await n();if(j){let a=j.calculateHash(b,i,f);return void 0===a?-1:a}let k=(void 0===d&&(d=c(96369).U),d),l=((h={})._sponge=new k({capacity:256,padding:6}),h.update=a=>(h._sponge.absorb(Buffer.from(a,"utf8")),h),h.digest=a=>h._sponge.squeeze(6).toString(a||"hex"),h.copy=()=>{let a={};return a._sponge=h._sponge.copy(),a.update=b=>(a._sponge.absorb(Buffer.from(b,"utf8")),a),a.digest=b=>a._sponge.squeeze(6).toString(b||"hex"),a},h);l.update(i);for(let a=0;a<f;a++)if(l.copy().update(String(a)).digest("hex")===b)return a;return -1}var p=c(72221);function q(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let r=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function s(a,b){let c=RegExp(`\\b${b}\\s*=\\s*("|')`).exec(a);if(!c)return null;let d=c[1],e=c.index+c[0].length,f="";for(;e<a.length;){let b=a[e];if("\\"===b){f+=a[e+1]??"",e+=2;continue}if(b===d)break;f+=b,e+=1}return f}function t(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let u=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function v(a){return"string"==typeof a&&a.length>0?a:null}var w=c(43659);let x="https://chat.deepseek.com",y=`${x}/api`,z=`${y}/v0/chat/completion`,A={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:x,Referer:`${x}/`,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","X-App-Version":"20241129.1","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"1.8.0"},B=new Map,C=new Map;function D(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function E(a){let b=a?.apiKey||a?.accessToken;if("string"!=typeof b||0===b.length)return null;try{let a=JSON.parse(b);if("string"==typeof a?.value)return a.value}catch{}return b}function F(a,b,c){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:c??`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}})}function G(){let a=Date.now(),b=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)});return`intercom-HWWAFSESTIME=${a}; HWWAFSESID=${Array.from({length:18},()=>Math.floor(16*Math.random()).toString(16)).join("")}; Hm_lvt_${b()}=${Math.floor(a/1e3)}; _frid=${b()}`}async function H(a){let b=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at);if(b<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:b,signature:a.signature,target_path:a.target_path})).toString("base64")}function I(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function J(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function K(a,b){let c=a.replace(/FINISHED/g,"").replace(/^(SEARCH|WEB_SEARCH|SEARCHING)\s*/i,"");return J(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function L(a,b){return 0===a.length||b.toLowerCase().includes("search-silent")?"":a.filter(a=>a.cite_index).sort((a,b)=>(a.cite_index||0)-(b.cite_index||0)).map(a=>`[${a.cite_index}]: [${a.title}](${a.url})`).join("\n")}async function M(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=b||"deepseek-web",j=I(i),k=[],l=a=>{let b=K(a,i);if(!b)return;let c=h;!c&&j?c="thinking":!c&&J(i)&&(c="content"),"thinking"===c?g+=b:f+=b},m=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?h="thinking":("ANSWER"===c||"RESPONSE"===c)&&(h="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?h="thinking":("ANSWER"===b||"RESPONSE"===b)&&(h="content")}l(a.content)}};for(;;){let{done:a,value:b}=await d.read();if(a)break;let f=(e+=c.decode(b,{stream:!0})).split("\n");for(let a of(e=f.pop()||"",f)){if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let b=a.replace(/^data:\s*/,"").trim();try{let a=JSON.parse(b),c=a?.p,d=a?.v;if(d&&"object"==typeof d&&d.response&&(!0===d.response.thinking_enabled?h="thinking":!1===d.response.thinking_enabled&&(h="content"),Array.isArray(d.response.fragments)))for(let a of d.response.fragments)m(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)m(a,!0);else d&&"object"==typeof d&&m(d,!0);if("response"===c&&Array.isArray(d))for(let a of d)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(h="thinking");if("response/search_status"===c)continue;if("response/search_results"===c&&Array.isArray(d)){if(a?.o!=="BATCH")k.length=0,k.push(...d);else for(let a of d){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);k[c]&&(k[c].cite_index=a.v)}}continue}if("string"==typeof d)l(d);else if(Array.isArray(d)&&"response"===c){for(let a of d)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&l(b)}}}catch{}}}let n=L(k,i);return n&&(f+=`
249
+ `))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},34156:(a,b,c)=>{c.d(b,{f:()=>f});var d=c(74350),e=c(9427);class f extends d.L{constructor(){super("azure-openai")}buildUrl(a,b,c=0,d=null){var f;let g,h=d?.providerSpecificData||{},i=(f=h.baseUrl||this.config.baseUrl,(g=(0,e.o)((f||"").trim()))?g.replace(/\/openai$/i,"").replace(/\/openai\/deployments\/[^/]+\/chat\/completions[^/]*$/i,""):""),j="string"==typeof h.apiVersion&&h.apiVersion.trim()?h.apiVersion.trim():"2024-12-01-preview";return`${i}/openai/deployments/${encodeURIComponent(a)}/chat/completions?api-version=${encodeURIComponent(j)}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json","api-key":a?.apiKey||a?.accessToken||""};return c.Accept=b?"text/event-stream":"application/json",c}}},35538:(a,b,c)=>{c.d(b,{P:()=>k});var d=c(97510),e=c(61408),f=c(57247);let g=[/deepseek/i,/\bkimi\b/i,/\bk2\b/i,/\bminimax\b/i];var h=c(95538),i=c(13568);let j=["low","medium","high","max"];class k extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai),this._requestFormat=null,this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0}syncAccountsFromCredentials(a){let b=a?.providerSpecificData,c=Array.isArray(b?.fingerprints)?b.fingerprints.filter(a=>"string"==typeof a):[],d=b?.accountProxies,e=Array.isArray(d)?new Map(d.map(a=>[a.fingerprint,a.proxy??null])):null;if(0===c.length){this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0;return}let f=new Map(this.accounts.map(a=>[a.fingerprint,a]));this.accounts=c.map(a=>{let b=f.get(a);return{fingerprint:a,cooldownUntil:b?.cooldownUntil??0,consecutiveFails:b?.consecutiveFails??0,proxy:e?e.get(a)??null:null}}),this.nextAccountIdx>=this.accounts.length&&(this.nextAccountIdx=0)}isAccountReady(a){return a.cooldownUntil<=Date.now()}pickAccount(){for(let a=0;a<this.accounts.length;a++){let b=(this.nextAccountIdx+a)%this.accounts.length,c=this.accounts[b];if(this.isAccountReady(c))return this.nextAccountIdx=(b+1)%this.accounts.length,c}let a=this.nextAccountIdx%this.accounts.length;return this.nextAccountIdx=(this.nextAccountIdx+1)%this.accounts.length,this.accounts[a]}markCooldown(a){a.consecutiveFails++;let b=Math.min(5e3*Math.pow(2,a.consecutiveFails-1),6e4);a.cooldownUntil=Date.now()+b+1e3*Math.random()}markSuccess(a){a.consecutiveFails=0}static maskAccountId(a){return a?`${a.slice(0,8)}…`:"direct"}async execute(a){this._requestFormat=(0,f.ux)(this.provider,a.model)||"openai";try{this.syncAccountsFromCredentials(a.credentials);let b=this.accounts.some(a=>null!==a.proxy);if(1===this.accounts.length&&!b)return await super.execute(a);let{log:c}=a,d=null;for(let b=0;b<this.accounts.length;b++){let e=this.pickAccount(),f=k.maskAccountId(e.fingerprint);c?.info?.("OPENCODE",`dispatch via account ${f} (idx ${b+1}/${this.accounts.length})`+(e.proxy?` through proxy ${e.proxy.host}:${e.proxy.port}`:" direct"));let g=await (0,h.jf)(e.proxy,()=>super.execute({...a,skipUpstreamRetry:!0}));d=g;let i=g.response.status;if(429===i){this.markCooldown(e),c?.warn?.("OPENCODE",`Rate limited (429) on account ${f}, rotating to next…`);continue}return this.markSuccess(e),g}return d??await super.execute(a)}finally{this._requestFormat=null}}buildUrl(a,b,c=0,d=null){let e=this.config.baseUrl;switch(this._requestFormat){case"claude":return`${e}/messages`;case"openai-responses":return`${e}/responses`;case"gemini":return`${e}/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:return`${e}/chat/completions`}}buildHeaders(a,b=!0,c,d){let e={"Content-Type":"application/json"},f=a?.apiKey||a?.accessToken;return f&&("claude"===this._requestFormat?e["x-api-key"]=f:e.Authorization=`Bearer ${f}`),"claude"===this._requestFormat&&(e["anthropic-version"]="2023-06-01"),b&&(e.Accept="text/event-stream"),c&&(0,i.Gz)(e,c,{synthesizeRequestId:!0}),(0,i.DP)(e,c||null),e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(e&&"object"==typeof e&&Array.isArray(e.tools)&&e.tools.length>128&&(e.tools=e.tools.slice(0,128)),e&&"object"==typeof e&&!Array.isArray(e)){let b,c,d=e,f=(b=String(a||""),(c=j.find(a=>b.endsWith(`-${a}`)))&&"deepseek-v4-pro"===b.slice(0,-c.length-1).toLowerCase()?{baseModel:"deepseek-v4-pro",effort:c}:null);f&&(d.model=f.baseModel,void 0===d.reasoning_effort&&(d.reasoning_effort=f.effort))}return a&&"string"==typeof a&&g.some(b=>b.test(a))&&(e=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||!Array.isArray(a.messages))return a;let b=!1,c=a.messages.map(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"assistant"===a.role?"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0?a:(b=!0,{...a,reasoning_content:" "}):a);return b?{...a,messages:c}:a}(e)),e}}},36770:(a,b,c)=>{c.d(b,{Gt:()=>i,Vv:()=>j});var d=c(77598);let e=new Map,f=0;function g(a){let b=e.get(a);b&&(f-=b.bytes.length,e.delete(a))}function h(a=Date.now()){for(let[b,c]of e)a>=c.expiresAt&&g(b)}function i(a,b,c=18e5,j){let k;h(),!function(a,b){for(;(e.size>=25||f+b>a)&&e.size>0;){let a=e.keys().next().value;if(!a)break;g(a)}}(!Number.isFinite(k=Number(process.env.OMNIROUTE_CGPT_WEB_IMAGE_CACHE_MAX_MB))||k<=0?0xa00000:Math.floor(1024*k*1024),a.length);let l=(0,d.randomUUID)().replace(/-/g,""),m=(0,d.createHash)("sha256").update(a).digest("hex");return e.set(l,{bytes:a,mime:b,expiresAt:Date.now()+c,context:j,bytesSha256:m}),f+=a.length,l}function j(a){let b;return(h(),!(b=e.get(a))?null:Date.now()>=b.expiresAt?(g(a),null):b)?.context??null}},39326:(a,b,c)=>{let d;c.d(b,{id:()=>R,kG:()=>N,sO:()=>E,Az:()=>B});var e=c(97510),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(73136);class k{getCachedUint8Memory(){return this.cachedUint8Memory?.byteLength||(this.cachedUint8Memory=new Uint8Array(this.wasmInstance.memory.buffer)),this.cachedUint8Memory}encodeString(a,b,c){let d=a.length,e=b(d,1)>>>0,f=this.getCachedUint8Memory(),g=0;for(;g<d&&!(a.charCodeAt(g)>127);g++)f[e+g]=a.charCodeAt(g);if(g!==d){g>0&&(a=a.slice(g)),e=c(e,d,g+3*a.length,1)>>>0;let b=this.cachedTextEncoder.encodeInto(a,this.getCachedUint8Memory().subarray(e+g,e+g+3*a.length));g+=b.written,e=c(e,g+3*a.length,g,1)>>>0}return this.offset=g,e}calculateHash(a,b,c){try{let d=this.wasmInstance.__wbindgen_add_to_stack_pointer(-16),e=this.encodeString(a,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),f=this.offset,g=this.encodeString(b,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),h=this.offset;this.wasmInstance.wasm_solve(d,e,f,g,h,c);let i=new DataView(this.wasmInstance.memory.buffer),j=i.getInt32(d+0,!0),k=i.getFloat64(d+8,!0);return 0===j?void 0:k}finally{this.wasmInstance.__wbindgen_add_to_stack_pointer(16)}}async init(a){let b=await g().promises.readFile(a),{instance:c}=await WebAssembly.instantiate(b,{wbg:{}});this.wasmInstance=c.exports}constructor(){this.offset=0,this.cachedUint8Memory=null,this.cachedTextEncoder=new TextEncoder}}let l=null,m=!1;async function n(){if(m)return null;if(l)return l;try{let a=new k,b=i().join(i().dirname((0,j.fileURLToPath)("file:///home/letruonggiang/work/9router/open-sse/lib/deepseek-pow.js")),"sha3_wasm_bg.wasm");return await a.init(b),l=a,a}catch{return m=!0,null}}async function o(a,b,e,f,g){let h;if("DeepSeekHashV1"!==a)throw Error(`Unsupported: ${a}`);let i=`${e}_${g}_`,j=await n();if(j){let a=j.calculateHash(b,i,f);return void 0===a?-1:a}let k=(void 0===d&&(d=c(96369).U),d),l=((h={})._sponge=new k({capacity:256,padding:6}),h.update=a=>(h._sponge.absorb(Buffer.from(a,"utf8")),h),h.digest=a=>h._sponge.squeeze(6).toString(a||"hex"),h.copy=()=>{let a={};return a._sponge=h._sponge.copy(),a.update=b=>(a._sponge.absorb(Buffer.from(b,"utf8")),a),a.digest=b=>a._sponge.squeeze(6).toString(b||"hex"),a},h);l.update(i);for(let a=0;a<f;a++)if(l.copy().update(String(a)).digest("hex")===b)return a;return -1}var p=c(72221);function q(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let r=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function s(a,b){let c=RegExp(`\\b${b}\\s*=\\s*("|')`).exec(a);if(!c)return null;let d=c[1],e=c.index+c[0].length,f="";for(;e<a.length;){let b=a[e];if("\\"===b){f+=a[e+1]??"",e+=2;continue}if(b===d)break;f+=b,e+=1}return f}function t(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let u=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function v(a){return"string"==typeof a&&a.length>0?a:null}var w=c(43659);let x="https://chat.deepseek.com",y=`${x}/api`,z=`${y}/v0/chat/completion`,A={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:x,Referer:`${x}/`,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","X-App-Version":"20241129.1","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"1.8.0"},B=new Map,C=new Map;function D(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function E(a){let b=a?.apiKey||a?.accessToken;if("string"!=typeof b||0===b.length)return null;try{let a=JSON.parse(b);if("string"==typeof a?.value)return a.value}catch{}return b}function F(a,b,c){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:c??`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}})}function G(){let a=Date.now(),b=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)});return`intercom-HWWAFSESTIME=${a}; HWWAFSESID=${Array.from({length:18},()=>Math.floor(16*Math.random()).toString(16)).join("")}; Hm_lvt_${b()}=${Math.floor(a/1e3)}; _frid=${b()}`}async function H(a){let b=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at);if(b<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:b,signature:a.signature,target_path:a.target_path})).toString("base64")}function I(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function J(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function K(a,b){let c=a.replace(/FINISHED/g,"").replace(/^(SEARCH|WEB_SEARCH|SEARCHING)\s*/i,"");return J(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function L(a,b){return 0===a.length||b.toLowerCase().includes("search-silent")?"":a.filter(a=>a.cite_index).sort((a,b)=>(a.cite_index||0)-(b.cite_index||0)).map(a=>`[${a.cite_index}]: [${a.title}](${a.url})`).join("\n")}async function M(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=b||"deepseek-web",j=I(i),k=[],l=a=>{let b=K(a,i);if(!b)return;let c=h;!c&&j?c="thinking":!c&&J(i)&&(c="content"),"thinking"===c?g+=b:f+=b},m=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?h="thinking":("ANSWER"===c||"RESPONSE"===c)&&(h="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?h="thinking":("ANSWER"===b||"RESPONSE"===b)&&(h="content")}l(a.content)}};for(;;){let{done:a,value:b}=await d.read();if(a)break;let f=(e+=c.decode(b,{stream:!0})).split("\n");for(let a of(e=f.pop()||"",f)){if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let b=a.replace(/^data:\s*/,"").trim();try{let a=JSON.parse(b),c=a?.p,d=a?.v;if(d&&"object"==typeof d&&d.response&&(!0===d.response.thinking_enabled?h="thinking":!1===d.response.thinking_enabled&&(h="content"),Array.isArray(d.response.fragments)))for(let a of d.response.fragments)m(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)m(a,!0);else d&&"object"==typeof d&&m(d,!0);if("response"===c&&Array.isArray(d))for(let a of d)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(h="thinking");if("response/search_status"===c)continue;if("response/search_results"===c&&Array.isArray(d)){if(a?.o!=="BATCH")k.length=0,k.push(...d);else for(let a of d){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);k[c]&&(k[c].cite_index=a.v)}}continue}if("string"==typeof d)l(d);else if(Array.isArray(d)&&"response"===c){for(let a of d)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&l(b)}}}catch{}}}let n=L(k,i);return n&&(f+=`
250
250
 
251
251
  ${n}`),{content:f,reasoningContent:g}}async function N(a,b,c){let d=B.get(a);if(d&&d.expiresAt>Math.floor(Date.now()/1e3))return d.accessToken;c?.info?.("DEEPSEEK-WEB","Acquiring access token from /users/current...");let e=await fetch(`${y}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...A},signal:b??void 0});if(401===e.status||403===e.status)throw Error("Token invalid or expired — get a new userToken from DeepSeek localStorage");if(!e.ok)throw Error(`users/current HTTP ${e.status}`);let f=await e.json();if(f?.code&&0!==f.code){let b=f.msg||f?.data?.biz_msg||`error code ${f.code}`;throw B.delete(a),Error(`DeepSeek rejected token: ${b}`)}let g=f?.data?.biz_data||f?.biz_data;if(!g?.token){let a=f?.msg||f?.data?.biz_msg||"Unknown error";throw Error(`Failed to acquire token: ${a}`)}let h=g.token;return D(B),B.set(a,{accessToken:h,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${h.length} chars)`),h}async function O(a,b){let c=await fetch(`${y}/v0/chat_session/create`,{method:"POST",headers:{...A,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:G()},body:JSON.stringify({}),signal:b??void 0});if(!c.ok)throw Error(`chat_session/create HTTP ${c.status}`);let d=await c.json(),e=d?.data?.biz_data||d?.biz_data,f=e?.chat_session?.id;if(!f)throw Error(`No session id: code=${d?.code}`);return f}async function P(a,b){try{await fetch(`${y}/v0/chat_session/delete`,{method:"POST",headers:{...A,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})})}catch{}}async function Q(a,b){let c=await fetch(`${y}/v0/chat/create_pow_challenge`,{method:"POST",headers:{...A,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({target_path:"/api/v0/chat/completion"}),signal:b??void 0});if(!c.ok)throw Error(`create_pow_challenge HTTP ${c.status}`);let d=await c.json(),e=d?.data?.biz_data||d?.biz_data;if(!e?.challenge?.challenge)throw Error(`No PoW challenge: code=${d?.code}`);return e.challenge}class R extends e.Hv{constructor(){super("deepseek-web",{baseUrl:x})}async testConnection(a,b){try{let c=E(a);if(!c)return!1;return!!await N(c,b)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){var g,h;let i,j,k=b||{},l=k.tools,m=Array.isArray(l)&&l.length>0,n=m?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=[];for(let c of a){let a=c?.function;if(!a?.name)continue;let d="string"==typeof a.description&&a.description?a.description:"",e="";try{e=a.parameters?JSON.stringify(a.parameters):""}catch{e=""}b.push(`- ${a.name}${d?`: ${d}`:""}${e?`
252
252
  parameters: ${e}`:""}`)}return 0===b.length?"":["You can call tools. To call a tool, output ONLY this exact block (no markdown fence):",'<tool>{"name": "<tool_name>", "arguments": { ... }}</tool>',"Rules:","- Use exactly <tool>...</tool>. Do NOT use <tool:name>, <tool_call>, <name>, <parameter>, id=/name= attributes, or code fences.",'- "name" must be one of the tools below; "arguments" must be a JSON object.',"- When a tool is needed, emit the <tool> block instead of only describing the plan.","- Emit one <tool> block per call; you may put several blocks back to back.","- If no tool is needed, just answer normally without any <tool> block.","","Available tools:",...b].join("\n")}(l):"",o=Array.isArray(k.messages)?k.messages:[],x=n?[{role:"system",content:n},...o]:o,y=E(d);if(!y)return{response:F(400,"Invalid credentials: paste your userToken from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:z,headers:{},transformedBody:b};let{modelType:R,thinkingEnabled:S,searchEnabled:T}=(j=(i=(a||"").toLowerCase()).includes("pro")||i.includes("expert")?"expert":"default",{modelType:j,thinkingEnabled:i.includes("r1")||i.includes("think")||i.includes("reason")||k?.thinking_enabled===!0||k?.thinking===!0||!!k?.reasoning_effort,searchEnabled:i.includes("search")||k?.search_enabled===!0||k?.search===!0||k?.web_search===!0}),U=d.providerSpecificData??{},V=!0===U.persistSession,W="number"==typeof U.historyWindow&&U.historyWindow>0?U.historyWindow:0;try{let b=Date.now(),d=await N(y,e,f);f?.info?.("DEEPSEEK-WEB",`Token acquired in ${Date.now()-b}ms`);let i=m?function(a,b){let c=[];b&&c.push(b);let d=[],e=new Map,f=!1;for(let b of a)if("system"===b.role){let a=q(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=q(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=q(b.content).trim(),c=Array.isArray(b.tool_calls)?b.tool_calls:[],g=[];for(let b of(a&&g.push(a),c)){let a="string"==typeof b?.function?.name?b.function.name:"",c=b?.function?.arguments,d="string"==typeof c&&c?c:JSON.stringify(c??{});b?.id&&e.set(b.id,a),g.push(`<tool>{"name": ${JSON.stringify(a)}, "arguments": ${d}}</tool>`),f=!0}g.length&&d.push(`Assistant: ${g.join("\n")}`)}else if("tool"===b.role){let a=q(b.content).trim(),c=b.tool_call_id&&e.get(b.tool_call_id)||b.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),f=!0}let g=[];return c.length&&g.push(c.join("\n\n")),d.length&&g.push(d.join("\n\n")),f&&g.push("Continue the task using the tool results above. Do NOT repeat tool calls that already succeeded; perform the next step or give the final answer."),g.join("\n\n").replace(/!\[.*?\]\(.*?\)/g,"")}(o,n):function(a,b=0){if(0===a.length)return"";let c=[],d=[],e=new Map,f="";for(let b of a){var g;let a=(Array.isArray(g=b.content)?g.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):String(g||"")).trim();if("system"===b.role)a&&c.push(a);else if("user"===b.role||"assistant"===b.role)for(let c of(a&&d.push({role:b.role,text:a}),"user"===b.role&&(f=a),Array.isArray(b.tool_calls)?b.tool_calls:[]))c?.id&&"string"==typeof c.function?.name&&e.set(c.id,c.function.name);else if("tool"===b.role&&a){let c=b.tool_call_id&&e.get(b.tool_call_id)||b.name||"tool";d.push({role:"tool",text:`(${c}) ${a}`})}}let h=[];if(c.length>0&&h.push(c.join("\n\n")),b>0&&d.length>1){let a=d.slice(-b).map(a=>"assistant"===a.role?`Assistant: ${a.text}`:"tool"===a.role?`Tool result ${a.text}`:`User: ${a.text}`).join("\n\n");h.push(a)}else f&&h.push(f);return h.join("\n\n").replace(/!\[.*?\]\(.*?\)/g,"")}(x,W),j=Array.isArray(k.ref_file_ids)?k.ref_file_ids:[];f?.info?.("DEEPSEEK-WEB",`model_type=${R}, thinking=${S}, search=${T}, files=${j.length}, stream=${!1!==c}, persist=${V}, window=${W}`);let w=async a=>{let b=await Q(d,e),c=await H(b),f={...A,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":c,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:G()},g={chat_session_id:a,parent_message_id:null,model_type:R,prompt:i,ref_file_ids:j,thinking_enabled:S,search_enabled:T,preempt:!1};return{resp:await fetch(z,{method:"POST",headers:f,body:JSON.stringify(g),signal:e??void 0}),reqHeaders:f,requestPayload:g}},E=async()=>{if(V){let a=C.get(y);if(a)return{sessionId:a.sessionId,reused:!0};let b=await O(d,e);return D(C),C.set(y,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await O(d,e),reused:!1}};b=Date.now();let{sessionId:U,reused:X}=await E();f?.info?.("DEEPSEEK-WEB",`Session ${X?"reused":"created"} in ${Date.now()-b}ms`),b=Date.now(),f?.info?.("DEEPSEEK-WEB",`POST ${z}`);let{resp:Y,reqHeaders:Z,requestPayload:$}=await w(U);if(f?.info?.("DEEPSEEK-WEB",`Completion response in ${Date.now()-b}ms, status=${Y.status}`),!Y.ok&&V&&X&&(f?.warn?.("DEEPSEEK-WEB","Reused session failed — retrying with a fresh session"),C.delete(y),U=await O(d,e),D(C),C.set(y,{sessionId:U,createdAt:Date.now()}),X=!1,{resp:Y,reqHeaders:Z,requestPayload:$}=await w(U)),!Y.ok){let a=Y.status,b=`DeepSeek API error (${a})`;401===a||403===a?(B.delete(y),b="DeepSeek token expired — get a fresh userToken from localStorage."):429===a&&(b="DeepSeek rate limited. Wait and retry."),f?.warn?.("DEEPSEEK-WEB",b);try{let a=await Y.json();a?.code&&0!==a.code&&(b=`DeepSeek error ${a.code}: ${a.msg}`)}catch{}return V&&C.delete(y),P(d,U).catch(()=>{}),{response:F(a,b),url:z,headers:Z,transformedBody:$}}if((Y.headers.get("content-type")||"").includes("application/json"))try{let a=await Y.json(),b=function(a){if(!a||"object"!=typeof a)return null;let b=a.code,c="number"==typeof b?b:void 0,d=a.msg,e=a.data,f=e?.biz_msg;return void 0!==c&&0!==c?{code:c,message:("string"==typeof d?d:"string"==typeof f?f:"")||`DeepSeek error ${c}`}:null}(a);if(b){let a=`DeepSeek error ${b.code}: ${b.message}`;f?.warn?.("DEEPSEEK-WEB",a);let c=40003===b.code?401:40002===b.code?429:502;return 40003===b.code&&B.delete(y),V&&C.delete(y),P(d,U).catch(()=>{}),{response:F(c,a,b.code),url:z,headers:Z,transformedBody:$}}return V||P(d,U).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:z,headers:Z,transformedBody:$}}catch{}let _=V?async()=>{}:()=>P(d,U),aa="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(m){let{content:a,reasoningContent:b}=await M(Y.body,aa);await _();let{content:d,toolCalls:e}=function(a,b="call",c){if("string"!=typeof a||0===a.length)return{content:a??"",toolCalls:null};let d=function(a){let b,c=[];for(r.lastIndex=0;null!==(b=r.exec(a));)c.push({start:b.index,end:r.lastIndex,closing:"/"===b[1],suffix:b[2]?b[2].slice(1):"",attrs:b[3]||""});return c}(a);if(0===d.length)return(0,p.uQ)(a,b,c);let e=(0,p.x2)(c),f=function(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a){let a=c?.function;if(!a?.name)continue;let d=a.parameters,e=d?.properties;e&&"object"==typeof e&&!Array.isArray(e)?b.set(a.name,new Set(Object.keys(e))):b.set(a.name,new Set)}return b}(c),g=function(a,b){let c=[],d=[];for(let b of a){if(!b.closing){d.push(b);continue}let a=d.pop();a&&c.push({open:a,close:b,innerStart:a.end,innerEnd:b.start})}for(let a of d){let d={start:b,end:b,closing:!0,suffix:"",attrs:""};c.push({open:a,close:d,innerStart:a.end,innerEnd:b})}return c}(d,a.length),h=[],i=[];for(let c of g.filter(a=>!g.some(b=>b!==a&&b.open.start>=a.innerStart&&b.close.end<=a.innerEnd)).sort((a,b)=>a.open.start-b.open.start)){let d=c.open.suffix||s(c.open.attrs,"name")||s(c.open.attrs,"id")||"",g=function(a,b,c,d){let e,f=b.trim(),g=t(f,"name"),h=t(f,"arguments")??t(f,"parameters"),i=h?null:function(a){let b,c={},d=!1;for(u.lastIndex=0;null!==(b=u.exec(a));){let a=b[1]||"",e=b[2],f=s(a,"name");if(!f)continue;let g=s(a,"content")??("string"==typeof e?e.trim():"");c[f]=g,d=!0}return d?c:null}(f),j=g||h||i?null:(0,p.n)(f),k=j?v(j.name)??v(j.type):null,l=g?(0,p.Ub)(g,c):null,m=k?(0,p.Ub)(k,c):null,n=a?(0,p.Ub)(a,c):null,o=null,q=!1,r=(a,b)=>{!o&&a&&(o=a,q=b)};if(r(l,!1),r(m,!1),r(n,!0),r(g,!1),r(k,!1),r(a,!0),!o&&!a&&j){let a=v(j.command),b=a?(0,p.Ub)(a,c):null;b&&(o=b,q=!1)}if(!o&&i&&d&&d.size>0){let a=Object.keys(i);if(a.length>0){let b=[];for(let[c,e]of d)e.size>0&&a.every(a=>e.has(a))&&b.push(c);1===b.length&&(o=b[0],q=!1)}}if(!o)return null;if(h)e=(0,p.n)(h)??h;else if(i)e=i;else if(j)if(void 0!==j.arguments)e=j.arguments;else if(void 0!==j.params)e=j.params;else if(q)e=j;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=j;e=h}else e={};return{name:o,arguments:(0,p.r3)(e)}}(d,a.slice(c.innerStart,c.innerEnd),e,f);g&&(h.push({id:`${b}_${h.length}`,type:"function",function:{name:g.name,arguments:g.arguments}}),i.push({start:c.open.start,end:c.close.end}))}if(0===h.length)return(0,p.uQ)(a,b,c);let j=[...i,...d.filter(a=>!i.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))];return{content:(0,p.LW)(a,j),toolCalls:h}}(a,`call-${Date.now()}`,l);return function(a){let{stream:b,clientModel:c,content:d,reasoningContent:e,toolCalls:f,reqHeaders:g,requestPayload:h}=a,i=!!f&&f.length>0,j=i?"tool_calls":"stop",k=`chatcmpl-${Date.now()}`,l=Math.floor(Date.now()/1e3);if(b){let a=new TextEncoder,b=(b,d,e)=>{b.enqueue(a.encode(`data: ${JSON.stringify({id:k,object:"chat.completion.chunk",created:l,model:c,choices:[{index:0,delta:d,finish_reason:e}]})}
@@ -353,7 +353,7 @@ var getComputedStyle = __getComputedStyle;
353
353
  `;a.enqueue(new TextEncoder().encode(d))}}}catch{}}}if(h.trim()){let c=h.trim();if(c.startsWith("data: ")){let d=c.slice(6);try{let c=JSON.parse(d);if("content_block_delta"===c.type){let d=c.delta,e=d?.text;if(e){let c=r(e,b);a.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)}
354
354
 
355
355
  `))}}}catch{}}}f||a.enqueue(new TextEncoder().encode("data: [DONE]\n\n"))}catch(b){c?.error?.("CLAUDE-WEB-STREAM",`Stream error: ${String(b)}`),a.error(b)}finally{try{d.releaseLock()}catch{}try{a.close()}catch{}}}});return new Response(g,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}class y extends e.Hv{constructor(){super("claude-web",{baseUrl:v})}async testConnection(a,b){try{let c=n(a);if(!c.trim())return!1;let d=await q(c,{allowAutoSolve:!1}),e=o(a);return await s(d,e,b)}catch(a){return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:i}){let m=b||{};try{let b;if(!d||"object"!=typeof d)return{response:new Response(JSON.stringify({error:{message:"Invalid credentials",type:"invalid_request_error"}}),{status:400,statusText:"Bad Request",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m};let c=n(d);if(!c.trim())return{response:new Response(JSON.stringify({error:{message:"Missing session cookie",type:"authentication_error"}}),{status:401,statusText:"Unauthorized",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m};let k=await q(c,{allowAutoSolve:!0,log:i}),r=o(d);try{b=function(a,b){let c=Array.isArray(a.messages)?a.messages:[],d="";for(let a of c)"object"==typeof a&&null!==a&&"user"===a.role&&(d=String(a.content||""));if(!d.trim())throw Error("No user message found in request");return{prompt:d,model:b||x,timezone:"Asia/Jakarta",personalized_styles:[{type:"default",key:"Default",name:"Normal",nameKey:"normal_style_name",prompt:"Normal\n",summary:"Default responses from Claude",summaryKey:"normal_style_summary",isDefault:!0}],locale:"en-US",tools:[{name:"show_widget",description:"Display interactive widgets and visualizations",input_schema:{type:"object",properties:{widget_type:{type:"string",description:"Type of widget to display"}}},integration_name:"visualize",is_mcp_app:!0},{name:"read_me",description:"Read and reference documents",input_schema:{type:"object",properties:{file_path:{type:"string",description:"Path to the file to read"}}},integration_name:"visualize",is_mcp_app:!1},{type:"web_search_v0",name:"web_search"},{type:"artifacts_v0",name:"artifacts"},{type:"repl_v0",name:"repl"},{type:"widget",name:"weather_fetch"},{type:"widget",name:"recipe_display_v0"},{type:"widget",name:"places_map_display_v0"},{type:"widget",name:"message_compose_v1"},{type:"widget",name:"ask_user_input_v0"},{type:"widget",name:"recommend_claude_apps"},{type:"widget",name:"places_search"},{type:"widget",name:"fetch_sports_data"}],turn_message_uuids:{human_message_uuid:(0,j.randomUUID)(),assistant_message_uuid:(0,j.randomUUID)()},attachments:[],effort:"low",files:[],sync_sources:[],rendering_mode:"messages",thinking_mode:"off",create_conversation_params:{name:"",model:b||x,include_conversation_preferences:!0,paprika_mode:null,compass_mode:null,is_temporary:!1,enabled_imagine:!0,tool_search_mode:"auto"}}}(m,a)}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Invalid request format",type:"invalid_request_error"}}),{status:400,statusText:"Bad Request",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m}}let s=d?.orgId,w=d?.conversationId;!s&&((s=await t(k,r,h))||(i?.warn?.("CLAUDE-WEB","Could not retrieve organization ID, using fallback"),s="")),w||(w=(0,j.randomUUID)());let y=p(r);if(function(){let a=process.env.WEB_COOKIE_USE_BROWSER;if("1"===a||"true"===a||"on"===a)return!0;let b=process.env.OMNIROUTE_BROWSER_POOL;return"on"===b||"1"===b||"true"===b}()){let d=function(a){let b=Array.isArray(a.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){let c=b[a].content;if("string"==typeof c)return c;if(Array.isArray(c))return c.map(a=>"object"==typeof a&&a&&"text"in a?String(a.text):"").filter(Boolean).join("\n")}return"Reply with OK"}(m),e=s?`${v}/organizations/${s}/chat_conversations/PLACEHOLDER/completion`:`${v}/chat_conversations/PLACEHOLDER/completion`,f=await (0,l.As)({poolKey:"claude-web",chatPageUrl:"https://claude.ai/new",chatUrl:e,chatUrlMatchDomain:"claude.ai",cookieString:c,cookieDomain:".claude.ai",userMessage:d,inputSelector:"div[contenteditable='true']",postSubmitWaitMs:15e3,signal:h??null});if(f.status>0){let c=new Response(f.body,{status:f.status,headers:{"Content-Type":f.contentType||"text/event-stream"}});return{response:await u(c,a,i,null),url:e,headers:y,transformedBody:b}}return{response:new Response(JSON.stringify({error:{message:`Claude Web browser-backed chat captured no upstream response (timing: ${JSON.stringify(f.timing)})`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:e,headers:y,transformedBody:b}}let z=s&&w?`${v}/organizations/${s}/chat_conversations/${w}/completion`:`${v}/chat_conversations/new/completion`,A=AbortSignal.timeout(f.MT),B=h?(0,e.OW)(h,A):A;i?.debug?.("CLAUDE-WEB",`Making request to ${z}`);let C=await (0,g.wf)(z,{method:"POST",headers:{...y,Cookie:k},body:JSON.stringify(b),timeoutMs:f.MT,stream:!0,signal:B});if(C.status<200||C.status>=300){let a;if(i?.error?.("CLAUDE-WEB",`HTTP ${C.status}`),401===C.status)return{response:new Response(JSON.stringify({error:{message:"Session expired or invalid",type:"authentication_error"}}),{status:401,statusText:"Unauthorized",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b};if(429===C.status)return{response:new Response(JSON.stringify({error:{message:"Rate limited by Claude Web API",type:"rate_limit_error"}}),{status:429,statusText:"Too Many Requests",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b};let c="",d=null;try{if(C.body){let a=C.body.getReader(),b=new TextDecoder,d=[],e=0;for(;e<2048;){let{value:b,done:c}=await a.read();if(c||!b)break;d.push(b),e+=b.byteLength}try{a.releaseLock()}catch{}if(1===d.length)c=b.decode(d[0]);else{let a=new Uint8Array(e),f=0;for(let b of d)a.set(b,f),f+=b.byteLength;c=b.decode(a)}}else C.text&&(c=C.text)}catch{c=""}d=C.headers.get("cf-mitigated");let e=403===C.status&&("challenge"===d||/<title>\s*Just a moment/i.test(c)||/<title>\s*Attention Required/i.test(c));if(e)a=`Claude Web returned a Cloudflare bot-management challenge (cf-mitigated=${d??"challenge"}). The sandbox / VPS IP appears to be flagged; the cf_clearance cookie pasted from a residential IP won't pass. Probe from a residential network, or use the official Anthropic API (provider: 'claude') instead.`;else{let b=c.trim().slice(0,500);a=b?`Claude Web API error (${C.status}): ${b}`:`Claude Web API error (${C.status}) with no response body`}return{response:new Response(JSON.stringify({error:{message:a,type:e?"cloudflare_challenge":"api_error",code:e?"cf_mitigated_challenge":`HTTP_${C.status}`,...d?{cfMitigated:d}:{}}}),{status:C.status,statusText:"HTTP Error",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b}}return{response:await u(C,a,i,C.body),url:z,headers:y,transformedBody:b}}catch(b){let a=b instanceof Error?b.message:String(b);return i?.error?.("CLAUDE-WEB",`Fetch failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`Claude Web connection failed: ${(0,k.sanitizeErrorMessage)(a)}`,type:"api_connection_error"}}),{status:500,statusText:"Internal Server Error",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m}}}}d()}catch(a){d(a)}})},69734:(a,b,c)=>{c.d(b,{Fx:()=>d,y9:()=>e});let d=()=>void 0,e=()=>void 0},69896:(a,b,c)=>{c.d(b,{l:()=>m});var d=c(14170),e=c(81167),f=c(23874),g=c(31252);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=""){return"string"==typeof a?a:b}function j(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function k(...a){for(let b of a){let a=j(b,0);if(a>0)return a}return 0}function l(a){if(!Array.isArray(a.content))return"";let b="";for(let c of a.content){if(!c||"object"!=typeof c)continue;let a=h(c);"output_text"===a.type&&"string"==typeof a.text&&(b+=a.text)}return b}function m(a,b,c,m){if(b===c)return a;let n=a;if(b===d.h.OPENAI_RESPONSES){let b=h(a),c="response"===b.object?b:h(b.response??b),d=Array.isArray(c.output)?c.output:[],e=h(c.usage??b.usage),f=function(a){let b=a.map(a=>h(a)).filter(a=>"message"===a.type&&Array.isArray(a.content));for(let a=b.length-1;a>=0;a-=1){let c=l(b[a]);if(c.trim().length>0)return{text:c,selectedMessageIndex:a,messageItems:b}}if(b.length>0){let a=b.length-1;return{text:l(b[a]),selectedMessageIndex:a,messageItems:b}}return{text:"",selectedMessageIndex:-1,messageItems:[]}}(d),g=f.text,o="",p=[];for(let a of d){if(!a||"object"!=typeof a)continue;let b=h(a);if("message"===b.type&&Array.isArray(b.content))for(let a of b.content){if(!a||"object"!=typeof a)continue;let b=h(a);"summary_text"===b.type&&"string"==typeof b.text&&(o+=b.text)}else if("reasoning"===b.type&&Array.isArray(b.summary))for(let a of b.summary){let b=h(a);"summary_text"===b.type&&"string"==typeof b.text&&(o+=b.text)}else if("function_call"===b.type){let a=i(b.call_id)||i(b.id)||`call_${Date.now()}_${p.length}`,c=b.arguments;if(null!=c&&"object"==typeof c&&!Array.isArray(c)){let a={...c};for(let[b,c]of Object.entries(a))(""===c||Array.isArray(c)&&0===c.length)&&delete a[b];c=a}let d="string"==typeof c?c:JSON.stringify(c||{}),e=i(b.name),f=m?.get(e)??e;p.push({id:a,type:"function",function:{name:f,arguments:d}})}}let q={role:"assistant"};g&&(q.content=g),o&&(q.reasoning_content=o),p.length>0&&(q.tool_calls=p),void 0===q.content&&(q.content=""),"true"===process.env.DEBUG_RESPONSES_SSE_TO_JSON&&(console.log(`[ResponsesSSE] ${d.length} output items, ${f.messageItems.length} message items`),f.messageItems.forEach((a,b)=>{let c=l(a).length;console.log(` [${b}] text length: ${c}`)}),console.log(` → Selected message index: ${f.selectedMessageIndex}`),console.log(` → Final text content length: ${g.length}`));let r=j(c.created_at,Math.floor(Date.now()/1e3)),s=i(c.model||b.model,"openai-responses"),t=p.length>0?"tool_calls":"stop",u={id:`chatcmpl-${i(c.id,String(Date.now()))}`,object:"chat.completion",created:r,model:s,choices:[{index:0,message:q,finish_reason:t}]};if(Object.keys(e).length>0){let a=j(e.input_tokens,0),b=j(e.output_tokens,0),c=h(e.input_tokens_details),d=h(e.output_tokens_details),f=h(e.prompt_tokens_details),g=h(e.completion_tokens_details),i=k(c.cached_tokens,f.cached_tokens,e.cache_read_input_tokens),l=k(c.cache_creation_tokens,f.cache_creation_tokens,e.cache_creation_input_tokens),m=k(d.reasoning_tokens,g.reasoning_tokens,e.reasoning_tokens);if(u.usage={prompt_tokens:a,completion_tokens:b,total_tokens:a+b},m>0&&(u.usage.completion_tokens_details={reasoning_tokens:m}),i>0||l>0){u.usage.prompt_tokens_details={};let a=u.usage.prompt_tokens_details;i>0&&(a.cached_tokens=i),l>0&&(a.cache_creation_tokens=l)}}n=u}else if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY){let b=h(a),c=h(b.response??b),d=Array.isArray(c.candidates)?c.candidates:[],k=h(c.usageMetadata??b.usageMetadata),l=h(c.promptFeedback??b.promptFeedback);if(d.length>0||Object.keys(l).length>0){let a=Date.parse(i(c.createTime)),b=Number.isFinite(a)?Math.floor(a/1e3):Math.floor(Date.now()/1e3),l=d.length>0?d.map((a,b)=>{let c=h(a),d=h(c.content),j="",k=[],l=[],n="",o="";if(Array.isArray(d.parts))for(let a of d.parts){let b=h(a);if(!0===b.thought&&"string"==typeof b.text){n+=b.text;continue}let c=i(b.thoughtSignature??b.thought_signature);if(c&&(o=c),"string"==typeof b.text){let a=function(a){if("string"!=typeof a)return null;let b=a.replace(/[\u200B-\u200D\uFEFF]/g,"").match(/^[\s\S]*?\[Tool call:\s*([^\]\n]+)\]\s*\nArguments:\s*([\s\S]+?)\s*$/);if(!b)return null;let c=b[1]?.trim(),d=b[2]?.trim();if(!c||!d)return null;try{let a=JSON.parse(d);if("string"==typeof a){let b=a.trim();(b.startsWith("{")||b.startsWith("["))&&(a=JSON.parse(b))}if(a&&"object"==typeof a&&!Array.isArray(a))return{name:c,args:a}}catch{}return null}(b.text);if(a){let b=`call_${i(a.name,"unknown")}_${Date.now()}_${l.length}`;l.push({id:b,type:"function",function:{name:a.name,arguments:JSON.stringify(a.args||{})}})}else(0,g.vE)(b.text)||(j+=b.text,k.push({type:"text",text:b.text}))}let d=h(b.inlineData??b.inline_data);if("string"==typeof d.data&&d.data.length>0){let a=i(d.mimeType??d.mime_type,"image/png");k.push({type:"image_url",image_url:{url:`data:${a};base64,${d.data}`}})}if(b.functionCall){let a=h(b.functionCall),d=i(a.name),f=m?.get(d)??d,g=i(a.id),j=g.length>0?g:`call_${i(f,"unknown")}_${Date.now()}_${l.length}`,k=c||o;if(k){let a=(0,e.q)(null,j);(0,e.Sk)(a,k)}l.push({id:j,type:"function",function:{name:f,arguments:JSON.stringify(function(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!(b.startsWith("{")||b.startsWith("[")))return a;try{return JSON.parse(b)}catch{return a}}(a.args||{}))}})}}let p={role:"assistant"};1===k.length&&"text"===k[0].type?p.content=k[0].text:k.length>0?p.content=k:j&&(p.content=j),n&&(p.reasoning_content=n),l.length>0&&(p.tool_calls=l),p.content||p.tool_calls||(p.content="");let q=(0,f.U)(i(c.finishReason,"stop"));return"stop"===q&&l.length>0&&(q="tool_calls"),{index:b,message:p,finish_reason:q}}):[{index:0,message:{role:"assistant",content:""},finish_reason:"content_filter"}],o={id:`chatcmpl-${i(c.responseId,String(Date.now()))}`,object:"chat.completion",created:b,model:i(c.modelVersion,"gemini"),choices:l};if(Object.keys(k).length>0){let a=j(k.promptTokenCount,0),b=j(k.thoughtsTokenCount,0);o.usage={prompt_tokens:a,completion_tokens:j(k.candidatesTokenCount,0)+b,total_tokens:j(k.totalTokenCount,0)},b>0&&(o.usage.completion_tokens_details={reasoning_tokens:b}),j(k.cachedContentTokenCount,0)>0&&(o.usage.prompt_tokens_details={cached_tokens:j(k.cachedContentTokenCount,0)})}n=o}}else if(b===d.h.CLAUDE){let b=h(a),c=Array.isArray(b.content)?b.content:[];if(c.length>0){let a="",d="",e=[];for(let b of c){let c=h(b);if("text"===c.type)a+=i(c.text);else if("thinking"===c.type)d+=i(c.thinking);else if("tool_use"===c.type){let a=i(c.name),b=m?.get(a)??a;e.push({id:i(c.id,`call_${Date.now()}_${e.length}`),type:"function",function:{name:b,arguments:JSON.stringify(c.input||{})}})}}let f={role:"assistant"};a&&(f.content=a),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=e),void 0===f.content&&(f.content="");let g=i(b.stop_reason,"stop");"end_turn"===g&&(g="stop"),"tool_use"===g&&(g="tool_calls");let k={id:`chatcmpl-${i(b.id,String(Date.now()))}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:i(b.model,"claude"),choices:[{index:0,message:f,finish_reason:g}]},l=h(b.usage);if(Object.keys(l).length>0){let a=j(l.input_tokens,0),b=j(l.output_tokens,0);k.usage={prompt_tokens:a,completion_tokens:b,total_tokens:a+b}}n=k}}return c===d.h.CLAUDE&&c!==b?function(a){let b=a.choices,c=Array.isArray(b);if(!c&&"chat.completion"!==a.object)return a;let d=c?b[0]:null,e=d?h(d):{},f=e.message?h(e.message):{},g=[],k=!1;if(f.reasoning_content&&(k=!0,g.push({type:"thinking",thinking:i(f.reasoning_content)})),Array.isArray(f.tool_calls)&&f.tool_calls.length,void 0!==f.content&&null!==f.content){k=!0;let a=i(f.content);g.push({type:"text",text:""===a?"(empty response)":a})}else k||g.push({type:"text",text:"(empty response)"});if(Array.isArray(f.tool_calls))for(let a of f.tool_calls){let b=h(a),c=h(b.function);g.push({type:"tool_use",id:i(b.id,`call_${Date.now()}`),name:i(c.name),input:"string"==typeof c.arguments?JSON.parse(c.arguments||"{}"):c.arguments||{}})}let l=i(e.finish_reason,"end_turn");"stop"===l&&(l="end_turn"),"tool_calls"===l&&(l="tool_use");let m=h(a.usage);return{id:i(a.id,`msg_${Date.now()}`),type:"message",role:"assistant",model:i(a.model,"claude"),content:g,stop_reason:l,stop_sequence:null,usage:{input_tokens:j(m.prompt_tokens,0),output_tokens:j(m.completion_tokens,0)}}}(h(n)):n}},71394:(a,b,c)=>{c.d(b,{C:()=>k});var d=c(74350),e=c(56452),f=c(33748);function g(a){return"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0}function h(a){return!!a&&"object"==typeof a&&!Array.isArray(a)&&"tool_use"===a.type}function i(a){return!!a&&"object"==typeof a&&!Array.isArray(a)&&("thinking"===a.type||"redacted_thinking"===a.type)}function j(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}class k extends d.L{constructor(a="kimi-coding"){super(a)}transformRequest(a,b,c,d){return function(a){let b,c=(0,e.b)(a,void 0),d=j(c);if(!d||!Array.isArray(d.messages))return c;let k=function(a){if(!(Array.isArray(a.system)||Array.isArray(a.messages)&&a.messages.some(a=>{let b=j(a);return!!b&&!!Array.isArray(b.content)&&b.content.some(a=>{let b=j(a);return b?.type==="text"||b?.type==="tool_use"||b?.type==="tool_result"})})))return a;let b=j(a.thinking)??{type:"enabled"};return null===b.keep?a:{...a,thinking:{...b,keep:null}}}(d);if(!(b=k.thinking)||"object"!=typeof b||Array.isArray(b)||"enabled"!==b.type&&"adaptive"!==b.type)return k;let l=!1,m=(Array.isArray(k.messages)?k.messages:d.messages).map(a=>{let b=j(a);if(!b||"assistant"!==b.role||!(Array.isArray(b.tool_calls)&&b.tool_calls.length>0||Array.isArray(b.content)&&b.content.some(h)))return a;let c=function(a){let b=g(a)?String(a.reasoning_content):f.A_,c=g(a)?a:{...a,reasoning_content:b};if(!Array.isArray(c.content))return c;let d=c.content.findIndex(h);if(d<0||c.content.some(i))return c;let e=[...c.content];return e.splice(d,0,{type:"thinking",thinking:b}),{...c,content:e}}(b);return c!==b&&(l=!0),c});return l?{...k,messages:m}:k}(super.transformRequest(a,b,c,d))}}},72221:(a,b,c)=>{c.d(b,{LW:()=>k,S$:()=>n,Ub:()=>i,mU:()=>o,n:()=>j,r3:()=>l,uQ:()=>m,x2:()=>g});let d=/<tool>\s*([\s\S]*?)\s*<\/tool>/g,e=/<tool_call(?:\s+[^>]*)?\s*>\s*([\s\S]*?)\s*<\/tool_call>/g;function f(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function g(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){let a=f(d),e=f(a?.function),g="string"==typeof e?.name?e.name.trim():"";!g||c.has(g)||(c.add(g),b.push({original:g,normalized:h(g)}))}return b}function h(a){return a.toLowerCase().replace(/[^a-z0-9]/g,"")}function i(a,b){if(0===b.length)return a;let c=null,d=0;for(let e of b){let b=function(a,b){if(a===b.original)return 1;let c=h(a);if(!c||!b.normalized)return 0;if(c===b.normalized)return .98;let d=Math.min(c.length,b.normalized.length),e=Math.max(c.length,b.normalized.length);if(d>=4&&(c.includes(b.normalized)||b.normalized.includes(c)))return .86-(e-d)/Math.max(e,1)/4;let f=1-function(a,b){if(a===b)return 0;if(!a)return b.length;if(!b)return a.length;let c=Array.from({length:b.length+1},(a,b)=>b),d=Array(b.length+1);for(let e=1;e<=a.length;e+=1){d[0]=e;for(let f=1;f<=b.length;f+=1){let g=+(a[e-1]!==b[f-1]);d[f]=Math.min(d[f-1]+1,c[f]+1,c[f-1]+g)}let f=c;c=d,d=f}return c[b.length]}(c,b.normalized)/Math.max(e,1);return f>=.72?f:0}(a,e);!c||b>c.score?(d=c?.score??0,c={name:e.original,score:b}):b>d&&(d=b)}return!c||c.score<.72||c.score<.98&&c.score-d<.08?null:c.name}function j(a){let b=a.trim().replace(/^```(?:json|javascript|js|python)?\s*/i,"").replace(/\s*```$/i,"").trim();for(let a of[b,(function(a){let b="",c=!1,d=!1,e="",f=()=>{"True"===e?b+="true":"False"===e?b+="false":"None"===e?b+="null":b+=e,e=""};for(let g of a){if(d){e&&f(),b+=g,d=!1;continue}if("\\"===g){e&&f(),b+=g,d=c;continue}if('"'===g){e&&f(),c=!c,b+=g;continue}if(!c&&/[A-Za-z]/.test(g)){e+=g;continue}e&&f(),b+=g}return e&&f(),b})(function(a){let b="",c=!1,d=!1,e=!1;for(let f of a){if(e){b+='"'===f&&c?'\\"':f,e=!1;continue}if("\\"===f){b+=f,e=!0;continue}if('"'===f){c?b+='\\"':(d=!d,b+=f);continue}if("'"===f&&!d){c=!c,b+='"';continue}b+=f}return b}(b)).replace(/([{,]\s*)([A-Za-z_][A-Za-z0-9_-]*)(\s*:)/g,'$1"$2"$3').replace(/,\s*([}\]])/g,"$1")])try{return f(JSON.parse(a))}catch{}return null}function k(a,b){let c=a;for(let a of[...b].sort((a,b)=>b.start-a.start)){let b=c.lastIndexOf("\n",a.start-1)+1,d=c.indexOf("\n",a.end),e=-1===d?c.length:d,f=c.slice(b,a.start),g=c.slice(a.end,e),h=""===f.trim()&&""===g.trim(),i=h?b:a.start,j=h&&-1!==d?d+1:h?e:a.end;c=`${c.slice(0,i)}${c.slice(j)}`}return c.replace(/\n{3,}/g,"\n\n").trim()}function l(a){if(void 0===a)return"{}";if("string"==typeof a){let b=j(a);return b?JSON.stringify(b):a}try{return JSON.stringify(a)}catch{return"{}"}}function m(a,b="call",c){let f,h=g(c),n=h.length>0;if("string"!=typeof a||!a.includes("<tool>")&&!a.includes("<tool_call")&&!n)return{content:a??"",toolCalls:null};let o=[],p=[];for(d.lastIndex=0;null!==(f=d.exec(a));){let a={start:f.index,end:d.lastIndex};p.push(a),o.push({raw:f[1].trim(),start:a.start,end:a.end,requireRequestedTool:!1})}for(e.lastIndex=0;null!==(f=e.exec(a));){let a={start:f.index,end:e.lastIndex};p.push(a),o.push({raw:f[1].trim(),start:a.start,end:a.end,requireRequestedTool:!1})}if(n)for(let b of function(a){let b=[],c=-1,d=0,e="",f=!1;for(let g=0;g<a.length;g+=1){let h=a[g];if(0!==d||"{"===h){if(f){f=!1;continue}if(e){"\\"===h?f=!0:h===e&&(e="");continue}if('"'===h||"'"===h){e=h;continue}if("{"===h){0===d&&(c=g),d+=1;continue}if("}"===h&&d>0&&0==(d-=1)&&c>=0){let d=a.slice(c,g+1);/[{,]\s*["']?(name|command)["']?\s*:/i.test(d)&&/[{,]\s*["']?arguments["']?\s*:/i.test(d)&&b.push({raw:d,start:c,end:g+1,requireRequestedTool:!0}),c=-1}}}return b}(a))p.some(a=>a.start<b.end&&b.start<a.end)||o.push(b);o.sort((a,b)=>a.start-b.start);let q=[],r=[];for(let a of o){let c=j(a.raw),d=c&&"string"==typeof c.name?c.name:c&&"string"==typeof c.command?c.command:null;if(!d)continue;let e=i(d,h)||(a.requireRequestedTool?null:d);if(!e||a.requireRequestedTool&&0===h.length)continue;let f=l(c?.arguments);q.push({id:`${b}_${q.length}`,type:"function",function:{name:e,arguments:f}}),r.push({start:a.start,end:a.end})}return 0===q.length?{content:a,toolCalls:null}:{content:k(a,r),toolCalls:q}}function n(a,b){let c=a.tools;if(!(Array.isArray(c)&&c.length>0))return{hasTools:!1,requestedTools:c,effectiveMessages:b};let d=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=[];for(let c of a){let a=c?.function;if(!a?.name)continue;let d="string"==typeof a.description&&a.description?a.description:"",e="";try{e=a.parameters?JSON.stringify(a.parameters):""}catch{e=""}b.push(`- ${a.name}${d?`: ${d}`:""}${e?`
356
- parameters: ${e}`:""}`)}return 0===b.length?"":["You can call tools. To call a tool, reply with a single line containing a <tool> block",'with JSON: <tool>{"name": "<tool_name>", "arguments": { ... }}</tool>',"Only emit the <tool> block when you actually want to call a tool; otherwise answer normally.","","Available tools:",...b].join("\n")}(c);return{hasTools:!0,requestedTools:c,effectiveMessages:[{role:"system",content:d},...b]}}function o(a,b,c="call"){let{content:d,toolCalls:e}=m(a,`${c}-${Date.now()}`,b);return{content:d,toolCalls:e,finishReason:e?"tool_calls":"stop"}}},73483:(a,b,c)=>{c.d(b,{Gh:()=>m,IF:()=>s,O9:()=>j,OF:()=>r,WL:()=>k,bC:()=>p,f5:()=>n,lm:()=>f,oT:()=>q});var d=c(47370),e=c(14170);let f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"},g=null,h=0;async function i(){try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=(await a()).usageTokenBuffer;"number"==typeof b&&b>=0&&(g=b,h=Date.now())}catch{}}function j(a){if(!a||"object"!=typeof a)return a;let b=function(){let a=Date.now(),b=null!==g&&a-h>=3e4;if(null!==g&&!b)return g;let c=process.env.USAGE_TOKEN_BUFFER;if(void 0!==c){let b=parseInt(c,10);if(!isNaN(b)&&b>=0)return g=b,h=a,b}return(null===g||b)&&(null===g&&(g=0),h=a,i()),g}();if(0===b)return a;let c={...a};return void 0!==c.input_tokens&&(c.input_tokens+=b),void 0!==c.prompt_tokens&&(c.prompt_tokens+=b),void 0!==c.total_tokens?c.total_tokens+=b:void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens),c}function k(a,b){if(!a||"object"!=typeof a)return a;let c={...a};b===e.h.CLAUDE||b===e.h.OPENAI_RESPONSES?(void 0!==c.prompt_tokens&&void 0===c.input_tokens&&(c.input_tokens=c.prompt_tokens),void 0!==c.completion_tokens&&void 0===c.output_tokens&&(c.output_tokens=c.completion_tokens)):(void 0!==c.input_tokens&&void 0===c.prompt_tokens&&(c.prompt_tokens=c.input_tokens),void 0!==c.output_tokens&&void 0===c.completion_tokens&&(c.completion_tokens=c.output_tokens),void 0===c.total_tokens&&void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens));let d={[e.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[e.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[e.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},f=d[b];b===e.h.ANTIGRAVITY?f=d[e.h.GEMINI]:b===e.h.OPENAI_RESPONSE?f=d[e.h.OPENAI_RESPONSES]:f||(f=d.default);let g={};for(let a of f)void 0!==c[a]&&(g[a]=c[a]);return g}function l(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("input_tokens",a?.input_tokens),c("output_tokens",a?.output_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),0===Object.keys(b).length)?null:b}function m(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function n(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage){let b=a.message.usage,c=b.input_tokens||b.prompt_tokens||0,d=b.cache_read_input_tokens||0,e=b.cache_creation_input_tokens||0;if(c>0||d>0||e>0)return l({prompt_tokens:c+d+e,completion_tokens:b.output_tokens||b.completion_tokens||0,input_tokens:c+d+e,output_tokens:b.output_tokens||b.completion_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage){let b=a.usage.input_tokens||0,c=a.usage.cache_read_input_tokens||0,d=a.usage.cache_creation_input_tokens||0;return l({prompt_tokens:b+c+d,completion_tokens:a.usage.output_tokens||0,input_tokens:b+c+d,output_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens})}if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage;return l({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:b.input_tokens_details?.cached_tokens??b.prompt_tokens_details?.cached_tokens??b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens,reasoning_tokens:b.output_tokens_details?.reasoning_tokens??b.completion_tokens_details?.reasoning_tokens??b.reasoning_tokens})}if(a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.prompt_tokens||void 0!==a.usage.input_tokens))return l({prompt_tokens:a.usage.prompt_tokens??a.usage.input_tokens??0,completion_tokens:a.usage.completion_tokens??a.usage.output_tokens??0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens??a.usage.input_tokens_details?.cached_tokens??a.usage.prompt_cache_hit_tokens??a.usage.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens??a.usage.output_tokens_details?.reasoning_tokens??a.usage.reasoning_tokens});let b=a.usageMetadata||a.response?.usageMetadata;if(b&&"object"==typeof b)return l({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount});if(!0===a.done&&"number"==typeof a.prompt_eval_count){let b=a.prompt_eval_count||0,c=a.eval_count||0;return l({prompt_tokens:b,completion_tokens:c,total_tokens:b+c})}return null}function o(a){if(!a||"string"!=typeof a)return 0;let b=a.match(/[\u3000-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}]/gu);return(b?b.length:0)+Math.ceil(1.3*a.replace(/[\u3000-\u9fff\uf900-\ufaff]/g," ").split(/(\s+|[^\w\s]|(?<=[a-z])(?=[A-Z]))/).filter(a=>a&&a.trim().length>0).length)}function p(a){if(!a||"object"!=typeof a)return 0;try{let b=0,c=0;if(a.tools&&Array.isArray(a.tools)){let d=JSON.stringify(a.tools);b=Math.ceil(d.length/6);let{tools:e,...f}=a;c=o(JSON.stringify(f))}else c=o(JSON.stringify(a));return c+b}catch(a){return 0}}function q(a){return!a||a<=0?0:Math.max(1,Math.ceil(a/3.5))}function r(a,b,c=e.h.OPENAI){var d,f;return d=p(a),f=q(b),c===e.h.CLAUDE?j({input_tokens:d,output_tokens:f,estimated:!0}):j({prompt_tokens:d,completion_tokens:f,total_tokens:d+f,estimated:!0})}function s(a,b,c=null,e=null,g=null,h=null,i="ok",j=!0){if(!b||"object"!=typeof b)return;let k=a?.toUpperCase()||"UNKNOWN",l=b?.prompt_tokens??b?.input_tokens??null,m=b?.completion_tokens??b?.output_tokens??null,n="string"==typeof e?e:void 0,o=n?n.slice(0,8)+"...":"unknown",p="ok"===i||200===i||"200"===i?`${f.green}ok${f.reset}`:`${f.red}${i}${f.reset}`,q=null!==h?`${h}ms`:"-",r=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 [USAGE] ${k} | ${c||"unknown"} | ${p} | ${j?"stream":"sync"} | ${q} | in=${l} | out=${m} | account=${o}`;b.estimated&&(r+=` ${f.yellow}(estimated)${f.reset}`);let t=b?.cached_tokens??b?.cache_read_input_tokens??null;t&&(r+=` | cache_read=${t}`);let u=b?.cache_creation_input_tokens??null;u&&(r+=` | cache_create=${u}`);let v=b.reasoning_tokens;v&&(r+=` | reasoning=${v}`),console.log(r),(0,d.E5)({model:"string"==typeof c?c:void 0,provider:"string"==typeof a?a:void 0,connectionId:n,tokens:{input:l,output:m,cacheRead:t||0,cacheCreation:u||0,reasoning:v||0},status:"200 OK"}).catch(()=>{})}},73870:(a,b,c)=>{c.d(b,{w0:()=>o});var d=c(89419),e=c(86935),f=c(97510),g=c(61408);let h=new Map,i=["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/generative-language.retriever"];function j(a){try{return JSON.parse(a)}catch{throw Error("Vertex AI requires a valid Service Account JSON as the API key")}}function k(a){if(!a||"string"!=typeof a)return!1;try{let b=JSON.parse(a);return!!b&&"object"==typeof b&&!Array.isArray(b)}catch{return!1}}async function l(a){if(!a.client_email||!a.private_key)throw Error("Service Account JSON is missing required fields (client_email or private_key)");let b=a.client_email,c=h.get(b);if(c&&Date.now()<c.expiresAt-6e4)return c.token;let f=await (0,d.Lf)(a.private_key,"RS256"),g=Math.floor(Date.now()/1e3),j=await new e.P({iss:a.client_email,sub:a.client_email,aud:"https://oauth2.googleapis.com/token",iat:g,exp:g+3600,scope:i.join(" ")}).setProtectedHeader({alg:"RS256",kid:a.private_key_id}).sign(f),k=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:j})});if(!k.ok){let a=await k.text();throw Error(`Failed to exchange JWT for Vertex access token: ${k.status} ${a}`)}let l=(await k.json()).access_token;if(!l)throw Error("Vertex AI token exchange succeeded but no access_token found");return h.set(b,{token:l,expiresAt:(g+3600)*1e3}),l}let m=new Set(["claude-3-5-sonnet","claude-3-opus","claude-3-haiku","deepseek-v3","deepseek-v3.2","deepseek-v4","deepseek-deepseek-r1","qwen3-next-80b","qwen3.6-","llama-3.1","mistral-","glm-5","glm-5.1","meta/llama"]);function n(a){let b=a.toLowerCase();return[...m].some(a=>b.startsWith(a))}class o extends f.Hv{constructor(){super("vertex",g.xq.vertex)}async execute(a){let{credentials:b,log:c}=a;if("string"==typeof b.apiKey&&(b.apiKey=b.apiKey.trim()),b.apiKey&&!b.accessToken&&k(b.apiKey))try{let a=j(b.apiKey);b.accessToken=await l(a)}catch(a){throw c?.error?.("VERTEX",`Failed to generate JWT token: ${a.message}`),a}return super.execute(a)}buildUrl(a,b,c=0,d=null){var e;if("string"==typeof(e=d?.apiKey)&&e.trim().length>0&&!k(e)&&!d?.accessToken){let c=encodeURIComponent(String(d.apiKey).trim());return n(a)?`https://aiplatform.googleapis.com/v1/publishers/openapi/chat/completions?key=${c}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse&":"generateContent?"}key=${c}`}let f=d?.providerSpecificData?.region||"us-central1",g="unknown-project";if(d?.apiKey)try{let a=j(d.apiKey);a.project_id&&(g=a.project_id)}catch{}return n(a)?`https://aiplatform.googleapis.com/v1/projects/${g}/locations/global/endpoints/openapi/chat/completions`:`https://aiplatform.googleapis.com/v1/projects/${g}/locations/${f}/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}}},74184:(a,b,c)=>{c.d(b,{As:()=>E});var d=c(4573);let e={browser:null,contexts:new Map,pendingContexts:new Map,launching:null,lastActivity:0,idleTimer:null,evictTimer:null,cloakLaunch:null,cloakLaunchResolved:!1,metrics:{browserLaunches:0,browserLaunchFailures:0,contextsCreated:0,contextsReused:0,contextsEvicted:0,contextsReleased:0,contextCreateFailures:0,shutdowns:0,lastShutdownReason:null}};async function f(){if(e.cloakLaunchResolved)return e.cloakLaunch;e.cloakLaunchResolved=!0;try{e.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{e.cloakLaunch=null}return e.cloakLaunch}function g(){e.idleTimer&&clearTimeout(e.idleTimer),e.idleTimer=setTimeout(()=>{m("idle-timeout")},3e5),e.idleTimer.unref?.()}async function h(a,b){try{let d=b?.resolveProxy??(async a=>{let{resolveProxyForProvider:b}=await c.e(1676).then(c.bind(c,51676));return b(a)}),e=await d(a);if(!e?.host)return;let f="socks5"===e.type?"socks5":"http",g={server:`${f}://${e.host}:${e.port}`};return e.username&&(g.username=String(e.username),g.password=null==e.password?"":String(e.password)),g}catch(a){console.warn("[BrowserPool] Failed to resolve proxy from DB:",a);return}}async function i(){if(e.browser)return e.browser;if(e.launching)return e.launching;e.launching=(async()=>{let a,b=await f();if(b)a=await b({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});else{let{chromium:b}=await Promise.resolve().then(c.bind(c,83237));a=await b.launch({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled"]})}return e.browser=a,e.launching=null,e.metrics.browserLaunches++,a})();try{return await e.launching}catch(a){throw e.launching=null,e.metrics.browserLaunchFailures++,a}}function j(a,b){b&&e.metrics.contextCreateFailures++,e.pendingContexts.delete(a)}async function k(a,b){let c;if(void 0!==(c=process.env.OMNIROUTE_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: OMNIROUTE_BROWSER_POOL=off — context requested but pool is disabled");let d=e.contexts.get(a);if(d)return d.lastUsed=Date.now(),e.lastActivity=Date.now(),e.metrics.contextsReused++,g(),d;let f=e.pendingContexts.get(a);if(f)return f;let k=(async()=>{let[c,d]=await Promise.all([i(),h(a)]),f=null!==e.cloakLaunch,j=await c.newContext({userAgent:b.userAgent||"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",locale:b.locale||"en-US",timezoneId:b.timezone||"America/New_York",viewport:{width:1280,height:800},...d?{proxy:d}:{}});if(b.cookieString){var k,l;let a=(k=b.cookieString,l=b.cookieDomain,k.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(b<0)return null;let c=a.slice(0,b).trim(),d=a.slice(b+1).trim();return c&&d?{name:c,value:d,domain:l.startsWith(".")?l:`.${l}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));a.length>0&&await j.addCookies(a)}let n=null;if(b.warmupUrl)try{n=await j.newPage(),await n.goto(b.warmupUrl,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500))}catch(a){try{await n?.close()}catch{}n=null}if(e.browser!==c)throw await j.close().catch(()=>{}),n&&await n.close().catch(()=>{}),Error("Pool shut down during context creation");let o={id:a,context:j,warmupPage:n,lastUsed:Date.now(),isStealth:f};return e.contexts.set(a,o),e.metrics.contextsCreated++,e.lastActivity=Date.now(),g(),e.evictTimer&&clearInterval(e.evictTimer),e.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of e.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context:",b,"(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),e.contexts.delete(b),e.metrics.contextsEvicted++,c.context.close().catch(()=>{}));0!==e.contexts.size||e.launching||m("all-contexts-evicted")})(),6e4),e.evictTimer.unref?.(),o})();return e.pendingContexts.set(a,k),k.then(()=>j(a,!1)).catch(()=>j(a,!0)),k}async function l(a){return a.context.newPage()}async function m(a){for(let[b,c]of(e.metrics.shutdowns++,e.metrics.lastShutdownReason=a,e.idleTimer&&(clearTimeout(e.idleTimer),e.idleTimer=null),e.evictTimer&&(clearInterval(e.evictTimer),e.evictTimer=null),e.pendingContexts.clear(),e.contexts)){try{await c.context.close()}catch{}e.contexts.delete(b)}if(e.browser){try{await e.browser.close()}catch{}e.browser=null}e.lastActivity=Date.now()}async function n(a){let b={};for(let[c,d]of Object.entries(a.headers()))b[c]=d;let c=await a.body();return{status:a.status(),headers:b,body:d.Buffer.from(c)}}var o=c(58643),p=c(43659);let q=new Map;function r(a){let b=q.get(a);return b&&Date.now()<b.expiresAt?b.cookieString:(q.delete(a),null)}function s(a,b,c){q.set(a,{cookieString:b,expiresAt:Date.now()+(c??3e5),domain:a})}let t=new Map;function u(a,b){return new Promise((c,d)=>{if(b?.aborted)return d(new DOMException("Aborted","AbortError"));let e=()=>{clearTimeout(f),d(new DOMException("Aborted","AbortError"))},f=setTimeout(()=>{b?.removeEventListener("abort",e),c()},a);b?.addEventListener("abort",e,{once:!0})}).catch(a=>{if(a instanceof DOMException&&"AbortError"===a.name)throw a})}async function v(a,b){return b?{key:a,acquired:!0}:{key:`${a}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,acquired:!1}}async function w(a){let b=Date.now(),{poolKey:c,chatUrl:e,chatPageUrl:f,userMessage:g,cookieString:h,cookieDomain:i,chatUrlMatchDomain:j,userAgent:m,locale:o,timezone:q,inputSelector:r,submitButtonSelector:s,postSubmitWaitMs:t=15e3,signal:w,reuseContext:x=!0}=a,{key:y,acquired:z}=await v(c,x),A=Date.now(),B=await k(y,{cookieDomain:i||j,cookieString:h||null,warmupUrl:f,userAgent:m,locale:o,timezone:q}),C=Date.now()-A,D=await l(B);try{let a,c=Date.now();await D.goto(f,{waitUntil:"domcontentloaded",timeout:6e4,signal:w??void 0}),await u(2500,w);let h=Date.now()-c,i=D.locator(r).first();await i.waitFor({state:"visible",timeout:1e4,signal:w??void 0}),await i.fill(g),await u(800,w),Date.now();let k=D.waitForResponse(a=>"POST"===a.request().method()&&function(a,b,c){let d,e;if(a===c)return!0;try{d=new URL(a),e=new URL(c)}catch{return!1}if(!d.host.endsWith(b))return!1;let f=e.pathname.split("/").filter(Boolean),g=d.pathname.split("/").filter(Boolean);if(f.length<2||g.length!==f.length)return!1;let h=1;for(let a=0;a<f.length;a++)if(f[a]!==g[a]){if("PLACEHOLDER"===f[a]&&h>0){h--;continue}return!1}return!0}(a.url(),j,e),{timeout:3e4}),l=w?new Promise((b,c)=>{if(w.aborted)return c(new DOMException("Aborted","AbortError"));a=()=>c(new DOMException("Aborted","AbortError")),w.addEventListener("abort",a,{once:!0})}):null;if(s){let a=D.locator(s).first();if(await a.count()>0)try{await a.click({timeout:2e3})}catch{await D.keyboard.press("Enter")}else await D.keyboard.press("Enter")}else await D.keyboard.press("Enter");let m=Date.now(),o=l?await Promise.race([k,l]).catch(()=>null):await k.catch(()=>null);w&&a&&w.removeEventListener("abort",a),o?await u(Math.min(t,3e4),w):await u(t,w);let p=Date.now()-m,q=0,v=null,x=d.Buffer.alloc(0);if(o){let a=await n(o);a.body.length>0xa00000?(x=d.Buffer.from(JSON.stringify({error:{message:"Response too large",type:"upstream_error"}})),q=502,v="application/json"):(q=a.status,v=a.headers["content-type"]||null,x=a.body)}return{status:q,contentType:v,body:x,isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:h,submitMs:p,captureResponseMs:p,totalMs:Date.now()-b}}}catch(c){let a=c instanceof Error?c.message:String(c);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`browserBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-b}}}finally{if(await D.close(),!z)try{await B.context.close()}catch{}}}async function x(a){let b,c=Date.now(),{chatUrl:e,userMessage:f,cookieString:g,cookieDomain:h,chatUrlMatchDomain:i,signal:j}=a,k={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:"text/event-stream, application/json, text/plain, */*","Accept-Language":"en-US,en;q=0.9","Content-Type":"application/json",Origin:"duckduckgo.com"===i?"https://duckduckgo.com":`https://${i}`,Referer:"duckduckgo.com"===i?"https://duckduckgo.com/":`https://${i}/`,"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","Sec-Ch-Ua":'"Chromium";v="149", "Google Chrome";v="149", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Priority:"u=1, i"};g&&(k.Cookie=g),b=new URL(e).hostname.includes("duckduckgo")?JSON.stringify({model:"gpt-4o-mini",messages:[{role:"user",content:f}]}):JSON.stringify({messages:[{role:"user",content:f}]});try{let a=Date.now();if(!o.A.available)return{status:501,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"httpBackedChat unavailable: wreq-js (TLS client) not installed",type:"configuration_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:Date.now()-c,captureResponseMs:0,totalMs:Date.now()-c}};let f=await o.A.fetch(e,{method:"POST",headers:k,body:b,signal:j??void 0}),g=Date.now()-a,h=f.headers.get("content-length");if(h&&parseInt(h,10)>0xa00000)throw Error("Response too large");let i=d.Buffer.from(await f.text()),l=f.status,m=f.headers.get("content-type")||"text/event-stream";return{status:l,contentType:m,body:i,isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:g,captureResponseMs:0,totalMs:Date.now()-c}}}catch(b){if(b instanceof DOMException&&"AbortError"===b.name)throw b;let a=b instanceof Error?b.message:String(b);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`httpBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-c}}}}async function y(a,b,c){let d=Date.now()+5e3;for(;Date.now()<d;){if(c?.aborted)throw new DOMException("Aborted","AbortError");let e=(await a.cookies(b)).map(a=>`${a.name}=${a.value}`).join("; ");if(e)return e;let f=d-Date.now();if(f<=0)break;await u(Math.min(500,f),c)}return null}async function z(a,b,c,d){let e=await l(a);try{return await e.goto(b,{waitUntil:"domcontentloaded",timeout:6e4,signal:d??void 0}),await y(a.context,c,d)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;return null}finally{await e.close().catch(()=>{})}}async function A(a,b,c,d){let e=r(c);if(e)return e;let f=t.get(a);if(f)return f;let g=B(a,b,c,d);return t.set(a,g),g.finally(()=>t.delete(a)),g}async function B(a,b,c,d){let e,{key:f}=await v(a,!0);try{e=await k(f,{cookieDomain:c,cookieString:null,warmupUrl:b})}catch{return null}let g=await z(e,b,c,d);return g&&s(c,g),g}async function C(a){if(!a.cookieDomain)return null;let b=process.env.OMNIROUTE_BROWSER_POOL;if("off"===b||"0"===b||"false"===b)return null;try{let{key:b}=await v(a.poolKey,!0);return await k(b,{cookieDomain:a.cookieDomain,cookieString:null})}catch{return null}}async function D(a,b,c,d,e){if(e)try{let a=await e;if(a){let e=await z(a,b,c,d);if(e)return s(c,e),e}}catch{}return A(a,b,c,d)}async function E(a){let b=a.signal?null:new AbortController,c=a.signal??b?.signal??null;b&&setTimeout(()=>b.abort(),45e3);let e=C(a);try{var f;let b=await x({...a,signal:c??void 0});if(b.status>=200&&b.status<300||!((f=b.status)>=400&&501!==f))return b;let d=null;if(a.cookieDomain){if(d=r(a.cookieDomain)){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b;d=null}if(!d&&(d=await D(a.poolKey,a.chatPageUrl,a.cookieDomain,c,e))){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b}}let g=d?{...a,cookieString:d,signal:c??void 0}:{...a,signal:c??void 0},h=await w(g);return h.status>=200&&h.status,h}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return{status:504,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"tryBackedChat timed out",type:"timeout_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:0}};throw a}}},74199:(a,b,c)=>{c.d(b,{R:()=>d});let d=()=>!1},74350:(a,b,c)=>{c.d(b,{L:()=>I});var d=c(97510),e=c(61408),f=c(8590),g=c(89625),h=c(55511);let i=new Map,j=new Map;async function k(a={}){let b=(a.credentials||"").trim();if(!b)throw Error("Missing GigaChat credentials");let c=(a.authUrl||"https://ngw.devices.sberbank.ru:9443/api/v2/oauth").trim(),d=(a.scope||"GIGACHAT_API_PERS").trim(),e=`${c}::${d}::${b}`,f=i.get(e);if(function(a){if(!a?.accessToken||!a?.expiresAt)return!1;let b=new Date(a.expiresAt).getTime();return Number.isFinite(b)&&b-Date.now()>6e4}(f))return f;let g=j.get(e);if(g)return g;let l=(async()=>{let f=await fetch(c,{method:"POST",headers:{Authorization:`Basic ${b}`,RqUID:(0,h.randomUUID)(),"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({scope:d}).toString(),signal:a.signal});if(!f.ok){let a=await f.text();throw Error(`GigaChat token request failed: ${f.status} ${a}`.trim())}let g=await f.json(),j="string"==typeof g.tok?g.tok:"string"==typeof g.access_token?g.access_token:"";if(!j)throw Error("GigaChat token response missing access token");let k={accessToken:j,expiresAt:function(a){if("number"==typeof a&&Number.isFinite(a))return new Date(a).toISOString();if("string"==typeof a&&a.trim().length>0){let b=Number(a);if(Number.isFinite(b))return new Date(b).toISOString();let c=Date.parse(a);if(Number.isFinite(c))return new Date(c).toISOString()}return new Date(Date.now()+18e5).toISOString()}(g.exp??g.expires_at)};return i.set(e,k),k})();j.set(e,l);try{return await l}finally{j.delete(e)}}var l=c(36081),m=c(57247),n=c(93462),o=c(56452),p=c(78340),q=c(57647),r=c(57441),s=c(9427);let t="/api/v2",u="/genai/llmgw/chat/completions/",v="https://app.datarobot.com",w="https://example-resource.services.ai.azure.com/openai/v1",x="https://ca-tor.ml.cloud.ibm.com/ml/gateway/v1",y="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",z="https://example-aicore.cfapps.eu10.hana.ondemand.com/v2/lm/deployments/example-deployment";var A=c(74361),B=c(40615);let C=()=>!1;var D=c(96303),E=c(4928),F=c(13568);function G(a,b){let c=null;if(b&&"object"==typeof b&&!Array.isArray(b))c=b;else if("string"==typeof b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&(c=a)}catch{}if(c)for(let[b,d]of Object.entries(c)){if("string"!=typeof b||"string"!=typeof d||C(b)||/[\r\n\0]/.test(b)||/[\r\n]/.test(d))continue;let c=b.toLowerCase();for(let b of Object.keys(a))b.toLowerCase()===c&&delete a[b];a[b]=d}}function H(a){let b=(0,s.q)(a);return b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/chat")?b:b.endsWith("/v1")?`${b}/chat/completions`:`${b}/v1/chat/completions`}class I extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai);const b=(0,l.qs)(a);b?.poolConfig&&(this.poolConfig=b.poolConfig)}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=d?.providerSpecificData,b=(a?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if(c)return`${b}${c}`;let e=a?._omnirouteForceResponsesUpstream===!0||"responses"===(0,q.J9)(this.provider,a)?"/responses":"/chat/completions";return`${b}${e}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=d?.providerSpecificData,b=a?.baseUrl||"https://api.anthropic.com/v1",c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if((0,q.GK)(this.provider))return(0,g.tI)(b,c||g.np);let e=b.replace(/\/$/,"");return`${e}${c||"/messages"}`}switch(this.provider){case"openai":{let b="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,c=b?H(b):this.config.baseUrl;if("openai-responses"===(0,m.ux)("openai",a))return c.replace(/\/chat\/completions\/?$/,"/responses");return c}case"bailian-coding-plan":{let a;return h=this.resolveBaseUrl(d),(a=(0,s.q)(h).replace(/\?beta=true$/,"")).endsWith("/messages")?a:`${a}/messages`}case"heroku":case"databricks":case"snowflake":case"gigachat":return void this.resolveBaseUrl(d);case"datarobot":{let a;var e,f,h,i=this.resolveBaseUrl(d);return(a=(0,s.q)(i||v)||v).endsWith("/chat/completions")?a:/\/api\/v2\/deployments\/[^/]+$/i.test(a)?`${a}/chat/completions`:/\/api\/v2\/genai\/llmgw$/i.test(a)?`${a}/chat/completions/`:/\/api\/v2\/genai\/llmgw\/chat$/i.test(a)?`${a}/completions/`:a.includes(t)?`${a}${u}`:`${a}${t}${u}`}case"azure-ai":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){let c=function(a){let b=(0,s.q)(a||w);if(!b)return w;if(b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/models"))return b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(b.endsWith("/openai/v1")||b.endsWith("/v1"))return b;if(b.endsWith("/openai"))return`${b}/v1`;let c=new URL(b);return(c.hostname.endsWith(".services.ai.azure.com")||c.hostname.endsWith(".openai.azure.com"))&&(!c.pathname||"/"===c.pathname)?(c.pathname="/openai/v1",(0,s.o)(c.toString())):b}(a);return`${c}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"watsonx":return e=this.resolveBaseUrl(d),`${function(a){let b=(0,s.q)(a||x);if(!b)return x;let c=b.replace(/\/(?:chat\/completions|completions|embeddings|models)$/i,"");if(c.endsWith("/ml/gateway/v1"))return c;if(c.endsWith("/ml/gateway"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/ml/gateway")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/ml/gateway/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(e)}/chat/completions`;case"oci":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){return`${function(a){let b=(0,s.q)(a||y);if(!b)return y;let c=b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(c.endsWith("/openai/v1"))return c;if(c.endsWith("/openai"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/openai")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/openai/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(a)}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"sap":{let a;return(a=function(a){let b=(0,s.q)(a||z);if(!b)return z;var c=b.replace(/\/chat\/completions$/i,"");try{let a=new URL(c);return a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(this.resolveBaseUrl(d))).endsWith("/chat/completions")?a:`${a}/chat/completions`}case"xiaomi-mimo":{let a;return f=this.resolveBaseUrl(d),a=(0,s.q)(f).replace(/\/chat\/completions$/,""),`${a}/chat/completions`}case"maritalk":{let a=this.resolveBaseUrl(d);return(0,A.$D)(a)}case"siliconflow":return H(this.resolveBaseUrl(d));case"ollama-local":case"llama-cpp":case"lm-studio":case"modal":case"reka":case"vllm":case"lemonade":case"llamafile":case"triton":case"docker-model-runner":case"xinference":case"oobabooga":{let a=B.HP[this.provider]?.localDefault;return H(d?.providerSpecificData?.baseUrl||a||this.config.baseUrl)}case"zai":case"glm-coding-apikey":{let a=this.resolveBaseUrl(d);return`${a}?beta=true`}case"claude":case"glm":case"glmt":case"kimi-coding":case"minimax":case"minimax-cn":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;case"qwen":{let a=d?.providerSpecificData?.resourceUrl;return`https://${a||"portal.qwen.ai"}/v1/chat/completions`}default:{let a="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,b=!this.config.format||"openai"===this.config.format;if(a&&b)return H(a);let c=this.config.baseUrl,e=(0,l.qs)(this.provider);return e?.urlSuffix?`${c}${e.urlSuffix}`:c}}}buildHeaders(a,b=!0,c){let{headers:d,effectiveKey:e}=this.buildHeadersPreamble(a,b);switch(this.provider){case"gemini":e?d["x-goog-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"snowflake":{let b=e||a.accessToken||"",c=b.startsWith("pat/");d.Authorization=`Bearer ${c?b.slice(4):b}`,d["X-Snowflake-Authorization-Token-Type"]=c?"PROGRAMMATIC_ACCESS_TOKEN":"KEYPAIR_JWT";break}case"gigachat":d.Authorization=`Bearer ${a.accessToken||e}`;break;case"clarifai":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"azure-ai":(e||a.accessToken)&&(d["api-key"]=e||a.accessToken),delete d.Authorization;break;case"oci":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`);let c=a.projectId||a?.providerSpecificData?.projectId||a?.providerSpecificData?.project;c&&(d["OpenAI-Project"]=c);break}case"sap":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`),d["AI-Resource-Group"]=function(a,b="default"){for(let b of[a?.resourceGroup,a?.aiResourceGroup,a?.resource_group])if("string"==typeof b&&b.trim())return b.trim();return b}(a?.providerSpecificData);break}case"reka":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`,d["X-Api-Key"]=b);break}case"maritalk":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"claude":case"anthropic":e?d["x-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"glm":case"glmt":case"kimi-coding":case"bailian-coding-plan":case"kimi-coding-apikey":case"zai":case"glm-coding-apikey":d["x-api-key"]=e||a.accessToken;break;case"cline":Object.assign(d,(0,E.w$)(e||a.accessToken));break;default:if((0,q.GK)(this.provider)){let c=(0,D.RG)(a?.providerSpecificData),d=(0,g.mu)(e||a.accessToken||"",b,a?.providerSpecificData?.ccSessionId,{redactThinking:!0===c.redactThinking});return G(d,a.providerSpecificData?.customHeaders),d}if(this.provider?.startsWith?.("anthropic-compatible-"))e?d["x-api-key"]=e:a.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`),e&&!d.Authorization&&!function(a){if(!a)return!0;let b=null;try{b=new URL(a).hostname}catch{try{b=new URL(`https://${a}`).hostname}catch{return!1}}return"api.anthropic.com"===b}(a?.providerSpecificData?.baseUrl||"")&&(d.Authorization=`Bearer ${e}`),Object.keys(d).some(a=>"anthropic-version"===a.toLowerCase())||(d["anthropic-version"]="2023-06-01");else{let b=(0,l.qs)(this.provider),c=b?.authHeader||"bearer",f=e||a.accessToken||b?.anonymousApiKey;f&&("x-api-key"===c?d["x-api-key"]=f:"x-goog-api-key"===c?d["x-goog-api-key"]=f:d.Authorization=`Bearer ${f}`)}}if(d.Accept=b?"text/event-stream":"application/json","qwen"===this.provider&&e)for(let a of Object.keys(d))a.toLowerCase().startsWith("x-dashscope-")&&delete d[a];if((this.provider?.startsWith?.("openai-compatible-")||this.provider?.startsWith?.("anthropic-compatible-"))&&G(d,a.providerSpecificData?.customHeaders),c){(0,F.G)(d,c);let a=c["anthropic-beta"]??c["Anthropic-Beta"]??null,b=Object.keys(d).find(a=>"anthropic-beta"===a.toLowerCase());b&&a&&(d[b]=(0,n.S9)(d[b],a))}return(0,n.Xs)(d),d}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-")||!a||"object"!=typeof a||Array.isArray(a))return a;let b=a.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
356
+ parameters: ${e}`:""}`)}return 0===b.length?"":["You can call tools. To call a tool, reply with a single line containing a <tool> block",'with JSON: <tool>{"name": "<tool_name>", "arguments": { ... }}</tool>',"Only emit the <tool> block when you actually want to call a tool; otherwise answer normally.","","Available tools:",...b].join("\n")}(c);return{hasTools:!0,requestedTools:c,effectiveMessages:[{role:"system",content:d},...b]}}function o(a,b,c="call"){let{content:d,toolCalls:e}=m(a,`${c}-${Date.now()}`,b);return{content:d,toolCalls:e,finishReason:e?"tool_calls":"stop"}}},73483:(a,b,c)=>{c.d(b,{Gh:()=>m,IF:()=>s,O9:()=>j,OF:()=>r,WL:()=>k,bC:()=>p,f5:()=>n,lm:()=>f,oT:()=>q});var d=c(47370),e=c(14170);let f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"},g=null,h=0;async function i(){try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=(await a()).usageTokenBuffer;"number"==typeof b&&b>=0&&(g=b,h=Date.now())}catch{}}function j(a){if(!a||"object"!=typeof a)return a;let b=function(){let a=Date.now(),b=null!==g&&a-h>=3e4;if(null!==g&&!b)return g;let c=process.env.USAGE_TOKEN_BUFFER;if(void 0!==c){let b=parseInt(c,10);if(!isNaN(b)&&b>=0)return g=b,h=a,b}return(null===g||b)&&(null===g&&(g=0),h=a,i()),g}();if(0===b)return a;let c={...a};return void 0!==c.input_tokens&&(c.input_tokens+=b),void 0!==c.prompt_tokens&&(c.prompt_tokens+=b),void 0!==c.total_tokens?c.total_tokens+=b:void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens),c}function k(a,b){if(!a||"object"!=typeof a)return a;let c={...a};b===e.h.CLAUDE||b===e.h.OPENAI_RESPONSES?(void 0!==c.prompt_tokens&&void 0===c.input_tokens&&(c.input_tokens=c.prompt_tokens),void 0!==c.completion_tokens&&void 0===c.output_tokens&&(c.output_tokens=c.completion_tokens)):(void 0!==c.input_tokens&&void 0===c.prompt_tokens&&(c.prompt_tokens=c.input_tokens),void 0!==c.output_tokens&&void 0===c.completion_tokens&&(c.completion_tokens=c.output_tokens),void 0===c.total_tokens&&void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens));let d={[e.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[e.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[e.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},f=d[b];b===e.h.ANTIGRAVITY?f=d[e.h.GEMINI]:b===e.h.OPENAI_RESPONSE?f=d[e.h.OPENAI_RESPONSES]:f||(f=d.default);let g={};for(let a of f)void 0!==c[a]&&(g[a]=c[a]);return g}function l(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("input_tokens",a?.input_tokens),c("output_tokens",a?.output_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),0===Object.keys(b).length)?null:b}function m(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function n(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage){let b=a.message.usage,c=b.input_tokens||b.prompt_tokens||0,d=b.cache_read_input_tokens||0,e=b.cache_creation_input_tokens||0;if(c>0||d>0||e>0)return l({prompt_tokens:c+d+e,completion_tokens:b.output_tokens||b.completion_tokens||0,input_tokens:c+d+e,output_tokens:b.output_tokens||b.completion_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage){let b=a.usage.input_tokens||0,c=a.usage.cache_read_input_tokens||0,d=a.usage.cache_creation_input_tokens||0;return l({prompt_tokens:b+c+d,completion_tokens:a.usage.output_tokens||0,input_tokens:b+c+d,output_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens})}if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage;return l({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:b.input_tokens_details?.cached_tokens??b.prompt_tokens_details?.cached_tokens??b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens,reasoning_tokens:b.output_tokens_details?.reasoning_tokens??b.completion_tokens_details?.reasoning_tokens??b.reasoning_tokens})}if(a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.prompt_tokens||void 0!==a.usage.input_tokens))return l({prompt_tokens:a.usage.prompt_tokens??a.usage.input_tokens??0,completion_tokens:a.usage.completion_tokens??a.usage.output_tokens??0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens??a.usage.input_tokens_details?.cached_tokens??a.usage.prompt_cache_hit_tokens??a.usage.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens??a.usage.output_tokens_details?.reasoning_tokens??a.usage.reasoning_tokens});let b=a.usageMetadata||a.response?.usageMetadata;if(b&&"object"==typeof b)return l({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount});if(!0===a.done&&"number"==typeof a.prompt_eval_count){let b=a.prompt_eval_count||0,c=a.eval_count||0;return l({prompt_tokens:b,completion_tokens:c,total_tokens:b+c})}return null}function o(a){if(!a||"string"!=typeof a)return 0;let b=a.match(/[\u3000-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}]/gu);return(b?b.length:0)+Math.ceil(1.3*a.replace(/[\u3000-\u9fff\uf900-\ufaff]/g," ").split(/(\s+|[^\w\s]|(?<=[a-z])(?=[A-Z]))/).filter(a=>a&&a.trim().length>0).length)}function p(a){if(!a||"object"!=typeof a)return 0;try{let b=0,c=0;if(a.tools&&Array.isArray(a.tools)){let d=JSON.stringify(a.tools);b=Math.ceil(d.length/6);let{tools:e,...f}=a;c=o(JSON.stringify(f))}else c=o(JSON.stringify(a));return c+b}catch(a){return 0}}function q(a){return!a||a<=0?0:Math.max(1,Math.ceil(a/3.5))}function r(a,b,c=e.h.OPENAI){var d,f;return d=p(a),f=q(b),c===e.h.CLAUDE?j({input_tokens:d,output_tokens:f,estimated:!0}):j({prompt_tokens:d,completion_tokens:f,total_tokens:d+f,estimated:!0})}function s(a,b,c=null,e=null,g=null,h=null,i="ok",j=!0){if(!b||"object"!=typeof b)return;let k=a?.toUpperCase()||"UNKNOWN",l=b?.prompt_tokens??b?.input_tokens??null,m=b?.completion_tokens??b?.output_tokens??null,n="string"==typeof e?e:void 0,o=n?n.slice(0,8)+"...":"unknown",p="ok"===i||200===i||"200"===i?`${f.green}ok${f.reset}`:`${f.red}${i}${f.reset}`,q=null!==h?`${h}ms`:"-",r=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 [USAGE] ${k} | ${c||"unknown"} | ${p} | ${j?"stream":"sync"} | ${q} | in=${l} | out=${m} | account=${o}`;b.estimated&&(r+=` ${f.yellow}(estimated)${f.reset}`);let t=b?.cached_tokens??b?.cache_read_input_tokens??null;t&&(r+=` | cache_read=${t}`);let u=b?.cache_creation_input_tokens??null;u&&(r+=` | cache_create=${u}`);let v=b.reasoning_tokens;v&&(r+=` | reasoning=${v}`),console.log(r),(0,d.E5)({model:"string"==typeof c?c:void 0,provider:"string"==typeof a?a:void 0,connectionId:n,tokens:{input:l,output:m,cacheRead:t||0,cacheCreation:u||0,reasoning:v||0},status:"200 OK"}).catch(()=>{})}},73870:(a,b,c)=>{c.d(b,{w0:()=>o});var d=c(89419),e=c(86935),f=c(97510),g=c(61408);let h=new Map,i=["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/generative-language.retriever"];function j(a){try{return JSON.parse(a)}catch{throw Error("Vertex AI requires a valid Service Account JSON as the API key")}}function k(a){if(!a||"string"!=typeof a)return!1;try{let b=JSON.parse(a);return!!b&&"object"==typeof b&&!Array.isArray(b)}catch{return!1}}async function l(a){if(!a.client_email||!a.private_key)throw Error("Service Account JSON is missing required fields (client_email or private_key)");let b=a.client_email,c=h.get(b);if(c&&Date.now()<c.expiresAt-6e4)return c.token;let f=await (0,d.Lf)(a.private_key,"RS256"),g=Math.floor(Date.now()/1e3),j=await new e.P({iss:a.client_email,sub:a.client_email,aud:"https://oauth2.googleapis.com/token",iat:g,exp:g+3600,scope:i.join(" ")}).setProtectedHeader({alg:"RS256",kid:a.private_key_id}).sign(f),k=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:j})});if(!k.ok){let a=await k.text();throw Error(`Failed to exchange JWT for Vertex access token: ${k.status} ${a}`)}let l=(await k.json()).access_token;if(!l)throw Error("Vertex AI token exchange succeeded but no access_token found");return h.set(b,{token:l,expiresAt:(g+3600)*1e3}),l}let m=new Set(["claude-3-5-sonnet","claude-3-opus","claude-3-haiku","deepseek-v3","deepseek-v3.2","deepseek-v4","deepseek-deepseek-r1","qwen3-next-80b","qwen3.6-","llama-3.1","mistral-","glm-5","glm-5.1","meta/llama"]);function n(a){let b=a.toLowerCase();return[...m].some(a=>b.startsWith(a))}class o extends f.Hv{constructor(){super("vertex",g.xq.vertex)}async execute(a){let{credentials:b,log:c}=a;if("string"==typeof b.apiKey&&(b.apiKey=b.apiKey.trim()),b.apiKey&&!b.accessToken&&k(b.apiKey))try{let a=j(b.apiKey);b.accessToken=await l(a)}catch(a){throw c?.error?.("VERTEX",`Failed to generate JWT token: ${a.message}`),a}return super.execute(a)}buildUrl(a,b,c=0,d=null){var e;if("string"==typeof(e=d?.apiKey)&&e.trim().length>0&&!k(e)&&!d?.accessToken){let c=encodeURIComponent(String(d.apiKey).trim());return n(a)?`https://aiplatform.googleapis.com/v1/publishers/openapi/chat/completions?key=${c}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse&":"generateContent?"}key=${c}`}let f=d?.providerSpecificData?.region||"us-central1",g="unknown-project";if(d?.apiKey)try{let a=j(d.apiKey);a.project_id&&(g=a.project_id)}catch{}return n(a)?`https://aiplatform.googleapis.com/v1/projects/${g}/locations/global/endpoints/openapi/chat/completions`:`https://aiplatform.googleapis.com/v1/projects/${g}/locations/${f}/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}}},74184:(a,b,c)=>{c.d(b,{As:()=>E});var d=c(4573);let e={browser:null,contexts:new Map,pendingContexts:new Map,launching:null,lastActivity:0,idleTimer:null,evictTimer:null,cloakLaunch:null,cloakLaunchResolved:!1,metrics:{browserLaunches:0,browserLaunchFailures:0,contextsCreated:0,contextsReused:0,contextsEvicted:0,contextsReleased:0,contextCreateFailures:0,shutdowns:0,lastShutdownReason:null}};async function f(){if(e.cloakLaunchResolved)return e.cloakLaunch;e.cloakLaunchResolved=!0;try{e.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{e.cloakLaunch=null}return e.cloakLaunch}function g(){e.idleTimer&&clearTimeout(e.idleTimer),e.idleTimer=setTimeout(()=>{m("idle-timeout")},3e5),e.idleTimer.unref?.()}async function h(a,b){try{let d=b?.resolveProxy??(async a=>{let{resolveProxyForProvider:b}=await c.e(1676).then(c.bind(c,51676));return b(a)}),e=await d(a);if(!e?.host)return;let f="socks5"===e.type?"socks5":"http",g={server:`${f}://${e.host}:${e.port}`};return e.username&&(g.username=String(e.username),g.password=null==e.password?"":String(e.password)),g}catch(a){console.warn("[BrowserPool] Failed to resolve proxy from DB:",a);return}}async function i(){if(e.browser)return e.browser;if(e.launching)return e.launching;e.launching=(async()=>{let a,b=await f();if(b)a=await b({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});else{let{chromium:b}=await Promise.resolve().then(c.bind(c,83237));a=await b.launch({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled"]})}return e.browser=a,e.launching=null,e.metrics.browserLaunches++,a})();try{return await e.launching}catch(a){throw e.launching=null,e.metrics.browserLaunchFailures++,a}}function j(a,b){b&&e.metrics.contextCreateFailures++,e.pendingContexts.delete(a)}async function k(a,b){let c;if(void 0!==(c=process.env.OMNIROUTE_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: OMNIROUTE_BROWSER_POOL=off — context requested but pool is disabled");let d=e.contexts.get(a);if(d)return d.lastUsed=Date.now(),e.lastActivity=Date.now(),e.metrics.contextsReused++,g(),d;let f=e.pendingContexts.get(a);if(f)return f;let k=(async()=>{let[c,d]=await Promise.all([i(),h(a)]),f=null!==e.cloakLaunch,j=await c.newContext({userAgent:b.userAgent||"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",locale:b.locale||"en-US",timezoneId:b.timezone||"America/New_York",viewport:{width:1280,height:800},...d?{proxy:d}:{}});if(b.cookieString){var k,l;let a=(k=b.cookieString,l=b.cookieDomain,k.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(b<0)return null;let c=a.slice(0,b).trim(),d=a.slice(b+1).trim();return c&&d?{name:c,value:d,domain:l.startsWith(".")?l:`.${l}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));a.length>0&&await j.addCookies(a)}let n=null;if(b.warmupUrl)try{n=await j.newPage(),await n.goto(b.warmupUrl,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500))}catch(a){try{await n?.close()}catch{}n=null}if(e.browser!==c)throw await j.close().catch(()=>{}),n&&await n.close().catch(()=>{}),Error("Pool shut down during context creation");let o={id:a,context:j,warmupPage:n,lastUsed:Date.now(),isStealth:f};return e.contexts.set(a,o),e.metrics.contextsCreated++,e.lastActivity=Date.now(),g(),e.evictTimer&&clearInterval(e.evictTimer),e.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of e.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context:",b,"(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),e.contexts.delete(b),e.metrics.contextsEvicted++,c.context.close().catch(()=>{}));0!==e.contexts.size||e.launching||m("all-contexts-evicted")})(),6e4),e.evictTimer.unref?.(),o})();return e.pendingContexts.set(a,k),k.then(()=>j(a,!1)).catch(()=>j(a,!0)),k}async function l(a){return a.context.newPage()}async function m(a){for(let[b,c]of(e.metrics.shutdowns++,e.metrics.lastShutdownReason=a,e.idleTimer&&(clearTimeout(e.idleTimer),e.idleTimer=null),e.evictTimer&&(clearInterval(e.evictTimer),e.evictTimer=null),e.pendingContexts.clear(),e.contexts)){try{await c.context.close()}catch{}e.contexts.delete(b)}if(e.browser){try{await e.browser.close()}catch{}e.browser=null}e.lastActivity=Date.now()}async function n(a){let b={};for(let[c,d]of Object.entries(a.headers()))b[c]=d;let c=await a.body();return{status:a.status(),headers:b,body:d.Buffer.from(c)}}var o=c(58643),p=c(43659);let q=new Map;function r(a){let b=q.get(a);return b&&Date.now()<b.expiresAt?b.cookieString:(q.delete(a),null)}function s(a,b,c){q.set(a,{cookieString:b,expiresAt:Date.now()+(c??3e5),domain:a})}let t=new Map;function u(a,b){return new Promise((c,d)=>{if(b?.aborted)return d(new DOMException("Aborted","AbortError"));let e=()=>{clearTimeout(f),d(new DOMException("Aborted","AbortError"))},f=setTimeout(()=>{b?.removeEventListener("abort",e),c()},a);b?.addEventListener("abort",e,{once:!0})}).catch(a=>{if(a instanceof DOMException&&"AbortError"===a.name)throw a})}async function v(a,b){return b?{key:a,acquired:!0}:{key:`${a}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,acquired:!1}}async function w(a){let b=Date.now(),{poolKey:c,chatUrl:e,chatPageUrl:f,userMessage:g,cookieString:h,cookieDomain:i,chatUrlMatchDomain:j,userAgent:m,locale:o,timezone:q,inputSelector:r,submitButtonSelector:s,postSubmitWaitMs:t=15e3,signal:w,reuseContext:x=!0}=a,{key:y,acquired:z}=await v(c,x),A=Date.now(),B=await k(y,{cookieDomain:i||j,cookieString:h||null,warmupUrl:f,userAgent:m,locale:o,timezone:q}),C=Date.now()-A,D=await l(B);try{let a,c=Date.now();await D.goto(f,{waitUntil:"domcontentloaded",timeout:6e4,signal:w??void 0}),await u(2500,w);let h=Date.now()-c,i=D.locator(r).first();await i.waitFor({state:"visible",timeout:1e4,signal:w??void 0}),await i.fill(g),await u(800,w),Date.now();let k=D.waitForResponse(a=>"POST"===a.request().method()&&function(a,b,c){let d,e;if(a===c)return!0;try{d=new URL(a),e=new URL(c)}catch{return!1}if(!d.host.endsWith(b))return!1;let f=e.pathname.split("/").filter(Boolean),g=d.pathname.split("/").filter(Boolean);if(f.length<2||g.length!==f.length)return!1;let h=1;for(let a=0;a<f.length;a++)if(f[a]!==g[a]){if("PLACEHOLDER"===f[a]&&h>0){h--;continue}return!1}return!0}(a.url(),j,e),{timeout:3e4}),l=w?new Promise((b,c)=>{if(w.aborted)return c(new DOMException("Aborted","AbortError"));a=()=>c(new DOMException("Aborted","AbortError")),w.addEventListener("abort",a,{once:!0})}):null;if(s){let a=D.locator(s).first();if(await a.count()>0)try{await a.click({timeout:2e3})}catch{await D.keyboard.press("Enter")}else await D.keyboard.press("Enter")}else await D.keyboard.press("Enter");let m=Date.now(),o=l?await Promise.race([k,l]).catch(()=>null):await k.catch(()=>null);w&&a&&w.removeEventListener("abort",a),o?await u(Math.min(t,3e4),w):await u(t,w);let p=Date.now()-m,q=0,v=null,x=d.Buffer.alloc(0);if(o){let a=await n(o);a.body.length>0xa00000?(x=d.Buffer.from(JSON.stringify({error:{message:"Response too large",type:"upstream_error"}})),q=502,v="application/json"):(q=a.status,v=a.headers["content-type"]||null,x=a.body)}return{status:q,contentType:v,body:x,isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:h,submitMs:p,captureResponseMs:p,totalMs:Date.now()-b}}}catch(c){let a=c instanceof Error?c.message:String(c);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`browserBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-b}}}finally{if(await D.close(),!z)try{await B.context.close()}catch{}}}async function x(a){let b,c=Date.now(),{chatUrl:e,userMessage:f,cookieString:g,cookieDomain:h,chatUrlMatchDomain:i,signal:j}=a,k={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:"text/event-stream, application/json, text/plain, */*","Accept-Language":"en-US,en;q=0.9","Content-Type":"application/json",Origin:"duckduckgo.com"===i?"https://duckduckgo.com":`https://${i}`,Referer:"duckduckgo.com"===i?"https://duckduckgo.com/":`https://${i}/`,"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","Sec-Ch-Ua":'"Chromium";v="149", "Google Chrome";v="149", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Priority:"u=1, i"};g&&(k.Cookie=g),b=new URL(e).hostname.includes("duckduckgo")?JSON.stringify({model:"gpt-4o-mini",messages:[{role:"user",content:f}]}):JSON.stringify({messages:[{role:"user",content:f}]});try{let a=Date.now();if(!o.A.available)return{status:501,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"httpBackedChat unavailable: wreq-js (TLS client) not installed",type:"configuration_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:Date.now()-c,captureResponseMs:0,totalMs:Date.now()-c}};let f=await o.A.fetch(e,{method:"POST",headers:k,body:b,signal:j??void 0}),g=Date.now()-a,h=f.headers.get("content-length");if(h&&parseInt(h,10)>0xa00000)throw Error("Response too large");let i=d.Buffer.from(await f.text()),l=f.status,m=f.headers.get("content-type")||"text/event-stream";return{status:l,contentType:m,body:i,isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:g,captureResponseMs:0,totalMs:Date.now()-c}}}catch(b){if(b instanceof DOMException&&"AbortError"===b.name)throw b;let a=b instanceof Error?b.message:String(b);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`httpBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-c}}}}async function y(a,b,c){let d=Date.now()+5e3;for(;Date.now()<d;){if(c?.aborted)throw new DOMException("Aborted","AbortError");let e=(await a.cookies(b)).map(a=>`${a.name}=${a.value}`).join("; ");if(e)return e;let f=d-Date.now();if(f<=0)break;await u(Math.min(500,f),c)}return null}async function z(a,b,c,d){let e=await l(a);try{return await e.goto(b,{waitUntil:"domcontentloaded",timeout:6e4,signal:d??void 0}),await y(a.context,c,d)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;return null}finally{await e.close().catch(()=>{})}}async function A(a,b,c,d){let e=r(c);if(e)return e;let f=t.get(a);if(f)return f;let g=B(a,b,c,d);return t.set(a,g),g.finally(()=>t.delete(a)),g}async function B(a,b,c,d){let e,{key:f}=await v(a,!0);try{e=await k(f,{cookieDomain:c,cookieString:null,warmupUrl:b})}catch{return null}let g=await z(e,b,c,d);return g&&s(c,g),g}async function C(a){if(!a.cookieDomain)return null;let b=process.env.OMNIROUTE_BROWSER_POOL;if("off"===b||"0"===b||"false"===b)return null;try{let{key:b}=await v(a.poolKey,!0);return await k(b,{cookieDomain:a.cookieDomain,cookieString:null})}catch{return null}}async function D(a,b,c,d,e){if(e)try{let a=await e;if(a){let e=await z(a,b,c,d);if(e)return s(c,e),e}}catch{}return A(a,b,c,d)}async function E(a){let b=a.signal?null:new AbortController,c=a.signal??b?.signal??null;b&&setTimeout(()=>b.abort(),45e3);let e=C(a);try{var f;let b=await x({...a,signal:c??void 0});if(b.status>=200&&b.status<300||!((f=b.status)>=400&&501!==f))return b;let d=null;if(a.cookieDomain){if(d=r(a.cookieDomain)){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b;d=null}if(!d&&(d=await D(a.poolKey,a.chatPageUrl,a.cookieDomain,c,e))){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b}}let g=d?{...a,cookieString:d,signal:c??void 0}:{...a,signal:c??void 0},h=await w(g);return h.status>=200&&h.status,h}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return{status:504,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"tryBackedChat timed out",type:"timeout_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:0}};throw a}}},74199:(a,b,c)=>{c.d(b,{R:()=>d});let d=()=>!1},74350:(a,b,c)=>{c.d(b,{L:()=>I});var d=c(97510),e=c(61408),f=c(8590),g=c(89625),h=c(55511);let i=new Map,j=new Map;async function k(a={}){let b=(a.credentials||"").trim();if(!b)throw Error("Missing GigaChat credentials");let c=(a.authUrl||"https://ngw.devices.sberbank.ru:9443/api/v2/oauth").trim(),d=(a.scope||"GIGACHAT_API_PERS").trim(),e=`${c}::${d}::${b}`,f=i.get(e);if(function(a){if(!a?.accessToken||!a?.expiresAt)return!1;let b=new Date(a.expiresAt).getTime();return Number.isFinite(b)&&b-Date.now()>6e4}(f))return f;let g=j.get(e);if(g)return g;let l=(async()=>{let f=await fetch(c,{method:"POST",headers:{Authorization:`Basic ${b}`,RqUID:(0,h.randomUUID)(),"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({scope:d}).toString(),signal:a.signal});if(!f.ok){let a=await f.text();throw Error(`GigaChat token request failed: ${f.status} ${a}`.trim())}let g=await f.json(),j="string"==typeof g.tok?g.tok:"string"==typeof g.access_token?g.access_token:"";if(!j)throw Error("GigaChat token response missing access token");let k={accessToken:j,expiresAt:function(a){if("number"==typeof a&&Number.isFinite(a))return new Date(a).toISOString();if("string"==typeof a&&a.trim().length>0){let b=Number(a);if(Number.isFinite(b))return new Date(b).toISOString();let c=Date.parse(a);if(Number.isFinite(c))return new Date(c).toISOString()}return new Date(Date.now()+18e5).toISOString()}(g.exp??g.expires_at)};return i.set(e,k),k})();j.set(e,l);try{return await l}finally{j.delete(e)}}var l=c(36081),m=c(57247),n=c(93462),o=c(56452),p=c(78340),q=c(57647),r=c(57441),s=c(9427);let t="/api/v2",u="/genai/llmgw/chat/completions/",v="https://app.datarobot.com",w="https://example-resource.services.ai.azure.com/openai/v1",x="https://ca-tor.ml.cloud.ibm.com/ml/gateway/v1",y="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",z="https://example-aicore.cfapps.eu10.hana.ondemand.com/v2/lm/deployments/example-deployment";var A=c(74361),B=c(40615);let C=()=>!1;var D=c(96303),E=c(4928),F=c(13568);function G(a,b){let c=null;if(b&&"object"==typeof b&&!Array.isArray(b))c=b;else if("string"==typeof b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&(c=a)}catch{}if(c)for(let[b,d]of Object.entries(c)){if("string"!=typeof b||"string"!=typeof d||C(b)||/[\r\n\0]/.test(b)||/[\r\n]/.test(d))continue;let c=b.toLowerCase();for(let b of Object.keys(a))b.toLowerCase()===c&&delete a[b];a[b]=d}}function H(a){let b=(0,s.q)(a);return b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/chat")?b:b.endsWith("/v1")?`${b}/chat/completions`:`${b}/v1/chat/completions`}class I extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai);const b=(0,l.qs)(a);b?.poolConfig&&(this.poolConfig=b.poolConfig)}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=d?.providerSpecificData,b=(a?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if(c)return`${b}${c}`;let e=a?._omnirouteForceResponsesUpstream===!0||"responses"===(0,q.J9)(this.provider,a)?"/responses":"/chat/completions";return`${b}${e}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=d?.providerSpecificData,b=a?.baseUrl||"https://api.anthropic.com/v1",c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if((0,q.GK)(this.provider))return(0,g.tI)(b,c||g.np);let e=b.replace(/\/$/,"");return`${e}${c||"/messages"}`}switch(this.provider){case"openai":{let b="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,c=b?H(b):this.config.baseUrl;if("openai-responses"===(0,m.ux)("openai",a))return c.replace(/\/chat\/completions\/?$/,"/responses");return c}case"bailian-coding-plan":{let a;return h=this.resolveBaseUrl(d),(a=(0,s.q)(h).replace(/\?beta=true$/,"")).endsWith("/messages")?a:`${a}/messages`}case"heroku":case"databricks":case"snowflake":case"gigachat":return void this.resolveBaseUrl(d);case"datarobot":{let a;var e,f,h,i=this.resolveBaseUrl(d);return(a=(0,s.q)(i||v)||v).endsWith("/chat/completions")?a:/\/api\/v2\/deployments\/[^/]+$/i.test(a)?`${a}/chat/completions`:/\/api\/v2\/genai\/llmgw$/i.test(a)?`${a}/chat/completions/`:/\/api\/v2\/genai\/llmgw\/chat$/i.test(a)?`${a}/completions/`:a.includes(t)?`${a}${u}`:`${a}${t}${u}`}case"azure-ai":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){let c=function(a){let b=(0,s.q)(a||w);if(!b)return w;if(b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/models"))return b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(b.endsWith("/openai/v1")||b.endsWith("/v1"))return b;if(b.endsWith("/openai"))return`${b}/v1`;let c=new URL(b);return(c.hostname.endsWith(".services.ai.azure.com")||c.hostname.endsWith(".openai.azure.com"))&&(!c.pathname||"/"===c.pathname)?(c.pathname="/openai/v1",(0,s.o)(c.toString())):b}(a);return`${c}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"watsonx":return e=this.resolveBaseUrl(d),`${function(a){let b=(0,s.q)(a||x);if(!b)return x;let c=b.replace(/\/(?:chat\/completions|completions|embeddings|models)$/i,"");if(c.endsWith("/ml/gateway/v1"))return c;if(c.endsWith("/ml/gateway"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/ml/gateway")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/ml/gateway/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(e)}/chat/completions`;case"oci":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){return`${function(a){let b=(0,s.q)(a||y);if(!b)return y;let c=b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(c.endsWith("/openai/v1"))return c;if(c.endsWith("/openai"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/openai")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/openai/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(a)}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"sap":{let a;return(a=function(a){let b=(0,s.q)(a||z);if(!b)return z;var c=b.replace(/\/chat\/completions$/i,"");try{let a=new URL(c);return a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(this.resolveBaseUrl(d))).endsWith("/chat/completions")?a:`${a}/chat/completions`}case"xiaomi-mimo":{let a;return f=this.resolveBaseUrl(d),a=(0,s.q)(f).replace(/\/chat\/completions$/,""),`${a}/chat/completions`}case"maritalk":{let a=this.resolveBaseUrl(d);return(0,A.$D)(a)}case"siliconflow":return H(this.resolveBaseUrl(d));case"ollama-local":case"llama-cpp":case"lm-studio":case"modal":case"reka":case"vllm":case"lemonade":case"llamafile":case"triton":case"docker-model-runner":case"xinference":case"oobabooga":{let a=B.HP[this.provider]?.localDefault;return H(d?.providerSpecificData?.baseUrl||a||this.config.baseUrl)}case"zai":case"glm-coding-apikey":{let a=this.resolveBaseUrl(d);return`${a}?beta=true`}case"claude":case"glm":case"glmt":case"kimi-coding":case"minimax":case"minimax-cn":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;case"qwen":{let a=d?.providerSpecificData?.resourceUrl;return`https://${a||"portal.qwen.ai"}/v1/chat/completions`}default:{let a="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,b=!this.config.format||"openai"===this.config.format;if(a&&b)return H(a);let c=this.config.baseUrl,e=(0,l.qs)(this.provider);return e?.urlSuffix?`${c}${e.urlSuffix}`:c}}}buildHeaders(a,b=!0,c){let{headers:d,effectiveKey:e}=this.buildHeadersPreamble(a,b);switch(this.provider){case"gemini":e?d["x-goog-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"snowflake":{let b=e||a.accessToken||"",c=b.startsWith("pat/");d.Authorization=`Bearer ${c?b.slice(4):b}`,d["X-Snowflake-Authorization-Token-Type"]=c?"PROGRAMMATIC_ACCESS_TOKEN":"KEYPAIR_JWT";break}case"gigachat":d.Authorization=`Bearer ${a.accessToken||e}`;break;case"clarifai":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"azure-ai":(e||a.accessToken)&&(d["api-key"]=e||a.accessToken),delete d.Authorization;break;case"oci":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`);let c=a.projectId||a?.providerSpecificData?.projectId||a?.providerSpecificData?.project;c&&(d["OpenAI-Project"]=c);break}case"sap":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`),d["AI-Resource-Group"]=function(a,b="default"){for(let b of[a?.resourceGroup,a?.aiResourceGroup,a?.resource_group])if("string"==typeof b&&b.trim())return b.trim();return b}(a?.providerSpecificData);break}case"reka":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`,d["X-Api-Key"]=b);break}case"maritalk":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"claude":case"anthropic":e?d["x-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"glm":case"glmt":case"kimi-coding":case"bailian-coding-plan":case"kimi-coding-apikey":case"zai":case"glm-coding-apikey":d["x-api-key"]=e||a.accessToken;break;case"cline":Object.assign(d,(0,E.w$)(e||a.accessToken));break;default:if((0,q.GK)(this.provider)){let c=(0,D.RG)(a?.providerSpecificData),d=(0,g.mu)(e||a.accessToken||"",b,a?.providerSpecificData?.ccSessionId,{redactThinking:!0===c.redactThinking});return G(d,a.providerSpecificData?.customHeaders),d}if(this.provider?.startsWith?.("anthropic-compatible-"))e?d["x-api-key"]=e:a.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`),e&&!d.Authorization&&!function(a){if(!a)return!0;let b=null;try{b=new URL(a).hostname}catch{try{b=new URL(`https://${a}`).hostname}catch{return!1}}return"api.anthropic.com"===b}(a?.providerSpecificData?.baseUrl||"")&&(d.Authorization=`Bearer ${e}`),Object.keys(d).some(a=>"anthropic-version"===a.toLowerCase())||(d["anthropic-version"]="2023-06-01");else{let b=(0,l.qs)(this.provider),c=b?.authHeader||"bearer",f=e||a.accessToken||b?.anonymousApiKey;f&&("x-api-key"===c?d["x-api-key"]=f:"x-goog-api-key"===c?d["x-goog-api-key"]=f:d.Authorization=`Bearer ${f}`)}}if(d.Accept=b?"text/event-stream":"application/json","qwen"===this.provider&&e)for(let a of Object.keys(d))a.toLowerCase().startsWith("x-dashscope-")&&delete d[a];if((this.provider?.startsWith?.("openai-compatible-")||this.provider?.startsWith?.("anthropic-compatible-"))&&G(d,a.providerSpecificData?.customHeaders),c){(0,F.Gz)(d,c);let a=c["anthropic-beta"]??c["Anthropic-Beta"]??null,b=Object.keys(d).find(a=>"anthropic-beta"===a.toLowerCase());b&&a&&(d[b]=(0,n.S9)(d[b],a))}return(0,n.Xs)(d),d}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-")||!a||"object"!=typeof a||Array.isArray(a))return a;let b=a.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
357
357
  \`\`\`json
358
358
  ${c}
359
359
  \`\`\`