9router-proxy 0.6.20 → 0.6.21

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 (601) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +18 -18
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +4 -4
  5. package/app/.next-cli-build/react-loadable-manifest.json +7 -7
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +6 -6
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +5 -5
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  78. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  83. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  85. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  86. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  87. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  88. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  89. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  90. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  91. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  108. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  110. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  113. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  121. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  125. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  129. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  133. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  146. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/providers/web-login/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  275. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  289. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +3 -3
  318. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  359. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  361. package/app/.next-cli-build/server/app/callback.html +1 -1
  362. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  363. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  364. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  365. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  366. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +4 -4
  368. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +4 -4
  369. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +4 -4
  370. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  371. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  373. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
  374. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  375. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  376. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/combos.rsc +4 -4
  378. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
  379. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  380. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  381. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  383. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +5 -5
  384. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  385. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  386. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  387. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +4 -4
  388. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +4 -4
  389. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +4 -4
  390. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  391. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  393. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +5 -5
  394. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  395. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  396. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  397. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  398. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
  399. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  400. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +4 -4
  403. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
  404. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  405. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  406. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  407. package/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
  408. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  409. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  410. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +4 -4
  413. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
  414. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +4 -4
  415. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  416. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  417. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  418. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +5 -5
  419. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  420. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/quota.rsc +4 -4
  423. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  424. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
  425. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  426. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  427. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  430. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  431. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  432. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  433. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  434. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  435. package/app/.next-cli-build/server/app/dashboard/skills.rsc +4 -4
  436. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +4 -4
  437. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +4 -4
  438. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  439. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  440. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +4 -4
  441. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +4 -4
  442. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +4 -4
  443. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  445. package/app/.next-cli-build/server/app/dashboard/translator.rsc +4 -4
  446. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
  447. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  448. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  449. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/usage.rsc +4 -4
  451. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
  452. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  453. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  454. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  455. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  456. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +5 -5
  457. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  458. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  459. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/index.html +1 -1
  461. package/app/.next-cli-build/server/app/index.rsc +4 -4
  462. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  463. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  464. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  466. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  467. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  468. package/app/.next-cli-build/server/app/landing.html +1 -1
  469. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  470. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  471. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  472. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  473. package/app/.next-cli-build/server/app/login/page.js +1 -1
  474. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  475. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  476. package/app/.next-cli-build/server/app/login.html +1 -1
  477. package/app/.next-cli-build/server/app/login.rsc +4 -4
  478. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  479. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  480. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  481. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/page.js +1 -1
  483. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  484. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  485. package/app/.next-cli-build/server/app-paths-manifest.json +18 -18
  486. package/app/.next-cli-build/server/chunks/1260.js +1 -1
  487. package/app/.next-cli-build/server/chunks/1329.js +1 -1
  488. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  489. package/app/.next-cli-build/server/chunks/1356.js +1 -1
  490. package/app/.next-cli-build/server/chunks/1679.js +1 -1
  491. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  492. package/app/.next-cli-build/server/chunks/21.js +1 -1
  493. package/app/.next-cli-build/server/chunks/2327.js +1 -1
  494. package/app/.next-cli-build/server/chunks/2380.js +29 -0
  495. package/app/.next-cli-build/server/chunks/24.js +1 -1
  496. package/app/.next-cli-build/server/chunks/2822.js +1 -0
  497. package/app/.next-cli-build/server/chunks/3726.js +1 -1
  498. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  499. package/app/.next-cli-build/server/chunks/412.js +1 -1
  500. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  501. package/app/.next-cli-build/server/chunks/4279.js +1 -1
  502. package/app/.next-cli-build/server/chunks/4882.js +1 -1
  503. package/app/.next-cli-build/server/chunks/4956.js +1 -1
  504. package/app/.next-cli-build/server/chunks/4957.js +1 -1
  505. package/app/.next-cli-build/server/chunks/5026.js +1 -1
  506. package/app/.next-cli-build/server/chunks/5081.js +3 -6
  507. package/app/.next-cli-build/server/chunks/5299.js +3 -3
  508. package/app/.next-cli-build/server/chunks/5330.js +8 -8
  509. package/app/.next-cli-build/server/chunks/5615.js +2 -2
  510. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  511. package/app/.next-cli-build/server/chunks/615.js +1 -1
  512. package/app/.next-cli-build/server/chunks/6171.js +1 -1
  513. package/app/.next-cli-build/server/chunks/6638.js +1 -1
  514. package/app/.next-cli-build/server/chunks/6763.js +1 -1
  515. package/app/.next-cli-build/server/chunks/6921.js +15 -11
  516. package/app/.next-cli-build/server/chunks/6983.js +1 -1
  517. package/app/.next-cli-build/server/chunks/7187.js +1 -1
  518. package/app/.next-cli-build/server/chunks/7220.js +1 -1
  519. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  520. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  521. package/app/.next-cli-build/server/chunks/778.js +1 -1
  522. package/app/.next-cli-build/server/chunks/7843.js +1 -1
  523. package/app/.next-cli-build/server/chunks/794.js +1 -1
  524. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  525. package/app/.next-cli-build/server/chunks/8251.js +1 -1
  526. package/app/.next-cli-build/server/chunks/8271.js +1 -1
  527. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  528. package/app/.next-cli-build/server/chunks/8623.js +1 -1
  529. package/app/.next-cli-build/server/chunks/8895.js +4 -4
  530. package/app/.next-cli-build/server/chunks/8920.js +1 -1
  531. package/app/.next-cli-build/server/chunks/9287.js +1 -0
  532. package/app/.next-cli-build/server/chunks/9289.js +1 -0
  533. package/app/.next-cli-build/server/instrumentation.js +1 -1
  534. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  535. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  536. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  537. package/app/.next-cli-build/server/middleware.js +1 -1
  538. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  539. package/app/.next-cli-build/server/pages/404.html +1 -1
  540. package/app/.next-cli-build/server/pages/500.html +1 -1
  541. package/app/.next-cli-build/server/preview-props.json +3 -3
  542. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  543. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  544. package/app/.next-cli-build/static/chunks/1321-fe52dc90990db91b.js +1 -0
  545. package/app/.next-cli-build/static/chunks/4285-8e8fd1dc26ade67d.js +1 -0
  546. package/app/.next-cli-build/static/chunks/{5497-11663c3e80a3cf5a.js → 5497-abf32427a085ebfc.js} +2 -2
  547. package/app/.next-cli-build/static/chunks/{761-c9086970fe03f4a1.js → 761-53a017633cce939e.js} +3 -3
  548. package/app/.next-cli-build/static/chunks/9233.e1c3403556983abd.js +69 -0
  549. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-48ac55fc1ff50baa.js +69 -0
  550. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-3c63a3db19c1a67b.js +27 -0
  551. package/app/.next-cli-build/static/chunks/{webpack-6463d5fe66fbfc78.js → webpack-d230ecbd7bd706e6.js} +1 -1
  552. package/app/.next-cli-build/static/css/b58b1123edb3578f.css +1 -0
  553. package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +26 -13
  554. package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +6 -3
  555. package/app/node_modules/@aws-sdk/core/package.json +3 -3
  556. package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +3 -3
  557. package/app/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  558. package/app/node_modules/@aws-sdk/credential-provider-http/package.json +4 -4
  559. package/app/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
  560. package/app/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
  561. package/app/node_modules/@aws-sdk/credential-provider-node/package.json +8 -8
  562. package/app/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  563. package/app/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  564. package/app/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
  565. package/app/node_modules/@aws-sdk/credential-providers/package.json +13 -13
  566. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  567. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  568. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  569. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  570. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  571. package/app/node_modules/@aws-sdk/nested-clients/package.json +5 -5
  572. package/app/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -1
  573. package/app/node_modules/@aws-sdk/token-providers/package.json +4 -4
  574. package/app/node_modules/@aws-sdk/xml-builder/package.json +1 -1
  575. package/app/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +13 -37
  576. package/app/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +44 -29
  577. package/app/node_modules/@smithy/core/package.json +1 -1
  578. package/app/node_modules/@smithy/node-http-handler/dist-cjs/index.js +48 -6
  579. package/app/node_modules/@smithy/node-http-handler/package.json +3 -3
  580. package/app/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  581. package/app/node_modules/baseline-browser-mapping/package.json +1 -1
  582. package/app/node_modules/bowser/es5.js +14 -1
  583. package/app/node_modules/bowser/package.json +90 -31
  584. package/app/open-sse/lib/deepseek-pow-hash.js +114 -428
  585. package/app/package.json +1 -1
  586. package/app/public/providers/nace.png +0 -0
  587. package/app/src/mitm/server.js +38 -34
  588. package/package.json +1 -1
  589. package/app/.next-cli-build/server/chunks/4125.js +0 -1
  590. package/app/.next-cli-build/server/chunks/5840.js +0 -1
  591. package/app/.next-cli-build/server/chunks/6140.js +0 -1
  592. package/app/.next-cli-build/server/chunks/7732.js +0 -1
  593. package/app/.next-cli-build/server/chunks/8499.js +0 -23
  594. package/app/.next-cli-build/static/chunks/1321-f1044c59f74c5c43.js +0 -1
  595. package/app/.next-cli-build/static/chunks/4285-e97c3151f30199d8.js +0 -1
  596. package/app/.next-cli-build/static/chunks/9233.b5ad25d75f88baa7.js +0 -65
  597. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-d61866af0fa7b54f.js +0 -69
  598. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-44c9bfdcf25db09b.js +0 -27
  599. package/app/.next-cli-build/static/css/0a4c443a8a7225f7.css +0 -1
  600. /package/app/.next-cli-build/static/{v7yLnba4QKBiWq3TUKqvg → i1Kua3lBkcnBzhQ70lbQO}/_buildManifest.js +0 -0
  601. /package/app/.next-cli-build/static/{v7yLnba4QKBiWq3TUKqvg → i1Kua3lBkcnBzhQ70lbQO}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5330,exports.ids=[5330],exports.modules={4052:(a,b,c)=>{c.d(b,{BE:()=>f,KI:()=>h,Mt:()=>g});var d=c(73024),e=c(76760);function f(a){if(!a)return!1;let b=a.toLowerCase();return b.includes("executable doesn't exist")||b.includes("executablenotfound")||b.includes("playwright install")||b.includes("chromium")&&b.includes("download")}function g(){let a=process.env;return[a.NINEROUTER_BROWSER_BIN,a.CHROME_PATH,"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser",...a.PROGRAMFILES?[(0,e.join)(a.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...a["PROGRAMFILES(X86)"]?[(0,e.join)(a["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...a.LOCALAPPDATA?[(0,e.join)(a.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,d.existsSync)(a.trim())))||null}async function h(a,b={}){let c=b.executablePath;if(!c)return a.launch(b);try{return await a.launch(b)}catch(f){console.warn(`[browser] ${c} failed to launch (${f?.message||f}) — retrying with Playwright's Chromium`);let{executablePath:d,...e}=b;return a.launch(e)}}},4493:(a,b,c)=>{c.d(b,{j9:()=>F});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643),h=c(57247),i=c(41004),j=c(72239),k=c(14170),l=c(86724),m=c(80662),n=c(60210),o=c(37981),p=c(80614);let q="x-opencode-session",r="_opencodeSession",s=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=0,v=0,w=(1n<<48n)-1n,x=(1n<<36n)-1n;function y(a,b){return(~(4096n*BigInt(a)+BigInt(b))&w).toString(16).padStart(12,"0")}function z(a,b=""){if("string"==typeof a&&s.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=y(BigInt(`0x${c.subarray(0,5).toString("hex")}`)&x,1),f="";for(let a=6;a<20;a++)f+=t[c[a]%62];return`ses_${d}${f}`}function A(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let B=new Map,C=setInterval(()=>{let a=Date.now();for(let[b,c]of B)a-c.lastUsed>i.v1.sessionTtlMs&&B.delete(b)},i.v1.sessionCleanupIntervalMs);function D(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function E(a){let b=h.Xg.opencode||"opencode";return(0,h.ux)(b,D(a))===k.h.OPENAI_RESPONSES}C.unref&&C.unref();class F extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===q){let a=A(c);if(a&&s.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===q){h=A(b);break}let i=h||A(c);if(i)return z(i,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,m.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return z(c,d)}let j=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),k=B.get(j);if(k)return k.lastUsed=Date.now(),B.delete(j),B.set(j,k),k.sessionId;let l=function(a=Date.now()){return a!==u&&(u=a,v=0),v++,`ses_${y(a,v)}${function(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=t[a[c]%62];return b}()}`}();return B.size>=1e3&&B.delete(B.keys().next().value),B.set(j,{sessionId:l,lastUsed:Date.now()}),l}(a,f,c,d);return{...f,[r]:g}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),E(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(D(a))&&(b.tool_choice="auto");let c=(0,o.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=D(a||b.model),g=(0,j.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,o.N8)(a.call_id),a.arguments=(0,o.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,o.N8)(a.call_id),a.output=(0,o.DP)(a.output)),!0)))),(0,n.Ke)(b,!0)}else b&&"object"==typeof b&&(b?.reasoning_effort==="auto"&&delete b.reasoning_effort,(0,n.Ke)(b,!1));return(0,l.Z)({provider:this.provider,model:a,body:b})}async execute(a){return await (0,p.Rm)()?(0,p.nY)(a):super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return E(a)?`${b}/inference/v1/responses`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0){let c,d=a?.rawHeaders||{},e={};for(let[a,b]of Object.entries(d))e[a.toLowerCase()]=b;let f=e["user-agent"]||"",g=!!(c=String(f||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(c[1],10)>=2,h=a?.[r]||this.prepareRequestCredentials({credentials:a})[r];return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":g?f:"opencode/latest/2.0.26/cli","x-opencode-client":e["x-opencode-client"]||"cli","x-opencode-session":h,"x-opencode-session-id":h,"x-session-affinity":h,"x-session-id":h,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"}}}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(12643);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>t});var d=c(74957),e=c(12643),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(88499),k=c(14170),l=c(9024),m=c(39609),n=c(49426),o=c(74379),p=c(78959),q=c(74129),r=c(55511),s=c.n(r);class t extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":s().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":q.b8,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,o.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async postWithHeaderTimeout(a,b,c,d,e){let f=(0,n.n)(d,this.config?.timeoutMs||g.Z1);try{return await (0,m.proxyAwareFetch)(a,{method:"POST",headers:b,body:JSON.stringify(c),signal:f.signal},e)}catch(a){throw f.settleError(a)}finally{f.clear()}}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,m=this.buildHeaders(d,c),n=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let o=await this.postWithHeaderTimeout(k,m,n,e,g);if(!o.ok)return{response:o,url:k,headers:m,transformedBody:n};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}let f=(0,i.v)(e,q);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());if(b&&!b.done){let c=(0,i.v)(b,q);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return o.body?{response:new Response(o.body.pipeThrough(t),{status:o.status,statusText:o.statusText,headers:o.headers}),url:k,headers:m,transformedBody:n}:{response:new Response("",{status:o.status,headers:o.headers}),url:k,headers:m,transformedBody:n}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),m=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),n=m._toolNameMap;delete m._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await this.postWithHeaderTimeout(h,i,m,e,g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:m};let q=(0,j.Ws)(k.h.CLAUDE);q.model=a,n&&(q.toolNameMap=n);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}t(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,q))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());b&&!b.done&&t(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,q))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:m}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:m}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,m.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},12009:(a,b,c)=>{function d(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function e(a,b,c,e){let f,g;if(b?.aborted)throw d(b.reason);let h=new Promise((a,b)=>{f=setTimeout(()=>b(Error(e)),c)}),i=new Promise((a,c)=>{g=()=>c(d(b.reason)),b?.addEventListener("abort",g,{once:!0})});try{return await Promise.race([a.read(),h,i])}finally{clearTimeout(f),b?.removeEventListener?.("abort",g)}}c.d(b,{S:()=>e,z:()=>d})},12132:(a,b,c)=>{c.r(b),c.d(b,{MIMO_API_BASE:()=>D,MIMO_API_UA:()=>E,getMimoAccountCookie:()=>F,getMimoAccountUsage:()=>G,invalidateMimoAccountCookieCache:()=>C,readDesktopPassToken:()=>v,resolveMimoServerBase:()=>y});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n=m.sgp,o={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"},p="account.xiaomi.com",q="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",r="MiClaw/1.0",s=new Map,t=new Map;async function u(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,79868,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+p);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function v(){try{let a=await u();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function w(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function x(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}function y(a=null){return m[String(a?.region||"").toLowerCase()]||n}async function z(a,b,c=n,d="sgp"){let e=String(d||"").toLowerCase(),f=o[String(e||"").toLowerCase()]||o.sgp,g=await A(a,"cn"===e?null:b,c,f);return g&&console.log(`[mimoAccount] desktop 2-phase OK (sid=${f})`),g}async function A(a,b,c,d){var e,f;let g,h=a=>console.log(`[mimoAccount] desktopPhase fail: ${a}`),i={...a},j={};i.userId&&(j.userId=i.userId),i.passToken&&(j.passToken=i.passToken),i.cUserId&&(j.cUserId=i.cUserId);let m=`https://${p}/pass/serviceLogin?_locale=zh_CN&_snsNone=true&sid=${encodeURIComponent(d)}&_json=true`,n=await (0,l.proxyAwareFetch)(m,{headers:{Cookie:x(j),"User-Agent":r,Accept:"application/json"}},b),o=await n.text(),q=o.replace(/^&&&START&&&/,""),s=q.match(/"nonce"\s*:\s*(\d+)/)?.[1],t=null;try{t=JSON.parse(q)}catch{}if(s&&t&&(t.nonce=s),!t||"number"!=typeof t.code||0!==t.code||!t.location||!t.nonce||!t.ssecurity)return h(`phase1 sid=${d} http=${n.status} code=${t?.code??"?"} hasLoc=${!!t?.location} secondValidation=${t?.bSecondValidation??"?"} notificationUrl=${t?.notificationUrl?"present":"no"} body=${JSON.stringify(o.slice(0,200))}`),null;w(i,n);let u=t.location.includes("?")?"&":"?",v=`${t.location}${u}clientSign=${(e=s||t.nonce,g=`nonce=${e}`+((f=t.ssecurity)&&f.trim()?`&${f}`:""),encodeURIComponent(k().createHash("sha1").update(g).digest("base64")))}`;for(let a=0;a<8;a++){let a=await (0,l.proxyAwareFetch)(v,{redirect:"manual",headers:{"User-Agent":r}},b);w(i,a);let c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){v=new URL(c,v).toString();continue}break}let y=`${d}_serviceToken`;if(!i.serviceToken&&i[y]&&(i.serviceToken=i[y]),!i.serviceToken)return h(`phase2 no serviceToken sid=${d} jar=[${Object.keys(i).join(",")}]`),null;let z={};for(let[a,b]of Object.entries(i))b&&("serviceToken"===a||"userId"===a||/_(ph|slh)$/.test(a))&&(z[a]=b);return x(z)}async function B(a,b){let c=y(a),d=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await u();if(!d)return{cookie:null,reason:"no-pass-token"};let e=k().createHash("sha256").update(`${c}|${d.passToken}`).digest("hex"),f=s.get(e);if(f&&Date.now()-f.at<18e5)return{cookie:f.cookie};let g=t.get(e);if(g){let a=await g;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let h=(async()=>{try{return await z(d,b,c,a?.region)}catch(a){return console.log(`[mimoAccount] acquire threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}finally{t.delete(e)}})();t.set(e,h);let i=await h;return i?(s.set(e,{cookie:i,at:Date.now()}),{cookie:i}):{cookie:null,reason:"sso-failed"}}function C(){s.clear()}let D=n,E=q;async function F(a=null,b=null){try{let{cookie:c}=await B(a,b);return c}catch(a){return console.log(`[mimoAccount] getMimoAccountCookie threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}}async function G(a=null,b=null){let{cookie:c,reason:d}=await B(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${y(a)}/api/user/usage`,{headers:{"User-Agent":q,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(57247),i=c(14170),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){return(0,h.ux)("opencode-go",a)===i.h.OPENAI_RESPONSES}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},14229:(a,b,c)=>{function d(a){return new RegExp(a.source,a.flags.includes("g")?a.flags:`${a.flags}g`)}function e(a,b,c){let e=d(b),f=d(c),g=[],h=0;for(;;){e.lastIndex=h;let b=e.exec(a);if(!b)break;let c=b.index+b[0].length;f.lastIndex=c;let d=f.exec(a);if(!d)break;let i=d.index+d[0].length;g.push({start:b.index,end:i,inner:a.slice(c,d.index)}),h=i}return g}c.d(b,{mU:()=>v,x2:()=>n,OA:()=>l,n:()=>q,uQ:()=>t,S$:()=>u,Ub:()=>p,LW:()=>r,r3:()=>s});let f=/<tool>/g,g=/<\/tool>/g,h=/<tool_call(?:\s[^<>]*)?>/g,i=/<\/tool_call>/g,j=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,k=new WeakMap;function l(a){if(!Array.isArray(a)||0===a.length)return"";let b=k.get(a);return b||(b=Math.random().toString(36).slice(2,10),k.set(a,b)),b}function m(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function n(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){let a=m(d),e=m(a?.function),f="string"==typeof e?.name?e.name.trim():"";!f||c.has(f)||(c.add(f),b.push({original:f,normalized:o(f)}))}return b}function o(a){return a.toLowerCase().replace(/[^a-z0-9]/g,"")}function p(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=o(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 q(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 m(JSON.parse(a))}catch{}return null}function r(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 s(a){if(void 0===a)return"{}";if("string"==typeof a){let b=q(a);return b?JSON.stringify(b):a}try{return JSON.stringify(a)}catch{return"{}"}}function t(a,b="call",c){let d="string"==typeof a?(j.lastIndex=0,a.replace(j,(a,b,c,d)=>{let e={},f=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,g=null;for(;null!==(g=f.exec(d));){let a=g[2].trim();try{e[g[1]]=JSON.parse(a)}catch{e[g[1]]=a}}if(0===Object.keys(e).length)try{let a=JSON.parse(d.trim()||"{}");a&&"object"==typeof a&&!Array.isArray(a)&&Object.assign(e,a)}catch{}return`<tool>{"name":${JSON.stringify(c)},"arguments":${JSON.stringify(e)}}</tool>`}).replace(/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,"")):a,k=n(c);if("string"!=typeof d||!d.includes("<tool>")&&!d.includes("<tool_call"))return{content:a??"",toolCalls:null};let m=l(c),o=[];for(let a of[...e(d,f,g),...e(d,h,i)])o.push({raw:a.inner.trim(),start:a.start,end:a.end,requireRequestedTool:!1});o.sort((a,b)=>a.start-b.start);let u=[],v=[];for(let a of o){let c=q(a.raw),d=c&&"string"==typeof c.name?c.name:c&&"string"==typeof c.command?c.command:null;if(!d||m&&c&&void 0!==c._nonce&&c._nonce!==m)continue;let e=p(d,k)||(a.requireRequestedTool?null:d);if(!e||a.requireRequestedTool&&0===k.length)continue;let f=s(c?.arguments);u.push({id:`${b}_${u.length}`,type:"function",function:{name:e,arguments:f}}),v.push({start:a.start,end:a.end})}return 0===u.length?{content:a,toolCalls:null}:{content:r(d,v),toolCalls:u}}function u(a,b){let c,d=a.tools;if(!(Array.isArray(d)&&d.length>0))return{hasTools:!1,requestedTools:d,effectiveMessages:b};let e=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=l(a);if(!b)return"";let c=[];for(let b of a){let a=b?.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=""}c.push(`- ${a.name}${d?`: ${d}`:""}${e?`
1
+ "use strict";exports.id=5330,exports.ids=[5330],exports.modules={4052:(a,b,c)=>{c.d(b,{BE:()=>f,KI:()=>h,Mt:()=>g});var d=c(73024),e=c(76760);function f(a){if(!a)return!1;let b=a.toLowerCase();return b.includes("executable doesn't exist")||b.includes("executablenotfound")||b.includes("playwright install")||b.includes("chromium")&&b.includes("download")}function g(){let a=process.env;return[a.NINEROUTER_BROWSER_BIN,a.CHROME_PATH,"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser",...a.PROGRAMFILES?[(0,e.join)(a.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...a["PROGRAMFILES(X86)"]?[(0,e.join)(a["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...a.LOCALAPPDATA?[(0,e.join)(a.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,d.existsSync)(a.trim())))||null}async function h(a,b={}){let c=b.executablePath;if(!c)return a.launch(b);try{return await a.launch(b)}catch(f){console.warn(`[browser] ${c} failed to launch (${f?.message||f}) — retrying with Playwright's Chromium`);let{executablePath:d,...e}=b;return a.launch(e)}}},4338:(a,b,c)=>{c.d(b,{C2:()=>z,Dg:()=>q,G2:()=>y,S1:()=>s,oy:()=>t,u_:()=>C,xK:()=>r,zC:()=>D});var d=c(77030),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j),l=c(77598),m=c.n(l);let n="mcode-auth-lease-v1.cap",o=k().join(i().homedir(),".minimax"),p=Object.freeze({AUTH_REQUIRED:"Desktop authentication is required.",BROKER_UNAVAILABLE:"Desktop authentication integration is unavailable.",CAPABILITY_REJECTED:"Desktop authentication capability was rejected.",PROTOCOL_MISMATCH:"Desktop authentication protocol is incompatible.",INVALID_REQUEST:"Desktop authentication request is invalid.",INTERNAL_ERROR:"Desktop authentication request failed."});class q extends Error{constructor(a,b,c){super(b??p[a]??"auth lease failed"),this.name="AuthLeaseError",this.code=a,c&&(this.cause=c)}}function r(a){return a?.authType==="mcode-lease"}function s(a){let b=a?.providerSpecificData?.mcodeDataDir;if("string"==typeof b&&b.trim())return k().resolve(b.trim());let c=process.env.MINIMAX_DESKTOP_DATA_DIR;return"string"==typeof c&&c.trim()?k().resolve(c.trim()):o}function t(a,b=process.platform){if("win32"===b){if(!k().win32.isAbsolute(a))throw new q("INVALID_REQUEST","dataDir must be an absolute path on Windows.");let b=k().win32.normalize(a).replace(/[\\/]+$/u,""),c=m().createHash("sha256").update(b.toLowerCase()).digest("hex").slice(0,16);return{transport:"pipe",endpoint:`\\\\.\\pipe\\mcode-auth-lease-${c}`,capabilityFile:k().win32.join(b,"run",n)}}if(!k().isAbsolute(a))throw new q("INVALID_REQUEST","dataDir must be an absolute path.");let c=k().normalize(a).replace(/[\\/]+$/u,"");return{transport:"unix",endpoint:k().join(c,"run","mcode-auth-lease-v1.sock"),capabilityFile:k().join(c,"run",n)}}function u(a){let b,{capabilityFile:c}=t(a);try{b=g().readFileSync(c,"utf8").trim()}catch(a){throw new q("BROKER_UNAVAILABLE",`Cannot read capability file ${c}. Is the MiniMax Code desktop app installed and logged in on this machine? (${a?.code??a?.message})`)}if(!/^[A-Za-z0-9_-]{43}$/u.test(b))throw new q("BROKER_UNAVAILABLE","Capability file has unexpected content.");return b}class v{constructor(){this.buffer=Buffer.alloc(0)}push(a){this.buffer=Buffer.concat([this.buffer,Buffer.from(a)]);let b=[];for(;this.buffer.length>=4;){let a=this.buffer.readUInt32BE(0);if(0===a||a>65536)throw new q("PROTOCOL_MISMATCH","Broker sent an invalid frame length.");let c=4+a;if(this.buffer.length<c)break;let d=this.buffer.subarray(4,c);this.buffer=this.buffer.subarray(c);try{b.push(JSON.parse(d.toString("utf8")))}catch{throw new q("PROTOCOL_MISMATCH","Broker sent a non-JSON frame.")}}return b}}function w(a){if(a&&!0===a.ok)return a;throw new q(a&&!1===a.ok&&a.error&&p[a.error.code]?a.error.code:"INTERNAL_ERROR")}function x(a,b,c){return new Promise((d,f)=>{let g=e().connect(a.endpoint),h=new v,i=!1,j=(a,b)=>{i||(i=!0,clearTimeout(k),g.destroy(),a?f(a):d(b))},k=setTimeout(()=>{j(new q("BROKER_UNAVAILABLE",`Broker did not respond within ${c}ms.`))},c);g.on("connect",()=>{g.write(function(a){let b=Buffer.from(JSON.stringify(a),"utf8");if(0===b.length||b.length>65536)throw new q("INVALID_REQUEST","Frame payload out of bounds.");let c=Buffer.alloc(4);return c.writeUInt32BE(b.length,0),Buffer.concat([c,b])}(b))}),g.on("data",a=>{try{let b=h.push(a);b.length>0&&j(void 0,b[0])}catch(a){j(a)}}),g.on("error",b=>{j(new q("BROKER_UNAVAILABLE",`Cannot reach auth broker at ${a.endpoint}: ${b.message}. Is the MiniMax Code desktop app running?`))}),g.on("close",()=>{j(new q("BROKER_UNAVAILABLE","Broker closed the connection early."))})})}async function y(a,b=5e3){let c=t(a),d=u(a),e=w(await x(c,{version:1,requestId:`9r-status-${Date.now().toString(36)}`,capability:d,method:"status"},b)).result;return{status:e.status,generation:e.generation,expiresAtMs:e.expiresAtMs}}async function z(a,b=3e5,c=1e4){let d=t(a),e=u(a),f=Math.max(0,Math.min(Math.floor(b),3e5)),g=w(await x(d,{version:1,requestId:`9r-lease-${Date.now().toString(36)}`,capability:e,method:"lease",minValidityMs:f},c)).result;return{accessToken:g.accessToken,expiresAtMs:g.expiresAtMs,generation:g.generation}}let A=new Map;function B(a,b){let c=A.get(a);return c||(c=function({requestLease:a,log:b}={}){let c=a||z;return{cached:null,inflight:null,async getToken(a){let d=Date.now();return this.cached&&this.cached.expiresAtMs-d>6e4?this.cached:(this.inflight||(this.inflight=c(a,3e5).then(a=>(this.cached=a,b?.debug?.("MCODE_LEASE",`leased access token (generation ${a.generation}, expires in ${Math.max(0,Math.round((a.expiresAtMs-d)/1e3))}s)`),a)).finally(()=>{this.inflight=null})),this.inflight)},invalidate(a){this.cached&&(b?.debug?.("MCODE_LEASE",`invalidating leased token: ${a}`),this.cached=null)}}}({log:b}),A.set(a,c)),c}async function C(a,b){let c=s(a);return B(c,b).getToken(c)}function D(a,b,c){B(s(a),c).invalidate(b)}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(12643);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>t});var d=c(74957),e=c(12643),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(59999),k=c(14170),l=c(9024),m=c(39609),n=c(49426),o=c(74379),p=c(78959),q=c(74129),r=c(55511),s=c.n(r);class t extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":s().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":q.b8,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,o.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async postWithHeaderTimeout(a,b,c,d,e){let f=(0,n.n)(d,this.config?.timeoutMs||g.Z1);try{return await (0,m.proxyAwareFetch)(a,{method:"POST",headers:b,body:JSON.stringify(c),signal:f.signal},e)}catch(a){throw f.settleError(a)}finally{f.clear()}}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,m=this.buildHeaders(d,c),n=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let o=await this.postWithHeaderTimeout(k,m,n,e,g);if(!o.ok)return{response:o,url:k,headers:m,transformedBody:n};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}let f=(0,i.v)(e,q);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());if(b&&!b.done){let c=(0,i.v)(b,q);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return o.body?{response:new Response(o.body.pipeThrough(t),{status:o.status,statusText:o.statusText,headers:o.headers}),url:k,headers:m,transformedBody:n}:{response:new Response("",{status:o.status,headers:o.headers}),url:k,headers:m,transformedBody:n}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),m=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),n=m._toolNameMap;delete m._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await this.postWithHeaderTimeout(h,i,m,e,g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:m};let q=(0,j.Ws)(k.h.CLAUDE);q.model=a,n&&(q.toolNameMap=n);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}t(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,q))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());b&&!b.done&&t(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,q))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:m}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:m}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,m.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},12009:(a,b,c)=>{function d(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function e(a,b,c,e){let f,g;if(b?.aborted)throw d(b.reason);let h=new Promise((a,b)=>{f=setTimeout(()=>b(Error(e)),c)}),i=new Promise((a,c)=>{g=()=>c(d(b.reason)),b?.addEventListener("abort",g,{once:!0})});try{return await Promise.race([a.read(),h,i])}finally{clearTimeout(f),b?.removeEventListener?.("abort",g)}}c.d(b,{S:()=>e,z:()=>d})},12132:(a,b,c)=>{c.r(b),c.d(b,{MIMO_API_BASE:()=>D,MIMO_API_UA:()=>E,getMimoAccountCookie:()=>F,getMimoAccountUsage:()=>G,invalidateMimoAccountCookieCache:()=>C,readDesktopPassToken:()=>v,resolveMimoServerBase:()=>y});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n=m.sgp,o={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"},p="account.xiaomi.com",q="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",r="MiClaw/1.0",s=new Map,t=new Map;async function u(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,79868,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+p);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function v(){try{let a=await u();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function w(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function x(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}function y(a=null){return m[String(a?.region||"").toLowerCase()]||n}async function z(a,b,c=n,d="sgp"){let e=String(d||"").toLowerCase(),f=o[String(e||"").toLowerCase()]||o.sgp,g=await A(a,"cn"===e?null:b,c,f);return g&&console.log(`[mimoAccount] desktop 2-phase OK (sid=${f})`),g}async function A(a,b,c,d){var e,f;let g,h=a=>console.log(`[mimoAccount] desktopPhase fail: ${a}`),i={...a},j={};i.userId&&(j.userId=i.userId),i.passToken&&(j.passToken=i.passToken),i.cUserId&&(j.cUserId=i.cUserId);let m=`https://${p}/pass/serviceLogin?_locale=zh_CN&_snsNone=true&sid=${encodeURIComponent(d)}&_json=true`,n=await (0,l.proxyAwareFetch)(m,{headers:{Cookie:x(j),"User-Agent":r,Accept:"application/json"}},b),o=await n.text(),q=o.replace(/^&&&START&&&/,""),s=q.match(/"nonce"\s*:\s*(\d+)/)?.[1],t=null;try{t=JSON.parse(q)}catch{}if(s&&t&&(t.nonce=s),!t||"number"!=typeof t.code||0!==t.code||!t.location||!t.nonce||!t.ssecurity)return h(`phase1 sid=${d} http=${n.status} code=${t?.code??"?"} hasLoc=${!!t?.location} secondValidation=${t?.bSecondValidation??"?"} notificationUrl=${t?.notificationUrl?"present":"no"} body=${JSON.stringify(o.slice(0,200))}`),null;w(i,n);let u=t.location.includes("?")?"&":"?",v=`${t.location}${u}clientSign=${(e=s||t.nonce,g=`nonce=${e}`+((f=t.ssecurity)&&f.trim()?`&${f}`:""),encodeURIComponent(k().createHash("sha1").update(g).digest("base64")))}`;for(let a=0;a<8;a++){let a=await (0,l.proxyAwareFetch)(v,{redirect:"manual",headers:{"User-Agent":r}},b);w(i,a);let c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){v=new URL(c,v).toString();continue}break}let y=`${d}_serviceToken`;if(!i.serviceToken&&i[y]&&(i.serviceToken=i[y]),!i.serviceToken)return h(`phase2 no serviceToken sid=${d} jar=[${Object.keys(i).join(",")}]`),null;let z={};for(let[a,b]of Object.entries(i))b&&("serviceToken"===a||"userId"===a||/_(ph|slh)$/.test(a))&&(z[a]=b);return x(z)}async function B(a,b){let c=y(a),d=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await u();if(!d)return{cookie:null,reason:"no-pass-token"};let e=k().createHash("sha256").update(`${c}|${d.passToken}`).digest("hex"),f=s.get(e);if(f&&Date.now()-f.at<18e5)return{cookie:f.cookie};let g=t.get(e);if(g){let a=await g;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let h=(async()=>{try{return await z(d,b,c,a?.region)}catch(a){return console.log(`[mimoAccount] acquire threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}finally{t.delete(e)}})();t.set(e,h);let i=await h;return i?(s.set(e,{cookie:i,at:Date.now()}),{cookie:i}):{cookie:null,reason:"sso-failed"}}function C(){s.clear()}let D=n,E=q;async function F(a=null,b=null){try{let{cookie:c}=await B(a,b);return c}catch(a){return console.log(`[mimoAccount] getMimoAccountCookie threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}}async function G(a=null,b=null){let{cookie:c,reason:d}=await B(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${y(a)}/api/user/usage`,{headers:{"User-Agent":q,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(57247),i=c(14170),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){return(0,h.ux)("opencode-go",a)===i.h.OPENAI_RESPONSES}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},14229:(a,b,c)=>{function d(a){return new RegExp(a.source,a.flags.includes("g")?a.flags:`${a.flags}g`)}function e(a,b,c){let e=d(b),f=d(c),g=[],h=0;for(;;){e.lastIndex=h;let b=e.exec(a);if(!b)break;let c=b.index+b[0].length;f.lastIndex=c;let d=f.exec(a);if(!d)break;let i=d.index+d[0].length;g.push({start:b.index,end:i,inner:a.slice(c,d.index)}),h=i}return g}c.d(b,{mU:()=>v,x2:()=>n,OA:()=>l,n:()=>q,uQ:()=>t,S$:()=>u,Ub:()=>p,LW:()=>r,r3:()=>s});let f=/<tool>/g,g=/<\/tool>/g,h=/<tool_call(?:\s[^<>]*)?>/g,i=/<\/tool_call>/g,j=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,k=new WeakMap;function l(a){if(!Array.isArray(a)||0===a.length)return"";let b=k.get(a);return b||(b=Math.random().toString(36).slice(2,10),k.set(a,b)),b}function m(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function n(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){let a=m(d),e=m(a?.function),f="string"==typeof e?.name?e.name.trim():"";!f||c.has(f)||(c.add(f),b.push({original:f,normalized:o(f)}))}return b}function o(a){return a.toLowerCase().replace(/[^a-z0-9]/g,"")}function p(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=o(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 q(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 m(JSON.parse(a))}catch{}return null}function r(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 s(a){if(void 0===a)return"{}";if("string"==typeof a){let b=q(a);return b?JSON.stringify(b):a}try{return JSON.stringify(a)}catch{return"{}"}}function t(a,b="call",c){let d="string"==typeof a?(j.lastIndex=0,a.replace(j,(a,b,c,d)=>{let e={},f=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,g=null;for(;null!==(g=f.exec(d));){let a=g[2].trim();try{e[g[1]]=JSON.parse(a)}catch{e[g[1]]=a}}if(0===Object.keys(e).length)try{let a=JSON.parse(d.trim()||"{}");a&&"object"==typeof a&&!Array.isArray(a)&&Object.assign(e,a)}catch{}return`<tool>{"name":${JSON.stringify(c)},"arguments":${JSON.stringify(e)}}</tool>`}).replace(/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,"")):a,k=n(c);if("string"!=typeof d||!d.includes("<tool>")&&!d.includes("<tool_call"))return{content:a??"",toolCalls:null};let m=l(c),o=[];for(let a of[...e(d,f,g),...e(d,h,i)])o.push({raw:a.inner.trim(),start:a.start,end:a.end,requireRequestedTool:!1});o.sort((a,b)=>a.start-b.start);let u=[],v=[];for(let a of o){let c=q(a.raw),d=c&&"string"==typeof c.name?c.name:c&&"string"==typeof c.command?c.command:null;if(!d||m&&c&&void 0!==c._nonce&&c._nonce!==m)continue;let e=p(d,k)||(a.requireRequestedTool?null:d);if(!e||a.requireRequestedTool&&0===k.length)continue;let f=s(c?.arguments);u.push({id:`${b}_${u.length}`,type:"function",function:{name:e,arguments:f}}),v.push({start:a.start,end:a.end})}return 0===u.length?{content:a,toolCalls:null}:{content:r(d,v),toolCalls:u}}function u(a,b){let c,d=a.tools;if(!(Array.isArray(d)&&d.length>0))return{hasTools:!1,requestedTools:d,effectiveMessages:b};let e=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=l(a);if(!b)return"";let c=[];for(let b of a){let a=b?.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=""}c.push(`- ${a.name}${d?`: ${d}`:""}${e?`
2
2
  parameters: ${e}`:""}`)}return 0===c.length?"":["The client application provides tools beyond your built-in ones. They are NOT in your native tool registry; they are invoked via a plain-text protocol: the client parses your reply and executes the tool on the user machine. Treat these client tools as fully available to you; never claim they are unavailable. To invoke one, reply with a single line containing a <tool> block",`with JSON that includes the secret binding "_nonce": "${b}":`,`<tool>{"name": "<tool_name>", "arguments": { ... }, "_nonce": "${b}"}</tool>`,"These client tools ARE available to you in this conversation. Only emit the <tool> block when you actually want to call a tool; otherwise answer normally.","","Available tools:",...c].join("\n")}(d);if(!e)return{hasTools:!0,requestedTools:d,effectiveMessages:b};let f=[...b],g="\n\n[Client protocol reminder: the client-tool contract in the system instructions is active in this conversation. These client tools ARE available via the <tool> block protocol"+((c=(e.match(/^- [^:\n]+/gm)||[]).map(a=>a.slice(2).trim()).join(", "))?": "+c:"")+".]";for(let a=f.length-1;a>=0;a--){let b=f[a];if(b?.role==="user"){"string"==typeof b.content?f[a]={...b,content:b.content+g}:Array.isArray(b.content)&&(f[a]={...b,content:[...b.content,{type:"text",text:g}]});break}}return f.push({role:"system",content:e}),{hasTools:!0,requestedTools:d,effectiveMessages:f}}function v(a,b,c="call"){let{content:d,toolCalls:e}=t(a,`${c}-${Date.now()}`,b);return{content:d,toolCalls:e,finishReason:e?"tool_calls":"stop"}}},19932:(a,b,c)=>{c.d(b,{T:()=>E});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
3
3
 
4
4
  ## General
@@ -241,12 +241,12 @@ ${c.join("\n")}`);continue}if("tool"===f.role){let c=f.tool_call_id&&b.get(f.too
241
241
 
242
242
  ${l}
243
243
 
244
- Respond with ONLY <tool> blocks, one per line. No prose, no code fences, no explanation before or after the blocks.`:l);if(!p.trim())throw Object.assign(Error("ChatGPT Web requires non-empty text"),{status:400});let q={...await aW({baseUrl:a,accessToken:b,userAgent:d,signal:g,proxyOptions:i}),Authorization:`Bearer ${b}`,"User-Agent":d,...c?{Cookie:c}:{},"Content-Type":"application/json"},r=await ba(`${a}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...q,Accept:"application/json"},body:JSON.stringify({action:"next",parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[p]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,g,i);if(!r.ok){let a=(await r.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`ChatGPT prepare failed (HTTP ${r.status}) ${a}`),{status:r.status||502})}let s=await r.json().catch(()=>null),t=await ba(`${a}/backend-api/f/conversation`,{method:"POST",headers:{...q,Accept:"text/event-stream","X-Conduit-Token":s?.conduit_token||"","X-Oai-Turn-Trace-Id":(0,e.randomUUID)()},body:JSON.stringify({action:"next",messages:[{id:(0,e.randomUUID)(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[p]},metadata:{serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"sent",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"},force_parallel_switch:"auto"})},135e3,g,i);if(!t.ok)throw Object.assign(Error(`ChatGPT conversation failed (HTTP ${t.status})`),{status:t.status||502});if("function"==typeof k)try{k()}catch{}let u="function"==typeof j,v="",w=((u?(await bc(t,{limit:0x1000000,deadlineMs:12e4,signal:g,onText:a=>{v+=a;try{j(a)}catch{}}})).raw:await bb(t,0x1000000,12e4)).match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"";if(!w)throw Object.assign(Error("ChatGPT conversation produced no conversation id"),{status:502});try{let e=Date.now();for(;Date.now()-e<=18e4;){if(g?.aborted)throw Error("Request aborted");let e=await ba(`${a}/backend-api/conversation/${w}`,{headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json",...c?{Cookie:c}:{}}},3e4,g,i).catch(()=>null);if(e?.ok){let a=await e.json().catch(()=>null),b=a?function(a){let b=a?.mapping||{},c="",d=!1,e="",f=!1;for(let a of Object.values(b)){let b=a?.message;if(b&&"assistant"===String(b.author?.role||"").toLowerCase()&&(b.metadata?.is_complete===!0&&(d=!0),b.content?.content_type==="text"&&(c+=(b.content.parts||[]).filter(a=>"string"==typeof a).join("")),b.metadata?.is_error)){f=!0;let a=(b.content?.parts||[]).filter(a=>"string"==typeof a).join("");a&&(e=a)}}return d?{text:c,errorText:e,isError:f}:null}(a):null;if(b){if(!b.text.trim()&&b.isError)throw Object.assign(Error(`ChatGPT refused the turn${b.errorText?`: ${b.errorText.slice(0,200)}`:""}`),{status:400});if(u)if(b.text.startsWith(v)){let a=b.text.slice(v.length);if(a){v+=a;try{j(a)}catch{}}}else b.text!==v&&h?.warn?.("CGPT-WEB","streamed text diverged from the final conversation document");return h&&!o.hasTools&&h.debug?.("CGPT-WEB",`chat turn complete (${b.text.length} chars)`),{text:b.text,hasTools:o.hasTools,requestedTools:o.requestedTools}}}else h&&h.debug?.("CGPT-WEB",`conversation poll status ${e?.status??"network"}, retrying`);await a9(1500)}throw Object.assign(Error("ChatGPT chat turn timed out"),{status:504})}finally{aX({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:w,proxyOptions:i,log:h})}}var be=c(4052),bf=c(92536),bg=c(78959);let bh="https://chatgpt.com",bi="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";async function bj({storageState:a,userAgent:b,signal:c,proxyOptions:d=null,timeoutMs:e=aM.pH}){let f,g=a0(a),h=(0,aL.n)(c,e);try{f=await (0,aK.proxyAwareFetch)(`${bh}/api/auth/session`,{headers:{"User-Agent":b,Accept:"application/json",...g?{Cookie:g}:{}},signal:h.signal},d)}catch(a){throw h.settleError(a)}finally{h.clear()}if(!f.ok)throw Object.assign(Error(`ChatGPT session unavailable (HTTP ${f.status})`),{status:403===f.status?401:f.status||502});let i=await f.json().catch(()=>null);if("string"!=typeof i?.accessToken||!i.accessToken)throw Object.assign(Error("ChatGPT session is not signed in"),{status:401});return i.accessToken}function bk(a,b){return new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}})}class bl extends d.H{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:bh})}async testConnection(a){try{let b=a?.providerSpecificData?.storageState??a?.apiKey;if("string"!=typeof b||!b.trim())return!1;if(b.trim().startsWith("{"))return JSON.parse(b),!0;return/__Secure-next-auth\.session-token|^[\w-]+\.[\w-]+\.[\w-]+$/.test(b.trim())}catch{return!1}}async execute(a){try{let b=await this.#a(a);if(b)return b;return{response:await aA(a),url:bh,headers:{},transformedBody:a.body}}catch(c){let b=c instanceof Error?c.message:"ChatGPT Web browser execution failed";if((0,be.BE)(b))return{response:bk(503,"ChatGPT Web requires a Chrome/Chromium browser (headed). Install Google Chrome on the host (or set CHATGPT_WEB_CHROME_PATH), and run `npx playwright-core install chromium`."),url:bh,headers:{},transformedBody:a.body};return{response:bk(Number.isInteger(c?.status)&&c.status>=400&&c.status<=599?c.status:/storage state|credentials|connection ID/i.test(b)?401:/(?:\bHTTP[_\s-]*429\b|\bstatus\s+429\b|\brate[-_\s]?limit(?:ed)?\b|\bquota\s+(?:exhausted|reached|exceeded)\b|\b(?:image(?:\s+upload)?|upload|usage)\s+limit\s+(?:reached|exceeded)\b|\breached\s+(?:your\s+)?(?:image(?:\s+upload)?|upload|usage)\s+limit\b)/i.test(b)?429:/request|messages|prompt|model|tools|text content|reasoning effort/i.test(b)?400:502,b),url:bh,headers:{},transformedBody:a.body}}}async #a(a){let b,c,{credentials:d,body:f,model:g,stream:h,proxyOptions:i=null}=a;try{b=av(d)}catch{return null}let j=d?.providerSpecificData,k="string"==typeof j?.customUserAgent&&j.customUserAgent.trim()?j.customUserAgent.trim():bi,l=Array.isArray(f?.tools)&&f.tools.length>0;if(!0===a.stream&&!l){let c=await bj({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});return this.#b({input:a,accessToken:c,storageState:b,userAgent:k,model:g})}try{let d=await bj({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});c=await bd({baseUrl:bh,accessToken:d,cookie:a0(b),userAgent:k,body:f,signal:a.signal,log:a.log,proxyOptions:i})}catch(a){if(a?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(a?.message||""))return null;throw a}if(!c.hasTools)return{response:az(g,{text:c.text},h),url:bh,headers:{},transformedBody:f};let m=az(g,{text:c.text},!1);return{response:await am(m,c.requestedTools,h,{idSeed:"call",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:g}),url:bh,headers:{},transformedBody:f}}async #b({input:a,accessToken:b,storageState:c,userAgent:d,model:f}){let g,h,{body:i,signal:j,log:k}=a,l=new TextEncoder,m=new AbortController,n=j?AbortSignal.any([j,m.signal]):m.signal,o=`chatcmpl-${(0,e.randomUUID)()}`,p=Math.floor(Date.now()/1e3),q="string"==typeof f&&f.trim()?f.trim():"chatgpt-web",r=!1,s=null,t=!1,u=new ReadableStream({start:a=>{s=a},cancel(){m.abort()}},{highWaterMark:16384}),v=(a,b=null)=>{if(!t)try{s.enqueue(l.encode((0,bf.N)({id:o,object:"chat.completion.chunk",created:p,model:q,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:b,logprobs:null}]})))}catch{t=!0}},w=new Promise((a,b)=>{g=a,h=b}),x=bd({baseUrl:bh,accessToken:b,cookie:a0(c),userAgent:d,body:i,signal:n,log:k,proxyOptions:a.proxyOptions||null,onReady:()=>g(),onDelta:a=>{r||(r=!0,v({role:"assistant",content:""})),v({content:a})}});x.catch(a=>h(a));try{await w}catch(b){if(b?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(b?.message||""))return{response:await aA(a),url:bh,headers:{},transformedBody:i};throw b}return x.then(()=>{if(r||(r=!0,v({role:"assistant",content:""})),v({},"stop"),!t)try{s.enqueue(l.encode(bg.$U)),s.close()}catch{t=!0}}).catch(a=>{if(!t){try{s.error(a)}catch{}t=!0}}),{response:new Response(u,{status:200,headers:{...bg.uB}}),url:bh,headers:{},transformedBody:i}}async generateMedia({prompt:a,n:b=1,size:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){if(!a)throw Error("prompt is required for image generation");let h=av(d),i=d.providerSpecificData,j="string"==typeof i?.customUserAgent&&i.customUserAgent.trim()?i.customUserAgent.trim():bi,k=[];for(let i=0;i<Math.max(1,b);i++)k.push(await this.#c({prompt:a,size:c,storageState:h,userAgent:j,signal:e,log:f,credentials:d,proxyOptions:g}));return k}async #c({prompt:a,size:b,storageState:c,userAgent:d,signal:e,log:f,credentials:g,proxyOptions:h=null}){try{let g=await bj({storageState:c,userAgent:d,signal:e,proxyOptions:h});return await a8({baseUrl:bh,accessToken:g,cookie:a0(c),userAgent:d,prompt:a,sizeHint:b,signal:e,log:f,proxyOptions:h})}catch(a){if(a?.code!=="TURNSTILE_REQUIRED"&&!/Turnstile/i.test(a?.message||""))throw a;f?.warn?.("CGPT-WEB","Sentinel demanded Turnstile — falling back to the browser path")}let i="string"==typeof g?.connectionId&&g.connectionId.trim()?g.connectionId.trim():null;if(!i)throw Error("ChatGPT Web image generation requires a connection ID");let j=g.providerSpecificData,k=await ay({connectionId:i,storageState:c,selection:{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0},userAgent:d,locale:"string"==typeof j?.locale?j.locale:void 0,timezone:"string"==typeof j?.timezone?j.timezone:void 0,chromeExecutablePath:ax(j?.chromeExecutablePath),proxyOptions:h});try{return await k.start(),await aJ(k.page,{prompt:a,sizeHint:b,signal:e,log:f})}finally{await k.page.close().catch(()=>{})}}}},49059:(a,b,c)=>{c.d(b,{v:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f="You are a helpful AI assistant that helps with software engineering tasks.",g=/you are claude code|claude.?code.+official.+cli|anthropic.+official.+cli|anxthxropic.+official.+cli|you are (?:cursor|windsurf|cline|aider|continue|copilot|cody)|you are an? (?:ai )?(?:coding |code )?agent|cc_entrypoint\s*=\s*(?:cli|vscode|jetbrains|gui)|claude.?code.+issues|give feedback.+claude.?code|you are .{0,30}(?:powerful )?ai agent|orchestration capabilities|OhMyOpenCode|<agent-identity>|<Role>|<Behavior_Instructions>/i;Array.isArray(e.messages)&&(e.messages=e.messages.map(a=>{let b;if(!a||"system"!==a.role)return a;let c="string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>a&&"string"==typeof a.text?a.text:"").join("\n"):"";return c&&(c.length>2e3||g.test(c))?"string"==typeof a.content?{...a,content:f}:{...a,content:[{type:"text",text:f}]}:a}));let h=e.reasoning_effort;return"none"===h||"off"===h?delete e.reasoning_effort:h&&(e.reasoning_summary="auto"),e.tool_choice&&"object"==typeof e.tool_choice&&(e.tool_choice="required"),e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},49227:(a,b,c)=>{c.d(b,{hG:()=>D});var d=c(77598),e=c.n(d),f=c(74957),g=c(12643),h=c(93943),i=c(37981),j=c(57247),k=c(90737),l=c(41004),m=c(80662),n=c(19713);let o=null;async function p(a="endpoint-proxy-salt"){let b=function(){if(o)return o;try{o=(0,n.machineIdSync)()}catch{o=e().randomUUID()}return o}();return e().createHash("sha256").update(b+a).digest("hex").substring(0,16)}let q=/^(rs|fc|resp|msg)_/,r=new Set(["web_search","x_search","web_search_preview","file_search","image_generation","code_interpreter","mcp","local_shell"]),s=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","include","temperature","top_p","max_output_tokens","parallel_tool_calls","text","metadata","prompt_cache_key"]),t=["low","medium","high","xhigh"],u=/^(?:rs|msg|fc)_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,v={type:"object",properties:{input:{type:"string"}},required:["input"]},w=new Map,x=new WeakMap;function y(a){let b="string"==typeof a?a.trim().toLowerCase():"";return"max"===b?"xhigh":t.includes(b)?b:"high"}function z(a){return"string"==typeof a?a:void 0===a?"":JSON.stringify(a)}function A(a){return"string"==typeof a&&u.test(a)}function B(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let{internal_chat_message_metadata_passthrough:b,...c}=a;if("reasoning"===a.type)return A(a.id)&&"string"==typeof a.encrypted_content?c:null;if("custom_tool_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",call_id:b,name:c,arguments:JSON.stringify({input:z(a.input??a.arguments)})}:null}if("custom_tool_call_output"===a.type||"function_call_output"===a.type){let b=a.call_id||a.id;return b?{type:"function_call_output",call_id:b,output:z(a.output)}:null}if("function_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",...A(a.id)?{id:a.id}:{},call_id:b,name:c,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??{}),..."string"==typeof a.status?{status:a.status}:{}}:null}return c}let C=null;class D extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"])}buildUrl(){return this.config.baseUrl}async refreshCredentials(a,b,c=null){return a?.refreshToken?(0,h.Vq)("grok-cli",a,b,c):null}needsRefresh(a){return(0,h.fp)("grok-cli",a)}buildHeaders(a,b=!0,c=null,d=null,f=null,g={}){let h=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===h[a]&&(h[a]=b);h["x-grok-client-identifier"]=this.config.clientIdentifier||h["x-grok-client-identifier"]||k.rK,h["x-grok-client-version"]=this.config.clientVersion||h["x-grok-client-version"]||k.uG;let i=g?.sessionId||a?.connectionId||e().randomUUID(),j=g?.reqId||e().randomUUID();h["x-grok-session-id"]=i,h["x-grok-conv-id"]=i,h["x-grok-req-id"]=j,h["x-grok-turn-idx"]=String(g?.turnIdx||1),g?.agentId&&(h["x-grok-agent-id"]=g.agentId),g?.model&&(h["x-grok-model-override"]=g.model);let l=a?.providerSpecificData||{},m=l.email||a?.email,n=l.userId||a?.userId||a?.providerUserId;return m&&(h["x-email"]=m),n&&(h["x-userid"]=n),h}parseError(a,b){if(402===a.status&&b)try{let a=JSON.parse(b),c=a?.code||"",d=a?.error||a?.message||b;return{status:402,message:"string"==typeof d?d:b,code:"string"==typeof c?c:void 0}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d,f={}){let g;g={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},f.sessionId=(0,m.oV)({headers:d?.rawHeaders,body:g,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"}),f.reqId=e().randomUUID(),f.agentId=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||f.agentId||null;let h=(0,i.me)(b.input);h&&(b.input=h),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(Array.isArray(b.messages)&&b.messages.length>0?(b.input=b.messages.map(a=>({type:"message",role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content??"")})),delete b.messages):b.input=[{type:"message",role:"user",content:"..."}]),function(a){if(!Array.isArray(a?.input))return;let b=a.input.map(B).filter(Boolean),c=new Set(b.filter(a=>a?.type==="function_call"&&a.call_id).map(a=>a.call_id));a.input=b.filter(a=>a?.type!=="function_call_output"||c.has(a.call_id))}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>{if("string"==typeof a&&q.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&q.test(a.id)&&!A(a.id)&&delete a.id}return!0})),function(a){if(!Array.isArray(a.tools)||0===a.tools.length){delete a.tools,delete a.tool_choice;return}let b=new Set,c=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d="string"==typeof a.type?a.type:"";if("function"!==d){if(r.has(d))return c.add(d),!0;if(!d&&a.function);else if(d&&"string"!=typeof a.name)return!1}if(!("function"===d||""===d||a.function||"string"==typeof a.name)||r.has(d))return r.has(d);let e=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,f=("string"==typeof a.name?a.name:"string"==typeof e?.name?e.name:"").trim();if(!f)return!1;let g="string"==typeof a.description?a.description:"string"==typeof e?.description?e.description:"",h="custom"===d?v:a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:e?.parameters&&"object"==typeof e.parameters&&!Array.isArray(e.parameters)?e.parameters:{type:"object",properties:{}};for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=f.slice(0,128),g&&(a.description=g),a.parameters=h,b.add(a.name),!0}),0===a.tools.length){delete a.tools,delete a.tool_choice;return}if(a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)){let d="string"==typeof a.tool_choice.type?a.tool_choice.type:"";if("function"===d||"custom"===d){let c=a.tool_choice.name??a.tool_choice.function?.name,d="string"==typeof c?c.trim().slice(0,128):"";d&&b.has(d)?a.tool_choice={type:"function",name:d}:delete a.tool_choice}else c.has(d)||delete a.tool_choice}}(b),f.turnIdx=function(a,b,c=null){let d=function(a){if(!Array.isArray(a))return 1;let b=0;for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="string"==typeof c.type?c.type:"";"user"!==c.role||a&&"message"!==a||(b+=1)}return Math.max(1,b)}(b);if(!a)return d;if(c&&x.has(c))return x.get(c);let e=Date.now(),f=w.get(a),g=f&&e-f.lastUsed<=l.v1.sessionTtlMs?f.turn:0;f&&w.delete(a);let h=g>0?Math.max(d,g+ +!!c):d;for(;w.size>=5e3;)w.delete(w.keys().next().value);return w.set(a,{turn:h,lastUsed:e}),c&&x.set(c,h),h}(f.sessionId,b.input,b),b.stream=!0,b.store=!1;let n=function(a){if(!a||"string"!=typeof a)return null;for(let b of t)if(a.endsWith(`-${b}`))return b;return null}(b.model||a),o=b.model||a;n&&(o=o.replace(RegExp(`-${n}$`),"")),(o=(0,j.kt)("gcli",o)||o)===(b.model||a)&&(o=(0,j.kt)("grok-cli",o)||o),b.model=o,f.model=o;let p=(0,k.Au)(o);if(b.reasoning&&"object"==typeof b.reasoning?(p?b.reasoning.effort=y(b.reasoning.effort||b.reasoning_effort||n):delete b.reasoning.effort,b.reasoning.summary||(b.reasoning.summary="concise")):(b.reasoning={summary:"concise"},p&&(b.reasoning.effort=y(b.reasoning_effort||n))),delete b.reasoning_effort,b.reasoning&&"none"!==b.reasoning.effort){let a=Array.isArray(b.include)?b.include:[];a.includes("reasoning.encrypted_content")||a.push("reasoning.encrypted_content"),b.include=a}for(let a of(delete b.messages,delete b.max_tokens,delete b.max_completion_tokens,delete b.n,delete b.seed,delete b.logprobs,delete b.top_logprobs,delete b.frequency_penalty,delete b.presence_penalty,delete b.logit_bias,delete b.user,delete b.stream_options,delete b.prompt_cache_retention,delete b.safety_identifier,delete b.previous_response_id,Object.keys(b)))s.has(a)||delete b[a];return b}async execute(a){let b={agentId:a.credentials?.providerSpecificData?.deviceId||await (!C&&(C=(async()=>{try{let a=await p("grok-cli-agent");return[a.slice(0,8),a.slice(8,12),"5"+a.slice(13,16),"a"+a.slice(17,20),a.slice(0,12).padEnd(12,"0")].join("-")}catch{return e().randomUUID()}})()),C)};return super.execute({...a,hookCtx:b})}}},51349:(a,b,c)=>{c.d(b,{m:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-intl")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f=e.reasoning_effort;"none"===f||"off"===f?delete e.reasoning_effort:f&&(e.reasoning_summary="auto");let g=Array.isArray(e.messages)?e.messages:[];for(let a of(e.messages=[{role:"system",content:"You are CodeBuddy Code."}],g))!a||"object"!=typeof a||["system","developer"].includes(a.role)||("user"===a.role&&"string"==typeof a.content?e.messages.push({...a,content:[{type:"text",text:a.content}]}):e.messages.push({...a}));return e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},53307:(a,b,c)=>{c.d(b,{sh:()=>u});var d=c(74957);let e="https://uncensored.com",f="https://clerk.uncensored.com",g="5.127.1",h="https://internal.chatuncensored.ai/v2/image-gen",i={"1:1":{imageWidth:"1024",imageHeight:"1024"},"16:9":{imageWidth:"1024",imageHeight:"576"},"9:16":{imageWidth:"576",imageHeight:"1024"},"4:3":{imageWidth:"1024",imageHeight:"768"},"3:4":{imageWidth:"768",imageHeight:"1024"},"3:2":{imageWidth:"1152",imageHeight:"768"},"2:3":{imageWidth:"768",imageHeight:"1152"},"4:5":{imageWidth:"896",imageHeight:"1120"},"5:4":{imageWidth:"1120",imageHeight:"896"},"21:9":{imageWidth:"1344",imageHeight:"576"}},j={"seedream-v4.5":{name:"Seedream v4.5",aspects:["1:1","16:9","9:16","4:3","3:4"]},"seedream-v5":{name:"Seedream v5",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"seedream-v5-flash":{name:"Seedream v5 Flash",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3","4:5","5:4","21:9"],resolutions:["1k","1.5k","2k"]},"nano-banana-pro-ultra":{name:"Nano Banana Pro Ultra",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["4k","8k"]},"nano-banana-pro":{name:"Nano Banana Pro",aspects:["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"nano-banana":{name:"Nano Banana",aspects:["1:1","9:16","16:9","3:4","4:3","3:2","2:3","5:4","4:5","21:9"]},"nano-banana-2":{name:"Nano Banana 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"gpt-image":{name:"GPT Image 1.5",aspects:["1:1","2:3","3:2"],qualities:["medium","high"]},"gpt-image-2":{name:"GPT Image 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"gpt-image-2.5-flare":{name:"GPT Image 2.5 Flare",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"gpt-image-2.5-sunburst":{name:"GPT Image 2.5 Sunburst",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"wan-2.6":{name:"Wan 2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.6-image":{name:"Wan 2.6",upstream:"wan-2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image":{name:"Wan 2.7",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image-pro":{name:"Wan 2.7 Pro",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"prefect-pony-xl":{name:"Prefect Pony XL",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"1.0":{name:"Flux.1",aspects:[]},"1.1":{name:"Flux.1.1",aspects:[]},"1.2":{name:"Wan 2.6 (Flux tier)",aspects:[]},"2.0":{name:"Flux.2",aspects:[]},"flux-2-max":{name:"Flux 2 Max",aspects:[]},SDXL:{name:"SDXL uncensored",aspects:[]},realism:{name:"Realism",aspects:[]},"realism-2":{name:"Realism 2",aspects:[]},"z-image-turbo":{name:"Z Image Turbo",aspects:[]}},k={default:{name:"Standard",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},turbo:{name:"Turbo",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored-v2":{name:"Wan Ultra Uncensored v2",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored":{name:"Wan Ultra Uncensored",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.6":{name:"Wan v2.6",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],seconds:[5,8]},"wan-2.6-ultra":{name:"Wan 2.6 Ultra Uncensored",t2v:!0,i2v:!0},"wan-2.7":{name:"Wan 2.7",t2v:!0,i2v:!0},"wan-2.7-pro":{name:"Wan 2.7 Pro",t2v:!0,i2v:!0},"wan-2.7-uncensored":{name:"Wan 2.7 Uncensored",t2v:!0,i2v:!0},"wan-2.7-uncensored-v2":{name:"Wan 2.7 Uncensored v2",t2v:!0,i2v:!0},"wan-3.0":{name:"Wan 3.0",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored":{name:"Wan 3.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored-pro":{name:"Wan 3.0 Uncensored Pro",t2v:!0,i2v:!0,audio:!0},"sora-2":{name:"Sora 2",t2v:!0,i2v:!0,seconds:[4,8,12]},"sora-2-pro":{name:"Sora 2 Pro",t2v:!0,i2v:!0,seconds:[4,8,12]},"grok-imagine-video":{name:"Grok Imagine Video",t2v:!0,i2v:!0},"bytedance-seedance-2.0":{name:"Seedance 2.0",t2v:!0,i2v:!0},"seedance-2.0-fast":{name:"Seedance 2.0 Fast",t2v:!0,i2v:!0},"seedance-2.0-uncensored":{name:"Seedance 2.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-fast-uncensored":{name:"Seedance 2.0 Fast Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-uncensored":{name:"Seedance 2.0 Mini Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-turbo":{name:"Seedance 2.0 Mini Turbo Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-v1.5-pro-uncensored":{name:"Seedance v1.5 Pro Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5-uncensored":{name:"Seedance 2.5 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5":{name:"Seedance 2.5",t2v:!0,i2v:!0,audio:!0},"vidu-q3-uncensored":{name:"Vidu Q3 Uncensored",t2v:!0,i2v:!0},"av-gen-v2":{name:"AV-Gen v2 with audio",t2v:!0,i2v:!0,audio:!0},"cosmos-predict":{name:"Cosmos Predict 2.5",t2v:!0,i2v:!0},"minimax-h3":{name:"MiniMax H3",t2v:!0,i2v:!0},"happyhorse-1.0":{name:"Happy Horse 1.0",t2v:!0,i2v:!0},"wan/v2.2-a14b":{name:"Wan v2.2-a14b",t2v:!0,i2v:!0}};function l(a){let b=new Map;for(let c of String(a||"").split(";")){let a=c.indexOf("=");if(a<0)continue;let d=c.slice(0,a).trim();d&&b.set(d,c.slice(a+1).trim())}return b}function m(a){try{let b=a.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(Buffer.from(b+"=".repeat((4-b.length%4)%4),"base64").toString("utf8"))}catch{return null}}function n(a){return[...a.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}function o(a,b){for(let c of"function"==typeof a.headers.getSetCookie?a.headers.getSetCookie():[]){let a=String(c).split(";")[0],d=a.indexOf("=");if(d>0&&a.slice(0,d).trim()===b)return a.slice(d+1).trim()}return""}async function p(a,b,c){let d=m(a)?.sid;if("string"==typeof d&&d)return{sid:d,rotatedClient:""};let e=await fetch(`${f}/v1/client?_clerk_js_version=${g}`,{headers:b,signal:c});if(!e.ok)return{sid:"",rotatedClient:""};let h=o(e,"__client"),i=await e.json().catch(()=>null),j=i?.response??i?.client??i,k=Array.isArray(j?.sessions)?j.sessions:[],l=k.find(a=>a?.status==="active")??k[0];return{sid:"string"==typeof l?.id?l.id:"",rotatedClient:h}}async function q(a,b){let c=l(a),d=c.get("__client");if(!d)throw Object.assign(Error("UC credential missing the __client cookie — paste the full uncensored.com Cookie header from a logged-in session"),{status:401});let h={Cookie:n(c),Origin:e,Referer:`${e}/`,Accept:"application/json"},i=await p(d,h,b),j=i.sid;if(!j)throw Object.assign(Error("UC Clerk session not found — the __client cookie has no active session. Log in again via Login via Browser"),{status:401});let k=await fetch(`${f}/v1/client/sessions/${encodeURIComponent(j)}/tokens?_clerk_js_version=${g}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:e,Referer:`${e}/`,Cookie:n(c)},body:"",signal:b});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC Clerk token mint failed (HTTP ${k.status}) ${a}`),{status:k.status})}let q=o(k,"__client")||i.rotatedClient,r=await k.json().catch(()=>null),s=r?.jwt;if("string"!=typeof s||!s)throw Object.assign(Error("UC Clerk token mint returned no jwt"),{status:502});let t=m(s)?.uid;return{jwt:s,uid:"string"==typeof t?t:"",rotatedClient:q}}async function r(a,{signal:b,log:c,intervalMs:d=5e3,timeoutMs:f=3e5}){let g=Date.now()+f;for(;Date.now()<g;){if(b?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,d));let f=0;try{f=(await fetch(a,{method:"HEAD",headers:{Referer:`${e}/`},signal:b})).status}catch{f=0}if(200===f)return;f>=400&&f<500&&429!==f&&c?.warn?.("UC-WEB",`result poll got HTTP ${f} — continuing until timeout`)}throw Error("UC result did not become available in time")}async function s(a,{signal:b}){let c=await fetch(a,{headers:{Referer:`${e}/`},signal:b});if(!c.ok)throw Error(`UC result download failed (HTTP ${c.status})`);return{b64:Buffer.from(await c.arrayBuffer()).toString("base64"),mime:(c.headers.get("content-type")||"").split(";")[0]||"application/octet-stream"}}async function t(a,b,c){let d=/^data:[^;]*;base64,(.*)$/.exec(String(a));if(d)return Buffer.from(d[1],"base64");if(/^https?:\/\//i.test(String(a))){let c=await fetch(a,{signal:b,headers:{Accept:"image/*","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"}});if(!c.ok)throw Error(`input image download failed (HTTP ${c.status})`);return Buffer.from(await c.arrayBuffer())}try{return Buffer.from(String(a),"base64")}catch{return c?.error?.("UC-WEB","could not decode input image"),null}}class u extends d.H{constructor(){super("uc-web",{id:"uc-web",baseUrl:"https://internal.chatuncensored.ai"})}async execute(){return{response:new Response(JSON.stringify({error:{message:"uc-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="image",size:c,model:d,duration:f,resolution:g,images:m,credentials:o,signal:p,log:u}){if("image"!==b&&"video"!==b)throw Error("uc-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let v=String(o?.apiKey||""),{jwt:w,uid:x,rotatedClient:y}=await q(v,p),z=function(a,b){if(!b)return"";let c=l(a);return c.get("__client")===b?"":(c.set("__client",b),n(c))}(v,y);z&&o&&(o.apiKey=z);let A={Authorization:`Bearer ${w}`,Origin:e,Referer:`${e}/`,"Content-Type":"application/json"};if("image"===b){let b=d||"seedream-v4.5";if(!j[b])throw Object.assign(Error(`Unknown UC image model "${b}" — see the provider's model list`),{status:400});let e=j[b],f={prompt:a,mode:"dev",model_version:e.upstream||b,m_n_user:!0,moderationMode:"SUPER_LIGHT",country:"US",vdiscount:!1,...function(a,b){let c=String(a||"").trim(),d=Array.isArray(b)&&b.length?b:null,e=i[c]&&(!d||d.includes(c))?{aspect_ratio:c,...i[c]}:null;if(e)return e;if(c.includes("x")){let[a,b]=c.split("x").map(Number);if(Number.isFinite(a)&&Number.isFinite(b)&&a>0&&b>0){let c=null,e=1/0;for(let[f,g]of Object.entries(i)){if(d&&!d.includes(f))continue;let h=Math.abs(Number(g.imageWidth)/Number(g.imageHeight)-a/b);h<e&&(e=h,c=f)}if(c)return{aspect_ratio:c,...i[c]}}}let f=d?.[0]||"1:1";return{aspect_ratio:f,...i[f]}}(c,e.aspects)};if(e.resolutions?.length){let a=String(g||"").toLowerCase();f.resolution=e.resolutions.includes(a)?a:e.resolutions[0]}let k=await fetch(h,{method:"POST",headers:A,body:JSON.stringify(f),signal:p});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC image request failed (HTTP ${k.status}) ${a}`),{status:k.status})}let l=await k.json().catch(()=>null),m="string"==typeof l?.url?l.url:"";if(!m)throw Error("UC image response carried no result url");return await r(m,{signal:p,log:u}),[await s(m,{signal:p})]}let B=d||"default";if(!k[B])throw Object.assign(Error(`Unknown UC video model "${B}" — see the provider's model list`),{status:400});let C=k[B],D=Array.isArray(m)?m[0]:m;if(D&&!1===C.i2v)throw Error(`UC video model "${B}" does not accept an input image`);if(!D&&!1===C.t2v)throw Error(`UC video model "${B}" requires an input image`);let E=Number(f)>0?Number(f):C.seconds?.[0]??5,F=C.resolutions?.length?C.resolutions.includes(String(g||""))?String(g):C.resolutions[0]:"480p",G={prompt:a,media_blob_name:null,num_frames:Math.round(16*E)+1,frames_per_second:16,num_inference_steps:30,guide_scale:5,shift:5,aspect_ratio:C.aspects?.includes("auto")?"auto":"9:16",pro_mode:"wan-3.0-uncensored-pro"===B,turbo:"turbo"===B,resolution:F,sora_resolution:F,end_frame_blob_name:null,model:B,seconds:E,video_to_video_duration:E,vdiscount:!1};if(D){if(!x)throw Object.assign(Error("Could not derive the account uid — re-paste the full Cookie header"),{status:401});let a=await t(D,p,u);if(!a)throw Error("UC image-to-video could not decode the input image");let b=await fetch("https://internal-6.pubyar.com/generate-signed-url",{method:"POST",headers:A,body:JSON.stringify({content_type:"image/png",user_identifier:x}),signal:p});if(!b.ok){let a=(await b.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC signed-url request failed (HTTP ${b.status}) ${a}`),{status:b.status})}let c=await b.json().catch(()=>null);if(!c?.signed_url||!c?.blob_name)throw Error("UC signed-url response missing signed_url or blob_name");let d=await fetch(c.signed_url,{method:"PUT",headers:{"Content-Type":"image/png"},body:new Uint8Array(a),signal:p});if(!d.ok)throw Object.assign(Error(`UC input-image upload failed (HTTP ${d.status})`),{status:d.status});G.media_blob_name=c.blob_name}let H=await fetch("https://internal.chatuncensored.ai/image_to_video",{method:"POST",headers:A,body:JSON.stringify(G),signal:p});if(!H.ok){let a=(await H.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC video request failed (HTTP ${H.status}) ${a}`),{status:H.status})}let I=await H.json().catch(()=>null),J="string"==typeof I?.url?I.url:"";if(!J)throw Error("UC video response carried no result url");let K=Number.isFinite(Number(I?.timeout_seconds))&&Number(I.timeout_seconds)>0?1e3*Number(I.timeout_seconds):3e5;return await r(J,{signal:p,log:u,timeoutMs:K}),[await s(J,{signal:p})]}}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$R:()=>S,getExecutor:()=>R});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(77333),l=c(76467),m=c(32447),n=c(19932),o=c(19946),p=c(73870),q=c(4493),r=c(13120),s=c(17373),t=c(77919),u=c(49227),v=c(23013),w=c(59192),x=c(20690),y=c(88331),z=c(53307),A=c(48868),B=c(9708),C=c(90926),D=c(26878),E=c(36732),F=c(49059),G=c(51349),H=c(85308),I=c(27617),J=c(71880),K=c(98665),L=c(93509),M=c(96179),N=c(83243),O=c(95089),P=c(74161);c(74957);var Q=a([o]);o=(Q.then?(await Q)():Q)[0];let T={antigravity:new e.c,azure:new f.P,"gemini-cli":new h.V,github:new i.x,iflow:new j.r,qoder:new k.DH,"qoder-cn":new k.DH("qoder-cn"),kiro:new l.B,kimchi:new m.BL,codex:new n.T,cursor:new o.ou,cu:new o.ou,vertex:new p.w("vertex"),"vertex-partner":new p.w("vertex-partner"),opencode:new q.j9,"opencode-go":new r.H,"opencode-zen":new s.mO,"grok-web":new t.$,"grok-cli":new u.hG,gcli:new u.hG,gb:new u.hG,"perplexity-web":new v.Ay,"deepseek-web":new w.id,"muse-web":new x._5,"veoaifree-web":new y.Q,"veo-free":new y.Q,"uc-web":new z.sh,"chatgpt-web":new A.RF,"ollama-local":new B.D,commandcode:new C.Ak,"xiaomi-tokenplan":new D.F,"xiaomi-mimo":new E.Rb,codearts:new I.Ay,deveco:new J.y,"codebuddy-cn":new F.v,"codebuddy-intl":new G.m,trae:new H.A,"trae-enterprise":new H.A("trae-enterprise"),zed:new K.A,windsurf:new L.Ay,"minimax-code":new N.M("minimax-code"),"minimax-code-global":new N.M("minimax-code-global"),"devin-cli":new O.c,zcode:new P.B,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},U=new Map;function R(a){return T[a]?T[a]:(U.has(a)||U.set(a,new M.L(a)),U.get(a))}function S(a){return!!T[a]}d()}catch(a){d(a)}})},59192:(a,b,c)=>{c.d(b,{id:()=>an});var d=c(74957),e=c(78959),f=c(92536),g=c(73024),h=c(76760),i=c.n(h),j=c(75919);let k=[1n,32898n,0x800000000000808an,0x8000000080008000n,32907n,2147483649n,0x8000000080008081n,0x8000000000008009n,138n,136n,2147516425n,2147483658n,2147516555n,0x800000000000008bn,0x8000000000008089n,0x8000000000008003n,0x8000000000008002n,0x8000000000000080n,32778n,0x800000008000000an,0x8000000080008081n,0x8000000000008080n,2147483649n,0x8000000080008008n];Uint32Array.from(k,a=>Number(4294967295n&a)),Uint32Array.from(k,a=>Number(a>>32n&4294967295n)),Uint8Array.from({length:25},(a,b)=>{let c=Math.floor(b/5);return 2*(c+(b%5*2+3*c)%5*5)}),Uint8Array.from({length:25},(a,b)=>{let c=b%5;return 2*(b-c+(c+1)%5)}),Uint8Array.from({length:25},(a,b)=>{let c=b%5;return 2*(b-c+(c+2)%5)});let l=/^[a-f0-9]{64}$/i,m=0;function n(){let a=Error("DeepSeek PoW computation aborted");return a.name="AbortError",a}async function o(a,b,c,d,e,f={}){return function(a,b={}){let{signal:c}=b;if(c?.aborted)return Promise.reject(n());if(m>=2)return Promise.reject(Error("DeepSeek PoW worker capacity reached (2)"));let d=function(a){if(void 0===a)return 1e4;if(!Number.isSafeInteger(a)||a<1||a>3e4)throw Error("DeepSeek PoW timeout must be an integer from 1 to 30000ms");return a}(b.timeoutMs);return m+=1,new Promise((b,e)=>{let f;try{f=new j.Worker(function(){let a=i().join(process.cwd(),"open-sse/lib/deepseek-pow-worker.mjs");if(!(0,g.existsSync)(a))throw Error(`DeepSeek PoW worker script not found at ${a}`);return a}(),{workerData:a})}catch(a){m=Math.max(0,m-1),e(a instanceof Error?a:Error(String(a)));return}let h=!1,k=(a,b)=>{h||(h=!0,clearTimeout(o),c?.removeEventListener("abort",l),m=Math.max(0,m-1),b&&f.terminate(),a())},l=()=>{k(()=>e(n()),!0)},o=setTimeout(()=>{k(()=>e(Error(`DeepSeek PoW computation exceeded ${d}ms`)),!0)},d);c?.addEventListener("abort",l,{once:!0}),f.once("message",a=>{!Number.isSafeInteger(a)||a<-1?k(()=>e(Error("DeepSeek PoW worker returned an invalid answer")),!0):k(()=>b(a),!1)}),f.once("error",a=>{k(()=>e(a),!0)}),f.once("exit",a=>{0!==a?k(()=>e(Error(`DeepSeek PoW worker exited with code ${a}`)),!1):k(()=>e(Error("DeepSeek PoW worker exited without an answer")),!1)})})}(function(a,b,c,d,e){if("DeepSeekHashV1"!==a)throw Error(`Unsupported DeepSeek PoW algorithm: ${a}`);if(!l.test(b))throw Error("DeepSeek PoW challenge must be a 64-character SHA3-256 hex digest");if("string"!=typeof c||0===c.length||c.length>1024)throw Error("DeepSeek PoW salt must contain 1-1024 characters");if(!Number.isSafeInteger(d)||d<1||d>25e4)throw Error("DeepSeek PoW difficulty must be an integer from 1 to 250000");if(!Number.isSafeInteger(e)||e<0)throw Error("DeepSeek PoW expiry must be a non-negative safe integer");return{challenge:b.toLowerCase(),prefix:`${c}_${e}_`,difficulty:d}}(a,b,c,d,e),f)}var p=c(39609),q=c(14229),r=c(70452);let s=new((c.n(r))())({strict:!1,allErrors:!1,validateFormats:!1}),t=new WeakMap;function u(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function v(a,b,c){let d=Array.isArray(a)?a.find(a=>a?.function?.name===b)??null:null;if(!d)return!1;let e=d.function?.parameters;if(void 0===e)return!0;if(("object"!=typeof e||null===e)&&"boolean"!=typeof e)return!1;let f=t.get(a);f||(f=new Map,t.set(a,f));let g=f.get(b);if(void 0===g){try{g=s.compile(e)}catch{g=null}f.set(b,g)}return!!g&&!0===g(c)}function w(a,b,c){if(!b.toolCalls)return b;let d=(0,q.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,q.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};let g=b._nonce;if(void 0!==g&&g!==d)return{content:a,toolCalls:null};let{_nonce:h,...i}=b;if(!v(c,f.function.name,i))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(i)}})}return{content:b.content,toolCalls:e}}function x(a){return"string"==typeof a&&!!a.trim()&&(!!/<\/?(?:|||\|\|?)DSML(?:|||\|\|?)\s*(?:calls|invoke|parameter)\b/i.test(a)||/<\/?(?:tool|tool_call)(?::|\s|>)/i.test(a))}function y(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let z=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function A(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 B(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let C=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function D(a){return"string"==typeof a&&a.length>0?a:null}let E="[||]",F=`${E}{2}DSML${E}{2}`,G=RegExp(`</?${F}\\s*(?:calls|invoke|parameter)\\b[^>]*>|<${F}\\s*/\\s*(?:calls|invoke|parameter)\\s*>`,"gi");function H(a,b,c){let d=[],e=RegExp(`(?:</?${F}\\s*${b}\\b([^>]*)>|<${F}\\s*/\\s*${b}\\s*>)`,"gi"),f=null;for(;null!==(f=e.exec(a));)d.push({start:c+f.index,end:c+e.lastIndex,attrs:f[1]??""});return d}function I(a,b,c,d,e){let f=A(a.attrs,"name");if(!f)return null;let g=b?b.start:d,h=H(c.slice(a.end,g),"parameter",a.end),i={},j=a.end;for(let a=0;a<h.length;a+=1){let b=h[a],d=A(b.attrs,"name");if(!d)continue;let e=h[a+1],f=c.slice(b.end,e?e.start:g).trim();i[d]=""!==f?f:A(b.attrs,"content")??"",j=e?e.end:g}if(!Object.values(i).some(a=>""!==a))return null;let k=(0,q.Ub)(f,e)??f;return{start:a.start,end:b?b.end:j,name:k,args:i}}let J=/<[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)([^>]*)>/gi,K=/<\/[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)\s*>/gi,L=/<(?:(?:\|DSML\|)|(?:||DSML||))invoke\b([^>]*)>([\s\S]*?)<\/(?:(?:\|DSML\|)|(?:||DSML||))invoke\s*>/gi,M=/<(?:(?:\|DSML\|)|(?:||DSML||))parameter\b([^>]*)>([\s\S]*?)(?:<\/(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>|<(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>)/gi,N=/<(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\b[^>]*>[^]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\s*>/i,O=/(?:<\|tool_call_begin\|>|<|tool▁call▁begin|>)[\s\n]*([^<\s]+)[\s\n]*(?:<\|tool_call_argument_begin\|>|<|tool▁call▁argument▁begin|>)([\s\S]*?)(?:<\|tool_call_argument_end\|>|<|tool▁call▁argument▁end|>)[\s\n]*(?:<\|tool_call_end\|>|<|tool▁call▁end|>)/g;function P(a){try{return JSON.parse(a)}catch{return null}}function Q(a,b,c){let d=Array.isArray(c)?c.find(a=>a?.function?.name===b):void 0,e=d?.function?.parameters?.properties;if(!e||"object"!=typeof e)return a;for(let[b,c]of Object.entries(a))e[b]?.type==="string"&&"string"!=typeof c&&(a[b]=JSON.stringify(c));return a}function R(a,b="call",c){var d,e,f;if("string"!=typeof a||0===a.length)return{content:a??"",toolCalls:null};a=a.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"");let g=(0,q.x2)(c),h=(d=a,RegExp(`</?${F}\\s*(?:calls|invoke|parameter)\\b`,"i").test(d))?function(a,b){let c=[],d=[],e=RegExp(`<${F}\\s*calls\\s*>([\\s\\S]*?)(?:</${F}\\s*calls\\s*>|<${F}\\s*/\\s*calls\\s*>)`,"gi"),f=RegExp(`(?:</${F}\\s*calls\\s*>|<${F}\\s*/\\s*calls\\s*>)\\s*$`,"i"),g=[],h=null;for(;null!==(h=e.exec(a));){let i={start:h.index,end:e.lastIndex};g.push(i);let j=h[1],k=h.index+h[0].indexOf(j),l=f.exec(h[0]);d.push({start:h.index,end:k}),d.push({start:h.index+(l?l.index:h[0].length),end:h.index+h[0].length});let m=H(j,"invoke",k);for(let d=0;d<m.length;d+=1){if(!A(m[d].attrs,"name"))continue;let e=I(m[d],m[d+1],a,k+j.length,b);e&&c.push(e),m[d+1]&&(d+=1)}}let i=H(a,"invoke",0).filter(a=>!g.some(b=>a.start>=b.start&&a.end<=b.end));for(let d=0;d<i.length;d+=1){if(!A(i[d].attrs,"name"))continue;let e=I(i[d],i[d+1],a,a.length,b);e&&c.push(e),i[d+1]&&(d+=1)}return{calls:c.sort((a,b)=>a.start-b.start),strip:d}}(a,g):null,i=h&&h.calls.length>0?h:null;if(!i){let d=/<tool\b|<tool:/.test(a),g=a=>(a.toolCalls?.length??0)>0||!d,h=function(a,b,c){if(!/<(?:(?:||DSML||)|(?:\|DSML\|))/.test(a))return{content:a,toolCalls:null,recognized:!1};let d=(0,q.x2)(c),e=(0,q.OA)(c),f=[],g=[],h=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,i=null,j=!1,k=!1;for(;null!==(i=h.exec(a));){let a;j=!0;let l=(0,q.Ub)(i[2],d);if(!e||!l){k=!0;continue}let m=function(a){let b={},c=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,d=null;for(;null!==(d=c.exec(a));){let a=d[2].trim();b[d[1]]=P(a)??a}if(Object.keys(b).length>0)return b;let e=P(a.trim()||"{}");return e&&"object"==typeof e&&!Array.isArray(e)&&Object.assign(b,e),b}(i[3]),n=u(m.arguments);if((m._nonce??n?._nonce)!==e){k=!0;continue}if(n){let{_nonce:b,...c}=n;a=c}else{let{_nonce:b,name:c,...d}=m;a=d}if(!v(c,l,a)){k=!0;continue}f.push({id:`${b}_${f.length}`,type:"function",function:{name:l,arguments:JSON.stringify(a)}}),g.push({start:i.index,end:h.lastIndex})}if(k||0===f.length)return{content:a,toolCalls:null,recognized:j};let l=/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,m=null;for(;null!==(m=l.exec(a));)g.push({start:m.index,end:l.lastIndex});return{content:(0,q.LW)(a,g),toolCalls:f,recognized:!0}}(a,b,c);if(h.recognized&&g(h))return w(a,h,c);let i=function(a,b,c){let d=(0,q.x2)(c),e=[],f=[];O.lastIndex=0;let g=null;for(;null!==(g=O.exec(a));){let a=(0,q.Ub)(g[1],d),h=P(g[2].trim());if(!a||!h||"object"!=typeof h||Array.isArray(h))continue;let i=Q(h,a,c);e.push({id:`${b}_${e.length}`,type:"function",function:{name:a,arguments:JSON.stringify(i)}}),f.push({start:g.index,end:g.index+g[0].length})}!function(a,b,c,d,e,f){L.lastIndex=0;let g=null;for(;null!==(g=L.exec(a));){let a=A(g[1]||"","name"),h=a?(0,q.Ub)(a,c):null;if(!h)continue;let{args:i,found:j}=function(a){let b={},c=!1;M.lastIndex=0;let d=null;for(;null!==(d=M.exec(a));){let a=A(d[1]||"","name");if(!a)continue;let e=d[2].trim();b[a]=P(e)??e,c=!0}return{args:b,found:c}}(g[2]);if(!j&&g[2].trim())continue;let k=Q(i,h,d);e.push({id:`${b}_${e.length}`,type:"function",function:{name:h,arguments:JSON.stringify(k)}}),f.push({start:g.index,end:g.index+g[0].length})}}(a,b,d,c,e,f),e.length>0&&function(a,b){let c=/<(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>[\s\S]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>/gi,d=null;for(;null!==(d=c.exec(a));){let a=d.index,c=a+d[0].length;b.some(b=>b.start>=a&&b.end<=c)&&b.push({start:a,end:c})}}(a,f);let h=N.test(a)||/<(?:(?:\|tool_call_)|(?:|tool▁call▁))/.test(a);return 0===e.length?{content:a,toolCalls:null,recognized:h}:{content:(0,q.LW)(a,f),toolCalls:e,recognized:h}}(a,b,c);if(i.recognized&&g(i))return w(a,i,c);e=(f=e=a).includes("DSML")?f.replace(J,(a,b,c)=>{let d=b.toLowerCase();if("calls"===d)return"";let e=A(c,"name"),f=null!==e?` name="${e}"`:"";return"invoke"===d?`<tool${f}>`:`<parameter${f}>`}).replace(K,(a,b)=>{let c=b.toLowerCase();return"calls"===c?"":"invoke"===c?"</tool>":"</parameter>"}):f,(/[||]{1,2}DSML[||]{1,2}/i.test(e)||/<parameter\b/i.test(e)||/<\/(?:parameter|invoke|arguments|calls|tool_calls|function_calls)>/i.test(e)||e.includes("This response is AI-generated, for reference only."))&&(e=(e=e.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"")).replace(/<\/?(?:[||]{1,2})DSML(?:[||]{1,2})\s*(?:calls|tool_calls|function_calls)>/gi,"").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?invoke\b/gi,"<$1tool").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?parameter\b/gi,"<$1parameter").replace(/(}\s*)<\/(?:parameter|invoke|calls|tool_calls|function_calls)>/gi,"$1"),/<parameter\b/i.test(e)&&!/<tool\b/i.test(e)&&(e=e.replace(/((?:<parameter\b[\s\S]*?<\/parameter>\s*)+)/gi,"<tool>$1</tool>"))),a=e}let j=function(a){let b=[],c=null;for(z.lastIndex=0;null!==(c=z.exec(a));)b.push({start:c.index,end:z.lastIndex,closing:"/"===c[1],suffix:c[2]?c[2].slice(1):"",attrs:c[3]||""});return b}(a);if(0===j.length&&!i)return w(a,(0,q.uQ)(a,b,c),c);let k=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),l=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}(j,a.length),m=[],n=(0,q.OA)(c);for(let b of l.filter(a=>!l.some(b=>b!==a&&b.open.start>=a.innerStart&&b.close.end<=a.innerEnd)).sort((a,b)=>a.open.start-b.open.start)){let c=b.open.suffix||A(b.open.attrs,"name")||A(b.open.attrs,"id")||"",d=a.slice(b.innerStart,b.innerEnd).replace(G,""),e=function(a,b,c,d){let e,f=b.trim(),g=B(f,"name"),h=B(f,"arguments")??B(f,"parameters"),i=h?null:function(a){let b={},c=!1,d=null;for(C.lastIndex=0;null!==(d=C.exec(a));){let a=d[1]||"",e=d[2],f=A(a,"name");if(!f)continue;let g=A(a,"content")??("string"==typeof e?e.trim():"");b[f]=g,c=!0}return c?b:null}(f),j=!!g||!!h||!!i,k=j?null:(0,q.n)(f);if(!k&&!j){let a=function(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d="",e=!1;for(let f=b;f<a.length;f+=1){let g=a[f];if(e){e=!1;continue}if(d){"\\"===g?e=!0:g===d&&(d="");continue}if('"'===g||"'"===g){d=g;continue}if("{"===g){c+=1;continue}if("}"===g&&0==(c-=1))return a.slice(b,f+1)}return null}(f);a&&(k=(0,q.n)(a))}let l=k?D(k.name)??D(k.type):null,m=g?(0,q.Ub)(g,c):null,n=l?(0,q.Ub)(l,c):null,o=a?(0,q.Ub)(a,c):null,p=null,r=!1,s=(a,b)=>{!p&&a&&(p=a,r=b)};if(s(m,!1),s(n,!1),s(o,!0),s(g,!1),s(l,!1),s(a,!0),!p&&!a&&k){let a=D(k.command),b=a?(0,q.Ub)(a,c):null;b&&(p=b,r=!1)}if(!p&&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&&(p=b[0],r=!1)}}if(!p)return null;if(h)e=(0,q.n)(h)??h;else if(i)e=i;else if(k)if(void 0!==k.arguments)e=k.arguments;else if(void 0!==k.params)e=k.params;else if(r)e=k;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=k;e=h}else e={};return{name:p,arguments:(0,q.r3)(e)}}(c,d,g,k);if(e){if(n){let a=(0,q.n)(d);if(a&&"string"==typeof a.name&&void 0!==a._nonce&&a._nonce!==n)continue}m.push({start:b.open.start,end:b.close.end,call:e})}}let o=[];if(i)for(let a of(o=i.strip,i.calls))m.push({start:a.start,end:a.end,call:{name:a.name,arguments:(0,q.r3)(a.args)}});if(0===m.length)return{content:a,toolCalls:null};m.sort((a,b)=>a.start-b.start);let p=[],r=[];for(let a of m)p.push({id:`${b}_${p.length}`,type:"function",function:{name:a.call.name,arguments:a.call.arguments}}),r.push({start:a.start,end:a.end});let s=[...r,...o,...j.filter(a=>!r.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))],t=(0,q.LW)(a,s);return p.length>0&&(t=t.replace(/<parameter\b[^>]*>[\s\S]*?(?:<\/parameter>|$)/gi,"").replace(/<\/?(?:parameter|invoke|tool|calls|tool_calls|function_calls)\b[^>]*>/gi,"").replace(/\n{3,}/g,"\n\n").trim()),function(a,b,c){if(!b.toolCalls)return b;let d=(0,q.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,q.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};if(!("_nonce"in b)){e.push(f);continue}if(b._nonce!==d)return{content:a,toolCalls:null};let{_nonce:g,...h}=b;if(!v(c,f.function.name,h))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(h)}})}return{content:b.content,toolCalls:e}}(a,{content:t,toolCalls:p},c)}function S(a,{min:b=-Number.MAX_SAFE_INTEGER,max:c=Number.MAX_SAFE_INTEGER}={}){return Number.isSafeInteger(a)&&a>=b&&a<=c}async function T(a){let b=await (0,p.proxyAwareFetch)("https://chat.deepseek.com/api/v0/chat/create_pow_challenge",{method:"POST",headers:{...a.headers,"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`},body:JSON.stringify({target_path:a.targetPath}),signal:a.signal??void 0},a.proxyOptions||null);if(!b.ok)throw Error(`create_pow_challenge HTTP ${b.status}`);let c=await b.json(),d={...c?.data?.biz_data?.challenge??c?.biz_data?.challenge,target_path:a.targetPath};if(!d||"string"!=typeof d.algorithm||"string"!=typeof d.challenge||"string"!=typeof d.salt||"string"!=typeof d.signature||!S(d.difficulty,{min:1})||!S(d.expire_at,{min:0})||"string"!=typeof d.target_path)throw Error("Invalid DeepSeek PoW challenge");return d}var U=c(98915);function V(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function W(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function X(a,b){let c=a.replace(/^FINISHED\s*/,"").replace(/^(WEB_SEARCH|SEARCHING|SEARCH)\s*/i,"");return W(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function Y(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")}let Z="https://chat.deepseek.com",$=`${Z}/api`,_=`${$}/v0/chat/completion`,aa={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:Z,Referer:`${Z}/`,"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-Client-Bundle-Id":"com.deepseek.chat","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"2.0.0"},ab=new Map,ac=new Map;function ad(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function ae(a){let b=a?.apiKey||a?.accessToken;return"string"!=typeof b||0===b.length?null:(0,U.Xm)(b)}function af(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 ag(){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 ah(a,b){let c=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at,{signal:b});if(c<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:c,signature:a.signature,target_path:a.target_path})).toString("base64")}async function ai(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=!1,j=b||"deepseek-web",k=V(j),l=[],m=a=>{let b=X(a,j);if(!b)return;let c=h;!c&&k?c="thinking":!c&&W(j)&&(c="content"),"thinking"===c?g+=b:f+=b},n=(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")}m(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("response/status"===c&&"FINISHED"===d&&(i=!0),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)n(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)n(a,!0);else d&&"object"==typeof d&&n(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")l.length=0,l.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);l[c]&&(l[c].cite_index=a.v)}}continue}if("string"==typeof d)m(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&&m(b)}}}catch{}}}let o=Y(l,j);if(o&&(f+=`
244
+ Respond with ONLY <tool> blocks, one per line. No prose, no code fences, no explanation before or after the blocks.`:l);if(!p.trim())throw Object.assign(Error("ChatGPT Web requires non-empty text"),{status:400});let q={...await aW({baseUrl:a,accessToken:b,userAgent:d,signal:g,proxyOptions:i}),Authorization:`Bearer ${b}`,"User-Agent":d,...c?{Cookie:c}:{},"Content-Type":"application/json"},r=await ba(`${a}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...q,Accept:"application/json"},body:JSON.stringify({action:"next",parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[p]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,g,i);if(!r.ok){let a=(await r.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`ChatGPT prepare failed (HTTP ${r.status}) ${a}`),{status:r.status||502})}let s=await r.json().catch(()=>null),t=await ba(`${a}/backend-api/f/conversation`,{method:"POST",headers:{...q,Accept:"text/event-stream","X-Conduit-Token":s?.conduit_token||"","X-Oai-Turn-Trace-Id":(0,e.randomUUID)()},body:JSON.stringify({action:"next",messages:[{id:(0,e.randomUUID)(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[p]},metadata:{serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"sent",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"},force_parallel_switch:"auto"})},135e3,g,i);if(!t.ok)throw Object.assign(Error(`ChatGPT conversation failed (HTTP ${t.status})`),{status:t.status||502});if("function"==typeof k)try{k()}catch{}let u="function"==typeof j,v="",w=((u?(await bc(t,{limit:0x1000000,deadlineMs:12e4,signal:g,onText:a=>{v+=a;try{j(a)}catch{}}})).raw:await bb(t,0x1000000,12e4)).match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"";if(!w)throw Object.assign(Error("ChatGPT conversation produced no conversation id"),{status:502});try{let e=Date.now();for(;Date.now()-e<=18e4;){if(g?.aborted)throw Error("Request aborted");let e=await ba(`${a}/backend-api/conversation/${w}`,{headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json",...c?{Cookie:c}:{}}},3e4,g,i).catch(()=>null);if(e?.ok){let a=await e.json().catch(()=>null),b=a?function(a){let b=a?.mapping||{},c="",d=!1,e="",f=!1;for(let a of Object.values(b)){let b=a?.message;if(b&&"assistant"===String(b.author?.role||"").toLowerCase()&&(b.metadata?.is_complete===!0&&(d=!0),b.content?.content_type==="text"&&(c+=(b.content.parts||[]).filter(a=>"string"==typeof a).join("")),b.metadata?.is_error)){f=!0;let a=(b.content?.parts||[]).filter(a=>"string"==typeof a).join("");a&&(e=a)}}return d?{text:c,errorText:e,isError:f}:null}(a):null;if(b){if(!b.text.trim()&&b.isError)throw Object.assign(Error(`ChatGPT refused the turn${b.errorText?`: ${b.errorText.slice(0,200)}`:""}`),{status:400});if(u)if(b.text.startsWith(v)){let a=b.text.slice(v.length);if(a){v+=a;try{j(a)}catch{}}}else b.text!==v&&h?.warn?.("CGPT-WEB","streamed text diverged from the final conversation document");return h&&!o.hasTools&&h.debug?.("CGPT-WEB",`chat turn complete (${b.text.length} chars)`),{text:b.text,hasTools:o.hasTools,requestedTools:o.requestedTools}}}else h&&h.debug?.("CGPT-WEB",`conversation poll status ${e?.status??"network"}, retrying`);await a9(1500)}throw Object.assign(Error("ChatGPT chat turn timed out"),{status:504})}finally{aX({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:w,proxyOptions:i,log:h})}}var be=c(4052),bf=c(92536),bg=c(78959);let bh="https://chatgpt.com",bi="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";async function bj({storageState:a,userAgent:b,signal:c,proxyOptions:d=null,timeoutMs:e=aM.pH}){let f,g=a0(a),h=(0,aL.n)(c,e);try{f=await (0,aK.proxyAwareFetch)(`${bh}/api/auth/session`,{headers:{"User-Agent":b,Accept:"application/json",...g?{Cookie:g}:{}},signal:h.signal},d)}catch(a){throw h.settleError(a)}finally{h.clear()}if(!f.ok)throw Object.assign(Error(`ChatGPT session unavailable (HTTP ${f.status})`),{status:403===f.status?401:f.status||502});let i=await f.json().catch(()=>null);if("string"!=typeof i?.accessToken||!i.accessToken)throw Object.assign(Error("ChatGPT session is not signed in"),{status:401});return i.accessToken}function bk(a,b){return new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}})}class bl extends d.H{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:bh})}async testConnection(a){try{let b=a?.providerSpecificData?.storageState??a?.apiKey;if("string"!=typeof b||!b.trim())return!1;if(b.trim().startsWith("{"))return JSON.parse(b),!0;return/__Secure-next-auth\.session-token|^[\w-]+\.[\w-]+\.[\w-]+$/.test(b.trim())}catch{return!1}}async execute(a){try{let b=await this.#a(a);if(b)return b;return{response:await aA(a),url:bh,headers:{},transformedBody:a.body}}catch(c){let b=c instanceof Error?c.message:"ChatGPT Web browser execution failed";if((0,be.BE)(b))return{response:bk(503,"ChatGPT Web requires a Chrome/Chromium browser (headed). Install Google Chrome on the host (or set CHATGPT_WEB_CHROME_PATH), and run `npx playwright-core install chromium`."),url:bh,headers:{},transformedBody:a.body};return{response:bk(Number.isInteger(c?.status)&&c.status>=400&&c.status<=599?c.status:/storage state|credentials|connection ID/i.test(b)?401:/(?:\bHTTP[_\s-]*429\b|\bstatus\s+429\b|\brate[-_\s]?limit(?:ed)?\b|\bquota\s+(?:exhausted|reached|exceeded)\b|\b(?:image(?:\s+upload)?|upload|usage)\s+limit\s+(?:reached|exceeded)\b|\breached\s+(?:your\s+)?(?:image(?:\s+upload)?|upload|usage)\s+limit\b)/i.test(b)?429:/request|messages|prompt|model|tools|text content|reasoning effort/i.test(b)?400:502,b),url:bh,headers:{},transformedBody:a.body}}}async #a(a){let b,c,{credentials:d,body:f,model:g,stream:h,proxyOptions:i=null}=a;try{b=av(d)}catch{return null}let j=d?.providerSpecificData,k="string"==typeof j?.customUserAgent&&j.customUserAgent.trim()?j.customUserAgent.trim():bi,l=Array.isArray(f?.tools)&&f.tools.length>0;if(!0===a.stream&&!l){let c=await bj({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});return this.#b({input:a,accessToken:c,storageState:b,userAgent:k,model:g})}try{let d=await bj({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});c=await bd({baseUrl:bh,accessToken:d,cookie:a0(b),userAgent:k,body:f,signal:a.signal,log:a.log,proxyOptions:i})}catch(a){if(a?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(a?.message||""))return null;throw a}if(!c.hasTools)return{response:az(g,{text:c.text},h),url:bh,headers:{},transformedBody:f};let m=az(g,{text:c.text},!1);return{response:await am(m,c.requestedTools,h,{idSeed:"call",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:g}),url:bh,headers:{},transformedBody:f}}async #b({input:a,accessToken:b,storageState:c,userAgent:d,model:f}){let g,h,{body:i,signal:j,log:k}=a,l=new TextEncoder,m=new AbortController,n=j?AbortSignal.any([j,m.signal]):m.signal,o=`chatcmpl-${(0,e.randomUUID)()}`,p=Math.floor(Date.now()/1e3),q="string"==typeof f&&f.trim()?f.trim():"chatgpt-web",r=!1,s=null,t=!1,u=new ReadableStream({start:a=>{s=a},cancel(){m.abort()}},{highWaterMark:16384}),v=(a,b=null)=>{if(!t)try{s.enqueue(l.encode((0,bf.N)({id:o,object:"chat.completion.chunk",created:p,model:q,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:b,logprobs:null}]})))}catch{t=!0}},w=new Promise((a,b)=>{g=a,h=b}),x=bd({baseUrl:bh,accessToken:b,cookie:a0(c),userAgent:d,body:i,signal:n,log:k,proxyOptions:a.proxyOptions||null,onReady:()=>g(),onDelta:a=>{r||(r=!0,v({role:"assistant",content:""})),v({content:a})}});x.catch(a=>h(a));try{await w}catch(b){if(b?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(b?.message||""))return{response:await aA(a),url:bh,headers:{},transformedBody:i};throw b}return x.then(()=>{if(r||(r=!0,v({role:"assistant",content:""})),v({},"stop"),!t)try{s.enqueue(l.encode(bg.$U)),s.close()}catch{t=!0}}).catch(a=>{if(!t){try{s.error(a)}catch{}t=!0}}),{response:new Response(u,{status:200,headers:{...bg.uB}}),url:bh,headers:{},transformedBody:i}}async generateMedia({prompt:a,n:b=1,size:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){if(!a)throw Error("prompt is required for image generation");let h=av(d),i=d.providerSpecificData,j="string"==typeof i?.customUserAgent&&i.customUserAgent.trim()?i.customUserAgent.trim():bi,k=[];for(let i=0;i<Math.max(1,b);i++)k.push(await this.#c({prompt:a,size:c,storageState:h,userAgent:j,signal:e,log:f,credentials:d,proxyOptions:g}));return k}async #c({prompt:a,size:b,storageState:c,userAgent:d,signal:e,log:f,credentials:g,proxyOptions:h=null}){try{let g=await bj({storageState:c,userAgent:d,signal:e,proxyOptions:h});return await a8({baseUrl:bh,accessToken:g,cookie:a0(c),userAgent:d,prompt:a,sizeHint:b,signal:e,log:f,proxyOptions:h})}catch(a){if(a?.code!=="TURNSTILE_REQUIRED"&&!/Turnstile/i.test(a?.message||""))throw a;f?.warn?.("CGPT-WEB","Sentinel demanded Turnstile — falling back to the browser path")}let i="string"==typeof g?.connectionId&&g.connectionId.trim()?g.connectionId.trim():null;if(!i)throw Error("ChatGPT Web image generation requires a connection ID");let j=g.providerSpecificData,k=await ay({connectionId:i,storageState:c,selection:{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0},userAgent:d,locale:"string"==typeof j?.locale?j.locale:void 0,timezone:"string"==typeof j?.timezone?j.timezone:void 0,chromeExecutablePath:ax(j?.chromeExecutablePath),proxyOptions:h});try{return await k.start(),await aJ(k.page,{prompt:a,sizeHint:b,signal:e,log:f})}finally{await k.page.close().catch(()=>{})}}}},49059:(a,b,c)=>{c.d(b,{v:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f="You are a helpful AI assistant that helps with software engineering tasks.",g=/you are claude code|claude.?code.+official.+cli|anthropic.+official.+cli|anxthxropic.+official.+cli|you are (?:cursor|windsurf|cline|aider|continue|copilot|cody)|you are an? (?:ai )?(?:coding |code )?agent|cc_entrypoint\s*=\s*(?:cli|vscode|jetbrains|gui)|claude.?code.+issues|give feedback.+claude.?code|you are .{0,30}(?:powerful )?ai agent|orchestration capabilities|OhMyOpenCode|<agent-identity>|<Role>|<Behavior_Instructions>/i;Array.isArray(e.messages)&&(e.messages=e.messages.map(a=>{let b;if(!a||"system"!==a.role)return a;let c="string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>a&&"string"==typeof a.text?a.text:"").join("\n"):"";return c&&(c.length>2e3||g.test(c))?"string"==typeof a.content?{...a,content:f}:{...a,content:[{type:"text",text:f}]}:a}));let h=e.reasoning_effort;return"none"===h||"off"===h?delete e.reasoning_effort:h&&(e.reasoning_summary="auto"),e.tool_choice&&"object"==typeof e.tool_choice&&(e.tool_choice="required"),e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},49227:(a,b,c)=>{c.d(b,{hG:()=>D});var d=c(77598),e=c.n(d),f=c(74957),g=c(12643),h=c(93943),i=c(37981),j=c(57247),k=c(90737),l=c(41004),m=c(80662),n=c(19713);let o=null;async function p(a="endpoint-proxy-salt"){let b=function(){if(o)return o;try{o=(0,n.machineIdSync)()}catch{o=e().randomUUID()}return o}();return e().createHash("sha256").update(b+a).digest("hex").substring(0,16)}let q=/^(rs|fc|resp|msg)_/,r=new Set(["web_search","x_search","web_search_preview","file_search","image_generation","code_interpreter","mcp","local_shell"]),s=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","include","temperature","top_p","max_output_tokens","parallel_tool_calls","text","metadata","prompt_cache_key"]),t=["low","medium","high","xhigh"],u=/^(?:rs|msg|fc)_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,v={type:"object",properties:{input:{type:"string"}},required:["input"]},w=new Map,x=new WeakMap;function y(a){let b="string"==typeof a?a.trim().toLowerCase():"";return"max"===b?"xhigh":t.includes(b)?b:"high"}function z(a){return"string"==typeof a?a:void 0===a?"":JSON.stringify(a)}function A(a){return"string"==typeof a&&u.test(a)}function B(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let{internal_chat_message_metadata_passthrough:b,...c}=a;if("reasoning"===a.type)return A(a.id)&&"string"==typeof a.encrypted_content?c:null;if("custom_tool_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",call_id:b,name:c,arguments:JSON.stringify({input:z(a.input??a.arguments)})}:null}if("custom_tool_call_output"===a.type||"function_call_output"===a.type){let b=a.call_id||a.id;return b?{type:"function_call_output",call_id:b,output:z(a.output)}:null}if("function_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",...A(a.id)?{id:a.id}:{},call_id:b,name:c,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??{}),..."string"==typeof a.status?{status:a.status}:{}}:null}return c}let C=null;class D extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"])}buildUrl(){return this.config.baseUrl}async refreshCredentials(a,b,c=null){return a?.refreshToken?(0,h.Vq)("grok-cli",a,b,c):null}needsRefresh(a){return(0,h.fp)("grok-cli",a)}buildHeaders(a,b=!0,c=null,d=null,f=null,g={}){let h=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===h[a]&&(h[a]=b);h["x-grok-client-identifier"]=this.config.clientIdentifier||h["x-grok-client-identifier"]||k.rK,h["x-grok-client-version"]=this.config.clientVersion||h["x-grok-client-version"]||k.uG;let i=g?.sessionId||a?.connectionId||e().randomUUID(),j=g?.reqId||e().randomUUID();h["x-grok-session-id"]=i,h["x-grok-conv-id"]=i,h["x-grok-req-id"]=j,h["x-grok-turn-idx"]=String(g?.turnIdx||1),g?.agentId&&(h["x-grok-agent-id"]=g.agentId),g?.model&&(h["x-grok-model-override"]=g.model);let l=a?.providerSpecificData||{},m=l.email||a?.email,n=l.userId||a?.userId||a?.providerUserId;return m&&(h["x-email"]=m),n&&(h["x-userid"]=n),h}parseError(a,b){if(402===a.status&&b)try{let a=JSON.parse(b),c=a?.code||"",d=a?.error||a?.message||b;return{status:402,message:"string"==typeof d?d:b,code:"string"==typeof c?c:void 0}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d,f={}){let g;g={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},f.sessionId=(0,m.oV)({headers:d?.rawHeaders,body:g,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"}),f.reqId=e().randomUUID(),f.agentId=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||f.agentId||null;let h=(0,i.me)(b.input);h&&(b.input=h),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(Array.isArray(b.messages)&&b.messages.length>0?(b.input=b.messages.map(a=>({type:"message",role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content??"")})),delete b.messages):b.input=[{type:"message",role:"user",content:"..."}]),function(a){if(!Array.isArray(a?.input))return;let b=a.input.map(B).filter(Boolean),c=new Set(b.filter(a=>a?.type==="function_call"&&a.call_id).map(a=>a.call_id));a.input=b.filter(a=>a?.type!=="function_call_output"||c.has(a.call_id))}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>{if("string"==typeof a&&q.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&q.test(a.id)&&!A(a.id)&&delete a.id}return!0})),function(a){if(!Array.isArray(a.tools)||0===a.tools.length){delete a.tools,delete a.tool_choice;return}let b=new Set,c=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d="string"==typeof a.type?a.type:"";if("function"!==d){if(r.has(d))return c.add(d),!0;if(!d&&a.function);else if(d&&"string"!=typeof a.name)return!1}if(!("function"===d||""===d||a.function||"string"==typeof a.name)||r.has(d))return r.has(d);let e=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,f=("string"==typeof a.name?a.name:"string"==typeof e?.name?e.name:"").trim();if(!f)return!1;let g="string"==typeof a.description?a.description:"string"==typeof e?.description?e.description:"",h="custom"===d?v:a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:e?.parameters&&"object"==typeof e.parameters&&!Array.isArray(e.parameters)?e.parameters:{type:"object",properties:{}};for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=f.slice(0,128),g&&(a.description=g),a.parameters=h,b.add(a.name),!0}),0===a.tools.length){delete a.tools,delete a.tool_choice;return}if(a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)){let d="string"==typeof a.tool_choice.type?a.tool_choice.type:"";if("function"===d||"custom"===d){let c=a.tool_choice.name??a.tool_choice.function?.name,d="string"==typeof c?c.trim().slice(0,128):"";d&&b.has(d)?a.tool_choice={type:"function",name:d}:delete a.tool_choice}else c.has(d)||delete a.tool_choice}}(b),f.turnIdx=function(a,b,c=null){let d=function(a){if(!Array.isArray(a))return 1;let b=0;for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="string"==typeof c.type?c.type:"";"user"!==c.role||a&&"message"!==a||(b+=1)}return Math.max(1,b)}(b);if(!a)return d;if(c&&x.has(c))return x.get(c);let e=Date.now(),f=w.get(a),g=f&&e-f.lastUsed<=l.v1.sessionTtlMs?f.turn:0;f&&w.delete(a);let h=g>0?Math.max(d,g+ +!!c):d;for(;w.size>=5e3;)w.delete(w.keys().next().value);return w.set(a,{turn:h,lastUsed:e}),c&&x.set(c,h),h}(f.sessionId,b.input,b),b.stream=!0,b.store=!1;let n=function(a){if(!a||"string"!=typeof a)return null;for(let b of t)if(a.endsWith(`-${b}`))return b;return null}(b.model||a),o=b.model||a;n&&(o=o.replace(RegExp(`-${n}$`),"")),(o=(0,j.kt)("gcli",o)||o)===(b.model||a)&&(o=(0,j.kt)("grok-cli",o)||o),b.model=o,f.model=o;let p=(0,k.Au)(o);if(b.reasoning&&"object"==typeof b.reasoning?(p?b.reasoning.effort=y(b.reasoning.effort||b.reasoning_effort||n):delete b.reasoning.effort,b.reasoning.summary||(b.reasoning.summary="concise")):(b.reasoning={summary:"concise"},p&&(b.reasoning.effort=y(b.reasoning_effort||n))),delete b.reasoning_effort,b.reasoning&&"none"!==b.reasoning.effort){let a=Array.isArray(b.include)?b.include:[];a.includes("reasoning.encrypted_content")||a.push("reasoning.encrypted_content"),b.include=a}for(let a of(delete b.messages,delete b.max_tokens,delete b.max_completion_tokens,delete b.n,delete b.seed,delete b.logprobs,delete b.top_logprobs,delete b.frequency_penalty,delete b.presence_penalty,delete b.logit_bias,delete b.user,delete b.stream_options,delete b.prompt_cache_retention,delete b.safety_identifier,delete b.previous_response_id,Object.keys(b)))s.has(a)||delete b[a];return b}async execute(a){let b={agentId:a.credentials?.providerSpecificData?.deviceId||await (!C&&(C=(async()=>{try{let a=await p("grok-cli-agent");return[a.slice(0,8),a.slice(8,12),"5"+a.slice(13,16),"a"+a.slice(17,20),a.slice(0,12).padEnd(12,"0")].join("-")}catch{return e().randomUUID()}})()),C)};return super.execute({...a,hookCtx:b})}}},51349:(a,b,c)=>{c.d(b,{m:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-intl")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f=e.reasoning_effort;"none"===f||"off"===f?delete e.reasoning_effort:f&&(e.reasoning_summary="auto");let g=Array.isArray(e.messages)?e.messages:[];for(let a of(e.messages=[{role:"system",content:"You are CodeBuddy Code."}],g))!a||"object"!=typeof a||["system","developer"].includes(a.role)||("user"===a.role&&"string"==typeof a.content?e.messages.push({...a,content:[{type:"text",text:a.content}]}):e.messages.push({...a}));return e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},53307:(a,b,c)=>{c.d(b,{sh:()=>u});var d=c(74957);let e="https://uncensored.com",f="https://clerk.uncensored.com",g="5.127.1",h="https://internal.chatuncensored.ai/v2/image-gen",i={"1:1":{imageWidth:"1024",imageHeight:"1024"},"16:9":{imageWidth:"1024",imageHeight:"576"},"9:16":{imageWidth:"576",imageHeight:"1024"},"4:3":{imageWidth:"1024",imageHeight:"768"},"3:4":{imageWidth:"768",imageHeight:"1024"},"3:2":{imageWidth:"1152",imageHeight:"768"},"2:3":{imageWidth:"768",imageHeight:"1152"},"4:5":{imageWidth:"896",imageHeight:"1120"},"5:4":{imageWidth:"1120",imageHeight:"896"},"21:9":{imageWidth:"1344",imageHeight:"576"}},j={"seedream-v4.5":{name:"Seedream v4.5",aspects:["1:1","16:9","9:16","4:3","3:4"]},"seedream-v5":{name:"Seedream v5",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"seedream-v5-flash":{name:"Seedream v5 Flash",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3","4:5","5:4","21:9"],resolutions:["1k","1.5k","2k"]},"nano-banana-pro-ultra":{name:"Nano Banana Pro Ultra",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["4k","8k"]},"nano-banana-pro":{name:"Nano Banana Pro",aspects:["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"nano-banana":{name:"Nano Banana",aspects:["1:1","9:16","16:9","3:4","4:3","3:2","2:3","5:4","4:5","21:9"]},"nano-banana-2":{name:"Nano Banana 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"gpt-image":{name:"GPT Image 1.5",aspects:["1:1","2:3","3:2"],qualities:["medium","high"]},"gpt-image-2":{name:"GPT Image 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"gpt-image-2.5-flare":{name:"GPT Image 2.5 Flare",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"gpt-image-2.5-sunburst":{name:"GPT Image 2.5 Sunburst",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"wan-2.6":{name:"Wan 2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.6-image":{name:"Wan 2.6",upstream:"wan-2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image":{name:"Wan 2.7",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image-pro":{name:"Wan 2.7 Pro",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"prefect-pony-xl":{name:"Prefect Pony XL",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"1.0":{name:"Flux.1",aspects:[]},"1.1":{name:"Flux.1.1",aspects:[]},"1.2":{name:"Wan 2.6 (Flux tier)",aspects:[]},"2.0":{name:"Flux.2",aspects:[]},"flux-2-max":{name:"Flux 2 Max",aspects:[]},SDXL:{name:"SDXL uncensored",aspects:[]},realism:{name:"Realism",aspects:[]},"realism-2":{name:"Realism 2",aspects:[]},"z-image-turbo":{name:"Z Image Turbo",aspects:[]}},k={default:{name:"Standard",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},turbo:{name:"Turbo",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored-v2":{name:"Wan Ultra Uncensored v2",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored":{name:"Wan Ultra Uncensored",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.6":{name:"Wan v2.6",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],seconds:[5,8]},"wan-2.6-ultra":{name:"Wan 2.6 Ultra Uncensored",t2v:!0,i2v:!0},"wan-2.7":{name:"Wan 2.7",t2v:!0,i2v:!0},"wan-2.7-pro":{name:"Wan 2.7 Pro",t2v:!0,i2v:!0},"wan-2.7-uncensored":{name:"Wan 2.7 Uncensored",t2v:!0,i2v:!0},"wan-2.7-uncensored-v2":{name:"Wan 2.7 Uncensored v2",t2v:!0,i2v:!0},"wan-3.0":{name:"Wan 3.0",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored":{name:"Wan 3.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored-pro":{name:"Wan 3.0 Uncensored Pro",t2v:!0,i2v:!0,audio:!0},"sora-2":{name:"Sora 2",t2v:!0,i2v:!0,seconds:[4,8,12]},"sora-2-pro":{name:"Sora 2 Pro",t2v:!0,i2v:!0,seconds:[4,8,12]},"grok-imagine-video":{name:"Grok Imagine Video",t2v:!0,i2v:!0},"bytedance-seedance-2.0":{name:"Seedance 2.0",t2v:!0,i2v:!0},"seedance-2.0-fast":{name:"Seedance 2.0 Fast",t2v:!0,i2v:!0},"seedance-2.0-uncensored":{name:"Seedance 2.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-fast-uncensored":{name:"Seedance 2.0 Fast Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-uncensored":{name:"Seedance 2.0 Mini Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-turbo":{name:"Seedance 2.0 Mini Turbo Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-v1.5-pro-uncensored":{name:"Seedance v1.5 Pro Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5-uncensored":{name:"Seedance 2.5 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5":{name:"Seedance 2.5",t2v:!0,i2v:!0,audio:!0},"vidu-q3-uncensored":{name:"Vidu Q3 Uncensored",t2v:!0,i2v:!0},"av-gen-v2":{name:"AV-Gen v2 with audio",t2v:!0,i2v:!0,audio:!0},"cosmos-predict":{name:"Cosmos Predict 2.5",t2v:!0,i2v:!0},"minimax-h3":{name:"MiniMax H3",t2v:!0,i2v:!0},"happyhorse-1.0":{name:"Happy Horse 1.0",t2v:!0,i2v:!0},"wan/v2.2-a14b":{name:"Wan v2.2-a14b",t2v:!0,i2v:!0}};function l(a){let b=new Map;for(let c of String(a||"").split(";")){let a=c.indexOf("=");if(a<0)continue;let d=c.slice(0,a).trim();d&&b.set(d,c.slice(a+1).trim())}return b}function m(a){try{let b=a.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(Buffer.from(b+"=".repeat((4-b.length%4)%4),"base64").toString("utf8"))}catch{return null}}function n(a){return[...a.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}function o(a,b){for(let c of"function"==typeof a.headers.getSetCookie?a.headers.getSetCookie():[]){let a=String(c).split(";")[0],d=a.indexOf("=");if(d>0&&a.slice(0,d).trim()===b)return a.slice(d+1).trim()}return""}async function p(a,b,c){let d=m(a)?.sid;if("string"==typeof d&&d)return{sid:d,rotatedClient:""};let e=await fetch(`${f}/v1/client?_clerk_js_version=${g}`,{headers:b,signal:c});if(!e.ok)return{sid:"",rotatedClient:""};let h=o(e,"__client"),i=await e.json().catch(()=>null),j=i?.response??i?.client??i,k=Array.isArray(j?.sessions)?j.sessions:[],l=k.find(a=>a?.status==="active")??k[0];return{sid:"string"==typeof l?.id?l.id:"",rotatedClient:h}}async function q(a,b){let c=l(a),d=c.get("__client");if(!d)throw Object.assign(Error("UC credential missing the __client cookie — paste the full uncensored.com Cookie header from a logged-in session"),{status:401});let h={Cookie:n(c),Origin:e,Referer:`${e}/`,Accept:"application/json"},i=await p(d,h,b),j=i.sid;if(!j)throw Object.assign(Error("UC Clerk session not found — the __client cookie has no active session. Log in again via Login via Browser"),{status:401});let k=await fetch(`${f}/v1/client/sessions/${encodeURIComponent(j)}/tokens?_clerk_js_version=${g}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:e,Referer:`${e}/`,Cookie:n(c)},body:"",signal:b});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC Clerk token mint failed (HTTP ${k.status}) ${a}`),{status:k.status})}let q=o(k,"__client")||i.rotatedClient,r=await k.json().catch(()=>null),s=r?.jwt;if("string"!=typeof s||!s)throw Object.assign(Error("UC Clerk token mint returned no jwt"),{status:502});let t=m(s)?.uid;return{jwt:s,uid:"string"==typeof t?t:"",rotatedClient:q}}async function r(a,{signal:b,log:c,intervalMs:d=5e3,timeoutMs:f=3e5}){let g=Date.now()+f;for(;Date.now()<g;){if(b?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,d));let f=0;try{f=(await fetch(a,{method:"HEAD",headers:{Referer:`${e}/`},signal:b})).status}catch{f=0}if(200===f)return;f>=400&&f<500&&429!==f&&c?.warn?.("UC-WEB",`result poll got HTTP ${f} — continuing until timeout`)}throw Error("UC result did not become available in time")}async function s(a,{signal:b}){let c=await fetch(a,{headers:{Referer:`${e}/`},signal:b});if(!c.ok)throw Error(`UC result download failed (HTTP ${c.status})`);return{b64:Buffer.from(await c.arrayBuffer()).toString("base64"),mime:(c.headers.get("content-type")||"").split(";")[0]||"application/octet-stream"}}async function t(a,b,c){let d=/^data:[^;]*;base64,(.*)$/.exec(String(a));if(d)return Buffer.from(d[1],"base64");if(/^https?:\/\//i.test(String(a))){let c=await fetch(a,{signal:b,headers:{Accept:"image/*","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"}});if(!c.ok)throw Error(`input image download failed (HTTP ${c.status})`);return Buffer.from(await c.arrayBuffer())}try{return Buffer.from(String(a),"base64")}catch{return c?.error?.("UC-WEB","could not decode input image"),null}}class u extends d.H{constructor(){super("uc-web",{id:"uc-web",baseUrl:"https://internal.chatuncensored.ai"})}async execute(){return{response:new Response(JSON.stringify({error:{message:"uc-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="image",size:c,model:d,duration:f,resolution:g,images:m,credentials:o,signal:p,log:u}){if("image"!==b&&"video"!==b)throw Error("uc-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let v=String(o?.apiKey||""),{jwt:w,uid:x,rotatedClient:y}=await q(v,p),z=function(a,b){if(!b)return"";let c=l(a);return c.get("__client")===b?"":(c.set("__client",b),n(c))}(v,y);z&&o&&(o.apiKey=z);let A={Authorization:`Bearer ${w}`,Origin:e,Referer:`${e}/`,"Content-Type":"application/json"};if("image"===b){let b=d||"seedream-v4.5";if(!j[b])throw Object.assign(Error(`Unknown UC image model "${b}" — see the provider's model list`),{status:400});let e=j[b],f={prompt:a,mode:"dev",model_version:e.upstream||b,m_n_user:!0,moderationMode:"SUPER_LIGHT",country:"US",vdiscount:!1,...function(a,b){let c=String(a||"").trim(),d=Array.isArray(b)&&b.length?b:null,e=i[c]&&(!d||d.includes(c))?{aspect_ratio:c,...i[c]}:null;if(e)return e;if(c.includes("x")){let[a,b]=c.split("x").map(Number);if(Number.isFinite(a)&&Number.isFinite(b)&&a>0&&b>0){let c=null,e=1/0;for(let[f,g]of Object.entries(i)){if(d&&!d.includes(f))continue;let h=Math.abs(Number(g.imageWidth)/Number(g.imageHeight)-a/b);h<e&&(e=h,c=f)}if(c)return{aspect_ratio:c,...i[c]}}}let f=d?.[0]||"1:1";return{aspect_ratio:f,...i[f]}}(c,e.aspects)};if(e.resolutions?.length){let a=String(g||"").toLowerCase();f.resolution=e.resolutions.includes(a)?a:e.resolutions[0]}let k=await fetch(h,{method:"POST",headers:A,body:JSON.stringify(f),signal:p});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC image request failed (HTTP ${k.status}) ${a}`),{status:k.status})}let l=await k.json().catch(()=>null),m="string"==typeof l?.url?l.url:"";if(!m)throw Error("UC image response carried no result url");return await r(m,{signal:p,log:u}),[await s(m,{signal:p})]}let B=d||"default";if(!k[B])throw Object.assign(Error(`Unknown UC video model "${B}" — see the provider's model list`),{status:400});let C=k[B],D=Array.isArray(m)?m[0]:m;if(D&&!1===C.i2v)throw Error(`UC video model "${B}" does not accept an input image`);if(!D&&!1===C.t2v)throw Error(`UC video model "${B}" requires an input image`);let E=Number(f)>0?Number(f):C.seconds?.[0]??5,F=C.resolutions?.length?C.resolutions.includes(String(g||""))?String(g):C.resolutions[0]:"480p",G={prompt:a,media_blob_name:null,num_frames:Math.round(16*E)+1,frames_per_second:16,num_inference_steps:30,guide_scale:5,shift:5,aspect_ratio:C.aspects?.includes("auto")?"auto":"9:16",pro_mode:"wan-3.0-uncensored-pro"===B,turbo:"turbo"===B,resolution:F,sora_resolution:F,end_frame_blob_name:null,model:B,seconds:E,video_to_video_duration:E,vdiscount:!1};if(D){if(!x)throw Object.assign(Error("Could not derive the account uid — re-paste the full Cookie header"),{status:401});let a=await t(D,p,u);if(!a)throw Error("UC image-to-video could not decode the input image");let b=await fetch("https://internal-6.pubyar.com/generate-signed-url",{method:"POST",headers:A,body:JSON.stringify({content_type:"image/png",user_identifier:x}),signal:p});if(!b.ok){let a=(await b.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC signed-url request failed (HTTP ${b.status}) ${a}`),{status:b.status})}let c=await b.json().catch(()=>null);if(!c?.signed_url||!c?.blob_name)throw Error("UC signed-url response missing signed_url or blob_name");let d=await fetch(c.signed_url,{method:"PUT",headers:{"Content-Type":"image/png"},body:new Uint8Array(a),signal:p});if(!d.ok)throw Object.assign(Error(`UC input-image upload failed (HTTP ${d.status})`),{status:d.status});G.media_blob_name=c.blob_name}let H=await fetch("https://internal.chatuncensored.ai/image_to_video",{method:"POST",headers:A,body:JSON.stringify(G),signal:p});if(!H.ok){let a=(await H.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC video request failed (HTTP ${H.status}) ${a}`),{status:H.status})}let I=await H.json().catch(()=>null),J="string"==typeof I?.url?I.url:"";if(!J)throw Error("UC video response carried no result url");let K=Number.isFinite(Number(I?.timeout_seconds))&&Number(I.timeout_seconds)>0?1e3*Number(I.timeout_seconds):3e5;return await r(J,{signal:p,log:u,timeoutMs:K}),[await s(J,{signal:p})]}}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$R:()=>S,getExecutor:()=>R});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(77333),l=c(76467),m=c(32447),n=c(19932),o=c(19946),p=c(73870),q=c(63094),r=c(13120),s=c(17373),t=c(77919),u=c(49227),v=c(23013),w=c(59192),x=c(20690),y=c(88331),z=c(53307),A=c(48868),B=c(9708),C=c(90926),D=c(26878),E=c(36732),F=c(49059),G=c(51349),H=c(85308),I=c(27617),J=c(71880),K=c(98665),L=c(93509),M=c(96179),N=c(83243),O=c(95089),P=c(74161);c(74957);var Q=a([o]);o=(Q.then?(await Q)():Q)[0];let T={antigravity:new e.c,azure:new f.P,"gemini-cli":new h.V,github:new i.x,iflow:new j.r,qoder:new k.DH,"qoder-cn":new k.DH("qoder-cn"),kiro:new l.B,kimchi:new m.BL,codex:new n.T,cursor:new o.ou,cu:new o.ou,vertex:new p.w("vertex"),"vertex-partner":new p.w("vertex-partner"),opencode:new q.j9,"opencode-go":new r.H,"opencode-zen":new s.mO,"grok-web":new t.$,"grok-cli":new u.hG,gcli:new u.hG,gb:new u.hG,"perplexity-web":new v.Ay,"deepseek-web":new w.id,"muse-web":new x._5,"veoaifree-web":new y.Q,"veo-free":new y.Q,"uc-web":new z.sh,"chatgpt-web":new A.RF,"ollama-local":new B.D,commandcode:new C.Ak,"xiaomi-tokenplan":new D.F,"xiaomi-mimo":new E.Rb,codearts:new I.Ay,deveco:new J.y,"codebuddy-cn":new F.v,"codebuddy-intl":new G.m,trae:new H.A,"trae-enterprise":new H.A("trae-enterprise"),zed:new K.A,windsurf:new L.Ay,"minimax-code":new N.M("minimax-code"),"minimax-code-global":new N.M("minimax-code-global"),"devin-cli":new O.c,zcode:new P.B,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},U=new Map;function R(a){return T[a]?T[a]:(U.has(a)||U.set(a,new M.L(a)),U.get(a))}function S(a){return!!T[a]}d()}catch(a){d(a)}})},59192:(a,b,c)=>{c.d(b,{id:()=>aq});var d=c(74957),e=c(78959),f=c(92536),g=c(73024),h=c(76760),i=c.n(h),j=c(75919);new Uint32Array(10);let k=[],l=[],m=new Uint32Array(24),n=new Uint32Array(24);{let a=1n,b=1,c=0;for(let d=0;d<24;d++){let e=c,f=(2*b+3*c)%5;b=e,c=f,k.push(2*(5*c+b)),l.push((d+1)*(d+2)/2%64);let g=0n;for(let b=0;b<7;b++)2n&(a=(a<<1n^(a>>7n)*113n)%256n)&&(g^=1n<<(1n<<BigInt(b))-1n);m[d]=Number(4294967295n&g),n[d]=Number(g>>32n&4294967295n)}}let o=/^[a-f0-9]{64}$/i,p=0;function q(){let a=Error("DeepSeek PoW computation aborted");return a.name="AbortError",a}async function r(a,b,c,d,e,f={}){return function(a,b={}){let{signal:c}=b;if(c?.aborted)return Promise.reject(q());if(p>=2)return Promise.reject(Error("DeepSeek PoW worker capacity reached (2)"));let d=function(a){if(void 0===a)return 1e4;if(!Number.isSafeInteger(a)||a<1||a>3e4)throw Error("DeepSeek PoW timeout must be an integer from 1 to 30000ms");return a}(b.timeoutMs);return p+=1,new Promise((b,e)=>{let f;try{f=new j.Worker(function(){let a=i().join(process.cwd(),"open-sse/lib/deepseek-pow-worker.mjs");if(!(0,g.existsSync)(a))throw Error(`DeepSeek PoW worker script not found at ${a}`);return a}(),{workerData:a})}catch(a){p=Math.max(0,p-1),e(a instanceof Error?a:Error(String(a)));return}let h=!1,k=(a,b)=>{h||(h=!0,clearTimeout(m),c?.removeEventListener("abort",l),p=Math.max(0,p-1),b&&f.terminate(),a())},l=()=>{k(()=>e(q()),!0)},m=setTimeout(()=>{k(()=>e(Error(`DeepSeek PoW computation exceeded ${d}ms`)),!0)},d);c?.addEventListener("abort",l,{once:!0}),f.once("message",a=>{!Number.isSafeInteger(a)||a<-1?k(()=>e(Error("DeepSeek PoW worker returned an invalid answer")),!0):k(()=>b(a),!1)}),f.once("error",a=>{k(()=>e(a),!0)}),f.once("exit",a=>{0!==a?k(()=>e(Error(`DeepSeek PoW worker exited with code ${a}`)),!1):k(()=>e(Error("DeepSeek PoW worker exited without an answer")),!1)})})}(function(a,b,c,d,e){if("DeepSeekHashV1"!==a)throw Error(`Unsupported DeepSeek PoW algorithm: ${a}`);if(!o.test(b))throw Error("DeepSeek PoW challenge must be a 64-character SHA3-256 hex digest");if("string"!=typeof c||0===c.length||c.length>1024)throw Error("DeepSeek PoW salt must contain 1-1024 characters");if(!Number.isSafeInteger(d)||d<1||d>25e4)throw Error("DeepSeek PoW difficulty must be an integer from 1 to 250000");if(!Number.isSafeInteger(e)||e<0)throw Error("DeepSeek PoW expiry must be a non-negative safe integer");return{challenge:b.toLowerCase(),prefix:`${c}_${e}_`,difficulty:d}}(a,b,c,d,e),f)}var s=c(39609),t=c(14229),u=c(70452);let v=new((c.n(u))())({strict:!1,allErrors:!1,validateFormats:!1}),w=new WeakMap;function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a,b,c){let d=Array.isArray(a)?a.find(a=>a?.function?.name===b)??null:null;if(!d)return!1;let e=d.function?.parameters;if(void 0===e)return!0;if(("object"!=typeof e||null===e)&&"boolean"!=typeof e)return!1;let f=w.get(a);f||(f=new Map,w.set(a,f));let g=f.get(b);if(void 0===g){try{g=v.compile(e)}catch{g=null}f.set(b,g)}return!!g&&!0===g(c)}function z(a,b,c){if(!b.toolCalls)return b;let d=(0,t.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,t.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};let g=b._nonce;if(void 0!==g&&g!==d)return{content:a,toolCalls:null};let{_nonce:h,...i}=b;if(!y(c,f.function.name,i))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(i)}})}return{content:b.content,toolCalls:e}}function A(a){return"string"==typeof a&&!!a.trim()&&(!!/<\/?(?:|||\|\|?)DSML(?:|||\|\|?)\s*(?:calls|invoke|parameter)\b/i.test(a)||/<\/?(?:tool|tool_call)(?::|\s|>)/i.test(a))}function B(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let C=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function D(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 E(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let F=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function G(a){return"string"==typeof a&&a.length>0?a:null}let H="[||]",I=`${H}{2}DSML${H}{2}`,J=RegExp(`</?${I}\\s*(?:calls|invoke|parameter)\\b[^>]*>|<${I}\\s*/\\s*(?:calls|invoke|parameter)\\s*>`,"gi");function K(a,b,c){let d=[],e=RegExp(`(?:</?${I}\\s*${b}\\b([^>]*)>|<${I}\\s*/\\s*${b}\\s*>)`,"gi"),f=null;for(;null!==(f=e.exec(a));)d.push({start:c+f.index,end:c+e.lastIndex,attrs:f[1]??""});return d}function L(a,b,c,d,e){let f=D(a.attrs,"name");if(!f)return null;let g=b?b.start:d,h=K(c.slice(a.end,g),"parameter",a.end),i={},j=a.end;for(let a=0;a<h.length;a+=1){let b=h[a],d=D(b.attrs,"name");if(!d)continue;let e=h[a+1],f=c.slice(b.end,e?e.start:g).trim();i[d]=""!==f?f:D(b.attrs,"content")??"",j=e?e.end:g}if(!Object.values(i).some(a=>""!==a))return null;let k=(0,t.Ub)(f,e)??f;return{start:a.start,end:b?b.end:j,name:k,args:i}}let M=/<[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)([^>]*)>/gi,N=/<\/[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)\s*>/gi,O=/<(?:(?:\|DSML\|)|(?:||DSML||))invoke\b([^>]*)>([\s\S]*?)<\/(?:(?:\|DSML\|)|(?:||DSML||))invoke\s*>/gi,P=/<(?:(?:\|DSML\|)|(?:||DSML||))parameter\b([^>]*)>([\s\S]*?)(?:<\/(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>|<(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>)/gi,Q=/<(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\b[^>]*>[^]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\s*>/i,R=/(?:<\|tool_call_begin\|>|<|tool▁call▁begin|>)[\s\n]*([^<\s]+)[\s\n]*(?:<\|tool_call_argument_begin\|>|<|tool▁call▁argument▁begin|>)([\s\S]*?)(?:<\|tool_call_argument_end\|>|<|tool▁call▁argument▁end|>)[\s\n]*(?:<\|tool_call_end\|>|<|tool▁call▁end|>)/g;function S(a){try{return JSON.parse(a)}catch{return null}}function T(a,b,c){let d=Array.isArray(c)?c.find(a=>a?.function?.name===b):void 0,e=d?.function?.parameters?.properties;if(!e||"object"!=typeof e)return a;for(let[b,c]of Object.entries(a))e[b]?.type==="string"&&"string"!=typeof c&&(a[b]=JSON.stringify(c));return a}function U(a,b="call",c){var d,e,f;if("string"!=typeof a||0===a.length)return{content:a??"",toolCalls:null};a=a.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"");let g=(0,t.x2)(c),h=(d=a,RegExp(`</?${I}\\s*(?:calls|invoke|parameter)\\b`,"i").test(d))?function(a,b){let c=[],d=[],e=RegExp(`<${I}\\s*calls\\s*>([\\s\\S]*?)(?:</${I}\\s*calls\\s*>|<${I}\\s*/\\s*calls\\s*>)`,"gi"),f=RegExp(`(?:</${I}\\s*calls\\s*>|<${I}\\s*/\\s*calls\\s*>)\\s*$`,"i"),g=[],h=null;for(;null!==(h=e.exec(a));){let i={start:h.index,end:e.lastIndex};g.push(i);let j=h[1],k=h.index+h[0].indexOf(j),l=f.exec(h[0]);d.push({start:h.index,end:k}),d.push({start:h.index+(l?l.index:h[0].length),end:h.index+h[0].length});let m=K(j,"invoke",k);for(let d=0;d<m.length;d+=1){if(!D(m[d].attrs,"name"))continue;let e=L(m[d],m[d+1],a,k+j.length,b);e&&c.push(e),m[d+1]&&(d+=1)}}let i=K(a,"invoke",0).filter(a=>!g.some(b=>a.start>=b.start&&a.end<=b.end));for(let d=0;d<i.length;d+=1){if(!D(i[d].attrs,"name"))continue;let e=L(i[d],i[d+1],a,a.length,b);e&&c.push(e),i[d+1]&&(d+=1)}return{calls:c.sort((a,b)=>a.start-b.start),strip:d}}(a,g):null,i=h&&h.calls.length>0?h:null;if(!i){let d=/<tool\b|<tool:/.test(a),g=a=>(a.toolCalls?.length??0)>0||!d,h=function(a,b,c){if(!/<(?:(?:||DSML||)|(?:\|DSML\|))/.test(a))return{content:a,toolCalls:null,recognized:!1};let d=(0,t.x2)(c),e=(0,t.OA)(c),f=[],g=[],h=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,i=null,j=!1,k=!1;for(;null!==(i=h.exec(a));){let a;j=!0;let l=(0,t.Ub)(i[2],d);if(!e||!l){k=!0;continue}let m=function(a){let b={},c=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,d=null;for(;null!==(d=c.exec(a));){let a=d[2].trim();b[d[1]]=S(a)??a}if(Object.keys(b).length>0)return b;let e=S(a.trim()||"{}");return e&&"object"==typeof e&&!Array.isArray(e)&&Object.assign(b,e),b}(i[3]),n=x(m.arguments);if((m._nonce??n?._nonce)!==e){k=!0;continue}if(n){let{_nonce:b,...c}=n;a=c}else{let{_nonce:b,name:c,...d}=m;a=d}if(!y(c,l,a)){k=!0;continue}f.push({id:`${b}_${f.length}`,type:"function",function:{name:l,arguments:JSON.stringify(a)}}),g.push({start:i.index,end:h.lastIndex})}if(k||0===f.length)return{content:a,toolCalls:null,recognized:j};let l=/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,m=null;for(;null!==(m=l.exec(a));)g.push({start:m.index,end:l.lastIndex});return{content:(0,t.LW)(a,g),toolCalls:f,recognized:!0}}(a,b,c);if(h.recognized&&g(h))return z(a,h,c);let i=function(a,b,c){let d=(0,t.x2)(c),e=[],f=[];R.lastIndex=0;let g=null;for(;null!==(g=R.exec(a));){let a=(0,t.Ub)(g[1],d),h=S(g[2].trim());if(!a||!h||"object"!=typeof h||Array.isArray(h))continue;let i=T(h,a,c);e.push({id:`${b}_${e.length}`,type:"function",function:{name:a,arguments:JSON.stringify(i)}}),f.push({start:g.index,end:g.index+g[0].length})}!function(a,b,c,d,e,f){O.lastIndex=0;let g=null;for(;null!==(g=O.exec(a));){let a=D(g[1]||"","name"),h=a?(0,t.Ub)(a,c):null;if(!h)continue;let{args:i,found:j}=function(a){let b={},c=!1;P.lastIndex=0;let d=null;for(;null!==(d=P.exec(a));){let a=D(d[1]||"","name");if(!a)continue;let e=d[2].trim();b[a]=S(e)??e,c=!0}return{args:b,found:c}}(g[2]);if(!j&&g[2].trim())continue;let k=T(i,h,d);e.push({id:`${b}_${e.length}`,type:"function",function:{name:h,arguments:JSON.stringify(k)}}),f.push({start:g.index,end:g.index+g[0].length})}}(a,b,d,c,e,f),e.length>0&&function(a,b){let c=/<(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>[\s\S]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>/gi,d=null;for(;null!==(d=c.exec(a));){let a=d.index,c=a+d[0].length;b.some(b=>b.start>=a&&b.end<=c)&&b.push({start:a,end:c})}}(a,f);let h=Q.test(a)||/<(?:(?:\|tool_call_)|(?:|tool▁call▁))/.test(a);return 0===e.length?{content:a,toolCalls:null,recognized:h}:{content:(0,t.LW)(a,f),toolCalls:e,recognized:h}}(a,b,c);if(i.recognized&&g(i))return z(a,i,c);e=(f=e=a).includes("DSML")?f.replace(M,(a,b,c)=>{let d=b.toLowerCase();if("calls"===d)return"";let e=D(c,"name"),f=null!==e?` name="${e}"`:"";return"invoke"===d?`<tool${f}>`:`<parameter${f}>`}).replace(N,(a,b)=>{let c=b.toLowerCase();return"calls"===c?"":"invoke"===c?"</tool>":"</parameter>"}):f,(/[||]{1,2}DSML[||]{1,2}/i.test(e)||/<parameter\b/i.test(e)||/<\/(?:parameter|invoke|arguments|calls|tool_calls|function_calls)>/i.test(e)||e.includes("This response is AI-generated, for reference only."))&&(e=(e=e.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"")).replace(/<\/?(?:[||]{1,2})DSML(?:[||]{1,2})\s*(?:calls|tool_calls|function_calls)>/gi,"").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?invoke\b/gi,"<$1tool").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?parameter\b/gi,"<$1parameter").replace(/(}\s*)<\/(?:parameter|invoke|calls|tool_calls|function_calls)>/gi,"$1"),/<parameter\b/i.test(e)&&!/<tool\b/i.test(e)&&(e=e.replace(/((?:<parameter\b[\s\S]*?<\/parameter>\s*)+)/gi,"<tool>$1</tool>"))),a=e}let j=function(a){let b=[],c=null;for(C.lastIndex=0;null!==(c=C.exec(a));)b.push({start:c.index,end:C.lastIndex,closing:"/"===c[1],suffix:c[2]?c[2].slice(1):"",attrs:c[3]||""});return b}(a);if(0===j.length&&!i)return z(a,(0,t.uQ)(a,b,c),c);let k=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),l=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}(j,a.length),m=[],n=(0,t.OA)(c);for(let b of l.filter(a=>!l.some(b=>b!==a&&b.open.start>=a.innerStart&&b.close.end<=a.innerEnd)).sort((a,b)=>a.open.start-b.open.start)){let c=b.open.suffix||D(b.open.attrs,"name")||D(b.open.attrs,"id")||"",d=a.slice(b.innerStart,b.innerEnd).replace(J,""),e=function(a,b,c,d){let e,f=b.trim(),g=E(f,"name"),h=E(f,"arguments")??E(f,"parameters"),i=h?null:function(a){let b={},c=!1,d=null;for(F.lastIndex=0;null!==(d=F.exec(a));){let a=d[1]||"",e=d[2],f=D(a,"name");if(!f)continue;let g=D(a,"content")??("string"==typeof e?e.trim():"");b[f]=g,c=!0}return c?b:null}(f),j=!!g||!!h||!!i,k=j?null:(0,t.n)(f);if(!k&&!j){let a=function(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d="",e=!1;for(let f=b;f<a.length;f+=1){let g=a[f];if(e){e=!1;continue}if(d){"\\"===g?e=!0:g===d&&(d="");continue}if('"'===g||"'"===g){d=g;continue}if("{"===g){c+=1;continue}if("}"===g&&0==(c-=1))return a.slice(b,f+1)}return null}(f);a&&(k=(0,t.n)(a))}let l=k?G(k.name)??G(k.type):null,m=g?(0,t.Ub)(g,c):null,n=l?(0,t.Ub)(l,c):null,o=a?(0,t.Ub)(a,c):null,p=null,q=!1,r=(a,b)=>{!p&&a&&(p=a,q=b)};if(r(m,!1),r(n,!1),r(o,!0),r(g,!1),r(l,!1),r(a,!0),!p&&!a&&k){let a=G(k.command),b=a?(0,t.Ub)(a,c):null;b&&(p=b,q=!1)}if(!p&&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&&(p=b[0],q=!1)}}if(!p)return null;if(h)e=(0,t.n)(h)??h;else if(i)e=i;else if(k)if(void 0!==k.arguments)e=k.arguments;else if(void 0!==k.params)e=k.params;else if(q)e=k;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=k;e=h}else e={};return{name:p,arguments:(0,t.r3)(e)}}(c,d,g,k);if(e){if(n){let a=(0,t.n)(d);if(a&&"string"==typeof a.name&&void 0!==a._nonce&&a._nonce!==n)continue}m.push({start:b.open.start,end:b.close.end,call:e})}}let o=[];if(i)for(let a of(o=i.strip,i.calls))m.push({start:a.start,end:a.end,call:{name:a.name,arguments:(0,t.r3)(a.args)}});if(0===m.length)return{content:a,toolCalls:null};m.sort((a,b)=>a.start-b.start);let p=[],q=[];for(let a of m)p.push({id:`${b}_${p.length}`,type:"function",function:{name:a.call.name,arguments:a.call.arguments}}),q.push({start:a.start,end:a.end});let r=[...q,...o,...j.filter(a=>!q.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))],s=(0,t.LW)(a,r);return p.length>0&&(s=s.replace(/<parameter\b[^>]*>[\s\S]*?(?:<\/parameter>|$)/gi,"").replace(/<\/?(?:parameter|invoke|tool|calls|tool_calls|function_calls)\b[^>]*>/gi,"").replace(/\n{3,}/g,"\n\n").trim()),function(a,b,c){if(!b.toolCalls)return b;let d=(0,t.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,t.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};if(!("_nonce"in b)){e.push(f);continue}if(b._nonce!==d)return{content:a,toolCalls:null};let{_nonce:g,...h}=b;if(!y(c,f.function.name,h))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(h)}})}return{content:b.content,toolCalls:e}}(a,{content:s,toolCalls:p},c)}function V(a,{min:b=-Number.MAX_SAFE_INTEGER,max:c=Number.MAX_SAFE_INTEGER}={}){return Number.isSafeInteger(a)&&a>=b&&a<=c}async function W(a){let b=await (0,s.proxyAwareFetch)("https://chat.deepseek.com/api/v0/chat/create_pow_challenge",{method:"POST",headers:{...a.headers,"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`},body:JSON.stringify({target_path:a.targetPath}),signal:a.signal??void 0},a.proxyOptions||null);if(!b.ok)throw Error(`create_pow_challenge HTTP ${b.status}`);let c=await b.json(),d={...c?.data?.biz_data?.challenge??c?.biz_data?.challenge,target_path:a.targetPath};if(!d||"string"!=typeof d.algorithm||"string"!=typeof d.challenge||"string"!=typeof d.salt||"string"!=typeof d.signature||!V(d.difficulty,{min:1})||!V(d.expire_at,{min:0})||"string"!=typeof d.target_path)throw Error("Invalid DeepSeek PoW challenge");return d}var X=c(98915);function Y(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function Z(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function $(a,b){let c=a.replace(/^FINISHED\s*/,"").replace(/^(WEB_SEARCH|SEARCHING|SEARCH)\s*/i,"");return Z(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function _(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")}let aa="https://chat.deepseek.com",ab=`${aa}/api`,ac=`${ab}/v0/chat/completion`,ad={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:aa,Referer:`${aa}/`,"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-Client-Bundle-Id":"com.deepseek.chat","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"2.0.0"},ae=new Map,af=new Map;function ag(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function ah(a){let b=a?.apiKey||a?.accessToken;return"string"!=typeof b||0===b.length?null:(0,X.Xm)(b)}function ai(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 aj(){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 ak(a,b){let c=await r(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at,{signal:b});if(c<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:c,signature:a.signature,target_path:a.target_path})).toString("base64")}async function al(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=!1,j=b||"deepseek-web",k=Y(j),l=[],m=a=>{let b=$(a,j);if(!b)return;let c=h;!c&&k?c="thinking":!c&&Z(j)&&(c="content"),"thinking"===c?g+=b:f+=b},n=(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")}m(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("response/status"===c&&"FINISHED"===d&&(i=!0),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)n(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)n(a,!0);else d&&"object"==typeof d&&n(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")l.length=0,l.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);l[c]&&(l[c].cite_index=a.v)}}continue}if("string"==typeof d)m(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&&m(b)}}}catch{}}}let o=_(l,j);if(o&&(f+=`
245
245
 
246
- ${o}`),!i)throw Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request.");return{content:f,reasoningContent:g}}async function aj(a,b,c,d=null){let e=ab.get(a);if(e&&e.expiresAt>Math.floor(Date.now()/1e3))return e.accessToken;c?.info?.("DEEPSEEK-WEB","Acquiring access token from /users/current...");let f=await (0,p.proxyAwareFetch)(`${$}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...aa},signal:b??void 0},d);if(401===f.status||403===f.status)throw Error("Token invalid or expired — get a new userToken from DeepSeek localStorage");if(!f.ok)throw Error(`users/current HTTP ${f.status}`);let g=await f.json();if(g?.code&&0!==g.code){let b=g.msg||g?.data?.biz_msg||`error code ${g.code}`;throw ab.delete(a),Error(`DeepSeek rejected token: ${b}`)}let h=g?.data?.biz_data||g?.biz_data;if(!h?.token){let a=g?.msg||g?.data?.biz_msg||"Unknown error";throw Error(`Failed to acquire token: ${a}`)}let i=h.token;return ad(ab),ab.set(a,{accessToken:i,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${i.length} chars)`),i}async function ak(a,b,c=null){let d=await (0,p.proxyAwareFetch)(`${$}/v0/chat_session/create`,{method:"POST",headers:{...aa,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:ag()},body:JSON.stringify({}),signal:b??void 0},c);if(!d.ok)throw Error(`chat_session/create HTTP ${d.status}`);let e=await d.json(),f=e?.data?.biz_data||e?.biz_data,g=f?.chat_session?.id;if(!g)throw Error(`No session id: code=${e?.code}`);return g}async function al(a,b,c=null){try{await (0,p.proxyAwareFetch)(`${$}/v0/chat_session/delete`,{method:"POST",headers:{...aa,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})},c)}catch{}}async function am(a,b,c="/api/v0/chat/completion",d=null){return T({accessToken:a,headers:aa,signal:b,targetPath:c,proxyOptions:d})}class an extends d.H{constructor(){super("deepseek-web",{baseUrl:Z})}async testConnection(a,b){try{let c=ae(a);if(!c)return!1;return!!await aj(c,b,null,a?.proxyOptions||null)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:g,log:h,proxyOptions:i=null}){var j;let k,l,m=b||{},n=m.tools,o=Array.isArray(n)&&n.length>0,r=o?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=(0,q.OA)(a);if(!b)return"";let c=[];for(let d of a){let a=d?.function;if(!a?.name)continue;let e="string"==typeof a.description&&a.description?a.description:"",f="";try{let c=u(a.parameters),d=u(c?.properties),e=Array.isArray(c?.required)?c.required.filter(a=>"string"==typeof a):[],g=c?{...c,properties:{...d??{},_nonce:{type:"string",const:b}},required:[...new Set([...e,"_nonce"])]}:a.parameters;f=g?JSON.stringify(g):""}catch{f=""}c.push(`- ${a.name}${e?`: ${e}`:""}${f?`
247
- parameters: ${f}`:""}`)}return 0===c.length?"":["You can call tools. To call a tool, output ONLY this exact block (no markdown fence):",`<tool>{"name": "<tool_name>", "arguments": { ... }, "_nonce": "${b}"}</tool>`,"Rules:","- Use exactly <tool>...</tool>. Do NOT use <tool:name>, <tool_call>, <name>, <parameter>, id=/name= attributes, <||DSML||> markers, or code fences.",`- Include the secret binding "_nonce": "${b}" exactly as shown.`,'- "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 your runtime forces DSML instead, every DSML invoke MUST include this exact binding:",`<||DSML|| parameter name="_nonce" string="true">${b}</||DSML|| parameter>`," A DSML invoke without that binding is invalid and will be rejected.","- If no tool is needed, just answer normally without any <tool> block.","","Available tools:",...c].join("\n")}(n):"",s=Array.isArray(m.messages)?m.messages:[],t=r?[{role:"system",content:r},...s]:s,v=d??{},w=ae(v);if(!w)return{response:af(400,"Missing userToken — paste it from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:_,headers:{},transformedBody:b};let{modelType:z,thinkingEnabled:A,searchEnabled:B}=(l=(k=(a||"").toLowerCase()).includes("pro")||k.includes("expert")?"expert":"default",{modelType:l,thinkingEnabled:k.includes("r1")||k.includes("think")||k.includes("reason")||m?.thinking_enabled===!0||m?.thinking===!0||!!m?.reasoning_effort,searchEnabled:k.includes("search")||m?.search_enabled===!0||m?.search===!0||m?.web_search===!0}),C=v.providerSpecificData??{},D=!0===C.persistSession,E="number"==typeof C.historyWindow&&C.historyWindow>0?C.historyWindow:0;try{let b=Date.now(),d=await aj(w,g,h,i);h?.info?.("DEEPSEEK-WEB",`Token acquired in ${Date.now()-b}ms`);let k=o?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=y(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=y(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=y(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=y(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,"")}(s,r):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=[];c.length>0&&h.push(c.join("\n\n"));let i=b>0?b:20*(d.length>1);if(i>0&&d.length>1){let a=d.slice(-i).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,"")}(t,E);h?.info?.("DEEPSEEK-WEB",`model_type=${z}, thinking=${A}, search=${B}, stream=${!1!==c}, persist=${D}, window=${E}`);let l=async(a,b=k)=>{let c=await am(d,g,void 0,i),e=await ah(c,g),f={...aa,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":e,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:ag()},h={chat_session_id:a,parent_message_id:null,model_type:z,prompt:b,ref_file_ids:Array.isArray(m.ref_file_ids)?m.ref_file_ids:[],thinking_enabled:A,search_enabled:B,preempt:!1};return{resp:await (0,p.proxyAwareFetch)(_,{method:"POST",headers:f,body:JSON.stringify(h),signal:g??void 0},i),reqHeaders:f,requestPayload:h}},u=async()=>{if(D){let a=ac.get(w);if(a)return{sessionId:a.sessionId,reused:!0};let b=await ak(d,g,i);return ad(ac),ac.set(w,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await ak(d,g,i),reused:!1}};b=Date.now();let{sessionId:v,reused:C}=await u();h?.info?.("DEEPSEEK-WEB",`Session ${C?"reused":"created"} in ${Date.now()-b}ms`),b=Date.now(),h?.info?.("DEEPSEEK-WEB",`POST ${_}`);let{resp:F,reqHeaders:G,requestPayload:H}=await l(v);if(h?.info?.("DEEPSEEK-WEB",`Completion response in ${Date.now()-b}ms, status=${F.status}`),!F.ok&&D&&C&&(h?.warn?.("DEEPSEEK-WEB","Reused session failed — retrying with a fresh session"),ac.delete(w),v=await ak(d,g,i),ad(ac),ac.set(w,{sessionId:v,createdAt:Date.now()}),C=!1,{resp:F,reqHeaders:G,requestPayload:H}=await l(v)),!F.ok){let a=F.status,b=`DeepSeek API error (${a})`;401===a||403===a?(ab.delete(w),b="DeepSeek token expired — get a fresh userToken from localStorage."):429===a&&(b="DeepSeek rate limited. Wait and retry."),h?.warn?.("DEEPSEEK-WEB",b);try{let a=await F.json();a?.code&&0!==a.code&&(b=`DeepSeek error ${a.code}: ${a.msg}`)}catch{}return D&&ac.delete(w),al(d,v,i).catch(()=>{}),{response:af(a,b),url:_,headers:G,transformedBody:H}}if((F.headers.get("content-type")||"").includes("application/json"))try{let a=await F.json(),b=function(a){if(!a||"object"!=typeof a)return null;let b="number"==typeof a.code?a.code:void 0,c=a.msg,d=a.data?.biz_msg;return void 0!==b&&0!==b?{code:b,message:("string"==typeof c?c:"string"==typeof d?d:"")||`DeepSeek error ${b}`}:null}(a);if(b){let a=`DeepSeek error ${b.code}: ${b.message}`;h?.warn?.("DEEPSEEK-WEB",a);let c=40003===b.code?401:40002===b.code?429:502;return 40003===b.code&&ab.delete(w),D&&ac.delete(w),al(d,v,i).catch(()=>{}),{response:af(c,a,b.code),url:_,headers:G,transformedBody:H}}return D||al(d,v,i).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:_,headers:G,transformedBody:H}}catch{}let I=D?async()=>{}:()=>al(d,v),J="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(o){let{content:a,reasoningContent:b}=await ai(F.body,J),j=R(a,`call-${Date.now()}`,n),m=async a=>(await I(),{response:af(502,a),url:_,headers:G,transformedBody:H});if(function(a,b){if(x(a))return!0;if("string"!=typeof a||!a.trim())return!1;let c=(0,q.n)(a);if(!c||void 0===c.arguments)return!1;let d=[c.name,c.command].find(a=>"string"==typeof a&&a.length>0)??null;return!!d&&!!(0,q.Ub)(d,(0,q.x2)(b))}(j.content,n)){h?.warn?.("DEEPSEEK-WEB","Malformed tool envelope — retrying once with nonce binding"),ac.delete(w),await al(d,v,i).catch(()=>{}),v=await ak(d,g,i),D&&(ad(ac),ac.set(w,{sessionId:v,createdAt:Date.now()}));let c=[k,"Your previous response used an invalid tool envelope and was rejected.","Retry the requested next action from scratch. Follow the client tool contract exactly, including its _nonce binding and argument schema. Do not emit bare JSON or unbound DSML."].join("\n\n");if({resp:F,reqHeaders:G,requestPayload:H}=await l(v,c),!F.ok)return m("DeepSeek tool-call repair request failed.");if({content:a,reasoningContent:b}=await ai(F.body,J),j=R(a,`call-${Date.now()}`,n),x(j.content))return m("DeepSeek emitted an invalid tool call after repair.")}return await I(),function(a){let{stream:b,clientModel:c,content:d,reasoningContent:g,toolCalls:h,reqHeaders:i,requestPayload:j}=a,k=!!h&&h.length>0,l=k?"tool_calls":"stop",m=`chatcmpl-${Date.now()}`,n=Math.floor(Date.now()/1e3);if(b){let a=new TextEncoder,b=(b,d,e)=>{b.enqueue(a.encode((0,f.N)({id:m,object:"chat.completion.chunk",created:n,model:c,system_fingerprint:null,choices:[{index:0,delta:d,finish_reason:e,logprobs:null}]})))};return{response:new Response(new ReadableStream({start(c){b(c,{role:"assistant",content:""},null),g&&b(c,{reasoning_content:g},null),d&&b(c,{content:d},null),k&&b(c,{tool_calls:h.map((a,b)=>({index:b,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}))},null),b(c,{},l),c.enqueue(a.encode(e.$U)),c.close()}}),{status:200,headers:{...e.uB}}),url:_,headers:i,transformedBody:j}}let o={role:"assistant",content:d||""};return g&&(o.reasoning_content=g),k&&(o.tool_calls=h,d||(o.content=null)),{response:new Response(JSON.stringify({id:m,object:"chat.completion",created:n,model:c,choices:[{index:0,message:o,finish_reason:l,logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:_,headers:i,transformedBody:j}}({stream:!1!==c,clientModel:J,content:j.content,reasoningContent:b,toolCalls:j.toolCalls,reqHeaders:G,requestPayload:H})}if(!1!==c){let a,b=(j=function(a,b,c=null){let d=new TextEncoder,g=new TextDecoder,h=b||"deepseek-web",i=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,j=Math.floor(Date.now()/1e3),k=!1,l="",m=V(h),n=[],o=null,p=null;return new ReadableStream({async start(b){var q;let r,s=a.getReader();o=s;let t="",u=!1,v=!1,w=(a,c)=>{b.enqueue(d.encode((0,f.N)({id:i,object:"chat.completion.chunk",created:j,model:h,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:c??null,logprobs:null}]})))},x=()=>{k||(k=!0,w({role:"assistant",content:""}))},{finishOnce:y,hasFinished:z}=(q=()=>{let a=Y(n,h);a&&(x(),w({content:`
246
+ ${o}`),!i)throw Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request.");return{content:f,reasoningContent:g}}async function am(a,b,c,d=null){let e=ae.get(a);if(e&&e.expiresAt>Math.floor(Date.now()/1e3))return e.accessToken;c?.info?.("DEEPSEEK-WEB","Acquiring access token from /users/current...");let f=await (0,s.proxyAwareFetch)(`${ab}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...ad},signal:b??void 0},d);if(401===f.status||403===f.status)throw Error("Token invalid or expired — get a new userToken from DeepSeek localStorage");if(!f.ok)throw Error(`users/current HTTP ${f.status}`);let g=await f.json();if(g?.code&&0!==g.code){let b=g.msg||g?.data?.biz_msg||`error code ${g.code}`;throw ae.delete(a),Error(`DeepSeek rejected token: ${b}`)}let h=g?.data?.biz_data||g?.biz_data;if(!h?.token){let a=g?.msg||g?.data?.biz_msg||"Unknown error";throw Error(`Failed to acquire token: ${a}`)}let i=h.token;return ag(ae),ae.set(a,{accessToken:i,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${i.length} chars)`),i}async function an(a,b,c=null){let d=await (0,s.proxyAwareFetch)(`${ab}/v0/chat_session/create`,{method:"POST",headers:{...ad,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:aj()},body:JSON.stringify({}),signal:b??void 0},c);if(!d.ok)throw Error(`chat_session/create HTTP ${d.status}`);let e=await d.json(),f=e?.data?.biz_data||e?.biz_data,g=f?.chat_session?.id;if(!g)throw Error(`No session id: code=${e?.code}`);return g}async function ao(a,b,c=null){try{await (0,s.proxyAwareFetch)(`${ab}/v0/chat_session/delete`,{method:"POST",headers:{...ad,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})},c)}catch{}}async function ap(a,b,c="/api/v0/chat/completion",d=null){return W({accessToken:a,headers:ad,signal:b,targetPath:c,proxyOptions:d})}class aq extends d.H{constructor(){super("deepseek-web",{baseUrl:aa})}async testConnection(a,b){try{let c=ah(a);if(!c)return!1;return!!await am(c,b,null,a?.proxyOptions||null)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:g,log:h,proxyOptions:i=null}){var j;let k,l,m=b||{},n=m.tools,o=Array.isArray(n)&&n.length>0,p=o?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=(0,t.OA)(a);if(!b)return"";let c=[];for(let d of a){let a=d?.function;if(!a?.name)continue;let e="string"==typeof a.description&&a.description?a.description:"",f="";try{let c=x(a.parameters),d=x(c?.properties),e=Array.isArray(c?.required)?c.required.filter(a=>"string"==typeof a):[],g=c?{...c,properties:{...d??{},_nonce:{type:"string",const:b}},required:[...new Set([...e,"_nonce"])]}:a.parameters;f=g?JSON.stringify(g):""}catch{f=""}c.push(`- ${a.name}${e?`: ${e}`:""}${f?`
247
+ parameters: ${f}`:""}`)}return 0===c.length?"":["You can call tools. To call a tool, output ONLY this exact block (no markdown fence):",`<tool>{"name": "<tool_name>", "arguments": { ... }, "_nonce": "${b}"}</tool>`,"Rules:","- Use exactly <tool>...</tool>. Do NOT use <tool:name>, <tool_call>, <name>, <parameter>, id=/name= attributes, <||DSML||> markers, or code fences.",`- Include the secret binding "_nonce": "${b}" exactly as shown.`,'- "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 your runtime forces DSML instead, every DSML invoke MUST include this exact binding:",`<||DSML|| parameter name="_nonce" string="true">${b}</||DSML|| parameter>`," A DSML invoke without that binding is invalid and will be rejected.","- If no tool is needed, just answer normally without any <tool> block.","","Available tools:",...c].join("\n")}(n):"",q=Array.isArray(m.messages)?m.messages:[],r=p?[{role:"system",content:p},...q]:q,u=d??{},v=ah(u);if(!v)return{response:ai(400,"Missing userToken — paste it from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:ac,headers:{},transformedBody:b};let{modelType:w,thinkingEnabled:y,searchEnabled:z}=(l=(k=(a||"").toLowerCase()).includes("pro")||k.includes("expert")?"expert":"default",{modelType:l,thinkingEnabled:k.includes("r1")||k.includes("think")||k.includes("reason")||m?.thinking_enabled===!0||m?.thinking===!0||!!m?.reasoning_effort,searchEnabled:k.includes("search")||m?.search_enabled===!0||m?.search===!0||m?.web_search===!0}),C=u.providerSpecificData??{},D=!0===C.persistSession,E="number"==typeof C.historyWindow&&C.historyWindow>0?C.historyWindow:0;try{let b=Date.now(),d=await am(v,g,h,i);h?.info?.("DEEPSEEK-WEB",`Token acquired in ${Date.now()-b}ms`);let k=o?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=B(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=B(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=B(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=B(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,"")}(q,p):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=[];c.length>0&&h.push(c.join("\n\n"));let i=b>0?b:20*(d.length>1);if(i>0&&d.length>1){let a=d.slice(-i).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,"")}(r,E);h?.info?.("DEEPSEEK-WEB",`model_type=${w}, thinking=${y}, search=${z}, stream=${!1!==c}, persist=${D}, window=${E}`);let l=async(a,b=k)=>{let c=await ap(d,g,void 0,i),e=await ak(c,g),f={...ad,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":e,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:aj()},h={chat_session_id:a,parent_message_id:null,model_type:w,prompt:b,ref_file_ids:Array.isArray(m.ref_file_ids)?m.ref_file_ids:[],thinking_enabled:y,search_enabled:z,preempt:!1};return{resp:await (0,s.proxyAwareFetch)(ac,{method:"POST",headers:f,body:JSON.stringify(h),signal:g??void 0},i),reqHeaders:f,requestPayload:h}},u=async()=>{if(D){let a=af.get(v);if(a)return{sessionId:a.sessionId,reused:!0};let b=await an(d,g,i);return ag(af),af.set(v,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await an(d,g,i),reused:!1}};b=Date.now();let{sessionId:x,reused:C}=await u();h?.info?.("DEEPSEEK-WEB",`Session ${C?"reused":"created"} in ${Date.now()-b}ms`),b=Date.now(),h?.info?.("DEEPSEEK-WEB",`POST ${ac}`);let{resp:F,reqHeaders:G,requestPayload:H}=await l(x);if(h?.info?.("DEEPSEEK-WEB",`Completion response in ${Date.now()-b}ms, status=${F.status}`),!F.ok&&D&&C&&(h?.warn?.("DEEPSEEK-WEB","Reused session failed — retrying with a fresh session"),af.delete(v),x=await an(d,g,i),ag(af),af.set(v,{sessionId:x,createdAt:Date.now()}),C=!1,{resp:F,reqHeaders:G,requestPayload:H}=await l(x)),!F.ok){let a=F.status,b=`DeepSeek API error (${a})`;401===a||403===a?(ae.delete(v),b="DeepSeek token expired — get a fresh userToken from localStorage."):429===a&&(b="DeepSeek rate limited. Wait and retry."),h?.warn?.("DEEPSEEK-WEB",b);try{let a=await F.json();a?.code&&0!==a.code&&(b=`DeepSeek error ${a.code}: ${a.msg}`)}catch{}return D&&af.delete(v),ao(d,x,i).catch(()=>{}),{response:ai(a,b),url:ac,headers:G,transformedBody:H}}if((F.headers.get("content-type")||"").includes("application/json"))try{let a=await F.json(),b=function(a){if(!a||"object"!=typeof a)return null;let b="number"==typeof a.code?a.code:void 0,c=a.msg,d=a.data?.biz_msg;return void 0!==b&&0!==b?{code:b,message:("string"==typeof c?c:"string"==typeof d?d:"")||`DeepSeek error ${b}`}:null}(a);if(b){let a=`DeepSeek error ${b.code}: ${b.message}`;h?.warn?.("DEEPSEEK-WEB",a);let c=40003===b.code?401:40002===b.code?429:502;return 40003===b.code&&ae.delete(v),D&&af.delete(v),ao(d,x,i).catch(()=>{}),{response:ai(c,a,b.code),url:ac,headers:G,transformedBody:H}}return D||ao(d,x,i).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:ac,headers:G,transformedBody:H}}catch{}let I=D?async()=>{}:()=>ao(d,x),J="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(o){let{content:a,reasoningContent:b}=await al(F.body,J),j=U(a,`call-${Date.now()}`,n),m=async a=>(await I(),{response:ai(502,a),url:ac,headers:G,transformedBody:H});if(function(a,b){if(A(a))return!0;if("string"!=typeof a||!a.trim())return!1;let c=(0,t.n)(a);if(!c||void 0===c.arguments)return!1;let d=[c.name,c.command].find(a=>"string"==typeof a&&a.length>0)??null;return!!d&&!!(0,t.Ub)(d,(0,t.x2)(b))}(j.content,n)){h?.warn?.("DEEPSEEK-WEB","Malformed tool envelope — retrying once with nonce binding"),af.delete(v),await ao(d,x,i).catch(()=>{}),x=await an(d,g,i),D&&(ag(af),af.set(v,{sessionId:x,createdAt:Date.now()}));let c=[k,"Your previous response used an invalid tool envelope and was rejected.","Retry the requested next action from scratch. Follow the client tool contract exactly, including its _nonce binding and argument schema. Do not emit bare JSON or unbound DSML."].join("\n\n");if({resp:F,reqHeaders:G,requestPayload:H}=await l(x,c),!F.ok)return m("DeepSeek tool-call repair request failed.");if({content:a,reasoningContent:b}=await al(F.body,J),j=U(a,`call-${Date.now()}`,n),A(j.content))return m("DeepSeek emitted an invalid tool call after repair.")}return await I(),function(a){let{stream:b,clientModel:c,content:d,reasoningContent:g,toolCalls:h,reqHeaders:i,requestPayload:j}=a,k=!!h&&h.length>0,l=k?"tool_calls":"stop",m=`chatcmpl-${Date.now()}`,n=Math.floor(Date.now()/1e3);if(b){let a=new TextEncoder,b=(b,d,e)=>{b.enqueue(a.encode((0,f.N)({id:m,object:"chat.completion.chunk",created:n,model:c,system_fingerprint:null,choices:[{index:0,delta:d,finish_reason:e,logprobs:null}]})))};return{response:new Response(new ReadableStream({start(c){b(c,{role:"assistant",content:""},null),g&&b(c,{reasoning_content:g},null),d&&b(c,{content:d},null),k&&b(c,{tool_calls:h.map((a,b)=>({index:b,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}))},null),b(c,{},l),c.enqueue(a.encode(e.$U)),c.close()}}),{status:200,headers:{...e.uB}}),url:ac,headers:i,transformedBody:j}}let o={role:"assistant",content:d||""};return g&&(o.reasoning_content=g),k&&(o.tool_calls=h,d||(o.content=null)),{response:new Response(JSON.stringify({id:m,object:"chat.completion",created:n,model:c,choices:[{index:0,message:o,finish_reason:l,logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:ac,headers:i,transformedBody:j}}({stream:!1!==c,clientModel:J,content:j.content,reasoningContent:b,toolCalls:j.toolCalls,reqHeaders:G,requestPayload:H})}if(!1!==c){let a,b=(j=function(a,b,c=null){let d=new TextEncoder,g=new TextDecoder,h=b||"deepseek-web",i=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,j=Math.floor(Date.now()/1e3),k=!1,l="",m=Y(h),n=[],o=null,p=null;return new ReadableStream({async start(b){var q;let r,s=a.getReader();o=s;let t="",u=!1,v=!1,w=(a,c)=>{b.enqueue(d.encode((0,f.N)({id:i,object:"chat.completion.chunk",created:j,model:h,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:c??null,logprobs:null}]})))},x=()=>{k||(k=!0,w({role:"assistant",content:""}))},{finishOnce:y,hasFinished:z}=(q=()=>{let a=_(n,h);a&&(x(),w({content:`
248
248
 
249
- ${a}`})),x(),w({},"stop"),b.enqueue(d.encode(e.$U)),b.close()},r=!1,{finishOnce:()=>{if(!r){r=!0;try{q()}catch{}}},hasFinished:()=>r}),{scheduleFinishAfterDrain:A,clearFinishedDrain:B,isDrainPending:C}=p=function(a,b=750){let c=null,d=()=>{c&&(clearTimeout(c),c=null)};return{scheduleFinishAfterDrain:()=>{d(),c=setTimeout(()=>{c=null,a()},b)},clearFinishedDrain:d,isDrainPending:()=>null!==c}}(y),D=a=>{let b=X(a,h);if(!b)return;x(),v=!0;let c=l;!c&&m?c="thinking":!c&&W(h)&&(c="content"),"thinking"===c?w({reasoning_content:b}):w({content:b})},E=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?l="thinking":("ANSWER"===c||"RESPONSE"===c)&&(l="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?l="thinking":("ANSWER"===b||"RESPONSE"===b)&&(l="content")}D(a.content)}};try{for(;;){let{done:a,value:b}=await s.read();if(a)break;let c=(t+=g.decode(b,{stream:!0})).split("\n");for(let a of(t=c.pop()||"",c)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void y();try{b=JSON.parse(c)}catch{continue}let d=b?.p,e=b?.o,f=b?.v;if(f&&"object"==typeof f&&f.response){!0===f.response.thinking_enabled?l="thinking":!1===f.response.thinking_enabled&&(l="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)E(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)E(a,!0);else f&&"object"==typeof f&&E(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(l="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)n.length=0,n.push(...f);else for(let a of f){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);n[c]&&(n[c].cite_index=a.v)}}continue}if("string"==typeof f)D(f);else if(Array.isArray(f)&&"response"===d){for(let a of f)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&D(b)}}if("response/status"===d&&"FINISHED"===f){u=!0,A();continue}C()&&A()}}}}catch(a){B(),z()||b.error(a);return}if(!u&&!v){B(),b.error(Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request."));return}u||c?.warn?.("DEEPSEEK-WEB","upstream closed without FINISHED after partial content; completing with what arrived"),y()},cancel(a){p?.clearFinishedDrain(),o?.cancel(a).catch(()=>{})}},{highWaterMark:16384})}(F.body,J,h),a=j.getReader(),new ReadableStream({async pull(b){let{done:c,value:d}=await a.read();if(c){b.close(),I().catch(()=>{});return}b.enqueue(d)},cancel(){a.cancel(),I().catch(()=>{})}}));return{response:new Response(b,{status:200,headers:{...e.uB}}),url:_,headers:G,transformedBody:H}}let{content:K,reasoningContent:L}=await ai(F.body,J);await I();let M={role:"assistant",content:K};L&&(M.reasoning_content=L);let N={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||z,choices:[{index:0,message:M,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(N),{status:200,headers:{"Content-Type":"application/json"}}),url:_,headers:G,transformedBody:H}}catch(c){let a=c instanceof Error?c.message:String(c);if(h?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof Error&&"AbortError"===c.name)return{response:af(499,"Request cancelled"),url:_,headers:{},transformedBody:b};return{response:af(502,`DeepSeek error: ${a}`),url:_,headers:{},transformedBody:b}}}}new an},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>n});var d=c(74957),e=c(12643),f=c(57247),g=c(8521),h=c(39609),i=c(49426),j=c(41004);let k=new Map;function l(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function m(a){if(k.has(a))return k.get(a);let b=await (0,i.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&k.set(a,e),e}class n extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,g.Sc)(d?.apiKey),h=l(d?.apiKey),i=!!e||!!h||!!d?.accessToken,j=i?null:d?.apiKey,k=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||(0,f.V2)(this.provider,a)?.defaultLocation||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=k?`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),j&&(o+=b?`&key=${j}`:`?key=${j}`),o}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}async refreshCredentials(a,b){let c=(0,g.Sc)(a?.apiKey);if(!c)return null;let d=await (0,g.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:k=null}){let n,o=(0,g.Sc)(d?.apiKey),p=l(d?.apiKey);if(o){let a=await (0,g.pb)(o,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,g.I9)(p.refresh_token,p.client_id,p.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await m(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,i.n)(e,this.config?.timeoutMs||j.Z1);try{n=await (0,h.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},k)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},74161:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(96179),e=c(94526);class f extends d.L{constructor(){super("zcode")}transformRequest(a,b,c,d){return function(a){var b;let c;if(!a||"object"!=typeof a||Array.isArray(a)||!((c=(Array.isArray(b=a.system)?b:"string"==typeof b?[b]:[]).map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"")).length>3)&&e.L.every(a=>c.some(b=>b===a.text)))return a;let d=function(a){if("string"==typeof a)return e.L.some(b=>b.text===a)?null:{text:a,cacheControl:null};if(!Array.isArray(a))return null;let b=null,c=[];for(let d of a){if("string"==typeof d){d&&!e.L.some(a=>a.text===d)&&c.push(d);continue}"string"==typeof d?.text&&d.text&&!e.L.some(a=>a.text===d.text)&&c.push(d.text),d?.cache_control&&(b=d.cache_control)}return c.length?{text:c.join("\n\n"),cacheControl:b}:null}(a.system);if(d)return{...a,system:[...e.L,{type:"text",text:d.text,...d.cacheControl?{cache_control:{...d.cacheControl}}:{}}]};let f=null;if(Array.isArray(a.system))for(let b of a.system)b?.cache_control&&(f=b.cache_control);if(!f)return{...a,system:[...e.L]};let g=e.L.map((a,b)=>b===e.L.length-1?{...a,cache_control:{...f}}:a);return{...a,system:g}}(super.transformRequest(a,b,c,d))}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(12643),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
249
+ ${a}`})),x(),w({},"stop"),b.enqueue(d.encode(e.$U)),b.close()},r=!1,{finishOnce:()=>{if(!r){r=!0;try{q()}catch{}}},hasFinished:()=>r}),{scheduleFinishAfterDrain:A,clearFinishedDrain:B,isDrainPending:C}=p=function(a,b=750){let c=null,d=()=>{c&&(clearTimeout(c),c=null)};return{scheduleFinishAfterDrain:()=>{d(),c=setTimeout(()=>{c=null,a()},b)},clearFinishedDrain:d,isDrainPending:()=>null!==c}}(y),D=a=>{let b=$(a,h);if(!b)return;x(),v=!0;let c=l;!c&&m?c="thinking":!c&&Z(h)&&(c="content"),"thinking"===c?w({reasoning_content:b}):w({content:b})},E=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?l="thinking":("ANSWER"===c||"RESPONSE"===c)&&(l="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?l="thinking":("ANSWER"===b||"RESPONSE"===b)&&(l="content")}D(a.content)}};try{for(;;){let{done:a,value:b}=await s.read();if(a)break;let c=(t+=g.decode(b,{stream:!0})).split("\n");for(let a of(t=c.pop()||"",c)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void y();try{b=JSON.parse(c)}catch{continue}let d=b?.p,e=b?.o,f=b?.v;if(f&&"object"==typeof f&&f.response){!0===f.response.thinking_enabled?l="thinking":!1===f.response.thinking_enabled&&(l="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)E(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)E(a,!0);else f&&"object"==typeof f&&E(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(l="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)n.length=0,n.push(...f);else for(let a of f){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);n[c]&&(n[c].cite_index=a.v)}}continue}if("string"==typeof f)D(f);else if(Array.isArray(f)&&"response"===d){for(let a of f)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&D(b)}}if("response/status"===d&&"FINISHED"===f){u=!0,A();continue}C()&&A()}}}}catch(a){B(),z()||b.error(a);return}if(!u&&!v){B(),b.error(Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request."));return}u||c?.warn?.("DEEPSEEK-WEB","upstream closed without FINISHED after partial content; completing with what arrived"),y()},cancel(a){p?.clearFinishedDrain(),o?.cancel(a).catch(()=>{})}},{highWaterMark:16384})}(F.body,J,h),a=j.getReader(),new ReadableStream({async pull(b){let{done:c,value:d}=await a.read();if(c){b.close(),I().catch(()=>{});return}b.enqueue(d)},cancel(){a.cancel(),I().catch(()=>{})}}));return{response:new Response(b,{status:200,headers:{...e.uB}}),url:ac,headers:G,transformedBody:H}}let{content:K,reasoningContent:L}=await al(F.body,J);await I();let M={role:"assistant",content:K};L&&(M.reasoning_content=L);let N={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||w,choices:[{index:0,message:M,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(N),{status:200,headers:{"Content-Type":"application/json"}}),url:ac,headers:G,transformedBody:H}}catch(c){let a=c instanceof Error?c.message:String(c);if(h?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof Error&&"AbortError"===c.name)return{response:ai(499,"Request cancelled"),url:ac,headers:{},transformedBody:b};return{response:ai(502,`DeepSeek error: ${a}`),url:ac,headers:{},transformedBody:b}}}}new aq},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},63094:(a,b,c)=>{c.d(b,{j9:()=>L});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643),h=c(57247),i=c(41004),j=c(72239),k=c(14170),l=c(86724),m=c(80662),n=c(60210),o=c(20742);let p=null;class q extends Error{constructor(a){super(a),this.name="OpencodeTlsUnavailableError"}}async function r(){return p||(p=(async()=>{let a=await (0,o.A)("wreq-js");if("function"!=typeof a.createSession)throw Error("wreq-js runtime is missing createSession");return a.createSession({emulation:{tlsOptions:{cipherList:"TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA"}}})})().catch(a=>{throw p=null,a})),p}async function s(a,b={},{signal:c,timeoutMs:d=12e4}={}){let e;try{e=await r()}catch(a){throw new q(`wreq-js unavailable (${a instanceof Error?a.message:"unknown"}) — install the optional wreq-js dependency to reach the OpenCode free tier`)}let f={method:b.method||"GET",headers:b.headers,redirect:"follow",timeout:d};void 0!==b.body&&(f.body=b.body),c&&(f.signal=c);let g=await e.fetch(a,f),h={};return g.headers?.forEach?.((a,b)=>{h[b]=a}),new Response(g.body,{status:g.status,statusText:g.statusText,headers:h})}var t=c(37981),u=c(80614);let v="x-opencode-session",w="_opencodeSession",x=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,y=0,z=0;function A(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[a[c]%62];return b}let B=(1n<<48n)-1n;function C(a,b){return(~(4096n*BigInt(a)+BigInt(b))&B).toString(16).padStart(12,"0")}let D=new Map,E=setInterval(()=>{let a=Date.now();for(let[b,c]of D)a-c.lastUsed>i.v1.sessionTtlMs&&D.delete(b)},i.v1.sessionCleanupIntervalMs);function F(a,b=""){if("string"==typeof a&&x.test(a.trim()))return a.trim();let c=`${b||"generic"}\0${a||""}`,d=D.get(c);if(d)return d.lastUsed=Date.now(),d.sessionId;let e=`ses_${C(Date.now(),1)}${A()}`;return D.size>=5e3&&D.delete(D.keys().next().value),D.set(c,{sessionId:e,lastUsed:Date.now()}),e}function G(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}E.unref&&E.unref();let H=new Map,I=setInterval(()=>{let a=Date.now();for(let[b,c]of H)a-c.lastUsed>i.v1.sessionTtlMs&&H.delete(b)},i.v1.sessionCleanupIntervalMs);function J(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function K(a){let b=h.Xg.opencode||"opencode";return(0,h.ux)(b,J(a))===k.h.OPENAI_RESPONSES}I.unref&&I.unref();class L extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===v){let a=G(c);if(a&&x.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===v){h=G(b);break}let i=h||G(c);if(i)return F(i,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,m.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return F(c,d)}let j=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),k=H.get(j);if(k)return k.lastUsed=Date.now(),H.delete(j),H.set(j,k),k.sessionId;let l=function(a=Date.now()){return a!==y&&(y=a,z=0),z++,`ses_${C(a,z)}${A()}`}();return H.size>=1e3&&H.delete(H.keys().next().value),H.set(j,{sessionId:l,lastUsed:Date.now()}),l}(a,f,c,d);return{...f,[w]:g}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),K(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(J(a))&&(b.tool_choice="auto");let c=(0,t.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=J(a||b.model),g=(0,j.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,t.N8)(a.call_id),a.arguments=(0,t.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,t.N8)(a.call_id),a.output=(0,t.DP)(a.output)),!0)))),(0,n.Ke)(b,!0)}else b&&"object"==typeof b&&(b?.reasoning_effort==="auto"&&delete b.reasoning_effort,(0,n.Ke)(b,!1));return(0,l.Z)({provider:this.provider,model:a,body:b})}async execute(a){if(await (0,u.Rm)())return(0,u.nY)(a);let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b,directFetch:(a,b)=>s(a,{method:b.method,headers:b.headers,body:b.body},{signal:b.signal})})}buildUrl(a){let b=this.config.baseUrl;return K(a)?`${b}/inference/v1/responses`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0){let c,d=a?.rawHeaders||{},e={};for(let[a,b]of Object.entries(d))e[a.toLowerCase()]=b;let f=e["user-agent"]||"",g=!!(c=String(f||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(c[1],10)>=2,h=a?.[w]||this.prepareRequestCredentials({credentials:a})[w];return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":g?f:"opencode/latest/2.0.26/cli","x-opencode-client":e["x-opencode-client"]||"cli","x-opencode-session":h,"x-opencode-session-id":h,"x-session-affinity":h,"x-session-id":h,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"}}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>n});var d=c(74957),e=c(12643),f=c(57247),g=c(8521),h=c(39609),i=c(49426),j=c(41004);let k=new Map;function l(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function m(a){if(k.has(a))return k.get(a);let b=await (0,i.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&k.set(a,e),e}class n extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,g.Sc)(d?.apiKey),h=l(d?.apiKey),i=!!e||!!h||!!d?.accessToken,j=i?null:d?.apiKey,k=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||(0,f.V2)(this.provider,a)?.defaultLocation||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=k?`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),j&&(o+=b?`&key=${j}`:`?key=${j}`),o}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}async refreshCredentials(a,b){let c=(0,g.Sc)(a?.apiKey);if(!c)return null;let d=await (0,g.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:k=null}){let n,o=(0,g.Sc)(d?.apiKey),p=l(d?.apiKey);if(o){let a=await (0,g.pb)(o,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,g.I9)(p.refresh_token,p.client_id,p.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await m(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,i.n)(e,this.config?.timeoutMs||j.Z1);try{n=await (0,h.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},k)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},74161:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(96179),e=c(94526);class f extends d.L{constructor(){super("zcode")}transformRequest(a,b,c,d){return function(a){var b;let c;if(!a||"object"!=typeof a||Array.isArray(a)||!((c=(Array.isArray(b=a.system)?b:"string"==typeof b?[b]:[]).map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"")).length>3)&&e.L.every(a=>c.some(b=>b===a.text)))return a;let d=function(a){if("string"==typeof a)return e.L.some(b=>b.text===a)?null:{text:a,cacheControl:null};if(!Array.isArray(a))return null;let b=null,c=[];for(let d of a){if("string"==typeof d){d&&!e.L.some(a=>a.text===d)&&c.push(d);continue}"string"==typeof d?.text&&d.text&&!e.L.some(a=>a.text===d.text)&&c.push(d.text),d?.cache_control&&(b=d.cache_control)}return c.length?{text:c.join("\n\n"),cacheControl:b}:null}(a.system);if(d)return{...a,system:[...e.L,{type:"text",text:d.text,...d.cacheControl?{cache_control:{...d.cacheControl}}:{}}]};let f=null;if(Array.isArray(a.system))for(let b of a.system)b?.cache_control&&(f=b.cache_control);if(!f)return{...a,system:[...e.L]};let g=e.L.map((a,b)=>b===e.L.length-1?{...a,cache_control:{...f}}:a);return{...a,system:g}}(super.transformRequest(a,b,c,d))}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(12643),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
250
250
 
251
251
  data: [DONE]
252
252
 
@@ -270,11 +270,11 @@ Content-Type: ${d||"application/octet-stream"}\r
270
270
 
271
271
  `)),c.enqueue(i.encode(l.$U)),j=!0;return}h&&(n.handleInner(h,c),o())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(p(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(p(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{n.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class Z extends g.H{constructor(a="qoder"){super(a,h.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,n.e9)(a,this.region)}/algo${n.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:e,signal:f,log:g,proxyOptions:h=null}){let k,l,p,q=e?.apiKey||e?.accessToken;if((0,o.zh)(q))try{e=await (0,o._M)(e,h,f,this.region)}catch(a){return g?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(e),headers:{},transformedBody:b}}let z=this.buildUrl(e),A=e?.providerSpecificData||{};if(!A.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};if(!e?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};try{({qoderKey:k,payload:l}=await S({model:a,body:b,credentials:e,log:g,proxyOptions:h,signal:f,region:this.region}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let B=`${this.provider}/${k}`,C=async a=>{let c,g,l=Buffer.from(JSON.stringify(a),"utf8"),n=Buffer.from(function(a){let b=(Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"utf8"):Buffer.from(a)).toString("base64"),c=b.length,e=Math.floor(c/3),f=b.slice(c-e)+b.slice(e,c-e)+b.slice(0,e),g=Buffer.alloc(c);for(let a=0;a<c;a++){let b=f.charCodeAt(a);b<128&&d[b]>=0?g[a]=d[b]:g[a]=b}return g.toString("latin1")}(l),"latin1");try{c=(0,r.dE)(n,z,{userId:A.userId,authToken:e.accessToken,name:e.displayName||"",email:e.email||"",machineId:A.machineId||(0,r.if)(A.userId)})}catch(a){return{error:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let o={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":k,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c},p=this.config?.timeoutMs||m.pH,q=(0,j.n)(f,p);try{g=await (0,i.proxyAwareFetch)(z,{method:"POST",headers:o,body:n,signal:q.signal},{...h,strictProxy:!0})}catch(a){if(f?.aborted)throw f.reason??a;throw q.settleError(a)}finally{q.clear()}return{response:g,url:z,headers:o,transformedBody:a}},D=async(a,b,c,d,g)=>{let j=function(a,{requestSetId:b,modelKey:c,queueType:d}={}){let e=new URLSearchParams;return b&&e.set("requestSetId",b),c&&e.set("modelKey",c),d&&e.set("queueType",d),`${a}/algo/api/v2/service/ask/queue/status?${e.toString()}`}((0,n.e9)(e,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,i.proxyAwareFetch)(j,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":d,"X-Session-ID":g||"",...(0,r.dE)(Buffer.alloc(0),j,{userId:A.userId,authToken:e.accessToken,name:e.displayName||"",email:e.email||"",machineId:A.machineId||(0,r.if)(A.userId)})},signal:f},h);if(!a.ok)return{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?x(a):a;if(!t(b))return null;let c=w(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:w(b.serviceAvailable),modelKey:v(b.modelKey),queueType:v(b.queueType),queueCount:u(b.queueCount),retryAfterSeconds:u(b.retryAfterSeconds),waitTime:u(b.waitTime)}}(await a.text().catch(()=>""));return b?{endpointOk:!0,info:b}:{endpointOk:!1,info:null}}catch(a){if(f?.aborted)throw a;return{endpointOk:!1,info:null}}},E=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:18e4,F=Date.now(),G=null,H=!0,I=!1,J=l;for(;;){let a=await C(J);if(a.error)return{response:a.error,url:a.url,headers:a.headers,transformedBody:a.transformedBody};if(!a.response.ok)return{response:a.response,url:a.url,headers:a.headers,transformedBody:a.transformedBody};let b=a.response.body.getReader(),c=new TextDecoder,d=await X(b,c),e=d.isError?function(a){let b="string"==typeof a?x(a):a;if(!b)return null;let c=function(a){let b=[],c=new Set,d=new Set,e=[a];for(;e.length>0;){let a=e.shift();if(t(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),s)){let b=a[f];if(t(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=x(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(t(b)||Array.isArray(b))&&e.push(b)}return b}(b),d={code:void 0,subCode:void 0,isQueued:void 0,modelKey:void 0,queueType:void 0,queueCount:void 0,serviceAvailable:void 0,retryAfterSeconds:void 0,waitTime:void 0};for(let a of c)void 0===d.code&&(d.code=v(a.code)),void 0===d.subCode&&(d.subCode=v(a.subCode)),void 0===d.isQueued&&(d.isQueued=w(a.isQueued)),void 0===d.modelKey&&(d.modelKey=v(a.modelKey)),void 0===d.queueType&&(d.queueType=v(a.queueType)),void 0===d.queueCount&&(d.queueCount=u(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=w(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=u(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=u(a.waitTime));return!0!==d.isQueued&&!1!==d.serviceAvailable&&"RESOURCE_LIMIT"!==d.subCode&&"10605"!==d.code?null:d}(d.message||""):null;if(!e){if(d.isError){let b=d.isBilling?m.gx.FORBIDDEN:Number.isInteger(d.statusVal)&&d.statusVal>=400&&d.statusVal<=599?d.statusVal:m.gx.BAD_GATEWAY;return{response:new Response(JSON.stringify({error:{message:d.message||"qoder upstream error",code:d.statusVal}}),{status:b,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}let c=new Response(new ReadableStream({start(a){let c=!1,e=()=>{if(!c){c=!0;try{a.close()}catch{}}},f=b=>{if(c)return!1;try{return a.enqueue(b),!0}catch{return c=!0,!1}},g=new TextEncoder;if(d.consumed&&!f(g.encode(d.consumed)))return;if(d.upstreamDone)return void e();let h=()=>{c||b.read().then(({done:a,value:b})=>{a?e():f(b)&&h()}).catch(()=>e())};h()},cancel:()=>b.cancel().catch(()=>{})}),{status:a.response.status,statusText:a.response.statusText,headers:a.response.headers});return{response:await Y(c,B,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}G=e;let h=Date.now()-F;if(h>=E)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(h/1e3)}s for ${B} (queueType=${G.queueType||"?"}, waitTime=${G.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${k}" is still queued after ${Math.round(h/1e3)}s (queueType=${G.queueType||"?"}); retry shortly`,code:"qoder_model_queued",type:"rate_limit_error"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody};let i=y(e);if(H){let a=J.request_set_id,b=await D(e.modelKey||k,e.queueType,a,J.request_id,J.session_id);b.endpointOk?!1===b.info.isQueued?I?(H=!1,g?.info?.("QODER",`queue status claims ready but "${k}" is still refused; falling back to timed replays`)):(I=!0,g?.info?.("QODER",`model "${k}" reported ready (queueType=${b.info.queueType||"?"}); replaying`),i=0):(i=y(b.info,{fromStatus:!0}),g?.info?.("QODER",`model "${k}" still queued (queueType=${b.info.queueType||"?"}, queueCount=${b.info.queueCount??"?"}); rechecking in ${Math.round(i/1e3)}s`)):H=!1}i>0&&await function(a,b){return a>0?new Promise((c,d)=>{if(b?.aborted)return void d(b.reason);let e=setTimeout(()=>{b?.removeEventListener?.("abort",f),c()},a),f=()=>{clearTimeout(e),d(b.reason)};b?.addEventListener?.("abort",f,{once:!0})}):Promise.resolve()}(i,f)}}async refreshCredentials(){return null}parseError(a,b){let c=super.parseError(a,b),d=function(a){let b=T(a);if(!U.test(b))return null;let c=b.match(/"retryAfterSeconds"\s*:\s*(\d+)/),d=c?Number(c[1]):0;return d>0?1e3*d:null}(b);return d&&(c.resetsAtMs=Date.now()+d),c}needsRefresh(){return!1}}},77919:(a,b,c)=>{c.d(b,{$:()=>M});var d=c(74957),e=c(12643),f=c(41004),g=c(39609),h=c(49426),i=c(78959),j=c(92536),k=c(22115);function l(a){let b=a?.content;return"string"==typeof b?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.text??"").filter(Boolean).join("\n"):""}function m(a){for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||""))return l(a[b]);return""}function n(a,b){let c=b&&"object"==typeof b?b:{},d=Object.keys(c).sort().map(a=>{var b;return`${a}=${"string"==typeof(b=c[a])?b.replace(/\s+/g," ").replace(/["'`]/g,"").toLowerCase():b}`});return`${a}(${d.join(",")})`}function o(a){let b=a&&"object"==typeof a?a.properties:null;return b&&"object"==typeof b?b:{}}function p(a){let b=a&&"object"==typeof a?a.required:null;return Array.isArray(b)?b:[]}function q(a){return`${a.name} ${a.description||""}`.toLowerCase()}function r(a,b){let c=new Set(Object.keys(o(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function s(a){return/\b(mcp|mcpproxy|upstream|registry|oauth|cache key|token usage|handoff|context management|memory|memories|lsp|language server|plan file|server management|tool discovery)\b/.test(q(a))}function t(a){return/\b(ctx_|memory|memories|conversation history|session notes|project memories|context\.db)\b/.test(q(a))}function u(a){if(s(a))return!1;let b=q(a),c=a.name.toLowerCase(),d=/\b(bash|shell|terminal|run_command|execute_command|exec|command)\b/.test(c),e=/\b(?:run|execute).{0,24}\b(?:shell|bash|terminal|command)\b|\b(?:shell|bash|terminal)\b/.test(b);return d||r(a,["command","cmd","shell"])&&e}function v(a){let b=q(a);return r(a,["filePath","file_path","path"])&&/\b(read|file|filesystem|open)\b/.test(b)&&!/\b(write|edit|patch|delete|remove|grep|search|bash|shell|command)\b/.test(b)}function w(a){let b=q(a),c=a.name.toLowerCase(),d=/\b(webfetch|web.fetch|fetch_url|url_fetch|read_url|browse_page|browsepage)\b/.test(c),e=/\b(?:fetch|browse|read).{0,32}\b(?:url|uri|web page|page content)\b|\b(?:url|uri|web page|page content).{0,32}\b(?:fetch|browse|read)\b/.test(b);return d||!s(a)&&r(a,["url","uri"])&&e}function x(a){let b=q(a);return r(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!s(a)&&!t(a)}function y(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function z(a){return null!=a&&""!==a}function A(a,b,c,d){let e=c.toolsByName.get(a);if(!e)return b;let f=o(e.parameters),g=p(e.parameters),h={...b};for(let a of("filePath"in f&&!z(h.filePath)&&(h.filePath=y(b.filePath,b.file_path,b.path)),"file_path"in f&&!z(h.file_path)&&(h.file_path=y(b.file_path,b.filePath,b.path)),"path"in f&&!z(h.path)&&(h.path=y(b.path,b.filePath,b.file_path)),"query"in f&&!z(h.query)&&(h.query=y(b.query,b.search,b.input)),"url"in f&&!z(h.url)&&(h.url=y(b.url,b.uri)),"uri"in f&&!z(h.uri)&&(h.uri=y(b.uri,b.url)),"input"in f&&!z(h.input)&&(h.input=y(b.input,b.query,b.command)),g)){if(z(h[a]))continue;let b=function(a,b,c){let d=a.toLowerCase(),e=y(b.command,b.cmd,b.shell,b.input),f=y(b.filePath,b.file_path,b.path,b.filename),g=y(b.query,b.search,b.input),h=y(b.url,b.uri);return"command"===d||"cmd"===d?e:"filepath"===d||"file_path"===d||"path"===d?f:"query"===d||"search"===d?g:"url"===d||"uri"===d?h:"input"===d?g||h||e||f:"description"===d||"reason"===d?e?`Execute shell command: ${e}`:f?`Read file: ${f}`:h?`Fetch URL: ${h}`:g?`Search: ${g}`:`Grok Web ${c} tool call`:void 0}(a,h,d);void 0!==b&&(h[a]=b)}let i={},j=new Set([...Object.keys(f),...g]);for(let a of Object.keys(h))(0===j.size||j.has(a))&&(i[a]=h[a]);return i}function B(a,b,c){if(!c.enabled||!a||"object"!=typeof a)return null;let d=b||`call_${crypto.randomUUID()}`,e=(a,b)=>{if(!b||"object"!=typeof b)return null;let e=function(a,b){let c=null;for(let d of b.toolsByName.values()){let e=function(a,b,c){let d=a.name.toLowerCase(),e=(a.description||"").toLowerCase(),f=new Set(Object.keys(o(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=String(c||"").toLowerCase(),i=0;if("bash"===b)u(a)||(i-=80),"bash"===d&&(i+=100),["shell","terminal","run_command","execute_command","exec","command"].includes(d)&&(i+=80),(f.has("command")||f.has("cmd"))&&(i+=60),/bash|shell|terminal|command|execute|run/.test(g)&&(i+=25),/read|search|grep|web|http|browser|context|note|memory/.test(d)&&(i-=50);else if("readFile"===b)v(a)||(i-=60),["read","read_file","readfile","file_read"].includes(d)&&(i+=100),(f.has("filepath")||f.has("file_path")||f.has("path"))&&(i+=50),/read.*file|file.*read|filesystem/.test(g)&&(i+=25),/write|edit|delete|remove|bash|shell|command/.test(g)&&(i-=50);else("webSearch"===b||"browsePage"===b)&&((t(a)||s(a))&&(i-=180),("browsePage"===b||/https?:\/\//.test(String(h||"")))&&(w(a)||(i-=60),/webfetch|web_fetch|fetch|browse|browse_page|read_url|url_fetch|page/.test(d)&&(i+=140),(f.has("url")||f.has("uri"))&&(i+=90),/fetch|browse|url|web page|page content|extract.*url|read.*url/.test(g)&&(i+=55),/websearch|web_search|search/.test(d)&&!(f.has("url")||f.has("uri"))&&(i-=80)),"webSearch"!==b||x(a)||(i-=60),["web_search","websearch","search"].includes(d)&&(i+=100),(f.has("query")||f.has("search"))&&(i+=50),/web.*search|search.*web|internet|browse/.test(g)&&(i+=25),/file|bash|shell|command|write|edit/.test(g)&&(i-=50));return i}(d,a,b.lastUserText);e<=0||(!c||e>c.score)&&(c={name:d.name,score:e})}return c?.name||null}(a,c);if(!e)return null;let f=A(e,b,c,a);return c.executedToolKeys.has(n(e,f))?null:{id:d,type:"function",function:{name:e,arguments:JSON.stringify(f)}}},f=a.bash?.args?e("bash",a.bash.args):null;if(f)return f;let g=(a.readFile||a.read_file)?.args?e("readFile",(a.readFile||a.read_file).args):null;if(g)return g;let h=a.webSearch?.args?e("webSearch",a.webSearch.args):null;if(h)return h;let i=(a.browsePage||a.browse_page)?.args?e("browsePage",(a.browsePage||a.browse_page).args):null;return i||null}function C(a,b){if(!b.enabled||!a.includes("<tool_call>"))return null;let c=[];for(let d of function*(a,b,c){for(;;){let d=b.exec(a);if(null===d)return;let e=d.index+d[0].length,f=c.exec(a.slice(e));if(null===f||(yield{inner:a.slice(e,e+f.index),after:e+f.index+f[0].length},b.lastIndex=c.lastIndex=0,!(a=a.slice(e+f.index+f[0].length)).includes("<tool_call>")))return}}(String(a),/<tool_call>/g,/<\/tool_call>/g)){let a;try{a=JSON.parse(d.inner.trim())}catch{continue}if(!a||"object"!=typeof a)continue;let e="string"==typeof a.name?a.name.trim():"";if(!e||!b.toolsByName.has(e))continue;let f=A(e,function(a){if(!a)return{};if("object"==typeof a)return a;if("string"==typeof a)try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{input:a}}return{}}(a.arguments),b,"clientTool");b.executedToolKeys.has(n(e,f))||c.push({id:"string"==typeof a.id&&a.id.trim()?a.id.trim():`call_${crypto.randomUUID()}`,type:"function",function:{name:e,arguments:JSON.stringify(f)}})}return c.length>0?c:null}var D=c(10079);let E=e.xq["grok-web"].baseUrl,F={"grok-3":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-3-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function G(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;b<a;b++)d+=c[Math.floor(Math.random()*c.length)];return d}function H(){return btoa(.5>Math.random()?`x1:TypeError: Cannot read properties of null (reading 'children["${G(5,!0)}"]')`:`x1:TypeError: Cannot read properties of undefined (reading '${G(10)}')`)}function I(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*J(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{c.releaseLock()}}async function*K(a,b,c){let d="",e="",f=!1;for await(let g of J(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.toolUsageCard){yield{toolCard:a.toolUsageCard,toolCardId:a.toolUsageCardId,fingerprint:d,responseId:e};continue}if(a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}async function L(a,b,c,d,e,f,g){let h="",i="",j=[],k=[];for await(let b of K(a,e,f)){if(b.fingerprint&&(i=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.toolCard&&g){let a=B(b.toolCard,b.toolCardId,g);a&&k.push(a);continue}if(b.done)break;b.fullMessage?h=b.fullMessage:b.delta&&(h+=b.delta)}let l={role:"assistant",content:h};j.length>0&&(l.reasoning_content=j.join("\n"));let m=(g?.enabled?C(h,g):null)||(k.length?k:null),n="stop";m?.length&&(l.content=h.replace(/<tool_call>[\s\S]*?<\/tool_call>/g,"").trim(),l.tool_calls=m,n="tool_calls");let o=Math.ceil(h.length/4),p=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:i||null,choices:[{index:0,message:l,finish_reason:n,logprobs:null}],usage:{prompt_tokens:o,completion_tokens:p,total_tokens:o+p}}),{status:200,headers:{"Content-Type":"application/json"}})}class M extends d.H{constructor(){super("grok-web",e.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:r,proxyOptions:y=null}){let z,A,G=b?.messages;if(!G||!Array.isArray(G)||0===G.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let J=F[a];J||r?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:M,modelMode:N,isThinking:O}=J||F["grok-4.1-fast"],P=function(a){let b=Array.isArray(a?.tools)?a.tools:[],c=Array.isArray(a?.messages)?a.messages:[],d=a?.tool_choice??"auto",e=function(a){let b=new Set,c=[];for(let d of a)if("assistant"===String(d?.role||"")&&Array.isArray(d.tool_calls))for(let a of d.tool_calls){let d=a?.function||{},e={};try{e=JSON.parse(d.arguments||"{}")}catch{}b.add(n(d.name||"",e)),c.push(function(a,b){let c=b&&"object"==typeof b?b:{},d=Object.keys(c).sort().map(a=>String(c[a]).slice(0,60)).join(", ");return`${a}(${d})`}(d.name||"tool",e))}return{keys:b,summaries:c}}(c);if("none"===d)return{enabled:!1,toolsByName:new Map,lastUserText:m(c),executedToolKeys:e.keys,completedToolCalls:e.summaries};let f=b.map(a=>{let b=a?.function;if(a?.type!=="function"||!b||"object"!=typeof b)return null;let c="string"==typeof b.name?b.name.trim():"";return c?{name:c,..."string"==typeof b.description?{description:b.description}:{},parameters:b.parameters||{type:"object",properties:{}}}:null}).filter(Boolean),g=d&&"object"==typeof d&&"string"==typeof d.function?.name?d.function.name:null,h=g?f.filter(a=>a.name===g):f;return{enabled:h.length>0,toolsByName:new Map(h.map(a=>[a.name,a])),lastUserText:m(c),executedToolKeys:e.keys,completedToolCalls:e.summaries}}(b),Q=P.enabled?function(a,b,c){var d,e;let f=(d=b,e=c,d.enabled?['CLIENT_TOOLS: use this caller-runtime tool list as the tool interface for this request. To call one, respond only with <tool_call>{"name":"exact_tool_name","arguments":{...}}</tool_call>. After tool results, answer normally.',`tool_choice=${JSON.stringify(e??"auto")}`,...d.completedToolCalls.length?["completed_tool_calls:",...d.completedToolCalls.map(a=>`- ${a}`),"Do not repeat completed tool calls unless a different result is required; use their tool results to answer."]:[],"tools (priority order for this request):",...[...d.toolsByName.values()].map((a,b)=>({tool:a,index:b,score:w(a)?90:x(a)?85:v(a)?75:u(a)?70:/\b(glob|grep|search files?|file search|content search)\b/.test(q(a))?60:/\b(edit|write|patch|modify|apply)\b/.test(q(a))?50:/\b(task|agent|delegate|subagent)\b/.test(q(a))?40:t(a)?20:s(a)?10:30})).sort((a,b)=>b.score-a.score||a.index-b.index).map(({tool:a},b)=>{var c;let d,e,f;return`${b+1}. name: ${a.name}${d=Object.keys(o(c=a.parameters)),e=p(c),f=[],d.length&&f.push(`args=${d.join(",")}`),e.length&&f.push(`required=${e.join(",")}`),f.length?` (${f.join("; ")})`:""}${a.description?`
272
272
  description: ${a.description}`:""}`})].join("\n"):""),g=[],h=-1;for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||"")){h=b;break}let i=[];for(let b=0;b<a.length;b++){let c=a[b],d=String(c?.role||"user");"developer"===d&&(d="system");let e=l(c);if("tool"===d){if(b<h)continue;let a="string"==typeof c.name?c.name:"unknown_tool";e=`CLIENT TOOL RESULT from caller runtime for ${a} (${c.tool_call_id||"unknown_call"}). Use this result to answer; do not call the same tool again:
273
- ${e}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<h)continue;let a=c.tool_calls.map(a=>({id:a.id,function:a.function}));e=[e,`Previous assistant tool calls: ${JSON.stringify(a)}`].filter(Boolean).join("\n")}e.trim()&&i.push({role:d,text:e})}let j=-1;for(let a=i.length-1;a>=0;a--)if("user"===i[a].role){j=a;break}for(let a=0;a<i.length;a++)g.push(a===j?i[a].text:`${i[a].role}: ${i[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(G,P,b?.tool_choice):function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(G);if(!Q.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let R={temporary:!0,modelName:M,modelMode:N,message:Q,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},S=I(16),T=I(8),U={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":k.CO,"x-statsig-id":H(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${S}-${T}-00`};if(d.apiKey){let a=(0,D.lT)(d.apiKey);a&&(U.Cookie=a)}r?.info?.("GROK-WEB",`Query to ${a} (grok=${M}, mode=${N}), len=${Q.length}`);let V=!(0,g.hasProxyEgress)(E,y),W=(0,h.n)(e,this.config?.timeoutMs||f.Z1);try{z=V?await (0,k.X7)(E,{method:"POST",headers:U,body:JSON.stringify(R),timeoutMs:12e4,signal:W.signal}):await (0,g.proxyAwareFetch)(E,{method:"POST",headers:U,body:JSON.stringify(R),signal:W.signal},y)}catch(a){if(a instanceof k.jm)return{response:new Response(JSON.stringify({error:{message:a.message,type:"configuration_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};return r?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}finally{W.clear()}if(!z.ok){let a=z.status,b=`Grok returned HTTP ${a}`;return(0,k.ZB)(await z.clone().text().catch(()=>""))?b="Grok returned a Cloudflare challenge — cf_clearance in the pasted Cookie header no longer matches this machine. Re-copy the full Cookie header from a logged-in grok.com browser on this machine.":401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),r?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}if(!z.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};let X=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,Y=Math.floor(Date.now()/1e3);if(c){var Z;let b;A=new Response((Z=z.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f="",g="",h=!1,k=[];for await(let i of K(Z,O,e)){if(i.fingerprint&&(f=i.fingerprint),i.error){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:`[Error: ${i.error}]`},finish_reason:null,logprobs:null}]})));break}if(i.thinking){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{reasoning_content:i.thinking},finish_reason:null,logprobs:null}]})));continue}if(i.toolCard&&P){let a=B(i.toolCard,i.toolCardId,P);a&&k.push(a);continue}if(i.done)break;if(i.delta)if(P?.enabled){var d;if(g+=i.delta,d=g,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){h=!0;continue}if(h)continue;let e=Math.min(12,g.length),k=g.slice(0,g.length-e);k&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),g=g.slice(g.length-e)}else c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:i.delta},finish_reason:null,logprobs:null}]})));i.fullMessage&&P?.enabled&&(g=i.fullMessage)}let l=(P?.enabled?C(g,P):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else g&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:g},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(i.$U))}catch(d){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U))}finally{c.close()}}})),{status:200,headers:{...i.uB}})}else A=await L(z.body,a,X,Y,O,e,P);return{response:A,url:E,headers:U,transformedBody:R}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:h}){if("image"!==b&&"video"!==b)throw Error("Grok Web supports image and video generation only");if(!a?.trim())throw Error("prompt is required for media generation");let i="video"===b?1:Math.max(1,e),j=(0,D.lT)(String(f?.apiKey||""));if(!j)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<i;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":k.CO,"Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Origin:"https://grok.com",Referer:"https://grok.com/","Browser-Id":e,"x-xai-request-id":e,"x-statsig-id":H(),Cookie:j},i="video"===b?function({prompt:a,size:b,duration:c}){return{modelName:"imagine-video-gen",message:`${a} --mode=custom`,enableImageStreaming:!0,enableSideBySide:!0,sendFinalMetadata:!0,responseMetadata:{experiments:[],modelConfigOverride:{modelMap:{}}},mediaGenInput:{textToVideo:{prompt:a,aspectRatio:/^\d{1,2}:\d{1,2}$/.test(String(b||""))?String(b):"16:9",duration:Number.isFinite(Number(c))&&Number(c)>0?Number(c):6,resolutionName:"480p"}},kind:"CONVERSATION_KIND_IMAGINE"}}({prompt:a,size:c,duration:d}):{temporary:!0,modelName:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",message:c?`Generate an image (${c}): ${a}`:`Generate an image: ${a}`,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!0,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!0,imageGenerationCount:1,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},m=await (0,k.X7)(E,{method:"POST",headers:f,body:JSON.stringify(i),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,k.ZB)(n))throw Error((0,k.ZB)(n)?"Grok returned a Cloudflare challenge — re-copy the full Cookie header (with cf_clearance) from a logged-in grok.com browser on this machine":`grok ${b} request failed: HTTP ${m.status} ${n.slice(0,200)}`);if("video"===b){let a=function(a){let b=[],c=a=>{if(!(b.length>8)){if("string"==typeof a){if(/\.mp4(\?|#|$)/i.test(a))return void b.push(a);let d=a.trim();if(d.startsWith("{")||d.startsWith("["))try{c(JSON.parse(d))}catch{}return}if(Array.isArray(a))return void a.forEach(c);a&&"object"==typeof a&&Object.values(a).forEach(c)}};for(let b of String(a).split("\n")){let a=b.trim();if(a.startsWith("{"))try{c(JSON.parse(a))}catch{}}return b[b.length-1]||null}(n);if(!a)throw h?.warn?.("GROK-WEB",`no video URL in stream, tail: ${n.slice(-300)}`),Error("grok returned no video asset — quota may be exhausted (1 video/day) or the prompt was moderated");let b=await (0,k.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:12e4,signal:g});if(!b.ok)throw Error(`video download failed: HTTP ${b.status}`);let c=Buffer.from(await b.arrayBuffer());l.push({b64:c.toString("base64"),mime:"video/mp4"});break}let o=null;for(let a of n.split("\n")){let b,c;if(!a.trim().startsWith("{"))continue;try{b=JSON.parse(a)}catch{continue}let d=b?.result?.response?.cardAttachment?.jsonData;if("string"!=typeof d)continue;try{c=JSON.parse(d)}catch{continue}let e=c?.image_chunk;e&&Number(e.progress)>=100&&e.imageUrl&&(o=e)}if(!o)throw Error("grok returned no completed image chunk — prompt may have been moderated or image generation is unavailable for this account");let p=await (0,k.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:6e4,signal:g});if(!p.ok)throw Error(`image download failed: HTTP ${p.status}`);let q=Buffer.from(await p.arrayBuffer());l.push({b64:q.toString("base64"),mime:o.mimeType||"image/jpeg"})}return h?.info?.("GROK-WEB",`${b} generation completed (${l.length} item(s))`),l}}},80479:(a,b,c)=>{c.d(b,{qG:()=>J,we:()=>K,gZ:()=>u,zD:()=>L}),c(4573);var d=c(20742),e=c(31421),f=c(77030);let g=null,h=null;async function i(){let a=process.env.OBSCURA_BIN;if(a)return a;let{resolve:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d,accessSync:e,constants:f}=await Promise.resolve().then(c.t.bind(c,73024,23));for(let a of(process.env.PATH||"").split(":")){let c=b(a,"obscura");try{if(e(c,f.X_OK),d(c))return c}catch{}}return null}async function j(a,b){let c=Date.now()+b;for(;Date.now()<c;){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1500),d=a.replace(/^ws/,"http").replace(/\/$/,"")+"/json/version",e=await fetch(d,{signal:b.signal});if(clearTimeout(c),e.ok)return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function k(){let a;if(void 0!==(a=process.env.NINEROUTER_BROWSER_POOL)&&("off"===a||"0"===a||"false"===a))return null;if(g)return g;if(h)return h;h=(async()=>{let a=process.env.OBSCURA_CDP_ENDPOINT;if(a)return g={child:null,endpoint:a};let b=await i();if(!b)return null;let c=Number(process.env.OBSCURA_PORT)||await new Promise((a,b)=>{let c=(0,f.createServer)();c.once("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("obscura: could not allocate a free port"))})})}),d=(0,e.spawn)(b,["serve","--port",String(c),"--host","127.0.0.1"],{stdio:["ignore","ignore","pipe"]});d.stderr?.on("data",()=>{});let h=`http://127.0.0.1:${c}`,k=new Promise(a=>{d.once("exit",()=>a(!0)),d.once("error",()=>a(!0))});return!0!==await Promise.race([j(h,3e4),k.then(()=>!1)])?(d.kill("SIGKILL"),null):g={child:d,endpoint:h}})();try{return await h}finally{h=null}}async function l(){let a=await k();if(!a)return null;try{let{chromium:b}=await (0,d.A)("playwright-core");return{browser:await b.connectOverCDP(a.endpoint),child:a.child}}catch{return null}}let m="Missing X server or $DISPLAY: a headed browser needs a display. Install Xvfb (apt-get install xvfb) or run with xvfb-run.";class n extends Error{constructor(a){super(a?`${m} (${a})`:m),this.name="MissingDisplayError",this.code="NINER_NO_DISPLAY"}}let o=null,p=null,q=!1;async function r(a={}){let b=a.env??process.env;if(!((a.platform??process.platform)!=="linux"||function(a=process.env){return!!(a.DISPLAY||a.WAYLAND_DISPLAY)}(b))){if(o&&null===o.child.exitCode&&!o.child.killed)return o.display;if(o=null,!p){var c,d;p=(c=a.spawn??e.spawn,d=a.timeoutMs??5e3,new Promise((a,b)=>{let e=c("Xvfb",["-displayfd","3","-screen","0","1280x1024x24","-nolisten","tcp"],{stdio:["ignore","ignore","ignore","pipe"]}),f=!1,g="",h=a=>{if(!f){f=!0,clearTimeout(i);try{e.kill("SIGTERM")}catch{}b(a)}},i=setTimeout(()=>h(new n("Xvfb start timeout")),d);i.unref?.(),e.once("error",a=>h(new n("ENOENT"===a.code?"Xvfb not found":a.message))),e.once("exit",()=>{o?.child===e&&(o=null),h(new n("Xvfb exited"))});let j=e.stdio?.[3];j?.on("data",b=>{g+=b.toString();let c=/^(\d+)\n/.exec(g);if(!c||f)return;f=!0,clearTimeout(i);let d=`:${c[1]}`;o={child:e,display:d},e.unref?.(),a(d)})})).finally(()=>{p=null}),q||a.spawn||(q=!0,process.once("exit",()=>s()))}return p}}function s(){let a=o?.child;o=null;try{a?.kill("SIGTERM")}catch{}}var t=c(4052);function u(a){let b=String(a?.connectionProxyUrl||a?.url||"").trim();if(!1===(a?.connectionProxyEnabled??a?.enabled))return null;if(!b){if(a?.strictProxy===!0&&String(a?.vercelRelayUrl||"").trim())throw Error("This connection proxies through a relay pool, which the browser page cannot use — set a plain http/socks5 proxy URL on the connection for it.");return null}let c=String(a?.connectionNoProxy||"").trim();return{server:b,...c?{bypass:c}:{}}}let v={browser:null,engine:null,headedBrowser:null,contexts:new Map,pendingContexts:new Map,launching:null,headedLaunching:null,generation:0,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 w(){if(v.cloakLaunchResolved)return v.cloakLaunch;v.cloakLaunchResolved=!0;try{v.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{v.cloakLaunch=null}return v.cloakLaunch}function x(){v.idleTimer&&clearTimeout(v.idleTimer),v.idleTimer=setTimeout(()=>{M("idle-timeout")},3e5),v.idleTimer.unref?.()}function y(a){let b=a?v.browser:v.headedBrowser;return b?.isConnected()?b:(b&&z(a,null),null)}function z(a,b){a?v.browser=b:v.headedBrowser=b}function A(a){return a?v.launching:v.headedLaunching}function B(a,b){a?v.launching=b:v.headedLaunching=b}function C(a,b){A(a)===b&&B(a,null)}function D(a){let b=!1!==a.headless;return{headless:b,...a.executablePath?{executablePath:a.executablePath}:{},args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled","--disk-cache-size=52428800",...b?[]:["--window-position=-32000,-32000"]]}}async function E(a,b){if(!b){let{chromium:b}=await (0,d.A)("playwright-core"),c=await r(),e=D(a);return c&&(e.env={...process.env,DISPLAY:c}),(0,t.KI)(b,e)}let c=await l();if(c)return v.engine="obscura",c.browser;let e=await w();if(e)return v.engine="cloakbrowser",e({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});v.engine="chromium";let{chromium:f}=await (0,d.A)("playwright-core");return(0,t.KI)(f,D(a))}async function F(a){let b=!1!==a.headless,c=y(b);if(c)return c;let d=A(b);if(d)return d;let e=v.generation,f=(async()=>{let c=await E(a,b);if(v.generation!==e)throw await c.close().catch(()=>{}),Error("Pool shut down during browser launch");return z(b,c),v.metrics.browserLaunches++,c})();B(b,f);try{let a=await f;return C(b,f),a}catch(a){throw C(b,f),v.metrics.browserLaunchFailures++,a}}function G(a,b){b&&v.metrics.contextCreateFailures++,v.pendingContexts.delete(a)}async function H(a,b){if(b.cookieString){var c,d;let e=(c=b.cookieString,d=b.cookieDomain,c.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(),e=a.slice(b+1).trim();return c&&e?{name:c,value:e,domain:d.startsWith(".")?d:`.${d}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));e.length>0&&await a.addCookies(e)}if(!b.localStorage||0===Object.keys(b.localStorage).length)return;let e=new URL(b.localStorageOrigin||b.warmupUrl||"").origin;await a.addInitScript(({expectedOrigin:a,entries:b})=>{if(window.location.origin===a)for(let[a,c]of b)window.localStorage.setItem(a,c)},{expectedOrigin:e,entries:Object.entries(b.localStorage)})}async function I(a,b){if(!b)return null;let c=null;try{return c=await a.newPage(),await c.goto(b,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500)),c}catch{return await c?.close().catch(()=>{}),null}}async function J(a,b){let c;if(void 0!==(c=process.env.NINEROUTER_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: NINEROUTER_BROWSER_POOL=off — context requested but pool is disabled");let d=!1!==b.headless,e=`${d?"headless":"headed"}:${a}`,f=v.contexts.get(e);if(f)return f.lastUsed=Date.now(),v.lastActivity=Date.now(),v.metrics.contextsReused++,x(),f;let g=v.pendingContexts.get(e);if(g)return g.promise;let h=(async()=>{let a=await F(b),c=d&&("obscura"===v.engine||null!==v.cloakLaunch),f=b.proxy||u(b.proxyOptions),g=await a.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},...f?{proxy:f}:{},...b.storageState?{storageState:b.storageState}:{}});await H(g,b);let h=await I(g,b.warmupUrl);if(y(d)!==a)throw await g.close().catch(()=>{}),h&&await h.close().catch(()=>{}),Error("Pool shut down during context creation");let i={id:e,context:g,warmupPage:h,lastUsed:Date.now(),isStealth:c};return v.contexts.set(e,i),v.metrics.contextsCreated++,v.lastActivity=Date.now(),x(),v.evictTimer&&clearInterval(v.evictTimer),v.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of v.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context","(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),v.contexts.delete(b),v.metrics.contextsEvicted++,c.context.close().catch(()=>{}));for(let[b,c]of v.pendingContexts)a-c.createdAt>3e5&&(v.pendingContexts.delete(b),v.metrics.contextsEvicted++);0!==v.contexts.size||0!==v.pendingContexts.size||v.launching||v.headedLaunching||M("all-contexts-evicted")})(),6e4),v.evictTimer.unref?.(),i})();return v.pendingContexts.set(e,{promise:h,createdAt:Date.now()}),h.then(()=>G(e,!1)).catch(()=>G(e,!0)),h}async function K(a){return a.context.newPage()}async function L(a){let b=[a,`headless:${a}`,`headed:${a}`].find(a=>v.contexts.has(a));if(!b)return;let c=v.contexts.get(b);if(c){v.contexts.delete(b),v.metrics.contextsReleased++;try{await c.context.close()}catch{}0===v.contexts.size&&await M("last-context-closed")}}async function M(a){for(let[b,c]of(v.generation++,v.metrics.shutdowns++,v.metrics.lastShutdownReason=a,v.idleTimer&&(clearTimeout(v.idleTimer),v.idleTimer=null),v.evictTimer&&(clearInterval(v.evictTimer),v.evictTimer=null),v.pendingContexts.clear(),v.contexts)){try{await c.context.close()}catch{}v.contexts.delete(b)}if(v.browser){try{await v.browser.close()}catch{}v.browser=null}if(v.headedBrowser){try{await v.headedBrowser.close()}catch{}v.headedBrowser=null}v.launching=null,v.headedLaunching=null,s(),v.engine=null,v.lastActivity=Date.now()}},83243:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(96179),e=c(8521);let f=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function g(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!f.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class h extends d.L{async execute(a){let b=await super.execute(a);return b?.response?{...b,response:await g(b.response)}:b}async refreshCredentials(a,b){return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(12643);let i=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class j extends d.H{constructor(a="trae"){super(a,h.xq[a]),this.isEnterprise="trae-enterprise"===a}base(){let a=this.config?.baseUrl;if(a)return a.replace(/\/$/,"");if(!this.isEnterprise)return"https://core-normal.trae.ai/api/remote/v1";throw Error(`Trae provider "${this.provider}" has no transport baseUrl`)}buildHeaders(a,b=!0){let c=a?.providerSpecificData||{};return{...this.config?.headers||{},Authorization:`Cloud-IDE-JWT ${a?.accessToken||""}`,"Content-Type":"application/json","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US","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:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase(),c="work"===b||"auto-work"===b||"solo-work"===b;if(c&&!this.isEnterprise)return{mode:"work",strategy:"auto",modelName:""};let d=!b||"auto"===b||c;return{mode:"code",strategy:d?"auto":"manual",modelName:d?"":a}}commonParams(a,b,c,d){let e=function(a){let b=String(a||"").split(".");if(3!==b.length)return{};try{let a=JSON.parse(Buffer.from(b[1],"base64url").toString());return a?.data||{}}catch{return{}}}(d),f=this.isEnterprise,g={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||(f?"3.5.54":"1.0.0.1229"),web_id:a.webId||"",user_identity:a.userIdentity||(f?"member":"Free"),is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||e.user_id||"",scope:a.scope||(f?e.scope||"saas":"marscode-us"),tenant:a.tenant||(f?e.tenant_id||"tob_online":"marscode"),region:a.region||(f?"cn-beijing":"US-East"),aiRegion:a.aiRegion||a.region||(f?"cn-beijing":"US-East"),is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(g.biz_session_id=c),JSON.stringify(g)}async createSession(a,b,c,d,h,i,j){let k,{mode:l,strategy:m,modelName:n}=this.resolveMode(c),o={mode:l,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:n,agent_type:"solo_agent_remote",model_selection_strategy:m,common_params:this.commonParams(d,l,null,i)},env:"remote",auto_create_project:!1,origin:"web"},p=(0,f.n)(h,this.config?.timeoutMs||g.pH);try{k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(o),signal:p.signal},j||null)}catch(a){throw p.settleError(a)}finally{p.clear()}let q=await k.text();if(!k.ok)throw Error(`[${k.status}] ${q}`);let r=JSON.parse(q);if(r?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(r)}`);return{sessionId:r.data.chat_session_id,messageId:r.data.message_id}}async streamEvents(a,b,c,d,f,g){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,j=new AbortController;f?.aborted&&j.abort();let k=setTimeout(()=>j.abort(Error("trae stream timeout")),i),l=()=>j.abort();f&&f.addEventListener("abort",l,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:j.signal},g||null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,i="",k=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(i+=f.decode(e,{stream:!0});(a=i.indexOf("\n"))>=0;){let b=i.slice(0,a).replace(/\r$/,"");if(i=i.slice(a+1),b.startsWith("event:"))k=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(k,a))return void await c.cancel().catch(()=>{})}else""===b&&(k=null)}}}finally{clearTimeout(k),f&&f.removeEventListener("abort",l)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=d?.providerSpecificData||{},h=d?.proxyOptions||null,i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
273
+ ${e}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<h)continue;let a=c.tool_calls.map(a=>({id:a.id,function:a.function}));e=[e,`Previous assistant tool calls: ${JSON.stringify(a)}`].filter(Boolean).join("\n")}e.trim()&&i.push({role:d,text:e})}let j=-1;for(let a=i.length-1;a>=0;a--)if("user"===i[a].role){j=a;break}for(let a=0;a<i.length;a++)g.push(a===j?i[a].text:`${i[a].role}: ${i[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(G,P,b?.tool_choice):function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(G);if(!Q.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let R={temporary:!0,modelName:M,modelMode:N,message:Q,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},S=I(16),T=I(8),U={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":k.CO,"x-statsig-id":H(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${S}-${T}-00`};if(d.apiKey){let a=(0,D.lT)(d.apiKey);a&&(U.Cookie=a)}r?.info?.("GROK-WEB",`Query to ${a} (grok=${M}, mode=${N}), len=${Q.length}`);let V=!(0,g.hasProxyEgress)(E,y),W=(0,h.n)(e,this.config?.timeoutMs||f.Z1);try{z=V?await (0,k.X7)(E,{method:"POST",headers:U,body:JSON.stringify(R),timeoutMs:12e4,signal:W.signal}):await (0,g.proxyAwareFetch)(E,{method:"POST",headers:U,body:JSON.stringify(R),signal:W.signal},y)}catch(a){if(a instanceof k.jm)return{response:new Response(JSON.stringify({error:{message:a.message,type:"configuration_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};return r?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}finally{W.clear()}if(!z.ok){let a=z.status,b=`Grok returned HTTP ${a}`;return(0,k.ZB)(await z.clone().text().catch(()=>""))?b="Grok returned a Cloudflare challenge — cf_clearance in the pasted Cookie header no longer matches this machine. Re-copy the full Cookie header from a logged-in grok.com browser on this machine.":401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),r?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}if(!z.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};let X=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,Y=Math.floor(Date.now()/1e3);if(c){var Z;let b;A=new Response((Z=z.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f="",g="",h=!1,k=[];for await(let i of K(Z,O,e)){if(i.fingerprint&&(f=i.fingerprint),i.error){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:`[Error: ${i.error}]`},finish_reason:null,logprobs:null}]})));break}if(i.thinking){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{reasoning_content:i.thinking},finish_reason:null,logprobs:null}]})));continue}if(i.toolCard&&P){let a=B(i.toolCard,i.toolCardId,P);a&&k.push(a);continue}if(i.done)break;if(i.delta)if(P?.enabled){var d;if(g+=i.delta,d=g,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){h=!0;continue}if(h)continue;let e=Math.min(12,g.length),k=g.slice(0,g.length-e);k&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),g=g.slice(g.length-e)}else c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:i.delta},finish_reason:null,logprobs:null}]})));i.fullMessage&&P?.enabled&&(g=i.fullMessage)}let l=(P?.enabled?C(g,P):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else g&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:g},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(i.$U))}catch(d){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U))}finally{c.close()}}})),{status:200,headers:{...i.uB}})}else A=await L(z.body,a,X,Y,O,e,P);return{response:A,url:E,headers:U,transformedBody:R}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:h}){if("image"!==b&&"video"!==b)throw Error("Grok Web supports image and video generation only");if(!a?.trim())throw Error("prompt is required for media generation");let i="video"===b?1:Math.max(1,e),j=(0,D.lT)(String(f?.apiKey||""));if(!j)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<i;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":k.CO,"Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Origin:"https://grok.com",Referer:"https://grok.com/","Browser-Id":e,"x-xai-request-id":e,"x-statsig-id":H(),Cookie:j},i="video"===b?function({prompt:a,size:b,duration:c}){return{modelName:"imagine-video-gen",message:`${a} --mode=custom`,enableImageStreaming:!0,enableSideBySide:!0,sendFinalMetadata:!0,responseMetadata:{experiments:[],modelConfigOverride:{modelMap:{}}},mediaGenInput:{textToVideo:{prompt:a,aspectRatio:/^\d{1,2}:\d{1,2}$/.test(String(b||""))?String(b):"16:9",duration:Number.isFinite(Number(c))&&Number(c)>0?Number(c):6,resolutionName:"480p"}},kind:"CONVERSATION_KIND_IMAGINE"}}({prompt:a,size:c,duration:d}):{temporary:!0,modelName:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",message:c?`Generate an image (${c}): ${a}`:`Generate an image: ${a}`,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!0,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!0,imageGenerationCount:1,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},m=await (0,k.X7)(E,{method:"POST",headers:f,body:JSON.stringify(i),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,k.ZB)(n))throw Error((0,k.ZB)(n)?"Grok returned a Cloudflare challenge — re-copy the full Cookie header (with cf_clearance) from a logged-in grok.com browser on this machine":`grok ${b} request failed: HTTP ${m.status} ${n.slice(0,200)}`);if("video"===b){let a=function(a){let b=[],c=a=>{if(!(b.length>8)){if("string"==typeof a){if(/\.mp4(\?|#|$)/i.test(a))return void b.push(a);let d=a.trim();if(d.startsWith("{")||d.startsWith("["))try{c(JSON.parse(d))}catch{}return}if(Array.isArray(a))return void a.forEach(c);a&&"object"==typeof a&&Object.values(a).forEach(c)}};for(let b of String(a).split("\n")){let a=b.trim();if(a.startsWith("{"))try{c(JSON.parse(a))}catch{}}return b[b.length-1]||null}(n);if(!a)throw h?.warn?.("GROK-WEB",`no video URL in stream, tail: ${n.slice(-300)}`),Error("grok returned no video asset — quota may be exhausted (1 video/day) or the prompt was moderated");let b=await (0,k.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:12e4,signal:g});if(!b.ok)throw Error(`video download failed: HTTP ${b.status}`);let c=Buffer.from(await b.arrayBuffer());l.push({b64:c.toString("base64"),mime:"video/mp4"});break}let o=null;for(let a of n.split("\n")){let b,c;if(!a.trim().startsWith("{"))continue;try{b=JSON.parse(a)}catch{continue}let d=b?.result?.response?.cardAttachment?.jsonData;if("string"!=typeof d)continue;try{c=JSON.parse(d)}catch{continue}let e=c?.image_chunk;e&&Number(e.progress)>=100&&e.imageUrl&&(o=e)}if(!o)throw Error("grok returned no completed image chunk — prompt may have been moderated or image generation is unavailable for this account");let p=await (0,k.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:6e4,signal:g});if(!p.ok)throw Error(`image download failed: HTTP ${p.status}`);let q=Buffer.from(await p.arrayBuffer());l.push({b64:q.toString("base64"),mime:o.mimeType||"image/jpeg"})}return h?.info?.("GROK-WEB",`${b} generation completed (${l.length} item(s))`),l}}},80479:(a,b,c)=>{c.d(b,{qG:()=>J,we:()=>K,gZ:()=>u,zD:()=>L}),c(4573);var d=c(20742),e=c(31421),f=c(77030);let g=null,h=null;async function i(){let a=process.env.OBSCURA_BIN;if(a)return a;let{resolve:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d,accessSync:e,constants:f}=await Promise.resolve().then(c.t.bind(c,73024,23));for(let a of(process.env.PATH||"").split(":")){let c=b(a,"obscura");try{if(e(c,f.X_OK),d(c))return c}catch{}}return null}async function j(a,b){let c=Date.now()+b;for(;Date.now()<c;){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1500),d=a.replace(/^ws/,"http").replace(/\/$/,"")+"/json/version",e=await fetch(d,{signal:b.signal});if(clearTimeout(c),e.ok)return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function k(){let a;if(void 0!==(a=process.env.NINEROUTER_BROWSER_POOL)&&("off"===a||"0"===a||"false"===a))return null;if(g)return g;if(h)return h;h=(async()=>{let a=process.env.OBSCURA_CDP_ENDPOINT;if(a)return g={child:null,endpoint:a};let b=await i();if(!b)return null;let c=Number(process.env.OBSCURA_PORT)||await new Promise((a,b)=>{let c=(0,f.createServer)();c.once("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("obscura: could not allocate a free port"))})})}),d=(0,e.spawn)(b,["serve","--port",String(c),"--host","127.0.0.1"],{stdio:["ignore","ignore","pipe"]});d.stderr?.on("data",()=>{});let h=`http://127.0.0.1:${c}`,k=new Promise(a=>{d.once("exit",()=>a(!0)),d.once("error",()=>a(!0))});return!0!==await Promise.race([j(h,3e4),k.then(()=>!1)])?(d.kill("SIGKILL"),null):g={child:d,endpoint:h}})();try{return await h}finally{h=null}}async function l(){let a=await k();if(!a)return null;try{let{chromium:b}=await (0,d.A)("playwright-core");return{browser:await b.connectOverCDP(a.endpoint),child:a.child}}catch{return null}}let m="Missing X server or $DISPLAY: a headed browser needs a display. Install Xvfb (apt-get install xvfb) or run with xvfb-run.";class n extends Error{constructor(a){super(a?`${m} (${a})`:m),this.name="MissingDisplayError",this.code="NINER_NO_DISPLAY"}}let o=null,p=null,q=!1;async function r(a={}){let b=a.env??process.env;if(!((a.platform??process.platform)!=="linux"||function(a=process.env){return!!(a.DISPLAY||a.WAYLAND_DISPLAY)}(b))){if(o&&null===o.child.exitCode&&!o.child.killed)return o.display;if(o=null,!p){var c,d;p=(c=a.spawn??e.spawn,d=a.timeoutMs??5e3,new Promise((a,b)=>{let e=c("Xvfb",["-displayfd","3","-screen","0","1280x1024x24","-nolisten","tcp"],{stdio:["ignore","ignore","ignore","pipe"]}),f=!1,g="",h=a=>{if(!f){f=!0,clearTimeout(i);try{e.kill("SIGTERM")}catch{}b(a)}},i=setTimeout(()=>h(new n("Xvfb start timeout")),d);i.unref?.(),e.once("error",a=>h(new n("ENOENT"===a.code?"Xvfb not found":a.message))),e.once("exit",()=>{o?.child===e&&(o=null),h(new n("Xvfb exited"))});let j=e.stdio?.[3];j?.on("data",b=>{g+=b.toString();let c=/^(\d+)\n/.exec(g);if(!c||f)return;f=!0,clearTimeout(i);let d=`:${c[1]}`;o={child:e,display:d},e.unref?.(),a(d)})})).finally(()=>{p=null}),q||a.spawn||(q=!0,process.once("exit",()=>s()))}return p}}function s(){let a=o?.child;o=null;try{a?.kill("SIGTERM")}catch{}}var t=c(4052);function u(a){let b=String(a?.connectionProxyUrl||a?.url||"").trim();if(!1===(a?.connectionProxyEnabled??a?.enabled))return null;if(!b){if(a?.strictProxy===!0&&String(a?.vercelRelayUrl||"").trim())throw Error("This connection proxies through a relay pool, which the browser page cannot use — set a plain http/socks5 proxy URL on the connection for it.");return null}let c=String(a?.connectionNoProxy||"").trim();return{server:b,...c?{bypass:c}:{}}}let v={browser:null,engine:null,headedBrowser:null,contexts:new Map,pendingContexts:new Map,launching:null,headedLaunching:null,generation:0,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 w(){if(v.cloakLaunchResolved)return v.cloakLaunch;v.cloakLaunchResolved=!0;try{v.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{v.cloakLaunch=null}return v.cloakLaunch}function x(){v.idleTimer&&clearTimeout(v.idleTimer),v.idleTimer=setTimeout(()=>{M("idle-timeout")},3e5),v.idleTimer.unref?.()}function y(a){let b=a?v.browser:v.headedBrowser;return b?.isConnected()?b:(b&&z(a,null),null)}function z(a,b){a?v.browser=b:v.headedBrowser=b}function A(a){return a?v.launching:v.headedLaunching}function B(a,b){a?v.launching=b:v.headedLaunching=b}function C(a,b){A(a)===b&&B(a,null)}function D(a){let b=!1!==a.headless;return{headless:b,...a.executablePath?{executablePath:a.executablePath}:{},args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled","--disk-cache-size=52428800",...b?[]:["--window-position=-32000,-32000"]]}}async function E(a,b){if(!b){let{chromium:b}=await (0,d.A)("playwright-core"),c=await r(),e=D(a);return c&&(e.env={...process.env,DISPLAY:c}),(0,t.KI)(b,e)}let c=await l();if(c)return v.engine="obscura",c.browser;let e=await w();if(e)return v.engine="cloakbrowser",e({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});v.engine="chromium";let{chromium:f}=await (0,d.A)("playwright-core");return(0,t.KI)(f,D(a))}async function F(a){let b=!1!==a.headless,c=y(b);if(c)return c;let d=A(b);if(d)return d;let e=v.generation,f=(async()=>{let c=await E(a,b);if(v.generation!==e)throw await c.close().catch(()=>{}),Error("Pool shut down during browser launch");return z(b,c),v.metrics.browserLaunches++,c})();B(b,f);try{let a=await f;return C(b,f),a}catch(a){throw C(b,f),v.metrics.browserLaunchFailures++,a}}function G(a,b){b&&v.metrics.contextCreateFailures++,v.pendingContexts.delete(a)}async function H(a,b){if(b.cookieString){var c,d;let e=(c=b.cookieString,d=b.cookieDomain,c.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(),e=a.slice(b+1).trim();return c&&e?{name:c,value:e,domain:d.startsWith(".")?d:`.${d}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));e.length>0&&await a.addCookies(e)}if(!b.localStorage||0===Object.keys(b.localStorage).length)return;let e=new URL(b.localStorageOrigin||b.warmupUrl||"").origin;await a.addInitScript(({expectedOrigin:a,entries:b})=>{if(window.location.origin===a)for(let[a,c]of b)window.localStorage.setItem(a,c)},{expectedOrigin:e,entries:Object.entries(b.localStorage)})}async function I(a,b){if(!b)return null;let c=null;try{return c=await a.newPage(),await c.goto(b,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500)),c}catch{return await c?.close().catch(()=>{}),null}}async function J(a,b){let c;if(void 0!==(c=process.env.NINEROUTER_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: NINEROUTER_BROWSER_POOL=off — context requested but pool is disabled");let d=!1!==b.headless,e=`${d?"headless":"headed"}:${a}`,f=v.contexts.get(e);if(f)return f.lastUsed=Date.now(),v.lastActivity=Date.now(),v.metrics.contextsReused++,x(),f;let g=v.pendingContexts.get(e);if(g)return g.promise;let h=(async()=>{let a=await F(b),c=d&&("obscura"===v.engine||null!==v.cloakLaunch),f=b.proxy||u(b.proxyOptions),g=await a.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},...f?{proxy:f}:{},...b.storageState?{storageState:b.storageState}:{}});await H(g,b);let h=await I(g,b.warmupUrl);if(y(d)!==a)throw await g.close().catch(()=>{}),h&&await h.close().catch(()=>{}),Error("Pool shut down during context creation");let i={id:e,context:g,warmupPage:h,lastUsed:Date.now(),isStealth:c};return v.contexts.set(e,i),v.metrics.contextsCreated++,v.lastActivity=Date.now(),x(),v.evictTimer&&clearInterval(v.evictTimer),v.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of v.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context","(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),v.contexts.delete(b),v.metrics.contextsEvicted++,c.context.close().catch(()=>{}));for(let[b,c]of v.pendingContexts)a-c.createdAt>3e5&&(v.pendingContexts.delete(b),v.metrics.contextsEvicted++);0!==v.contexts.size||0!==v.pendingContexts.size||v.launching||v.headedLaunching||M("all-contexts-evicted")})(),6e4),v.evictTimer.unref?.(),i})();return v.pendingContexts.set(e,{promise:h,createdAt:Date.now()}),h.then(()=>G(e,!1)).catch(()=>G(e,!0)),h}async function K(a){return a.context.newPage()}async function L(a){let b=[a,`headless:${a}`,`headed:${a}`].find(a=>v.contexts.has(a));if(!b)return;let c=v.contexts.get(b);if(c){v.contexts.delete(b),v.metrics.contextsReleased++;try{await c.context.close()}catch{}0===v.contexts.size&&await M("last-context-closed")}}async function M(a){for(let[b,c]of(v.generation++,v.metrics.shutdowns++,v.metrics.lastShutdownReason=a,v.idleTimer&&(clearTimeout(v.idleTimer),v.idleTimer=null),v.evictTimer&&(clearInterval(v.evictTimer),v.evictTimer=null),v.pendingContexts.clear(),v.contexts)){try{await c.context.close()}catch{}v.contexts.delete(b)}if(v.browser){try{await v.browser.close()}catch{}v.browser=null}if(v.headedBrowser){try{await v.headedBrowser.close()}catch{}v.headedBrowser=null}v.launching=null,v.headedLaunching=null,s(),v.engine=null,v.lastActivity=Date.now()}},83243:(a,b,c)=>{c.d(b,{M:()=>i});var d=c(96179),e=c(8521),f=c(4338);let g=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function h(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!g.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class i extends d.L{async execute(a){if((0,f.xK)(a?.credentials)){let b=await (0,f.u_)(a.credentials,a.log);a={...a,credentials:{...a.credentials,accessToken:b.accessToken}}}let b=await super.execute(a);return b?.response?{...b,response:await h(b.response)}:b}async refreshCredentials(a,b){if((0,f.xK)(a))try{return(0,f.zC)(a,"upstream 401",b),{accessToken:(await (0,f.u_)(a,b)).accessToken}}catch(a){return b?.warn?.("TOKEN",`MCODE lease refresh failed: ${a.message}`),null}return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(12643);let i=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class j extends d.H{constructor(a="trae"){super(a,h.xq[a]),this.isEnterprise="trae-enterprise"===a}base(){let a=this.config?.baseUrl;if(a)return a.replace(/\/$/,"");if(!this.isEnterprise)return"https://core-normal.trae.ai/api/remote/v1";throw Error(`Trae provider "${this.provider}" has no transport baseUrl`)}buildHeaders(a,b=!0){let c=a?.providerSpecificData||{};return{...this.config?.headers||{},Authorization:`Cloud-IDE-JWT ${a?.accessToken||""}`,"Content-Type":"application/json","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US","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:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase(),c="work"===b||"auto-work"===b||"solo-work"===b;if(c&&!this.isEnterprise)return{mode:"work",strategy:"auto",modelName:""};let d=!b||"auto"===b||c;return{mode:"code",strategy:d?"auto":"manual",modelName:d?"":a}}commonParams(a,b,c,d){let e=function(a){let b=String(a||"").split(".");if(3!==b.length)return{};try{let a=JSON.parse(Buffer.from(b[1],"base64url").toString());return a?.data||{}}catch{return{}}}(d),f=this.isEnterprise,g={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||(f?"3.5.54":"1.0.0.1229"),web_id:a.webId||"",user_identity:a.userIdentity||(f?"member":"Free"),is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||e.user_id||"",scope:a.scope||(f?e.scope||"saas":"marscode-us"),tenant:a.tenant||(f?e.tenant_id||"tob_online":"marscode"),region:a.region||(f?"cn-beijing":"US-East"),aiRegion:a.aiRegion||a.region||(f?"cn-beijing":"US-East"),is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(g.biz_session_id=c),JSON.stringify(g)}async createSession(a,b,c,d,h,i,j){let k,{mode:l,strategy:m,modelName:n}=this.resolveMode(c),o={mode:l,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:n,agent_type:"solo_agent_remote",model_selection_strategy:m,common_params:this.commonParams(d,l,null,i)},env:"remote",auto_create_project:!1,origin:"web"},p=(0,f.n)(h,this.config?.timeoutMs||g.pH);try{k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(o),signal:p.signal},j||null)}catch(a){throw p.settleError(a)}finally{p.clear()}let q=await k.text();if(!k.ok)throw Error(`[${k.status}] ${q}`);let r=JSON.parse(q);if(r?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(r)}`);return{sessionId:r.data.chat_session_id,messageId:r.data.message_id}}async streamEvents(a,b,c,d,f,g){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,j=new AbortController;f?.aborted&&j.abort();let k=setTimeout(()=>j.abort(Error("trae stream timeout")),i),l=()=>j.abort();f&&f.addEventListener("abort",l,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:j.signal},g||null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,i="",k=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(i+=f.decode(e,{stream:!0});(a=i.indexOf("\n"))>=0;){let b=i.slice(0,a).replace(/\r$/,"");if(i=i.slice(a+1),b.startsWith("event:"))k=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(k,a))return void await c.cancel().catch(()=>{})}else""===b&&(k=null)}}}finally{clearTimeout(k),f&&f.removeEventListener("abort",l)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=d?.providerSpecificData||{},h=d?.proxyOptions||null,i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
274
274
  ${a}`):"assistant"===c.role?b.push(`[Assistant]
275
275
  ${a}`):b.push(a)}return JSON.stringify([{type:"text",data:{content:b.join("\n\n")}}])}(b?.messages||[]),j=`chatcmpl-${this.provider}-${Date.now()}`,k=Math.floor(Date.now()/1e3),l=(a,b)=>new Response(JSON.stringify({error:{message:b,type:"api_error",code:""}}),{status:a,headers:{"Content-Type":"application/json"}}),m=d?.accessToken||"";if(!m)return{response:l(401,`${this.provider}: no Cloud-IDE-JWT — reconnect this provider`),url:this.base(),headers:{},transformedBody:b};let n=this.buildHeaders({...d,accessToken:m},!1!==c);try{f=await this.createSession(n,i,a,g,e,m,h)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:n,transformedBody:b}}let o=[],p={},q=0,r=null,s=null,t="",u=a=>{a.tool_call_info?.name==="finish"&&(t=a.tool_call_info?.params?.summary||t);let b=a.id;if(!b)return"";b in p||o.push(b);let c=a.thought||"";c.length>=(p[b]||"").length&&(p[b]=c);let d=o.map(a=>p[a]).join(""),e=d.slice(q);return q=d.length,e},v=()=>{let a=o.map(a=>p[a]).join("");return t.startsWith(a)&&t.length>a.length?t.slice(a.length):""};if(!1!==c){let c=new TextEncoder;return{response:new Response(new ReadableStream({start:async b=>{let d=a=>b.enqueue(c.encode(`data: ${JSON.stringify(a)}
276
276
 
277
- `));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{if(await this.streamEvents(n,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return s=c,!0;if("token_usage"===b&&(r=c),"plan_item"===b){let b=u(c);b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},e,h),s)d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`${this.provider} ${s.code||""}: ${s.message||""}`,type:"api_error"}});else{let b=v();b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]}),r&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}}),d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]})}b.enqueue(c.encode("data: [DONE]\n\n")),b.close()}catch(a){b.error(a)}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:this.base(),headers:n,transformedBody:b}}try{await this.streamEvents(n,f.sessionId,f.messageId,(a,b)=>"error"===a?(s=b,!0):("token_usage"===a&&(r=b),"plan_item"===a&&u(b),"done"===a),e,h)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:n,transformedBody:b}}if(s)return{response:l(502,`${this.provider} ${s.code||""}: ${s.message||""}`),url:this.base(),headers:n,transformedBody:b};let w={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:o.map(a=>p[a]).join("")+v()},finish_reason:"stop"}]};return r&&(w.usage={prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}),{response:new Response(JSON.stringify(w),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:n,transformedBody:b}}async refreshCredentials(){return null}}},88331:(a,b,c)=>{c.d(b,{Q:()=>s});var d=c(40610),e=c.n(d),f=c(77030),g=c(74957);let h="https://veoaifree.com",i=`${h}/wp-admin/admin-ajax.php`,j=new Set([202,404,409,425]);function k(a){let b=String(a).toLowerCase().replace(/^\[|\]$/g,""),c=b.startsWith("::ffff:")?b.slice(7):b;if(c.includes(".")){let[a,b]=c.split(".").map(Number);return 0===a||10===a||127===a||a>=224||172===a&&b>=16&&b<=31||192===a&&168===b||169===a&&254===b}return"::1"===c||c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe80")||c.startsWith("fe9")||c.startsWith("fea")||c.startsWith("feb")}async function l(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if((0,f.isIP)(b)){if(k(b))throw Error("artifact host is a blocked address");return}let c=await e().promises.lookup(b,{all:!0}).catch(()=>[]);if(!c.length)throw Error("artifact host could not be resolved");for(let{address:a}of c)if(k(a))throw Error("artifact host resolves to a blocked address")}async function m(a,b,c={}){let d=new AbortController,e=setTimeout(()=>d.abort(Error("veoaifree request timed out")),3e4),f=()=>d.abort(a.signal?.reason||Error("aborted"));a.signal?.aborted?f():a.signal?.addEventListener("abort",f,{once:!0});try{let e={"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",Referer:`${h}/`,...c.headers||{}};a.cookieHeader&&void 0===e.Cookie&&(e.Cookie=a.cookieHeader);let f=await fetch(b,{...c,headers:e,signal:d.signal});return!function(a,b){let c="function"==typeof b.headers.getSetCookie?b.headers.getSetCookie():b.headers.get("set-cookie")?[b.headers.get("set-cookie")]:[];if(!c.length)return;let d=new Map(a.cookieHeader.split(";").filter(Boolean).map(a=>{let b=a.trim().indexOf("=");return b>0?[a.trim().slice(0,b),a.trim().slice(b+1)]:null}).filter(Boolean));for(let a of c){let b=a.split(";")[0]?.trim(),c=b?.indexOf("=");c>0&&b.slice(c+1)&&d.set(b.slice(0,c).trim(),b.slice(c+1))}a.cookieHeader=[...d.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(a,f),f}finally{clearTimeout(e),a.signal?.removeEventListener("abort",f)}}async function n(a){let b=await m(a,h),c=(await b.text()).match(/nonce":"([a-f0-9]+)"/);if(!c)throw Error("failed to extract CSRF nonce from veoaifree.com (site layout changed or rate limited)");return c[1]}async function o(a,b,c){let d=new URLSearchParams({action:"veo_video_generator",nonce:b,...c});return(await m(a,i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:h},body:d.toString()})).text()}function p(a,b){let c=String(a||"").toLowerCase();return/9:16|portrait/.test(c)?`${b}_PORTRAIT`:/1:1|square/.test(c)?`${b}_SQUARE`:`${b}_LANDSCAPE`}async function q(a,b){let c=b;for(let b=0;b<=3;b++){let b=new URL(c);if("https:"!==b.protocol)throw Error("artifact URL must use HTTPS");await l(b.hostname);let d=await m(a,b.toString(),{method:"GET",redirect:"manual"});if(d.status>=300&&d.status<400){let a=d.headers.get("location");if(!a)throw Error("artifact redirect is missing a destination");c=new URL(a,b.toString()).toString();continue}if(j.has(d.status))throw Object.assign(Error("artifact not available yet"),{retryable:!0});if(!d.ok)throw Error(`artifact download failed (HTTP ${d.status})`);let e=(d.headers.get("content-type")||"").split(";")[0].trim().toLowerCase();if(!["video/mp4","application/octet-stream"].includes(e))throw Error(`artifact returned unsupported content type (${e})`);let f=Buffer.from(await d.arrayBuffer());if(f.byteLength>0x6400000)throw Error("artifact exceeds 100MB limit");if(f.length<12||"ftyp"!==f.toString("ascii",4,8))throw Error("artifact is not a valid MP4 file");return f}throw Error("artifact exceeded the redirect limit")}async function r(a,b){let c=null;for(let d=0;d<12;d++)try{return await q(a,b)}catch(a){if(!a.retryable)throw a;c=a,await new Promise(a=>setTimeout(a,5e3))}throw c||Error("artifact did not become available in time")}class s extends g.H{constructor(){super("veoaifree-web",{id:"veoaifree-web",baseUrl:h})}async execute(){return{response:new Response(JSON.stringify({error:{message:"veoaifree-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="video",size:c,credentials:d,signal:e,log:f}){if("video"!==b&&"image"!==b)throw Error("veoaifree-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let g={cookieHeader:"",signal:e},h=await n(g);if("image"===b){let b=(await o(g,h,{promptIMG:a,totalVariationsIMG:"1",aspectRatioIMG:p(c,"IMAGE_ASPECT_RATIO"),actionType:"banan-image-generator"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))throw Error(`veoaifree image generation failed: ${b.slice(0,120)}`);return b.split(",").map(a=>a.trim()).filter(Boolean).map(a=>/^https?:\/\//i.test(a)?{url:a}:{b64:a,mime:"image/png"})}let i=(await o(g,h,{prompt:a,totalVariations:"1",aspectRatio:p(c,"VIDEO_ASPECT_RATIO"),actionType:"full-video-generate"})).trim();if(!i||"0"===i||i.toLowerCase().includes("error"))throw Error(`veoaifree video submit failed: ${i.slice(0,120)}`);for(let a=0;a<30;a++){if(e?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,2e4));let b=(await o(g,h,{sceneData:i,actionType:"final-video-results"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))continue;let c=b.split(/[,\n]/).map(a=>a.trim()).find(a=>/^https?:\/\//i.test(a));if(!c)continue;let d=await r(g,c);return f?.info?.("VEOAI-FREE",`video ready after ${a+1} poll(s)`),[{b64:d.toString("base64"),mime:"video/mp4"}]}throw Error("veoaifree video generation timed out after 10 minutes")}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(55511),e=c(74957),f=c(12643),g=c(47723),h=c(78959);class i extends e.H{constructor(){super("commandcode",f.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers||{},"x-session-id":(0,d.randomUUID)()},e=a?.apiKey||a?.accessToken;return e&&(c.Authorization=`Bearer ${e}`),b&&(c.Accept="text/event-stream"),c}async execute(a){for(let b=0;b<=2;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await j(c.response,a.model);if(!d.ok&&b<2&&(502===d.status||503===d.status||504===d.status)){a.log?.debug?.("RETRY",`CommandCode upstream returned status ${d.status}, retrying ${b+1}/2...`),await new Promise(a=>setTimeout(a,1e3*(b+1)));continue}return c.response=d,c}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function j(a,b){var c,d;let e,f=a.body.getReader(),i=new TextDecoder,j="",k=[],l=null;try{for(;;){let{value:a,done:b}=await f.read();if(b){let a=j.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"&&(l=c)}catch{}break}k.push(a);let c=(j+=i.decode(a,{stream:!0})).split("\n");j=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){d=!0;break}try{b=JSON.parse(e)}catch{continue}if(b?.type==="error"){l=b,d=!0;break}if(b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{f.releaseLock()}catch{}return a}if(l){try{await f.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(l);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",i={model:b},j=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
277
+ `));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{if(await this.streamEvents(n,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return s=c,!0;if("token_usage"===b&&(r=c),"plan_item"===b){let b=u(c);b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},e,h),s)d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`${this.provider} ${s.code||""}: ${s.message||""}`,type:"api_error"}});else{let b=v();b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]}),r&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}}),d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]})}b.enqueue(c.encode("data: [DONE]\n\n")),b.close()}catch(a){b.error(a)}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:this.base(),headers:n,transformedBody:b}}try{await this.streamEvents(n,f.sessionId,f.messageId,(a,b)=>"error"===a?(s=b,!0):("token_usage"===a&&(r=b),"plan_item"===a&&u(b),"done"===a),e,h)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:n,transformedBody:b}}if(s)return{response:l(502,`${this.provider} ${s.code||""}: ${s.message||""}`),url:this.base(),headers:n,transformedBody:b};let w={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:o.map(a=>p[a]).join("")+v()},finish_reason:"stop"}]};return r&&(w.usage={prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}),{response:new Response(JSON.stringify(w),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:n,transformedBody:b}}async refreshCredentials(){return null}}},88331:(a,b,c)=>{c.d(b,{Q:()=>s});var d=c(40610),e=c.n(d),f=c(77030),g=c(74957);let h="https://veoaifree.com",i=`${h}/wp-admin/admin-ajax.php`,j=new Set([202,404,409,425]);function k(a){let b=String(a).toLowerCase().replace(/^\[|\]$/g,""),c=b.startsWith("::ffff:")?b.slice(7):b;if(c.includes(".")){let[a,b]=c.split(".").map(Number);return 0===a||10===a||127===a||a>=224||172===a&&b>=16&&b<=31||192===a&&168===b||169===a&&254===b}return"::1"===c||c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe80")||c.startsWith("fe9")||c.startsWith("fea")||c.startsWith("feb")}async function l(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if((0,f.isIP)(b)){if(k(b))throw Error("artifact host is a blocked address");return}let c=await e().promises.lookup(b,{all:!0}).catch(()=>[]);if(!c.length)throw Error("artifact host could not be resolved");for(let{address:a}of c)if(k(a))throw Error("artifact host resolves to a blocked address")}async function m(a,b,c={}){let d=new AbortController,e=setTimeout(()=>d.abort(Error("veoaifree request timed out")),3e4),f=()=>d.abort(a.signal?.reason||Error("aborted"));a.signal?.aborted?f():a.signal?.addEventListener("abort",f,{once:!0});try{let e={"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",Referer:`${h}/`,...c.headers||{}};a.cookieHeader&&void 0===e.Cookie&&(e.Cookie=a.cookieHeader);let f=await fetch(b,{...c,headers:e,signal:d.signal});return!function(a,b){let c="function"==typeof b.headers.getSetCookie?b.headers.getSetCookie():b.headers.get("set-cookie")?[b.headers.get("set-cookie")]:[];if(!c.length)return;let d=new Map(a.cookieHeader.split(";").filter(Boolean).map(a=>{let b=a.trim().indexOf("=");return b>0?[a.trim().slice(0,b),a.trim().slice(b+1)]:null}).filter(Boolean));for(let a of c){let b=a.split(";")[0]?.trim(),c=b?.indexOf("=");c>0&&b.slice(c+1)&&d.set(b.slice(0,c).trim(),b.slice(c+1))}a.cookieHeader=[...d.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(a,f),f}finally{clearTimeout(e),a.signal?.removeEventListener("abort",f)}}async function n(a){let b=await m(a,h),c=(await b.text()).match(/nonce":"([a-f0-9]+)"/);if(!c)throw Error("failed to extract CSRF nonce from veoaifree.com (site layout changed or rate limited)");return c[1]}async function o(a,b,c){let d=new URLSearchParams({action:"veo_video_generator",nonce:b,...c});return(await m(a,i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:h},body:d.toString()})).text()}function p(a,b){let c=String(a||"").toLowerCase();return/9:16|portrait/.test(c)?`${b}_PORTRAIT`:/1:1|square/.test(c)?`${b}_SQUARE`:`${b}_LANDSCAPE`}async function q(a,b){let c=b;for(let b=0;b<=3;b++){let b=new URL(c);if("https:"!==b.protocol)throw Error("artifact URL must use HTTPS");await l(b.hostname);let d=await m(a,b.toString(),{method:"GET",redirect:"manual"});if(d.status>=300&&d.status<400){let a=d.headers.get("location");if(!a)throw Error("artifact redirect is missing a destination");c=new URL(a,b.toString()).toString();continue}if(j.has(d.status))throw Object.assign(Error("artifact not available yet"),{retryable:!0});if(!d.ok)throw Error(`artifact download failed (HTTP ${d.status})`);let e=(d.headers.get("content-type")||"").split(";")[0].trim().toLowerCase();if(!["video/mp4","application/octet-stream"].includes(e))throw Error(`artifact returned unsupported content type (${e})`);let f=Buffer.from(await d.arrayBuffer());if(f.byteLength>0x6400000)throw Error("artifact exceeds 100MB limit");if(f.length<12||"ftyp"!==f.toString("ascii",4,8))throw Error("artifact is not a valid MP4 file");return f}throw Error("artifact exceeded the redirect limit")}async function r(a,b){let c=null;for(let d=0;d<12;d++)try{return await q(a,b)}catch(a){if(!a.retryable)throw a;c=a,await new Promise(a=>setTimeout(a,5e3))}throw c||Error("artifact did not become available in time")}class s extends g.H{constructor(){super("veoaifree-web",{id:"veoaifree-web",baseUrl:h})}async execute(){return{response:new Response(JSON.stringify({error:{message:"veoaifree-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="video",size:c,credentials:d,signal:e,log:f}){if("video"!==b&&"image"!==b)throw Error("veoaifree-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let g={cookieHeader:"",signal:e},h=await n(g);if("image"===b){let b=(await o(g,h,{promptIMG:a,totalVariationsIMG:"1",aspectRatioIMG:p(c,"IMAGE_ASPECT_RATIO"),actionType:"banan-image-generator"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))throw Error(`veoaifree image generation failed: ${b.slice(0,120)}`);return b.split(",").map(a=>a.trim()).filter(Boolean).map(a=>/^https?:\/\//i.test(a)?{url:a}:{b64:a,mime:"image/png"})}let i=(await o(g,h,{prompt:a,totalVariations:"1",aspectRatio:p(c,"VIDEO_ASPECT_RATIO"),actionType:"full-video-generate"})).trim();if(!i||"0"===i||i.toLowerCase().includes("error"))throw Error(`veoaifree video submit failed: ${i.slice(0,120)}`);for(let a=0;a<30;a++){if(e?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,2e4));let b=(await o(g,h,{sceneData:i,actionType:"final-video-results"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))continue;let c=b.split(/[,\n]/).map(a=>a.trim()).find(a=>/^https?:\/\//i.test(a));if(!c)continue;let d=await r(g,c);return f?.info?.("VEOAI-FREE",`video ready after ${a+1} poll(s)`),[{b64:d.toString("base64"),mime:"video/mp4"}]}throw Error("veoaifree video generation timed out after 10 minutes")}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(74957),e=c(12643),f=c(10263),g=c(47723),h=c(78959);class i extends d.H{constructor(){super("commandcode",e.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0,c,d,e){return(0,f.$j)({apiKey:a?.apiKey||a?.accessToken,sessionId:e?.threadId,accept:b?"text/event-stream":null})}async execute(a){for(let b=0;b<=2;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await j(c.response,a.model);if(!d.ok&&b<2&&(502===d.status||503===d.status||504===d.status)){a.log?.debug?.("RETRY",`CommandCode upstream returned status ${d.status}, retrying ${b+1}/2...`),await new Promise(a=>setTimeout(a,1e3*(b+1)));continue}return c.response=d,c}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function j(a,b){var c,d;let e,f=a.body.getReader(),i=new TextDecoder,j="",k=[],l=null;try{for(;;){let{value:a,done:b}=await f.read();if(b){let a=j.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"&&(l=c)}catch{}break}k.push(a);let c=(j+=i.decode(a,{stream:!0})).split("\n");j=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){d=!0;break}try{b=JSON.parse(e)}catch{continue}if(b?.type==="error"){l=b,d=!0;break}if(b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{f.releaseLock()}catch{}return a}if(l){try{await f.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(l);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",i={model:b},j=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
278
278
 
279
279
  `))},k=new TransformStream({transform(a,b){let c=(f+=d.decode(a,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c)){let c=a.trim();c&&j((0,g.H)(c,i),b)}},flush(a){let b=f.trim();b&&j((0,g.H)(b,i),a),a.enqueue(e.encode(h.$U))}});return new Response(a.pipeThrough(k),{status:c?.status||200,statusText:c?.statusText||"OK",headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive",...c?.headers?Object.fromEntries(c.headers.entries()):{},"content-type":"text/event-stream"}})}((c=k,d=f,e=0,new ReadableStream({async pull(a){if(e<c.length)return void a.enqueue(c[e++]);try{let{value:b,done:c}=await d.read();c?a.close():a.enqueue(b)}catch(b){a.error(b)}},async cancel(a){try{await d.cancel(a)}catch{}}})),b,a)}},92536:(a,b,c)=>{function d(a){return`data: ${JSON.stringify(a)}
280
280
 
@@ -340,6 +340,6 @@ ${d}`))}return b.join("\n\n")||"(empty)"}(k),p=function(a){let b=[],c=a=>{"strin
340
340
 
341
341
  `):f(`data: ${JSON.stringify({id:z,object:"chat.completion.chunk",created:A,model:a,choices:[{index:0,delta:{},finish_reason:d}],usage:{prompt_tokens:Math.ceil(o.length/4),completion_tokens:Math.ceil(C.length/4),total_tokens:Math.ceil((o.length+C.length)/4),estimated:!0}})}
342
342
 
343
- `),f("data: [DONE]\n\n");try{n||(n=!0,k.stdin.end())}catch{}let e=setTimeout(()=>{k.killed||k.kill("SIGKILL")},2e3);e.unref?.(),b.close(),y()},K="";k.stdout.on("data",b=>{let c;for(K+=b.toString("utf8");-1!==(c=K.indexOf("\n"));){let b,e=K.slice(0,c).trim();if(K=K.slice(c+1),e){try{b=JSON.parse(e)}catch{continue}if(!u&&void 0!==b.result&&!b.method){u=!0,E("session/new",{cwd:p,mcpServers:[],model:a||void 0});continue}if(u&&!v&&void 0!==b.result&&!b.method){if(!(t=(b.result||{}).sessionId||null))return void J("Devin ACP: session/new returned no sessionId");v=!0,w=!0,E("session/prompt",{sessionId:t,prompt:[{type:"text",text:o}]});continue}if(v&&w&&void 0!==b.result&&!b.method){if(!B){let a=b.result||void 0,c=function(a){if("string"==typeof a.content)return a.content;if("string"==typeof a.text)return a.text;let b=a.message;if(b&&"string"==typeof b.content)return b.content;let c=a.messages;return Array.isArray(c)?c.filter(a=>"assistant"===a.role).map(a=>String(a.content||"")).join("\n"):""}(a);c&&(C=c,F(c));let d=a&&a.stopReason||"";if(d&&"cancelled"!==d)return void J()}continue}if("session/request_permission"===b.method&&void 0!==b.id){let a=b.params?.options||[],c=a.find(a=>/allow/i.test(String(a.kind||"")))||a[0];c&&k.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b.id,result:{outcome:{outcome:"selected",optionId:c.optionId}}})+"\n");continue}if("_cognition.ai/agent_stopped"===b.method||"$/agent_stopped"===b.method)return void("error"===b.params?.cause?J(String(b.params?.errorMessage||b.params?.message||b.params?.error||"Devin agent error")):J());if("session/update"===b.method||"$/update"===b.method){let a=b.params;if(!a)continue;let c=a.update||{},e=c.sessionUpdate||a.type,f=void 0!==c.content?c.content:a.content,g="string"==typeof f?f:f?.text??a.delta??a.text??"";if(x&&!G&&("tool_call"===e||"tool_call_update"===e)){let a=c.toolCallId;if("string"==typeof c.title&&c.title.startsWith("Calling mcp_")&&/from clientTools\b/.test(c.title)){var d;let b=c.title.match(/^Calling (mcp_\S+)\b/),e=(d=b?b[1]:"").startsWith(m)?d.slice(m.length):d;a&&e&&H.set(a,e)}let b=a?H.get(a):null;if(b&&c.rawInput){G=!0,H.delete(a),I(b,c.rawInput,a||`call_${Date.now()}`),J(null,"tool_calls");return}continue}if("agent_message_chunk"===e||"message_delta"===e||"text_delta"===e||"content_delta"===e)g&&F(g);else if("agent_thought_chunk"===e);else if("message_stop"===e||"stop"===e||"done"===e)return void J();else if("error"===e)return void J(String(a.message||a.error||"Devin ACP error"));continue}if(b.error)return void J(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}),k.stderr.on("data",a=>{g?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),k.on("close",a=>{D?y():0===a||l?J():J(B?void 0:`Devin CLI exited with code ${a}`)}),E("initialize",{protocolVersion:"0.3",clientInfo:{name:"9router",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,cwd:p,clientTools:u.map(a=>a?.function?.name||a?.name).filter(Boolean),clientToolResults:Object.keys(v),mcpServers:Object.keys(s),promptLength:Array.isArray(b?.messages)?b.messages.length:Array.isArray(b?.input)?b.input.length:0}}}}},95128:(a,b,c)=>{c.d(b,{V:()=>h});var d=c(74957),e=c(12643),f=c(75924),g=c(39609);class h extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null,d=null){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(d),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return b&&b.request&&b.model?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;try{let a=JSON.parse(b),d=a?.error?.details;if(Array.isArray(d)){for(let a of d)if(a?.["@type"]==="type.googleapis.com/google.rpc.RetryInfo"&&a?.retryDelay){c.retryAfter=a.retryDelay;break}}}catch{}return c}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,g.proxyAwareFetch)(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},98625:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(96179);class e extends d.L{constructor(){super("azure")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.azureEndpoint||process.env.AZURE_ENDPOINT||"https://api.openai.com",f=d?.providerSpecificData?.apiVersion||process.env.AZURE_API_VERSION||"2024-10-01-preview",g=d?.providerSpecificData?.deployment||a||process.env.AZURE_DEPLOYMENT||"gpt-4",h=e.replace(/\/$/,"");return`${h}/openai/deployments/${g}/chat/completions?api-version=${f}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers},d=a?.apiKey||a?.accessToken||process.env.OPENAI_API_KEY;d&&(c["api-key"]=d);let e=a?.providerSpecificData?.organization||process.env.AZURE_ORGANIZATION;return e&&(c["OpenAI-Organization"]=e),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}}},98665:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(74957),e=c(14170),f=c(88499),g=c(19979),h=c(97102),i=c(65377),j=c(29675),k=c(32546),l=c(4845),m=c(49804);let n="anthropic",o="open_ai",p="google",q="x_ai";function r(a,b){let c=String(a||"").toLowerCase();if("anthropic"===c)return n;if("openai"===c||"open_ai"===c)return o;if("google"===c||"gemini"===c)return p;if("xai"===c||"x_ai"===c||"x-ai"===c)return q;let d=String(b||"").toLowerCase();return d.includes("claude")?n:d.includes("gemini")?p:d.includes("grok")||d.includes("xai")?q:o}function s(a,b,c){return a===n?(0,j.P)(b,c):a===p?(0,k.o)(b,c):a===o?(0,l.v)(b,c):b}function t(a,b,c){if(c)for(let d of Array.isArray(c)?c:[c])d&&a.enqueue(b.encode(`data: ${JSON.stringify(d)}
343
+ `),f("data: [DONE]\n\n");try{n||(n=!0,k.stdin.end())}catch{}let e=setTimeout(()=>{k.killed||k.kill("SIGKILL")},2e3);e.unref?.(),b.close(),y()},K="";k.stdout.on("data",b=>{let c;for(K+=b.toString("utf8");-1!==(c=K.indexOf("\n"));){let b,e=K.slice(0,c).trim();if(K=K.slice(c+1),e){try{b=JSON.parse(e)}catch{continue}if(!u&&void 0!==b.result&&!b.method){u=!0,E("session/new",{cwd:p,mcpServers:[],model:a||void 0});continue}if(u&&!v&&void 0!==b.result&&!b.method){if(!(t=(b.result||{}).sessionId||null))return void J("Devin ACP: session/new returned no sessionId");v=!0,w=!0,E("session/prompt",{sessionId:t,prompt:[{type:"text",text:o}]});continue}if(v&&w&&void 0!==b.result&&!b.method){if(!B){let a=b.result||void 0,c=function(a){if("string"==typeof a.content)return a.content;if("string"==typeof a.text)return a.text;let b=a.message;if(b&&"string"==typeof b.content)return b.content;let c=a.messages;return Array.isArray(c)?c.filter(a=>"assistant"===a.role).map(a=>String(a.content||"")).join("\n"):""}(a);c&&(C=c,F(c));let d=a&&a.stopReason||"";if(d&&"cancelled"!==d)return void J()}continue}if("session/request_permission"===b.method&&void 0!==b.id){let a=b.params?.options||[],c=a.find(a=>/allow/i.test(String(a.kind||"")))||a[0];c&&k.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b.id,result:{outcome:{outcome:"selected",optionId:c.optionId}}})+"\n");continue}if("_cognition.ai/agent_stopped"===b.method||"$/agent_stopped"===b.method)return void("error"===b.params?.cause?J(String(b.params?.errorMessage||b.params?.message||b.params?.error||"Devin agent error")):J());if("session/update"===b.method||"$/update"===b.method){let a=b.params;if(!a)continue;let c=a.update||{},e=c.sessionUpdate||a.type,f=void 0!==c.content?c.content:a.content,g="string"==typeof f?f:f?.text??a.delta??a.text??"";if(x&&!G&&("tool_call"===e||"tool_call_update"===e)){let a=c.toolCallId;if("string"==typeof c.title&&c.title.startsWith("Calling mcp_")&&/from clientTools\b/.test(c.title)){var d;let b=c.title.match(/^Calling (mcp_\S+)\b/),e=(d=b?b[1]:"").startsWith(m)?d.slice(m.length):d;a&&e&&H.set(a,e)}let b=a?H.get(a):null;if(b&&c.rawInput){G=!0,H.delete(a),I(b,c.rawInput,a||`call_${Date.now()}`),J(null,"tool_calls");return}continue}if("agent_message_chunk"===e||"message_delta"===e||"text_delta"===e||"content_delta"===e)g&&F(g);else if("agent_thought_chunk"===e);else if("message_stop"===e||"stop"===e||"done"===e)return void J();else if("error"===e)return void J(String(a.message||a.error||"Devin ACP error"));continue}if(b.error)return void J(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}),k.stderr.on("data",a=>{g?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),k.on("close",a=>{D?y():0===a||l?J():J(B?void 0:`Devin CLI exited with code ${a}`)}),E("initialize",{protocolVersion:"0.3",clientInfo:{name:"9router",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,cwd:p,clientTools:u.map(a=>a?.function?.name||a?.name).filter(Boolean),clientToolResults:Object.keys(v),mcpServers:Object.keys(s),promptLength:Array.isArray(b?.messages)?b.messages.length:Array.isArray(b?.input)?b.input.length:0}}}}},95128:(a,b,c)=>{c.d(b,{V:()=>h});var d=c(74957),e=c(12643),f=c(75924),g=c(39609);class h extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null,d=null){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(d),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return b&&b.request&&b.model?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;try{let a=JSON.parse(b),d=a?.error?.details;if(Array.isArray(d)){for(let a of d)if(a?.["@type"]==="type.googleapis.com/google.rpc.RetryInfo"&&a?.retryDelay){c.retryAfter=a.retryDelay;break}}}catch{}return c}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,g.proxyAwareFetch)(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},98625:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(96179);class e extends d.L{constructor(){super("azure")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.azureEndpoint||process.env.AZURE_ENDPOINT||"https://api.openai.com",f=d?.providerSpecificData?.apiVersion||process.env.AZURE_API_VERSION||"2024-10-01-preview",g=d?.providerSpecificData?.deployment||a||process.env.AZURE_DEPLOYMENT||"gpt-4",h=e.replace(/\/$/,"");return`${h}/openai/deployments/${g}/chat/completions?api-version=${f}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers},d=a?.apiKey||a?.accessToken||process.env.OPENAI_API_KEY;d&&(c["api-key"]=d);let e=a?.providerSpecificData?.organization||process.env.AZURE_ORGANIZATION;return e&&(c["OpenAI-Organization"]=e),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}}},98665:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(74957),e=c(14170),f=c(59999),g=c(19979),h=c(97102),i=c(65377),j=c(29675),k=c(32546),l=c(4845),m=c(49804);let n="anthropic",o="open_ai",p="google",q="x_ai";function r(a,b){let c=String(a||"").toLowerCase();if("anthropic"===c)return n;if("openai"===c||"open_ai"===c)return o;if("google"===c||"gemini"===c)return p;if("xai"===c||"x_ai"===c||"x-ai"===c)return q;let d=String(b||"").toLowerCase();return d.includes("claude")?n:d.includes("gemini")?p:d.includes("grok")||d.includes("xai")?q:o}function s(a,b,c){return a===n?(0,j.P)(b,c):a===p?(0,k.o)(b,c):a===o?(0,l.v)(b,c):b}function t(a,b,c){if(c)for(let d of Array.isArray(c)?c:[c])d&&a.enqueue(b.encode(`data: ${JSON.stringify(d)}
344
344
 
345
345
  `))}class u extends d.H{constructor(){super("zed")}async resolveModel(a,b,c,d){try{let d=await (0,m.w9)(b,{config:this.config,signal:c}),e=d?.rawById?.get(a)??null;if(!e){let d=await (0,m.w9)(b,{config:this.config,signal:c,forceRefresh:!0});e=d?.rawById?.get(a)??null}return{raw:e,provider:r(e?.provider,a)}}catch(c){let b=c instanceof Error?c.message:String(c);return d?.warn?.("ZED",`model catalog unavailable, inferring provider for ${a}: ${b}`),{raw:null,provider:r(null,a)}}}async execute({model:a,body:b,stream:c,credentials:d,signal:j,log:k,proxyOptions:l=null}){let{provider:q}=await this.resolveModel(a,d,j,k),r=function(a,b,c,d,e){if(a===n)return(0,g.p)(b,c,!0);if(a===p){let a=(0,h.m$)(b,c,!0);return delete a.safetySettings,a}return a===o?(0,i.h)(b,c,!0,e):{...c||{},model:b,stream:!1!==d}}(q,a,b,c,d),u=b||{},v={thread_id:u.thread_id||d?._clientSessionId,prompt_id:u.prompt_id,provider:q,model:a,provider_request:r},w=await (0,m.zn)(d,"/completions",{config:this.config,signal:j,fetchOptions:{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/x-ndjson, text/event-stream, */*","User-Agent":"9router/zed","x-zed-version":this.config?.appVersion?.toString()||"0.200.0",[m.xK.clientSupportsStatus]:"true",[m.xK.clientSupportsStreamEnded]:"true"},body:JSON.stringify(v)}});return{response:w.ok?function(a,b,c){if(!a.ok||!a.body)return a;let d=new TextDecoder,g=new TextEncoder,h=function(a,b){if(a===n)return(0,f.Ws)(e.h.CLAUDE);if(a===p)return(0,f.Ws)(e.h.GEMINI);if(a===o)return(0,f.Ws)(e.h.OPENAI_RESPONSES);let c=(0,f.Ws)(e.h.OPENAI);return c.model=b,c}(b,c),i="",j=!1,k=a=>{j||(t(a,g,s(b,null,h)),a.enqueue(g.encode("data: [DONE]\n\n")),j=!0)},l=(a,d)=>{if(j)return;let e=function(a){let b=a.replace(/\r$/,"").trim();if(!b)return null;if(b.startsWith("data:")&&(b=b.slice(5).trimStart()),"[DONE]"===b)return{done:!0};try{let a=JSON.parse(b);if(a&&Object.prototype.hasOwnProperty.call(a,"event"))return{event:a.event};if(a&&Object.prototype.hasOwnProperty.call(a,"status"))return{status:a.status};return{event:a}}catch{return null}}(a);if(e){if(e.done)return void k(d);if(e.status){let a=function(a){if(!a)return null;if("string"==typeof a)return{type:a};if("object"==typeof a){let b=Object.keys(a)[0];return b&&"object"==typeof a[b]?{type:b,...a[b]}:a}return null}(e.status);if(a?.type==="failed"||a?.failed){let b=a.failed||a,e=String(b.message||b.error||b.code||"request failed");t(d,g,{id:`chatcmpl-zed-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:c,choices:[{index:0,delta:{content:`[Zed error] ${e}`},finish_reason:"stop"}]}),k(d)}else(a?.type==="stream_ended"||"stream_ended"===a)&&k(d);return}t(d,g,s(b,e.event,h))}};return new Response(a.body.pipeThrough(new TransformStream({transform(a,b){let c;for(i+=d.decode(a,{stream:!0});-1!==(c=i.indexOf("\n"));){let a=i.slice(0,c);i=i.slice(c+1),l(a,b)}},flush(a){(i+=d.decode())&&(l(i,a),i=""),k(a)}})),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}(w,q,a):w,url:`${this.config?.llmBaseUrl||"https://cloud.zed.dev"}/completions`,headers:{"Content-Type":"application/json",Authorization:"Bearer <zed-llm-token>"},transformedBody:v}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||void 0,e=c?.code||d?.code||"",f=c?.message||d?.message||b||a.statusText;return"trial_blocked"===e?{status:a.status,message:`Zed trial access is blocked upstream. The account can list hosted models, but Zed is refusing completions until trial/billing access is enabled or unblocked. Zed says: ${f}`}:e?{status:a.status,message:`Zed ${e}: ${f}`}:{status:a.status,message:f||`Zed upstream error: ${a.status}`}}async refreshCredentials(){return null}needsRefresh(){return!1}}let v=u}};