9router-proxy 0.6.8 → 0.6.9

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 (450) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +11 -11
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  54. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  55. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  61. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  62. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  63. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  64. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  65. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  77. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  79. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  82. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -2
  86. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  90. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  98. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  100. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  104. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  111. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  117. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  119. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  123. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  234. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  295. package/app/.next-cli-build/server/app/callback.html +1 -1
  296. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  297. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  298. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  299. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  300. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  302. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  303. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  304. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  305. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  307. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  308. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  309. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  312. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  313. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  314. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  317. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  318. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  319. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  322. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  323. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  324. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  325. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  327. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  328. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  329. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  330. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  332. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  333. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  334. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  337. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  338. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  339. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  342. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  343. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  344. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  347. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  348. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  349. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  350. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  352. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  353. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  354. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  357. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  358. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  359. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  364. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  365. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  367. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  368. package/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  369. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  370. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  371. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  373. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  374. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  375. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  376. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  379. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  380. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  381. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  383. package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  384. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  385. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  386. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  387. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  388. package/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  389. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  390. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  391. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/index.html +1 -1
  394. package/app/.next-cli-build/server/app/index.rsc +3 -3
  395. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  396. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  397. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  400. package/app/.next-cli-build/server/app/landing.html +1 -1
  401. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  402. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  403. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  405. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  407. package/app/.next-cli-build/server/app/login.html +1 -1
  408. package/app/.next-cli-build/server/app/login.rsc +3 -3
  409. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  410. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  411. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  412. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  415. package/app/.next-cli-build/server/app-paths-manifest.json +11 -11
  416. package/app/.next-cli-build/server/chunks/1051.js +1 -1
  417. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  418. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  419. package/app/.next-cli-build/server/chunks/1836.js +17 -0
  420. package/app/.next-cli-build/server/chunks/3210.js +1 -1
  421. package/app/.next-cli-build/server/chunks/{4957.js → 3811.js} +1 -1
  422. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  423. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  424. package/app/.next-cli-build/server/chunks/5026.js +1 -1
  425. package/app/.next-cli-build/server/chunks/5330.js +2 -10
  426. package/app/.next-cli-build/server/chunks/5615.js +2 -2
  427. package/app/.next-cli-build/server/chunks/6171.js +7 -0
  428. package/app/.next-cli-build/server/chunks/8499.js +2 -2
  429. package/app/.next-cli-build/server/chunks/869.js +1 -1
  430. package/app/.next-cli-build/server/chunks/8895.js +7 -13
  431. package/app/.next-cli-build/server/chunks/9100.js +2 -2
  432. package/app/.next-cli-build/server/chunks/9604.js +1 -1
  433. package/app/.next-cli-build/server/chunks/9696.js +1 -1
  434. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  436. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  437. package/app/.next-cli-build/server/pages/404.html +1 -1
  438. package/app/.next-cli-build/server/pages/500.html +1 -1
  439. package/app/.next-cli-build/server/preview-props.json +3 -3
  440. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  441. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  442. package/app/.next-cli-build/static/chunks/{1321-fdac938522ce514f.js → 1321-b89cfee091cdd169.js} +1 -1
  443. package/app/.next-cli-build/static/chunks/5497-76da5aae5c912ea5.js +7 -0
  444. package/app/package.json +1 -1
  445. package/package.json +1 -1
  446. package/app/.next-cli-build/server/chunks/6249.js +0 -9
  447. package/app/.next-cli-build/server/chunks/7552.js +0 -1
  448. package/app/.next-cli-build/static/chunks/5497-35a0641d4dcc62d5.js +0 -7
  449. /package/app/.next-cli-build/static/{Lcce6agtXL-TudJa8EdML → gP6myLWXiPD5PGe6Eqewr}/_buildManifest.js +0 -0
  450. /package/app/.next-cli-build/static/{Lcce6agtXL-TudJa8EdML → gP6myLWXiPD5PGe6Eqewr}/_ssgManifest.js +0 -0
@@ -1,12 +1,4 @@
1
- "use strict";exports.id=5330,exports.ids=[5330],exports.modules={4493:(a,b,c)=>{c.d(b,{j9:()=>H});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(57247),i=c(41004),j=c(72239),k=c(14170),l=c(86724),m=c(80662),n=c(60210),o=c(37981),p=c(80614);let q="x-opencode-session",r="_opencodeSession",s="_opencodeRequest",t=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,u=/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/,v="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",w=0,x=0;function y(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=v[a[c]%62];return b}function z(a=Date.now()){let b=4096n*BigInt(a)+1n,c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`msg_${c}${y()}`}function A(a,b=""){if("string"==typeof a&&t.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=c.subarray(0,6).toString("hex"),f="";for(let a=6;a<20;a++)f+=v[c[a]%62];return`ses_${d}${f}`}function B(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let C=new Map,D=setInterval(()=>{let a=Date.now();for(let[b,c]of C)a-c.lastUsed>i.v1.sessionTtlMs&&C.delete(b)},i.v1.sessionCleanupIntervalMs);function E(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:u.test(b)?b:null}function F(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function G(a){let b=h.Xg.opencode||"opencode";return(0,h.ux)(b,F(a))===k.h.OPENAI_RESPONSES}D.unref&&D.unref();class H extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===q){let a=B(c);if(a&&t.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===q){h=B(b);break}let i=h||B(c);if(i)return A(i,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,m.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return A(c,d)}let j=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),k=C.get(j);if(k)return k.lastUsed=Date.now(),C.delete(j),C.set(j,k),k.sessionId;let l=function(a=Date.now()){a!==w&&(w=a,x=0),x++;let b=~(4096n*BigInt(a)+BigInt(x)),c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`ses_${c}${y()}`}();return C.size>=1e3&&C.delete(C.keys().next().value),C.set(j,{sessionId:l,lastUsed:Date.now()}),l}(a,f,c,d);return{...f,[r]:g,[s]:function(a,b,c){for(let[a,c]of Object.entries(b?.rawHeaders||{}))if("x-opencode-request"===a.toLowerCase()){let a=E(c);if(a)return a;break}return function(a,b){let c=function(a){try{if(!a||"object"!=typeof a)return"";let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!b)return"string"==typeof a.input?a.input.slice(-600):"";for(let a=b.length-1;a>=0;a--){let c=b[a];if(!c||c.role&&"user"!==c.role)continue;let d=c.content;if("string"==typeof d&&d.trim())return d.trim().slice(-600);if(Array.isArray(d)){let a=d.map(a=>"string"==typeof a?a:a?.text||a?.input_text||"").join(" ").trim();if(a)return a.slice(-600)}}}catch{}return""}(b);if(!c)return z();let d=e().createHash("sha256").update(`opencode-req\0${a||""}\0${c}`).digest(),f=d.subarray(0,6).toString("hex"),g="";for(let a=6;a<20;a++)g+=v[d[a]%62];let h=`msg_${f}${g}`;return u.test(h)?h:z()}(c,a)}(a,f,g)}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),G(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(F(a))&&(b.tool_choice="auto");let c=(0,o.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=F(a||b.model),g=(0,j.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,o.N8)(a.call_id),a.arguments=(0,o.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,o.N8)(a.call_id),a.output=(0,o.DP)(a.output)),!0)))),(0,n.Ke)(b,!0)}else b&&"object"==typeof b&&(0,n.Ke)(b,!1);return(0,l.Z)({provider:this.provider,model:a,body:b})}async execute(a){return await (0,p.Rm)()?(0,p.nY)(a):super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return G(a)?`${b}/zen/v1/responses`:`${b}/zen/v1/chat/completions`}buildHeaders(a,b=!0){let c=a?.rawHeaders||{},d={};for(let[a,b]of Object.entries(c))d[a.toLowerCase()]=b;let e=d["user-agent"]||"",f=function(a){let b=String(a||"").match(/opencode\/(\d+)\.(\d+)(?:\.(\d+))?/i);if(!b)return!1;let c=parseInt(b[1],10),d=parseInt(b[2],10);return c>1||1===c&&d>=17}(e),g=a?.[r]||this.prepareRequestCredentials({credentials:a})[r],h=E(d["x-opencode-request"]),i=a?.[s]||h||z();return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":f?e:"opencode/1.18.31","x-opencode-client":d["x-opencode-client"]||"desktop","x-opencode-session":g,"x-opencode-request":i,"x-opencode-project":d["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"}}}},9024:(a,b,c)=>{c.d(b,{A4:()=>j,c2:()=>i,mb:()=>m,tV:()=>h,v8:()=>l});var d=c(14170),e=c(43659),f=c(78959);let g=new TextEncoder;function h(a,b=null){if(!a)return null;if(b===d.h.OLLAMA){let b=a.trim();if(b.startsWith("{"))try{return JSON.parse(b)}catch(a){}return null}if(100!==a.charCodeAt(0))return null;let c=a.slice(5).trim();if("[DONE]"===c)return{done:!0};try{return JSON.parse(c)}catch(a){return c.length>0&&c.length<1e3&&console.log(`[WARN] Failed to parse SSE line (${c.length} chars): ${c.substring(0,100)}...`),null}}function i(a,b){if(b===d.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||b.reasoning_content&&""!==b.reasoning_content||b.tool_calls&&b.tool_calls.length>0||a.choices[0].finish_reason||b.role}if(b===d.h.CLAUDE){let b="content_block_delta"===a.type,c=a.delta?.text&&""!==a.delta.text,d=a.delta?.thinking&&""!==a.delta.thinking,e=a.delta?.partial_json&&""!==a.delta.partial_json;if(b&&!c&&!d&&!e)return!1}return!0}function j(a){if(a.id&&("chat"===a.id||"completion"===a.id||a.id.length<8)){let b=a.extend_fields?.requestId||a.extend_fields?.traceId||Date.now().toString(36);return a.id=`chatcmpl-${b}`,!0}return!1}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=a;if("usage"in b){if(null===b.usage){let{usage:a,...c}=b;b=c}else if("object"==typeof b.usage&&null===b.usage.perf_metrics){let{perf_metrics:a,...c}=b.usage;b={...b,usage:c}}}if(b.response&&"object"==typeof b.response&&!Array.isArray(b.response)){let a=k(b.response);a!==b.response&&(b={...b,response:a})}return b}function l(a,b){if(null==a)return"data: null\n\n";if(a&&a.done)return"data: [DONE]\n\n";if(a&&a.event&&a.data){let b=k(a.data);return`event: ${a.event}
2
- data: ${JSON.stringify(b)}
3
-
4
- `}return(a=k(a),b===d.h.CLAUDE&&a&&a.type)?`event: ${a.type}
5
- data: ${JSON.stringify(a)}
6
-
7
- `:`data: ${JSON.stringify(a)}
8
-
9
- `}function m(a,b,c){let{error:h}=(0,e.xJ)(a,b),i=c===d.h.CLAUDE?l({type:"error",error:h},d.h.CLAUDE):l({error:h},c)+f.$U;return g.encode(i)}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(35024);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>t});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(88499),k=c(14170),l=c(9024),m=c(39609),n=c(49426),o=c(74379),p=c(78959),q=c(74129),r=c(55511),s=c.n(r);class t extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":s().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":q.b8,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,o.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async postWithHeaderTimeout(a,b,c,d,e){let f=(0,n.n)(d,this.config?.timeoutMs||g.Z1);try{return await (0,m.proxyAwareFetch)(a,{method:"POST",headers:b,body:JSON.stringify(c),signal:f.signal},e)}catch(a){throw f.settleError(a)}finally{f.clear()}}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,m=this.buildHeaders(d,c),n=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let o=await this.postWithHeaderTimeout(k,m,n,e,g);if(!o.ok)return{response:o,url:k,headers:m,transformedBody:n};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}let f=(0,i.v)(e,q);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());if(b&&!b.done){let c=(0,i.v)(b,q);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return o.body?{response:new Response(o.body.pipeThrough(t),{status:o.status,statusText:o.statusText,headers:o.headers}),url:k,headers:m,transformedBody:n}:{response:new Response("",{status:o.status,headers:o.headers}),url:k,headers:m,transformedBody:n}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),m=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),n=m._toolNameMap;delete m._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await this.postWithHeaderTimeout(h,i,m,e,g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:m};let q=(0,j.Ws)(k.h.CLAUDE);q.model=a,n&&(q.toolNameMap=n);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}t(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,q))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());b&&!b.done&&t(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,q))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:m}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:m}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,m.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},12009:(a,b,c)=>{function d(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function e(a,b,c,e){let f,g;if(b?.aborted)throw d(b.reason);let h=new Promise((a,b)=>{f=setTimeout(()=>b(Error(e)),c)}),i=new Promise((a,c)=>{g=()=>c(d(b.reason)),b?.addEventListener("abort",g,{once:!0})});try{return await Promise.race([a.read(),h,i])}finally{clearTimeout(f),b?.removeEventListener?.("abort",g)}}c.d(b,{S:()=>e,z:()=>d})},12132:(a,b,c)=>{c.r(b),c.d(b,{MIMO_API_BASE:()=>D,MIMO_API_UA:()=>E,getMimoAccountCookie:()=>F,getMimoAccountUsage:()=>G,invalidateMimoAccountCookieCache:()=>C,readDesktopPassToken:()=>v,resolveMimoServerBase:()=>y});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n=m.sgp,o={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"},p="account.xiaomi.com",q="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",r="MiClaw/1.0",s=new Map,t=new Map;async function u(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,79868,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+p);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function v(){try{let a=await u();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function w(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function x(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}function y(a=null){return m[String(a?.region||"").toLowerCase()]||n}async function z(a,b,c=n,d="sgp"){let e=String(d||"").toLowerCase(),f=o[String(e||"").toLowerCase()]||o.sgp,g=await A(a,"cn"===e?null:b,c,f);return g&&console.log(`[mimoAccount] desktop 2-phase OK (sid=${f})`),g}async function A(a,b,c,d){var e,f;let g,h=a=>console.log(`[mimoAccount] desktopPhase fail: ${a}`),i={...a},j={};i.userId&&(j.userId=i.userId),i.passToken&&(j.passToken=i.passToken),i.cUserId&&(j.cUserId=i.cUserId);let m=`https://${p}/pass/serviceLogin?_locale=zh_CN&_snsNone=true&sid=${encodeURIComponent(d)}&_json=true`,n=await (0,l.proxyAwareFetch)(m,{headers:{Cookie:x(j),"User-Agent":r,Accept:"application/json"}},b),o=await n.text(),q=o.replace(/^&&&START&&&/,""),s=q.match(/"nonce"\s*:\s*(\d+)/)?.[1],t=null;try{t=JSON.parse(q)}catch{}if(s&&t&&(t.nonce=s),!t||"number"!=typeof t.code||0!==t.code||!t.location||!t.nonce||!t.ssecurity)return h(`phase1 sid=${d} http=${n.status} code=${t?.code??"?"} hasLoc=${!!t?.location} secondValidation=${t?.bSecondValidation??"?"} notificationUrl=${t?.notificationUrl?"present":"no"} body=${JSON.stringify(o.slice(0,200))}`),null;w(i,n);let u=t.location.includes("?")?"&":"?",v=`${t.location}${u}clientSign=${(e=s||t.nonce,g=`nonce=${e}`+((f=t.ssecurity)&&f.trim()?`&${f}`:""),encodeURIComponent(k().createHash("sha1").update(g).digest("base64")))}`;for(let a=0;a<8;a++){let a=await (0,l.proxyAwareFetch)(v,{redirect:"manual",headers:{"User-Agent":r}},b);w(i,a);let c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){v=new URL(c,v).toString();continue}break}let y=`${d}_serviceToken`;if(!i.serviceToken&&i[y]&&(i.serviceToken=i[y]),!i.serviceToken)return h(`phase2 no serviceToken sid=${d} jar=[${Object.keys(i).join(",")}]`),null;let z={};for(let[a,b]of Object.entries(i))b&&("serviceToken"===a||"userId"===a||/_(ph|slh)$/.test(a))&&(z[a]=b);return x(z)}async function B(a,b){let c=y(a),d=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await u();if(!d)return{cookie:null,reason:"no-pass-token"};let e=k().createHash("sha256").update(`${c}|${d.passToken}`).digest("hex"),f=s.get(e);if(f&&Date.now()-f.at<18e5)return{cookie:f.cookie};let g=t.get(e);if(g){let a=await g;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let h=(async()=>{try{return await z(d,b,c,a?.region)}catch(a){return console.log(`[mimoAccount] acquire threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}finally{t.delete(e)}})();t.set(e,h);let i=await h;return i?(s.set(e,{cookie:i,at:Date.now()}),{cookie:i}):{cookie:null,reason:"sso-failed"}}function C(){s.clear()}let D=n,E=q;async function F(a=null,b=null){try{let{cookie:c}=await B(a,b);return c}catch(a){return console.log(`[mimoAccount] getMimoAccountCookie threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}}async function G(a=null,b=null){let{cookie:c,reason:d}=await B(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${y(a)}/api/user/usage`,{headers:{"User-Agent":q,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(57247),i=c(14170),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){return(0,h.ux)("opencode-go",a)===i.h.OPENAI_RESPONSES}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},19932:(a,b,c)=>{c.d(b,{T:()=>D});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
1
+ "use strict";exports.id=5330,exports.ids=[5330],exports.modules={4493:(a,b,c)=>{c.d(b,{j9:()=>H});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(57247),i=c(41004),j=c(72239),k=c(14170),l=c(86724),m=c(80662),n=c(60210),o=c(37981),p=c(80614);let q="x-opencode-session",r="_opencodeSession",s="_opencodeRequest",t=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,u=/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/,v="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",w=0,x=0;function y(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=v[a[c]%62];return b}function z(a=Date.now()){let b=4096n*BigInt(a)+1n,c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`msg_${c}${y()}`}function A(a,b=""){if("string"==typeof a&&t.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=c.subarray(0,6).toString("hex"),f="";for(let a=6;a<20;a++)f+=v[c[a]%62];return`ses_${d}${f}`}function B(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let C=new Map,D=setInterval(()=>{let a=Date.now();for(let[b,c]of C)a-c.lastUsed>i.v1.sessionTtlMs&&C.delete(b)},i.v1.sessionCleanupIntervalMs);function E(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:u.test(b)?b:null}function F(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function G(a){let b=h.Xg.opencode||"opencode";return(0,h.ux)(b,F(a))===k.h.OPENAI_RESPONSES}D.unref&&D.unref();class H extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===q){let a=B(c);if(a&&t.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===q){h=B(b);break}let i=h||B(c);if(i)return A(i,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,m.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return A(c,d)}let j=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),k=C.get(j);if(k)return k.lastUsed=Date.now(),C.delete(j),C.set(j,k),k.sessionId;let l=function(a=Date.now()){a!==w&&(w=a,x=0),x++;let b=~(4096n*BigInt(a)+BigInt(x)),c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`ses_${c}${y()}`}();return C.size>=1e3&&C.delete(C.keys().next().value),C.set(j,{sessionId:l,lastUsed:Date.now()}),l}(a,f,c,d);return{...f,[r]:g,[s]:function(a,b,c){for(let[a,c]of Object.entries(b?.rawHeaders||{}))if("x-opencode-request"===a.toLowerCase()){let a=E(c);if(a)return a;break}return function(a,b){let c=function(a){try{if(!a||"object"!=typeof a)return"";let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!b)return"string"==typeof a.input?a.input.slice(-600):"";for(let a=b.length-1;a>=0;a--){let c=b[a];if(!c||c.role&&"user"!==c.role)continue;let d=c.content;if("string"==typeof d&&d.trim())return d.trim().slice(-600);if(Array.isArray(d)){let a=d.map(a=>"string"==typeof a?a:a?.text||a?.input_text||"").join(" ").trim();if(a)return a.slice(-600)}}}catch{}return""}(b);if(!c)return z();let d=e().createHash("sha256").update(`opencode-req\0${a||""}\0${c}`).digest(),f=d.subarray(0,6).toString("hex"),g="";for(let a=6;a<20;a++)g+=v[d[a]%62];let h=`msg_${f}${g}`;return u.test(h)?h:z()}(c,a)}(a,f,g)}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),G(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(F(a))&&(b.tool_choice="auto");let c=(0,o.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=F(a||b.model),g=(0,j.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,o.N8)(a.call_id),a.arguments=(0,o.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,o.N8)(a.call_id),a.output=(0,o.DP)(a.output)),!0)))),(0,n.Ke)(b,!0)}else b&&"object"==typeof b&&(0,n.Ke)(b,!1);return(0,l.Z)({provider:this.provider,model:a,body:b})}async execute(a){return await (0,p.Rm)()?(0,p.nY)(a):super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return G(a)?`${b}/zen/v1/responses`:`${b}/zen/v1/chat/completions`}buildHeaders(a,b=!0){let c=a?.rawHeaders||{},d={};for(let[a,b]of Object.entries(c))d[a.toLowerCase()]=b;let e=d["user-agent"]||"",f=function(a){let b=String(a||"").match(/opencode\/(\d+)\.(\d+)(?:\.(\d+))?/i);if(!b)return!1;let c=parseInt(b[1],10),d=parseInt(b[2],10);return c>1||1===c&&d>=17}(e),g=a?.[r]||this.prepareRequestCredentials({credentials:a})[r],h=E(d["x-opencode-request"]),i=a?.[s]||h||z();return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":f?e:"opencode/1.18.31","x-opencode-client":d["x-opencode-client"]||"desktop","x-opencode-session":g,"x-opencode-request":i,"x-opencode-project":d["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"}}}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(35024);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>t});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(88499),k=c(14170),l=c(9024),m=c(39609),n=c(49426),o=c(74379),p=c(78959),q=c(74129),r=c(55511),s=c.n(r);class t extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":s().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":q.b8,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,o.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async postWithHeaderTimeout(a,b,c,d,e){let f=(0,n.n)(d,this.config?.timeoutMs||g.Z1);try{return await (0,m.proxyAwareFetch)(a,{method:"POST",headers:b,body:JSON.stringify(c),signal:f.signal},e)}catch(a){throw f.settleError(a)}finally{f.clear()}}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,m=this.buildHeaders(d,c),n=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let o=await this.postWithHeaderTimeout(k,m,n,e,g);if(!o.ok)return{response:o,url:k,headers:m,transformedBody:n};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}let f=(0,i.v)(e,q);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());if(b&&!b.done){let c=(0,i.v)(b,q);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return o.body?{response:new Response(o.body.pipeThrough(t),{status:o.status,statusText:o.statusText,headers:o.headers}),url:k,headers:m,transformedBody:n}:{response:new Response("",{status:o.status,headers:o.headers}),url:k,headers:m,transformedBody:n}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),m=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),n=m._toolNameMap;delete m._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await this.postWithHeaderTimeout(h,i,m,e,g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:m};let q=(0,j.Ws)(k.h.CLAUDE);q.model=a,n&&(q.toolNameMap=n);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(p.$U));continue}t(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,q))}}},flush(a){if(s.trim()){let b=(0,l.tV)(s.trim());b&&!b.done&&t(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,q))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:m}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:m}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,m.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},12009:(a,b,c)=>{function d(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function e(a,b,c,e){let f,g;if(b?.aborted)throw d(b.reason);let h=new Promise((a,b)=>{f=setTimeout(()=>b(Error(e)),c)}),i=new Promise((a,c)=>{g=()=>c(d(b.reason)),b?.addEventListener("abort",g,{once:!0})});try{return await Promise.race([a.read(),h,i])}finally{clearTimeout(f),b?.removeEventListener?.("abort",g)}}c.d(b,{S:()=>e,z:()=>d})},12132:(a,b,c)=>{c.r(b),c.d(b,{MIMO_API_BASE:()=>D,MIMO_API_UA:()=>E,getMimoAccountCookie:()=>F,getMimoAccountUsage:()=>G,invalidateMimoAccountCookieCache:()=>C,readDesktopPassToken:()=>v,resolveMimoServerBase:()=>y});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n=m.sgp,o={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"},p="account.xiaomi.com",q="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",r="MiClaw/1.0",s=new Map,t=new Map;async function u(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,79868,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+p);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function v(){try{let a=await u();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function w(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function x(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}function y(a=null){return m[String(a?.region||"").toLowerCase()]||n}async function z(a,b,c=n,d="sgp"){let e=String(d||"").toLowerCase(),f=o[String(e||"").toLowerCase()]||o.sgp,g=await A(a,"cn"===e?null:b,c,f);return g&&console.log(`[mimoAccount] desktop 2-phase OK (sid=${f})`),g}async function A(a,b,c,d){var e,f;let g,h=a=>console.log(`[mimoAccount] desktopPhase fail: ${a}`),i={...a},j={};i.userId&&(j.userId=i.userId),i.passToken&&(j.passToken=i.passToken),i.cUserId&&(j.cUserId=i.cUserId);let m=`https://${p}/pass/serviceLogin?_locale=zh_CN&_snsNone=true&sid=${encodeURIComponent(d)}&_json=true`,n=await (0,l.proxyAwareFetch)(m,{headers:{Cookie:x(j),"User-Agent":r,Accept:"application/json"}},b),o=await n.text(),q=o.replace(/^&&&START&&&/,""),s=q.match(/"nonce"\s*:\s*(\d+)/)?.[1],t=null;try{t=JSON.parse(q)}catch{}if(s&&t&&(t.nonce=s),!t||"number"!=typeof t.code||0!==t.code||!t.location||!t.nonce||!t.ssecurity)return h(`phase1 sid=${d} http=${n.status} code=${t?.code??"?"} hasLoc=${!!t?.location} secondValidation=${t?.bSecondValidation??"?"} notificationUrl=${t?.notificationUrl?"present":"no"} body=${JSON.stringify(o.slice(0,200))}`),null;w(i,n);let u=t.location.includes("?")?"&":"?",v=`${t.location}${u}clientSign=${(e=s||t.nonce,g=`nonce=${e}`+((f=t.ssecurity)&&f.trim()?`&${f}`:""),encodeURIComponent(k().createHash("sha1").update(g).digest("base64")))}`;for(let a=0;a<8;a++){let a=await (0,l.proxyAwareFetch)(v,{redirect:"manual",headers:{"User-Agent":r}},b);w(i,a);let c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){v=new URL(c,v).toString();continue}break}let y=`${d}_serviceToken`;if(!i.serviceToken&&i[y]&&(i.serviceToken=i[y]),!i.serviceToken)return h(`phase2 no serviceToken sid=${d} jar=[${Object.keys(i).join(",")}]`),null;let z={};for(let[a,b]of Object.entries(i))b&&("serviceToken"===a||"userId"===a||/_(ph|slh)$/.test(a))&&(z[a]=b);return x(z)}async function B(a,b){let c=y(a),d=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await u();if(!d)return{cookie:null,reason:"no-pass-token"};let e=k().createHash("sha256").update(`${c}|${d.passToken}`).digest("hex"),f=s.get(e);if(f&&Date.now()-f.at<18e5)return{cookie:f.cookie};let g=t.get(e);if(g){let a=await g;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let h=(async()=>{try{return await z(d,b,c,a?.region)}catch(a){return console.log(`[mimoAccount] acquire threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}finally{t.delete(e)}})();t.set(e,h);let i=await h;return i?(s.set(e,{cookie:i,at:Date.now()}),{cookie:i}):{cookie:null,reason:"sso-failed"}}function C(){s.clear()}let D=n,E=q;async function F(a=null,b=null){try{let{cookie:c}=await B(a,b);return c}catch(a){return console.log(`[mimoAccount] getMimoAccountCookie threw: ${a?.message||a} | ${String(a?.stack||"").split("\n").slice(1,4).join(" <- ")}`),null}}async function G(a=null,b=null){let{cookie:c,reason:d}=await B(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${y(a)}/api/user/usage`,{headers:{"User-Agent":q,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(57247),i=c(14170),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){return(0,h.ux)("opencode-go",a)===i.h.OPENAI_RESPONSES}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},19932:(a,b,c)=>{c.d(b,{T:()=>D});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
10
2
 
11
3
  ## General
12
4
 
@@ -143,7 +135,7 @@ Content-Type: ${d||"application/octet-stream"}\r
143
135
 
144
136
  `)),c.enqueue(i.encode(m.$U)),j=!0;return}let a=h||`upstream status ${g}`,e=P(h)?n.gx.RATE_LIMITED:g,f=JSON.stringify({id:`qoder-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[],error:(0,l.xJ)(e,`[qoder error ${g}: ${K(a,200)}]`).error});c.enqueue(i.encode(`data: ${f}
145
137
 
146
- `)),c.enqueue(i.encode(m.$U)),j=!0;return}h&&(k.handleInner(h,c),o())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(p(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(p(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{k.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class S extends h.H{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,o.e9)(a,this.region)}/algo${o.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:f,signal:g,log:h,proxyOptions:i=null}){let l,m,o,q,r=f?.apiKey||f?.accessToken;if((0,p.zh)(r))try{f=await (0,p._M)(f,i,g,this.region)}catch(a){return h?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(f),headers:{},transformedBody:b}}let s=this.buildUrl(f),t=f?.providerSpecificData||{};if(!t.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b};if(!f?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b};try{({qoderKey:l,payload:m}=await L({model:a,body:b,credentials:f,log:h,proxyOptions:i,signal:g,region:this.region}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b}}let u=function(a){let b=(Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"utf8"):Buffer.from(a)).toString("base64"),c=b.length,e=Math.floor(c/3),f=b.slice(c-e)+b.slice(e,c-e)+b.slice(0,e),g=Buffer.alloc(c);for(let a=0;a<c;a++){let b=f.charCodeAt(a);b<128&&d[b]>=0?g[a]=d[b]:g[a]=b}return g.toString("latin1")}(Buffer.from(JSON.stringify(m),"utf8")),v=Buffer.from(u,"latin1");try{o=(0,e.d)(v,s,{userId:t.userId,authToken:f.accessToken,name:f.displayName||"",email:f.email||"",machineId:t.machineId||""})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b}}let w={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":l,"X-Model-Source":m.model_config&&m.model_config.source||"system","Accept-Encoding":"identity",...o},x=this.config?.timeoutMs||n.pH,y=(0,k.n)(g,x);try{q=await (0,j.proxyAwareFetch)(s,{method:"POST",headers:w,body:v,signal:y.signal},{...i,strictProxy:!0})}catch(a){if(y.signal.aborted)throw y.signal.reason??a;throw a}finally{y.clear()}return q.ok?{response:await R(q,`${this.provider}/${l}`,h),url:s,headers:w,transformedBody:m}:{response:q,url:s,headers:w,transformedBody:m}}async refreshCredentials(){return null}parseError(a,b){let c=super.parseError(a,b),d=function(a){let b=M(a);if(!N.test(b))return null;let c=b.match(/"retryAfterSeconds"\s*:\s*(\d+)/),d=c?Number(c[1]):0;return d>0?1e3*d:null}(b);return d&&(c.resetsAtMs=Date.now()+d),c}needsRefresh(){return!1}}},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73483:(a,b,c)=>{c.d(b,{Gh:()=>k,IF:()=>p,O9:()=>g,OF:()=>o,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}let n=/^[A-Za-z0-9+/_-]+={0,2}$/;function o(a,b,c=d.h.OPENAI){var e,f;return e=function(a){if(!a||"object"!=typeof a)return 0;try{let b={chars:0,mediaItems:0};return!function a(b,c,d=null){if("string"==typeof b)return void(!(b.length<1024)&&(b.startsWith("data:")?b.includes(";base64,"):"data"===d&&n.test(b))?c.mediaItems++:c.chars+=b.length);if(null==b||"object"!=typeof b){c.chars+=4;return}if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let[d,e]of Object.entries(b))c.chars+=d.length,a(e,c,d)}(a,b),Math.ceil(b.chars/4)+1024*b.mediaItems}catch(a){return 0}}(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===d.h.CLAUDE?{input_tokens:e,output_tokens:f,estimated:!0}:{prompt_tokens:e,completion_tokens:f,total_tokens:e+f,estimated:!0}}function p(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 o=b.reasoning_tokens;o&&(l+=` | reasoning=${o}`),console.log(l)}},73870:(a,b,c)=>{c.d(b,{w:()=>m});var d=c(74957),e=c(35024),f=c(8521),g=c(39609),h=c(49426),i=c(41004);let j=new Map;function k(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 l(a){if(j.has(a))return j.get(a);let b=await (0,h.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&j.set(a,e),e}class m extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,f.Sc)(d?.apiKey),g=k(d?.apiKey),h=!!e||!!g||!!d?.accessToken,i=h?null:d?.apiKey,j=e?.project_id||g?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!j)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/${j}/locations/global/endpoints/openapi/chat/completions`;return i?`${a}?key=${i}`:a}let l=b?"streamGenerateContent":"generateContent";if(h){if(!j)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||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${j}/locations/${c}/publishers/google/models/${a}:${l}`;return b&&(e+="?alt=sse"),e}let m=`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${l}`;return b&&(m+="?alt=sse"),i&&(m+=b?`&key=${i}`:`?key=${i}`),m}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,f.Sc)(a?.apiKey);if(!c)return null;let d=await (0,f.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:j,proxyOptions:m=null}){let n,o=(0,f.Sc)(d?.apiKey),p=k(d?.apiKey);if(o){let a=await (0,f.pb)(o,j);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,f.I9)(p.refresh_token,p.client_id,p.client_secret,j);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await l(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");j?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,h.n)(e,this.config?.timeoutMs||i.Z1);try{n=await (0,g.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},m)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(35024),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
138
+ `)),c.enqueue(i.encode(m.$U)),j=!0;return}h&&(k.handleInner(h,c),o())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(p(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(p(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{k.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class S extends h.H{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,o.e9)(a,this.region)}/algo${o.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:f,signal:g,log:h,proxyOptions:i=null}){let l,m,o,q,r=f?.apiKey||f?.accessToken;if((0,p.zh)(r))try{f=await (0,p._M)(f,i,g,this.region)}catch(a){return h?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(f),headers:{},transformedBody:b}}let s=this.buildUrl(f),t=f?.providerSpecificData||{};if(!t.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b};if(!f?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b};try{({qoderKey:l,payload:m}=await L({model:a,body:b,credentials:f,log:h,proxyOptions:i,signal:g,region:this.region}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b}}let u=function(a){let b=(Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"utf8"):Buffer.from(a)).toString("base64"),c=b.length,e=Math.floor(c/3),f=b.slice(c-e)+b.slice(e,c-e)+b.slice(0,e),g=Buffer.alloc(c);for(let a=0;a<c;a++){let b=f.charCodeAt(a);b<128&&d[b]>=0?g[a]=d[b]:g[a]=b}return g.toString("latin1")}(Buffer.from(JSON.stringify(m),"utf8")),v=Buffer.from(u,"latin1");try{o=(0,e.d)(v,s,{userId:t.userId,authToken:f.accessToken,name:f.displayName||"",email:f.email||"",machineId:t.machineId||""})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:s,headers:{},transformedBody:b}}let w={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":l,"X-Model-Source":m.model_config&&m.model_config.source||"system","Accept-Encoding":"identity",...o},x=this.config?.timeoutMs||n.pH,y=(0,k.n)(g,x);try{q=await (0,j.proxyAwareFetch)(s,{method:"POST",headers:w,body:v,signal:y.signal},{...i,strictProxy:!0})}catch(a){if(y.signal.aborted)throw y.signal.reason??a;throw a}finally{y.clear()}return q.ok?{response:await R(q,`${this.provider}/${l}`,h),url:s,headers:w,transformedBody:m}:{response:q,url:s,headers:w,transformedBody:m}}async refreshCredentials(){return null}parseError(a,b){let c=super.parseError(a,b),d=function(a){let b=M(a);if(!N.test(b))return null;let c=b.match(/"retryAfterSeconds"\s*:\s*(\d+)/),d=c?Number(c[1]):0;return d>0?1e3*d:null}(b);return d&&(c.resetsAtMs=Date.now()+d),c}needsRefresh(){return!1}}},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>m});var d=c(74957),e=c(35024),f=c(8521),g=c(39609),h=c(49426),i=c(41004);let j=new Map;function k(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 l(a){if(j.has(a))return j.get(a);let b=await (0,h.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&j.set(a,e),e}class m extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,f.Sc)(d?.apiKey),g=k(d?.apiKey),h=!!e||!!g||!!d?.accessToken,i=h?null:d?.apiKey,j=e?.project_id||g?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!j)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/${j}/locations/global/endpoints/openapi/chat/completions`;return i?`${a}?key=${i}`:a}let l=b?"streamGenerateContent":"generateContent";if(h){if(!j)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||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${j}/locations/${c}/publishers/google/models/${a}:${l}`;return b&&(e+="?alt=sse"),e}let m=`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${l}`;return b&&(m+="?alt=sse"),i&&(m+=b?`&key=${i}`:`?key=${i}`),m}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,f.Sc)(a?.apiKey);if(!c)return null;let d=await (0,f.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:j,proxyOptions:m=null}){let n,o=(0,f.Sc)(d?.apiKey),p=k(d?.apiKey);if(o){let a=await (0,f.pb)(o,j);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,f.I9)(p.refresh_token,p.client_id,p.client_secret,j);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await l(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");j?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,h.n)(e,this.config?.timeoutMs||i.Z1);try{n=await (0,g.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},m)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(35024),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
147
139
 
148
140
  data: [DONE]
149
141
 
@@ -40,7 +40,7 @@
40
40
  <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}.c{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.i{color:${a?"#22c55e":"#ef4444"};font-size:3rem}h1{margin:1rem 0}p{color:#666}</style>
41
41
  </head><body><div class="c"><div class="i">${a?"&#10003;":"&#10007;"}</div><h1>${c}</h1><p>${d}</p><p>Closing in <span id="cd">3</span>s...</p>
42
42
  <script>let n=3;const c=document.getElementById("cd");const t=setInterval(()=>{n--;c.textContent=n;if(n<=0){clearInterval(t);window.close();}},1000);<\/script>
43
- </div></body></html>`}function t(a){return new Promise(b=>{if(k)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=o(h);if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(s(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(s(!1,a.message))}finally{u()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),u()});d.listen(m,"127.0.0.1",()=>{k=d,l=setTimeout(()=>u(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function u(){l&&(clearTimeout(l),l=null),k&&(k.close(),k=null)}let v=null,w=null,x=new Map;function y({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(x.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function z(a){return x.get(a)||null}function A(a){x.delete(a)}function B(a){return new Promise(b=>{if(v)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?x.get(h):null;if(j){var k;try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(s(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end((k=a.message,s(!1,k)))}finally{C()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),C()});d.listen(56121,"127.0.0.1",()=>{v=d,w=setTimeout(()=>C(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function C(){w&&(clearTimeout(w),w=null),v&&(v.close(),v=null)}let D=new Map;function E(a){let b=D.get(a);return b||(b={server:null,timeout:null,port:null,session:null},D.set(a,b)),b}function F({state:a,provider:b="trae"}){return!!a&&(E(b).session={state:a,provider:b,status:"pending",createdAt:Date.now()},!0)}function G(a,b="trae"){let c=E(b).session;return!c||a&&c.state!==a?null:c}function H(a,b="trae"){let c=E(b);(!a||c.session&&c.session.state===a)&&(c.session=null)}async function I(a="trae"){let{getProvider:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),d=b(a).config,g=E(a);return new Promise(b=>{if(g.server)return void b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`});let h=e().createServer(async(b,e)=>{let h=new f.URL(b.url,"http://localhost");if(h.pathname!==d.callbackPath&&"/auth/callback"!==h.pathname){e.writeHead(404),e.end("Not found");return}let j=g.session;if(!j){e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,"No active Trae login session"));return}if(!i(b.headers.origin)){e.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,"Cross-origin callback rejected"));return}let k=h.searchParams.get("state");if(k&&j.state&&k!==j.state){j.status="error",j.error="Trae callback state mismatch",e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,j.error)),J(a);return}let l=`${h.pathname}?${h.searchParams.toString()}`;try{let{exchangeTokens:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await b(a,l),g=await d({provider:a,authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=g.id,j.email=g.email,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,a.message))}finally{J(a)}});h.listen(0,"127.0.0.1",()=>{g.server=h,g.port=h.address().port,g.timeout=setTimeout(()=>J(a),d.oauthTimeoutMs),b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`})}),h.on("error",a=>b({success:!1,reason:a.message}))})}function J(a="trae"){let b=E(a);b.timeout&&(clearTimeout(b.timeout),b.timeout=null),b.server&&(b.server.close(),b.server=null),b.port=null}let K=null,L=null,M=null,N=null;function O({state:a}){return!!a&&(N={state:a,status:"pending",createdAt:Date.now()},!0)}function P(a){return!N||a&&N.state!==a?null:N}function Q(a){(!a||N&&N.state===a)&&(N=null)}function R(){return new Promise(a=>{if(K)return void a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=N;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active Windsurf login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Cross-origin callback rejected"));return}let h=d.searchParams.get("state");if(!h||!e.state||h!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,e.error)),S();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,a.message))}finally{S()}});b.listen(0,"127.0.0.1",()=>{K=b,M=b.address().port,L=setTimeout(()=>S(),g.eD.oauthTimeoutMs),a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function S(){L&&(clearTimeout(L),L=null),K&&(K.close(),K=null),M=null}let T=null,U=null,V=null,W=null;function X({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(W={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function Y(a){return!W||a&&W.state!==a?null:W}function Z(a){(!a||W&&W.state===a)&&(W=null)}function $(a=0){return new Promise(b=>{if(T){U&&clearTimeout(U),U=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),_()},g.RY.oauthTimeoutMs),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=W;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active Zed login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Cross-origin callback rejected"));return}let h=d.searchParams;if(!(h.has("user_id")||h.has("userId")||h.has("access_token")||h.has("accessToken")||h.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!0,"You can close this window.")),_()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,a.message))}}),h=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==h?(console.log(`[Zed proxy] port ${h} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{T=d,V=d.address().port,U=setTimeout(()=>_(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${V}`),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(h,"127.0.0.1",()=>{T=d,V=d.address().port,U=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),_()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${V}`),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`})})})}function _(){console.log(`[Zed proxy] stopping (port ${V||"-"})`),U&&(clearTimeout(U),U=null),T&&(T.close(),T=null),V=null}let aa=null,ab=null,ac=null,ad=new Map;function ae({state:a,privateKeyDer:b}){return!!a&&!!b&&(ad.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function af(a){let b=ad.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function ag(a){ad.delete(a)}function ah(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
43
+ </div></body></html>`}function t(a){return new Promise(b=>{if(k)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=o(h);if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(s(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(s(!1,a.message))}finally{u()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),u()});d.listen(m,"127.0.0.1",()=>{k=d,l=setTimeout(()=>u(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function u(){l&&(clearTimeout(l),l=null),k&&(k.close(),k=null)}let v=null,w=null,x=new Map;function y({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(x.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function z(a){return x.get(a)||null}function A(a){x.delete(a)}function B(a){return new Promise(b=>{if(v)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?x.get(h):null;if(j){var k;try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(s(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end((k=a.message,s(!1,k)))}finally{C()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),C()});d.listen(56121,"127.0.0.1",()=>{v=d,w=setTimeout(()=>C(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function C(){w&&(clearTimeout(w),w=null),v&&(v.close(),v=null)}let D=new Map;function E(a){let b=D.get(a);return b||(b={server:null,timeout:null,port:null,session:null},D.set(a,b)),b}function F({state:a,provider:b="trae"}){return!!a&&(E(b).session={state:a,provider:b,status:"pending",createdAt:Date.now()},!0)}function G(a,b="trae"){let c=E(b).session;return!c||a&&c.state!==a?null:c}function H(a,b="trae"){let c=E(b);(!a||c.session&&c.session.state===a)&&(c.session=null)}async function I(a="trae"){let{getProvider:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),d=b(a).config,g=E(a);return new Promise(b=>{if(g.server)return void b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`});let h=e().createServer(async(b,e)=>{let h=new f.URL(b.url,"http://localhost");if(h.pathname!==d.callbackPath&&"/auth/callback"!==h.pathname){e.writeHead(404),e.end("Not found");return}let j=g.session;if(!j){e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,"No active Trae login session"));return}if(!i(b.headers.origin)){e.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,"Cross-origin callback rejected"));return}let k=h.searchParams.get("state");if(k&&j.state&&k!==j.state){j.status="error",j.error="Trae callback state mismatch",e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,j.error)),J(a);return}let l=`${h.pathname}?${h.searchParams.toString()}`;try{let{exchangeTokens:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await b(a,l),g=await d({provider:a,authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=g.id,j.email=g.email,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(s(!1,a.message))}finally{J(a)}});h.listen(0,"127.0.0.1",()=>{g.server=h,g.port=h.address().port,g.timeout=setTimeout(()=>J(a),d.oauthTimeoutMs),b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`})}),h.on("error",a=>b({success:!1,reason:a.message}))})}function J(a="trae"){let b=E(a);b.timeout&&(clearTimeout(b.timeout),b.timeout=null),b.server&&(b.server.close(),b.server=null),b.port=null}let K=null,L=null,M=null,N=null;function O({state:a}){return!!a&&(N={state:a,status:"pending",createdAt:Date.now()},!0)}function P(a){return!N||a&&N.state!==a?null:N}function Q(a){(!a||N&&N.state===a)&&(N=null)}function R(){return new Promise(a=>{if(K)return void a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=N;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active Windsurf login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Cross-origin callback rejected"));return}let h=d.searchParams.get("state");if(!h||!e.state||h!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,e.error)),S();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,a.message))}finally{S()}});b.listen(0,"127.0.0.1",()=>{K=b,M=b.address().port,L=setTimeout(()=>S(),g.eD.oauthTimeoutMs),a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function S(){L&&(clearTimeout(L),L=null),K&&(K.close(),K=null),M=null}let T=null,U=null,V=null,W=null;function X({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(W={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function Y(a){return!W||a&&W.state!==a?null:W}function Z(a){(!a||W&&W.state===a)&&(W=null)}function $(a=0){return new Promise(b=>{if(T){U&&clearTimeout(U),U=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),_()},g.RY.oauthTimeoutMs),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=W;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active Zed login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Cross-origin callback rejected"));return}let h=d.searchParams;if(!(h.has("user_id")||h.has("userId")||h.has("access_token")||h.has("accessToken")||h.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!0,"You can close this window.")),_()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,a.message))}}),h=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==h?(console.log(`[Zed proxy] port ${h} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{T=d,V=d.address().port,U=setTimeout(()=>_(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${V}`),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(h,"127.0.0.1",()=>{T=d,V=d.address().port,U=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),_()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${V}`),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`})})})}function _(){console.log(`[Zed proxy] stopping (port ${V||"-"})`),U&&(clearTimeout(U),U=null),T&&(T.close(),T=null),V=null}let aa=null,ab=null,ac=null,ad=new Map;function ae({state:a,privateKeyDer:b}){return!!a&&!!b&&(ad.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function af(a){let b=ad.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function ag(a){ad.delete(a)}function ah(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
44
44
  <html>
45
45
  <head><meta charset="utf-8"><title>${c}</title>
46
46
  <style>
@@ -59,4 +59,4 @@
59
59
  ${a?"<script>setTimeout(() => window.close(), 3000);<\/script>":""}
60
60
  </div>
61
61
  </body>
62
- </html>`}function ai(){return new Promise(a=>{if(aa)return void a({success:!0,port:ab,callbackUrl:`http://127.0.0.1:${ab}/`});let b=e().createServer(async(a,b)=>{if(!i(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ad.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ad.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{aa=b,ab=b.address().port,ac=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),aj()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${ab}`),a({success:!0,port:ab,callbackUrl:`http://127.0.0.1:${ab}/`})})})}function aj(){console.log(`[xiaomi-mimo oauth] stopping (port ${ab||"-"})`),ac&&(clearTimeout(ac),ac=null),aa&&(aa.close(),aa=null),ab=null,ad.clear()}let ak=null,al=null,am=null,an=null;function ao({state:a,codeVerifier:b,ticketId:c}){return!!a&&!!b&&(an={state:a,codeVerifier:b,ticketId:c||null,status:"pending",createdAt:Date.now()},!0)}function ap(a){return!an||a&&an.state!==a?null:{state:an.state,status:an.status,connectionId:an.connectionId||null,email:an.email||null,error:an.error||null}}function aq(a){(!a||an&&an.state===a)&&(an=null)}function ar(a){let b=new URLSearchParams({login_succeed:String(a),locale:g.Ru.locale||"zh-cn"});return`${g.Ru.portalBase}/login?${b.toString()}`}function as(){return new Promise(a=>{if(ak){al&&clearTimeout(al),al=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),at()},g.Ru.oauthTimeoutMs),a({success:!0,port:am,callbackUrl:(0,h.yn)(am)});return}let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.Ru.callbackPath){b.writeHead(404),b.end("Not found");return}let e=d.searchParams;if(console.log("[CodeArts proxy]",a.method,d.pathname,JSON.stringify({hasCode:e.has("code"),hasSecret:e.has("secret"),redirect:e.get("redirect")?"<ignored>":null})),!e.has("code")&&!e.has("secret")){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Waiting for CodeArts sign-in — this request carried no login data."));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Cross-origin callback rejected"));return}let j=an;if(!j){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active CodeArts login session"));return}if("pending"!==j.status){b.writeHead(307,{Location:ar("done"===j.status)}),b.end();return}try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:f}=await c.e(1998).then(c.bind(c,71998)),g=`${d.pathname}?${e.toString()}`,i=await a("codearts",g,(0,h.yn)(am),j.codeVerifier,j.state,j.ticketId?{ticketId:j.ticketId}:void 0),k=await f({provider:"codearts",authType:"oauth",...i,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:ar(!0)}),b.end(),at()}catch(a){j.status="error",j.error=a.message,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:ar(!1)}),b.end()}});b.listen(0,"127.0.0.1",()=>{ak=b,am=b.address().port,al=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),at()},g.Ru.oauthTimeoutMs),console.log(`[CodeArts proxy] listening on port ${am}`),a({success:!0,port:am,callbackUrl:(0,h.yn)(am)})}),b.on("error",b=>{console.log(`[CodeArts proxy] listen error: ${b.message}`),a({success:!1,reason:b.message})})})}function at(){console.log(`[CodeArts proxy] stopping (port ${am||"-"})`),al&&(clearTimeout(al),al=null),ak&&(ak.close(),ak=null),am=null,an&&(an.codeVerifier=null,an.ticketId=null)}let au=null,av=null,aw=null,ax=null;function ay({state:a}){return!!a&&(ax={state:a,status:"pending",createdAt:Date.now()},!0)}function az(a){return!ax||a&&ax.state!==a?null:{state:ax.state,status:ax.status,connectionId:ax.connectionId||null,email:ax.email||null,error:ax.error||null}}function aA(a){(!a||ax&&ax.state===a)&&(ax=null)}function aB(a){let b=a?g.iO.successRedirectPath:g.iO.failedRedirectPath;return`${g.iO.baseUrl}/${b}`}function aC(){return new Promise(a=>{if(au){av&&clearTimeout(av),av=setTimeout(()=>{console.log("[DevEco proxy] timeout, stopping"),aD()},g.iO.oauthTimeoutMs),a({success:!0,port:aw,callbackUrl:`http://127.0.0.1:${aw}${g.iO.callbackPath}`});return}let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(console.log("[DevEco proxy]",a.method,d.pathname),d.pathname!==g.iO.callbackPath&&"/"!==d.pathname){b.writeHead(404),b.end("Not found");return}let e=d.searchParams;if("POST"===a.method){let c="";try{for await(let d of(a.setEncoding("utf8"),a))if((c+=d).length>65536){b.writeHead(413,{"Content-Type":"text/plain"}),b.end("Payload too large"),a.destroy();return}}catch{c=""}if(c.trim()){let a=new URLSearchParams(c.trim());[...a.keys()].length>0&&(e=a)}}if(console.log("[DevEco proxy] params",JSON.stringify({hasTempToken:e.has("tempToken"),hasCode:e.has("code"),siteId:e.get("siteId")||null,origin:a.headers.origin||null})),!e.has("tempToken")&&!e.has("access_denied")&&"true"!==e.get("quit")){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Waiting for HUAWEI ID sign-in — this request carried no login data."));return}if(!function(a){if(!a||i(a))return!0;try{let b=new f.URL(a).hostname.toLowerCase();return"huawei.com"===b||b.endsWith(".huawei.com")}catch{return!1}}(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Foreign-origin callback rejected"));return}let h=ax;if(!h){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active DevEco login session"));return}if("pending"!==h.status){b.writeHead(302,{Location:aB("done"===h.status)}),b.end();return}if(!e.has("code")||e.get("code")!==h.state){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"DevEco callback state mismatch"));return}if("true"===e.get("access_denied")||"true"===e.get("quit")){h.status="error",h.error="Login cancelled by user",b.writeHead(302,{Location:aB(!1)}),b.end();return}try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2329),c.e(3225),c.e(6922),c.e(7843),c.e(7913),c.e(4957),c.e(614),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:f}=await c.e(1998).then(c.bind(c,71998)),i=`${d.pathname}?${e.toString()}`,j=await a("deveco",i,`http://127.0.0.1:${aw}${g.iO.callbackPath}`,null,h.state),k=await f({provider:"deveco",authType:"oauth",...j,expiresAt:j.expiresIn?new Date(Date.now()+1e3*j.expiresIn).toISOString():null,testStatus:"active"});h.status="done",h.connectionId=k.id,h.email=k.email,b.writeHead(302,{Location:aB(!0)}),b.end(),aD()}catch(a){h.status="error",h.error=a.message,b.writeHead(302,{Location:aB(!1)}),b.end()}});b.listen(0,"127.0.0.1",()=>{au=b,aw=b.address().port,av=setTimeout(()=>{console.log("[DevEco proxy] timeout, stopping"),aD()},g.iO.oauthTimeoutMs),console.log(`[DevEco proxy] listening on port ${aw}`),a({success:!0,port:aw,callbackUrl:`http://127.0.0.1:${aw}${g.iO.callbackPath}`})}),b.on("error",b=>{console.log(`[DevEco proxy] listen error: ${b.message}`),a({success:!1,reason:b.message})})})}function aD(){console.log(`[DevEco proxy] stopping (port ${aw||"-"})`),av&&(clearTimeout(av),av=null),au&&(au.close(),au=null),aw=null}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/9router",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,DV:()=>A,EL:()=>G,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,RY:()=>J,Ru:()=>K,S6:()=>s,SK:()=>F,Td:()=>B,Tx:()=>q,WN:()=>t,Ww:()=>M,YT:()=>n,ZL:()=>m,_0:()=>I,aV:()=>u,cD:()=>o,eD:()=>H,f7:()=>y,hF:()=>k,iO:()=>L,lB:()=>w,oe:()=>E,qp:()=>C,sA:()=>D,t3:()=>l,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qoder},l={...f.sr["qoder-cn"]},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr["codebuddy-intl"]},B={...f.sr.kimchi},C={...f.sr["grok-cli"]},D={...f.sr.muse},E={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},F={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},G={...f.sr["trae-enterprise"],minAppVersion:F.minAppVersion,defaultAppVersion:F.defaultAppVersion,defaultAppType:F.defaultAppType,defaultPluginVersion:F.defaultPluginVersion,defaultDeviceId:F.defaultDeviceId,userAgent:F.userAgent,authScheme:F.authScheme,tokenLifetimeDays:F.tokenLifetimeDays,oauthTimeoutMs:F.oauthTimeoutMs},H={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},I={...f.sr.glm},J={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},K={...f.sr.codearts},L={...f.sr.deveco},M=3e5}};
62
+ </html>`}function ai(){return new Promise(a=>{if(aa)return void a({success:!0,port:ab,callbackUrl:`http://127.0.0.1:${ab}/`});let b=e().createServer(async(a,b)=>{if(!i(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ad.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ad.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ah(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{aa=b,ab=b.address().port,ac=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),aj()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${ab}`),a({success:!0,port:ab,callbackUrl:`http://127.0.0.1:${ab}/`})})})}function aj(){console.log(`[xiaomi-mimo oauth] stopping (port ${ab||"-"})`),ac&&(clearTimeout(ac),ac=null),aa&&(aa.close(),aa=null),ab=null,ad.clear()}let ak=null,al=null,am=null,an=null;function ao({state:a,codeVerifier:b,ticketId:c}){return!!a&&!!b&&(an={state:a,codeVerifier:b,ticketId:c||null,status:"pending",createdAt:Date.now()},!0)}function ap(a){return!an||a&&an.state!==a?null:{state:an.state,status:an.status,connectionId:an.connectionId||null,email:an.email||null,error:an.error||null}}function aq(a){(!a||an&&an.state===a)&&(an=null)}function ar(a){let b=new URLSearchParams({login_succeed:String(a),locale:g.Ru.locale||"zh-cn"});return`${g.Ru.portalBase}/login?${b.toString()}`}function as(){return new Promise(a=>{if(ak){al&&clearTimeout(al),al=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),at()},g.Ru.oauthTimeoutMs),a({success:!0,port:am,callbackUrl:(0,h.yn)(am)});return}let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.Ru.callbackPath){b.writeHead(404),b.end("Not found");return}let e=d.searchParams;if(console.log("[CodeArts proxy]",a.method,d.pathname,JSON.stringify({hasCode:e.has("code"),hasSecret:e.has("secret"),redirect:e.get("redirect")?"<ignored>":null})),!e.has("code")&&!e.has("secret")){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Waiting for CodeArts sign-in — this request carried no login data."));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Cross-origin callback rejected"));return}let j=an;if(!j){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active CodeArts login session"));return}if("pending"!==j.status){b.writeHead(307,{Location:ar("done"===j.status)}),b.end();return}try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:f}=await c.e(1998).then(c.bind(c,71998)),g=`${d.pathname}?${e.toString()}`,i=await a("codearts",g,(0,h.yn)(am),j.codeVerifier,j.state,j.ticketId?{ticketId:j.ticketId}:void 0),k=await f({provider:"codearts",authType:"oauth",...i,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:ar(!0)}),b.end(),at()}catch(a){j.status="error",j.error=a.message,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:ar(!1)}),b.end()}});b.listen(0,"127.0.0.1",()=>{ak=b,am=b.address().port,al=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),at()},g.Ru.oauthTimeoutMs),console.log(`[CodeArts proxy] listening on port ${am}`),a({success:!0,port:am,callbackUrl:(0,h.yn)(am)})}),b.on("error",b=>{console.log(`[CodeArts proxy] listen error: ${b.message}`),a({success:!1,reason:b.message})})})}function at(){console.log(`[CodeArts proxy] stopping (port ${am||"-"})`),al&&(clearTimeout(al),al=null),ak&&(ak.close(),ak=null),am=null,an&&(an.codeVerifier=null,an.ticketId=null)}let au=null,av=null,aw=null,ax=null;function ay({state:a}){return!!a&&(ax={state:a,status:"pending",createdAt:Date.now()},!0)}function az(a){return!ax||a&&ax.state!==a?null:{state:ax.state,status:ax.status,connectionId:ax.connectionId||null,email:ax.email||null,error:ax.error||null}}function aA(a){(!a||ax&&ax.state===a)&&(ax=null)}function aB(a){let b=a?g.iO.successRedirectPath:g.iO.failedRedirectPath;return`${g.iO.baseUrl}/${b}`}function aC(){return new Promise(a=>{if(au){av&&clearTimeout(av),av=setTimeout(()=>{console.log("[DevEco proxy] timeout, stopping"),aD()},g.iO.oauthTimeoutMs),a({success:!0,port:aw,callbackUrl:`http://127.0.0.1:${aw}${g.iO.callbackPath}`});return}let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(console.log("[DevEco proxy]",a.method,d.pathname),d.pathname!==g.iO.callbackPath&&"/"!==d.pathname){b.writeHead(404),b.end("Not found");return}let e=d.searchParams;if("POST"===a.method){let c="";try{for await(let d of(a.setEncoding("utf8"),a))if((c+=d).length>65536){b.writeHead(413,{"Content-Type":"text/plain"}),b.end("Payload too large"),a.destroy();return}}catch{c=""}if(c.trim()){let a=new URLSearchParams(c.trim());[...a.keys()].length>0&&(e=a)}}if(console.log("[DevEco proxy] params",JSON.stringify({hasTempToken:e.has("tempToken"),hasCode:e.has("code"),siteId:e.get("siteId")||null,origin:a.headers.origin||null})),!e.has("tempToken")&&!e.has("access_denied")&&"true"!==e.get("quit")){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Waiting for HUAWEI ID sign-in — this request carried no login data."));return}if(!function(a){if(!a||i(a))return!0;try{let b=new f.URL(a).hostname.toLowerCase();return"huawei.com"===b||b.endsWith(".huawei.com")}catch{return!1}}(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"Foreign-origin callback rejected"));return}let h=ax;if(!h){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"No active DevEco login session"));return}if("pending"!==h.status){b.writeHead(302,{Location:aB("done"===h.status)}),b.end();return}if(!e.has("code")||e.get("code")!==h.state){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(s(!1,"DevEco callback state mismatch"));return}if("true"===e.get("access_denied")||"true"===e.get("quit")){h.status="error",h.error="Login cancelled by user",b.writeHead(302,{Location:aB(!1)}),b.end();return}try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(6922),c.e(7843),c.e(2329),c.e(3225),c.e(7913),c.e(3811),c.e(614),c.e(9696),c.e(8499),c.e(1836),c.e(5330),c.e(6171),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:f}=await c.e(1998).then(c.bind(c,71998)),i=`${d.pathname}?${e.toString()}`,j=await a("deveco",i,`http://127.0.0.1:${aw}${g.iO.callbackPath}`,null,h.state),k=await f({provider:"deveco",authType:"oauth",...j,expiresAt:j.expiresIn?new Date(Date.now()+1e3*j.expiresIn).toISOString():null,testStatus:"active"});h.status="done",h.connectionId=k.id,h.email=k.email,b.writeHead(302,{Location:aB(!0)}),b.end(),aD()}catch(a){h.status="error",h.error=a.message,b.writeHead(302,{Location:aB(!1)}),b.end()}});b.listen(0,"127.0.0.1",()=>{au=b,aw=b.address().port,av=setTimeout(()=>{console.log("[DevEco proxy] timeout, stopping"),aD()},g.iO.oauthTimeoutMs),console.log(`[DevEco proxy] listening on port ${aw}`),a({success:!0,port:aw,callbackUrl:`http://127.0.0.1:${aw}${g.iO.callbackPath}`})}),b.on("error",b=>{console.log(`[DevEco proxy] listen error: ${b.message}`),a({success:!1,reason:b.message})})})}function aD(){console.log(`[DevEco proxy] stopping (port ${aw||"-"})`),av&&(clearTimeout(av),av=null),au&&(au.close(),au=null),aw=null}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/9router",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,DV:()=>A,EL:()=>G,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,RY:()=>J,Ru:()=>K,S6:()=>s,SK:()=>F,Td:()=>B,Tx:()=>q,WN:()=>t,Ww:()=>M,YT:()=>n,ZL:()=>m,_0:()=>I,aV:()=>u,cD:()=>o,eD:()=>H,f7:()=>y,hF:()=>k,iO:()=>L,lB:()=>w,oe:()=>E,qp:()=>C,sA:()=>D,t3:()=>l,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qoder},l={...f.sr["qoder-cn"]},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr["codebuddy-intl"]},B={...f.sr.kimchi},C={...f.sr["grok-cli"]},D={...f.sr.muse},E={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},F={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},G={...f.sr["trae-enterprise"],minAppVersion:F.minAppVersion,defaultAppVersion:F.defaultAppVersion,defaultAppType:F.defaultAppType,defaultPluginVersion:F.defaultPluginVersion,defaultDeviceId:F.defaultDeviceId,userAgent:F.userAgent,authScheme:F.authScheme,tokenLifetimeDays:F.tokenLifetimeDays,oauthTimeoutMs:F.oauthTimeoutMs},H={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},I={...f.sr.glm},J={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},K={...f.sr.codearts},L={...f.sr.deveco},M=3e5}};
@@ -0,0 +1,7 @@
1
+ "use strict";exports.id=6171,exports.ids=[6171],exports.modules={30320:(a,b,c)=>{c.d(b,{Hr:()=>j,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(14170),e=c(9024);let f=new Set(["response.completed","response.done","response.failed","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let i=new TextEncoder;function j(){return i.encode(`${k()}data: [DONE]
2
+
3
+ `)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(83192)},71857:(a,b,c)=>{c.d(b,{i5:()=>o,l2:()=>p,lm:()=>g.lm,v8:()=>h.v8});var d=c(88499),e=c(14170),f=c(47370),g=c(73483),h=c(9024),i=c(30320),j=c(92306);c(78959);let k=new TextEncoder,l="translate",m="passthrough";function n(a={}){let{mode:b=l,targetFormat:c,sourceFormat:o,provider:p=null,reqLogger:q=null,toolNameMap:r=null,customToolNames:s=null,model:t=null,connectionId:u=null,body:v=null,onStreamComplete:w=null,apiKey:x=null,credentials:y=null,abortSignal:z=null}=a,A="",B=null,C=null,D=a=>{if(C||!a||"object"!=typeof a)return;let b=a.error||a.response?.error;if(!b)return;let c="string"==typeof b?b:String(b.message||b.type||b.error?.message||b.code||""),d=Number("object"==typeof b?b.status??b.code:null)||null;(c||d)&&(C={message:(c||"Upstream stream error").slice(0,300),status:d})},E=new TextDecoder("utf-8",{fatal:!1}),F=b===l?{...(0,d.Ws)(o),provider:p,toolNameMap:r,customToolNames:new Set(s||[]),model:t,sessionId:y?._clientSessionId||null,targetFormat:c}:null,G=0,H="",I="",J=null,K=0,L=0,M={},N=null,O=!1,P=!1,Q=!1,R=!1,S=null,T=null,U=(a=!1)=>{if(S&&(clearTimeout(S),S=null),z&&T&&(z.removeEventListener("abort",T),T=null),R)return;R=!0;let d=b===m,f=d?B:F?.usage;!(0,g.Gh)(f)&&G>0&&(f=(0,g.OF)(v,G,d?e.h.OPENAI:o),d?B=f:F.usage=f),(0,g.Gh)(f)&&(0,g.IF)(d?p:F?.provider||c,f,t,u,x),w&&w({content:H,thinking:I},f,J,{aborted:a,streamError:C})};z&&(z.aborted?U(!0):(T=()=>U(!0),z.addEventListener("abort",T,{once:!0})));let V=a=>{for(let b of(0,d.Y8)(c,o,null,F)||[]){if(null==b)continue;let c=(0,h.v8)(b,o);q?.appendConvertedChunk?.(c),a.enqueue(k.encode(c)),L++}U()};return new TransformStream({transform(a,f){J||(J=Date.now());let n=E.decode(a,{stream:!0});A+=n,q?.appendProviderChunk?.(n);let p=A.split("\n");for(let a of(A=p.pop()||"",p)){let n=a.trim();if(j.T&&n&&(K++,n.startsWith("event:"))){let a=n.slice(6).trim();M[a]=(M[a]||0)+1}if(b===l&&c===e.h.OPENAI_RESPONSES&&n.startsWith("event:")&&(N=n.slice(6).trim()),b===m){let b,c=!1,d=!1,j=n.startsWith("data:")&&"[DONE]"===n.slice(5).trim();if(j&&(Q=!0),n.startsWith("data:")&&!j)try{let a=JSON.parse(n.slice(5).trim());D(a);let f=(0,h.A4)(a),j=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",j=!0),a.created||(a.created=Math.floor(Date.now()/1e3),j=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,j=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,j=!0);if(a?.choices)for(let b of a.choices)b.delta?.tool_calls&&Array.isArray(b.delta.tool_calls)&&0===b.delta.tool_calls.length&&(delete b.delta.tool_calls,j=!0);if(!(0,h.c2)(a,e.h.OPENAI))continue;let k=a.choices?.[0]?.delta,l=k?.content,m=k?.reasoning_content;l&&"string"==typeof l&&(G+=l.length,H+=l),m&&"string"==typeof m&&(G+=m.length,I+=m);let o=(0,g.f5)(a);o&&(B=(0,g._L)(B,o)),d=(0,i.nu)(N,a);let p=a.choices?.[0]?.finish_reason;if(p&&!(0,g.Gh)(a.usage))if((0,g.Gh)(B))a.usage=(0,g.WL)((0,g.O9)(B),e.h.OPENAI),b=`data: ${JSON.stringify(a)}
4
+ `,c=!0;else{let d=(0,g.OF)(v,G,e.h.OPENAI);a.usage=(0,g.WL)((0,g.O9)(d),e.h.OPENAI),b=`data: ${JSON.stringify(a)}
5
+ `,B=d,c=!0}else if(p&&B){let d=(0,g.O9)(B);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
6
+ `,c=!0}else(f||j)&&(b=`data: ${JSON.stringify(a)}
7
+ `,c=!0)}catch{continue}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),q?.appendConvertedChunk?.(b),f.enqueue(k.encode(b)),d&&U();continue}if(!n)continue;let p=(0,h.tV)(n,c);if(!p)continue;D(p);let r=c===e.h.OPENAI_RESPONSES,s=r&&o===e.h.OPENAI_RESPONSES,t=r?(0,i.yx)(N,p):null;if(r&&(0,i.nu)(t,p)&&(O=!0),p&&p.done&&c!==e.h.OLLAMA){if(c===e.h.OPENAI&&o===e.h.OPENAI_RESPONSES&&F.completionPending&&!F.completedSent&&V(f),s&&!O){let a=(0,i.u9)();q?.appendConvertedChunk?.(a),f.enqueue(k.encode(a)),O=!0,L++}if(s&&!Q){let a="data: [DONE]\n\n";q?.appendConvertedChunk?.(a),f.enqueue(k.encode(a))}Q=!0,s&&(P=!0);continue}if(p.delta?.text&&(G+=p.delta.text.length,H+=p.delta.text),p.delta?.thinking&&(G+=p.delta.thinking.length,I+=p.delta.thinking),p.choices?.[0]?.delta?.content&&(G+=p.choices[0].delta.content.length,H+=p.choices[0].delta.content),p.choices?.[0]?.delta?.reasoning_content&&(G+=p.choices[0].delta.reasoning_content.length,I+=p.choices[0].delta.reasoning_content),p.candidates?.[0]?.content?.parts)for(let a of p.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(G+=a.text.length,!0===a.thought?I+=a.text:H+=a.text);let u=(0,g.f5)(p);if(u&&(F.usage=(0,g._L)(F.usage,u)),s&&t){let a=(0,h.v8)({event:t,data:p},o);q?.appendConvertedChunk?.(a),f.enqueue(k.encode(a)),N=null,L++,O&&U();continue}N=null;let w=(0,d.Y8)(c,o,p,F);if(q?.sessionPath&&w?._openaiIntermediate)for(let a of w._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);q?.appendOpenAIChunk?.(b)}if(w?.length>0)for(let a of w){if(null==a||!(0,h.c2)(a,o))continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(F.finishReason&&b&&!(0,g.Gh)(a.usage)&&G>0){let b=(0,g.OF)(v,G,o);a.usage=(0,g.WL)((0,g.O9)(b),o),F.usage=b}else if(F.finishReason&&b&&F.usage){let b=(0,g.O9)(F.usage);a.usage=(0,g.WL)(b,o)}let c=(0,h.v8)(a,o);q?.appendConvertedChunk?.(c),f.enqueue(k.encode(c)),L++}c===e.h.OPENAI&&o===e.h.OPENAI_RESPONSES&&F?.completionPending&&!F?.completedSent&&!S&&(S=setTimeout(()=>{if(S=null,!F?.completedSent)try{V(f)}catch{}},3e3))}},flush(a){let l=Object.entries(M).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,j.s)("SSE",`flush | provider=${p} | model=${t} | recvLines=${K} | emitted=${L} | events=[${l}]`),(0,f.uw)(t,p,u,!1,!!C);try{let f=E.decode();if(f&&(A+=f),b===m){if(A){if(A.startsWith("data:"))try{D(JSON.parse(A.slice(5).trim()))}catch{}let b=A;A.startsWith("data:")&&!A.startsWith("data: ")&&(b="data: "+A.slice(5)),q?.appendConvertedChunk?.(b),a.enqueue(k.encode(b))}let b="antigravity"===p||"gemini"===p||"vertex"===p;if(!Q&&!b){let b="data: [DONE]\n\n";q?.appendConvertedChunk?.(b),a.enqueue(k.encode(b))}U();return}if(A.trim()){let b=(0,h.tV)(A.trim(),c),f=b?.done&&c!==e.h.OLLAMA;if(b&&!f){D(b);let f=(0,g.f5)(b);f&&(F.usage=(0,g._L)(F.usage,f));let i=(0,d.Y8)(c,o,b,F);if(i?._openaiIntermediate)for(let a of i._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);q?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i){if(null==b)continue;let c=(0,h.v8)(b,o);q?.appendConvertedChunk?.(c),a.enqueue(k.encode(c))}}}let j=(0,d.Y8)(c,o,null,F);if(j?._openaiIntermediate)for(let a of j._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);q?.appendOpenAIChunk?.(b)}if(j?.length>0)for(let b of j){if(null==b)continue;let c=(0,h.v8)(b,o);q?.appendConvertedChunk?.(c),a.enqueue(k.encode(c))}let l=c===e.h.OPENAI_RESPONSES&&o===e.h.OPENAI_RESPONSES;if(l&&!O){let b=(0,i.u9)();q?.appendConvertedChunk?.(b),a.enqueue(k.encode(b)),O=!0}if(l&&!P&&!Q){let b="data: [DONE]\n\n";q?.appendConvertedChunk?.(b),a.enqueue(k.encode(b)),P=!0,Q=!0}U()}catch(a){console.log("Error in flush:",a),U()}}})}function o(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null,m=null,p=null){return n({mode:l,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,customToolNames:k,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j,credentials:m,abortSignal:p})}function p(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null){return n({mode:m,provider:a,reqLogger:b,model:c,connectionId:d,body:e,onStreamComplete:f,apiKey:g,abortSignal:h})}},86171:(a,b,c)=>{c.d(b,{$R:()=>k,Fo:()=>i,MK:()=>j,U$:()=>l,V4:()=>n,qr:()=>m});var d=c(47370),e=c(71857),f=c(73483),g=c(41004);let h=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function i(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of h)void 0!==a[b]&&(c[b]=a[b]);return c}function j(a){if(!a||"object"!=typeof a)return null;if(a.usage?.input_tokens!==void 0)return{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cached_tokens:a.usage.cached_tokens??a.usage.input_tokens_details?.cached_tokens,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens};if(a.usage?.prompt_tokens!==void 0)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.cached_tokens??a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens};let b=a.usageMetadata||a.response?.usageMetadata;if(b)return{prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,cached_tokens:b.cachedContentTokenCount||0,reasoning_tokens:b.thoughtsTokenCount||0};if(!0===a.done&&(void 0!==a.prompt_eval_count||void 0!==a.eval_count)){let b=a.prompt_eval_count||0,c=a.eval_count||0;return{prompt_tokens:b,completion_tokens:c,total_tokens:b+c,cached_tokens:a.prompt_eval_cached_count||0}}return null}function k(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},pxpipe:a.pxpipe||void 0,status:a.status||"success",...b}}function l({usage:a,latency:b}){let c=a||{},d=c.prompt_tokens??c.input_tokens??0,e=c.completion_tokens??c.output_tokens??0,f=c.cache_read_input_tokens??c.cached_tokens??c.prompt_tokens_details?.cached_tokens??0,g=c.cache_creation_input_tokens??0,h=`IN ${d}`;if(f||g){let a=[];f&&a.push(`↻${f}`),g&&a.push(`+${g}`),h+=` (CACHE ${a.join(" ")})`}let i=b?.ttft?` \xb7 TTFT ${b.ttft}ms`:"",j="";if(Number.isFinite(b?.prep)){let a=[b.media?`m${b.media}`:"",b.translate?`t${b.translate}`:"",b.savers?`s${b.savers}`:""].filter(Boolean).join("/");j=` \xb7 PREP ${b.prep}ms${a?`(${a})`:""}`}return`DONE ${b?.total??0}ms${i}${j} \xb7 ${h} \xb7 OUT ${e}`}function m({provider:a,model:b,tokens:c,connectionId:g,apiKey:h,endpoint:i,label:j="USAGE",silent:k=!1,status:l}){let n=!!c&&"object"==typeof c,o=n?c.input_tokens??c.prompt_tokens??0:0,p=n?c.output_tokens??c.completion_tokens??0:0;if(!l&&0===o&&0===p)return;if(!k){let b=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),c=g?` | account=${g.slice(0,8)}...`:"";console.log(`${e.lm.green}[${b}] 📊 [${j}] ${a.toUpperCase()} | in=${o} | out=${p}${c}${e.lm.reset}`)}let q=(0,f._6)(c)||{prompt_tokens:o,completion_tokens:p};(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:q,timestamp:new Date().toISOString(),connectionId:g||void 0,apiKey:h||void 0,endpoint:i||null,status:l||void 0}).catch(()=>{})}function n({provider:a,model:b,connectionId:c,apiKey:d,endpoint:e,status:f}){Number(f)!==g.gx.CLIENT_CLOSED_REQUEST&&m({provider:a,model:b,tokens:null,connectionId:c,apiKey:d,endpoint:e,silent:!0,status:`FAILED ${f||g.gx.BAD_GATEWAY}`})}}};