9router-proxy 0.6.8 → 0.6.10

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 (463) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +20 -20
  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 +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  55. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  62. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  63. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  64. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  65. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  66. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  78. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  91. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  93. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  99. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  101. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -2
  107. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  112. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  114. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  116. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  118. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  120. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  237. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  298. package/app/.next-cli-build/server/app/callback.html +1 -1
  299. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  300. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  301. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  303. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  305. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  306. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  307. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  310. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  311. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  312. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  315. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  316. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  317. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  319. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  320. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  321. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  322. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  325. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  326. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  327. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  329. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  330. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  331. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  332. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  335. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  336. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  337. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  340. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  341. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  342. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  345. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  346. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  347. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  350. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  351. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  352. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  353. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  355. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  356. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  357. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  359. package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  360. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  361. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  362. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  367. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  368. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  369. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  370. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  371. package/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  372. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  373. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  374. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  376. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  377. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  378. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  379. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  381. package/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  382. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  383. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  384. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  386. package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  387. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  388. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  389. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  390. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  391. package/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  392. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  393. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  394. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  395. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/index.html +1 -1
  397. package/app/.next-cli-build/server/app/index.rsc +3 -3
  398. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  399. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  400. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  401. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  403. package/app/.next-cli-build/server/app/landing.html +1 -1
  404. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  405. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  406. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  407. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  408. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  410. package/app/.next-cli-build/server/app/login.html +1 -1
  411. package/app/.next-cli-build/server/app/login.rsc +3 -3
  412. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  413. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  414. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  415. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  418. package/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  419. package/app/.next-cli-build/server/chunks/1051.js +1 -1
  420. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  421. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  422. package/app/.next-cli-build/server/chunks/1836.js +17 -0
  423. package/app/.next-cli-build/server/chunks/2132.js +1 -1
  424. package/app/.next-cli-build/server/chunks/2375.js +1 -1
  425. package/app/.next-cli-build/server/chunks/3210.js +1 -1
  426. package/app/.next-cli-build/server/chunks/3711.js +1 -1
  427. package/app/.next-cli-build/server/chunks/{4957.js → 3811.js} +1 -1
  428. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  429. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  430. package/app/.next-cli-build/server/chunks/5026.js +1 -1
  431. package/app/.next-cli-build/server/chunks/5330.js +2 -10
  432. package/app/.next-cli-build/server/chunks/5615.js +2 -2
  433. package/app/.next-cli-build/server/chunks/614.js +2 -2
  434. package/app/.next-cli-build/server/chunks/6171.js +7 -0
  435. package/app/.next-cli-build/server/chunks/7525.js +1 -1
  436. package/app/.next-cli-build/server/chunks/7557.js +1 -1
  437. package/app/.next-cli-build/server/chunks/7843.js +1 -1
  438. package/app/.next-cli-build/server/chunks/8499.js +2 -2
  439. package/app/.next-cli-build/server/chunks/869.js +1 -1
  440. package/app/.next-cli-build/server/chunks/8895.js +7 -13
  441. package/app/.next-cli-build/server/chunks/9100.js +2 -2
  442. package/app/.next-cli-build/server/chunks/9604.js +1 -1
  443. package/app/.next-cli-build/server/chunks/9609.js +1 -1
  444. package/app/.next-cli-build/server/chunks/9696.js +1 -1
  445. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  447. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/pages/404.html +1 -1
  449. package/app/.next-cli-build/server/pages/500.html +1 -1
  450. package/app/.next-cli-build/server/preview-props.json +3 -3
  451. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  452. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  453. package/app/.next-cli-build/static/chunks/1321-c14ab5f20e75ec51.js +1 -0
  454. package/app/.next-cli-build/static/chunks/5497-76da5aae5c912ea5.js +7 -0
  455. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-ad6e72e4fa047b21.js → page-85d183456bb818fb.js} +1 -1
  456. package/app/package.json +1 -1
  457. package/package.json +1 -1
  458. package/app/.next-cli-build/server/chunks/6249.js +0 -9
  459. package/app/.next-cli-build/server/chunks/7552.js +0 -1
  460. package/app/.next-cli-build/static/chunks/1321-fdac938522ce514f.js +0 -1
  461. package/app/.next-cli-build/static/chunks/5497-35a0641d4dcc62d5.js +0 -7
  462. /package/app/.next-cli-build/static/{Lcce6agtXL-TudJa8EdML → 1OwkUVIMD7I3wwdhcBzuQ}/_buildManifest.js +0 -0
  463. /package/app/.next-cli-build/static/{Lcce6agtXL-TudJa8EdML → 1OwkUVIMD7I3wwdhcBzuQ}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2134],{56828:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ee});var i=s(95155),a=s(12115),l=s(73321),r=s(98500),n=s.n(r),o=s(5772),d=s(8247),c=s(35497),m=s(88105),p=s(28777),u=s(67899),x=s(62630);s(67468),s(60950);var h=s(13097);let f=["none","low","medium","high"],g=["none","thinking"],y=["none","low","medium","high","xhigh","max"],b={openai:["none","minimal","low","medium","high","xhigh"],"claude-adaptive":y,"claude-budget":y,"gemini-level":["minimal","low","medium","high"],"gemini-budget":f,zai:g,qwen:f,kimi:["none","low","medium","high","max"],deepseek:["none","high","max"],commandcode:["none","low","medium","high","xhigh","max"],minimax:g,hunyuan:f,step:f},v=["none","minimal","low","medium","high","xhigh","max"],j=["none","low","medium","high","max"],w=[{pattern:"*claude*4.6*",levels:j},{pattern:"*claude*4-6*",levels:j},{provider:"codex",pattern:"*gpt-6*",levels:v},{provider:"codex",pattern:"*gpt-5.6-sol*",levels:[...v,"ultra"]},{provider:"codex",pattern:"*gpt-5.6-terra*",levels:[...v,"ultra"]},{provider:"codex",pattern:"*gpt-5.6-luna*",levels:v},{pattern:"*codex*",levels:["low","medium","high","xhigh"]},{pattern:"*mimo*v2.6*",levels:["none","low","medium","high","xhigh"]},{pattern:"*mimo*v2.5-pro*",levels:["none","low","medium","high","xhigh"]},{provider:"codebuddy-cn",pattern:"deepseek-v4-pro",levels:["low","high","xhigh"]},{provider:"codebuddy-cn",pattern:"deepseek-v4.1-flash",levels:["low","high","max"]},{pattern:"*deepseek-v4.*",levels:["none","low","medium","high","xhigh","max"]},{provider:"codebuddy-cn",pattern:"glm-5.3",levels:["low","high","max"]},{provider:"codebuddy-cn",pattern:"glm-5.3-flash",levels:["low","high","max"]},{provider:"codebuddy-cn",pattern:"glm-5.2",levels:["high","xhigh"]},{provider:"codebuddy-cn",pattern:"kimi-k2.8-preview",levels:["low","medium","high"]},{provider:"codebuddy-cn",pattern:"hy3",levels:["low","high"]},{provider:"codebuddy-cn",pattern:"hy4-preview",levels:["high"]},{provider:"codebuddy-intl",pattern:"deepseek-v4*",levels:["low","high","xhigh"]},{provider:"minimax-code",pattern:"MiniMax-M3.1*",levels:["low","medium","high","xhigh","max"]},{provider:"minimax-code",pattern:"MiniMax-M3",levels:["none","high"]},{provider:"minimax-code-global",pattern:"MiniMax-M3.1*",levels:["low","medium","high","xhigh","max"]},{provider:"minimax-code-global",pattern:"MiniMax-M3",levels:["none","high"]}];function k(e,t){if("kiro"===e&&null===function(e){if("string"!=typeof e)return null;let t=e.toLowerCase().replace(/-/g,".");if(/(?:^|[/.])gpt[/.]5[/.]6(?:[/.]|$)/.test(t))return"reasoning";if(!t.includes("claude"))return null;let s=function(e){if("string"!=typeof e)return null;let t=e.toLowerCase().replace(/-/g,".").match(/(?:^|[/.])claude(?:[/.][a-z]+)*[/.](\d+)(?:[/.](\d+))?(?:[/.]|$)/);return t?{major:Number(t[1]),minor:void 0===t[2]?null:Number(t[2])}:null}(e);if(!s)return null;let{major:i,minor:a}=s;return i<4||4===i&&(null===a||a<=5||null!==a&&a>=1e3)?null:"output_config"}(t))return null;let s=(0,u.nl)(e,t);if(!s.reasoning)return null;let i=String(t||"").replace(/\([^()]+\)\s*$/,""),a="codex"===e?(0,h.SM)("cx").find(e=>e.id===i)?.thinkingLevels:null,l=w.find(s=>(!s.provider||s.provider===e)&&(0,x.gH)(s.pattern,t)),r=a||l?.levels||b[s.thinkingFormat]||f;return!1===s.thinkingCanDisable&&(r=r.filter(e=>"none"!==e)),r}var N=s(11059),C=s(929),S=s(73006);let A=new Map;async function T(e){if(!e?.url||!e?.type)return[];let t=A.get(e.url);if(t&&Date.now()<t.expiresAt)return t.data;try{let t=new URLSearchParams({url:e.url,type:e.type}),s=await fetch(`/api/providers/suggested-models?${t}`);if(!s.ok)return[];let i=(await s.json()).data??[];return A.set(e.url,{data:i,expiresAt:Date.now()+6e5}),i}catch{return[]}}var $=s(81231),O=s(14051),P=s.n(O);function I({model:e,fullModel:t,aliases:s,copied:a,onCopy:l,testStatus:r,isCustom:n,isFree:o,onDeleteAlias:d,onTest:m,isTesting:p,onDisable:u,onAddAlias:x,onRemoveAlias:h,caps:f,thinkingSuffix:g}){let y=g?`${t}(${g})`:t,b="ok"===r?"#22c55e":"error"===r?"#ef4444":void 0;return(0,i.jsx)("div",{className:`group w-full sm:w-auto min-w-0 max-w-full rounded-lg border px-3 py-2 ${"ok"===r?"border-green-500/40":"error"===r?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,i.jsxs)("div",{className:"flex min-w-0 items-start gap-2 sm:items-center",children:[(0,i.jsx)("span",{className:"material-symbols-outlined shrink-0 text-base mt-0.5 sm:mt-0",style:b?{color:b}:void 0,children:"ok"===r?"check_circle":"error"===r?"cancel":"smart_toy"}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,i.jsx)("code",{className:"w-fit max-w-full break-all rounded bg-sidebar px-1.5 py-0.5 font-mono text-xs text-text-muted sm:max-w-[360px] sm:truncate",children:y}),(0,i.jsxs)("span",{className:"flex min-w-0 items-center text-[9px] gap-1 pl-1",children:[e.name&&(0,i.jsx)("span",{className:"break-all sm:truncate text-[9px] italic text-text-muted/70",children:e.name}),(0,i.jsx)(c.nh,{caps:f,colorOverride:"text-text-muted/70",size:12})]}),s?.length>0&&(0,i.jsx)("span",{className:"flex min-w-0 flex-wrap items-center gap-1 pl-1",children:s.map(e=>(0,i.jsxs)("span",{className:"flex items-center gap-0.5 rounded bg-sidebar px-1 py-px font-mono text-[9px] text-primary/80",children:[e,h&&(0,i.jsx)("button",{onClick:()=>h(e),title:"Remove shortcut",className:"text-text-muted hover:text-red-500",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[10px]",children:"close"})})]},e))})]}),(0,i.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5 sm:gap-1",children:[x&&(0,i.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,i.jsx)("button",{onClick:()=>{let e=window.prompt(`Shortcut name for ${y}`,""),t=e?.trim().toLowerCase().replace(/[^a-z0-9_-]/g,"");t&&x(t)},className:"rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-sidebar hover:text-primary sm:opacity-0 sm:group-hover:opacity-100",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"label"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:"Add shortcut"})]}),m&&(0,i.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,i.jsx)("button",{onClick:m,disabled:p,className:`rounded p-0.5 text-text-muted transition-opacity hover:bg-sidebar hover:text-primary ${p?"opacity-100":"opacity-100 sm:opacity-0 sm:group-hover:opacity-100"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",style:p?{animation:"spin 1s linear infinite"}:void 0,children:p?"progress_activity":"science"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:p?"Testing...":"Test"})]}),(0,i.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,i.jsx)("button",{onClick:()=>l(y,`model-${e.id}`),className:"rounded p-0.5 text-text-muted hover:bg-sidebar hover:text-primary",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e.id}`?"check":"content_copy"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e.id}`?"Copied!":"Copy"})]}),n?(0,i.jsx)("button",{onClick:d,className:"rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",title:"Remove custom model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})}):u?(0,i.jsx)("button",{onClick:u,className:"rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",title:"Disable this model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})}):null]})]})})}function E({modelId:e,fullModel:t,alias:s,copied:a,onCopy:l,onDeleteAlias:r,onTest:n,testStatus:o,isTesting:d}){let c="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,i.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:c?{color:c}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"text-sm font-medium truncate",children:e}),(0,i.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,i.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),s&&(0,i.jsx)("span",{className:"rounded bg-sidebar px-1 py-0.5 font-mono text-[9px] text-primary/80",children:s}),(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:()=>l(t,`model-${e}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e}`?"check":"content_copy"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e}`?"Copied!":"Copy"})]}),n&&(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:n,disabled:d,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",style:d?{animation:"spin 1s linear infinite"}:void 0,children:d?"progress_activity":"science"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:d?"Testing...":"Test"})]})]})]}),(0,i.jsx)("button",{onClick:r,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function R({providerStorageAlias:e,providerDisplayAlias:t,modelAliases:s,customModels:l,copied:r,onCopy:n,onDeleteAlias:o,onAddCustomModel:d,onDeleteCustomModel:m,connections:p,isAnthropic:u}){let[x,h]=(0,a.useState)(""),[f,g]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[v,j]=(0,a.useState)(null),[w,k]=(0,a.useState)({}),N=async t=>{if(!v){j(t);try{let s=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${e}/${t}`})}),i=await s.json();k(e=>({...e,[t]:i.ok?"ok":"error"}))}catch{k(e=>({...e,[t]:"error"}))}finally{j(null)}}},C=(0,$.R)({customModels:l,modelAliases:s,providerAlias:e,type:"llm"}),S=async()=>{if(!x.trim()||f)return;let e=x.trim();if(C.some(t=>t.id===e))return void alert("Model already exists for this provider.");g(!0);try{await d(e),h("")}catch(e){console.log("Error adding model:",e)}finally{g(!1)}},A=async()=>{if(y)return;let e=p.find(e=>!1!==e.isActive);if(e){b(!0);try{let t=await fetch(`/api/providers/${e.id}/models`),s=await t.json();if(!t.ok)return void alert(s.error||"Failed to import models");let i=s.models||[];if(0===i.length)return void alert("No models returned from /models.");let a=0;for(let e of i){let t=e.id||e.name||e.model;t&&(C.some(e=>e.id===t)||(await d(t),a+=1))}0===a&&alert("No new models were added.")}catch(e){console.log("Error importing models:",e)}finally{b(!1)}}},T=p.some(e=>!1!==e.isActive);return(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",u?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,i.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,i.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,i.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,i.jsx)("input",{id:"new-compatible-model-input",type:"text",value:x,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&S(),placeholder:u?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,i.jsx)(c.$n,{size:"sm",icon:"add",onClick:S,disabled:!x.trim()||f,children:f?"Adding...":"Add"}),(0,i.jsx)(c.$n,{size:"sm",variant:"secondary",icon:"download",onClick:A,disabled:!T||y,children:y?"Importing...":"Import from /models"})]}),!T&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),C.length>0&&(0,i.jsx)("div",{className:"flex flex-col gap-3",children:C.map(({id:s,alias:a,source:l})=>(0,i.jsx)(E,{modelId:s,alias:a,fullModel:`${t}/${s}`,copied:r,onCopy:n,onDeleteAlias:()=>"custom"===l?m(s):o(a),onTest:p.length>0?()=>N(s):void 0,testStatus:w[s],isTesting:v===s},`${l}-${e}/${s}`))})]})}I.propTypes={model:P().shape({id:P().string.isRequired}).isRequired,fullModel:P().string.isRequired,aliases:P().arrayOf(P().string),copied:P().string,onCopy:P().func.isRequired,testStatus:P().oneOf(["ok","error"]),isCustom:P().bool,isFree:P().bool,onDeleteAlias:P().func,onTest:P().func,isTesting:P().bool,onDisable:P().func,onAddAlias:P().func,onRemoveAlias:P().func,caps:P().object,thinkingSuffix:P().string},P().string.isRequired,P().string.isRequired,P().string,P().func.isRequired,P().func.isRequired,P().func,P().oneOf(["ok","error"]),P().bool,P().string.isRequired,P().object.isRequired,P().arrayOf(P().object),P().string,P().func.isRequired,P().func.isRequired,P().func.isRequired,P().func.isRequired,R.propTypes={providerStorageAlias:P().string.isRequired,providerDisplayAlias:P().string.isRequired,modelAliases:P().object.isRequired,customModels:P().arrayOf(P().object),copied:P().string,onCopy:P().func.isRequired,onDeleteAlias:P().func.isRequired,onAddCustomModel:P().func.isRequired,onDeleteCustomModel:P().func.isRequired,connections:P().arrayOf(P().shape({id:P().string,isActive:P().bool})).isRequired,isAnthropic:P().bool};var D=s(70217);function _({until:e}){let[t,s]=(0,a.useState)("");return((0,a.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let i=Math.floor(t/1e3);if(i<60)s(`${i}s`);else if(i<3600)s(`${Math.floor(i/60)}m ${i%60}s`);else{let e=Math.floor(i/3600),t=Math.floor(i%3600/60);s(`${e}h ${t}m`)}};t();let i=setInterval(t,1e3);return()=>clearInterval(i)},[e]),t)?(0,i.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function z({connection:e,proxyPools:t,isOAuth:s,isFirst:l,isLast:r,onMoveUp:n,onMoveDown:o,onToggleActive:d,onUpdateProxy:m,onEdit:p,onDelete:u,oneByOneStatus:x=null,autoPing:h=null}){let[f,g]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),v=(0,a.useRef)(null),j=new Map((t||[]).map(e=>[e.id,e])),w=e.providerSpecificData?.proxyPoolId||null,k=w?j.get(w):null,N=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,C=!!w||N,S=k?`Pool: ${k.name}`:w?`Pool: ${w} (inactive/missing)`:N?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",A=h?.provider==="codex"?"Auto-starts the next 5h Codex window after reset by sending a tiny gpt-5.5 request. Consumes a small amount of quota.":"When your 5h quota runs out, auto-sends a request the moment it resets so a new window starts right away.",T="";if(k?.proxyUrl||e.providerSpecificData?.connectionProxyUrl){let t=k?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;try{let e=new URL(t);T=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{T=t}}let $=k?.noProxy||e.providerSpecificData?.connectionNoProxy||"",O="default";k?.isActive===!0?O="success":(w||N)&&(O="error"),(0,a.useEffect)(()=>{if(!f)return;let e=e=>{v.current&&!v.current.contains(e.target)&&g(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[f]);let P=async e=>{b(!0);try{await m("__none__"===e?null:e)}finally{b(!1),g(!1)}},I=e.authType||(s?"oauth":"apikey"),E="oauth"===I,R="cookie"===I,q=e.name?.trim()||e.email?.trim()||e.displayName?.trim()||(E?"OAuth Account":R?"Cookie Account":"API Key"),M=e.name?.trim()&&e.email?.trim()&&e.name.trim()!==e.email.trim()?e.email.trim():e.name?.trim()&&e.displayName?.trim()&&e.name.trim()!==e.displayName.trim()?e.displayName.trim():null,[U,K]=(0,a.useState)(!1),F=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,a.useEffect)(()=>{let t=()=>{K(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let s=F?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[F]);let J="unavailable"!==e.testStatus||U?e.testStatus:"active",L=()=>x?"queued"===x.state?"queued":"testing"===x.state?"testing":"success"===x.state?"success":"failed"===x.state?x.error?`failed: ${x.error}`:"failed":null:null;return(0,i.jsxs)("div",{className:`group flex min-w-0 flex-col gap-3 rounded-lg p-2 transition-colors hover:bg-black/[0.02] dark:hover:bg-white/[0.02] sm:flex-row sm:items-center sm:justify-between ${!1===e.isActive?"opacity-60":""}`,children:[(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-2 sm:items-center sm:gap-3",children:[(0,i.jsxs)("div",{className:"flex shrink-0 flex-col",children:[(0,i.jsx)("button",{onClick:n,disabled:l,className:`p-0.5 rounded ${l?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,i.jsx)("button",{onClick:o,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,i.jsx)("span",{className:"material-symbols-outlined shrink-0 text-base text-text-muted",children:R?"cookie":E?"lock":"key"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"text-sm font-medium truncate",children:q}),M&&(0,i.jsx)("p",{className:"text-xs text-text-muted truncate",children:M}),(0,i.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1.5 sm:gap-2",children:[(0,i.jsx)(c.Ex,{variant:(0,D.g)(e.isActive,J),size:"sm",dot:!0,children:!1===e.isActive?"disabled":J||"Unknown"}),(0,i.jsx)(c.Ex,{variant:"default",size:"sm",children:E?"OAuth":R?"Cookie":"API Key"}),C&&(0,i.jsx)(c.Ex,{variant:O,size:"sm",children:"Proxy"}),U&&!1!==e.isActive&&(0,i.jsx)(_,{until:F}),e.lastError&&!1!==e.isActive&&(0,i.jsx)("span",{className:"max-w-full truncate text-xs text-red-500 sm:max-w-[300px]",title:e.lastError,children:e.lastError}),(0,i.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]}),e.globalPriority&&(0,i.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",e.globalPriority]}),L()&&(0,i.jsx)(c.Ex,{variant:x?"success"===x.state?"success":"failed"===x.state?"error":"testing"===x.state?"primary":"default":"default",size:"sm",children:L()})]}),C&&(0,i.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,i.jsx)("span",{className:"max-w-full truncate text-[11px] text-text-muted sm:max-w-[420px]",title:S,children:S}),T&&(0,i.jsx)("code",{className:"max-w-full truncate rounded bg-black/5 px-1 py-0.5 font-mono text-[10px] text-text-muted dark:bg-white/5 sm:max-w-[260px]",children:T}),$&&(0,i.jsxs)("span",{className:"max-w-full truncate text-[11px] text-text-muted sm:max-w-[320px]",title:$,children:["no_proxy: ",$]})]})]})]}),(0,i.jsxs)("div",{className:"flex w-full items-center justify-between gap-2 sm:w-auto sm:justify-end",children:[(0,i.jsxs)("div",{className:"grid flex-1 grid-cols-3 gap-1 sm:flex sm:flex-none",children:[(t||[]).length>0&&(0,i.jsxs)("div",{className:"relative",ref:v,children:[(0,i.jsxs)("button",{onClick:()=>g(e=>!e),className:`flex w-full flex-col items-center rounded px-2 py-1 transition-colors hover:bg-black/5 dark:hover:bg-white/5 ${C?"text-primary":"text-text-muted hover:text-primary"}`,disabled:y,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:y?"progress_activity":"lan"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),f&&(0,i.jsxs)("div",{className:"absolute right-0 top-full z-50 mt-1 max-w-[78vw] min-w-[160px] rounded-lg border border-border bg-bg py-1 shadow-lg",children:[(0,i.jsx)("button",{onClick:()=>P("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!w?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,i.jsx)("button",{onClick:()=>P(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${w===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),h&&(0,i.jsx)(c.m_,{text:A,children:(0,i.jsxs)("button",{onClick:()=>h.onToggle(!h.on),className:`flex w-full flex-col items-center rounded px-2 py-1 transition-colors hover:bg-black/5 dark:hover:bg-white/5 ${h.on?"text-primary":"text-text-muted hover:text-primary"}`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"bolt"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Auto-ping"})]})}),(0,i.jsxs)("button",{onClick:p,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,i.jsxs)("button",{onClick:u,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 hover:bg-red-500/10",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,i.jsx)(c.lM,{size:"sm",checked:e.isActive??!0,onChange:d,title:e.isActive??!0?"Disable connection":"Enable connection"})]})]})}_.propTypes={until:P().string.isRequired},z.propTypes={connection:P().shape({id:P().string,name:P().string,email:P().string,displayName:P().string,modelLockUntil:P().string,testStatus:P().string,isActive:P().bool,lastError:P().string,priority:P().number,globalPriority:P().number}).isRequired,proxyPools:P().arrayOf(P().shape({id:P().string,name:P().string,proxyUrl:P().string,noProxy:P().string,isActive:P().bool})),isOAuth:P().bool.isRequired,isFirst:P().bool.isRequired,isLast:P().bool.isRequired,onMoveUp:P().func.isRequired,onMoveDown:P().func.isRequired,onToggleActive:P().func.isRequired,onUpdateProxy:P().func,onEdit:P().func.isRequired,onDelete:P().func.isRequired,oneByOneStatus:P().shape({state:P().string,error:P().string}),autoPing:P().shape({on:P().bool,onToggle:P().func,provider:P().string})};let q=`name1|sk-key1
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2134],{56828:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ee});var i=s(95155),a=s(12115),l=s(73321),r=s(98500),n=s.n(r),o=s(5772),d=s(8247),c=s(35497),m=s(88105),p=s(28777),u=s(67899),x=s(62630);s(67468),s(60950);var h=s(13097);let f=["none","low","medium","high"],g=["none","thinking"],y=["none","low","medium","high","xhigh","max"],b={openai:["none","minimal","low","medium","high","xhigh"],"claude-adaptive":y,"claude-budget":y,"gemini-level":["minimal","low","medium","high"],"gemini-budget":f,zai:g,qwen:f,kimi:["none","low","medium","high","max"],deepseek:["none","high","max"],commandcode:["none","low","medium","high","xhigh","max"],minimax:g,hunyuan:f,step:f},v=["none","minimal","low","medium","high","xhigh","max"],j=["none","low","medium","high","max"],w=[{pattern:"*claude*4.6*",levels:j},{pattern:"*claude*4-6*",levels:j},{provider:"codex",pattern:"*gpt-6*",levels:v},{provider:"codex",pattern:"*gpt-5.6-sol*",levels:[...v,"ultra"]},{provider:"codex",pattern:"*gpt-5.6-terra*",levels:[...v,"ultra"]},{provider:"codex",pattern:"*gpt-5.6-luna*",levels:v},{pattern:"*codex*",levels:["low","medium","high","xhigh"]},{provider:"opencode",pattern:"*mimo*v2.6*",levels:["none"]},{pattern:"*mimo*v2.6*",levels:["none","low","medium","high","xhigh"]},{pattern:"*mimo*v2.5-pro*",levels:["none","low","medium","high","xhigh"]},{provider:"codebuddy-cn",pattern:"deepseek-v4-pro",levels:["low","high","xhigh"]},{provider:"codebuddy-cn",pattern:"deepseek-v4.1-flash",levels:["low","high","max"]},{pattern:"*deepseek-v4.*",levels:["none","low","medium","high","xhigh","max"]},{provider:"codebuddy-cn",pattern:"glm-5.3",levels:["low","high","max"]},{provider:"codebuddy-cn",pattern:"glm-5.3-flash",levels:["low","high","max"]},{provider:"codebuddy-cn",pattern:"glm-5.2",levels:["high","xhigh"]},{provider:"codebuddy-cn",pattern:"kimi-k2.8-preview",levels:["low","medium","high"]},{provider:"codebuddy-cn",pattern:"hy3",levels:["low","high"]},{provider:"codebuddy-cn",pattern:"hy4-preview",levels:["high"]},{provider:"codebuddy-intl",pattern:"deepseek-v4*",levels:["low","high","xhigh"]},{provider:"minimax-code",pattern:"MiniMax-M3.1*",levels:["low","medium","high","xhigh","max"]},{provider:"minimax-code",pattern:"MiniMax-M3",levels:["none","high"]},{provider:"minimax-code-global",pattern:"MiniMax-M3.1*",levels:["low","medium","high","xhigh","max"]},{provider:"minimax-code-global",pattern:"MiniMax-M3",levels:["none","high"]}];function k(e,t){if("kiro"===e&&null===function(e){if("string"!=typeof e)return null;let t=e.toLowerCase().replace(/-/g,".");if(/(?:^|[/.])gpt[/.]5[/.]6(?:[/.]|$)/.test(t))return"reasoning";if(!t.includes("claude"))return null;let s=function(e){if("string"!=typeof e)return null;let t=e.toLowerCase().replace(/-/g,".").match(/(?:^|[/.])claude(?:[/.][a-z]+)*[/.](\d+)(?:[/.](\d+))?(?:[/.]|$)/);return t?{major:Number(t[1]),minor:void 0===t[2]?null:Number(t[2])}:null}(e);if(!s)return null;let{major:i,minor:a}=s;return i<4||4===i&&(null===a||a<=5||null!==a&&a>=1e3)?null:"output_config"}(t))return null;let s=(0,u.nl)(e,t);if(!s.reasoning)return null;let i=String(t||"").replace(/\([^()]+\)\s*$/,""),a="codex"===e?(0,h.SM)("cx").find(e=>e.id===i)?.thinkingLevels:null,l=w.find(s=>(!s.provider||s.provider===e)&&(0,x.gH)(s.pattern,t)),r=a||l?.levels||b[s.thinkingFormat]||f;return!1===s.thinkingCanDisable&&(r=r.filter(e=>"none"!==e)),r}var N=s(11059),C=s(929),S=s(73006);let A=new Map;async function T(e){if(!e?.url||!e?.type)return[];let t=A.get(e.url);if(t&&Date.now()<t.expiresAt)return t.data;try{let t=new URLSearchParams({url:e.url,type:e.type}),s=await fetch(`/api/providers/suggested-models?${t}`);if(!s.ok)return[];let i=(await s.json()).data??[];return A.set(e.url,{data:i,expiresAt:Date.now()+6e5}),i}catch{return[]}}var $=s(81231),O=s(14051),P=s.n(O);function I({model:e,fullModel:t,aliases:s,copied:a,onCopy:l,testStatus:r,isCustom:n,isFree:o,onDeleteAlias:d,onTest:m,isTesting:p,onDisable:u,onAddAlias:x,onRemoveAlias:h,caps:f,thinkingSuffix:g}){let y=g?`${t}(${g})`:t,b="ok"===r?"#22c55e":"error"===r?"#ef4444":void 0;return(0,i.jsx)("div",{className:`group w-full sm:w-auto min-w-0 max-w-full rounded-lg border px-3 py-2 ${"ok"===r?"border-green-500/40":"error"===r?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,i.jsxs)("div",{className:"flex min-w-0 items-start gap-2 sm:items-center",children:[(0,i.jsx)("span",{className:"material-symbols-outlined shrink-0 text-base mt-0.5 sm:mt-0",style:b?{color:b}:void 0,children:"ok"===r?"check_circle":"error"===r?"cancel":"smart_toy"}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,i.jsx)("code",{className:"w-fit max-w-full break-all rounded bg-sidebar px-1.5 py-0.5 font-mono text-xs text-text-muted sm:max-w-[360px] sm:truncate",children:y}),(0,i.jsxs)("span",{className:"flex min-w-0 items-center text-[9px] gap-1 pl-1",children:[e.name&&(0,i.jsx)("span",{className:"break-all sm:truncate text-[9px] italic text-text-muted/70",children:e.name}),(0,i.jsx)(c.nh,{caps:f,colorOverride:"text-text-muted/70",size:12})]}),s?.length>0&&(0,i.jsx)("span",{className:"flex min-w-0 flex-wrap items-center gap-1 pl-1",children:s.map(e=>(0,i.jsxs)("span",{className:"flex items-center gap-0.5 rounded bg-sidebar px-1 py-px font-mono text-[9px] text-primary/80",children:[e,h&&(0,i.jsx)("button",{onClick:()=>h(e),title:"Remove shortcut",className:"text-text-muted hover:text-red-500",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[10px]",children:"close"})})]},e))})]}),(0,i.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5 sm:gap-1",children:[x&&(0,i.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,i.jsx)("button",{onClick:()=>{let e=window.prompt(`Shortcut name for ${y}`,""),t=e?.trim().toLowerCase().replace(/[^a-z0-9_-]/g,"");t&&x(t)},className:"rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-sidebar hover:text-primary sm:opacity-0 sm:group-hover:opacity-100",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"label"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:"Add shortcut"})]}),m&&(0,i.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,i.jsx)("button",{onClick:m,disabled:p,className:`rounded p-0.5 text-text-muted transition-opacity hover:bg-sidebar hover:text-primary ${p?"opacity-100":"opacity-100 sm:opacity-0 sm:group-hover:opacity-100"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",style:p?{animation:"spin 1s linear infinite"}:void 0,children:p?"progress_activity":"science"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:p?"Testing...":"Test"})]}),(0,i.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,i.jsx)("button",{onClick:()=>l(y,`model-${e.id}`),className:"rounded p-0.5 text-text-muted hover:bg-sidebar hover:text-primary",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e.id}`?"check":"content_copy"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e.id}`?"Copied!":"Copy"})]}),n?(0,i.jsx)("button",{onClick:d,className:"rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",title:"Remove custom model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})}):u?(0,i.jsx)("button",{onClick:u,className:"rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",title:"Disable this model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})}):null]})]})})}function E({modelId:e,fullModel:t,alias:s,copied:a,onCopy:l,onDeleteAlias:r,onTest:n,testStatus:o,isTesting:d}){let c="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,i.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:c?{color:c}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"text-sm font-medium truncate",children:e}),(0,i.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,i.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),s&&(0,i.jsx)("span",{className:"rounded bg-sidebar px-1 py-0.5 font-mono text-[9px] text-primary/80",children:s}),(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:()=>l(t,`model-${e}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e}`?"check":"content_copy"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e}`?"Copied!":"Copy"})]}),n&&(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:n,disabled:d,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",style:d?{animation:"spin 1s linear infinite"}:void 0,children:d?"progress_activity":"science"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:d?"Testing...":"Test"})]})]})]}),(0,i.jsx)("button",{onClick:r,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function R({providerStorageAlias:e,providerDisplayAlias:t,modelAliases:s,customModels:l,copied:r,onCopy:n,onDeleteAlias:o,onAddCustomModel:d,onDeleteCustomModel:m,connections:p,isAnthropic:u}){let[x,h]=(0,a.useState)(""),[f,g]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[v,j]=(0,a.useState)(null),[w,k]=(0,a.useState)({}),N=async t=>{if(!v){j(t);try{let s=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${e}/${t}`})}),i=await s.json();k(e=>({...e,[t]:i.ok?"ok":"error"}))}catch{k(e=>({...e,[t]:"error"}))}finally{j(null)}}},C=(0,$.R)({customModels:l,modelAliases:s,providerAlias:e,type:"llm"}),S=async()=>{if(!x.trim()||f)return;let e=x.trim();if(C.some(t=>t.id===e))return void alert("Model already exists for this provider.");g(!0);try{await d(e),h("")}catch(e){console.log("Error adding model:",e)}finally{g(!1)}},A=async()=>{if(y)return;let e=p.find(e=>!1!==e.isActive);if(e){b(!0);try{let t=await fetch(`/api/providers/${e.id}/models`),s=await t.json();if(!t.ok)return void alert(s.error||"Failed to import models");let i=s.models||[];if(0===i.length)return void alert("No models returned from /models.");let a=0;for(let e of i){let t=e.id||e.name||e.model;t&&(C.some(e=>e.id===t)||(await d(t),a+=1))}0===a&&alert("No new models were added.")}catch(e){console.log("Error importing models:",e)}finally{b(!1)}}},T=p.some(e=>!1!==e.isActive);return(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",u?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,i.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,i.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,i.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,i.jsx)("input",{id:"new-compatible-model-input",type:"text",value:x,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&S(),placeholder:u?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,i.jsx)(c.$n,{size:"sm",icon:"add",onClick:S,disabled:!x.trim()||f,children:f?"Adding...":"Add"}),(0,i.jsx)(c.$n,{size:"sm",variant:"secondary",icon:"download",onClick:A,disabled:!T||y,children:y?"Importing...":"Import from /models"})]}),!T&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),C.length>0&&(0,i.jsx)("div",{className:"flex flex-col gap-3",children:C.map(({id:s,alias:a,source:l})=>(0,i.jsx)(E,{modelId:s,alias:a,fullModel:`${t}/${s}`,copied:r,onCopy:n,onDeleteAlias:()=>"custom"===l?m(s):o(a),onTest:p.length>0?()=>N(s):void 0,testStatus:w[s],isTesting:v===s},`${l}-${e}/${s}`))})]})}I.propTypes={model:P().shape({id:P().string.isRequired}).isRequired,fullModel:P().string.isRequired,aliases:P().arrayOf(P().string),copied:P().string,onCopy:P().func.isRequired,testStatus:P().oneOf(["ok","error"]),isCustom:P().bool,isFree:P().bool,onDeleteAlias:P().func,onTest:P().func,isTesting:P().bool,onDisable:P().func,onAddAlias:P().func,onRemoveAlias:P().func,caps:P().object,thinkingSuffix:P().string},P().string.isRequired,P().string.isRequired,P().string,P().func.isRequired,P().func.isRequired,P().func,P().oneOf(["ok","error"]),P().bool,P().string.isRequired,P().object.isRequired,P().arrayOf(P().object),P().string,P().func.isRequired,P().func.isRequired,P().func.isRequired,P().func.isRequired,R.propTypes={providerStorageAlias:P().string.isRequired,providerDisplayAlias:P().string.isRequired,modelAliases:P().object.isRequired,customModels:P().arrayOf(P().object),copied:P().string,onCopy:P().func.isRequired,onDeleteAlias:P().func.isRequired,onAddCustomModel:P().func.isRequired,onDeleteCustomModel:P().func.isRequired,connections:P().arrayOf(P().shape({id:P().string,isActive:P().bool})).isRequired,isAnthropic:P().bool};var D=s(70217);function _({until:e}){let[t,s]=(0,a.useState)("");return((0,a.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let i=Math.floor(t/1e3);if(i<60)s(`${i}s`);else if(i<3600)s(`${Math.floor(i/60)}m ${i%60}s`);else{let e=Math.floor(i/3600),t=Math.floor(i%3600/60);s(`${e}h ${t}m`)}};t();let i=setInterval(t,1e3);return()=>clearInterval(i)},[e]),t)?(0,i.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function z({connection:e,proxyPools:t,isOAuth:s,isFirst:l,isLast:r,onMoveUp:n,onMoveDown:o,onToggleActive:d,onUpdateProxy:m,onEdit:p,onDelete:u,oneByOneStatus:x=null,autoPing:h=null}){let[f,g]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),v=(0,a.useRef)(null),j=new Map((t||[]).map(e=>[e.id,e])),w=e.providerSpecificData?.proxyPoolId||null,k=w?j.get(w):null,N=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,C=!!w||N,S=k?`Pool: ${k.name}`:w?`Pool: ${w} (inactive/missing)`:N?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",A=h?.provider==="codex"?"Auto-starts the next 5h Codex window after reset by sending a tiny gpt-5.5 request. Consumes a small amount of quota.":"When your 5h quota runs out, auto-sends a request the moment it resets so a new window starts right away.",T="";if(k?.proxyUrl||e.providerSpecificData?.connectionProxyUrl){let t=k?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;try{let e=new URL(t);T=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{T=t}}let $=k?.noProxy||e.providerSpecificData?.connectionNoProxy||"",O="default";k?.isActive===!0?O="success":(w||N)&&(O="error"),(0,a.useEffect)(()=>{if(!f)return;let e=e=>{v.current&&!v.current.contains(e.target)&&g(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[f]);let P=async e=>{b(!0);try{await m("__none__"===e?null:e)}finally{b(!1),g(!1)}},I=e.authType||(s?"oauth":"apikey"),E="oauth"===I,R="cookie"===I,q=e.name?.trim()||e.email?.trim()||e.displayName?.trim()||(E?"OAuth Account":R?"Cookie Account":"API Key"),M=e.name?.trim()&&e.email?.trim()&&e.name.trim()!==e.email.trim()?e.email.trim():e.name?.trim()&&e.displayName?.trim()&&e.name.trim()!==e.displayName.trim()?e.displayName.trim():null,[U,K]=(0,a.useState)(!1),F=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,a.useEffect)(()=>{let t=()=>{K(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let s=F?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[F]);let J="unavailable"!==e.testStatus||U?e.testStatus:"active",L=()=>x?"queued"===x.state?"queued":"testing"===x.state?"testing":"success"===x.state?"success":"failed"===x.state?x.error?`failed: ${x.error}`:"failed":null:null;return(0,i.jsxs)("div",{className:`group flex min-w-0 flex-col gap-3 rounded-lg p-2 transition-colors hover:bg-black/[0.02] dark:hover:bg-white/[0.02] sm:flex-row sm:items-center sm:justify-between ${!1===e.isActive?"opacity-60":""}`,children:[(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-2 sm:items-center sm:gap-3",children:[(0,i.jsxs)("div",{className:"flex shrink-0 flex-col",children:[(0,i.jsx)("button",{onClick:n,disabled:l,className:`p-0.5 rounded ${l?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,i.jsx)("button",{onClick:o,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,i.jsx)("span",{className:"material-symbols-outlined shrink-0 text-base text-text-muted",children:R?"cookie":E?"lock":"key"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"text-sm font-medium truncate",children:q}),M&&(0,i.jsx)("p",{className:"text-xs text-text-muted truncate",children:M}),(0,i.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1.5 sm:gap-2",children:[(0,i.jsx)(c.Ex,{variant:(0,D.g)(e.isActive,J),size:"sm",dot:!0,children:!1===e.isActive?"disabled":J||"Unknown"}),(0,i.jsx)(c.Ex,{variant:"default",size:"sm",children:E?"OAuth":R?"Cookie":"API Key"}),C&&(0,i.jsx)(c.Ex,{variant:O,size:"sm",children:"Proxy"}),U&&!1!==e.isActive&&(0,i.jsx)(_,{until:F}),e.lastError&&!1!==e.isActive&&(0,i.jsx)("span",{className:"max-w-full truncate text-xs text-red-500 sm:max-w-[300px]",title:e.lastError,children:e.lastError}),(0,i.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]}),e.globalPriority&&(0,i.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",e.globalPriority]}),L()&&(0,i.jsx)(c.Ex,{variant:x?"success"===x.state?"success":"failed"===x.state?"error":"testing"===x.state?"primary":"default":"default",size:"sm",children:L()})]}),C&&(0,i.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,i.jsx)("span",{className:"max-w-full truncate text-[11px] text-text-muted sm:max-w-[420px]",title:S,children:S}),T&&(0,i.jsx)("code",{className:"max-w-full truncate rounded bg-black/5 px-1 py-0.5 font-mono text-[10px] text-text-muted dark:bg-white/5 sm:max-w-[260px]",children:T}),$&&(0,i.jsxs)("span",{className:"max-w-full truncate text-[11px] text-text-muted sm:max-w-[320px]",title:$,children:["no_proxy: ",$]})]})]})]}),(0,i.jsxs)("div",{className:"flex w-full items-center justify-between gap-2 sm:w-auto sm:justify-end",children:[(0,i.jsxs)("div",{className:"grid flex-1 grid-cols-3 gap-1 sm:flex sm:flex-none",children:[(t||[]).length>0&&(0,i.jsxs)("div",{className:"relative",ref:v,children:[(0,i.jsxs)("button",{onClick:()=>g(e=>!e),className:`flex w-full flex-col items-center rounded px-2 py-1 transition-colors hover:bg-black/5 dark:hover:bg-white/5 ${C?"text-primary":"text-text-muted hover:text-primary"}`,disabled:y,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:y?"progress_activity":"lan"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),f&&(0,i.jsxs)("div",{className:"absolute right-0 top-full z-50 mt-1 max-w-[78vw] min-w-[160px] rounded-lg border border-border bg-bg py-1 shadow-lg",children:[(0,i.jsx)("button",{onClick:()=>P("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!w?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,i.jsx)("button",{onClick:()=>P(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${w===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),h&&(0,i.jsx)(c.m_,{text:A,children:(0,i.jsxs)("button",{onClick:()=>h.onToggle(!h.on),className:`flex w-full flex-col items-center rounded px-2 py-1 transition-colors hover:bg-black/5 dark:hover:bg-white/5 ${h.on?"text-primary":"text-text-muted hover:text-primary"}`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"bolt"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Auto-ping"})]})}),(0,i.jsxs)("button",{onClick:p,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,i.jsxs)("button",{onClick:u,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 hover:bg-red-500/10",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,i.jsx)(c.lM,{size:"sm",checked:e.isActive??!0,onChange:d,title:e.isActive??!0?"Disable connection":"Enable connection"})]})]})}_.propTypes={until:P().string.isRequired},z.propTypes={connection:P().shape({id:P().string,name:P().string,email:P().string,displayName:P().string,modelLockUntil:P().string,testStatus:P().string,isActive:P().bool,lastError:P().string,priority:P().number,globalPriority:P().number}).isRequired,proxyPools:P().arrayOf(P().shape({id:P().string,name:P().string,proxyUrl:P().string,noProxy:P().string,isActive:P().bool})),isOAuth:P().bool.isRequired,isFirst:P().bool.isRequired,isLast:P().bool.isRequired,onMoveUp:P().func.isRequired,onMoveDown:P().func.isRequired,onToggleActive:P().func.isRequired,onUpdateProxy:P().func,onEdit:P().func.isRequired,onDelete:P().func.isRequired,oneByOneStatus:P().shape({state:P().string,error:P().string}),autoPing:P().shape({on:P().bool,onToggle:P().func,provider:P().string})};let q=`name1|sk-key1
2
2
  name2|sk-key2
3
3
  sk-key-only-auto-named`;function M({isOpen:e,provider:t,providerName:s,isCompatible:l,isAnthropic:r,authType:n,authHint:o,website:d,proxyPools:p,error:u,existingNames:x,onSave:h,onBulkDone:f,onClose:g}){let y="__none__",b="ollama-local"===t,v="cookie"===n,j="xai"===t&&!v,w=v?"Cookie Value":"qoder"===t||"qoder-cn"===t?"Personal Access Token (PAT)":"API Key",k="azure"===t,N="cloudflare-ai"===t,C=m.Q2?.[t]?.credentialForm==="aws",S=m.Q2?.[t]?.apiKeyOptionalWith||null,A=m.Q2?.[t]?.regions||null,T=m.Q2?.[t]?.defaultRegion||A?.[0]?.id||"",[$,O]=(0,a.useState)({name:"",apiKey:"",defaultModel:"",priority:1,proxyPoolId:y,ollamaHostUrl:""}),[P,I]=(0,a.useState)({azureEndpoint:"",apiVersion:"2024-10-01-preview",deployment:"",organization:""}),[E,R]=(0,a.useState)({accountId:""}),[D,_]=(0,a.useState)({profile:"",region:"",accessKeyId:"",sessionToken:""}),[z,U]=(0,a.useState)(T),[K,F]=(0,a.useState)(!1),[J,L]=(0,a.useState)(null),[W,B]=(0,a.useState)(!1),H=N?`name1|sk-key1|acc123456
4
4
  name2|sk-key2|def789012
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-app",
3
- "version": "0.6.8",
3
+ "version": "0.6.10",
4
4
  "description": "9Router web dashboard",
5
5
  "private": true,
6
6
  "scripts": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-proxy",
3
- "version": "0.6.8",
3
+ "version": "0.6.10",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router-proxy": "./cli.js"
@@ -1,9 +0,0 @@
1
- "use strict";exports.id=6249,exports.ids=[6249],exports.modules={17373:(a,b,c)=>{c.d(b,{f6:()=>o,mO:()=>s});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(59096),i=c(37981);let j="x-opencode-session",k="_opencodeZenSession",l=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,m="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",n=["bash","glob","grep","read"];function o(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`ses_${c}${function(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=m[a[c]%62];return b}()}`}function p(a){if(!a||"object"!=typeof a||Array.isArray(a))return"";let b=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null;return("string"==typeof a.name?a.name:"string"==typeof b?.name?b.name:"").trim()}function q(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function r(a){return(0,h.nh)(String(a||"").replace(/\([^()]+\)\s*$/,"").trim())}class s extends f.L{constructor(){super("opencode-zen")}buildUrl(a,b,c=0,d=null){return r(a)?"https://opencode.ai/zen/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},h=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===j){let a=q(c);if(a&&l.test(a))return a}return null}(f.rawHeaders),i=q(c)||(0,g.oV)({headers:f.rawHeaders,body:a,connectionId:f.connectionId,scope:"opencode-zen"});return{...f,[k]:h||function(a,b=""){if("string"==typeof a&&l.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+=m[c[a]%62];return`ses_${d}${f}`}(i,d)}}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?.rawHeaders||{},g={};for(let[a,b]of Object.entries(f))g[a.toLowerCase()]=b;let h=g["user-agent"]||"";e["User-Agent"]=!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}(h)?"opencode/1.18.31":h,e["x-opencode-client"]=g["x-opencode-client"]||"desktop";let i=a?.[k];if(i)return e[j]=i,e;let l=this.prepareRequestCredentials({credentials:a});return e[j]=l[k],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(e&&"object"==typeof e&&(e.stream=!0),!r(a||b?.model))return!function(a){if(!a||"object"!=typeof a)return;let b=new Set;if(Array.isArray(a.tools))for(let c of a.tools){let a=p(c);a&&b.add(a)}else a.tools=[];for(let c of n)b.has(c)||(a.tools.push({type:"function",function:{name:c,description:`OpenCode built-in ${c} tool`,parameters:{type:"object",properties:{}}}}),b.add(c))}(e),e;let f=(0,i.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(!a||"object"!=typeof a)return;let b=new Set;if(Array.isArray(a.tools))for(let c of a.tools){let a=p(c);a&&b.add(a)}else a.tools=[];for(let c of n)b.has(c)||(a.tools.push({type:"function",name:c,description:`OpenCode built-in ${c} tool`,parameters:{type:"object",properties:{}}}),b.add(c))}(e),!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,i.N8)(a.call_id),a.arguments=(0,i.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,i.N8)(a.call_id),a.output=(0,i.DP)(a.output)),!0)))),e}}},40669:(a,b,c)=>{c.d(b,{Xh:()=>h,g2:()=>g,js:()=>j});var d=c(72375);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;let f={"grok-build":"gcli/grok-build"};function g(a){return e[a]||a}function h(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:g(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function i(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:g(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:g(c.provider),model:c.model}:null}async function j(a,b){let c=h(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=i(c.model,d)||i(c.model,f);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return k.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let k=[[/^codex-auto-review$/,"codex"],[/^gpt-[56]\./,"codex"],[/^gpt-6-/,"codex"],[/^gpt-daybreak-/,"codex"],[/^gpt-reserve/,"codex"],[/^claude-/,"anthropic"],[/^(us|eu|ap|global)\.(anthropic|meta|amazon|mistral|xai)\./,"bedrock"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},74379:(a,b,c)=>{c.d(b,{c:()=>g});var d=c(24);let e=[{match:/claude/i,drop:["temperature"]},{provider:"github",match:/gpt-5\.4/i,drop:["temperature"]},{provider:"github",match:a=>/claude/i.test(a)&&!/claude.*(opus|sonnet).*4\.6/i.test(a),drop:["thinking","reasoning_effort"]},{provider:"cloudflare-ai",flattenContent:!0},{provider:"xiaomi-mimo",match:/preview/i,flattenContent:!0},{provider:"codearts",drop:["thinking","reasoning_effort","reasoning","include_reasoning","thinking_budget"],clampToModelMaxOutput:!0},{provider:"volcengine-ark",match:/glm-5/i,clampToModelMaxOutput:!0},{provider:"volcengine-ark",match:/kimi/i,maxOutputCap:32768,clampToModelMaxOutput:!0},{provider:"groq",dropMessageFields:["reasoning_content","reasoning","reasoning_details"]},{provider:"mistral",dropMessageFields:["reasoning_content","reasoning","reasoning_details"]},{provider:"cerebras",dropMessageFields:["reasoning_content","reasoning","reasoning_details"]}];function f(a,b,c){"number"==typeof a[b]&&Number.isFinite(a[b])&&a[b]>c&&(a[b]=c)}function g(a,b,c){if(!b||!c||"object"!=typeof c)return c;for(let g of e)if((!g.provider||g.provider===a)&&(!g.match||("function"==typeof g.match?g.match(b):g.match.test(b)))){for(let a of g.drop||[])void 0!==c[a]&&delete c[a];if(Array.isArray(g.dropMessageFields)&&Array.isArray(c.messages)){for(let a of c.messages)if(a&&"assistant"===a.role)for(let b of g.dropMessageFields)void 0!==a[b]&&delete a[b]}if(g.flattenContent&&Array.isArray(c.messages))for(let a of c.messages)a&&Array.isArray(a.content)&&(a.content=a.content.map(a=>a?.type==="text"&&"string"==typeof a.text?a.text:"").join(""));if(g.clampToModelMaxOutput||Number.isFinite(g.maxOutputCap)){let e=(0,d.getCapabilitiesForModel)(a,b).maxOutput,h=[];if(g.clampToModelMaxOutput&&Number.isFinite(e)&&e>0&&h.push(e),Number.isFinite(g.maxOutputCap)&&g.maxOutputCap>0&&h.push(g.maxOutputCap),h.length>0){let a=Math.min(...h);f(c,"max_tokens",a),f(c,"max_completion_tokens",a),f(c,"max_output_tokens",a)}}}return c}},86724:(a,b,c)=>{c.d(b,{Z:()=>h});var d=c(35024);let e=[{match:a=>/^kimi-/i.test(a||""),scope:"toolCalls"},{match:a=>/deepseek/i.test(a||""),scope:"all"}],f="deepseek-v4-pro",g={[`${f}-max`]:{thinkingType:"enabled",reasoningEffort:"max"},[`${f}-none`]:{thinkingType:"disabled",reasoningEffort:null}};function h({provider:a,model:b,body:c}){let i=d.xq[a]?.reasoningInject,j=e.find(a=>a.match(b));var k=function({provider:a,model:b,body:c}){let d=g[b];if("deepseek"!==a||!d||!c)return c;let e={...c,model:f,extra_body:{...c.extra_body||{},thinking:{...c.extra_body?.thinking||{},type:d.thinkingType}}};return d.reasoningEffort?e.reasoning_effort=d.reasoningEffort:delete e.reasoning_effort,e}({provider:a,model:b,body:c}),l=i||j;if(!l||!k?.messages)return k;let m=k.messages.map(a=>!function(a,b){if(a?.role!=="assistant")return!1;let c=a.reasoning_content;return("string"!=typeof c||!(c.length>0))&&("toolCalls"!==b||Array.isArray(a.tool_calls)&&a.tool_calls.length>0)}(a,l.scope)?a:{...a,reasoning_content:" "});return{...k,messages:m}}},96179:(a,b,c)=>{c.d(b,{L:()=>u});var d=c(74957),e=c(77598),f=c(35024),g=c(74129),h=c(57647),i=c(75924),j=c(52284),k=c(39609),l=c(86724),m=c(74379),n=c(55399);let o={combined:!0,header:"Authorization",scheme:"bearer"},p={combined:!0,header:"x-api-key",scheme:"raw"},q=Object.fromEntries(Object.entries(f.xq).filter(([,a])=>a.auth).map(([a,b])=>[a,b.auth]));function r(a,b,c){a[b.header]="bearer"===b.scheme?`Bearer ${c}`:c}let s={kimiHeaders:(a,b)=>Object.assign(a,(0,i.buildKimiHeaders)(b?.providerSpecificData?.deviceId)),minimaxHeaders:a=>{a["x-api-key"]="sk-xxx",a["X-Mavis-Timezone-Offset"]=String(-60*new Date().getTimezoneOffset()),a["X-Mavis-Session-Id"]||(a["X-Mavis-Session-Id"]=(0,e.randomUUID)())},museHeaders:(a,b)=>{b?.accessToken&&!b?.apiKey&&(a["x-api-version"]="1.0.0")},clineHeaders:(a,b)=>Object.assign(a,(0,j.w$)(b.apiKey||b.accessToken)),kilocodeOrg:(a,b)=>{b.providerSpecificData?.orgId&&(a["X-Kilocode-OrganizationID"]=b.providerSpecificData.orgId)}},t=Object.fromEntries(Object.entries(f.sr).filter(([,a])=>a.refresh).map(([a,b])=>{let c=b.tokenUrl,d=b.refresh.encoding,e=b.refresh.scope?{scope:b.refresh.scope}:{};return[a,{encoding:d,url:()=>c,params:c=>"gemini"===a?{client_id:c.config.clientId,client_secret:c.config.clientSecret,...e}:{client_id:b.clientId,...e}}]}));class u extends d.H{constructor(a){super(a,f.xq[a]||f.xq.openai)}transformRequest(a,b){let c=this.applyJsonSchemaFallback(b);return c&&"object"==typeof c&&(this.config.quirks?.dropClientMetadata&&delete c.client_metadata,(0,m.c)(this.provider,a,c)),(0,l.Z)({provider:this.provider,model:a,body:c})}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-"))return a;let b=a?.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
2
- \`\`\`json
3
- ${c}
4
- \`\`\`
5
- Respond ONLY with the JSON object, no other text.`,e=Array.isArray(a.messages)?a.messages.map(a=>({...a})):[],f=e.find(a=>"system"===a.role);return f?"string"==typeof f.content?f.content=`${f.content}
6
-
7
- ${d}`:Array.isArray(f.content)&&f.content.push({type:"text",text:`
8
-
9
- ${d}`}):e.unshift({role:"system",content:d}),{...a,messages:e,response_format:{type:"json_object"}}}buildUrl(a,b,c=0,d=null){let e=d?.runtimeTransport;if(e?.baseUrl)return e.urlSuffix?`${e.baseUrl}${e.urlSuffix}`:e.baseUrl;if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||g.Es).replace(/\/$/,""),b="responses"===(0,h.jD)(this.provider,d)?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||g.ky).replace(/\/$/,"");return`${a}/messages`}if("gemini"===this.config.format)return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;if(this.config.urlSuffix)return`${this.config.baseUrl}${this.config.urlSuffix}`;let f=this.config.baseUrl;if(f?.includes("{accountId}")){let a=d?.providerSpecificData?.accountId;if(!a)throw Error(`${this.provider} requires accountId in providerSpecificData`);return f.replace("{accountId}",a)}return f}resolveAuthDescriptor(){return this.provider?.startsWith?.("anthropic-compatible-")?{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"},anthropicVersion:!0}:this.config?.format==="claude"?{...p,anthropicVersion:!0}:o}buildHeaders(a,b=!0,c,d,e=null){let f=a?.runtimeTransport,h={"Content-Type":"application/json",...f?f.headers:this.config.headers},i=f?.auth||q[this.provider]||this.resolveAuthDescriptor();for(let b of i.hooks||[])s[b]?.(h,a);!function(a,b,c){if(b.combined){r(a,b,c.apiKey||c.accessToken),b.anthropicVersion&&!a["anthropic-version"]&&(a["anthropic-version"]=g.b8);return}c.apiKey?r(a,b.apiKey,c.apiKey):c.accessToken&&r(a,b.oauth,c.accessToken),b.anthropicVersion&&!a["anthropic-version"]&&(a["anthropic-version"]=g.b8)}(h,i,a);let j="string"==typeof d&&/^claude-/.test(d),k=a?.rawHeaders?.["anthropic-beta"];if(d&&("claude"===this.provider||this.provider?.startsWith?.("anthropic-compatible-")&&j)?h["Anthropic-Beta"]=(0,g.Xy)((0,g.d)(d,e),k):"anthropic"===this.provider&&k&&(h["Anthropic-Beta"]=(0,g.Xy)(h["Anthropic-Beta"],k)),"claude"===this.provider&&!h["x-claude-code-session-id"]&&(a?.accessToken||a?.apiKey||"").includes("sk-ant-oat")){let a=(0,n.tV)(e?.metadata?.user_id);a&&(h["x-claude-code-session-id"]=a)}if(this.provider?.startsWith?.("anthropic-compatible-")){let b=a?.providerSpecificData?.baseUrl||"";if(!(""===b||b.includes("api.anthropic.com"))){for(let b of(a.apiKey&&!h.Authorization&&(h.Authorization=`Bearer ${a.apiKey}`),delete h["anthropic-dangerous-direct-browser-access"],delete h["Anthropic-Dangerous-Direct-Browser-Access"],delete h["x-app"],delete h["X-App"],["anthropic-beta","Anthropic-Beta"]))if(h[b]){let a=h[b].split(",").map(a=>a.trim()).filter(a=>a&&"claude-code-20250219"!==a).join(",");a?h[b]=a:delete h[b]}}}return b&&(h.Accept="text/event-stream"),h}refreshFromGrant(a,b){let c=t[this.provider],d={grant_type:"refresh_token",refresh_token:a.refreshToken,...c.params(this)};return"json"===c.encoding?this.refreshWithJSON(c.url(),d,b):this.refreshWithForm(c.url(),d,b)}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;let d={claude:()=>this.refreshFromGrant(a,c),codex:()=>this.refreshFromGrant(a,c),iflow:()=>this.refreshIflow(a.refreshToken,c),gemini:()=>this.refreshFromGrant(a,c),kiro:()=>this.refreshKiro(a.refreshToken,c),cline:()=>this.refreshCline(a.refreshToken,c),clinepass:()=>this.refreshCline(a.refreshToken,c),kimi:()=>this.refreshKimi(a,c),"kimi-coding":()=>this.refreshKimi(a,c),kilocode:()=>this.refreshKilocode(a.refreshToken,c)}[this.provider];if(!d)return null;try{let a=await d();return a&&b?.info?.("TOKEN",`${this.provider} refreshed`),a}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}async refreshWithJSON(a,b,c=null){let d=await (0,k.proxyAwareFetch)(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(b)},c);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||b.refresh_token,expiresIn:e.expires_in}}async refreshWithForm(a,b,c=null){let d=await (0,k.proxyAwareFetch)(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(b)},c);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||b.refresh_token,expiresIn:e.expires_in}}async refreshIflow(a,b=null){let c=btoa(`${f.xq.iflow.clientId}:${f.xq.iflow.clientSecret}`),d=await (0,k.proxyAwareFetch)(i.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:f.xq.iflow.clientId,client_secret:f.xq.iflow.clientSecret})},b);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async refreshKiro(a,b=null){let c=await (0,k.proxyAwareFetch)(f.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})},b);if(!c.ok)return null;let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken||a,expiresIn:d.expiresIn}}async refreshCline(a,b=null){let c=await (0,k.proxyAwareFetch)(f.xq.cline.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:a,grantType:"refresh_token",clientType:"extension"})},b);if(!c.ok)return null;let d=await c.json(),e=d?.data||d,g=e?.expiresAt,h=g?Math.max(1,Math.floor((new Date(g).getTime()-Date.now())/1e3)):void 0,i=e?.accessToken;return i&&!i.startsWith("workos:")&&(i=`workos:${i}`),{accessToken:i,refreshToken:e?.refreshToken||a,expiresIn:h}}async refreshKimi(a,b=null){let c=a.refreshToken,d=f.xq.kimi||f.xq["kimi-coding"];if(!d?.refreshUrl||!d?.clientId)return null;let e=(0,i.buildKimiHeaders)(a?.providerSpecificData?.deviceId),g=await (0,k.proxyAwareFetch)(d.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",...e},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:c,client_id:d.clientId})},b);if(!g.ok)return null;let h=await g.json();return{accessToken:h.access_token,refreshToken:h.refresh_token||c,expiresIn:h.expires_in}}async refreshKilocode(a,b=null){return null}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7552,exports.ids=[7552],exports.modules={37981:(a,b,c)=>{c.d(b,{DP:()=>i,N8:()=>g,We:()=>h,me:()=>e});var d=c(43698);function e(a){if("string"==typeof a){let b=""===a.trim()?"...":a;return[{type:d.Du.MESSAGE,role:d.z7.USER,content:[{type:d.Du.INPUT_TEXT,text:b}]}]}return Array.isArray(a)?0===a.length?[{type:d.Du.MESSAGE,role:d.z7.USER,content:[{type:d.Du.INPUT_TEXT,text:"..."}]}]:a:null}let f=0;function g(a){return"string"==typeof a&&a?a.length>64?a.substring(0,64):a:`call_${Date.now()}_${f+=1}`}function h(a){if(null==a||""===a)return"{}";if("string"!=typeof a)try{return JSON.stringify(a)}catch{return"{}"}try{return JSON.parse(a),a}catch{return"{}"}}function i(a){if("string"==typeof a)return a;if(null==a)return"";if(Array.isArray(a))return a.map(a=>{try{return a?.text??JSON.stringify(a)}catch{return String(a)}}).join("");try{return JSON.stringify(a)}catch{return String(a)}}},55399:(a,b,c)=>{c.d(b,{Az:()=>h,F5:()=>k,fO:()=>m,kR:()=>j,tV:()=>g});var d=c(55511),e=c(75924),f=c(74129);function g(a){if("string"!=typeof a||!a)return null;if("{"===a[0])try{let b=JSON.parse(a)?.session_id;return"string"==typeof b&&b&&b.replace(/^claude:/i,"").trim()||null}catch{return null}return a.replace(/^claude:/i,"").trim()||null}function h(a){let b=a.tools;if(!b||0===b.length)return{body:a,toolNameMap:null};let c=a=>`${a}${e.uR}`,d=new Map,f=new Set,g=[];for(let a of b){if(a.type){g.push(a);continue}let b=c(a.name);d.set(b,a.name),f.add(a.name),g.push({...a,name:b})}let h=[...g,...l],i=a.messages?.map(a=>{if(!Array.isArray(a.content))return a;let b=a.content.map(a=>"tool_use"===a.type?{...a,name:c(a.name)}:a);return{...a,content:b}}),j={...a,tools:h,messages:i||a.messages};return a.tool_choice?.type==="tool"&&f.has(a.tool_choice.name)&&(j.tool_choice={...a.tool_choice,name:c(a.tool_choice.name)}),{body:j,toolNameMap:d.size>0?d:null}}function i(a){if("string"!=typeof a||!a.endsWith(e.uR)||e.dw.has(a))return null;let b=a.slice(0,-e.uR.length);return b.length>0?b:null}function j(a,b){if(!Array.isArray(a?.content))return a;let c=a.content.map(a=>{if(a?.type!=="tool_use")return a;if(b?.has(a.name))return{...a,name:b.get(a.name)};let c=i(a.name);return c?{...a,name:c}:a});return{...a,content:c}}function k(a,b){if(!a||"object"!=typeof a||"content_block_start"!==a.type)return a;let c=a.content_block;if(c?.type!=="tool_use"||"string"!=typeof c.name)return a;let d=b?.get(c.name)||i(c.name);return d?{...a,content_block:{...c,name:d}}:a}let l=[{name:"Task",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskOutput",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskStop",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskCreate",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskGet",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskUpdate",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskList",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Bash",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Glob",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Grep",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Read",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Edit",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Write",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"NotebookEdit",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"WebFetch",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"WebSearch",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"AskUserQuestion",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Skill",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"EnterPlanMode",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"ExitPlanMode",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}}];function m(a,b,c){var e;let g,h,i,j,k,l,m;if(!b||!b.includes("sk-ant-oat"))return a;let n={...a},o={type:"text",text:(g=JSON.stringify(a),h=(0,d.createHash)("sha256").update(g).digest("hex").slice(0,5),i=(0,d.randomBytes)(2).toString("hex").slice(0,3),`x-anthropic-billing-header: cc_version=${f.t4}.${i}; cc_entrypoint=sdk-cli; cch=${h};`)};return Array.isArray(n.system)?n.system[0]?.text?.startsWith("x-anthropic-billing-header:")||(n.system=[o,...n.system]):"string"==typeof n.system?n.system=[o,{type:"text",text:n.system}]:n.system=[o],n.metadata?.user_id||(n.metadata={...n.metadata,user_id:(j=b?(0,d.createHash)("sha256").update(`device:${b}`).digest("hex"):(0,d.randomBytes)(32).toString("hex"),l=b?(e=`account:${b}`,k=(0,d.createHash)("sha256").update(e).digest("hex"),`${k.slice(0,8)}-${k.slice(8,12)}-4${k.slice(13,16)}-${(3&parseInt(k[16],16)|8).toString(16)}${k.slice(17,20)}-${k.slice(20,32)}`):(0,d.randomUUID)(),m=("string"==typeof c?c.replace(/^claude:/i,"").trim():null)||(0,d.randomUUID)(),`{"device_id":"${j}","account_uuid":"${l}","session_id":"${m}"}`)}),n}},80662:(a,b,c)=>{c.d(b,{E9:()=>v,RF:()=>j,YC:()=>u,bS:()=>r,fd:()=>t,oV:()=>s});var d=c(55511),e=c.n(d),f=c(41004);let g=new Map,h=new Map,i=setInterval(()=>{let a=Date.now();for(let[b,c]of g)a-c.lastUsed>f.v1.sessionTtlMs&&g.delete(b)},f.v1.sessionCleanupIntervalMs);function j(a){if(!a)return k();let b=g.get(a);if(b)return b.lastUsed=Date.now(),b.sessionId;if(g.size>=1e3){let a=g.keys().next().value;g.delete(a)}let c=k();return g.set(a,{sessionId:c,lastUsed:Date.now()}),c}function k(){return e().randomUUID()+Date.now().toString()}i.unref&&i.unref();let l=new Map,m=["x-session-id","session-id","session_id","x-amp-thread-id"],n=/_session_([a-f0-9-]+)$/;function o(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function p(a,b){return a&&"object"==typeof a?o(a[b]??a[b.toLowerCase()]):null}let q=/^[a-z]+\/([0-9a-f-]{36})\//i;function r({headers:a,body:b,connectionId:c,workspaceId:d,scope:f=""}={}){let g=function(a,b,c=""){let d=function(a){if("string"!=typeof a||!a)return null;let b=a.match(n);if(b)return b[1];if("{"===a[0])try{return o(JSON.parse(a)?.session_id)}catch{}return null}(b?.metadata?.user_id)||p(a,"x-claude-code-session-id");if(d)return`claude:${d}`;let e=function(a){let b=a?.request?.sessionId;if(null!=b&&""!==b)return o(String(b));let c="string"==typeof a?.requestId?a.requestId.match(q):null;return c?o(c[1]):null}(b);if(e)return`antigravity:${e}`;for(let b of m){let c=p(a,b);if(c)return c}let f="kiro"===c?null:p(a,"x-client-request-id");return f||o(b?.prompt_cache_key)||o(b?.session_id)||o(b?.conversation_id)||("kiro"===c?null:o(b?.metadata?.user_id))||null}(a,b,f);if(g)return{sessionId:g,ephemeral:!1};let h="kiro"===f?null:function(a,b){var c;let d=function(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:[];if(!b)return"";let c="";for(let a of b)if(a?.role==="assistant"){if("string"==typeof a.content)c+=a.content;else if(Array.isArray(a.content))for(let b of a.content)c+=b?.text||b?.output||"";if(c.length>=50)break}return c}(b);if(d.length<50)return null;let f=(c=`${a}:${d.slice(0,50)}`,e().createHash("sha256").update(c).digest("hex").slice(0,16)),g=l.get(f);if(g)return g.lastUsed=Date.now(),g.sessionId;l.size>=5e3&&l.delete(l.keys().next().value);let h=k();return l.set(f,{sessionId:h,lastUsed:Date.now()}),h}(`${f}:${c||""}`,b);if(h)return{sessionId:h,ephemeral:!1};let i=o(d);return i?{sessionId:i,ephemeral:!1}:"kiro"===f?{sessionId:k(),ephemeral:!0}:{sessionId:j(c),ephemeral:!1}}function s(a={}){return r(a).sessionId}function t({sessionId:a,connectionId:b,scope:c="",ephemeral:d=!1}={}){if(d)return e().randomUUID();let f=`${c}:${b||""}:${a||""}`,g=h.get(f);if(g)return g.lastUsed=Date.now(),h.delete(f),h.set(f,g),g.continuationId;let i=e().randomUUID();return h.size>=5e3&&h.delete(h.keys().next().value),h.set(f,{continuationId:i,lastUsed:Date.now()}),i}function u(a,b,c,d=""){return s({headers:b?.rawHeaders,body:a,connectionId:c,scope:d})}function v(a){let b=o(a);if(!b)return null;if(/^-?\d+$/.test(b))return b;let c=0x7fffffffffffffffn&e().createHash("sha256").update(b).digest().readBigUInt64BE(0);return`-${c.toString()}`}let w=setInterval(()=>{let a=Date.now();for(let[b,c]of l)a-c.lastUsed>f.v1.sessionTtlMs&&l.delete(b);for(let[b,c]of h)a-c.lastUsed>f.v1.sessionTtlMs&&h.delete(b)},f.v1.sessionCleanupIntervalMs);w.unref&&w.unref()}};