9router-proxy 0.6.18 → 0.6.19

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 (539) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +14 -14
  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/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  77. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  78. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  82. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  85. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  86. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  87. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  88. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  101. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  103. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  106. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -2
  110. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  114. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  118. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  122. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  124. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  126. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  132. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  139. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  141. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/providers/web-login/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  268. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  282. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  311. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  352. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  354. package/app/.next-cli-build/server/app/callback.html +1 -1
  355. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  356. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  357. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  358. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  359. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  361. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  362. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  363. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  364. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  366. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  367. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  368. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  369. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  370. package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  371. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  372. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  373. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  376. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  377. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  378. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  379. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  381. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  382. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  383. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  384. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  386. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  387. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  388. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  389. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  391. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  392. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  393. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  394. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  396. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  397. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  398. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  401. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  402. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  403. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  406. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  407. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  408. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  411. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  412. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  413. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  414. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  416. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  417. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  418. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  424. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  425. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  427. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  429. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  430. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  431. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  432. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  434. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  435. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  436. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  437. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  439. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  440. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  441. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  444. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  445. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  446. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  447. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  448. package/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  449. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  450. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  451. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  452. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/index.html +1 -1
  454. package/app/.next-cli-build/server/app/index.rsc +3 -3
  455. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  456. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  457. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  459. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  461. package/app/.next-cli-build/server/app/landing.html +1 -1
  462. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  463. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  464. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  466. package/app/.next-cli-build/server/app/login/page.js +1 -1
  467. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  469. package/app/.next-cli-build/server/app/login.html +1 -1
  470. package/app/.next-cli-build/server/app/login.rsc +3 -3
  471. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  472. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  473. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  474. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  475. package/app/.next-cli-build/server/app/page.js +1 -1
  476. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  477. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  478. package/app/.next-cli-build/server/app-paths-manifest.json +14 -14
  479. package/app/.next-cli-build/server/chunks/1329.js +1 -1
  480. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  481. package/app/.next-cli-build/server/chunks/1356.js +1 -1
  482. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  483. package/app/.next-cli-build/server/chunks/21.js +1 -1
  484. package/app/.next-cli-build/server/chunks/24.js +1 -1
  485. package/app/.next-cli-build/server/chunks/341.js +1 -1
  486. package/app/.next-cli-build/server/chunks/3726.js +1 -1
  487. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  488. package/app/.next-cli-build/server/chunks/412.js +2 -2
  489. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  490. package/app/.next-cli-build/server/chunks/4279.js +1 -1
  491. package/app/.next-cli-build/server/chunks/4956.js +1 -1
  492. package/app/.next-cli-build/server/chunks/4957.js +1 -1
  493. package/app/.next-cli-build/server/chunks/5026.js +1 -1
  494. package/app/.next-cli-build/server/chunks/5330.js +13 -48
  495. package/app/.next-cli-build/server/chunks/5615.js +2 -2
  496. package/app/.next-cli-build/server/chunks/5840.js +1 -0
  497. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  498. package/app/.next-cli-build/server/chunks/615.js +1 -1
  499. package/app/.next-cli-build/server/chunks/6638.js +1 -1
  500. package/app/.next-cli-build/server/chunks/6983.js +1 -0
  501. package/app/.next-cli-build/server/chunks/7187.js +1 -1
  502. package/app/.next-cli-build/server/chunks/7220.js +1 -1
  503. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  504. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  505. package/app/.next-cli-build/server/chunks/{7782.js → 7732.js} +1 -1
  506. package/app/.next-cli-build/server/chunks/794.js +1 -1
  507. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  508. package/app/.next-cli-build/server/chunks/8251.js +1 -1
  509. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  510. package/app/.next-cli-build/server/chunks/8895.js +4 -4
  511. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  512. package/app/.next-cli-build/server/instrumentation.js +1 -1
  513. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  514. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  515. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  516. package/app/.next-cli-build/server/pages/404.html +1 -1
  517. package/app/.next-cli-build/server/pages/500.html +1 -1
  518. package/app/.next-cli-build/server/preview-props.json +3 -3
  519. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  520. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  521. package/app/.next-cli-build/static/chunks/1321-d42a1c66e9cf1a99.js +1 -0
  522. package/app/.next-cli-build/static/chunks/{5497-ff26fb5a567cddba.js → 5497-11663c3e80a3cf5a.js} +2 -2
  523. package/app/.next-cli-build/static/chunks/9057-7d59411792d52341.js +1 -0
  524. package/app/.next-cli-build/static/chunks/app/landing/page-b86316c1776a570d.js +1 -0
  525. package/app/.next-cli-build/static/chunks/webpack-6463d5fe66fbfc78.js +1 -0
  526. package/app/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  527. package/app/node_modules/baseline-browser-mapping/package.json +1 -1
  528. package/app/package.json +1 -1
  529. package/package.json +1 -1
  530. package/app/.next-cli-build/server/chunks/4577.js +0 -1
  531. package/app/.next-cli-build/server/chunks/9318.js +0 -1
  532. package/app/.next-cli-build/server/chunks/9745.js +0 -1
  533. package/app/.next-cli-build/static/chunks/1321-138d529e585dad58.js +0 -1
  534. package/app/.next-cli-build/static/chunks/9057-ab81b24adb40dec4.js +0 -1
  535. package/app/.next-cli-build/static/chunks/app/landing/page-2915d691a511d8ec.js +0 -1
  536. package/app/.next-cli-build/static/chunks/webpack-9dc40b48930dad72.js +0 -1
  537. package/app/open-sse/executors/gemini-web/browserLease.js +0 -59
  538. /package/app/.next-cli-build/static/{GlvCkMZjwCu1tsFJ6OXjP → MoWT_XpUp-bKSt7-wK19U}/_buildManifest.js +0 -0
  539. /package/app/.next-cli-build/static/{GlvCkMZjwCu1tsFJ6OXjP → MoWT_XpUp-bKSt7-wK19U}/_ssgManifest.js +0 -0
@@ -224,46 +224,24 @@ ${b}`);return d.push("[Instruction]\nContinue the conversation above and reply a
224
224
  `)),b.enqueue(c.encode(f.$U)),b.close()}catch(a){b.enqueue(c.encode(`data: ${JSON.stringify({error:{message:a.message||"muse-web stream failed"}})}
225
225
 
226
226
  `)),b.enqueue(c.encode(f.$U)),b.close()}finally{e?.removeEventListener("abort",u),await d.close().catch(()=>{})}}},{highWaterMark:16384});return{response:new Response(g,{status:200,headers:{...f.uB}}),url:"https://muse.ai",headers:{},transformedBody:b}}let i=await U({page:t,base:a,signal:e});return await g(),{response:new Response(JSON.stringify(function(a,b,c="stop"){return{id:`chatcmpl-muw-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:{role:"assistant",content:a},finish_reason:c,logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}(i,k)),{status:200,headers:{"Content-Type":"application/json"}}),url:"https://muse.ai",headers:{},transformedBody:b}}catch(c){e?.removeEventListener("abort",u),await t?.close().catch(()=>{});let a=c instanceof Error?c.message:"Unknown error";if((0,g.BE)(a))return{response:M(503,"Muse Web needs a Chrome/Chromium binary. Install Google Chrome, set NINEROUTER_BROWSER_BIN or CHROME_PATH to an existing Chrome, or run `npx playwright-core install chromium`."),url:"https://muse.ai",headers:{},transformedBody:b};if(c instanceof Error&&("TimeoutError"===c.name||a.includes("waitForSelector")||a.includes("actionability")))return{response:M(400,a),url:"https://muse.ai",headers:{},transformedBody:b};return{response:M(c instanceof n?401:c instanceof p?429:c instanceof q?504:c instanceof o?502:c?.name==="AbortError"||/aborted/i.test(c?.message||"")?499:500,a),url:"https://muse.ai",headers:{},transformedBody:b}}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,images:f,credentials:g,signal:h,log:i}){var j;let k,l;if(!a)throw new o("prompt is required for media generation");let m=(j=!!f?.length,k=[],c&&k.push(`aspect ratio ${c}`),d&&k.push(`${d} seconds long`),l=k.length?` (${k.join(", ")})`:"",`${"image"===b?"Generate an image":j?"Animate the attached image into a video":"Generate a video"}${l}: ${a}`),n="video"===b?6e5:24e4,p=[];for(let a=0;a<Math.max(1,e);a++){let{page:a}=await this._openThreadPage(g,{signal:h,log:i});try{let c=await P(a);f?.length&&await T(a,f),await R(a,m);let d=await Z({page:a,base:c,kind:b,timeoutMs:n,signal:h,log:i}),e=await $(a,d,b);p.push({b64:e.b64,mime:e.mime,...d.w?{width:d.w}:{},...d.h?{height:d.h}:{}})}finally{await a.close().catch(()=>{})}}return p}}},23013:(a,b,c)=>{c.d(b,{Ay:()=>C});var d=c(74957),e=c(12643),f=c(41004),g=c(39609),h=c(49426),i=c(78959),j=c(92536);let k=e.xq["perplexity-web"].baseUrl,l="2.18",m={"pplx-auto":["concise","pplx_pro"],"pplx-sonar":["copilot","experimental"],"pplx-gpt":["copilot","gpt54"],"pplx-gemini":["copilot","gemini31pro_high"],"pplx-sonnet":["copilot","claude46sonnet"],"pplx-opus":["copilot","claude46opus"],"pplx-nemotron":["copilot","nv_nemotron_3_super"]},n={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},o=/\[\d+\]/g,p=/<grok:[^>]*>.*?<\/grok:[^>]*>/gs,q=/<grok:[^>]*\/>/g,r=/<[?]xml[^?]*[?]>/g,s=/<\/?response\b[^>]*>/gi,t=/ {2,}/g,u=/\n{3,}/g,v=new Map;function w(a){let b=a.map(a=>`${a.role}:${a.content}`).join("\n"),c=0x811c9dc5;for(let a=0;a<b.length;a++)c^=b.charCodeAt(a),c=0x1000193*c>>>0;return c.toString(16).padStart(8,"0")}function x(a,b,c,d){if(!d)return;let e=w([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(v.set(e,{backendUuid:d,ts:Date.now()}),v.size>200){let a=null,b=1/0;for(let[c,d]of v)d.ts<b&&(b=d.ts,a=c);a&&v.delete(a)}}function y(a,b=!0){let c=a;return c=(c=(c=(c=(c=c.replace(r,"")).replace(o,"")).replace(p,"")).replace(q,"")).replace(s,""),b&&(c=(c=(c=c.replace(t," ")).replace(u,"\n\n")).trim()),c}async function*z(a,b){let c=a.getReader(),d=new TextDecoder,e="",f=[];function g(){if(0===f.length)return null;let a=f.join("\n");f=[];let b=a.trim();if(!b||"[DONE]"===b)return"done";try{return JSON.parse(b)}catch{return null}}try{for(;;){if(b?.aborted)return;let{value:a,done:h}=await c.read();if(h)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a);e=e.slice(a+1);let c=b.endsWith("\r")?b.slice(0,-1):b;if(""===c){let a=g();if("done"===a)return;a&&(yield a);continue}if(c.startsWith("data:")&&f.push(c.slice(5).trimStart()),"event: end_of_stream"===c)return}}(e+=d.decode()).trim().startsWith("data:")&&f.push(e.trim().slice(5).trimStart());let a=g();a&&"done"!==a&&(yield a)}finally{c.releaseLock()}}async function*A(a,b){let c="",d=null,e=0,f=new Set;for await(let g of z(a,b)){if(g.error_code||g.error_message)return void(yield{error:g.error_message||`Perplexity error: ${g.error_code}`,done:!0});g.backend_uuid&&(d=g.backend_uuid);let a=g.blocks??[];for(let b of a){let a=b.intended_usage??"";if("pro_search_steps"===a&&b.plan_block?.steps){for(let a of b.plan_block.steps)if("SEARCH_WEB"===a.step_type)for(let b of a.search_web_content?.queries??[]){let a=b.query??"";a&&!f.has(a)&&(f.add(a),yield{thinking:`Searching: ${a}`,backendUuid:d??void 0})}else if("READ_RESULTS"===a.step_type)for(let b of(a.read_results_content?.urls??[]).slice(0,3))b&&!f.has(b)&&(f.add(b),yield{thinking:`Reading: ${b}`,backendUuid:d??void 0})}if("plan"===a&&b.plan_block?.goals)for(let a of b.plan_block.goals){let b=a.description??"";b&&!f.has(b)&&(f.add(b),yield{thinking:b,backendUuid:d??void 0})}if(!a.includes("markdown"))continue;let g=b.markdown_block;if(!g)continue;let h=g.chunks??[];if(0!==h.length)if("DONE"===g.progress)c=h.join("");else{let a=c+h.join("");if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}}if(0===a.length&&g.text){let a=g.text.trim();if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if(g.final||"COMPLETED"===g.status)break}yield{delta:"",answer:c,backendUuid:d??void 0,done:!0}}async function B(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of A(a,g)){if(b.backendUuid&&(i=b.backendUuid),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"PPLX_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.done){h=b.answer||h;break}b.answer&&(h=b.answer)}x(e,f,h=y(h),i);let k=j.length>0?j.join("\n"):void 0,l={role:"assistant",content:h};k&&(l.reasoning_content=k);let m=Math.ceil(f.length/4),n=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:l,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:m,completion_tokens:n,total_tokens:m+n}}),{status:200,headers:{"Content-Type":"application/json"}})}class C extends d.H{constructor(){super("perplexity-web",e.xq["perplexity-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:o,proxyOptions:p=null}){var q,r,s,t,u;let z,C,D,E,F,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:k,headers:{},transformedBody:b};(b?.thinking===!0||b?.reasoning_effort!=null&&"none"!==b.reasoning_effort)&&n[a]?(z="copilot",C=n[a],o?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${C}`)):m[a]?[z,C]=m[a]:(z="copilot",C=a,o?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let H=function(a){let b="",c=[];for(let d of a){let a=String(d.role||"user");"developer"===a&&(a="system");let e="";"string"==typeof d.content?e=d.content:Array.isArray(d.content)&&(e=d.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),e.trim()&&("system"===a?b+=e+"\n":("user"===a||"assistant"===a)&&c.push({role:a,content:e}))}let d="";return c.length>0&&"user"===c[c.length-1].role&&(d=c.pop().content),{systemMsg:b,history:c,currentMsg:d}}(G),I=function(a){if(0===a.length)return null;let b=w(a),c=v.get(b);return c?Date.now()-c.ts>36e5?(v.delete(b),null):c.backendUuid:null}(H.history);I&&o?.info?.("PPLX-WEB",`Session continue: ${I.slice(0,12)}...`);let J=function(a,b,c){if(b)return a.currentMsg;let d={},e=[];a.systemMsg.trim()&&e.push(a.systemMsg.trim());let f=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=a.map(a=>{let b=a?.function||a||{},c=b.name||"unnamed",d=(b.description||"").split("\n")[0].slice(0,200);return`- ${c}: ${d}`});return`Available tools (reference only, cannot invoke):
227
- ${b.join("\n")}`}(c);f&&e.push(f),e.push("You have built-in web search. Answer questions directly using search results."),d.instructions=e,a.history.length>0&&(d.history=a.history),a.currentMsg?d.query=a.currentMsg:0===a.history.length&&(d.query="");let g=JSON.stringify(d);return g.length>96e3?g.slice(-96e3):g}(H,I,b?.tools);if(!J.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:k,headers:{},transformedBody:b};let K=(q=z,r=C,F="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",{query_str:J,params:{query_str:J,search_focus:"internet",mode:q,model_preference:r,sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:l,language:"en-US",timezone:F,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:I}}),L={"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36","X-App-ApiClient":"default","X-App-ApiVersion":l};d.accessToken?L.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(L.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),o?.info?.("PPLX-WEB",`Query to ${a} (pref=${C}, mode=${z}), len=${J.length}`);let M={method:"POST",headers:L,body:JSON.stringify(K)},N=(0,h.n)(e,this.config?.timeoutMs||f.Z1);M.signal=N.signal;try{D=await (0,g.proxyAwareFetch)(k,M,p)}catch(a){return o?.error?.("PPLX-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Perplexity connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:k,headers:L,transformedBody:K}}finally{N.clear()}if(!D.ok){let a=D.status,b=`Perplexity returned HTTP ${a}`;return 401===a||403===a?b="Perplexity auth failed — session cookie may be expired. Re-paste your __Secure-next-auth.session-token.":429===a&&(b="Perplexity rate limited. Wait a moment and retry."),o?.warn?.("PPLX-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:k,headers:L,transformedBody:K}}if(!D.body)return{response:new Response(JSON.stringify({error:{message:"Perplexity returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:k,headers:L,transformedBody:K};let O=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,P=Math.floor(Date.now()/1e3);if(c){let b;E=new Response((s=D.body,t=H.history,u=H.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",f=null;for await(let g of A(s,e)){if(g.backendUuid&&(f=g.backendUuid),g.error){c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:g.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(g.done){d=g.answer||d;break}let e=g.delta||"";e&&(e=y(e,!1))&&c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),g.answer&&(d=g.answer)}c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U)),x(t,u,y(d),f)}catch(d){c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,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 E=await B(D.body,a,O,P,H.history,H.currentMsg,e);return{response:E,url:k,headers:L,transformedBody:K}}}},25360:(a,b,c)=>{c.d(b,{N:()=>g});var d=c(14229);let e={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"};async function f(a,b,c){let e=await a.text();try{let f=JSON.parse(e),g=f?.choices?.[0]?.message?.content||"",{content:h,toolCalls:i,finishReason:j}=(0,d.mU)(g,b,c);return i?(f.choices[0].message={role:"assistant",content:null,tool_calls:i},f.choices[0].finish_reason=j):f.choices[0].message.content=h,new Response(JSON.stringify(f),{status:a.status,headers:{"Content-Type":"application/json"}})}catch{return new Response(e,{status:a.status,headers:{"Content-Type":"application/json"}})}}async function g(a,b,c,d){var g,h,i,j;let k,l,m,n,o;if(!a.ok)return a;let p=await f(a,b,d.idSeed??"cgpt");return c?new Response((g=await p.json(),h=d.cid,i=d.created,j=d.model,k=new TextEncoder,m=(l=g?.choices?.[0]??{}).message??{},n=l.finish_reason??"stop",o=(a,b)=>{var c;return k.encode((c={id:h,object:"chat.completion.chunk",created:i,model:j,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:b,logprobs:null}]},`data: ${JSON.stringify(c)}
227
+ ${b.join("\n")}`}(c);f&&e.push(f),e.push("You have built-in web search. Answer questions directly using search results."),d.instructions=e,a.history.length>0&&(d.history=a.history),a.currentMsg?d.query=a.currentMsg:0===a.history.length&&(d.query="");let g=JSON.stringify(d);return g.length>96e3?g.slice(-96e3):g}(H,I,b?.tools);if(!J.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:k,headers:{},transformedBody:b};let K=(q=z,r=C,F="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",{query_str:J,params:{query_str:J,search_focus:"internet",mode:q,model_preference:r,sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:l,language:"en-US",timezone:F,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:I}}),L={"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36","X-App-ApiClient":"default","X-App-ApiVersion":l};d.accessToken?L.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(L.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),o?.info?.("PPLX-WEB",`Query to ${a} (pref=${C}, mode=${z}), len=${J.length}`);let M={method:"POST",headers:L,body:JSON.stringify(K)},N=(0,h.n)(e,this.config?.timeoutMs||f.Z1);M.signal=N.signal;try{D=await (0,g.proxyAwareFetch)(k,M,p)}catch(a){return o?.error?.("PPLX-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Perplexity connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:k,headers:L,transformedBody:K}}finally{N.clear()}if(!D.ok){let a=D.status,b=`Perplexity returned HTTP ${a}`;return 401===a||403===a?b="Perplexity auth failed — session cookie may be expired. Re-paste your __Secure-next-auth.session-token.":429===a&&(b="Perplexity rate limited. Wait a moment and retry."),o?.warn?.("PPLX-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:k,headers:L,transformedBody:K}}if(!D.body)return{response:new Response(JSON.stringify({error:{message:"Perplexity returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:k,headers:L,transformedBody:K};let O=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,P=Math.floor(Date.now()/1e3);if(c){let b;E=new Response((s=D.body,t=H.history,u=H.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",f=null;for await(let g of A(s,e)){if(g.backendUuid&&(f=g.backendUuid),g.error){c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:g.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(g.done){d=g.answer||d;break}let e=g.delta||"";e&&(e=y(e,!1))&&c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),g.answer&&(d=g.answer)}c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U)),x(t,u,y(d),f)}catch(d){c.enqueue(b.encode((0,j.N)({id:O,object:"chat.completion.chunk",created:P,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 E=await B(D.body,a,O,P,H.history,H.currentMsg,e);return{response:E,url:k,headers:L,transformedBody:K}}}},26878:(a,b,c)=>{c.d(b,{F:()=>f});var d=c(96179),e=c(12643);class f extends d.L{constructor(){super("xiaomi-tokenplan")}buildUrl(a,b,c=0,d=null){let f=(0,e.Yg)(d);return d?.runtimeTransport?.format==="claude"?`${f.replace(/\/v1\/?$/,"")}/anthropic/v1/messages`:`${f}/chat/completions`}}},27617:(a,b,c)=>{c.d(b,{Ay:()=>t});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(6879);function j(a,b){return new Promise((c,d)=>{if(b?.aborted)return void d(k(b));let e=()=>{clearTimeout(f),d(k(b))},f=setTimeout(()=>{b?.removeEventListener?.("abort",e),c()},a);b?.addEventListener?.("abort",e,{once:!0})})}function k(a){let b=Error("CodeArts session-slot wait aborted");return b.name="AbortError",b.cause=a?.reason,b}async function l({attempt:a,model:b="",signal:c=null,log:d=null,budgetMs:e=45e3,nap:f=j}={}){let g=Date.now()+e;for(let h=0;;h++){let{retryInMs:i=null,result:j}=await a(h);if(null==i)return j;let k=g-Date.now();if(k<=i)return d?.warn?.("QUEUE",`CODEARTS | ${b} still refused after ${Math.round(e/1e3)}s of waiting`),j;d?.warn?.("QUEUE",`CODEARTS | ${b} refused, resend in ${i/1e3}s (${Math.round(k/1e3)}s left)`),await f(i,c)}}var m=c(71547);let n=["max_tokens","max_completion_tokens","max_output_tokens"],o={"x-ot-client-type":"CLI","x-ot-client-version":"26.9.3","x-ot-function":"agent-tui","x-language":"zh-cn"};function p(){return e().randomUUID().replace(/-/g,"")}let q=Symbol.for("codearts.sessionId");async function r(a,b){let c=a?.response,d=c?.status;if(d!==g.gx.BAD_REQUEST&&d!==g.gx.RATE_LIMITED)return{result:a};let e=await c.text().catch(()=>""),f=function(a,b){let{response:c}=a;return{...a,response:new Response(b,{status:c.status,statusText:c.statusText,headers:c.headers})}}(a,e);if("string"==typeof e&&e.includes("TM.00001041")){let a;return{retryInMs:(a=Math.min(8e3,2e3*2**b))+Math.floor(a/4*Math.random()),result:f}}if(d===g.gx.RATE_LIMITED&&"queued"===String(c?.headers?.get?.("queue-status")||"").toLowerCase()){let a;return{retryInMs:Math.max(1e3,1e3*(Number.isFinite(a=Number(c?.headers?.get?.("retry-after")))&&a>0?a:5)),result:f}}return{result:f}}class s extends f.L{constructor(a="codearts"){super(a)}async execute(a){var b;let c=(b=a?.providerSessionId)?`ses_${e().createHash("sha256").update(String(b)).digest("hex").slice(0,26)}`:null,d=c&&a?{...a,credentials:{...a.credentials||{},[q]:c}}:a;return l({attempt:async a=>r(await super.execute(d),a),model:a?.model,signal:a?.signal,log:a?.log})}transformRequest(a,b,c,d){let e,f,g=super.transformRequest(a,b,c,d);if(!g||"object"!=typeof g)return g;if(f=(e=String(g.model||a||"")).indexOf("/"),g.model=f>=0?e.slice(f+1):e,void 0===g.tool_stream&&(g.tool_stream=!0),n.some(a=>null!=g[a])||(g.max_tokens=32e3),void 0===g.user_prompt){let a=function(a){let b=Array.isArray(a?.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--){var c;let d=b[a];if(d?.role!=="user")continue;let e=("string"==typeof(c=d.content)?c:Array.isArray(c)?c.map(a=>a?.type==="text"&&"string"==typeof a.text?a.text:"").join(""):"").replace(/[\r\n\t]/g," ");if(e.trim())return e.slice(0,500)}return""}(b);a&&(g.user_prompt=a)}return g}buildHeaders(a,b=!0,c,d,e){let f=a?.providerSpecificData||{},g=f.securityToken||a?.accessToken||"",h=a?.[q]||"ses_silent",j={"Content-Type":"application/json",...o,"x-ot-session-id":h,"x-ot-parent-session-id":"","x-ot-trace-id":p(),"x-ot-span-id":p(),"x-snap-traceid":p(),"user-session-id":h,"User-Agent":m.Qi,...b?{Accept:"text/event-stream"}:{}};return(0,i.Ae)({accessKeyId:f.accessKeyId,secretAccessKey:f.secretAccessKey,securityToken:g,method:"POST",url:c,body:null==e?null:JSON.stringify(e),headers:j})}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,m.J9)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}let t=s},32447:(a,b,c)=>{c.d(b,{BL:()=>g});var d=c(96179),e=c(52007);let f=["anthropic_version","anthropic_beta","client_metadata","mcp_servers","stop_sequences","thinking","top_k"];class g extends d.L{constructor(){super("kimchi")}transformRequest(a,b,c,d){let g,h=super.transformRequest(a,b,c,d);if(!h||"object"!=typeof h)return h;for(let a of(!function(a){var b;if(!a?.system||!Array.isArray(a.messages))return;let c=("string"==typeof(b=a.system)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"").filter(Boolean).join("\n"):"").trim();if(!c)return;let d=a.messages.find(a=>a?.role==="system");d?"string"==typeof d.content?d.content=`${c}
228
228
 
229
- `))},new ReadableStream({start(a){a.enqueue(o({role:"assistant"},null)),Array.isArray(m.tool_calls)&&m.tool_calls.length>0?(m.tool_calls.forEach((b,c)=>{a.enqueue(o({tool_calls:[{index:c,...b}]},null))}),a.enqueue(o({},n))):a.enqueue(o({content:m.content??""},n)),a.enqueue(k.encode("data: [DONE]\n\n")),a.close()}})),{status:200,headers:e}):p}},26878:(a,b,c)=>{c.d(b,{F:()=>f});var d=c(96179),e=c(12643);class f extends d.L{constructor(){super("xiaomi-tokenplan")}buildUrl(a,b,c=0,d=null){let f=(0,e.Yg)(d);return d?.runtimeTransport?.format==="claude"?`${f.replace(/\/v1\/?$/,"")}/anthropic/v1/messages`:`${f}/chat/completions`}}},27617:(a,b,c)=>{c.d(b,{Ay:()=>t});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(6879);function j(a,b){return new Promise((c,d)=>{if(b?.aborted)return void d(k(b));let e=()=>{clearTimeout(f),d(k(b))},f=setTimeout(()=>{b?.removeEventListener?.("abort",e),c()},a);b?.addEventListener?.("abort",e,{once:!0})})}function k(a){let b=Error("CodeArts session-slot wait aborted");return b.name="AbortError",b.cause=a?.reason,b}async function l({attempt:a,model:b="",signal:c=null,log:d=null,budgetMs:e=45e3,nap:f=j}={}){let g=Date.now()+e;for(let h=0;;h++){let{retryInMs:i=null,result:j}=await a(h);if(null==i)return j;let k=g-Date.now();if(k<=i)return d?.warn?.("QUEUE",`CODEARTS | ${b} still refused after ${Math.round(e/1e3)}s of waiting`),j;d?.warn?.("QUEUE",`CODEARTS | ${b} refused, resend in ${i/1e3}s (${Math.round(k/1e3)}s left)`),await f(i,c)}}var m=c(71547);let n=["max_tokens","max_completion_tokens","max_output_tokens"],o={"x-ot-client-type":"CLI","x-ot-client-version":"26.9.3","x-ot-function":"agent-tui","x-language":"zh-cn"};function p(){return e().randomUUID().replace(/-/g,"")}let q=Symbol.for("codearts.sessionId");async function r(a,b){let c=a?.response,d=c?.status;if(d!==g.gx.BAD_REQUEST&&d!==g.gx.RATE_LIMITED)return{result:a};let e=await c.text().catch(()=>""),f=function(a,b){let{response:c}=a;return{...a,response:new Response(b,{status:c.status,statusText:c.statusText,headers:c.headers})}}(a,e);if("string"==typeof e&&e.includes("TM.00001041")){let a;return{retryInMs:(a=Math.min(8e3,2e3*2**b))+Math.floor(a/4*Math.random()),result:f}}if(d===g.gx.RATE_LIMITED&&"queued"===String(c?.headers?.get?.("queue-status")||"").toLowerCase()){let a;return{retryInMs:Math.max(1e3,1e3*(Number.isFinite(a=Number(c?.headers?.get?.("retry-after")))&&a>0?a:5)),result:f}}return{result:f}}class s extends f.L{constructor(a="codearts"){super(a)}async execute(a){var b;let c=(b=a?.providerSessionId)?`ses_${e().createHash("sha256").update(String(b)).digest("hex").slice(0,26)}`:null,d=c&&a?{...a,credentials:{...a.credentials||{},[q]:c}}:a;return l({attempt:async a=>r(await super.execute(d),a),model:a?.model,signal:a?.signal,log:a?.log})}transformRequest(a,b,c,d){let e,f,g=super.transformRequest(a,b,c,d);if(!g||"object"!=typeof g)return g;if(f=(e=String(g.model||a||"")).indexOf("/"),g.model=f>=0?e.slice(f+1):e,void 0===g.tool_stream&&(g.tool_stream=!0),n.some(a=>null!=g[a])||(g.max_tokens=32e3),void 0===g.user_prompt){let a=function(a){let b=Array.isArray(a?.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--){var c;let d=b[a];if(d?.role!=="user")continue;let e=("string"==typeof(c=d.content)?c:Array.isArray(c)?c.map(a=>a?.type==="text"&&"string"==typeof a.text?a.text:"").join(""):"").replace(/[\r\n\t]/g," ");if(e.trim())return e.slice(0,500)}return""}(b);a&&(g.user_prompt=a)}return g}buildHeaders(a,b=!0,c,d,e){let f=a?.providerSpecificData||{},g=f.securityToken||a?.accessToken||"",h=a?.[q]||"ses_silent",j={"Content-Type":"application/json",...o,"x-ot-session-id":h,"x-ot-parent-session-id":"","x-ot-trace-id":p(),"x-ot-span-id":p(),"x-snap-traceid":p(),"user-session-id":h,"User-Agent":m.Qi,...b?{Accept:"text/event-stream"}:{}};return(0,i.Ae)({accessKeyId:f.accessKeyId,secretAccessKey:f.secretAccessKey,securityToken:g,method:"POST",url:c,body:null==e?null:JSON.stringify(e),headers:j})}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,m.J9)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}let t=s},29166:(a,b,c)=>{c.d(b,{dQ:()=>S});var d=c(74957),e=c(78959),f=c(4052),g=c(20742),h=c(82543),i=c(10079);c(14229);var j=c(25360);let k="unsupported_control_for_provider",l=new Set(["none","minimal"]),m={"gemini-3.1-pro":{id:"gemini-3.1-pro",isDefault:!0},"gemini-3.7-flash":{id:"gemini-3.7-flash",isDefault:!1,toggleSelector:'[data-test-id="bard-mode-menu-button"], button[aria-haspopup="menu"][aria-label*="model" i]',activeIndicatorSelector:'[data-test-id="bard-mode-menu-button"] .mode-title, [data-test-id="bard-mode-menu-button"]',expectedIndicatorPattern:/\bflash\b(?!.*\blite\b)/i},"gemini-3.1-flash-lite":{id:"gemini-3.1-flash-lite",isDefault:!1,toggleSelector:'[data-test-id="bard-mode-menu-button"], button[aria-haspopup="menu"][aria-label*="model" i]',activeIndicatorSelector:'[data-test-id="bard-mode-menu-button"] .mode-title, [data-test-id="bard-mode-menu-button"]',expectedIndicatorPattern:/flash.*\blite\b/i}},n={id:"extended-thinking",isDefault:!1,toggleSelector:'[data-test-id="deep-think-toggle"], button[aria-label*="extended thinking" i], button[aria-label*="deep think" i]',activeIndicatorSelector:'[data-test-id="deep-think-toggle"][aria-pressed="true"], [data-test-id="deep-think-toggle"].is-active',expectedIndicatorPattern:/thinking|deep think/i};async function o(a){try{if("function"==typeof a.textContent){let b=await a.textContent();if("string"==typeof b)return b}if("function"==typeof a.innerText)return await a.innerText()}catch{}return null}async function p(a,b,c=5e3){if(b.isDefault)return{confirmed:!0,descriptor:b};let{toggleSelector:d,activeIndicatorSelector:e,expectedIndicatorPattern:f}=b;if(!d||!e||!f)return{confirmed:!1,reason:"control_not_found",descriptor:b};let g=await a.waitForSelector(d,{timeout:c}).catch(()=>null);if(!g)return{confirmed:!1,reason:"control_not_found",descriptor:b};await g.click();let h=await a.waitForSelector(e,{timeout:c}).catch(()=>null);if(!h)return{confirmed:!1,reason:"indicator_not_found",descriptor:b};let i=await o(h);return i&&f.test(i)?{confirmed:!0,descriptor:b}:{confirmed:!1,reason:"indicator_mismatch",descriptor:b}}async function q(a,b,c){let d=m[b]??null;return d?p(a,d,c):{confirmed:!1,reason:"unknown_model"}}async function r(a,b){return p(a,n,b)}let s={unknown_model:"it is not one of the advertised, selectable gweb models",control_not_found:"the Gemini UI control used to switch modes was not found",indicator_not_found:"the active-mode indicator used to confirm the switch was not found",indicator_mismatch:"the active-mode indicator did not confirm the switch after attempting it"};function t(a,b){let c=b&&s[b]||"the switch could not be verified";return`Model provider "gemini-web" could not verify that "${a}" is actually active in the Gemini web UI (${c}). Rather than silently answering under a model/mode label that may not be accurate, the request was rejected with "unsupported_control_for_provider".`}let u=`(() => {
230
- const msgs = [...document.querySelectorAll(${JSON.stringify("model-response, message-content")})];
231
- const last = msgs.length ? (msgs[msgs.length - 1].innerText || '').trim() : '';
232
- return {
233
- count: msgs.length,
234
- lastText: last,
235
- generating: !!document.querySelector('[data-test-id="thinking-overlay-content"], button[aria-label*="Stop" i]'),
236
- };
237
- })()`,v=a=>new Promise(b=>setTimeout(b,a));async function w(a){try{return await a.evaluate(u)||{count:0,lastText:"",generating:!1}}catch{return{count:0,lastText:"",generating:!1}}}async function x({page:a,baseCount:b=0,baseText:c="",timeoutMs:d=6e4,firstTokenMs:e=3e4,signal:f,onDelta:g}){let h=Date.now(),i="",j=null,k=0,l=!1;for(;;){if(f?.aborted)throw Error("Request aborted");let m=Date.now()-h;if(m>d)throw Error("Gemini reply timed out");if(!l&&m>e)throw Error("no first token from Gemini");await v(400);let n=await w(a),o=n.lastText||"";if((n.count>b||o&&o!==c)&&o){if(l=!0,o!==j?(j=o,k=0):k++,!n.generating&&o!==i){let a=o.startsWith(i)?o.slice(i.length):o;a&&(i=o,g?.(a))}if(k>=20)return i||o;if(!n.generating&&k>=5&&o===i)return i}}}let y=a=>new Promise(b=>setTimeout(b,a)),z=`(() => {
238
- const msgs = [...document.querySelectorAll('model-response, message-content')];
239
- const last = msgs.length ? msgs[msgs.length - 1] : null;
240
- const imgs = last
241
- ? [...last.querySelectorAll('img')].map((i) => ({
242
- src: i.currentSrc || i.src || '',
243
- w: i.naturalWidth || 0,
244
- h: i.naturalHeight || 0,
245
- }))
246
- : [];
247
- return {
248
- count: msgs.length,
249
- generating: !!document.querySelector('[data-test-id="thinking-overlay-content"], button[aria-label*="Stop" i]'),
250
- images: imgs.filter((i) => i.src && !i.src.includes('gstatic') && i.w > 0),
251
- };
252
- })()`;async function A(a){try{return await a.evaluate(z)||{count:0,generating:!1,images:[]}}catch{return{count:0,generating:!1,images:[]}}}async function B(a,b){let c=await a.evaluate(async a=>{if(a.startsWith("data:")){let b=await fetch(a);return{ok:!0,mime:(await b.blob()).type||"image/png",b64:a.slice(a.indexOf(",")+1)}}try{let b=await new Promise((b,c)=>{let d=new Image;d.onload=()=>b(d),d.onerror=()=>c(Error("img load failed")),d.src=a}),c=document.createElement("canvas");c.width=b.naturalWidth,c.height=b.naturalHeight,c.getContext("2d").drawImage(b,0,0);let d=c.toDataURL("image/png");return{ok:!0,mime:"image/png",b64:d.slice(d.indexOf(",")+1)}}catch{}try{let b=await fetch(a);if(!b.ok)return{ok:!1,err:`status ${b.status}`};let c=await b.blob(),d=new Uint8Array(await c.arrayBuffer()),e="";for(let a=0;a<d.length;a+=32768)e+=String.fromCharCode(...d.subarray(a,a+32768));return{ok:!0,mime:c.type||"image/png",b64:btoa(e)}}catch(a){return{ok:!1,err:String(a)}}},b);if(!c?.ok)throw Error(`failed to download generated image: ${c?.err}`);return{b64:c.b64,mime:c.mime}}async function C(a,{timeoutMs:b=12e4,signal:c}){let d=Date.now(),e=!1;for(;;){if(c?.aborted)throw Error("Request aborted");if(Date.now()-d>b)throw Error("Gemini image generation timed out");await y(1e3);let f=await A(a);if((f.count>0||f.generating)&&(e=!0),!e&&Date.now()-d>3e4)throw Error("no first sign of activity from Gemini");let g=f.images.filter(a=>a.w>=100);if(g.length>0&&!f.generating){let b=g[g.length-1];return{...await B(a,b.src),width:b.w,height:b.h}}}}let D="https://gemini.google.com/app",E="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36";async function F(a){let{chromium:b}=await (0,g.A)("playwright-core"),c=(0,f.Mt)();return(0,f.KI)(b,{...a,...c?{executablePath:c}:{}})}function G(a,b,c="stop"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:{role:"assistant",content:a},finish_reason:c,logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}function H(a,b,c=null){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:a?{content:a}:{},finish_reason:c}]}}async function I(a,b,c,d,e,f){let g=new Response(JSON.stringify(G(a,d)),{status:200,headers:{"Content-Type":"application/json"}});return(0,j.N)(g,b,c,{cid:e,created:f,model:d,idSeed:"gwe"})}let J=/something went wrong|try again later|unusual traffic|verify you are human/i,K=/used all of your requests|quota will reset|quota exceeded|reached your limit/i;async function L(a,b=()=>null){if(await a.locator(".ql-editor, [contenteditable='true']").count()>0)return null;let c=b();if(c)return c;let d=await a.evaluate(()=>document.body?.innerText?.slice(0,2e3)??"").catch(()=>"");if(J.test(d))return'Gemini refused the request ("Something went wrong") — the Google account cannot open Gemini. Sign in again, or enable Gemini Apps Activity for the account';let e=a.url();if(/chat with gemini/i.test(d)||!/\/app(\/|$|\?)/.test(e)){for(let c=0;c<12;c++){let c=b();if(c)return c;await a.waitForTimeout(400)}return"Gemini did not open a chat session — open dashboard/providers/gemini-web, click Login via Browser and sign in to Google again (the account may also need Gemini Apps Activity enabled)"}return null}async function M(a){let b,c=(b=null,a.on("response",a=>{!b&&/\/BardChatUi\/data\/batchexecute/.test(a.url())&&a.text().then(a=>{K.test(a)&&(b='Gemini says this account is out of quota: "You\'ve used all of your requests for this feature" — wait for the reset, or add another account')}).catch(()=>{})}),()=>b);return await a.goto(D,{waitUntil:"domcontentloaded",timeout:2e4}),c}async function N(a,b=()=>null,c=1e4){let d=Date.now()+c;for(;Date.now()<d;){if(await a.locator(".ql-editor, [contenteditable='true']").count()>0)return a.waitForSelector(".ql-editor, [contenteditable='true']",{timeout:5e3});let c=await L(a,b);if(c)throw Error(c);await a.waitForTimeout(400)}let e=b();if(e)throw Error(e);let f=a.url();throw Error(`Gemini composer did not appear within ${Math.round(c/1e3)}s (final URL: ${f})`)}function O(a){if("string"!=typeof a)return"";let b=a.trim();return b.length>0?b:""}function P(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return"";for(let c of b){let b=O(a[c]);if(b)return b}return""}function Q(a){let b=O(a?.apiKey)||O(a?.cookie);if(b)return(0,h.L)(b);let c=a?.providerSpecificData,d=P(c,["cookie"]);if(d)return(0,h.L)(d);let e=P(c,["__Secure-1PSID"]),f=P(c,["__Secure-1PSIDTS"]);return[e?(0,h.L)(e,"__Secure-1PSID"):"",f?(0,h.L)(f,"__Secure-1PSIDTS"):""].filter(Boolean).join("; ")}function R(a,b,c={}){return new Response(JSON.stringify({error:b}),{status:a,headers:{"Content-Type":"application/json",...c}})}class S extends d.H{constructor(){super("gemini-web",{id:"gemini-web",baseUrl:D})}async testConnection(a){try{let b=Q(a);if(!b)return!1;return b.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(-1===b)return null;let c=a.substring(0,b).trim(),d=a.substring(b+1).trim();return!c||!d||["path","domain","expires","max-age","secure","httponly","samesite"].includes(c.toLowerCase())?null:{name:c,value:d}}).filter(Boolean).some(a=>a.value.length>0)}catch{return!1}}async execute({model:a,body:b,stream:d,credentials:g,signal:h,log:j}){var m;let n,o=b||{},p=o.tools,s=o.functions;if(null!=p&&(!Array.isArray(p)||p.length>0))return{response:R(400,"Gemini Web does not support OpenAI function tools"),url:D,headers:{},transformedBody:b};if(null!=s&&(!Array.isArray(s)||s.length>0))return{response:R(400,"Gemini Web does not support legacy function tools"),url:D,headers:{},transformedBody:b};let u=null!==(n="string"==typeof(m=o.reasoning_effort)&&m.trim().length>0?m.trim().toLowerCase():null)&&!l.has(n),v=Q(g);if(!v)return{response:R(401,"Missing Gemini cookies"),url:D,headers:{},transformedBody:b};let y=o.messages||[],z=function(a){let b=a.filter(a=>"string"==typeof a.content&&a.content.trim().length>0),c=b.filter(a=>"user"===a.role),d=c[c.length-1],e=d?.content??"",f=d?b.lastIndexOf(d):-1,g=b.filter((a,b)=>b<f&&("user"===a.role||"assistant"===a.role)),h=b.filter(a=>"system"===a.role).map(a=>a.content).join("\n\n");if(0===g.length&&!h)return e;if(0===g.length)return`System:
253
- ${h}
229
+ ${d.content}`:Array.isArray(d.content)&&d.content.unshift({type:"text",text:c}):a.messages.unshift({role:"system",content:c})}(h),f))void 0!==h[a]&&delete h[a];if(delete h.system,g=(0,e.gK)(a),(g?.provider==="anthropic"||g?.upstreamProvider==="anthropic"||/(^|[-_/])(?:claude|anthropic)(?:[-_/]|$)/i.test(String(a||"")))&&(delete h.reasoning_effort,delete h.reasoning,delete h.thinking),Array.isArray(h?.messages))for(let a of h.messages)a&&"object"==typeof a&&(delete a.cache_control,Array.isArray(a.content)&&(a.content=a.content.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,signature:c,...d}=a;return d})));Array.isArray(h?.tools)&&(h.tools=h.tools.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,...c}=a;return c}));if(Array.isArray(h?.messages))for(let a of h.messages)a&&"assistant"===a.role&&"string"==typeof a.reasoning_content&&a.reasoning_content.length>8&&delete a.reasoning_content;return h}}},36732:(a,b,c)=>{c.d(b,{Rb:()=>h});var d=c(96179),e=c(12132);let f=new Set(["mimo-v2.6-pro","mimo-v2.6-flash","mimo-v2.6-pro-ultraspeed"]),g="__mimoAccountCookie";class h extends d.L{constructor(){super("xiaomi-mimo")}static isAccountRoute(a,b){let c,d,e=(d=(c=String(a||"")).indexOf("/"))>=0?c.slice(d+1):c;return!!f.has(e)&&!!(b?.[g]||b?.providerSpecificData?.mimoPassToken)}isAccountRoute(a,b){return h.isAccountRoute(a,b)}buildUrl(a,b,c=0,d=null){return this.isAccountRoute(a,d)?`${(0,e.resolveMimoServerBase)(d?.providerSpecificData)}/api/route/chat/completions`:super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0,c,d){return this.isAccountRoute(d,a)&&a?.[g]?{"Content-Type":"application/json",Accept:b?"text/event-stream":"application/json","User-Agent":e.MIMO_API_UA,Cookie:a[g]}:super.buildHeaders(a,b,c,d)}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(this.isAccountRoute(a,d)){let a=e.reasoning_effort||b?.reasoning_effort||b?.output_config?.effort;if(a){delete e.reasoning_effort;let b="xhigh"===String(a).toLowerCase()?"high":String(a).toLowerCase();e.output_config={...e.output_config||{},effort:b}}null==e.temperature&&(e.temperature=1),null==e.top_p&&(e.top_p=.95)}return e}async execute(a){let{model:b,credentials:c,proxyOptions:d=null}=a;if(!this.isAccountRoute(b,c))return super.execute(a);let f=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d);if(!f)return super.execute(a);c[g]=f;let h=await super.execute(a);if(401===h.response.status){(0,e.invalidateMimoAccountCookieCache)();let b=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d).catch(()=>null);if(b)return c[g]=b,super.execute(a)}return h}}},48868:(a,b,c)=>{c.d(b,{RF:()=>bl});var d=c(74957),e=c(77598),f=c(73024),g=c(76760),h=c(80479);let i={"image/gif":"gif","image/jpeg":"jpg","image/jpg":"jpg","image/png":"png","image/webp":"webp"};class j extends Error{constructor(a){super(a),this.name="ChatGptWebAttachmentError",this.status=400}}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function m(a,b){return((a??"").split(/[\\/]/).pop()?.replace(/[\u0000-\u001f\u007f]/g,"").trim()||b).slice(0,180)}function n(a){let b=/^data:([^;,]+);base64,/i.exec(a);return b?.[1]?.trim().toLowerCase()}async function o(a){if(a.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");let b=[],c=0;for(let d of a){let a="image"===d.kind?0x1400000:0x3200000;if(!d.ref.toLowerCase().startsWith("data:"))throw new j("ChatGPT Web attachments must be data URLs");let e=function(a){let b=a.indexOf(",");if(b<0)throw new j("Attachment data URL is malformed");let c=a.slice(5,b);if(!/(?:^|;)base64(?:;|$)/i.test(c))throw new j("Attachment data URL must be base64 encoded");let d=(c.split(";")[0]||"application/octet-stream").toLowerCase(),e=a.slice(b+1);if(e.length>0x6400000)throw new j("Attachment is too large");let f=e.replace(/\s/g,"");if(!f||f.length%4!=0||!/^[A-Za-z0-9+/]+={0,2}$/.test(f))throw new j("Attachment contains invalid base64 data");let g=Buffer.from(f,"base64");if(!g.length||g.toString("base64").replace(/=+$/,"")!==f.replace(/=+$/,""))throw new j("Attachment contains invalid base64 data");return{bytes:g,mimeType:d}}(d.ref);if(!e.bytes.length)throw new j("Attachment is empty");if(e.bytes.length>a)throw new j("Attachment is too large");if((c+=e.bytes.length)>0x3200000)throw new j("Combined ChatGPT Web attachments are too large");if("image"===d.kind){let a=function(a,b){let c=a.length>=8&&0x89504e47===a.readUInt32BE(0)?"png":a.length>=3&&255===a[0]&&216===a[1]?"jpeg":a.length>=3&&"GIF"===a.toString("ascii",0,3)?"gif":a.length>=12&&"RIFF"===a.toString("ascii",0,4)&&"WEBP"===a.toString("ascii",8,12)?"webp":null,d=(a.length<24||0x89504e47!==a.readUInt32BE(0)?null:{width:a.readUInt32BE(16),height:a.readUInt32BE(20)})??function(a){if(a.length<4||255!==a[0]||216!==a[1])return null;let b=2;for(;b+9<a.length;){if(255!==a[b]){b+=1;continue}let c=a[b+1];if(c>=192&&c<=195||c>=197&&c<=199||c>=201&&c<=203||c>=205&&c<=207)return{height:a.readUInt16BE(b+5),width:a.readUInt16BE(b+7)};if(216===c||1===c||c>=208&&c<=215){b+=2;continue}b+=2+a.readUInt16BE(b+2)}return null}(a)??(a.length<10||"GIF"!==a.toString("ascii",0,3)?null:{width:a.readUInt16LE(6),height:a.readUInt16LE(8)})??function(a){if(a.length<30||"RIFF"!==a.toString("ascii",0,4)||"WEBP"!==a.toString("ascii",8,12))return null;let b=a.toString("ascii",12,16);if("VP8X"===b)return a.length<30?null:{width:1+((a[24]|a[25]<<8|a[26]<<16)&0xffffff),height:1+((a[27]|a[28]<<8|a[29]<<16)&0xffffff)};if("VP8 "===b)return a.length<30?null:{width:16383&a.readUInt16LE(26),height:16383&a.readUInt16LE(28)};if("VP8L"===b){if(a.length<25)return null;let b=a.readUInt32LE(21);return{width:(16383&b)+1,height:(b>>14&16383)+1}}return null}(a),e="jpeg"===c?"image/jpeg":c?`image/${c}`:void 0;if(!e||!d)throw new j("Image attachment is undecodable or unsupported");if(b.startsWith("image/")&&b!==e&&("image/jpg"!==b||"image/jpeg"!==e))throw new j("Image attachment type does not match its data");if(Math.max(d.width,d.height)>11264||d.width*d.height>4e7)throw new j("Image attachment dimensions are too large");return{mimeType:e,width:d.width,height:d.height}}(e.bytes,d.mimeType??e.mimeType);b.push({kind:"image",name:d.name,mimeType:a.mimeType,size:e.bytes.length,data:e.bytes,width:a.width,height:a.height});continue}b.push({kind:"file",name:d.name,mimeType:d.mimeType??e.mimeType,size:e.bytes.length,data:e.bytes})}return b}function p(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function q(a){return structuredClone(a)}let r=new Set(["add","append","patch","replace"]),s=new Set(["__proto__","constructor","prototype"]);function t(a){if(Array.isArray(a)){for(let b of a)t(b);return}if(p(a))for(let[b,c]of Object.entries(a)){if(s.has(b))throw Error(`Unsafe object key in ChatGPT Web delta: ${b}`);t(c)}}function u(a){let b=[],c=a.replace(/\r\n?/g,"\n").split("\n"),d="message",e=[],f=!1,g=()=>{if(!f){d="message",e=[];return}let a=e.join("\n"),c="[DONE]"===a?{parsed:!1}:function(a){try{return{parsed:!0,value:JSON.parse(a)}}catch{return{parsed:!1}}}(a);b.push({event:d,data:a,...c.parsed?{json:c.value}:{},done:"[DONE]"===a}),d="message",e=[],f=!1};for(let a of c){if(""===a){g();continue}if(a.startsWith(":"))continue;let b=a.indexOf(":"),c=b>=0?a.slice(0,b):a,h=b>=0?a.slice(b+1):"";h.startsWith(" ")&&(h=h.slice(1)),"event"===c?d=h||"message":"data"===c&&(e.push(h),f=!0)}return g(),b}function v(a,b,c){if(c&&"-"===a)return b;if(!/^(?:0|[1-9]\d*)$/.test(a))throw Error(`Invalid ChatGPT Web array index: ${a}`);let d=Number(a);if(!Number.isSafeInteger(d)||d<0||d>(c?b:b-1))throw Error(`ChatGPT Web array index is out of bounds: ${a}`);return d}function w(a,b){if(t(b),null==a)return q(b);if("string"==typeof a&&"string"==typeof b)return a+b;if(Array.isArray(a)){let c=q(a);return Array.isArray(b)?c.push(...q(b)):c.push(q(b)),c}if(p(a)&&p(b))return{...q(a),...q(b)};throw Error(`Cannot append ChatGPT Web delta values (${typeof a}, ${typeof b})`)}function x(a){if("string"!=typeof a||!r.has(a))throw Error(`Unsupported delta operation: ${String(a)}`);return a}class y{constructor(){this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1}snapshot(){return q(this.document)}ingest(a){let b=u(a),c=!1;for(let a of b){if("delta_encoding"===a.event){if("v1"!==a.json)throw Error(`Unsupported ChatGPT Web delta encoding: ${String(a.json)}`);this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1;continue}"delta"===a.event&&(this.applyDelta(a.json),c=!0),a.done&&(this.streamDone=!0)}return{events:b,changed:c,done:this.streamDone}}applyDelta(a){if(!p(a))throw Error("ChatGPT Web delta payload must be an object");let b=void 0===a.p?this.lastPath:a.p,c=void 0===a.o?this.lastOperation:x(a.o);if("string"!=typeof b||null===c)throw Error("ChatGPT Web delta requires a current or inherited path and operation");this.lastPath=b,this.lastOperation=c,this.applyAt(b,c,a.v)}applyAt(a,b,c){t(c);let d=function(a){if(""===a)return[];if(!a.startsWith("/"))throw Error(`Invalid ChatGPT Web JSON Pointer: ${a}`);return a.slice(1).split("/").map(a=>{let b=a.replace(/~1/g,"/").replace(/~0/g,"~");if(s.has(b))throw Error(`Unsafe JSON Pointer segment: ${b}`);return b})}(a);if(0===d.length)return void this.applyAtRoot(b,c);let e=this.document;for(let b of d.slice(0,-1))if(Array.isArray(e))e=e[v(b,e.length,!1)];else if(p(e)&&Object.hasOwn(e,b))e=e[b];else throw Error(`ChatGPT Web delta path does not exist: ${a}`);let f=d[d.length-1];if(Array.isArray(e))return void this.applyToArray(e,f,b,c);if(!p(e))throw Error(`ChatGPT Web delta path is not mutable: ${a}`);this.applyToObject(e,f,b,c)}applyAtRoot(a,b){if("add"===a||"replace"===a){this.document=q(b);return}if("append"===a){this.document=w(this.document,b);return}if(!Array.isArray(b))throw Error("ChatGPT Web patch value must be an array");for(let a of b){if(!p(a)||"string"!=typeof a.p)throw Error("ChatGPT Web patch entry requires an explicit path and operation");this.applyAt(a.p,x(a.o),a.v)}}applyToArray(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"===c)return void a.splice(v(b,a.length,!0),0,q(d));let e=v(b,a.length,!1);a[e]="append"===c?w(a[e],d):q(d)}applyToObject(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"!==c&&!Object.hasOwn(a,b))throw Error(`ChatGPT Web delta target does not exist: ${b}`);a[b]="append"===c?w(a[b],d):q(d)}}let z="https://chatgpt.com",A=/^\/(?:cdn|unauth-mweb|auth-mweb)\/(?:assets|scripts)\/[A-Za-z0-9._-]+\.js$/,B=/(?:^|\.)oaiusercontent\.com$/i,C="__ninerouterChatGptFirstPartyV1",D="__ninerouterChatGptAbortV1",E="__ninerouterChatGptRequestV1",F=new Map,G=new WeakMap,H=null;function I(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function J(a,b){let c=a.lastIndexOf("export{");if(c<0)return null;let d=a.slice(c+7).match(RegExp(`(?:^|,)${I(b)} as ([A-Za-z_$][\\w$]*)`));return d?.[1]??null}function K(a){let b=new URL(a);if(b.origin!==z||!A.test(b.pathname))throw Error("ChatGPT Web exposed an invalid first-party asset URL");return b.toString()}async function L(a){let b=new AbortController,c=setTimeout(()=>b.abort(),2e4);c.unref?.();try{let c=await fetch(a,{signal:b.signal});if(!c.ok)throw Error("ChatGPT Web first-party asset could not be loaded");let d=Number(c.headers.get("content-length")??"0");if(Number.isFinite(d)&&d>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");let e=new Uint8Array(await c.arrayBuffer());if(e.byteLength>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");return new TextDecoder().decode(e)}finally{clearTimeout(c)}}function M(a,b){return a instanceof Error?a:Error(b)}async function N(a){let b=await a.evaluate(()=>({modulePreloadUrls:Array.from(document.querySelectorAll('link[rel="modulepreload"][href]'),a=>a.href),resourceUrls:performance.getEntriesByType("resource").map(a=>a.name)}));return Array.from(new Set([...b.resourceUrls,...b.modulePreloadUrls])).filter(a=>{try{let b=new URL(a);return b.origin===z&&A.test(b.pathname)}catch{return!1}})}async function O(a,b){let c,d;try{c=K(a)}catch(a){return b.lastError=M(a,"Invalid ChatGPT asset URL"),null}if(b.visited.has(c))return null;b.visited.add(c);let e=F.get(c);if(e)try{return{assetUrl:c,contract:await e}}catch{F.delete(c)}try{d=await L(c)}catch(a){return b.lastError=M(a,"ChatGPT asset discovery failed"),null}try{let a=function(a){let b=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1],c=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),d=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1],e=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1],f=c?.[1],g=c?.[2];if(!b||!f||!g||!d||!e)throw Error("ChatGPT Web first-party module contract was not found");let h={finalizeRequirements:J(a,b),proofManager:J(a,f),turnstileManager:J(a,g),requestClient:J(a,d),buildSentinelHeaders:J(a,e)};if(Object.values(h).some(a=>null===a))throw Error("ChatGPT Web first-party module contract exports were not found");return h}(d);return F.set(c,Promise.resolve(a)),H=c,{assetUrl:c,contract:a}}catch(f){for(let[a,e]of Object.entries(function(a){let b={},c=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1]??a.match(/finalizeChatRequirements\s*:\s*\(\)\s*=>\s*([A-Za-z_$][\w$]*)/)?.[1];c&&(b.finalizeRequirements=J(a,c)??c);let d=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),e=d?.[1]??a.match(/([A-Za-z_$][\w$]*)\.getEnforcementToken\([^)]*forceSync\s*:\s*!0/)?.[1],f=d?.[2];e&&(b.proofManager=J(a,e)??e),f&&(b.turnstileManager=J(a,f)??f);let g=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\.(?:safePost|post)\([`"]\/sentinel\/chat-requirements\/prepare[`"]/)?.[1];g&&(b.requestClient=J(a,g)??g);let h=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\s*=\s*[^;]{0,1200}OpenAI-Sentinel-Chat-Requirements-Token/)?.[1];h&&(b.buildSentinelHeaders=J(a,h)??h);let i=a.match(/(?:^|\}\),)([A-Za-z0-9_$]+):\(function\(e,t,n\)\{n\.d\(t,\{([^}]+)\}\);[\s\S]{0,1800}?async function ([A-Za-z_$][\w$]*)\(e\)\{let t=[A-Za-z_$][\w$]*\(\),n=[A-Za-z_$][\w$]*\(await e\(t\)\)/);if(i){let[,a,c,d]=i,e=c.match(RegExp(`(?:^|,)\\s*([A-Za-z_$][\\w$]*):\\(\\)=>${I(d)}(?:,|$)`))?.[1];e&&(b.resolveIntegrity=e,b.resolveIntegrityModule=a)}return b}(d)))b.partial[a]||(b.partial[a]=e,b.symbolAssetUrls[a]=c);if(b.partial.requestClient&&(b.partial.resolveIntegrity&&b.partial.resolveIntegrityModule||b.partial.finalizeRequirements&&b.partial.proofManager&&b.partial.buildSentinelHeaders)){let a={finalizeRequirements:b.partial.finalizeRequirements??"",proofManager:b.partial.proofManager??"",turnstileManager:b.partial.turnstileManager??b.partial.proofManager??"",requestClient:b.partial.requestClient,buildSentinelHeaders:b.partial.buildSentinelHeaders??"",...b.partial.resolveIntegrity?{resolveIntegrity:b.partial.resolveIntegrity,resolveIntegrityModule:b.partial.resolveIntegrityModule}:{}},d=b.symbolAssetUrls.finalizeRequirements??c;return H=d,{assetUrl:d,contract:a}}let a=Object.keys(b.partial);b.lastError=a.length?Error(`ChatGPT module discovery incomplete: found ${a.join(", ")}`):M(f,"ChatGPT module discovery failed");let e=function(a,b){let c=[],d=new Set,e=/["']\.\/([A-Za-z0-9_-]+\.js)["']/g;for(let f=e.exec(a);f;f=e.exec(a)){let a;try{a=K(new URL(`./${f[1]}`,b).toString())}catch{continue}d.has(a)||(d.add(a),c.push(a))}return c}(d,c);return b.queue.push(...e.filter(a=>!b.visited.has(a))),null}}async function P(a){for(;a.index<a.queue.length&&a.visited.size<512;){let b=a.queue[a.index];a.index+=1;let c=await O(b,a);if(c)return c}return null}async function Q(a){let b={queue:[...H?[H]:[]],visited:new Set,index:0,lastError:null,partial:{},symbolAssetUrls:{}},c=Date.now()+15e3;for(;Date.now()<=c&&b.visited.size<512;){b.queue.push(...await N(a));let d=await P(b);if(d)return d;Date.now()<c&&await new Promise(a=>setTimeout(a,250))}throw Error("ChatGPT Web first-party request module was not loaded")}async function R(a){let b,c,d,e,f,g;if(await a.evaluate(a=>{let b=globalThis;return"object"==typeof b[a]&&null!==b[a]},C))return;let{assetUrl:h,contract:i}=await Q(a),j=(b=JSON.stringify(K(h)),c=JSON.stringify(i),d=JSON.stringify(C),i.resolveIntegrity&&i.resolveIntegrityModule?`import * as upstream from ${b};const names = ${c};const modules = upstream.__webpack_modules__;const factory = modules?.[names.resolveIntegrityModule];if (typeof factory !== "function") throw new Error("ChatGPT integrity module factory is unavailable");const exports = {};const requireShim = id => {if (id === "TI" || id === "DD") return { a: () => crypto.randomUUID() };const real = modules[id];if (typeof real === "function") {const nested = {};real({}, nested, requireShim);return nested;}throw new Error("Unsupported ChatGPT integrity dependency: " + id);};requireShim.d = (target, definitions) => {for (const [name, getter] of Object.entries(definitions)) {Object.defineProperty(target, name, { enumerable: true, get: getter });}};factory({}, exports, requireShim);const resolveIntegrity = exports[names.resolveIntegrity];if (typeof resolveIntegrity !== "function") throw new Error("ChatGPT integrity resolver is unavailable");const sessionPromise = fetch("/api/auth/session", { credentials: "include" }).then(async response => {if (!response.ok) throw new Error("ChatGPT browser session is unavailable");return response.json();});const requestClient = {safePost: async (path, options = {}) => {const headers = new Headers(options.additionalHeaders || {});const session = await sessionPromise;if (typeof session?.accessToken === "string" && session.accessToken) {headers.set("Authorization", "Bearer " + session.accessToken);}headers.set("Accept", "application/json");if (!headers.has("Content-Type")) headers.set("Content-Type", "application/json");const body = typeof options.requestBody === "string" ? options.requestBody : JSON.stringify(options.requestBody ?? {});const response = await fetch("/backend-api" + path, {method: "POST", credentials: "include", headers, body, signal: options.signal});if (options.skipJsonTransform) return response;if (!response.ok) throw new Error("ChatGPT request failed with status " + response.status);return response.json();}};window[${d}] = { requestClient, resolveIntegrity };`:`import * as upstream from ${b};const names = ${c};window[${d}] = {finalizeRequirements: upstream[names.finalizeRequirements],proofManager: upstream[names.proofManager],turnstileManager: upstream[names.turnstileManager],requestClient: upstream[names.requestClient],buildSentinelHeaders: upstream[names.buildSentinelHeaders],resolveIntegrity: names.resolveIntegrity ? upstream[names.resolveIntegrity] : undefined};`),k=(e=[],f=a=>{let b=a.url();(b===h||b.startsWith("blob:"))&&e.push({kind:"requestfailed",detail:`${b} failed: ${a.failure()?.errorText??"unknown error"}`})},g=a=>{e.push({kind:"pageerror",detail:a instanceof Error?a.message:String(a)})},a.on("requestfailed",f),a.on("pageerror",g),{signals:e,dispose:()=>{a.off("requestfailed",f),a.off("pageerror",g)}});try{await a.evaluate(({bridgeKey:a,moduleSource:b})=>new Promise((c,d)=>{let e=globalThis;if("object"==typeof e[a]&&null!==e[a])return void c();let f="",g=new AbortController;document.addEventListener("securitypolicyviolation",a=>{f||(f=`${a.violatedDirective} blocked ${a.blockedURI}`)},{signal:g.signal});let h=URL.createObjectURL(new Blob([b],{type:"text/javascript"})),i=document.createElement("script");i.type="module",i.src=h,i.onload=()=>{URL.revokeObjectURL(h),g.abort(),"object"==typeof e[a]&&null!==e[a]?c():d(Error("ChatGPT Web first-party bridge did not initialize"))},i.onerror=()=>{URL.revokeObjectURL(h),g.abort(),d(Error(f?`csp: ${f}`:"no in-page reason"))},document.head.appendChild(i)}),{bridgeKey:C,moduleSource:j})}catch(c){let a=c instanceof Error?c.message:String(c),b=[...k.signals];throw a.startsWith("csp: ")?b.unshift({kind:"csp",detail:a.slice(5)}):a&&"no in-page reason"!==a&&b.push({kind:"pageerror",detail:a}),Error(function(a){let b="ChatGPT Web first-party bridge module failed to load";if(0===a.length)return`${b} (no CSP violation, failed request or page error was captured)`;let c=a.find(a=>"csp"===a.kind)??a.find(a=>"requestfailed"===a.kind)??a[0];return`${b}: ${c.kind}: ${c.detail}`}(b))}finally{k.dispose()}}async function S(a,b,c){return a.evaluate(async({abortKey:a,attachments:b,bridgeKey:c,requestId:d})=>{let e=globalThis,f=e[c];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a]??={},h=new AbortController;g[d]=h;let i=[];for(let a of b){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files",{requestBody:{file_name:a.name,file_size:a.size,use_case:b,timezone_offset_min:new Date().getTimezoneOffset(),reset_rate_limits:!1,supports_direct_azure_multipart:!0,mime_type:a.mimeType,entry_surface:"chat_composer",selection_method:"file_picker",client_resolved_mime_type:a.mimeType,mime_resolution_source:"filename_extension",store_in_library:!1},signal:h.signal}),d=c;if(c instanceof Response){if(!c.ok){let a=c.status;throw await c.body?.cancel().catch(()=>{}),Error(`ChatGPT Web file registration failed with status ${a}`)}d=await c.json()}if(!d||"object"!=typeof d||"string"!=typeof d.file_id||"string"!=typeof d.upload_url)throw Error("ChatGPT Web file registration returned an invalid response");i.push({fileId:d.file_id,uploadUrl:d.upload_url})}return i},{abortKey:D,attachments:c.map(({kind:a,mimeType:b,name:c,size:d})=>({kind:a,mimeType:b,name:c,size:d})),bridgeKey:C,requestId:b})}async function T(a,b){for(let c of a){let a=await fetch(function(a){let b=new URL(a);if("https:"!==b.protocol||!B.test(b.hostname))throw Error("ChatGPT Web returned an invalid upload destination");return b.toString()}(c.uploadUrl),{method:"PUT",headers:{Accept:"application/json, text/plain, */*","Content-Type":c.attachment.mimeType,"x-ms-blob-type":"BlockBlob","x-ms-version":"2020-04-08"},body:new Uint8Array(c.attachment.data),signal:b??void 0});if(!a.ok)throw Error(`ChatGPT Web attachment upload failed with status ${a.status}`)}}async function U(a,b,c){await a.evaluate(async({abortKey:a,bridgeKey:b,registered:c,requestId:d})=>{let e=globalThis,f=e[b];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a],h=g?.[d];if(!h)throw Error("ChatGPT Web request cancellation scope is unavailable");for(let a of c){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files/process_upload_stream",{requestBody:{file_id:a.fileId,use_case:b,index_for_retrieval:"image"!==a.kind,file_name:a.name,entry_surface:"chat_composer",metadata:{store_in_library:!1,is_temporary_chat:!0,library_eligibility_reason:"eligible",is_project_thread:!1}},signal:h.signal,skipJsonTransform:!0});if(c instanceof Response){let a=c.status,b=c.ok;if(await c.text(),!b)throw Error(`ChatGPT Web file processing failed with status ${a}`)}}},{abortKey:D,bridgeKey:C,registered:c,requestId:b})}async function V(a,b,c,d){let e=function(a){if("free"===a.kind)return{model:"auto",reason:a.thinkEnabled};let b="GPT-5.6 Sol"===a.modelLabel?"gpt-5-6":"gpt-5-5";return 4===a.effortIndex?{model:`${b}-pro`,reason:!1}:{model:b,reason:a.effortIndex>0}}(b.selection);await a.evaluate(({mode:a,prompt:b,registered:c,requestId:d,requestKey:e,pluginHints:f})=>{let g=globalThis,h=c.filter(a=>"image"===a.kind),i=c.map(a=>({id:a.fileId,size:a.size,name:a.name,mime_type:a.mimeType,..."image"===a.kind?{width:a.width,height:a.height}:{non_library_my_files_injest_upload:!0},source:"local",is_big_paste:!1})),j=[...a.reason?["reason"]:[],...Array.isArray(f)?f:[]],k={...j.length?{system_hints:j}:{},...i.length?{attachments:i}:{},serialization_metadata:{custom_symbol_offsets:[]}},l=h.length?{content_type:"multimodal_text",parts:[...h.map(a=>({content_type:"image_asset_pointer",asset_pointer:`sediment://${a.fileId}`,size_bytes:a.size,width:a.width,height:a.height})),b]}:{content_type:"text",parts:[b]};(g[e]??={})[d]={body:{action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:l,metadata:k}],parent_message_id:"client-created-root",model:a.model,timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,history_and_training_disabled:!0,conversation_mode:{kind:"primary_assistant"},system_hints:j,supports_buffering:!0,supported_encodings:["v1"]}}},{mode:e,prompt:b.prompt,registered:d,requestId:c,requestKey:E,pluginHints:Array.isArray(b.pluginHints)?b.pluginHints:[]})}async function W(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b],g=[f?.finalizeRequirements,f?.proofManager?.getEnforcementToken,f?.turnstileManager?.getEnforcementToken,f?.buildSentinelHeaders].every(a=>"function"==typeof a),h="function"==typeof f?.resolveIntegrity&&"function"==typeof f?.requestClient?.safePost;if(!g&&!h)throw Error("ChatGPT Web first-party challenge bridge is incomplete");let i=e[a]?.[c],j=e[d]?.[c];if(!i||!j)throw Error("ChatGPT Web request scope is unavailable");if(h){let a=await f.resolveIntegrity(async a=>f.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a},signal:i.signal}));j.additionalHeaders=a?.headers??{}}else{let a=await f.finalizeRequirements(!1,"none");if(i.signal.aborted)throw new DOMException("Aborted","AbortError");let[b,c]=await Promise.all([f.proofManager.getEnforcementToken(a,{forceSync:!0}),f.turnstileManager.getEnforcementToken(a)]);j.additionalHeaders=f.buildSentinelHeaders(a,c,b,null,null,null)}},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function X(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b]?.requestClient,g=e[a]?.[c],h=e[d]?.[c];if("function"!=typeof f?.safePost||!g||!h)throw Error("ChatGPT Web conversation request scope is unavailable");let i=await f.safePost("/f/conversation",{requestBody:h.body,additionalHeaders:h.additionalHeaders,signal:g.signal,skipJsonTransform:!0});if(!(i instanceof Response))throw Error("ChatGPT Web conversation returned an invalid response");if(!i.ok){let a=i.status,b="";try{let a=await i.json(),c=a.detail&&"object"==typeof a.detail?a.detail:a.error&&"object"==typeof a.error?a.error:a,d=c.code??c.message??c.type;"string"==typeof d&&(b=d.slice(0,160))}catch{await i.body?.cancel().catch(()=>{})}throw Error(`ChatGPT Web conversation failed with status ${a}${b?` (${b})`:""}`)}h.response=i},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function Y(a,b){return a.evaluate(async({requestId:a,requestKey:b,responseLimit:c})=>{let d=globalThis,e=d[b]?.[a],f=e?.response;if(!(f instanceof Response))throw Error("ChatGPT Web conversation response is unavailable");let g=f.body?.getReader();if(!g)throw Error("ChatGPT Web conversation returned an empty stream");let h=new TextDecoder,i=[],j=0;try{for(;;){let{done:a,value:b}=await g.read();if(a)break;if(b){if((j+=b.byteLength)>c)throw await g.cancel().catch(()=>{}),Error("ChatGPT Web conversation response exceeded the size limit");i.push(h.decode(b,{stream:!0}))}}i.push(h.decode())}finally{try{g.releaseLock()}catch{}}return i.join("")},{requestId:b,requestKey:E,responseLimit:0x1000000})}async function Z(a,b,c,d){let e=d.map(({attachment:a,fileId:b})=>({fileId:b,kind:a.kind,mimeType:a.mimeType,name:a.name,size:a.size,width:a.width,height:a.height}));return await U(a,c,e),await V(a,b,c,e),await W(a,c),await X(a,c),Y(a,c)}async function $(a,b){await a.evaluate(({abortKey:a,requestId:b,requestKey:c})=>{let d=globalThis,e=d[a],f=d[c];delete e?.[b],delete f?.[b]},{abortKey:D,requestId:b,requestKey:E}).catch(()=>{})}async function _(a,b){await a.evaluate(({abortKey:a,requestId:b})=>{let c=globalThis[a];c?.[b]?.abort()},{abortKey:D,requestId:b}).catch(()=>{})}async function aa(a,b){let c=G.get(a)??Promise.resolve(),d=()=>{},e=new Promise(a=>{d=a}),f=c.catch(()=>{}).then(()=>e);G.set(a,f),await c.catch(()=>{});try{return await b()}finally{d(),G.get(a)===f&&G.delete(a)}}async function ab(a,b,c={}){let d=c.requestId??crypto.randomUUID();return aa(a,async()=>{if(c.signal?.aborted)throw new DOMException("Aborted","AbortError");let e=()=>{_(a,d)};c.signal?.addEventListener("abort",e,{once:!0});try{await R(a);let e=(await S(a,d,b.attachments)).map((a,c)=>({...a,attachment:b.attachments[c]}));return await T(e,c.signal),await Z(a,b,d,e)}finally{c.signal?.removeEventListener("abort",e),await $(a,d)}})}let ac="https://chatgpt.com";function ad(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ae(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web browser turn requires a non-empty prompt");return a}function af(a){let b;try{b=new URL(a)}catch{throw Error("ChatGPT Web browser session requires a valid URL")}if(b.origin!==ac)throw Error("ChatGPT Web browser session requires the first-party chatgpt.com origin")}function ag(a,b,c){if(!ad(a)||!ad(a.message))return null;let d=a.message,e=ad(d.author)?d.author:null,f=ad(d.content)?d.content:null,g=Array.isArray(f?.parts)?f.parts:[];return e?.role==="assistant"&&f?.content_type==="text"&&g.every(a=>"string"==typeof a)&&"finished_successfully"===d.status&&!0===d.end_turn?{conversationId:b,turnExchangeId:c,text:g.join(""),status:d.status,endTurn:!0}:null}class ah{constructor(a,b={}){this.page=a,this.pageUrl=b.pageUrl??"https://chatgpt.com/?temporary-chat=true",this.selection=b.selection,this.closePageOnCleanup=!0===b.closePageOnCleanup,this.executePageRequest=b.executePageRequest??ab}url(){return this.pageUrl}async start(){af(this.pageUrl);let a=async()=>{this.closePageOnCleanup&&await this.page.close().catch(()=>{})};try{let b=!1;try{b=new URL(this.page.url()).origin===ac}catch{b=!1}return b||await this.page.goto(this.pageUrl,{waitUntil:"domcontentloaded",timeout:3e4}),af(this.page.url()),a}catch(b){throw await a(),b}}async submitPrompt(a){if(!this.selection)throw Error("ChatGPT Web direct request requires a model selection");return af(this.page.url()),this.executePageRequest(this.page,{prompt:ae(a.prompt),attachments:a.attachments,selection:this.selection,pluginHints:a.pluginHints??[]},{signal:a.signal})}}async function ai(a,b){let c;if(b.signal?.aborted)throw Error("ChatGPT Web browser turn aborted");let d=ae(b.prompt);af(a.url());let e=b.timeoutMs??18e4;if(!Number.isFinite(e)||e<=0)throw Error("ChatGPT Web browser turn requires a positive timeout");let f=null,g=new Promise((a,b)=>{c=setTimeout(()=>b(Error("ChatGPT Web browser turn timed out")),e),c.unref?.()});try{let c=(async()=>(f=await a.start(),function(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web direct conversation returned an empty stream");let b=new y,c="",d="",e=null;for(let f of u(a))ad(f.json)&&("string"==typeof f.json.conversation_id&&(c=f.json.conversation_id),"string"==typeof f.json.turn_exchange_id&&(d=f.json.turn_exchange_id)),"delta_encoding"===f.event&&(e=ag(b.snapshot(),c,d)??e,b=new y),b.ingest(function(a){let b="message"===a.event?"":`event: ${a.event}
230
+ `;return`${b}data: ${a.data}
231
+
232
+ `}(f)),e=ag(b.snapshot(),c,d)??e;let f=ag(b.snapshot(),c,d)??e;return f?{...f,conversationId:c,turnExchangeId:d}:function(a,b,c){let d=ag(a,b,c);if(d)return d;if(!ad(a)||!ad(a.message)){let b=ad(a)?Object.keys(a).sort().join(","):"non-object";throw Error(`ChatGPT Web assistant document is incomplete (root=${b})`)}let e=a.message,f=ad(e.author)?e.author:null,g=ad(e.content)?e.content:null,h=Array.isArray(g?.parts)?g.parts:[],i=JSON.stringify({messageKeys:Object.keys(e).sort(),role:f?.role??null,contentType:g?.content_type??null,partCount:h.length,partTypes:h.map(a=>typeof a),status:e.status??null,endTurn:e.end_turn??null});throw Error(`ChatGPT Web assistant document is incomplete (${i})`)}(b.snapshot(),c,d)}(await a.submitPrompt({prompt:d,attachments:b.attachments??[],pluginHints:b.pluginHints??[],signal:b.signal}))))();return c.catch(()=>{}),await Promise.race([c,g])}finally{clearTimeout(c),await f?.()}}var aj=c(14229);let ak={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"};async function al(a,b,c){let d=await a.text();try{let e=JSON.parse(d),f=e?.choices?.[0]?.message?.content||"",{content:g,toolCalls:h,finishReason:i}=(0,aj.mU)(f,b,c);return h?(e.choices[0].message={role:"assistant",content:null,tool_calls:h},e.choices[0].finish_reason=i):e.choices[0].message.content=g,new Response(JSON.stringify(e),{status:a.status,headers:{"Content-Type":"application/json"}})}catch{return new Response(d,{status:a.status,headers:{"Content-Type":"application/json"}})}}async function am(a,b,c,d){var e,f,g,h;let i,j,k,l,m;if(!a.ok)return a;let n=await al(a,b,d.idSeed??"cgpt");return c?new Response((e=await n.json(),f=d.cid,g=d.created,h=d.model,i=new TextEncoder,k=(j=e?.choices?.[0]??{}).message??{},l=j.finish_reason??"stop",m=(a,b)=>{var c;return i.encode((c={id:f,object:"chat.completion.chunk",created:g,model:h,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:b,logprobs:null}]},`data: ${JSON.stringify(c)}
254
233
 
255
- ${e}`;let i=g.map(a=>`${"assistant"===a.role?"Assistant":"User"}: ${a.content}`),j=[];return h&&j.push(`System:
256
- ${h}`),j.push(`Previous conversation:
257
- ${i.join("\n\n")}`),j.push(`Current user message:
258
- ${e}`),j.join("\n\n")}(y),A=y.some(a=>"user"===a.role&&"string"==typeof a.content&&a.content.trim().length>0);if(!z||!A)return{response:R(400,"No user message found"),url:D,headers:{},transformedBody:b};let B=a||"gemini-2.5-pro",C=null,J=null,K=null;try{if(h?.aborted)throw h.reason instanceof Error?h.reason:Error("Request aborted");let{acquireGeminiBrowser:f}=await c.e(9745).then(c.bind(c,69745));C=await f(F);let g={context:null};K=()=>{g.context?.close().catch(()=>{})},h?.addEventListener("abort",K,{once:!0}),g.context=J=await C.newContext({userAgent:E}),await J.addCookies((0,i.EU)(v,".google.com"));let l=await J.newPage(),m=await M(l);if(h?.aborted)throw h.reason instanceof Error?h.reason:Error("Request aborted");if(await N(l,m),a){let a=await q(l,B);if(!a.confirmed)return j?.warn?.("GEMINI-WEB",`Rejected request: could not confirm Gemini UI mode for "${B}" (${a.reason})`),{response:R(400,{message:t(B,a.reason),type:"invalid_request_error",code:k}),url:D,headers:{},transformedBody:b}}if(u){let a=await r(l);if(!a.confirmed)return j?.warn?.("GEMINI-WEB",`Rejected request: could not confirm Extended Thinking is available (${a.reason})`),{response:R(400,{message:t("Extended Thinking",a.reason),type:"invalid_request_error",code:k}),url:D,headers:{},transformedBody:b}}let n=await N(l,m);await n.click(),await l.keyboard.insertText(z),await l.waitForTimeout(300),await l.keyboard.press("Enter");let o=await w(l);if(hasTools){let a=await x({page:l,baseCount:o.count,baseText:o.lastText,signal:h}),c=`chatcmpl-gwe-${crypto.randomUUID().slice(0,12)}`,e=Math.floor(Date.now()/1e3);return{response:await I(a,p,!!d,B,c,e),url:D,headers:{},transformedBody:b}}if(d){let a=new TextEncoder,d=J,f=C;J=null,C=null;let g=new ReadableStream({async start(b){try{await x({page:l,baseCount:o.count,baseText:o.lastText,signal:h,onDelta:c=>{b.enqueue(a.encode(`data: ${JSON.stringify(H(c,B))}
234
+ `))},new ReadableStream({start(a){a.enqueue(m({role:"assistant"},null)),Array.isArray(k.tool_calls)&&k.tool_calls.length>0?(k.tool_calls.forEach((b,c)=>{a.enqueue(m({tool_calls:[{index:c,...b}]},null))}),a.enqueue(m({},l))):a.enqueue(m({content:k.content??""},l)),a.enqueue(i.encode("data: [DONE]\n\n")),a.close()}})),{status:200,headers:ak}):n}let an="https://chatgpt.com/?temporary-chat=true",ao=["chatgpt.com","openai.com"];function ap(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function aq(a){let b=a.toLowerCase().replace(/^\./,"");return ao.some(a=>b===a||b.endsWith(`.${a}`))}function ar(a){if(!ap(a)||!Array.isArray(a.cookies)||!Array.isArray(a.origins))throw Error("ChatGPT Web browser storage state is invalid");for(let b of a.cookies){if(!ap(b)||"string"!=typeof b.name||!b.name||"string"!=typeof b.value||"string"!=typeof b.domain||"string"!=typeof b.path||!b.path.startsWith("/")||"number"!=typeof b.expires||!Number.isFinite(b.expires)||"boolean"!=typeof b.httpOnly||"boolean"!=typeof b.secure||!["Strict","Lax","None"].includes(String(b.sameSite)))throw Error("ChatGPT Web browser storage state contains an invalid cookie");if(!aq(b.domain))throw Error("ChatGPT Web browser storage state contains a foreign cookie domain")}for(let b of a.origins)!function(a){let b;if(!ap(a)||"string"!=typeof a.origin||!Array.isArray(a.localStorage))throw Error("ChatGPT Web browser storage state contains an invalid origin");try{b=new URL(a.origin)}catch{throw Error("ChatGPT Web browser storage state contains an invalid origin")}if("https:"!==b.protocol||!aq(b.hostname))throw Error("ChatGPT Web browser storage state contains a foreign origin");for(let b of a.localStorage)if(!ap(b)||"string"!=typeof b.name||"string"!=typeof b.value)throw Error("ChatGPT Web browser storage state contains invalid local storage")}(b);let b=structuredClone(a);for(let a of b.cookies)a.name.startsWith("__Host-")&&(a.domain=a.domain.replace(/^\./,""),a.path="/",a.secure=!0);return b}function as(a){if(null==a)return"";if("string"==typeof a)return a;if(!Array.isArray(a))throw Error("ChatGPT Web clean-room adapter supports text content only");let b=[];for(let c of a){if(ap(c)&&("text"===c.type||"input_text"===c.type)&&"string"==typeof c.text){b.push(c.text);continue}if(!("string"==typeof c?c.toLowerCase().startsWith("data:image/"):!!k(c)&&["file","image","image_url","input_file","input_image"].includes(l(c.type)?.toLowerCase()??"")))throw Error("ChatGPT Web clean-room adapter received unsupported content")}return b.join("")}function at(a){return"string"==typeof a.reasoning_effort?a.reasoning_effort.toLowerCase():ap(a.reasoning)&&"string"==typeof a.reasoning.effort?a.reasoning.effort.toLowerCase():null}function au(a){if(null===a||"medium"===a)return 1;if(["none","off","minimal","low"].includes(a))return 0;if("high"===a)return 2;if("xhigh"===a||"max"===a)return 3;throw Error(`ChatGPT Web clean-room adapter does not support reasoning effort ${a}`)}function av(a){let b=a.providerSpecificData,c=b?.storageState??a.apiKey;if("string"==typeof c){let a=c.trim();if(a.startsWith("{"))try{return ar(JSON.parse(a))}catch{throw Error("ChatGPT Web browser storage state JSON is invalid")}let b=a.trim().replace(/^Cookie:\s*/i,"");if(!b)throw Error("ChatGPT Web Cookie header is empty");if(!b.includes("="))return ar({cookies:[{name:"__Secure-next-auth.session-token",value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:!0,secure:!0,sameSite:"Lax"}],origins:[]});let d=b.split(/;\s*/).map(a=>{let b=a.indexOf("=");if(b<=0)throw Error("ChatGPT Web Cookie header contains an invalid cookie");return[a.slice(0,b).trim(),a.slice(b+1)]});if(!d.some(([a])=>/^__Secure-next-auth\.session-token(?:\.\d+)?$/.test(a))){if(b.includes(";")||b.includes("="))throw Error("ChatGPT Web Cookie header is missing __Secure-next-auth.session-token");d.splice(0,d.length,["__Secure-next-auth.session-token",b])}return ar({cookies:d.map(([a,b])=>({name:a,value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:a.startsWith("__Secure-")||a.startsWith("__Host-"),secure:!0,sameSite:"Lax"})),origins:[]})}return ar(c)}function aw(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function ax(a){let b=process.env;return[a,b.CHATGPT_WEB_CHROME_PATH,b.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",...b.PROGRAMFILES?[(0,g.join)(b.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...b["PROGRAMFILES(X86)"]?[(0,g.join)(b["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...b.LOCALAPPDATA?[(0,g.join)(b.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,f.existsSync)(a.trim())))}async function ay(a){let b=(0,h.gZ)(a.proxyOptions),c=function({connectionId:a,storageState:b,proxy:c}){return(0,e.createHash)("sha256").update(a).update("\0").update(JSON.stringify(b)).update("\0").update(c?c.server:"").update("\0").update(c?.bypass||"").digest("hex")}({connectionId:a.connectionId,storageState:a.storageState,proxy:b}),d=await (0,h.qG)(`chatgpt-web-cleanroom:${c}`,{cookieDomain:"chatgpt.com",storageState:a.storageState,userAgent:a.userAgent,locale:a.locale,timezone:a.timezone,warmupUrl:an,headless:!0,executablePath:a.chromeExecutablePath,...b?{proxy:b}:{}}),f=d.warmupPage&&!d.warmupPage.isClosed()?d.warmupPage:await (0,h.we)(d);return d.warmupPage!==f&&(d.warmupPage=f),new ah(f,{pageUrl:an,selection:a.selection,closePageOnCleanup:!1})}function az(a,b,c,d={}){let f=d.id??`chatcmpl-${(0,e.randomUUID)()}`,g=d.created??Math.floor(Date.now()/1e3);return c?new Response([{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{content:b.text},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}].map(a=>`data: ${JSON.stringify(a)}
259
235
 
260
- `))}}),b.enqueue(a.encode(`data: ${JSON.stringify(H("",B,"stop"))}
236
+ `).join("")+"data: [DONE]\n\n",{headers:{"Content-Type":"text/event-stream; charset=utf-8"}}):Response.json({id:f,object:"chat.completion",created:g,model:a,choices:[{index:0,message:{role:"assistant",content:b.text},finish_reason:"stop"}]})}async function aA(a){let b=function(a,b){if(!ap(b))throw Error("ChatGPT Web clean-room adapter requires an object body");let{prompt:c,hasTools:d,requestedTools:e}=function(a){let b,c;if(!Array.isArray(a.messages)||0===a.messages.length)throw Error("ChatGPT Web clean-room adapter requires messages");let d=a.messages[0],e=1===a.messages.length&&ap(d)&&"user"===d.role&&!(Array.isArray(a.tools)&&a.tools.length>0),f=!1;if(e)b=as(d.content);else{let d=(0,aj.S$)(a,a.messages);f=d.hasTools,c=d.requestedTools,b=(function(a){let b=new Map,c=[],d=[],e=!1;for(let f of a){if(!ap(f)||"string"!=typeof f.role)throw Error("ChatGPT Web clean-room adapter received an invalid message");let a=as(f.content).trim();if("system"===f.role||"developer"===f.role){a&&c.push(a);continue}if("user"===f.role){a&&d.push(`User:
237
+ ${a}`);continue}if("assistant"===f.role){let c=[];for(let d of(a&&c.push(a),Array.isArray(f.tool_calls)?f.tool_calls:[])){let a="string"==typeof d?.function?.name?d.function.name:"",f=d?.function?.arguments,g="string"==typeof f&&f?f:JSON.stringify(f??{});d?.id&&b.set(d.id,a),c.push(`<tool>{"name": ${JSON.stringify(a)}, "arguments": ${g}}</tool>`),e=!0}c.length&&d.push(`Assistant:
238
+ ${c.join("\n")}`);continue}if("tool"===f.role){let c=f.tool_call_id&&b.get(f.tool_call_id)||f.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),e=!0;continue}throw Error(`ChatGPT Web clean-room adapter does not support the "${f.role}" role`)}return e&&d.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."),[...c,...d]})(d.effectiveMessages).join("\n\n")}if(!b.trim())throw Error("ChatGPT Web clean-room adapter requires non-empty text");if(new TextEncoder().encode(b).byteLength>4194304)throw Error("ChatGPT Web clean-room adapter prompt is too large");return{prompt:b,hasTools:f,requestedTools:c}}(b),f=function(a){let b=[...function(a){let b=[];for(let[c,d]of(a||[]).entries())if(Array.isArray(d?.content))for(let[a,e]of d.content.entries()){let d;if(!k(e))continue;let f=l(e.type)?.toLowerCase();if("image_url"===f&&k(e.image_url)?d=l(e.image_url.url):"input_image"===f?d=l(e.image_url??e.url):"image"===f&&"string"==typeof e.source&&(d=l(e.source)),!d)continue;let g=l(e.filename??e.name),h=b.length+1,j=n(d);b.push({kind:"image",ref:d,name:m(g,`image-${h}.${function(a){let b=n(a);if(b&&i[b])return i[b];try{let b=/\.([a-zA-Z0-9]{2,5})$/.exec(new URL(a).pathname);if(b&&["gif","jpeg","jpg","png","webp"].includes(b[1].toLowerCase()))return b[1].toLowerCase().replace("jpeg","jpg")}catch{}return"png"}(d)}`),...j?{mimeType:j}:{},messageIndex:c,partIndex:a})}return b}(a),...function(a){let b=[];for(let c of a||[])if(Array.isArray(c?.content))for(let a of c.content){if(!k(a))continue;let c=l(a.type)?.toLowerCase();("file"===c||"input_file"===c)&&b.push(function(a){let b=k(a.file)?a.file:a,c=l(b.file_data??a.file_data),d=l(b.mime_type??a.mime_type)?.toLowerCase(),e=c;if(!e)throw new j("ChatGPT Web file input requires base64 file_data");return e.toLowerCase().startsWith("data:")||(e=`data:${d??"application/octet-stream"};base64,${e}`),{kind:"file",ref:e,name:m(l(b.filename??a.filename),"attachment.bin"),...d?{mimeType:d}:{}}}(a))}return b}(a)];if(b.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");return b}(b.messages);return{prompt:c,selection:function(a,b){let c=a.trim().toLowerCase().replace(/^chatgpt-web\//,"").replace(/^cgpt-web\//,"").replace(/\./g,"-");if("gpt-5-6-luna-free"===c)return{kind:"free",thinkEnabled:!1};if("gpt-5-6-luna-free-thinking"===c)return{kind:"free",thinkEnabled:!0};if("gpt-5-6-pro"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:4};if("gpt-5-6-instant"===c||"gpt-5-6"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0};if(["gpt-5-6-thinking","gpt-5-6-sol"].includes(c))return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:au(at(b))};if("gpt-5-5-pro"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:4};if("gpt-5-5-instant"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:0};if(["gpt-5-5","gpt-5-5-thinking"].includes(c))return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:au(at(b))};throw Error(`ChatGPT Web clean-room adapter received an unsupported model: ${a}`)}(a,b),attachments:f,hasTools:d,requestedTools:e}}(a.model,a.body),c=await o(b.attachments),d=av(a.credentials),f=aw(a.credentials.connectionId);if(!f)throw Error("ChatGPT Web clean-room adapter requires a connection ID");let g=a.credentials.providerSpecificData,h=await ay({connectionId:f,storageState:d,selection:b.selection,userAgent:aw(g?.customUserAgent),locale:aw(g?.locale),timezone:aw(g?.timezone),chromeExecutablePath:ax(aw(g?.chromeExecutablePath)),proxyOptions:a.proxyOptions||null}),p=await ai(h,{prompt:b.prompt,attachments:c,pluginHints:function(a){if(null==a)return[];let b=Array.isArray(a)?a:"string"==typeof a?a.split(/[,\n]/):[],c=new Set,d=[];for(let a of b){let b="string"==typeof a?a.trim():"";!/^plugin:[A-Za-z0-9_-]+$/.test(b)||c.has(b)||(c.add(b),d.push(b))}return d}(g?.pluginHints),signal:a.signal});return b.hasTools?am(az(a.model,p,!1),b.requestedTools,a.stream,{idSeed:"cgpt",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:a.model}):az(a.model,p,a.stream)}let aB=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aC=a=>new Promise(b=>setTimeout(b,a));class aD extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}async function aE(a){return a.evaluate(async a=>{let b=globalThis[a],c=[b?.finalizeRequirements,b?.proofManager?.getEnforcementToken,b?.turnstileManager?.getEnforcementToken,b?.buildSentinelHeaders].every(a=>"function"==typeof a),d="function"==typeof b?.resolveIntegrity&&"function"==typeof b?.requestClient?.safePost;if(!c&&!d)throw Error("ChatGPT Web first-party challenge bridge is incomplete");if(d){let a=await b.resolveIntegrity(async a=>b.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a}}));return{...a?.headers??{}}}let e=await b.finalizeRequirements(!1,"none"),[f,g]=await Promise.all([b.proofManager.getEnforcementToken(e,{forceSync:!0}),b.turnstileManager.getEnforcementToken(e)]);return b.buildSentinelHeaders(e,g,f,null,null,null)},C)}async function aF(a){return a.evaluate(async()=>{let a=await fetch("/api/auth/session",{credentials:"include"});if(!a.ok)throw Error("ChatGPT Web browser session is unavailable");let b=await a.json();if("string"!=typeof b?.accessToken||!b.accessToken)throw Error("ChatGPT Web browser session has no access token");return b.accessToken})}async function aG(a,b,{sizeHint:c,signal:d}){let e=await aE(a),f=await aF(a);return a.evaluate(async({accessToken:a,headers:b,prompt:c,sizeHint:d,maxBytes:e})=>{let f={...b,Authorization:`Bearer ${a}`},g=async(a,b)=>{let c=a.body?.getReader();if(!c)return"";let d=new TextDecoder,e=[],f=0;try{for(;;){let{done:a,value:g}=await c.read();if(a)break;if(g){if((f+=g.byteLength)>b)throw await c.cancel().catch(()=>{}),Error(`response exceeded ${b} bytes`);e.push(d.decode(g,{stream:!0}))}}e.push(d.decode())}finally{try{c.releaseLock()}catch{}}return e.join("")},h=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},i=await h("/backend-api/f/conversation/prepare",{method:"POST",credentials:"include",headers:{...f,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"success",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:crypto.randomUUID(),author:{role:"user"},content:{content_type:"text",parts:[c]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4);if(!i.ok)throw Error(`prepare failed with status ${i.status}`);let j=(await i.json()).conduit_token||"",k=d?`${c} (aspect ratio ${d})`:c,l=new AbortController,m=setTimeout(()=>l.abort(),9e4),n="";try{let a=await fetch("/backend-api/f/conversation",{method:"POST",credentials:"include",signal:l.signal,headers:{...f,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"X-Oai-Turn-Trace-Id":crypto.randomUUID()},body:JSON.stringify({action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"sent",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})});if(!a.ok){let b=a.status;throw await a.body?.cancel().catch(()=>{}),Error(`conversation failed with status ${b}`)}try{n=await g(a,e)}catch(a){if(!l.signal.aborted&&!/exceeded/.test(String(a?.message||"")))throw a}}finally{clearTimeout(m),l.abort()}let o=(n.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",p=[],q=[],r=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let a of n.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))r(p,a[1]);for(let a of n.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))r(p,a[0]);for(let a of n.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))r(q,a[1]);return{conversationId:o,fileIds:p,sedimentIds:q}},{accessToken:f,headers:e,prompt:b,sizeHint:c,maxBytes:0x1000000})}async function aH(a,b,c,d,{signal:e,log:f}){let g=Date.now(),h=[...d.fileIds],i=[...d.sedimentIds];for(await aC(8e3);;){if(e?.aborted)throw Error("Request aborted");if(Date.now()-g>24e4)throw new aD("ChatGPT image generation timed out",504);let d=await a.evaluate(async({accessToken:a,conversationId:b,maxBytes:c})=>{let d,e=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},f=await e(`/backend-api/conversation/${b}`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},3e4);if(!f.ok)return{status:f.status};if(Number(f.headers.get("content-length")??"0")>c)return{status:413};let g=await f.text();if(g.length>c)return{status:413};try{d=JSON.parse(g)}catch{return{status:502}}let h=[],i=[],j=(a,b)=>{b&&!a.includes(b)&&a.push(b)},k=a=>{if(Array.isArray(a))return a.some(k);if(a&&"object"==typeof a){if("image_asset_pointer"===String(a.content_type||""))return!0;let b=String(a.asset_pointer||"");return!!(b.startsWith("file-service://")||b.startsWith("sediment://"))||Object.values(a).some(k)}return!1},l=a=>{if("string"==typeof a){for(let b of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))j(h,b[1]);for(let b of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))j(h,b[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))j(i,b[1]);return}Array.isArray(a)?a.forEach(l):a&&"object"==typeof a&&Object.values(a).forEach(l)},m="";for(let a of Object.values(d.mapping||{})){let b=(a||{}).message||{},c=String(b.author?.role||"").toLowerCase();if("tool"!==c&&"assistant"!==c)continue;let d=b.metadata||{},e="image_gen"===d.async_task_type,f=k(b.content)||k(d);if(("assistant"!==c||e||f)&&(l({content:b.content,metadata:d}),"assistant"===c&&d.is_error&&b.content?.content_type==="text")){let a=(Array.isArray(b.content.parts)?b.content.parts:[]).filter(a=>"string"==typeof a).join("");a&&(m=a.slice(0,300))}}return{status:200,fileIds:h,sedimentIds:i,errorText:m}},{accessToken:b,conversationId:c,maxBytes:0x2000000});if(200!==d.status)f?.debug?.("CGPT-WEB-IMG",`conversation poll status ${d.status}, retrying`);else{for(let a of d.fileIds)h.includes(a)||h.push(a);for(let a of d.sedimentIds)i.includes(a)||i.push(a);if(h.length>0||i.length>0)return{fileIds:h.filter(a=>"file_upload"!==a),sedimentIds:i};if(d.errorText&&aB.test(d.errorText))throw new aD(`ChatGPT refused the image request: ${d.errorText}`,400)}await aC(5e3)}}async function aI(a,b,c,{fileIds:d,sedimentIds:e}){for(let c of d){let d=await a.evaluate(async({accessToken:a,fileId:b})=>{let c=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},d=await c(`/backend-api/files/${b}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!d.ok)return{status:d.status};let e=await d.json(),f=e.download_url||e.url||"";if(!f)return{status:404};let g=await c(f,{},9e4);if(!g.ok)return{status:g.status};let h=await g.blob(),i=new Uint8Array(await h.arrayBuffer()),j="";for(let a=0;a<i.length;a+=32768)j+=String.fromCharCode(...i.subarray(a,a+32768));return{status:200,mime:h.type||"image/png",b64:btoa(j)}},{accessToken:b,fileId:c});if(200===d.status&&d.b64)return{b64:d.b64,mime:d.mime}}for(let d of e){let e=await a.evaluate(async({accessToken:a,conversationId:b,sedimentId:c})=>{let d=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},e=await d(`/backend-api/conversation/${b}/attachment/${c}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!e.ok)return{status:e.status};let f=await e.json(),g=f.download_url||f.url||"";if(!g)return{status:404};let h=await d(g,{},9e4);if(!h.ok)return{status:h.status};let i=await h.blob(),j=new Uint8Array(await i.arrayBuffer()),k="";for(let a=0;a<j.length;a+=32768)k+=String.fromCharCode(...j.subarray(a,a+32768));return{status:200,mime:i.type||"image/png",b64:btoa(k)}},{accessToken:b,conversationId:c,sedimentId:d});if(200===e.status&&e.b64)return{b64:e.b64,mime:e.mime}}throw new aD("ChatGPT image generation produced no downloadable file",502)}async function aJ(a,{prompt:b,sizeHint:c,signal:d,log:e}){if(await R(a),d?.aborted)throw Error("Request aborted");let f=await aG(a,b,{sizeHint:c,signal:d});if(!f.conversationId&&0===f.fileIds.length&&0===f.sedimentIds.length)throw new aD("ChatGPT image conversation produced no conversation id",502);let g=await aF(a),h=f.fileIds.length>0||f.sedimentIds.length>0?f:await aH(a,g,f.conversationId,f,{signal:d,log:e});return aI(a,g,f.conversationId,h)}var aK=c(39609),aL=c(49426),aM=c(41004);let aN="OpenAI-Sentinel-Chat-Requirements-Prepare-Token",aO=a=>Buffer.from(JSON.stringify(a),"utf8").toString("base64"),aP=["https://chatgpt.com/cdn/assets/685809.dec86dcdc1.js","https://chatgpt.com/cdn/assets/399565.a1117ca8b4.js"],aQ=["cookie","domain","readyState","title","URL","charset","location"],aR=["caches","crypto","fetch","indexedDB","localStorage","origin"],aS=["userAgent","language","hardwareConcurrency"],aT=a=>a[Math.floor(Math.random()*a.length)];function aU(a){let b=aT(aS);return[2080,new Date().toString(),null,0,a,aT(aP),null,"en-US","en-US,en",0,`${b}−${a}`,aT(aQ),aT(aR),0,crypto.randomUUID(),"",8,0,0,0,0,0,0,0,0]}async function aV(a,{headers:b,body:c,signal:d,proxyOptions:e=null,timeoutMs:f=aM.pH}){let g,h=(0,aL.n)(d,f);try{g=await (0,aK.proxyAwareFetch)(a,{method:"POST",headers:{...b,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c??{}),signal:h.signal},e)}catch(a){throw h.settleError(a)}finally{h.clear()}let i=await g.text().catch(()=>"");if(!g.ok)throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} failed (HTTP ${g.status}) ${i.slice(0,200)}`),{status:g.status});try{return JSON.parse(i)}catch{throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} returned invalid JSON`),{status:502})}}async function aW({baseUrl:a,accessToken:b,userAgent:c,signal:d,proxyOptions:e=null}){let f,g={Authorization:`Bearer ${b}`,"User-Agent":c},h=await aV(`${a}/backend-api/sentinel/chat-requirements/prepare`,{headers:{...g,[aN]:((f=aU(c))[3]=1,f[9]=0,`gAAAAAC${aO(f)}`)},signal:d,proxyOptions:e});if(!h?.prepare_token)throw Object.assign(Error("ChatGPT sentinel prepare returned no prepare_token"),{status:502});let i=await aV(`${a}/backend-api/sentinel/chat-requirements`,{headers:{...g,[aN]:h.prepare_token},signal:d,proxyOptions:e}),j={};return i?.token&&(j["OpenAI-Sentinel-Chat-Requirements-Token"]=i.token),i?.proofofwork?.required&&(j["OpenAI-Sentinel-Proof-Token"]=function({seed:a,difficulty:b,userAgent:c}){if(!a||!b)throw Error("ChatGPT sentinel asked for proof of work without seed/difficulty");let d=performance.now(),e=aU(c);for(let c=0;c<5e5;c++){e[3]=c,e[9]=Math.round(performance.now()-d);let f=aO(e);if((function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b^=b>>>16,b=Math.imul(b,0x85ebca6b)>>>0,b^=b>>>13,b=Math.imul(b,0xc2b2ae35)>>>0,((b^=b>>>16)>>>0).toString(16).padStart(8,"0")})(`${a}${f}`).slice(0,b.length)<=b)return`gAAAAAB${f}~S`}throw Error("ChatGPT sentinel proof of work exhausted its iteration budget")}({seed:i.proofofwork.seed,difficulty:i.proofofwork.difficulty,userAgent:c})),j}async function aX({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:e,proxyOptions:f=null,log:g=null,timeoutMs:h=aM.pH}){if(!e)return!1;let i=(0,aL.n)(null,h);try{let h=await (0,aK.proxyAwareFetch)(`${a}/backend-api/conversation/${encodeURIComponent(e)}/delete`,{method:"POST",headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json","Content-Type":"application/json",...c?{Cookie:c}:{}},body:"{}",signal:i.signal},f);return g?.debug?.("CGPT-WEB",`conversation delete HTTP ${h.status}`),h.ok}catch(a){return g?.debug?.("CGPT-WEB",`conversation delete failed: ${a?.message||a}`),!1}finally{i.clear()}}let aY=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aZ=a=>new Promise(b=>setTimeout(b,a));class a$ extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}function a_(a,b,c,d,e=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c),h=()=>f.abort();return d?.addEventListener("abort",h,{once:!0}),(0,aK.proxyAwareFetch)(a,{...b,signal:f.signal},e).finally(()=>{clearTimeout(g),d?.removeEventListener("abort",h)})}function a0(a){return(Array.isArray(a?.cookies)?a.cookies:[]).filter(a=>a?.name&&"string"==typeof a.value).map(a=>`${a.name}=${a.value}`).join("; ")}async function a1(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}let a2=(a,b,c)=>{let d=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let c of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))d(b,c[1]);for(let c of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))d(b,c[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))d(c,b[1])};function a3({accessToken:a,userAgent:b,cookie:c,sentinel:d}){return{...d,Authorization:`Bearer ${a}`,"User-Agent":b,...c?{Cookie:c}:{}}}async function a4(a,b,c,d){let{baseUrl:f}=a,g=a3(a),h=await a_(`${f}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[b]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,d,a.proxyOptions);if(!h.ok)throw new a$(`ChatGPT prepare failed (HTTP ${h.status})`,h.status||502);let i=await h.json().catch(()=>null),j=i?.conduit_token||"",k=c?`${b} (aspect ratio ${c})`:b,l=await a_(`${f}/backend-api/f/conversation`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"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:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],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,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})},105e3,d,a.proxyOptions);if(!l.ok)throw new a$(`ChatGPT conversation failed (HTTP ${l.status})`,l.status||502);let m=await a1(l,0x1000000,9e4),n=(m.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",o=[],p=[];return a2(m,o,p),{conversationId:n,fileIds:o,sedimentIds:p}}async function a5(a,b,c,{signal:d,log:e}){let f=Date.now(),g=[...c.fileIds],h=[...c.sedimentIds],i={...a3(a),Accept:"application/json"};for(await aZ(5e3);Date.now()-f<=24e4;){if(d?.aborted)throw Error("Request aborted");let c=await a_(`${a.baseUrl}/backend-api/conversation/${b}`,{headers:i},3e4,d,a.proxyOptions).catch(()=>null);if(!c?.ok){e?.debug?.("CGPT-WEB-IMG",`conversation poll status ${c?.status??"network"}, retrying`),await aZ(5e3);continue}if(Number(c.headers.get("content-length")??"0")>0x2000000)throw new a$("ChatGPT conversation document is unexpectedly large",502);let f=await c.text().catch(()=>"");if(f.length>0x2000000)throw new a$("ChatGPT conversation document is unexpectedly large",502);if(a2(f,g,h),g.length>0||h.length>0)return{fileIds:g.filter(a=>"file_upload"!==a),sedimentIds:h};if(aY.test(f)&&/"is_error"\s*:\s*true/.test(f))throw new a$("ChatGPT refused the image request (content policy)",400);if(/ChatGPTAgentToolRateLimitException|Free plan limit for image generation/i.test(f))throw new a$("ChatGPT account has hit its image generation quota — add another account or wait for the reset",429);await aZ(5e3)}throw new a$("ChatGPT image generation timed out",504)}async function a6(a,b,c){let d=await a_(b,{},9e4,c,a.proxyOptions);if(!d.ok)return null;let e=Buffer.from(await d.arrayBuffer());return e.length?{b64:e.toString("base64"),mime:(d.headers.get("content-type")||"image/png").split(";")[0]}:null}async function a7(a,b,{fileIds:c,sedimentIds:d},e){let f={...a3(a),Accept:"application/json"};for(let b of c){let c=await a_(`${a.baseUrl}/backend-api/files/${b}/download`,{headers:f},6e4,e,a.proxyOptions).catch(()=>null);if(!c?.ok)continue;let d=await c.json().catch(()=>null),g=d?.download_url||d?.url||"";if(!g)continue;let h=await a6(a,g,e);if(h)return h}for(let c of d){let d=await a_(`${a.baseUrl}/backend-api/conversation/${b}/attachment/${c}/download`,{headers:f},6e4,e,a.proxyOptions).catch(()=>null);if(!d?.ok)continue;let g=await d.json().catch(()=>null),h=g?.download_url||g?.url||"";if(!h)continue;let i=await a6(a,h,e);if(i)return i}throw new a$("ChatGPT image generation produced no downloadable file",502)}async function a8({baseUrl:a,accessToken:b,cookie:c,userAgent:d,prompt:e,sizeHint:f,signal:g,log:h,proxyOptions:i=null}){if(!b)throw new a$("ChatGPT session has no access token",401);if(g?.aborted)throw Error("Request aborted");let j=await aW({baseUrl:a,accessToken:b,userAgent:d,signal:g,proxyOptions:i}),k={baseUrl:a,accessToken:b,cookie:c,userAgent:d,sentinel:j,proxyOptions:i||null},l=await a4(k,e,f,g);if(!l.conversationId&&0===l.fileIds.length&&0===l.sedimentIds.length)throw new a$("ChatGPT image conversation produced no conversation id",502);let m=l.fileIds.length>0||l.sedimentIds.length>0?l:await a5(k,l.conversationId,l,{signal:g,log:h});try{return await a7(k,l.conversationId,m,g)}finally{aX({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:l.conversationId,proxyOptions:i,log:h})}}let a9=a=>new Promise(b=>setTimeout(b,a));function ba(a,b,c,d,e=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c),h=()=>f.abort();return d?.addEventListener("abort",h,{once:!0}),(0,aK.proxyAwareFetch)(a,{...b,signal:f.signal},e).finally(()=>{clearTimeout(g),d?.removeEventListener("abort",h)})}async function bb(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}async function bc(a,{limit:b,deadlineMs:c,signal:d,onText:e}){let f=a.body?.getReader();if(!f)return{raw:"",text:""};let g=new TextDecoder,h=new y,i=Date.now()+c,j="",k="",l="",m=()=>{let a=k.split(/\r?\n\r?\n/);for(let b of(k=a.pop()||"",a))if(b.trim())try{h.ingest(`${b}
261
239
 
262
- `)),b.enqueue(a.encode(e.$U)),b.close()}catch(c){b.enqueue(a.encode(`data: ${JSON.stringify({error:{message:c.message||"gemini-web stream failed"}})}
240
+ `)}catch{}let b=function(a){let b=a?.mapping||{},c=null;for(let a of Object.values(b)){let b=a?.message;if(!b||"assistant"!==String(b.author?.role||"").toLowerCase()||b.content?.content_type!=="text")continue;let d=(b.content.parts||[]).filter(a=>"string"==typeof a).join(""),e=Number(b.create_time)||0;(!c||e>=c.at)&&(c={text:d,at:e})}return c?.text??""}(h.snapshot());b&&b!==l&&(b.startsWith(l)&&e(b.slice(l.length)),l=b)};try{for(;Date.now()<i;){if(d?.aborted)throw Error("Request aborted");let{done:a,value:c}=await f.read();if(a)break;if(!c)continue;let e=g.decode(c,{stream:!0});if(j+=e,k+=e,j.length>b)break;m()}}catch{}finally{await f.cancel().catch(()=>{})}return{raw:j,text:l}}async function bd({baseUrl:a,accessToken:b,cookie:c,userAgent:d,body:f,signal:g,log:h,proxyOptions:i=null,onDelta:j=null,onReady:k=null}){var l,m;if(!b)throw Object.assign(Error("ChatGPT session has no access token"),{status:401});if(g?.aborted)throw Error("Request aborted");let n=Array.isArray(f?.messages)?f.messages:[];if(0===n.length)throw Object.assign(Error("ChatGPT Web requires messages"),{status:400});let o=(0,aj.S$)(f,n),p=(l=function(a){let b=[],c=[];for(let d of a){let a=String(d?.role||"user"),e=[];if("string"==typeof d?.content)e.push(d.content);else if(Array.isArray(d?.content))for(let a of d.content)"string"==typeof a?e.push(a):"string"==typeof a?.text&&e.push(a.text);if(Array.isArray(d?.tool_calls))for(let a of d.tool_calls){let b=a?.function?.name;if(!b)continue;let c=a.function.arguments;try{c="string"==typeof c?JSON.parse(c):c}catch{}e.push(`<tool>${JSON.stringify({name:b,arguments:c})}</tool>`)}let f=e.join("\n").trim();f&&("system"===a||"developer"===a?b.push(f):"tool"===a?c.push(`Tool result${d?.tool_call_id?` (${d.tool_call_id})`:""}: ${f}`):"assistant"===a?c.push(`Assistant: ${f}`):c.push(f))}return[...b,...c].join("\n\n")}(o.effectiveMessages),m=o.hasTools,m?n.some(a=>"tool"===String(a?.role||"").toLowerCase())?l:`Use the client tools provided below. Do not answer with prose when a tool is needed.
263
241
 
264
- `)),b.enqueue(a.encode(e.$U)),b.close()}finally{await l.close().catch(()=>{}),await d.close().catch(()=>{});let{releaseGeminiBrowser:a}=await c.e(9745).then(c.bind(c,69745));await a(f)}}},{highWaterMark:16384});return{response:new Response(g,{status:200,headers:{...e.uB}}),url:D,headers:{},transformedBody:b}}let s=await x({page:l,baseCount:o.count,baseText:o.lastText,signal:h});return{response:new Response(JSON.stringify(G(s,B)),{status:200,headers:{"Content-Type":"application/json"}}),url:D,headers:{},transformedBody:b}}catch(c){let a=c instanceof Error?c.message:"Unknown error";if((0,f.BE)(a))return{response:R(503,"Gemini Web needs a Chrome/Chromium binary. Install Google Chrome, set NINEROUTER_BROWSER_BIN or CHROME_PATH to an existing Chrome, or run `npx playwright-core install chromium`."),url:D,headers:{},transformedBody:b};if(c instanceof Error&&("TimeoutError"===c.name||a.includes("waitForSelector")||a.includes("Timeout")||a.includes("actionability")||a.includes("interception")))return{response:R(400,a),url:D,headers:{},transformedBody:b};return{response:R(500,a),url:D,headers:{},transformedBody:b}}finally{K&&h?.removeEventListener("abort",K);try{await J?.close()}catch{}if(C){let{releaseGeminiBrowser:a}=await c.e(9745).then(c.bind(c,69745));await a(C)}}}async generateMedia({prompt:a,n:b=1,size:d,credentials:e,signal:f,log:g}){if(!a)throw Error("prompt is required for image generation");let h=Q(e);if(!h)throw Error("Missing Gemini cookies");let j=[];for(let e=0;e<Math.max(1,b);e++){let b=null,e=null;try{let{acquireGeminiBrowser:g}=await c.e(9745).then(c.bind(c,69745));b=await g(F),e=await b.newContext({userAgent:E}),await e.addCookies((0,i.EU)(h,".google.com"));let k=await e.newPage(),l=await M(k),m=await N(k,l);await m.click(),await k.keyboard.insertText(function(a,b){let c=b?` (aspect ratio ${b})`:"";return`Generate an image${c}: ${a}`}(a,d)),await k.waitForTimeout(300),await k.keyboard.press("Enter");let n=await C(k,{signal:f});j.push(n)}finally{try{await e?.close()}catch{}if(b){let{releaseGeminiBrowser:a}=await c.e(9745).then(c.bind(c,69745));await a(b)}}}return j}}},32447:(a,b,c)=>{c.d(b,{BL:()=>g});var d=c(96179),e=c(52007);let f=["anthropic_version","anthropic_beta","client_metadata","mcp_servers","stop_sequences","thinking","top_k"];class g extends d.L{constructor(){super("kimchi")}transformRequest(a,b,c,d){let g,h=super.transformRequest(a,b,c,d);if(!h||"object"!=typeof h)return h;for(let a of(!function(a){var b;if(!a?.system||!Array.isArray(a.messages))return;let c=("string"==typeof(b=a.system)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"").filter(Boolean).join("\n"):"").trim();if(!c)return;let d=a.messages.find(a=>a?.role==="system");d?"string"==typeof d.content?d.content=`${c}
242
+ ${l}
265
243
 
266
- ${d.content}`:Array.isArray(d.content)&&d.content.unshift({type:"text",text:c}):a.messages.unshift({role:"system",content:c})}(h),f))void 0!==h[a]&&delete h[a];if(delete h.system,g=(0,e.gK)(a),(g?.provider==="anthropic"||g?.upstreamProvider==="anthropic"||/(^|[-_/])(?:claude|anthropic)(?:[-_/]|$)/i.test(String(a||"")))&&(delete h.reasoning_effort,delete h.reasoning,delete h.thinking),Array.isArray(h?.messages))for(let a of h.messages)a&&"object"==typeof a&&(delete a.cache_control,Array.isArray(a.content)&&(a.content=a.content.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,signature:c,...d}=a;return d})));Array.isArray(h?.tools)&&(h.tools=h.tools.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,...c}=a;return c}));if(Array.isArray(h?.messages))for(let a of h.messages)a&&"assistant"===a.role&&"string"==typeof a.reasoning_content&&a.reasoning_content.length>8&&delete a.reasoning_content;return h}}},36732:(a,b,c)=>{c.d(b,{Rb:()=>h});var d=c(96179),e=c(12132);let f=new Set(["mimo-v2.6-pro","mimo-v2.6-flash","mimo-v2.6-pro-ultraspeed"]),g="__mimoAccountCookie";class h extends d.L{constructor(){super("xiaomi-mimo")}static isAccountRoute(a,b){let c,d,e=(d=(c=String(a||"")).indexOf("/"))>=0?c.slice(d+1):c;return!!f.has(e)&&!!(b?.[g]||b?.providerSpecificData?.mimoPassToken)}isAccountRoute(a,b){return h.isAccountRoute(a,b)}buildUrl(a,b,c=0,d=null){return this.isAccountRoute(a,d)?`${(0,e.resolveMimoServerBase)(d?.providerSpecificData)}/api/route/chat/completions`:super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0,c,d){return this.isAccountRoute(d,a)&&a?.[g]?{"Content-Type":"application/json",Accept:b?"text/event-stream":"application/json","User-Agent":e.MIMO_API_UA,Cookie:a[g]}:super.buildHeaders(a,b,c,d)}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(this.isAccountRoute(a,d)){let a=e.reasoning_effort||b?.reasoning_effort||b?.output_config?.effort;if(a){delete e.reasoning_effort;let b="xhigh"===String(a).toLowerCase()?"high":String(a).toLowerCase();e.output_config={...e.output_config||{},effort:b}}null==e.temperature&&(e.temperature=1),null==e.top_p&&(e.top_p=.95)}return e}async execute(a){let{model:b,credentials:c,proxyOptions:d=null}=a;if(!this.isAccountRoute(b,c))return super.execute(a);let f=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d);if(!f)return super.execute(a);c[g]=f;let h=await super.execute(a);if(401===h.response.status){(0,e.invalidateMimoAccountCookieCache)();let b=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d).catch(()=>null);if(b)return c[g]=b,super.execute(a)}return h}}},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,{getExecutor:()=>S});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(29166),y=c(20690),z=c(88331),A=c(53307),B=c(88198),C=c(9708),D=c(90926),E=c(26878),F=c(36732),G=c(49059),H=c(51349),I=c(85308),J=c(27617),K=c(71880),L=c(98665),M=c(93509),N=c(96179),O=c(83243),P=c(95089),Q=c(74161);c(74957);var R=a([o]);o=(R.then?(await R)():R)[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,"gemini-web":new x.dQ,"muse-web":new y._5,"veoaifree-web":new z.Q,"veo-free":new z.Q,"uc-web":new A.sh,"chatgpt-web":new B.RF,"ollama-local":new C.D,commandcode:new D.Ak,"xiaomi-tokenplan":new E.F,"xiaomi-mimo":new F.Rb,codearts:new J.Ay,deveco:new K.y,"codebuddy-cn":new G.v,"codebuddy-intl":new H.m,trae:new I.A,"trae-enterprise":new I.A("trae-enterprise"),zed:new L.A,windsurf:new M.Ay,"minimax-code":new O.M("minimax-code"),"minimax-code-global":new O.M("minimax-code-global"),"devin-cli":new P.c,zcode:new Q.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 S(a){return T[a]?T[a]:(U.has(a)||U.set(a,new N.L(a)),U.get(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(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+=`
267
245
 
268
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?`
269
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:`
@@ -296,20 +274,7 @@ ${e}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<h)continue;let
296
274
  ${a}`):"assistant"===c.role?b.push(`[Assistant]
297
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)}
298
276
 
299
- `));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}}},88198:(a,b,c)=>{c.d(b,{RF:()=>bj});var d=c(74957),e=c(77598),f=c(73024),g=c(76760),h=c(80479);let i={"image/gif":"gif","image/jpeg":"jpg","image/jpg":"jpg","image/png":"png","image/webp":"webp"};class j extends Error{constructor(a){super(a),this.name="ChatGptWebAttachmentError",this.status=400}}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function m(a,b){return((a??"").split(/[\\/]/).pop()?.replace(/[\u0000-\u001f\u007f]/g,"").trim()||b).slice(0,180)}function n(a){let b=/^data:([^;,]+);base64,/i.exec(a);return b?.[1]?.trim().toLowerCase()}async function o(a){if(a.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");let b=[],c=0;for(let d of a){let a="image"===d.kind?0x1400000:0x3200000;if(!d.ref.toLowerCase().startsWith("data:"))throw new j("ChatGPT Web attachments must be data URLs");let e=function(a){let b=a.indexOf(",");if(b<0)throw new j("Attachment data URL is malformed");let c=a.slice(5,b);if(!/(?:^|;)base64(?:;|$)/i.test(c))throw new j("Attachment data URL must be base64 encoded");let d=(c.split(";")[0]||"application/octet-stream").toLowerCase(),e=a.slice(b+1);if(e.length>0x6400000)throw new j("Attachment is too large");let f=e.replace(/\s/g,"");if(!f||f.length%4!=0||!/^[A-Za-z0-9+/]+={0,2}$/.test(f))throw new j("Attachment contains invalid base64 data");let g=Buffer.from(f,"base64");if(!g.length||g.toString("base64").replace(/=+$/,"")!==f.replace(/=+$/,""))throw new j("Attachment contains invalid base64 data");return{bytes:g,mimeType:d}}(d.ref);if(!e.bytes.length)throw new j("Attachment is empty");if(e.bytes.length>a)throw new j("Attachment is too large");if((c+=e.bytes.length)>0x3200000)throw new j("Combined ChatGPT Web attachments are too large");if("image"===d.kind){let a=function(a,b){let c=a.length>=8&&0x89504e47===a.readUInt32BE(0)?"png":a.length>=3&&255===a[0]&&216===a[1]?"jpeg":a.length>=3&&"GIF"===a.toString("ascii",0,3)?"gif":a.length>=12&&"RIFF"===a.toString("ascii",0,4)&&"WEBP"===a.toString("ascii",8,12)?"webp":null,d=(a.length<24||0x89504e47!==a.readUInt32BE(0)?null:{width:a.readUInt32BE(16),height:a.readUInt32BE(20)})??function(a){if(a.length<4||255!==a[0]||216!==a[1])return null;let b=2;for(;b+9<a.length;){if(255!==a[b]){b+=1;continue}let c=a[b+1];if(c>=192&&c<=195||c>=197&&c<=199||c>=201&&c<=203||c>=205&&c<=207)return{height:a.readUInt16BE(b+5),width:a.readUInt16BE(b+7)};if(216===c||1===c||c>=208&&c<=215){b+=2;continue}b+=2+a.readUInt16BE(b+2)}return null}(a)??(a.length<10||"GIF"!==a.toString("ascii",0,3)?null:{width:a.readUInt16LE(6),height:a.readUInt16LE(8)})??function(a){if(a.length<30||"RIFF"!==a.toString("ascii",0,4)||"WEBP"!==a.toString("ascii",8,12))return null;let b=a.toString("ascii",12,16);if("VP8X"===b)return a.length<30?null:{width:1+((a[24]|a[25]<<8|a[26]<<16)&0xffffff),height:1+((a[27]|a[28]<<8|a[29]<<16)&0xffffff)};if("VP8 "===b)return a.length<30?null:{width:16383&a.readUInt16LE(26),height:16383&a.readUInt16LE(28)};if("VP8L"===b){if(a.length<25)return null;let b=a.readUInt32LE(21);return{width:(16383&b)+1,height:(b>>14&16383)+1}}return null}(a),e="jpeg"===c?"image/jpeg":c?`image/${c}`:void 0;if(!e||!d)throw new j("Image attachment is undecodable or unsupported");if(b.startsWith("image/")&&b!==e&&("image/jpg"!==b||"image/jpeg"!==e))throw new j("Image attachment type does not match its data");if(Math.max(d.width,d.height)>11264||d.width*d.height>4e7)throw new j("Image attachment dimensions are too large");return{mimeType:e,width:d.width,height:d.height}}(e.bytes,d.mimeType??e.mimeType);b.push({kind:"image",name:d.name,mimeType:a.mimeType,size:e.bytes.length,data:e.bytes,width:a.width,height:a.height});continue}b.push({kind:"file",name:d.name,mimeType:d.mimeType??e.mimeType,size:e.bytes.length,data:e.bytes})}return b}function p(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function q(a){return structuredClone(a)}let r=new Set(["add","append","patch","replace"]),s=new Set(["__proto__","constructor","prototype"]);function t(a){if(Array.isArray(a)){for(let b of a)t(b);return}if(p(a))for(let[b,c]of Object.entries(a)){if(s.has(b))throw Error(`Unsafe object key in ChatGPT Web delta: ${b}`);t(c)}}function u(a){let b=[],c=a.replace(/\r\n?/g,"\n").split("\n"),d="message",e=[],f=!1,g=()=>{if(!f){d="message",e=[];return}let a=e.join("\n"),c="[DONE]"===a?{parsed:!1}:function(a){try{return{parsed:!0,value:JSON.parse(a)}}catch{return{parsed:!1}}}(a);b.push({event:d,data:a,...c.parsed?{json:c.value}:{},done:"[DONE]"===a}),d="message",e=[],f=!1};for(let a of c){if(""===a){g();continue}if(a.startsWith(":"))continue;let b=a.indexOf(":"),c=b>=0?a.slice(0,b):a,h=b>=0?a.slice(b+1):"";h.startsWith(" ")&&(h=h.slice(1)),"event"===c?d=h||"message":"data"===c&&(e.push(h),f=!0)}return g(),b}function v(a,b,c){if(c&&"-"===a)return b;if(!/^(?:0|[1-9]\d*)$/.test(a))throw Error(`Invalid ChatGPT Web array index: ${a}`);let d=Number(a);if(!Number.isSafeInteger(d)||d<0||d>(c?b:b-1))throw Error(`ChatGPT Web array index is out of bounds: ${a}`);return d}function w(a,b){if(t(b),null==a)return q(b);if("string"==typeof a&&"string"==typeof b)return a+b;if(Array.isArray(a)){let c=q(a);return Array.isArray(b)?c.push(...q(b)):c.push(q(b)),c}if(p(a)&&p(b))return{...q(a),...q(b)};throw Error(`Cannot append ChatGPT Web delta values (${typeof a}, ${typeof b})`)}function x(a){if("string"!=typeof a||!r.has(a))throw Error(`Unsupported delta operation: ${String(a)}`);return a}class y{constructor(){this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1}snapshot(){return q(this.document)}ingest(a){let b=u(a),c=!1;for(let a of b){if("delta_encoding"===a.event){if("v1"!==a.json)throw Error(`Unsupported ChatGPT Web delta encoding: ${String(a.json)}`);this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1;continue}"delta"===a.event&&(this.applyDelta(a.json),c=!0),a.done&&(this.streamDone=!0)}return{events:b,changed:c,done:this.streamDone}}applyDelta(a){if(!p(a))throw Error("ChatGPT Web delta payload must be an object");let b=void 0===a.p?this.lastPath:a.p,c=void 0===a.o?this.lastOperation:x(a.o);if("string"!=typeof b||null===c)throw Error("ChatGPT Web delta requires a current or inherited path and operation");this.lastPath=b,this.lastOperation=c,this.applyAt(b,c,a.v)}applyAt(a,b,c){t(c);let d=function(a){if(""===a)return[];if(!a.startsWith("/"))throw Error(`Invalid ChatGPT Web JSON Pointer: ${a}`);return a.slice(1).split("/").map(a=>{let b=a.replace(/~1/g,"/").replace(/~0/g,"~");if(s.has(b))throw Error(`Unsafe JSON Pointer segment: ${b}`);return b})}(a);if(0===d.length)return void this.applyAtRoot(b,c);let e=this.document;for(let b of d.slice(0,-1))if(Array.isArray(e))e=e[v(b,e.length,!1)];else if(p(e)&&Object.hasOwn(e,b))e=e[b];else throw Error(`ChatGPT Web delta path does not exist: ${a}`);let f=d[d.length-1];if(Array.isArray(e))return void this.applyToArray(e,f,b,c);if(!p(e))throw Error(`ChatGPT Web delta path is not mutable: ${a}`);this.applyToObject(e,f,b,c)}applyAtRoot(a,b){if("add"===a||"replace"===a){this.document=q(b);return}if("append"===a){this.document=w(this.document,b);return}if(!Array.isArray(b))throw Error("ChatGPT Web patch value must be an array");for(let a of b){if(!p(a)||"string"!=typeof a.p)throw Error("ChatGPT Web patch entry requires an explicit path and operation");this.applyAt(a.p,x(a.o),a.v)}}applyToArray(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"===c)return void a.splice(v(b,a.length,!0),0,q(d));let e=v(b,a.length,!1);a[e]="append"===c?w(a[e],d):q(d)}applyToObject(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"!==c&&!Object.hasOwn(a,b))throw Error(`ChatGPT Web delta target does not exist: ${b}`);a[b]="append"===c?w(a[b],d):q(d)}}let z="https://chatgpt.com",A=/^\/(?:cdn|unauth-mweb|auth-mweb)\/(?:assets|scripts)\/[A-Za-z0-9._-]+\.js$/,B=/(?:^|\.)oaiusercontent\.com$/i,C="__ninerouterChatGptFirstPartyV1",D="__ninerouterChatGptAbortV1",E="__ninerouterChatGptRequestV1",F=new Map,G=new WeakMap,H=null;function I(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function J(a,b){let c=a.lastIndexOf("export{");if(c<0)return null;let d=a.slice(c+7).match(RegExp(`(?:^|,)${I(b)} as ([A-Za-z_$][\\w$]*)`));return d?.[1]??null}function K(a){let b=new URL(a);if(b.origin!==z||!A.test(b.pathname))throw Error("ChatGPT Web exposed an invalid first-party asset URL");return b.toString()}async function L(a){let b=new AbortController,c=setTimeout(()=>b.abort(),2e4);c.unref?.();try{let c=await fetch(a,{signal:b.signal});if(!c.ok)throw Error("ChatGPT Web first-party asset could not be loaded");let d=Number(c.headers.get("content-length")??"0");if(Number.isFinite(d)&&d>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");let e=new Uint8Array(await c.arrayBuffer());if(e.byteLength>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");return new TextDecoder().decode(e)}finally{clearTimeout(c)}}function M(a,b){return a instanceof Error?a:Error(b)}async function N(a){let b=await a.evaluate(()=>({modulePreloadUrls:Array.from(document.querySelectorAll('link[rel="modulepreload"][href]'),a=>a.href),resourceUrls:performance.getEntriesByType("resource").map(a=>a.name)}));return Array.from(new Set([...b.resourceUrls,...b.modulePreloadUrls])).filter(a=>{try{let b=new URL(a);return b.origin===z&&A.test(b.pathname)}catch{return!1}})}async function O(a,b){let c,d;try{c=K(a)}catch(a){return b.lastError=M(a,"Invalid ChatGPT asset URL"),null}if(b.visited.has(c))return null;b.visited.add(c);let e=F.get(c);if(e)try{return{assetUrl:c,contract:await e}}catch{F.delete(c)}try{d=await L(c)}catch(a){return b.lastError=M(a,"ChatGPT asset discovery failed"),null}try{let a=function(a){let b=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1],c=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),d=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1],e=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1],f=c?.[1],g=c?.[2];if(!b||!f||!g||!d||!e)throw Error("ChatGPT Web first-party module contract was not found");let h={finalizeRequirements:J(a,b),proofManager:J(a,f),turnstileManager:J(a,g),requestClient:J(a,d),buildSentinelHeaders:J(a,e)};if(Object.values(h).some(a=>null===a))throw Error("ChatGPT Web first-party module contract exports were not found");return h}(d);return F.set(c,Promise.resolve(a)),H=c,{assetUrl:c,contract:a}}catch(f){for(let[a,e]of Object.entries(function(a){let b={},c=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1]??a.match(/finalizeChatRequirements\s*:\s*\(\)\s*=>\s*([A-Za-z_$][\w$]*)/)?.[1];c&&(b.finalizeRequirements=J(a,c)??c);let d=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),e=d?.[1]??a.match(/([A-Za-z_$][\w$]*)\.getEnforcementToken\([^)]*forceSync\s*:\s*!0/)?.[1],f=d?.[2];e&&(b.proofManager=J(a,e)??e),f&&(b.turnstileManager=J(a,f)??f);let g=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\.(?:safePost|post)\([`"]\/sentinel\/chat-requirements\/prepare[`"]/)?.[1];g&&(b.requestClient=J(a,g)??g);let h=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\s*=\s*[^;]{0,1200}OpenAI-Sentinel-Chat-Requirements-Token/)?.[1];h&&(b.buildSentinelHeaders=J(a,h)??h);let i=a.match(/(?:^|\}\),)([A-Za-z0-9_$]+):\(function\(e,t,n\)\{n\.d\(t,\{([^}]+)\}\);[\s\S]{0,1800}?async function ([A-Za-z_$][\w$]*)\(e\)\{let t=[A-Za-z_$][\w$]*\(\),n=[A-Za-z_$][\w$]*\(await e\(t\)\)/);if(i){let[,a,c,d]=i,e=c.match(RegExp(`(?:^|,)\\s*([A-Za-z_$][\\w$]*):\\(\\)=>${I(d)}(?:,|$)`))?.[1];e&&(b.resolveIntegrity=e,b.resolveIntegrityModule=a)}return b}(d)))b.partial[a]||(b.partial[a]=e,b.symbolAssetUrls[a]=c);if(b.partial.requestClient&&(b.partial.resolveIntegrity&&b.partial.resolveIntegrityModule||b.partial.finalizeRequirements&&b.partial.proofManager&&b.partial.buildSentinelHeaders)){let a={finalizeRequirements:b.partial.finalizeRequirements??"",proofManager:b.partial.proofManager??"",turnstileManager:b.partial.turnstileManager??b.partial.proofManager??"",requestClient:b.partial.requestClient,buildSentinelHeaders:b.partial.buildSentinelHeaders??"",...b.partial.resolveIntegrity?{resolveIntegrity:b.partial.resolveIntegrity,resolveIntegrityModule:b.partial.resolveIntegrityModule}:{}},d=b.symbolAssetUrls.finalizeRequirements??c;return H=d,{assetUrl:d,contract:a}}let a=Object.keys(b.partial);b.lastError=a.length?Error(`ChatGPT module discovery incomplete: found ${a.join(", ")}`):M(f,"ChatGPT module discovery failed");let e=function(a,b){let c=[],d=new Set,e=/["']\.\/([A-Za-z0-9_-]+\.js)["']/g;for(let f=e.exec(a);f;f=e.exec(a)){let a;try{a=K(new URL(`./${f[1]}`,b).toString())}catch{continue}d.has(a)||(d.add(a),c.push(a))}return c}(d,c);return b.queue.push(...e.filter(a=>!b.visited.has(a))),null}}async function P(a){for(;a.index<a.queue.length&&a.visited.size<512;){let b=a.queue[a.index];a.index+=1;let c=await O(b,a);if(c)return c}return null}async function Q(a){let b={queue:[...H?[H]:[]],visited:new Set,index:0,lastError:null,partial:{},symbolAssetUrls:{}},c=Date.now()+15e3;for(;Date.now()<=c&&b.visited.size<512;){b.queue.push(...await N(a));let d=await P(b);if(d)return d;Date.now()<c&&await new Promise(a=>setTimeout(a,250))}throw Error("ChatGPT Web first-party request module was not loaded")}async function R(a){let b,c,d,e,f,g;if(await a.evaluate(a=>{let b=globalThis;return"object"==typeof b[a]&&null!==b[a]},C))return;let{assetUrl:h,contract:i}=await Q(a),j=(b=JSON.stringify(K(h)),c=JSON.stringify(i),d=JSON.stringify(C),i.resolveIntegrity&&i.resolveIntegrityModule?`import * as upstream from ${b};const names = ${c};const modules = upstream.__webpack_modules__;const factory = modules?.[names.resolveIntegrityModule];if (typeof factory !== "function") throw new Error("ChatGPT integrity module factory is unavailable");const exports = {};const requireShim = id => {if (id === "TI" || id === "DD") return { a: () => crypto.randomUUID() };const real = modules[id];if (typeof real === "function") {const nested = {};real({}, nested, requireShim);return nested;}throw new Error("Unsupported ChatGPT integrity dependency: " + id);};requireShim.d = (target, definitions) => {for (const [name, getter] of Object.entries(definitions)) {Object.defineProperty(target, name, { enumerable: true, get: getter });}};factory({}, exports, requireShim);const resolveIntegrity = exports[names.resolveIntegrity];if (typeof resolveIntegrity !== "function") throw new Error("ChatGPT integrity resolver is unavailable");const sessionPromise = fetch("/api/auth/session", { credentials: "include" }).then(async response => {if (!response.ok) throw new Error("ChatGPT browser session is unavailable");return response.json();});const requestClient = {safePost: async (path, options = {}) => {const headers = new Headers(options.additionalHeaders || {});const session = await sessionPromise;if (typeof session?.accessToken === "string" && session.accessToken) {headers.set("Authorization", "Bearer " + session.accessToken);}headers.set("Accept", "application/json");if (!headers.has("Content-Type")) headers.set("Content-Type", "application/json");const body = typeof options.requestBody === "string" ? options.requestBody : JSON.stringify(options.requestBody ?? {});const response = await fetch("/backend-api" + path, {method: "POST", credentials: "include", headers, body, signal: options.signal});if (options.skipJsonTransform) return response;if (!response.ok) throw new Error("ChatGPT request failed with status " + response.status);return response.json();}};window[${d}] = { requestClient, resolveIntegrity };`:`import * as upstream from ${b};const names = ${c};window[${d}] = {finalizeRequirements: upstream[names.finalizeRequirements],proofManager: upstream[names.proofManager],turnstileManager: upstream[names.turnstileManager],requestClient: upstream[names.requestClient],buildSentinelHeaders: upstream[names.buildSentinelHeaders],resolveIntegrity: names.resolveIntegrity ? upstream[names.resolveIntegrity] : undefined};`),k=(e=[],f=a=>{let b=a.url();(b===h||b.startsWith("blob:"))&&e.push({kind:"requestfailed",detail:`${b} failed: ${a.failure()?.errorText??"unknown error"}`})},g=a=>{e.push({kind:"pageerror",detail:a instanceof Error?a.message:String(a)})},a.on("requestfailed",f),a.on("pageerror",g),{signals:e,dispose:()=>{a.off("requestfailed",f),a.off("pageerror",g)}});try{await a.evaluate(({bridgeKey:a,moduleSource:b})=>new Promise((c,d)=>{let e=globalThis;if("object"==typeof e[a]&&null!==e[a])return void c();let f="",g=new AbortController;document.addEventListener("securitypolicyviolation",a=>{f||(f=`${a.violatedDirective} blocked ${a.blockedURI}`)},{signal:g.signal});let h=URL.createObjectURL(new Blob([b],{type:"text/javascript"})),i=document.createElement("script");i.type="module",i.src=h,i.onload=()=>{URL.revokeObjectURL(h),g.abort(),"object"==typeof e[a]&&null!==e[a]?c():d(Error("ChatGPT Web first-party bridge did not initialize"))},i.onerror=()=>{URL.revokeObjectURL(h),g.abort(),d(Error(f?`csp: ${f}`:"no in-page reason"))},document.head.appendChild(i)}),{bridgeKey:C,moduleSource:j})}catch(c){let a=c instanceof Error?c.message:String(c),b=[...k.signals];throw a.startsWith("csp: ")?b.unshift({kind:"csp",detail:a.slice(5)}):a&&"no in-page reason"!==a&&b.push({kind:"pageerror",detail:a}),Error(function(a){let b="ChatGPT Web first-party bridge module failed to load";if(0===a.length)return`${b} (no CSP violation, failed request or page error was captured)`;let c=a.find(a=>"csp"===a.kind)??a.find(a=>"requestfailed"===a.kind)??a[0];return`${b}: ${c.kind}: ${c.detail}`}(b))}finally{k.dispose()}}async function S(a,b,c){return a.evaluate(async({abortKey:a,attachments:b,bridgeKey:c,requestId:d})=>{let e=globalThis,f=e[c];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a]??={},h=new AbortController;g[d]=h;let i=[];for(let a of b){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files",{requestBody:{file_name:a.name,file_size:a.size,use_case:b,timezone_offset_min:new Date().getTimezoneOffset(),reset_rate_limits:!1,supports_direct_azure_multipart:!0,mime_type:a.mimeType,entry_surface:"chat_composer",selection_method:"file_picker",client_resolved_mime_type:a.mimeType,mime_resolution_source:"filename_extension",store_in_library:!1},signal:h.signal}),d=c;if(c instanceof Response){if(!c.ok){let a=c.status;throw await c.body?.cancel().catch(()=>{}),Error(`ChatGPT Web file registration failed with status ${a}`)}d=await c.json()}if(!d||"object"!=typeof d||"string"!=typeof d.file_id||"string"!=typeof d.upload_url)throw Error("ChatGPT Web file registration returned an invalid response");i.push({fileId:d.file_id,uploadUrl:d.upload_url})}return i},{abortKey:D,attachments:c.map(({kind:a,mimeType:b,name:c,size:d})=>({kind:a,mimeType:b,name:c,size:d})),bridgeKey:C,requestId:b})}async function T(a,b){for(let c of a){let a=await fetch(function(a){let b=new URL(a);if("https:"!==b.protocol||!B.test(b.hostname))throw Error("ChatGPT Web returned an invalid upload destination");return b.toString()}(c.uploadUrl),{method:"PUT",headers:{Accept:"application/json, text/plain, */*","Content-Type":c.attachment.mimeType,"x-ms-blob-type":"BlockBlob","x-ms-version":"2020-04-08"},body:new Uint8Array(c.attachment.data),signal:b??void 0});if(!a.ok)throw Error(`ChatGPT Web attachment upload failed with status ${a.status}`)}}async function U(a,b,c){await a.evaluate(async({abortKey:a,bridgeKey:b,registered:c,requestId:d})=>{let e=globalThis,f=e[b];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a],h=g?.[d];if(!h)throw Error("ChatGPT Web request cancellation scope is unavailable");for(let a of c){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files/process_upload_stream",{requestBody:{file_id:a.fileId,use_case:b,index_for_retrieval:"image"!==a.kind,file_name:a.name,entry_surface:"chat_composer",metadata:{store_in_library:!1,is_temporary_chat:!0,library_eligibility_reason:"eligible",is_project_thread:!1}},signal:h.signal,skipJsonTransform:!0});if(c instanceof Response){let a=c.status,b=c.ok;if(await c.text(),!b)throw Error(`ChatGPT Web file processing failed with status ${a}`)}}},{abortKey:D,bridgeKey:C,registered:c,requestId:b})}async function V(a,b,c,d){let e=function(a){if("free"===a.kind)return{model:"auto",reason:a.thinkEnabled};let b="GPT-5.6 Sol"===a.modelLabel?"gpt-5-6":"gpt-5-5";return 4===a.effortIndex?{model:`${b}-pro`,reason:!1}:{model:b,reason:a.effortIndex>0}}(b.selection);await a.evaluate(({mode:a,prompt:b,registered:c,requestId:d,requestKey:e,pluginHints:f})=>{let g=globalThis,h=c.filter(a=>"image"===a.kind),i=c.map(a=>({id:a.fileId,size:a.size,name:a.name,mime_type:a.mimeType,..."image"===a.kind?{width:a.width,height:a.height}:{non_library_my_files_injest_upload:!0},source:"local",is_big_paste:!1})),j=[...a.reason?["reason"]:[],...Array.isArray(f)?f:[]],k={...j.length?{system_hints:j}:{},...i.length?{attachments:i}:{},serialization_metadata:{custom_symbol_offsets:[]}},l=h.length?{content_type:"multimodal_text",parts:[...h.map(a=>({content_type:"image_asset_pointer",asset_pointer:`sediment://${a.fileId}`,size_bytes:a.size,width:a.width,height:a.height})),b]}:{content_type:"text",parts:[b]};(g[e]??={})[d]={body:{action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:l,metadata:k}],parent_message_id:"client-created-root",model:a.model,timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,history_and_training_disabled:!0,conversation_mode:{kind:"primary_assistant"},system_hints:j,supports_buffering:!0,supported_encodings:["v1"]}}},{mode:e,prompt:b.prompt,registered:d,requestId:c,requestKey:E,pluginHints:Array.isArray(b.pluginHints)?b.pluginHints:[]})}async function W(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b],g=[f?.finalizeRequirements,f?.proofManager?.getEnforcementToken,f?.turnstileManager?.getEnforcementToken,f?.buildSentinelHeaders].every(a=>"function"==typeof a),h="function"==typeof f?.resolveIntegrity&&"function"==typeof f?.requestClient?.safePost;if(!g&&!h)throw Error("ChatGPT Web first-party challenge bridge is incomplete");let i=e[a]?.[c],j=e[d]?.[c];if(!i||!j)throw Error("ChatGPT Web request scope is unavailable");if(h){let a=await f.resolveIntegrity(async a=>f.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a},signal:i.signal}));j.additionalHeaders=a?.headers??{}}else{let a=await f.finalizeRequirements(!1,"none");if(i.signal.aborted)throw new DOMException("Aborted","AbortError");let[b,c]=await Promise.all([f.proofManager.getEnforcementToken(a,{forceSync:!0}),f.turnstileManager.getEnforcementToken(a)]);j.additionalHeaders=f.buildSentinelHeaders(a,c,b,null,null,null)}},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function X(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b]?.requestClient,g=e[a]?.[c],h=e[d]?.[c];if("function"!=typeof f?.safePost||!g||!h)throw Error("ChatGPT Web conversation request scope is unavailable");let i=await f.safePost("/f/conversation",{requestBody:h.body,additionalHeaders:h.additionalHeaders,signal:g.signal,skipJsonTransform:!0});if(!(i instanceof Response))throw Error("ChatGPT Web conversation returned an invalid response");if(!i.ok){let a=i.status,b="";try{let a=await i.json(),c=a.detail&&"object"==typeof a.detail?a.detail:a.error&&"object"==typeof a.error?a.error:a,d=c.code??c.message??c.type;"string"==typeof d&&(b=d.slice(0,160))}catch{await i.body?.cancel().catch(()=>{})}throw Error(`ChatGPT Web conversation failed with status ${a}${b?` (${b})`:""}`)}h.response=i},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function Y(a,b){return a.evaluate(async({requestId:a,requestKey:b,responseLimit:c})=>{let d=globalThis,e=d[b]?.[a],f=e?.response;if(!(f instanceof Response))throw Error("ChatGPT Web conversation response is unavailable");let g=f.body?.getReader();if(!g)throw Error("ChatGPT Web conversation returned an empty stream");let h=new TextDecoder,i=[],j=0;try{for(;;){let{done:a,value:b}=await g.read();if(a)break;if(b){if((j+=b.byteLength)>c)throw await g.cancel().catch(()=>{}),Error("ChatGPT Web conversation response exceeded the size limit");i.push(h.decode(b,{stream:!0}))}}i.push(h.decode())}finally{try{g.releaseLock()}catch{}}return i.join("")},{requestId:b,requestKey:E,responseLimit:0x1000000})}async function Z(a,b,c,d){let e=d.map(({attachment:a,fileId:b})=>({fileId:b,kind:a.kind,mimeType:a.mimeType,name:a.name,size:a.size,width:a.width,height:a.height}));return await U(a,c,e),await V(a,b,c,e),await W(a,c),await X(a,c),Y(a,c)}async function $(a,b){await a.evaluate(({abortKey:a,requestId:b,requestKey:c})=>{let d=globalThis,e=d[a],f=d[c];delete e?.[b],delete f?.[b]},{abortKey:D,requestId:b,requestKey:E}).catch(()=>{})}async function _(a,b){await a.evaluate(({abortKey:a,requestId:b})=>{let c=globalThis[a];c?.[b]?.abort()},{abortKey:D,requestId:b}).catch(()=>{})}async function aa(a,b){let c=G.get(a)??Promise.resolve(),d=()=>{},e=new Promise(a=>{d=a}),f=c.catch(()=>{}).then(()=>e);G.set(a,f),await c.catch(()=>{});try{return await b()}finally{d(),G.get(a)===f&&G.delete(a)}}async function ab(a,b,c={}){let d=c.requestId??crypto.randomUUID();return aa(a,async()=>{if(c.signal?.aborted)throw new DOMException("Aborted","AbortError");let e=()=>{_(a,d)};c.signal?.addEventListener("abort",e,{once:!0});try{await R(a);let e=(await S(a,d,b.attachments)).map((a,c)=>({...a,attachment:b.attachments[c]}));return await T(e,c.signal),await Z(a,b,d,e)}finally{c.signal?.removeEventListener("abort",e),await $(a,d)}})}let ac="https://chatgpt.com";function ad(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ae(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web browser turn requires a non-empty prompt");return a}function af(a){let b;try{b=new URL(a)}catch{throw Error("ChatGPT Web browser session requires a valid URL")}if(b.origin!==ac)throw Error("ChatGPT Web browser session requires the first-party chatgpt.com origin")}function ag(a,b,c){if(!ad(a)||!ad(a.message))return null;let d=a.message,e=ad(d.author)?d.author:null,f=ad(d.content)?d.content:null,g=Array.isArray(f?.parts)?f.parts:[];return e?.role==="assistant"&&f?.content_type==="text"&&g.every(a=>"string"==typeof a)&&"finished_successfully"===d.status&&!0===d.end_turn?{conversationId:b,turnExchangeId:c,text:g.join(""),status:d.status,endTurn:!0}:null}class ah{constructor(a,b={}){this.page=a,this.pageUrl=b.pageUrl??"https://chatgpt.com/?temporary-chat=true",this.selection=b.selection,this.closePageOnCleanup=!0===b.closePageOnCleanup,this.executePageRequest=b.executePageRequest??ab}url(){return this.pageUrl}async start(){af(this.pageUrl);let a=async()=>{this.closePageOnCleanup&&await this.page.close().catch(()=>{})};try{let b=!1;try{b=new URL(this.page.url()).origin===ac}catch{b=!1}return b||await this.page.goto(this.pageUrl,{waitUntil:"domcontentloaded",timeout:3e4}),af(this.page.url()),a}catch(b){throw await a(),b}}async submitPrompt(a){if(!this.selection)throw Error("ChatGPT Web direct request requires a model selection");return af(this.page.url()),this.executePageRequest(this.page,{prompt:ae(a.prompt),attachments:a.attachments,selection:this.selection,pluginHints:a.pluginHints??[]},{signal:a.signal})}}async function ai(a,b){let c;if(b.signal?.aborted)throw Error("ChatGPT Web browser turn aborted");let d=ae(b.prompt);af(a.url());let e=b.timeoutMs??18e4;if(!Number.isFinite(e)||e<=0)throw Error("ChatGPT Web browser turn requires a positive timeout");let f=null,g=new Promise((a,b)=>{c=setTimeout(()=>b(Error("ChatGPT Web browser turn timed out")),e),c.unref?.()});try{let c=(async()=>(f=await a.start(),function(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web direct conversation returned an empty stream");let b=new y,c="",d="",e=null;for(let f of u(a))ad(f.json)&&("string"==typeof f.json.conversation_id&&(c=f.json.conversation_id),"string"==typeof f.json.turn_exchange_id&&(d=f.json.turn_exchange_id)),"delta_encoding"===f.event&&(e=ag(b.snapshot(),c,d)??e,b=new y),b.ingest(function(a){let b="message"===a.event?"":`event: ${a.event}
300
- `;return`${b}data: ${a.data}
301
-
302
- `}(f)),e=ag(b.snapshot(),c,d)??e;let f=ag(b.snapshot(),c,d)??e;return f?{...f,conversationId:c,turnExchangeId:d}:function(a,b,c){let d=ag(a,b,c);if(d)return d;if(!ad(a)||!ad(a.message)){let b=ad(a)?Object.keys(a).sort().join(","):"non-object";throw Error(`ChatGPT Web assistant document is incomplete (root=${b})`)}let e=a.message,f=ad(e.author)?e.author:null,g=ad(e.content)?e.content:null,h=Array.isArray(g?.parts)?g.parts:[],i=JSON.stringify({messageKeys:Object.keys(e).sort(),role:f?.role??null,contentType:g?.content_type??null,partCount:h.length,partTypes:h.map(a=>typeof a),status:e.status??null,endTurn:e.end_turn??null});throw Error(`ChatGPT Web assistant document is incomplete (${i})`)}(b.snapshot(),c,d)}(await a.submitPrompt({prompt:d,attachments:b.attachments??[],pluginHints:b.pluginHints??[],signal:b.signal}))))();return c.catch(()=>{}),await Promise.race([c,g])}finally{clearTimeout(c),await f?.()}}var aj=c(14229),ak=c(25360);let al="https://chatgpt.com/?temporary-chat=true",am=["chatgpt.com","openai.com"];function an(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ao(a){let b=a.toLowerCase().replace(/^\./,"");return am.some(a=>b===a||b.endsWith(`.${a}`))}function ap(a){if(!an(a)||!Array.isArray(a.cookies)||!Array.isArray(a.origins))throw Error("ChatGPT Web browser storage state is invalid");for(let b of a.cookies){if(!an(b)||"string"!=typeof b.name||!b.name||"string"!=typeof b.value||"string"!=typeof b.domain||"string"!=typeof b.path||!b.path.startsWith("/")||"number"!=typeof b.expires||!Number.isFinite(b.expires)||"boolean"!=typeof b.httpOnly||"boolean"!=typeof b.secure||!["Strict","Lax","None"].includes(String(b.sameSite)))throw Error("ChatGPT Web browser storage state contains an invalid cookie");if(!ao(b.domain))throw Error("ChatGPT Web browser storage state contains a foreign cookie domain")}for(let b of a.origins)!function(a){let b;if(!an(a)||"string"!=typeof a.origin||!Array.isArray(a.localStorage))throw Error("ChatGPT Web browser storage state contains an invalid origin");try{b=new URL(a.origin)}catch{throw Error("ChatGPT Web browser storage state contains an invalid origin")}if("https:"!==b.protocol||!ao(b.hostname))throw Error("ChatGPT Web browser storage state contains a foreign origin");for(let b of a.localStorage)if(!an(b)||"string"!=typeof b.name||"string"!=typeof b.value)throw Error("ChatGPT Web browser storage state contains invalid local storage")}(b);let b=structuredClone(a);for(let a of b.cookies)a.name.startsWith("__Host-")&&(a.domain=a.domain.replace(/^\./,""),a.path="/",a.secure=!0);return b}function aq(a){if(null==a)return"";if("string"==typeof a)return a;if(!Array.isArray(a))throw Error("ChatGPT Web clean-room adapter supports text content only");let b=[];for(let c of a){if(an(c)&&("text"===c.type||"input_text"===c.type)&&"string"==typeof c.text){b.push(c.text);continue}if(!("string"==typeof c?c.toLowerCase().startsWith("data:image/"):!!k(c)&&["file","image","image_url","input_file","input_image"].includes(l(c.type)?.toLowerCase()??"")))throw Error("ChatGPT Web clean-room adapter received unsupported content")}return b.join("")}function ar(a){return"string"==typeof a.reasoning_effort?a.reasoning_effort.toLowerCase():an(a.reasoning)&&"string"==typeof a.reasoning.effort?a.reasoning.effort.toLowerCase():null}function as(a){if(null===a||"medium"===a)return 1;if(["none","off","minimal","low"].includes(a))return 0;if("high"===a)return 2;if("xhigh"===a||"max"===a)return 3;throw Error(`ChatGPT Web clean-room adapter does not support reasoning effort ${a}`)}function at(a){let b=a.providerSpecificData,c=b?.storageState??a.apiKey;if("string"==typeof c){let a=c.trim();if(a.startsWith("{"))try{return ap(JSON.parse(a))}catch{throw Error("ChatGPT Web browser storage state JSON is invalid")}let b=a.trim().replace(/^Cookie:\s*/i,"");if(!b)throw Error("ChatGPT Web Cookie header is empty");if(!b.includes("="))return ap({cookies:[{name:"__Secure-next-auth.session-token",value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:!0,secure:!0,sameSite:"Lax"}],origins:[]});let d=b.split(/;\s*/).map(a=>{let b=a.indexOf("=");if(b<=0)throw Error("ChatGPT Web Cookie header contains an invalid cookie");return[a.slice(0,b).trim(),a.slice(b+1)]});if(!d.some(([a])=>/^__Secure-next-auth\.session-token(?:\.\d+)?$/.test(a))){if(b.includes(";")||b.includes("="))throw Error("ChatGPT Web Cookie header is missing __Secure-next-auth.session-token");d.splice(0,d.length,["__Secure-next-auth.session-token",b])}return ap({cookies:d.map(([a,b])=>({name:a,value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:a.startsWith("__Secure-")||a.startsWith("__Host-"),secure:!0,sameSite:"Lax"})),origins:[]})}return ap(c)}function au(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function av(a){let b=process.env;return[a,b.CHATGPT_WEB_CHROME_PATH,b.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",...b.PROGRAMFILES?[(0,g.join)(b.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...b["PROGRAMFILES(X86)"]?[(0,g.join)(b["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...b.LOCALAPPDATA?[(0,g.join)(b.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,f.existsSync)(a.trim())))}async function aw(a){let b=(0,h.gZ)(a.proxyOptions),c=function({connectionId:a,storageState:b,proxy:c}){return(0,e.createHash)("sha256").update(a).update("\0").update(JSON.stringify(b)).update("\0").update(c?c.server:"").update("\0").update(c?.bypass||"").digest("hex")}({connectionId:a.connectionId,storageState:a.storageState,proxy:b}),d=await (0,h.qG)(`chatgpt-web-cleanroom:${c}`,{cookieDomain:"chatgpt.com",storageState:a.storageState,userAgent:a.userAgent,locale:a.locale,timezone:a.timezone,warmupUrl:al,headless:!0,executablePath:a.chromeExecutablePath,...b?{proxy:b}:{}}),f=d.warmupPage&&!d.warmupPage.isClosed()?d.warmupPage:await (0,h.we)(d);return d.warmupPage!==f&&(d.warmupPage=f),new ah(f,{pageUrl:al,selection:a.selection,closePageOnCleanup:!1})}function ax(a,b,c,d={}){let f=d.id??`chatcmpl-${(0,e.randomUUID)()}`,g=d.created??Math.floor(Date.now()/1e3);return c?new Response([{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{content:b.text},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}].map(a=>`data: ${JSON.stringify(a)}
303
-
304
- `).join("")+"data: [DONE]\n\n",{headers:{"Content-Type":"text/event-stream; charset=utf-8"}}):Response.json({id:f,object:"chat.completion",created:g,model:a,choices:[{index:0,message:{role:"assistant",content:b.text},finish_reason:"stop"}]})}async function ay(a){let b=function(a,b){if(!an(b))throw Error("ChatGPT Web clean-room adapter requires an object body");let{prompt:c,hasTools:d,requestedTools:e}=function(a){let b,c;if(!Array.isArray(a.messages)||0===a.messages.length)throw Error("ChatGPT Web clean-room adapter requires messages");let d=a.messages[0],e=1===a.messages.length&&an(d)&&"user"===d.role&&!(Array.isArray(a.tools)&&a.tools.length>0),f=!1;if(e)b=aq(d.content);else{let d=(0,aj.S$)(a,a.messages);f=d.hasTools,c=d.requestedTools,b=(function(a){let b=new Map,c=[],d=[],e=!1;for(let f of a){if(!an(f)||"string"!=typeof f.role)throw Error("ChatGPT Web clean-room adapter received an invalid message");let a=aq(f.content).trim();if("system"===f.role||"developer"===f.role){a&&c.push(a);continue}if("user"===f.role){a&&d.push(`User:
305
- ${a}`);continue}if("assistant"===f.role){let c=[];for(let d of(a&&c.push(a),Array.isArray(f.tool_calls)?f.tool_calls:[])){let a="string"==typeof d?.function?.name?d.function.name:"",f=d?.function?.arguments,g="string"==typeof f&&f?f:JSON.stringify(f??{});d?.id&&b.set(d.id,a),c.push(`<tool>{"name": ${JSON.stringify(a)}, "arguments": ${g}}</tool>`),e=!0}c.length&&d.push(`Assistant:
306
- ${c.join("\n")}`);continue}if("tool"===f.role){let c=f.tool_call_id&&b.get(f.tool_call_id)||f.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),e=!0;continue}throw Error(`ChatGPT Web clean-room adapter does not support the "${f.role}" role`)}return e&&d.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."),[...c,...d]})(d.effectiveMessages).join("\n\n")}if(!b.trim())throw Error("ChatGPT Web clean-room adapter requires non-empty text");if(new TextEncoder().encode(b).byteLength>4194304)throw Error("ChatGPT Web clean-room adapter prompt is too large");return{prompt:b,hasTools:f,requestedTools:c}}(b),f=function(a){let b=[...function(a){let b=[];for(let[c,d]of(a||[]).entries())if(Array.isArray(d?.content))for(let[a,e]of d.content.entries()){let d;if(!k(e))continue;let f=l(e.type)?.toLowerCase();if("image_url"===f&&k(e.image_url)?d=l(e.image_url.url):"input_image"===f?d=l(e.image_url??e.url):"image"===f&&"string"==typeof e.source&&(d=l(e.source)),!d)continue;let g=l(e.filename??e.name),h=b.length+1,j=n(d);b.push({kind:"image",ref:d,name:m(g,`image-${h}.${function(a){let b=n(a);if(b&&i[b])return i[b];try{let b=/\.([a-zA-Z0-9]{2,5})$/.exec(new URL(a).pathname);if(b&&["gif","jpeg","jpg","png","webp"].includes(b[1].toLowerCase()))return b[1].toLowerCase().replace("jpeg","jpg")}catch{}return"png"}(d)}`),...j?{mimeType:j}:{},messageIndex:c,partIndex:a})}return b}(a),...function(a){let b=[];for(let c of a||[])if(Array.isArray(c?.content))for(let a of c.content){if(!k(a))continue;let c=l(a.type)?.toLowerCase();("file"===c||"input_file"===c)&&b.push(function(a){let b=k(a.file)?a.file:a,c=l(b.file_data??a.file_data),d=l(b.mime_type??a.mime_type)?.toLowerCase(),e=c;if(!e)throw new j("ChatGPT Web file input requires base64 file_data");return e.toLowerCase().startsWith("data:")||(e=`data:${d??"application/octet-stream"};base64,${e}`),{kind:"file",ref:e,name:m(l(b.filename??a.filename),"attachment.bin"),...d?{mimeType:d}:{}}}(a))}return b}(a)];if(b.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");return b}(b.messages);return{prompt:c,selection:function(a,b){let c=a.trim().toLowerCase().replace(/^chatgpt-web\//,"").replace(/^cgpt-web\//,"").replace(/\./g,"-");if("gpt-5-6-luna-free"===c)return{kind:"free",thinkEnabled:!1};if("gpt-5-6-luna-free-thinking"===c)return{kind:"free",thinkEnabled:!0};if("gpt-5-6-pro"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:4};if("gpt-5-6-instant"===c||"gpt-5-6"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0};if(["gpt-5-6-thinking","gpt-5-6-sol"].includes(c))return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:as(ar(b))};if("gpt-5-5-pro"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:4};if("gpt-5-5-instant"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:0};if(["gpt-5-5","gpt-5-5-thinking"].includes(c))return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:as(ar(b))};throw Error(`ChatGPT Web clean-room adapter received an unsupported model: ${a}`)}(a,b),attachments:f,hasTools:d,requestedTools:e}}(a.model,a.body),c=await o(b.attachments),d=at(a.credentials),f=au(a.credentials.connectionId);if(!f)throw Error("ChatGPT Web clean-room adapter requires a connection ID");let g=a.credentials.providerSpecificData,h=await aw({connectionId:f,storageState:d,selection:b.selection,userAgent:au(g?.customUserAgent),locale:au(g?.locale),timezone:au(g?.timezone),chromeExecutablePath:av(au(g?.chromeExecutablePath)),proxyOptions:a.proxyOptions||null}),p=await ai(h,{prompt:b.prompt,attachments:c,pluginHints:function(a){if(null==a)return[];let b=Array.isArray(a)?a:"string"==typeof a?a.split(/[,\n]/):[],c=new Set,d=[];for(let a of b){let b="string"==typeof a?a.trim():"";!/^plugin:[A-Za-z0-9_-]+$/.test(b)||c.has(b)||(c.add(b),d.push(b))}return d}(g?.pluginHints),signal:a.signal});if(!b.hasTools)return ax(a.model,p,a.stream);let q=ax(a.model,p,!1);return(0,ak.N)(q,b.requestedTools,a.stream,{idSeed:"cgpt",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:a.model})}let az=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aA=a=>new Promise(b=>setTimeout(b,a));class aB extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}async function aC(a){return a.evaluate(async a=>{let b=globalThis[a],c=[b?.finalizeRequirements,b?.proofManager?.getEnforcementToken,b?.turnstileManager?.getEnforcementToken,b?.buildSentinelHeaders].every(a=>"function"==typeof a),d="function"==typeof b?.resolveIntegrity&&"function"==typeof b?.requestClient?.safePost;if(!c&&!d)throw Error("ChatGPT Web first-party challenge bridge is incomplete");if(d){let a=await b.resolveIntegrity(async a=>b.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a}}));return{...a?.headers??{}}}let e=await b.finalizeRequirements(!1,"none"),[f,g]=await Promise.all([b.proofManager.getEnforcementToken(e,{forceSync:!0}),b.turnstileManager.getEnforcementToken(e)]);return b.buildSentinelHeaders(e,g,f,null,null,null)},C)}async function aD(a){return a.evaluate(async()=>{let a=await fetch("/api/auth/session",{credentials:"include"});if(!a.ok)throw Error("ChatGPT Web browser session is unavailable");let b=await a.json();if("string"!=typeof b?.accessToken||!b.accessToken)throw Error("ChatGPT Web browser session has no access token");return b.accessToken})}async function aE(a,b,{sizeHint:c,signal:d}){let e=await aC(a),f=await aD(a);return a.evaluate(async({accessToken:a,headers:b,prompt:c,sizeHint:d,maxBytes:e})=>{let f={...b,Authorization:`Bearer ${a}`},g=async(a,b)=>{let c=a.body?.getReader();if(!c)return"";let d=new TextDecoder,e=[],f=0;try{for(;;){let{done:a,value:g}=await c.read();if(a)break;if(g){if((f+=g.byteLength)>b)throw await c.cancel().catch(()=>{}),Error(`response exceeded ${b} bytes`);e.push(d.decode(g,{stream:!0}))}}e.push(d.decode())}finally{try{c.releaseLock()}catch{}}return e.join("")},h=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},i=await h("/backend-api/f/conversation/prepare",{method:"POST",credentials:"include",headers:{...f,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"success",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:crypto.randomUUID(),author:{role:"user"},content:{content_type:"text",parts:[c]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4);if(!i.ok)throw Error(`prepare failed with status ${i.status}`);let j=(await i.json()).conduit_token||"",k=d?`${c} (aspect ratio ${d})`:c,l=new AbortController,m=setTimeout(()=>l.abort(),9e4),n="";try{let a=await fetch("/backend-api/f/conversation",{method:"POST",credentials:"include",signal:l.signal,headers:{...f,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"X-Oai-Turn-Trace-Id":crypto.randomUUID()},body:JSON.stringify({action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"sent",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})});if(!a.ok){let b=a.status;throw await a.body?.cancel().catch(()=>{}),Error(`conversation failed with status ${b}`)}try{n=await g(a,e)}catch(a){if(!l.signal.aborted&&!/exceeded/.test(String(a?.message||"")))throw a}}finally{clearTimeout(m),l.abort()}let o=(n.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",p=[],q=[],r=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let a of n.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))r(p,a[1]);for(let a of n.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))r(p,a[0]);for(let a of n.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))r(q,a[1]);return{conversationId:o,fileIds:p,sedimentIds:q}},{accessToken:f,headers:e,prompt:b,sizeHint:c,maxBytes:0x1000000})}async function aF(a,b,c,d,{signal:e,log:f}){let g=Date.now(),h=[...d.fileIds],i=[...d.sedimentIds];for(await aA(8e3);;){if(e?.aborted)throw Error("Request aborted");if(Date.now()-g>24e4)throw new aB("ChatGPT image generation timed out",504);let d=await a.evaluate(async({accessToken:a,conversationId:b,maxBytes:c})=>{let d,e=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},f=await e(`/backend-api/conversation/${b}`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},3e4);if(!f.ok)return{status:f.status};if(Number(f.headers.get("content-length")??"0")>c)return{status:413};let g=await f.text();if(g.length>c)return{status:413};try{d=JSON.parse(g)}catch{return{status:502}}let h=[],i=[],j=(a,b)=>{b&&!a.includes(b)&&a.push(b)},k=a=>{if(Array.isArray(a))return a.some(k);if(a&&"object"==typeof a){if("image_asset_pointer"===String(a.content_type||""))return!0;let b=String(a.asset_pointer||"");return!!(b.startsWith("file-service://")||b.startsWith("sediment://"))||Object.values(a).some(k)}return!1},l=a=>{if("string"==typeof a){for(let b of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))j(h,b[1]);for(let b of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))j(h,b[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))j(i,b[1]);return}Array.isArray(a)?a.forEach(l):a&&"object"==typeof a&&Object.values(a).forEach(l)},m="";for(let a of Object.values(d.mapping||{})){let b=(a||{}).message||{},c=String(b.author?.role||"").toLowerCase();if("tool"!==c&&"assistant"!==c)continue;let d=b.metadata||{},e="image_gen"===d.async_task_type,f=k(b.content)||k(d);if(("assistant"!==c||e||f)&&(l({content:b.content,metadata:d}),"assistant"===c&&d.is_error&&b.content?.content_type==="text")){let a=(Array.isArray(b.content.parts)?b.content.parts:[]).filter(a=>"string"==typeof a).join("");a&&(m=a.slice(0,300))}}return{status:200,fileIds:h,sedimentIds:i,errorText:m}},{accessToken:b,conversationId:c,maxBytes:0x2000000});if(200!==d.status)f?.debug?.("CGPT-WEB-IMG",`conversation poll status ${d.status}, retrying`);else{for(let a of d.fileIds)h.includes(a)||h.push(a);for(let a of d.sedimentIds)i.includes(a)||i.push(a);if(h.length>0||i.length>0)return{fileIds:h.filter(a=>"file_upload"!==a),sedimentIds:i};if(d.errorText&&az.test(d.errorText))throw new aB(`ChatGPT refused the image request: ${d.errorText}`,400)}await aA(5e3)}}async function aG(a,b,c,{fileIds:d,sedimentIds:e}){for(let c of d){let d=await a.evaluate(async({accessToken:a,fileId:b})=>{let c=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},d=await c(`/backend-api/files/${b}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!d.ok)return{status:d.status};let e=await d.json(),f=e.download_url||e.url||"";if(!f)return{status:404};let g=await c(f,{},9e4);if(!g.ok)return{status:g.status};let h=await g.blob(),i=new Uint8Array(await h.arrayBuffer()),j="";for(let a=0;a<i.length;a+=32768)j+=String.fromCharCode(...i.subarray(a,a+32768));return{status:200,mime:h.type||"image/png",b64:btoa(j)}},{accessToken:b,fileId:c});if(200===d.status&&d.b64)return{b64:d.b64,mime:d.mime}}for(let d of e){let e=await a.evaluate(async({accessToken:a,conversationId:b,sedimentId:c})=>{let d=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},e=await d(`/backend-api/conversation/${b}/attachment/${c}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!e.ok)return{status:e.status};let f=await e.json(),g=f.download_url||f.url||"";if(!g)return{status:404};let h=await d(g,{},9e4);if(!h.ok)return{status:h.status};let i=await h.blob(),j=new Uint8Array(await i.arrayBuffer()),k="";for(let a=0;a<j.length;a+=32768)k+=String.fromCharCode(...j.subarray(a,a+32768));return{status:200,mime:i.type||"image/png",b64:btoa(k)}},{accessToken:b,conversationId:c,sedimentId:d});if(200===e.status&&e.b64)return{b64:e.b64,mime:e.mime}}throw new aB("ChatGPT image generation produced no downloadable file",502)}async function aH(a,{prompt:b,sizeHint:c,signal:d,log:e}){if(await R(a),d?.aborted)throw Error("Request aborted");let f=await aE(a,b,{sizeHint:c,signal:d});if(!f.conversationId&&0===f.fileIds.length&&0===f.sedimentIds.length)throw new aB("ChatGPT image conversation produced no conversation id",502);let g=await aD(a),h=f.fileIds.length>0||f.sedimentIds.length>0?f:await aF(a,g,f.conversationId,f,{signal:d,log:e});return aG(a,g,f.conversationId,h)}var aI=c(39609),aJ=c(49426),aK=c(41004);let aL="OpenAI-Sentinel-Chat-Requirements-Prepare-Token",aM=a=>Buffer.from(JSON.stringify(a),"utf8").toString("base64"),aN=["https://chatgpt.com/cdn/assets/685809.dec86dcdc1.js","https://chatgpt.com/cdn/assets/399565.a1117ca8b4.js"],aO=["cookie","domain","readyState","title","URL","charset","location"],aP=["caches","crypto","fetch","indexedDB","localStorage","origin"],aQ=["userAgent","language","hardwareConcurrency"],aR=a=>a[Math.floor(Math.random()*a.length)];function aS(a){let b=aR(aQ);return[2080,new Date().toString(),null,0,a,aR(aN),null,"en-US","en-US,en",0,`${b}−${a}`,aR(aO),aR(aP),0,crypto.randomUUID(),"",8,0,0,0,0,0,0,0,0]}async function aT(a,{headers:b,body:c,signal:d,proxyOptions:e=null,timeoutMs:f=aK.pH}){let g,h=(0,aJ.n)(d,f);try{g=await (0,aI.proxyAwareFetch)(a,{method:"POST",headers:{...b,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c??{}),signal:h.signal},e)}catch(a){throw h.settleError(a)}finally{h.clear()}let i=await g.text().catch(()=>"");if(!g.ok)throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} failed (HTTP ${g.status}) ${i.slice(0,200)}`),{status:g.status});try{return JSON.parse(i)}catch{throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} returned invalid JSON`),{status:502})}}async function aU({baseUrl:a,accessToken:b,userAgent:c,signal:d,proxyOptions:e=null}){let f,g={Authorization:`Bearer ${b}`,"User-Agent":c},h=await aT(`${a}/backend-api/sentinel/chat-requirements/prepare`,{headers:{...g,[aL]:((f=aS(c))[3]=1,f[9]=0,`gAAAAAC${aM(f)}`)},signal:d,proxyOptions:e});if(!h?.prepare_token)throw Object.assign(Error("ChatGPT sentinel prepare returned no prepare_token"),{status:502});let i=await aT(`${a}/backend-api/sentinel/chat-requirements`,{headers:{...g,[aL]:h.prepare_token},signal:d,proxyOptions:e}),j={};return i?.token&&(j["OpenAI-Sentinel-Chat-Requirements-Token"]=i.token),i?.proofofwork?.required&&(j["OpenAI-Sentinel-Proof-Token"]=function({seed:a,difficulty:b,userAgent:c}){if(!a||!b)throw Error("ChatGPT sentinel asked for proof of work without seed/difficulty");let d=performance.now(),e=aS(c);for(let c=0;c<5e5;c++){e[3]=c,e[9]=Math.round(performance.now()-d);let f=aM(e);if((function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b^=b>>>16,b=Math.imul(b,0x85ebca6b)>>>0,b^=b>>>13,b=Math.imul(b,0xc2b2ae35)>>>0,((b^=b>>>16)>>>0).toString(16).padStart(8,"0")})(`${a}${f}`).slice(0,b.length)<=b)return`gAAAAAB${f}~S`}throw Error("ChatGPT sentinel proof of work exhausted its iteration budget")}({seed:i.proofofwork.seed,difficulty:i.proofofwork.difficulty,userAgent:c})),j}async function aV({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:e,proxyOptions:f=null,log:g=null,timeoutMs:h=aK.pH}){if(!e)return!1;let i=(0,aJ.n)(null,h);try{let h=await (0,aI.proxyAwareFetch)(`${a}/backend-api/conversation/${encodeURIComponent(e)}/delete`,{method:"POST",headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json","Content-Type":"application/json",...c?{Cookie:c}:{}},body:"{}",signal:i.signal},f);return g?.debug?.("CGPT-WEB",`conversation delete HTTP ${h.status}`),h.ok}catch(a){return g?.debug?.("CGPT-WEB",`conversation delete failed: ${a?.message||a}`),!1}finally{i.clear()}}let aW=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aX=a=>new Promise(b=>setTimeout(b,a));class aY extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}function aZ(a,b,c,d,e=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c),h=()=>f.abort();return d?.addEventListener("abort",h,{once:!0}),(0,aI.proxyAwareFetch)(a,{...b,signal:f.signal},e).finally(()=>{clearTimeout(g),d?.removeEventListener("abort",h)})}function a$(a){return(Array.isArray(a?.cookies)?a.cookies:[]).filter(a=>a?.name&&"string"==typeof a.value).map(a=>`${a.name}=${a.value}`).join("; ")}async function a_(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}let a0=(a,b,c)=>{let d=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let c of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))d(b,c[1]);for(let c of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))d(b,c[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))d(c,b[1])};function a1({accessToken:a,userAgent:b,cookie:c,sentinel:d}){return{...d,Authorization:`Bearer ${a}`,"User-Agent":b,...c?{Cookie:c}:{}}}async function a2(a,b,c,d){let{baseUrl:f}=a,g=a1(a),h=await aZ(`${f}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[b]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,d,a.proxyOptions);if(!h.ok)throw new aY(`ChatGPT prepare failed (HTTP ${h.status})`,h.status||502);let i=await h.json().catch(()=>null),j=i?.conduit_token||"",k=c?`${b} (aspect ratio ${c})`:b,l=await aZ(`${f}/backend-api/f/conversation`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"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:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],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,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})},105e3,d,a.proxyOptions);if(!l.ok)throw new aY(`ChatGPT conversation failed (HTTP ${l.status})`,l.status||502);let m=await a_(l,0x1000000,9e4),n=(m.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",o=[],p=[];return a0(m,o,p),{conversationId:n,fileIds:o,sedimentIds:p}}async function a3(a,b,c,{signal:d,log:e}){let f=Date.now(),g=[...c.fileIds],h=[...c.sedimentIds],i={...a1(a),Accept:"application/json"};for(await aX(5e3);Date.now()-f<=24e4;){if(d?.aborted)throw Error("Request aborted");let c=await aZ(`${a.baseUrl}/backend-api/conversation/${b}`,{headers:i},3e4,d,a.proxyOptions).catch(()=>null);if(!c?.ok){e?.debug?.("CGPT-WEB-IMG",`conversation poll status ${c?.status??"network"}, retrying`),await aX(5e3);continue}if(Number(c.headers.get("content-length")??"0")>0x2000000)throw new aY("ChatGPT conversation document is unexpectedly large",502);let f=await c.text().catch(()=>"");if(f.length>0x2000000)throw new aY("ChatGPT conversation document is unexpectedly large",502);if(a0(f,g,h),g.length>0||h.length>0)return{fileIds:g.filter(a=>"file_upload"!==a),sedimentIds:h};if(aW.test(f)&&/"is_error"\s*:\s*true/.test(f))throw new aY("ChatGPT refused the image request (content policy)",400);if(/ChatGPTAgentToolRateLimitException|Free plan limit for image generation/i.test(f))throw new aY("ChatGPT account has hit its image generation quota — add another account or wait for the reset",429);await aX(5e3)}throw new aY("ChatGPT image generation timed out",504)}async function a4(a,b,c){let d=await aZ(b,{},9e4,c,a.proxyOptions);if(!d.ok)return null;let e=Buffer.from(await d.arrayBuffer());return e.length?{b64:e.toString("base64"),mime:(d.headers.get("content-type")||"image/png").split(";")[0]}:null}async function a5(a,b,{fileIds:c,sedimentIds:d},e){let f={...a1(a),Accept:"application/json"};for(let b of c){let c=await aZ(`${a.baseUrl}/backend-api/files/${b}/download`,{headers:f},6e4,e,a.proxyOptions).catch(()=>null);if(!c?.ok)continue;let d=await c.json().catch(()=>null),g=d?.download_url||d?.url||"";if(!g)continue;let h=await a4(a,g,e);if(h)return h}for(let c of d){let d=await aZ(`${a.baseUrl}/backend-api/conversation/${b}/attachment/${c}/download`,{headers:f},6e4,e,a.proxyOptions).catch(()=>null);if(!d?.ok)continue;let g=await d.json().catch(()=>null),h=g?.download_url||g?.url||"";if(!h)continue;let i=await a4(a,h,e);if(i)return i}throw new aY("ChatGPT image generation produced no downloadable file",502)}async function a6({baseUrl:a,accessToken:b,cookie:c,userAgent:d,prompt:e,sizeHint:f,signal:g,log:h,proxyOptions:i=null}){if(!b)throw new aY("ChatGPT session has no access token",401);if(g?.aborted)throw Error("Request aborted");let j=await aU({baseUrl:a,accessToken:b,userAgent:d,signal:g,proxyOptions:i}),k={baseUrl:a,accessToken:b,cookie:c,userAgent:d,sentinel:j,proxyOptions:i||null},l=await a2(k,e,f,g);if(!l.conversationId&&0===l.fileIds.length&&0===l.sedimentIds.length)throw new aY("ChatGPT image conversation produced no conversation id",502);let m=l.fileIds.length>0||l.sedimentIds.length>0?l:await a3(k,l.conversationId,l,{signal:g,log:h});try{return await a5(k,l.conversationId,m,g)}finally{aV({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:l.conversationId,proxyOptions:i,log:h})}}let a7=a=>new Promise(b=>setTimeout(b,a));function a8(a,b,c,d,e=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c),h=()=>f.abort();return d?.addEventListener("abort",h,{once:!0}),(0,aI.proxyAwareFetch)(a,{...b,signal:f.signal},e).finally(()=>{clearTimeout(g),d?.removeEventListener("abort",h)})}async function a9(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}async function ba(a,{limit:b,deadlineMs:c,signal:d,onText:e}){let f=a.body?.getReader();if(!f)return{raw:"",text:""};let g=new TextDecoder,h=new y,i=Date.now()+c,j="",k="",l="",m=()=>{let a=k.split(/\r?\n\r?\n/);for(let b of(k=a.pop()||"",a))if(b.trim())try{h.ingest(`${b}
307
-
308
- `)}catch{}let b=function(a){let b=a?.mapping||{},c=null;for(let a of Object.values(b)){let b=a?.message;if(!b||"assistant"!==String(b.author?.role||"").toLowerCase()||b.content?.content_type!=="text")continue;let d=(b.content.parts||[]).filter(a=>"string"==typeof a).join(""),e=Number(b.create_time)||0;(!c||e>=c.at)&&(c={text:d,at:e})}return c?.text??""}(h.snapshot());b&&b!==l&&(b.startsWith(l)&&e(b.slice(l.length)),l=b)};try{for(;Date.now()<i;){if(d?.aborted)throw Error("Request aborted");let{done:a,value:c}=await f.read();if(a)break;if(!c)continue;let e=g.decode(c,{stream:!0});if(j+=e,k+=e,j.length>b)break;m()}}catch{}finally{await f.cancel().catch(()=>{})}return{raw:j,text:l}}async function bb({baseUrl:a,accessToken:b,cookie:c,userAgent:d,body:f,signal:g,log:h,proxyOptions:i=null,onDelta:j=null,onReady:k=null}){var l,m;if(!b)throw Object.assign(Error("ChatGPT session has no access token"),{status:401});if(g?.aborted)throw Error("Request aborted");let n=Array.isArray(f?.messages)?f.messages:[];if(0===n.length)throw Object.assign(Error("ChatGPT Web requires messages"),{status:400});let o=(0,aj.S$)(f,n),p=(l=function(a){let b=[],c=[];for(let d of a){let a=String(d?.role||"user"),e=[];if("string"==typeof d?.content)e.push(d.content);else if(Array.isArray(d?.content))for(let a of d.content)"string"==typeof a?e.push(a):"string"==typeof a?.text&&e.push(a.text);if(Array.isArray(d?.tool_calls))for(let a of d.tool_calls){let b=a?.function?.name;if(!b)continue;let c=a.function.arguments;try{c="string"==typeof c?JSON.parse(c):c}catch{}e.push(`<tool>${JSON.stringify({name:b,arguments:c})}</tool>`)}let f=e.join("\n").trim();f&&("system"===a||"developer"===a?b.push(f):"tool"===a?c.push(`Tool result${d?.tool_call_id?` (${d.tool_call_id})`:""}: ${f}`):"assistant"===a?c.push(`Assistant: ${f}`):c.push(f))}return[...b,...c].join("\n\n")}(o.effectiveMessages),m=o.hasTools,m?n.some(a=>"tool"===String(a?.role||"").toLowerCase())?l:`Use the client tools provided below. Do not answer with prose when a tool is needed.
309
-
310
- ${l}
311
-
312
- 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 aU({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 a8(`${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 a8(`${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 ba(t,{limit:0x1000000,deadlineMs:12e4,signal:g,onText:a=>{v+=a;try{j(a)}catch{}}})).raw:await a9(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 a8(`${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 a7(1500)}throw Object.assign(Error("ChatGPT chat turn timed out"),{status:504})}finally{aV({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:w,proxyOptions:i,log:h})}}var bc=c(4052),bd=c(92536),be=c(78959);let bf="https://chatgpt.com",bg="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 bh({storageState:a,userAgent:b,signal:c,proxyOptions:d=null,timeoutMs:e=aK.pH}){let f,g=a$(a),h=(0,aJ.n)(c,e);try{f=await (0,aI.proxyAwareFetch)(`${bf}/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 bi(a,b){return new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}})}class bj extends d.H{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:bf})}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 ay(a),url:bf,headers:{},transformedBody:a.body}}catch(c){let b=c instanceof Error?c.message:"ChatGPT Web browser execution failed";if((0,bc.BE)(b))return{response:bi(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:bf,headers:{},transformedBody:a.body};return{response:bi(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:bf,headers:{},transformedBody:a.body}}}async #a(a){let b,c,{credentials:d,body:f,model:g,stream:h,proxyOptions:i=null}=a;try{b=at(d)}catch{return null}let j=d?.providerSpecificData,k="string"==typeof j?.customUserAgent&&j.customUserAgent.trim()?j.customUserAgent.trim():bg,l=Array.isArray(f?.tools)&&f.tools.length>0;if(!0===a.stream&&!l){let c=await bh({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 bh({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});c=await bb({baseUrl:bf,accessToken:d,cookie:a$(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:ax(g,{text:c.text},h),url:bf,headers:{},transformedBody:f};let m=ax(g,{text:c.text},!1);return{response:await (0,ak.N)(m,c.requestedTools,h,{idSeed:"call",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:g}),url:bf,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,bd.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=bb({baseUrl:bf,accessToken:b,cookie:a$(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 ay(a),url:bf,headers:{},transformedBody:i};throw b}return x.then(()=>{if(r||(r=!0,v({role:"assistant",content:""})),v({},"stop"),!t)try{s.enqueue(l.encode(be.$U)),s.close()}catch{t=!0}}).catch(a=>{if(!t){try{s.error(a)}catch{}t=!0}}),{response:new Response(u,{status:200,headers:{...be.uB}}),url:bf,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=at(d),i=d.providerSpecificData,j="string"==typeof i?.customUserAgent&&i.customUserAgent.trim()?i.customUserAgent.trim():bg,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 bh({storageState:c,userAgent:d,signal:e,proxyOptions:h});return await a6({baseUrl:bf,accessToken:g,cookie:a$(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 aw({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:av(j?.chromeExecutablePath),proxyOptions:h});try{return await k.start(),await aH(k.page,{prompt:a,sizeHint:b,signal:e,log:f})}finally{await k.page.close().catch(()=>{})}}}},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(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)}
313
278
 
314
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)}
315
280