9router-proxy 0.6.12 → 0.6.14

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 (1088) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +13 -12
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +5 -5
  5. package/app/.next-cli-build/react-loadable-manifest.json +13 -13
  6. package/app/.next-cli-build/required-server-files.json +2 -1
  7. package/app/.next-cli-build/routes-manifest.json +6 -0
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +23 -23
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  78. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  89. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  90. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  91. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  92. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  93. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +2 -2
  112. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  116. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  118. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  122. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  124. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -2
  126. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  132. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  142. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  144. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  146. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js +2 -2
  152. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  154. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  156. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  158. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  160. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  162. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  164. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +2 -2
  168. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  198. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  200. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  256. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/web-login/route.js +1 -0
  296. package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -0
  297. package/app/.next-cli-build/server/app/api/providers/web-login/route_client-reference-manifest.js +1 -0
  298. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  303. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  305. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js +2 -2
  307. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  313. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  315. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  317. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  319. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  321. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  323. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  325. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  327. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  343. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  365. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +7 -1
  393. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +4 -2
  401. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  443. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  445. package/app/.next-cli-build/server/app/callback.html +1 -1
  446. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  447. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  448. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  449. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  450. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  452. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +5 -5
  453. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  454. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  455. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  457. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +5 -5
  458. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  459. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  460. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  462. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +6 -6
  463. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  464. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  467. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +6 -6
  468. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  469. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  472. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +5 -5
  473. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  474. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  475. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  476. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  477. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +5 -5
  478. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  479. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  482. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +5 -5
  483. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  484. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  485. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  486. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  487. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +5 -5
  488. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  489. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  492. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +6 -6
  493. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  494. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  495. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  496. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  497. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +5 -5
  498. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  499. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  501. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +8 -8
  502. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  503. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  504. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  505. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  506. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  507. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +6 -6
  508. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  509. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  510. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  511. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  514. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  515. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  516. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  517. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
  518. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  520. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +5 -5
  521. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  522. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  523. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  524. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  525. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  526. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  527. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  528. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  530. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  531. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  532. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  533. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  534. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  535. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +6 -6
  536. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  537. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  538. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  539. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  540. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +6 -6
  541. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  542. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  543. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  544. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  545. package/app/.next-cli-build/server/app/index.html +1 -1
  546. package/app/.next-cli-build/server/app/index.rsc +5 -5
  547. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  548. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  549. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  550. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  551. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  552. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  553. package/app/.next-cli-build/server/app/landing.html +1 -1
  554. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  555. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  556. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  557. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  558. package/app/.next-cli-build/server/app/login/page.js +1 -1
  559. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  560. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  561. package/app/.next-cli-build/server/app/login.html +1 -1
  562. package/app/.next-cli-build/server/app/login.rsc +5 -5
  563. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  564. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  565. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  566. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  567. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  568. package/app/.next-cli-build/server/app/page.js +1 -1
  569. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  570. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  571. package/app/.next-cli-build/server/app-paths-manifest.json +13 -12
  572. package/app/.next-cli-build/server/chunks/1004.js +1 -0
  573. package/app/.next-cli-build/server/chunks/1133.js +1 -0
  574. package/app/.next-cli-build/server/chunks/1329.js +1 -0
  575. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  576. package/app/.next-cli-build/server/chunks/1356.js +1 -0
  577. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  578. package/app/.next-cli-build/server/chunks/21.js +1 -0
  579. package/app/.next-cli-build/server/chunks/2214.js +1 -1
  580. package/app/.next-cli-build/server/chunks/2327.js +9 -0
  581. package/app/.next-cli-build/server/chunks/24.js +1 -1
  582. package/app/.next-cli-build/server/chunks/241.js +1 -1
  583. package/app/.next-cli-build/server/chunks/2578.js +1 -1
  584. package/app/.next-cli-build/server/chunks/3225.js +2 -2
  585. package/app/.next-cli-build/server/chunks/{1051.js → 3256.js} +1 -1
  586. package/app/.next-cli-build/server/chunks/3449.js +1 -1
  587. package/app/.next-cli-build/server/chunks/3726.js +1 -1
  588. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  589. package/app/.next-cli-build/server/chunks/412.js +2 -2
  590. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  591. package/app/.next-cli-build/server/chunks/4190.js +1 -1
  592. package/app/.next-cli-build/server/chunks/4279.js +1 -0
  593. package/app/.next-cli-build/server/chunks/4882.js +1 -1
  594. package/app/.next-cli-build/server/chunks/4956.js +2 -0
  595. package/app/.next-cli-build/server/chunks/{3811.js → 4957.js} +1 -1
  596. package/app/.next-cli-build/server/chunks/5026.js +1 -1
  597. package/app/.next-cli-build/server/chunks/5258.js +1 -1
  598. package/app/.next-cli-build/server/chunks/5308.js +2 -0
  599. package/app/.next-cli-build/server/chunks/5330.js +180 -20
  600. package/app/.next-cli-build/server/chunks/5615.js +2 -2
  601. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  602. package/app/.next-cli-build/server/chunks/614.js +1 -1
  603. package/app/.next-cli-build/server/chunks/615.js +1 -1
  604. package/app/.next-cli-build/server/chunks/6171.js +5 -5
  605. package/app/.next-cli-build/server/chunks/6638.js +1 -0
  606. package/app/.next-cli-build/server/chunks/6708.js +1 -1
  607. package/app/.next-cli-build/server/chunks/6780.js +1 -0
  608. package/app/.next-cli-build/server/chunks/6877.js +1 -1
  609. package/app/.next-cli-build/server/chunks/7187.js +1 -0
  610. package/app/.next-cli-build/server/chunks/7220.js +1 -0
  611. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  612. package/app/.next-cli-build/server/chunks/7525.js +1 -1
  613. package/app/.next-cli-build/server/chunks/7557.js +1 -1
  614. package/app/.next-cli-build/server/chunks/7573.js +1 -0
  615. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  616. package/app/.next-cli-build/server/chunks/778.js +1 -0
  617. package/app/.next-cli-build/server/chunks/7782.js +1 -0
  618. package/app/.next-cli-build/server/chunks/7801.js +7 -0
  619. package/app/.next-cli-build/server/chunks/7843.js +3 -3
  620. package/app/.next-cli-build/server/chunks/794.js +1 -0
  621. package/app/.next-cli-build/server/chunks/8238.js +1 -0
  622. package/app/.next-cli-build/server/chunks/8251.js +1 -1
  623. package/app/.next-cli-build/server/chunks/8271.js +1 -0
  624. package/app/.next-cli-build/server/chunks/8332.js +1 -0
  625. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  626. package/app/.next-cli-build/server/chunks/8416.js +1 -1
  627. package/app/.next-cli-build/server/chunks/8499.js +11 -11
  628. package/app/.next-cli-build/server/chunks/8623.js +9 -0
  629. package/app/.next-cli-build/server/chunks/8767.js +7 -0
  630. package/app/.next-cli-build/server/chunks/8895.js +38 -38
  631. package/app/.next-cli-build/server/chunks/9100.js +4 -4
  632. package/app/.next-cli-build/server/chunks/915.js +1 -1
  633. package/app/.next-cli-build/server/chunks/9310.js +1 -0
  634. package/app/.next-cli-build/server/chunks/9318.js +1 -0
  635. package/app/.next-cli-build/server/chunks/9460.js +1 -0
  636. package/app/.next-cli-build/server/chunks/9489.js +3 -0
  637. package/app/.next-cli-build/server/chunks/9609.js +1 -1
  638. package/app/.next-cli-build/server/chunks/9745.js +1 -0
  639. package/app/.next-cli-build/server/instrumentation.js +1 -1
  640. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  641. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  642. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  643. package/app/.next-cli-build/server/middleware.js +8 -8
  644. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  645. package/app/.next-cli-build/server/pages/404.html +1 -1
  646. package/app/.next-cli-build/server/pages/500.html +1 -1
  647. package/app/.next-cli-build/server/preview-props.json +3 -3
  648. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  649. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  650. package/app/.next-cli-build/static/FLfQpKTeBWAkFOH4j_1Lo/_buildManifest.js +1 -0
  651. package/app/.next-cli-build/static/chunks/124.cdfe12e15f8991cc.js +1 -0
  652. package/app/.next-cli-build/static/chunks/1321-0535076bc3ae403e.js +1 -0
  653. package/app/.next-cli-build/static/chunks/2435.1eeb203d028eb21f.js +1 -0
  654. package/app/.next-cli-build/static/chunks/4285-e97c3151f30199d8.js +1 -0
  655. package/app/.next-cli-build/static/chunks/5462.fed9dc8f008b389c.js +1 -0
  656. package/app/.next-cli-build/static/chunks/5497-ff26fb5a567cddba.js +7 -0
  657. package/app/.next-cli-build/static/chunks/{6808-9d9762a52c1840d9.js → 6808-5b23c18782066012.js} +1 -1
  658. package/app/.next-cli-build/static/chunks/{809-2c4d631176de6bd6.js → 809-bee50a6831a6411a.js} +2 -2
  659. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-9f1dd6ca7ceeabb7.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-8a571e8e9beccc96.js +69 -0
  661. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-bb1d9c5a0be9fd68.js +27 -0
  662. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-68597056465adc3d.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-be8471c465c6fd52.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-27dfae5ff06623e2.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-f7d7700d4afd666f.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-61653073d768f6fd.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-9b16f294682f60b0.js → layout-6eb55092f278a666.js} +1 -1
  668. package/app/.next-cli-build/static/chunks/app/_global-error/{page-7ee9602010473e2d.js → page-a70f643786fb402f.js} +1 -1
  669. package/app/.next-cli-build/static/chunks/app/api/auth/login/{route-7ee9602010473e2d.js → route-a70f643786fb402f.js} +1 -1
  670. package/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-7ee9602010473e2d.js → route-a70f643786fb402f.js} +1 -1
  671. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-7ee9602010473e2d.js → route-a70f643786fb402f.js} +1 -1
  672. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-a70f643786fb402f.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-a70f643786fb402f.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-a70f643786fb402f.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-a70f643786fb402f.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-a70f643786fb402f.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-a70f643786fb402f.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-a70f643786fb402f.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-a70f643786fb402f.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-a70f643786fb402f.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a70f643786fb402f.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-a70f643786fb402f.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-a70f643786fb402f.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-a70f643786fb402f.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-a70f643786fb402f.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-a70f643786fb402f.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-a70f643786fb402f.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-a70f643786fb402f.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-a70f643786fb402f.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-a70f643786fb402f.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-a70f643786fb402f.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-a70f643786fb402f.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-a70f643786fb402f.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-a70f643786fb402f.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-a70f643786fb402f.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-a70f643786fb402f.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-a70f643786fb402f.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-profiles/route-a70f643786fb402f.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-a70f643786fb402f.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-a70f643786fb402f.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-a70f643786fb402f.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-a70f643786fb402f.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-a70f643786fb402f.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-a70f643786fb402f.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-a70f643786fb402f.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-a70f643786fb402f.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-a70f643786fb402f.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-a70f643786fb402f.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/combos/route-a70f643786fb402f.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-a70f643786fb402f.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-a70f643786fb402f.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-a70f643786fb402f.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-a70f643786fb402f.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-a70f643786fb402f.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-a70f643786fb402f.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/health/route-a70f643786fb402f.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/init/route-a70f643786fb402f.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-a70f643786fb402f.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/keys/route-a70f643786fb402f.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/locale/route-a70f643786fb402f.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-a70f643786fb402f.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-a70f643786fb402f.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-a70f643786fb402f.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-a70f643786fb402f.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-a70f643786fb402f.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-a70f643786fb402f.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-a70f643786fb402f.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-a70f643786fb402f.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-a70f643786fb402f.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-a70f643786fb402f.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-a70f643786fb402f.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-a70f643786fb402f.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/models/route-a70f643786fb402f.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/models/test/route-a70f643786fb402f.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-a70f643786fb402f.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-a70f643786fb402f.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-a70f643786fb402f.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-a70f643786fb402f.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-a70f643786fb402f.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-a70f643786fb402f.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-a70f643786fb402f.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-a70f643786fb402f.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-a70f643786fb402f.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-a70f643786fb402f.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-a70f643786fb402f.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-a70f643786fb402f.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-a70f643786fb402f.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-a70f643786fb402f.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-a70f643786fb402f.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-a70f643786fb402f.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-a70f643786fb402f.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-a70f643786fb402f.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-a70f643786fb402f.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-a70f643786fb402f.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/pricing/route-a70f643786fb402f.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-a70f643786fb402f.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-a70f643786fb402f.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-a70f643786fb402f.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-a70f643786fb402f.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-a70f643786fb402f.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-a70f643786fb402f.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-a70f643786fb402f.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-a70f643786fb402f.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-a70f643786fb402f.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-a70f643786fb402f.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/providers/route-a70f643786fb402f.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-a70f643786fb402f.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-a70f643786fb402f.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-a70f643786fb402f.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/providers/web-login/route-a70f643786fb402f.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-a70f643786fb402f.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-a70f643786fb402f.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-a70f643786fb402f.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-a70f643786fb402f.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/netlify-deploy/route-a70f643786fb402f.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-a70f643786fb402f.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-a70f643786fb402f.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-a70f643786fb402f.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-a70f643786fb402f.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-a70f643786fb402f.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-a70f643786fb402f.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-a70f643786fb402f.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-a70f643786fb402f.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-a70f643786fb402f.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-a70f643786fb402f.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-a70f643786fb402f.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-a70f643786fb402f.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-a70f643786fb402f.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/settings/route-a70f643786fb402f.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-a70f643786fb402f.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/tags/route-a70f643786fb402f.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-a70f643786fb402f.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-a70f643786fb402f.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-a70f643786fb402f.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-a70f643786fb402f.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-a70f643786fb402f.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-a70f643786fb402f.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-a70f643786fb402f.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-a70f643786fb402f.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-a70f643786fb402f.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-a70f643786fb402f.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-a70f643786fb402f.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-a70f643786fb402f.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-a70f643786fb402f.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-a70f643786fb402f.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-a70f643786fb402f.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-a70f643786fb402f.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-a70f643786fb402f.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-a70f643786fb402f.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-a70f643786fb402f.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-a70f643786fb402f.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-a70f643786fb402f.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-a70f643786fb402f.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-a70f643786fb402f.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-a70f643786fb402f.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-a70f643786fb402f.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-a70f643786fb402f.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-a70f643786fb402f.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-a70f643786fb402f.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-a70f643786fb402f.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-a70f643786fb402f.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-a70f643786fb402f.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-a70f643786fb402f.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-a70f643786fb402f.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-a70f643786fb402f.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-a70f643786fb402f.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-a70f643786fb402f.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-a70f643786fb402f.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-a70f643786fb402f.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/v1/route-a70f643786fb402f.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-a70f643786fb402f.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-a70f643786fb402f.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-a70f643786fb402f.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-a70f643786fb402f.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-a70f643786fb402f.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-a70f643786fb402f.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-a70f643786fb402f.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-a70f643786fb402f.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-a70f643786fb402f.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/version/route-a70f643786fb402f.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-a70f643786fb402f.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/version/update/route-a70f643786fb402f.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/landing/page-2915d691a511d8ec.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-a70f643786fb402f.js +1 -0
  845. package/app/.next-cli-build/static/chunks/app/page-a70f643786fb402f.js +1 -0
  846. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-a70f643786fb402f.js +1 -0
  847. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-a70f643786fb402f.js +1 -0
  848. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-a70f643786fb402f.js +1 -0
  849. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-a70f643786fb402f.js +1 -0
  850. package/app/.next-cli-build/static/chunks/webpack-9dc40b48930dad72.js +1 -0
  851. package/app/.next-cli-build/static/css/0a4c443a8a7225f7.css +1 -0
  852. package/app/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  853. package/app/node_modules/baseline-browser-mapping/package.json +1 -1
  854. package/app/open-sse/executors/gemini-web/browserLease.js +59 -0
  855. package/app/open-sse/lib/deepseek-pow-worker.mjs +20 -0
  856. package/app/package.json +16 -11
  857. package/app/public/i18n/literals/fa.json +1 -1
  858. package/app/public/i18n/literals/id.json +1 -1
  859. package/app/public/i18n/literals/km.json +1 -1
  860. package/app/public/i18n/literals/pt-BR.json +1 -1
  861. package/app/public/i18n/literals/th.json +1 -1
  862. package/app/public/i18n/literals/zh-CN.json +1 -1
  863. package/app/public/providers/sensenova.png +0 -0
  864. package/app/public/providers/uc-web.png +0 -0
  865. package/app/public/providers/veoaifree-web.png +0 -0
  866. package/app/server.js +1 -1
  867. package/app/src/mitm/server.js +24 -24
  868. package/package.json +1 -1
  869. package/src/cli/utils/modelSelector.js +2 -0
  870. package/app/.next-cli-build/server/chunks/1836.js +0 -17
  871. package/app/.next-cli-build/server/chunks/2132.js +0 -1
  872. package/app/.next-cli-build/server/chunks/3210.js +0 -2
  873. package/app/.next-cli-build/server/chunks/4049.js +0 -1
  874. package/app/.next-cli-build/server/chunks/4199.js +0 -1
  875. package/app/.next-cli-build/server/chunks/4230.js +0 -1
  876. package/app/.next-cli-build/server/chunks/436.js +0 -1
  877. package/app/.next-cli-build/server/chunks/4798.js +0 -1
  878. package/app/.next-cli-build/server/chunks/5182.js +0 -1
  879. package/app/.next-cli-build/server/chunks/5433.js +0 -1
  880. package/app/.next-cli-build/server/chunks/562.js +0 -1
  881. package/app/.next-cli-build/server/chunks/5827.js +0 -1
  882. package/app/.next-cli-build/server/chunks/6069.js +0 -1
  883. package/app/.next-cli-build/server/chunks/6922.js +0 -1
  884. package/app/.next-cli-build/server/chunks/7211.js +0 -1
  885. package/app/.next-cli-build/server/chunks/7877.js +0 -7
  886. package/app/.next-cli-build/server/chunks/7911.js +0 -1
  887. package/app/.next-cli-build/server/chunks/8363.js +0 -1
  888. package/app/.next-cli-build/server/chunks/8635.js +0 -3
  889. package/app/.next-cli-build/server/chunks/869.js +0 -1
  890. package/app/.next-cli-build/server/chunks/8910.js +0 -2
  891. package/app/.next-cli-build/server/chunks/936.js +0 -1
  892. package/app/.next-cli-build/server/chunks/9604.js +0 -1
  893. package/app/.next-cli-build/server/chunks/9858.js +0 -1
  894. package/app/.next-cli-build/static/chunks/124.c092990b4bdb9713.js +0 -1
  895. package/app/.next-cli-build/static/chunks/1321-d4118b60d25d04d3.js +0 -1
  896. package/app/.next-cli-build/static/chunks/2435.8a5a02e626c780d0.js +0 -1
  897. package/app/.next-cli-build/static/chunks/5462.c82c64c26a864ec0.js +0 -1
  898. package/app/.next-cli-build/static/chunks/5497-6461b116ea130fe9.js +0 -7
  899. package/app/.next-cli-build/static/chunks/5815-57d2c8f2bf5d101f.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-68f91309eb1f96f4.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-46e8e71f59e43a41.js +0 -69
  902. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-c18f2c1a8086dade.js +0 -27
  903. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-09aa442e419193bf.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-ce1a79a72b996ef0.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-4dbfaf4b1a0b1c32.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-8a823c86edc9c9e9.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-4fad5050e91b2d9e.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-7ee9602010473e2d.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-7ee9602010473e2d.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-7ee9602010473e2d.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-7ee9602010473e2d.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-7ee9602010473e2d.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-7ee9602010473e2d.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-7ee9602010473e2d.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-7ee9602010473e2d.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-7ee9602010473e2d.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-7ee9602010473e2d.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-7ee9602010473e2d.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-7ee9602010473e2d.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-7ee9602010473e2d.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-7ee9602010473e2d.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-7ee9602010473e2d.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-7ee9602010473e2d.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-7ee9602010473e2d.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-7ee9602010473e2d.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-7ee9602010473e2d.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-7ee9602010473e2d.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-7ee9602010473e2d.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-7ee9602010473e2d.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-7ee9602010473e2d.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-7ee9602010473e2d.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-7ee9602010473e2d.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-7ee9602010473e2d.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-profiles/route-7ee9602010473e2d.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-7ee9602010473e2d.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-7ee9602010473e2d.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-7ee9602010473e2d.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-7ee9602010473e2d.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-7ee9602010473e2d.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-7ee9602010473e2d.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-7ee9602010473e2d.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-7ee9602010473e2d.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-7ee9602010473e2d.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-7ee9602010473e2d.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/combos/route-7ee9602010473e2d.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-7ee9602010473e2d.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-7ee9602010473e2d.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-7ee9602010473e2d.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-7ee9602010473e2d.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-7ee9602010473e2d.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-7ee9602010473e2d.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/health/route-7ee9602010473e2d.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/init/route-7ee9602010473e2d.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-7ee9602010473e2d.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/keys/route-7ee9602010473e2d.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/locale/route-7ee9602010473e2d.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-7ee9602010473e2d.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-7ee9602010473e2d.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-7ee9602010473e2d.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-7ee9602010473e2d.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-7ee9602010473e2d.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-7ee9602010473e2d.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-7ee9602010473e2d.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-7ee9602010473e2d.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-7ee9602010473e2d.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-7ee9602010473e2d.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-7ee9602010473e2d.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-7ee9602010473e2d.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/models/route-7ee9602010473e2d.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/models/test/route-7ee9602010473e2d.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-7ee9602010473e2d.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-7ee9602010473e2d.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-7ee9602010473e2d.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-7ee9602010473e2d.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-7ee9602010473e2d.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-7ee9602010473e2d.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-7ee9602010473e2d.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-7ee9602010473e2d.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-7ee9602010473e2d.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-7ee9602010473e2d.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-7ee9602010473e2d.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-7ee9602010473e2d.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-7ee9602010473e2d.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-7ee9602010473e2d.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-7ee9602010473e2d.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-7ee9602010473e2d.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-7ee9602010473e2d.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-7ee9602010473e2d.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-7ee9602010473e2d.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-7ee9602010473e2d.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/pricing/route-7ee9602010473e2d.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-7ee9602010473e2d.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-7ee9602010473e2d.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-7ee9602010473e2d.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-7ee9602010473e2d.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-7ee9602010473e2d.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-7ee9602010473e2d.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-7ee9602010473e2d.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-7ee9602010473e2d.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-7ee9602010473e2d.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-7ee9602010473e2d.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/providers/route-7ee9602010473e2d.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-7ee9602010473e2d.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-7ee9602010473e2d.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-7ee9602010473e2d.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-7ee9602010473e2d.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-7ee9602010473e2d.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-7ee9602010473e2d.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-7ee9602010473e2d.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/netlify-deploy/route-7ee9602010473e2d.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-7ee9602010473e2d.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-7ee9602010473e2d.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-7ee9602010473e2d.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-7ee9602010473e2d.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-7ee9602010473e2d.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-7ee9602010473e2d.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-7ee9602010473e2d.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-7ee9602010473e2d.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-7ee9602010473e2d.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-7ee9602010473e2d.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-7ee9602010473e2d.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-7ee9602010473e2d.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-7ee9602010473e2d.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/settings/route-7ee9602010473e2d.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-7ee9602010473e2d.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/tags/route-7ee9602010473e2d.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-7ee9602010473e2d.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-7ee9602010473e2d.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-7ee9602010473e2d.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-7ee9602010473e2d.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-7ee9602010473e2d.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-7ee9602010473e2d.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-7ee9602010473e2d.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-7ee9602010473e2d.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-7ee9602010473e2d.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-7ee9602010473e2d.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-7ee9602010473e2d.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-7ee9602010473e2d.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-7ee9602010473e2d.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-7ee9602010473e2d.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-7ee9602010473e2d.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-7ee9602010473e2d.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-7ee9602010473e2d.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-7ee9602010473e2d.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-7ee9602010473e2d.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-7ee9602010473e2d.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-7ee9602010473e2d.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-7ee9602010473e2d.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-7ee9602010473e2d.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-7ee9602010473e2d.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-7ee9602010473e2d.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-7ee9602010473e2d.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-7ee9602010473e2d.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-7ee9602010473e2d.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-7ee9602010473e2d.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-7ee9602010473e2d.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-7ee9602010473e2d.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-7ee9602010473e2d.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-7ee9602010473e2d.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-7ee9602010473e2d.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-7ee9602010473e2d.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-7ee9602010473e2d.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-7ee9602010473e2d.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-7ee9602010473e2d.js +0 -1
  1065. package/app/.next-cli-build/static/chunks/app/api/v1/route-7ee9602010473e2d.js +0 -1
  1066. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-7ee9602010473e2d.js +0 -1
  1067. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-7ee9602010473e2d.js +0 -1
  1068. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-7ee9602010473e2d.js +0 -1
  1069. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-7ee9602010473e2d.js +0 -1
  1070. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-7ee9602010473e2d.js +0 -1
  1071. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-7ee9602010473e2d.js +0 -1
  1072. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-7ee9602010473e2d.js +0 -1
  1073. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-7ee9602010473e2d.js +0 -1
  1074. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-7ee9602010473e2d.js +0 -1
  1075. package/app/.next-cli-build/static/chunks/app/api/version/route-7ee9602010473e2d.js +0 -1
  1076. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-7ee9602010473e2d.js +0 -1
  1077. package/app/.next-cli-build/static/chunks/app/api/version/update/route-7ee9602010473e2d.js +0 -1
  1078. package/app/.next-cli-build/static/chunks/app/landing/page-5c7fee91d003980e.js +0 -1
  1079. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-7ee9602010473e2d.js +0 -1
  1080. package/app/.next-cli-build/static/chunks/app/page-7ee9602010473e2d.js +0 -1
  1081. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-7ee9602010473e2d.js +0 -1
  1082. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-7ee9602010473e2d.js +0 -1
  1083. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-7ee9602010473e2d.js +0 -1
  1084. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-7ee9602010473e2d.js +0 -1
  1085. package/app/.next-cli-build/static/chunks/webpack-a59a4f1fec3d2d50.js +0 -1
  1086. package/app/.next-cli-build/static/css/ddd5ce279857f5e9.css +0 -1
  1087. package/app/.next-cli-build/static/kgDBUz73SblEO1KRsJDNC/_buildManifest.js +0 -1
  1088. /package/app/.next-cli-build/static/{kgDBUz73SblEO1KRsJDNC → FLfQpKTeBWAkFOH4j_1Lo}/_ssgManifest.js +0 -0
@@ -1,4 +1,5 @@
1
- "use strict";exports.id=5330,exports.ids=[5330],exports.modules={4493:(a,b,c)=>{c.d(b,{j9:()=>F});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(57247),i=c(41004),j=c(72239),k=c(14170),l=c(86724),m=c(80662),n=c(60210),o=c(37981),p=c(80614);let q="x-opencode-session",r="_opencodeSession",s=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=0,v=0,w=(1n<<48n)-1n,x=(1n<<36n)-1n;function y(a,b){return(~(4096n*BigInt(a)+BigInt(b))&w).toString(16).padStart(12,"0")}function z(a,b=""){if("string"==typeof a&&s.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=y(BigInt(`0x${c.subarray(0,5).toString("hex")}`)&x,1),f="";for(let a=6;a<20;a++)f+=t[c[a]%62];return`ses_${d}${f}`}function A(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let B=new Map,C=setInterval(()=>{let a=Date.now();for(let[b,c]of B)a-c.lastUsed>i.v1.sessionTtlMs&&B.delete(b)},i.v1.sessionCleanupIntervalMs);function D(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function E(a){let b=h.Xg.opencode||"opencode";return(0,h.ux)(b,D(a))===k.h.OPENAI_RESPONSES}C.unref&&C.unref();class F extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===q){let a=A(c);if(a&&s.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===q){h=A(b);break}let i=h||A(c);if(i)return z(i,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,m.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return z(c,d)}let j=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),k=B.get(j);if(k)return k.lastUsed=Date.now(),B.delete(j),B.set(j,k),k.sessionId;let l=function(a=Date.now()){return a!==u&&(u=a,v=0),v++,`ses_${y(a,v)}${function(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=t[a[c]%62];return b}()}`}();return B.size>=1e3&&B.delete(B.keys().next().value),B.set(j,{sessionId:l,lastUsed:Date.now()}),l}(a,f,c,d);return{...f,[r]:g}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),E(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(D(a))&&(b.tool_choice="auto");let c=(0,o.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=D(a||b.model),g=(0,j.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,o.N8)(a.call_id),a.arguments=(0,o.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,o.N8)(a.call_id),a.output=(0,o.DP)(a.output)),!0)))),(0,n.Ke)(b,!0)}else b&&"object"==typeof b&&(0,n.Ke)(b,!1);return(0,l.Z)({provider:this.provider,model:a,body:b})}async execute(a){return await (0,p.Rm)()?(0,p.nY)(a):super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return E(a)?`${b}/inference/v1/responses`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0){let c,d=a?.rawHeaders||{},e={};for(let[a,b]of Object.entries(d))e[a.toLowerCase()]=b;let f=e["user-agent"]||"",g=!!(c=String(f||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(c[1],10)>=2,h=a?.[r]||this.prepareRequestCredentials({credentials:a})[r];return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":g?f:"opencode/latest/2.0.26/cli","x-opencode-client":e["x-opencode-client"]||"cli","x-opencode-session":h,"x-opencode-session-id":h,"x-session-affinity":h,"x-session-id":h,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"}}}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(35024);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>t});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(88499),k=c(14170),l=c(9024),m=c(39609),n=c(49426),o=c(74379),p=c(78959),q=c(74129),r=c(55511),s=c.n(r);class t extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":s().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":q.b8,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,o.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async postWithHeaderTimeout(a,b,c,d,e){let f=(0,n.n)(d,this.config?.timeoutMs||g.Z1);try{return await (0,m.proxyAwareFetch)(a,{method:"POST",headers:b,body:JSON.stringify(c),signal:f.signal},e)}catch(a){throw f.settleError(a)}finally{f.clear()}}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,m=this.buildHeaders(d,c),n=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let o=await this.postWithHeaderTimeout(k,m,n,e,g);if(!o.ok)return{response:o,url:k,headers:m,transformedBody:n};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}let f=(0,i.v)(e,q);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());if(b&&!b.done){let c=(0,i.v)(b,q);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return o.body?{response:new Response(o.body.pipeThrough(t),{status:o.status,statusText:o.statusText,headers:o.headers}),url:k,headers:m,transformedBody:n}:{response:new Response("",{status:o.status,headers:o.headers}),url:k,headers:m,transformedBody:n}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),m=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),n=m._toolNameMap;delete m._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await this.postWithHeaderTimeout(h,i,m,e,g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:m};let q=(0,j.Ws)(k.h.CLAUDE);q.model=a,n&&(q.toolNameMap=n);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}t(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,q))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());b&&!b.done&&t(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,q))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:m}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:m}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,m.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},12009:(a,b,c)=>{function d(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function e(a,b,c,e){let f,g;if(b?.aborted)throw d(b.reason);let h=new Promise((a,b)=>{f=setTimeout(()=>b(Error(e)),c)}),i=new Promise((a,c)=>{g=()=>c(d(b.reason)),b?.addEventListener("abort",g,{once:!0})});try{return await Promise.race([a.read(),h,i])}finally{clearTimeout(f),b?.removeEventListener?.("abort",g)}}c.d(b,{S:()=>e,z:()=>d})},12132:(a,b,c)=>{c.r(b),c.d(b,{MIMO_API_BASE:()=>D,MIMO_API_UA:()=>E,getMimoAccountCookie:()=>F,getMimoAccountUsage:()=>G,invalidateMimoAccountCookieCache:()=>C,readDesktopPassToken:()=>v,resolveMimoServerBase:()=>y});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n=m.sgp,o={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"},p="account.xiaomi.com",q="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",r="MiClaw/1.0",s=new Map,t=new Map;async function u(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,79868,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+p);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function v(){try{let a=await u();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function w(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function x(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}function y(a=null){return m[String(a?.region||"").toLowerCase()]||n}async function z(a,b,c=n,d="sgp"){let e=String(d||"").toLowerCase(),f=o[String(e||"").toLowerCase()]||o.sgp,g=await A(a,"cn"===e?null:b,c,f);return g&&console.log(`[mimoAccount] desktop 2-phase OK (sid=${f})`),g}async function A(a,b,c,d){var e,f;let g,h=a=>console.log(`[mimoAccount] desktopPhase fail: ${a}`),i={...a},j={};i.userId&&(j.userId=i.userId),i.passToken&&(j.passToken=i.passToken),i.cUserId&&(j.cUserId=i.cUserId);let m=`https://${p}/pass/serviceLogin?_locale=zh_CN&_snsNone=true&sid=${encodeURIComponent(d)}&_json=true`,n=await (0,l.proxyAwareFetch)(m,{headers:{Cookie:x(j),"User-Agent":r,Accept:"application/json"}},b),o=await n.text(),q=o.replace(/^&&&START&&&/,""),s=q.match(/"nonce"\s*:\s*(\d+)/)?.[1],t=null;try{t=JSON.parse(q)}catch{}if(s&&t&&(t.nonce=s),!t||"number"!=typeof t.code||0!==t.code||!t.location||!t.nonce||!t.ssecurity)return h(`phase1 sid=${d} http=${n.status} code=${t?.code??"?"} hasLoc=${!!t?.location} secondValidation=${t?.bSecondValidation??"?"} notificationUrl=${t?.notificationUrl?"present":"no"} body=${JSON.stringify(o.slice(0,200))}`),null;w(i,n);let u=t.location.includes("?")?"&":"?",v=`${t.location}${u}clientSign=${(e=s||t.nonce,g=`nonce=${e}`+((f=t.ssecurity)&&f.trim()?`&${f}`:""),encodeURIComponent(k().createHash("sha1").update(g).digest("base64")))}`;for(let a=0;a<8;a++){let a=await (0,l.proxyAwareFetch)(v,{redirect:"manual",headers:{"User-Agent":r}},b);w(i,a);let c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){v=new URL(c,v).toString();continue}break}let y=`${d}_serviceToken`;if(!i.serviceToken&&i[y]&&(i.serviceToken=i[y]),!i.serviceToken)return h(`phase2 no serviceToken sid=${d} jar=[${Object.keys(i).join(",")}]`),null;let z={};for(let[a,b]of Object.entries(i))b&&("serviceToken"===a||"userId"===a||/_(ph|slh)$/.test(a))&&(z[a]=b);return x(z)}async function B(a,b){let c=y(a),d=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await u();if(!d)return{cookie:null,reason:"no-pass-token"};let e=k().createHash("sha256").update(`${c}|${d.passToken}`).digest("hex"),f=s.get(e);if(f&&Date.now()-f.at<18e5)return{cookie:f.cookie};let g=t.get(e);if(g){let a=await g;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let h=(async()=>{try{return await z(d,b,c,a?.region)}catch(a){return console.log(`[mimoAccount] acquire threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}finally{t.delete(e)}})();t.set(e,h);let i=await h;return i?(s.set(e,{cookie:i,at:Date.now()}),{cookie:i}):{cookie:null,reason:"sso-failed"}}function C(){s.clear()}let D=n,E=q;async function F(a=null,b=null){try{let{cookie:c}=await B(a,b);return c}catch(a){return console.log(`[mimoAccount] getMimoAccountCookie threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}}async function G(a=null,b=null){let{cookie:c,reason:d}=await B(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${y(a)}/api/user/usage`,{headers:{"User-Agent":q,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(57247),i=c(14170),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){return(0,h.ux)("opencode-go",a)===i.h.OPENAI_RESPONSES}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},19932:(a,b,c)=>{c.d(b,{T:()=>D});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
1
+ "use strict";exports.id=5330,exports.ids=[5330],exports.modules={4052:(a,b,c)=>{c.d(b,{BE:()=>f,KI:()=>h,Mt:()=>g});var d=c(73024),e=c(76760);function f(a){if(!a)return!1;let b=a.toLowerCase();return b.includes("executable doesn't exist")||b.includes("executablenotfound")||b.includes("playwright install")||b.includes("chromium")&&b.includes("download")}function g(){let a=process.env;return[a.NINEROUTER_BROWSER_BIN,a.CHROME_PATH,"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser",...a.PROGRAMFILES?[(0,e.join)(a.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...a["PROGRAMFILES(X86)"]?[(0,e.join)(a["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...a.LOCALAPPDATA?[(0,e.join)(a.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,d.existsSync)(a.trim())))||null}async function h(a,b={}){let c=b.executablePath;if(!c)return a.launch(b);try{return await a.launch(b)}catch(f){console.warn(`[browser] ${c} failed to launch (${f?.message||f}) — retrying with Playwright's Chromium`);let{executablePath:d,...e}=b;return a.launch(e)}}},4493:(a,b,c)=>{c.d(b,{j9:()=>F});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643),h=c(57247),i=c(41004),j=c(72239),k=c(14170),l=c(86724),m=c(80662),n=c(60210),o=c(37981),p=c(80614);let q="x-opencode-session",r="_opencodeSession",s=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=0,v=0,w=(1n<<48n)-1n,x=(1n<<36n)-1n;function y(a,b){return(~(4096n*BigInt(a)+BigInt(b))&w).toString(16).padStart(12,"0")}function z(a,b=""){if("string"==typeof a&&s.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=y(BigInt(`0x${c.subarray(0,5).toString("hex")}`)&x,1),f="";for(let a=6;a<20;a++)f+=t[c[a]%62];return`ses_${d}${f}`}function A(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let B=new Map,C=setInterval(()=>{let a=Date.now();for(let[b,c]of B)a-c.lastUsed>i.v1.sessionTtlMs&&B.delete(b)},i.v1.sessionCleanupIntervalMs);function D(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function E(a){let b=h.Xg.opencode||"opencode";return(0,h.ux)(b,D(a))===k.h.OPENAI_RESPONSES}C.unref&&C.unref();class F extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===q){let a=A(c);if(a&&s.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===q){h=A(b);break}let i=h||A(c);if(i)return z(i,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,m.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return z(c,d)}let j=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),k=B.get(j);if(k)return k.lastUsed=Date.now(),B.delete(j),B.set(j,k),k.sessionId;let l=function(a=Date.now()){return a!==u&&(u=a,v=0),v++,`ses_${y(a,v)}${function(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=t[a[c]%62];return b}()}`}();return B.size>=1e3&&B.delete(B.keys().next().value),B.set(j,{sessionId:l,lastUsed:Date.now()}),l}(a,f,c,d);return{...f,[r]:g}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),E(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(D(a))&&(b.tool_choice="auto");let c=(0,o.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=D(a||b.model),g=(0,j.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,o.N8)(a.call_id),a.arguments=(0,o.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,o.N8)(a.call_id),a.output=(0,o.DP)(a.output)),!0)))),(0,n.Ke)(b,!0)}else b&&"object"==typeof b&&(b?.reasoning_effort==="auto"&&delete b.reasoning_effort,(0,n.Ke)(b,!1));return(0,l.Z)({provider:this.provider,model:a,body:b})}async execute(a){return await (0,p.Rm)()?(0,p.nY)(a):super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return E(a)?`${b}/inference/v1/responses`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0){let c,d=a?.rawHeaders||{},e={};for(let[a,b]of Object.entries(d))e[a.toLowerCase()]=b;let f=e["user-agent"]||"",g=!!(c=String(f||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(c[1],10)>=2,h=a?.[r]||this.prepareRequestCredentials({credentials:a})[r];return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":g?f:"opencode/latest/2.0.26/cli","x-opencode-client":e["x-opencode-client"]||"cli","x-opencode-session":h,"x-opencode-session-id":h,"x-session-affinity":h,"x-session-id":h,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"}}}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(12643);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>t});var d=c(74957),e=c(12643),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(88499),k=c(14170),l=c(9024),m=c(39609),n=c(49426),o=c(74379),p=c(78959),q=c(74129),r=c(55511),s=c.n(r);class t extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":s().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":q.b8,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,o.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async postWithHeaderTimeout(a,b,c,d,e){let f=(0,n.n)(d,this.config?.timeoutMs||g.Z1);try{return await (0,m.proxyAwareFetch)(a,{method:"POST",headers:b,body:JSON.stringify(c),signal:f.signal},e)}catch(a){throw f.settleError(a)}finally{f.clear()}}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,m=this.buildHeaders(d,c),n=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let o=await this.postWithHeaderTimeout(k,m,n,e,g);if(!o.ok)return{response:o,url:k,headers:m,transformedBody:n};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}let f=(0,i.v)(e,q);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());if(b&&!b.done){let c=(0,i.v)(b,q);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return o.body?{response:new Response(o.body.pipeThrough(t),{status:o.status,statusText:o.statusText,headers:o.headers}),url:k,headers:m,transformedBody:n}:{response:new Response("",{status:o.status,headers:o.headers}),url:k,headers:m,transformedBody:n}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),m=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),n=m._toolNameMap;delete m._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await this.postWithHeaderTimeout(h,i,m,e,g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:m};let q=(0,j.Ws)(k.h.CLAUDE);q.model=a,n&&(q.toolNameMap=n);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}t(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,q))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());b&&!b.done&&t(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,q))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:m}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:m}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,m.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},12009:(a,b,c)=>{function d(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function e(a,b,c,e){let f,g;if(b?.aborted)throw d(b.reason);let h=new Promise((a,b)=>{f=setTimeout(()=>b(Error(e)),c)}),i=new Promise((a,c)=>{g=()=>c(d(b.reason)),b?.addEventListener("abort",g,{once:!0})});try{return await Promise.race([a.read(),h,i])}finally{clearTimeout(f),b?.removeEventListener?.("abort",g)}}c.d(b,{S:()=>e,z:()=>d})},12132:(a,b,c)=>{c.r(b),c.d(b,{MIMO_API_BASE:()=>D,MIMO_API_UA:()=>E,getMimoAccountCookie:()=>F,getMimoAccountUsage:()=>G,invalidateMimoAccountCookieCache:()=>C,readDesktopPassToken:()=>v,resolveMimoServerBase:()=>y});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n=m.sgp,o={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"},p="account.xiaomi.com",q="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",r="MiClaw/1.0",s=new Map,t=new Map;async function u(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,79868,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+p);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function v(){try{let a=await u();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function w(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function x(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}function y(a=null){return m[String(a?.region||"").toLowerCase()]||n}async function z(a,b,c=n,d="sgp"){let e=String(d||"").toLowerCase(),f=o[String(e||"").toLowerCase()]||o.sgp,g=await A(a,"cn"===e?null:b,c,f);return g&&console.log(`[mimoAccount] desktop 2-phase OK (sid=${f})`),g}async function A(a,b,c,d){var e,f;let g,h=a=>console.log(`[mimoAccount] desktopPhase fail: ${a}`),i={...a},j={};i.userId&&(j.userId=i.userId),i.passToken&&(j.passToken=i.passToken),i.cUserId&&(j.cUserId=i.cUserId);let m=`https://${p}/pass/serviceLogin?_locale=zh_CN&_snsNone=true&sid=${encodeURIComponent(d)}&_json=true`,n=await (0,l.proxyAwareFetch)(m,{headers:{Cookie:x(j),"User-Agent":r,Accept:"application/json"}},b),o=await n.text(),q=o.replace(/^&&&START&&&/,""),s=q.match(/"nonce"\s*:\s*(\d+)/)?.[1],t=null;try{t=JSON.parse(q)}catch{}if(s&&t&&(t.nonce=s),!t||"number"!=typeof t.code||0!==t.code||!t.location||!t.nonce||!t.ssecurity)return h(`phase1 sid=${d} http=${n.status} code=${t?.code??"?"} hasLoc=${!!t?.location} secondValidation=${t?.bSecondValidation??"?"} notificationUrl=${t?.notificationUrl?"present":"no"} body=${JSON.stringify(o.slice(0,200))}`),null;w(i,n);let u=t.location.includes("?")?"&":"?",v=`${t.location}${u}clientSign=${(e=s||t.nonce,g=`nonce=${e}`+((f=t.ssecurity)&&f.trim()?`&${f}`:""),encodeURIComponent(k().createHash("sha1").update(g).digest("base64")))}`;for(let a=0;a<8;a++){let a=await (0,l.proxyAwareFetch)(v,{redirect:"manual",headers:{"User-Agent":r}},b);w(i,a);let c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){v=new URL(c,v).toString();continue}break}let y=`${d}_serviceToken`;if(!i.serviceToken&&i[y]&&(i.serviceToken=i[y]),!i.serviceToken)return h(`phase2 no serviceToken sid=${d} jar=[${Object.keys(i).join(",")}]`),null;let z={};for(let[a,b]of Object.entries(i))b&&("serviceToken"===a||"userId"===a||/_(ph|slh)$/.test(a))&&(z[a]=b);return x(z)}async function B(a,b){let c=y(a),d=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await u();if(!d)return{cookie:null,reason:"no-pass-token"};let e=k().createHash("sha256").update(`${c}|${d.passToken}`).digest("hex"),f=s.get(e);if(f&&Date.now()-f.at<18e5)return{cookie:f.cookie};let g=t.get(e);if(g){let a=await g;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let h=(async()=>{try{return await z(d,b,c,a?.region)}catch(a){return console.log(`[mimoAccount] acquire threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}finally{t.delete(e)}})();t.set(e,h);let i=await h;return i?(s.set(e,{cookie:i,at:Date.now()}),{cookie:i}):{cookie:null,reason:"sso-failed"}}function C(){s.clear()}let D=n,E=q;async function F(a=null,b=null){try{let{cookie:c}=await B(a,b);return c}catch(a){return console.log(`[mimoAccount] getMimoAccountCookie threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}}async function G(a=null,b=null){let{cookie:c,reason:d}=await B(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${y(a)}/api/user/usage`,{headers:{"User-Agent":q,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(57247),i=c(14170),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){return(0,h.ux)("opencode-go",a)===i.h.OPENAI_RESPONSES}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},14229:(a,b,c)=>{function d(a){return new RegExp(a.source,a.flags.includes("g")?a.flags:`${a.flags}g`)}function e(a,b,c){let e=d(b),f=d(c),g=[],h=0;for(;;){e.lastIndex=h;let b=e.exec(a);if(!b)break;let c=b.index+b[0].length;f.lastIndex=c;let d=f.exec(a);if(!d)break;let i=d.index+d[0].length;g.push({start:b.index,end:i,inner:a.slice(c,d.index)}),h=i}return g}c.d(b,{mU:()=>v,x2:()=>n,OA:()=>l,n:()=>q,uQ:()=>t,S$:()=>u,Ub:()=>p,LW:()=>r,r3:()=>s});let f=/<tool>/g,g=/<\/tool>/g,h=/<tool_call(?:\s[^<>]*)?>/g,i=/<\/tool_call>/g,j=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,k=new WeakMap;function l(a){if(!Array.isArray(a)||0===a.length)return"";let b=k.get(a);return b||(b=Math.random().toString(36).slice(2,10),k.set(a,b)),b}function m(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function n(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){let a=m(d),e=m(a?.function),f="string"==typeof e?.name?e.name.trim():"";!f||c.has(f)||(c.add(f),b.push({original:f,normalized:o(f)}))}return b}function o(a){return a.toLowerCase().replace(/[^a-z0-9]/g,"")}function p(a,b){if(0===b.length)return a;let c=null,d=0;for(let e of b){let b=function(a,b){if(a===b.original)return 1;let c=o(a);if(!c||!b.normalized)return 0;if(c===b.normalized)return .98;let d=Math.min(c.length,b.normalized.length),e=Math.max(c.length,b.normalized.length);if(d>=4&&(c.includes(b.normalized)||b.normalized.includes(c)))return .86-(e-d)/Math.max(e,1)/4;let f=1-function(a,b){if(a===b)return 0;if(!a)return b.length;if(!b)return a.length;let c=Array.from({length:b.length+1},(a,b)=>b),d=Array(b.length+1);for(let e=1;e<=a.length;e+=1){d[0]=e;for(let f=1;f<=b.length;f+=1){let g=+(a[e-1]!==b[f-1]);d[f]=Math.min(d[f-1]+1,c[f]+1,c[f-1]+g)}let f=c;c=d,d=f}return c[b.length]}(c,b.normalized)/Math.max(e,1);return f>=.72?f:0}(a,e);!c||b>c.score?(d=c?.score??0,c={name:e.original,score:b}):b>d&&(d=b)}return!c||c.score<.72||c.score<.98&&c.score-d<.08?null:c.name}function q(a){let b=a.trim().replace(/^```(?:json|javascript|js|python)?\s*/i,"").replace(/\s*```$/i,"").trim();for(let a of[b,(function(a){let b="",c=!1,d=!1,e="",f=()=>{"True"===e?b+="true":"False"===e?b+="false":"None"===e?b+="null":b+=e,e=""};for(let g of a){if(d){e&&f(),b+=g,d=!1;continue}if("\\"===g){e&&f(),b+=g,d=c;continue}if('"'===g){e&&f(),c=!c,b+=g;continue}if(!c&&/[A-Za-z]/.test(g)){e+=g;continue}e&&f(),b+=g}return e&&f(),b})(function(a){let b="",c=!1,d=!1,e=!1;for(let f of a){if(e){b+='"'===f&&c?'\\"':f,e=!1;continue}if("\\"===f){b+=f,e=!0;continue}if('"'===f){c?b+='\\"':(d=!d,b+=f);continue}if("'"===f&&!d){c=!c,b+='"';continue}b+=f}return b}(b)).replace(/([{,]\s*)([A-Za-z_][A-Za-z0-9_-]*)(\s*:)/g,'$1"$2"$3').replace(/,\s*([}\]])/g,"$1")])try{return m(JSON.parse(a))}catch{}return null}function r(a,b){let c=a;for(let a of[...b].sort((a,b)=>b.start-a.start)){let b=c.lastIndexOf("\n",a.start-1)+1,d=c.indexOf("\n",a.end),e=-1===d?c.length:d,f=c.slice(b,a.start),g=c.slice(a.end,e),h=""===f.trim()&&""===g.trim(),i=h?b:a.start,j=h&&-1!==d?d+1:h?e:a.end;c=`${c.slice(0,i)}${c.slice(j)}`}return c.replace(/\n{3,}/g,"\n\n").trim()}function s(a){if(void 0===a)return"{}";if("string"==typeof a){let b=q(a);return b?JSON.stringify(b):a}try{return JSON.stringify(a)}catch{return"{}"}}function t(a,b="call",c){let d="string"==typeof a?(j.lastIndex=0,a.replace(j,(a,b,c,d)=>{let e={},f=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,g=null;for(;null!==(g=f.exec(d));){let a=g[2].trim();try{e[g[1]]=JSON.parse(a)}catch{e[g[1]]=a}}if(0===Object.keys(e).length)try{let a=JSON.parse(d.trim()||"{}");a&&"object"==typeof a&&!Array.isArray(a)&&Object.assign(e,a)}catch{}return`<tool>{"name":${JSON.stringify(c)},"arguments":${JSON.stringify(e)}}</tool>`}).replace(/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,"")):a,k=n(c);if("string"!=typeof d||!d.includes("<tool>")&&!d.includes("<tool_call"))return{content:a??"",toolCalls:null};let m=l(c),o=[];for(let a of[...e(d,f,g),...e(d,h,i)])o.push({raw:a.inner.trim(),start:a.start,end:a.end,requireRequestedTool:!1});o.sort((a,b)=>a.start-b.start);let u=[],v=[];for(let a of o){let c=q(a.raw),d=c&&"string"==typeof c.name?c.name:c&&"string"==typeof c.command?c.command:null;if(!d||m&&c&&void 0!==c._nonce&&c._nonce!==m)continue;let e=p(d,k)||(a.requireRequestedTool?null:d);if(!e||a.requireRequestedTool&&0===k.length)continue;let f=s(c?.arguments);u.push({id:`${b}_${u.length}`,type:"function",function:{name:e,arguments:f}}),v.push({start:a.start,end:a.end})}return 0===u.length?{content:a,toolCalls:null}:{content:r(d,v),toolCalls:u}}function u(a,b){let c,d=a.tools;if(!(Array.isArray(d)&&d.length>0))return{hasTools:!1,requestedTools:d,effectiveMessages:b};let e=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=l(a);if(!b)return"";let c=[];for(let b of a){let a=b?.function;if(!a?.name)continue;let d="string"==typeof a.description&&a.description?a.description:"",e="";try{e=a.parameters?JSON.stringify(a.parameters):""}catch{e=""}c.push(`- ${a.name}${d?`: ${d}`:""}${e?`
2
+ parameters: ${e}`:""}`)}return 0===c.length?"":["The client application provides tools beyond your built-in ones. They are NOT in your native tool registry; they are invoked via a plain-text protocol: the client parses your reply and executes the tool on the user machine. Treat these client tools as fully available to you; never claim they are unavailable. To invoke one, reply with a single line containing a <tool> block",`with JSON that includes the secret binding "_nonce": "${b}":`,`<tool>{"name": "<tool_name>", "arguments": { ... }, "_nonce": "${b}"}</tool>`,"These client tools ARE available to you in this conversation. Only emit the <tool> block when you actually want to call a tool; otherwise answer normally.","","Available tools:",...c].join("\n")}(d);if(!e)return{hasTools:!0,requestedTools:d,effectiveMessages:b};let f=[...b],g="\n\n[Client protocol reminder: the client-tool contract in the system instructions is active in this conversation. These client tools ARE available via the <tool> block protocol"+((c=(e.match(/^- [^:\n]+/gm)||[]).map(a=>a.slice(2).trim()).join(", "))?": "+c:"")+".]";for(let a=f.length-1;a>=0;a--){let b=f[a];if(b?.role==="user"){"string"==typeof b.content?f[a]={...b,content:b.content+g}:Array.isArray(b.content)&&(f[a]={...b,content:[...b.content,{type:"text",text:g}]});break}}return f.push({role:"system",content:e}),{hasTools:!0,requestedTools:d,effectiveMessages:f}}function v(a,b,c="call"){let{content:d,toolCalls:e}=t(a,`${c}-${Date.now()}`,b);return{content:d,toolCalls:e,finishReason:e?"tool_calls":"stop"}}},19932:(a,b,c)=>{c.d(b,{T:()=>D});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
2
3
 
3
4
  ## General
4
5
 
@@ -114,44 +115,203 @@ You are producing plain text that will later be styled by the CLI. Follow these
114
115
  * Optionally include line/column (1‑based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
115
116
  * Do not use URIs like file://, vscode://, or https://.
116
117
  * Do not provide range of lines
117
- * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var f=c(35024),g=c(93943),h=c(37981),i=c(29463),j=c(57247),k=c(72239),l=c(41004),m=c(92306),n=c(12009),o=c(80662);let p=/(^|[^\\])(\\\\)*\\[pP]\{/;function q(a,b={removed:0}){return function a(b,c){if(Array.isArray(b)){let d=!1,e=b.map(b=>{let e=a(b,c);return e!==b&&(d=!0),e});return d?e:b}if(!b||"object"!=typeof b)return b;let d=!1,e={};for(let[g,h]of Object.entries(b)){var f;if("pattern"===g&&"string"==typeof(f=h)&&p.test(f)){c.removed++,d=!0;continue}if("properties"===g&&h&&"object"==typeof h&&!Array.isArray(h)){let b=!1,f={};for(let[d,e]of Object.entries(h)){let g=a(e,c);g!==e&&(b=!0),f[d]=g}b&&(d=!0),e[g]=b?f:h;continue}let b=a(h,c);b!==h&&(d=!0),e[g]=b}return d?e:b}(a,b)}let r=["server_is_overloaded","service_unavailable_error"],s=["selected model is at capacity","model_at_capacity"],t=["event: response.output_text.delta","event: response.function_call_arguments.delta",'"type":"response.output_text.delta"','"type":"response.function_call_arguments.delta"'],u="codex sse peek stalled",v="Selected model is at capacity. Please try a different model.";function w(a){let b=String(a||"").replace(/\([^()]+\)\s*$/,"");return(0,j.SM)("cx").some(a=>a.id===b&&!0===a.responsesLite)}let x=/^(rs|fc|resp|msg)_/,y=new Set(["image_generation","web_search","web_search_preview","file_search","computer","computer_use_preview","code_interpreter","mcp","local_shell","tool_search"]),z=new Set(["custom"]),A=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","prompt_cache_key","client_metadata","text","parallel_tool_calls"]);function B(a,b){let c=(0,k.k)("codex",a);return c?.includes(b)?b:w(a)&&("none"===b||"minimal"===b)?"low":"ultra"===b&&c?.includes("max")?"max":"max"===b||"ultra"===b?"xhigh":b}function C(a,b){return new Response(JSON.stringify({error:{message:b,type:a>=500?"server_error":"invalid_request_error",code:a===l.gx.SERVICE_UNAVAILABLE?"service_unavailable":"upstream_error"}}),{status:a,headers:{"Content-Type":"application/json"}})}class D extends d.H{constructor(){super("codex",f.xq.codex)}buildHeaders(a,b=!0,c=null,d=null,e=null,f={}){let g=super.buildHeaders(a,b);w(d&&(0,j.kt)("cx",d))&&!e?.tools?.some?.(a=>a?.type==="web_search")&&(g["x-openai-internal-codex-responses-lite"]="true"),g.session_id=f?.sessionId||a?.connectionId||"default",g.originator||(g.originator="codex_cli_rs");let h=a?.providerSpecificData?.workspaceId||a?.providerSpecificData?.chatgptAccountId||a?.providerSpecificData?.accountId;return"string"==typeof h&&h&&!g["ChatGPT-Account-ID"]&&(g["ChatGPT-Account-ID"]=h),g}buildUrl(a,b,c=0,d=null,e={}){let f=super.buildUrl(a,b,c,d,e);return e?.isCompact?`${f}/compact`:f}async refreshCredentials(a,b){return a?.refreshToken?(0,g.Vq)("codex",a,b):null}needsRefresh(a){return(0,g.fp)("codex",a)}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await (0,i.ni)(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){let b=Array.isArray(a.body?.input)?a.body.input.reduce((a,b)=>a+(Array.isArray(b.content)?b.content.filter(a=>"image_url"===a.type).length:0),0):0,c=Array.isArray(a.body?.input)?a.body.input.length:0;if((0,m.s)("CODEX",`execute start | inputItems=${c} | images=${b}`),b>0){let b=Date.now();await this.prefetchImages(a.body),(0,m.s)("CODEX",`prefetchImages done | ${Date.now()-b}ms`)}else await this.prefetchImages(a.body);let d=!!a.body?._compact;d&&Object.defineProperty(a.body,"_compact",{value:!0,enumerable:!1,configurable:!0});let e={isCompact:d},f={...l.cI,...this.config.retry},{attempts:g,delayMs:h}=(0,l.DR)(f[503]),i=0;for(;;){let b,c=await super.execute({...a,hookCtx:e});try{b=await this._peekSseTransientError(c.response,a.signal)}catch(b){if(b?.name==="AbortError")throw b;return a.log?.warn?.("RETRY",`CODEX | SSE peek ${b?.message||"failed"}`),c.response=C(l.gx.GATEWAY_TIMEOUT,b?.message||v),c}if(!b.matched)return b.replacementBody&&(c.response=new Response(b.replacementBody,{status:c.response.status,statusText:c.response.statusText,headers:c.response.headers})),c;if(b.accountFallback)return a.log?.warn?.("RETRY",`CODEX | SSE account fallback "${b.message}"`),c.response=C(l.gx.SERVICE_UNAVAILABLE,b.message||v),c;if(i>=g)return a.log?.warn?.("RETRY",`CODEX | SSE overloaded "${b.matched}" — retries exhausted (${i}/${g})`),c.response=C(l.gx.SERVICE_UNAVAILABLE,b.message||b.matched),c;i++,a.log?.debug?.("RETRY",`CODEX | SSE "${b.matched}" retry ${i}/${g} after ${h/1e3}s`),(0,m.s)("CODEX",`SSE overloaded "${b.matched}" → retry ${i}/${g} in ${h}ms`),await new Promise(a=>setTimeout(a,h))}}async _peekSseTransientError(a,b){if(!a||!a.ok||!a.body)return{matched:null,message:null,accountFallback:!1,replacementBody:null};let c=a.body.getReader(),d=new TextDecoder,e=[],f="",g=null,h=!1;try{for(;f.length<262144;){let{done:a,value:i}=await (0,n.S)(c,b,l.Z1,u);if(a)break;e.push(i);let j=(f+=d.decode(i,{stream:!0})).toLowerCase(),k=s.find(a=>j.includes(a));if(k){g=k,h=!0;break}let m=r.find(a=>j.includes(a));if(m){g=m;break}if(t.some(a=>j.includes(a)))break}}catch(a){if(a?.message===u||a?.name==="AbortError")throw a;(0,m.s)("CODEX",`peek read error: ${a.message}`)}if(g){try{await c.cancel()}catch{}try{c.releaseLock()}catch{}return{matched:g,message:function(a,b){let c=a?.match(/Selected model is at capacity\. Please try a different model\./i)?.[0];if(c)return c;for(let b of String(a||"").split(/\r?\n/)){if(!b.startsWith("data:"))continue;let a=b.slice(5).trim();if(a&&"[DONE]"!==a)try{let b=function a(b,c=0){if(!b||c>6||"string"==typeof b)return null;if(Array.isArray(b)){for(let d of b){let b=a(d,c+1);if(b)return b}return null}if("object"!=typeof b)return null;if("string"==typeof b.message&&b.message.trim())return b.message;if("string"==typeof b.error?.message&&b.error.message.trim())return b.error.message;if("string"==typeof b.response?.error?.message&&b.response.error.message.trim())return b.response.error.message;for(let d of Object.values(b)){let b=a(d,c+1);if(b)return b}return null}(JSON.parse(a));if(b)return b}catch{}}return b||v}(f,g),accountFallback:h,replacementBody:null}}c.releaseLock();let i=a.body,j=null;return{matched:null,message:null,accountFallback:!1,replacementBody:new ReadableStream({start(a){for(let b of e)a.enqueue(b);j=i.getReader()},async pull(a){try{let{done:b,value:c}=await j.read();if(b)return void a.close();a.enqueue(c)}catch(b){a.error(b)}},cancel(a){try{j?.cancel(a)}catch{}}})}}parseError(a,b){if(429===a.status&&b)try{let a=JSON.parse(b),c=a?.error;if(c?.type==="usage_limit_reached"){let a=Date.now(),d=null;if("number"==typeof c.resets_at&&c.resets_at>0){let b=1e3*c.resets_at;b>a&&(d=b)}if(!d&&"number"==typeof c.resets_in_seconds&&c.resets_in_seconds>0&&(d=a+1e3*c.resets_in_seconds),d)return{status:429,message:c.message||b,resetsAtMs:d}}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d,f={}){b._compact||delete b._compact;let g=(0,o.oV)({headers:d?.rawHeaders,body:b,connectionId:d?.connectionId,workspaceId:d?.providerSpecificData?.workspaceId,scope:"codex"});f.sessionId=g;let i=(0,h.me)(b.input);i&&(b.input=i);let k=(0,j.kt)("cx",b.model||a),l=!0===b._autoCodexWebSearch;delete b._autoCodexWebSearch,l&&!b.tools?.some?.(a=>a?.type==="web_search")&&(b.tools=[...Array.isArray(b.tools)?b.tools:[],{type:"web_search"}]);let n=!1;if(w(k)&&Array.isArray(b.input)&&(b.tools?.some?.(a=>a?.type==="web_search")||b.input.some(a=>a?.type==="additional_tools"&&a.tools?.some?.(a=>a?.type==="web_search")))){let a=Array.isArray(b.tools)?[...b.tools]:[],c=new Set(a.map(a=>`${a?.type}:${a?.name||a?.function?.name||""}`));for(let d of b.input)if(d?.type==="additional_tools"&&Array.isArray(d.tools))for(let b of d.tools){let d=`${b?.type}:${b?.name||b?.function?.name||""}`;c.has(d)||(a.push(b),c.add(d))}b.tools=a,n=b.input.some(a=>a?.type==="additional_tools"),b.input=b.input.filter(a=>a?.type!=="additional_tools")}let p=w(k)&&!b.tools?.some?.(a=>a?.type==="web_search");if((!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),Array.isArray(b.input))for(let a of b.input)!(!a||"object"!=typeof a||Array.isArray(a))&&("system"!==a.role||a.type&&"message"!==a.type||(a.role="developer"));if(!function(a,b=!1){Array.isArray(a.input)&&(a.input=a.input.filter(a=>{if("string"==typeof a&&x.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&x.test(a.id)&&!(b&&"developer"===a.role&&a.id.startsWith("msg_"))&&delete a.id}return!0}))}(b,p),!function(a){if(!Array.isArray(a.tools))return;let b=new Set,c={removed:0};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("namespace"===d){if(Array.isArray(a.tools))for(let d of a.tools){let a="string"==typeof d?.name?d.name.trim().slice(0,128):"";a&&b.add(a),d?.parameters&&"object"==typeof d.parameters&&(d.parameters=q(d.parameters,c))}return!0}if("function"!==d)return!!z.has(d)||!!d&&!a.function&&"string"!=typeof a.name&&y.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=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:{}},i="boolean"==typeof a.strict?a.strict:e?.strict;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=q(h,c),"boolean"==typeof i&&(a.strict=i),b.add(f),!0}),c.removed>0&&(0,m.s)("CODEX",`stripped ${c.removed} unsupported tool schema pattern(s)`),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),b.stream=!0,p||n||b.instructions&&""!==b.instructions.trim()||(b.instructions=e),b.store=!1,!b.prompt_cache_key&&g&&(b.prompt_cache_key=g),b.model=k,p){let a=Array.isArray(b.input)?b.input:[b.input];if(!a.some(a=>a?.type==="additional_tools")){let c="string"==typeof b.instructions&&b.instructions.trim()?b.instructions:e,d=[{type:"additional_tools",role:"developer",tools:Array.isArray(b.tools)?b.tools:[]}];c&&d.push({type:"message",role:"developer",content:[{type:"input_text",text:c}]}),a.unshift(...d)}b.input=a,b.instructions="",b.tools=null,b.tool_choice||="auto",b.parallel_tool_calls=!1}else delete b.parallel_tool_calls;let r=null;for(let a of["none","minimal","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){r=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)b.reasoning.effort=B(b.model,b.reasoning.effort),p||b.reasoning.summary||(b.reasoning.summary="auto");else{let a=B(b.model,b.reasoning_effort||r||(p?"medium":"low"));b.reasoning=p?{effort:a}:{effort:a,summary:"auto"}}for(let a of(p&&(b.reasoning.context="all_turns"),delete b.reasoning_effort,b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort&&(b.include=["reasoning.encrypted_content"]),delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.max_completion_tokens,delete b.max_output_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,delete b.previous_response_id,"fast"===b.service_tier&&(b.service_tier="priority"),b.service_tier&&"priority"!==b.service_tier&&delete b.service_tier,Object.keys(b)))A.has(a)||delete b[a];return b}}},19946:(a,b,c)=>{c.a(a,async(a,d)=>{try{let a,H,I;c.d(b,{ou:()=>U});var e=c(74957),f=c(35024),g=c(41004),h=c(55456),i=c(81756),j=c(82578),k=c(73483),l=c(78959),m=c(92536),n=c(14170),o=c(43698),p=c(39609),q=c(49426),r=c(74075),s=c.n(r),t=c(55511),u=c.n(t);let J=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{J=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let K="/agent.v1.AgentService/Run";function v(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let L=(a,b)=>(0,h.Xh)(a,2,b),M=(a,b)=>(0,h.Xh)(a,2,b);function w(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>a?.type===o.x4.TEXT&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}function x(a){return!a||a.type===o.x4.TEXT||"string"==typeof a}function y(a){let b=w(a?.content),c=[];if(a?.role===o.z7.ASSISTANT&&a.tool_calls?.length)for(let b of a.tool_calls)c.push(`[tool_call id=${b.id||""} name=${b.function?.name||"tool"} args=${b.function?.arguments||"{}"}]`);a?.role===o.z7.TOOL&&c.push(`[tool_result id=${a.tool_call_id||""}]`);let d=[b,...c].filter(Boolean).join("\n");if(!d)return null;let e=L(1,d);return a.role===o.z7.ASSISTANT?M(2,M(1,M(1,e))):M(1,M(1,M(1,e)))}function z(a,b){let c=a?.get(b)?.[0]?.value;return c?Buffer.from(c).toString("utf8"):""}function A(a){return{id:Number(a?.get(1)?.[0]?.value||0),execId:z(a,15)}}function B(a,b,c,d){let e=[];return a&&e.push((0,h.Xh)(1,0,a)),e.push(L(15,b||"")),e.push((0,h.Xh)(c,2,d||new Uint8Array)),(0,h.tM)(M(2,v(...e)))}let N={2:2,3:3,4:4,5:5,7:7,8:8,9:9,16:16,20:20,23:23};function C(a,b,c,d){let e=[];return a&&e.push((0,h.Xh)(1,0,a)),e.push((0,h.Xh)(b,2,c||new Uint8Array)),d&&d.length&&e.push((0,h.Xh)(4,2,d)),(0,h.tM)(M(3,v(...e)))}let O=a=>!(a?.strictProxy!==!0||!(a?.proxyPoolId||a?.enabled===!0||a?.connectionProxyEnabled===!0||(a?.url||a?.connectionProxyUrl||"").trim().length>0)||a?.vercelRelayUrl),P="1"===process.env.CURSOR_STREAM_DEBUG,Q=(...a)=>{P&&console.log(...a)};function D(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function E(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function F(a,b,c,d){if(b+5>a.length)return Q(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(Q(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return Q(`[CURSOR BUFFER${d}] Incomplete frame, offset=${b}, length=${f}, buffer.length=${a.length}`),{status:"done"};let g=a.slice(b+5,b+5+f),h=b+5+f;return(g=function(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return Q("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return s().gunzipSync(a)}catch(c){try{return s().inflateSync(a)}catch(d){try{return s().inflateRawSync(a)}catch(e){Q(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),Q("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(Q(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}function G(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}let R=(a=Number(process.env.CURSOR_EMPTY_TURN_MAX_RETRIES),Number.isFinite(a)&&a>=0?Math.floor(a):1),S=(H=Number(process.env.CURSOR_TAIL_ONLY_THRESHOLD),Number.isFinite(H)&&H>0?Math.floor(H):80),T=(I=Number(process.env.CURSOR_EMPTY_TURN_RETRY_DELAY_MS),Number.isFinite(I)&&I>=0?Math.floor(I):400);class U extends e.H{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f,h=(0,q.n)(d,this.config?.timeoutMs||g.Z1);try{f=await (0,p.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:h.signal},e)}catch(a){throw h.settleError(a)}finally{h.clear()}return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(a,b,c,d){if(!J)throw Error("http2 module not available");return new Promise((e,f)=>{let g=new URL(a),h=J.connect(`https://${g.host}`),i=[],j={},k=!1,l=null,m=a=>(...b)=>{if(!k){k=!0,clearTimeout(n);try{l?.destroy()}catch{}h.close(),a(...b)}},n=setTimeout(m(()=>{f(Error("HTTP/2 request timed out"))}),6e4);if(h.on("error",m(f)),(l=h.request({":method":"POST",":path":g.pathname,":authority":g.host,":scheme":"https",...b})).on("response",a=>{j=a}),l.on("data",a=>{i.push(a)}),l.on("end",m(()=>{e({status:Number(j[":status"]||0),headers:j,body:Buffer.concat(i)})})),l.on("error",m(f)),d){let a=m(()=>f(Error("Request aborted")));if(d.aborted)return void a();d.addEventListener("abort",a,{once:!0})}l.write(c),l.end()})}openAgentHttp2Stream(a,b,c){if(!J)throw Error("HTTP/2 is required for Cursor AgentService (endpoint is h2-only)");let d=new URL(a),e=J.connect(`https://${d.host}`),f=[],h=null,i=!1,j=null,k=null,l=null,m=a=>{if(!h)return;let b=h;h=null,b(a)},n=a=>{j||(j=a,i=!0,m(null),l?.(a))},o=()=>{try{k?.destroy()}catch{}try{e.close()}catch{}};e.on("error",n),(k=e.request({":method":"POST",":path":d.pathname,":authority":d.host,":scheme":"https",...b})).on("error",n),k.on("close",()=>{i||n(Error("Cursor AgentService stream closed"))}),k.on("data",a=>{h?m({value:a,done:!1}):f.push(a)}),k.on("end",()=>{i=!0,m({value:void 0,done:!0})});let p=this.config?.timeoutMs||g.Z1,q=new Promise((a,b)=>{let c=setTimeout(()=>b(Error(`Cursor AgentService sent no response head within ${p}ms`)),p);l=a=>{clearTimeout(c),b(a)},k.once("response",b=>{clearTimeout(c),l=null,a(b)})});if(c){let a=()=>{n(Error("Request aborted")),o()};c.aborted?a():c.addEventListener("abort",a,{once:!0})}return{responseHeaders:q,write(a){k&&!k.destroyed&&k.write(Buffer.from(a))},end(){try{k&&!k.destroyed&&k.end()}catch{}},close:o,async read(){if(f.length)return{value:f.shift(),done:!1};if(i){if(j)throw j;return{value:void 0,done:!0}}let a=await new Promise(a=>{h=a});if(j)throw j;return a||{value:void 0,done:!0}}}}async executeAgent({model:a,body:b,stream:c,credentials:d,signal:e,log:i,proxyOptions:p=null}){let q,r,t=f.sr.cursor?.agentEndpoint;if(!t)throw Error("Cursor AgentService endpoint is not configured");if(O(p))throw Error("Cursor AgentService requires a strict proxy that this HTTP/2 transport cannot honor; refusing to open a direct connection");let x=`${t}${K}`,F=this.buildHeaders(d),G=new AbortController;e?.addEventListener&&e.addEventListener("abort",()=>G.abort(e.reason),{once:!0});let H=b.messages||[],I=H,J=b.tools||[],P=a;if("default"===a||"auto"===a){let b=await (0,j.FD)(d,{signal:e,log:i}),c=(0,j.nl)(b?.models);c&&(i?.info?.("CURSOR",`auto model resolved: ${a} → ${c.modelId} (${c.matchedBy})`),P=c.modelId)}let U=a=>{let c=this.openAgentHttp2Stream(x,F,G.signal);return c.write(function(a,b,c=[],d=null){let e=a.filter(a=>a?.role===o.z7.SYSTEM).map(a=>w(a.content)).filter(Boolean).join("\n\n"),f=a.filter(a=>a?.role!==o.z7.SYSTEM),g=[...f].map(a=>a?.role).lastIndexOf(o.z7.USER),i=g>=0?f[g]:f.at(-1),j=f.slice(0,g>=0?g:-1).map(y).filter(Boolean),k=w(i?.content)||"Continue.",l=v(L(1,e?`${e}
118
+ * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var f=c(12643),g=c(93943),h=c(37981),i=c(29463),j=c(57247),k=c(72239),l=c(41004),m=c(92306),n=c(12009),o=c(80662);let p=/(^|[^\\])(\\\\)*\\[pP]\{/;function q(a,b={removed:0}){return function a(b,c){if(Array.isArray(b)){let d=!1,e=b.map(b=>{let e=a(b,c);return e!==b&&(d=!0),e});return d?e:b}if(!b||"object"!=typeof b)return b;let d=!1,e={};for(let[g,h]of Object.entries(b)){var f;if("pattern"===g&&"string"==typeof(f=h)&&p.test(f)){c.removed++,d=!0;continue}if("properties"===g&&h&&"object"==typeof h&&!Array.isArray(h)){let b=!1,f={};for(let[d,e]of Object.entries(h)){let g=a(e,c);g!==e&&(b=!0),f[d]=g}b&&(d=!0),e[g]=b?f:h;continue}let b=a(h,c);b!==h&&(d=!0),e[g]=b}return d?e:b}(a,b)}let r=["server_is_overloaded","service_unavailable_error"],s=["selected model is at capacity","model_at_capacity"],t=["event: response.output_text.delta","event: response.function_call_arguments.delta",'"type":"response.output_text.delta"','"type":"response.function_call_arguments.delta"'],u="codex sse peek stalled",v="Selected model is at capacity. Please try a different model.";function w(a){let b=String(a||"").replace(/\([^()]+\)\s*$/,"");return(0,j.SM)("cx").some(a=>a.id===b&&!0===a.responsesLite)}let x=/^(rs|fc|resp|msg)_/,y=new Set(["image_generation","web_search","web_search_preview","file_search","computer","computer_use_preview","code_interpreter","mcp","local_shell","tool_search"]),z=new Set(["custom"]),A=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","prompt_cache_key","client_metadata","text","parallel_tool_calls"]);function B(a,b){let c=(0,k.k)("codex",a);return c?.includes(b)?b:w(a)&&("none"===b||"minimal"===b)?"low":"ultra"===b&&c?.includes("max")?"max":"max"===b||"ultra"===b?"xhigh":b}function C(a,b){return new Response(JSON.stringify({error:{message:b,type:a>=500?"server_error":"invalid_request_error",code:a===l.gx.SERVICE_UNAVAILABLE?"service_unavailable":"upstream_error"}}),{status:a,headers:{"Content-Type":"application/json"}})}class D extends d.H{constructor(){super("codex",f.xq.codex)}buildHeaders(a,b=!0,c=null,d=null,e=null,f={}){let g=super.buildHeaders(a,b);w(d&&(0,j.kt)("cx",d))&&!e?.tools?.some?.(a=>a?.type==="web_search")&&(g["x-openai-internal-codex-responses-lite"]="true"),g.session_id=f?.sessionId||a?.connectionId||"default",g.originator||(g.originator="codex_cli_rs");let h=a?.providerSpecificData?.workspaceId||a?.providerSpecificData?.chatgptAccountId||a?.providerSpecificData?.accountId;return"string"==typeof h&&h&&!g["ChatGPT-Account-ID"]&&(g["ChatGPT-Account-ID"]=h),g}buildUrl(a,b,c=0,d=null,e={}){let f=super.buildUrl(a,b,c,d,e);return e?.isCompact?`${f}/compact`:f}async refreshCredentials(a,b){return a?.refreshToken?(0,g.Vq)("codex",a,b):null}needsRefresh(a){return(0,g.fp)("codex",a)}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await (0,i.ni)(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){let b=Array.isArray(a.body?.input)?a.body.input.reduce((a,b)=>a+(Array.isArray(b.content)?b.content.filter(a=>"image_url"===a.type).length:0),0):0,c=Array.isArray(a.body?.input)?a.body.input.length:0;if((0,m.s)("CODEX",`execute start | inputItems=${c} | images=${b}`),b>0){let b=Date.now();await this.prefetchImages(a.body),(0,m.s)("CODEX",`prefetchImages done | ${Date.now()-b}ms`)}else await this.prefetchImages(a.body);let d=!!a.body?._compact;d&&Object.defineProperty(a.body,"_compact",{value:!0,enumerable:!1,configurable:!0});let e={isCompact:d},f={...l.cI,...this.config.retry},{attempts:g,delayMs:h}=(0,l.DR)(f[503]),i=0;for(;;){let b,c=await super.execute({...a,hookCtx:e});try{b=await this._peekSseTransientError(c.response,a.signal)}catch(b){if(b?.name==="AbortError")throw b;return a.log?.warn?.("RETRY",`CODEX | SSE peek ${b?.message||"failed"}`),c.response=C(l.gx.GATEWAY_TIMEOUT,b?.message||v),c}if(!b.matched)return b.replacementBody&&(c.response=new Response(b.replacementBody,{status:c.response.status,statusText:c.response.statusText,headers:c.response.headers})),c;if(b.accountFallback)return a.log?.warn?.("RETRY",`CODEX | SSE account fallback "${b.message}"`),c.response=C(l.gx.SERVICE_UNAVAILABLE,b.message||v),c;if(i>=g)return a.log?.warn?.("RETRY",`CODEX | SSE overloaded "${b.matched}" — retries exhausted (${i}/${g})`),c.response=C(l.gx.SERVICE_UNAVAILABLE,b.message||b.matched),c;i++,a.log?.debug?.("RETRY",`CODEX | SSE "${b.matched}" retry ${i}/${g} after ${h/1e3}s`),(0,m.s)("CODEX",`SSE overloaded "${b.matched}" → retry ${i}/${g} in ${h}ms`),await new Promise(a=>setTimeout(a,h))}}async _peekSseTransientError(a,b){if(!a||!a.ok||!a.body)return{matched:null,message:null,accountFallback:!1,replacementBody:null};let c=a.body.getReader(),d=new TextDecoder,e=[],f="",g=null,h=!1;try{for(;f.length<262144;){let{done:a,value:i}=await (0,n.S)(c,b,l.Z1,u);if(a)break;e.push(i);let j=(f+=d.decode(i,{stream:!0})).toLowerCase(),k=s.find(a=>j.includes(a));if(k){g=k,h=!0;break}let m=r.find(a=>j.includes(a));if(m){g=m;break}if(t.some(a=>j.includes(a)))break}}catch(a){if(a?.message===u||a?.name==="AbortError")throw a;(0,m.s)("CODEX",`peek read error: ${a.message}`)}if(g){try{await c.cancel()}catch{}try{c.releaseLock()}catch{}return{matched:g,message:function(a,b){let c=a?.match(/Selected model is at capacity\. Please try a different model\./i)?.[0];if(c)return c;for(let b of String(a||"").split(/\r?\n/)){if(!b.startsWith("data:"))continue;let a=b.slice(5).trim();if(a&&"[DONE]"!==a)try{let b=function a(b,c=0){if(!b||c>6||"string"==typeof b)return null;if(Array.isArray(b)){for(let d of b){let b=a(d,c+1);if(b)return b}return null}if("object"!=typeof b)return null;if("string"==typeof b.message&&b.message.trim())return b.message;if("string"==typeof b.error?.message&&b.error.message.trim())return b.error.message;if("string"==typeof b.response?.error?.message&&b.response.error.message.trim())return b.response.error.message;for(let d of Object.values(b)){let b=a(d,c+1);if(b)return b}return null}(JSON.parse(a));if(b)return b}catch{}}return b||v}(f,g),accountFallback:h,replacementBody:null}}c.releaseLock();let i=a.body,j=null;return{matched:null,message:null,accountFallback:!1,replacementBody:new ReadableStream({start(a){for(let b of e)a.enqueue(b);j=i.getReader()},async pull(a){try{let{done:b,value:c}=await j.read();if(b)return void a.close();a.enqueue(c)}catch(b){a.error(b)}},cancel(a){try{j?.cancel(a)}catch{}}})}}parseError(a,b){if(429===a.status&&b)try{let a=JSON.parse(b),c=a?.error;if(c?.type==="usage_limit_reached"){let a=Date.now(),d=null;if("number"==typeof c.resets_at&&c.resets_at>0){let b=1e3*c.resets_at;b>a&&(d=b)}if(!d&&"number"==typeof c.resets_in_seconds&&c.resets_in_seconds>0&&(d=a+1e3*c.resets_in_seconds),d)return{status:429,message:c.message||b,resetsAtMs:d}}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d,f={}){b._compact||delete b._compact;let g=(0,o.oV)({headers:d?.rawHeaders,body:b,connectionId:d?.connectionId,workspaceId:d?.providerSpecificData?.workspaceId,scope:"codex"});f.sessionId=g;let i=(0,h.me)(b.input);i&&(b.input=i);let k=(0,j.kt)("cx",b.model||a),l=!0===b._autoCodexWebSearch;delete b._autoCodexWebSearch,l&&!b.tools?.some?.(a=>a?.type==="web_search")&&(b.tools=[...Array.isArray(b.tools)?b.tools:[],{type:"web_search"}]);let n=!1;if(w(k)&&Array.isArray(b.input)&&(b.tools?.some?.(a=>a?.type==="web_search")||b.input.some(a=>a?.type==="additional_tools"&&a.tools?.some?.(a=>a?.type==="web_search")))){let a=Array.isArray(b.tools)?[...b.tools]:[],c=new Set(a.map(a=>`${a?.type}:${a?.name||a?.function?.name||""}`));for(let d of b.input)if(d?.type==="additional_tools"&&Array.isArray(d.tools))for(let b of d.tools){let d=`${b?.type}:${b?.name||b?.function?.name||""}`;c.has(d)||(a.push(b),c.add(d))}b.tools=a,n=b.input.some(a=>a?.type==="additional_tools"),b.input=b.input.filter(a=>a?.type!=="additional_tools")}let p=w(k)&&!b.tools?.some?.(a=>a?.type==="web_search");if((!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),Array.isArray(b.input))for(let a of b.input)!(!a||"object"!=typeof a||Array.isArray(a))&&("system"!==a.role||a.type&&"message"!==a.type||(a.role="developer"));if(!function(a,b=!1){Array.isArray(a.input)&&(a.input=a.input.filter(a=>{if("string"==typeof a&&x.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&x.test(a.id)&&!(b&&"developer"===a.role&&a.id.startsWith("msg_"))&&delete a.id}return!0}))}(b,p),!function(a){if(!Array.isArray(a.tools))return;let b=new Set,c={removed:0};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("namespace"===d){if(Array.isArray(a.tools))for(let d of a.tools){let a="string"==typeof d?.name?d.name.trim().slice(0,128):"";a&&b.add(a),d?.parameters&&"object"==typeof d.parameters&&(d.parameters=q(d.parameters,c))}return!0}if("function"!==d)return!!z.has(d)||!!d&&!a.function&&"string"!=typeof a.name&&y.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=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:{}},i="boolean"==typeof a.strict?a.strict:e?.strict;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=q(h,c),"boolean"==typeof i&&(a.strict=i),b.add(f),!0}),c.removed>0&&(0,m.s)("CODEX",`stripped ${c.removed} unsupported tool schema pattern(s)`),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),b.stream=!0,p||n||b.instructions&&""!==b.instructions.trim()||(b.instructions=e),b.store=!1,!b.prompt_cache_key&&g&&(b.prompt_cache_key=g),b.model=k,p){let a=Array.isArray(b.input)?b.input:[b.input];if(!a.some(a=>a?.type==="additional_tools")){let c="string"==typeof b.instructions&&b.instructions.trim()?b.instructions:e,d=[{type:"additional_tools",role:"developer",tools:Array.isArray(b.tools)?b.tools:[]}];c&&d.push({type:"message",role:"developer",content:[{type:"input_text",text:c}]}),a.unshift(...d)}b.input=a,b.instructions="",b.tools=null,b.tool_choice||="auto",b.parallel_tool_calls=!1}else delete b.parallel_tool_calls;let r=null;for(let a of["none","minimal","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){r=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)b.reasoning.effort=B(b.model,b.reasoning.effort),p||b.reasoning.summary||(b.reasoning.summary="auto");else{let a=B(b.model,b.reasoning_effort||r||(p?"medium":"low"));b.reasoning=p?{effort:a}:{effort:a,summary:"auto"}}for(let a of(p&&(b.reasoning.context="all_turns"),delete b.reasoning_effort,b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort&&(b.include=["reasoning.encrypted_content"]),delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.max_completion_tokens,delete b.max_output_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,delete b.previous_response_id,"fast"===b.service_tier&&(b.service_tier="priority"),b.service_tier&&"priority"!==b.service_tier&&delete b.service_tier,Object.keys(b)))A.has(a)||delete b[a];return b}}},19946:(a,b,c)=>{c.a(a,async(a,d)=>{try{let a,H,I;c.d(b,{ou:()=>U});var e=c(74957),f=c(12643),g=c(41004),h=c(55456),i=c(81756),j=c(82578),k=c(73483),l=c(78959),m=c(92536),n=c(14170),o=c(43698),p=c(39609),q=c(49426),r=c(74075),s=c.n(r),t=c(55511),u=c.n(t);let J=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{J=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let K="/agent.v1.AgentService/Run";function v(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let L=(a,b)=>(0,h.Xh)(a,2,b),M=(a,b)=>(0,h.Xh)(a,2,b);function w(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>a?.type===o.x4.TEXT&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}function x(a){return!a||a.type===o.x4.TEXT||"string"==typeof a}function y(a){let b=w(a?.content),c=[];if(a?.role===o.z7.ASSISTANT&&a.tool_calls?.length)for(let b of a.tool_calls)c.push(`[tool_call id=${b.id||""} name=${b.function?.name||"tool"} args=${b.function?.arguments||"{}"}]`);a?.role===o.z7.TOOL&&c.push(`[tool_result id=${a.tool_call_id||""}]`);let d=[b,...c].filter(Boolean).join("\n");if(!d)return null;let e=L(1,d);return a.role===o.z7.ASSISTANT?M(2,M(1,M(1,e))):M(1,M(1,M(1,e)))}function z(a,b){let c=a?.get(b)?.[0]?.value;return c?Buffer.from(c).toString("utf8"):""}function A(a){return{id:Number(a?.get(1)?.[0]?.value||0),execId:z(a,15)}}function B(a,b,c,d){let e=[];return a&&e.push((0,h.Xh)(1,0,a)),e.push(L(15,b||"")),e.push((0,h.Xh)(c,2,d||new Uint8Array)),(0,h.tM)(M(2,v(...e)))}let N={2:2,3:3,4:4,5:5,7:7,8:8,9:9,16:16,20:20,23:23};function C(a,b,c,d){let e=[];return a&&e.push((0,h.Xh)(1,0,a)),e.push((0,h.Xh)(b,2,c||new Uint8Array)),d&&d.length&&e.push((0,h.Xh)(4,2,d)),(0,h.tM)(M(3,v(...e)))}let O=a=>!(a?.strictProxy!==!0||!(a?.proxyPoolId||a?.enabled===!0||a?.connectionProxyEnabled===!0||(a?.url||a?.connectionProxyUrl||"").trim().length>0)||a?.vercelRelayUrl),P="1"===process.env.CURSOR_STREAM_DEBUG,Q=(...a)=>{P&&console.log(...a)};function D(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function E(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function F(a,b,c,d){if(b+5>a.length)return Q(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(Q(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return Q(`[CURSOR BUFFER${d}] Incomplete frame, offset=${b}, length=${f}, buffer.length=${a.length}`),{status:"done"};let g=a.slice(b+5,b+5+f),h=b+5+f;return(g=function(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return Q("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return s().gunzipSync(a)}catch(c){try{return s().inflateSync(a)}catch(d){try{return s().inflateRawSync(a)}catch(e){Q(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),Q("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(Q(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}function G(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}let R=(a=Number(process.env.CURSOR_EMPTY_TURN_MAX_RETRIES),Number.isFinite(a)&&a>=0?Math.floor(a):1),S=(H=Number(process.env.CURSOR_TAIL_ONLY_THRESHOLD),Number.isFinite(H)&&H>0?Math.floor(H):80),T=(I=Number(process.env.CURSOR_EMPTY_TURN_RETRY_DELAY_MS),Number.isFinite(I)&&I>=0?Math.floor(I):400);class U extends e.H{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f,h=(0,q.n)(d,this.config?.timeoutMs||g.Z1);try{f=await (0,p.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:h.signal},e)}catch(a){throw h.settleError(a)}finally{h.clear()}return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(a,b,c,d){if(!J)throw Error("http2 module not available");return new Promise((e,f)=>{let g=new URL(a),h=J.connect(`https://${g.host}`),i=[],j={},k=!1,l=null,m=a=>(...b)=>{if(!k){k=!0,clearTimeout(n);try{l?.destroy()}catch{}h.close(),a(...b)}},n=setTimeout(m(()=>{f(Error("HTTP/2 request timed out"))}),6e4);if(h.on("error",m(f)),(l=h.request({":method":"POST",":path":g.pathname,":authority":g.host,":scheme":"https",...b})).on("response",a=>{j=a}),l.on("data",a=>{i.push(a)}),l.on("end",m(()=>{e({status:Number(j[":status"]||0),headers:j,body:Buffer.concat(i)})})),l.on("error",m(f)),d){let a=m(()=>f(Error("Request aborted")));if(d.aborted)return void a();d.addEventListener("abort",a,{once:!0})}l.write(c),l.end()})}openAgentHttp2Stream(a,b,c){if(!J)throw Error("HTTP/2 is required for Cursor AgentService (endpoint is h2-only)");let d=new URL(a),e=J.connect(`https://${d.host}`),f=[],h=null,i=!1,j=null,k=null,l=null,m=a=>{if(!h)return;let b=h;h=null,b(a)},n=a=>{j||(j=a,i=!0,m(null),l?.(a))},o=()=>{try{k?.destroy()}catch{}try{e.close()}catch{}};e.on("error",n),(k=e.request({":method":"POST",":path":d.pathname,":authority":d.host,":scheme":"https",...b})).on("error",n),k.on("close",()=>{i||n(Error("Cursor AgentService stream closed"))}),k.on("data",a=>{h?m({value:a,done:!1}):f.push(a)}),k.on("end",()=>{i=!0,m({value:void 0,done:!0})});let p=this.config?.timeoutMs||g.Z1,q=new Promise((a,b)=>{let c=setTimeout(()=>b(Error(`Cursor AgentService sent no response head within ${p}ms`)),p);l=a=>{clearTimeout(c),b(a)},k.once("response",b=>{clearTimeout(c),l=null,a(b)})});if(c){let a=()=>{n(Error("Request aborted")),o()};c.aborted?a():c.addEventListener("abort",a,{once:!0})}return{responseHeaders:q,write(a){k&&!k.destroyed&&k.write(Buffer.from(a))},end(){try{k&&!k.destroyed&&k.end()}catch{}},close:o,async read(){if(f.length)return{value:f.shift(),done:!1};if(i){if(j)throw j;return{value:void 0,done:!0}}let a=await new Promise(a=>{h=a});if(j)throw j;return a||{value:void 0,done:!0}}}}async executeAgent({model:a,body:b,stream:c,credentials:d,signal:e,log:i,proxyOptions:p=null}){let q,r,t=f.sr.cursor?.agentEndpoint;if(!t)throw Error("Cursor AgentService endpoint is not configured");if(O(p))throw Error("Cursor AgentService requires a strict proxy that this HTTP/2 transport cannot honor; refusing to open a direct connection");let x=`${t}${K}`,F=this.buildHeaders(d),G=new AbortController;e?.addEventListener&&e.addEventListener("abort",()=>G.abort(e.reason),{once:!0});let H=b.messages||[],I=H,J=b.tools||[],P=a;if("default"===a||"auto"===a){let b=await (0,j.FD)(d,{signal:e,log:i}),c=(0,j.nl)(b?.models);c&&(i?.info?.("CURSOR",`auto model resolved: ${a} → ${c.modelId} (${c.matchedBy})`),P=c.modelId)}let U=a=>{let c=this.openAgentHttp2Stream(x,F,G.signal);return c.write(function(a,b,c=[],d=null){let e=a.filter(a=>a?.role===o.z7.SYSTEM).map(a=>w(a.content)).filter(Boolean).join("\n\n"),f=a.filter(a=>a?.role!==o.z7.SYSTEM),g=[...f].map(a=>a?.role).lastIndexOf(o.z7.USER),i=g>=0?f[g]:f.at(-1),j=f.slice(0,g>=0?g:-1).map(y).filter(Boolean),k=w(i?.content)||"Continue.",l=v(L(1,e?`${e}
118
119
 
119
120
  ${k}`:k),L(2,u().randomUUID()),M(3,new Uint8Array),(0,h.Xh)(4,0,1)),m=j.length?v(...j.map(a=>M(1,a))):null,n=v(M(1,l),...m?[M(7,m)]:[]),p=M(1,n),q=String(d||"").toLowerCase(),r="ultra"===q?"max":"minimal"===q?"low":q,s=r&&"none"!==r?M(3,v(L(1,/gpt-/i.test(b)?"reasoning":"effort"),L(2,r))):null,t=v(L(1,b),(0,h.Xh)(7,0,1),...s?[s]:[]),x=v(L(1,b),L(3,b),L(4,b)),z=(0,h.Il)(c),A=v(M(1,new Uint8Array),M(2,p),M(3,x),...z.length?[M(4,z)]:[],M(9,t));return(0,h.tM)(M(1,A))}(a,P,J,b.reasoning_effort||b.reasoning?.effort)),c};try{q=U(I)}catch(a){throw Error(`Cursor AgentService request failed: ${a.message}`)}try{r=await q.responseHeaders}catch(a){throw q.close(),Error(`Cursor AgentService request failed: ${a.message}`)}let V=Number(r[":status"]||0);if(200!==V){let a="";try{for(;;){let{done:b,value:c}=await q.read();if(b)break;a+=Buffer.from(c).toString("utf8")}}catch{}return q.close(),{response:new Response(JSON.stringify({error:{message:`Cursor AgentService ${V}: ${a||"request failed"}`,type:"api_error"}}),{status:V||g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:x,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}}let W=`chatcmpl-msg_${Date.now()}`,X=Math.floor(Date.now()/1e3),Y=D(a),Z=Buffer.alloc(0),$=!1,_="",aa=0,ab=!1,ac=async a=>{let b=()=>{(a=>{if(ab||!_)return;let b=Y?E(_):_.trim();b&&(ab=!0,a({type:"text",value:b}))})(a),$=!0,ab?a({type:"done"}):a({type:"error",value:"Cursor AgentService returned an empty turn"})};try{for(;!$;){let{done:c,value:d}=await q.read();if(c)break;Z=Buffer.concat([Z,Buffer.from(d)]),Z=function(a,b){let c=Buffer.from(a||[]);for(;c.length>=5;){let a=c[0],d=c.readUInt32BE(1);if(c.length<5+d)break;let e=c.subarray(5,5+d);c=c.subarray(5+d),1&a&&(e=s().gunzipSync(e)),2&a||b(e)}return c}(Z,c=>{if($)return;let d=(0,h.Y8)(c);if(d.has(1)){let c=(0,h.Y8)(d.get(1)[0].value);if(c.has(1)){let b=z((0,h.Y8)(c.get(1)[0].value),1);b&&(ab=!0,a({type:"text",value:b}))}if(c.has(4)){let b=z((0,h.Y8)(c.get(4)[0].value),1);if(b&&(_+=b,Y)){let b=E(_);if(b.length>aa){let c=b.slice(aa);aa=b.length,ab=!0,a({type:"text",value:c})}}}c.has(14)&&b()}if(d.has(4)){let a=(0,h.Y8)(d.get(4)[0].value),b=a.get(1)?.[0]?.value||0,c=a.get(4)?.[0]?.value||null;a.has(2)?q.write(C(b,2,M(1,new Uint8Array),c)):a.has(3)&&q.write(C(b,3,new Uint8Array,c))}if(d.has(2)){let b=(0,h.Y8)(d.get(2)[0].value);if(b.has(10))i?.info?.("CURSOR","AgentService request_context ack"),q.write(function(a){let{id:b,execId:c}=A(a),d=M(1,new Uint8Array);return B(b,c,10,M(1,d))}(b));else if(b.has(11)){let c=(0,h._e)(b.get(11)[0].value),d=c.toolName||c.name;d?(i?.info?.("CURSOR",`AgentService MCP tool_call ${d}`),$=!0,a({type:"tool_call",value:{id:c.toolCallId||`call_${u().randomUUID()}`,name:d,arguments:JSON.stringify(c.args||{})}}),a({type:"done",finishReason:"tool_calls"})):(Q(`[CURSOR AGENT] Unsupported exec request fields: ${[...b.keys()].join(",")}`),$=!0,a({type:"error",value:"Cursor AgentService requested an unsupported IDE tool"}))}else{let c=function(a){let{id:b,execId:c}=A(a),d=[...a?.keys?.()||[]].find(a=>1!==a&&15!==a),e=N[d];return e?9===d?B(b,c,9,new Uint8Array):B(b,c,e,M(2,L(2,"Tool not available in this environment. Use the MCP tools provided instead."))):null}(b);c?(i?.info?.("CURSOR",`AgentService rejected IDE exec fields=${[...b.keys()].join(",")}`),q.write(c)):(Q(`[CURSOR AGENT] Unsupported exec request fields: ${[...b.keys()].join(",")}`),$=!0,a({type:"error",value:"Cursor AgentService requested an unsupported IDE tool"}))}}})}$||b()}finally{try{q.end()}catch{}try{q.close()}catch{}}},ad=async a=>($=!1,ab=!1,_="",aa=0,Z=Buffer.alloc(0),await ac(a),{sawContent:ab}),ae=!1,af=async a=>{ae=!1;let b=b=>{("text"===b.type||"thinking"===b.type||"tool_call"===b.type)&&(ae=!0),a(b)},c=0;for(;;){let a=null,d=await ad(c=>{"error"===c.type?a=c:b(c)});if(a&&H.length>=S&&!ae&&c<R&&!G.signal.aborted){c++,i?.info?.("CURSOR",`empty_turn on ${H.length}-message session; retry ${c}/${R} with tail-only frame`);let e=U(I=function(a){if(!Array.isArray(a)||0===a.length)return a||[];let b=a.filter(a=>a?.role===o.z7.SYSTEM&&!String(a?.content||"").includes("[9router]")),c=a.filter(a=>a?.role!==o.z7.SYSTEM),d=c.length-1;for(let a=c.length-1;a>=0;a--)if(c[a]?.role===o.z7.USER||c[a]?.role===o.z7.TOOL){d=a;break}let e=d>0&&c[d-1]?.role===o.z7.ASSISTANT?d-1:d,f=c.slice(Math.max(0,e));return[...b,{role:o.z7.SYSTEM,content:`[9router] Long session: ${a.length} messages trimmed to the latest turn. Answer the current request; re-read files if needed.`},...f]}(H));q=e;let f=0;try{f=Number((await e.responseHeaders)[":status"]||0)}catch{return e.close(),b(a),d}if(200!==f)return e.close(),b(a),d;await new Promise(a=>setTimeout(a,T));continue}return a&&b(a),d}};if(!1===c){let c="",d="",e=null,f=[],h="stop";return(await af(a=>{"text"===a.type?c+=a.value:"thinking"===a.type?d+=a.value:"tool_call"===a.type?(f.push({id:a.value.id,type:"function",function:{name:a.value.name,arguments:a.value.arguments}}),h="tool_calls"):"error"===a.type?e=a.value:"done"===a.type&&a.finishReason&&(h=a.finishReason)}),e)?{response:new Response(JSON.stringify({error:{message:e,type:"api_error"}}),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}}),url:x,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}:{response:new Response(JSON.stringify({id:W,object:"chat.completion",created:X,model:a,choices:[{index:0,message:{role:"assistant",content:c||null,...d?{reasoning_content:d}:{},...f.length?{tool_calls:f}:{}},finish_reason:h}],usage:(0,k.OF)(b,c.length,n.h.OPENAI)}),{headers:{"Content-Type":"application/json"}}),url:x,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}}let ag=new TextEncoder;return{response:new Response(new ReadableStream({start(b){af(c=>{"text"===c.type?b.enqueue(ag.encode((0,m.z)({id:W,created:X,model:a,delta:{content:c.value}}))):"thinking"===c.type?b.enqueue(ag.encode((0,m.z)({id:W,created:X,model:a,delta:{reasoning_content:c.value}}))):"tool_call"===c.type?b.enqueue(ag.encode((0,m.z)({id:W,created:X,model:a,delta:{tool_calls:[{index:0,id:c.value.id,type:"function",function:{name:c.value.name,arguments:c.value.arguments}}]}}))):"error"===c.type?(b.enqueue(ag.encode((0,m.N)({error:{message:c.value,type:"api_error"}}))),b.enqueue(ag.encode(l.$U)),b.close()):"done"===c.type&&(b.enqueue(ag.encode((0,m.z)({id:W,created:X,model:a,delta:{},finishReason:c.finishReason||"stop"}))),b.enqueue(ag.encode(l.$U)),b.close())}).catch(a=>b.error(a))},cancel(){G.abort()}}),{headers:l.pb}),url:x,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:h,proxyOptions:i=null}){if(Array.isArray(b?.messages)&&0!==b.messages.length&&b.messages.every(a=>Array.isArray(a?.content)?a.content.every(x):a?.content==null||"string"==typeof a.content))try{return await this.executeAgent({model:a,body:b,stream:c,credentials:d,signal:e,log:h,proxyOptions:i})}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:`${f.sr.cursor?.agentEndpoint||""}${K}`,headers:{},transformedBody:b}}let j=this.buildUrl(),k=this.buildHeaders(d),l=this.transformRequest(a,b,c,d);try{let d=J&&!(O(i)||i?.enabled===!0||i?.connectionProxyEnabled===!0||i?.vercelRelayUrl)?await this.makeHttp2Request(j,k,l,e):await this.makeFetchRequest(j,k,l,e,i);if(200!==d.status){let a=d.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${d.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:d.status||g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:b}}return{response:!1!==c?this.transformProtobufToSSE(d.body,a,b):this.transformProtobufToJSON(d.body,a,b),url:j,headers:k,transformedBody:b}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:b}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,i="",j="",l=[],m=new Map,o=new Set,p=0;for(Q(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){let b=F(a,f,p,"");if("done"===b.status)break;if(f=b.offset,p++,"skip"===b.status)continue;let c=b.payload;if(c.length>0&&123===c[0])try{let a=c.toString("utf-8");if(a.includes('"error"')){let b=i||m.size>0;if(Q(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return G(JSON.parse(a))}}catch{}let d=(0,h.CP)(new Uint8Array(c));if(Q(`[CURSOR DECODED] Frame ${p}:`,d),d.error){let a=i||m.size>0;if(Q(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${d.error}`),a)break;return new Response(JSON.stringify({error:{message:d.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(d.toolCall){let a=d.toolCall;if(m.has(a.id)){let b=m.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else m.set(a.id,{...a});if(a.isLast){let b=m.get(a.id);o.add(a.id),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}d.text&&(i+=d.text),d.thinking&&(j+=d.thinking)}let q=D(b)?E(j):"",r=i||q;for(let[a,b]of(Q(`[CURSOR BUFFER] Parsed ${p} frames, toolCallsMap size: ${m.size}, finalized toolCalls: ${l.length}`),m.entries()))o.has(a)||(Q(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));Q(`[CURSOR BUFFER] Final toolCalls count: ${l.length}`);let s={role:"assistant",content:r||null};l.length>0&&(s.tool_calls=l);let t=(0,k.OF)(c,r.length,n.h.OPENAI);return new Response(JSON.stringify({id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:s,finish_reason:l.length>0?"tool_calls":"stop"}],usage:t}),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],i=0,j="",o="",p=0,q=[],r=new Map,s=new Set,t=new Set,u=0;for(Q(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);i<a.length;){let c=F(a,i,u," SSE");if("done"===c.status)break;if(i=c.offset,u++,"skip"===c.status)continue;let k=c.payload;if(123===k[0])try{let a=k.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||j||r.size>0;if(Q(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return G(JSON.parse(a))}}catch{}let l=(0,h.CP)(new Uint8Array(k));if(Q(`[CURSOR DECODED SSE] Frame ${u}:`,l),l.error){let a=f.length>0||j||r.size>0;if(Q(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${l.error}`),a)break;return new Response(JSON.stringify({error:{message:l.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(l.toolCall){let a=l.toolCall;if(0===f.length&&f.push((0,m.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}})),r.has(a.id)){let c=r.get(a.id);c.function.arguments.length,c.function.arguments+=a.function.arguments,c.isLast=a.isLast,a.function.arguments&&(t.add(a.id),f.push((0,m.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c.index,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}})))}else{let c=q.length;s.add(a.id),q.push({...a,index:c}),r.set(a.id,{...a,index:c}),t.add(a.id),f.push((0,m.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}}))}}if(l.text&&(j+=l.text,f.push((0,m.z)({id:d,created:e,model:b,delta:0===f.length&&0===q.length?{role:"assistant",content:l.text}:{content:l.text}}))),D(b)&&l.thinking){let a=E(o+=l.thinking);if(a.length>p){let c=a.slice(p);p=a.length,j+=c,f.push((0,m.z)({id:d,created:e,model:b,delta:0===f.length&&0===q.length?{role:"assistant",content:c}:{content:c}}))}}}for(let[a,c]of(Q(`[CURSOR BUFFER SSE] Parsed ${u} frames, toolCallsMap size: ${r.size}, toolCalls array: ${q.length}`),r.entries()))if(!s.has(a)){Q(`[CURSOR BUFFER SSE] Finalizing incomplete tool call: ${a}, isLast=${c.isLast}`);let g=q.length;q.push({id:c.id,type:c.type,index:g,function:{name:c.function.name,arguments:c.function.arguments}}),t.has(c.id)||f.push((0,m.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:g,id:c.id,type:"function",function:{name:c.function.name,arguments:c.function.arguments}}]}}))}0===f.length&&0===q.length&&f.push((0,m.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}}));let v=(0,k.OF)(c,j.length,n.h.OPENAI);return f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{},finish_reason:q.length>0?"tool_calls":"stop"}],usage:v})}
120
121
 
121
- `),f.push(l.$U),new Response(f.join(""),{status:200,headers:{...l.pb}})}async refreshCredentials(){return null}}d()}catch(a){d(a)}},1)},23013:(a,b,c)=>{c.d(b,{Ay:()=>C});var d=c(74957),e=c(35024),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):
122
- ${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(35024);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}
122
+ `),f.push(l.$U),new Response(f.join(""),{status:200,headers:{...l.pb}})}async refreshCredentials(){return null}}d()}catch(a){d(a)}},1)},20690:(a,b,c)=>{c.d(b,{_5:()=>_});var d=c(77598),e=c(74957),f=c(78959),g=c(4052),h=c(80479);let i="https://muse.ai",j=`${i}/thread/new`,k=`${i}/api/session`,l=`${i}/api/hatch/vm/wake`,m="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36";class n extends Error{constructor(a){super(a),this.name="MuseWebAuthError"}}class o extends Error{constructor(a){super(a),this.name="MuseWebUpstreamError"}}class p extends Error{constructor(a){super(a),this.name="MuseWebQuotaError"}}class q extends Error{constructor(a){super(a),this.name="MuseWebTimeoutError"}}let r=new Set(["path","domain","expires","max-age","secure","httponly","samesite"]);function s(a){return String(a||"").split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(-1===b)return null;let c=a.slice(0,b).trim(),d=a.slice(b+1).trim();return!c||!d||r.has(c.toLowerCase())?null:{name:c,value:d}}).filter(Boolean)}function t(a){return a.filter(a=>a.value).map(a=>`${a.name}=${a.value}`).join("; ")}async function u(a,{wakeVm:b=!0,timeoutMs:c=15e3,signal:d}={}){let e,f={};for(let{name:b,value:c}of s(a))f[b]=c;try{e=await fetch(k,{headers:{"User-Agent":m,Origin:i,Referer:j,Accept:"application/json",Cookie:t(Object.entries(f).map(([a,b])=>({name:a,value:b})))},signal:d})}catch(a){if(d?.aborted)throw a;throw new o(`muse.ai session endpoint unreachable: ${a.message}`)}if(401===e.status||403===e.status)throw new n(`muse.ai session rejected (HTTP ${e.status}); cookies are no longer valid`);if(e.status>=400)throw new o(`muse.ai session endpoint returned HTTP ${e.status}`);for(let a of function(a){if("function"==typeof a.headers.getSetCookie)return a.headers.getSetCookie();let b=a.headers.get("set-cookie");return b?[b]:[]}(e)){let b=function(a){let b=a.split(";")[0].trim(),c=b.indexOf("=");return c<=0?null:{name:b.slice(0,c).trim(),value:b.slice(c+1).trim()}}(a);b?.value&&(f[b.name]=b.value)}let g={};try{(e.headers.get("content-type")||"").startsWith("application/json")&&(g=await e.json())}catch{}let h={session_status:g.status,vm_id:g.vm_id,vm_state:g.vm_state};if(b&&h.vm_id&&"DISABLED"!==h.vm_state)try{let a=await fetch(l,{method:"POST",headers:{"User-Agent":m,Origin:i,Referer:j,"Content-Type":"application/json",Cookie:t(Object.entries(f).map(([a,b])=>({name:a,value:b})))},body:JSON.stringify({vm_id:h.vm_id,retry_count:0,connect_attempt_id:crypto.randomUUID()}),signal:d});h.vm_wake_ok=200===a.status}catch{h.vm_wake_ok=!1}let p=t(Object.entries(f).map(([a,b])=>({name:a,value:b})));return h.session_status&&"assigned"!==h.session_status&&(h.warning=`session status "${h.session_status}"`),{cookieHeader:p,jar:f,meta:h}}let v={system:"System",developer:"System",user:"User",assistant:"Assistant",tool:"Tool"},w="textarea",x='div[class*="hatch-agent-bubble-bg"]',y='[data-testid="hatch-inline-approval-card"]',z=["log in","sign in","create an account","use another account"],A=["out of credits","usage limit","limit reached","token limit"],B=["Still sending","Connecting..."];function C(a){return JSON.stringify(a)}let D=`(() => {
123
+ const body = document.body ? document.body.innerText : '';
124
+ const hydration = document.querySelector('[data-hatch-shell-hydration-state]');
125
+ return {
126
+ ready: document.readyState === 'complete' && !!document.querySelector(${C(w)})
127
+ && (!hydration || hydration.getAttribute('data-hatch-shell-hydration-state') === 'hydrated')
128
+ && !body.includes('Connecting...'),
129
+ hasInput: !!document.querySelector(${C(w)}),
130
+ path: location.pathname,
131
+ head: body.slice(0, 800),
132
+ };
133
+ })()`,E=`(() => {
134
+ const scrollers = [...document.querySelectorAll('*')].filter(e => {
135
+ const s = getComputedStyle(e);
136
+ return (s.overflowY === 'auto' || s.overflowY === 'scroll') && e.scrollHeight > e.clientHeight + 50;
137
+ });
138
+ scrollers.forEach(e => { e.scrollTop = e.scrollHeight; });
139
+ const bubbles = [...document.querySelectorAll(${C(x)})];
140
+ const last = bubbles.length ? (bubbles[bubbles.length - 1].innerText || '').trim() : '';
141
+ const atts = [...document.querySelectorAll(${C('[data-testid^="hatch-chat-attachment-presentation-"]')})].map(a => {
142
+ const v = a.querySelector('video'), i = a.querySelector('img');
143
+ const m = v || i;
144
+ return {
145
+ tid: a.getAttribute('data-testid') || '',
146
+ kind: v ? 'video' : (i ? 'image' : 'unknown'),
147
+ src: m ? (m.currentSrc || m.src || '') : '',
148
+ w: m ? (m.videoWidth || m.naturalWidth || 0) : 0,
149
+ h: m ? (m.videoHeight || m.naturalHeight || 0) : 0,
150
+ };
151
+ });
152
+ const tail = document.body ? document.body.innerText.slice(-600) : '';
153
+ return { agentCount: bubbles.length, lastText: last,
154
+ generating: !!document.querySelector(${C('button[aria-label*="Stop" i]')}),
155
+ approval: !!document.querySelector(${C(y)}),
156
+ attachments: atts, tail };
157
+ })()`,F=`(() => {
158
+ const denied = [];
159
+ for (const card of document.querySelectorAll(${C(y)})) {
160
+ const btn = [...card.querySelectorAll('button,[role=button]')]
161
+ .find(b => /^(deny|decline|reject|don.t allow)$/i.test((b.innerText || '').trim()));
162
+ if (btn && !btn.disabled) {
163
+ btn.click();
164
+ denied.push(card.getAttribute('aria-label') || 'approval request');
165
+ }
166
+ }
167
+ return denied;
168
+ })()`,G=`(() => {
169
+ const bubbles = [...document.querySelectorAll(${C(x)})];
170
+ const b = bubbles.length ? bubbles[bubbles.length - 1] : null;
171
+ if (!b) return { links: [], html: '' };
172
+ const urls = [];
173
+ const push = (u) => { if (u && !urls.includes(u)) urls.push(u); };
174
+ b.querySelectorAll('video, source').forEach(m => push(m.currentSrc || m.src || ''));
175
+ b.querySelectorAll('a[href]').forEach(a => push(a.href || ''));
176
+ b.querySelectorAll('img').forEach(m => push(m.currentSrc || m.src || ''));
177
+ const text = b.innerText || '';
178
+ const re = /https?:\\/\\/[^\\s)<>"']+/g;
179
+ let mm; while ((mm = re.exec(text))) push(mm[0]);
180
+ return { links: urls, html: (b.outerHTML || '').slice(0, 2000) };
181
+ })()`,H=`(() => {
182
+ const btn = [...document.querySelectorAll('button,[role=button]')]
183
+ .filter(b => b.offsetParent !== null)
184
+ .find(b => /send|发送/i.test((b.getAttribute('aria-label') || '') + ' ' + (b.getAttribute('data-testid') || '')));
185
+ if (!btn) return 'missing';
186
+ if (btn.disabled) return 'disabled';
187
+ btn.click();
188
+ return 'clicked';
189
+ })()`,I=`!(document.querySelector(${C(w)}) || { value: '' }).value`,J={video:9e4,image:8e3},K=a=>new Promise(b=>setTimeout(b,a));function L(a,b,c=null){return{id:`chatcmpl-muw-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:a?{content:a}:{},finish_reason:c}]}}function M(a,b,c={}){return new Response(JSON.stringify({error:b}),{status:a,headers:{"Content-Type":"application/json",...c}})}function N(a){let b=String(a?.apiKey??"").trim()||String(a?.cookie??"").trim();if(b)return b;let c=a?.providerSpecificData;return c&&"object"==typeof c&&!Array.isArray(c)?String(c.cookie??"").trim():""}async function O(a){let b=Date.now()+45e3,c={};for(;Date.now()<b;){await K(250);try{if((c=await a.evaluate(D)||{}).ready)return c}catch{}}let d=(c.head||"").toLowerCase();if(z.some(a=>d.includes(a)))throw new n("muse.ai redirected to login; cookies are no longer valid");throw new q("muse.ai page did not become ready")}async function P(a){let b=await a.evaluate(E)||{},c=b.tail||"",d=c.toLowerCase(),e=A.find(a=>d.includes(a));if(e){let a=d.indexOf(e),f=c.slice(Math.max(0,a-120),a+120).trim().split(/\s+/).join(" "),g=b.lastText||"";if(!b.generating&&g.toLowerCase().includes(e))throw new p(`muse.ai reports the account is out of quota: …${f}…`)}return b}async function Q(a){await a.evaluate(F)}async function R(a,b){let c=await a.evaluate(`(() => {
190
+ const ta = document.querySelector(${C(w)});
191
+ if (!ta) return { ok: false, err: 'no-input' };
192
+ ta.focus();
193
+ const setter = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value').set;
194
+ setter.call(ta, ${C(b)});
195
+ ta.dispatchEvent(new Event('input', { bubbles: true }));
196
+ return { ok: true, len: ta.value.length };
197
+ })()`);if(!c?.ok)throw new o(`cannot fill muse.ai chat input: ${c?.err}`);let d=Date.now()+5e3;for(;Date.now()<d;){if(await a.evaluate(H)==="clicked")return;await K(100)}if(await a.keyboard.press("Enter"),await K(500),!await a.evaluate(I))throw new o("send button not found and Enter did not submit")}async function S(a){let b=String(a).match(/^data:(image\/[^;]+);base64,(.+)$/);if(b)return{b64:b[2],mime:b[1]};if(/^https?:/i.test(a)){let b=await fetch(a,{headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36",Accept:"image/*"}});if(!b.ok)return null;let c=Buffer.from(await b.arrayBuffer()),d=(b.headers.get("content-type")||"").split(";")[0].trim()||"image/png";return d.startsWith("image/")?{b64:c.toString("base64"),mime:d}:null}return null}async function T(a,b){if(!b?.length)return 0;let c=0,d=0;for(let[h,i]of b.slice(0,8).entries()){var e,f,g;let b=await S(i).catch(()=>null);if(!b){d++;continue}let j=(b.mime.split("/")[1]||"png").replace("jpeg","jpg"),k=await a.evaluate((e=b.b64,f=b.mime,g=`input_${h}.${j}`,`(() => {
198
+ try {
199
+ const input = document.querySelector(${C('input[type="file"]')});
200
+ if (!input) return { ok: false, err: 'no-file-input' };
201
+ const bin = atob(${C(e)});
202
+ const bytes = new Uint8Array(bin.length);
203
+ for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);
204
+ const dt = new DataTransfer();
205
+ dt.items.add(new File([bytes], ${C(g)}, { type: ${C(f)} }));
206
+ input.files = dt.files;
207
+ input.dispatchEvent(new Event('change', { bubbles: true }));
208
+ return { ok: true };
209
+ } catch (e) { return { ok: false, err: String(e) }; }
210
+ })()`));if(!k?.ok)throw new o(`failed to attach image: ${k?.err}`);c++}if(!c&&d>0)throw new o(`could not download any input image (${d} failed — check the URLs)`);return c&&await K(1e3),c}async function U({page:a,base:b,signal:c,onDelta:d}){let e=b.agentCount||0,f=b.lastText||"",g=Date.now(),h="",i=null,j=0,k=!1;for(;;){if(c?.aborted)throw Error("Request aborted");let b=Date.now()-g;if(b>3e5)throw new q("assistant reply timed out");if(!k&&b>45e3)throw new q("no first token from assistant");await K(300);let l=await P(a);if(l.approval){await Q(a);continue}let m=l.lastText||"";if(!((l.agentCount||0)>e||m&&m!==f)||!m){let a=l.tail||"";if(b>15e3&&B.some(b=>a.includes(b)))throw new q("upstream workspace is stuck connecting");continue}if(k=!0,m!==i){let a=m.startsWith(h)?m.slice(h.length):m;a&&(h=m,d?.(a)),i=m,j=0}else if(j++,!l.generating&&j>=4||j>=12)return h}}let V=[".mp4",".webm",".mov",".m4v"],W=[".png",".jpg",".jpeg",".webp",".gif",".avif"],X=["videodelivery.net","cloudflarestream.com","cloudflarestorage.com","amazonaws.com","storage.googleapis.com","blob.core.windows.net","musecdn","cdn.muse","muse-cdn"],Y=["/media/","/download","/dl/","/video","/attachment","/files/"];async function Z({page:a,base:b,kind:c,timeoutMs:d,signal:e,log:f}){let g=(b.attachments||[]).length,h=b.agentCount||0,i=J[c]??8e3,j=Date.now(),k=null,l=!1,m=!1,n=!1,p=0;for(;!((p=Date.now()-j)>=d)||n&&p<2.5*d;){if(e?.aborted)throw Error("Request aborted");await K(600);let b=await P(a);if(b.approval){await Q(a),l=!0,k=null;continue}let d=(b.attachments||[]).slice(g),j=d.filter(a=>a.src&&a.kind===c);if(j.length)return j[j.length-1];if(n=!!b.generating||d.some(a=>(a.tid||"").includes(c)),d.some(a=>(a.tid||"").includes(c))){k=null;continue}let p=b.lastText||"";if((b.agentCount||0)>h&&p&&!b.generating){if(null===k)k=Date.now();else if(Date.now()-k>=i){if(!m){f?.info?.("MUSE-WEB",`${c} not attached (${l?"denied approval":"text-only reply"}); asking for it in chat`),await R(a,`Please attach the final ${c} file here in the chat`+(l?" instead of uploading it.":", as a single attachment.")),m=!0,k=null,h=b.agentCount||0;continue}let d=function(a,b){let c="video"===b?V:W,d=a=>{let b=a.toLowerCase(),d=b.split("?")[0].split("#")[0];return a.startsWith("blob:")||c.some(a=>d.endsWith(a))?3:X.some(a=>b.includes(a))?2:+!!Y.some(a=>b.includes(a))},e=a.filter(a=>a&&!a.startsWith("mailto:")&&!a.startsWith("javascript:"));return e.sort((a,b)=>d(b)-d(a)),e.length&&d(e[0])>0?e[0]:null}((await a.evaluate(G).catch(()=>null)||{}).links||[],c);if(d)return f?.info?.("MUSE-WEB",`${c} delivered as link in text bubble`),{src:d,kind:c};throw new o(`muse.ai replied with text only: ${p.slice(0,200)}`)}}else k=null}throw n&&f?.warn?.("MUSE-WEB",`${c} still generating after ${Math.round(p/1e3)}s; giving up`),new q(`${c} generation timed out`)}async function $(a,b,c){var d;let e=await a.evaluate((d=b.src,`(async () => {
211
+ try {
212
+ const r = await fetch(${C(d)});
213
+ const b = await r.blob();
214
+ const buf = new Uint8Array(await b.arrayBuffer());
215
+ let s = '';
216
+ for (let i = 0; i < buf.length; i += 0x8000) s += String.fromCharCode.apply(null, buf.subarray(i, i + 0x8000));
217
+ return { ok: true, mime: b.type || '', b64: btoa(s) };
218
+ } catch (e) { return { ok: false, err: String(e) }; }
219
+ })()`));if(!e?.ok)throw new o(`failed to download generated ${c}: ${e?.err}`);return{b64:e.b64,mime:e.mime||("video"===c?"video/mp4":"image/png")}}class _ extends e.H{constructor(){super("muse-web",{id:"muse-web",baseUrl:"https://muse.ai"})}async testConnection(a){try{let b=N(a);if(!b)return!1;return s(b).some(a=>"hatch_sess"===a.name&&a.value.length>0)}catch{return!1}}async _openThreadPage(a,{signal:b,log:c}){let e=N(a);if(!e)throw new n("Missing muse.ai cookies");let f=await u(e,{signal:b});c?.debug?.("MUSE-WEB",`session renewed (status=${f.meta.session_status??"?"}, vm=${f.meta.vm_state??"?"})`);let i=`muse-web:${(0,d.createHash)("sha256").update(e).digest("hex").slice(0,16)}`,k=(0,g.Mt)(),l=await (0,h.qG)(i,{cookieDomain:".muse.ai",cookieString:f.cookieHeader,...k?{executablePath:k}:{}});try{var m;await l.context.addCookies((m=f.cookieHeader,s(m).map(({name:a,value:b})=>({name:a,value:b,domain:".muse.ai",path:"/",secure:!0,httpOnly:!1,sameSite:"Lax",expires:-1}))))}catch{await (0,h.zD)(i),l=await (0,h.qG)(i,{cookieDomain:".muse.ai",cookieString:f.cookieHeader,...k?{executablePath:k}:{}})}let o=await l.context.newPage();return await o.goto(j,{waitUntil:"domcontentloaded",timeout:45e3}),await O(o),{key:i,page:o}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:h}){let i=b||{},j=i.messages||[],k=a||"muse-chat",l=i.tools,m=i.functions;if(null!=l&&(!Array.isArray(l)||l.length>0))return{response:M(400,"Muse Web does not support OpenAI function tools"),url:"https://muse.ai",headers:{},transformedBody:b};if(null!=m&&(!Array.isArray(m)||m.length>0))return{response:M(400,"Muse Web does not support legacy function tools"),url:"https://muse.ai",headers:{},transformedBody:b};let{text:r,images:s}=function(a){let b=[],c=[];for(let d of a||[]){let a=d?.role||"user",e=(function(a,b){if(null==a)return"";if("string"==typeof a)return a;if(!Array.isArray(a))return"";let c=[];for(let d of a)if(d&&"object"==typeof d){if("text"===d.type||"input_text"===d.type||"output_text"===d.type)d.text&&c.push(d.text);else if("image_url"===d.type||"input_image"===d.type){let a=d.image_url&&"object"==typeof d.image_url?d.image_url.url:d.image_url;a&&b.push(a)}}return c.filter(Boolean).join("\n")})(d?.content,b).trim();e&&c.push([a,e])}if(0===c.length)return{text:"",images:b};if(1===c.length&&"user"===c[0][0])return{text:c[0][1],images:b};let d=c.map(([a,b])=>`[${v[a]||a}]
220
+ ${b}`);return d.push("[Instruction]\nContinue the conversation above and reply as the Assistant to the last User message. Output only the reply."),{text:d.join("\n\n"),images:b}}(j);if(!r)return{response:M(400,"No user message found"),url:"https://muse.ai",headers:{},transformedBody:b};let t=null,u=()=>{t?.close().catch(()=>{})};e?.addEventListener("abort",u,{once:!0});try{t=(await this._openThreadPage(d,{signal:e,log:h})).page;let a=await P(t);await T(t,s),await R(t,r);let g=async()=>{e?.removeEventListener("abort",u),await t?.close().catch(()=>{})};if(c){let c=new TextEncoder,d=t;t=null;let g=new ReadableStream({async start(b){try{await U({page:d,base:a,signal:e,onDelta:a=>{b.enqueue(c.encode(`data: ${JSON.stringify(L(a,k))}
221
+
222
+ `))}}),b.enqueue(c.encode(`data: ${JSON.stringify(L("",k,"stop"))}
223
+
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
+
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)}
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}
254
+
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))}
259
+
260
+ `))}}),b.enqueue(a.encode(`data: ${JSON.stringify(H("",B,"stop"))}
261
+
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"}})}
263
+
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}
265
+
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(70298),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:()=>al});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(14229),q=c(70452);let r=new((c.n(q))())({strict:!1,allErrors:!1,validateFormats:!1}),s=new WeakMap;function t(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function u(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=s.get(a);f||(f=new Map,s.set(a,f));let g=f.get(b);if(void 0===g){try{g=r.compile(e)}catch{g=null}f.set(b,g)}return!!g&&!0===g(c)}function v(a,b,c){if(!b.toolCalls)return b;let d=(0,p.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,p.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(!u(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 w(a){return"string"==typeof a&&!!a.trim()&&(!!/<\/?(?:|||\|\|?)DSML(?:|||\|\|?)\s*(?:calls|invoke|parameter)\b/i.test(a)||/<\/?(?:tool|tool_call)(?::|\s|>)/i.test(a))}function x(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let y=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function z(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 A(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let B=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function C(a){return"string"==typeof a&&a.length>0?a:null}let D="[||]",E=`${D}{2}DSML${D}{2}`,F=RegExp(`</?${E}\\s*(?:calls|invoke|parameter)\\b[^>]*>|<${E}\\s*/\\s*(?:calls|invoke|parameter)\\s*>`,"gi");function G(a,b,c){let d=[],e=RegExp(`(?:</?${E}\\s*${b}\\b([^>]*)>|<${E}\\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 H(a,b,c,d,e){let f=z(a.attrs,"name");if(!f)return null;let g=b?b.start:d,h=G(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=z(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:z(b.attrs,"content")??"",j=e?e.end:g}if(!Object.values(i).some(a=>""!==a))return null;let k=(0,p.Ub)(f,e)??f;return{start:a.start,end:b?b.end:j,name:k,args:i}}let I=/<[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)([^>]*)>/gi,J=/<\/[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)\s*>/gi,K=/<(?:(?:\|DSML\|)|(?:||DSML||))invoke\b([^>]*)>([\s\S]*?)<\/(?:(?:\|DSML\|)|(?:||DSML||))invoke\s*>/gi,L=/<(?:(?:\|DSML\|)|(?:||DSML||))parameter\b([^>]*)>([\s\S]*?)(?:<\/(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>|<(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>)/gi,M=/<(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\b[^>]*>[^]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\s*>/i,N=/(?:<\|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 O(a){try{return JSON.parse(a)}catch{return null}}function P(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 Q(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,p.x2)(c),h=(d=a,RegExp(`</?${E}\\s*(?:calls|invoke|parameter)\\b`,"i").test(d))?function(a,b){let c=[],d=[],e=RegExp(`<${E}\\s*calls\\s*>([\\s\\S]*?)(?:</${E}\\s*calls\\s*>|<${E}\\s*/\\s*calls\\s*>)`,"gi"),f=RegExp(`(?:</${E}\\s*calls\\s*>|<${E}\\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=G(j,"invoke",k);for(let d=0;d<m.length;d+=1){if(!z(m[d].attrs,"name"))continue;let e=H(m[d],m[d+1],a,k+j.length,b);e&&c.push(e),m[d+1]&&(d+=1)}}let i=G(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(!z(i[d].attrs,"name"))continue;let e=H(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,p.x2)(c),e=(0,p.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,p.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]]=O(a)??a}if(Object.keys(b).length>0)return b;let e=O(a.trim()||"{}");return e&&"object"==typeof e&&!Array.isArray(e)&&Object.assign(b,e),b}(i[3]),n=t(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(!u(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,p.LW)(a,g),toolCalls:f,recognized:!0}}(a,b,c);if(h.recognized&&g(h))return v(a,h,c);let i=function(a,b,c){let d=(0,p.x2)(c),e=[],f=[];N.lastIndex=0;let g=null;for(;null!==(g=N.exec(a));){let a=(0,p.Ub)(g[1],d),h=O(g[2].trim());if(!a||!h||"object"!=typeof h||Array.isArray(h))continue;let i=P(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){K.lastIndex=0;let g=null;for(;null!==(g=K.exec(a));){let a=z(g[1]||"","name"),h=a?(0,p.Ub)(a,c):null;if(!h)continue;let{args:i,found:j}=function(a){let b={},c=!1;L.lastIndex=0;let d=null;for(;null!==(d=L.exec(a));){let a=z(d[1]||"","name");if(!a)continue;let e=d[2].trim();b[a]=O(e)??e,c=!0}return{args:b,found:c}}(g[2]);if(!j&&g[2].trim())continue;let k=P(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=M.test(a)||/<(?:(?:\|tool_call_)|(?:|tool▁call▁))/.test(a);return 0===e.length?{content:a,toolCalls:null,recognized:h}:{content:(0,p.LW)(a,f),toolCalls:e,recognized:h}}(a,b,c);if(i.recognized&&g(i))return v(a,i,c);e=(f=e=a).includes("DSML")?f.replace(I,(a,b,c)=>{let d=b.toLowerCase();if("calls"===d)return"";let e=z(c,"name"),f=null!==e?` name="${e}"`:"";return"invoke"===d?`<tool${f}>`:`<parameter${f}>`}).replace(J,(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(y.lastIndex=0;null!==(c=y.exec(a));)b.push({start:c.index,end:y.lastIndex,closing:"/"===c[1],suffix:c[2]?c[2].slice(1):"",attrs:c[3]||""});return b}(a);if(0===j.length&&!i)return v(a,(0,p.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,p.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||z(b.open.attrs,"name")||z(b.open.attrs,"id")||"",d=a.slice(b.innerStart,b.innerEnd).replace(F,""),e=function(a,b,c,d){let e,f=b.trim(),g=A(f,"name"),h=A(f,"arguments")??A(f,"parameters"),i=h?null:function(a){let b={},c=!1,d=null;for(B.lastIndex=0;null!==(d=B.exec(a));){let a=d[1]||"",e=d[2],f=z(a,"name");if(!f)continue;let g=z(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,p.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,p.n)(a))}let l=k?C(k.name)??C(k.type):null,m=g?(0,p.Ub)(g,c):null,n=l?(0,p.Ub)(l,c):null,o=a?(0,p.Ub)(a,c):null,q=null,r=!1,s=(a,b)=>{!q&&a&&(q=a,r=b)};if(s(m,!1),s(n,!1),s(o,!0),s(g,!1),s(l,!1),s(a,!0),!q&&!a&&k){let a=C(k.command),b=a?(0,p.Ub)(a,c):null;b&&(q=b,r=!1)}if(!q&&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&&(q=b[0],r=!1)}}if(!q)return null;if(h)e=(0,p.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:q,arguments:(0,p.r3)(e)}}(c,d,g,k);if(e){if(n){let a=(0,p.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,p.r3)(a.args)}});if(0===m.length)return{content:a,toolCalls:null};m.sort((a,b)=>a.start-b.start);let q=[],r=[];for(let a of m)q.push({id:`${b}_${q.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}))],w=(0,p.LW)(a,s);return q.length>0&&(w=w.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,p.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,p.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(!u(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:w,toolCalls:q},c)}function R(a,{min:b=-Number.MAX_SAFE_INTEGER,max:c=Number.MAX_SAFE_INTEGER}={}){return Number.isSafeInteger(a)&&a>=b&&a<=c}async function S(a){let b=await fetch("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});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||!R(d.difficulty,{min:1})||!R(d.expire_at,{min:0})||"string"!=typeof d.target_path)throw Error("Invalid DeepSeek PoW challenge");return d}function T(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function U(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function V(a,b){let c=a.replace(/FINISHED/g,"").replace(/^(SEARCH|WEB_SEARCH|SEARCHING)\s*/i,"");return U(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function W(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 X="https://chat.deepseek.com",Y=`${X}/api`,Z=`${Y}/v0/chat/completion`,$={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:X,Referer:`${X}/`,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","X-Client-Bundle-Id":"com.deepseek.chat","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"2.0.0"},_=new Map,aa=new Map;function ab(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function ac(a){let b=a?.apiKey||a?.accessToken;if("string"!=typeof b||0===b.length)return null;try{let a=JSON.parse(b);if("string"==typeof a?.value)return a.value}catch{}return b}function ad(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 ae(){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 af(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 ag(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=!1,j=b||"deepseek-web",k=T(j),l=[],m=a=>{let b=V(a,j);if(!b)return;let c=h;!c&&k?c="thinking":!c&&U(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=W(l,j);if(o&&(f+=`
267
+
268
+ ${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 ah(a,b,c){let d=_.get(a);if(d&&d.expiresAt>Math.floor(Date.now()/1e3))return d.accessToken;c?.info?.("DEEPSEEK-WEB","Acquiring access token from /users/current...");let e=await fetch(`${Y}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...$},signal:b??void 0});if(401===e.status||403===e.status)throw Error("Token invalid or expired — get a new userToken from DeepSeek localStorage");if(!e.ok)throw Error(`users/current HTTP ${e.status}`);let f=await e.json();if(f?.code&&0!==f.code){let b=f.msg||f?.data?.biz_msg||`error code ${f.code}`;throw _.delete(a),Error(`DeepSeek rejected token: ${b}`)}let g=f?.data?.biz_data||f?.biz_data;if(!g?.token){let a=f?.msg||f?.data?.biz_msg||"Unknown error";throw Error(`Failed to acquire token: ${a}`)}let h=g.token;return ab(_),_.set(a,{accessToken:h,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${h.length} chars)`),h}async function ai(a,b){let c=await fetch(`${Y}/v0/chat_session/create`,{method:"POST",headers:{...$,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:ae()},body:JSON.stringify({}),signal:b??void 0});if(!c.ok)throw Error(`chat_session/create HTTP ${c.status}`);let d=await c.json(),e=d?.data?.biz_data||d?.biz_data,f=e?.chat_session?.id;if(!f)throw Error(`No session id: code=${d?.code}`);return f}async function aj(a,b){try{await fetch(`${Y}/v0/chat_session/delete`,{method:"POST",headers:{...$,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})})}catch{}}async function ak(a,b,c="/api/v0/chat/completion"){return S({accessToken:a,headers:$,signal:b,targetPath:c})}class al extends d.H{constructor(){super("deepseek-web",{baseUrl:X})}async testConnection(a,b){try{let c=ac(a);if(!c)return!1;return!!await ah(c,b)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:g,log:h}){var i,j;let k,l,m=b||{},n=m.tools,o=Array.isArray(n)&&n.length>0,q=o?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=(0,p.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=t(a.parameters),d=t(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
+ 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):"",r=Array.isArray(m.messages)?m.messages:[],s=q?[{role:"system",content:q},...r]:r,u=d??{},v=ac(u);if(!v)return{response:ad(400,"Missing userToken — paste it from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:Z,headers:{},transformedBody:b};let{modelType:y,thinkingEnabled:z,searchEnabled:A}=(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}),B=u.providerSpecificData??{},C=!0===B.persistSession,D="number"==typeof B.historyWindow&&B.historyWindow>0?B.historyWindow:0;try{let b=Date.now(),d=await ah(v,g,h);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=x(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=x(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=x(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=x(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,"")}(r,q):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,"")}(s,D);h?.info?.("DEEPSEEK-WEB",`model_type=${y}, thinking=${z}, search=${A}, stream=${!1!==c}, persist=${C}, window=${D}`);let l=async(a,b=k)=>{let c=await ak(d,g),e=await af(c,g),f={...$,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":e,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:ae()},h={chat_session_id:a,parent_message_id:null,model_type:y,prompt:b,ref_file_ids:Array.isArray(m.ref_file_ids)?m.ref_file_ids:[],thinking_enabled:z,search_enabled:A,preempt:!1};return{resp:await fetch(Z,{method:"POST",headers:f,body:JSON.stringify(h),signal:g??void 0}),reqHeaders:f,requestPayload:h}},t=async()=>{if(C){let a=aa.get(v);if(a)return{sessionId:a.sessionId,reused:!0};let b=await ai(d,g);return ab(aa),aa.set(v,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await ai(d,g),reused:!1}};b=Date.now();let{sessionId:u,reused:B}=await t();h?.info?.("DEEPSEEK-WEB",`Session ${B?"reused":"created"} in ${Date.now()-b}ms`),b=Date.now(),h?.info?.("DEEPSEEK-WEB",`POST ${Z}`);let{resp:E,reqHeaders:F,requestPayload:G}=await l(u);if(h?.info?.("DEEPSEEK-WEB",`Completion response in ${Date.now()-b}ms, status=${E.status}`),!E.ok&&C&&B&&(h?.warn?.("DEEPSEEK-WEB","Reused session failed — retrying with a fresh session"),aa.delete(v),u=await ai(d,g),ab(aa),aa.set(v,{sessionId:u,createdAt:Date.now()}),B=!1,{resp:E,reqHeaders:F,requestPayload:G}=await l(u)),!E.ok){let a=E.status,b=`DeepSeek API error (${a})`;401===a||403===a?(_.delete(v),b="DeepSeek token expired — get a fresh userToken from localStorage."):429===a&&(b="DeepSeek rate limited. Wait and retry."),h?.warn?.("DEEPSEEK-WEB",b);try{let a=await E.json();a?.code&&0!==a.code&&(b=`DeepSeek error ${a.code}: ${a.msg}`)}catch{}return C&&aa.delete(v),aj(d,u).catch(()=>{}),{response:ad(a,b),url:Z,headers:F,transformedBody:G}}if((E.headers.get("content-type")||"").includes("application/json"))try{let a=await E.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&&_.delete(v),C&&aa.delete(v),aj(d,u).catch(()=>{}),{response:ad(c,a,b.code),url:Z,headers:F,transformedBody:G}}return C||aj(d,u).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:Z,headers:F,transformedBody:G}}catch{}let H=C?async()=>{}:()=>aj(d,u),I="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(o){let{content:a,reasoningContent:b}=await ag(E.body,I),i=Q(a,`call-${Date.now()}`,n),j=async a=>(await H(),{response:ad(502,a),url:Z,headers:F,transformedBody:G});if(function(a,b){if(w(a))return!0;if("string"!=typeof a||!a.trim())return!1;let c=(0,p.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,p.Ub)(d,(0,p.x2)(b))}(i.content,n)){h?.warn?.("DEEPSEEK-WEB","Malformed tool envelope — retrying once with nonce binding"),aa.delete(v),await aj(d,u).catch(()=>{}),u=await ai(d,g),C&&(ab(aa),aa.set(v,{sessionId:u,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:E,reqHeaders:F,requestPayload:G}=await l(u,c),!E.ok)return j("DeepSeek tool-call repair request failed.");if({content:a,reasoningContent:b}=await ag(E.body,I),i=Q(a,`call-${Date.now()}`,n),w(i.content))return j("DeepSeek emitted an invalid tool call after repair.")}return await H(),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:Z,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:Z,headers:i,transformedBody:j}}({stream:!1!==c,clientModel:I,content:i.content,reasoningContent:b,toolCalls:i.toolCalls,reqHeaders:F,requestPayload:G})}if(!1!==c){let a,b,c,d,g,h,k,l,m,n,o=(i=E.body,a=new TextEncoder,b=new TextDecoder,c=I||"deepseek-web",d=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,g=Math.floor(Date.now()/1e3),h=!1,k="",l=T(c),m=[],j=new ReadableStream({async start(j){var n;let o,p=i.getReader(),q="",r=(b,e)=>{j.enqueue(a.encode((0,f.N)({id:d,object:"chat.completion.chunk",created:g,model:c,system_fingerprint:null,choices:[{index:0,delta:b,finish_reason:e??null,logprobs:null}]})))},s=()=>{h||(h=!0,r({role:"assistant",content:""}))},{finishOnce:t,hasFinished:u}=(n=()=>{let b=W(m,c);b&&(s(),r({content:`
270
+
271
+ ${b}`})),s(),r({},"stop"),j.enqueue(a.encode(e.$U)),j.close()},o=!1,{finishOnce:()=>{if(!o){o=!0;try{n()}catch{}}},hasFinished:()=>o}),{scheduleFinishAfterDrain:v,clearFinishedDrain:w,isDrainPending:x}=function(a,b=750){let c=null,d=()=>{c&&(clearTimeout(c),c=null)};return{scheduleFinishAfterDrain:()=>{d(),c=setTimeout(()=>{c=null,a()},b)},clearFinishedDrain:d,isDrainPending:()=>null!==c}}(t),y=a=>{let b=V(a,c);if(!b)return;s();let d=k;!d&&l?d="thinking":!d&&U(c)&&(d="content"),"thinking"===d?r({reasoning_content:b}):r({content:b})},z=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?k="thinking":("ANSWER"===c||"RESPONSE"===c)&&(k="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?k="thinking":("ANSWER"===b||"RESPONSE"===b)&&(k="content")}y(a.content)}};try{for(;;){let{done:a,value:c}=await p.read();if(a)break;let d=(q+=b.decode(c,{stream:!0})).split("\n");for(let a of(q=d.pop()||"",d)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void t();try{b=JSON.parse(c)}catch{continue}let d=b?.p,e=b?.o,f=b?.v;if(f&&"object"==typeof f&&f.response){!0===f.response.thinking_enabled?k="thinking":!1===f.response.thinking_enabled&&(k="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)z(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)z(a,!0);else f&&"object"==typeof f&&z(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(k="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)m.length=0,m.push(...f);else for(let a of f){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);m[c]&&(m[c].cite_index=a.v)}}continue}if("string"==typeof f)y(f);else if(Array.isArray(f)&&"response"===d){for(let a of f)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&y(b)}}if("response/status"===d&&"FINISHED"===f){v();continue}x()&&v()}}}}catch(a){w(),u()||j.error(a);return}t()},cancel(){}},{highWaterMark:16384}),n=j.getReader(),new ReadableStream({async pull(a){let{done:b,value:c}=await n.read();if(b){a.close(),H().catch(()=>{});return}a.enqueue(c)},cancel(){n.cancel(),H().catch(()=>{})}}));return{response:new Response(o,{status:200,headers:{...e.uB}}),url:Z,headers:F,transformedBody:G}}let{content:J,reasoningContent:K}=await ag(E.body,I);await H();let L={role:"assistant",content:J};K&&(L.reasoning_content=K);let M={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||y,choices:[{index:0,message:L,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(M),{status:200,headers:{"Content-Type":"application/json"}}),url:Z,headers:F,transformedBody:G}}catch(c){let a=c instanceof Error?c.message:String(c);if(h?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof Error&&"AbortError"===c.name)return{response:ad(499,"Request cancelled"),url:Z,headers:{},transformedBody:b};return{response:ad(502,`DeepSeek error: ${a}`),url:Z,headers:{},transformedBody:b}}}}new al},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},70298:(a,b,c)=>{c.d(b,{RF:()=>bc});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}
272
+ `;return`${b}data: ${a.data}
273
+
274
+ `}(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,e.createHash)("sha256").update(a.connectionId).update("\0").update(JSON.stringify(a.storageState)).digest("hex"),c=await (0,h.qG)(`chatgpt-web-cleanroom:${b}`,{cookieDomain:"chatgpt.com",storageState:a.storageState,userAgent:a.userAgent,locale:a.locale,timezone:a.timezone,warmupUrl:al,headless:!0,executablePath:a.chromeExecutablePath}),d=c.warmupPage&&!c.warmupPage.isClosed()?c.warmupPage:await (0,h.we)(c);return c.warmupPage!==d&&(c.warmupPage=d),new ah(d,{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)}
275
+
276
+ `).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:
277
+ ${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:
278
+ ${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))}),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)}let aI="OpenAI-Sentinel-Chat-Requirements-Prepare-Token",aJ=a=>Buffer.from(JSON.stringify(a),"utf8").toString("base64"),aK=["https://chatgpt.com/cdn/assets/685809.dec86dcdc1.js","https://chatgpt.com/cdn/assets/399565.a1117ca8b4.js"],aL=["cookie","domain","readyState","title","URL","charset","location"],aM=["caches","crypto","fetch","indexedDB","localStorage","origin"],aN=["userAgent","language","hardwareConcurrency"],aO=a=>a[Math.floor(Math.random()*a.length)];function aP(a){let b=aO(aN);return[2080,new Date().toString(),null,0,a,aO(aK),null,"en-US","en-US,en",0,`${b}−${a}`,aO(aL),aO(aM),0,crypto.randomUUID(),"",8,0,0,0,0,0,0,0,0]}async function aQ(a,{headers:b,body:c,signal:d}){let e=await fetch(a,{method:"POST",headers:{...b,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c??{}),signal:d}),f=await e.text().catch(()=>"");if(!e.ok)throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} failed (HTTP ${e.status}) ${f.slice(0,200)}`),{status:e.status});try{return JSON.parse(f)}catch{throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} returned invalid JSON`),{status:502})}}async function aR({baseUrl:a,accessToken:b,userAgent:c,signal:d}){let e,f={Authorization:`Bearer ${b}`,"User-Agent":c},g=await aQ(`${a}/backend-api/sentinel/chat-requirements/prepare`,{headers:{...f,[aI]:((e=aP(c))[3]=1,e[9]=0,`gAAAAAC${aJ(e)}`)},signal:d});if(!g?.prepare_token)throw Object.assign(Error("ChatGPT sentinel prepare returned no prepare_token"),{status:502});let h=await aQ(`${a}/backend-api/sentinel/chat-requirements`,{headers:{...f,[aI]:g.prepare_token},signal:d}),i={};return h?.token&&(i["OpenAI-Sentinel-Chat-Requirements-Token"]=h.token),h?.proofofwork?.required&&(i["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=aP(c);for(let c=0;c<5e5;c++){e[3]=c,e[9]=Math.round(performance.now()-d);let f=aJ(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:h.proofofwork.seed,difficulty:h.proofofwork.difficulty,userAgent:c})),i}let aS=/(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,aT=a=>new Promise(b=>setTimeout(b,a));class aU extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}function aV(a,b,c,d){let e=new AbortController,f=setTimeout(()=>e.abort(),c),g=()=>e.abort();return d?.addEventListener("abort",g,{once:!0}),fetch(a,{...b,signal:e.signal}).finally(()=>{clearTimeout(f),d?.removeEventListener("abort",g)})}function aW(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 aX(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 aY=(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 aZ({accessToken:a,userAgent:b,cookie:c,sentinel:d}){return{...d,Authorization:`Bearer ${a}`,"User-Agent":b,...c?{Cookie:c}:{}}}async function a$(a,b,c,d){let{baseUrl:f}=a,g=aZ(a),h=await aV(`${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);if(!h.ok)throw new aU(`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 aV(`${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);if(!l.ok)throw new aU(`ChatGPT conversation failed (HTTP ${l.status})`,l.status||502);let m=await aX(l,0x1000000,9e4),n=(m.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",o=[],p=[];return aY(m,o,p),{conversationId:n,fileIds:o,sedimentIds:p}}async function a_(a,b,c,{signal:d,log:e}){let f=Date.now(),g=[...c.fileIds],h=[...c.sedimentIds],i={...aZ(a),Accept:"application/json"};for(await aT(5e3);Date.now()-f<=24e4;){if(d?.aborted)throw Error("Request aborted");let c=await aV(`${a.baseUrl}/backend-api/conversation/${b}`,{headers:i},3e4,d).catch(()=>null);if(!c?.ok){e?.debug?.("CGPT-WEB-IMG",`conversation poll status ${c?.status??"network"}, retrying`),await aT(5e3);continue}if(Number(c.headers.get("content-length")??"0")>0x2000000)throw new aU("ChatGPT conversation document is unexpectedly large",502);let f=await c.text().catch(()=>"");if(f.length>0x2000000)throw new aU("ChatGPT conversation document is unexpectedly large",502);if(aY(f,g,h),g.length>0||h.length>0)return{fileIds:g.filter(a=>"file_upload"!==a),sedimentIds:h};if(aS.test(f)&&/"is_error"\s*:\s*true/.test(f))throw new aU("ChatGPT refused the image request (content policy)",400);if(/ChatGPTAgentToolRateLimitException|Free plan limit for image generation/i.test(f))throw new aU("ChatGPT account has hit its image generation quota — add another account or wait for the reset",429);await aT(5e3)}throw new aU("ChatGPT image generation timed out",504)}async function a0(a,b){let c=await aV(a,{},9e4,b);if(!c.ok)return null;let d=Buffer.from(await c.arrayBuffer());return d.length?{b64:d.toString("base64"),mime:(c.headers.get("content-type")||"image/png").split(";")[0]}:null}async function a1(a,b,{fileIds:c,sedimentIds:d},e){let f={...aZ(a),Accept:"application/json"};for(let b of c){let c=await aV(`${a.baseUrl}/backend-api/files/${b}/download`,{headers:f},6e4,e).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 a0(g,e);if(h)return h}for(let c of d){let d=await aV(`${a.baseUrl}/backend-api/conversation/${b}/attachment/${c}/download`,{headers:f},6e4,e).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 a0(h,e);if(i)return i}throw new aU("ChatGPT image generation produced no downloadable file",502)}async function a2({baseUrl:a,accessToken:b,cookie:c,userAgent:d,prompt:e,sizeHint:f,signal:g,log:h}){if(!b)throw new aU("ChatGPT session has no access token",401);if(g?.aborted)throw Error("Request aborted");let i=await aR({baseUrl:a,accessToken:b,userAgent:d,signal:g}),j={baseUrl:a,accessToken:b,cookie:c,userAgent:d,sentinel:i},k=await a$(j,e,f,g);if(!k.conversationId&&0===k.fileIds.length&&0===k.sedimentIds.length)throw new aU("ChatGPT image conversation produced no conversation id",502);let l=k.fileIds.length>0||k.sedimentIds.length>0?k:await a_(j,k.conversationId,k,{signal:g,log:h});return a1(j,k.conversationId,l,g)}let a3=a=>new Promise(b=>setTimeout(b,a));function a4(a,b,c,d){let e=new AbortController,f=setTimeout(()=>e.abort(),c),g=()=>e.abort();return d?.addEventListener("abort",g,{once:!0}),fetch(a,{...b,signal:e.signal}).finally(()=>{clearTimeout(f),d?.removeEventListener("abort",g)})}async function a5(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 a6({baseUrl:a,accessToken:b,cookie:c,userAgent:d,body:f,signal:g,log:h}){var i,j;if(!b)throw Object.assign(Error("ChatGPT session has no access token"),{status:401});if(g?.aborted)throw Error("Request aborted");let k=Array.isArray(f?.messages)?f.messages:[];if(0===k.length)throw Object.assign(Error("ChatGPT Web requires messages"),{status:400});let l=(0,aj.S$)(f,k),m=(i=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")}(l.effectiveMessages),j=l.hasTools,j?k.some(a=>"tool"===String(a?.role||"").toLowerCase())?i:`Use the client tools provided below. Do not answer with prose when a tool is needed.
279
+
280
+ ${i}
281
+
282
+ Respond with ONLY <tool> blocks, one per line. No prose, no code fences, no explanation before or after the blocks.`:i);if(!m.trim())throw Object.assign(Error("ChatGPT Web requires non-empty text"),{status:400});let n={...await aR({baseUrl:a,accessToken:b,userAgent:d,signal:g}),Authorization:`Bearer ${b}`,"User-Agent":d,...c?{Cookie:c}:{},"Content-Type":"application/json"},o=await a4(`${a}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...n,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:[m]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,g);if(!o.ok){let a=(await o.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`ChatGPT prepare failed (HTTP ${o.status}) ${a}`),{status:o.status||502})}let p=await o.json().catch(()=>null),q=await a4(`${a}/backend-api/f/conversation`,{method:"POST",headers:{...n,Accept:"text/event-stream","X-Conduit-Token":p?.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:[m]},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);if(!q.ok)throw Object.assign(Error(`ChatGPT conversation failed (HTTP ${q.status})`),{status:q.status||502});let r=((await a5(q,0x1000000,12e4)).match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"";if(!r)throw Object.assign(Error("ChatGPT conversation produced no conversation id"),{status:502});let s=Date.now();for(;Date.now()-s<=18e4;){if(g?.aborted)throw Error("Request aborted");let e=await a4(`${a}/backend-api/conversation/${r}`,{headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json",...c?{Cookie:c}:{}}},3e4,g).catch(()=>null);if(e?.ok){let a=await e.json().catch(()=>null),b=a?function(a){let b=a?.mapping||{},c="",d=!1,e="";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)){let a=(b.content?.parts||[]).filter(a=>"string"==typeof a).join("");a&&(e=a)}}return d?{text:c,errorText:e}:null}(a):null;if(b){if(!b.text.trim()&&b.errorText)throw Object.assign(Error(`ChatGPT refused the turn: ${b.errorText.slice(0,200)}`),{status:400});return h&&!l.hasTools&&h.debug?.("CGPT-WEB",`chat turn complete (${b.text.length} chars)`),{text:b.text,hasTools:l.hasTools,requestedTools:l.requestedTools}}}else h&&h.debug?.("CGPT-WEB",`conversation poll status ${e?.status??"network"}, retrying`);await a3(1500)}throw Object.assign(Error("ChatGPT chat turn timed out"),{status:504})}var a7=c(4052);let a8="https://chatgpt.com",a9="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 ba({storageState:a,userAgent:b,signal:c}){let d=aW(a),e=await fetch(`${a8}/api/auth/session`,{headers:{"User-Agent":b,Accept:"application/json",...d?{Cookie:d}:{}},signal:c});if(!e.ok)throw Object.assign(Error(`ChatGPT session unavailable (HTTP ${e.status})`),{status:403===e.status?401:e.status||502});let f=await e.json().catch(()=>null);if("string"!=typeof f?.accessToken||!f.accessToken)throw Object.assign(Error("ChatGPT session is not signed in"),{status:401});return f.accessToken}function bb(a,b){return new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}})}class bc extends d.H{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:a8})}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:a8,headers:{},transformedBody:a.body}}catch(c){let b=c instanceof Error?c.message:"ChatGPT Web browser execution failed";if((0,a7.BE)(b))return{response:bb(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:a8,headers:{},transformedBody:a.body};return{response:bb(/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:a8,headers:{},transformedBody:a.body}}}async #a(a){let b,c,{credentials:d,body:f,model:g,stream:h}=a;try{b=at(d)}catch{return null}let i=d?.providerSpecificData,j="string"==typeof i?.customUserAgent&&i.customUserAgent.trim()?i.customUserAgent.trim():a9;try{let d=await ba({storageState:b,userAgent:j,signal:a.signal});c=await a6({baseUrl:a8,accessToken:d,cookie:aW(b),userAgent:j,body:f,signal:a.signal,log:a.log})}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:a8,headers:{},transformedBody:f};let k=ax(g,{text:c.text},!1);return{response:await (0,ak.N)(k,c.requestedTools,h,{idSeed:"call",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:g}),url:a8,headers:{},transformedBody:f}}async generateMedia({prompt:a,n:b=1,size:c,credentials:d,signal:e,log:f}){if(!a)throw Error("prompt is required for image generation");let g=at(d),h=d.providerSpecificData,i="string"==typeof h?.customUserAgent&&h.customUserAgent.trim()?h.customUserAgent.trim():a9,j=[];for(let h=0;h<Math.max(1,b);h++)j.push(await this.#b({prompt:a,size:c,storageState:g,userAgent:i,signal:e,log:f,credentials:d}));return j}async #b({prompt:a,size:b,storageState:c,userAgent:d,signal:e,log:f,credentials:g}){try{let g=await ba({storageState:c,userAgent:d,signal:e});return await a2({baseUrl:a8,accessToken:g,cookie:aW(c),userAgent:d,prompt:a,sizeHint:b,signal:e,log:f})}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 h="string"==typeof g?.connectionId&&g.connectionId.trim()?g.connectionId.trim():null;if(!h)throw Error("ChatGPT Web image generation requires a connection ID");let i=g.providerSpecificData,j=await aw({connectionId:h,storageState:c,selection:{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0},userAgent:d,locale:"string"==typeof i?.locale?i.locale:void 0,timezone:"string"==typeof i?.timezone?i.timezone:void 0,chromeExecutablePath:av(i?.chromeExecutablePath)});try{return await j.start(),await aH(j.page,{prompt:a,sizeHint:b,signal:e,log:f})}finally{await j.page.close().catch(()=>{})}}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>n});var d=c(74957),e=c(12643),f=c(57247),g=c(8521),h=c(39609),i=c(49426),j=c(41004);let k=new Map;function l(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function m(a){if(k.has(a))return k.get(a);let b=await (0,i.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&k.set(a,e),e}class n extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,g.Sc)(d?.apiKey),h=l(d?.apiKey),i=!!e||!!h||!!d?.accessToken,j=i?null:d?.apiKey,k=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||(0,f.V2)(this.provider,a)?.defaultLocation||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=k?`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),j&&(o+=b?`&key=${j}`:`?key=${j}`),o}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,g.Sc)(a?.apiKey);if(!c)return null;let d=await (0,g.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:k=null}){let n,o=(0,g.Sc)(d?.apiKey),p=l(d?.apiKey);if(o){let a=await (0,g.pb)(o,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,g.I9)(p.refresh_token,p.client_id,p.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await m(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,i.n)(e,this.config?.timeoutMs||j.Z1);try{n=await (0,h.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},k)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},74161:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(96179),e=c(94526);class f extends d.L{constructor(){super("zcode")}transformRequest(a,b,c,d){return function(a){var b;let c;if(!a||"object"!=typeof a||Array.isArray(a)||!((c=(Array.isArray(b=a.system)?b:"string"==typeof b?[b]:[]).map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"")).length>3)&&e.L.every(a=>c.some(b=>b===a.text)))return a;let d=function(a){if("string"==typeof a)return e.L.some(b=>b.text===a)?null:{text:a,cacheControl:null};if(!Array.isArray(a))return null;let b=null,c=[];for(let d of a){if("string"==typeof d){d&&!e.L.some(a=>a.text===d)&&c.push(d);continue}"string"==typeof d?.text&&d.text&&!e.L.some(a=>a.text===d.text)&&c.push(d.text),d?.cache_control&&(b=d.cache_control)}return c.length?{text:c.join("\n\n"),cacheControl:b}:null}(a.system);if(d)return{...a,system:[...e.L,{type:"text",text:d.text,...d.cacheControl?{cache_control:{...d.cacheControl}}:{}}]};let f=null;if(Array.isArray(a.system))for(let b of a.system)b?.cache_control&&(f=b.cache_control);if(!f)return{...a,system:[...e.L]};let g=e.L.map((a,b)=>b===e.L.length-1?{...a,cache_control:{...f}}:a);return{...a,system:g}}(super.transformRequest(a,b,c,d))}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(12643),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
283
+
284
+ data: [DONE]
285
+
286
+ `)}class M extends d.H{constructor(){super("kiro",e.xq.kiro)}buildHeaders(a,b=!0,c=""){let d={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,g.A)()};c.includes("://codewhisperer.")?d["X-Amz-Target"]=f.rx:delete d["X-Amz-Target"];let e=a?.providerSpecificData?.authMethod,h="api_key"===e,i=a?.apiKey||(h?a?.accessToken:null);h&&i?(d.Authorization=`Bearer ${i}`,d.TokenType="API_KEY"):a?.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`,"external_idp"===e&&(d.TokenType="EXTERNAL_IDP")),a?.accessToken&&(d["x-amz-sso-bearer"]=a.accessToken),d["x-amzn-kiro-agent-mode"]="spec",d["x-amzn-codewhisperer-machine-id"]="kiro-desktop";let j=a?.providerSpecificData?.profileArn;return j&&(d["x-amzn-codewhisperer-profile-arn"]=j),d}getOrderedBaseUrls(a){let b=this.getBaseUrls();a?.providerSpecificData?.authMethod;let c=(a?.providerSpecificData?.region||"us-east-1").trim(),d=b.filter(a=>a.includes("amazonaws.com")).map(a=>c&&"us-east-1"!==c&&a.includes("amazonaws.com")?a.replace(/([a-z]+)\.[a-z0-9-]+\.amazonaws\.com/,`$1.${c}.amazonaws.com`):a),e=b.filter(a=>!a.includes("amazonaws.com")),f=d.filter(a=>a.includes("://q.")),g=d.filter(a=>!a.includes("://q."));return f.length>0?[...f,...g,...e]:[...d,...e]}buildUrl(a,b,c=0,d=null){let e=this.getOrderedBaseUrls(d);return e[c]||e[0]||this.config.baseUrl}shouldRetry(a,b){let c=b+1<this.getFallbackCount();return super.shouldRetry(a,b)||c&&f.QR.has(a)}transformRequest(a,b,c,d){return b}async execute(a){let b=await super.execute(a);return b?.response?.ok&&this.attachIntegrityGate(b,a),b}attachIntegrityGate(a,b){let c,d=new AbortController,e=D("KIRO_TOOL_CALL_REPAIR_BUFFER_MAX_BYTES",8388608),f=D("KIRO_TOOL_CALL_REPAIR_TIMEOUT_MS",k.Z1),g=D("KIRO_TOOL_CALL_REPAIR_TTFT_TIMEOUT_MS",f),h=D("KIRO_TOOL_CALL_REPAIR_STALL_TIMEOUT_MS",f),j=b.credentials?.providerSpecificData?.kiroToolCallRepair!==!1&&"false"!==process.env.KIRO_TOOL_CALL_REPAIR,l=()=>d.abort(b.signal?.reason);b.signal?.addEventListener("abort",l,{once:!0});let m=!0,o=new ReadableStream({start:async f=>{let i=()=>{if(m)try{f.enqueue(r.encode(": kiro-validation\n\n"))}catch{m=!1}};i(),c=setInterval(i,1e4);try{let c=await this.runIntegrityRecovery(a.response,b,{signal:d.signal,maxBytes:e,ttftTimeoutMs:g,stallTimeoutMs:h,repairEnabled:j});if(d.signal.aborted)throw(0,n.z)(d.signal.reason);f.enqueue(c),f.close()}catch(a){m&&"AbortError"===a.name?f.error(a):m&&"AbortError"!==a.name&&(f.enqueue(L("kiro_integrity_gate_failed",a.message||"Kiro integrity validation failed")),f.close())}finally{m=!1,clearInterval(c),b.signal?.removeEventListener?.("abort",l)}},cancel(a){m=!1,clearInterval(c),d.abort(a||"client cancelled")}});a.response=new Response(o,{status:a.response.status,statusText:a.response.statusText,headers:{...i.pb}})}async runIntegrityRecovery(a,b,c){let e=await this.readRecoverableIntegrityAttempt(a,b.model,c,"initial");if("complete"===e.kind)return e.bytes;if("terminal_stop"===e.kind||"upstream_error"===e.kind)return this.integrityFailureSSE(e);if("invalid_tool"===e.kind&&!c.repairEnabled)return L("invalid_kiro_tool_call",e.message,e.diagnostics);let f=["ellipsis","short_final","invalid_tool"].includes(e.kind)?e.kind:null,g=f?function(a,b){let c=structuredClone(a||{}),d=t[b]||"Retry the previous incomplete Kiro response.",e=c?.conversationState?.currentMessage?.userInputMessage;if(e){let a="string"==typeof e.content?e.content:"";e.content=a?`${a}
287
+
288
+ ${d}`:d}return c}(b.body,"invalid_tool"===f?"tool":f):structuredClone(b.body||{}),h=await d.H.prototype.execute.call(this,{...b,body:g,signal:c.signal});if(!h?.response?.ok){let a="";try{a=await F(h?.response,c.signal,Math.min(c.maxBytes,4096),c.stallTimeoutMs)}catch(a){if("AbortError"===a.name)throw a}return L("kiro_integrity_retry_upstream_error",a||`Kiro integrity retry failed with HTTP ${h?.response?.status||502}`,{status:h?.response?.status||502})}let i=await this.readRecoverableIntegrityAttempt(h.response,b.model,c,"retry");return"complete"===i.kind?i.bytes:"terminal_stop"===i.kind||"upstream_error"===i.kind?this.integrityFailureSSE(i):L("ellipsis"===i.kind?"kiro_ellipsis_retry_failed":"short_final"===i.kind?"kiro_short_final_retry_failed":"invalid_tool"===i.kind?"kiro_tool_call_repair_retry_failed":"kiro_missing_terminal_retry_failed",`Kiro integrity validation failed after one bounded retry: ${i.message||i.kind}`,{attempts:[e.diagnostics,i.diagnostics].filter(Boolean)})}integrityFailureSSE(a){let b=a.diagnostics?.stop_disposition;return L(a.diagnostics?.terminal_provenance==="integrity_buffer_exceeded"?"kiro_integrity_buffer_exceeded":"upstream_error"===a.kind?"kiro_upstream_eventstream_error":"terminal_refusal"===b?"kiro_terminal_refusal":"terminal_incomplete"===b?"kiro_terminal_incomplete":"kiro_unknown_stop_reason",a.message||"Kiro stream ended with a terminal failure",a.diagnostics)}async readRecoverableIntegrityAttempt(a,b,c,d){try{return await this.readIntegrityAttempt(a,b,c,d)}catch(a){if("AbortError"===a.name)throw a;return{kind:"missing_terminal",message:a.message||"Kiro transport read failed",diagnostics:{attempt:d,terminal_provenance:"transport_read_error",transport_state:"upstream_error",stop_reason:null,stop_disposition:"terminal_incomplete",response_state:"no_semantic_output",event_counts:{},incomplete_frame_bytes:0}}}}async readIntegrityAttempt(a,b,c,d){let e,f=this.transformEventStreamToSSE(a,b,{maxToolBytes:Math.max(1,Math.floor(c.maxBytes/2)),onTerminalState:a=>{e=a}}).body.getReader(),g=[],h=0,i=!1,j={content:"",reasoning:"",hasToolCalls:!1,error:null};try{for(;;){let a=i?c.stallTimeoutMs:c.ttftTimeoutMs,b=i?"stalled":"timed out before first chunk",{done:d,value:e}=await (0,n.S)(f,c.signal,a,`Kiro integrity validation ${b}`);if(d)break;if(i=!0,(h+=e.byteLength)>c.maxBytes)return await f.cancel("kiro_integrity_buffer_exceeded").catch(()=>{}),{kind:"terminal_stop",message:`Kiro integrity buffer exceeded ${c.maxBytes} bytes`,diagnostics:{terminal_provenance:"integrity_buffer_exceeded"}};g.push(e);for(let a of s.decode(e).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if(b&&"[DONE]"!==b)try{let a=JSON.parse(b);for(let b of(a.error&&(j.error=a.error),a.choices||[])){let a=b.delta||{};"string"==typeof a.content&&(j.content+=a.content),"string"==typeof a.reasoning_content&&(j.reasoning+=a.reasoning_content),a.tool_calls?.length&&(j.hasToolCalls=!0)}}catch{}}}}catch(a){throw await f.cancel(a.message).catch(()=>{}),a}let k={attempt:d,terminal_provenance:e?.terminal_provenance||"missing_terminal_diagnostics",transport_state:e?.transport_state||"unknown",stop_reason:e?.stop_reason||null,stop_disposition:e?.stop_disposition||"terminal_incomplete",response_state:e?.response_state||"no_semantic_output",event_counts:e?.event_counts||{},incomplete_frame_bytes:e?.incomplete_frame_bytes||0};if("retryable_protocol_failure"===k.stop_disposition)return{kind:"invalid_tool_call"===k.terminal_provenance?"invalid_tool":"retryable_stop",message:j.error?.message,diagnostics:k};if("terminal_incomplete"===k.stop_disposition||"terminal_refusal"===k.stop_disposition||"unknown_failure"===k.stop_disposition)return{kind:"upstream_eventstream_error"===k.terminal_provenance?"upstream_error":"integrity_buffer_exceeded"===k.terminal_provenance||["metadata_stop_reason","message_stop_event"].includes(k.terminal_provenance)?"terminal_stop":"missing_terminal",message:j.error?.message,diagnostics:k};if(j.error)return{kind:"missing_terminal",message:j.error.message,diagnostics:k};if(!j.hasToolCalls){let a;if(K(j.content)||!j.content.trim()&&K(j.reasoning))return{kind:"ellipsis",diagnostics:k};if(a=String(j.content||"").trim().replaceAll("’","'"),v.test(a)||!(w.test(a)&&x.test(a)||y.test(a)&&z.test(a))&&a.length>0&&a.length<=800&&u.test(a)&&!A.test(a)&&!B.test(a)&&!C.test(a))return{kind:"short_final",diagnostics:k}}return{kind:"complete",bytes:E(g,h),diagnostics:k}}transformEventStreamToSSE(a,b,c={}){let d=`chatcmpl-${Date.now()}`,e=Math.floor(Date.now()/1e3),g=(0,f.$D)(b).upstream,h=(0,j.getCapabilitiesForModel)("kiro",g).contextWindow||2e5,k={},l={buffer:new Uint8Array(0),chunkIndex:0,toolCounter:0,tools:new Map,bufferedToolBytes:0,hasText:!1,hasReasoning:!1,hasCode:!1,hasToolCalls:!1,sawToolUse:!1,explicitStop:!1,stopReason:null,terminalProvenance:null,transportState:"consuming_response",totalContentLength:0,contextUsagePercentage:0,hasContextUsage:!1,hasMetering:!1,usage:null,inThinking:!1,toolValidationError:null,validatedFrames:0,finished:!1},n=(a={})=>({terminal_provenance:l.terminalProvenance||"clean_eventstream_eof",transport_state:l.transportState,stop_reason:l.stopReason,stop_disposition:I(l.stopReason,l.hasToolCalls),response_state:l.hasToolCalls?"valid_tool":l.hasText||l.hasReasoning||l.hasCode?"text_reasoning":l.explicitStop?"explicit_stop":"no_semantic_output",event_counts:{...k},incomplete_frame_bytes:l.buffer.byteLength,...a}),s=(a,c=null,f)=>r.encode(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:a,finish_reason:c}],...f?{usage:f}:{}})}
123
289
 
124
- ${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}}},38572:(a,b,c)=>{c.d(b,{$:()=>r});var d=c(74957),e=c(35024),f=c(41004),g=c(39609),h=c(49426),i=c(78959),j=c(92536);let k=e.xq["grok-web"].baseUrl,l={"grok-3":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3",isThinking:!1},"grok-3-mini":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-mini",modelMode:"MODEL_MODE_GROK_4_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4",modelMode:"MODEL_MODE_HEAVY",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function m(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;b<a;b++)d+=c[Math.floor(Math.random()*c.length)];return d}function n(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*o(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{c.releaseLock()}}async function*p(a,b,c){let d="",e="",f=!1;for await(let g of o(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}async function q(a,b,c,d,e,f){let g="",h="",i=[];for await(let b of p(a,e,f)){if(b.fingerprint&&(h=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){i.push(b.thinking);continue}if(b.done)break;b.fullMessage?g=b.fullMessage:b.delta&&(g+=b.delta)}let j={role:"assistant",content:g};i.length>0&&(j.reasoning_content=i.join("\n"));let k=Math.ceil(g.length/4),l=Math.ceil(g.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:h||null,choices:[{index:0,message:j,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:k,completion_tokens:l,total_tokens:k+l}}),{status:200,headers:{"Content-Type":"application/json"}})}class r extends d.H{constructor(){super("grok-web",e.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:o,proxyOptions:r=null}){let s,t,u=b?.messages;if(!u||!Array.isArray(u)||0===u.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};let v=l[a];v||o?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:w,modelMode:x,isThinking:y}=v||l["grok-4.1-fast"],z=function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(u);if(!z.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 A={temporary:!0,modelName:w,modelMode:x,message:z,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},B=n(16),C=n(8),D={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Google Chrome";v="136", "Chromium";v="136", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","x-statsig-id":btoa(.5>Math.random()?`e:TypeError: Cannot read properties of null (reading 'children["${m(5,!0)}"]')`:`e:TypeError: Cannot read properties of undefined (reading '${m(10)}')`),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${B}-${C}-00`};if(d.apiKey){let a=d.apiKey;a.startsWith("sso=")&&(a=a.slice(4)),D.Cookie=`sso=${a}`}o?.info?.("GROK-WEB",`Query to ${a} (grok=${w}, mode=${x}), len=${z.length}`);let E=(0,h.n)(e,this.config?.timeoutMs||f.Z1);try{s=await (0,g.proxyAwareFetch)(k,{method:"POST",headers:D,body:JSON.stringify(A),signal:E.signal},r)}catch(a){return o?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:k,headers:D,transformedBody:A}}finally{E.clear()}if(!s.ok){let a=s.status,b=`Grok returned HTTP ${a}`;return 401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),o?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:k,headers:D,transformedBody:A}}if(!s.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:k,headers:D,transformedBody:A};let F=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,G=Math.floor(Date.now()/1e3);if(c){var H;let b;t=new Response((H=s.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:F,object:"chat.completion.chunk",created:G,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="";for await(let f of p(H,y,e)){if(f.fingerprint&&(d=f.fingerprint),f.error){c.enqueue(b.encode((0,j.N)({id:F,object:"chat.completion.chunk",created:G,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode((0,j.N)({id:F,object:"chat.completion.chunk",created:G,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{reasoning_content:f.thinking},finish_reason:null,logprobs:null}]})));continue}if(f.done)break;f.delta&&c.enqueue(b.encode((0,j.N)({id:F,object:"chat.completion.chunk",created:G,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:f.delta},finish_reason:null,logprobs:null}]})))}c.enqueue(b.encode((0,j.N)({id:F,object:"chat.completion.chunk",created:G,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U))}catch(d){c.enqueue(b.encode((0,j.N)({id:F,object:"chat.completion.chunk",created:G,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 t=await q(s.body,a,F,G,y,e);return{response:t,url:k,headers:D,transformedBody:A}}}},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(35024),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)}}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>M});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(56411),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(38572),u=c(49227),v=c(23013),w=c(9708),x=c(90926),y=c(26878),z=c(36732),A=c(49059),B=c(51349),C=c(85308),D=c(27617),E=c(71880),F=c(98665),G=c(93509),H=c(96179),I=c(83243),J=c(95089),K=c(74161);c(74957);var L=a([o]);o=(L.then?(await L)():L)[0];let N={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,"ollama-local":new w.D,commandcode:new x.Ak,"xiaomi-tokenplan":new y.F,"xiaomi-mimo":new z.Rb,codearts:new D.Ay,deveco:new E.y,"codebuddy-cn":new A.v,"codebuddy-intl":new B.m,trae:new C.A,"trae-enterprise":new C.A("trae-enterprise"),zed:new F.A,windsurf:new G.Ay,"minimax-code":new I.M("minimax-code"),"minimax-code-global":new I.M("minimax-code-global"),"devin-cli":new J.c,zcode:new K.B,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},O=new Map;function M(a){return N[a]?N[a]:(O.has(a)||O.set(a,new H.L(a)),O.get(a))}d()}catch(a){d(a)}})},56411:(a,b,c)=>{c.d(b,{DH:()=>S});let d=(()=>{let a=new Int16Array(128).fill(-1);for(let b=0;b<64;b++)a["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(b)]="_doRTgHZBKcGVjlvpC,@aFSx#DPuNJme&i*MzLOEn)sUrthbf%Y^w.(kIQyXqWA!".charCodeAt(b);return a[61]=36,a})();var e=c(30015),f=c(94755),g=c(55511),h=c(74957),i=c(35024),j=c(39609),k=c(49426),l=c(43659),m=c(78959),n=c(41004),o=c(69704),p=c(53225),q=c(19804),r=c(29463);function s(a){let b=Number(a);return Number.isFinite(b)?b:null}var t=c(76924);let u=/^image\//i,v=/data:[^;]+;base64,[A-Za-z0-9+/=\s]+/g;function w(a){let b=String(a||"").toLowerCase();return b.includes("png")?"png":b.includes("jpeg")||b.includes("jpg")?"jpg":b.includes("gif")?"gif":b.includes("webp")?"webp":b.includes("bmp")?"bmp":b.includes("pdf")?"pdf":"bin"}function x(a){return"string"==typeof a&&a?Math.floor(3*a.replace(/\s/g,"").length/4):0}function y({name:a,mime:b,bytes:c,reason:d}){let e=c?`, ${c} bytes`:"";return`[file omitted: ${a||b||"attachment"}${e} — ${d}]`}async function z({buffer:a,mediaType:b,credentials:c,proxyOptions:d,signal:g}){let h=(0,f.A)(),i=`${(0,o.e9)(c)}/algo${o.o8}?request_id=${h}`,{boundary:k,body:l}=function(a,{fieldName:b="file",fileName:c,mediaType:d}={}){let e=`----9routerQoder${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,f=c||`upload.${w(d)}`,g=Buffer.from(`--${e}\r
290
+ `),t=(a,b)=>{0===l.chunkIndex&&(b={role:"assistant",...b}),l.chunkIndex++,a.enqueue(s(b))},u=(a,b,d,e,f={})=>{l.finished=!0,l.terminalProvenance=b,l.transportState=f.transport_state||"corrupt_frame";let g=n({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(L(d,e,g))},v=()=>{if(l.bufferedToolBytes<=(c.maxToolBytes||4194304))return;let a=Error("Kiro buffered tool input exceeded the integrity memory bound");throw a.code="KIRO_BUFFER_EXCEEDED",a},w=(a,b)=>{if(void 0!==b){if("string"==typeof b){if(a.inputKind&&"string"!==a.inputKind)throw Error("Kiro tool input changed fragment type");a.inputKind="string",a.inputChunks||=[],a.inputChunks.push(b),l.bufferedToolBytes+=r.encode(b).byteLength}else if(b&&"object"==typeof b&&!Array.isArray(b)){if(a.inputKind&&"object"!==a.inputKind)throw Error("Kiro tool input changed fragment type");a.inputKind="object",l.bufferedToolBytes-=a.inputBytes||0,a.inputObject=b,a.inputBytes=r.encode(JSON.stringify(b)).byteLength,l.bufferedToolBytes+=a.inputBytes}else throw Error("Kiro tool input must be a JSON object");v()}},x=a=>{if(!a.inputKind)throw Error("Kiro tool call is missing input");if("object"===a.inputKind)return a.inputObject;try{let b=JSON.parse(a.inputChunks.join(""));if(!b||"object"!=typeof b||Array.isArray(b))throw Error("not an object");return b}catch(a){throw Error(`Kiro tool input must be valid object JSON (${a.message})`)}},y=(a,b)=>{let c=a.headers[":message-type"];if("error"===c||"exception"===c)return u(b,"upstream_eventstream_error","kiro_upstream_eventstream_error",a.payload?.message||`Kiro upstream sent an EventStream ${c}`,{transport_state:"upstream_error"}),!1;let d=a.headers[":event-type"]||"",f=q.has(d)?d:"other";if(k[f]=(k[f]||0)+1,"assistantResponseEvent"===d&&"string"==typeof a.payload?.content){let c=a.payload.content;if(l.inThinking){let a=c.indexOf("</thinking>");a<0?c="":(l.inThinking=!1,c=c.slice(a+11).replace(/^\n/u,""))}else{let a=c.indexOf("<thinking>");if(a>=0){let b=c.indexOf("</thinking>",a+10);b<0?(l.inThinking=!0,c=c.slice(0,a)):c=c.slice(0,a)+c.slice(b+11).replace(/^\n/u,"")}}(c||!l.hasReasoning)&&(l.hasText||=c.length>0,l.totalContentLength+=c.length,t(b,{content:c}))}else if("reasoningContentEvent"===d){let c=a.payload?.reasoningContentEvent||a.payload||{},d="string"==typeof c?c:c.text||c.content||"";d&&(l.hasReasoning=!0,l.totalContentLength+=d.length,t(b,{reasoning_content:d}))}else if("codeEvent"===d&&"string"==typeof a.payload?.content)l.hasCode=!0,l.totalContentLength+=a.payload.content.length,t(b,{content:a.payload.content});else if("toolUseEvent"===d){l.sawToolUse=!0;let b=Array.isArray(a.payload)?a.payload:[a.payload];if(!b[0])throw Error("Kiro toolUseEvent is empty");for(let a of b){let b,c="string"==typeof a?.name?a.name.trim():"";if(!c)throw Error("Kiro toolUseEvent is missing a tool name");if(null==a.toolUseId)b=`call_${e}_${l.tools.size+1}`;else if("string"==typeof a.toolUseId&&a.toolUseId.trim())b=a.toolUseId;else throw Error("Kiro toolUseEvent has an invalid toolUseId");let d=l.tools.get(b);if(d){if(d.name!==c)throw Error("Kiro tool name changed between fragments")}else d={id:b,name:c},l.tools.set(b,d),l.bufferedToolBytes+=r.encode(b).byteLength+r.encode(c).byteLength+32,v();w(d,a.input)}}else if("messageStopEvent"===d){l.explicitStop=!0;let b=G(a.payload?.stopReason??a.payload?.stop_reason)||(l.sawToolUse?"tool_use":"end_turn"),c=J(l.stopReason,b);c!==l.stopReason&&(l.terminalProvenance="message_stop_event"),l.stopReason=c}else if("metadataEvent"===d||"MetadataEvent"===d){let b=a.payload?.metadataEvent||a.payload?.metadata||a.payload,c=G(b?.stopReason??b?.stop_reason);if(c){l.explicitStop=!0;let a=J(l.stopReason,c);a!==l.stopReason&&(l.terminalProvenance="metadata_stop_reason"),l.stopReason=a}}else if("contextUsageEvent"===d){let b=Number(a.payload?.contextUsagePercentage);Number.isFinite(b)&&(l.contextUsagePercentage=b,l.hasContextUsage=!0)}else if("meteringEvent"===d){l.hasMetering=!0;let b=a.payload?.meteringEvent||a.payload||{},c=Number(b.usage);Number.isFinite(c)&&(l.usage={...l.usage||{},kiro_credits:c,kiro_credit_unit:"string"==typeof b.unit?b.unit:"credit"})}else if("metricsEvent"===d){let b=a.payload?.metricsEvent||a.payload||{},c=Number(b.inputTokens)||0,d=Number(b.outputTokens)||0;if(c||d){l.usage={...l.usage||{},prompt_tokens:c,completion_tokens:d,total_tokens:c+d};let a=Number(b.cacheReadInputTokens||b.cache_read_input_tokens)||0,e=Number(b.cacheCreationInputTokens||b.cache_creation_input_tokens)||0;a&&(l.usage.cache_read_input_tokens=a),e&&(l.usage.cache_creation_input_tokens=e)}}return!0},z=(a,b)=>{let d=l.buffer.byteLength+a.byteLength;if(d>(c.maxRawBytes||o))return u(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream buffered bytes exceed the protocol bound"),!1;if(0===l.buffer.byteLength)l.buffer=a;else{let b=new Uint8Array(d);b.set(l.buffer),b.set(a,l.buffer.byteLength),l.buffer=b}for(;l.buffer.byteLength>=12;){let a,c=new DataView(l.buffer.buffer,l.buffer.byteOffset);if(c.getUint32(8,!1)!==(0,m.QR)(l.buffer.subarray(0,8)))return u(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream prelude CRC mismatch"),!1;let d=c.getUint32(0,!1),e=c.getUint32(4,!1);if(d<16||d>o||e>p||e>d-16)return u(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream frame bounds are invalid"),!1;if(l.buffer.byteLength<d)break;let f=l.buffer.slice(0,d);l.buffer=l.buffer.slice(d);try{a=(0,m.xc)(f)}catch(a){return u(b,"corrupt_eventstream_frame","kiro_missing_terminal",a.message),!1}l.transportState="valid_complete_frame",l.validatedFrames++;try{if(!y(a,b))return!1}catch(a){if("KIRO_BUFFER_EXCEEDED"!==a.code){l.toolValidationError||=a.message,console.error(`[Kiro] tool fragment rejected, keeping ${l.tools.size} buffered tool(s): ${a.message}`);continue}return u(b,"integrity_buffer_exceeded","kiro_integrity_buffer_exceeded",a.message,{transport_state:l.transportState,stop_disposition:"terminal_incomplete"}),!1}}return!0};if(!a.body){let b=n({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(L("kiro_missing_terminal","Kiro response did not include an EventStream body",b),{status:a.status,headers:{...i.pb}})}let A=a.body.getReader();return new Response(new ReadableStream({start:async a=>{try{for(;!l.finished;){let{done:b,value:c}=await A.read();if(b)break;let d=l.chunkIndex,e=l.validatedFrames;if(!z(c,a)){await A.cancel("invalid Kiro EventStream").catch(()=>{});break}l.validatedFrames>e&&l.chunkIndex===d&&a.enqueue(r.encode(": kiro-upstream\n\n"))}(a=>{if(l.finished)return;if(l.buffer.byteLength)return u(a,"incomplete_eventstream_frame","kiro_missing_terminal","Kiro EventStream ended with a truncated frame",{transport_state:"incomplete_frame"});l.transportState="clean_eof";let b=I(l.stopReason,l.sawToolUse),d="terminal_incomplete"===b&&H.has(l.stopReason)&&l.chunkIndex>0;if(d&&console.error(`[Kiro] truncated after ${l.chunkIndex} chunk(s) (stop_reason=${l.stopReason}); keeping output`),!d&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(b))return u(a,l.terminalProvenance||"metadata_stop_reason","retryable_protocol_failure"===b?"kiro_retryable_protocol_failure":"terminal_refusal"===b?"kiro_terminal_refusal":"terminal_incomplete"===b?"kiro_terminal_incomplete":"kiro_unknown_stop_reason",`Kiro ended with non-success stop reason: ${l.stopReason}`,{transport_state:l.transportState,stop_disposition:b});try{for(let b of l.tools.values()){let c;try{if(c=x(b),"tool_call"===b.name){if("string"!=typeof c.name||!c.name.trim())throw Error("Invalid Kiro tool_call payload: missing nested MCP tool name");if(!Object.prototype.hasOwnProperty.call(c,"arguments"))throw Error("Invalid Kiro tool_call payload: missing nested MCP tool arguments")}}catch(a){l.droppedTools=(l.droppedTools||0)+1,l.toolValidationError||=a.message,console.error(`[Kiro] dropping unusable tool call ${b.id} (${b.name}): ${a.message}`);continue}let d=l.toolCounter++;t(a,{tool_calls:[{index:d,id:b.id,type:"function",function:{name:b.name,arguments:""}}]});let e=JSON.stringify(c);t(a,{tool_calls:[{index:d,function:{arguments:e}}]}),l.totalContentLength+=b.name.length+e.length,l.hasToolCalls=!0}if(l.tools.clear(),l.bufferedToolBytes=0,"tool_use"===l.stopReason&&!l.hasToolCalls&&!l.hasText&&!l.hasReasoning&&!l.hasCode)throw Error("Kiro tool_use stop reason did not include a complete tool call")}catch(b){u(a,"invalid_tool_call","invalid_kiro_tool_call",b.message,{transport_state:l.transportState,stop_disposition:"retryable_protocol_failure"});return}if(l.toolValidationError&&!l.hasToolCalls&&!l.hasText&&!l.hasReasoning&&!l.hasCode)return u(a,"invalid_tool_call","invalid_kiro_tool_call",l.toolValidationError,{transport_state:l.transportState,stop_disposition:"retryable_protocol_failure"});if(!(l.hasText||l.hasReasoning||l.hasCode||l.hasToolCalls)&&!l.explicitStop)return u(a,"empty_response_eof","kiro_missing_terminal","Kiro EventStream ended without model output",{transport_state:l.transportState});let e=I(l.stopReason,l.hasToolCalls),f="terminal_incomplete"===e&&H.has(l.stopReason)&&l.chunkIndex>0;if(f&&console.error(`[Kiro] truncated after ${l.chunkIndex} chunk(s) (stop_reason=${l.stopReason}); closing as length`),!f&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(e)){let b="retryable_protocol_failure"===e?"kiro_retryable_protocol_failure":"terminal_refusal"===e?"kiro_terminal_refusal":"terminal_incomplete"===e?"kiro_terminal_incomplete":"kiro_unknown_stop_reason";u(a,l.terminalProvenance||"metadata_stop_reason",b,`Kiro ended with non-success stop reason: ${l.stopReason}`,{transport_state:l.transportState,stop_disposition:e});return}if(l.hasMetering&&l.hasContextUsage&&!l.usage?.total_tokens){let a=l.totalContentLength?Math.max(1,Math.floor(l.totalContentLength/4)):0,b=Math.floor(l.contextUsagePercentage*h/100);l.usage={...l.usage||{},prompt_tokens:b,completion_tokens:a,total_tokens:b+a}}let g=f?"length":l.hasToolCalls?"tool_calls":"length"===e?"length":"stop";a.enqueue(s({},g,l.usage)),a.enqueue(r.encode(i.$U)),l.finished=!0,c.onTerminalState?.(n({terminal_provenance:l.terminalProvenance||"clean_eventstream_eof",transport_state:l.transportState,stop_disposition:f?"length":e}))})(a),a.close()}catch(b){l.finished||u(a,"upstream_read_error","kiro_missing_terminal",b.message||"Kiro EventStream read failed",{transport_state:"upstream_error"}),a.close()}},cancel:a=>A.cancel(a)}),{status:a.status,statusText:a.statusText,headers:{...i.pb}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,h.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},77333:(a,b,c)=>{c.d(b,{DH:()=>Z});let d=(()=>{let a=new Int16Array(128).fill(-1);for(let b=0;b<64;b++)a["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(b)]="_doRTgHZBKcGVjlvpC,@aFSx#DPuNJme&i*MzLOEn)sUrthbf%Y^w.(kIQyXqWA!".charCodeAt(b);return a[61]=36,a})();var e=c(94755),f=c(55511),g=c(74957),h=c(12643),i=c(39609),j=c(49426),k=c(43659),l=c(78959),m=c(41004),n=c(69704),o=c(53225),p=c(19804),q=c(29463),r=c(30015);let s=["error","data","body","message","cause","result","payload"];function t(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function u(a){return"number"==typeof a&&Number.isFinite(a)?a:"string"==typeof a&&/^-?\d+(?:\.\d+)?$/.test(a.trim())?Number(a.trim()):void 0}function v(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function w(a){return!0===a||!1===a?a:"true"===a||"false"!==a&&void 0}function x(a){if("string"!=typeof a)return;let b=a.trim();if(b&&("{"===b[0]||"["===b[0]))try{let a=JSON.parse(b);return t(a)||Array.isArray(a)?a:void 0}catch{return}}function y(a,{fromStatus:b=!1}={}){let c=u(a?.retryAfterSeconds)??u(a?.waitTime),d=void 0===c?3e4:1e3*c;return b&&(d=Math.max(d,3e4)),Math.min(6e4,Math.max(15e3,d))}function z(a){let b=Number(a);return Number.isFinite(b)?b:null}var A=c(76924);let B=/^image\//i,C=/data:[^;]+;base64,[A-Za-z0-9+/=\s]+/g;function D(a){let b=String(a||"").toLowerCase();return b.includes("png")?"png":b.includes("jpeg")||b.includes("jpg")?"jpg":b.includes("gif")?"gif":b.includes("webp")?"webp":b.includes("bmp")?"bmp":b.includes("pdf")?"pdf":"bin"}function E(a){return"string"==typeof a&&a?Math.floor(3*a.replace(/\s/g,"").length/4):0}function F({name:a,mime:b,bytes:c,reason:d}){let e=c?`, ${c} bytes`:"";return`[file omitted: ${a||b||"attachment"}${e} — ${d}]`}async function G({buffer:a,mediaType:b,credentials:c,proxyOptions:d,signal:f}){let g=(0,e.A)(),h=`${(0,n.e9)(c)}/algo${n.o8}?request_id=${g}`,{boundary:j,body:k}=function(a,{fieldName:b="file",fileName:c,mediaType:d}={}){let e=`----9routerQoder${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,f=c||`upload.${D(d)}`,g=Buffer.from(`--${e}\r
125
291
  Content-Disposition: form-data; name="${b}"; filename="${f}"\r
126
292
  Content-Type: ${d||"application/octet-stream"}\r
127
293
  \r
128
294
  `),h=Buffer.from(`\r
129
295
  --${e}--\r
130
- `);return{boundary:e,body:Buffer.concat([g,a,h])}}(a,{fileName:`image.${w(b)}`,mediaType:b||"application/octet-stream"}),m=c?.providerSpecificData||{},n={...(0,e.d)(l,i,{userId:m.userId,authToken:c.accessToken,name:c.displayName||"",email:c.email||"",machineId:m.machineId||""}),Accept:"application/json","Content-Type":`multipart/form-data; boundary=${k}`,"Content-Length":String(l.length),"AI-CLIENT-TIMESTAMP":String(Math.floor(Date.now()/1e3)),"Accept-Encoding":"identity"},p=await (0,j.proxyAwareFetch)(i,{method:"PUT",headers:n,body:l,signal:g},d);if(!p.ok){let a=await p.text().catch(()=>"");throw Error(`HTTP ${p.status}${a?`: ${a.slice(0,180)}`:""}`)}let q=function a(b){if(!b||"object"!=typeof b)return null;let c=b.result&&"object"==typeof b.result?b.result:b;for(let a of[c.imageUrls,c.image_urls,b.imageUrls,b.image_urls])if(Array.isArray(a)&&"string"==typeof a[0]&&a[0])return a[0];for(let a of["imageUrl","image_url","url","ossUrl","oss_url","originalUrl","originUrl","link","image"]){let d=c[a]??b[a];if("string"==typeof d&&d)return d}if("string"==typeof b.body)try{return a(JSON.parse(b.body))}catch{}return null}(await p.json().catch(()=>null));if(!q)throw Error("upload response missing url");return q}async function A({base64:a,mediaType:b,credentials:c,proxyOptions:d,signal:e,log:f,uploadFn:h,cache:i}){let j,k=String(a||"").replace(/\s/g,"");if(!k)return null;let l=x(k);if(l>t.J5)return f?.warn?.("QODER",`image ${l} bytes exceeds upload cap, stubbing`),{stub:!0,bytes:l,mime:b};try{j=Buffer.from(k,"base64")}catch{return{stub:!0,bytes:l,mime:b}}let m=(0,g.createHash)("sha256").update(j).digest("hex");if(i?.has(m))return{url:i.get(m),bytes:l,mime:b};try{let a=await (h||z)({buffer:j,mediaType:b,credentials:c,proxyOptions:d,signal:e});if("string"==typeof a&&a)return i?.set(m,a),{url:a,bytes:l,mime:b}}catch(a){f?.warn?.("QODER",`image upload failed (${a.message}); ${l<=o.Y6?"keeping inline":"stubbing"}`)}return l<=o.Y6?{keep:!0,bytes:l,mime:b}:{stub:!0,bytes:l,mime:b}}function B(a){return{type:q.x4.IMAGE_URL,image_url:{url:a}}}async function C(a,b){if(!a||"object"!=typeof a)return a;if(a.type===q.x4.IMAGE_URL){let c="string"==typeof a.image_url?a.image_url:a.image_url?.url;if("string"!=typeof c||!c)return null;if(c.startsWith("http://")||c.startsWith("https://"))return B(c);let d=(0,r.W$)(c);if(!d)return{type:q.x4.TEXT,text:y({name:"attachment",reason:"unreadable data URI"})};if(!u.test(d.mimeType))return{type:q.x4.TEXT,text:y({name:"file",mime:d.mimeType,bytes:x(d.base64),reason:"non-image bytes are not inlined into Qoder context"})};let e=await A({...b,base64:d.base64,mediaType:d.mimeType});return e?.url?B(e.url):e?.keep?B(c):{type:q.x4.TEXT,text:y({name:"image",mime:d.mimeType,bytes:e?.bytes,reason:"upload failed; not inlined"})}}if(a.type===q.x4.IMAGE||a.type===q.R4.IMAGE){let c=a.source||{};if("url"===c.type&&"string"==typeof c.url)return B(c.url);if("base64"===c.type&&c.data){let a=c.media_type||"image/png",d=await A({...b,base64:c.data,mediaType:a});return d?.url?B(d.url):d?.keep?B(`data:${a};base64,${c.data}`):{type:q.x4.TEXT,text:y({name:"image",mime:a,bytes:d?.bytes,reason:"upload failed; not inlined"})}}}if(a.type===q.x4.FILE&&a.file){let c=a.file,d=c.filename||c.name||"file",e="string"==typeof c.file_data?c.file_data:null,f=e?(0,r.W$)(e):null,g=f?.base64||("string"!=typeof c.file_data||c.file_data.startsWith("data:")?null:c.file_data),h=f?.mimeType||c.format||"application/octet-stream";if(g&&u.test(h)){let a=await A({...b,base64:g,mediaType:h});if(a?.url)return B(a.url)}return{type:q.x4.TEXT,text:y({name:d,mime:h,bytes:x(g||""),reason:"Qoder reads documents via its file API, not inlined bytes"})}}if(a.type===q.R4.DOCUMENT&&a.source){let c=a.source,d=a.title||"document";if("base64"===c.type&&c.data){let a=c.media_type||"application/pdf";if(u.test(a)){let d=await A({...b,base64:c.data,mediaType:a});if(d?.url)return B(d.url)}return{type:q.x4.TEXT,text:y({name:d,mime:a,bytes:x(c.data),reason:"Qoder reads documents via its file API, not inlined bytes"})}}}if("string"==typeof a.text&&a.text.includes("data:")&&a.text.length>8192){let b=a.text.replace(v,a=>{let b=(0,r.W$)(a.trim()),c=b?x(b.base64):a.length;return c<=o.Y6?a:y({mime:b?.mimeType,bytes:c,reason:"inlined data URI stripped from Qoder context"})});return{...a,text:b}}return a}async function D(a,b){if("string"==typeof a)return a.includes("data:")&&a.length>8192?a.replace(v,a=>{let b=(0,r.W$)(a.trim()),c=b?x(b.base64):a.length;return c<=o.Y6?a:y({mime:b?.mimeType,bytes:c,reason:"inlined data URI stripped from Qoder context"})}):a;if(!Array.isArray(a))return a;let c=[];for(let d of a){let a=await C(d,b);null!=a&&c.push(a)}return c.length?c:""}function E(a){try{return Buffer.byteLength(JSON.stringify(a),"utf8")}catch{return 0}}async function F(a,{credentials:b,log:c,proxyOptions:d=null,signal:e=null,uploadFn:f=null}={}){let g={imageUrls:[],uploaded:0,stubbed:0};if(!Array.isArray(a)||0===a.length)return g;let h={credentials:b,log:c,proxyOptions:d,signal:e,uploadFn:f,cache:new Map};for(let b of a)if(b&&"object"==typeof b){if(Array.isArray(b.images)){let a=b.images.map(a=>B(String(a)));b.content=Array.isArray(b.content)?[...b.content,...a]:[{type:q.x4.TEXT,text:"string"==typeof b.content?b.content:""},...a],delete b.images}b.content=await D(b.content,h)}for(let b of a)if(Array.isArray(b?.content))for(let a of b.content){let b=a?.type===q.x4.IMAGE_URL?"string"==typeof a.image_url?a.image_url:a.image_url?.url:null;"string"==typeof b&&/^https?:\/\//i.test(b)&&g.imageUrls.push(b),a?.type===q.x4.TEXT&&"string"==typeof a.text&&a.text.startsWith("[file omitted:")&&(g.stubbed+=1)}if(g.uploaded=g.imageUrls.length,E(a)>o.iu){c?.warn?.("QODER",`request still ${E(a)} bytes after rewrite; stripping leftover data URIs`);for(let b of a||[])"string"==typeof b?.content&&b.content.includes("data:")?b.content=b.content.replace(v,a=>y({bytes:a.length,reason:"payload over Qoder size budget"})):Array.isArray(b?.content)&&(b.content=b.content.map(a=>{if(a?.type===q.x4.IMAGE_URL){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;if("string"==typeof b&&b.startsWith("data:"))return{type:q.x4.TEXT,text:y({name:"image",reason:"payload over Qoder size budget"})}}return"string"==typeof a?.text&&a.text.includes("data:")?{...a,text:a.text.replace(v,a=>y({bytes:a.length,reason:"payload over Qoder size budget"}))}:a}))}return g}let G={K:1e3,M:1e6};function H(a){if("number"==typeof a)return Number.isFinite(a)&&a>0?Math.floor(a):0;if("string"!=typeof a)return 0;let b=a.trim().toUpperCase().match(/^(\d+(?:\.\d+)?)\s*([KM])?$/);if(!b)return 0;let c=Number(b[1])*(G[b[2]]||1);return Number.isFinite(c)&&c>0?Math.floor(c):0}let I=/[\u1100-\u11ff\u2e80-\u9fff\uac00-\ud7af\uf900-\ufaff\uff00-\uffef]/g;function J(a){if("string"==typeof a)return a;if(null==a)return"";if(Array.isArray(a)){let b=[];for(let c of a)c&&"object"==typeof c&&("text"===c.type&&"string"==typeof c.text?b.push(c.text):"string"==typeof c.text&&b.push(c.text));return b.join("\n")}return String(a)}function K(a,b){return a&&a.length>b?`${a.slice(0,b)}...`:a||""}async function L({model:a,body:b,credentials:c,log:d,proxyOptions:e,signal:h,uploadFn:i=null,region:j="intl"}){var k,l;let m=String(a||"").replace(/^qoder\//,""),n=await (0,p.X5)(c,m,{log:d,proxyOptions:e,signal:h,region:j});if(!n){let a=await (0,p.EV)(c,{forceRefresh:!0,log:d,proxyOptions:e,signal:h,region:j}),b=a?.rawConfigs.get(m);if(!b)throw Error(`qoder: model_config for "${m}" not yet known (run a model list fetch or check upstream connectivity)`);n={...b,key:m}}let s=Array.isArray(b.messages)?b.messages.map(a=>a&&"object"==typeof a?{...a,content:Array.isArray(a.content)?a.content.map(a=>a&&"object"==typeof a?{...a}:a):a.content}:a):[];try{await F(s,{credentials:c,log:d,proxyOptions:e,signal:h,uploadFn:i})}catch(a){d?.warn?.("QODER",`attachment rewrite failed: ${a.message}`)}let{messages:t,systemText:u}=function(a){if(!Array.isArray(a)||0===a.length)return{messages:[],systemText:""};let b=[],c=[];for(let d of a){if(!d||"object"!=typeof d)continue;if("system"===d.role){let a=J(d.content);a&&b.push(a);continue}let a={...d};a.content=function(a){if("string"==typeof a)return a;if(null==a)return"";if(!Array.isArray(a))return String(a);let b=[],c=[],d=!1,e=a=>{a&&(d||b.length?b.push({type:q.x4.TEXT,text:a}):c.push(a))},f=a=>"string"==typeof a.image_url&&a.image_url?a.image_url:"string"==typeof a.image_url?.url&&a.image_url.url?a.image_url.url:null;for(let c of a){if(!c||"object"!=typeof c)continue;let a=c.type===q.x4.IMAGE_URL?f(c):null;if(a)b.push({type:q.x4.IMAGE_URL,image_url:{url:a}}),d=!0;else if(c.type===q.R4.IMAGE&&c.source){let a=c.source,e="base64"===a.type&&a.data?(0,r.$q)(a.media_type||"image/png",a.data):"string"==typeof a.url&&a.url?a.url:null;e&&(b.push({type:q.x4.IMAGE_URL,image_url:{url:e}}),d=!0)}else if(c.type===q.x4.FILE){let a=c.file?.filename||c.file?.name||"file";e(`[file omitted: ${a} — Qoder reads documents via its file API, not inlined bytes]`)}else if(c.type===q.R4.DOCUMENT){let a=c.title||"document";e(`[file omitted: ${a} — Qoder reads documents via its file API, not inlined bytes]`)}else"string"==typeof c.text&&c.text&&e(c.text)}return d?(c.length&&b.unshift({type:q.x4.TEXT,text:c.join("\n")}),b):c.join("\n")}(d.content),c.push(a)}return{messages:c,systemText:b.join("\n\n")}}(s),v=b.tools,w=!!n.is_reasoning,x=Number(n.max_output_tokens)||0,y=32768;x>0&&(y=x),"number"==typeof b.max_tokens&&b.max_tokens>0&&b.max_tokens<y&&(y=b.max_tokens),"number"==typeof b.max_completion_tokens&&b.max_completion_tokens>0&&b.max_completion_tokens<y&&(y=b.max_completion_tokens);let z=function(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if(c?.role==="user"){if("string"==typeof c.content)return c.content;if(Array.isArray(c.content))return J(c.content)}}return""}(t),A=function(a,...b){let c=(0,g.createHash)("sha256");for(let d of(c.update(a),b))c.update("\0"),c.update(String(d??""));return c.digest("hex").slice(0,16)}("qoder-session",(c.providerSpecificData||{}).userId,m),B=function(a,b,c,d){let e=(0,g.createHash)("sha256");for(let c of(e.update("qoder-record\0"),e.update(String(a)),b))if(c&&"object"==typeof c){if(c.role&&(e.update("\0"),e.update(c.role)),"string"==typeof c.content&&c.content)e.update("\0"),e.update(c.content);else if(Array.isArray(c.content)){e.update("\0");try{e.update(JSON.stringify(c.content))}catch{}}}if(c){e.update("\0");try{e.update(JSON.stringify(c))}catch{}}return e.update(`\0mt=${d}`),e.digest("hex").slice(0,16)}(m,t,v,y),C=function(a,b,c={}){let d=function(a){let b=a?.context_config??a?.contextConfig;if(!Array.isArray(b))return[];let c=new Map;for(let a of b){if(!a||"object"!=typeof a)continue;let b=H(a.tokenCount??a.token_count??a.max_input_tokens??a.maxInputTokens??a.contextLength??a.context_length);if(!b)continue;let d=!0===a.isDefault||!0===a.is_default||!0===a.default,e=c.get(b);c.set(b,{name:function(a,b){let c=a.name??a.label??a.display_name??a.displayName??a.key??a.id;return"string"==typeof c&&c.trim()?c.trim():b>=G.M&&b%G.M==0?`${b/G.M}M`:b>=G.K&&b%G.K==0?`${b/G.K}K`:String(b)}(a,b),tokenCount:b,isDefault:e?.isDefault||d})}return[...c.values()].sort((a,b)=>a.tokenCount-b.tokenCount)}(a);if(!d.length)return null;let e=String(c.preference??"").trim()||o.EM.AUTO,f=d[d.length-1],g=d.find(a=>a.isDefault)||d[0],h=function({system:a,messages:b,tools:c}={}){let d="";try{d=JSON.stringify({system:a||"",messages:b||[],tools:c||[]})||""}catch{return 0}let e=(d.match(I)||[]).length;return Math.ceil(e+(d.length-e)/4)}(b),i=Math.ceil(h*(1+("number"==typeof c.headroom?c.headroom:o.NH)));if(e.toLowerCase()===o.EM.MAX)return{tier:f,estimatedTokens:h,reason:"forced:max"};if(e.toLowerCase()===o.EM.DEFAULT)return{tier:g,estimatedTokens:h,reason:"forced:default"};if(e.toLowerCase()!==o.EM.AUTO){let a,b,c=(b=H(a=e.replace(/\s+/g,"").toUpperCase()),d.find(c=>c.name.replace(/\s+/g,"").toUpperCase()===a||b&&c.tokenCount===b)||null);if(c)return{tier:c,estimatedTokens:h,reason:`forced:${c.name}`}}let j=H(a?.max_input_tokens??a?.maxInputTokens)||g.tokenCount;if(i<=j)return null;let k=d.find(a=>a.tokenCount>=i&&a.tokenCount>j),l=k||f;return l.tokenCount<=j?null:{tier:l,estimatedTokens:h,reason:k?"auto:fits":"auto:largest"}}(n,{system:u,messages:t,tools:v},{preference:process.env[o.d2]});C&&d?.info?.("QODER",`context tier ${C.tier.name} (${C.tier.tokenCount} tokens, ${C.reason}) for ~${C.estimatedTokens} prompt tokens`);let D={qoderKey:m,payload:{request_id:(0,f.A)(),request_set_id:B,chat_record_id:B,session_id:A,stream:!0,chat_task:"FREE_INPUT",is_reply:!0,is_retry:!1,source:1,version:"3",session_type:"qodercli",agent_id:"agent_common",task_id:"common",code_language:"",chat_prompt:"",image_urls:null,aliyun_user_type:"",system:u,messages:t,tools:Array.isArray(v)?v:[],parameters:{max_tokens:y},chat_context:{chatPrompt:"",imageUrls:null,extra:{context:[],modelConfig:{key:m,is_reasoning:w},originalContent:z},features:[],text:z},model_config:n,business:{product:"cli",version:"1.0.0",type:"agent",stage:"start",id:(0,f.A)(),name:K(z,30),begin_at:Date.now()}},modelConfig:n};return C&&(k=D.payload,l=C.tier,k&&l?.tokenCount&&(k.parameters={...k.parameters||{},context_length:l.tokenCount},k.chat_context=k.chat_context||{},k.chat_context.extra={...k.chat_context.extra||{},ideModelConfigOverride:{...k.chat_context.extra?.ideModelConfigOverride||{},max_input_tokens:l.tokenCount}},k.model_config&&"object"==typeof k.model_config&&(k.model_config={...k.model_config,max_input_tokens:l.tokenCount}))),D}function M(a){return"string"==typeof a?a.replace(/\\/g,""):""}let N=/"code"\s*:\s*"10605"/;function O(a){let b=M(a).toLowerCase();return/"code"\s*:\s*"?(110|112|10605)\b/.test(b)||b.includes("pricingurl")}function P(a){return N.test(M(a))}async function Q(a,b){let c="",d=0,e=!1;for(;;){let f,g=c.indexOf("\n",d);if(-1===g&&!e){if(c.length>n.bK)return{isError:!1,isBilling:!1,consumed:c};let{done:d,value:f}=await a.read();e=d,c+=d?b.decode():b.decode(f,{stream:!0});continue}if(d>=c.length)return{isError:!1,consumed:c,upstreamDone:e};-1===g&&(g=c.length);let h=c.slice(d,g).replace(/\r$/,"").trim();if(d=g+1,!h.startsWith("data:"))continue;let i=h.slice(5).trimStart();if("[DONE]"===i)return{isError:!1,consumed:c,upstreamDone:e};try{f=JSON.parse(i)}catch{return{isError:!1,consumed:c,upstreamDone:e}}let j=Number(f?.statusCodeValue),k=Number.isNaN(j)?200:j,l="string"==typeof f?.body?f.body:f?.body!=null?JSON.stringify(f.body):"";if(200!==k)return{isError:!0,isBilling:O(l),statusVal:k,message:l||`upstream status ${k}`};return{isError:!1,consumed:c,upstreamDone:e}}}async function R(a,b,c=null){if(!a.ok||!a.body)return a;let d=new TextDecoder,e=a.body.getReader(),f=await Q(e,d);if(f.isError){await e.cancel().catch(()=>{});let a=f.isBilling?n.gx.FORBIDDEN:Number.isInteger(f.statusVal)&&f.statusVal>=n.gx.BAD_REQUEST&&f.statusVal<=599?f.statusVal:n.gx.BAD_GATEWAY;return new Response(JSON.stringify({error:{message:f.message,code:f.statusVal}}),{status:a,headers:{"Content-Type":"application/json"}})}let g=f.consumed||"",h=!0===f.upstreamDone,i=new TextEncoder,j=!1,k=function({model:a,encoder:b,sseDone:c}){let d=null,e=null,f={id:null,created:null,model:a},g=!1,h=!1,i=(a,c)=>{a.enqueue(b.encode(`data: ${String(c).replace(/\r?\n/g,"")}
296
+ `);return{boundary:e,body:Buffer.concat([g,a,h])}}(a,{fileName:`image.${D(b)}`,mediaType:b||"application/octet-stream"}),l=c?.providerSpecificData||{},m={...(0,r.dE)(k,h,{userId:l.userId,authToken:c.accessToken,name:c.displayName||"",email:c.email||"",machineId:l.machineId||""}),Accept:"application/json","Content-Type":`multipart/form-data; boundary=${j}`,"Content-Length":String(k.length),"AI-CLIENT-TIMESTAMP":String(Math.floor(Date.now()/1e3)),"Accept-Encoding":"identity"},o=await (0,i.proxyAwareFetch)(h,{method:"PUT",headers:m,body:k,signal:f},d);if(!o.ok){let a=await o.text().catch(()=>"");throw Error(`HTTP ${o.status}${a?`: ${a.slice(0,180)}`:""}`)}let p=function a(b){if(!b||"object"!=typeof b)return null;let c=b.result&&"object"==typeof b.result?b.result:b;for(let a of[c.imageUrls,c.image_urls,b.imageUrls,b.image_urls])if(Array.isArray(a)&&"string"==typeof a[0]&&a[0])return a[0];for(let a of["imageUrl","image_url","url","ossUrl","oss_url","originalUrl","originUrl","link","image"]){let d=c[a]??b[a];if("string"==typeof d&&d)return d}if("string"==typeof b.body)try{return a(JSON.parse(b.body))}catch{}return null}(await o.json().catch(()=>null));if(!p)throw Error("upload response missing url");return p}async function H({base64:a,mediaType:b,credentials:c,proxyOptions:d,signal:e,log:g,uploadFn:h,cache:i}){let j,k=String(a||"").replace(/\s/g,"");if(!k)return null;let l=E(k);if(l>A.J5)return g?.warn?.("QODER",`image ${l} bytes exceeds upload cap, stubbing`),{stub:!0,bytes:l,mime:b};try{j=Buffer.from(k,"base64")}catch{return{stub:!0,bytes:l,mime:b}}let m=(0,f.createHash)("sha256").update(j).digest("hex");if(i?.has(m))return{url:i.get(m),bytes:l,mime:b};try{let a=await (h||G)({buffer:j,mediaType:b,credentials:c,proxyOptions:d,signal:e});if("string"==typeof a&&a)return i?.set(m,a),{url:a,bytes:l,mime:b}}catch(a){g?.warn?.("QODER",`image upload failed (${a.message}); ${l<=n.Y6?"keeping inline":"stubbing"}`)}return l<=n.Y6?{keep:!0,bytes:l,mime:b}:{stub:!0,bytes:l,mime:b}}function I(a){return{type:p.x4.IMAGE_URL,image_url:{url:a}}}async function J(a,b){if(!a||"object"!=typeof a)return a;if(a.type===p.x4.IMAGE_URL){let c="string"==typeof a.image_url?a.image_url:a.image_url?.url;if("string"!=typeof c||!c)return null;if(c.startsWith("http://")||c.startsWith("https://"))return I(c);let d=(0,q.W$)(c);if(!d)return{type:p.x4.TEXT,text:F({name:"attachment",reason:"unreadable data URI"})};if(!B.test(d.mimeType))return{type:p.x4.TEXT,text:F({name:"file",mime:d.mimeType,bytes:E(d.base64),reason:"non-image bytes are not inlined into Qoder context"})};let e=await H({...b,base64:d.base64,mediaType:d.mimeType});return e?.url?I(e.url):e?.keep?I(c):{type:p.x4.TEXT,text:F({name:"image",mime:d.mimeType,bytes:e?.bytes,reason:"upload failed; not inlined"})}}if(a.type===p.x4.IMAGE||a.type===p.R4.IMAGE){let c=a.source||{};if("url"===c.type&&"string"==typeof c.url)return I(c.url);if("base64"===c.type&&c.data){let a=c.media_type||"image/png",d=await H({...b,base64:c.data,mediaType:a});return d?.url?I(d.url):d?.keep?I(`data:${a};base64,${c.data}`):{type:p.x4.TEXT,text:F({name:"image",mime:a,bytes:d?.bytes,reason:"upload failed; not inlined"})}}}if(a.type===p.x4.FILE&&a.file){let c=a.file,d=c.filename||c.name||"file",e="string"==typeof c.file_data?c.file_data:null,f=e?(0,q.W$)(e):null,g=f?.base64||("string"!=typeof c.file_data||c.file_data.startsWith("data:")?null:c.file_data),h=f?.mimeType||c.format||"application/octet-stream";if(g&&B.test(h)){let a=await H({...b,base64:g,mediaType:h});if(a?.url)return I(a.url)}return{type:p.x4.TEXT,text:F({name:d,mime:h,bytes:E(g||""),reason:"Qoder reads documents via its file API, not inlined bytes"})}}if(a.type===p.R4.DOCUMENT&&a.source){let c=a.source,d=a.title||"document";if("base64"===c.type&&c.data){let a=c.media_type||"application/pdf";if(B.test(a)){let d=await H({...b,base64:c.data,mediaType:a});if(d?.url)return I(d.url)}return{type:p.x4.TEXT,text:F({name:d,mime:a,bytes:E(c.data),reason:"Qoder reads documents via its file API, not inlined bytes"})}}}if("string"==typeof a.text&&a.text.includes("data:")&&a.text.length>8192){let b=a.text.replace(C,a=>{let b=(0,q.W$)(a.trim()),c=b?E(b.base64):a.length;return c<=n.Y6?a:F({mime:b?.mimeType,bytes:c,reason:"inlined data URI stripped from Qoder context"})});return{...a,text:b}}return a}async function K(a,b){if("string"==typeof a)return a.includes("data:")&&a.length>8192?a.replace(C,a=>{let b=(0,q.W$)(a.trim()),c=b?E(b.base64):a.length;return c<=n.Y6?a:F({mime:b?.mimeType,bytes:c,reason:"inlined data URI stripped from Qoder context"})}):a;if(!Array.isArray(a))return a;let c=[];for(let d of a){let a=await J(d,b);null!=a&&c.push(a)}return c.length?c:""}function L(a){try{return Buffer.byteLength(JSON.stringify(a),"utf8")}catch{return 0}}async function M(a,{credentials:b,log:c,proxyOptions:d=null,signal:e=null,uploadFn:f=null}={}){let g={imageUrls:[],uploaded:0,stubbed:0};if(!Array.isArray(a)||0===a.length)return g;let h={credentials:b,log:c,proxyOptions:d,signal:e,uploadFn:f,cache:new Map};for(let b of a)if(b&&"object"==typeof b){if(Array.isArray(b.images)){let a=b.images.map(a=>I(String(a)));b.content=Array.isArray(b.content)?[...b.content,...a]:[{type:p.x4.TEXT,text:"string"==typeof b.content?b.content:""},...a],delete b.images}b.content=await K(b.content,h)}for(let b of a)if(Array.isArray(b?.content))for(let a of b.content){let b=a?.type===p.x4.IMAGE_URL?"string"==typeof a.image_url?a.image_url:a.image_url?.url:null;"string"==typeof b&&/^https?:\/\//i.test(b)&&g.imageUrls.push(b),a?.type===p.x4.TEXT&&"string"==typeof a.text&&a.text.startsWith("[file omitted:")&&(g.stubbed+=1)}if(g.uploaded=g.imageUrls.length,L(a)>n.iu){c?.warn?.("QODER",`request still ${L(a)} bytes after rewrite; stripping leftover data URIs`);for(let b of a||[])"string"==typeof b?.content&&b.content.includes("data:")?b.content=b.content.replace(C,a=>F({bytes:a.length,reason:"payload over Qoder size budget"})):Array.isArray(b?.content)&&(b.content=b.content.map(a=>{if(a?.type===p.x4.IMAGE_URL){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;if("string"==typeof b&&b.startsWith("data:"))return{type:p.x4.TEXT,text:F({name:"image",reason:"payload over Qoder size budget"})}}return"string"==typeof a?.text&&a.text.includes("data:")?{...a,text:a.text.replace(C,a=>F({bytes:a.length,reason:"payload over Qoder size budget"}))}:a}))}return g}let N={K:1e3,M:1e6};function O(a){if("number"==typeof a)return Number.isFinite(a)&&a>0?Math.floor(a):0;if("string"!=typeof a)return 0;let b=a.trim().toUpperCase().match(/^(\d+(?:\.\d+)?)\s*([KM])?$/);if(!b)return 0;let c=Number(b[1])*(N[b[2]]||1);return Number.isFinite(c)&&c>0?Math.floor(c):0}let P=/[\u1100-\u11ff\u2e80-\u9fff\uac00-\ud7af\uf900-\ufaff\uff00-\uffef]/g;function Q(a){if("string"==typeof a)return a;if(null==a)return"";if(Array.isArray(a)){let b=[];for(let c of a)c&&"object"==typeof c&&("text"===c.type&&"string"==typeof c.text?b.push(c.text):"string"==typeof c.text&&b.push(c.text));return b.join("\n")}return String(a)}function R(a,b){return a&&a.length>b?`${a.slice(0,b)}...`:a||""}async function S({model:a,body:b,credentials:c,log:d,proxyOptions:g,signal:h,uploadFn:i=null,region:j="intl"}){var k,l;let m=String(a||"").replace(/^qoder\//,""),r=await (0,o.X5)(c,m,{log:d,proxyOptions:g,signal:h,region:j});if(!r){let a=await (0,o.EV)(c,{forceRefresh:!0,log:d,proxyOptions:g,signal:h,region:j}),b=a?.rawConfigs.get(m);if(b)r={...b,key:m};else{if(!(r=(0,n.TG)(m)))throw Error(`qoder: model_config for "${m}" not yet known (run a model list fetch or check upstream connectivity)`);d?.info?.("QODER",`using static model_config for "${m}" (absent from the account catalog)`)}}let s=Array.isArray(b.messages)?b.messages.map(a=>a&&"object"==typeof a?{...a,content:Array.isArray(a.content)?a.content.map(a=>a&&"object"==typeof a?{...a}:a):a.content}:a):[];try{await M(s,{credentials:c,log:d,proxyOptions:g,signal:h,uploadFn:i})}catch(a){d?.warn?.("QODER",`attachment rewrite failed: ${a.message}`)}let{messages:t,systemText:u}=function(a){if(!Array.isArray(a)||0===a.length)return{messages:[],systemText:""};let b=[],c=[];for(let d of a){if(!d||"object"!=typeof d)continue;if("system"===d.role){let a=Q(d.content);a&&b.push(a);continue}let a={...d};a.content=function(a){if("string"==typeof a)return a;if(null==a)return"";if(!Array.isArray(a))return String(a);let b=[],c=[],d=!1,e=a=>{a&&(d||b.length?b.push({type:p.x4.TEXT,text:a}):c.push(a))},f=a=>"string"==typeof a.image_url&&a.image_url?a.image_url:"string"==typeof a.image_url?.url&&a.image_url.url?a.image_url.url:null;for(let c of a){if(!c||"object"!=typeof c)continue;let a=c.type===p.x4.IMAGE_URL?f(c):null;if(a)b.push({type:p.x4.IMAGE_URL,image_url:{url:a}}),d=!0;else if(c.type===p.R4.IMAGE&&c.source){let a=c.source,e="base64"===a.type&&a.data?(0,q.$q)(a.media_type||"image/png",a.data):"string"==typeof a.url&&a.url?a.url:null;e&&(b.push({type:p.x4.IMAGE_URL,image_url:{url:e}}),d=!0)}else if(c.type===p.x4.FILE){let a=c.file?.filename||c.file?.name||"file";e(`[file omitted: ${a} — Qoder reads documents via its file API, not inlined bytes]`)}else if(c.type===p.R4.DOCUMENT){let a=c.title||"document";e(`[file omitted: ${a} — Qoder reads documents via its file API, not inlined bytes]`)}else"string"==typeof c.text&&c.text&&e(c.text)}return d?(c.length&&b.unshift({type:p.x4.TEXT,text:c.join("\n")}),b):c.join("\n")}(d.content),c.push(a)}return{messages:c,systemText:b.join("\n\n")}}(s),v=b.tools,w=!!r.is_reasoning,x=Number(r.max_output_tokens)||0,y=32768;x>0&&(y=x),"number"==typeof b.max_tokens&&b.max_tokens>0&&b.max_tokens<y&&(y=b.max_tokens),"number"==typeof b.max_completion_tokens&&b.max_completion_tokens>0&&b.max_completion_tokens<y&&(y=b.max_completion_tokens);let z=function(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if(c?.role==="user"){if("string"==typeof c.content)return c.content;if(Array.isArray(c.content))return Q(c.content)}}return""}(t),A=function(a,...b){let c=(0,f.createHash)("sha256");for(let d of(c.update(a),b))c.update("\0"),c.update(String(d??""));return c.digest("hex").slice(0,16)}("qoder-session",(c.providerSpecificData||{}).userId,m),B=function(a,b,c,d){let e=(0,f.createHash)("sha256");for(let c of(e.update("qoder-record\0"),e.update(String(a)),b))if(c&&"object"==typeof c){if(c.role&&(e.update("\0"),e.update(c.role)),"string"==typeof c.content&&c.content)e.update("\0"),e.update(c.content);else if(Array.isArray(c.content)){e.update("\0");try{e.update(JSON.stringify(c.content))}catch{}}}if(c){e.update("\0");try{e.update(JSON.stringify(c))}catch{}}return e.update(`\0mt=${d}`),e.digest("hex").slice(0,16)}(m,t,v,y),C=function(a,b,c={}){let d=function(a){let b=a?.context_config??a?.contextConfig;if(!Array.isArray(b))return[];let c=new Map;for(let a of b){if(!a||"object"!=typeof a)continue;let b=O(a.tokenCount??a.token_count??a.max_input_tokens??a.maxInputTokens??a.contextLength??a.context_length);if(!b)continue;let d=!0===a.isDefault||!0===a.is_default||!0===a.default,e=c.get(b);c.set(b,{name:function(a,b){let c=a.name??a.label??a.display_name??a.displayName??a.key??a.id;return"string"==typeof c&&c.trim()?c.trim():b>=N.M&&b%N.M==0?`${b/N.M}M`:b>=N.K&&b%N.K==0?`${b/N.K}K`:String(b)}(a,b),tokenCount:b,isDefault:e?.isDefault||d})}return[...c.values()].sort((a,b)=>a.tokenCount-b.tokenCount)}(a);if(!d.length)return null;let e=String(c.preference??"").trim()||n.EM.AUTO,f=d[d.length-1],g=d.find(a=>a.isDefault)||d[0],h=function({system:a,messages:b,tools:c}={}){let d="";try{d=JSON.stringify({system:a||"",messages:b||[],tools:c||[]})||""}catch{return 0}let e=(d.match(P)||[]).length;return Math.ceil(e+(d.length-e)/4)}(b),i=Math.ceil(h*(1+("number"==typeof c.headroom?c.headroom:n.NH)));if(e.toLowerCase()===n.EM.MAX)return{tier:f,estimatedTokens:h,reason:"forced:max"};if(e.toLowerCase()===n.EM.DEFAULT)return{tier:g,estimatedTokens:h,reason:"forced:default"};if(e.toLowerCase()!==n.EM.AUTO){let a,b,c=(b=O(a=e.replace(/\s+/g,"").toUpperCase()),d.find(c=>c.name.replace(/\s+/g,"").toUpperCase()===a||b&&c.tokenCount===b)||null);if(c)return{tier:c,estimatedTokens:h,reason:`forced:${c.name}`}}let j=O(a?.max_input_tokens??a?.maxInputTokens)||g.tokenCount;if(i<=j)return null;let k=d.find(a=>a.tokenCount>=i&&a.tokenCount>j),l=k||f;return l.tokenCount<=j?null:{tier:l,estimatedTokens:h,reason:k?"auto:fits":"auto:largest"}}(r,{system:u,messages:t,tools:v},{preference:process.env[n.d2]});C&&d?.info?.("QODER",`context tier ${C.tier.name} (${C.tier.tokenCount} tokens, ${C.reason}) for ~${C.estimatedTokens} prompt tokens`);let D={qoderKey:m,payload:{request_id:(0,e.A)(),request_set_id:B,chat_record_id:B,session_id:A,stream:!0,chat_task:"FREE_INPUT",is_reply:!0,is_retry:!1,source:1,version:"3",session_type:"qodercli",agent_id:"agent_common",task_id:"common",code_language:"",chat_prompt:"",image_urls:null,aliyun_user_type:"",system:u,messages:t,tools:Array.isArray(v)?v:[],parameters:{max_tokens:y},chat_context:{chatPrompt:"",imageUrls:null,extra:{context:[],modelConfig:{key:m,is_reasoning:w},originalContent:z},features:[],text:z},model_config:r,business:{product:"cli",version:"1.0.0",type:"agent",stage:"start",id:(0,e.A)(),name:R(z,30),begin_at:Date.now()}},modelConfig:r};return C&&(k=D.payload,l=C.tier,k&&l?.tokenCount&&(k.parameters={...k.parameters||{},context_length:l.tokenCount},k.chat_context=k.chat_context||{},k.chat_context.extra={...k.chat_context.extra||{},ideModelConfigOverride:{...k.chat_context.extra?.ideModelConfigOverride||{},max_input_tokens:l.tokenCount}},k.model_config&&"object"==typeof k.model_config&&(k.model_config={...k.model_config,max_input_tokens:l.tokenCount}))),D}function T(a){return"string"==typeof a?a.replace(/\\/g,""):""}let U=/"code"\s*:\s*"10605"/;function V(a){if(!a||"string"!=typeof a)return!1;let b=T(a).toLowerCase();if(b.includes("pricingurl"))return!0;try{let b=JSON.parse(a),c=String(b?.code??"");if("110"===c||"112"===c)return!0}catch{}return/"code"\s*:\s*"?(110|112)\b/.test(b)}function W(a){return U.test(T(a))}async function X(a,b){let c="",d=0,e=!1;for(;;){let f,g=c.indexOf("\n",d);if(-1===g&&!e){if(c.length>m.bK)return{isError:!1,isBilling:!1,consumed:c};let{done:d,value:f}=await a.read();e=d,c+=d?b.decode():b.decode(f,{stream:!0});continue}if(d>=c.length)return{isError:!1,consumed:c,upstreamDone:e};-1===g&&(g=c.length);let h=c.slice(d,g).replace(/\r$/,"").trim();if(d=g+1,!h.startsWith("data:"))continue;let i=h.slice(5).trimStart();if("[DONE]"===i)return{isError:!1,consumed:c,upstreamDone:e};try{f=JSON.parse(i)}catch{return{isError:!1,consumed:c,upstreamDone:e}}let j=Number(f?.statusCodeValue),k=Number.isNaN(j)?200:j,l="string"==typeof f?.body?f.body:f?.body!=null?JSON.stringify(f.body):"";if(200!==k)return{isError:!0,isBilling:V(l),statusVal:k,message:l||`upstream status ${k}`};return{isError:!1,consumed:c,upstreamDone:e}}}async function Y(a,b,c=null){if(!a.ok||!a.body)return a;let d=new TextDecoder,e=a.body.getReader(),f=await X(e,d);if(f.isError){await e.cancel().catch(()=>{});let a=f.isBilling?m.gx.FORBIDDEN:Number.isInteger(f.statusVal)&&f.statusVal>=m.gx.BAD_REQUEST&&f.statusVal<=599?f.statusVal:m.gx.BAD_GATEWAY;return new Response(JSON.stringify({error:{message:f.message,code:f.statusVal}}),{status:a,headers:{"Content-Type":"application/json"}})}let g=f.consumed||"",h=!0===f.upstreamDone,i=new TextEncoder,j=!1,n=function({model:a,encoder:b,sseDone:c}){let d=null,e=null,f={id:null,created:null,model:a},g=!1,h=!1,i=(a,c)=>{a.enqueue(b.encode(`data: ${String(c).replace(/\r?\n/g,"")}
131
297
 
132
298
  `))},j=a=>{g||(a.enqueue(b.encode(c)),g=!0)},k=c=>{if(d||e){let g;g=JSON.stringify({id:f.id||`qoder-${Date.now()}`,object:"chat.completion.chunk",created:f.created||Math.floor(Date.now()/1e3),model:f.model||a,choices:[{index:0,delta:{},finish_reason:d||"stop"}],...e?{usage:e}:{}}).replace(/\r?\n/g,""),c.enqueue(b.encode(`data: ${g}
133
299
 
134
- `)),d=null,e=null}},l=a=>{g||((e||d&&!h)&&k(a),j(a))};return{handleInner:(a,b)=>{let c,m;if(g)return{terminal:!0};let n=function(a){if(null==a||""===a)return{raw:!1,parsed:null};if("[DONE]"===a)return{done:!0};if("string"!=typeof a)return"object"==typeof a?{parsed:a}:{raw:!0,text:String(a)};try{return{parsed:JSON.parse(a)}}catch{return{raw:!0,text:a}}}(a);if(n.done)return l(b),{terminal:!0};if(n.raw)return i(b,n.text),{};let o=n.parsed;if(!o||"object"!=typeof o)return{};"string"==typeof o.id&&o.id&&(f.id=o.id),"number"==typeof o.created&&(f.created=o.created),"string"==typeof o.model&&o.model&&(f.model=o.model);let p=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=s(a.prompt_tokens??a.input_tokens),c=s(a.completion_tokens??a.output_tokens);if(null==b&&null==c)return null;let d=a.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details?{...a.prompt_tokens_details}:{},e=s(d.cached_tokens??a.cached_tokens??a.prompt_cache_hit_tokens??a.cache_read_input_tokens),f=s(d.cache_creation_tokens??a.cache_creation_input_tokens),g=b||0,h=c||0,i={prompt_tokens:g,completion_tokens:h,total_tokens:s(a.total_tokens)??g+h};null!=e&&(i.cached_tokens=e,d.cached_tokens=e),null!=f&&(d.cache_creation_tokens=f),Object.keys(d).length&&(i.prompt_tokens_details=d),a.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(i.completion_tokens_details=a.completion_tokens_details);let j=s(a.reasoning_tokens??a.completion_tokens_details?.reasoning_tokens);return null!=j&&(i.reasoning_tokens=j),i}(o.usage);p&&(e=p);let q=(c=o?.choices?.[0],c?.finish_reason||c?.delta?.finish_reason||o?.finish_reason||null);return(m=o?.choices?.[0]?.delta)&&"object"==typeof m&&("string"==typeof m.content&&m.content.length>0||"string"==typeof m.reasoning_content&&m.reasoning_content.length>0||Array.isArray(m.tool_calls)&&m.tool_calls.length>0||m.role)?(i(b,"string"==typeof a?a:JSON.stringify(o)),q&&(h=!0,d=e?q:null),d&&e)?(k(b),j(b),{terminal:!0}):{}:(q&&(d=q),(d||h)&&e)?(d||(d="stop"),k(b),j(b),{terminal:!0}):{}},flush:l,get doneEmitted(){return g}}}({model:b,encoder:i,sseDone:m.$U}),o=()=>{k.doneEmitted&&(j=!0)},p=(a,c)=>{let d,e=a.replace(/\r$/,"").trim();if(!e||!e.startsWith("data:")||j)return;let f=e.slice(5).trimStart();if("[DONE]"===f){k.flush(c),o();return}try{d=JSON.parse(f)}catch{return}let g=Number(d.statusCodeValue)||200,h="string"==typeof d.body?d.body:null!=d.body?JSON.stringify(d.body):"";if(200!==g){try{console.error(`[QODER] error envelope status=${g} statusType=${typeof d.statusCodeValue} bodyType=${typeof d.body} body=${K(h,300)}`)}catch{}if(O(h)&&!P(h)){let a=JSON.stringify({error:{message:h||`qoder billing block (${g})`,code:"qoder_billing_block",status:403,type:"quota_error"}});c.enqueue(i.encode(`data: ${a}
300
+ `)),d=null,e=null}},l=a=>{g||((e||d&&!h)&&k(a),j(a))};return{handleInner:(a,b)=>{let c,m;if(g)return{terminal:!0};let n=function(a){if(null==a||""===a)return{raw:!1,parsed:null};if("[DONE]"===a)return{done:!0};if("string"!=typeof a)return"object"==typeof a?{parsed:a}:{raw:!0,text:String(a)};try{return{parsed:JSON.parse(a)}}catch{return{raw:!0,text:a}}}(a);if(n.done)return l(b),{terminal:!0};if(n.raw)return i(b,n.text),{};let o=n.parsed;if(!o||"object"!=typeof o)return{};"string"==typeof o.id&&o.id&&(f.id=o.id),"number"==typeof o.created&&(f.created=o.created),"string"==typeof o.model&&o.model&&(f.model=o.model);let p=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=z(a.prompt_tokens??a.input_tokens),c=z(a.completion_tokens??a.output_tokens);if(null==b&&null==c)return null;let d=a.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details?{...a.prompt_tokens_details}:{},e=z(d.cached_tokens??a.cached_tokens??a.prompt_cache_hit_tokens??a.cache_read_input_tokens),f=z(d.cache_creation_tokens??a.cache_creation_input_tokens),g=b||0,h=c||0,i={prompt_tokens:g,completion_tokens:h,total_tokens:z(a.total_tokens)??g+h};null!=e&&(i.cached_tokens=e,d.cached_tokens=e),null!=f&&(d.cache_creation_tokens=f),Object.keys(d).length&&(i.prompt_tokens_details=d),a.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(i.completion_tokens_details=a.completion_tokens_details);let j=z(a.reasoning_tokens??a.completion_tokens_details?.reasoning_tokens);return null!=j&&(i.reasoning_tokens=j),i}(o.usage);p&&(e=p);let q=(c=o?.choices?.[0],c?.finish_reason||c?.delta?.finish_reason||o?.finish_reason||null);return(m=o?.choices?.[0]?.delta)&&"object"==typeof m&&("string"==typeof m.content&&m.content.length>0||"string"==typeof m.reasoning_content&&m.reasoning_content.length>0||Array.isArray(m.tool_calls)&&m.tool_calls.length>0||m.role)?(i(b,"string"==typeof a?a:JSON.stringify(o)),q&&(h=!0,d=e?q:null),d&&e)?(k(b),j(b),{terminal:!0}):{}:(q&&(d=q),(d||h)&&e)?(d||(d="stop"),k(b),j(b),{terminal:!0}):{}},flush:l,get doneEmitted(){return g}}}({model:b,encoder:i,sseDone:l.$U}),o=()=>{n.doneEmitted&&(j=!0)},p=(a,c)=>{let d,e=a.replace(/\r$/,"").trim();if(!e||!e.startsWith("data:")||j)return;let f=e.slice(5).trimStart();if("[DONE]"===f){n.flush(c),o();return}try{d=JSON.parse(f)}catch{return}let g=Number(d.statusCodeValue)||200,h="string"==typeof d.body?d.body:null!=d.body?JSON.stringify(d.body):"";if(200!==g){try{console.error(`[QODER] error envelope status=${g} statusType=${typeof d.statusCodeValue} bodyType=${typeof d.body} body=${R(h,300)}`)}catch{}if(V(h)&&!W(h)){let a=JSON.stringify({error:{message:h||`qoder billing block (${g})`,code:"qoder_billing_block",status:403,type:"quota_error"}});c.enqueue(i.encode(`data: ${a}
135
301
 
136
- `)),c.enqueue(i.encode(m.$U)),j=!0;return}let a=h||`upstream status ${g}`,e=P(h)?n.gx.RATE_LIMITED:g,f=JSON.stringify({id:`qoder-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[],error:(0,l.xJ)(e,`[qoder error ${g}: ${K(a,200)}]`).error});c.enqueue(i.encode(`data: ${f}
137
-
138
- `)),c.enqueue(i.encode(m.$U)),j=!0;return}h&&(k.handleInner(h,c),o())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(p(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(p(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{k.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class S extends h.H{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,o.e9)(a,this.region)}/algo${o.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:f,signal:g,log:h,proxyOptions:i=null}){let l,m,o,q,r=f?.apiKey||f?.accessToken;if((0,p.zh)(r))try{f=await (0,p._M)(f,i,g,this.region)}catch(a){return h?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(f),headers:{},transformedBody:b}}let s=this.buildUrl(f),t=f?.providerSpecificData||{};if(!t.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b};if(!f?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b};try{({qoderKey:l,payload:m}=await L({model:a,body:b,credentials:f,log:h,proxyOptions:i,signal:g,region:this.region}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b}}let u=function(a){let b=(Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"utf8"):Buffer.from(a)).toString("base64"),c=b.length,e=Math.floor(c/3),f=b.slice(c-e)+b.slice(e,c-e)+b.slice(0,e),g=Buffer.alloc(c);for(let a=0;a<c;a++){let b=f.charCodeAt(a);b<128&&d[b]>=0?g[a]=d[b]:g[a]=b}return g.toString("latin1")}(Buffer.from(JSON.stringify(m),"utf8")),v=Buffer.from(u,"latin1");try{o=(0,e.d)(v,s,{userId:t.userId,authToken:f.accessToken,name:f.displayName||"",email:f.email||"",machineId:t.machineId||""})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b}}let w={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":l,"X-Model-Source":m.model_config&&m.model_config.source||"system","Accept-Encoding":"identity",...o},x=this.config?.timeoutMs||n.pH,y=(0,k.n)(g,x);try{q=await (0,j.proxyAwareFetch)(s,{method:"POST",headers:w,body:v,signal:y.signal},{...i,strictProxy:!0})}catch(a){if(y.signal.aborted)throw y.signal.reason??a;throw a}finally{y.clear()}return q.ok?{response:await R(q,`${this.provider}/${l}`,h),url:s,headers:w,transformedBody:m}:{response:q,url:s,headers:w,transformedBody:m}}async refreshCredentials(){return null}parseError(a,b){let c=super.parseError(a,b),d=function(a){let b=M(a);if(!N.test(b))return null;let c=b.match(/"retryAfterSeconds"\s*:\s*(\d+)/),d=c?Number(c[1]):0;return d>0?1e3*d:null}(b);return d&&(c.resetsAtMs=Date.now()+d),c}needsRefresh(){return!1}}},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>n});var d=c(74957),e=c(35024),f=c(57247),g=c(8521),h=c(39609),i=c(49426),j=c(41004);let k=new Map;function l(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function m(a){if(k.has(a))return k.get(a);let b=await (0,i.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&k.set(a,e),e}class n extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,g.Sc)(d?.apiKey),h=l(d?.apiKey),i=!!e||!!h||!!d?.accessToken,j=i?null:d?.apiKey,k=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||(0,f.V2)(this.provider,a)?.defaultLocation||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=k?`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),j&&(o+=b?`&key=${j}`:`?key=${j}`),o}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,g.Sc)(a?.apiKey);if(!c)return null;let d=await (0,g.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:k=null}){let n,o=(0,g.Sc)(d?.apiKey),p=l(d?.apiKey);if(o){let a=await (0,g.pb)(o,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,g.I9)(p.refresh_token,p.client_id,p.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await m(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,i.n)(e,this.config?.timeoutMs||j.Z1);try{n=await (0,h.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},k)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},74161:(a,b,c)=>{c.d(b,{B:()=>g});var d=c(96179),e=c(94526);let f="You are an interactive ZCode agent";class g extends d.L{constructor(){super("zcode")}transformRequest(a,b,c,d){return function(a){var b;if(!a||"object"!=typeof a||Array.isArray(a)||("string"==typeof(b=a.system)?b.includes(f):!!Array.isArray(b)&&b.some(a=>("string"==typeof a?a:"string"==typeof a?.text?a.text:"").includes(f))))return a;let c=function(a){if("string"==typeof a)return{text:a,cacheControl:null};if(!Array.isArray(a))return null;let b=null,c=[];for(let d of a){if("string"==typeof d){d&&c.push(d);continue}"string"==typeof d?.text&&d.text&&c.push(d.text),d?.cache_control&&(b=d.cache_control)}return c.length?{text:c.join("\n\n"),cacheControl:b}:null}(a.system),d=c?[...e.L,{type:"text",text:c.text,...c.cacheControl?{cache_control:{...c.cacheControl}}:{}}]:[...e.L];return{...a,system:d}}(super.transformRequest(a,b,c,d))}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(35024),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
139
-
140
- data: [DONE]
141
-
142
- `)}class M extends d.H{constructor(){super("kiro",e.xq.kiro)}buildHeaders(a,b=!0,c=""){let d={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,g.A)()};c.includes("://codewhisperer.")?d["X-Amz-Target"]=f.rx:delete d["X-Amz-Target"];let e=a?.providerSpecificData?.authMethod,h="api_key"===e,i=a?.apiKey||(h?a?.accessToken:null);h&&i?(d.Authorization=`Bearer ${i}`,d.TokenType="API_KEY"):a?.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`,"external_idp"===e&&(d.TokenType="EXTERNAL_IDP")),a?.accessToken&&(d["x-amz-sso-bearer"]=a.accessToken),d["x-amzn-kiro-agent-mode"]="spec",d["x-amzn-codewhisperer-machine-id"]="kiro-desktop";let j=a?.providerSpecificData?.profileArn;return j&&(d["x-amzn-codewhisperer-profile-arn"]=j),d}getOrderedBaseUrls(a){let b=this.getBaseUrls();a?.providerSpecificData?.authMethod;let c=(a?.providerSpecificData?.region||"us-east-1").trim(),d=b.filter(a=>a.includes("amazonaws.com")).map(a=>c&&"us-east-1"!==c&&a.includes("amazonaws.com")?a.replace(/([a-z]+)\.[a-z0-9-]+\.amazonaws\.com/,`$1.${c}.amazonaws.com`):a),e=b.filter(a=>!a.includes("amazonaws.com")),f=d.filter(a=>a.includes("://q.")),g=d.filter(a=>!a.includes("://q."));return f.length>0?[...f,...g,...e]:[...d,...e]}buildUrl(a,b,c=0,d=null){let e=this.getOrderedBaseUrls(d);return e[c]||e[0]||this.config.baseUrl}shouldRetry(a,b){let c=b+1<this.getFallbackCount();return super.shouldRetry(a,b)||c&&f.QR.has(a)}transformRequest(a,b,c,d){return b}async execute(a){let b=await super.execute(a);return b?.response?.ok&&this.attachIntegrityGate(b,a),b}attachIntegrityGate(a,b){let c,d=new AbortController,e=D("KIRO_TOOL_CALL_REPAIR_BUFFER_MAX_BYTES",8388608),f=D("KIRO_TOOL_CALL_REPAIR_TIMEOUT_MS",k.Z1),g=D("KIRO_TOOL_CALL_REPAIR_TTFT_TIMEOUT_MS",f),h=D("KIRO_TOOL_CALL_REPAIR_STALL_TIMEOUT_MS",f),j=b.credentials?.providerSpecificData?.kiroToolCallRepair!==!1&&"false"!==process.env.KIRO_TOOL_CALL_REPAIR,l=()=>d.abort(b.signal?.reason);b.signal?.addEventListener("abort",l,{once:!0});let m=!0,o=new ReadableStream({start:async f=>{let i=()=>{if(m)try{f.enqueue(r.encode(": kiro-validation\n\n"))}catch{m=!1}};i(),c=setInterval(i,1e4);try{let c=await this.runIntegrityRecovery(a.response,b,{signal:d.signal,maxBytes:e,ttftTimeoutMs:g,stallTimeoutMs:h,repairEnabled:j});if(d.signal.aborted)throw(0,n.z)(d.signal.reason);f.enqueue(c),f.close()}catch(a){m&&"AbortError"===a.name?f.error(a):m&&"AbortError"!==a.name&&(f.enqueue(L("kiro_integrity_gate_failed",a.message||"Kiro integrity validation failed")),f.close())}finally{m=!1,clearInterval(c),b.signal?.removeEventListener?.("abort",l)}},cancel(a){m=!1,clearInterval(c),d.abort(a||"client cancelled")}});a.response=new Response(o,{status:a.response.status,statusText:a.response.statusText,headers:{...i.pb}})}async runIntegrityRecovery(a,b,c){let e=await this.readRecoverableIntegrityAttempt(a,b.model,c,"initial");if("complete"===e.kind)return e.bytes;if("terminal_stop"===e.kind||"upstream_error"===e.kind)return this.integrityFailureSSE(e);if("invalid_tool"===e.kind&&!c.repairEnabled)return L("invalid_kiro_tool_call",e.message,e.diagnostics);let f=["ellipsis","short_final","invalid_tool"].includes(e.kind)?e.kind:null,g=f?function(a,b){let c=structuredClone(a||{}),d=t[b]||"Retry the previous incomplete Kiro response.",e=c?.conversationState?.currentMessage?.userInputMessage;if(e){let a="string"==typeof e.content?e.content:"";e.content=a?`${a}
143
-
144
- ${d}`:d}return c}(b.body,"invalid_tool"===f?"tool":f):structuredClone(b.body||{}),h=await d.H.prototype.execute.call(this,{...b,body:g,signal:c.signal});if(!h?.response?.ok){let a="";try{a=await F(h?.response,c.signal,Math.min(c.maxBytes,4096),c.stallTimeoutMs)}catch(a){if("AbortError"===a.name)throw a}return L("kiro_integrity_retry_upstream_error",a||`Kiro integrity retry failed with HTTP ${h?.response?.status||502}`,{status:h?.response?.status||502})}let i=await this.readRecoverableIntegrityAttempt(h.response,b.model,c,"retry");return"complete"===i.kind?i.bytes:"terminal_stop"===i.kind||"upstream_error"===i.kind?this.integrityFailureSSE(i):L("ellipsis"===i.kind?"kiro_ellipsis_retry_failed":"short_final"===i.kind?"kiro_short_final_retry_failed":"invalid_tool"===i.kind?"kiro_tool_call_repair_retry_failed":"kiro_missing_terminal_retry_failed",`Kiro integrity validation failed after one bounded retry: ${i.message||i.kind}`,{attempts:[e.diagnostics,i.diagnostics].filter(Boolean)})}integrityFailureSSE(a){let b=a.diagnostics?.stop_disposition;return L(a.diagnostics?.terminal_provenance==="integrity_buffer_exceeded"?"kiro_integrity_buffer_exceeded":"upstream_error"===a.kind?"kiro_upstream_eventstream_error":"terminal_refusal"===b?"kiro_terminal_refusal":"terminal_incomplete"===b?"kiro_terminal_incomplete":"kiro_unknown_stop_reason",a.message||"Kiro stream ended with a terminal failure",a.diagnostics)}async readRecoverableIntegrityAttempt(a,b,c,d){try{return await this.readIntegrityAttempt(a,b,c,d)}catch(a){if("AbortError"===a.name)throw a;return{kind:"missing_terminal",message:a.message||"Kiro transport read failed",diagnostics:{attempt:d,terminal_provenance:"transport_read_error",transport_state:"upstream_error",stop_reason:null,stop_disposition:"terminal_incomplete",response_state:"no_semantic_output",event_counts:{},incomplete_frame_bytes:0}}}}async readIntegrityAttempt(a,b,c,d){let e,f=this.transformEventStreamToSSE(a,b,{maxToolBytes:Math.max(1,Math.floor(c.maxBytes/2)),onTerminalState:a=>{e=a}}).body.getReader(),g=[],h=0,i=!1,j={content:"",reasoning:"",hasToolCalls:!1,error:null};try{for(;;){let a=i?c.stallTimeoutMs:c.ttftTimeoutMs,b=i?"stalled":"timed out before first chunk",{done:d,value:e}=await (0,n.S)(f,c.signal,a,`Kiro integrity validation ${b}`);if(d)break;if(i=!0,(h+=e.byteLength)>c.maxBytes)return await f.cancel("kiro_integrity_buffer_exceeded").catch(()=>{}),{kind:"terminal_stop",message:`Kiro integrity buffer exceeded ${c.maxBytes} bytes`,diagnostics:{terminal_provenance:"integrity_buffer_exceeded"}};g.push(e);for(let a of s.decode(e).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if(b&&"[DONE]"!==b)try{let a=JSON.parse(b);for(let b of(a.error&&(j.error=a.error),a.choices||[])){let a=b.delta||{};"string"==typeof a.content&&(j.content+=a.content),"string"==typeof a.reasoning_content&&(j.reasoning+=a.reasoning_content),a.tool_calls?.length&&(j.hasToolCalls=!0)}}catch{}}}}catch(a){throw await f.cancel(a.message).catch(()=>{}),a}let k={attempt:d,terminal_provenance:e?.terminal_provenance||"missing_terminal_diagnostics",transport_state:e?.transport_state||"unknown",stop_reason:e?.stop_reason||null,stop_disposition:e?.stop_disposition||"terminal_incomplete",response_state:e?.response_state||"no_semantic_output",event_counts:e?.event_counts||{},incomplete_frame_bytes:e?.incomplete_frame_bytes||0};if("retryable_protocol_failure"===k.stop_disposition)return{kind:"invalid_tool_call"===k.terminal_provenance?"invalid_tool":"retryable_stop",message:j.error?.message,diagnostics:k};if("terminal_incomplete"===k.stop_disposition||"terminal_refusal"===k.stop_disposition||"unknown_failure"===k.stop_disposition)return{kind:"upstream_eventstream_error"===k.terminal_provenance?"upstream_error":"integrity_buffer_exceeded"===k.terminal_provenance||["metadata_stop_reason","message_stop_event"].includes(k.terminal_provenance)?"terminal_stop":"missing_terminal",message:j.error?.message,diagnostics:k};if(j.error)return{kind:"missing_terminal",message:j.error.message,diagnostics:k};if(!j.hasToolCalls){let a;if(K(j.content)||!j.content.trim()&&K(j.reasoning))return{kind:"ellipsis",diagnostics:k};if(a=String(j.content||"").trim().replaceAll("’","'"),v.test(a)||!(w.test(a)&&x.test(a)||y.test(a)&&z.test(a))&&a.length>0&&a.length<=800&&u.test(a)&&!A.test(a)&&!B.test(a)&&!C.test(a))return{kind:"short_final",diagnostics:k}}return{kind:"complete",bytes:E(g,h),diagnostics:k}}transformEventStreamToSSE(a,b,c={}){let d=`chatcmpl-${Date.now()}`,e=Math.floor(Date.now()/1e3),g=(0,f.$D)(b).upstream,h=(0,j.getCapabilitiesForModel)("kiro",g).contextWindow||2e5,k={},l={buffer:new Uint8Array(0),chunkIndex:0,toolCounter:0,tools:new Map,bufferedToolBytes:0,hasText:!1,hasReasoning:!1,hasCode:!1,hasToolCalls:!1,sawToolUse:!1,explicitStop:!1,stopReason:null,terminalProvenance:null,transportState:"consuming_response",totalContentLength:0,contextUsagePercentage:0,hasContextUsage:!1,hasMetering:!1,usage:null,inThinking:!1,toolValidationError:null,validatedFrames:0,finished:!1},n=(a={})=>({terminal_provenance:l.terminalProvenance||"clean_eventstream_eof",transport_state:l.transportState,stop_reason:l.stopReason,stop_disposition:I(l.stopReason,l.hasToolCalls),response_state:l.hasToolCalls?"valid_tool":l.hasText||l.hasReasoning||l.hasCode?"text_reasoning":l.explicitStop?"explicit_stop":"no_semantic_output",event_counts:{...k},incomplete_frame_bytes:l.buffer.byteLength,...a}),s=(a,c=null,f)=>r.encode(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:a,finish_reason:c}],...f?{usage:f}:{}})}
302
+ `)),c.enqueue(i.encode(l.$U)),j=!0;return}let a=h||`upstream status ${g}`,e=W(h)?m.gx.RATE_LIMITED:g,f=JSON.stringify({id:`qoder-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[],error:(0,k.xJ)(e,`[qoder error ${g}: ${R(a,200)}]`).error});c.enqueue(i.encode(`data: ${f}
145
303
 
146
- `),t=(a,b)=>{0===l.chunkIndex&&(b={role:"assistant",...b}),l.chunkIndex++,a.enqueue(s(b))},u=(a,b,d,e,f={})=>{l.finished=!0,l.terminalProvenance=b,l.transportState=f.transport_state||"corrupt_frame";let g=n({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(L(d,e,g))},v=()=>{if(l.bufferedToolBytes<=(c.maxToolBytes||4194304))return;let a=Error("Kiro buffered tool input exceeded the integrity memory bound");throw a.code="KIRO_BUFFER_EXCEEDED",a},w=(a,b)=>{if(void 0!==b){if("string"==typeof b){if(a.inputKind&&"string"!==a.inputKind)throw Error("Kiro tool input changed fragment type");a.inputKind="string",a.inputChunks||=[],a.inputChunks.push(b),l.bufferedToolBytes+=r.encode(b).byteLength}else if(b&&"object"==typeof b&&!Array.isArray(b)){if(a.inputKind&&"object"!==a.inputKind)throw Error("Kiro tool input changed fragment type");a.inputKind="object",l.bufferedToolBytes-=a.inputBytes||0,a.inputObject=b,a.inputBytes=r.encode(JSON.stringify(b)).byteLength,l.bufferedToolBytes+=a.inputBytes}else throw Error("Kiro tool input must be a JSON object");v()}},x=a=>{if(!a.inputKind)throw Error("Kiro tool call is missing input");if("object"===a.inputKind)return a.inputObject;try{let b=JSON.parse(a.inputChunks.join(""));if(!b||"object"!=typeof b||Array.isArray(b))throw Error("not an object");return b}catch(a){throw Error(`Kiro tool input must be valid object JSON (${a.message})`)}},y=(a,b)=>{let c=a.headers[":message-type"];if("error"===c||"exception"===c)return u(b,"upstream_eventstream_error","kiro_upstream_eventstream_error",a.payload?.message||`Kiro upstream sent an EventStream ${c}`,{transport_state:"upstream_error"}),!1;let d=a.headers[":event-type"]||"",f=q.has(d)?d:"other";if(k[f]=(k[f]||0)+1,"assistantResponseEvent"===d&&"string"==typeof a.payload?.content){let c=a.payload.content;if(l.inThinking){let a=c.indexOf("</thinking>");a<0?c="":(l.inThinking=!1,c=c.slice(a+11).replace(/^\n/u,""))}else{let a=c.indexOf("<thinking>");if(a>=0){let b=c.indexOf("</thinking>",a+10);b<0?(l.inThinking=!0,c=c.slice(0,a)):c=c.slice(0,a)+c.slice(b+11).replace(/^\n/u,"")}}(c||!l.hasReasoning)&&(l.hasText||=c.length>0,l.totalContentLength+=c.length,t(b,{content:c}))}else if("reasoningContentEvent"===d){let c=a.payload?.reasoningContentEvent||a.payload||{},d="string"==typeof c?c:c.text||c.content||"";d&&(l.hasReasoning=!0,l.totalContentLength+=d.length,t(b,{reasoning_content:d}))}else if("codeEvent"===d&&"string"==typeof a.payload?.content)l.hasCode=!0,l.totalContentLength+=a.payload.content.length,t(b,{content:a.payload.content});else if("toolUseEvent"===d){l.sawToolUse=!0;let b=Array.isArray(a.payload)?a.payload:[a.payload];if(!b[0])throw Error("Kiro toolUseEvent is empty");for(let a of b){let b,c="string"==typeof a?.name?a.name.trim():"";if(!c)throw Error("Kiro toolUseEvent is missing a tool name");if(null==a.toolUseId)b=`call_${e}_${l.tools.size+1}`;else if("string"==typeof a.toolUseId&&a.toolUseId.trim())b=a.toolUseId;else throw Error("Kiro toolUseEvent has an invalid toolUseId");let d=l.tools.get(b);if(d){if(d.name!==c)throw Error("Kiro tool name changed between fragments")}else d={id:b,name:c},l.tools.set(b,d),l.bufferedToolBytes+=r.encode(b).byteLength+r.encode(c).byteLength+32,v();w(d,a.input)}}else if("messageStopEvent"===d){l.explicitStop=!0;let b=G(a.payload?.stopReason??a.payload?.stop_reason)||(l.sawToolUse?"tool_use":"end_turn"),c=J(l.stopReason,b);c!==l.stopReason&&(l.terminalProvenance="message_stop_event"),l.stopReason=c}else if("metadataEvent"===d||"MetadataEvent"===d){let b=a.payload?.metadataEvent||a.payload?.metadata||a.payload,c=G(b?.stopReason??b?.stop_reason);if(c){l.explicitStop=!0;let a=J(l.stopReason,c);a!==l.stopReason&&(l.terminalProvenance="metadata_stop_reason"),l.stopReason=a}}else if("contextUsageEvent"===d){let b=Number(a.payload?.contextUsagePercentage);Number.isFinite(b)&&(l.contextUsagePercentage=b,l.hasContextUsage=!0)}else if("meteringEvent"===d){l.hasMetering=!0;let b=a.payload?.meteringEvent||a.payload||{},c=Number(b.usage);Number.isFinite(c)&&(l.usage={...l.usage||{},kiro_credits:c,kiro_credit_unit:"string"==typeof b.unit?b.unit:"credit"})}else if("metricsEvent"===d){let b=a.payload?.metricsEvent||a.payload||{},c=Number(b.inputTokens)||0,d=Number(b.outputTokens)||0;if(c||d){l.usage={...l.usage||{},prompt_tokens:c,completion_tokens:d,total_tokens:c+d};let a=Number(b.cacheReadInputTokens||b.cache_read_input_tokens)||0,e=Number(b.cacheCreationInputTokens||b.cache_creation_input_tokens)||0;a&&(l.usage.cache_read_input_tokens=a),e&&(l.usage.cache_creation_input_tokens=e)}}return!0},z=(a,b)=>{let d=l.buffer.byteLength+a.byteLength;if(d>(c.maxRawBytes||o))return u(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream buffered bytes exceed the protocol bound"),!1;if(0===l.buffer.byteLength)l.buffer=a;else{let b=new Uint8Array(d);b.set(l.buffer),b.set(a,l.buffer.byteLength),l.buffer=b}for(;l.buffer.byteLength>=12;){let a,c=new DataView(l.buffer.buffer,l.buffer.byteOffset);if(c.getUint32(8,!1)!==(0,m.QR)(l.buffer.subarray(0,8)))return u(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream prelude CRC mismatch"),!1;let d=c.getUint32(0,!1),e=c.getUint32(4,!1);if(d<16||d>o||e>p||e>d-16)return u(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream frame bounds are invalid"),!1;if(l.buffer.byteLength<d)break;let f=l.buffer.slice(0,d);l.buffer=l.buffer.slice(d);try{a=(0,m.xc)(f)}catch(a){return u(b,"corrupt_eventstream_frame","kiro_missing_terminal",a.message),!1}l.transportState="valid_complete_frame",l.validatedFrames++;try{if(!y(a,b))return!1}catch(a){if("KIRO_BUFFER_EXCEEDED"!==a.code){l.toolValidationError||=a.message,console.error(`[Kiro] tool fragment rejected, keeping ${l.tools.size} buffered tool(s): ${a.message}`);continue}return u(b,"integrity_buffer_exceeded","kiro_integrity_buffer_exceeded",a.message,{transport_state:l.transportState,stop_disposition:"terminal_incomplete"}),!1}}return!0};if(!a.body){let b=n({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(L("kiro_missing_terminal","Kiro response did not include an EventStream body",b),{status:a.status,headers:{...i.pb}})}let A=a.body.getReader();return new Response(new ReadableStream({start:async a=>{try{for(;!l.finished;){let{done:b,value:c}=await A.read();if(b)break;let d=l.chunkIndex,e=l.validatedFrames;if(!z(c,a)){await A.cancel("invalid Kiro EventStream").catch(()=>{});break}l.validatedFrames>e&&l.chunkIndex===d&&a.enqueue(r.encode(": kiro-upstream\n\n"))}(a=>{if(l.finished)return;if(l.buffer.byteLength)return u(a,"incomplete_eventstream_frame","kiro_missing_terminal","Kiro EventStream ended with a truncated frame",{transport_state:"incomplete_frame"});l.transportState="clean_eof";let b=I(l.stopReason,l.sawToolUse),d="terminal_incomplete"===b&&H.has(l.stopReason)&&l.chunkIndex>0;if(d&&console.error(`[Kiro] truncated after ${l.chunkIndex} chunk(s) (stop_reason=${l.stopReason}); keeping output`),!d&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(b))return u(a,l.terminalProvenance||"metadata_stop_reason","retryable_protocol_failure"===b?"kiro_retryable_protocol_failure":"terminal_refusal"===b?"kiro_terminal_refusal":"terminal_incomplete"===b?"kiro_terminal_incomplete":"kiro_unknown_stop_reason",`Kiro ended with non-success stop reason: ${l.stopReason}`,{transport_state:l.transportState,stop_disposition:b});try{for(let b of l.tools.values()){let c;try{if(c=x(b),"tool_call"===b.name){if("string"!=typeof c.name||!c.name.trim())throw Error("Invalid Kiro tool_call payload: missing nested MCP tool name");if(!Object.prototype.hasOwnProperty.call(c,"arguments"))throw Error("Invalid Kiro tool_call payload: missing nested MCP tool arguments")}}catch(a){l.droppedTools=(l.droppedTools||0)+1,l.toolValidationError||=a.message,console.error(`[Kiro] dropping unusable tool call ${b.id} (${b.name}): ${a.message}`);continue}let d=l.toolCounter++;t(a,{tool_calls:[{index:d,id:b.id,type:"function",function:{name:b.name,arguments:""}}]});let e=JSON.stringify(c);t(a,{tool_calls:[{index:d,function:{arguments:e}}]}),l.totalContentLength+=b.name.length+e.length,l.hasToolCalls=!0}if(l.tools.clear(),l.bufferedToolBytes=0,"tool_use"===l.stopReason&&!l.hasToolCalls&&!l.hasText&&!l.hasReasoning&&!l.hasCode)throw Error("Kiro tool_use stop reason did not include a complete tool call")}catch(b){u(a,"invalid_tool_call","invalid_kiro_tool_call",b.message,{transport_state:l.transportState,stop_disposition:"retryable_protocol_failure"});return}if(l.toolValidationError&&!l.hasToolCalls&&!l.hasText&&!l.hasReasoning&&!l.hasCode)return u(a,"invalid_tool_call","invalid_kiro_tool_call",l.toolValidationError,{transport_state:l.transportState,stop_disposition:"retryable_protocol_failure"});if(!(l.hasText||l.hasReasoning||l.hasCode||l.hasToolCalls)&&!l.explicitStop)return u(a,"empty_response_eof","kiro_missing_terminal","Kiro EventStream ended without model output",{transport_state:l.transportState});let e=I(l.stopReason,l.hasToolCalls),f="terminal_incomplete"===e&&H.has(l.stopReason)&&l.chunkIndex>0;if(f&&console.error(`[Kiro] truncated after ${l.chunkIndex} chunk(s) (stop_reason=${l.stopReason}); closing as length`),!f&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(e)){let b="retryable_protocol_failure"===e?"kiro_retryable_protocol_failure":"terminal_refusal"===e?"kiro_terminal_refusal":"terminal_incomplete"===e?"kiro_terminal_incomplete":"kiro_unknown_stop_reason";u(a,l.terminalProvenance||"metadata_stop_reason",b,`Kiro ended with non-success stop reason: ${l.stopReason}`,{transport_state:l.transportState,stop_disposition:e});return}if(l.hasMetering&&l.hasContextUsage&&!l.usage?.total_tokens){let a=l.totalContentLength?Math.max(1,Math.floor(l.totalContentLength/4)):0,b=Math.floor(l.contextUsagePercentage*h/100);l.usage={...l.usage||{},prompt_tokens:b,completion_tokens:a,total_tokens:b+a}}let g=f?"length":l.hasToolCalls?"tool_calls":"length"===e?"length":"stop";a.enqueue(s({},g,l.usage)),a.enqueue(r.encode(i.$U)),l.finished=!0,c.onTerminalState?.(n({terminal_provenance:l.terminalProvenance||"clean_eventstream_eof",transport_state:l.transportState,stop_disposition:f?"length":e}))})(a),a.close()}catch(b){l.finished||u(a,"upstream_read_error","kiro_missing_terminal",b.message||"Kiro EventStream read failed",{transport_state:"upstream_error"}),a.close()}},cancel:a=>A.cancel(a)}),{status:a.status,statusText:a.statusText,headers:{...i.pb}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,h.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},83243:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(96179),e=c(8521);let f=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function g(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!f.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class h extends d.L{async execute(a){let b=await super.execute(a);return b?.response?{...b,response:await g(b.response)}:b}async refreshCredentials(a,b){return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(35024);let i=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class j extends d.H{constructor(a="trae"){super(a,h.xq[a]),this.isEnterprise="trae-enterprise"===a}base(){let a=this.config?.baseUrl;if(a)return a.replace(/\/$/,"");if(!this.isEnterprise)return"https://core-normal.trae.ai/api/remote/v1";throw Error(`Trae provider "${this.provider}" has no transport baseUrl`)}buildHeaders(a,b=!0){let c=a?.providerSpecificData||{};return{...this.config?.headers||{},Authorization:`Cloud-IDE-JWT ${a?.accessToken||""}`,"Content-Type":"application/json","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase(),c="work"===b||"auto-work"===b||"solo-work"===b;if(c&&!this.isEnterprise)return{mode:"work",strategy:"auto",modelName:""};let d=!b||"auto"===b||c;return{mode:"code",strategy:d?"auto":"manual",modelName:d?"":a}}commonParams(a,b,c,d){let e=function(a){let b=String(a||"").split(".");if(3!==b.length)return{};try{let a=JSON.parse(Buffer.from(b[1],"base64url").toString());return a?.data||{}}catch{return{}}}(d),f=this.isEnterprise,g={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||(f?"3.5.54":"1.0.0.1229"),web_id:a.webId||"",user_identity:a.userIdentity||(f?"member":"Free"),is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||e.user_id||"",scope:a.scope||(f?e.scope||"saas":"marscode-us"),tenant:a.tenant||(f?e.tenant_id||"tob_online":"marscode"),region:a.region||(f?"cn-beijing":"US-East"),aiRegion:a.aiRegion||a.region||(f?"cn-beijing":"US-East"),is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(g.biz_session_id=c),JSON.stringify(g)}async createSession(a,b,c,d,h,i,j){let k,{mode:l,strategy:m,modelName:n}=this.resolveMode(c),o={mode:l,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:n,agent_type:"solo_agent_remote",model_selection_strategy:m,common_params:this.commonParams(d,l,null,i)},env:"remote",auto_create_project:!1,origin:"web"},p=(0,f.n)(h,this.config?.timeoutMs||g.pH);try{k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(o),signal:p.signal},j||null)}catch(a){throw p.settleError(a)}finally{p.clear()}let q=await k.text();if(!k.ok)throw Error(`[${k.status}] ${q}`);let r=JSON.parse(q);if(r?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(r)}`);return{sessionId:r.data.chat_session_id,messageId:r.data.message_id}}async streamEvents(a,b,c,d,f,g){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,j=new AbortController;f?.aborted&&j.abort();let k=setTimeout(()=>j.abort(Error("trae stream timeout")),i),l=()=>j.abort();f&&f.addEventListener("abort",l,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:j.signal},g||null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,i="",k=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(i+=f.decode(e,{stream:!0});(a=i.indexOf("\n"))>=0;){let b=i.slice(0,a).replace(/\r$/,"");if(i=i.slice(a+1),b.startsWith("event:"))k=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(k,a))return void await c.cancel().catch(()=>{})}else""===b&&(k=null)}}}finally{clearTimeout(k),f&&f.removeEventListener("abort",l)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=d?.providerSpecificData||{},h=d?.proxyOptions||null,i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
304
+ `)),c.enqueue(i.encode(l.$U)),j=!0;return}h&&(n.handleInner(h,c),o())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(p(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(p(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{n.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class Z extends g.H{constructor(a="qoder"){super(a,h.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,n.e9)(a,this.region)}/algo${n.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:e,signal:f,log:g,proxyOptions:h=null}){let k,l,p,q=e?.apiKey||e?.accessToken;if((0,o.zh)(q))try{e=await (0,o._M)(e,h,f,this.region)}catch(a){return g?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(e),headers:{},transformedBody:b}}let z=this.buildUrl(e),A=e?.providerSpecificData||{};if(!A.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};if(!e?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};try{({qoderKey:k,payload:l}=await S({model:a,body:b,credentials:e,log:g,proxyOptions:h,signal:f,region:this.region}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let B=`${this.provider}/${k}`,C=async a=>{let c,g,l=Buffer.from(JSON.stringify(a),"utf8"),n=Buffer.from(function(a){let b=(Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"utf8"):Buffer.from(a)).toString("base64"),c=b.length,e=Math.floor(c/3),f=b.slice(c-e)+b.slice(e,c-e)+b.slice(0,e),g=Buffer.alloc(c);for(let a=0;a<c;a++){let b=f.charCodeAt(a);b<128&&d[b]>=0?g[a]=d[b]:g[a]=b}return g.toString("latin1")}(l),"latin1");try{c=(0,r.dE)(n,z,{userId:A.userId,authToken:e.accessToken,name:e.displayName||"",email:e.email||"",machineId:A.machineId||(0,r.if)(A.userId)})}catch(a){return{error:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let o={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":k,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c},p=this.config?.timeoutMs||m.pH,q=(0,j.n)(f,p);try{g=await (0,i.proxyAwareFetch)(z,{method:"POST",headers:o,body:n,signal:q.signal},{...h,strictProxy:!0})}catch(a){if(f?.aborted)throw f.reason??a;throw q.settleError(a)}finally{q.clear()}return{response:g,url:z,headers:o,transformedBody:a}},D=async(a,b,c,d,g)=>{let j=function(a,{requestSetId:b,modelKey:c,queueType:d}={}){let e=new URLSearchParams;return b&&e.set("requestSetId",b),c&&e.set("modelKey",c),d&&e.set("queueType",d),`${a}/algo/api/v2/service/ask/queue/status?${e.toString()}`}((0,n.e9)(e,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,i.proxyAwareFetch)(j,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":d,"X-Session-ID":g||"",...(0,r.dE)(Buffer.alloc(0),j,{userId:A.userId,authToken:e.accessToken,name:e.displayName||"",email:e.email||"",machineId:A.machineId||(0,r.if)(A.userId)})},signal:f},h);if(!a.ok)return{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?x(a):a;if(!t(b))return null;let c=w(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:w(b.serviceAvailable),modelKey:v(b.modelKey),queueType:v(b.queueType),queueCount:u(b.queueCount),retryAfterSeconds:u(b.retryAfterSeconds),waitTime:u(b.waitTime)}}(await a.text().catch(()=>""));return b?{endpointOk:!0,info:b}:{endpointOk:!1,info:null}}catch(a){if(f?.aborted)throw a;return{endpointOk:!1,info:null}}},E=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:18e4,F=Date.now(),G=null,H=!0,I=!1,J=l;for(;;){let a=await C(J);if(a.error)return{response:a.error,url:a.url,headers:a.headers,transformedBody:a.transformedBody};if(!a.response.ok)return{response:a.response,url:a.url,headers:a.headers,transformedBody:a.transformedBody};let b=a.response.body.getReader(),c=new TextDecoder,d=await X(b,c),e=d.isError?function(a){let b="string"==typeof a?x(a):a;if(!b)return null;let c=function(a){let b=[],c=new Set,d=new Set,e=[a];for(;e.length>0;){let a=e.shift();if(t(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),s)){let b=a[f];if(t(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=x(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(t(b)||Array.isArray(b))&&e.push(b)}return b}(b),d={code:void 0,subCode:void 0,isQueued:void 0,modelKey:void 0,queueType:void 0,queueCount:void 0,serviceAvailable:void 0,retryAfterSeconds:void 0,waitTime:void 0};for(let a of c)void 0===d.code&&(d.code=v(a.code)),void 0===d.subCode&&(d.subCode=v(a.subCode)),void 0===d.isQueued&&(d.isQueued=w(a.isQueued)),void 0===d.modelKey&&(d.modelKey=v(a.modelKey)),void 0===d.queueType&&(d.queueType=v(a.queueType)),void 0===d.queueCount&&(d.queueCount=u(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=w(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=u(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=u(a.waitTime));return!0!==d.isQueued&&!1!==d.serviceAvailable&&"RESOURCE_LIMIT"!==d.subCode&&"10605"!==d.code?null:d}(d.message||""):null;if(!e){if(d.isError){let b=d.isBilling?m.gx.FORBIDDEN:Number.isInteger(d.statusVal)&&d.statusVal>=400&&d.statusVal<=599?d.statusVal:m.gx.BAD_GATEWAY;return{response:new Response(JSON.stringify({error:{message:d.message||"qoder upstream error",code:d.statusVal}}),{status:b,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}let c=new Response(new ReadableStream({start(a){let c=!1,e=()=>{if(!c){c=!0;try{a.close()}catch{}}},f=b=>{if(c)return!1;try{return a.enqueue(b),!0}catch{return c=!0,!1}},g=new TextEncoder;if(d.consumed&&!f(g.encode(d.consumed)))return;if(d.upstreamDone)return void e();let h=()=>{c||b.read().then(({done:a,value:b})=>{a?e():f(b)&&h()}).catch(()=>e())};h()},cancel:()=>b.cancel().catch(()=>{})}),{status:a.response.status,statusText:a.response.statusText,headers:a.response.headers});return{response:await Y(c,B,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}G=e;let h=Date.now()-F;if(h>=E)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(h/1e3)}s for ${B} (queueType=${G.queueType||"?"}, waitTime=${G.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${k}" is still queued after ${Math.round(h/1e3)}s (queueType=${G.queueType||"?"}); retry shortly`,code:"qoder_model_queued",type:"rate_limit_error"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody};let i=y(e);if(H){let a=J.request_set_id,b=await D(e.modelKey||k,e.queueType,a,J.request_id,J.session_id);b.endpointOk?!1===b.info.isQueued?I?(H=!1,g?.info?.("QODER",`queue status claims ready but "${k}" is still refused; falling back to timed replays`)):(I=!0,g?.info?.("QODER",`model "${k}" reported ready (queueType=${b.info.queueType||"?"}); replaying`),i=0):(i=y(b.info,{fromStatus:!0}),g?.info?.("QODER",`model "${k}" still queued (queueType=${b.info.queueType||"?"}, queueCount=${b.info.queueCount??"?"}); rechecking in ${Math.round(i/1e3)}s`)):H=!1}i>0&&await function(a,b){return a>0?new Promise((c,d)=>{if(b?.aborted)return void d(b.reason);let e=setTimeout(()=>{b?.removeEventListener?.("abort",f),c()},a),f=()=>{clearTimeout(e),d(b.reason)};b?.addEventListener?.("abort",f,{once:!0})}):Promise.resolve()}(i,f)}}async refreshCredentials(){return null}parseError(a,b){let c=super.parseError(a,b),d=function(a){let b=T(a);if(!U.test(b))return null;let c=b.match(/"retryAfterSeconds"\s*:\s*(\d+)/),d=c?Number(c[1]):0;return d>0?1e3*d:null}(b);return d&&(c.resetsAtMs=Date.now()+d),c}needsRefresh(){return!1}}},77919:(a,b,c)=>{c.d(b,{$:()=>M});var d=c(74957),e=c(12643),f=c(41004),g=c(39609),h=c(49426),i=c(78959),j=c(92536),k=c(22115);function l(a){let b=a?.content;return"string"==typeof b?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.text??"").filter(Boolean).join("\n"):""}function m(a){for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||""))return l(a[b]);return""}function n(a,b){let c=b&&"object"==typeof b?b:{},d=Object.keys(c).sort().map(a=>{var b;return`${a}=${"string"==typeof(b=c[a])?b.replace(/\s+/g," ").replace(/["'`]/g,"").toLowerCase():b}`});return`${a}(${d.join(",")})`}function o(a){let b=a&&"object"==typeof a?a.properties:null;return b&&"object"==typeof b?b:{}}function p(a){let b=a&&"object"==typeof a?a.required:null;return Array.isArray(b)?b:[]}function q(a){return`${a.name} ${a.description||""}`.toLowerCase()}function r(a,b){let c=new Set(Object.keys(o(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function s(a){return/\b(mcp|mcpproxy|upstream|registry|oauth|cache key|token usage|handoff|context management|memory|memories|lsp|language server|plan file|server management|tool discovery)\b/.test(q(a))}function t(a){return/\b(ctx_|memory|memories|conversation history|session notes|project memories|context\.db)\b/.test(q(a))}function u(a){if(s(a))return!1;let b=q(a),c=a.name.toLowerCase(),d=/\b(bash|shell|terminal|run_command|execute_command|exec|command)\b/.test(c),e=/\b(?:run|execute).{0,24}\b(?:shell|bash|terminal|command)\b|\b(?:shell|bash|terminal)\b/.test(b);return d||r(a,["command","cmd","shell"])&&e}function v(a){let b=q(a);return r(a,["filePath","file_path","path"])&&/\b(read|file|filesystem|open)\b/.test(b)&&!/\b(write|edit|patch|delete|remove|grep|search|bash|shell|command)\b/.test(b)}function w(a){let b=q(a),c=a.name.toLowerCase(),d=/\b(webfetch|web.fetch|fetch_url|url_fetch|read_url|browse_page|browsepage)\b/.test(c),e=/\b(?:fetch|browse|read).{0,32}\b(?:url|uri|web page|page content)\b|\b(?:url|uri|web page|page content).{0,32}\b(?:fetch|browse|read)\b/.test(b);return d||!s(a)&&r(a,["url","uri"])&&e}function x(a){let b=q(a);return r(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!s(a)&&!t(a)}function y(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function z(a){return null!=a&&""!==a}function A(a,b,c,d){let e=c.toolsByName.get(a);if(!e)return b;let f=o(e.parameters),g=p(e.parameters),h={...b};for(let a of("filePath"in f&&!z(h.filePath)&&(h.filePath=y(b.filePath,b.file_path,b.path)),"file_path"in f&&!z(h.file_path)&&(h.file_path=y(b.file_path,b.filePath,b.path)),"path"in f&&!z(h.path)&&(h.path=y(b.path,b.filePath,b.file_path)),"query"in f&&!z(h.query)&&(h.query=y(b.query,b.search,b.input)),"url"in f&&!z(h.url)&&(h.url=y(b.url,b.uri)),"uri"in f&&!z(h.uri)&&(h.uri=y(b.uri,b.url)),"input"in f&&!z(h.input)&&(h.input=y(b.input,b.query,b.command)),g)){if(z(h[a]))continue;let b=function(a,b,c){let d=a.toLowerCase(),e=y(b.command,b.cmd,b.shell,b.input),f=y(b.filePath,b.file_path,b.path,b.filename),g=y(b.query,b.search,b.input),h=y(b.url,b.uri);return"command"===d||"cmd"===d?e:"filepath"===d||"file_path"===d||"path"===d?f:"query"===d||"search"===d?g:"url"===d||"uri"===d?h:"input"===d?g||h||e||f:"description"===d||"reason"===d?e?`Execute shell command: ${e}`:f?`Read file: ${f}`:h?`Fetch URL: ${h}`:g?`Search: ${g}`:`Grok Web ${c} tool call`:void 0}(a,h,d);void 0!==b&&(h[a]=b)}let i={},j=new Set([...Object.keys(f),...g]);for(let a of Object.keys(h))(0===j.size||j.has(a))&&(i[a]=h[a]);return i}function B(a,b,c){if(!c.enabled||!a||"object"!=typeof a)return null;let d=b||`call_${crypto.randomUUID()}`,e=(a,b)=>{if(!b||"object"!=typeof b)return null;let e=function(a,b){let c=null;for(let d of b.toolsByName.values()){let e=function(a,b,c){let d=a.name.toLowerCase(),e=(a.description||"").toLowerCase(),f=new Set(Object.keys(o(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=String(c||"").toLowerCase(),i=0;if("bash"===b)u(a)||(i-=80),"bash"===d&&(i+=100),["shell","terminal","run_command","execute_command","exec","command"].includes(d)&&(i+=80),(f.has("command")||f.has("cmd"))&&(i+=60),/bash|shell|terminal|command|execute|run/.test(g)&&(i+=25),/read|search|grep|web|http|browser|context|note|memory/.test(d)&&(i-=50);else if("readFile"===b)v(a)||(i-=60),["read","read_file","readfile","file_read"].includes(d)&&(i+=100),(f.has("filepath")||f.has("file_path")||f.has("path"))&&(i+=50),/read.*file|file.*read|filesystem/.test(g)&&(i+=25),/write|edit|delete|remove|bash|shell|command/.test(g)&&(i-=50);else("webSearch"===b||"browsePage"===b)&&((t(a)||s(a))&&(i-=180),("browsePage"===b||/https?:\/\//.test(String(h||"")))&&(w(a)||(i-=60),/webfetch|web_fetch|fetch|browse|browse_page|read_url|url_fetch|page/.test(d)&&(i+=140),(f.has("url")||f.has("uri"))&&(i+=90),/fetch|browse|url|web page|page content|extract.*url|read.*url/.test(g)&&(i+=55),/websearch|web_search|search/.test(d)&&!(f.has("url")||f.has("uri"))&&(i-=80)),"webSearch"!==b||x(a)||(i-=60),["web_search","websearch","search"].includes(d)&&(i+=100),(f.has("query")||f.has("search"))&&(i+=50),/web.*search|search.*web|internet|browse/.test(g)&&(i+=25),/file|bash|shell|command|write|edit/.test(g)&&(i-=50));return i}(d,a,b.lastUserText);e<=0||(!c||e>c.score)&&(c={name:d.name,score:e})}return c?.name||null}(a,c);if(!e)return null;let f=A(e,b,c,a);return c.executedToolKeys.has(n(e,f))?null:{id:d,type:"function",function:{name:e,arguments:JSON.stringify(f)}}},f=a.bash?.args?e("bash",a.bash.args):null;if(f)return f;let g=(a.readFile||a.read_file)?.args?e("readFile",(a.readFile||a.read_file).args):null;if(g)return g;let h=a.webSearch?.args?e("webSearch",a.webSearch.args):null;if(h)return h;let i=(a.browsePage||a.browse_page)?.args?e("browsePage",(a.browsePage||a.browse_page).args):null;return i||null}function C(a,b){if(!b.enabled||!a.includes("<tool_call>"))return null;let c=[];for(let d of function*(a,b,c){for(;;){let d=b.exec(a);if(null===d)return;let e=d.index+d[0].length,f=c.exec(a.slice(e));if(null===f||(yield{inner:a.slice(e,e+f.index),after:e+f.index+f[0].length},b.lastIndex=c.lastIndex=0,!(a=a.slice(e+f.index+f[0].length)).includes("<tool_call>")))return}}(String(a),/<tool_call>/g,/<\/tool_call>/g)){let a;try{a=JSON.parse(d.inner.trim())}catch{continue}if(!a||"object"!=typeof a)continue;let e="string"==typeof a.name?a.name.trim():"";if(!e||!b.toolsByName.has(e))continue;let f=A(e,function(a){if(!a)return{};if("object"==typeof a)return a;if("string"==typeof a)try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{input:a}}return{}}(a.arguments),b,"clientTool");b.executedToolKeys.has(n(e,f))||c.push({id:"string"==typeof a.id&&a.id.trim()?a.id.trim():`call_${crypto.randomUUID()}`,type:"function",function:{name:e,arguments:JSON.stringify(f)}})}return c.length>0?c:null}var D=c(10079);let E=e.xq["grok-web"].baseUrl,F={"grok-3":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-3-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function G(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;b<a;b++)d+=c[Math.floor(Math.random()*c.length)];return d}function H(){return btoa(.5>Math.random()?`x1:TypeError: Cannot read properties of null (reading 'children["${G(5,!0)}"]')`:`x1:TypeError: Cannot read properties of undefined (reading '${G(10)}')`)}function I(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*J(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{c.releaseLock()}}async function*K(a,b,c){let d="",e="",f=!1;for await(let g of J(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.toolUsageCard){yield{toolCard:a.toolUsageCard,toolCardId:a.toolUsageCardId,fingerprint:d,responseId:e};continue}if(a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}async function L(a,b,c,d,e,f,g){let h="",i="",j=[],k=[];for await(let b of K(a,e,f)){if(b.fingerprint&&(i=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.toolCard&&g){let a=B(b.toolCard,b.toolCardId,g);a&&k.push(a);continue}if(b.done)break;b.fullMessage?h=b.fullMessage:b.delta&&(h+=b.delta)}let l={role:"assistant",content:h};j.length>0&&(l.reasoning_content=j.join("\n"));let m=(g?.enabled?C(h,g):null)||(k.length?k:null),n="stop";m?.length&&(l.content=h.replace(/<tool_call>[\s\S]*?<\/tool_call>/g,"").trim(),l.tool_calls=m,n="tool_calls");let o=Math.ceil(h.length/4),p=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:i||null,choices:[{index:0,message:l,finish_reason:n,logprobs:null}],usage:{prompt_tokens:o,completion_tokens:p,total_tokens:o+p}}),{status:200,headers:{"Content-Type":"application/json"}})}class M extends d.H{constructor(){super("grok-web",e.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:r,proxyOptions:y=null}){let z,A,G=b?.messages;if(!G||!Array.isArray(G)||0===G.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let J=F[a];J||r?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:M,modelMode:N,isThinking:O}=J||F["grok-4.1-fast"],P=function(a){let b=Array.isArray(a?.tools)?a.tools:[],c=Array.isArray(a?.messages)?a.messages:[],d=a?.tool_choice??"auto",e=function(a){let b=new Set,c=[];for(let d of a)if("assistant"===String(d?.role||"")&&Array.isArray(d.tool_calls))for(let a of d.tool_calls){let d=a?.function||{},e={};try{e=JSON.parse(d.arguments||"{}")}catch{}b.add(n(d.name||"",e)),c.push(function(a,b){let c=b&&"object"==typeof b?b:{},d=Object.keys(c).sort().map(a=>String(c[a]).slice(0,60)).join(", ");return`${a}(${d})`}(d.name||"tool",e))}return{keys:b,summaries:c}}(c);if("none"===d)return{enabled:!1,toolsByName:new Map,lastUserText:m(c),executedToolKeys:e.keys,completedToolCalls:e.summaries};let f=b.map(a=>{let b=a?.function;if(a?.type!=="function"||!b||"object"!=typeof b)return null;let c="string"==typeof b.name?b.name.trim():"";return c?{name:c,..."string"==typeof b.description?{description:b.description}:{},parameters:b.parameters||{type:"object",properties:{}}}:null}).filter(Boolean),g=d&&"object"==typeof d&&"string"==typeof d.function?.name?d.function.name:null,h=g?f.filter(a=>a.name===g):f;return{enabled:h.length>0,toolsByName:new Map(h.map(a=>[a.name,a])),lastUserText:m(c),executedToolKeys:e.keys,completedToolCalls:e.summaries}}(b),Q=P.enabled?function(a,b,c){var d,e;let f=(d=b,e=c,d.enabled?['CLIENT_TOOLS: use this caller-runtime tool list as the tool interface for this request. To call one, respond only with <tool_call>{"name":"exact_tool_name","arguments":{...}}</tool_call>. After tool results, answer normally.',`tool_choice=${JSON.stringify(e??"auto")}`,...d.completedToolCalls.length?["completed_tool_calls:",...d.completedToolCalls.map(a=>`- ${a}`),"Do not repeat completed tool calls unless a different result is required; use their tool results to answer."]:[],"tools (priority order for this request):",...[...d.toolsByName.values()].map((a,b)=>({tool:a,index:b,score:w(a)?90:x(a)?85:v(a)?75:u(a)?70:/\b(glob|grep|search files?|file search|content search)\b/.test(q(a))?60:/\b(edit|write|patch|modify|apply)\b/.test(q(a))?50:/\b(task|agent|delegate|subagent)\b/.test(q(a))?40:t(a)?20:s(a)?10:30})).sort((a,b)=>b.score-a.score||a.index-b.index).map(({tool:a},b)=>{var c;let d,e,f;return`${b+1}. name: ${a.name}${d=Object.keys(o(c=a.parameters)),e=p(c),f=[],d.length&&f.push(`args=${d.join(",")}`),e.length&&f.push(`required=${e.join(",")}`),f.length?` (${f.join("; ")})`:""}${a.description?`
305
+ description: ${a.description}`:""}`})].join("\n"):""),g=[],h=-1;for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||"")){h=b;break}let i=[];for(let b=0;b<a.length;b++){let c=a[b],d=String(c?.role||"user");"developer"===d&&(d="system");let e=l(c);if("tool"===d){if(b<h)continue;let a="string"==typeof c.name?c.name:"unknown_tool";e=`CLIENT TOOL RESULT from caller runtime for ${a} (${c.tool_call_id||"unknown_call"}). Use this result to answer; do not call the same tool again:
306
+ ${e}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<h)continue;let a=c.tool_calls.map(a=>({id:a.id,function:a.function}));e=[e,`Previous assistant tool calls: ${JSON.stringify(a)}`].filter(Boolean).join("\n")}e.trim()&&i.push({role:d,text:e})}let j=-1;for(let a=i.length-1;a>=0;a--)if("user"===i[a].role){j=a;break}for(let a=0;a<i.length;a++)g.push(a===j?i[a].text:`${i[a].role}: ${i[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(G,P,b?.tool_choice):function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(G);if(!Q.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let R={temporary:!0,modelName:M,modelMode:N,message:Q,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},S=I(16),T=I(8),U={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":k.CO,"x-statsig-id":H(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${S}-${T}-00`};if(d.apiKey){let a=(0,D.lT)(d.apiKey);a&&(U.Cookie=a)}r?.info?.("GROK-WEB",`Query to ${a} (grok=${M}, mode=${N}), len=${Q.length}`);let V=!(0,g.hasProxyEgress)(E,y),W=(0,h.n)(e,this.config?.timeoutMs||f.Z1);try{z=V?await (0,k.X7)(E,{method:"POST",headers:U,body:JSON.stringify(R),timeoutMs:12e4,signal:W.signal}):await (0,g.proxyAwareFetch)(E,{method:"POST",headers:U,body:JSON.stringify(R),signal:W.signal},y)}catch(a){if(a instanceof k.jm)return{response:new Response(JSON.stringify({error:{message:a.message,type:"configuration_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};return r?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}finally{W.clear()}if(!z.ok){let a=z.status,b=`Grok returned HTTP ${a}`;return(0,k.ZB)(await z.clone().text().catch(()=>""))?b="Grok returned a Cloudflare challenge — cf_clearance in the pasted Cookie header no longer matches this machine. Re-copy the full Cookie header from a logged-in grok.com browser on this machine.":401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),r?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}if(!z.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};let X=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,Y=Math.floor(Date.now()/1e3);if(c){var Z;let b;A=new Response((Z=z.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f="",g="",h=!1,k=[];for await(let i of K(Z,O,e)){if(i.fingerprint&&(f=i.fingerprint),i.error){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:`[Error: ${i.error}]`},finish_reason:null,logprobs:null}]})));break}if(i.thinking){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{reasoning_content:i.thinking},finish_reason:null,logprobs:null}]})));continue}if(i.toolCard&&P){let a=B(i.toolCard,i.toolCardId,P);a&&k.push(a);continue}if(i.done)break;if(i.delta)if(P?.enabled){var d;if(g+=i.delta,d=g,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){h=!0;continue}if(h)continue;let e=Math.min(12,g.length),k=g.slice(0,g.length-e);k&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),g=g.slice(g.length-e)}else c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:i.delta},finish_reason:null,logprobs:null}]})));i.fullMessage&&P?.enabled&&(g=i.fullMessage)}let l=(P?.enabled?C(g,P):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else g&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:g},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(i.$U))}catch(d){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U))}finally{c.close()}}})),{status:200,headers:{...i.uB}})}else A=await L(z.body,a,X,Y,O,e,P);return{response:A,url:E,headers:U,transformedBody:R}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:h}){if("image"!==b&&"video"!==b)throw Error("Grok Web supports image and video generation only");if(!a?.trim())throw Error("prompt is required for media generation");let i="video"===b?1:Math.max(1,e),j=(0,D.lT)(String(f?.apiKey||""));if(!j)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<i;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":k.CO,"Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Origin:"https://grok.com",Referer:"https://grok.com/","Browser-Id":e,"x-xai-request-id":e,"x-statsig-id":H(),Cookie:j},i="video"===b?function({prompt:a,size:b,duration:c}){return{modelName:"imagine-video-gen",message:`${a} --mode=custom`,enableImageStreaming:!0,enableSideBySide:!0,sendFinalMetadata:!0,responseMetadata:{experiments:[],modelConfigOverride:{modelMap:{}}},mediaGenInput:{textToVideo:{prompt:a,aspectRatio:/^\d{1,2}:\d{1,2}$/.test(String(b||""))?String(b):"16:9",duration:Number.isFinite(Number(c))&&Number(c)>0?Number(c):6,resolutionName:"480p"}},kind:"CONVERSATION_KIND_IMAGINE"}}({prompt:a,size:c,duration:d}):{temporary:!0,modelName:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",message:c?`Generate an image (${c}): ${a}`:`Generate an image: ${a}`,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!0,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!0,imageGenerationCount:1,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},m=await (0,k.X7)(E,{method:"POST",headers:f,body:JSON.stringify(i),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,k.ZB)(n))throw Error((0,k.ZB)(n)?"Grok returned a Cloudflare challenge — re-copy the full Cookie header (with cf_clearance) from a logged-in grok.com browser on this machine":`grok ${b} request failed: HTTP ${m.status} ${n.slice(0,200)}`);if("video"===b){let a=function(a){let b=[],c=a=>{if(!(b.length>8)){if("string"==typeof a){if(/\.mp4(\?|#|$)/i.test(a))return void b.push(a);let d=a.trim();if(d.startsWith("{")||d.startsWith("["))try{c(JSON.parse(d))}catch{}return}if(Array.isArray(a))return void a.forEach(c);a&&"object"==typeof a&&Object.values(a).forEach(c)}};for(let b of String(a).split("\n")){let a=b.trim();if(a.startsWith("{"))try{c(JSON.parse(a))}catch{}}return b[b.length-1]||null}(n);if(!a)throw h?.warn?.("GROK-WEB",`no video URL in stream, tail: ${n.slice(-300)}`),Error("grok returned no video asset — quota may be exhausted (1 video/day) or the prompt was moderated");let b=await (0,k.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:12e4,signal:g});if(!b.ok)throw Error(`video download failed: HTTP ${b.status}`);let c=Buffer.from(await b.arrayBuffer());l.push({b64:c.toString("base64"),mime:"video/mp4"});break}let o=null;for(let a of n.split("\n")){let b,c;if(!a.trim().startsWith("{"))continue;try{b=JSON.parse(a)}catch{continue}let d=b?.result?.response?.cardAttachment?.jsonData;if("string"!=typeof d)continue;try{c=JSON.parse(d)}catch{continue}let e=c?.image_chunk;e&&Number(e.progress)>=100&&e.imageUrl&&(o=e)}if(!o)throw Error("grok returned no completed image chunk — prompt may have been moderated or image generation is unavailable for this account");let p=await (0,k.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:6e4,signal:g});if(!p.ok)throw Error(`image download failed: HTTP ${p.status}`);let q=Buffer.from(await p.arrayBuffer());l.push({b64:q.toString("base64"),mime:o.mimeType||"image/jpeg"})}return h?.info?.("GROK-WEB",`${b} generation completed (${l.length} item(s))`),l}}},80479:(a,b,c)=>{c.d(b,{qG:()=>I,we:()=>J,zD:()=>K}),c(4573);var d=c(20742),e=c(31421),f=c(77030);let g=null,h=null;async function i(){let a=process.env.OBSCURA_BIN;if(a)return a;let{resolve:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d,accessSync:e,constants:f}=await Promise.resolve().then(c.t.bind(c,73024,23));for(let a of(process.env.PATH||"").split(":")){let c=b(a,"obscura");try{if(e(c,f.X_OK),d(c))return c}catch{}}return null}async function j(a,b){let c=Date.now()+b;for(;Date.now()<c;){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1500),d=a.replace(/^ws/,"http").replace(/\/$/,"")+"/json/version",e=await fetch(d,{signal:b.signal});if(clearTimeout(c),e.ok)return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function k(){let a;if(void 0!==(a=process.env.NINEROUTER_BROWSER_POOL)&&("off"===a||"0"===a||"false"===a))return null;if(g)return g;if(h)return h;h=(async()=>{let a=process.env.OBSCURA_CDP_ENDPOINT;if(a)return g={child:null,endpoint:a};let b=await i();if(!b)return null;let c=Number(process.env.OBSCURA_PORT)||await new Promise((a,b)=>{let c=(0,f.createServer)();c.once("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("obscura: could not allocate a free port"))})})}),d=(0,e.spawn)(b,["serve","--port",String(c),"--host","127.0.0.1"],{stdio:["ignore","ignore","pipe"]});d.stderr?.on("data",()=>{});let h=`http://127.0.0.1:${c}`,k=new Promise(a=>{d.once("exit",()=>a(!0)),d.once("error",()=>a(!0))});return!0!==await Promise.race([j(h,3e4),k.then(()=>!1)])?(d.kill("SIGKILL"),null):g={child:d,endpoint:h}})();try{return await h}finally{h=null}}async function l(){let a=await k();if(!a)return null;try{let{chromium:b}=await (0,d.A)("playwright-core");return{browser:await b.connectOverCDP(a.endpoint),child:a.child}}catch{return null}}let m="Missing X server or $DISPLAY: a headed browser needs a display. Install Xvfb (apt-get install xvfb) or run with xvfb-run.";class n extends Error{constructor(a){super(a?`${m} (${a})`:m),this.name="MissingDisplayError",this.code="NINER_NO_DISPLAY"}}let o=null,p=null,q=!1;async function r(a={}){let b=a.env??process.env;if(!((a.platform??process.platform)!=="linux"||function(a=process.env){return!!(a.DISPLAY||a.WAYLAND_DISPLAY)}(b))){if(o&&null===o.child.exitCode&&!o.child.killed)return o.display;if(o=null,!p){var c,d;p=(c=a.spawn??e.spawn,d=a.timeoutMs??5e3,new Promise((a,b)=>{let e=c("Xvfb",["-displayfd","3","-screen","0","1280x1024x24","-nolisten","tcp"],{stdio:["ignore","ignore","ignore","pipe"]}),f=!1,g="",h=a=>{if(!f){f=!0,clearTimeout(i);try{e.kill("SIGTERM")}catch{}b(a)}},i=setTimeout(()=>h(new n("Xvfb start timeout")),d);i.unref?.(),e.once("error",a=>h(new n("ENOENT"===a.code?"Xvfb not found":a.message))),e.once("exit",()=>{o?.child===e&&(o=null),h(new n("Xvfb exited"))});let j=e.stdio?.[3];j?.on("data",b=>{g+=b.toString();let c=/^(\d+)\n/.exec(g);if(!c||f)return;f=!0,clearTimeout(i);let d=`:${c[1]}`;o={child:e,display:d},e.unref?.(),a(d)})})).finally(()=>{p=null}),q||a.spawn||(q=!0,process.once("exit",()=>s()))}return p}}function s(){let a=o?.child;o=null;try{a?.kill("SIGTERM")}catch{}}var t=c(4052);let u={browser:null,engine:null,headedBrowser:null,contexts:new Map,pendingContexts:new Map,launching:null,headedLaunching:null,generation:0,lastActivity:0,idleTimer:null,evictTimer:null,cloakLaunch:null,cloakLaunchResolved:!1,metrics:{browserLaunches:0,browserLaunchFailures:0,contextsCreated:0,contextsReused:0,contextsEvicted:0,contextsReleased:0,contextCreateFailures:0,shutdowns:0,lastShutdownReason:null}};async function v(){if(u.cloakLaunchResolved)return u.cloakLaunch;u.cloakLaunchResolved=!0;try{u.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{u.cloakLaunch=null}return u.cloakLaunch}function w(){u.idleTimer&&clearTimeout(u.idleTimer),u.idleTimer=setTimeout(()=>{L("idle-timeout")},3e5),u.idleTimer.unref?.()}function x(a){let b=a?u.browser:u.headedBrowser;return b?.isConnected()?b:(b&&y(a,null),null)}function y(a,b){a?u.browser=b:u.headedBrowser=b}function z(a){return a?u.launching:u.headedLaunching}function A(a,b){a?u.launching=b:u.headedLaunching=b}function B(a,b){z(a)===b&&A(a,null)}function C(a){let b=!1!==a.headless;return{headless:b,...a.executablePath?{executablePath:a.executablePath}:{},args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled","--disk-cache-size=52428800",...b?[]:["--window-position=-32000,-32000"]]}}async function D(a,b){if(!b){let{chromium:b}=await (0,d.A)("playwright-core"),c=await r(),e=C(a);return c&&(e.env={...process.env,DISPLAY:c}),(0,t.KI)(b,e)}let c=await l();if(c)return u.engine="obscura",c.browser;let e=await v();if(e)return u.engine="cloakbrowser",e({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});u.engine="chromium";let{chromium:f}=await (0,d.A)("playwright-core");return(0,t.KI)(f,C(a))}async function E(a){let b=!1!==a.headless,c=x(b);if(c)return c;let d=z(b);if(d)return d;let e=u.generation,f=(async()=>{let c=await D(a,b);if(u.generation!==e)throw await c.close().catch(()=>{}),Error("Pool shut down during browser launch");return y(b,c),u.metrics.browserLaunches++,c})();A(b,f);try{let a=await f;return B(b,f),a}catch(a){throw B(b,f),u.metrics.browserLaunchFailures++,a}}function F(a,b){b&&u.metrics.contextCreateFailures++,u.pendingContexts.delete(a)}async function G(a,b){if(b.cookieString){var c,d;let e=(c=b.cookieString,d=b.cookieDomain,c.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(b<0)return null;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();return c&&e?{name:c,value:e,domain:d.startsWith(".")?d:`.${d}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));e.length>0&&await a.addCookies(e)}if(!b.localStorage||0===Object.keys(b.localStorage).length)return;let e=new URL(b.localStorageOrigin||b.warmupUrl||"").origin;await a.addInitScript(({expectedOrigin:a,entries:b})=>{if(window.location.origin===a)for(let[a,c]of b)window.localStorage.setItem(a,c)},{expectedOrigin:e,entries:Object.entries(b.localStorage)})}async function H(a,b){if(!b)return null;let c=null;try{return c=await a.newPage(),await c.goto(b,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500)),c}catch{return await c?.close().catch(()=>{}),null}}async function I(a,b){let c;if(void 0!==(c=process.env.NINEROUTER_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: NINEROUTER_BROWSER_POOL=off — context requested but pool is disabled");let d=!1!==b.headless,e=`${d?"headless":"headed"}:${a}`,f=u.contexts.get(e);if(f)return f.lastUsed=Date.now(),u.lastActivity=Date.now(),u.metrics.contextsReused++,w(),f;let g=u.pendingContexts.get(e);if(g)return g.promise;let h=(async()=>{let a=await E(b),c=d&&("obscura"===u.engine||null!==u.cloakLaunch),f=await a.newContext({userAgent:b.userAgent||"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",locale:b.locale||"en-US",timezoneId:b.timezone||"America/New_York",viewport:{width:1280,height:800},...b.storageState?{storageState:b.storageState}:{}});await G(f,b);let g=await H(f,b.warmupUrl);if(x(d)!==a)throw await f.close().catch(()=>{}),g&&await g.close().catch(()=>{}),Error("Pool shut down during context creation");let h={id:e,context:f,warmupPage:g,lastUsed:Date.now(),isStealth:c};return u.contexts.set(e,h),u.metrics.contextsCreated++,u.lastActivity=Date.now(),w(),u.evictTimer&&clearInterval(u.evictTimer),u.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of u.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context","(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),u.contexts.delete(b),u.metrics.contextsEvicted++,c.context.close().catch(()=>{}));for(let[b,c]of u.pendingContexts)a-c.createdAt>3e5&&(u.pendingContexts.delete(b),u.metrics.contextsEvicted++);0!==u.contexts.size||0!==u.pendingContexts.size||u.launching||u.headedLaunching||L("all-contexts-evicted")})(),6e4),u.evictTimer.unref?.(),h})();return u.pendingContexts.set(e,{promise:h,createdAt:Date.now()}),h.then(()=>F(e,!1)).catch(()=>F(e,!0)),h}async function J(a){return a.context.newPage()}async function K(a){let b=[a,`headless:${a}`,`headed:${a}`].find(a=>u.contexts.has(a));if(!b)return;let c=u.contexts.get(b);if(c){u.contexts.delete(b),u.metrics.contextsReleased++;try{await c.context.close()}catch{}0===u.contexts.size&&await L("last-context-closed")}}async function L(a){for(let[b,c]of(u.generation++,u.metrics.shutdowns++,u.metrics.lastShutdownReason=a,u.idleTimer&&(clearTimeout(u.idleTimer),u.idleTimer=null),u.evictTimer&&(clearInterval(u.evictTimer),u.evictTimer=null),u.pendingContexts.clear(),u.contexts)){try{await c.context.close()}catch{}u.contexts.delete(b)}if(u.browser){try{await u.browser.close()}catch{}u.browser=null}if(u.headedBrowser){try{await u.headedBrowser.close()}catch{}u.headedBrowser=null}u.launching=null,u.headedLaunching=null,s(),u.engine=null,u.lastActivity=Date.now()}},83243:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(96179),e=c(8521);let f=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function g(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!f.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class h extends d.L{async execute(a){let b=await super.execute(a);return b?.response?{...b,response:await g(b.response)}:b}async refreshCredentials(a,b){return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(12643);let i=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class j extends d.H{constructor(a="trae"){super(a,h.xq[a]),this.isEnterprise="trae-enterprise"===a}base(){let a=this.config?.baseUrl;if(a)return a.replace(/\/$/,"");if(!this.isEnterprise)return"https://core-normal.trae.ai/api/remote/v1";throw Error(`Trae provider "${this.provider}" has no transport baseUrl`)}buildHeaders(a,b=!0){let c=a?.providerSpecificData||{};return{...this.config?.headers||{},Authorization:`Cloud-IDE-JWT ${a?.accessToken||""}`,"Content-Type":"application/json","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase(),c="work"===b||"auto-work"===b||"solo-work"===b;if(c&&!this.isEnterprise)return{mode:"work",strategy:"auto",modelName:""};let d=!b||"auto"===b||c;return{mode:"code",strategy:d?"auto":"manual",modelName:d?"":a}}commonParams(a,b,c,d){let e=function(a){let b=String(a||"").split(".");if(3!==b.length)return{};try{let a=JSON.parse(Buffer.from(b[1],"base64url").toString());return a?.data||{}}catch{return{}}}(d),f=this.isEnterprise,g={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||(f?"3.5.54":"1.0.0.1229"),web_id:a.webId||"",user_identity:a.userIdentity||(f?"member":"Free"),is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||e.user_id||"",scope:a.scope||(f?e.scope||"saas":"marscode-us"),tenant:a.tenant||(f?e.tenant_id||"tob_online":"marscode"),region:a.region||(f?"cn-beijing":"US-East"),aiRegion:a.aiRegion||a.region||(f?"cn-beijing":"US-East"),is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(g.biz_session_id=c),JSON.stringify(g)}async createSession(a,b,c,d,h,i,j){let k,{mode:l,strategy:m,modelName:n}=this.resolveMode(c),o={mode:l,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:n,agent_type:"solo_agent_remote",model_selection_strategy:m,common_params:this.commonParams(d,l,null,i)},env:"remote",auto_create_project:!1,origin:"web"},p=(0,f.n)(h,this.config?.timeoutMs||g.pH);try{k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(o),signal:p.signal},j||null)}catch(a){throw p.settleError(a)}finally{p.clear()}let q=await k.text();if(!k.ok)throw Error(`[${k.status}] ${q}`);let r=JSON.parse(q);if(r?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(r)}`);return{sessionId:r.data.chat_session_id,messageId:r.data.message_id}}async streamEvents(a,b,c,d,f,g){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,j=new AbortController;f?.aborted&&j.abort();let k=setTimeout(()=>j.abort(Error("trae stream timeout")),i),l=()=>j.abort();f&&f.addEventListener("abort",l,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:j.signal},g||null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,i="",k=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(i+=f.decode(e,{stream:!0});(a=i.indexOf("\n"))>=0;){let b=i.slice(0,a).replace(/\r$/,"");if(i=i.slice(a+1),b.startsWith("event:"))k=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(k,a))return void await c.cancel().catch(()=>{})}else""===b&&(k=null)}}}finally{clearTimeout(k),f&&f.removeEventListener("abort",l)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=d?.providerSpecificData||{},h=d?.proxyOptions||null,i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
147
307
  ${a}`):"assistant"===c.role?b.push(`[Assistant]
148
308
  ${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)}
149
309
 
150
- `));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}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(55511),e=c(74957),f=c(35024),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)}
310
+ `));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)}
151
311
 
152
312
  `))},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)}
153
313
 
154
- `}function e({id:a,created:b,model:c,delta:f,finishReason:g=null}){return d({id:a,object:"chat.completion.chunk",created:b,model:c,choices:[{index:0,delta:f,finish_reason:g}]})}c.d(b,{N:()=>d,z:()=>e})},93509:(a,b,c)=>{c.d(b,{Ay:()=>v});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(35024),i=c(77598);let j="https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",k="3.14.0",l={"swe-1.6-fast":"swe-1-6-fast","swe-1.6":"swe-1-6","swe-1.5-fast":"swe-1-5-fast","swe-1.5":"swe-1-5","claude-opus-4.7-max":"claude-opus-4-7-max","claude-opus-4.7-xhigh":"claude-opus-4-7-xhigh","claude-opus-4.7-high":"claude-opus-4-7-high","claude-opus-4.7-medium":"claude-opus-4-7-medium","claude-opus-4.7-low":"claude-opus-4-7-low","claude-opus-4.7-review":"opus-4-7-review","claude-sonnet-4.6-thinking-1m":"claude-sonnet-4-6-thinking-1m","claude-sonnet-4.6-1m":"claude-sonnet-4-6-1m","claude-sonnet-4.6-thinking":"claude-sonnet-4-6-thinking","claude-sonnet-4.6":"claude-sonnet-4-6","claude-opus-4.6-thinking":"claude-opus-4-6-thinking","claude-opus-4.6":"claude-opus-4-6","claude-opus-4.5-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-opus-4.5":"MODEL_CLAUDE_4_5_OPUS","claude-sonnet-4.5-thinking":"MODEL_PRIVATE_3","claude-sonnet-4.5":"MODEL_PRIVATE_2","claude-haiku-4.5":"MODEL_PRIVATE_11","gpt-5.5-xhigh-fast":"gpt-5-5-xhigh-priority","gpt-5.5-high-fast":"gpt-5-5-high-priority","gpt-5.5-medium-fast":"gpt-5-5-medium-priority","gpt-5.5-low-fast":"gpt-5-5-low-priority","gpt-5.5-none-fast":"gpt-5-5-none-priority","gpt-5.5-xhigh":"gpt-5-5-xhigh","gpt-5.5-high":"gpt-5-5-high","gpt-5.5-medium":"gpt-5-5-medium","gpt-5.5-low":"gpt-5-5-low","gpt-5.5-none":"gpt-5-5-none","gpt-5.5-review":"gpt-5-5-review","gpt-5.5":"gpt-5-5-medium","gpt-5.4-xhigh-fast":"gpt-5-4-xhigh-priority","gpt-5.4-high-fast":"gpt-5-4-high-priority","gpt-5.4-medium-fast":"gpt-5-4-medium-priority","gpt-5.4-low-fast":"gpt-5-4-low-priority","gpt-5.4-none-fast":"gpt-5-4-none-priority","gpt-5.4-xhigh":"gpt-5-4-xhigh","gpt-5.4-high":"gpt-5-4-high","gpt-5.4-medium":"gpt-5-4-medium","gpt-5.4-low":"gpt-5-4-low","gpt-5.4-none":"gpt-5-4-none","gpt-5.4-mini-xhigh":"gpt-5-4-mini-xhigh","gpt-5.4-mini-high":"gpt-5-4-mini-high","gpt-5.4-mini-medium":"gpt-5-4-mini-medium","gpt-5.4-mini-low":"gpt-5-4-mini-low","gpt-5.4":"gpt-5-4-medium","gpt-5.3-codex-xhigh-fast":"gpt-5-3-codex-xhigh-priority","gpt-5.3-codex-high-fast":"gpt-5-3-codex-high-priority","gpt-5.3-codex-medium-fast":"gpt-5-3-codex-medium-priority","gpt-5.3-codex-low-fast":"gpt-5-3-codex-low-priority","gpt-5.3-codex-xhigh":"gpt-5-3-codex-xhigh","gpt-5.3-codex-high":"gpt-5-3-codex-high","gpt-5.3-codex-medium":"gpt-5-3-codex-medium","gpt-5.3-codex-low":"gpt-5-3-codex-low","gpt-5.3-codex":"gpt-5-3-codex-medium","gpt-5.2-xhigh":"MODEL_GPT_5_2_XHIGH","gpt-5.2-high":"MODEL_GPT_5_2_HIGH","gpt-5.2-medium":"MODEL_GPT_5_2_MEDIUM","gpt-5.2-low":"MODEL_GPT_5_2_LOW","gpt-5.2-none":"MODEL_GPT_5_2_NONE","gpt-5.2":"MODEL_GPT_5_2_MEDIUM","gpt-5":"gpt-5","gpt-4.1":"MODEL_CHAT_GPT_4_1_2025_04_14","gpt-4.1-mini":"gpt-4.1-mini","gpt-4o":"MODEL_CHAT_GPT_4O_2024_08_06","gemini-3.1-pro-high":"gemini-3-1-pro-high","gemini-3.1-pro-low":"gemini-3-1-pro-low","gemini-3.1-pro":"gemini-3-1-pro-high","gemini-3.0-flash-high":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-3.0-flash-medium":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM","gemini-3.0-flash-low":"MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW","gemini-3.0-flash-minimal":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL","gemini-3.0-flash":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-2.5-pro":"MODEL_GOOGLE_GEMINI_2_5_PRO","deepseek-v4":"deepseek-v4","kimi-k2.6":"kimi-k2-6","kimi-k2.5":"kimi-k2-5","glm-5.1":"glm-5-1"};function m(a){let b=[],c=a>>>0;for(;c>127;)b.push(127&c|128),c>>>=7;return b.push(127&c),new Uint8Array(b)}function n(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let o=new TextEncoder,p=new TextDecoder;function q(a,b){return n([m(a<<3|2),m(b.length),b])}function r(a,b){return q(a,o.encode(b))}function s(a,b){let c=0,d=0;for(;b<a.length;){let e=a[b++];if(c|=(127&e)<<d,(128&e)==0)break;d+=7}return[c>>>0,b]}function t(a,b){let c=0;for(;c<a.length;){let d;[d,c]=s(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=s(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return p.decode(f)}else if(0===f){let b;[b,c]=s(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class u extends d.H{constructor(){super("windsurf",h.xq.windsurf||{id:"windsurf",baseUrl:j})}buildUrl(){return j}buildHeaders(a,b=!0){let c=a?.accessToken||a?.apiKey||"";return{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto",...c?{Authorization:`Bearer ${c}`}:{},"User-Agent":`windsurf/${k}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:j,upstreamExtraHeaders:m,proxyOptions:o=null}){let p,s,t=d?.accessToken||d?.apiKey||"",u=l[a]??a,v=b??{},w=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));b.push({role:a,content:d,toolCallId:c.tool_call_id})}return b}(Array.isArray(v.messages)?v.messages:[]);0===w.length&&w.push({role:"user",content:""});let x=function(a,b,c){let d=(0,i.randomUUID)(),e=(0,i.randomUUID)(),f=[q(1,n([r(1,a),r(2,"windsurf"),r(3,k),r(4,"3.14.0"),r(5,d),r(6,"en-US")])),r(2,e),q(3,r(1,b))];for(let a of c)f.push(q(4,function(a){let b=[r(1,a.role),r(2,a.content)];return a.toolCallId&&b.push(r(3,a.toolCallId)),n(b)}(a)));return n(f)}(t,u,w),y=((s=new Uint8Array(5+x.length))[0]=0,new DataView(s.buffer).setUint32(1,x.length,!1),s.set(x,5),s),z=this.buildUrl(),A=this.buildHeaders(d);m&&Object.assign(A,m),j?.debug?.("WS",`Windsurf → ${u} (${w.length} messages)`);let B=(0,f.n)(h,this.config?.timeoutMs||g.Z1);try{p=await (0,e.proxyAwareFetch)(z,{method:"POST",headers:A,body:y,signal:B.signal},o)}catch(a){throw B.settleError(a)}finally{B.clear()}return p.ok||200===p.status?{response:this.transformToSSE(p,a),url:z,headers:A,transformedBody:x}:{response:p,url:z,headers:A,transformedBody:x}}transformToSSE(a,b){let c=`chatcmpl-ws-${Date.now()}`,d=Math.floor(Date.now()/1e3),e=this;return new Response(new ReadableStream({async start(f){let g=new TextEncoder,h=!1,i="",j=0,k=0,l=null,m=a=>f.enqueue(g.encode(a));try{let g=new Uint8Array(0),o=a.body?.getReader(),q=(a,f)=>{if(128===a){let a=p.decode(f),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);l=c?decodeURIComponent(c[1].trim()):`gRPC status ${b[1]}`}return}if(0!==a)return;let g=e.constructor.decodeCompletionChunk?e.constructor.decodeCompletionChunk(f):function(a){let b=0;for(;b<a.length;){let c;[c,b]=s(a,b);let d=c>>>3,e=7&c;if(2===e){let c;[c,b]=s(a,b);let e=a.slice(b,b+c);if(b+=c,1===d){let a=t(e,1);if(null!==a)return{kind:"content",text:a}}else if(3===d){let a=function(a){let b=0,c=null;for(;b<a.length;){let d;[d,b]=s(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=s(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=s(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=s(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=s(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=s(c,b),b+=a}else break}return[d,e]}(e);return{kind:"done",promptTokens:a[0],completionTokens:a[1]}}else if(4===d)return{kind:"error",message:t(e,1)??"unknown windsurf error"}}else if(0===e){let c;[c,b]=s(a,b)}else if(1===e)b+=8;else if(5===e)b+=4;else break}return{kind:"unknown"}}(f);"content"===g.kind&&g.text?(i+=g.text,h||(m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
314
+ `}function e({id:a,created:b,model:c,delta:f,finishReason:g=null}){return d({id:a,object:"chat.completion.chunk",created:b,model:c,choices:[{index:0,delta:f,finish_reason:g}]})}c.d(b,{N:()=>d,z:()=>e})},93509:(a,b,c)=>{c.d(b,{Ay:()=>v});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(12643),i=c(77598);let j="https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",k="3.14.0",l={"swe-1.6-fast":"swe-1-6-fast","swe-1.6":"swe-1-6","swe-1.5-fast":"swe-1-5-fast","swe-1.5":"swe-1-5","claude-opus-4.7-max":"claude-opus-4-7-max","claude-opus-4.7-xhigh":"claude-opus-4-7-xhigh","claude-opus-4.7-high":"claude-opus-4-7-high","claude-opus-4.7-medium":"claude-opus-4-7-medium","claude-opus-4.7-low":"claude-opus-4-7-low","claude-opus-4.7-review":"opus-4-7-review","claude-sonnet-4.6-thinking-1m":"claude-sonnet-4-6-thinking-1m","claude-sonnet-4.6-1m":"claude-sonnet-4-6-1m","claude-sonnet-4.6-thinking":"claude-sonnet-4-6-thinking","claude-sonnet-4.6":"claude-sonnet-4-6","claude-opus-4.6-thinking":"claude-opus-4-6-thinking","claude-opus-4.6":"claude-opus-4-6","claude-opus-4.5-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-opus-4.5":"MODEL_CLAUDE_4_5_OPUS","claude-sonnet-4.5-thinking":"MODEL_PRIVATE_3","claude-sonnet-4.5":"MODEL_PRIVATE_2","claude-haiku-4.5":"MODEL_PRIVATE_11","gpt-5.5-xhigh-fast":"gpt-5-5-xhigh-priority","gpt-5.5-high-fast":"gpt-5-5-high-priority","gpt-5.5-medium-fast":"gpt-5-5-medium-priority","gpt-5.5-low-fast":"gpt-5-5-low-priority","gpt-5.5-none-fast":"gpt-5-5-none-priority","gpt-5.5-xhigh":"gpt-5-5-xhigh","gpt-5.5-high":"gpt-5-5-high","gpt-5.5-medium":"gpt-5-5-medium","gpt-5.5-low":"gpt-5-5-low","gpt-5.5-none":"gpt-5-5-none","gpt-5.5-review":"gpt-5-5-review","gpt-5.5":"gpt-5-5-medium","gpt-5.4-xhigh-fast":"gpt-5-4-xhigh-priority","gpt-5.4-high-fast":"gpt-5-4-high-priority","gpt-5.4-medium-fast":"gpt-5-4-medium-priority","gpt-5.4-low-fast":"gpt-5-4-low-priority","gpt-5.4-none-fast":"gpt-5-4-none-priority","gpt-5.4-xhigh":"gpt-5-4-xhigh","gpt-5.4-high":"gpt-5-4-high","gpt-5.4-medium":"gpt-5-4-medium","gpt-5.4-low":"gpt-5-4-low","gpt-5.4-none":"gpt-5-4-none","gpt-5.4-mini-xhigh":"gpt-5-4-mini-xhigh","gpt-5.4-mini-high":"gpt-5-4-mini-high","gpt-5.4-mini-medium":"gpt-5-4-mini-medium","gpt-5.4-mini-low":"gpt-5-4-mini-low","gpt-5.4":"gpt-5-4-medium","gpt-5.3-codex-xhigh-fast":"gpt-5-3-codex-xhigh-priority","gpt-5.3-codex-high-fast":"gpt-5-3-codex-high-priority","gpt-5.3-codex-medium-fast":"gpt-5-3-codex-medium-priority","gpt-5.3-codex-low-fast":"gpt-5-3-codex-low-priority","gpt-5.3-codex-xhigh":"gpt-5-3-codex-xhigh","gpt-5.3-codex-high":"gpt-5-3-codex-high","gpt-5.3-codex-medium":"gpt-5-3-codex-medium","gpt-5.3-codex-low":"gpt-5-3-codex-low","gpt-5.3-codex":"gpt-5-3-codex-medium","gpt-5.2-xhigh":"MODEL_GPT_5_2_XHIGH","gpt-5.2-high":"MODEL_GPT_5_2_HIGH","gpt-5.2-medium":"MODEL_GPT_5_2_MEDIUM","gpt-5.2-low":"MODEL_GPT_5_2_LOW","gpt-5.2-none":"MODEL_GPT_5_2_NONE","gpt-5.2":"MODEL_GPT_5_2_MEDIUM","gpt-5":"gpt-5","gpt-4.1":"MODEL_CHAT_GPT_4_1_2025_04_14","gpt-4.1-mini":"gpt-4.1-mini","gpt-4o":"MODEL_CHAT_GPT_4O_2024_08_06","gemini-3.1-pro-high":"gemini-3-1-pro-high","gemini-3.1-pro-low":"gemini-3-1-pro-low","gemini-3.1-pro":"gemini-3-1-pro-high","gemini-3.0-flash-high":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-3.0-flash-medium":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM","gemini-3.0-flash-low":"MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW","gemini-3.0-flash-minimal":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL","gemini-3.0-flash":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-2.5-pro":"MODEL_GOOGLE_GEMINI_2_5_PRO","deepseek-v4":"deepseek-v4","kimi-k2.6":"kimi-k2-6","kimi-k2.5":"kimi-k2-5","glm-5.1":"glm-5-1"};function m(a){let b=[],c=a>>>0;for(;c>127;)b.push(127&c|128),c>>>=7;return b.push(127&c),new Uint8Array(b)}function n(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let o=new TextEncoder,p=new TextDecoder;function q(a,b){return n([m(a<<3|2),m(b.length),b])}function r(a,b){return q(a,o.encode(b))}function s(a,b){let c=0,d=0;for(;b<a.length;){let e=a[b++];if(c|=(127&e)<<d,(128&e)==0)break;d+=7}return[c>>>0,b]}function t(a,b){let c=0;for(;c<a.length;){let d;[d,c]=s(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=s(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return p.decode(f)}else if(0===f){let b;[b,c]=s(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class u extends d.H{constructor(){super("windsurf",h.xq.windsurf||{id:"windsurf",baseUrl:j})}buildUrl(){return j}buildHeaders(a,b=!0){let c=a?.accessToken||a?.apiKey||"";return{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto",...c?{Authorization:`Bearer ${c}`}:{},"User-Agent":`windsurf/${k}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:j,upstreamExtraHeaders:m,proxyOptions:o=null}){let p,s,t=d?.accessToken||d?.apiKey||"",u=l[a]??a,v=b??{},w=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));b.push({role:a,content:d,toolCallId:c.tool_call_id})}return b}(Array.isArray(v.messages)?v.messages:[]);0===w.length&&w.push({role:"user",content:""});let x=function(a,b,c){let d=(0,i.randomUUID)(),e=(0,i.randomUUID)(),f=[q(1,n([r(1,a),r(2,"windsurf"),r(3,k),r(4,"3.14.0"),r(5,d),r(6,"en-US")])),r(2,e),q(3,r(1,b))];for(let a of c)f.push(q(4,function(a){let b=[r(1,a.role),r(2,a.content)];return a.toolCallId&&b.push(r(3,a.toolCallId)),n(b)}(a)));return n(f)}(t,u,w),y=((s=new Uint8Array(5+x.length))[0]=0,new DataView(s.buffer).setUint32(1,x.length,!1),s.set(x,5),s),z=this.buildUrl(),A=this.buildHeaders(d);m&&Object.assign(A,m),j?.debug?.("WS",`Windsurf → ${u} (${w.length} messages)`);let B=(0,f.n)(h,this.config?.timeoutMs||g.Z1);try{p=await (0,e.proxyAwareFetch)(z,{method:"POST",headers:A,body:y,signal:B.signal},o)}catch(a){throw B.settleError(a)}finally{B.clear()}return p.ok||200===p.status?{response:this.transformToSSE(p,a),url:z,headers:A,transformedBody:x}:{response:p,url:z,headers:A,transformedBody:x}}transformToSSE(a,b){let c=`chatcmpl-ws-${Date.now()}`,d=Math.floor(Date.now()/1e3),e=this;return new Response(new ReadableStream({async start(f){let g=new TextEncoder,h=!1,i="",j=0,k=0,l=null,m=a=>f.enqueue(g.encode(a));try{let g=new Uint8Array(0),o=a.body?.getReader(),q=(a,f)=>{if(128===a){let a=p.decode(f),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);l=c?decodeURIComponent(c[1].trim()):`gRPC status ${b[1]}`}return}if(0!==a)return;let g=e.constructor.decodeCompletionChunk?e.constructor.decodeCompletionChunk(f):function(a){let b=0;for(;b<a.length;){let c;[c,b]=s(a,b);let d=c>>>3,e=7&c;if(2===e){let c;[c,b]=s(a,b);let e=a.slice(b,b+c);if(b+=c,1===d){let a=t(e,1);if(null!==a)return{kind:"content",text:a}}else if(3===d){let a=function(a){let b=0,c=null;for(;b<a.length;){let d;[d,b]=s(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=s(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=s(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=s(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=s(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=s(c,b),b+=a}else break}return[d,e]}(e);return{kind:"done",promptTokens:a[0],completionTokens:a[1]}}else if(4===d)return{kind:"error",message:t(e,1)??"unknown windsurf error"}}else if(0===e){let c;[c,b]=s(a,b)}else if(1===e)b+=8;else if(5===e)b+=4;else break}return{kind:"unknown"}}(f);"content"===g.kind&&g.text?(i+=g.text,h||(m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
155
315
 
156
316
  `),h=!0),m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:g.text},finish_reason:null}]})}
157
317
 
@@ -213,6 +373,6 @@ ${d}`))}return b.join("\n\n")||"(empty)"}(k),p=function(a){let b=[],c=a=>{"strin
213
373
 
214
374
  `):f(`data: ${JSON.stringify({id:z,object:"chat.completion.chunk",created:A,model:a,choices:[{index:0,delta:{},finish_reason:d}],usage:{prompt_tokens:Math.ceil(o.length/4),completion_tokens:Math.ceil(C.length/4),total_tokens:Math.ceil((o.length+C.length)/4),estimated:!0}})}
215
375
 
216
- `),f("data: [DONE]\n\n");try{n||(n=!0,k.stdin.end())}catch{}let e=setTimeout(()=>{k.killed||k.kill("SIGKILL")},2e3);e.unref?.(),b.close(),y()},K="";k.stdout.on("data",b=>{let c;for(K+=b.toString("utf8");-1!==(c=K.indexOf("\n"));){let b,e=K.slice(0,c).trim();if(K=K.slice(c+1),e){try{b=JSON.parse(e)}catch{continue}if(!u&&void 0!==b.result&&!b.method){u=!0,E("session/new",{cwd:p,mcpServers:[],model:a||void 0});continue}if(u&&!v&&void 0!==b.result&&!b.method){if(!(t=(b.result||{}).sessionId||null))return void J("Devin ACP: session/new returned no sessionId");v=!0,w=!0,E("session/prompt",{sessionId:t,prompt:[{type:"text",text:o}]});continue}if(v&&w&&void 0!==b.result&&!b.method){if(!B){let a=b.result||void 0,c=function(a){if("string"==typeof a.content)return a.content;if("string"==typeof a.text)return a.text;let b=a.message;if(b&&"string"==typeof b.content)return b.content;let c=a.messages;return Array.isArray(c)?c.filter(a=>"assistant"===a.role).map(a=>String(a.content||"")).join("\n"):""}(a);c&&(C=c,F(c));let d=a&&a.stopReason||"";if(d&&"cancelled"!==d)return void J()}continue}if("session/request_permission"===b.method&&void 0!==b.id){let a=b.params?.options||[],c=a.find(a=>/allow/i.test(String(a.kind||"")))||a[0];c&&k.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b.id,result:{outcome:{outcome:"selected",optionId:c.optionId}}})+"\n");continue}if("_cognition.ai/agent_stopped"===b.method||"$/agent_stopped"===b.method)return void("error"===b.params?.cause?J(String(b.params?.errorMessage||b.params?.message||b.params?.error||"Devin agent error")):J());if("session/update"===b.method||"$/update"===b.method){let a=b.params;if(!a)continue;let c=a.update||{},e=c.sessionUpdate||a.type,f=void 0!==c.content?c.content:a.content,g="string"==typeof f?f:f?.text??a.delta??a.text??"";if(x&&!G&&("tool_call"===e||"tool_call_update"===e)){let a=c.toolCallId;if("string"==typeof c.title&&c.title.startsWith("Calling mcp_")&&/from clientTools\b/.test(c.title)){var d;let b=c.title.match(/^Calling (mcp_\S+)\b/),e=(d=b?b[1]:"").startsWith(m)?d.slice(m.length):d;a&&e&&H.set(a,e)}let b=a?H.get(a):null;if(b&&c.rawInput){G=!0,H.delete(a),I(b,c.rawInput,a||`call_${Date.now()}`),J(null,"tool_calls");return}continue}if("agent_message_chunk"===e||"message_delta"===e||"text_delta"===e||"content_delta"===e)g&&F(g);else if("agent_thought_chunk"===e);else if("message_stop"===e||"stop"===e||"done"===e)return void J();else if("error"===e)return void J(String(a.message||a.error||"Devin ACP error"));continue}if(b.error)return void J(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}),k.stderr.on("data",a=>{g?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),k.on("close",a=>{D?y():0===a||l?J():J(B?void 0:`Devin CLI exited with code ${a}`)}),E("initialize",{protocolVersion:"0.3",clientInfo:{name:"9router",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,cwd:p,clientTools:u.map(a=>a?.function?.name||a?.name).filter(Boolean),clientToolResults:Object.keys(v),mcpServers:Object.keys(s),promptLength:Array.isArray(b?.messages)?b.messages.length:Array.isArray(b?.input)?b.input.length:0}}}}},95128:(a,b,c)=>{c.d(b,{V:()=>h});var d=c(74957),e=c(35024),f=c(75924),g=c(39609);class h extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null,d=null){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(d),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return b&&b.request&&b.model?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;try{let a=JSON.parse(b),d=a?.error?.details;if(Array.isArray(d)){for(let a of d)if(a?.["@type"]==="type.googleapis.com/google.rpc.RetryInfo"&&a?.retryDelay){c.retryAfter=a.retryDelay;break}}}catch{}return c}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,g.proxyAwareFetch)(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},98625:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(96179);class e extends d.L{constructor(){super("azure")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.azureEndpoint||process.env.AZURE_ENDPOINT||"https://api.openai.com",f=d?.providerSpecificData?.apiVersion||process.env.AZURE_API_VERSION||"2024-10-01-preview",g=d?.providerSpecificData?.deployment||a||process.env.AZURE_DEPLOYMENT||"gpt-4",h=e.replace(/\/$/,"");return`${h}/openai/deployments/${g}/chat/completions?api-version=${f}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers},d=a?.apiKey||a?.accessToken||process.env.OPENAI_API_KEY;d&&(c["api-key"]=d);let e=a?.providerSpecificData?.organization||process.env.AZURE_ORGANIZATION;return e&&(c["OpenAI-Organization"]=e),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}}},98665:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(74957),e=c(14170),f=c(88499),g=c(19979),h=c(97102),i=c(65377),j=c(29675),k=c(32546),l=c(4845),m=c(49804);let n="anthropic",o="open_ai",p="google",q="x_ai";function r(a,b){let c=String(a||"").toLowerCase();if("anthropic"===c)return n;if("openai"===c||"open_ai"===c)return o;if("google"===c||"gemini"===c)return p;if("xai"===c||"x_ai"===c||"x-ai"===c)return q;let d=String(b||"").toLowerCase();return d.includes("claude")?n:d.includes("gemini")?p:d.includes("grok")||d.includes("xai")?q:o}function s(a,b,c){return a===n?(0,j.P)(b,c):a===p?(0,k.o)(b,c):a===o?(0,l.v)(b,c):b}function t(a,b,c){if(c)for(let d of Array.isArray(c)?c:[c])d&&a.enqueue(b.encode(`data: ${JSON.stringify(d)}
376
+ `),f("data: [DONE]\n\n");try{n||(n=!0,k.stdin.end())}catch{}let e=setTimeout(()=>{k.killed||k.kill("SIGKILL")},2e3);e.unref?.(),b.close(),y()},K="";k.stdout.on("data",b=>{let c;for(K+=b.toString("utf8");-1!==(c=K.indexOf("\n"));){let b,e=K.slice(0,c).trim();if(K=K.slice(c+1),e){try{b=JSON.parse(e)}catch{continue}if(!u&&void 0!==b.result&&!b.method){u=!0,E("session/new",{cwd:p,mcpServers:[],model:a||void 0});continue}if(u&&!v&&void 0!==b.result&&!b.method){if(!(t=(b.result||{}).sessionId||null))return void J("Devin ACP: session/new returned no sessionId");v=!0,w=!0,E("session/prompt",{sessionId:t,prompt:[{type:"text",text:o}]});continue}if(v&&w&&void 0!==b.result&&!b.method){if(!B){let a=b.result||void 0,c=function(a){if("string"==typeof a.content)return a.content;if("string"==typeof a.text)return a.text;let b=a.message;if(b&&"string"==typeof b.content)return b.content;let c=a.messages;return Array.isArray(c)?c.filter(a=>"assistant"===a.role).map(a=>String(a.content||"")).join("\n"):""}(a);c&&(C=c,F(c));let d=a&&a.stopReason||"";if(d&&"cancelled"!==d)return void J()}continue}if("session/request_permission"===b.method&&void 0!==b.id){let a=b.params?.options||[],c=a.find(a=>/allow/i.test(String(a.kind||"")))||a[0];c&&k.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b.id,result:{outcome:{outcome:"selected",optionId:c.optionId}}})+"\n");continue}if("_cognition.ai/agent_stopped"===b.method||"$/agent_stopped"===b.method)return void("error"===b.params?.cause?J(String(b.params?.errorMessage||b.params?.message||b.params?.error||"Devin agent error")):J());if("session/update"===b.method||"$/update"===b.method){let a=b.params;if(!a)continue;let c=a.update||{},e=c.sessionUpdate||a.type,f=void 0!==c.content?c.content:a.content,g="string"==typeof f?f:f?.text??a.delta??a.text??"";if(x&&!G&&("tool_call"===e||"tool_call_update"===e)){let a=c.toolCallId;if("string"==typeof c.title&&c.title.startsWith("Calling mcp_")&&/from clientTools\b/.test(c.title)){var d;let b=c.title.match(/^Calling (mcp_\S+)\b/),e=(d=b?b[1]:"").startsWith(m)?d.slice(m.length):d;a&&e&&H.set(a,e)}let b=a?H.get(a):null;if(b&&c.rawInput){G=!0,H.delete(a),I(b,c.rawInput,a||`call_${Date.now()}`),J(null,"tool_calls");return}continue}if("agent_message_chunk"===e||"message_delta"===e||"text_delta"===e||"content_delta"===e)g&&F(g);else if("agent_thought_chunk"===e);else if("message_stop"===e||"stop"===e||"done"===e)return void J();else if("error"===e)return void J(String(a.message||a.error||"Devin ACP error"));continue}if(b.error)return void J(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}),k.stderr.on("data",a=>{g?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),k.on("close",a=>{D?y():0===a||l?J():J(B?void 0:`Devin CLI exited with code ${a}`)}),E("initialize",{protocolVersion:"0.3",clientInfo:{name:"9router",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,cwd:p,clientTools:u.map(a=>a?.function?.name||a?.name).filter(Boolean),clientToolResults:Object.keys(v),mcpServers:Object.keys(s),promptLength:Array.isArray(b?.messages)?b.messages.length:Array.isArray(b?.input)?b.input.length:0}}}}},95128:(a,b,c)=>{c.d(b,{V:()=>h});var d=c(74957),e=c(12643),f=c(75924),g=c(39609);class h extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null,d=null){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(d),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return b&&b.request&&b.model?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;try{let a=JSON.parse(b),d=a?.error?.details;if(Array.isArray(d)){for(let a of d)if(a?.["@type"]==="type.googleapis.com/google.rpc.RetryInfo"&&a?.retryDelay){c.retryAfter=a.retryDelay;break}}}catch{}return c}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,g.proxyAwareFetch)(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},98625:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(96179);class e extends d.L{constructor(){super("azure")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.azureEndpoint||process.env.AZURE_ENDPOINT||"https://api.openai.com",f=d?.providerSpecificData?.apiVersion||process.env.AZURE_API_VERSION||"2024-10-01-preview",g=d?.providerSpecificData?.deployment||a||process.env.AZURE_DEPLOYMENT||"gpt-4",h=e.replace(/\/$/,"");return`${h}/openai/deployments/${g}/chat/completions?api-version=${f}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers},d=a?.apiKey||a?.accessToken||process.env.OPENAI_API_KEY;d&&(c["api-key"]=d);let e=a?.providerSpecificData?.organization||process.env.AZURE_ORGANIZATION;return e&&(c["OpenAI-Organization"]=e),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}}},98665:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(74957),e=c(14170),f=c(88499),g=c(19979),h=c(97102),i=c(65377),j=c(29675),k=c(32546),l=c(4845),m=c(49804);let n="anthropic",o="open_ai",p="google",q="x_ai";function r(a,b){let c=String(a||"").toLowerCase();if("anthropic"===c)return n;if("openai"===c||"open_ai"===c)return o;if("google"===c||"gemini"===c)return p;if("xai"===c||"x_ai"===c||"x-ai"===c)return q;let d=String(b||"").toLowerCase();return d.includes("claude")?n:d.includes("gemini")?p:d.includes("grok")||d.includes("xai")?q:o}function s(a,b,c){return a===n?(0,j.P)(b,c):a===p?(0,k.o)(b,c):a===o?(0,l.v)(b,c):b}function t(a,b,c){if(c)for(let d of Array.isArray(c)?c:[c])d&&a.enqueue(b.encode(`data: ${JSON.stringify(d)}
217
377
 
218
378
  `))}class u extends d.H{constructor(){super("zed")}async resolveModel(a,b,c,d){try{let d=await (0,m.w9)(b,{config:this.config,signal:c}),e=d?.rawById?.get(a)??null;if(!e){let d=await (0,m.w9)(b,{config:this.config,signal:c,forceRefresh:!0});e=d?.rawById?.get(a)??null}return{raw:e,provider:r(e?.provider,a)}}catch(c){let b=c instanceof Error?c.message:String(c);return d?.warn?.("ZED",`model catalog unavailable, inferring provider for ${a}: ${b}`),{raw:null,provider:r(null,a)}}}async execute({model:a,body:b,stream:c,credentials:d,signal:j,log:k,proxyOptions:l=null}){let{provider:q}=await this.resolveModel(a,d,j,k),r=function(a,b,c,d,e){if(a===n)return(0,g.p)(b,c,!0);if(a===p){let a=(0,h.m$)(b,c,!0);return delete a.safetySettings,a}return a===o?(0,i.h)(b,c,!0,e):{...c||{},model:b,stream:!1!==d}}(q,a,b,c,d),u=b||{},v={thread_id:u.thread_id||d?._clientSessionId,prompt_id:u.prompt_id,provider:q,model:a,provider_request:r},w=await (0,m.zn)(d,"/completions",{config:this.config,signal:j,fetchOptions:{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/x-ndjson, text/event-stream, */*","User-Agent":"9router/zed","x-zed-version":this.config?.appVersion?.toString()||"0.200.0",[m.xK.clientSupportsStatus]:"true",[m.xK.clientSupportsStreamEnded]:"true"},body:JSON.stringify(v)}});return{response:w.ok?function(a,b,c){if(!a.ok||!a.body)return a;let d=new TextDecoder,g=new TextEncoder,h=function(a,b){if(a===n)return(0,f.Ws)(e.h.CLAUDE);if(a===p)return(0,f.Ws)(e.h.GEMINI);if(a===o)return(0,f.Ws)(e.h.OPENAI_RESPONSES);let c=(0,f.Ws)(e.h.OPENAI);return c.model=b,c}(b,c),i="",j=!1,k=a=>{j||(t(a,g,s(b,null,h)),a.enqueue(g.encode("data: [DONE]\n\n")),j=!0)},l=(a,d)=>{if(j)return;let e=function(a){let b=a.replace(/\r$/,"").trim();if(!b)return null;if(b.startsWith("data:")&&(b=b.slice(5).trimStart()),"[DONE]"===b)return{done:!0};try{let a=JSON.parse(b);if(a&&Object.prototype.hasOwnProperty.call(a,"event"))return{event:a.event};if(a&&Object.prototype.hasOwnProperty.call(a,"status"))return{status:a.status};return{event:a}}catch{return null}}(a);if(e){if(e.done)return void k(d);if(e.status){let a=function(a){if(!a)return null;if("string"==typeof a)return{type:a};if("object"==typeof a){let b=Object.keys(a)[0];return b&&"object"==typeof a[b]?{type:b,...a[b]}:a}return null}(e.status);if(a?.type==="failed"||a?.failed){let b=a.failed||a,e=String(b.message||b.error||b.code||"request failed");t(d,g,{id:`chatcmpl-zed-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:c,choices:[{index:0,delta:{content:`[Zed error] ${e}`},finish_reason:"stop"}]}),k(d)}else(a?.type==="stream_ended"||"stream_ended"===a)&&k(d);return}t(d,g,s(b,e.event,h))}};return new Response(a.body.pipeThrough(new TransformStream({transform(a,b){let c;for(i+=d.decode(a,{stream:!0});-1!==(c=i.indexOf("\n"));){let a=i.slice(0,c);i=i.slice(c+1),l(a,b)}},flush(a){(i+=d.decode())&&(l(i,a),i=""),k(a)}})),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}(w,q,a):w,url:`${this.config?.llmBaseUrl||"https://cloud.zed.dev"}/completions`,headers:{"Content-Type":"application/json",Authorization:"Bearer <zed-llm-token>"},transformedBody:v}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||void 0,e=c?.code||d?.code||"",f=c?.message||d?.message||b||a.statusText;return"trial_blocked"===e?{status:a.status,message:`Zed trial access is blocked upstream. The account can list hosted models, but Zed is refusing completions until trial/billing access is enabled or unblocked. Zed says: ${f}`}:e?{status:a.status,message:`Zed ${e}: ${f}`}:{status:a.status,message:f||`Zed upstream error: ${a.status}`}}async refreshCredentials(){return null}needsRefresh(){return!1}}let v=u}};