9router 0.5.111 → 0.5.112

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 (509) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +1 -1
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  77. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  78. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  82. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  85. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  86. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  87. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  88. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/providers/web-login/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  287. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  328. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  330. package/app/.next-cli-build/server/app/callback.html +1 -1
  331. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  332. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  333. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  335. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  337. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  338. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  339. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  342. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  343. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  344. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  347. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  348. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  349. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  350. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  352. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  353. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  354. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  357. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  358. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  359. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  362. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  363. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  364. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  367. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  368. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  369. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  370. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  371. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  372. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  373. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  374. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  376. package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  377. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  378. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  379. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  381. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  382. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  383. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  384. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  386. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  387. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  388. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  389. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  391. package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  392. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  393. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  394. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  396. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  400. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  401. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  403. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  404. package/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  405. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  406. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  407. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  410. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  411. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  412. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  413. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  414. package/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  415. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  416. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  417. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  420. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  421. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  422. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  424. package/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  425. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  426. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  427. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  429. package/app/.next-cli-build/server/app/index.html +1 -1
  430. package/app/.next-cli-build/server/app/index.rsc +3 -3
  431. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  432. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  433. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  435. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  437. package/app/.next-cli-build/server/app/landing.html +1 -1
  438. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  439. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  440. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  441. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  442. package/app/.next-cli-build/server/app/login/page.js +1 -1
  443. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  445. package/app/.next-cli-build/server/app/login.html +1 -1
  446. package/app/.next-cli-build/server/app/login.rsc +3 -3
  447. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  448. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  449. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  450. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  451. package/app/.next-cli-build/server/app/page.js +1 -1
  452. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  454. package/app/.next-cli-build/server/app-paths-manifest.json +1 -1
  455. package/app/.next-cli-build/server/chunks/1051.js +1 -1
  456. package/app/.next-cli-build/server/chunks/1356.js +1 -1
  457. package/app/.next-cli-build/server/chunks/2365.js +1 -1
  458. package/app/.next-cli-build/server/chunks/2380.js +3 -3
  459. package/app/.next-cli-build/server/chunks/24.js +1 -1
  460. package/app/.next-cli-build/server/chunks/2598.js +1 -1
  461. package/app/.next-cli-build/server/chunks/3697.js +1 -1
  462. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  463. package/app/.next-cli-build/server/chunks/412.js +1 -1
  464. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  465. package/app/.next-cli-build/server/chunks/4279.js +1 -1
  466. package/app/.next-cli-build/server/chunks/4480.js +1 -0
  467. package/app/.next-cli-build/server/chunks/5330.js +21 -21
  468. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  469. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  470. package/app/.next-cli-build/server/chunks/615.js +1 -1
  471. package/app/.next-cli-build/server/chunks/6690.js +1 -0
  472. package/app/.next-cli-build/server/chunks/6724.js +1 -1
  473. package/app/.next-cli-build/server/chunks/6763.js +1 -1
  474. package/app/.next-cli-build/server/chunks/7187.js +1 -1
  475. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  476. package/app/.next-cli-build/server/chunks/7373.js +1 -1
  477. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  478. package/app/.next-cli-build/server/chunks/8128.js +1 -0
  479. package/app/.next-cli-build/server/chunks/8251.js +1 -1
  480. package/app/.next-cli-build/server/chunks/8271.js +1 -1
  481. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  482. package/app/.next-cli-build/server/chunks/{7786.js → 8499.js} +1 -1
  483. package/app/.next-cli-build/server/chunks/8623.js +1 -1
  484. package/app/.next-cli-build/server/chunks/869.js +1 -1
  485. package/app/.next-cli-build/server/chunks/8895.js +1 -1
  486. package/app/.next-cli-build/server/chunks/8920.js +1 -1
  487. package/app/.next-cli-build/server/chunks/9128.js +1 -1
  488. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  489. package/app/.next-cli-build/server/chunks/9604.js +1 -1
  490. package/app/.next-cli-build/server/instrumentation.js +1 -1
  491. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  492. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  493. package/app/.next-cli-build/server/middleware.js +1 -1
  494. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  495. package/app/.next-cli-build/server/pages/404.html +1 -1
  496. package/app/.next-cli-build/server/pages/500.html +1 -1
  497. package/app/.next-cli-build/static/chunks/1321-02944667ec55f586.js +1 -0
  498. package/app/.next-cli-build/static/chunks/{5497-09541f53986a9e0d.js → 5497-870732fd9d818574.js} +1 -1
  499. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-f9897bc47dce7e8f.js +27 -0
  500. package/app/cli/.build-home/.9router/db/data.sqlite +0 -0
  501. package/app/package.json +1 -1
  502. package/app/public/providers/nace.png +0 -0
  503. package/package.json +1 -1
  504. package/app/.next-cli-build/server/chunks/618.js +0 -1
  505. package/app/.next-cli-build/server/chunks/7918.js +0 -1
  506. package/app/.next-cli-build/static/chunks/1321-337f26c35a89cccd.js +0 -1
  507. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-bcda8e5062f1ebc9.js +0 -27
  508. /package/app/.next-cli-build/static/{tTnLO7OGDvjEJ5mfmRKqj → Mwpv7kpqnhzp2SJMtsIA1}/_buildManifest.js +0 -0
  509. /package/app/.next-cli-build/static/{tTnLO7OGDvjEJ5mfmRKqj → Mwpv7kpqnhzp2SJMtsIA1}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- exports.id=5330,exports.ids=[5330],exports.modules={4052:(a,b,c)=>{"use strict";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)}}},9708:(a,b,c)=>{"use strict";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`}}},10079:(a,b,c)=>{"use strict";function d(a){let b=(a||"").trim();return b?b.replace(/^bearer\s+/i,"").replace(/^cookie:/i,"").trim():""}function e(a,b){let c=d(a);if(!c)return"";let e=function(a){let b,c=(a||"").trim();if(!c||!c.startsWith("["))return null;try{b=JSON.parse(c)}catch{return null}if(!Array.isArray(b))return null;if(0===b.length)return"";let d=[];for(let a=0;a<b.length;a++){let c=b[a];if(!c||"object"!=typeof c||Array.isArray(c))throw Error(`Invalid cookie JSON at index ${a}: expected an object`);if("string"!=typeof c.name||!c.name)throw Error(`Invalid cookie JSON at index ${a}: missing required field 'name'`);if("string"!=typeof c.value)throw Error(`Invalid cookie JSON at index ${a}: missing required field 'value'`);d.push(`${c.name}=${c.value}`)}return d.join("; ")}(c);return null!==e?e:c.includes("=")?c:`${b}=${c}`}c.d(b,{$J:()=>h,EU:()=>g,lT:()=>i,p1:()=>e});let f=new Set(["path","domain","expires","max-age","secure","httponly","samesite"]);function g(a,b){let c=[];for(let d of String(a||"").split(";")){let a=d.trim();if(!a)continue;let e=a.indexOf("=");if(e<=0)continue;let g=a.slice(0,e).trim(),h=a.slice(e+1).trim();if(!g||!h||f.has(g.toLowerCase()))continue;let i=String(b||"").replace(/^\./,"");g.startsWith("__Host-")?c.push({name:g,value:h,domain:i,path:"/",secure:!0}):c.push({name:g,value:h,domain:b,path:"/",secure:!0})}return c}function h(a,b){let c=d(a);if(!c)return"";if(c.includes(";")){let a=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=c.match(RegExp("(?:^|;\\s*)"+a+"=([^;\\s]+)"));return d?d[1]:""}let e=`${b}=`;return c.startsWith(e)?c.slice(e.length):c}function i(a){let b=h(a,"sso");if(!b)return"";let c=[`sso=${b}`];for(let b of["sso-rw","cf_clearance","__cf_bm"])if(RegExp("(?:^|;\\s*)"+b+"=").test(a)){let d=h(a,b);d&&c.push(`${b}=${d}`)}return c.join("; ")}},11655:(a,b,c)=>{"use strict";c.d(b,{x:()=>s});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(82380),k=c(14170),l=c(9024),m=c(39609),n=c(74379),o=c(78959),p=c(74129),q=c(55511),r=c.n(q);class s 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":r().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":p.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,n.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 executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,n=this.buildHeaders(d,c),p=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let q=await (0,m.proxyAwareFetch)(k,{method:"POST",headers:n,body:JSON.stringify(p),signal:e},g);if(!q.ok)return{response:q,url:k,headers:n,transformedBody:p};let r=(0,j.Ws)("openai-responses");r.model=a;let s=new TextDecoder,t="",u=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=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(o.$U));continue}let f=(0,i.v)(e,r);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());if(b&&!b.done){let c=(0,i.v)(b,r);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return q.body?{response:new Response(q.body.pipeThrough(u),{status:q.status,statusText:q.statusText,headers:q.headers}),url:k,headers:n,transformedBody:p}:{response:new Response("",{status:q.status,headers:q.headers}),url:k,headers:n,transformedBody:p}}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),n=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),p=n._toolNameMap;delete n._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let q=await (0,m.proxyAwareFetch)(h,{method:"POST",headers:i,body:JSON.stringify(n),signal:e},g);if(!q.ok)return{response:q,url:h,headers:i,transformedBody:n};let r=(0,j.Ws)(k.h.CLAUDE);r.model=a,p&&(r.toolNameMap=p);let s=new TextDecoder,t="",u=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},v=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=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(o.$U));continue}u(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,r))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());b&&!b.done&&u(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,r))}}});return q.body?{response:new Response(q.body.pipeThrough(v),{status:q.status,statusText:q.statusText,headers:q.headers}),url:h,headers:i,transformedBody:n}:{response:new Response("",{status:q.status,headers:q.headers}),url:h,headers:i,transformedBody:n}}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)}}},12132:(a,b,c)=>{"use strict";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,80099,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)=>{"use strict";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)=>{"use strict";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"}}},16046:(a,b,c)=>{"use strict";c.d(b,{Yh:()=>q});var d=c(74957),e=c(35024),f=c(39609),g=c(55511),h=c(21820),i=c.n(h);let j=e.xq["mimo-free"].baseUrl,k="abcdefghijklmnopqrstuvwxyz0123456789",l=["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"],m="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.",n=null,o=0;async function p(a=null){if(n&&Date.now()<o-3e5)return n;let b=await (0,f.proxyAwareFetch)("https://api.xiaomimimo.com/api/free-ai/bootstrap",{method:"POST",headers:{"Content-Type":"application/json","User-Agent":l[Math.floor(Math.random()*l.length)]},body:JSON.stringify({client:function(){let a="unknown-user";try{a=i().userInfo().username}catch{}let b=(i().cpus()[0]?.model||"unknown-cpu").trim(),c=`${i().hostname()}|${i().platform()}|${i().arch()}|${b}|${a}`;return(0,g.createHash)("sha256").update(c).digest("hex")}()})},a);if(!b.ok)throw Error(`MiMo bootstrap failed: ${b.status}`);let c=await b.json();if(!c.jwt)throw Error("MiMo bootstrap returned no JWT");return n=c.jwt,o=function(a){try{let b=JSON.parse(Buffer.from(a.split(".")[1],"base64").toString());if(b.exp)return 1e3*b.exp}catch{}return Date.now()+3e6}(c.jwt),n}class q extends d.H{constructor(){super("mimo-free",e.xq["mimo-free"]),this.sessionId=function(){let a="ses_";for(let b=0;b<24;b++)a+=k[Math.floor(Math.random()*k.length)];return a}()}buildUrl(){return j}buildHeaders(a,b=!0){return{"Content-Type":"application/json","X-Mimo-Source":"mimocode-cli-free","User-Agent":l[Math.floor(Math.random()*l.length)],"x-session-affinity":this.sessionId,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b){let c;return!Array.isArray(c=b?.messages)||c.some(a=>a?.role==="system"&&"string"==typeof a.content&&a.content.includes(m))?b:{...b,messages:[{role:"system",content:m},...c]}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:g,proxyOptions:h=null}){let i;try{i=await p(h)}catch(a){throw g?.error?.("AUTH",`MiMo bootstrap failed: ${a.message}`),a}let j=this.buildUrl(),k=this.transformRequest(a,b),l={...this.buildHeaders(d,c),Authorization:`Bearer ${i}`},m=JSON.stringify(k);g?.debug?.("FETCH",`MIMO-FREE → ${j} | body=${m.length}B`);let q=await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h);return 401===q.status||403===q.status?(g?.debug?.("AUTH",`MiMo auth failed (${q.status}), re-bootstrapping...`),n=null,o=0,i=await p(h),l.Authorization=`Bearer ${i}`,{response:await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h),url:j,headers:l,transformedBody:k}):{response:q,url:j,headers:l,transformedBody:k}}}},19932:(a,b,c)=>{"use strict";c.d(b,{T:()=>B});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={4338:(a,b,c)=>{c.d(b,{C2:()=>z,Dg:()=>q,G2:()=>y,S1:()=>s,oy:()=>t,u_:()=>C,xK:()=>r,zC:()=>D});var d=c(77030),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j),l=c(77598),m=c.n(l);let n="mcode-auth-lease-v1.cap",o=k().join(i().homedir(),".minimax"),p=Object.freeze({AUTH_REQUIRED:"Desktop authentication is required.",BROKER_UNAVAILABLE:"Desktop authentication integration is unavailable.",CAPABILITY_REJECTED:"Desktop authentication capability was rejected.",PROTOCOL_MISMATCH:"Desktop authentication protocol is incompatible.",INVALID_REQUEST:"Desktop authentication request is invalid.",INTERNAL_ERROR:"Desktop authentication request failed."});class q extends Error{constructor(a,b,c){super(b??p[a]??"auth lease failed"),this.name="AuthLeaseError",this.code=a,c&&(this.cause=c)}}function r(a){return a?.authType==="mcode-lease"}function s(a){let b=a?.providerSpecificData?.mcodeDataDir;if("string"==typeof b&&b.trim())return k().resolve(b.trim());let c=process.env.MINIMAX_DESKTOP_DATA_DIR;return"string"==typeof c&&c.trim()?k().resolve(c.trim()):o}function t(a,b=process.platform){if("win32"===b){if(!k().win32.isAbsolute(a))throw new q("INVALID_REQUEST","dataDir must be an absolute path on Windows.");let b=k().win32.normalize(a).replace(/[\\/]+$/u,""),c=m().createHash("sha256").update(b.toLowerCase()).digest("hex").slice(0,16);return{transport:"pipe",endpoint:`\\\\.\\pipe\\mcode-auth-lease-${c}`,capabilityFile:k().win32.join(b,"run",n)}}if(!k().isAbsolute(a))throw new q("INVALID_REQUEST","dataDir must be an absolute path.");let c=k().normalize(a).replace(/[\\/]+$/u,"");return{transport:"unix",endpoint:k().join(c,"run","mcode-auth-lease-v1.sock"),capabilityFile:k().join(c,"run",n)}}function u(a){let b,{capabilityFile:c}=t(a);try{b=g().readFileSync(c,"utf8").trim()}catch(a){throw new q("BROKER_UNAVAILABLE",`Cannot read capability file ${c}. Is the MiniMax Code desktop app installed and logged in on this machine? (${a?.code??a?.message})`)}if(!/^[A-Za-z0-9_-]{43}$/u.test(b))throw new q("BROKER_UNAVAILABLE","Capability file has unexpected content.");return b}class v{constructor(){this.buffer=Buffer.alloc(0)}push(a){this.buffer=Buffer.concat([this.buffer,Buffer.from(a)]);let b=[];for(;this.buffer.length>=4;){let a=this.buffer.readUInt32BE(0);if(0===a||a>65536)throw new q("PROTOCOL_MISMATCH","Broker sent an invalid frame length.");let c=4+a;if(this.buffer.length<c)break;let d=this.buffer.subarray(4,c);this.buffer=this.buffer.subarray(c);try{b.push(JSON.parse(d.toString("utf8")))}catch{throw new q("PROTOCOL_MISMATCH","Broker sent a non-JSON frame.")}}return b}}function w(a){if(a&&!0===a.ok)return a;throw new q(a&&!1===a.ok&&a.error&&p[a.error.code]?a.error.code:"INTERNAL_ERROR")}function x(a,b,c){return new Promise((d,f)=>{let g=e().connect(a.endpoint),h=new v,i=!1,j=(a,b)=>{i||(i=!0,clearTimeout(k),g.destroy(),a?f(a):d(b))},k=setTimeout(()=>{j(new q("BROKER_UNAVAILABLE",`Broker did not respond within ${c}ms.`))},c);g.on("connect",()=>{g.write(function(a){let b=Buffer.from(JSON.stringify(a),"utf8");if(0===b.length||b.length>65536)throw new q("INVALID_REQUEST","Frame payload out of bounds.");let c=Buffer.alloc(4);return c.writeUInt32BE(b.length,0),Buffer.concat([c,b])}(b))}),g.on("data",a=>{try{let b=h.push(a);b.length>0&&j(void 0,b[0])}catch(a){j(a)}}),g.on("error",b=>{j(new q("BROKER_UNAVAILABLE",`Cannot reach auth broker at ${a.endpoint}: ${b.message}. Is the MiniMax Code desktop app running?`))}),g.on("close",()=>{j(new q("BROKER_UNAVAILABLE","Broker closed the connection early."))})})}async function y(a,b=5e3){let c=t(a),d=u(a),e=w(await x(c,{version:1,requestId:`9r-status-${Date.now().toString(36)}`,capability:d,method:"status"},b)).result;return{status:e.status,generation:e.generation,expiresAtMs:e.expiresAtMs}}async function z(a,b=3e5,c=1e4){let d=t(a),e=u(a),f=Math.max(0,Math.min(Math.floor(b),3e5)),g=w(await x(d,{version:1,requestId:`9r-lease-${Date.now().toString(36)}`,capability:e,method:"lease",minValidityMs:f},c)).result;return{accessToken:g.accessToken,expiresAtMs:g.expiresAtMs,generation:g.generation}}let A=new Map;function B(a,b){let c=A.get(a);return c||(c=function({requestLease:a,log:b}={}){let c=a||z;return{cached:null,inflight:null,async getToken(a){let d=Date.now();return this.cached&&this.cached.expiresAtMs-d>6e4?this.cached:(this.inflight||(this.inflight=c(a,3e5).then(a=>(this.cached=a,b?.debug?.("MCODE_LEASE",`leased access token (generation ${a.generation}, expires in ${Math.max(0,Math.round((a.expiresAtMs-d)/1e3))}s)`),a)).finally(()=>{this.inflight=null})),this.inflight)},invalidate(a){this.cached&&(b?.debug?.("MCODE_LEASE",`invalidating leased token: ${a}`),this.cached=null)}}}({log:b}),A.set(a,c)),c}async function C(a,b){let c=s(a);return B(c,b).getToken(c)}function D(a,b,c){B(s(a),c).invalidate(b)}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(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:()=>s});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(82380),k=c(14170),l=c(9024),m=c(39609),n=c(74379),o=c(78959),p=c(74129),q=c(55511),r=c.n(q);class s 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":r().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":p.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,n.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 executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,n=this.buildHeaders(d,c),p=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let q=await (0,m.proxyAwareFetch)(k,{method:"POST",headers:n,body:JSON.stringify(p),signal:e},g);if(!q.ok)return{response:q,url:k,headers:n,transformedBody:p};let r=(0,j.Ws)("openai-responses");r.model=a;let s=new TextDecoder,t="",u=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=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(o.$U));continue}let f=(0,i.v)(e,r);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());if(b&&!b.done){let c=(0,i.v)(b,r);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return q.body?{response:new Response(q.body.pipeThrough(u),{status:q.status,statusText:q.statusText,headers:q.headers}),url:k,headers:n,transformedBody:p}:{response:new Response("",{status:q.status,headers:q.headers}),url:k,headers:n,transformedBody:p}}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),n=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),p=n._toolNameMap;delete n._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let q=await (0,m.proxyAwareFetch)(h,{method:"POST",headers:i,body:JSON.stringify(n),signal:e},g);if(!q.ok)return{response:q,url:h,headers:i,transformedBody:n};let r=(0,j.Ws)(k.h.CLAUDE);r.model=a,p&&(r.toolNameMap=p);let s=new TextDecoder,t="",u=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},v=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=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(o.$U));continue}u(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,r))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());b&&!b.done&&u(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,r))}}});return q.body?{response:new Response(q.body.pipeThrough(v),{status:q.status,statusText:q.statusText,headers:q.headers}),url:h,headers:i,transformedBody:n}:{response:new Response("",{status:q.status,headers:q.headers}),url:h,headers:i,transformedBody:n}}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)}}},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,80099,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"}}},16046:(a,b,c)=>{c.d(b,{Yh:()=>q});var d=c(74957),e=c(35024),f=c(39609),g=c(55511),h=c(21820),i=c.n(h);let j=e.xq["mimo-free"].baseUrl,k="abcdefghijklmnopqrstuvwxyz0123456789",l=["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"],m="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.",n=null,o=0;async function p(a=null){if(n&&Date.now()<o-3e5)return n;let b=await (0,f.proxyAwareFetch)("https://api.xiaomimimo.com/api/free-ai/bootstrap",{method:"POST",headers:{"Content-Type":"application/json","User-Agent":l[Math.floor(Math.random()*l.length)]},body:JSON.stringify({client:function(){let a="unknown-user";try{a=i().userInfo().username}catch{}let b=(i().cpus()[0]?.model||"unknown-cpu").trim(),c=`${i().hostname()}|${i().platform()}|${i().arch()}|${b}|${a}`;return(0,g.createHash)("sha256").update(c).digest("hex")}()})},a);if(!b.ok)throw Error(`MiMo bootstrap failed: ${b.status}`);let c=await b.json();if(!c.jwt)throw Error("MiMo bootstrap returned no JWT");return n=c.jwt,o=function(a){try{let b=JSON.parse(Buffer.from(a.split(".")[1],"base64").toString());if(b.exp)return 1e3*b.exp}catch{}return Date.now()+3e6}(c.jwt),n}class q extends d.H{constructor(){super("mimo-free",e.xq["mimo-free"]),this.sessionId=function(){let a="ses_";for(let b=0;b<24;b++)a+=k[Math.floor(Math.random()*k.length)];return a}()}buildUrl(){return j}buildHeaders(a,b=!0){return{"Content-Type":"application/json","X-Mimo-Source":"mimocode-cli-free","User-Agent":l[Math.floor(Math.random()*l.length)],"x-session-affinity":this.sessionId,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b){let c;return!Array.isArray(c=b?.messages)||c.some(a=>a?.role==="system"&&"string"==typeof a.content&&a.content.includes(m))?b:{...b,messages:[{role:"system",content:m},...c]}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:g,proxyOptions:h=null}){let i;try{i=await p(h)}catch(a){throw g?.error?.("AUTH",`MiMo bootstrap failed: ${a.message}`),a}let j=this.buildUrl(),k=this.transformRequest(a,b),l={...this.buildHeaders(d,c),Authorization:`Bearer ${i}`},m=JSON.stringify(k);g?.debug?.("FETCH",`MIMO-FREE → ${j} | body=${m.length}B`);let q=await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h);return 401===q.status||403===q.status?(g?.debug?.("AUTH",`MiMo auth failed (${q.status}), re-bootstrapping...`),n=null,o=0,i=await p(h),l.Authorization=`Bearer ${i}`,{response:await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h),url:j,headers:l,transformedBody:k}):{response:q,url:j,headers:l,transformedBody:k}}}},19932:(a,b,c)=>{c.d(b,{T:()=>B});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
3
3
 
4
4
  ## General
5
5
 
@@ -115,11 +115,11 @@ You are producing plain text that will later be styled by the CLI. Follow these
115
115
  * Optionally include line/column (1‑based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
116
116
  * Do not use URIs like file://, vscode://, or https://.
117
117
  * Do not provide range of lines
118
- * 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(80662);let o=/(^|[^\\])(\\\\)*\\[pP]\{/;function p(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)&&o.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 q=["server_is_overloaded","service_unavailable_error"],r=["selected model is at capacity","model_at_capacity"],s=["event: response.output_text.delta","event: response.function_call_arguments.delta",'"type":"response.output_text.delta"','"type":"response.function_call_arguments.delta"'],t="Selected model is at capacity. Please try a different model.";function u(a){let b=String(a||"").replace(/\([^()]+\)\s*$/,"");return(0,j.SM)("cx").some(a=>a.id===b&&!0===a.responsesLite)}let v=/^(rs|fc|resp|msg)_/,w=new Set(["image_generation","web_search","web_search_preview","file_search","computer","computer_use_preview","code_interpreter","mcp","local_shell","tool_search"]),x=new Set(["custom"]),y=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","prompt_cache_key","client_metadata","text","parallel_tool_calls"]);function z(a,b){let c=(0,k.k)("codex",a);return c?.includes(b)?b:u(a)&&("none"===b||"minimal"===b)?"low":"ultra"===b&&c?.includes("max")?"max":"max"===b||"ultra"===b?"xhigh":b}function A(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 B extends d.H{constructor(){super("codex",f.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0,c=null,d=null,e=null){let f=super.buildHeaders(a,b);u(d&&(0,j.kt)("cx",d))&&!e?.tools?.some?.(a=>a?.type==="web_search")&&(f["x-openai-internal-codex-responses-lite"]="true"),f.session_id=this._currentSessionId||a?.connectionId||"default",f.originator||(f.originator="codex_cli_rs");let g=a?.providerSpecificData?.workspaceId||a?.providerSpecificData?.chatgptAccountId||a?.providerSpecificData?.accountId;return"string"==typeof g&&g&&!f["ChatGPT-Account-ID"]&&(f["ChatGPT-Account-ID"]=g),f}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}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} | sessionId=${this._currentSessionId||"pending"}`),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={...l.cI,...this.config.retry},{attempts:e,delayMs:f}=(0,l.DR)(d[503]),g=0;for(;;){let b=await super.execute(a),c=await this._peekSseTransientError(b.response);if(!c.matched)return c.replacementBody&&(b.response=new Response(c.replacementBody,{status:b.response.status,statusText:b.response.statusText,headers:b.response.headers})),b;if(c.accountFallback)return a.log?.warn?.("RETRY",`CODEX | SSE account fallback "${c.message}"`),b.response=A(l.gx.SERVICE_UNAVAILABLE,c.message||t),b;if(g>=e)return a.log?.warn?.("RETRY",`CODEX | SSE overloaded "${c.matched}" — retries exhausted (${g}/${e})`),b.response=A(l.gx.SERVICE_UNAVAILABLE,c.message||c.matched),b;g++,a.log?.debug?.("RETRY",`CODEX | SSE "${c.matched}" retry ${g}/${e} after ${f/1e3}s`),(0,m.s)("CODEX",`SSE overloaded "${c.matched}" → retry ${g}/${e} in ${f}ms`),await new Promise(a=>setTimeout(a,f))}}async _peekSseTransientError(a){if(!a||!a.ok||!a.body)return{matched:null,message:null,accountFallback:!1,replacementBody:null};let b=a.body.getReader(),c=new TextDecoder,d=[],e="",f=null,g=!1;try{for(;e.length<262144;){let{done:a,value:h}=await b.read();if(a)break;d.push(h);let i=(e+=c.decode(h,{stream:!0})).toLowerCase(),j=r.find(a=>i.includes(a));if(j){f=j,g=!0;break}let k=q.find(a=>i.includes(a));if(k){f=k;break}if(s.some(a=>i.includes(a)))break}}catch(a){(0,m.s)("CODEX",`peek read error: ${a.message}`)}if(f){try{await b.cancel()}catch{}try{b.releaseLock()}catch{}return{matched:f,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||t}(e,f),accountFallback:g,replacementBody:null}}b.releaseLock();let h=a.body,i=null;return{matched:null,message:null,accountFallback:!1,replacementBody:new ReadableStream({start(a){for(let b of d)a.enqueue(b);i=h.getReader()},async pull(a){try{let{done:b,value:c}=await i.read();if(b)return void a.close();a.enqueue(c)}catch(b){a.error(b)}},cancel(a){try{i?.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){this._isCompact=!!b._compact,delete b._compact,this._currentSessionId=(0,n.oV)({headers:d?.rawHeaders,body:b,connectionId:d?.connectionId,workspaceId:d?.providerSpecificData?.workspaceId,scope:"codex"});let f=(0,h.me)(b.input);f&&(b.input=f);let g=(0,j.kt)("cx",b.model||a),i=!0===b._autoCodexWebSearch;delete b._autoCodexWebSearch,i&&!b.tools?.some?.(a=>a?.type==="web_search")&&(b.tools=[...Array.isArray(b.tools)?b.tools:[],{type:"web_search"}]);let k=!1;if(u(g)&&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,k=b.input.some(a=>a?.type==="additional_tools"),b.input=b.input.filter(a=>a?.type!=="additional_tools")}let l=u(g)&&!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&&v.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&v.test(a.id)&&!(b&&"developer"===a.role&&a.id.startsWith("msg_"))&&delete a.id}return!0}))}(b,l),!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=p(d.parameters,c))}return!0}if("function"!==d)return!!x.has(d)||!!d&&!a.function&&"string"!=typeof a.name&&w.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=p(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,l||k||b.instructions&&""!==b.instructions.trim()||(b.instructions=e),b.store=!1,!b.prompt_cache_key&&this._currentSessionId&&(b.prompt_cache_key=this._currentSessionId),b.model=g,l){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 o=null;for(let a of["none","minimal","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){o=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)b.reasoning.effort=z(b.model,b.reasoning.effort),l||b.reasoning.summary||(b.reasoning.summary="auto");else{let a=z(b.model,b.reasoning_effort||o||(l?"medium":"low"));b.reasoning=l?{effort:a}:{effort:a,summary:"auto"}}for(let a of(l&&(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)))y.has(a)||delete b[a];return b}}},19946:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{let a,G,H;c.d(b,{ou:()=>S});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(74075),r=c.n(q),s=c(55511),t=c.n(s);let I=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{I=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let J="/agent.v1.AgentService/Run";function u(...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 K=(a,b)=>(0,h.Xh)(a,2,b),L=(a,b)=>(0,h.Xh)(a,2,b);function v(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 w(a){return!a||a.type===o.x4.TEXT||"string"==typeof a}function x(a){let b=v(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=K(1,d);return a.role===o.z7.ASSISTANT?L(2,L(1,L(1,e))):L(1,L(1,L(1,e)))}function y(a,b){let c=a?.get(b)?.[0]?.value;return c?Buffer.from(c).toString("utf8"):""}function z(a){return{id:Number(a?.get(1)?.[0]?.value||0),execId:y(a,15)}}function A(a,b,c,d){let e=[];return a&&e.push((0,h.Xh)(1,0,a)),e.push(K(15,b||"")),e.push((0,h.Xh)(c,2,d||new Uint8Array)),(0,h.tM)(L(2,u(...e)))}let M={2:2,3:3,4:4,5:5,7:7,8:8,9:9,16:16,20:20,23:23};function B(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)(L(3,u(...e)))}let N="1"===process.env.CURSOR_STREAM_DEBUG,O=(...a)=>{N&&console.log(...a)};function C(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function D(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function E(a,b,c,d){if(b+5>a.length)return O(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(O(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return O(`[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 O("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return r().gunzipSync(a)}catch(c){try{return r().inflateSync(a)}catch(d){try{return r().inflateRawSync(a)}catch(e){O(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),O("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(O(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}function F(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 P=(a=Number(process.env.CURSOR_EMPTY_TURN_MAX_RETRIES),Number.isFinite(a)&&a>=0?Math.floor(a):1),Q=(G=Number(process.env.CURSOR_TAIL_ONLY_THRESHOLD),Number.isFinite(G)&&G>0?Math.floor(G):80),R=(H=Number(process.env.CURSOR_EMPTY_TURN_RETRY_DELAY_MS),Number.isFinite(H)&&H>=0?Math.floor(H):400);class S 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=await (0,p.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:d},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(a,b,c,d){if(!I)throw Error("http2 module not available");return new Promise((e,f)=>{let g=new URL(a),h=I.connect(`https://${g.host}`),i=[],j={},k=!1,l=a=>(...b)=>{k||(k=!0,clearTimeout(m),h.close(),a(...b))},m=setTimeout(l(()=>{f(Error("HTTP/2 request timed out"))}),6e4);h.on("error",l(f));let n=h.request({":method":"POST",":path":g.pathname,":authority":g.host,":scheme":"https",...b});if(n.on("response",a=>{j=a}),n.on("data",a=>{i.push(a)}),n.on("end",l(()=>{e({status:j[":status"],headers:j,body:Buffer.concat(i)})})),n.on("error",l(f)),d){let a=l(()=>f(Error("Request aborted")));d.addEventListener("abort",a,{once:!0})}n.write(c),n.end()})}openAgentHttp2Stream(a,b,c){if(!I)throw Error("HTTP/2 is required for Cursor AgentService (endpoint is h2-only)");let d=new URL(a),e=I.connect(`https://${d.host}`),f=[],g=null,h=!1,i=null,j=null,k=a=>{if(!g)return;let b=g;g=null,b(a)},l=a=>{i||(i=a,h=!0,k(null))},m=()=>{try{j?.destroy()}catch{}try{e.close()}catch{}};if(e.on("error",l),(j=e.request({":method":"POST",":path":d.pathname,":authority":d.host,":scheme":"https",...b})).on("error",l),j.on("data",a=>{g?k({value:a,done:!1}):f.push(a)}),j.on("end",()=>{h=!0,k({value:void 0,done:!0})}),c){let a=()=>{l(Error("Request aborted")),m()};c.aborted?a():c.addEventListener("abort",a,{once:!0})}return{responseHeaders:new Promise((a,b)=>{let c=a=>b(a);e.once("error",c),j.once("error",c),j.once("response",b=>{e.off("error",c),j.off("error",c),a(b)})}),write(a){j&&!j.destroyed&&j.write(Buffer.from(a))},end(){try{j&&!j.destroyed&&j.end()}catch{}},close:m,async read(){if(f.length)return{value:f.shift(),done:!1};if(h){if(i)throw i;return{value:void 0,done:!0}}let a=await new Promise(a=>{g=a});if(i)throw i;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,s,w=f.sr.cursor?.agentEndpoint;if(!w)throw Error("Cursor AgentService endpoint is not configured");if(!(p?.strictProxy!==!0||!(p?.proxyPoolId||p?.enabled===!0||p?.connectionProxyEnabled===!0||(p?.url||p?.connectionProxyUrl||"").trim().length>0)||p?.vercelRelayUrl)&&1)throw Error("Cursor AgentService requires a strict proxy that this HTTP/2 transport cannot honor; refusing to open a direct connection");let E=`${w}${J}`,F=this.buildHeaders(d),G=new AbortController;e?.addEventListener&&e.addEventListener("abort",()=>G.abort(e.reason),{once:!0});let H=b.messages||[],I=H,N=b.tools||[],S=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})`),S=c.modelId)}let T=a=>{let c=this.openAgentHttp2Stream(E,F,G.signal);return c.write(function(a,b,c=[],d=null){let e=a.filter(a=>a?.role===o.z7.SYSTEM).map(a=>v(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(x).filter(Boolean),k=v(i?.content)||"Continue.",l=u(K(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(35024),g=c(93943),h=c(37981),i=c(29463),j=c(57247),k=c(72239),l=c(41004),m=c(92306),n=c(80662);let o=/(^|[^\\])(\\\\)*\\[pP]\{/;function p(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)&&o.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 q=["server_is_overloaded","service_unavailable_error"],r=["selected model is at capacity","model_at_capacity"],s=["event: response.output_text.delta","event: response.function_call_arguments.delta",'"type":"response.output_text.delta"','"type":"response.function_call_arguments.delta"'],t="Selected model is at capacity. Please try a different model.";function u(a){let b=String(a||"").replace(/\([^()]+\)\s*$/,"");return(0,j.SM)("cx").some(a=>a.id===b&&!0===a.responsesLite)}let v=/^(rs|fc|resp|msg)_/,w=new Set(["image_generation","web_search","web_search_preview","file_search","computer","computer_use_preview","code_interpreter","mcp","local_shell","tool_search"]),x=new Set(["custom"]),y=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","prompt_cache_key","client_metadata","text","parallel_tool_calls"]);function z(a,b){let c=(0,k.k)("codex",a);return c?.includes(b)?b:u(a)&&("none"===b||"minimal"===b)?"low":"ultra"===b&&c?.includes("max")?"max":"max"===b||"ultra"===b?"xhigh":b}function A(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 B extends d.H{constructor(){super("codex",f.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0,c=null,d=null,e=null){let f=super.buildHeaders(a,b);u(d&&(0,j.kt)("cx",d))&&!e?.tools?.some?.(a=>a?.type==="web_search")&&(f["x-openai-internal-codex-responses-lite"]="true"),f.session_id=this._currentSessionId||a?.connectionId||"default",f.originator||(f.originator="codex_cli_rs");let g=a?.providerSpecificData?.workspaceId||a?.providerSpecificData?.chatgptAccountId||a?.providerSpecificData?.accountId;return"string"==typeof g&&g&&!f["ChatGPT-Account-ID"]&&(f["ChatGPT-Account-ID"]=g),f}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}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} | sessionId=${this._currentSessionId||"pending"}`),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={...l.cI,...this.config.retry},{attempts:e,delayMs:f}=(0,l.DR)(d[503]),g=0;for(;;){let b=await super.execute(a),c=await this._peekSseTransientError(b.response);if(!c.matched)return c.replacementBody&&(b.response=new Response(c.replacementBody,{status:b.response.status,statusText:b.response.statusText,headers:b.response.headers})),b;if(c.accountFallback)return a.log?.warn?.("RETRY",`CODEX | SSE account fallback "${c.message}"`),b.response=A(l.gx.SERVICE_UNAVAILABLE,c.message||t),b;if(g>=e)return a.log?.warn?.("RETRY",`CODEX | SSE overloaded "${c.matched}" — retries exhausted (${g}/${e})`),b.response=A(l.gx.SERVICE_UNAVAILABLE,c.message||c.matched),b;g++,a.log?.debug?.("RETRY",`CODEX | SSE "${c.matched}" retry ${g}/${e} after ${f/1e3}s`),(0,m.s)("CODEX",`SSE overloaded "${c.matched}" → retry ${g}/${e} in ${f}ms`),await new Promise(a=>setTimeout(a,f))}}async _peekSseTransientError(a){if(!a||!a.ok||!a.body)return{matched:null,message:null,accountFallback:!1,replacementBody:null};let b=a.body.getReader(),c=new TextDecoder,d=[],e="",f=null,g=!1;try{for(;e.length<262144;){let{done:a,value:h}=await b.read();if(a)break;d.push(h);let i=(e+=c.decode(h,{stream:!0})).toLowerCase(),j=r.find(a=>i.includes(a));if(j){f=j,g=!0;break}let k=q.find(a=>i.includes(a));if(k){f=k;break}if(s.some(a=>i.includes(a)))break}}catch(a){(0,m.s)("CODEX",`peek read error: ${a.message}`)}if(f){try{await b.cancel()}catch{}try{b.releaseLock()}catch{}return{matched:f,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||t}(e,f),accountFallback:g,replacementBody:null}}b.releaseLock();let h=a.body,i=null;return{matched:null,message:null,accountFallback:!1,replacementBody:new ReadableStream({start(a){for(let b of d)a.enqueue(b);i=h.getReader()},async pull(a){try{let{done:b,value:c}=await i.read();if(b)return void a.close();a.enqueue(c)}catch(b){a.error(b)}},cancel(a){try{i?.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){this._isCompact=!!b._compact,delete b._compact,this._currentSessionId=(0,n.oV)({headers:d?.rawHeaders,body:b,connectionId:d?.connectionId,workspaceId:d?.providerSpecificData?.workspaceId,scope:"codex"});let f=(0,h.me)(b.input);f&&(b.input=f);let g=(0,j.kt)("cx",b.model||a),i=!0===b._autoCodexWebSearch;delete b._autoCodexWebSearch,i&&!b.tools?.some?.(a=>a?.type==="web_search")&&(b.tools=[...Array.isArray(b.tools)?b.tools:[],{type:"web_search"}]);let k=!1;if(u(g)&&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,k=b.input.some(a=>a?.type==="additional_tools"),b.input=b.input.filter(a=>a?.type!=="additional_tools")}let l=u(g)&&!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&&v.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&v.test(a.id)&&!(b&&"developer"===a.role&&a.id.startsWith("msg_"))&&delete a.id}return!0}))}(b,l),!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=p(d.parameters,c))}return!0}if("function"!==d)return!!x.has(d)||!!d&&!a.function&&"string"!=typeof a.name&&w.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=p(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,l||k||b.instructions&&""!==b.instructions.trim()||(b.instructions=e),b.store=!1,!b.prompt_cache_key&&this._currentSessionId&&(b.prompt_cache_key=this._currentSessionId),b.model=g,l){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 o=null;for(let a of["none","minimal","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){o=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)b.reasoning.effort=z(b.model,b.reasoning.effort),l||b.reasoning.summary||(b.reasoning.summary="auto");else{let a=z(b.model,b.reasoning_effort||o||(l?"medium":"low"));b.reasoning=l?{effort:a}:{effort:a,summary:"auto"}}for(let a of(l&&(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)))y.has(a)||delete b[a];return b}}},19946:(a,b,c)=>{c.a(a,async(a,d)=>{try{let a,G,H;c.d(b,{ou:()=>S});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(74075),r=c.n(q),s=c(55511),t=c.n(s);let I=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{I=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let J="/agent.v1.AgentService/Run";function u(...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 K=(a,b)=>(0,h.Xh)(a,2,b),L=(a,b)=>(0,h.Xh)(a,2,b);function v(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 w(a){return!a||a.type===o.x4.TEXT||"string"==typeof a}function x(a){let b=v(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=K(1,d);return a.role===o.z7.ASSISTANT?L(2,L(1,L(1,e))):L(1,L(1,L(1,e)))}function y(a,b){let c=a?.get(b)?.[0]?.value;return c?Buffer.from(c).toString("utf8"):""}function z(a){return{id:Number(a?.get(1)?.[0]?.value||0),execId:y(a,15)}}function A(a,b,c,d){let e=[];return a&&e.push((0,h.Xh)(1,0,a)),e.push(K(15,b||"")),e.push((0,h.Xh)(c,2,d||new Uint8Array)),(0,h.tM)(L(2,u(...e)))}let M={2:2,3:3,4:4,5:5,7:7,8:8,9:9,16:16,20:20,23:23};function B(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)(L(3,u(...e)))}let N="1"===process.env.CURSOR_STREAM_DEBUG,O=(...a)=>{N&&console.log(...a)};function C(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function D(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function E(a,b,c,d){if(b+5>a.length)return O(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(O(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return O(`[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 O("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return r().gunzipSync(a)}catch(c){try{return r().inflateSync(a)}catch(d){try{return r().inflateRawSync(a)}catch(e){O(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),O("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(O(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}function F(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 P=(a=Number(process.env.CURSOR_EMPTY_TURN_MAX_RETRIES),Number.isFinite(a)&&a>=0?Math.floor(a):1),Q=(G=Number(process.env.CURSOR_TAIL_ONLY_THRESHOLD),Number.isFinite(G)&&G>0?Math.floor(G):80),R=(H=Number(process.env.CURSOR_EMPTY_TURN_RETRY_DELAY_MS),Number.isFinite(H)&&H>=0?Math.floor(H):400);class S 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=await (0,p.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:d},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(a,b,c,d){if(!I)throw Error("http2 module not available");return new Promise((e,f)=>{let g=new URL(a),h=I.connect(`https://${g.host}`),i=[],j={},k=!1,l=a=>(...b)=>{k||(k=!0,clearTimeout(m),h.close(),a(...b))},m=setTimeout(l(()=>{f(Error("HTTP/2 request timed out"))}),6e4);h.on("error",l(f));let n=h.request({":method":"POST",":path":g.pathname,":authority":g.host,":scheme":"https",...b});if(n.on("response",a=>{j=a}),n.on("data",a=>{i.push(a)}),n.on("end",l(()=>{e({status:j[":status"],headers:j,body:Buffer.concat(i)})})),n.on("error",l(f)),d){let a=l(()=>f(Error("Request aborted")));d.addEventListener("abort",a,{once:!0})}n.write(c),n.end()})}openAgentHttp2Stream(a,b,c){if(!I)throw Error("HTTP/2 is required for Cursor AgentService (endpoint is h2-only)");let d=new URL(a),e=I.connect(`https://${d.host}`),f=[],g=null,h=!1,i=null,j=null,k=a=>{if(!g)return;let b=g;g=null,b(a)},l=a=>{i||(i=a,h=!0,k(null))},m=()=>{try{j?.destroy()}catch{}try{e.close()}catch{}};if(e.on("error",l),(j=e.request({":method":"POST",":path":d.pathname,":authority":d.host,":scheme":"https",...b})).on("error",l),j.on("data",a=>{g?k({value:a,done:!1}):f.push(a)}),j.on("end",()=>{h=!0,k({value:void 0,done:!0})}),c){let a=()=>{l(Error("Request aborted")),m()};c.aborted?a():c.addEventListener("abort",a,{once:!0})}return{responseHeaders:new Promise((a,b)=>{let c=a=>b(a);e.once("error",c),j.once("error",c),j.once("response",b=>{e.off("error",c),j.off("error",c),a(b)})}),write(a){j&&!j.destroyed&&j.write(Buffer.from(a))},end(){try{j&&!j.destroyed&&j.end()}catch{}},close:m,async read(){if(f.length)return{value:f.shift(),done:!1};if(h){if(i)throw i;return{value:void 0,done:!0}}let a=await new Promise(a=>{g=a});if(i)throw i;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,s,w=f.sr.cursor?.agentEndpoint;if(!w)throw Error("Cursor AgentService endpoint is not configured");if(!(p?.strictProxy!==!0||!(p?.proxyPoolId||p?.enabled===!0||p?.connectionProxyEnabled===!0||(p?.url||p?.connectionProxyUrl||"").trim().length>0)||p?.vercelRelayUrl)&&1)throw Error("Cursor AgentService requires a strict proxy that this HTTP/2 transport cannot honor; refusing to open a direct connection");let E=`${w}${J}`,F=this.buildHeaders(d),G=new AbortController;e?.addEventListener&&e.addEventListener("abort",()=>G.abort(e.reason),{once:!0});let H=b.messages||[],I=H,N=b.tools||[],S=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})`),S=c.modelId)}let T=a=>{let c=this.openAgentHttp2Stream(E,F,G.signal);return c.write(function(a,b,c=[],d=null){let e=a.filter(a=>a?.role===o.z7.SYSTEM).map(a=>v(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(x).filter(Boolean),k=v(i?.content)||"Continue.",l=u(K(1,e?`${e}
119
119
 
120
120
  ${k}`:k),K(2,t().randomUUID()),L(3,new Uint8Array),(0,h.Xh)(4,0,1)),m=j.length?u(...j.map(a=>L(1,a))):null,n=u(L(1,l),...m?[L(7,m)]:[]),p=L(1,n),q=String(d||"").toLowerCase(),r="ultra"===q?"max":"minimal"===q?"low":q,s=r&&"none"!==r?L(3,u(K(1,/gpt-/i.test(b)?"reasoning":"effort"),K(2,r))):null,w=u(K(1,b),(0,h.Xh)(7,0,1),...s?[s]:[]),y=u(K(1,b),K(3,b),K(4,b)),z=(0,h.Il)(c),A=u(L(1,new Uint8Array),L(2,p),L(3,y),...z.length?[L(4,z)]:[],L(9,w));return(0,h.tM)(L(1,A))}(a,S,N,b.reasoning_effort||b.reasoning?.effort)),c};try{q=T(I)}catch(a){throw Error(`Cursor AgentService request failed: ${a.message}`)}try{s=await q.responseHeaders}catch(a){throw q.close(),Error(`Cursor AgentService request failed: ${a.message}`)}let U=Number(s[":status"]||0);if(200!==U){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 ${U}: ${a||"request failed"}`,type:"api_error"}}),{status:U||g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:E,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}}let V=`chatcmpl-msg_${Date.now()}`,W=Math.floor(Date.now()/1e3),X=C(a),Y=Buffer.alloc(0),Z=!1,$="",_=0,aa=!1,ab=async a=>{let b=()=>{(a=>{if(aa||!$)return;let b=X?D($):$.trim();b&&(aa=!0,a({type:"text",value:b}))})(a),Z=!0,aa?a({type:"done"}):a({type:"error",value:"Cursor AgentService returned an empty turn"})};try{for(;!Z;){let{done:c,value:d}=await q.read();if(c)break;Y=Buffer.concat([Y,Buffer.from(d)]),Y=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=r().gunzipSync(e)),2&a||b(e)}return c}(Y,c=>{if(Z)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=y((0,h.Y8)(c.get(1)[0].value),1);b&&(aa=!0,a({type:"text",value:b}))}if(c.has(4)){let b=y((0,h.Y8)(c.get(4)[0].value),1);if(b&&($+=b,X)){let b=D($);if(b.length>_){let c=b.slice(_);_=b.length,aa=!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(B(b,2,L(1,new Uint8Array),c)):a.has(3)&&q.write(B(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}=z(a),d=L(1,new Uint8Array);return A(b,c,10,L(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}`),Z=!0,a({type:"tool_call",value:{id:c.toolCallId||`call_${t().randomUUID()}`,name:d,arguments:JSON.stringify(c.args||{})}}),a({type:"done",finishReason:"tool_calls"})):(O(`[CURSOR AGENT] Unsupported exec request fields: ${[...b.keys()].join(",")}`),Z=!0,a({type:"error",value:"Cursor AgentService requested an unsupported IDE tool"}))}else{let c=function(a){let{id:b,execId:c}=z(a),d=[...a?.keys?.()||[]].find(a=>1!==a&&15!==a),e=M[d];return e?9===d?A(b,c,9,new Uint8Array):A(b,c,e,L(2,K(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)):(O(`[CURSOR AGENT] Unsupported exec request fields: ${[...b.keys()].join(",")}`),Z=!0,a({type:"error",value:"Cursor AgentService requested an unsupported IDE tool"}))}}})}Z||b()}finally{try{q.end()}catch{}try{q.close()}catch{}}},ac=async a=>(Z=!1,aa=!1,$="",_=0,Y=Buffer.alloc(0),await ab(a),{sawContent:aa}),ad=!1,ae=async a=>{ad=!1;let b=b=>{("text"===b.type||"thinking"===b.type||"tool_call"===b.type)&&(ad=!0),a(b)},c=0;for(;;){let a=null,d=await ac(c=>{"error"===c.type?a=c:b(c)});if(a&&H.length>=Q&&!ad&&c<P&&!G.signal.aborted){if(c++,i?.info?.("CURSOR",`empty_turn on ${H.length}-message session; retry ${c}/${P} with tail-only frame`),q=T(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)),200!==Number((await q.responseHeaders)[":status"]||0))return b(a),d;await new Promise(a=>setTimeout(a,R));continue}return a&&b(a),d}};if(!1===c){let c="",d="",e=null,f=[],h="stop";return(await ae(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:E,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}:{response:new Response(JSON.stringify({id:V,object:"chat.completion",created:W,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:E,headers:F,transformedBody:b,responseFormat:n.h.OPENAI}}let af=new TextEncoder;return{response:new Response(new ReadableStream({start(b){ae(c=>{"text"===c.type?b.enqueue(af.encode((0,m.z)({id:V,created:W,model:a,delta:{content:c.value}}))):"thinking"===c.type?b.enqueue(af.encode((0,m.z)({id:V,created:W,model:a,delta:{reasoning_content:c.value}}))):"tool_call"===c.type?b.enqueue(af.encode((0,m.z)({id:V,created:W,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(af.encode((0,m.N)({error:{message:c.value,type:"api_error"}}))),b.enqueue(af.encode(l.$U)),b.close()):"done"===c.type&&(b.enqueue(af.encode((0,m.z)({id:V,created:W,model:a,delta:{},finishReason:c.finishReason||"stop"}))),b.enqueue(af.encode(l.$U)),b.close())}).catch(a=>b.error(a))},cancel(){G.abort()}}),{headers:l.pb}),url:E,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(w):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||""}${J}`,headers:{},transformedBody:b}}let j=this.buildUrl(),k=this.buildHeaders(d),l=this.transformRequest(a,b,c,d);try{let d=i?.enabled===!0||i?.connectionProxyEnabled===!0||!!i?.vercelRelayUrl,f=I&&!d?await this.makeHttp2Request(j,k,l,e):await this.makeFetchRequest(j,k,l,e,i);if(200!==f.status){let a=f.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${f.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:f.status,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:b}}return{response:!1!==c?this.transformProtobufToSSE(f.body,a,b):this.transformProtobufToJSON(f.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(O(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){let b=E(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(O(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return F(JSON.parse(a))}}catch{}let d=(0,h.CP)(new Uint8Array(c));if(O(`[CURSOR DECODED] Frame ${p}:`,d),d.error){let a=i||m.size>0;if(O(`[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=C(b)?D(j):"",r=i||q;for(let[a,b]of(O(`[CURSOR BUFFER] Parsed ${p} frames, toolCallsMap size: ${m.size}, finalized toolCalls: ${l.length}`),m.entries()))o.has(a)||(O(`[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}}));O(`[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(O(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);i<a.length;){let c=E(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(O(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return F(JSON.parse(a))}}catch{}let l=(0,h.CP)(new Uint8Array(k));if(O(`[CURSOR DECODED SSE] Frame ${u}:`,l),l.error){let a=f.length>0||j||r.size>0;if(O(`[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}}))),C(b)&&l.thinking){let a=D(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(O(`[CURSOR BUFFER SSE] Parsed ${u} frames, toolCallsMap size: ${r.size}, toolCalls array: ${q.length}`),r.entries()))if(!s.has(a)){O(`[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})}
121
121
 
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)=>{"use strict";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=`(() => {
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
123
  const body = document.body ? document.body.innerText : '';
124
124
  const hydration = document.querySelector('[data-hatch-shell-hydration-state]');
125
125
  return {
@@ -223,10 +223,10 @@ ${b}`);return d.push("[Instruction]\nContinue the conversation above and reply a
223
223
 
224
224
  `)),b.enqueue(c.encode(f.$U)),b.close()}catch(a){b.enqueue(c.encode(`data: ${JSON.stringify({error:{message:a.message||"muse-web stream failed"}})}
225
225
 
226
- `)),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}}},20742:(a,b,c)=>{"use strict";c.d(b,{A:()=>p});var d=c(31421),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(73136),j=c(26182);let k={"playwright-core":"^1.62.1","wreq-js":"^3.2.0"};function l(){return h().join((0,j.S)(),"runtime")}function m(a){let b=String(a?.code||"");return"MODULE_NOT_FOUND"===b||"ERR_MODULE_NOT_FOUND"===b}let n=new Map;async function o(a){let b,e,g;try{return await import(a)}catch(a){if(!m(a))throw a}try{return await c(48565)((0,i.pathToFileURL)((void 0).resolve(a)).href)}catch(a){if(!m(a))throw a}let h=k[a]||"latest",j=l(),n=await (b=l(),f().mkdirSync(b,{recursive:!0}),e="win32"===process.platform?"npm.cmd":"npm",g=["install","--no-audit","--no-fund","--prefer-online",`${a}@${h}`],new Promise(a=>{let c=(0,d.spawn)(e,g,{cwd:b,stdio:["ignore","pipe","pipe"],shell:"win32"===process.platform}),f="";c.stderr?.on("data",a=>{f+=String(a)}),c.on("error",b=>a({ok:!1,stderr:String(b.message||b)})),c.on("close",b=>a({ok:0===b,stderr:f}))}));if(!n.ok){let b=(n.stderr.match(/npm ERR! ?(.+)/)||[])[1]||n.stderr.split("\n").filter(Boolean).pop()||"unknown npm error";throw Error(`${a} is missing and the on-demand install failed (${String(b).slice(0,160)}) — install it manually: cd "${j}" && npm install ${a}@${h}`)}return c(48565)((0,i.pathToFileURL)(c(36873).resolve(a)).href)}function p(a){return n.has(a)||n.set(a,o(a).finally(()=>n.delete(a))),n.get(a)}},22115:(a,b,c)=>{"use strict";c.d(b,{CO:()=>e,X7:()=>j,ZB:()=>i,jm:()=>h});var d=c(20742);let e="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",f=null;async function g(){return f||(f=(async()=>{let a=await (0,d.A)("wreq-js");if("function"!=typeof a.createSession)throw Error("wreq-js runtime is missing createSession");return a.createSession({browser:"chrome_146",os:"macos"})})().catch(a=>{throw f=null,a})),f}class h extends Error{constructor(a){super(a),this.name="GrokTlsUnavailableError"}}function i(a){return"string"==typeof a&&/just a moment|attention required|cf-mitigated/i.test(a)}async function j(a,{method:b="GET",headers:c={},body:d,timeoutMs:e=12e4,signal:f}={}){let i;try{i=await g()}catch(a){throw new h(`wreq-js unavailable (${a instanceof Error?a.message:"unknown"}) — install the optional wreq-js dependency to use Grok Web`)}let k={method:b.toUpperCase(),headers:c,redirect:"follow",timeout:e};void 0!==d&&(k.body=d),f&&(k.signal=f);let l=await i.fetch(a,k),m=await l.arrayBuffer(),n={};try{l.headers&&"function"==typeof l.headers.forEach&&l.headers.forEach((a,b)=>{n[b]=a})}catch{}return new Response(m,{status:l.status,headers:n})}},23013:(a,b,c)=>{"use strict";c.d(b,{Ay:()=>z});var d=c(74957),e=c(35024),f=c(78959),g=c(92536);let h=e.xq["perplexity-web"].baseUrl,i="2.18",j={"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"]},k={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},l=/\[\d+\]/g,m=/<grok:[^>]*>.*?<\/grok:[^>]*>/gs,n=/<grok:[^>]*\/>/g,o=/<[?]xml[^?]*[?]>/g,p=/<\/?response\b[^>]*>/gi,q=/ {2,}/g,r=/\n{3,}/g,s=new Map;function t(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 u(a,b,c,d){if(!d)return;let e=t([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(s.set(e,{backendUuid:d,ts:Date.now()}),s.size>200){let a=null,b=1/0;for(let[c,d]of s)d.ts<b&&(b=d.ts,a=c);a&&s.delete(a)}}function v(a,b=!0){let c=a;return c=(c=(c=(c=(c=c.replace(o,"")).replace(l,"")).replace(m,"")).replace(n,"")).replace(p,""),b&&(c=(c=(c=c.replace(q," ")).replace(r,"\n\n")).trim()),c}async function*w(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*x(a,b){let c="",d=null,e=0,f=new Set;for await(let g of w(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 y(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of x(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)}u(e,f,h=v(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 z extends d.H{constructor(){super("perplexity-web",e.xq["perplexity-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:l}){var m,n,o,p,q;let r,w,z,A,B,C=b?.messages;if(!C||!Array.isArray(C)||0===C.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:h,headers:{},transformedBody:b};(b?.thinking===!0||b?.reasoning_effort!=null&&"none"!==b.reasoning_effort)&&k[a]?(r="copilot",w=k[a],l?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${w}`)):j[a]?[r,w]=j[a]:(r="copilot",w=a,l?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let D=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}}(C),E=function(a){if(0===a.length)return null;let b=t(a),c=s.get(b);return c?Date.now()-c.ts>36e5?(s.delete(b),null):c.backendUuid:null}(D.history);E&&l?.info?.("PPLX-WEB",`Session continue: ${E.slice(0,12)}...`);let F=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}(D,E,b?.tools);if(!F.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:b};let G=(m=r,n=w,B="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",{query_str:F,params:{query_str:F,search_focus:"internet",mode:m,model_preference:n,sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:i,language:"en-US",timezone:B,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:E}}),H={"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":i};d.accessToken?H.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(H.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),l?.info?.("PPLX-WEB",`Query to ${a} (pref=${w}, mode=${r}), len=${F.length}`);let I={method:"POST",headers:H,body:JSON.stringify(G)};e&&(I.signal=e);try{z=await fetch(h,I)}catch(a){return l?.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:h,headers:H,transformedBody:G}}if(!z.ok){let a=z.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."),l?.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:h,headers:H,transformedBody:G}}if(!z.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:h,headers:H,transformedBody:G};let J=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,K=Math.floor(Date.now()/1e3);if(c){let b;A=new Response((o=z.body,p=D.history,q=D.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",h=null;for await(let f of x(o,e)){if(f.backendUuid&&(h=f.backendUuid),f.error){c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:f.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(f.done){d=f.answer||d;break}let e=f.delta||"";e&&(e=v(e,!1))&&c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),f.answer&&(d=f.answer)}c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(f.$U)),u(p,q,v(d),h)}catch(d){c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,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(f.$U))}finally{c.close()}}})),{status:200,headers:{...f.uB}})}else A=await y(z.body,a,J,K,D.history,D.currentMsg,e);return{response:A,url:h,headers:H,transformedBody:G}}}},25360:(a,b,c)=>{"use strict";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)}
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:()=>z});var d=c(74957),e=c(35024),f=c(78959),g=c(92536);let h=e.xq["perplexity-web"].baseUrl,i="2.18",j={"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"]},k={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},l=/\[\d+\]/g,m=/<grok:[^>]*>.*?<\/grok:[^>]*>/gs,n=/<grok:[^>]*\/>/g,o=/<[?]xml[^?]*[?]>/g,p=/<\/?response\b[^>]*>/gi,q=/ {2,}/g,r=/\n{3,}/g,s=new Map;function t(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 u(a,b,c,d){if(!d)return;let e=t([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(s.set(e,{backendUuid:d,ts:Date.now()}),s.size>200){let a=null,b=1/0;for(let[c,d]of s)d.ts<b&&(b=d.ts,a=c);a&&s.delete(a)}}function v(a,b=!0){let c=a;return c=(c=(c=(c=(c=c.replace(o,"")).replace(l,"")).replace(m,"")).replace(n,"")).replace(p,""),b&&(c=(c=(c=c.replace(q," ")).replace(r,"\n\n")).trim()),c}async function*w(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*x(a,b){let c="",d=null,e=0,f=new Set;for await(let g of w(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 y(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of x(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)}u(e,f,h=v(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 z extends d.H{constructor(){super("perplexity-web",e.xq["perplexity-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:l}){var m,n,o,p,q;let r,w,z,A,B,C=b?.messages;if(!C||!Array.isArray(C)||0===C.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:h,headers:{},transformedBody:b};(b?.thinking===!0||b?.reasoning_effort!=null&&"none"!==b.reasoning_effort)&&k[a]?(r="copilot",w=k[a],l?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${w}`)):j[a]?[r,w]=j[a]:(r="copilot",w=a,l?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let D=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}}(C),E=function(a){if(0===a.length)return null;let b=t(a),c=s.get(b);return c?Date.now()-c.ts>36e5?(s.delete(b),null):c.backendUuid:null}(D.history);E&&l?.info?.("PPLX-WEB",`Session continue: ${E.slice(0,12)}...`);let F=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}(D,E,b?.tools);if(!F.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:b};let G=(m=r,n=w,B="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",{query_str:F,params:{query_str:F,search_focus:"internet",mode:m,model_preference:n,sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:i,language:"en-US",timezone:B,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:E}}),H={"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":i};d.accessToken?H.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(H.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),l?.info?.("PPLX-WEB",`Query to ${a} (pref=${w}, mode=${r}), len=${F.length}`);let I={method:"POST",headers:H,body:JSON.stringify(G)};e&&(I.signal=e);try{z=await fetch(h,I)}catch(a){return l?.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:h,headers:H,transformedBody:G}}if(!z.ok){let a=z.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."),l?.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:h,headers:H,transformedBody:G}}if(!z.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:h,headers:H,transformedBody:G};let J=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,K=Math.floor(Date.now()/1e3);if(c){let b;A=new Response((o=z.body,p=D.history,q=D.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",h=null;for await(let f of x(o,e)){if(f.backendUuid&&(h=f.backendUuid),f.error){c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:f.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(f.done){d=f.answer||d;break}let e=f.delta||"";e&&(e=v(e,!1))&&c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),f.answer&&(d=f.answer)}c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(f.$U)),u(p,q,v(d),h)}catch(d){c.enqueue(b.encode((0,g.N)({id:J,object:"chat.completion.chunk",created:K,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(f.$U))}finally{c.close()}}})),{status:200,headers:{...f.uB}})}else A=await y(z.body,a,J,K,D.history,D.currentMsg,e);return{response:A,url:h,headers:H,transformedBody:G}}}},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
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}},26182:(a,b,c)=>{"use strict";c.d(b,{S:()=>k});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h);let j=null;function k(){if(j)return j;for(let a of[process.env.DATA_DIR,i().join(g().homedir(),".9router"),i().join(g().tmpdir(),"9router")].filter(Boolean))try{return e().mkdirSync(a,{recursive:!0}),e().accessSync(a,e().constants.W_OK),j=a,a}catch{}return j=process.cwd()}},26878:(a,b,c)=>{"use strict";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`}}},29166:(a,b,c)=>{"use strict";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=`(() => {
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(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`}}},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
230
  const msgs = [...document.querySelectorAll(${JSON.stringify("model-response, message-content")})];
231
231
  const last = msgs.length ? (msgs[msgs.length - 1].innerText || '').trim() : '';
232
232
  return {
@@ -261,14 +261,14 @@ ${e}`),j.join("\n\n")}(y),A=y.some(a=>"user"===a.role&&"string"==typeof a.conten
261
261
 
262
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
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)=>{"use strict";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}
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
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)=>{"use strict";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}}},36873:a=>{function b(a){var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b}b.keys=()=>[],b.resolve=b,b.id=36873,a.exports=b},48565:a=>{function b(a){return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b})}b.keys=()=>[],b.resolve=b,b.id=48565,a.exports=b},49059:(a,b,c)=>{"use strict";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}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)=>{"use strict";c.d(b,{hG:()=>C});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}class C extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"]),this._currentSessionId=null,this._currentReqId=null,this._currentTurnIdx=1,this._agentId=null}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){let c=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===c[a]&&(c[a]=b);c["x-grok-client-identifier"]=this.config.clientIdentifier||c["x-grok-client-identifier"]||k.rK,c["x-grok-client-version"]=this.config.clientVersion||c["x-grok-client-version"]||k.uG;let d=this._currentSessionId||a?.connectionId||e().randomUUID(),f=this._currentReqId||e().randomUUID();c["x-grok-session-id"]=d,c["x-grok-conv-id"]=d,c["x-grok-req-id"]=f,c["x-grok-turn-idx"]=String(this._currentTurnIdx||1),this._agentId&&(c["x-grok-agent-id"]=this._agentId),this._currentModel&&(c["x-grok-model-override"]=this._currentModel);let g=a?.providerSpecificData||{},h=g.email||a?.email,i=g.userId||a?.userId||a?.providerUserId;return h&&(c["x-email"]=h),i&&(c["x-userid"]=i),c}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){let f;this._currentSessionId=(f={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},(0,m.oV)({headers:d?.rawHeaders,body:f,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"})),this._currentReqId=e().randomUUID(),this._agentId=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||null;let g=(0,i.me)(b.input);g&&(b.input=g),(!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),this._currentTurnIdx=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}(this._currentSessionId,b.input,b),b.stream=!0,b.store=!1;let h=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),n=b.model||a;h&&(n=n.replace(RegExp(`-${h}$`),"")),(n=(0,j.kt)("gcli",n)||n)===(b.model||a)&&(n=(0,j.kt)("grok-cli",n)||n),b.model=n,this._currentModel=n;let o=(0,k.Au)(n);if(b.reasoning&&"object"==typeof b.reasoning?(o?b.reasoning.effort=y(b.reasoning.effort||b.reasoning_effort||h):delete b.reasoning.effort,b.reasoning.summary||(b.reasoning.summary="concise")):(b.reasoning={summary:"concise"},o&&(b.reasoning.effort=y(b.reasoning_effort||h))),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){if(this._agentId||a.credentials?.providerSpecificData?.deviceId)a.credentials?.providerSpecificData?.deviceId&&(this._agentId=a.credentials.providerSpecificData.deviceId);else try{let a=await p("grok-cli-agent");this._agentId=[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{this._agentId=e().randomUUID()}return super.execute(a)}}},51349:(a,b,c)=>{"use strict";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)=>{"use strict";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)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{getExecutor:()=>Q});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(77333),l=c(76467),m=c(32447),n=c(19932),o=c(19946),p=c(73870),q=c(63094),r=c(13120),s=c(17373),t=c(77919),u=c(49227),v=c(23013),w=c(59192),x=c(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(16046),H=c(49059),I=c(51349),J=c(85308),K=c(98665),L=c(93509),M=c(96179),N=c(83243),O=c(95089);c(74957);var P=a([o]);o=(P.then?(await P)():P)[0];let R={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,"mimo-free":new G.Yh,mmf:new G.Yh,"codebuddy-cn":new H.v,"codebuddy-intl":new I.m,trae:new J.A,zed:new K.A,windsurf:new L.Ay,"minimax-code":new N.M("minimax-code"),"minimax-code-global":new N.M("minimax-code-global"),"devin-cli":new O.c,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},S=new Map;function Q(a){return R[a]?R[a]:(S.has(a)||S.set(a,new M.L(a)),S.get(a))}d()}catch(a){d(a)}})},59192:(a,b,c)=>{"use strict";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+=`
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}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:()=>C});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}class C extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"]),this._currentSessionId=null,this._currentReqId=null,this._currentTurnIdx=1,this._agentId=null}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){let c=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===c[a]&&(c[a]=b);c["x-grok-client-identifier"]=this.config.clientIdentifier||c["x-grok-client-identifier"]||k.rK,c["x-grok-client-version"]=this.config.clientVersion||c["x-grok-client-version"]||k.uG;let d=this._currentSessionId||a?.connectionId||e().randomUUID(),f=this._currentReqId||e().randomUUID();c["x-grok-session-id"]=d,c["x-grok-conv-id"]=d,c["x-grok-req-id"]=f,c["x-grok-turn-idx"]=String(this._currentTurnIdx||1),this._agentId&&(c["x-grok-agent-id"]=this._agentId),this._currentModel&&(c["x-grok-model-override"]=this._currentModel);let g=a?.providerSpecificData||{},h=g.email||a?.email,i=g.userId||a?.userId||a?.providerUserId;return h&&(c["x-email"]=h),i&&(c["x-userid"]=i),c}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){let f;this._currentSessionId=(f={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},(0,m.oV)({headers:d?.rawHeaders,body:f,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"})),this._currentReqId=e().randomUUID(),this._agentId=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||null;let g=(0,i.me)(b.input);g&&(b.input=g),(!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),this._currentTurnIdx=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}(this._currentSessionId,b.input,b),b.stream=!0,b.store=!1;let h=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),n=b.model||a;h&&(n=n.replace(RegExp(`-${h}$`),"")),(n=(0,j.kt)("gcli",n)||n)===(b.model||a)&&(n=(0,j.kt)("grok-cli",n)||n),b.model=n,this._currentModel=n;let o=(0,k.Au)(n);if(b.reasoning&&"object"==typeof b.reasoning?(o?b.reasoning.effort=y(b.reasoning.effort||b.reasoning_effort||h):delete b.reasoning.effort,b.reasoning.summary||(b.reasoning.summary="concise")):(b.reasoning={summary:"concise"},o&&(b.reasoning.effort=y(b.reasoning_effort||h))),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){if(this._agentId||a.credentials?.providerSpecificData?.deviceId)a.credentials?.providerSpecificData?.deviceId&&(this._agentId=a.credentials.providerSpecificData.deviceId);else try{let a=await p("grok-cli-agent");this._agentId=[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{this._agentId=e().randomUUID()}return super.execute(a)}}},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:()=>Q});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(77333),l=c(76467),m=c(32447),n=c(19932),o=c(19946),p=c(73870),q=c(63094),r=c(13120),s=c(17373),t=c(77919),u=c(49227),v=c(23013),w=c(59192),x=c(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(16046),H=c(49059),I=c(51349),J=c(85308),K=c(98665),L=c(93509),M=c(96179),N=c(83243),O=c(95089);c(74957);var P=a([o]);o=(P.then?(await P)():P)[0];let R={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,"mimo-free":new G.Yh,mmf:new G.Yh,"codebuddy-cn":new H.v,"codebuddy-intl":new I.m,trae:new J.A,zed:new K.A,windsurf:new L.Ay,"minimax-code":new N.M("minimax-code"),"minimax-code-global":new N.M("minimax-code-global"),"devin-cli":new O.c,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},S=new Map;function Q(a){return R[a]?R[a]:(S.has(a)||S.set(a,new M.L(a)),S.get(a))}d()}catch(a){d(a)}})},59192:(a,b,c)=>{c.d(b,{id:()=>ao});var d=c(74957),e=c(78959),f=c(92536),g=c(73024),h=c(76760),i=c.n(h),j=c(75919);new Uint32Array(10);let k=[],l=[],m=new Uint32Array(24),n=new Uint32Array(24);{let a=1n,b=1,c=0;for(let d=0;d<24;d++){let e=c,f=(2*b+3*c)%5;b=e,c=f,k.push(2*(5*c+b)),l.push((d+1)*(d+2)/2%64);let g=0n;for(let b=0;b<7;b++)2n&(a=(a<<1n^(a>>7n)*113n)%256n)&&(g^=1n<<(1n<<BigInt(b))-1n);m[d]=Number(4294967295n&g),n[d]=Number(g>>32n&4294967295n)}}let o=/^[a-f0-9]{64}$/i,p=0;function q(){let a=Error("DeepSeek PoW computation aborted");return a.name="AbortError",a}async function r(a,b,c,d,e,f={}){return function(a,b={}){let{signal:c}=b;if(c?.aborted)return Promise.reject(q());if(p>=2)return Promise.reject(Error("DeepSeek PoW worker capacity reached (2)"));let d=function(a){if(void 0===a)return 1e4;if(!Number.isSafeInteger(a)||a<1||a>3e4)throw Error("DeepSeek PoW timeout must be an integer from 1 to 30000ms");return a}(b.timeoutMs);return p+=1,new Promise((b,e)=>{let f;try{f=new j.Worker(function(){let a=i().join(process.cwd(),"open-sse/lib/deepseek-pow-worker.mjs");if(!(0,g.existsSync)(a))throw Error(`DeepSeek PoW worker script not found at ${a}`);return a}(),{workerData:a})}catch(a){p=Math.max(0,p-1),e(a instanceof Error?a:Error(String(a)));return}let h=!1,k=(a,b)=>{h||(h=!0,clearTimeout(m),c?.removeEventListener("abort",l),p=Math.max(0,p-1),b&&f.terminate(),a())},l=()=>{k(()=>e(q()),!0)},m=setTimeout(()=>{k(()=>e(Error(`DeepSeek PoW computation exceeded ${d}ms`)),!0)},d);c?.addEventListener("abort",l,{once:!0}),f.once("message",a=>{!Number.isSafeInteger(a)||a<-1?k(()=>e(Error("DeepSeek PoW worker returned an invalid answer")),!0):k(()=>b(a),!1)}),f.once("error",a=>{k(()=>e(a),!0)}),f.once("exit",a=>{0!==a?k(()=>e(Error(`DeepSeek PoW worker exited with code ${a}`)),!1):k(()=>e(Error("DeepSeek PoW worker exited without an answer")),!1)})})}(function(a,b,c,d,e){if("DeepSeekHashV1"!==a)throw Error(`Unsupported DeepSeek PoW algorithm: ${a}`);if(!o.test(b))throw Error("DeepSeek PoW challenge must be a 64-character SHA3-256 hex digest");if("string"!=typeof c||0===c.length||c.length>1024)throw Error("DeepSeek PoW salt must contain 1-1024 characters");if(!Number.isSafeInteger(d)||d<1||d>25e4)throw Error("DeepSeek PoW difficulty must be an integer from 1 to 250000");if(!Number.isSafeInteger(e)||e<0)throw Error("DeepSeek PoW expiry must be a non-negative safe integer");return{challenge:b.toLowerCase(),prefix:`${c}_${e}_`,difficulty:d}}(a,b,c,d,e),f)}var s=c(14229),t=c(70452);let u=new((c.n(t))())({strict:!1,allErrors:!1,validateFormats:!1}),v=new WeakMap;function w(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function x(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=v.get(a);f||(f=new Map,v.set(a,f));let g=f.get(b);if(void 0===g){try{g=u.compile(e)}catch{g=null}f.set(b,g)}return!!g&&!0===g(c)}function y(a,b,c){if(!b.toolCalls)return b;let d=(0,s.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,s.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(!x(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 z(a){return"string"==typeof a&&!!a.trim()&&(!!/<\/?(?:|||\|\|?)DSML(?:|||\|\|?)\s*(?:calls|invoke|parameter)\b/i.test(a)||/<\/?(?:tool|tool_call)(?::|\s|>)/i.test(a))}function A(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let B=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function C(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 D(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let E=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function F(a){return"string"==typeof a&&a.length>0?a:null}let G="[||]",H=`${G}{2}DSML${G}{2}`,I=RegExp(`</?${H}\\s*(?:calls|invoke|parameter)\\b[^>]*>|<${H}\\s*/\\s*(?:calls|invoke|parameter)\\s*>`,"gi");function J(a,b,c){let d=[],e=RegExp(`(?:</?${H}\\s*${b}\\b([^>]*)>|<${H}\\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 K(a,b,c,d,e){let f=C(a.attrs,"name");if(!f)return null;let g=b?b.start:d,h=J(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=C(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:C(b.attrs,"content")??"",j=e?e.end:g}if(!Object.values(i).some(a=>""!==a))return null;let k=(0,s.Ub)(f,e)??f;return{start:a.start,end:b?b.end:j,name:k,args:i}}let L=/<[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)([^>]*)>/gi,M=/<\/[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)\s*>/gi,N=/<(?:(?:\|DSML\|)|(?:||DSML||))invoke\b([^>]*)>([\s\S]*?)<\/(?:(?:\|DSML\|)|(?:||DSML||))invoke\s*>/gi,O=/<(?:(?:\|DSML\|)|(?:||DSML||))parameter\b([^>]*)>([\s\S]*?)(?:<\/(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>|<(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>)/gi,P=/<(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\b[^>]*>[^]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\s*>/i,Q=/(?:<\|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 R(a){try{return JSON.parse(a)}catch{return null}}function S(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 T(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,s.x2)(c),h=(d=a,RegExp(`</?${H}\\s*(?:calls|invoke|parameter)\\b`,"i").test(d))?function(a,b){let c=[],d=[],e=RegExp(`<${H}\\s*calls\\s*>([\\s\\S]*?)(?:</${H}\\s*calls\\s*>|<${H}\\s*/\\s*calls\\s*>)`,"gi"),f=RegExp(`(?:</${H}\\s*calls\\s*>|<${H}\\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=J(j,"invoke",k);for(let d=0;d<m.length;d+=1){if(!C(m[d].attrs,"name"))continue;let e=K(m[d],m[d+1],a,k+j.length,b);e&&c.push(e),m[d+1]&&(d+=1)}}let i=J(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(!C(i[d].attrs,"name"))continue;let e=K(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,s.x2)(c),e=(0,s.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,s.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]]=R(a)??a}if(Object.keys(b).length>0)return b;let e=R(a.trim()||"{}");return e&&"object"==typeof e&&!Array.isArray(e)&&Object.assign(b,e),b}(i[3]),n=w(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(!x(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,s.LW)(a,g),toolCalls:f,recognized:!0}}(a,b,c);if(h.recognized&&g(h))return y(a,h,c);let i=function(a,b,c){let d=(0,s.x2)(c),e=[],f=[];Q.lastIndex=0;let g=null;for(;null!==(g=Q.exec(a));){let a=(0,s.Ub)(g[1],d),h=R(g[2].trim());if(!a||!h||"object"!=typeof h||Array.isArray(h))continue;let i=S(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){N.lastIndex=0;let g=null;for(;null!==(g=N.exec(a));){let a=C(g[1]||"","name"),h=a?(0,s.Ub)(a,c):null;if(!h)continue;let{args:i,found:j}=function(a){let b={},c=!1;O.lastIndex=0;let d=null;for(;null!==(d=O.exec(a));){let a=C(d[1]||"","name");if(!a)continue;let e=d[2].trim();b[a]=R(e)??e,c=!0}return{args:b,found:c}}(g[2]);if(!j&&g[2].trim())continue;let k=S(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=P.test(a)||/<(?:(?:\|tool_call_)|(?:|tool▁call▁))/.test(a);return 0===e.length?{content:a,toolCalls:null,recognized:h}:{content:(0,s.LW)(a,f),toolCalls:e,recognized:h}}(a,b,c);if(i.recognized&&g(i))return y(a,i,c);e=(f=e=a).includes("DSML")?f.replace(L,(a,b,c)=>{let d=b.toLowerCase();if("calls"===d)return"";let e=C(c,"name"),f=null!==e?` name="${e}"`:"";return"invoke"===d?`<tool${f}>`:`<parameter${f}>`}).replace(M,(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(B.lastIndex=0;null!==(c=B.exec(a));)b.push({start:c.index,end:B.lastIndex,closing:"/"===c[1],suffix:c[2]?c[2].slice(1):"",attrs:c[3]||""});return b}(a);if(0===j.length&&!i)return y(a,(0,s.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,s.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||C(b.open.attrs,"name")||C(b.open.attrs,"id")||"",d=a.slice(b.innerStart,b.innerEnd).replace(I,""),e=function(a,b,c,d){let e,f=b.trim(),g=D(f,"name"),h=D(f,"arguments")??D(f,"parameters"),i=h?null:function(a){let b={},c=!1,d=null;for(E.lastIndex=0;null!==(d=E.exec(a));){let a=d[1]||"",e=d[2],f=C(a,"name");if(!f)continue;let g=C(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,s.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,s.n)(a))}let l=k?F(k.name)??F(k.type):null,m=g?(0,s.Ub)(g,c):null,n=l?(0,s.Ub)(l,c):null,o=a?(0,s.Ub)(a,c):null,p=null,q=!1,r=(a,b)=>{!p&&a&&(p=a,q=b)};if(r(m,!1),r(n,!1),r(o,!0),r(g,!1),r(l,!1),r(a,!0),!p&&!a&&k){let a=F(k.command),b=a?(0,s.Ub)(a,c):null;b&&(p=b,q=!1)}if(!p&&i&&d&&d.size>0){let a=Object.keys(i);if(a.length>0){let b=[];for(let[c,e]of d)e.size>0&&a.every(a=>e.has(a))&&b.push(c);1===b.length&&(p=b[0],q=!1)}}if(!p)return null;if(h)e=(0,s.n)(h)??h;else if(i)e=i;else if(k)if(void 0!==k.arguments)e=k.arguments;else if(void 0!==k.params)e=k.params;else if(q)e=k;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=k;e=h}else e={};return{name:p,arguments:(0,s.r3)(e)}}(c,d,g,k);if(e){if(n){let a=(0,s.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,s.r3)(a.args)}});if(0===m.length)return{content:a,toolCalls:null};m.sort((a,b)=>a.start-b.start);let p=[],q=[];for(let a of m)p.push({id:`${b}_${p.length}`,type:"function",function:{name:a.call.name,arguments:a.call.arguments}}),q.push({start:a.start,end:a.end});let r=[...q,...o,...j.filter(a=>!q.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))],t=(0,s.LW)(a,r);return p.length>0&&(t=t.replace(/<parameter\b[^>]*>[\s\S]*?(?:<\/parameter>|$)/gi,"").replace(/<\/?(?:parameter|invoke|tool|calls|tool_calls|function_calls)\b[^>]*>/gi,"").replace(/\n{3,}/g,"\n\n").trim()),function(a,b,c){if(!b.toolCalls)return b;let d=(0,s.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,s.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(!x(c,f.function.name,h))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(h)}})}return{content:b.content,toolCalls:e}}(a,{content:t,toolCalls:p},c)}function U(a,{min:b=-Number.MAX_SAFE_INTEGER,max:c=Number.MAX_SAFE_INTEGER}={}){return Number.isSafeInteger(a)&&a>=b&&a<=c}async function V(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||!U(d.difficulty,{min:1})||!U(d.expire_at,{min:0})||"string"!=typeof d.target_path)throw Error("Invalid DeepSeek PoW challenge");return d}function W(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function X(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function Y(a,b){let c=a.replace(/FINISHED/g,"").replace(/^(SEARCH|WEB_SEARCH|SEARCHING)\s*/i,"");return X(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function Z(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 $="https://chat.deepseek.com",_=`${$}/api`,aa=`${_}/v0/chat/completion`,ab={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:$,Referer:`${$}/`,"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"},ac=new Map,ad=new Map;function ae(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function af(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 ag(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 ah(){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 ai(a,b){let c=await r(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at,{signal:b});if(c<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:c,signature:a.signature,target_path:a.target_path})).toString("base64")}async function aj(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=!1,j=b||"deepseek-web",k=W(j),l=[],m=a=>{let b=Y(a,j);if(!b)return;let c=h;!c&&k?c="thinking":!c&&X(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=Z(l,j);if(o&&(f+=`
267
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:`
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 ak(a,b,c){let d=ac.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(`${_}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...ab},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 ac.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 ae(ac),ac.set(a,{accessToken:h,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${h.length} chars)`),h}async function al(a,b){let c=await fetch(`${_}/v0/chat_session/create`,{method:"POST",headers:{...ab,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:ah()},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 am(a,b){try{await fetch(`${_}/v0/chat_session/delete`,{method:"POST",headers:{...ab,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})})}catch{}}async function an(a,b,c="/api/v0/chat/completion"){return V({accessToken:a,headers:ab,signal:b,targetPath:c})}class ao extends d.H{constructor(){super("deepseek-web",{baseUrl:$})}async testConnection(a,b){try{let c=af(a);if(!c)return!1;return!!await ak(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,p=o?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=(0,s.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=w(a.parameters),d=w(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):"",q=Array.isArray(m.messages)?m.messages:[],r=p?[{role:"system",content:p},...q]:q,t=d??{},u=af(t);if(!u)return{response:ag(400,"Missing userToken — paste it from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:aa,headers:{},transformedBody:b};let{modelType:v,thinkingEnabled:x,searchEnabled:y}=(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=t.providerSpecificData??{},C=!0===B.persistSession,D="number"==typeof B.historyWindow&&B.historyWindow>0?B.historyWindow:0;try{let b=Date.now(),d=await ak(u,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=A(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=A(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=A(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=A(b.content).trim(),c=b.tool_call_id&&e.get(b.tool_call_id)||b.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),f=!0}let g=[];return c.length&&g.push(c.join("\n\n")),d.length&&g.push(d.join("\n\n")),f&&g.push("Continue the task using the tool results above. Do NOT repeat tool calls that already succeeded; perform the next step or give the final answer."),g.join("\n\n").replace(/!\[.*?\]\(.*?\)/g,"")}(q,p):function(a,b=0){if(0===a.length)return"";let c=[],d=[],e=new Map,f="";for(let b of a){var g;let a=(Array.isArray(g=b.content)?g.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):String(g||"")).trim();if("system"===b.role)a&&c.push(a);else if("user"===b.role||"assistant"===b.role)for(let c of(a&&d.push({role:b.role,text:a}),"user"===b.role&&(f=a),Array.isArray(b.tool_calls)?b.tool_calls:[]))c?.id&&"string"==typeof c.function?.name&&e.set(c.id,c.function.name);else if("tool"===b.role&&a){let c=b.tool_call_id&&e.get(b.tool_call_id)||b.name||"tool";d.push({role:"tool",text:`(${c}) ${a}`})}}let h=[];c.length>0&&h.push(c.join("\n\n"));let i=b>0?b:20*(d.length>1);if(i>0&&d.length>1){let a=d.slice(-i).map(a=>"assistant"===a.role?`Assistant: ${a.text}`:"tool"===a.role?`Tool result ${a.text}`:`User: ${a.text}`).join("\n\n");h.push(a)}else f&&h.push(f);return h.join("\n\n").replace(/!\[.*?\]\(.*?\)/g,"")}(r,D);h?.info?.("DEEPSEEK-WEB",`model_type=${v}, thinking=${x}, search=${y}, stream=${!1!==c}, persist=${C}, window=${D}`);let l=async(a,b=k)=>{let c=await an(d,g),e=await ai(c,g),f={...ab,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":e,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:ah()},h={chat_session_id:a,parent_message_id:null,model_type:v,prompt:b,ref_file_ids:Array.isArray(m.ref_file_ids)?m.ref_file_ids:[],thinking_enabled:x,search_enabled:y,preempt:!1};return{resp:await fetch(aa,{method:"POST",headers:f,body:JSON.stringify(h),signal:g??void 0}),reqHeaders:f,requestPayload:h}},t=async()=>{if(C){let a=ad.get(u);if(a)return{sessionId:a.sessionId,reused:!0};let b=await al(d,g);return ae(ad),ad.set(u,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await al(d,g),reused:!1}};b=Date.now();let{sessionId:w,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 ${aa}`);let{resp:E,reqHeaders:F,requestPayload:G}=await l(w);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"),ad.delete(u),w=await al(d,g),ae(ad),ad.set(u,{sessionId:w,createdAt:Date.now()}),B=!1,{resp:E,reqHeaders:F,requestPayload:G}=await l(w)),!E.ok){let a=E.status,b=`DeepSeek API error (${a})`;401===a||403===a?(ac.delete(u),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&&ad.delete(u),am(d,w).catch(()=>{}),{response:ag(a,b),url:aa,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&&ac.delete(u),C&&ad.delete(u),am(d,w).catch(()=>{}),{response:ag(c,a,b.code),url:aa,headers:F,transformedBody:G}}return C||am(d,w).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:aa,headers:F,transformedBody:G}}catch{}let H=C?async()=>{}:()=>am(d,w),I="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(o){let{content:a,reasoningContent:b}=await aj(E.body,I),i=T(a,`call-${Date.now()}`,n),j=async a=>(await H(),{response:ag(502,a),url:aa,headers:F,transformedBody:G});if(function(a,b){if(z(a))return!0;if("string"!=typeof a||!a.trim())return!1;let c=(0,s.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,s.Ub)(d,(0,s.x2)(b))}(i.content,n)){h?.warn?.("DEEPSEEK-WEB","Malformed tool envelope — retrying once with nonce binding"),ad.delete(u),await am(d,w).catch(()=>{}),w=await al(d,g),C&&(ae(ad),ad.set(u,{sessionId:w,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(w,c),!E.ok)return j("DeepSeek tool-call repair request failed.");if({content:a,reasoningContent:b}=await aj(E.body,I),i=T(a,`call-${Date.now()}`,n),z(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:aa,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:aa,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=W(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=Z(m,c);b&&(s(),r({content:`
270
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)=>{"use strict";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}}},63094:(a,b,c)=>{"use strict";c.d(b,{j9:()=>M});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(41004),i=c(72239),j=c(86724),k=c(80662),l=c(59096),m=c(60210),n=c(20742);let o=null;class p extends Error{constructor(a){super(a),this.name="OpencodeTlsUnavailableError"}}async function q(){return o||(o=(async()=>{let a=await (0,n.A)("wreq-js");if("function"!=typeof a.createSession)throw Error("wreq-js runtime is missing createSession");return a.createSession({emulation:{tlsOptions:{cipherList:"TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA"}}})})().catch(a=>{throw o=null,a})),o}async function r(a,b={},{signal:c,timeoutMs:d=12e4}={}){let e;try{e=await q()}catch(a){throw new p(`wreq-js unavailable (${a instanceof Error?a.message:"unknown"}) — install the optional wreq-js dependency to reach the OpenCode free tier`)}let f={method:b.method||"GET",headers:b.headers,redirect:"follow",timeout:d};void 0!==b.body&&(f.body=b.body),c&&(f.signal=c);let g=await e.fetch(a,f),h={};return g.headers?.forEach?.((a,b)=>{h[b]=a}),new Response(g.body,{status:g.status,statusText:g.statusText,headers:h})}var s=c(74129),t=c(37981);let u="x-opencode-session",v="_opencodeSession",w=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,x=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),y=new Set(["union-alpha"]),z=0,A=0;function B(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[a[c]%62];return b}let C=(1n<<48n)-1n;function D(a,b){return(~(4096n*BigInt(a)+BigInt(b))&C).toString(16).padStart(12,"0")}let E=new Map,F=setInterval(()=>{let a=Date.now();for(let[b,c]of E)a-c.lastUsed>h.v1.sessionTtlMs&&E.delete(b)},h.v1.sessionCleanupIntervalMs);function G(a,b=""){if("string"==typeof a&&w.test(a.trim()))return a.trim();let c=`${b||"generic"}\0${a||""}`,d=E.get(c);if(d)return d.lastUsed=Date.now(),d.sessionId;let e=`ses_${D(Date.now(),1)}${B()}`;return E.size>=5e3&&E.delete(E.keys().next().value),E.set(c,{sessionId:e,lastUsed:Date.now()}),e}function H(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}F.unref&&F.unref();let I=new Map,J=setInterval(()=>{let a=Date.now();for(let[b,c]of I)a-c.lastUsed>h.v1.sessionTtlMs&&I.delete(b)},h.v1.sessionCleanupIntervalMs);function K(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function L(a){let b=K(a);return x.has(b)||(0,l.nh)(b)}J.unref&&J.unref();class M 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()===u){let a=H(c);if(a&&w.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()===u){h=H(b);break}let i=h||H(c);if(i)return G(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,k.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return G(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),l=I.get(j);if(l)return l.lastUsed=Date.now(),I.delete(j),I.set(j,l),l.sessionId;let m=function(a=Date.now()){return a!==z&&(z=a,A=0),A++,`ses_${D(a,A)}${B()}`}();return I.size>=1e3&&I.delete(I.keys().next().value),I.set(j,{sessionId:m,lastUsed:Date.now()}),m}(a,f,c,d);return{...f,[v]:g}}transformRequest(a,b,c,d){var e;if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),L(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(K(a))&&(b.tool_choice="auto");let c=(0,t.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=K(a||b.model),g=(0,i.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,t.N8)(a.call_id),a.arguments=(0,t.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,t.N8)(a.call_id),a.output=(0,t.DP)(a.output)),!0)))),(0,m.Ke)(b,!0)}else b&&"object"==typeof b&&(b?.reasoning_effort==="auto"&&delete b.reasoning_effort,(0,m.Ke)(b,!1,{claude:(e=a||b?.model,y.has(K(e)))}));return(0,j.Z)({provider:this.provider,model:a,body:b})}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b,directFetch:(a,b)=>r(a,{method:b.method,headers:b.headers,body:b.body},{signal:b.signal})})}buildUrl(a){let b=this.config.baseUrl;return L(a)?`${b}/inference/v1/responses`:y.has(K(a))?`${b}/inference/v1/messages`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0,c=""){let d,e=a?.rawHeaders||{},f={};for(let[a,b]of Object.entries(e))f[a.toLowerCase()]=b;let g=f["user-agent"]||"",h=!!(d=String(g||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(d[1],10)>=2,i=a?.[v]||this.prepareRequestCredentials({credentials:a})[v],j={"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":h?g:"opencode/latest/2.0.26/cli","x-opencode-client":f["x-opencode-client"]||"cli","x-opencode-session":i,"x-opencode-session-id":i,"x-session-affinity":i,"x-session-id":i,"x-opencode-project":f["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"};return c.endsWith("/messages")&&(j["anthropic-version"]=s.b8),j}}},70298:(a,b,c)=>{"use strict";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}
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=Y(a,c);if(!b)return;s();let d=k;!d&&l?d="thinking":!d&&X(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:aa,headers:F,transformedBody:G}}let{content:J,reasoningContent:K}=await aj(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||v,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:aa,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:ag(499,"Request cancelled"),url:aa,headers:{},transformedBody:b};return{response:ag(502,`DeepSeek error: ${a}`),url:aa,headers:{},transformedBody:b}}}}new ao},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}}},63094:(a,b,c)=>{c.d(b,{j9:()=>M});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(41004),i=c(72239),j=c(86724),k=c(80662),l=c(59096),m=c(60210),n=c(20742);let o=null;class p extends Error{constructor(a){super(a),this.name="OpencodeTlsUnavailableError"}}async function q(){return o||(o=(async()=>{let a=await (0,n.A)("wreq-js");if("function"!=typeof a.createSession)throw Error("wreq-js runtime is missing createSession");return a.createSession({emulation:{tlsOptions:{cipherList:"TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA"}}})})().catch(a=>{throw o=null,a})),o}async function r(a,b={},{signal:c,timeoutMs:d=12e4}={}){let e;try{e=await q()}catch(a){throw new p(`wreq-js unavailable (${a instanceof Error?a.message:"unknown"}) — install the optional wreq-js dependency to reach the OpenCode free tier`)}let f={method:b.method||"GET",headers:b.headers,redirect:"follow",timeout:d};void 0!==b.body&&(f.body=b.body),c&&(f.signal=c);let g=await e.fetch(a,f),h={};return g.headers?.forEach?.((a,b)=>{h[b]=a}),new Response(g.body,{status:g.status,statusText:g.statusText,headers:h})}var s=c(74129),t=c(37981);let u="x-opencode-session",v="_opencodeSession",w=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,x=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),y=new Set(["union-alpha"]),z=0,A=0;function B(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[a[c]%62];return b}let C=(1n<<48n)-1n;function D(a,b){return(~(4096n*BigInt(a)+BigInt(b))&C).toString(16).padStart(12,"0")}let E=new Map,F=setInterval(()=>{let a=Date.now();for(let[b,c]of E)a-c.lastUsed>h.v1.sessionTtlMs&&E.delete(b)},h.v1.sessionCleanupIntervalMs);function G(a,b=""){if("string"==typeof a&&w.test(a.trim()))return a.trim();let c=`${b||"generic"}\0${a||""}`,d=E.get(c);if(d)return d.lastUsed=Date.now(),d.sessionId;let e=`ses_${D(Date.now(),1)}${B()}`;return E.size>=5e3&&E.delete(E.keys().next().value),E.set(c,{sessionId:e,lastUsed:Date.now()}),e}function H(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}F.unref&&F.unref();let I=new Map,J=setInterval(()=>{let a=Date.now();for(let[b,c]of I)a-c.lastUsed>h.v1.sessionTtlMs&&I.delete(b)},h.v1.sessionCleanupIntervalMs);function K(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function L(a){let b=K(a);return x.has(b)||(0,l.nh)(b)}J.unref&&J.unref();class M 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()===u){let a=H(c);if(a&&w.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()===u){h=H(b);break}let i=h||H(c);if(i)return G(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,k.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return G(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),l=I.get(j);if(l)return l.lastUsed=Date.now(),I.delete(j),I.set(j,l),l.sessionId;let m=function(a=Date.now()){return a!==z&&(z=a,A=0),A++,`ses_${D(a,A)}${B()}`}();return I.size>=1e3&&I.delete(I.keys().next().value),I.set(j,{sessionId:m,lastUsed:Date.now()}),m}(a,f,c,d);return{...f,[v]:g}}transformRequest(a,b,c,d){var e;if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),L(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(K(a))&&(b.tool_choice="auto");let c=(0,t.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=K(a||b.model),g=(0,i.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,t.N8)(a.call_id),a.arguments=(0,t.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,t.N8)(a.call_id),a.output=(0,t.DP)(a.output)),!0)))),(0,m.Ke)(b,!0)}else b&&"object"==typeof b&&(b?.reasoning_effort==="auto"&&delete b.reasoning_effort,(0,m.Ke)(b,!1,{claude:(e=a||b?.model,y.has(K(e)))}));return(0,j.Z)({provider:this.provider,model:a,body:b})}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b,directFetch:(a,b)=>r(a,{method:b.method,headers:b.headers,body:b.body},{signal:b.signal})})}buildUrl(a){let b=this.config.baseUrl;return L(a)?`${b}/inference/v1/responses`:y.has(K(a))?`${b}/inference/v1/messages`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0,c=""){let d,e=a?.rawHeaders||{},f={};for(let[a,b]of Object.entries(e))f[a.toLowerCase()]=b;let g=f["user-agent"]||"",h=!!(d=String(g||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(d[1],10)>=2,i=a?.[v]||this.prepareRequestCredentials({credentials:a})[v],j={"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":h?g:"opencode/latest/2.0.26/cli","x-opencode-client":f["x-opencode-client"]||"cli","x-opencode-session":i,"x-opencode-session-id":i,"x-session-affinity":i,"x-session-id":i,"x-opencode-project":f["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"};return c.endsWith("/messages")&&(j["anthropic-version"]=s.b8),j}}},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
272
  `;return`${b}data: ${a.data}
273
273
 
274
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)}
@@ -279,7 +279,7 @@ ${c.join("\n")}`);continue}if("tool"===f.role){let c=f.tool_call_id&&b.get(f.too
279
279
 
280
280
  ${i}
281
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(()=>{})}}}},73483:(a,b,c)=>{"use strict";c.d(b,{Gh:()=>k,IF:()=>o,O9:()=>g,OF:()=>n,WL:()=>h,_6:()=>j,_L:()=>m,f5:()=>l,lm:()=>f});var d=c(14170);let e="1"===process.env.LOG_USAGE_VERBOSE,f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function g(a){if(!a||"object"!=typeof a)return a;let b={...a};return void 0!==b.input_tokens&&(b.input_tokens+=2e3),void 0!==b.prompt_tokens&&(b.prompt_tokens+=2e3),void 0!==b.total_tokens?b.total_tokens+=2e3:void 0!==b.prompt_tokens&&void 0!==b.completion_tokens&&(b.total_tokens=b.prompt_tokens+b.completion_tokens),b}function h(a,b){if(!a||"object"!=typeof a)return a;let c={[d.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[d.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[d.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},e=c[b];b===d.h.GEMINI_CLI||b===d.h.ANTIGRAVITY?e=c[d.h.GEMINI]:b===d.h.OPENAI_RESPONSE?e=c[d.h.OPENAI_RESPONSES]:e||(e=c.default);let f={};for(let b of e)void 0!==a[b]&&(f[b]=a[b]);return f}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),a?.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details&&(b.prompt_tokens_details=a.prompt_tokens_details),a?.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(b.completion_tokens_details=a.completion_tokens_details),0===Object.keys(b).length)?null:b}function j(a){let b;if(!a||"object"!=typeof a||Array.isArray(a))return null;let c=a=>Number.isFinite(Number(a))?Number(a):0,d=c(a.completion_tokens??a.output_tokens),e=c(a.reasoning_tokens),f=c(a.cache_creation_input_tokens??a.prompt_tokens_details?.cache_creation_tokens),g=c(a.prompt_tokens??a.input_tokens);void 0===a.cached_tokens&&(void 0!==a.cache_read_input_tokens||void 0!==a.cache_creation_input_tokens)?g=g+(b=c(a.cache_read_input_tokens))+f:b=c(a.cached_tokens??a.prompt_tokens_details?.cached_tokens);let h={prompt_tokens:g,completion_tokens:d,total_tokens:g+d,cached_tokens:b,cache_creation_input_tokens:f};return e>0&&(h.reasoning_tokens=e),h}function k(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function l(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage&&"object"==typeof a.message.usage){let b=a.message.usage;return i({prompt_tokens:b.input_tokens||0,completion_tokens:b.output_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage)return i({prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens});if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage,c=b.input_tokens_details?.cached_tokens;return i({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:c,reasoning_tokens:b.output_tokens_details?.reasoning_tokens,prompt_tokens_details:c?{cached_tokens:c}:void 0})}if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return i({prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens||a.usage.prompt_cache_hit_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,prompt_tokens_details:a.usage.prompt_tokens_details,completion_tokens_details:a.usage.completion_tokens_details});let b=a.usageMetadata||a.response?.usageMetadata;return b&&"object"==typeof b?i({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount}):!0===a.done&&"number"==typeof a.prompt_eval_count?i({prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0),cached_tokens:a.prompt_eval_cached_count||0}):null}function m(a,b){if(!a)return b||null;if(!b)return a;let c={...a};for(let[a,d]of Object.entries(b))"number"==typeof d&&Number.isFinite(d)?c[a]=Math.max("number"==typeof c[a]?c[a]:0,d):d&&"object"==typeof d&&(c[a]=d);return c}function n(a,b,c=d.h.OPENAI){var e,f;return e=function(a){if(!a||"object"!=typeof a)return 0;try{let b=JSON.stringify(a).length;return Math.ceil(b/4)}catch(a){return 0}}(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===d.h.CLAUDE?g({input_tokens:e,output_tokens:f,estimated:!0}):g({prompt_tokens:e,completion_tokens:f,total_tokens:e+f,estimated:!0})}function o(a,b,c=null,d=null,g=null){if(!b||"object"!=typeof b||!e)return;let h=a?.toUpperCase()||"UNKNOWN",i=b?.prompt_tokens||b?.input_tokens||0,j=b?.completion_tokens||b?.output_tokens||0,k=d?d.slice(0,8)+"...":"unknown",l=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${f.green}[USAGE] ${h} | in=${i} | out=${j} | account=${k}${f.reset}`;b.estimated&&(l+=` ${f.yellow}(estimated)${f.reset}`);let m=b.cache_read_input_tokens||b.cached_tokens||b.prompt_tokens_details?.cached_tokens;m&&(l+=` | cache_read=${m}`);let n=b.cache_creation_input_tokens;n&&(l+=` | cache_create=${n}`);let p=b.reasoning_tokens;p&&(l+=` | reasoning=${p}`),console.log(l)}},73870:(a,b,c)=>{"use strict";c.d(b,{w:()=>l});var d=c(74957),e=c(35024),f=c(57247),g=c(8521),h=c(39609);let i=new Map;function j(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 k(a){if(i.has(a))return i.get(a);let b=await fetch(`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&&i.set(a,e),e}class l 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=j(d?.apiKey),i=!!e||!!h||!!d?.accessToken,k=i?null:d?.apiKey,l=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!l)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/${l}/locations/global/endpoints/openapi/chat/completions`;return k?`${a}?key=${k}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!l)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/${l}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=l?`https://aiplatform.googleapis.com/v1/projects/${l}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),k&&(o+=b?`&key=${k}`:`?key=${k}`),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:i=null}){let l=(0,g.Sc)(d?.apiKey),m=j(d?.apiKey);if(l){let a=await (0,g.pb)(l,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(m){let a=await (0,g.I9)(m.refresh_token,m.client_id,m.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&&!l&&!m&&!d?.providerSpecificData?.projectId){let a=await k(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 n=this.buildUrl(a,c,0,d),o=this.buildHeaders(d,c),p=this.transformRequest(a,b,c,d);return{response:await (0,h.proxyAwareFetch)(n,{method:"POST",headers:o,body:JSON.stringify(p),signal:e},i),url:n,headers:o,transformedBody:p}}}},76467:(a,b,c)=>{"use strict";c.d(b,{B:()=>N});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);let n=l.bJ.maxMessageBytes,o=l.bJ.maxHeadersBytes,p=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),q=new TextEncoder,r=new TextDecoder,s=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."}),t=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\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,u=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,v=/^(?:(?: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,w=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,x=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,y=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,z=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\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,A=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,B=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function C(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function D(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}function E(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function F(a,b,c,d){let e,f;if(b?.aborted)throw E(b.reason);let g=new Promise((a,b)=>{e=setTimeout(()=>b(Error(d)),c)}),h=new Promise((a,c)=>{f=()=>c(E(b.reason)),b?.addEventListener("abort",f,{once:!0})});try{return await Promise.race([a.read(),g,h])}finally{clearTimeout(e),b?.removeEventListener?.("abort",f)}}async function G(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 F(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 r.decode(D(f,g))}function H(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 I=new Set(["model_context_window_exceeded","max_tokens"]);function J(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 K(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=J(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 L(a){return["...","…"].includes(String(a||"").trim())}function M(a,b,c){return q.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
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(()=>{})}}}},73483:(a,b,c)=>{c.d(b,{Gh:()=>k,IF:()=>o,O9:()=>g,OF:()=>n,WL:()=>h,_6:()=>j,_L:()=>m,f5:()=>l,lm:()=>f});var d=c(14170);let e="1"===process.env.LOG_USAGE_VERBOSE,f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function g(a){if(!a||"object"!=typeof a)return a;let b={...a};return void 0!==b.input_tokens&&(b.input_tokens+=2e3),void 0!==b.prompt_tokens&&(b.prompt_tokens+=2e3),void 0!==b.total_tokens?b.total_tokens+=2e3:void 0!==b.prompt_tokens&&void 0!==b.completion_tokens&&(b.total_tokens=b.prompt_tokens+b.completion_tokens),b}function h(a,b){if(!a||"object"!=typeof a)return a;let c={[d.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[d.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[d.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},e=c[b];b===d.h.GEMINI_CLI||b===d.h.ANTIGRAVITY?e=c[d.h.GEMINI]:b===d.h.OPENAI_RESPONSE?e=c[d.h.OPENAI_RESPONSES]:e||(e=c.default);let f={};for(let b of e)void 0!==a[b]&&(f[b]=a[b]);return f}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),a?.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details&&(b.prompt_tokens_details=a.prompt_tokens_details),a?.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(b.completion_tokens_details=a.completion_tokens_details),0===Object.keys(b).length)?null:b}function j(a){let b;if(!a||"object"!=typeof a||Array.isArray(a))return null;let c=a=>Number.isFinite(Number(a))?Number(a):0,d=c(a.completion_tokens??a.output_tokens),e=c(a.reasoning_tokens),f=c(a.cache_creation_input_tokens??a.prompt_tokens_details?.cache_creation_tokens),g=c(a.prompt_tokens??a.input_tokens);void 0===a.cached_tokens&&(void 0!==a.cache_read_input_tokens||void 0!==a.cache_creation_input_tokens)?g=g+(b=c(a.cache_read_input_tokens))+f:b=c(a.cached_tokens??a.prompt_tokens_details?.cached_tokens);let h={prompt_tokens:g,completion_tokens:d,total_tokens:g+d,cached_tokens:b,cache_creation_input_tokens:f};return e>0&&(h.reasoning_tokens=e),h}function k(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function l(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage&&"object"==typeof a.message.usage){let b=a.message.usage;return i({prompt_tokens:b.input_tokens||0,completion_tokens:b.output_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage)return i({prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens});if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage,c=b.input_tokens_details?.cached_tokens;return i({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:c,reasoning_tokens:b.output_tokens_details?.reasoning_tokens,prompt_tokens_details:c?{cached_tokens:c}:void 0})}if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return i({prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens||a.usage.prompt_cache_hit_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,prompt_tokens_details:a.usage.prompt_tokens_details,completion_tokens_details:a.usage.completion_tokens_details});let b=a.usageMetadata||a.response?.usageMetadata;return b&&"object"==typeof b?i({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount}):!0===a.done&&"number"==typeof a.prompt_eval_count?i({prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0),cached_tokens:a.prompt_eval_cached_count||0}):null}function m(a,b){if(!a)return b||null;if(!b)return a;let c={...a};for(let[a,d]of Object.entries(b))"number"==typeof d&&Number.isFinite(d)?c[a]=Math.max("number"==typeof c[a]?c[a]:0,d):d&&"object"==typeof d&&(c[a]=d);return c}function n(a,b,c=d.h.OPENAI){var e,f;return e=function(a){if(!a||"object"!=typeof a)return 0;try{let b=JSON.stringify(a).length;return Math.ceil(b/4)}catch(a){return 0}}(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===d.h.CLAUDE?g({input_tokens:e,output_tokens:f,estimated:!0}):g({prompt_tokens:e,completion_tokens:f,total_tokens:e+f,estimated:!0})}function o(a,b,c=null,d=null,g=null){if(!b||"object"!=typeof b||!e)return;let h=a?.toUpperCase()||"UNKNOWN",i=b?.prompt_tokens||b?.input_tokens||0,j=b?.completion_tokens||b?.output_tokens||0,k=d?d.slice(0,8)+"...":"unknown",l=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${f.green}[USAGE] ${h} | in=${i} | out=${j} | account=${k}${f.reset}`;b.estimated&&(l+=` ${f.yellow}(estimated)${f.reset}`);let m=b.cache_read_input_tokens||b.cached_tokens||b.prompt_tokens_details?.cached_tokens;m&&(l+=` | cache_read=${m}`);let n=b.cache_creation_input_tokens;n&&(l+=` | cache_create=${n}`);let p=b.reasoning_tokens;p&&(l+=` | reasoning=${p}`),console.log(l)}},73870:(a,b,c)=>{c.d(b,{w:()=>l});var d=c(74957),e=c(35024),f=c(57247),g=c(8521),h=c(39609);let i=new Map;function j(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 k(a){if(i.has(a))return i.get(a);let b=await fetch(`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&&i.set(a,e),e}class l 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=j(d?.apiKey),i=!!e||!!h||!!d?.accessToken,k=i?null:d?.apiKey,l=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!l)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/${l}/locations/global/endpoints/openapi/chat/completions`;return k?`${a}?key=${k}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!l)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/${l}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=l?`https://aiplatform.googleapis.com/v1/projects/${l}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),k&&(o+=b?`&key=${k}`:`?key=${k}`),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:i=null}){let l=(0,g.Sc)(d?.apiKey),m=j(d?.apiKey);if(l){let a=await (0,g.pb)(l,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(m){let a=await (0,g.I9)(m.refresh_token,m.client_id,m.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&&!l&&!m&&!d?.providerSpecificData?.projectId){let a=await k(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 n=this.buildUrl(a,c,0,d),o=this.buildHeaders(d,c),p=this.transformRequest(a,b,c,d);return{response:await (0,h.proxyAwareFetch)(n,{method:"POST",headers:o,body:JSON.stringify(p),signal:e},i),url:n,headers:o,transformedBody:p}}}},76467:(a,b,c)=>{c.d(b,{B:()=>N});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);let n=l.bJ.maxMessageBytes,o=l.bJ.maxHeadersBytes,p=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),q=new TextEncoder,r=new TextDecoder,s=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."}),t=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\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,u=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,v=/^(?:(?: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,w=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,x=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,y=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,z=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\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,A=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,B=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function C(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function D(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}function E(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function F(a,b,c,d){let e,f;if(b?.aborted)throw E(b.reason);let g=new Promise((a,b)=>{e=setTimeout(()=>b(Error(d)),c)}),h=new Promise((a,c)=>{f=()=>c(E(b.reason)),b?.addEventListener("abort",f,{once:!0})});try{return await Promise.race([a.read(),g,h])}finally{clearTimeout(e),b?.removeEventListener?.("abort",f)}}async function G(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 F(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 r.decode(D(f,g))}function H(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 I=new Set(["model_context_window_exceeded","max_tokens"]);function J(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 K(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=J(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 L(a){return["...","…"].includes(String(a||"").trim())}function M(a,b,c){return q.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
283
283
 
284
284
  data: [DONE]
285
285
 
@@ -287,7 +287,7 @@ data: [DONE]
287
287
 
288
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 G(h?.response,c.signal,Math.min(c.maxBytes,4096),c.stallTimeoutMs)}catch(a){if("AbortError"===a.name)throw a}return M("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):M("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 M(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 F(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 r.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(L(j.content)||!j.content.trim()&&L(j.reasoning))return{kind:"ellipsis",diagnostics:k};if(a=String(j.content||"").trim().replaceAll("’","'"),u.test(a)||!(v.test(a)&&w.test(a)||x.test(a)&&y.test(a))&&a.length>0&&a.length<=800&&t.test(a)&&!z.test(a)&&!A.test(a)&&!B.test(a))return{kind:"short_final",diagnostics:k}}return{kind:"complete",bytes:D(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},r=(a={})=>({terminal_provenance:l.terminalProvenance||"clean_eventstream_eof",transport_state:l.transportState,stop_reason:l.stopReason,stop_disposition:J(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)=>q.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}:{}})}
289
289
 
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=r({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(M(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+=q.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=q.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=p.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+=q.encode(b).byteLength+q.encode(c).byteLength+32,v();w(d,a.input)}}else if("messageStopEvent"===d){l.explicitStop=!0;let b=H(a.payload?.stopReason??a.payload?.stop_reason)||(l.sawToolUse?"tool_use":"end_turn"),c=K(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=H(b?.stopReason??b?.stop_reason);if(c){l.explicitStop=!0;let a=K(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||n))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>n||e>o||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=r({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(M("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(q.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=J(l.stopReason,l.sawToolUse),d="terminal_incomplete"===b&&I.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=J(l.stopReason,l.hasToolCalls),f="terminal_incomplete"===e&&I.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(q.encode(i.$U)),l.finished=!0,c.onTerminalState?.(r({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)=>{"use strict";c.d(b,{DH:()=>V});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})();function e(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")}var f=c(94755),g=c(55511),h=c(74957),i=c(35024),j=c(39609),k=c(78959),l=c(41004),m=c(69704),n=c(53225),o=c(19804),p=c(29463),q=c(30015);let r=["error","data","body","message","cause","result","payload"];function s(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function t(a){return"number"==typeof a&&Number.isFinite(a)?a:"string"==typeof a&&/^-?\d+(?:\.\d+)?$/.test(a.trim())?Number(a.trim()):void 0}function u(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function v(a){return!0===a||!1===a?a:"true"===a||"false"!==a&&void 0}function w(a){if("string"!=typeof a)return;let b=a.trim();if(b&&("{"===b[0]||"["===b[0]))try{let a=JSON.parse(b);return s(a)||Array.isArray(a)?a:void 0}catch{return}}function x(a,{fromStatus:b=!1}={}){let c=t(a?.retryAfterSeconds)??t(a?.waitTime),d=void 0===c?3e4:1e3*c;return b&&(d=Math.max(d,3e4)),Math.min(6e4,Math.max(15e3,d))}function y(a){let b=Number(a);return Number.isFinite(b)?b:null}var z=c(76924);let A=/^image\//i,B=/data:[^;]+;base64,[A-Za-z0-9+/=\s]+/g;function C(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 D(a){return"string"==typeof a&&a?Math.floor(3*a.replace(/\s/g,"").length/4):0}function E({name:a,mime:b,bytes:c,reason:d}){let e=c?`, ${c} bytes`:"";return`[file omitted: ${a||b||"attachment"}${e} — ${d}]`}async function F({buffer:a,mediaType:b,credentials:c,proxyOptions:d,signal:e}){let g=(0,f.A)(),h=`${(0,m.e9)(c)}/algo${m.o8}?request_id=${g}`,{boundary:i,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.${C(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=r({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(M(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+=q.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=q.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=p.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+=q.encode(b).byteLength+q.encode(c).byteLength+32,v();w(d,a.input)}}else if("messageStopEvent"===d){l.explicitStop=!0;let b=H(a.payload?.stopReason??a.payload?.stop_reason)||(l.sawToolUse?"tool_use":"end_turn"),c=K(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=H(b?.stopReason??b?.stop_reason);if(c){l.explicitStop=!0;let a=K(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||n))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>n||e>o||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=r({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(M("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(q.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=J(l.stopReason,l.sawToolUse),d="terminal_incomplete"===b&&I.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=J(l.stopReason,l.hasToolCalls),f="terminal_incomplete"===e&&I.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(q.encode(i.$U)),l.finished=!0,c.onTerminalState?.(r({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:()=>V});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})();function e(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")}var f=c(94755),g=c(55511),h=c(74957),i=c(35024),j=c(39609),k=c(78959),l=c(41004),m=c(69704),n=c(53225),o=c(19804),p=c(29463),q=c(30015);let r=["error","data","body","message","cause","result","payload"];function s(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function t(a){return"number"==typeof a&&Number.isFinite(a)?a:"string"==typeof a&&/^-?\d+(?:\.\d+)?$/.test(a.trim())?Number(a.trim()):void 0}function u(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function v(a){return!0===a||!1===a?a:"true"===a||"false"!==a&&void 0}function w(a){if("string"!=typeof a)return;let b=a.trim();if(b&&("{"===b[0]||"["===b[0]))try{let a=JSON.parse(b);return s(a)||Array.isArray(a)?a:void 0}catch{return}}function x(a,{fromStatus:b=!1}={}){let c=t(a?.retryAfterSeconds)??t(a?.waitTime),d=void 0===c?3e4:1e3*c;return b&&(d=Math.max(d,3e4)),Math.min(6e4,Math.max(15e3,d))}function y(a){let b=Number(a);return Number.isFinite(b)?b:null}var z=c(76924);let A=/^image\//i,B=/data:[^;]+;base64,[A-Za-z0-9+/=\s]+/g;function C(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 D(a){return"string"==typeof a&&a?Math.floor(3*a.replace(/\s/g,"").length/4):0}function E({name:a,mime:b,bytes:c,reason:d}){let e=c?`, ${c} bytes`:"";return`[file omitted: ${a||b||"attachment"}${e} — ${d}]`}async function F({buffer:a,mediaType:b,credentials:c,proxyOptions:d,signal:e}){let g=(0,f.A)(),h=`${(0,m.e9)(c)}/algo${m.o8}?request_id=${g}`,{boundary:i,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.${C(d)}`,g=Buffer.from(`--${e}\r
291
291
  Content-Disposition: form-data; name="${b}"; filename="${f}"\r
292
292
  Content-Type: ${d||"application/octet-stream"}\r
293
293
  \r
@@ -302,17 +302,17 @@ Content-Type: ${d||"application/octet-stream"}\r
302
302
  `)),c.enqueue(i.encode(k.$U)),j=!0;return}let a=h||`upstream status ${g}`,e=JSON.stringify({id:`qoder-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{content:`
303
303
  [qoder error ${g}: ${Q(a,200)}]`},finish_reason:"stop"}]});c.enqueue(i.encode(`data: ${e}
304
304
 
305
- `)),c.enqueue(i.encode(k.$U)),j=!0;return}h&&(m.handleInner(h,c),n())};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),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(o(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(o(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),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{m.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 V extends h.H{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,m.e9)(a,this.region)}/algo${m.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:g,proxyOptions:h=null}){let i,k,o,p,y=d?.apiKey||d?.accessToken;if((0,n.zh)(y))try{d=await (0,n._M)(d,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(d),headers:{},transformedBody:b}}let z=this.buildUrl(d),A=d?.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(!d?.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:i,payload:k}=await R({model:a,body:b,credentials:d,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=e(Buffer.from(JSON.stringify(k),"utf8")),C=Buffer.from(B,"latin1");try{o=(0,q.dE)(C,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}k.model_config&&k.model_config.source;let D=`${this.provider}/${i}`,E=async a=>{let c,g,k=Buffer.from(JSON.stringify(a),"utf8"),m=Buffer.from(e(k),"latin1");try{c=(0,q.dE)(m,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.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 n={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":i,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c},o=this.config?.timeoutMs||l.pH,p=new AbortController,r=setTimeout(()=>p.abort(Error("fetch connect timeout")),o),s=f?AbortSignal.any([f,p.signal]):p.signal;try{g=await (0,j.proxyAwareFetch)(z,{method:"POST",headers:n,body:m,signal:s},{...h,strictProxy:!0})}catch(a){if(s.aborted)throw s.reason;throw a}finally{clearTimeout(r)}return{response:g,url:z,headers:n,transformedBody:a}},F=async(a,b,c,e,g)=>{let i=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,m.e9)(d,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,j.proxyAwareFetch)(i,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":e,"X-Session-ID":g||"",...(0,q.dE)(Buffer.alloc(0),i,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})},signal:f},h);if(!a.ok)return{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?w(a):a;if(!s(b))return null;let c=v(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:v(b.serviceAvailable),modelKey:u(b.modelKey),queueType:u(b.queueType),queueCount:t(b.queueCount),retryAfterSeconds:t(b.retryAfterSeconds),waitTime:t(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}}},G=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:6e5,H=Date.now(),I=null,J=!0,K=!1,L=k;for(;;){let a=await E(L);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 T(b,c),e=d.isError?function(a){let b="string"==typeof a?w(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(s(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),r)){let b=a[f];if(s(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=w(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(s(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=u(a.code)),void 0===d.subCode&&(d.subCode=u(a.subCode)),void 0===d.isQueued&&(d.isQueued=v(a.isQueued)),void 0===d.modelKey&&(d.modelKey=u(a.modelKey)),void 0===d.queueType&&(d.queueType=u(a.queueType)),void 0===d.queueCount&&(d.queueCount=t(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=v(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=t(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=t(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?l.gx.FORBIDDEN:Number.isInteger(d.statusVal)&&d.statusVal>=400&&d.statusVal<=599?d.statusVal:l.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 U(c,D,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}I=e;let h=Date.now()-H;if(h>=G)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(h/1e3)}s for ${D} (queueType=${I.queueType||"?"}, waitTime=${I.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${i}" is still queued after ${Math.round(h/1e3)}s (queueType=${I.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 j=x(e);if(J){let a=L.request_set_id,b=await F(e.modelKey||i,e.queueType,a,L.request_id,L.session_id);b.endpointOk?!1===b.info.isQueued?K?(J=!1,g?.info?.("QODER",`queue status claims ready but "${i}" is still refused; falling back to timed replays`)):(K=!0,g?.info?.("QODER",`model "${i}" reported ready (queueType=${b.info.queueType||"?"}); replaying`),j=0):(j=x(b.info,{fromStatus:!0}),g?.info?.("QODER",`model "${i}" still queued (queueType=${b.info.queueType||"?"}, queueCount=${b.info.queueCount??"?"}); rechecking in ${Math.round(j/1e3)}s`)):J=!1}j>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()}(j,f)}}async refreshCredentials(){return null}needsRefresh(){return!1}}},77919:(a,b,c)=>{"use strict";c.d(b,{$:()=>J});var d=c(74957),e=c(35024),f=c(78959),g=c(92536),h=c(22115);function i(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 j(a){for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||""))return i(a[b]);return""}function k(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 l(a){let b=a&&"object"==typeof a?a.properties:null;return b&&"object"==typeof b?b:{}}function m(a){let b=a&&"object"==typeof a?a.required:null;return Array.isArray(b)?b:[]}function n(a){return`${a.name} ${a.description||""}`.toLowerCase()}function o(a,b){let c=new Set(Object.keys(l(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function p(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(n(a))}function q(a){return/\b(ctx_|memory|memories|conversation history|session notes|project memories|context\.db)\b/.test(n(a))}function r(a){if(p(a))return!1;let b=n(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||o(a,["command","cmd","shell"])&&e}function s(a){let b=n(a);return o(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 t(a){let b=n(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||!p(a)&&o(a,["url","uri"])&&e}function u(a){let b=n(a);return o(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!p(a)&&!q(a)}function v(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function w(a){return null!=a&&""!==a}function x(a,b,c,d){let e=c.toolsByName.get(a);if(!e)return b;let f=l(e.parameters),g=m(e.parameters),h={...b};for(let a of("filePath"in f&&!w(h.filePath)&&(h.filePath=v(b.filePath,b.file_path,b.path)),"file_path"in f&&!w(h.file_path)&&(h.file_path=v(b.file_path,b.filePath,b.path)),"path"in f&&!w(h.path)&&(h.path=v(b.path,b.filePath,b.file_path)),"query"in f&&!w(h.query)&&(h.query=v(b.query,b.search,b.input)),"url"in f&&!w(h.url)&&(h.url=v(b.url,b.uri)),"uri"in f&&!w(h.uri)&&(h.uri=v(b.uri,b.url)),"input"in f&&!w(h.input)&&(h.input=v(b.input,b.query,b.command)),g)){if(w(h[a]))continue;let b=function(a,b,c){let d=a.toLowerCase(),e=v(b.command,b.cmd,b.shell,b.input),f=v(b.filePath,b.file_path,b.path,b.filename),g=v(b.query,b.search,b.input),h=v(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 y(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(l(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=String(c||"").toLowerCase(),i=0;if("bash"===b)r(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)s(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)&&((q(a)||p(a))&&(i-=180),("browsePage"===b||/https?:\/\//.test(String(h||"")))&&(t(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||u(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=x(e,b,c,a);return c.executedToolKeys.has(k(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 z(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=x(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(k(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 A=c(10079);let B=e.xq["grok-web"].baseUrl,C={"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 D(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 E(){return btoa(.5>Math.random()?`x1:TypeError: Cannot read properties of null (reading 'children["${D(5,!0)}"]')`:`x1:TypeError: Cannot read properties of undefined (reading '${D(10)}')`)}function F(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*G(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*H(a,b,c){let d="",e="",f=!1;for await(let g of G(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 I(a,b,c,d,e,f,g){let h="",i="",j=[],k=[];for await(let b of H(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=y(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?z(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 J 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}){let v,w,x=b?.messages;if(!x||!Array.isArray(x)||0===x.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:B,headers:{},transformedBody:b};let D=C[a];D||o?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:G,modelMode:J,isThinking:K}=D||C["grok-4.1-fast"],L=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(k(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:j(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:j(c),executedToolKeys:e.keys,completedToolCalls:e.summaries}}(b),M=L.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:t(a)?90:u(a)?85:s(a)?75:r(a)?70:/\b(glob|grep|search files?|file search|content search)\b/.test(n(a))?60:/\b(edit|write|patch|modify|apply)\b/.test(n(a))?50:/\b(task|agent|delegate|subagent)\b/.test(n(a))?40:q(a)?20:p(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(l(c=a.parameters)),e=m(c),f=[],d.length&&f.push(`args=${d.join(",")}`),e.length&&f.push(`required=${e.join(",")}`),f.length?` (${f.join("; ")})`:""}${a.description?`
305
+ `)),c.enqueue(i.encode(k.$U)),j=!0;return}h&&(m.handleInner(h,c),n())};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),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(o(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(o(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),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{m.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 V extends h.H{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,m.e9)(a,this.region)}/algo${m.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:g,proxyOptions:h=null}){let i,k,o,p,y=d?.apiKey||d?.accessToken;if((0,n.zh)(y))try{d=await (0,n._M)(d,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(d),headers:{},transformedBody:b}}let z=this.buildUrl(d),A=d?.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(!d?.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:i,payload:k}=await R({model:a,body:b,credentials:d,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=e(Buffer.from(JSON.stringify(k),"utf8")),C=Buffer.from(B,"latin1");try{o=(0,q.dE)(C,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}k.model_config&&k.model_config.source;let D=`${this.provider}/${i}`,E=async a=>{let c,g,k=Buffer.from(JSON.stringify(a),"utf8"),m=Buffer.from(e(k),"latin1");try{c=(0,q.dE)(m,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.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 n={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":i,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c},o=this.config?.timeoutMs||l.pH,p=new AbortController,r=setTimeout(()=>p.abort(Error("fetch connect timeout")),o),s=f?AbortSignal.any([f,p.signal]):p.signal;try{g=await (0,j.proxyAwareFetch)(z,{method:"POST",headers:n,body:m,signal:s},{...h,strictProxy:!0})}catch(a){if(s.aborted)throw s.reason;throw a}finally{clearTimeout(r)}return{response:g,url:z,headers:n,transformedBody:a}},F=async(a,b,c,e,g)=>{let i=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,m.e9)(d,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,j.proxyAwareFetch)(i,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":e,"X-Session-ID":g||"",...(0,q.dE)(Buffer.alloc(0),i,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})},signal:f},h);if(!a.ok)return{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?w(a):a;if(!s(b))return null;let c=v(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:v(b.serviceAvailable),modelKey:u(b.modelKey),queueType:u(b.queueType),queueCount:t(b.queueCount),retryAfterSeconds:t(b.retryAfterSeconds),waitTime:t(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}}},G=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:6e5,H=Date.now(),I=null,J=!0,K=!1,L=k;for(;;){let a=await E(L);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 T(b,c),e=d.isError?function(a){let b="string"==typeof a?w(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(s(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),r)){let b=a[f];if(s(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=w(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(s(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=u(a.code)),void 0===d.subCode&&(d.subCode=u(a.subCode)),void 0===d.isQueued&&(d.isQueued=v(a.isQueued)),void 0===d.modelKey&&(d.modelKey=u(a.modelKey)),void 0===d.queueType&&(d.queueType=u(a.queueType)),void 0===d.queueCount&&(d.queueCount=t(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=v(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=t(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=t(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?l.gx.FORBIDDEN:Number.isInteger(d.statusVal)&&d.statusVal>=400&&d.statusVal<=599?d.statusVal:l.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 U(c,D,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}I=e;let h=Date.now()-H;if(h>=G)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(h/1e3)}s for ${D} (queueType=${I.queueType||"?"}, waitTime=${I.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${i}" is still queued after ${Math.round(h/1e3)}s (queueType=${I.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 j=x(e);if(J){let a=L.request_set_id,b=await F(e.modelKey||i,e.queueType,a,L.request_id,L.session_id);b.endpointOk?!1===b.info.isQueued?K?(J=!1,g?.info?.("QODER",`queue status claims ready but "${i}" is still refused; falling back to timed replays`)):(K=!0,g?.info?.("QODER",`model "${i}" reported ready (queueType=${b.info.queueType||"?"}); replaying`),j=0):(j=x(b.info,{fromStatus:!0}),g?.info?.("QODER",`model "${i}" still queued (queueType=${b.info.queueType||"?"}, queueCount=${b.info.queueCount??"?"}); rechecking in ${Math.round(j/1e3)}s`)):J=!1}j>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()}(j,f)}}async refreshCredentials(){return null}needsRefresh(){return!1}}},77919:(a,b,c)=>{c.d(b,{$:()=>J});var d=c(74957),e=c(35024),f=c(78959),g=c(92536),h=c(22115);function i(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 j(a){for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||""))return i(a[b]);return""}function k(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 l(a){let b=a&&"object"==typeof a?a.properties:null;return b&&"object"==typeof b?b:{}}function m(a){let b=a&&"object"==typeof a?a.required:null;return Array.isArray(b)?b:[]}function n(a){return`${a.name} ${a.description||""}`.toLowerCase()}function o(a,b){let c=new Set(Object.keys(l(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function p(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(n(a))}function q(a){return/\b(ctx_|memory|memories|conversation history|session notes|project memories|context\.db)\b/.test(n(a))}function r(a){if(p(a))return!1;let b=n(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||o(a,["command","cmd","shell"])&&e}function s(a){let b=n(a);return o(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 t(a){let b=n(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||!p(a)&&o(a,["url","uri"])&&e}function u(a){let b=n(a);return o(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!p(a)&&!q(a)}function v(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function w(a){return null!=a&&""!==a}function x(a,b,c,d){let e=c.toolsByName.get(a);if(!e)return b;let f=l(e.parameters),g=m(e.parameters),h={...b};for(let a of("filePath"in f&&!w(h.filePath)&&(h.filePath=v(b.filePath,b.file_path,b.path)),"file_path"in f&&!w(h.file_path)&&(h.file_path=v(b.file_path,b.filePath,b.path)),"path"in f&&!w(h.path)&&(h.path=v(b.path,b.filePath,b.file_path)),"query"in f&&!w(h.query)&&(h.query=v(b.query,b.search,b.input)),"url"in f&&!w(h.url)&&(h.url=v(b.url,b.uri)),"uri"in f&&!w(h.uri)&&(h.uri=v(b.uri,b.url)),"input"in f&&!w(h.input)&&(h.input=v(b.input,b.query,b.command)),g)){if(w(h[a]))continue;let b=function(a,b,c){let d=a.toLowerCase(),e=v(b.command,b.cmd,b.shell,b.input),f=v(b.filePath,b.file_path,b.path,b.filename),g=v(b.query,b.search,b.input),h=v(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 y(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(l(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=String(c||"").toLowerCase(),i=0;if("bash"===b)r(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)s(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)&&((q(a)||p(a))&&(i-=180),("browsePage"===b||/https?:\/\//.test(String(h||"")))&&(t(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||u(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=x(e,b,c,a);return c.executedToolKeys.has(k(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 z(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=x(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(k(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 A=c(10079);let B=e.xq["grok-web"].baseUrl,C={"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 D(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 E(){return btoa(.5>Math.random()?`x1:TypeError: Cannot read properties of null (reading 'children["${D(5,!0)}"]')`:`x1:TypeError: Cannot read properties of undefined (reading '${D(10)}')`)}function F(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*G(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*H(a,b,c){let d="",e="",f=!1;for await(let g of G(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 I(a,b,c,d,e,f,g){let h="",i="",j=[],k=[];for await(let b of H(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=y(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?z(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 J 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}){let v,w,x=b?.messages;if(!x||!Array.isArray(x)||0===x.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:B,headers:{},transformedBody:b};let D=C[a];D||o?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:G,modelMode:J,isThinking:K}=D||C["grok-4.1-fast"],L=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(k(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:j(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:j(c),executedToolKeys:e.keys,completedToolCalls:e.summaries}}(b),M=L.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:t(a)?90:u(a)?85:s(a)?75:r(a)?70:/\b(glob|grep|search files?|file search|content search)\b/.test(n(a))?60:/\b(edit|write|patch|modify|apply)\b/.test(n(a))?50:/\b(task|agent|delegate|subagent)\b/.test(n(a))?40:q(a)?20:p(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(l(c=a.parameters)),e=m(c),f=[],d.length&&f.push(`args=${d.join(",")}`),e.length&&f.push(`required=${e.join(",")}`),f.length?` (${f.join("; ")})`:""}${a.description?`
306
306
  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 j=[];for(let b=0;b<a.length;b++){let c=a[b],d=String(c?.role||"user");"developer"===d&&(d="system");let e=i(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:
307
- ${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()&&j.push({role:d,text:e})}let k=-1;for(let a=j.length-1;a>=0;a--)if("user"===j[a].role){k=a;break}for(let a=0;a<j.length;a++)g.push(a===k?j[a].text:`${j[a].role}: ${j[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(x,L,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")}(x);if(!M.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:B,headers:{},transformedBody:b};let N={temporary:!0,modelName:G,modelMode:J,message:M,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}},O=F(16),P=F(8),Q={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":h.CO,"x-statsig-id":E(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${O}-${P}-00`};if(d.apiKey){let a=(0,A.lT)(d.apiKey);a&&(Q.Cookie=a)}o?.info?.("GROK-WEB",`Query to ${a} (grok=${G}, mode=${J}), len=${M.length}`);try{v=await (0,h.X7)(B,{method:"POST",headers:Q,body:JSON.stringify(N),timeoutMs:12e4,signal:e})}catch(a){if(a instanceof h.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:B,headers:Q,transformedBody:N};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:B,headers:Q,transformedBody:N}}if(!v.ok){let a=v.status,b=`Grok returned HTTP ${a}`;return(0,h.ZB)(await v.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."),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:B,headers:Q,transformedBody:N}}if(!v.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:B,headers:Q,transformedBody:N};let R=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,S=Math.floor(Date.now()/1e3);if(c){var T;let b;w=new Response((T=v.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let h="",i="",j=!1,k=[];for await(let f of H(T,K,e)){if(f.fingerprint&&(h=f.fingerprint),f.error){c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{reasoning_content:f.thinking},finish_reason:null,logprobs:null}]})));continue}if(f.toolCard&&L){let a=y(f.toolCard,f.toolCardId,L);a&&k.push(a);continue}if(f.done)break;if(f.delta)if(L?.enabled){var d;if(i+=f.delta,d=i,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){j=!0;continue}if(j)continue;let e=Math.min(12,i.length),k=i.slice(0,i.length-e);k&&c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),i=i.slice(i.length-e)}else c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:f.delta},finish_reason:null,logprobs:null}]})));f.fullMessage&&L?.enabled&&(i=f.fullMessage)}let l=(L?.enabled?z(i,L):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else i&&c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:i},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(f.$U))}catch(d){c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,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(f.$U))}finally{c.close()}}})),{status:200,headers:{...f.uB}})}else w=await I(v.body,a,R,S,K,e,L);return{response:w,url:B,headers:Q,transformedBody:N}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:i}){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 j="video"===b?1:Math.max(1,e),k=(0,A.lT)(String(f?.apiKey||""));if(!k)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<j;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":h.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":E(),Cookie:k},j="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,h.X7)(B,{method:"POST",headers:f,body:JSON.stringify(j),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,h.ZB)(n))throw Error((0,h.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 i?.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,h.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":h.CO,Referer:"https://grok.com/",Cookie:k},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,h.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":h.CO,Referer:"https://grok.com/",Cookie:k},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 i?.info?.("GROK-WEB",`${b} generation completed (${l.length} item(s))`),l}}},80479:(a,b,c)=>{"use strict";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()}},82543:(a,b,c)=>{"use strict";function d(a,b="__Secure-1PSID"){let c=a.trim();if(!c)return"";let e=function(a){if(!a.startsWith("{"))return[];try{let b=JSON.parse(a),c=b.cookies&&"object"==typeof b.cookies&&!Array.isArray(b.cookies)?b.cookies:b;return Object.entries(c).filter(([,a])=>"string"==typeof a&&a.trim().length>0).map(([a,b])=>`${a}=${String(b).trim()}`)}catch{return[]}}(c);return e.length>0?e.join("; "):c.includes("=")?c:`${b}=${c}`}function e(a){let b=d(a.trim().replace(/^cookie:\s*/i,"")),c=b.split(";").map(a=>a.trim()).find(a=>a.toLowerCase().startsWith("__secure-1psid="));return c&&0!==c.slice(c.indexOf("=")+1).trim().length?b:null}c.d(b,{L:()=>d,m:()=>e})},83243:(a,b,c)=>{"use strict";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)=>{"use strict";c.d(b,{A:()=>h});var d=c(74957),e=c(39609),f=c(35024);let g=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class h extends d.H{constructor(){super("trae",f.xq.trae)}base(){return(this.config.baseUrl||"https://core-normal.trae.ai/api/remote/v1").replace(/\/$/,"")}buildHeaders(a,b=!0){let c=a?.accessToken||"",d=a?.providerSpecificData||{};return{Authorization:`Cloud-IDE-JWT ${c}`,"Content-Type":"application/json","X-Trae-Client-Type":"web","X-Preferenced-Language":d.appLanguage||"en","x-user-region":d.userRegion||"US",Referer:"https://solo.trae.ai/","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();if("work"===b||"auto-work"===b||"solo-work"===b)return{mode:"work",strategy:"auto",modelName:""};let c=!b||"auto"===b;return{mode:"code",strategy:c?"auto":"manual",modelName:c?"":a}}commonParams(a,b,c){let d={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||"1.0.0.1229",web_id:a.webId||"",user_identity:a.userIdentity||"Free",is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||"",scope:a.scope||"marscode-us",tenant:a.tenant||"marscode",region:a.region||"US-East",aiRegion:a.aiRegion||a.region||"US-East",is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(d.biz_session_id=c),JSON.stringify(d)}async createSession(a,b,c,d,f){let{mode:g,strategy:h,modelName:i}=this.resolveMode(c),j={mode:g,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:i,agent_type:"solo_agent_remote",model_selection_strategy:h,common_params:this.commonParams(d,g)},env:"remote",auto_create_project:!1,origin:"web"},k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(j),signal:f},null),l=await k.text();if(!k.ok)throw Error(`[${k.status}] ${l}`);let m=JSON.parse(l);if(m?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(m)}`);return{sessionId:m.data.chat_session_id,messageId:m.data.message_id}}async streamEvents(a,b,c,d,f){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,i=new AbortController;f?.aborted&&i.abort();let j=setTimeout(()=>i.abort(Error("trae stream timeout")),g),k=()=>i.abort();f&&f.addEventListener("abort",k,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:i.signal},null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,g="",j=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(g+=f.decode(e,{stream:!0});(a=g.indexOf("\n"))>=0;){let b=g.slice(0,a).replace(/\r$/,"");if(g=g.slice(a+1),b.startsWith("event:"))j=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(j,a))return void await c.cancel().catch(()=>{})}else""===b&&(j=null)}}}finally{clearTimeout(j),f&&f.removeEventListener("abort",k)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=this.buildHeaders(d,!1!==c),h=d?.providerSpecificData||{},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]
307
+ ${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()&&j.push({role:d,text:e})}let k=-1;for(let a=j.length-1;a>=0;a--)if("user"===j[a].role){k=a;break}for(let a=0;a<j.length;a++)g.push(a===k?j[a].text:`${j[a].role}: ${j[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(x,L,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")}(x);if(!M.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:B,headers:{},transformedBody:b};let N={temporary:!0,modelName:G,modelMode:J,message:M,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}},O=F(16),P=F(8),Q={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":h.CO,"x-statsig-id":E(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${O}-${P}-00`};if(d.apiKey){let a=(0,A.lT)(d.apiKey);a&&(Q.Cookie=a)}o?.info?.("GROK-WEB",`Query to ${a} (grok=${G}, mode=${J}), len=${M.length}`);try{v=await (0,h.X7)(B,{method:"POST",headers:Q,body:JSON.stringify(N),timeoutMs:12e4,signal:e})}catch(a){if(a instanceof h.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:B,headers:Q,transformedBody:N};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:B,headers:Q,transformedBody:N}}if(!v.ok){let a=v.status,b=`Grok returned HTTP ${a}`;return(0,h.ZB)(await v.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."),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:B,headers:Q,transformedBody:N}}if(!v.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:B,headers:Q,transformedBody:N};let R=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,S=Math.floor(Date.now()/1e3);if(c){var T;let b;w=new Response((T=v.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let h="",i="",j=!1,k=[];for await(let f of H(T,K,e)){if(f.fingerprint&&(h=f.fingerprint),f.error){c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{reasoning_content:f.thinking},finish_reason:null,logprobs:null}]})));continue}if(f.toolCard&&L){let a=y(f.toolCard,f.toolCardId,L);a&&k.push(a);continue}if(f.done)break;if(f.delta)if(L?.enabled){var d;if(i+=f.delta,d=i,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){j=!0;continue}if(j)continue;let e=Math.min(12,i.length),k=i.slice(0,i.length-e);k&&c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),i=i.slice(i.length-e)}else c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:f.delta},finish_reason:null,logprobs:null}]})));f.fullMessage&&L?.enabled&&(i=f.fullMessage)}let l=(L?.enabled?z(i,L):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else i&&c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{content:i},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,model:a,system_fingerprint:h||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(f.$U))}catch(d){c.enqueue(b.encode((0,g.N)({id:R,object:"chat.completion.chunk",created:S,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(f.$U))}finally{c.close()}}})),{status:200,headers:{...f.uB}})}else w=await I(v.body,a,R,S,K,e,L);return{response:w,url:B,headers:Q,transformedBody:N}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:i}){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 j="video"===b?1:Math.max(1,e),k=(0,A.lT)(String(f?.apiKey||""));if(!k)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<j;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":h.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":E(),Cookie:k},j="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,h.X7)(B,{method:"POST",headers:f,body:JSON.stringify(j),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,h.ZB)(n))throw Error((0,h.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 i?.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,h.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":h.CO,Referer:"https://grok.com/",Cookie:k},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,h.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":h.CO,Referer:"https://grok.com/",Cookie:k},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 i?.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:()=>i});var d=c(96179),e=c(8521),f=c(4338);let g=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function h(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!g.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class i extends d.L{async execute(a){if((0,f.xK)(a?.credentials)){let b=await (0,f.u_)(a.credentials,a.log);a={...a,credentials:{...a.credentials,accessToken:b.accessToken}}}let b=await super.execute(a);return b?.response?{...b,response:await h(b.response)}:b}async refreshCredentials(a,b){if((0,f.xK)(a))try{return(0,f.zC)(a,"upstream 401",b),{accessToken:(await (0,f.u_)(a,b)).accessToken}}catch(a){return b?.warn?.("TOKEN",`MCODE lease refresh failed: ${a.message}`),null}return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(74957),e=c(39609),f=c(35024);let g=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class h extends d.H{constructor(){super("trae",f.xq.trae)}base(){return(this.config.baseUrl||"https://core-normal.trae.ai/api/remote/v1").replace(/\/$/,"")}buildHeaders(a,b=!0){let c=a?.accessToken||"",d=a?.providerSpecificData||{};return{Authorization:`Cloud-IDE-JWT ${c}`,"Content-Type":"application/json","X-Trae-Client-Type":"web","X-Preferenced-Language":d.appLanguage||"en","x-user-region":d.userRegion||"US",Referer:"https://solo.trae.ai/","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();if("work"===b||"auto-work"===b||"solo-work"===b)return{mode:"work",strategy:"auto",modelName:""};let c=!b||"auto"===b;return{mode:"code",strategy:c?"auto":"manual",modelName:c?"":a}}commonParams(a,b,c){let d={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||"1.0.0.1229",web_id:a.webId||"",user_identity:a.userIdentity||"Free",is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||"",scope:a.scope||"marscode-us",tenant:a.tenant||"marscode",region:a.region||"US-East",aiRegion:a.aiRegion||a.region||"US-East",is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(d.biz_session_id=c),JSON.stringify(d)}async createSession(a,b,c,d,f){let{mode:g,strategy:h,modelName:i}=this.resolveMode(c),j={mode:g,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:i,agent_type:"solo_agent_remote",model_selection_strategy:h,common_params:this.commonParams(d,g)},env:"remote",auto_create_project:!1,origin:"web"},k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(j),signal:f},null),l=await k.text();if(!k.ok)throw Error(`[${k.status}] ${l}`);let m=JSON.parse(l);if(m?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(m)}`);return{sessionId:m.data.chat_session_id,messageId:m.data.message_id}}async streamEvents(a,b,c,d,f){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,i=new AbortController;f?.aborted&&i.abort();let j=setTimeout(()=>i.abort(Error("trae stream timeout")),g),k=()=>i.abort();f&&f.addEventListener("abort",k,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:i.signal},null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,g="",j=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(g+=f.decode(e,{stream:!0});(a=g.indexOf("\n"))>=0;){let b=g.slice(0,a).replace(/\r$/,"");if(g=g.slice(a+1),b.startsWith("event:"))j=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(j,a))return void await c.cancel().catch(()=>{})}else""===b&&(j=null)}}}finally{clearTimeout(j),f&&f.removeEventListener("abort",k)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=this.buildHeaders(d,!1!==c),h=d?.providerSpecificData||{},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]
308
308
  ${a}`):"assistant"===c.role?b.push(`[Assistant]
309
309
  ${a}`):b.push(a)}return JSON.stringify([{type:"text",data:{content:b.join("\n\n")}}])}(b?.messages||[]),j=`chatcmpl-trae-${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"}});try{f=await this.createSession(g,i,a,h,e)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:g,transformedBody:b}}let m=[],n={},o=0,p=null,q=null,r=a=>{let b=a.id;if(!b)return"";b in n||m.push(b);let c=a.thought||"";c.length>=(n[b]||"").length&&(n[b]=c);let d=m.map(a=>n[a]).join(""),e=d.slice(o);return o=d.length,e};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)}
310
310
 
311
- `));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{await this.streamEvents(g,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return q=c,!0;if("token_usage"===b&&(p=c),"plan_item"===b){let b=r(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),q?d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`trae ${q.code||""}: ${q.message||""}`,type:"api_error"}}):(d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}),p&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:p.prompt_tokens||0,completion_tokens:p.completion_tokens||0,total_tokens:p.total_tokens||0}})),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:g,transformedBody:b}}try{await this.streamEvents(g,f.sessionId,f.messageId,(a,b)=>"error"===a?(q=b,!0):("token_usage"===a&&(p=b),"plan_item"===a&&r(b),"done"===a),e)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:g,transformedBody:b}}if(q)return{response:l(502,`trae ${q.code||""}: ${q.message||""}`),url:this.base(),headers:g,transformedBody:b};let s={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:m.map(a=>n[a]).join("")},finish_reason:"stop"}]};return p&&(s.usage={prompt_tokens:p.prompt_tokens||0,completion_tokens:p.completion_tokens||0,total_tokens:p.total_tokens||0}),{response:new Response(JSON.stringify(s),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:g,transformedBody:b}}async refreshCredentials(){return null}}},88331:(a,b,c)=>{"use strict";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)=>{"use strict";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)}
311
+ `));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{await this.streamEvents(g,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return q=c,!0;if("token_usage"===b&&(p=c),"plan_item"===b){let b=r(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),q?d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`trae ${q.code||""}: ${q.message||""}`,type:"api_error"}}):(d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}),p&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:p.prompt_tokens||0,completion_tokens:p.completion_tokens||0,total_tokens:p.total_tokens||0}})),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:g,transformedBody:b}}try{await this.streamEvents(g,f.sessionId,f.messageId,(a,b)=>"error"===a?(q=b,!0):("token_usage"===a&&(p=b),"plan_item"===a&&r(b),"done"===a),e)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:g,transformedBody:b}}if(q)return{response:l(502,`trae ${q.code||""}: ${q.message||""}`),url:this.base(),headers:g,transformedBody:b};let s={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:m.map(a=>n[a]).join("")},finish_reason:"stop"}]};return p&&(s.usage={prompt_tokens:p.prompt_tokens||0,completion_tokens:p.completion_tokens||0,total_tokens:p.total_tokens||0}),{response:new Response(JSON.stringify(s),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:g,transformedBody:b}}async refreshCredentials(){return null}}},88331:(a,b,c)=>{c.d(b,{Q:()=>s});var d=c(40610),e=c.n(d),f=c(77030),g=c(74957);let h="https://veoaifree.com",i=`${h}/wp-admin/admin-ajax.php`,j=new Set([202,404,409,425]);function k(a){let b=String(a).toLowerCase().replace(/^\[|\]$/g,""),c=b.startsWith("::ffff:")?b.slice(7):b;if(c.includes(".")){let[a,b]=c.split(".").map(Number);return 0===a||10===a||127===a||a>=224||172===a&&b>=16&&b<=31||192===a&&168===b||169===a&&254===b}return"::1"===c||c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe80")||c.startsWith("fe9")||c.startsWith("fea")||c.startsWith("feb")}async function l(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if((0,f.isIP)(b)){if(k(b))throw Error("artifact host is a blocked address");return}let c=await e().promises.lookup(b,{all:!0}).catch(()=>[]);if(!c.length)throw Error("artifact host could not be resolved");for(let{address:a}of c)if(k(a))throw Error("artifact host resolves to a blocked address")}async function m(a,b,c={}){let d=new AbortController,e=setTimeout(()=>d.abort(Error("veoaifree request timed out")),3e4),f=()=>d.abort(a.signal?.reason||Error("aborted"));a.signal?.aborted?f():a.signal?.addEventListener("abort",f,{once:!0});try{let e={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Referer:`${h}/`,...c.headers||{}};a.cookieHeader&&void 0===e.Cookie&&(e.Cookie=a.cookieHeader);let f=await fetch(b,{...c,headers:e,signal:d.signal});return!function(a,b){let c="function"==typeof b.headers.getSetCookie?b.headers.getSetCookie():b.headers.get("set-cookie")?[b.headers.get("set-cookie")]:[];if(!c.length)return;let d=new Map(a.cookieHeader.split(";").filter(Boolean).map(a=>{let b=a.trim().indexOf("=");return b>0?[a.trim().slice(0,b),a.trim().slice(b+1)]:null}).filter(Boolean));for(let a of c){let b=a.split(";")[0]?.trim(),c=b?.indexOf("=");c>0&&b.slice(c+1)&&d.set(b.slice(0,c).trim(),b.slice(c+1))}a.cookieHeader=[...d.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(a,f),f}finally{clearTimeout(e),a.signal?.removeEventListener("abort",f)}}async function n(a){let b=await m(a,h),c=(await b.text()).match(/nonce":"([a-f0-9]+)"/);if(!c)throw Error("failed to extract CSRF nonce from veoaifree.com (site layout changed or rate limited)");return c[1]}async function o(a,b,c){let d=new URLSearchParams({action:"veo_video_generator",nonce:b,...c});return(await m(a,i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:h},body:d.toString()})).text()}function p(a,b){let c=String(a||"").toLowerCase();return/9:16|portrait/.test(c)?`${b}_PORTRAIT`:/1:1|square/.test(c)?`${b}_SQUARE`:`${b}_LANDSCAPE`}async function q(a,b){let c=b;for(let b=0;b<=3;b++){let b=new URL(c);if("https:"!==b.protocol)throw Error("artifact URL must use HTTPS");await l(b.hostname);let d=await m(a,b.toString(),{method:"GET",redirect:"manual"});if(d.status>=300&&d.status<400){let a=d.headers.get("location");if(!a)throw Error("artifact redirect is missing a destination");c=new URL(a,b.toString()).toString();continue}if(j.has(d.status))throw Object.assign(Error("artifact not available yet"),{retryable:!0});if(!d.ok)throw Error(`artifact download failed (HTTP ${d.status})`);let e=(d.headers.get("content-type")||"").split(";")[0].trim().toLowerCase();if(!["video/mp4","application/octet-stream"].includes(e))throw Error(`artifact returned unsupported content type (${e})`);let f=Buffer.from(await d.arrayBuffer());if(f.byteLength>0x6400000)throw Error("artifact exceeds 100MB limit");if(f.length<12||"ftyp"!==f.toString("ascii",4,8))throw Error("artifact is not a valid MP4 file");return f}throw Error("artifact exceeded the redirect limit")}async function r(a,b){let c=null;for(let d=0;d<12;d++)try{return await q(a,b)}catch(a){if(!a.retryable)throw a;c=a,await new Promise(a=>setTimeout(a,5e3))}throw c||Error("artifact did not become available in time")}class s extends g.H{constructor(){super("veoaifree-web",{id:"veoaifree-web",baseUrl:h})}async execute(){return{response:new Response(JSON.stringify({error:{message:"veoaifree-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="video",size:c,credentials:d,signal:e,log:f}){if("video"!==b&&"image"!==b)throw Error("veoaifree-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let g={cookieHeader:"",signal:e},h=await n(g);if("image"===b){let b=(await o(g,h,{promptIMG:a,totalVariationsIMG:"1",aspectRatioIMG:p(c,"IMAGE_ASPECT_RATIO"),actionType:"banan-image-generator"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))throw Error(`veoaifree image generation failed: ${b.slice(0,120)}`);return b.split(",").map(a=>a.trim()).filter(Boolean).map(a=>/^https?:\/\//i.test(a)?{url:a}:{b64:a,mime:"image/png"})}let i=(await o(g,h,{prompt:a,totalVariations:"1",aspectRatio:p(c,"VIDEO_ASPECT_RATIO"),actionType:"full-video-generate"})).trim();if(!i||"0"===i||i.toLowerCase().includes("error"))throw Error(`veoaifree video submit failed: ${i.slice(0,120)}`);for(let a=0;a<30;a++){if(e?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,2e4));let b=(await o(g,h,{sceneData:i,actionType:"final-video-results"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))continue;let c=b.split(/[,\n]/).map(a=>a.trim()).find(a=>/^https?:\/\//i.test(a));if(!c)continue;let d=await r(g,c);return f?.info?.("VEOAI-FREE",`video ready after ${a+1} poll(s)`),[{b64:d.toString("base64"),mime:"video/mp4"}]}throw Error("veoaifree video generation timed out after 10 minutes")}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(74957),e=c(35024),f=c(10263),g=c(47723),h=c(78959);class i extends d.H{constructor(){super("commandcode",e.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0,c,d,e){return(0,f.$j)({apiKey:a?.apiKey||a?.accessToken,sessionId:e?.threadId,accept:b?"text/event-stream":null})}async execute(a){for(let b=0;b<=2;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await j(c.response,a.model);if(!d.ok&&b<2&&(502===d.status||503===d.status||504===d.status)){a.log?.debug?.("RETRY",`CommandCode upstream returned status ${d.status}, retrying ${b+1}/2...`),await new Promise(a=>setTimeout(a,1e3*(b+1)));continue}return c.response=d,c}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function j(a,b){var c,d;let e,f=a.body.getReader(),i=new TextDecoder,j="",k=[],l=null;try{for(;;){let{value:a,done:b}=await f.read();if(b){let a=j.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"&&(l=c)}catch{}break}k.push(a);let c=(j+=i.decode(a,{stream:!0})).split("\n");j=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){d=!0;break}try{b=JSON.parse(e)}catch{continue}if(b?.type==="error"){l=b,d=!0;break}if(b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{f.releaseLock()}catch{}return a}if(l){try{await f.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(l);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",i={model:b},j=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
312
312
 
313
- `))},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)=>{"use strict";function d(a){return`data: ${JSON.stringify(a)}
313
+ `))},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)}
314
314
 
315
- `}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)=>{"use strict";c.d(b,{Ay:()=>t});var d=c(74957),e=c(39609),f=c(35024),g=c(77598);let h="https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",i="3.14.0",j={"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 k(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 l(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 m=new TextEncoder,n=new TextDecoder;function o(a,b){return l([k(a<<3|2),k(b.length),b])}function p(a,b){return o(a,m.encode(b))}function q(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 r(a,b){let c=0;for(;c<a.length;){let d;[d,c]=q(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=q(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return n.decode(f)}else if(0===f){let b;[b,c]=q(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class s extends d.H{constructor(){super("windsurf",f.xq.windsurf||{id:"windsurf",baseUrl:h})}buildUrl(){return h}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/${i}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:h,upstreamExtraHeaders:k,proxyOptions:m=null}){let n,q=d?.accessToken||d?.apiKey||"",r=j[a]??a,s=b??{},t=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(s.messages)?s.messages:[]);0===t.length&&t.push({role:"user",content:""});let u=function(a,b,c){let d=(0,g.randomUUID)(),e=(0,g.randomUUID)(),f=[o(1,l([p(1,a),p(2,"windsurf"),p(3,i),p(4,"3.14.0"),p(5,d),p(6,"en-US")])),p(2,e),o(3,p(1,b))];for(let a of c)f.push(o(4,function(a){let b=[p(1,a.role),p(2,a.content)];return a.toolCallId&&b.push(p(3,a.toolCallId)),l(b)}(a)));return l(f)}(q,r,t),v=((n=new Uint8Array(5+u.length))[0]=0,new DataView(n.buffer).setUint32(1,u.length,!1),n.set(u,5),n),w=this.buildUrl(),x=this.buildHeaders(d);k&&Object.assign(x,k),h?.debug?.("WS",`Windsurf → ${r} (${t.length} messages)`);let y=await (0,e.proxyAwareFetch)(w,{method:"POST",headers:x,body:v,signal:f},m);return y.ok||200===y.status?{response:this.transformToSSE(y,a),url:w,headers:x,transformedBody:u}:{response:y,url:w,headers:x,transformedBody:u}}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,m=null,o=a=>f.enqueue(g.encode(a));try{let g=new Uint8Array(0),p=a.body?.getReader(),s=(a,f)=>{if(128===a){let a=n.decode(f),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);m=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]=q(a,b);let d=c>>>3,e=7&c;if(2===e){let c;[c,b]=q(a,b);let e=a.slice(b,b+c);if(b+=c,1===d){let a=r(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]=q(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=q(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=q(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=q(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=q(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=q(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:r(e,1)??"unknown windsurf error"}}else if(0===e){let c;[c,b]=q(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||(o(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
315
+ `}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:()=>t});var d=c(74957),e=c(39609),f=c(35024),g=c(77598);let h="https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",i="3.14.0",j={"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 k(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 l(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 m=new TextEncoder,n=new TextDecoder;function o(a,b){return l([k(a<<3|2),k(b.length),b])}function p(a,b){return o(a,m.encode(b))}function q(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 r(a,b){let c=0;for(;c<a.length;){let d;[d,c]=q(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=q(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return n.decode(f)}else if(0===f){let b;[b,c]=q(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class s extends d.H{constructor(){super("windsurf",f.xq.windsurf||{id:"windsurf",baseUrl:h})}buildUrl(){return h}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/${i}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:h,upstreamExtraHeaders:k,proxyOptions:m=null}){let n,q=d?.accessToken||d?.apiKey||"",r=j[a]??a,s=b??{},t=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(s.messages)?s.messages:[]);0===t.length&&t.push({role:"user",content:""});let u=function(a,b,c){let d=(0,g.randomUUID)(),e=(0,g.randomUUID)(),f=[o(1,l([p(1,a),p(2,"windsurf"),p(3,i),p(4,"3.14.0"),p(5,d),p(6,"en-US")])),p(2,e),o(3,p(1,b))];for(let a of c)f.push(o(4,function(a){let b=[p(1,a.role),p(2,a.content)];return a.toolCallId&&b.push(p(3,a.toolCallId)),l(b)}(a)));return l(f)}(q,r,t),v=((n=new Uint8Array(5+u.length))[0]=0,new DataView(n.buffer).setUint32(1,u.length,!1),n.set(u,5),n),w=this.buildUrl(),x=this.buildHeaders(d);k&&Object.assign(x,k),h?.debug?.("WS",`Windsurf → ${r} (${t.length} messages)`);let y=await (0,e.proxyAwareFetch)(w,{method:"POST",headers:x,body:v,signal:f},m);return y.ok||200===y.status?{response:this.transformToSSE(y,a),url:w,headers:x,transformedBody:u}:{response:y,url:w,headers:x,transformedBody:u}}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,m=null,o=a=>f.enqueue(g.encode(a));try{let g=new Uint8Array(0),p=a.body?.getReader(),s=(a,f)=>{if(128===a){let a=n.decode(f),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);m=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]=q(a,b);let d=c>>>3,e=7&c;if(2===e){let c;[c,b]=q(a,b);let e=a.slice(b,b+c);if(b+=c,1===d){let a=r(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]=q(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=q(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=q(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=q(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=q(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=q(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:r(e,1)??"unknown windsurf error"}}else if(0===e){let c;[c,b]=q(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||(o(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
316
316
 
317
317
  `),h=!0),o(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:g.text},finish_reason:null}]})}
318
318
 
@@ -326,7 +326,7 @@ ${a}`):b.push(a)}return JSON.stringify([{type:"text",data:{content:b.join("\n\n"
326
326
 
327
327
  `),o("data: [DONE]\n\n")}catch(b){let a=b?.message?String(b.message):String(b);o(`data: ${JSON.stringify({error:{message:`Windsurf stream error: ${a}`,type:"windsurf_error"}})}
328
328
 
329
- `),o("data: [DONE]\n\n")}f.close()}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(){return null}}let t=s},95089:(a,b,c)=>{"use strict";c.d(b,{c:()=>o});var d=c(31421),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(73024),j=c.n(i),k=c(74957);let l=`
329
+ `),o("data: [DONE]\n\n")}f.close()}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(){return null}}let t=s},95089:(a,b,c)=>{c.d(b,{c:()=>o});var d=c(31421),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(73024),j=c.n(i),k=c(74957);let l=`
330
330
  import readline from "node:readline";
331
331
  const TOOLS = JSON.parse(process.env.DEVIN_MCP_TOOLS || "[]");
332
332
  const RESULTS = JSON.parse(process.env.DEVIN_MCP_RESULTS || "{}");
@@ -374,6 +374,6 @@ ${d}`))}return b.join("\n\n")||"(empty)"}(k),p=function(a){let b=[],c=a=>{"strin
374
374
 
375
375
  `):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}})}
376
376
 
377
- `),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)=>{"use strict";c.d(b,{V:()=>g});var d=c(74957),e=c(35024),f=c(75924);class g 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){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return(this._currentModel=a,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){if(!a.refreshToken)return null;try{let c=await fetch(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})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},98625:(a,b,c)=>{"use strict";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)=>{"use strict";c.d(b,{A:()=>v});var d=c(74957),e=c(14170),f=c(82380),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)}
377
+ `),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:()=>g});var d=c(74957),e=c(35024),f=c(75924);class g 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){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return(this._currentModel=a,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){if(!a.refreshToken)return null;try{let c=await fetch(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})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.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(82380),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)}
378
378
 
379
379
  `))}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}};