keyrouter 1.0.4 → 1.0.5

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 (508) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +19 -19
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +19 -19
  5. package/app/.next-cli-build/react-loadable-manifest.json +8 -8
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +5 -5
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.rsc +7 -7
  89. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +7 -7
  90. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +7 -7
  91. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  92. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/prompt-injection/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +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.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/usage/providers/route.js +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.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  288. package/app/.next-cli-build/server/app/callback.html +1 -1
  289. package/app/.next-cli-build/server/app/callback.rsc +7 -7
  290. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +7 -7
  291. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +7 -7
  293. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  295. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  296. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  297. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  298. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  299. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  300. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  301. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  302. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  303. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  305. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  306. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  307. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  308. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  310. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  311. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  312. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  313. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  315. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  316. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  317. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  318. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  319. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  320. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  321. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  322. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  323. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  325. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  326. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  327. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  328. package/app/.next-cli-build/server/app/dashboard/prompt-injection.html +1 -1
  329. package/app/.next-cli-build/server/app/dashboard/prompt-injection.rsc +8 -8
  330. package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/!KGRhc2hib2FyZCk/dashboard/prompt-injection/__PAGE__.segment.rsc +8 -8
  331. package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc +8 -8
  332. package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_tree.segment.rsc +2 -2
  333. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  335. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  336. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  337. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  338. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  340. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  341. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  342. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  343. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  345. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  346. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  347. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  348. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +8 -8
  350. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  351. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  352. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  353. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  355. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  356. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  357. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  358. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  359. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +8 -8
  363. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +8 -8
  364. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  365. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +8 -8
  366. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  368. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  369. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  370. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  371. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +8 -8
  373. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
  374. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
  375. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  376. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  378. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  379. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  380. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  381. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/usage.rsc +9 -9
  383. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +9 -9
  384. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +9 -9
  385. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  386. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  387. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  388. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  389. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  390. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  391. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/index.html +1 -1
  393. package/app/.next-cli-build/server/app/index.rsc +7 -7
  394. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +7 -7
  395. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +7 -7
  396. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  397. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  398. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  400. package/app/.next-cli-build/server/app/landing.html +1 -1
  401. package/app/.next-cli-build/server/app/landing.rsc +8 -8
  402. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +8 -8
  403. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  404. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +8 -8
  405. package/app/.next-cli-build/server/app/login/page.js +1 -1
  406. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  408. package/app/.next-cli-build/server/app/login.html +1 -1
  409. package/app/.next-cli-build/server/app/login.rsc +8 -8
  410. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +8 -8
  411. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  412. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +8 -8
  413. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  416. package/app/.next-cli-build/server/app-paths-manifest.json +19 -19
  417. package/app/.next-cli-build/server/chunks/1051.js +1 -1
  418. package/app/.next-cli-build/server/chunks/2172.js +1 -1
  419. package/app/.next-cli-build/server/chunks/3449.js +1 -1
  420. package/app/.next-cli-build/server/chunks/3697.js +1 -1
  421. package/app/.next-cli-build/server/chunks/412.js +6 -6
  422. package/app/.next-cli-build/server/chunks/4190.js +1 -1
  423. package/app/.next-cli-build/server/chunks/4620.js +1 -0
  424. package/app/.next-cli-build/server/chunks/5299.js +7 -7
  425. package/app/.next-cli-build/server/chunks/615.js +1 -1
  426. package/app/.next-cli-build/server/chunks/6708.js +1 -1
  427. package/app/.next-cli-build/server/chunks/7066.js +1 -1
  428. package/app/.next-cli-build/server/chunks/8128.js +1 -1
  429. package/app/.next-cli-build/server/chunks/8251.js +1 -1
  430. package/app/.next-cli-build/server/chunks/8682.js +3 -3
  431. package/app/.next-cli-build/server/chunks/869.js +1 -1
  432. package/app/.next-cli-build/server/chunks/9604.js +1 -1
  433. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  435. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  436. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  437. package/app/.next-cli-build/server/pages/404.html +1 -1
  438. package/app/.next-cli-build/server/pages/500.html +1 -1
  439. package/app/.next-cli-build/static/chunks/{124.b7052d76521ac60b.js → 124.2dcfd9a087c9e48b.js} +1 -1
  440. package/app/.next-cli-build/static/chunks/{2435.51481baa53b475e1.js → 2435.7cc8c894f4a21999.js} +1 -1
  441. package/app/.next-cli-build/static/chunks/{2470-e9f1fd5f21c43fac.js → 2470-73a591ec7a5bdf40.js} +1 -1
  442. package/app/.next-cli-build/static/chunks/3521.96065c08772d432e.js +1 -0
  443. package/app/.next-cli-build/static/chunks/3557-ab733a862d0bba72.js +10 -0
  444. package/app/.next-cli-build/static/chunks/{5462.500e87268a882da6.js → 5462.b5dccc4c3626a6a1.js} +1 -1
  445. package/app/.next-cli-build/static/chunks/5496-336ad33bc5785fb5.js +9 -0
  446. package/app/.next-cli-build/static/chunks/5497-b6161d058c4b63f4.js +1 -0
  447. package/app/.next-cli-build/static/chunks/6808-ecaf0603c2c647dd.js +1 -0
  448. package/app/.next-cli-build/static/chunks/761-748923a2523301a7.js +132 -0
  449. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-dc2bbddae0338265.js +1 -0
  450. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-946dbaff84568fd1.js +1 -0
  451. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-c995565de72de5d6.js +1 -0
  452. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-569d2ce1c361cb5b.js → page-e9856c47cc41d2f2.js} +5 -5
  453. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-d8d32b819432e76e.js +1 -0
  454. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-c0c7f0ec4d840259.js +1 -0
  455. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-745147f2bf98d096.js +27 -0
  456. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-3006aca559388a7a.js +1 -0
  457. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-c832cd28ad361668.js +4 -0
  458. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-f4d89bf3d96928c9.js +1 -0
  459. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-33826a8bc196b7de.js +1 -0
  460. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-6acecf90f03a1af3.js +1 -0
  461. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-71814d68cea6ef7d.js +1 -0
  462. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-ebe244550b022a8f.js +1 -0
  463. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-84ba30538381db07.js +1 -0
  464. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-607b1f15b82c8bba.js +1 -0
  465. package/app/.next-cli-build/static/chunks/app/landing/page-3e38f4876602c2fb.js +1 -0
  466. package/app/.next-cli-build/static/chunks/app/{layout-5be078fd5da689ca.js → layout-8e337d947af1970c.js} +1 -1
  467. package/app/.next-cli-build/static/chunks/app/login/{page-d50a71c8703d2790.js → page-17082356385ade34.js} +1 -1
  468. package/app/.next-cli-build/static/chunks/{webpack-01b0b9fe7dbba18d.js → webpack-a1905b20ab1a879d.js} +1 -1
  469. package/app/.next-cli-build/static/css/d7b388223f36a397.css +1 -0
  470. package/app/package.json +1 -1
  471. package/app/public/favicon.svg +2 -12
  472. package/app/public/fonts/arabic-subset.ttf +0 -0
  473. package/app/public/fonts/bengali-subset.ttf +0 -0
  474. package/app/public/fonts/devanagari-subset.ttf +0 -0
  475. package/app/public/fonts/hebrew-subset.ttf +0 -0
  476. package/app/public/fonts/jp-subset.ttf +0 -0
  477. package/app/public/fonts/khmer-subset.ttf +0 -0
  478. package/app/public/fonts/kr-subset.ttf +0 -0
  479. package/app/public/fonts/sc-subset.ttf +0 -0
  480. package/app/public/fonts/tc-subset.ttf +0 -0
  481. package/app/public/fonts/thai-subset.ttf +0 -0
  482. package/package.json +1 -1
  483. package/app/.next-cli-build/server/chunks/5626.js +0 -1
  484. package/app/.next-cli-build/static/chunks/3521.03e47d524e0fcbf6.js +0 -1
  485. package/app/.next-cli-build/static/chunks/3557-437defff109ccb42.js +0 -10
  486. package/app/.next-cli-build/static/chunks/5496-a3a9ad577f310490.js +0 -9
  487. package/app/.next-cli-build/static/chunks/5497-3add1c35ece30dbf.js +0 -1
  488. package/app/.next-cli-build/static/chunks/6808-4e4ca2233c09ffad.js +0 -1
  489. package/app/.next-cli-build/static/chunks/761-00700c1c25957243.js +0 -132
  490. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-7feaa4a67a8eb771.js +0 -1
  491. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js +0 -1
  492. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-5da47ad2a6d8d5de.js +0 -1
  493. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-628c4ef1c9482980.js +0 -1
  494. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js +0 -1
  495. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-3b9d43febf1e79d4.js +0 -27
  496. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-e9c955f52e5ae812.js +0 -1
  497. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-bbf57717de4a9782.js +0 -4
  498. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-b275a947fc978997.js +0 -1
  499. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-5434337e59f24de1.js +0 -1
  500. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-c7eb81dfb0b4fd77.js +0 -1
  501. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-1b0510b28ff8de92.js +0 -1
  502. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-be974a86e9053540.js +0 -1
  503. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js +0 -1
  504. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-c439d82cf7840dc9.js +0 -1
  505. package/app/.next-cli-build/static/chunks/app/landing/page-38fc3c430a1a29dc.js +0 -1
  506. package/app/.next-cli-build/static/css/841943e9a30fe5cd.css +0 -1
  507. /package/app/.next-cli-build/static/{7Sq72xYQxt_cCm5BESVbY → nPdnpoRoh59z5OwsCS3Vd}/_buildManifest.js +0 -0
  508. /package/app/.next-cli-build/static/{7Sq72xYQxt_cCm5BESVbY → nPdnpoRoh59z5OwsCS3Vd}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3521],{63521:(e,t,r)=>{r.r(t),r.d(t,{default:()=>x});var o=r(95155),s=r(12115),a=r(14051),i=r.n(a),n=r(81750),l=r(6793);r(53255);var d=r(88105),c=r(8247);function p({data:e}){let{label:t,color:r,imageUrl:a,textIcon:i,active:d}=e,[u,m]=(0,s.useState)(!1);return(0,o.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg border-2 transition-all duration-300 bg-bg",style:{borderColor:d?"var(--color-primary)":"var(--color-border)",boxShadow:d?"0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent)":"none",minWidth:"132px"},children:[(0,o.jsx)(n.h7,{type:"target",position:l.yX.Top,id:"top",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"target",position:l.yX.Bottom,id:"bottom",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"target",position:l.yX.Left,id:"left",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"target",position:l.yX.Right,id:"right",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)("div",{className:"grid size-8 shrink-0 place-items-center rounded-md bg-surface-2",children:a&&!u?(0,o.jsx)("img",{src:a,alt:t,className:"size-5 rounded-sm object-contain",loading:"lazy",decoding:"async",onError:()=>{let e=a?.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,c.Kw)(e[1]),m(!0)}}):(0,o.jsx)("span",{className:"text-xs font-bold",style:{color:r},children:i})}),(0,o.jsx)("span",{className:`truncate font-display text-[13px] font-medium ${d?"text-text-main":"text-text-muted"}`,children:t}),d&&(0,o.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,o.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 bg-primary"}),(0,o.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]})]})}function u({data:e}){let t=(e.activeCount||0)>0;return(0,o.jsxs)("div",{className:`relative z-[1] flex items-center justify-center px-5 py-3 rounded-xl border-2 min-w-[130px] ${t?"border-primary bg-primary/5":"border-border bg-surface"}`,children:[(0,o.jsx)(n.h7,{type:"source",position:l.yX.Top,id:"top",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"source",position:l.yX.Bottom,id:"bottom",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"source",position:l.yX.Left,id:"left",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"source",position:l.yX.Right,id:"right",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)("div",{className:`mr-2 grid size-7 shrink-0 place-items-center rounded-lg bg-primary text-white ${t?"topology-router-icon":""} dark:bg-primary dark:text-black`,children:(0,o.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"route"})}),(0,o.jsx)("span",{className:`font-display text-sm font-bold ${t?"text-text-main":"text-text-muted"}`,children:"KeyRouter"}),e.activeCount>0&&(0,o.jsx)("span",{className:"ml-2 rounded-full bg-primary px-2 py-0.5 font-mono text-[10px] font-bold text-white dark:text-amber-950",children:e.activeCount})]})}function m({id:e,sourceX:t,sourceY:r,targetX:s,targetY:a,sourcePosition:i,targetPosition:d,style:c={},data:p}){let[u]=(0,l.Fp)({sourceX:t,sourceY:r,sourcePosition:i,targetX:s,targetY:a,targetPosition:d}),h=!!p?.active,f=c.stroke||"var(--color-border)",x=`topo-electric-${e}`;return h?(0,o.jsxs)("g",{className:"topology-edge-electric",children:[(0,o.jsx)("defs",{children:(0,o.jsxs)("filter",{id:x,x:"-40%",y:"-40%",width:"180%",height:"180%",children:[(0,o.jsx)("feTurbulence",{type:"fractalNoise",baseFrequency:"0.9",numOctaves:"2",seed:"2",result:"noise",children:(0,o.jsx)("animate",{attributeName:"baseFrequency",values:"0.8;1.4;0.8",dur:"0.25s",repeatCount:"indefinite"})}),(0,o.jsx)("feDisplacementMap",{in:"SourceGraphic",in2:"noise",scale:"3.5",xChannelSelector:"R",yChannelSelector:"G"})]})}),(0,o.jsx)("path",{d:u,fill:"none",stroke:"#22d3ee",strokeWidth:10,strokeOpacity:.35,strokeLinecap:"round",filter:`url(#${x})`,className:"topology-edge-halo"}),(0,o.jsx)("path",{d:u,fill:"none",stroke:"#4ade80",strokeWidth:5,strokeOpacity:.85,strokeLinecap:"round",filter:`url(#${x})`,className:"topology-edge-plasma"}),(0,o.jsx)(n.tE,{id:e,path:u,style:{stroke:"var(--color-topo-core)",strokeWidth:2.2,opacity:1},className:"topology-edge-kame"}),Array.from({length:6},(t,r)=>(0,o.jsx)("circle",{r:r%2==0?4:2.5,fill:r%3==0?"#fde047":r%3==1?"#67e8f9":"#fff",opacity:.95,style:{filter:"drop-shadow(0 0 4px #22d3ee)"},children:(0,o.jsx)("animateMotion",{dur:`${.4+.08*r}s`,repeatCount:"indefinite",path:u,begin:`${.09*r}s`})},`${e}-p-${r}`)),Array.from({length:5},(t,r)=>(0,o.jsxs)("circle",{r:1.8,fill:"#e0f2fe",opacity:0,children:[(0,o.jsx)("animate",{attributeName:"opacity",values:"0;1;0;0;1;0",dur:`${.35+r%3*.1}s`,begin:`${.07*r}s`,repeatCount:"indefinite"}),(0,o.jsx)("animateMotion",{dur:`${.28+.05*r}s`,repeatCount:"indefinite",path:u,begin:`${.11*r}s`})]},`${e}-s-${r}`))]}):(0,o.jsx)(n.tE,{id:e,path:u,style:{...c,stroke:f}})}p.propTypes={data:i().object.isRequired},u.propTypes={data:i().object.isRequired},m.propTypes={id:i().string,sourceX:i().number,sourceY:i().number,targetX:i().number,targetY:i().number,sourcePosition:i().string,targetPosition:i().string,style:i().object,data:i().object};let h={provider:p,router:u},f={topology:m};function x({providers:e=[],activeRequests:t=[],lastProvider:r="",errorProvider:a=""}){let i=(0,s.useMemo)(()=>t.map(e=>e.provider?.toLowerCase()).filter(Boolean).sort().join(","),[t]),l=r?.toLowerCase()||"",p=a?.toLowerCase()||"",u=(0,s.useMemo)(()=>new Set(i?i.split(","):[]),[i]),m=(0,s.useMemo)(()=>new Set(l?[l]:[]),[l]),g=(0,s.useMemo)(()=>new Set(p?[p]:[]),[p]),b=(0,s.useRef)({}),[y,v]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=b.current,t=Date.now();for(let r of u)e[r]||(e[r]=t);for(let t of Object.keys(e))u.has(t)||delete e[t]},[u]),(0,s.useEffect)(()=>{if(0===u.size)return;let e=setInterval(()=>v(e=>e+1),1e3);return()=>clearInterval(e)},[u]);let j=(0,s.useMemo)(()=>{let e=Date.now(),t=new Set;for(let r of u){let o=b.current[r];(!o||e-o<6e4)&&t.add(r)}return t},[u,y]),{nodes:w,edges:N}=(0,s.useMemo)(()=>(function(e,t,r,o){let s=e.length,a=Math.max(320,204*s/(2*Math.PI)),i=Math.max(200,.55*a);if(0===s)return{nodes:[{id:"router",type:"router",position:{x:0,y:0},data:{activeCount:0},draggable:!1}],edges:[]};let n=[],l=[];return n.push({id:"router",type:"router",position:{x:-60,y:-22},data:{activeCount:t.size},draggable:!1}),e.forEach((e,p)=>{var u,m;let h,f,x=(u=e.provider,d.Q2[u]||{color:"#6b7280",name:u}),g=t.has(e.provider?.toLowerCase()),b=!g&&r.has(e.provider?.toLowerCase()),y=!g&&o.has(e.provider?.toLowerCase()),v=`provider-${e.provider}`,j={label:(x.name!==e.provider?x.name:null)||e.nodePrefix||e.nodeName||e.name||e.provider,color:x.color||"#6b7280",imageUrl:(m=e.provider,(0,c.HY)(m)),textIcon:x.textIcon||(e.provider||"?").slice(0,2).toUpperCase(),active:g},w=-Math.PI/2+2*Math.PI*p/s,N=a*Math.cos(w),k=i*Math.sin(w);Math.abs(w+Math.PI/2)<Math.PI/4||Math.abs(w-3*Math.PI/2)<Math.PI/4?(h="top",f="bottom"):Math.abs(w-Math.PI/2)<Math.PI/4?(h="bottom",f="top"):N>0?(h="right",f="left"):(h="left",f="right"),n.push({id:v,type:"provider",position:{x:N-90,y:k-15},data:j,draggable:!1}),l.push({id:`e-${v}`,type:"topology",source:"router",sourceHandle:h,target:v,targetHandle:f,animated:!1,data:{active:g},style:y?{stroke:"#ef4444",strokeWidth:2.5,opacity:.9}:g?{stroke:"#22d3ee",strokeWidth:3.5,opacity:1}:b?{stroke:"#f59e0b",strokeWidth:2,opacity:.7}:{stroke:"var(--color-border)",strokeWidth:1,opacity:.3}})}),{nodes:n,edges:l}})(e,j,m,g),[e,j,m,g]),k=(0,s.useMemo)(()=>e.map(e=>e.provider).sort().join(","),[e]),M=(0,s.useRef)(null),C=(0,s.useRef)(null),$={padding:.9,duration:200},P=(0,s.useCallback)(e=>{M.current=e,setTimeout(()=>e.fitView($),50)},[]);return(0,s.useEffect)(()=>{let e=C.current;if(!e)return;let t=new ResizeObserver(()=>{M.current&&M.current.fitView($)});return t.observe(e),()=>t.disconnect()},[]),(0,s.useEffect)(()=>{if(M.current){let e=setTimeout(()=>M.current.fitView($),50);return()=>clearTimeout(e)}},[w.length]),(0,o.jsx)("div",{ref:C,className:"h-[320px] w-full min-w-0 rounded-lg border border-border bg-[var(--color-topo-frame)] sm:h-[480px]",children:0===e.length?(0,o.jsx)("div",{className:"h-full flex items-center justify-center text-text-muted text-sm",children:"No providers connected"}):(0,o.jsxs)(n.Gc,{nodes:w,edges:N,nodeTypes:h,edgeTypes:f,fitView:!0,fitViewOptions:$,minZoom:.1,maxZoom:2,onInit:P,proOptions:{hideAttribution:!0},panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,preventScrolling:!1,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,children:[(0,o.jsx)(n.VS,{variant:n._5.Dots,gap:20,size:1.5,color:"#c4c4ce"}),(0,o.jsx)(n.H2,{showInteractive:!1,className:"react-flow-controls-custom"})]},k)})}x.propTypes={providers:i().arrayOf(i().shape({id:i().string,provider:i().string,name:i().string,nodePrefix:i().string})),activeRequests:i().arrayOf(i().shape({provider:i().string,model:i().string,account:i().string})),lastProvider:i().string,errorProvider:i().string}}}]);
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3557],{98:(e,t,n)=>{n.d(t,{default:()=>r});var i=n(95155),a=n(39403),o=n(31474);function r({label:e,options:t=[],value:n,onChange:s,placeholder:l="Select an option",error:d,hint:c,disabled:u=!1,required:p=!1,className:m,selectClassName:g,labelClassName:x,align:h,...f}){return(0,i.jsxs)("div",{className:(0,o.cn)("flex flex-col gap-1.5",m),children:[e&&(0,i.jsxs)("label",{className:(0,o.cn)("text-sm font-medium text-text-main",x),children:[e,p&&(0,i.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,i.jsx)(a.A,{options:t,value:n,onChange:e=>s&&s({target:{value:e}}),placeholder:l,disabled:u,buttonClassName:(0,o.cn)("min-h-[42px] rounded-[10px] px-3 py-2.5",d&&"border-red-500/40 ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40",g),align:h,...f}),d&&(0,i.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),d]}),c&&!d&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:c})]})}},929:(e,t,n)=>{n.d(t,{y:()=>d});var i=n(12115),a=n(67899),o=n(88105);let r=null,s=null;function l(){return r?Promise.resolve(r):s||(s=fetch("/api/models").then(async e=>{if(!e.ok)throw Error(`models ${e.status}`);return r=function(e){let t={},n={};for(let i of e||[])i.caps&&(i.fullModel&&(t[i.fullModel]=i.caps),i.routedModel&&(t[i.routedModel]=i.caps),i.model&&(n[i.model]=i.caps));return{byFull:t,byId:n}}((await e.json()).models)}).catch(()=>({byFull:{},byId:{}})).finally(()=>{s=null}))}function d(){let[e,t]=(0,i.useState)(()=>r?.byFull||{}),[n,s]=(0,i.useState)(()=>r?.byId||{});return(0,i.useEffect)(()=>{let e=!0,n=n=>{e&&(t(n.byFull),s(n.byId))};r?n(r):l().then(n);let i=()=>{r=null,l().then(n)};return window.addEventListener("customModelChanged",i),()=>{e=!1,window.removeEventListener("customModelChanged",i)}},[]),{getCaps:(0,i.useCallback)(t=>(function(e,t,n){if(!n)return null;if(e[n])return e[n];let i=n.includes("/")?n.slice(n.indexOf("/")+1):n;if(t[i])return t[i];let r=n.includes("/")?n.slice(0,n.indexOf("/")):null,s=r?o.js[r]||r:null,l=(0,a.nl)(s,i);return{vision:l.vision,search:l.search,reasoning:l.reasoning,contextWindow:l.contextWindow,maxOutput:l.maxOutput}})(e,n,t),[e,n])}}},8247:(e,t,n)=>{n.d(t,{HY:()=>r,Kw:()=>s});let i={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama","minimax-code":"minimax","minimax-code-global":"minimax","opencode-zen":"opencode","deepseek-web":"deepseek","muse-web":"muse","gemini-web":"gemini","chatgpt-web":"openai"},a=new Set;function o(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function r(e){let t=function(e){let t=o(e);if(!t||a.has(t))return"";let n=i[t]||t;return a.has(n)?"":n}(e);return t?`/providers/${t}.png`:null}function s(e){let t=o(e);t&&a.add(t);let n=i[t];n&&a.add(n)}},28011:(e,t,n)=>{n.d(t,{default:()=>O});var i=n(95155),a=n(12115),o=n(14051),r=n.n(o),s=n(81127),l=n(57250),d=n(29366),c=n(929),u=n(28777),p=n(88105);function m(e){if(!e||"string"!=typeof e)return{raw:"",isEmpty:!0,isRegex:!1,regex:null,positiveTerms:[],negativeTerms:[]};let t=e.trim();if(!t)return{raw:"",isEmpty:!0,isRegex:!1,regex:null,positiveTerms:[],negativeTerms:[]};if(t.startsWith("/")){let e=t.match(/^\/(.+)\/([a-z]*)$/i);if(e)try{let n=e[2]||"i",i=new RegExp(e[1],n);return{raw:t,isEmpty:!1,isRegex:!0,regex:i,positiveTerms:[],negativeTerms:[]}}catch{}else if(t.length>1)try{let e=RegExp(t.slice(1),"i");return{raw:t,isEmpty:!1,isRegex:!0,regex:e,positiveTerms:[],negativeTerms:[]}}catch{}}let n=t.split(/\s+/),i=[],a=[];for(let e of n)e&&((e.startsWith("!")||e.startsWith("-"))&&e.length>1?a.push(e.slice(1).toLowerCase()):i.push(e.toLowerCase()));return{raw:t,isEmpty:0===i.length&&0===a.length,isRegex:!1,regex:null,positiveTerms:i,negativeTerms:a}}function g(e,t){let n="string"!=typeof t&&t?t:m(t);if(n.isEmpty)return!0;let i=[];if("string"==typeof e?i=[e]:Array.isArray(e)?i=e.filter(e=>"string"==typeof e):e&&"object"==typeof e&&(i=[e.name,e.id,e.value,e.alias,e.provider].filter(e=>"string"==typeof e)),0===i.length)return!1;if(n.isRegex&&n.regex){n.regex.lastIndex=0;let e=i.join(" ");return/\(\?!|\(\?<!/.test(n.raw)?n.regex.test(e):i.some(e=>n.regex.test(e))||n.regex.test(e)}let a=i.map(e=>e.toLowerCase());if(n.negativeTerms.length>0){for(let e of n.negativeTerms)if(a.some(t=>t.includes(e)))return!1}if(n.positiveTerms.length>0){for(let e of n.positiveTerms)if(!a.some(t=>t.includes(e)))return!1}return!0}var x=n(70217),h=n(73006);let f=[...Object.keys(p.zN),...Object.keys(p.IS),...Object.keys(p.nJ),...Object.keys(p.fg)],v=Object.keys(p.IS).filter(e=>p.IS[e].noAuth),k=["cursor","cline","clinepass","zed"];function b(e,t,n){let[i,o]=(0,a.useState)([]),r=(t??[]).join("|");return(0,a.useEffect)(()=>{let t=r?r.split("|"):[];if(!e||0===t.length)return void o([]);let i=!1;return Promise.all(t.map(async e=>{let t=await fetch(`/api/providers/${e}/models`,{cache:"no-store"});if(!t.ok)return[];let n=await t.json();return Array.isArray(n.models)?n.models:[]})).then(e=>{if(i)return;let t=new Set;o(e.flat().filter(e=>!(!e?.id||t.has(e.id))&&(t.add(e.id),!0)))}).catch(e=>{console.warn(`Unable to load ${n} models for selector:`,e),i||o([])}),()=>{i=!0}},[e,r,n]),i}function w({icon:e,title:t,count:n}){return(0,i.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,i.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-text-subtle",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[15px] leading-none",children:e})}),(0,i.jsx)("span",{className:"font-display text-[13px] font-semibold tracking-tight text-text-main",children:t}),(0,i.jsx)("span",{className:"ml-auto rounded-full bg-surface-2 px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:n})]})}function O({isOpen:e,onClose:t,onSelect:n,onDeselect:o,onSelectBatch:r,onDeselectBatch:y,selectedModel:W,activeProviders:F=[],title:C="Select Model",size:j="lg",modelAliases:N={},kindFilter:S=null,capFilter:$=null,addedModelValues:D=[],closeOnSelect:E=!0,allowProviderWildcard:I=!1,variants:T=[]}){let[M,q]=(0,a.useState)(null),z=async()=>{try{let e=await fetch("/api/providers");if(!e.ok)throw Error(`Failed to fetch providers: ${e.status}`);let t=await e.json();q(t.connections||[])}catch(e){console.error("Error fetching providers in ModelSelectModal:",e),q([])}};(0,a.useEffect)(()=>{e&&z()},[e]);let R=(0,a.useMemo)(()=>null!==M?M:F||[],[M,F]),P=(0,a.useMemo)(()=>{let e=R.filter(e=>e&&!1!==e.isActive);return S?e.filter(e=>{let t=p.Q2[e.provider];return(t?.serviceKinds||["llm"]).includes(S)}):e},[R,S]),_=(0,a.useMemo)(()=>(0,x.i)(R),[R]),{getCaps:A}=(0,c.y)(),[L,K]=(0,a.useState)(""),[H,Y]=(0,a.useState)([]),[B,G]=(0,a.useState)([]),[Q,J]=(0,a.useState)([]),[U,X]=(0,a.useState)({}),V=(0,a.useMemo)(()=>{let e=Object.fromEntries(k.map(e=>[e,[]]));for(let t of P)t?.id&&Object.prototype.hasOwnProperty.call(e,t.provider)&&e[t.provider].push(t.id);return e},[P]),Z=V.cursor,ee=V.cline,et=V.clinepass,en=V.zed,ei=b(e,Z,"Cursor"),ea=b(e,ee,"Cline"),eo=b(e,et,"ClinePass"),er=b(e,en,"Zed"),es=async()=>{try{let e=await fetch("/api/combos");if(!e.ok)throw Error(`Failed to fetch combos: ${e.status}`);let t=await e.json();Y(t.combos||[])}catch(e){console.error("Error fetching combos:",e),Y([])}};(0,a.useEffect)(()=>{e&&es()},[e]);let el=async()=>{try{let e=await fetch("/api/provider-nodes");if(!e.ok)throw Error(`Failed to fetch provider nodes: ${e.status}`);let t=await e.json();G(t.nodes||[])}catch(e){console.error("Error fetching provider nodes:",e),G([])}};(0,a.useEffect)(()=>{e&&el()},[e]);let ed=async()=>{try{let e=await fetch("/api/models/custom");if(!e.ok)throw Error(`Failed to fetch custom models: ${e.status}`);let t=await e.json();J(t.models||[])}catch(e){console.error("Error fetching custom models:",e),J([])}};(0,a.useEffect)(()=>{e&&ed()},[e]);let ec=async()=>{try{let e=await fetch("/api/models/disabled");if(!e.ok)throw Error(`Failed to fetch disabled models: ${e.status}`);let t=await e.json();X(t.disabled||{})}catch(e){console.error("Error fetching disabled models:",e),X({})}};(0,a.useEffect)(()=>{e&&ec()},[e]);let eu=(0,a.useMemo)(()=>({...p.zN,...p.IS,...p.nJ,...p.fg}),[]),ep=(0,a.useMemo)(()=>{let e={},t=new Set(["webSearch","webFetch"]),n=new Set(["image","tts","stt","embedding","imageToText","systemone"]),i=new Set(["tts","image","webFetch"]),a=P.map(e=>e.provider),o=(S?v.filter(e=>(p.Q2[e]?.serviceKinds||["llm"]).includes(S)):v).filter(e=>!_.has(e)),r=new Set((B||[]).map(e=>e?.id).filter(Boolean));return[...new Set([...a,...o,...S?[]:Q.map(e=>e.providerAlias).filter(e=>((0,p.mq)(e)||(0,p.gb)(e))&&r.has(e)&&!_.has(e))].filter(e=>!_.has(e)))].sort((e,t)=>{let n=f.indexOf(e),i=f.indexOf(t);return(-1===n?999:n)-(-1===i?999:i)}).forEach(a=>{let o=(0,p.wG)(a),r=eu[a]||{name:a,color:"#666"},s=(0,p.mq)(a)||(0,p.gb)(a);if(S&&t.has(S)){e[a]={name:r.name,alias:o,color:r.color,models:[{id:a,name:r.name,value:a}]};return}if(r.passthroughModels){let t=Object.entries(N).filter(([,e])=>e.startsWith(`${o}/`)).map(([e,t])=>({id:t.replace(`${o}/`,""),name:e,value:t})),s=Q.filter(e=>e.providerAlias===o).map(e=>({id:e.id,name:e.name||e.id,value:`${o}/${e.id}`,kind:(0,u.CP)(e),isCustom:!0})),l=t;if(S&&n.has(S)){let e=s.filter(e=>(0,u.CP)(e)===S);0===(l=[...e,...(0,u.KC)(a).filter(e=>(0,u.CP)(e)===S).map(e=>({id:e.id,name:e.name,value:`${o}/${e.id}`,kind:(0,u.CP)(e)})).filter(t=>!e.some(e=>e.value===t.value))]).length&&i.has(S)&&(r.serviceKinds||["llm"]).includes(S)&&(l=[{id:a,name:r.name,value:o}])}else{let e=s.filter(e=>!(0,u.CP)(e)||"llm"===(0,u.CP)(e)),n=new Set([...t,...e].map(e=>e.value)),i=(0,u.KC)(a).filter(e=>!(0,u.CP)(e)||"llm"===(0,u.CP)(e)).map(e=>({id:e.id,name:e.name,value:`${o}/${e.id}`,kind:(0,u.CP)(e)})).filter(e=>!n.has(e.value));l=[...e,...t.filter(t=>!e.some(e=>e.value===t.value)),...i]}if(l.length>0){let t=B.find(e=>e.id===a),n=t?.name||r.name;e[a]={name:n,alias:o,color:r.color,models:l}}}else if(s){if(S&&n.has(S))return;let t=P.find(e=>e.provider===a)||R.find(e=>e.provider===a),i=B.find(e=>e.id===a),o=i?.name||t?.name||r.name,s=t?.providerSpecificData?.prefix||i?.prefix||a,l=Object.entries(N).filter(([,e])=>e.startsWith(`${a}/`)).map(([e,t])=>({id:t.replace(`${a}/`,""),name:e,value:`${s}/${t.replace(`${a}/`,"")}`})),d=Q.filter(e=>e.providerAlias===a).map(e=>({id:e.id,name:e.name||e.id,value:`${s}/${e.id}`,isCustom:!0})),c=new Set(l.map(e=>e.value)),u=[...l,...d.filter(e=>!c.has(e.value))],p=u.length>0?u:[{id:`__placeholder__${a}`,name:`${s}/model-id`,value:`${s}/model-id`,isPlaceholder:!0}];e[a]={name:o,alias:s,color:r.color,models:p,isCustom:!0,hasModels:u.length>0}}else{var l;let t="cursor"===a?ei:"cline"===a?ea:"clinepass"===a?eo:"zed"===a?er:[],s=t.length>0?t:(0,u.KC)(a),d=new Set(s.map(e=>e.id)),c=s.length>0,p=Object.entries(N).filter(([e,t])=>t.startsWith(`${o}/`)&&(!c||e===t.replace(`${o}/`,""))&&!d.has(t.replace(`${o}/`,""))).map(([e,t])=>({id:t.replace(`${o}/`,""),name:e,value:t,isCustom:!0})),m=new Set(p.map(e=>e.id)),g=Q.filter(e=>e.providerAlias===o&&!d.has(e.id)&&!m.has(e.id)).map(e=>({id:e.id,name:e.name||e.id,value:`${o}/${e.id}`,isCustom:!0})),x=[...s.map(e=>({id:e.id,name:e.name,value:`${o}/${e.id}`,kind:(0,u.CP)(e)})),...p,...g],h=new Set,f=(l=x.filter(e=>!h.has(e.value)&&(h.add(e.value),!0)),S?n.has(S)?l.filter(e=>e.isPlaceholder||(0,u.CP)(e)===S):l:l.filter(e=>e.isPlaceholder||e.isCustom||!(0,u.CP)(e)||"llm"===(0,u.CP)(e)));0===f.length&&S&&i.has(S)&&(r.serviceKinds||["llm"]).includes(S)&&(f=[{id:a,name:r.name,value:o}]),f.length>0&&(e[a]={name:r.name,alias:o,color:r.color,models:f})}}),Object.entries(e).forEach(([t,n])=>{let i=new Set([...U[(0,p.wG)(t)]||[],...U[t]||[]]);0!==i.size&&(n.models=n.models.filter(e=>!i.has(e.id)),0===n.models.length&&delete e[t])}),Object.entries(e).forEach(([t,n])=>{let i=P.filter(e=>e.provider===t),a=[];for(let e of i)Array.isArray(e.providerSpecificData?.enabledModels)&&e.providerSpecificData.enabledModels.length>0&&a.push(...e.providerSpecificData.enabledModels);if(a.length>0){let i=new Set(a),o=n.alias||(0,p.wG)(t)||t;n.models=n.models.filter(e=>i.has(e.id)||i.has(e.value)||i.has(`${o}/${e.id}`)||e.value&&i.has(e.value.replace(`${o}/`,""))),0===n.models.length&&delete e[t]}}),e},[P,N,eu,B,Q,U,S,R,_,ei,ea,eo,er]),em=(0,a.useMemo)(()=>m(L),[L]),eg=(0,a.useMemo)(()=>S||$?[]:em.isEmpty?H:H.filter(e=>g(e.name,em)),[H,em,S,$]),ex=(0,a.useMemo)(()=>{if(S||$)return[];let e=[];return(Array.isArray(T)?e=T.map(e=>"string"==typeof e?{name:e,value:e}:{name:e?.name,value:e?.name||e?.model,model:e?.model}):T&&"object"==typeof T&&(e=Object.entries(T).map(([e,t])=>({name:e,value:e,model:t?.model}))),e=e.filter(e=>e&&"string"==typeof e.name&&e.name.trim()),em.isEmpty)?e:e.filter(e=>g(e.name,em))},[T,em,S,$]),eh=(0,a.useMemo)(()=>{let e={};return Object.entries(ep).forEach(([t,n])=>{var i;let a=n.models;if(!$||0!==(a=a.filter(e=>A(e.value)?.[$]===!0)).length){if(!em.isEmpty){let e=g(n.name,em),i=I&&(n.alias&&g(n.alias,em)||t&&g(t,em)||g(`${n.alias}/*`,em));if(0===(a=a.filter(t=>!!g(t,em)||(!!e||!!i)&&(!(em.negativeTerms.length>0)||g(t,{...em,positiveTerms:[]})))).length)return}e[t]={...n,models:[...(i=a).filter(e=>D.includes(e.value)).sort((e,t)=>e.name.localeCompare(t.name)),...i.filter(e=>!D.includes(e.value)).sort((e,t)=>e.name.localeCompare(t.name))]}}}),e},[ep,em,D,I]),ef=(0,a.useMemo)(()=>{let e=[];return Object.values(eh).forEach(t=>{t.models.forEach(t=>{t.isPlaceholder||e.push(t)})}),e},[eh]),ev=(0,a.useMemo)(()=>ef.filter(e=>!D.includes(e.value)),[ef,D]),ek=(0,a.useMemo)(()=>ef.filter(e=>D.includes(e.value)),[ef,D]),eb=e=>{let i=e?.value||e?.name||e;D.includes(i)&&o?o(e):n(e),E&&(t(),K(""))};return(0,i.jsxs)(s.default,{isOpen:e,onClose:()=>{t(),K("")},title:C,size:j,className:"p-4!",footer:null,children:[(0,i.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-[11px] text-text-muted",children:[(0,i.jsx)("span",{className:"material-symbols-outlined shrink-0 text-text-subtle",style:{fontSize:"14px"},children:"info"}),(0,i.jsx)("span",{className:"font-mono tracking-wide",children:I?"Click to add/remove models, or click a provider name for a wildcard (e.g. provider/*). Search supports exclusions (e.g. claude -haiku) & RegEx (/pattern/).":"Click to select, click again to remove. Search supports exclusions (e.g. claude -haiku) & RegEx (/pattern/)."})]}),(0,i.jsxs)("div",{className:"mb-3 space-y-2",children:[(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)("span",{className:"material-symbols-outlined absolute left-3 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,i.jsx)("input",{type:"text",placeholder:(0,h.Tl)(I?"Search models (e.g. claude -haiku, oc/*, /regex/)…":"Search models (e.g. claude -haiku, !embed, /regex/)…"),value:L,onChange:e=>K(e.target.value),className:"w-full rounded-xl border border-border bg-surface py-2.5 pl-10 pr-20 text-sm text-text-main outline-none transition-colors placeholder:text-text-muted focus:border-text-subtle focus:ring-1 focus:ring-text-subtle/40"}),(0,i.jsxs)("div",{className:"absolute right-2.5 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[em.isRegex&&(0,i.jsx)("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider text-primary",children:"regex"}),em.negativeTerms.length>0&&!em.isRegex&&(0,i.jsx)("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider text-amber-600",children:"!exclude"}),L&&(0,i.jsx)("button",{type:"button",onClick:()=>K(""),className:"cursor-pointer rounded-md p-1 text-text-muted transition-colors hover:bg-surface-2 hover:text-text-main",title:"Clear search",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"close"})})]})]}),!E&&ef.length>0&&(0,i.jsxs)("div",{className:"flex items-center justify-between px-1 font-mono text-[11px] uppercase tracking-wider text-text-muted",children:[(0,i.jsxs)("span",{className:"flex items-center gap-2",children:[(0,i.jsxs)("span",{children:[ef.length," model"]}),D.length>0&&(0,i.jsxs)("span",{className:"text-primary font-medium",children:["(",D.length," selected)"]})]}),(0,i.jsxs)("div",{className:"flex items-center gap-1.5",children:[ev.length>0&&(0,i.jsxs)("button",{type:"button",onClick:()=>{0!==ev.length&&(r?r(ev):ev.forEach(e=>n(e)))},className:"rounded-lg border border-border bg-surface px-2.5 py-1 text-[11px] font-medium text-text-main transition-colors hover:border-text-subtle hover:bg-surface-2 cursor-pointer",title:(0,h.Tl)("Select all filtered models"),children:[(0,h.Tl)("Select All")," (",ev.length,")"]}),ek.length>0&&(0,i.jsxs)("button",{type:"button",onClick:()=>{0!==ek.length&&(y?y(ek):o&&ek.forEach(e=>o(e)))},className:"rounded-lg border border-border bg-surface px-2.5 py-1 text-[11px] font-medium text-text-muted transition-colors hover:text-text-main hover:bg-surface-2 cursor-pointer",title:(0,h.Tl)("Remove all selections"),children:[(0,h.Tl)("Clear")," (",ek.length,")"]})]})]})]}),(0,i.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[eg.length>0&&(0,i.jsxs)("div",{children:[(0,i.jsx)(w,{icon:"layers",title:"Combos",count:`${eg.length} item`}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:eg.map(e=>{let t=W===e.name;return(0,i.jsxs)("button",{onClick:()=>eb({id:e.name,name:e.name,value:e.name}),className:`
2
+ rounded-xl border px-2.5 py-1.5 text-xs font-medium transition-all hover:cursor-pointer flex items-center gap-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40
3
+ ${t?"bg-primary text-white dark:text-amber-950 border-primary":D.includes(e.name)?"bg-primary border-primary text-white dark:text-amber-950 hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
4
+ `,children:[D.includes(e.name)&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),e.name]},e.id)})})]}),ex.length>0&&(0,i.jsxs)("div",{children:[(0,i.jsx)(w,{icon:"skull",title:"Injected Model",count:`${ex.length} item`}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:ex.map(e=>{let t=W===e.value;return(0,i.jsxs)("button",{onClick:()=>eb({id:e.value,name:e.name,value:e.value}),title:(0,h.Tl)("Custom variant — this name is backed by a model + prompt"),className:`
5
+ rounded-xl border px-2.5 py-1.5 text-xs font-medium transition-all hover:cursor-pointer flex items-center gap-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40
6
+ ${t?"bg-primary text-white dark:text-amber-950 border-primary":D.includes(e.value)?"bg-primary border-primary text-white dark:text-amber-950 hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
7
+ `,children:[D.includes(e.value)&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),e.name,(0,i.jsx)("span",{className:"shrink-0 rounded-full bg-surface-2 px-1.5 py-0.5 text-[9px] font-mono uppercase tracking-wider text-text-muted",children:"variant"})]},e.value)})})]}),Object.entries(eh).map(([e,t])=>{let n=`${t.alias||e}/*`,a=I&&D.includes(n);return(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,i.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-lg bg-surface-2",children:(0,i.jsx)(l.A,{src:`/providers/${e}.png`,alt:t.name,size:14,fallbackText:(t.name||e).slice(0,2).toUpperCase(),fallbackColor:t.color})}),I?(0,i.jsxs)("button",{type:"button",onClick:()=>eb({value:n,name:n}),title:a?`Click to remove wildcard ${n}`:`Click to allow all models from ${t.name} (${n})`,className:`inline-flex min-w-0 items-center gap-1.5 rounded-lg px-2 py-1 text-[13px] font-medium transition-all cursor-pointer border ${a?"bg-primary text-white dark:text-amber-950 border-primary shadow-2xs hover:bg-primary-hover":"text-primary border-transparent hover:bg-primary/10 hover:border-primary/20"}`,children:[a&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none text-[12px]",children:"check"}),(0,i.jsx)("span",{className:"truncate font-display font-semibold tracking-tight",children:t.name}),(0,i.jsx)("span",{className:`mt-0.5 shrink-0 rounded-full px-1.5 py-0.5 font-mono text-[9px] uppercase tracking-wider ${a?"bg-white/20 text-white":"text-text-muted bg-surface-2"}`,children:n})]}):(0,i.jsx)("span",{className:"truncate font-display text-[13px] font-semibold tracking-tight text-text-main",children:t.name}),(0,i.jsx)("span",{className:"ml-auto shrink-0 rounded-full bg-surface-2 px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:t.models.length})]}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.models.map(e=>{let t=W===e.value,n=e.isPlaceholder;return(0,i.jsx)("button",{onClick:()=>eb(e),title:n?"Select to pre-fill, then edit model ID in the input":void 0,className:`
8
+ rounded-xl border px-2.5 py-1.5 text-xs font-medium transition-all hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40
9
+ ${n?"border-dashed border-border text-text-muted hover:border-primary/50 hover:text-primary bg-surface italic":t?"bg-primary text-white dark:text-amber-950 border-primary":D.includes(e.value)?"bg-primary border-primary text-white dark:text-amber-950 hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
10
+ `,children:(0,i.jsxs)("span",{className:"flex items-center gap-1.5",children:[D.includes(e.value)&&!n&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),n?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),e.name]}):e.isCustom?(0,i.jsxs)(i.Fragment,{children:[e.name,(0,i.jsx)("span",{className:"shrink-0 rounded-full bg-surface-2 px-1.5 py-0.5 text-[9px] font-mono uppercase tracking-wider text-text-muted",children:"custom"}),(0,i.jsx)(d.default,{caps:A(e.value)})]}):(0,i.jsxs)(i.Fragment,{children:[e.name,(0,i.jsx)(d.default,{caps:A(e.value)})]})]})},e.value)})})]},e)}),0===Object.keys(eh).length&&0===eg.length&&0===ex.length&&(0,i.jsxs)("div",{className:"rounded-xl border border-dashed border-border px-4 py-10 text-center",children:[(0,i.jsx)("span",{className:"mx-auto mb-3 flex h-10 w-10 items-center justify-center rounded-xl bg-surface-2",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[20px] text-text-muted",children:"search_off"})}),(0,i.jsx)("p",{className:"font-mono text-[11px] uppercase tracking-wider text-text-muted",children:"No models found"}),(0,i.jsx)("p",{className:"mt-1 text-xs text-text-subtle",children:"Try changing your keywords or exclusions."})]})]})]})}O.propTypes={isOpen:r().bool.isRequired,onClose:r().func.isRequired,onSelect:r().func.isRequired,onDeselect:r().func,onSelectBatch:r().func,onDeselectBatch:r().func,selectedModel:r().string,activeProviders:r().arrayOf(r().shape({provider:r().string.isRequired})),title:r().string,size:r().string,modelAliases:r().object,kindFilter:r().string,addedModelValues:r().arrayOf(r().string),closeOnSelect:r().bool,allowProviderWildcard:r().bool}},29366:(e,t,n)=>{n.d(t,{default:()=>r});var i=n(95155),a=n(28777),o=n(97677);function r({caps:e,className:t="",colorOverride:n,size:s=16}){if(!e)return null;let l=Object.keys(a.bs).filter(t=>e[t]);return 0===l.length?null:(0,i.jsx)("span",{className:`inline-flex items-center gap-0.5 ${t}`,children:l.map(e=>(0,i.jsx)(o.default,{text:`${a.bs[e].label} - ${a.bs[e].desc}`,children:(0,i.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${n||a.bs[e].color}`,style:{fontSize:`${s}px`},children:a.bs[e].icon})},e))})}},39403:(e,t,n)=>{n.d(t,{A:()=>l});var i=n(95155),a=n(12115),o=n(14051),r=n.n(o),s=n(31474);function l({options:e=[],value:t,onChange:n,placeholder:o="Select an option",disabled:r=!1,className:d,buttonClassName:c,menuClassName:u,align:p="left"}){let[m,g]=(0,a.useState)(!1),x=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!m)return;let e=e=>{x.current&&!x.current.contains(e.target)&&g(!1)},t=e=>{"Escape"===e.key&&g(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[m]);let h=e.find(e=>String(e.value)===String(t)),f=h?.label,v=h?.icon;return(0,i.jsxs)("div",{className:(0,s.cn)("relative",d),ref:x,children:[(0,i.jsxs)("button",{type:"button",onClick:()=>!r&&g(e=>!e),"aria-haspopup":"listbox","aria-expanded":m,disabled:r,className:(0,s.cn)("flex w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-left font-display text-sm text-text-main outline-none transition-colors","hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60","disabled:cursor-not-allowed disabled:opacity-50",c),children:[v&&(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:v}),(0,i.jsx)("span",{className:(0,s.cn)("flex-1 truncate",!f&&"text-text-subtle"),children:f||o}),(0,i.jsx)("span",{className:(0,s.cn)("material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150",m&&"rotate-180"),children:"expand_more"})]}),m&&(0,i.jsx)("div",{role:"listbox",className:(0,s.cn)("absolute z-30 mt-2 overflow-hidden rounded-xl border border-border bg-surface p-1 shadow-[var(--shadow-elevated)]","right"===p?"right-0":"left-0",u),children:e.map(e=>{let a=String(e.value)===String(t),o=r||e.disabled;return(0,i.jsxs)("button",{type:"button",role:"option","aria-selected":a,disabled:o,onClick:()=>{o||(n(e.value),g(!1))},className:(0,s.cn)("group flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm transition-colors",o?"cursor-not-allowed opacity-40":a?"bg-surface-2 text-text-main":"text-text-muted hover:text-primary dark:hover:text-primary"),children:[e.icon&&(0,i.jsx)("span",{className:(0,s.cn)("material-symbols-outlined text-[18px]",a?"text-text-main":"text-text-subtle group-hover:text-primary dark:group-hover:text-primary"),children:e.icon}),(0,i.jsx)("span",{className:"flex-1 font-display",children:e.label}),e.hint&&(0,i.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-text-subtle",children:e.hint}),a&&(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary dark:text-primary",children:"check"})]},String(e.value))})})]})}l.propTypes={options:r().arrayOf(r().shape({value:r().oneOfType([r().string,r().number]).isRequired,label:r().string.isRequired,disabled:r().bool,hint:r().string,icon:r().string})),value:r().oneOfType([r().string,r().number]),onChange:r().func.isRequired,placeholder:r().string,disabled:r().bool,className:r().string,buttonClassName:r().string,menuClassName:r().string,align:r().oneOf(["left","right"])}},57250:(e,t,n)=>{n.d(t,{A:()=>l});var i=n(95155),a=n(12115),o=n(14051),r=n.n(o),s=n(8247);function l({src:e,providerId:t,alt:n,size:o=32,className:r="",fallbackText:d="?",fallbackColor:c}){let u=function(e,t){if(t)return(0,s.HY)(t);if(!e)return null;let n=String(e).match(/^\/providers\/([^/]+)\.png$/i);return n?(0,s.HY)(n[1]):e}(e,t),[p,m]=(0,a.useState)(!1);return!u||p?(0,i.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${r}`.trim(),style:{width:o,height:o,color:c,fontSize:Math.max(10,Math.floor(.38*o))},children:d}):(0,i.jsx)("img",{src:u,alt:n,width:o,height:o,className:r,loading:"lazy",decoding:"async",onError:()=>{let e=u.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,s.Kw)(e[1]),t&&(0,s.Kw)(t),m(!0)}})}l.propTypes={src:r().string,providerId:r().string,alt:r().string,size:r().number,className:r().string,fallbackText:r().string,fallbackColor:r().string}},67899:(e,t,n)=>{n.d(t,{Q5:()=>function e(t,n=null,i=null,a=0){if(!t?.length||a>6)return null;let o=t.map(t=>{if(!t.includes("/")&&n?.[t])return e(n[t],n,i,a+1)??i?.(t)??k(null,t);let o=t.indexOf("/"),r=k(-1===o?null:t.slice(0,o),-1===o?t:t.slice(o+1)),s=i?.(t);return s?{...r,...s}:r}),r=o[0];return{vision:o.some(e=>e.vision),pdf:o.some(e=>e.pdf),audioInput:o.some(e=>e.audioInput),videoInput:o.some(e=>e.videoInput),imageOutput:o.some(e=>e.imageOutput),audioOutput:o.some(e=>e.audioOutput),search:o.some(e=>e.search),tools:o.every(e=>e.tools),reasoning:r.reasoning,thinkingFormat:r.thinkingFormat,thinkingCanDisable:r.thinkingCanDisable,thinkingRange:r.thinkingRange,contextWindow:Math.min(...o.map(e=>e.contextWindow)),maxOutput:Math.max(...o.map(e=>e.maxOutput))}},nl:()=>k});var i=n(62630);let a="[-_/:.]",o=RegExp(`(^|${a})(image|img)(${a}|$)|stable-image|gen[0-9]_image|nanobanana|imagine|t2v|i2v|flux|dall|sdxl|diffusion|embed|rerank|guard|moderation|tts|stt|whisper|voice|speech|audio`,"i"),r=RegExp(`(^|${a})(vision|vl|vlm|multimodal|omni|visual)(${a}|$)|[0-9]\\.[0-9]+v(${a}|$)|(^|${a})glm-[0-9]+v(${a}|$)|(^|[-_/:.])(llava|pixtral|internvl|cogvlm|minicpm-v|moondream|idefics|fuyu)`,"i"),s={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,thinkingEffortSupported:!1,contextWindow:2e5,maxOutput:64e3},l={"sensenova-6.8-flash-lite":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"claude-fable-5-1":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-thinking-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-sonnet-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-opus-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-high":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-medium":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-low":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"glm-4.6v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3,maxOutput:32768},"glm-4.5v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:64e3,maxOutput:16384},"glm-5.2":{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"glm-5.3-flash-free":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3,maxOutput:64e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"kimi-k3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},k3:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-k3.1-pro":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-for-coding":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-for-coding-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"muse-spark-1.2-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"union-alpha":{vision:!0,contextWindow:262144,maxOutput:131072},"space-bunny-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:524288},"space-bunny":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:524288},"big-pickle":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3},"exo-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"fledge-alpha-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"longcat-2.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.0-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.5-preview-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"north-mini-code-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:64e3},"ring-2.6-1t-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262e3,maxOutput:66e3},"x-preview-f-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072}},d={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},c={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:372e3,maxOutput:128e3},u={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},p={...u,contextWindow:872e3},m={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},g={nvidia:{"minimaxai/minimax-m2.7":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072},"minimaxai/minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:131072},"z-ai/glm-5.2":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"deepseek-ai/deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-ai/deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},"opencode-go":{"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"claude-haiku-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},github:{"claude-haiku-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},opencode:{"mimo-v2.6-flash-free":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1048576,maxOutput:131072},"deepseek-v4.1-flash-free":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:33e4,maxOutput:128e3}},commandcode:{"claude-haiku-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"commandcode",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},codex:{"gpt-6-astra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6.1-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6.1-terra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-astra[1m]":p,"gpt-6-sol[1m]":p,"gpt-6-luna[1m]":p,"gpt-5.6-sol[1m]":p,"gpt-5.6-terra[1m]":p,"gpt-5.6-luna[1m]":p,"gpt-5.6-sol":c,"gpt-5.6-sol-review":c,"gpt-5.6-terra":u,"gpt-5.6-terra-review":u,"gpt-5.6-luna":u,"gpt-5.6-luna-review":u},kiro:{"gpt-5.6-sol":d,"gpt-5.6-terra":d,"gpt-5.6-luna":d,"gpt-5.6-sol-thinking":d,"gpt-5.6-terra-thinking":d,"gpt-5.6-luna-thinking":d,"gpt-5.6-sol-agentic":d,"gpt-5.6-terra-agentic":d,"gpt-5.6-luna-agentic":d,"gpt-5.6-sol-thinking-agentic":d,"gpt-5.6-terra-thinking-agentic":d,"gpt-5.6-luna-thinking-agentic":d},"devin-cli":{"gpt-5.4-high":m,"gpt-5.4-medium":m,"gpt-5.4-low":m,"gpt-5.5-xhigh":m,"gpt-5.5-high":m,"gpt-5.5-medium":m,"gpt-5.5-low":m},"codebuddy-cn":{"glm-5.2":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:524288},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"kimi-k3-1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:1048576},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:3e5,maxOutput:131072},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216}},poolside:{"laguna-s-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3},"laguna-xs-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},ollama:{"deepseek-v4.1-flash:cloud":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},"minimax-code":{"MiniMax-M3.1-Flash-Preview":{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:128e3},"MiniMax-M3":{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",contextWindow:512e3,maxOutput:128e3},"MiniMax-M2.7":{reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:128e3},"MiniMax-M2.7-highspeed":{reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:128e3}},nous:{"meituan/longcat-2.0:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:1048756,maxOutput:262144},"meituan/longcat-2.5-preview:free":{tools:!0,vision:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:1048576,maxOutput:131072},"stepfun/step-5-preview:free":{tools:!0,vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:1e6,maxOutput:64e3},"upstage/solar-mini4:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:524288,maxOutput:131072},"stepfun/step-3.7-flash:free":{tools:!0,vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:256e3},"poolside/laguna-s-2.1:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:131072},"poolside/laguna-xs-2.1:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:32768},"stealth/missingno":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:131072}}};g.qoder={auto:{contextWindow:2e5,maxOutput:32768},efficient:{contextWindow:2e5,maxOutput:32768},lite:{contextWindow:2e5,maxOutput:32768},ultimate:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},performance:{vision:!0,contextWindow:2e5,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},qmodel_latest:{vision:!0,contextWindow:2e5,maxOutput:65536},qmodel:{vision:!0,contextWindow:2e5,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},kmodel_latest:{vision:!0,contextWindow:2e5,maxOutput:65536},kmodel:{vision:!0,contextWindow:2e5,maxOutput:65536},gmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},gfmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},dmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},dfmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},mmodel:{vision:!0,contextWindow:2e5,maxOutput:65536},smodel:{vision:!0,reasoning:!0,contextWindow:18e4,maxOutput:65536},cmodel:{vision:!0,reasoning:!0,contextWindow:18e4,maxOutput:65536}},g["qoder-cn"]=g.qoder,g.cx=g.codex,g.dv=g["devin-cli"],g.devin=g["devin-cli"],g["minimax-code-global"]=g["minimax-code"];let x=[{pattern:"*claude*opus-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-4*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.8*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.7*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-6*image*",caps:{imageOutput:!0}},{pattern:"*gpt-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*omni*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144,maxOutput:65536}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.5*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.6*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k3*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*kimi*for-coding*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4.*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1e6,maxOutput:131072}},{pattern:"*minimax-m2.7*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax-m2.5*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.6*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*laguna-s-2.1*free*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*laguna-s-2.1*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3}},{pattern:"*laguna*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*muse*spark*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}],h=["vision","pdf","audioInput","videoInput"];function f(e,t,n){let i={...s,...e},a="u"<typeof globalThis?null:globalThis.__krCatalogSource||null;if(a){let e=a.getModalities(t,n);if(e)for(let t of h)!0===e[t]&&(i[t]=!0);let o=a.getLimits(t,n);o&&(o.contextWindow>0&&(i.contextWindow=o.contextWindow),o.maxOutput>0&&(i.maxOutput=o.maxOutput))}return!i.vision&&function(e){if(!e)return!1;let t=String(e).toLowerCase();return!o.test(t)&&r.test(t)}(n)&&(i.vision=!0),i}let v=new Set(["deepseek/deepseek-v4-pro","deepseek/deepseek-v4-flash","deepseek/deepseek-v4-flash-fast","zai-org/glm-5.3","zai-org/glm-5.2","zai-org/glm-5.2-fast","zai-org/glm-5.1","zai-org/glm-5","minimaxai/minimax-m2.7","minimax/minimax-m2.7-free","minimaxai/minimax-m2.5","xiaomi/mimo-v2.5-pro","qwen/qwen3.6-max-preview","qwen/qwen3.7-max","meituan/longcat-2.0:free","stepfun/step-3.5-flash","tencent/hy4-preview","tencent/hy3","tencent/hy3-paid","nvidia/nemotron-3-ultra-550b-a55b","poolside/laguna-s-2.1-free","inclusionai/ling-3.0-flash-free","inclusionai/ling-3.0-flash-sante:free"]);function k(e,t){if(!t)return{...s};let n=t.includes("/")?t.split("/").pop():t;if("commandcode"===e||"cmc"===e){let e=g.commandcode;return e?.[t]?{...s,...e[t]}:e?.[n]?{...s,...e[n]}:{...s,reasoning:!0,thinkingFormat:"commandcode",thinkingEffortSupported:!0,vision:!function(e){let t=String(e||"").toLowerCase();if(v.has(t))return!0;for(let e of v){let n=e.includes("/")?e.slice(e.lastIndexOf("/")+1):e;if(t===n||t.endsWith("/"+n))return!0}return!1}(t),contextWindow:1e6,maxOutput:384e3}}if(e){let i=g[e];if(i?.[t])return{...s,...i[t]};if(i?.[n])return{...s,...i[n]}}if(l[n])return f(l[n],e,t);if(l[t])return f(l[t],e,t);for(let{pattern:a,caps:o}of x)if((0,i.gH)(a,n)||(0,i.gH)(a,t))return f(o,e,t);return f(null,e,t)}},70217:(e,t,n)=>{function i(e,t){return!1===e?"default":"active"===t||"success"===t?"success":"error"===t||"expired"===t||"unavailable"===t?"error":"default"}function a(e){let t={};for(let n of e||[])n?.provider&&(t[n.provider]||(t[n.provider]={total:0,active:0}),t[n.provider].total+=1,!1!==n.isActive&&(t[n.provider].active+=1));let n=new Set;for(let[e,i]of Object.entries(t))i.total>0&&0===i.active&&n.add(e);return n}n.d(t,{g:()=>i,i:()=>a})},81127:(e,t,n)=>{n.d(t,{ConfirmModal:()=>d,default:()=>l});var i=n(95155),a=n(12115),o=n(31474),r=n(92542),s=n(97677);function l({isOpen:e,onClose:t,title:n,children:r,footer:d,size:c="md",closeOnOverlay:u=!0,showTrafficLights:p=!0,className:m}){return((0,a.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,a.useEffect)(()=>{let n=n=>{"Escape"===n.key&&e&&t()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),e)?(0,i.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,i.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:u?t:void 0}),(0,i.jsxs)("div",{className:(0,o.cn)("relative w-full bg-surface","border border-border-subtle","rounded-[14px] shadow-[var(--shadow-elev)]","fade-in",{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"}[c],m),children:[(n||p)&&(0,i.jsxs)("div",{className:"flex items-center justify-between p-2 border-b border-border-subtle",children:[(0,i.jsxs)("div",{className:"flex items-center",children:[p&&(0,i.jsxs)("div",{className:"hidden md:flex items-center gap-2 mr-4 ml-2",children:[(0,i.jsx)(s.default,{text:"Close",position:"top",color:"#FF5F56",children:(0,i.jsx)("button",{onClick:t,"aria-label":"Close",title:"Close",className:"w-4 h-4 rounded-full bg-[#FF5F56] hover:brightness-90 transition-all cursor-pointer flex items-center justify-center group/dot",children:(0,i.jsx)("span",{className:"text-[9px] font-bold text-white opacity-0 group-hover/dot:opacity-100 transition-opacity leading-none",children:"✕"})})}),(0,i.jsx)("div",{className:"w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed"}),(0,i.jsx)("div",{className:"w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed"})]}),n&&(0,i.jsx)("h2",{className:"font-display text-lg font-semibold text-text-main",children:n})]}),(0,i.jsx)("button",{onClick:t,"aria-label":"Close",className:"md:hidden p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,i.jsx)("div",{className:"p-6 max-h-[calc(85vh-100px)] overflow-y-auto custom-scrollbar",children:r}),d&&(0,i.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-border-subtle",children:d})]})]}):null}function d({isOpen:e,onClose:t,onConfirm:n,title:a="Confirm",message:o,confirmText:s="Confirm",cancelText:c="Cancel",variant:u="danger",loading:p=!1,messageClassName:m}){return(0,i.jsx)(l,{isOpen:e,onClose:t,title:a,size:"sm",footer:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.default,{variant:"ghost",onClick:t,disabled:p,children:c}),(0,i.jsx)(r.default,{variant:u,onClick:n,loading:p,children:s})]}),children:(0,i.jsx)("p",{className:m??"text-text-muted",children:o})})}},92542:(e,t,n)=>{n.d(t,{default:()=>s});var i=n(95155),a=n(31474);let o={primary:"bg-primary text-white hover:bg-primary-hover shadow-sm disabled:bg-surface-3 disabled:text-text-muted dark:bg-primary dark:text-black dark:hover:bg-primary-hover",secondary:"bg-surface-2 hover:bg-surface-3 text-text-main border border-border disabled:opacity-50",outline:"border border-border text-text-main hover:bg-surface-2 hover:border-text-subtle",ghost:"text-text-muted hover:bg-surface-2 hover:text-text-main",danger:"bg-red-600 hover:bg-red-700 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted dark:bg-red-500 dark:hover:bg-red-400 dark:text-white",success:"bg-green-700 hover:bg-green-800 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted dark:bg-green-500 dark:hover:bg-green-400 dark:text-white"},r={xs:"h-6 px-2.5 text-[11px] rounded-[4px] gap-1.5",sm:"h-7 px-3 text-xs rounded-[5px]",md:"h-9 px-4 text-sm rounded-md",lg:"h-11 px-6 text-sm rounded-md"};function s({children:e,variant:t="primary",size:n="md",icon:l,iconRight:d,disabled:c=!1,loading:u=!1,fullWidth:p=!1,className:m,...g}){return(0,i.jsxs)("button",{className:(0,a.cn)("inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer","active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100",o[t],r[n],p&&"w-full",m),disabled:c||u,...g,children:[u?(0,i.jsx)("span",{className:(0,a.cn)("material-symbols-outlined animate-spin","xs"===n?"text-[14px]":"text-[18px]"),children:"progress_activity"}):l?(0,i.jsx)("span",{className:(0,a.cn)("material-symbols-outlined","xs"===n?"text-[14px]":"text-[18px]"),children:l}):null,e,d&&!u&&(0,i.jsx)("span",{className:(0,a.cn)("material-symbols-outlined","xs"===n?"text-[14px]":"text-[18px]"),children:d})]})}},97677:(e,t,n)=>{n.d(t,{default:()=>r});var i=n(95155),a=n(12115),o=n(47650);function r({text:e,children:t,position:n="top",color:s}){let l=(0,a.useRef)(null),[d,c]=(0,a.useState)(null);return(0,i.jsxs)("div",{ref:l,className:"relative inline-flex",onMouseEnter:()=>{let e=l.current?.getBoundingClientRect();if(!e)return;let t=e.left+e.width/2,i=e.top+e.height/2;c({position:"fixed",..."bottom"===n?{top:e.bottom+6,left:t,transform:"translateX(-50%)"}:"left"===n?{right:window.innerWidth-e.left+6,top:i,transform:"translateY(-50%)"}:"right"===n?{left:e.right+6,top:i,transform:"translateY(-50%)"}:{bottom:window.innerHeight-e.top+6,left:t,transform:"translateX(-50%)"}})},onMouseLeave:()=>c(null),children:[t,d&&(0,o.createPortal)((0,i.jsx)("div",{className:`pointer-events-none z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug text-white whitespace-normal ${s?"":"bg-gray-900"}`,style:{...d,...s?{backgroundColor:s}:{}},children:e}),document.body)]})}},98542:(e,t,n)=>{n.d(t,{default:()=>o});var i=n(95155),a=n(31474);function o({checked:e=!1,onChange:t,label:n,description:r,disabled:s=!1,size:l="md",className:d}){let c={sm:{track:"w-8 h-4",thumb:"size-3",translate:"translate-x-4"},md:{track:"w-11 h-6",thumb:"size-5",translate:"translate-x-5"},lg:{track:"w-14 h-7",thumb:"size-6",translate:"translate-x-7"}};return(0,i.jsxs)("div",{className:(0,a.cn)("flex items-center gap-3",s&&"opacity-50 cursor-not-allowed",d),children:[(0,i.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:s,onClick:()=>{!s&&t&&t(!e)},className:(0,a.cn)("relative inline-flex shrink-0 cursor-pointer rounded-full","transition-colors duration-200 ease-in-out","focus:outline-none focus:ring-2 focus:ring-text-subtle/50",e?"bg-primary dark:bg-primary":"bg-surface-3 dark:bg-surface-2",c[l].track,s&&"cursor-not-allowed"),children:(0,i.jsx)("span",{className:(0,a.cn)("pointer-events-none inline-block rounded-full bg-white shadow-sm","transform transition duration-200 ease-in-out",e?c[l].translate:"translate-x-0.5",c[l].thumb,"mt-0.5")})}),(n||r)&&(0,i.jsxs)("div",{className:"flex flex-col",children:[n&&(0,i.jsx)("span",{className:"font-display text-sm font-semibold text-text-main",children:n}),r&&(0,i.jsx)("span",{className:"text-xs text-text-muted",children:r})]})]})}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5462],{65462:(e,t,s)=>{s.r(t),s.d(t,{default:()=>y});var a=s(95155),l=s(12115),n=s(14051),i=s.n(n),o=s(21742),r=s(48035),c=s(77496),d=s(32539),x=s(59656),m=s(1162),u=s(45639),p=s(67389),f=s(84588),h=s(31474);let b=["#a3a3a3","#b4b4bb","#c4c4cb","#d4d4d8","#71717a"],g=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),j=e=>new Intl.NumberFormat().format(e||0),k=e=>String(e||0);function y({byModel:e,bare:t=!1}){let[s,n]=(0,l.useState)("tokens"),i=(0,l.useMemo)(()=>e?Object.values(e).map(e=>({name:((e,t=22)=>e&&e.length>t?e.slice(0,t)+"…":e||"")(e.rawModel||"Unknown"),tokens:(e.promptTokens||0)+(e.completionTokens||0),requests:e.requests||0})).filter(e=>e[s]>0).sort((e,t)=>t[s]-e[s]).slice(0,5):[],[e,s]),v="tokens"===s?g:k,N="tokens"===s?j:k,w="tokens"===s?"Tokens":"Requests",S=i.reduce((e,t)=>e+(t[s]||0),0),T=i[0],C=t?"div":f.default,q=(0,h.cn)("flex min-w-0 flex-col gap-4",t?"":"p-3 sm:p-4");return(0,a.jsxs)(C,{className:q,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"font-display text-base font-semibold text-text-main",children:"Top Models"}),(0,a.jsx)("div",{className:"grid grid-cols-2 items-center gap-1 rounded-full bg-surface-2 p-1",children:["tokens","requests"].map(e=>(0,a.jsx)("button",{onClick:()=>n(e),className:(0,h.cn)("px-2.5 py-0.5 rounded-full font-display text-xs font-medium transition-colors",s===e?"bg-surface text-text-main shadow-[var(--shadow-soft)]":"text-text-muted hover:text-text-main"),children:"tokens"===e?"Tokens":"Requests"},e))})]}),i.length>0&&(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-2 rounded-lg bg-surface-2/50 p-2.5",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:["Total ",w]}),(0,a.jsx)("div",{className:"truncate font-display text-sm font-bold text-text-main",children:N(S)})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Top model"}),(0,a.jsx)("div",{className:"truncate font-display text-sm font-bold text-text-main",title:T?.name,children:T?.name||"-"})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Shown"}),(0,a.jsx)("div",{className:"truncate font-display text-sm font-bold text-text-main",children:i.length})]})]}),i.length?(0,a.jsx)(o.u,{width:"100%",height:180,children:(0,a.jsxs)(r.E,{data:i,layout:"vertical",margin:{top:4,right:40,left:4,bottom:4},children:[(0,a.jsx)(c.d,{strokeDasharray:"3 3",strokeOpacity:.1,horizontal:!1}),(0,a.jsx)(d.W,{type:"number",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:v}),(0,a.jsx)(x.h,{type:"category",dataKey:"name",tick:{fontSize:10,fill:"currentColor",fillOpacity:.7},tickLine:!1,axisLine:!1,width:90}),(0,a.jsx)(m.m,{cursor:{fill:"var(--color-bg-subtle)",opacity:.6},contentStyle:{backgroundColor:"var(--color-surface)",border:"1px solid var(--color-border)",borderRadius:"8px",fontSize:"12px",boxShadow:"var(--shadow-elevated)"},labelStyle:{color:"var(--color-text-muted)",marginBottom:4},formatter:e=>[N(e),w]}),(0,a.jsx)(u.yP,{dataKey:s,radius:[0,4,4,0],children:i.map((e,t)=>(0,a.jsx)(p.f,{fill:b[t%b.length],fillOpacity:.88},e.name))})]})}):(0,a.jsxs)("div",{className:"h-44 flex flex-col items-center justify-center gap-1 text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[26px] text-text-subtle",children:"smart_toy"}),(0,a.jsx)("span",{className:"text-sm",children:"No model usage yet"})]})]})}y.propTypes={byModel:i().object}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5462],{65462:(e,t,s)=>{s.r(t),s.d(t,{default:()=>k});var a=s(95155),l=s(12115),n=s(14051),i=s.n(n),r=s(21742),o=s(48035),c=s(77496),d=s(32539),x=s(59656),m=s(1162),p=s(45639),u=s(67389),f=s(84588),h=s(31474);let b=["#a3a3a3","#b4b4bb","#c4c4cb","#d4d4d8","#71717a"],g=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),j=e=>new Intl.NumberFormat().format(e||0),y=e=>String(e||0);function k({byModel:e,bare:t=!1}){let[s,n]=(0,l.useState)("tokens"),i=(0,l.useMemo)(()=>e?Object.values(e).map(e=>({name:((e,t=22)=>e&&e.length>t?e.slice(0,t)+"…":e||"")(e.rawModel||"Unknown"),tokens:(e.promptTokens||0)+(e.completionTokens||0),requests:e.requests||0})).filter(e=>e[s]>0).sort((e,t)=>t[s]-e[s]).slice(0,5):[],[e,s]),v="tokens"===s?g:y,N="tokens"===s?j:y,w="tokens"===s?"Tokens":"Requests",S=i.reduce((e,t)=>e+(t[s]||0),0),T=i[0],C=t?"div":f.default,q=(0,h.cn)("flex min-w-0 flex-col gap-4",t?"":"p-3 sm:p-4");return(0,a.jsxs)(C,{className:q,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"font-display text-base font-semibold text-text-main",children:"Top Models"}),(0,a.jsx)("div",{className:"grid grid-cols-2 items-center gap-1 rounded-full bg-surface-2 p-1",children:["tokens","requests"].map(e=>(0,a.jsx)("button",{onClick:()=>n(e),className:(0,h.cn)("px-2.5 py-0.5 rounded-full font-display text-xs font-medium transition-colors",s===e?"bg-surface text-text-main shadow-[var(--shadow-soft)]":"text-text-muted hover:text-text-main"),children:"tokens"===e?"Tokens":"Requests"},e))})]}),i.length>0&&(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-2 rounded-lg bg-surface-2/50 p-2.5",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:["Total ",w]}),(0,a.jsx)("div",{className:"truncate font-display text-sm font-bold text-text-main",children:N(S)})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Top model"}),(0,a.jsx)("div",{className:"truncate font-display text-sm font-bold text-text-main",title:T?.name,children:T?.name||"-"})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Shown"}),(0,a.jsx)("div",{className:"truncate font-display text-sm font-bold text-text-main",children:i.length})]})]}),i.length?(0,a.jsx)(r.u,{width:"100%",height:180,children:(0,a.jsxs)(o.E,{data:i,layout:"vertical",margin:{top:4,right:40,left:4,bottom:4},children:[(0,a.jsx)(c.d,{strokeDasharray:"3 3",strokeOpacity:.1,horizontal:!1}),(0,a.jsx)(d.W,{type:"number",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:v}),(0,a.jsx)(x.h,{type:"category",dataKey:"name",tick:{fontSize:10,fill:"currentColor",fillOpacity:.7},tickLine:!1,axisLine:!1,width:90}),(0,a.jsx)(m.m,{cursor:{fill:"var(--color-bg-subtle)",opacity:.6},contentStyle:{backgroundColor:"var(--color-surface)",border:"1px solid var(--color-border)",borderRadius:"8px",fontSize:"12px",boxShadow:"var(--shadow-elevated)"},labelStyle:{color:"var(--color-text-muted)",marginBottom:4},formatter:e=>[N(e),w]}),(0,a.jsx)(p.yP,{dataKey:s,radius:[0,4,4,0],children:i.map((e,t)=>(0,a.jsx)(u.f,{fill:b[t%b.length],fillOpacity:.88},e.name))})]})}):(0,a.jsxs)("div",{className:"h-44 flex flex-col items-center justify-center gap-1 text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[26px] text-primary dark:text-primary",children:"smart_toy"}),(0,a.jsx)("span",{className:"text-sm",children:"No model usage yet"})]})]})}k.propTypes={byModel:i().object}}}]);
@@ -0,0 +1,9 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5496],{15536:(e,t,s)=>{"use strict";s.d(t,{Cp:()=>i,Hx:()=>l,Iv:()=>d,Nv:()=>m,RL:()=>o,ev:()=>x,fl:()=>r,hT:()=>a,oX:()=>n,t6:()=>c});let a=["zh-CN","zh-TW"],n=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}],l=2e3,i=3e5,r=5e3,c=5,o=1e4,d=5e3,x=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"},{id:"wenyan-lite",label:"文 Lite",desc:"Classical Chinese, light compression",wenyan:!0},{id:"wenyan",label:"文 Full",desc:"Maximum 文言文, 80-90% reduction",wenyan:!0},{id:"wenyan-ultra",label:"文 Ultra",desc:"Extreme classical compression",wenyan:!0}],m=[{id:"lite",label:"Lite",desc:"Build asked, name lazier option"},{id:"full",label:"Full",desc:"Ladder enforced: stdlib/native first"},{id:"ultra",label:"Ultra",desc:"YAGNI extremist, deletion first"}]},26173:(e,t,s)=>{"use strict";s.d(t,{default:()=>j});var a=s(95155),n=s(12115),l=s(14051),i=s.n(l),r=s(35497),c=s(11059),o=s(15536);async function d(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(o.Iv)})).ok}catch{return!1}}async function x(...e){let t=e.filter(Boolean).map(d);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}var m=s(72767);function u({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function p({message:e,action:t,title:s="Security notice"}){return(0,a.jsxs)("div",{className:"flex items-center gap-3 rounded-xl border border-amber-500/25 bg-amber-500/[0.07] p-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-amber-500/15 text-amber-600 dark:text-amber-400",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[19px]",children:"warning"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"font-display text-[13px] font-semibold text-amber-700 dark:text-amber-300",children:s}),(0,a.jsx)("p",{className:"mt-0.5 font-mono text-[10px] uppercase tracking-wider leading-relaxed text-amber-700/80 dark:text-amber-400/80",children:e})]}),t&&(0,a.jsx)("a",{href:t.href,className:"shrink-0 rounded-lg bg-amber-500/15 px-3 py-1.5 font-mono text-[11px] font-medium uppercase tracking-wider text-amber-700 transition-colors hover:bg-amber-500/25 dark:text-amber-300",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}function h({apiKey:e,onChange:t,onRequestRestrict:s}){let l=e.access||{restricted:!1,allow:[]},[i,c]=(0,n.useState)(!1),[o,d]=(0,n.useState)([]),[x,m]=(0,n.useState)({}),u=async()=>{c(!0);try{let[e,t]=await Promise.all([fetch("/api/providers"),fetch("/api/models/alias")]);e.ok&&d((await e.json()).connections||[]),t.ok&&m((await t.json()).aliases||{})}catch(e){console.log("Error loading picker data:",e)}},p=e=>t({restricted:!0,allow:e}),g=e=>p(l.allow.filter(t=>t!==e));return(0,a.jsxs)("div",{className:"mt-2","data-testid":"key-access",children:[(0,a.jsx)(r.lM,{size:"sm",checked:l.restricted,label:"Restrict access",onChange:e=>e?s():t({restricted:!1,allow:l.allow})}),l.restricted&&(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[0===l.allow.length&&(0,a.jsx)("span",{className:"text-xs text-warning",children:"No combos or models allowed - this key can call nothing."}),l.allow.map(e=>(0,a.jsxs)("span",{className:"flex items-center gap-1 rounded-[4px] border border-border bg-surface-2 px-2 py-0.5 font-mono text-xs text-text-main",children:[e,(0,a.jsx)("button",{onClick:()=>g(e),className:"rounded text-text-muted hover:text-red-500",title:`Remove ${e}`,"aria-label":`Remove ${e}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"12px"},children:"close"})})]},e)),(0,a.jsxs)("button",{onClick:u,className:"flex items-center gap-0.5 rounded-[4px] border border-dashed border-text-subtle px-2 py-0.5 text-xs font-medium text-text-muted hover:border-text-main hover:text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"14px"},children:"add"}),"Add combo or model"]})]}),i&&(0,a.jsx)(r.rq,{isOpen:i,onClose:()=>c(!1),onSelect:e=>{let t=e?.value;t&&!l.allow.some(e=>e.toLowerCase()===t.toLowerCase())&&p([...l.allow,t])},onDeselect:e=>g(l.allow.find(t=>t.toLowerCase()===String(e?.value).toLowerCase())),activeProviders:o,modelAliases:x,title:`Allowed for "${e.name}"`,addedModelValues:l.allow,closeOnSelect:!1})]})}h.propTypes={apiKey:i().shape({id:i().string.isRequired,name:i().string,access:i().shape({restricted:i().bool,allow:i().arrayOf(i().string)})}).isRequired,onChange:i().func.isRequired,onRequestRestrict:i().func.isRequired};var g=s(31474);function f({value:e,copyId:t,copied:s,onCopy:n,size:l="sm",onOpen:i,className:r}){let c="lg"===l,o=s===t;return(0,a.jsxs)("div",{className:(0,g.cn)("flex items-center gap-2 rounded-md border bg-surface pl-3 pr-1","border-border focus-within:border-text-subtle focus-within:ring-1 focus-within:ring-text-subtle/50 transition",c?"h-11":"h-9",r),children:[(0,a.jsx)("span",{className:(0,g.cn)("material-symbols-outlined shrink-0 text-text-subtle",c?"text-[18px]":"text-[15px]"),children:"link"}),(0,a.jsx)("span",{className:(0,g.cn)("min-w-0 flex-1 truncate font-mono text-text-main",c?"text-[13px] sm:text-sm":"text-[12px]"),title:e,children:e}),i&&(0,a.jsx)("button",{type:"button",onClick:i,className:"grid size-7 shrink-0 place-items-center rounded-[4px] text-text-muted transition hover:bg-surface-2 hover:text-text-main",title:"Open endpoint","aria-label":"Open endpoint",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"open_in_new"})}),(0,a.jsx)("button",{type:"button",onClick:()=>n(e,t),className:(0,g.cn)("grid shrink-0 place-items-center rounded-[4px] transition",c?"size-8":"size-7",o?"bg-success/12 text-success":"text-text-muted hover:bg-surface-2 hover:text-text-main"),title:"Copy","aria-label":"Copy to clipboard",children:(0,a.jsx)("span",{className:(0,g.cn)("material-symbols-outlined",c?"text-[18px]":"text-[16px]"),children:o?"check":"content_copy"})})]})}f.propTypes={value:i().string.isRequired,copyId:i().string.isRequired,copied:i().string,onCopy:i().func.isRequired,size:i().oneOf(["sm","lg"]),onOpen:i().func,className:i().string};let y={ok:{pill:"bg-success/10 text-success border border-success/20",chip:"bg-success/10 text-success",dot:"bg-success"},busy:{pill:"bg-warning/10 text-warning border border-warning/20",chip:"bg-warning/10 text-warning",dot:"bg-warning animate-pulse"},off:{pill:"bg-surface-2 text-text-muted border border-border",chip:"bg-surface-2 text-text-muted",dot:"bg-text-subtle/40"},error:{pill:"bg-danger/10 text-danger border border-danger/20",chip:"bg-danger/10 text-danger",dot:"bg-danger"}};function b({icon:e,label:t,desc:s,tone:n="off",toneLabel:l,children:i}){let r=y[n]||y.off;return(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-surface p-4 transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-start gap-3.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[22px] text-primary dark:text-primary",children:e}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 pt-0.5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[(0,a.jsx)("span",{className:"font-display text-[15px] font-semibold text-text-main",children:t}),(0,a.jsxs)("span",{className:(0,g.cn)("inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider",r.pill),children:[(0,a.jsx)("span",{className:(0,g.cn)("size-1.5 rounded-full",r.dot)}),l]})]}),(0,a.jsx)("p",{className:"mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted",children:s})]})]}),(0,a.jsx)("div",{className:"mt-4",children:i})]})}function j({machineId:e}){let[t,s]=(0,n.useState)([]),[l,i]=(0,n.useState)(!0),[g,y]=(0,n.useState)(!1),[w,v]=(0,n.useState)(""),[k,N]=(0,n.useState)(null),[C,S]=(0,n.useState)(null),[T,P]=(0,n.useState)(!1),[R,_]=(0,n.useState)(!0),[$,E]=(0,n.useState)(!0),[O,A]=(0,n.useState)(!1),[I,U]=(0,n.useState)(!0),[z,q]=(0,n.useState)(!1),[L,D]=(0,n.useState)(!1),[F,W]=(0,n.useState)(""),[K,H]=(0,n.useState)(""),[J,M]=(0,n.useState)(!1),[B,Z]=(0,n.useState)(""),[Q,V]=(0,n.useState)(null),[X,Y]=(0,n.useState)(!1),[G,ee]=(0,n.useState)(!1),[et,es]=(0,n.useState)(!1),[ea,en]=(0,n.useState)(!1),[el,ei]=(0,n.useState)(""),[er,ec]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(""),[ex,em]=(0,n.useState)(null),[eu,ep]=(0,n.useState)(""),[eh,eg]=(0,n.useState)(""),[ef,ey]=(0,n.useState)(null),[eb,ej]=(0,n.useState)(!1),[ew,ev]=(0,n.useState)([]),[ek,eN]=(0,n.useState)(""),[eC,eS]=(0,n.useState)(!1),[eT,eP]=(0,n.useState)(!1),[eR,e_]=(0,n.useState)(!1),e$=(0,n.useRef)(null),eE=(0,n.useRef)(0),eO=(0,n.useRef)(0),eA=(0,n.useRef)(!1),eI=(0,n.useRef)(!1),eU=(0,n.useRef)(!1),ez=(0,n.useRef)(!1),[eq,eL]=(0,n.useState)(!1),[eD,eF]=(0,n.useState)(!1),[eW,eK]=(0,n.useState)(new Set),[eH,eJ]=(0,n.useState)(!1);(0,n.useEffect)(()=>{eJ(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:eM,copy:eB}=(0,c.C)(),eZ=!R||!$,eQ=R?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.',eV=t.filter(e=>"Default Key"===e.name),eX=t.filter(e=>"Default Key"!==e.name);(0,n.useEffect)(()=>{e$.current&&(e$.current.scrollTop=e$.current.scrollHeight)},[ew]),(0,n.useEffect)(()=>{e2(),e0()},[]),(0,n.useEffect)(()=>{if(!(z||et))return;let e=!z||L,t=!et||ea,s=()=>{document.hidden||eG()};if(document.addEventListener("visibilitychange",s),e&&t)return()=>document.removeEventListener("visibilitychange",s);let a=setInterval(()=>{document.hidden||eG()},o.fl);return()=>{clearInterval(a),document.removeEventListener("visibilitychange",s)}},[z,et,L,ea]),(0,n.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(z&&(F||K)){let e=await x(K,F);eA.current=e,e?(eE.current=0,D(!0),eU.current||(eU.current=!0,eL(!0))):(eE.current+=1,eE.current>=o.t6&&D(!1))}else eA.current=!1;if(et&&el){let e=await d(el);eI.current=e,e?(eO.current=0,en(!0),ez.current||(ez.current=!0,eF(!0))):(eO.current+=1,eO.current>=o.t6&&en(!1))}else eI.current=!1}};if(!(z&&(F||K)||et&&el))return;e();let t=!et||ea;if((!z||L)&&t)return;let s=setInterval(e,o.RL);return()=>clearInterval(s)},[z,F,K,et,el,L,ea]);let eY=(0,n.useCallback)((e,t,s,a,n,l)=>{t.current?(s.current=0,a(!0),n.current||(n.current=!0,l(!0))):(s.current+=1,s.current>=o.t6&&a(!1))},[]),eG=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,a=t.tunnel?.tunnelUrl||"";W(a),H(t.tunnel?.publicUrl||""),q(s),eY(null,eA,eE,D,eU,eL);let n=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,l=t.tailscale?.tunnelUrl||"";ei(l),es(n),eY(null,eI,eO,en,ez,eF)}catch{}},e0=async()=>{U(!0);try{let[e,t]=await Promise.all([m.A.getState().fetchSettings(),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e&&(P(e.requireApiKey||!1),_(!1!==e.requireLogin),E(e.hasPassword||!1),A(e.tunnelDashboardAccess||!1)),t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,a=e.tunnel?.tunnelUrl||"";W(a),H(e.tunnel?.publicUrl||""),q(s),eY(null,eA,eE,D,eU,eL);let n=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,l=e.tailscale?.tunnelUrl||"";ei(l),es(n),eY(null,eI,eO,en,ez,eF)}}catch(e){console.log("Error loading settings:",e)}finally{U(!1)}},e1=async e=>{try{await m.A.getState().patchSettings({requireApiKey:e})&&P(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e2=async()=>{try{let e=async()=>{let e=await fetch("/api/keys");return e.ok&&(await e.json()).keys||[]},t=await e();if(0===t.length)try{(await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"Default Key"})})).ok&&(t=await e())}catch{}s(t)}catch(e){console.log("Error fetching data:",e)}finally{i(!1)}},e5=async(...e)=>{M(!0),Z("Waiting for tunnel ready...");let t=e.filter(Boolean).map(e=>`${e}/api/health`),s=Date.now();for(;Date.now()-s<o.Cp;){if(await new Promise(e=>setTimeout(e,o.Hx)),await Promise.any(t.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return q(!0),M(!1),Z(""),!0;if((Date.now()-s)%1e4<o.Hx)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return V({type:"error",message:"Tunnel process stopped unexpectedly."}),M(!1),Z(""),!1}}catch{}}return V({type:"error",message:"Tunnel created but not reachable. Please try again."}),M(!1),Z(""),!1},e3=async()=>{Y(!1),M(!0),V(null),Z("Creating tunnel...");let e=!0;(async()=>{for(;e;){try{let t=await fetch("/api/tunnel/status");if(t.ok){let s=await t.json();s.download?.downloading?Z(`Downloading cloudflared... ${s.download.progress}%`):e&&Z("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let t=await fetch("/api/tunnel/enable",{method:"POST"});e=!1;let s=await t.json();if(!t.ok)return void V({type:"error",message:s.error||"Failed to enable tunnel"});let a=s.tunnelUrl;if(!a)return void V({type:"error",message:"No tunnel URL returned"});W(a),H(s.publicUrl||""),await e5(s.publicUrl,a)}catch(e){V({type:"error",message:e.message})}finally{e=!1,M(!1),Z("")}},e4=async()=>{M(!0),V(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(q(!1),W(""),ee(!1),V({type:"success",message:"Tunnel disabled"})):V({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){V({type:"error",message:e.message})}finally{M(!1)}},e6=async()=>{ey(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return ey(t.installed),t}}catch{}return ey(!1),{installed:!1}},e7=async()=>{ej(!0),em(null),ev([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:ek})});eN("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:n}=await t.read();if(e)break;let l=(a+=s.decode(n,{stream:!0})).split("\n\n");for(let e of(a=l.pop()||"",l)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)ev(e=>[...e.slice(-50),a.message]);else if("done"===s){ey(!0),ej(!1),eP(!1),tt();return}else"error"===s&&em({type:"error",message:a.error||"Install failed"})}}}catch(e){em({type:"error",message:e.message})}finally{ej(!1)}},e9=async e=>{ed("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<o.Cp;){await new Promise(e=>setTimeout(e,o.Hx));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},e8=(e,t)=>{ep(e),eg(t)},te=()=>{ep(""),eg("")},tt=async()=>{eP(!1),eS(!0),ec(!0),em(null),ed("Connecting..."),te();try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ei(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);es(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.needsLogin&&t.authUrl){e8(t.authUrl,"Open Login Page"),ed('Login required - click "Open Login Page" to continue');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){te(),ed("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ei(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);es(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."})}else t.funnelNotEnabled&&t.enableUrl?await ts(t.enableUrl):em({type:"error",message:t.error||"Failed to start funnel"});return}}catch{}}te(),em({type:"error",message:"Login timed out. Please try again."});return}if(t.funnelNotEnabled&&t.enableUrl)return void await ts(t.enableUrl);em({type:"error",message:t.error||"Failed to connect"})}catch(e){em({type:"error",message:e.message})}finally{ec(!1),eS(!1),ed(""),te()}},ts=async e=>{e8(e,"Open Funnel Settings"),ed('Click "Open Funnel Settings" to enable Funnel...');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){te(),ei(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);es(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.funnelNotEnabled)continue;if(t.error){te(),em({type:"error",message:t.error});return}}catch{}}te(),em({type:"error",message:"Timed out waiting for Funnel to be enabled."})},ta=async()=>{ec(!0),em(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(es(!1),ei(""),e_(!1),em({type:"success",message:"Tailscale disabled"})):em({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){em({type:"error",message:e.message})}finally{ec(!1)}},tn=async()=>{em(null),ev([]);let e=await e6();e?.installed&&e?.hasCachedPassword?tt():eP(!0)},tl=async()=>{if(w.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:w})}),t=await e.json();e.ok&&(N(t.key),await e2(),v(""),y(!1))}catch(e){console.log("Error creating key:",e)}},ti=async e=>{S({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{S(null);try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&(s(t.filter(t=>t.id!==e)),eK(t=>{let s=new Set(t);return s.delete(e),s}))}catch(e){console.log("Error deleting key:",e)}}})},tr=async(e,t)=>{try{(await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error toggling key:",e)}},tc=async(e,t)=>{try{let a=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({access:t})}),n=await a.json().catch(()=>({}));a.ok&&n.key?s(t=>t.map(t=>t.id===e?{...t,access:n.key.access}:t)):console.log("Error updating key access:",n.error||a.status)}catch(e){console.log("Error updating key access:",e)}},to=e=>!e||e.length<=10?e||"":e.slice(0,6)+"•".repeat(e.length-10)+e.slice(-4),td=e=>{eK(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[tx,tm]=(0,n.useState)("/v1");if((0,n.useEffect)(()=>{tm(`${window.location.origin}/v1`)},[]),l)return(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsx)(r.Qv,{}),(0,a.jsx)(r.Qv,{})]});let tu=z?L?"ok":"busy":J||I?"busy":Q?.type==="error"?"error":"off",tp=z?L?"Connected":eq?"Reconnecting":"Connecting":J?"Starting":I?"Checking":Q?.type==="error"?"Error":"Off",th=et?ea?"ok":"busy":er||eC?"busy":ex?.type==="error"?"error":"off",tg=et?ea?"Connected":eD?"Reconnecting":"Connecting":er||eC?"Starting":ex?.type==="error"?"Error":"Off";return(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsxs)(r.Zp,{children:[(0,a.jsx)("h2",{className:"font-display text-lg font-semibold text-text-main",children:"OpenAI-compatible base URL"}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"One address in front of every provider connection."}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(f,{value:tx,copyId:"local_url",copied:eM,onCopy:eB,size:"lg",onOpen:()=>window.open(tx,"_blank","noopener,noreferrer")})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 items-start gap-6 lg:grid-cols-[1fr_520px] lg:items-stretch",children:[(0,a.jsx)("div",{className:"flex flex-col",children:(0,a.jsxs)(r.Zp,{className:"h-full",children:[(0,a.jsx)("div",{className:"mb-3 flex items-center justify-between",children:(0,a.jsx)("h2",{className:"font-display text-base font-semibold text-text-main",children:"Remote access"})}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(b,{icon:"cloud_upload",label:"Cloudflare Tunnel",desc:"Public HTTPS address from Cloudflare - no port forwarding.",tone:tu,toneLabel:tp,children:z&&!J&&L?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(f,{value:`${K||F}/v1`,copyId:"tunnel_url",copied:eM,onCopy:eB,className:"flex-1"}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>ee(!0),children:"Stop"})]}):!z||J||L?J?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),B||"Creating tunnel…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>{M(!1),Z("")},children:"Stop"})]}):Q?.type==="error"?(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-start gap-2 rounded-md border border-danger/25 bg-danger/5 px-3 py-2 text-xs text-danger",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]",children:"error"}),(0,a.jsx)("span",{className:"min-w-0",children:Q.message})]}),(0,a.jsx)(r.$n,{size:"sm",icon:"cloud_upload",onClick:()=>Y(!0),children:"Retry"})]}):I?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),"Checking…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"close",onClick:()=>U(!1),children:"Skip"})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("p",{className:"font-mono text-[10px] text-text-subtle",children:"Requires login + API key."}),(0,a.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"cloud_upload",onClick:()=>{eZ?V({type:"error",message:`Security required: ${eQ}`}):T?Y(!0):V({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"})]}):(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-warning/25 bg-warning/5 px-3 py-2 text-xs text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),eq?"Tunnel reconnecting…":"Tunnel checking…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>ee(!0),children:"Stop"})]})}),(0,a.jsx)(b,{icon:"vpn_lock",label:"Tailscale Funnel",desc:"Private HTTPS host on your tailnet - invite-only by default.",tone:th,toneLabel:tg,children:et&&!er&&ea?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(f,{value:`${el}/v1`,copyId:"ts_url",copied:eM,onCopy:eB,className:"flex-1"}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>e_(!0),children:"Stop"})]}):!et||er||ea?er||eC?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),eo||"Connecting…"]}),eu&&(0,a.jsx)(r.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(eu,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:eh||"Open"}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>{ec(!1),eS(!1),ed(""),te()},children:"Stop"})]}):ex?.type==="error"?(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-start gap-2 rounded-md border border-danger/25 bg-danger/5 px-3 py-2 text-xs text-danger",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]",children:"error"}),(0,a.jsx)("span",{className:"min-w-0",children:ex.message})]}),(0,a.jsx)(r.$n,{size:"sm",icon:"vpn_lock",onClick:tn,children:"Retry"})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("p",{className:"font-mono text-[10px] text-text-subtle",children:"Requires a Tailscale account."}),(0,a.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"vpn_lock",onClick:()=>{eZ?em({type:"error",message:`Security required: ${eQ}`}):tn()},children:"Enable"})]}):(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-warning/25 bg-warning/5 px-3 py-2 text-xs text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),eD?"Tailscale reconnecting…":"Tailscale checking…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>e_(!0),children:"Stop"})]})})]}),eZ&&!z&&!et&&(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(p,{message:eQ,action:{label:"Open settings",href:"/dashboard/profile"}})})]})}),(0,a.jsxs)(r.Zp,{id:"require-api-key",className:"scroll-mt-24 flex h-full flex-col",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h2",{className:"flex items-center gap-2 font-display text-lg font-semibold text-text-main",children:["API keys",(0,a.jsx)("span",{className:"rounded-[5px] bg-surface-2 px-2 py-0.5 font-mono text-[11px] uppercase tracking-wider text-text-muted",children:t.length})]}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Keys authenticate clients against this gateway."})]}),(0,a.jsx)(r.$n,{icon:"add",className:"font-display",onClick:()=>y(!0),children:"Create key"})]}),(0,a.jsxs)("div",{className:"mt-4 flex items-center justify-between gap-3 rounded-xl bg-surface p-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[22px] shrink-0 text-primary dark:text-primary",children:"vpn_key"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("p",{className:"font-display text-[15px] font-semibold text-text-main",children:"Require API key"}),(0,a.jsx)("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:T?"On":"Off"})]}),(0,a.jsx)("p",{className:"mt-0.5 truncate font-mono text-[10px] text-text-muted",children:T?"Rejects missing keys":"Any client accepted"})]})]}),(0,a.jsx)(r.lM,{checked:T,onChange:()=>e1(!T)})]}),eH&&!T&&(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(p,{message:"Endpoint is exposed without an API key."})}),0===eX.length?(0,a.jsxs)("div",{className:"mt-4 rounded-md border border-dashed border-border px-6 py-10 text-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mb-3 block text-[32px] text-primary dark:text-primary",children:"vpn_key"}),(0,a.jsx)("p",{className:"font-display text-base font-semibold text-text-main",children:"No keys yet"}),(0,a.jsx)("p",{className:"mx-auto mt-1 mb-4 max-w-xs font-mono text-[10px] uppercase tracking-wider text-text-muted",children:"Create a key, then point your client at the endpoint above."}),(0,a.jsx)(r.$n,{icon:"add",className:"font-display",onClick:()=>y(!0),children:"Create key"})]}):(0,a.jsx)("div",{className:"mt-3 flex flex-col gap-2",children:eX.map(e=>(0,a.jsxs)("div",{className:`group rounded-xl border border-border-subtle bg-surface px-3.5 py-3 transition ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsx)("div",{className:"flex min-w-0 items-center gap-2.5",children:(0,a.jsx)("div",{className:"min-w-0",children:(0,a.jsx)("p",{className:"truncate font-display text-[15px] font-semibold text-text-main",children:e.name})})}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,a.jsx)(r.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?S({title:"Pause API Key",message:`Pause API key "${e.name}"?
2
+
3
+ This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{S(null),tr(e.id,t)}}):tr(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>ti(e.id),className:"grid size-8 place-items-center rounded-lg text-text-muted transition hover:bg-danger/10 hover:text-danger",title:"Delete key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[17px]",children:"delete"})})]})]}),(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 truncate rounded-lg bg-bg px-3 py-2 font-mono text-[11.5px] text-text-muted",children:eW.has(e.id)?e.key:to(e.key)}),(0,a.jsx)("button",{onClick:()=>td(e.id),className:"grid size-9 shrink-0 place-items-center rounded-lg text-text-muted transition hover:bg-surface-2 hover:text-text-main",title:eW.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eW.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>eB(e.key,e.id),className:`grid size-9 shrink-0 place-items-center rounded-lg transition ${eM===e.id?"bg-success/10 text-success":"text-text-muted hover:bg-surface-2 hover:text-text-main"}`,title:"Copy key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eM===e.id?"check":"content_copy"})})]}),!1===e.isActive&&(0,a.jsxs)("p",{className:"mt-2 flex items-center gap-1 text-[11px] text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"pause_circle"}),"Paused - clients using this key get rejected."]}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(h,{apiKey:e,onChange:t=>tc(e.id,t),onRequestRestrict:()=>S({title:"Restrict API Key",message:`Restrict API key "${e.name}"?
4
+
5
+ It will only be able to call the combos and models you add. Until you add one, it can call nothing.`,onConfirm:async()=>{S(null),tc(e.id,{restricted:!0,allow:e.access?.allow||[]})}})})})]},e.id))})]})]}),eV.length>0&&(0,a.jsxs)(r.Zp,{className:"scroll-mt-24",children:[(0,a.jsx)("div",{className:"mb-3 flex flex-wrap items-start justify-between gap-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"flex items-center gap-2 font-display text-lg font-semibold text-text-main",children:"Default key"}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Auto-provisioned key so the endpoint works out of the box."})]})}),(0,a.jsx)("div",{className:"flex flex-col gap-3",children:eV.map(e=>(0,a.jsxs)("div",{className:`group rounded-xl border border-border bg-surface p-4 transition ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary dark:text-primary",children:"key"}),(0,a.jsx)("div",{className:"min-w-0",children:(0,a.jsx)("p",{className:"truncate font-display text-[15px] font-semibold text-text-main",children:e.name})})]}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,a.jsx)(r.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?S({title:"Pause API Key",message:`Pause API key "${e.name}"?
6
+
7
+ This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{S(null),tr(e.id,t)}}):tr(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>ti(e.id),className:"grid size-8 place-items-center rounded-lg text-text-muted transition hover:bg-danger/10 hover:text-danger",title:"Delete key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[17px]",children:"delete"})})]})]}),(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 truncate rounded-lg border border-border-subtle bg-bg px-3 py-2 font-mono text-[11.5px] text-text-muted",children:eW.has(e.id)?e.key:to(e.key)}),(0,a.jsx)("button",{onClick:()=>td(e.id),className:"grid size-9 shrink-0 place-items-center rounded-lg text-text-muted transition hover:bg-surface-2 hover:text-text-main",title:eW.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eW.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>eB(e.key,e.id),className:`grid size-9 shrink-0 place-items-center rounded-lg transition ${eM===e.id?"bg-success/10 text-success":"text-text-muted hover:bg-surface-2 hover:text-text-main"}`,title:"Copy key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eM===e.id?"check":"content_copy"})})]}),!1===e.isActive&&(0,a.jsxs)("p",{className:"mt-2 flex items-center gap-1 text-[11px] text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"pause_circle"}),"Paused - clients using this key get rejected."]}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(h,{apiKey:e,onChange:t=>tc(e.id,t),onRequestRestrict:()=>S({title:"Restrict API Key",message:`Restrict API key "${e.name}"?
8
+
9
+ It will only be able to call the combos and models you add. Until you add one, it can call nothing.`,onConfirm:async()=>{S(null),tc(e.id,{restricted:!0,allow:e.access?.allow||[]})}})})})]},e.id))})]}),(0,a.jsx)(r.aF,{isOpen:g,title:"New API key",onClose:()=>{y(!1),v("")},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(r.pd,{label:"Name",value:w,onChange:e=>v(e.target.value),placeholder:"k8s-staging",hint:"Only a label for you - never sent to providers."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:tl,className:"font-display",fullWidth:!0,disabled:!w.trim(),children:"Create key"}),(0,a.jsx)(r.$n,{onClick:()=>{y(!1),v("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(r.aF,{isOpen:!!k,title:"Key created",onClose:()=>N(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-warning/30 bg-warning/5 p-3.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[18px] text-warning",children:"priority_high"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-semibold text-warning",children:"Copy it now"}),(0,a.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-text-muted",children:"The full value is only shown once. You can still copy it later from the key list, but treat it like a password."})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.pd,{value:k||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(r.$n,{variant:"secondary",icon:"created_key"===eM?"check":"content_copy",onClick:()=>eB(k,"created_key"),children:"created_key"===eM?"Copied!":"Copy"})]}),(0,a.jsx)(r.$n,{onClick:()=>N(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(r.aF,{isOpen:X,title:"Enable Tunnel",onClose:()=>Y(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-md p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-text-muted",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-display text-sm font-semibold text-text-main mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local KeyRouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:o.oX.map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border-subtle bg-bg px-3 py-2.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:e.icon}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"font-display text-sm font-semibold text-text-main",children:e.title}),(0,a.jsx)("p",{className:"text-[11px] leading-relaxed text-text-muted",children:e.desc})]})]},e.title))}),(0,a.jsx)("p",{className:"font-mono text-[10px] uppercase tracking-wider text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:e3,fullWidth:!0,children:"Start Tunnel"}),(0,a.jsx)(r.$n,{onClick:()=>Y(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(r.aF,{isOpen:G,title:"Disable Tunnel",onClose:()=>!J&&ee(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:e4,fullWidth:!0,disabled:J,variant:"danger",children:J?"Disabling...":"Disable"}),(0,a.jsx)(r.$n,{onClick:()=>ee(!1),variant:"ghost",fullWidth:!0,disabled:J,children:"Cancel"})]})]})}),(0,a.jsx)(r.aF,{isOpen:eT,title:"Tailscale Funnel",onClose:()=>{eb||(eP(!1),eN(""),em(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ef&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ef&&!eb&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:e7,fullWidth:!0,children:"Install Tailscale"}),(0,a.jsx)(r.$n,{onClick:()=>eP(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),eb&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ew.length>0&&(0,a.jsx)("div",{ref:e$,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:ew.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===ef&&!eb&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:()=>tt(),fullWidth:!0,children:"Connect"}),(0,a.jsx)(r.$n,{onClick:()=>eP(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ex&&(0,a.jsx)(u,{status:ex})]})}),(0,a.jsx)(r.aF,{isOpen:eR,title:"Disable Tailscale",onClose:()=>!er&&e_(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:ta,fullWidth:!0,disabled:er,variant:"danger",children:er?"Disabling...":"Disable"}),(0,a.jsx)(r.$n,{onClick:()=>e_(!1),variant:"ghost",fullWidth:!0,disabled:er,children:"Cancel"})]})]})}),(0,a.jsx)(r.uo,{isOpen:!!C,onClose:()=>S(null),onConfirm:C?.onConfirm,title:C?.title||"Confirm",message:C?.message,variant:"danger"})]})}b.propTypes={icon:i().string.isRequired,label:i().string.isRequired,desc:i().string.isRequired,tone:i().oneOf(["ok","busy","off","error"]),toneLabel:i().string.isRequired,children:i().node},j.propTypes={machineId:i().string.isRequired}},45496:(e,t,s)=>{Promise.resolve().then(s.bind(s,26173))}}]);