@amir83nasr/10router 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (838) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +10 -9
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +23 -23
  5. package/.next/react-loadable-manifest.json +9 -0
  6. package/.next/routes-manifest.json +6 -0
  7. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  11. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js +2 -2
  26. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js.nft.json +1 -1
  27. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js +1 -1
  29. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js.nft.json +1 -1
  30. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  32. package/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  35. package/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  36. package/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  38. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  41. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  42. package/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  44. package/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  45. package/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  47. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  48. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  50. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  51. package/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  53. package/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  54. package/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  56. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  57. package/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  59. package/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  60. package/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/_global-error/page.js +2 -2
  62. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/_global-error.html +1 -1
  64. package/.next/server/app/_global-error.rsc +1 -1
  65. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  66. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/.next/server/app/_not-found/page.js +1 -1
  69. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  70. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/_not-found.html +1 -1
  72. package/.next/server/app/_not-found.rsc +6 -6
  73. package/.next/server/app/_not-found.segments/_full.segment.rsc +6 -6
  74. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  75. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  76. package/.next/server/app/api/auth/login/route.js +1 -1
  77. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  78. package/.next/server/app/api/auth/logout/route.js +1 -1
  79. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  80. package/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  81. package/.next/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  82. package/.next/server/app/api/auth/oidc/start/route.js +1 -1
  83. package/.next/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  84. package/.next/server/app/api/auth/oidc/test/route.js +1 -1
  85. package/.next/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  86. package/.next/server/app/api/auth/reset-password/route.js +1 -1
  87. package/.next/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  88. package/.next/server/app/api/auth/saml/acs/route.js +1 -1
  89. package/.next/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  90. package/.next/server/app/api/auth/saml/metadata/route.js +2 -2
  91. package/.next/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  92. package/.next/server/app/api/auth/saml/start/route.js +2 -2
  93. package/.next/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  94. package/.next/server/app/api/auth/saml/test/route.js +1 -1
  95. package/.next/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  96. package/.next/server/app/api/auth/status/route.js +1 -1
  97. package/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  98. package/.next/server/app/api/changelog/route.js +1 -1
  99. package/.next/server/app/api/cli-tools/all-statuses/route.js +1 -1
  100. package/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  101. package/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  102. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  103. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  104. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  105. package/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  106. package/.next/server/app/api/cli-tools/dsh-settings/route.js +1 -1
  107. package/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  108. package/.next/server/app/api/combos/[id]/route.js +1 -1
  109. package/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  110. package/.next/server/app/api/combos/route.js +1 -1
  111. package/.next/server/app/api/combos/route.js.nft.json +1 -1
  112. package/.next/server/app/api/headroom/extras/route.js +1 -1
  113. package/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  114. package/.next/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  115. package/.next/server/app/api/headroom/restart/route.js +1 -1
  116. package/.next/server/app/api/headroom/restart/route.js.nft.json +1 -1
  117. package/.next/server/app/api/headroom/start/route.js +1 -1
  118. package/.next/server/app/api/headroom/start/route.js.nft.json +1 -1
  119. package/.next/server/app/api/headroom/status/route.js +1 -1
  120. package/.next/server/app/api/headroom/status/route.js.nft.json +1 -1
  121. package/.next/server/app/api/headroom/stop/route.js +1 -1
  122. package/.next/server/app/api/health/route.js +1 -1
  123. package/.next/server/app/api/init/route.js +1 -1
  124. package/.next/server/app/api/keys/[id]/route.js +1 -1
  125. package/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  126. package/.next/server/app/api/keys/route.js +1 -1
  127. package/.next/server/app/api/keys/route.js.nft.json +1 -1
  128. package/.next/server/app/api/locale/route.js +1 -1
  129. package/.next/server/app/api/mcp/[plugin]/message/route.js +2 -2
  130. package/.next/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  131. package/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  132. package/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  133. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  134. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  135. package/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  136. package/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  137. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  138. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  139. package/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  140. package/.next/server/app/api/models/alias/route.js +1 -1
  141. package/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  142. package/.next/server/app/api/models/availability/route.js +1 -1
  143. package/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  144. package/.next/server/app/api/models/catalog-sync/route.js +1 -1
  145. package/.next/server/app/api/models/custom/route.js +1 -1
  146. package/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  147. package/.next/server/app/api/models/disabled/route.js +1 -1
  148. package/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  149. package/.next/server/app/api/models/route.js +1 -1
  150. package/.next/server/app/api/models/route.js.nft.json +1 -1
  151. package/.next/server/app/api/models/test/route.js +1 -1
  152. package/.next/server/app/api/models/test/route.js.nft.json +1 -1
  153. package/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  154. package/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  156. package/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  157. package/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  158. package/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  159. package/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  160. package/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  161. package/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  162. package/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  163. package/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  164. package/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  165. package/.next/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  166. package/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  167. package/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  168. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  169. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  170. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  171. package/.next/server/app/api/pricing/route.js +1 -1
  172. package/.next/server/app/api/pricing/route.js.nft.json +1 -1
  173. package/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  174. package/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  175. package/.next/server/app/api/provider-nodes/route.js +1 -1
  176. package/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  177. package/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  178. package/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  179. package/.next/server/app/api/providers/[id]/models/route.js +1 -1
  180. package/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  181. package/.next/server/app/api/providers/[id]/route.js +1 -1
  182. package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  183. package/.next/server/app/api/providers/[id]/test/route.js +1 -1
  184. package/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  185. package/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  186. package/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  187. package/.next/server/app/api/providers/client/route.js +1 -1
  188. package/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  189. package/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  190. package/.next/server/app/api/providers/route.js +1 -1
  191. package/.next/server/app/api/providers/route.js.nft.json +1 -1
  192. package/.next/server/app/api/providers/suggested-models/route.js +1 -1
  193. package/.next/server/app/api/providers/test-batch/route.js +1 -1
  194. package/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  195. package/.next/server/app/api/providers/validate/route.js +1 -1
  196. package/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  197. package/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  198. package/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  199. package/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  200. package/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  201. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  202. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  203. package/.next/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  204. package/.next/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  205. package/.next/server/app/api/proxy-pools/route.js +1 -1
  206. package/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  207. package/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  208. package/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  209. package/.next/server/app/api/pxpipe/health/route.js +2 -2
  210. package/.next/server/app/api/pxpipe/install/route.js +1 -1
  211. package/.next/server/app/api/pxpipe/logs/route.js +1 -1
  212. package/.next/server/app/api/pxpipe/restart/route.js +1 -1
  213. package/.next/server/app/api/pxpipe/start/route.js +1 -1
  214. package/.next/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  215. package/.next/server/app/api/pxpipe/stats/route.js +2 -2
  216. package/.next/server/app/api/pxpipe/status/route.js +1 -1
  217. package/.next/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  218. package/.next/server/app/api/pxpipe/stop/route.js +2 -2
  219. package/.next/server/app/api/settings/database/route.js +1 -1
  220. package/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  221. package/.next/server/app/api/settings/proxy-test/route.js +1 -1
  222. package/.next/server/app/api/settings/require-login/route.js +1 -1
  223. package/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  224. package/.next/server/app/api/settings/route.js +1 -1
  225. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  226. package/.next/server/app/api/shutdown/route.js +1 -1
  227. package/.next/server/app/api/tags/route.js +1 -1
  228. package/.next/server/app/api/translator/console-logs/route.js +1 -1
  229. package/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  230. package/.next/server/app/api/translator/load/route.js +1 -1
  231. package/.next/server/app/api/translator/save/route.js +1 -1
  232. package/.next/server/app/api/translator/send/route.js +1 -1
  233. package/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  234. package/.next/server/app/api/translator/translate/route.js +1 -1
  235. package/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  236. package/.next/server/app/api/tunnel/disable/route.js +1 -1
  237. package/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  238. package/.next/server/app/api/tunnel/enable/route.js +1 -1
  239. package/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  240. package/.next/server/app/api/tunnel/status/route.js +1 -1
  241. package/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  242. package/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  243. package/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  244. package/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  245. package/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  246. package/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  247. package/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  248. package/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  249. package/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  250. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  251. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  252. package/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  253. package/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  254. package/.next/server/app/api/usage/chart/route.js +1 -1
  255. package/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  256. package/.next/server/app/api/usage/health/route.js +1 -0
  257. package/.next/server/app/api/usage/health/route.js.nft.json +1 -0
  258. package/.next/server/app/api/usage/health/route_client-reference-manifest.js +1 -0
  259. package/.next/server/app/api/usage/history/route.js +1 -1
  260. package/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  261. package/.next/server/app/api/usage/logs/route.js +1 -1
  262. package/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  263. package/.next/server/app/api/usage/providers/route.js +1 -1
  264. package/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  265. package/.next/server/app/api/usage/request-details/route.js +1 -1
  266. package/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  267. package/.next/server/app/api/usage/request-logs/route.js +1 -1
  268. package/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  269. package/.next/server/app/api/usage/stats/route.js +1 -1
  270. package/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  271. package/.next/server/app/api/usage/stream/route.js +2 -6
  272. package/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  273. package/.next/server/app/api/v1/api/chat/route.js +1 -1
  274. package/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  275. package/.next/server/app/api/v1/audio/speech/route.js +1 -1
  276. package/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  277. package/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  278. package/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  279. package/.next/server/app/api/v1/audio/voices/route.js +1 -1
  280. package/.next/server/app/api/v1/chat/completions/route.js +1 -1
  281. package/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  282. package/.next/server/app/api/v1/embeddings/route.js +1 -1
  283. package/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  284. package/.next/server/app/api/v1/images/generations/route.js +2 -2
  285. package/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  286. package/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  287. package/.next/server/app/api/v1/messages/route.js +1 -1
  288. package/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  289. package/.next/server/app/api/v1/models/[...model]/route.js +1 -1
  290. package/.next/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  291. package/.next/server/app/api/v1/models/info/route.js +1 -1
  292. package/.next/server/app/api/v1/models/route.js +1 -1
  293. package/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  294. package/.next/server/app/api/v1/responses/compact/route.js +1 -1
  295. package/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  296. package/.next/server/app/api/v1/responses/route.js +1 -1
  297. package/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  298. package/.next/server/app/api/v1/route.js +1 -1
  299. package/.next/server/app/api/v1/route.js.nft.json +1 -1
  300. package/.next/server/app/api/v1/search/route.js +1 -1
  301. package/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  302. package/.next/server/app/api/v1/systemone/route.js +1 -1
  303. package/.next/server/app/api/v1/systemone/route.js.nft.json +1 -1
  304. package/.next/server/app/api/v1/videos/[id]/route.js +1 -1
  305. package/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  306. package/.next/server/app/api/v1/videos/edits/route.js +1 -1
  307. package/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  308. package/.next/server/app/api/v1/videos/extensions/route.js +1 -1
  309. package/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  310. package/.next/server/app/api/v1/videos/generations/route.js +1 -1
  311. package/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  312. package/.next/server/app/api/v1/web/fetch/route.js +1 -1
  313. package/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  314. package/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  315. package/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  316. package/.next/server/app/api/v1beta/models/route.js +1 -1
  317. package/.next/server/app/api/version/route.js +1 -1
  318. package/.next/server/app/api/version/shutdown/route.js +1 -1
  319. package/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
  320. package/.next/server/app/api/version/update/route.js +1 -1
  321. package/.next/server/app/callback/page.js +1 -1
  322. package/.next/server/app/callback/page.js.nft.json +1 -1
  323. package/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  324. package/.next/server/app/callback.html +1 -1
  325. package/.next/server/app/callback.rsc +6 -6
  326. package/.next/server/app/callback.segments/_full.segment.rsc +6 -6
  327. package/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  328. package/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  329. package/.next/server/app/dashboard/basic-chat.html +1 -1
  330. package/.next/server/app/dashboard/basic-chat.rsc +7 -7
  331. package/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  332. package/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  333. package/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  334. package/.next/server/app/dashboard/cli-tools.html +1 -1
  335. package/.next/server/app/dashboard/cli-tools.rsc +8 -8
  336. package/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  337. package/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  338. package/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  339. package/.next/server/app/dashboard/combos.html +1 -1
  340. package/.next/server/app/dashboard/combos.rsc +8 -8
  341. package/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  342. package/.next/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  343. package/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  344. package/.next/server/app/dashboard/endpoint.html +1 -1
  345. package/.next/server/app/dashboard/endpoint.rsc +8 -8
  346. package/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  347. package/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  348. package/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  349. package/.next/server/app/dashboard/media-providers/systemone.html +1 -1
  350. package/.next/server/app/dashboard/media-providers/systemone.rsc +8 -8
  351. package/.next/server/app/dashboard/media-providers/systemone.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/systemone/__PAGE__.segment.rsc +8 -8
  352. package/.next/server/app/dashboard/media-providers/systemone.segments/_full.segment.rsc +8 -8
  353. package/.next/server/app/dashboard/media-providers/systemone.segments/_tree.segment.rsc +2 -2
  354. package/.next/server/app/dashboard/profile.html +1 -1
  355. package/.next/server/app/dashboard/profile.rsc +8 -8
  356. package/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  357. package/.next/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  358. package/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  359. package/.next/server/app/dashboard/providers/new.html +1 -1
  360. package/.next/server/app/dashboard/providers/new.rsc +8 -8
  361. package/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  362. package/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  363. package/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  364. package/.next/server/app/dashboard/providers.html +1 -1
  365. package/.next/server/app/dashboard/providers.rsc +8 -8
  366. package/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  367. package/.next/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  368. package/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  369. package/.next/server/app/dashboard/proxy-pools.html +1 -1
  370. package/.next/server/app/dashboard/proxy-pools.rsc +8 -8
  371. package/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  372. package/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  373. package/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  374. package/.next/server/app/dashboard/pxpipe.html +1 -1
  375. package/.next/server/app/dashboard/pxpipe.rsc +8 -8
  376. package/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  377. package/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  378. package/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  379. package/.next/server/app/dashboard/quota.html +2 -2
  380. package/.next/server/app/dashboard/quota.rsc +9 -9
  381. package/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  382. package/.next/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  383. package/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  384. package/.next/server/app/dashboard/settings/pricing/page.js +1 -1
  385. package/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  386. package/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  387. package/.next/server/app/dashboard/settings/pricing.html +1 -1
  388. package/.next/server/app/dashboard/settings/pricing.rsc +7 -7
  389. package/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  390. package/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  391. package/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  392. package/.next/server/app/dashboard/token-saver.html +1 -1
  393. package/.next/server/app/dashboard/token-saver.rsc +7 -7
  394. package/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  395. package/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  396. package/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  397. package/.next/server/app/dashboard/usage.html +2 -2
  398. package/.next/server/app/dashboard/usage.rsc +8 -8
  399. package/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  400. package/.next/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  401. package/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  402. package/.next/server/app/dashboard.html +1 -1
  403. package/.next/server/app/dashboard.rsc +8 -8
  404. package/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  405. package/.next/server/app/dashboard.segments/_full.segment.rsc +8 -8
  406. package/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  407. package/.next/server/app/index.html +1 -1
  408. package/.next/server/app/index.rsc +6 -6
  409. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  410. package/.next/server/app/index.segments/_full.segment.rsc +6 -6
  411. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  412. package/.next/server/app/landing/page.js +1 -1
  413. package/.next/server/app/landing/page.js.nft.json +1 -1
  414. package/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  415. package/.next/server/app/landing.html +1 -1
  416. package/.next/server/app/landing.rsc +6 -6
  417. package/.next/server/app/landing.segments/_full.segment.rsc +6 -6
  418. package/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  419. package/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  420. package/.next/server/app/login/page.js +1 -1
  421. package/.next/server/app/login/page.js.nft.json +1 -1
  422. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  423. package/.next/server/app/login.html +1 -1
  424. package/.next/server/app/login.rsc +6 -6
  425. package/.next/server/app/login.segments/_full.segment.rsc +6 -6
  426. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  427. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  428. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  429. package/.next/server/app/page.js +1 -1
  430. package/.next/server/app/page.js.nft.json +1 -1
  431. package/.next/server/app/page_client-reference-manifest.js +1 -1
  432. package/.next/server/app-paths-manifest.json +10 -9
  433. package/.next/server/chunks/1003.js +1 -1
  434. package/.next/server/chunks/1011.js +1 -1
  435. package/.next/server/chunks/1194.js +1 -1
  436. package/.next/server/chunks/1289.js +1 -1
  437. package/.next/server/chunks/1412.js +1 -1
  438. package/.next/server/chunks/1633.js +1 -1
  439. package/.next/server/chunks/1985.js +1 -1
  440. package/.next/server/chunks/2282.js +8 -4
  441. package/.next/server/chunks/2339.js +1 -1
  442. package/.next/server/chunks/2801.js +1 -1
  443. package/.next/server/chunks/3250.js +2 -2
  444. package/.next/server/chunks/3425.js +1 -1
  445. package/.next/server/chunks/4364.js +1 -1
  446. package/.next/server/chunks/460.js +1 -1
  447. package/.next/server/chunks/5412.js +1 -1
  448. package/.next/server/chunks/5761.js +1 -1
  449. package/.next/server/chunks/6056.js +1 -1
  450. package/.next/server/chunks/6343.js +3 -3
  451. package/.next/server/chunks/6823.js +1 -1
  452. package/.next/server/chunks/7019.js +2 -2
  453. package/.next/server/chunks/7348.js +1 -1
  454. package/.next/server/chunks/7504.js +1 -1
  455. package/.next/server/chunks/7535.js +2 -2
  456. package/.next/server/chunks/8923.js +1 -1
  457. package/.next/server/chunks/9018.js +1 -1
  458. package/.next/server/chunks/9250.js +1 -1
  459. package/.next/server/chunks/9429.js +1 -1
  460. package/.next/server/chunks/9646.js +1 -1
  461. package/.next/server/chunks/9817.js +67 -0
  462. package/.next/server/middleware-build-manifest.js +1 -1
  463. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  464. package/.next/server/middleware.js +1 -1
  465. package/.next/server/middleware.js.nft.json +1 -1
  466. package/.next/server/pages/404.html +1 -1
  467. package/.next/server/pages/500.html +1 -1
  468. package/.next/server/server-reference-manifest.js +1 -1
  469. package/.next/server/server-reference-manifest.json +1 -1
  470. package/.next/static/awjDWqWCZbU3VVSuN7-oA/_buildManifest.js +1 -0
  471. package/.next/static/chunks/{1278-db66df071a072f90.js → 1278-efb46cc82262aa4e.js} +1 -1
  472. package/.next/static/chunks/{1830-901fe48c3c62604f.js → 1830-d26d77c95932d7ce.js} +1 -1
  473. package/.next/static/chunks/1940.1f30124180f22498.js +1 -0
  474. package/.next/static/chunks/2836-d97f0aa2718945d5.js +1 -0
  475. package/.next/static/chunks/3445-99e12528f235cedb.js +1 -0
  476. package/.next/static/chunks/6770-e2921b2ce695ed57.js +1 -0
  477. package/.next/static/chunks/7276-a15e4d56ec28aba8.js +1 -0
  478. package/.next/static/chunks/9369-0d43b295968c2168.js +1 -0
  479. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-93cc9fc8f8ab938b.js → page-e8bceccb95695755.js} +2 -2
  480. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-adee408d9de02423.js +1 -0
  481. package/.next/static/chunks/app/(dashboard)/dashboard/combos/page-d4c1e29e8d038f09.js +1 -0
  482. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-168534817f7aecd8.js → page-139200833f7a4ecc.js} +1 -1
  483. package/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-13abc5b934c960d3.js → page-67516b120adbc4d7.js} +1 -1
  484. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/[id]/{page-fb90d8451f40b8b3.js → page-b751d9603cb82e62.js} +1 -1
  485. package/.next/static/chunks/app/(dashboard)/dashboard/{page-85118ef708c624e6.js → page-315c9f52c472a700.js} +1 -1
  486. package/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-36659d3f8756c897.js → page-d5d480e209fdc55a.js} +1 -1
  487. package/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-81f2d7e490f1c69c.js → page-61b87a31ba21a055.js} +1 -1
  488. package/.next/static/chunks/app/(dashboard)/dashboard/providers/page-2396571281d02804.js +1 -0
  489. package/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-247f59d088891437.js → page-cfd6bcb7e55d7d18.js} +2 -2
  490. package/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-696cb5c2703ca1ec.js → page-4d758f53c8cfc308.js} +1 -1
  491. package/.next/static/chunks/app/(dashboard)/dashboard/quota/page-fef6edb7aafd8bd0.js +1 -0
  492. package/.next/static/chunks/app/(dashboard)/dashboard/usage/page-697f46461825d7fc.js +1 -0
  493. package/.next/static/chunks/app/(dashboard)/{layout-667f17706a5e1896.js → layout-5039502fc12707c9.js} +1 -1
  494. package/.next/static/chunks/app/_global-error/{page-fe947d4ab19df968.js → page-9a2a13ac6b89ba91.js} +1 -1
  495. package/.next/static/chunks/app/api/auth/login/{route-fe947d4ab19df968.js → route-9a2a13ac6b89ba91.js} +1 -1
  496. package/.next/static/chunks/app/api/auth/logout/{route-fe947d4ab19df968.js → route-9a2a13ac6b89ba91.js} +1 -1
  497. package/.next/static/chunks/app/api/auth/oidc/callback/{route-fe947d4ab19df968.js → route-9a2a13ac6b89ba91.js} +1 -1
  498. package/.next/static/chunks/app/api/auth/oidc/start/route-9a2a13ac6b89ba91.js +1 -0
  499. package/.next/static/chunks/app/api/auth/oidc/test/route-9a2a13ac6b89ba91.js +1 -0
  500. package/.next/static/chunks/app/api/auth/reset-password/route-9a2a13ac6b89ba91.js +1 -0
  501. package/.next/static/chunks/app/api/auth/saml/acs/route-9a2a13ac6b89ba91.js +1 -0
  502. package/.next/static/chunks/app/api/auth/saml/metadata/route-9a2a13ac6b89ba91.js +1 -0
  503. package/.next/static/chunks/app/api/auth/saml/start/route-9a2a13ac6b89ba91.js +1 -0
  504. package/.next/static/chunks/app/api/auth/saml/test/route-9a2a13ac6b89ba91.js +1 -0
  505. package/.next/static/chunks/app/api/auth/status/route-9a2a13ac6b89ba91.js +1 -0
  506. package/.next/static/chunks/app/api/changelog/route-9a2a13ac6b89ba91.js +1 -0
  507. package/.next/static/chunks/app/api/cli-tools/all-statuses/route-9a2a13ac6b89ba91.js +1 -0
  508. package/.next/static/chunks/app/api/cli-tools/claude-settings/route-9a2a13ac6b89ba91.js +1 -0
  509. package/.next/static/chunks/app/api/cli-tools/codex-settings/route-9a2a13ac6b89ba91.js +1 -0
  510. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-9a2a13ac6b89ba91.js +1 -0
  511. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-9a2a13ac6b89ba91.js +1 -0
  512. package/.next/static/chunks/app/api/cli-tools/cowork-settings/route-9a2a13ac6b89ba91.js +1 -0
  513. package/.next/static/chunks/app/api/cli-tools/dsh-settings/route-9a2a13ac6b89ba91.js +1 -0
  514. package/.next/static/chunks/app/api/cli-tools/opencode-settings/route-9a2a13ac6b89ba91.js +1 -0
  515. package/.next/static/chunks/app/api/combos/[id]/route-9a2a13ac6b89ba91.js +1 -0
  516. package/.next/static/chunks/app/api/combos/route-9a2a13ac6b89ba91.js +1 -0
  517. package/.next/static/chunks/app/api/headroom/extras/route-9a2a13ac6b89ba91.js +1 -0
  518. package/.next/static/chunks/app/api/headroom/proxy/[...path]/route-9a2a13ac6b89ba91.js +1 -0
  519. package/.next/static/chunks/app/api/headroom/restart/route-9a2a13ac6b89ba91.js +1 -0
  520. package/.next/static/chunks/app/api/headroom/start/route-9a2a13ac6b89ba91.js +1 -0
  521. package/.next/static/chunks/app/api/headroom/status/route-9a2a13ac6b89ba91.js +1 -0
  522. package/.next/static/chunks/app/api/headroom/stop/route-9a2a13ac6b89ba91.js +1 -0
  523. package/.next/static/chunks/app/api/health/route-9a2a13ac6b89ba91.js +1 -0
  524. package/.next/static/chunks/app/api/init/route-9a2a13ac6b89ba91.js +1 -0
  525. package/.next/static/chunks/app/api/keys/[id]/route-9a2a13ac6b89ba91.js +1 -0
  526. package/.next/static/chunks/app/api/keys/route-9a2a13ac6b89ba91.js +1 -0
  527. package/.next/static/chunks/app/api/locale/route-9a2a13ac6b89ba91.js +1 -0
  528. package/.next/static/chunks/app/api/mcp/[plugin]/message/route-9a2a13ac6b89ba91.js +1 -0
  529. package/.next/static/chunks/app/api/mcp/[plugin]/sse/route-9a2a13ac6b89ba91.js +1 -0
  530. package/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-9a2a13ac6b89ba91.js +1 -0
  531. package/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-9a2a13ac6b89ba91.js +1 -0
  532. package/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-9a2a13ac6b89ba91.js +1 -0
  533. package/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-9a2a13ac6b89ba91.js +1 -0
  534. package/.next/static/chunks/app/api/media-providers/tts/voices/route-9a2a13ac6b89ba91.js +1 -0
  535. package/.next/static/chunks/app/api/models/alias/route-9a2a13ac6b89ba91.js +1 -0
  536. package/.next/static/chunks/app/api/models/availability/route-9a2a13ac6b89ba91.js +1 -0
  537. package/.next/static/chunks/app/api/models/catalog-sync/route-9a2a13ac6b89ba91.js +1 -0
  538. package/.next/static/chunks/app/api/models/custom/route-9a2a13ac6b89ba91.js +1 -0
  539. package/.next/static/chunks/app/api/models/disabled/route-9a2a13ac6b89ba91.js +1 -0
  540. package/.next/static/chunks/app/api/models/route-9a2a13ac6b89ba91.js +1 -0
  541. package/.next/static/chunks/app/api/models/test/route-9a2a13ac6b89ba91.js +1 -0
  542. package/.next/static/chunks/app/api/oauth/[provider]/[action]/route-9a2a13ac6b89ba91.js +1 -0
  543. package/.next/static/chunks/app/api/oauth/codex/bulk-import/route-9a2a13ac6b89ba91.js +1 -0
  544. package/.next/static/chunks/app/api/oauth/codex/import-token/route-9a2a13ac6b89ba91.js +1 -0
  545. package/.next/static/chunks/app/api/oauth/cursor/auto-import/route-9a2a13ac6b89ba91.js +1 -0
  546. package/.next/static/chunks/app/api/oauth/cursor/import/route-9a2a13ac6b89ba91.js +1 -0
  547. package/.next/static/chunks/app/api/oauth/gitlab/pat/route-9a2a13ac6b89ba91.js +1 -0
  548. package/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-9a2a13ac6b89ba91.js +1 -0
  549. package/.next/static/chunks/app/api/oauth/iflow/cookie/route-9a2a13ac6b89ba91.js +1 -0
  550. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-9a2a13ac6b89ba91.js +1 -0
  551. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-9a2a13ac6b89ba91.js +1 -0
  552. package/.next/static/chunks/app/api/pricing/route-9a2a13ac6b89ba91.js +1 -0
  553. package/.next/static/chunks/app/api/provider-nodes/[id]/route-9a2a13ac6b89ba91.js +1 -0
  554. package/.next/static/chunks/app/api/provider-nodes/route-9a2a13ac6b89ba91.js +1 -0
  555. package/.next/static/chunks/app/api/provider-nodes/validate/route-9a2a13ac6b89ba91.js +1 -0
  556. package/.next/static/chunks/app/api/providers/[id]/models/route-9a2a13ac6b89ba91.js +1 -0
  557. package/.next/static/chunks/app/api/providers/[id]/route-9a2a13ac6b89ba91.js +1 -0
  558. package/.next/static/chunks/app/api/providers/[id]/test/route-9a2a13ac6b89ba91.js +1 -0
  559. package/.next/static/chunks/app/api/providers/[id]/test-models/route-9a2a13ac6b89ba91.js +1 -0
  560. package/.next/static/chunks/app/api/providers/client/route-9a2a13ac6b89ba91.js +1 -0
  561. package/.next/static/chunks/app/api/providers/kilo/free-models/route-9a2a13ac6b89ba91.js +1 -0
  562. package/.next/static/chunks/app/api/providers/route-9a2a13ac6b89ba91.js +1 -0
  563. package/.next/static/chunks/app/api/providers/suggested-models/route-9a2a13ac6b89ba91.js +1 -0
  564. package/.next/static/chunks/app/api/providers/test-batch/route-9a2a13ac6b89ba91.js +1 -0
  565. package/.next/static/chunks/app/api/providers/validate/route-9a2a13ac6b89ba91.js +1 -0
  566. package/.next/static/chunks/app/api/proxy-pools/[id]/route-9a2a13ac6b89ba91.js +1 -0
  567. package/.next/static/chunks/app/api/proxy-pools/[id]/test/route-9a2a13ac6b89ba91.js +1 -0
  568. package/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-9a2a13ac6b89ba91.js +1 -0
  569. package/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-9a2a13ac6b89ba91.js +1 -0
  570. package/.next/static/chunks/app/api/proxy-pools/route-9a2a13ac6b89ba91.js +1 -0
  571. package/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-9a2a13ac6b89ba91.js +1 -0
  572. package/.next/static/chunks/app/api/pxpipe/health/route-9a2a13ac6b89ba91.js +1 -0
  573. package/.next/static/chunks/app/api/pxpipe/install/route-9a2a13ac6b89ba91.js +1 -0
  574. package/.next/static/chunks/app/api/pxpipe/logs/route-9a2a13ac6b89ba91.js +1 -0
  575. package/.next/static/chunks/app/api/pxpipe/restart/route-9a2a13ac6b89ba91.js +1 -0
  576. package/.next/static/chunks/app/api/pxpipe/start/route-9a2a13ac6b89ba91.js +1 -0
  577. package/.next/static/chunks/app/api/pxpipe/stats/route-9a2a13ac6b89ba91.js +1 -0
  578. package/.next/static/chunks/app/api/pxpipe/status/route-9a2a13ac6b89ba91.js +1 -0
  579. package/.next/static/chunks/app/api/pxpipe/stop/route-9a2a13ac6b89ba91.js +1 -0
  580. package/.next/static/chunks/app/api/settings/database/route-9a2a13ac6b89ba91.js +1 -0
  581. package/.next/static/chunks/app/api/settings/proxy-test/route-9a2a13ac6b89ba91.js +1 -0
  582. package/.next/static/chunks/app/api/settings/require-login/route-9a2a13ac6b89ba91.js +1 -0
  583. package/.next/static/chunks/app/api/settings/route-9a2a13ac6b89ba91.js +1 -0
  584. package/.next/static/chunks/app/api/shutdown/route-9a2a13ac6b89ba91.js +1 -0
  585. package/.next/static/chunks/app/api/tags/route-9a2a13ac6b89ba91.js +1 -0
  586. package/.next/static/chunks/app/api/translator/console-logs/route-9a2a13ac6b89ba91.js +1 -0
  587. package/.next/static/chunks/app/api/translator/console-logs/stream/route-9a2a13ac6b89ba91.js +1 -0
  588. package/.next/static/chunks/app/api/translator/load/route-9a2a13ac6b89ba91.js +1 -0
  589. package/.next/static/chunks/app/api/translator/save/route-9a2a13ac6b89ba91.js +1 -0
  590. package/.next/static/chunks/app/api/translator/send/route-9a2a13ac6b89ba91.js +1 -0
  591. package/.next/static/chunks/app/api/translator/translate/route-9a2a13ac6b89ba91.js +1 -0
  592. package/.next/static/chunks/app/api/tunnel/disable/route-9a2a13ac6b89ba91.js +1 -0
  593. package/.next/static/chunks/app/api/tunnel/enable/route-9a2a13ac6b89ba91.js +1 -0
  594. package/.next/static/chunks/app/api/tunnel/status/route-9a2a13ac6b89ba91.js +1 -0
  595. package/.next/static/chunks/app/api/tunnel/tailscale-check/route-9a2a13ac6b89ba91.js +1 -0
  596. package/.next/static/chunks/app/api/tunnel/tailscale-disable/route-9a2a13ac6b89ba91.js +1 -0
  597. package/.next/static/chunks/app/api/tunnel/tailscale-enable/route-9a2a13ac6b89ba91.js +1 -0
  598. package/.next/static/chunks/app/api/tunnel/tailscale-install/route-9a2a13ac6b89ba91.js +1 -0
  599. package/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-9a2a13ac6b89ba91.js +1 -0
  600. package/.next/static/chunks/app/api/usage/[connectionId]/route-9a2a13ac6b89ba91.js +1 -0
  601. package/.next/static/chunks/app/api/usage/chart/route-9a2a13ac6b89ba91.js +1 -0
  602. package/.next/static/chunks/app/api/usage/health/route-9a2a13ac6b89ba91.js +1 -0
  603. package/.next/static/chunks/app/api/usage/history/route-9a2a13ac6b89ba91.js +1 -0
  604. package/.next/static/chunks/app/api/usage/logs/route-9a2a13ac6b89ba91.js +1 -0
  605. package/.next/static/chunks/app/api/usage/providers/route-9a2a13ac6b89ba91.js +1 -0
  606. package/.next/static/chunks/app/api/usage/request-details/route-9a2a13ac6b89ba91.js +1 -0
  607. package/.next/static/chunks/app/api/usage/request-logs/route-9a2a13ac6b89ba91.js +1 -0
  608. package/.next/static/chunks/app/api/usage/stats/route-9a2a13ac6b89ba91.js +1 -0
  609. package/.next/static/chunks/app/api/usage/stream/route-9a2a13ac6b89ba91.js +1 -0
  610. package/.next/static/chunks/app/api/v1/api/chat/route-9a2a13ac6b89ba91.js +1 -0
  611. package/.next/static/chunks/app/api/v1/audio/speech/route-9a2a13ac6b89ba91.js +1 -0
  612. package/.next/static/chunks/app/api/v1/audio/transcriptions/route-9a2a13ac6b89ba91.js +1 -0
  613. package/.next/static/chunks/app/api/v1/audio/voices/route-9a2a13ac6b89ba91.js +1 -0
  614. package/.next/static/chunks/app/api/v1/chat/completions/route-9a2a13ac6b89ba91.js +1 -0
  615. package/.next/static/chunks/app/api/v1/embeddings/route-9a2a13ac6b89ba91.js +1 -0
  616. package/.next/static/chunks/app/api/v1/images/generations/route-9a2a13ac6b89ba91.js +1 -0
  617. package/.next/static/chunks/app/api/v1/messages/count_tokens/route-9a2a13ac6b89ba91.js +1 -0
  618. package/.next/static/chunks/app/api/v1/messages/route-9a2a13ac6b89ba91.js +1 -0
  619. package/.next/static/chunks/app/api/v1/models/[...model]/route-9a2a13ac6b89ba91.js +1 -0
  620. package/.next/static/chunks/app/api/v1/models/info/route-9a2a13ac6b89ba91.js +1 -0
  621. package/.next/static/chunks/app/api/v1/models/route-9a2a13ac6b89ba91.js +1 -0
  622. package/.next/static/chunks/app/api/v1/responses/compact/route-9a2a13ac6b89ba91.js +1 -0
  623. package/.next/static/chunks/app/api/v1/responses/route-9a2a13ac6b89ba91.js +1 -0
  624. package/.next/static/chunks/app/api/v1/route-9a2a13ac6b89ba91.js +1 -0
  625. package/.next/static/chunks/app/api/v1/search/route-9a2a13ac6b89ba91.js +1 -0
  626. package/.next/static/chunks/app/api/v1/systemone/route-9a2a13ac6b89ba91.js +1 -0
  627. package/.next/static/chunks/app/api/v1/videos/[id]/route-9a2a13ac6b89ba91.js +1 -0
  628. package/.next/static/chunks/app/api/v1/videos/edits/route-9a2a13ac6b89ba91.js +1 -0
  629. package/.next/static/chunks/app/api/v1/videos/extensions/route-9a2a13ac6b89ba91.js +1 -0
  630. package/.next/static/chunks/app/api/v1/videos/generations/route-9a2a13ac6b89ba91.js +1 -0
  631. package/.next/static/chunks/app/api/v1/web/fetch/route-9a2a13ac6b89ba91.js +1 -0
  632. package/.next/static/chunks/app/api/v1beta/models/[...path]/route-9a2a13ac6b89ba91.js +1 -0
  633. package/.next/static/chunks/app/api/v1beta/models/route-9a2a13ac6b89ba91.js +1 -0
  634. package/.next/static/chunks/app/api/version/route-9a2a13ac6b89ba91.js +1 -0
  635. package/.next/static/chunks/app/api/version/shutdown/route-9a2a13ac6b89ba91.js +1 -0
  636. package/.next/static/chunks/app/api/version/update/route-9a2a13ac6b89ba91.js +1 -0
  637. package/.next/static/chunks/app/{layout-d5f5e92e2a8102f1.js → layout-8810d4df3081b5df.js} +1 -1
  638. package/.next/static/chunks/app/manifest.webmanifest/route-9a2a13ac6b89ba91.js +1 -0
  639. package/.next/static/chunks/app/page-9a2a13ac6b89ba91.js +1 -0
  640. package/.next/static/chunks/next/dist/client/components/builtin/app-error-9a2a13ac6b89ba91.js +1 -0
  641. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-9a2a13ac6b89ba91.js +1 -0
  642. package/.next/static/chunks/next/dist/client/components/builtin/not-found-9a2a13ac6b89ba91.js +1 -0
  643. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9a2a13ac6b89ba91.js +1 -0
  644. package/.next/static/chunks/webpack-cb89101193742e2b.js +1 -0
  645. package/.next/static/css/c66cbd684164cacf.css +1 -0
  646. package/CHANGELOG.md +25 -0
  647. package/bin/update-check.mjs +5 -1
  648. package/open-sse/executors/zed.js +98 -5
  649. package/open-sse/handlers/chatCore/sseToJsonHandler.js +11 -4
  650. package/open-sse/providers/pricing.js +24 -10
  651. package/open-sse/services/usage/antigravity-weekly.js +10 -0
  652. package/open-sse/services/usage/claude.js +15 -0
  653. package/open-sse/shared/zedAuth.js +43 -2
  654. package/open-sse/translator/concerns/prefetch.js +12 -4
  655. package/open-sse/translator/response/claude-to-openai.js +2 -2
  656. package/open-sse/utils/streamHandler.js +1 -5
  657. package/package.json +1 -5
  658. package/src/app/(dashboard)/dashboard/providers/[id]/BulkImportGrokCliModal.tsx +1 -1
  659. package/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +1 -1
  660. package/src/app/(dashboard)/dashboard/usage/components/ProviderHealth.tsx +221 -0
  661. package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.tsx +5 -2
  662. package/src/app/api/combos/[id]/route.js +38 -1
  663. package/src/app/api/combos/route.js +27 -2
  664. package/src/app/api/providers/[id]/models/route.js +12 -1
  665. package/src/app/api/providers/route.js +4 -1
  666. package/src/app/api/usage/health/route.ts +121 -0
  667. package/src/app/api/usage/stream/route.js +74 -68
  668. package/src/app/api/v1/models/route.js +20 -6
  669. package/src/lib/db/adapters/betterSqliteAdapter.js +12 -1
  670. package/src/lib/db/driver.js +4 -1
  671. package/src/lib/db/index.js +3 -0
  672. package/src/lib/db/repos/settingsRepo.js +22 -1
  673. package/src/lib/oauth/services/xai.js +4 -4
  674. package/src/lib/usageHealth.ts +219 -0
  675. package/src/lib/validateComboModels.ts +48 -0
  676. package/src/shared/components/UsageStats.tsx +11 -1
  677. package/src/shared/hooks/useShutdown.ts +2 -4
  678. package/src/sse/handlers/chat.js +5 -1
  679. package/src/sse/services/antigravityQuota.ts +7 -3
  680. package/src/sse/services/model.ts +9 -20
  681. package/.next/server/chunks/5351.js +0 -67
  682. package/.next/static/P0IikrdjxpmTneD33YPWQ/_buildManifest.js +0 -1
  683. package/.next/static/chunks/208-521a3242b62d6c07.js +0 -1
  684. package/.next/static/chunks/2836-38406d658ad8caa9.js +0 -1
  685. package/.next/static/chunks/7276-16ef14f7b2cd478d.js +0 -1
  686. package/.next/static/chunks/9369-b8c9520bc2536ff2.js +0 -1
  687. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1c54f83c69f02add.js +0 -1
  688. package/.next/static/chunks/app/(dashboard)/dashboard/combos/page-853f4e08f4982dbe.js +0 -1
  689. package/.next/static/chunks/app/(dashboard)/dashboard/providers/page-b9dafab69096fa76.js +0 -1
  690. package/.next/static/chunks/app/(dashboard)/dashboard/quota/page-5d2e8d9a126c2769.js +0 -1
  691. package/.next/static/chunks/app/(dashboard)/dashboard/usage/page-cf503287fe99e910.js +0 -1
  692. package/.next/static/chunks/app/api/auth/oidc/start/route-fe947d4ab19df968.js +0 -1
  693. package/.next/static/chunks/app/api/auth/oidc/test/route-fe947d4ab19df968.js +0 -1
  694. package/.next/static/chunks/app/api/auth/reset-password/route-fe947d4ab19df968.js +0 -1
  695. package/.next/static/chunks/app/api/auth/saml/acs/route-fe947d4ab19df968.js +0 -1
  696. package/.next/static/chunks/app/api/auth/saml/metadata/route-fe947d4ab19df968.js +0 -1
  697. package/.next/static/chunks/app/api/auth/saml/start/route-fe947d4ab19df968.js +0 -1
  698. package/.next/static/chunks/app/api/auth/saml/test/route-fe947d4ab19df968.js +0 -1
  699. package/.next/static/chunks/app/api/auth/status/route-fe947d4ab19df968.js +0 -1
  700. package/.next/static/chunks/app/api/changelog/route-fe947d4ab19df968.js +0 -1
  701. package/.next/static/chunks/app/api/cli-tools/all-statuses/route-fe947d4ab19df968.js +0 -1
  702. package/.next/static/chunks/app/api/cli-tools/claude-settings/route-fe947d4ab19df968.js +0 -1
  703. package/.next/static/chunks/app/api/cli-tools/codex-settings/route-fe947d4ab19df968.js +0 -1
  704. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fe947d4ab19df968.js +0 -1
  705. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-fe947d4ab19df968.js +0 -1
  706. package/.next/static/chunks/app/api/cli-tools/cowork-settings/route-fe947d4ab19df968.js +0 -1
  707. package/.next/static/chunks/app/api/cli-tools/dsh-settings/route-fe947d4ab19df968.js +0 -1
  708. package/.next/static/chunks/app/api/cli-tools/opencode-settings/route-fe947d4ab19df968.js +0 -1
  709. package/.next/static/chunks/app/api/combos/[id]/route-fe947d4ab19df968.js +0 -1
  710. package/.next/static/chunks/app/api/combos/route-fe947d4ab19df968.js +0 -1
  711. package/.next/static/chunks/app/api/headroom/extras/route-fe947d4ab19df968.js +0 -1
  712. package/.next/static/chunks/app/api/headroom/proxy/[...path]/route-fe947d4ab19df968.js +0 -1
  713. package/.next/static/chunks/app/api/headroom/restart/route-fe947d4ab19df968.js +0 -1
  714. package/.next/static/chunks/app/api/headroom/start/route-fe947d4ab19df968.js +0 -1
  715. package/.next/static/chunks/app/api/headroom/status/route-fe947d4ab19df968.js +0 -1
  716. package/.next/static/chunks/app/api/headroom/stop/route-fe947d4ab19df968.js +0 -1
  717. package/.next/static/chunks/app/api/health/route-fe947d4ab19df968.js +0 -1
  718. package/.next/static/chunks/app/api/init/route-fe947d4ab19df968.js +0 -1
  719. package/.next/static/chunks/app/api/keys/[id]/route-fe947d4ab19df968.js +0 -1
  720. package/.next/static/chunks/app/api/keys/route-fe947d4ab19df968.js +0 -1
  721. package/.next/static/chunks/app/api/locale/route-fe947d4ab19df968.js +0 -1
  722. package/.next/static/chunks/app/api/mcp/[plugin]/message/route-fe947d4ab19df968.js +0 -1
  723. package/.next/static/chunks/app/api/mcp/[plugin]/sse/route-fe947d4ab19df968.js +0 -1
  724. package/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fe947d4ab19df968.js +0 -1
  725. package/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fe947d4ab19df968.js +0 -1
  726. package/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-fe947d4ab19df968.js +0 -1
  727. package/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-fe947d4ab19df968.js +0 -1
  728. package/.next/static/chunks/app/api/media-providers/tts/voices/route-fe947d4ab19df968.js +0 -1
  729. package/.next/static/chunks/app/api/models/alias/route-fe947d4ab19df968.js +0 -1
  730. package/.next/static/chunks/app/api/models/availability/route-fe947d4ab19df968.js +0 -1
  731. package/.next/static/chunks/app/api/models/catalog-sync/route-fe947d4ab19df968.js +0 -1
  732. package/.next/static/chunks/app/api/models/custom/route-fe947d4ab19df968.js +0 -1
  733. package/.next/static/chunks/app/api/models/disabled/route-fe947d4ab19df968.js +0 -1
  734. package/.next/static/chunks/app/api/models/route-fe947d4ab19df968.js +0 -1
  735. package/.next/static/chunks/app/api/models/test/route-fe947d4ab19df968.js +0 -1
  736. package/.next/static/chunks/app/api/oauth/[provider]/[action]/route-fe947d4ab19df968.js +0 -1
  737. package/.next/static/chunks/app/api/oauth/codex/bulk-import/route-fe947d4ab19df968.js +0 -1
  738. package/.next/static/chunks/app/api/oauth/codex/import-token/route-fe947d4ab19df968.js +0 -1
  739. package/.next/static/chunks/app/api/oauth/cursor/auto-import/route-fe947d4ab19df968.js +0 -1
  740. package/.next/static/chunks/app/api/oauth/cursor/import/route-fe947d4ab19df968.js +0 -1
  741. package/.next/static/chunks/app/api/oauth/gitlab/pat/route-fe947d4ab19df968.js +0 -1
  742. package/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-fe947d4ab19df968.js +0 -1
  743. package/.next/static/chunks/app/api/oauth/iflow/cookie/route-fe947d4ab19df968.js +0 -1
  744. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-fe947d4ab19df968.js +0 -1
  745. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-fe947d4ab19df968.js +0 -1
  746. package/.next/static/chunks/app/api/pricing/route-fe947d4ab19df968.js +0 -1
  747. package/.next/static/chunks/app/api/provider-nodes/[id]/route-fe947d4ab19df968.js +0 -1
  748. package/.next/static/chunks/app/api/provider-nodes/route-fe947d4ab19df968.js +0 -1
  749. package/.next/static/chunks/app/api/provider-nodes/validate/route-fe947d4ab19df968.js +0 -1
  750. package/.next/static/chunks/app/api/providers/[id]/models/route-fe947d4ab19df968.js +0 -1
  751. package/.next/static/chunks/app/api/providers/[id]/route-fe947d4ab19df968.js +0 -1
  752. package/.next/static/chunks/app/api/providers/[id]/test/route-fe947d4ab19df968.js +0 -1
  753. package/.next/static/chunks/app/api/providers/[id]/test-models/route-fe947d4ab19df968.js +0 -1
  754. package/.next/static/chunks/app/api/providers/client/route-fe947d4ab19df968.js +0 -1
  755. package/.next/static/chunks/app/api/providers/kilo/free-models/route-fe947d4ab19df968.js +0 -1
  756. package/.next/static/chunks/app/api/providers/route-fe947d4ab19df968.js +0 -1
  757. package/.next/static/chunks/app/api/providers/suggested-models/route-fe947d4ab19df968.js +0 -1
  758. package/.next/static/chunks/app/api/providers/test-batch/route-fe947d4ab19df968.js +0 -1
  759. package/.next/static/chunks/app/api/providers/validate/route-fe947d4ab19df968.js +0 -1
  760. package/.next/static/chunks/app/api/proxy-pools/[id]/route-fe947d4ab19df968.js +0 -1
  761. package/.next/static/chunks/app/api/proxy-pools/[id]/test/route-fe947d4ab19df968.js +0 -1
  762. package/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-fe947d4ab19df968.js +0 -1
  763. package/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-fe947d4ab19df968.js +0 -1
  764. package/.next/static/chunks/app/api/proxy-pools/route-fe947d4ab19df968.js +0 -1
  765. package/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-fe947d4ab19df968.js +0 -1
  766. package/.next/static/chunks/app/api/pxpipe/health/route-fe947d4ab19df968.js +0 -1
  767. package/.next/static/chunks/app/api/pxpipe/install/route-fe947d4ab19df968.js +0 -1
  768. package/.next/static/chunks/app/api/pxpipe/logs/route-fe947d4ab19df968.js +0 -1
  769. package/.next/static/chunks/app/api/pxpipe/restart/route-fe947d4ab19df968.js +0 -1
  770. package/.next/static/chunks/app/api/pxpipe/start/route-fe947d4ab19df968.js +0 -1
  771. package/.next/static/chunks/app/api/pxpipe/stats/route-fe947d4ab19df968.js +0 -1
  772. package/.next/static/chunks/app/api/pxpipe/status/route-fe947d4ab19df968.js +0 -1
  773. package/.next/static/chunks/app/api/pxpipe/stop/route-fe947d4ab19df968.js +0 -1
  774. package/.next/static/chunks/app/api/settings/database/route-fe947d4ab19df968.js +0 -1
  775. package/.next/static/chunks/app/api/settings/proxy-test/route-fe947d4ab19df968.js +0 -1
  776. package/.next/static/chunks/app/api/settings/require-login/route-fe947d4ab19df968.js +0 -1
  777. package/.next/static/chunks/app/api/settings/route-fe947d4ab19df968.js +0 -1
  778. package/.next/static/chunks/app/api/shutdown/route-fe947d4ab19df968.js +0 -1
  779. package/.next/static/chunks/app/api/tags/route-fe947d4ab19df968.js +0 -1
  780. package/.next/static/chunks/app/api/translator/console-logs/route-fe947d4ab19df968.js +0 -1
  781. package/.next/static/chunks/app/api/translator/console-logs/stream/route-fe947d4ab19df968.js +0 -1
  782. package/.next/static/chunks/app/api/translator/load/route-fe947d4ab19df968.js +0 -1
  783. package/.next/static/chunks/app/api/translator/save/route-fe947d4ab19df968.js +0 -1
  784. package/.next/static/chunks/app/api/translator/send/route-fe947d4ab19df968.js +0 -1
  785. package/.next/static/chunks/app/api/translator/translate/route-fe947d4ab19df968.js +0 -1
  786. package/.next/static/chunks/app/api/tunnel/disable/route-fe947d4ab19df968.js +0 -1
  787. package/.next/static/chunks/app/api/tunnel/enable/route-fe947d4ab19df968.js +0 -1
  788. package/.next/static/chunks/app/api/tunnel/status/route-fe947d4ab19df968.js +0 -1
  789. package/.next/static/chunks/app/api/tunnel/tailscale-check/route-fe947d4ab19df968.js +0 -1
  790. package/.next/static/chunks/app/api/tunnel/tailscale-disable/route-fe947d4ab19df968.js +0 -1
  791. package/.next/static/chunks/app/api/tunnel/tailscale-enable/route-fe947d4ab19df968.js +0 -1
  792. package/.next/static/chunks/app/api/tunnel/tailscale-install/route-fe947d4ab19df968.js +0 -1
  793. package/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-fe947d4ab19df968.js +0 -1
  794. package/.next/static/chunks/app/api/usage/[connectionId]/route-fe947d4ab19df968.js +0 -1
  795. package/.next/static/chunks/app/api/usage/chart/route-fe947d4ab19df968.js +0 -1
  796. package/.next/static/chunks/app/api/usage/history/route-fe947d4ab19df968.js +0 -1
  797. package/.next/static/chunks/app/api/usage/logs/route-fe947d4ab19df968.js +0 -1
  798. package/.next/static/chunks/app/api/usage/providers/route-fe947d4ab19df968.js +0 -1
  799. package/.next/static/chunks/app/api/usage/request-details/route-fe947d4ab19df968.js +0 -1
  800. package/.next/static/chunks/app/api/usage/request-logs/route-fe947d4ab19df968.js +0 -1
  801. package/.next/static/chunks/app/api/usage/stats/route-fe947d4ab19df968.js +0 -1
  802. package/.next/static/chunks/app/api/usage/stream/route-fe947d4ab19df968.js +0 -1
  803. package/.next/static/chunks/app/api/v1/api/chat/route-fe947d4ab19df968.js +0 -1
  804. package/.next/static/chunks/app/api/v1/audio/speech/route-fe947d4ab19df968.js +0 -1
  805. package/.next/static/chunks/app/api/v1/audio/transcriptions/route-fe947d4ab19df968.js +0 -1
  806. package/.next/static/chunks/app/api/v1/audio/voices/route-fe947d4ab19df968.js +0 -1
  807. package/.next/static/chunks/app/api/v1/chat/completions/route-fe947d4ab19df968.js +0 -1
  808. package/.next/static/chunks/app/api/v1/embeddings/route-fe947d4ab19df968.js +0 -1
  809. package/.next/static/chunks/app/api/v1/images/generations/route-fe947d4ab19df968.js +0 -1
  810. package/.next/static/chunks/app/api/v1/messages/count_tokens/route-fe947d4ab19df968.js +0 -1
  811. package/.next/static/chunks/app/api/v1/messages/route-fe947d4ab19df968.js +0 -1
  812. package/.next/static/chunks/app/api/v1/models/[...model]/route-fe947d4ab19df968.js +0 -1
  813. package/.next/static/chunks/app/api/v1/models/info/route-fe947d4ab19df968.js +0 -1
  814. package/.next/static/chunks/app/api/v1/models/route-fe947d4ab19df968.js +0 -1
  815. package/.next/static/chunks/app/api/v1/responses/compact/route-fe947d4ab19df968.js +0 -1
  816. package/.next/static/chunks/app/api/v1/responses/route-fe947d4ab19df968.js +0 -1
  817. package/.next/static/chunks/app/api/v1/route-fe947d4ab19df968.js +0 -1
  818. package/.next/static/chunks/app/api/v1/search/route-fe947d4ab19df968.js +0 -1
  819. package/.next/static/chunks/app/api/v1/systemone/route-fe947d4ab19df968.js +0 -1
  820. package/.next/static/chunks/app/api/v1/videos/[id]/route-fe947d4ab19df968.js +0 -1
  821. package/.next/static/chunks/app/api/v1/videos/edits/route-fe947d4ab19df968.js +0 -1
  822. package/.next/static/chunks/app/api/v1/videos/extensions/route-fe947d4ab19df968.js +0 -1
  823. package/.next/static/chunks/app/api/v1/videos/generations/route-fe947d4ab19df968.js +0 -1
  824. package/.next/static/chunks/app/api/v1/web/fetch/route-fe947d4ab19df968.js +0 -1
  825. package/.next/static/chunks/app/api/v1beta/models/[...path]/route-fe947d4ab19df968.js +0 -1
  826. package/.next/static/chunks/app/api/v1beta/models/route-fe947d4ab19df968.js +0 -1
  827. package/.next/static/chunks/app/api/version/route-fe947d4ab19df968.js +0 -1
  828. package/.next/static/chunks/app/api/version/shutdown/route-fe947d4ab19df968.js +0 -1
  829. package/.next/static/chunks/app/api/version/update/route-fe947d4ab19df968.js +0 -1
  830. package/.next/static/chunks/app/manifest.webmanifest/route-fe947d4ab19df968.js +0 -1
  831. package/.next/static/chunks/app/page-fe947d4ab19df968.js +0 -1
  832. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fe947d4ab19df968.js +0 -1
  833. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fe947d4ab19df968.js +0 -1
  834. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fe947d4ab19df968.js +0 -1
  835. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fe947d4ab19df968.js +0 -1
  836. package/.next/static/chunks/webpack-452a2f4aec1a53ee.js +0 -1
  837. package/.next/static/css/7698ede81d1862e2.css +0 -1
  838. /package/.next/static/{P0IikrdjxpmTneD33YPWQ → awjDWqWCZbU3VVSuN7-oA}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"node":{"008a36aa5c1bbf73aa092d12bf8f0bec118892aa88":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false}},"filename":"app/api/cli-tools/all-statuses/route.js","exportedName":"GET"},"00b79e8ae7aac55c7474653f8b5073c1b3676957d1":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"5330","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"00eccaf8969ad68c11f0dfa8689cf8a220d84f5ad8":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"5330","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"402bdbdb3bfe7ec815bc02d49d81a7e8dba10e1b89":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"5330","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"00b96b15e24c98445a8ad8f83eda0525c8b564e8b3":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"43298","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"00ea6780b52f241b14c81249044977c32bd95d8aa1":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"43298","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"4080fd2e172823aa9b781f06943d5e6fa5542dc39e":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"43298","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"007492ccf0b7efef083e7f19ede3331d4ff198ea84":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"11294","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"GET"},"402f6ebc68d9305ed32b831ba5100a4d65c00fb14c":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"11294","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"PATCH"},"406ac5cb74d4d055e049f817bd2deaa2029cb45034":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"11294","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"DELETE"},"406e318ec519de54ed27d16d1799cb796165a40024":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"11294","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"POST"},"005e1a5c1a2a23291866aef305aac739141fa63e4e":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"67189","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"DELETE"},"00eaa24318f076727fbd4197ce60621fdc5b0725bd":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"67189","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"GET"},"40054740be9a87d2eee6dbf83564b604d5eebfc524":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"67189","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"POST"},"00118a97878afcbf26af92d05ec21df9b1fead6f9e":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"37511","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"GET"},"0038363567d4b09b7f156a96753f8fe29d72e1a8d8":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"37511","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"DELETE"},"40d6dae1bf9e2a10ed179d2440e202faa3bcacd42f":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"68804","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"37511","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"POST"},"40f2c611ce297067e323f13e8a3dba63eb8e9ed715":{"workers":{"app/api/cli-tools/cowork-mcp-registry/route":{"moduleId":"63095","async":false}},"filename":"app/api/cli-tools/cowork-mcp-registry/route.js","exportedName":"GET"},"40dd0d8fe62f5c49dd7e0990dec953c09eaeb9ab3c":{"workers":{"app/api/cli-tools/cowork-mcp-tools/route":{"moduleId":"27532","async":false}},"filename":"app/api/cli-tools/cowork-mcp-tools/route.js","exportedName":"POST"},"40d7a9de9c319564ecce32c9e94bfec47254afac74":{"workers":{"app/api/tunnel/tailscale-install/route":{"moduleId":"25357","async":false}},"filename":"app/api/tunnel/tailscale-install/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"rxJJIU3rylsQKkCfrFe3kvt1BwwQBy53qgwmYVHACRg="}
1
+ {"node":{"007670661241dd8453cc479e2b0b43d5f1892447e2":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false}},"filename":"app/api/cli-tools/all-statuses/route.js","exportedName":"GET"},"005272fd8130239508b1972a352d1df86fd0b70a32":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"57877","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"00bdadacc2ea0aad50108597c3aafec233f5f01050":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"57877","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"40a64ae5e4180cb9561d8247da8f6c5c3c20fc2f54":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"57877","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"0045c7c3ceac28d69bf685a90f467fa36c34d13d7d":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"15727","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"004953963bfc3d098b3e7f7910759ec95d6946368f":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"15727","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"408a42f3166b9fd154a7d87b40d191ae28ead3bfed":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"15727","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"00ae8f79dfa4d7893f94467b679a4b6e800e68c4b3":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"20151","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"GET"},"4077c7befa7afe5b3b8004a85fae52b8c0f7018820":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"20151","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"DELETE"},"409bcf4ef6c2ca034b6a8b069f9b286d1432e4f336":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"20151","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"POST"},"40cf8e820b014b9ceeec0fc39ef136e4c804f7f288":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"20151","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"PATCH"},"0093775b195fe430ec8c4cb133e4b12a4b5620b566":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"51957","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"DELETE"},"00d15d43d358e1b4d2efd3fc15b0e87a0d38f54fbc":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"51957","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"GET"},"40ffc341c46a6310d58cecac859117b52f40283af1":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"51957","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"POST"},"0046930cd313f26af3455353dce8593bcc78d97289":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"6732","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"DELETE"},"007df75ccf3a081d963233a7b5fdf52ccf07b8c9e6":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"6732","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"GET"},"40abfdb325c1bac4ab17cfce708fcf7ec6c2635dfb":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"51785","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"6732","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"POST"},"40c39e5dc53df205ffc72bb07b986bbc89b159ead4":{"workers":{"app/api/cli-tools/cowork-mcp-registry/route":{"moduleId":"95934","async":false}},"filename":"app/api/cli-tools/cowork-mcp-registry/route.js","exportedName":"GET"},"4048534ebf9c50ee3eefb4433b9f6ee42c48356764":{"workers":{"app/api/cli-tools/cowork-mcp-tools/route":{"moduleId":"91304","async":false}},"filename":"app/api/cli-tools/cowork-mcp-tools/route.js","exportedName":"POST"},"40ff1b7f0ef8e0528d9d1a356bba907c3f7b3bd9e8":{"workers":{"app/api/tunnel/tailscale-install/route":{"moduleId":"67221","async":false}},"filename":"app/api/tunnel/tailscale-install/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"I/dw9qBtB8MGGaYZ1n+8WNtg2eGYDyDFj2qSr4Kl3Ww="}
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(e,s,t,a){return{__rewrites:{afterFiles:[{has:e,source:"/v1/v1/:path*",destination:s},{has:e,source:"/v1/v1",destination:t},{has:e,source:"/codex/:path*",destination:a},{has:e,source:"/responses",destination:a},{has:e,source:"/v1beta/:path*",destination:"/api/v1beta/:path*"},{has:e,source:"/v1beta",destination:"/api/v1beta"},{has:e,source:"/v1/:path*",destination:s},{has:e,source:"/v1",destination:t}],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:147,errorRate:1e-4,numBits:2819,numHashes:14,bitArray:[0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,1,1,1,0,1,1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,1,1,1,0,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,1,1,1,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1,0,0,1,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,0,0,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0,1,0,0,1,0,0,1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,0,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,0,1,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,1,1,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,1,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,0,0,1,0,1,1,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,0,0,0,1,0,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1]},__routerFilterDynamic:{numItems:15,errorRate:1e-4,numBits:288,numHashes:14,bitArray:[0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0,0,1,1,1,1,0,0,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,1,1,0,1,1]},sortedPages:["/_app"]}}(void 0,"/api/v1/:path*","/api/v1","/api/v1/responses"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1278],{738:(e,t,a)=>{a.d(t,{A:()=>n});var r=a(29798),s=a(15814),i=a(63729);function n({src:e,providerId:t,alt:a,size:o=32,className:l="",fallbackText:d="?",fallbackColor:c}){let u=function(e,t){if(t)return(0,i.HY)(t);if(!e)return null;let a=String(e).match(/^\/providers\/([^/]+)\.png$/i);return a?(0,i.HY)(a[1]):e}(e,t),[m,p]=(0,s.useState)(!1);return!u||m?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${l}`.trim(),style:{width:o,height:o,color:c,fontSize:Math.max(10,Math.floor(.38*o))},children:d}):(0,r.jsx)("img",{src:u,alt:a,width:o,height:o,className:l,loading:"lazy",decoding:"async",onError:()=>{let e=u.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,i.Kw)(e[1]),t&&(0,i.Kw)(t),p(!0)}})}},3537:(e,t,a)=>{a.d(t,{ConfirmModal:()=>u,default:()=>c});var r=a(29798),s=a(15814),i=a(69221),n=a(13008),o=a(18055),l=a(49787);let d={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"};function c({isOpen:e,onClose:t,title:a,children:i,footer:o,size:u="md",closeOnOverlay:m=!0,className:p}){return(0,s.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>{e||t()},children:(0,r.jsxs)(l.Cf,{className:(0,n.cn)(d[u],p),onPointerDownOutside:m?void 0:e=>e.preventDefault(),onInteractOutside:m?void 0:e=>e.preventDefault(),children:[a&&(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:a})}),(0,r.jsx)("div",{className:"max-h-[calc(85vh-100px)] overflow-y-auto p-4",children:i}),o&&(0,r.jsx)(l.Es,{children:o})]})})}function u({isOpen:e,onClose:t,onConfirm:a,title:s="Confirm",message:n,confirmText:l="Confirm",cancelText:d="Cancel",variant:m="danger",loading:p=!1}){return(0,r.jsx)(c,{isOpen:e,onClose:t,title:s,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$,{variant:"ghost",onClick:t,disabled:p,children:d}),(0,r.jsxs)(o.$,{variant:"danger"===m?"destructive":"primary"===m?"default":m,onClick:a,disabled:p,children:[p&&(0,r.jsx)(i.A,{className:"animate-spin"}),l]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:n})})}},13008:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(5471);function s(...e){return(0,r.cn)(...e)}},16675:(e,t,a)=>{a.d(t,{default:()=>em});var r=a(29798),s=a(58913),i=a(70782),n=a(41671),o=a(42535),l=a(15814),d=a(16653),c=a(50141),u=a.n(c),m=a(51660),p=a(1352),x=a(69221),h=a(53784),f=a(18055),g=a(75669),b=a(49787),v=a(63523),j=a(63175);let w=["docker compose pull","docker compose up -d"],y=["docker pull ghcr.io/amir83nasr/10router:latest","docker stop 10router && docker rm 10router",'docker run -d --name 10router -p 20128:20128 -v "$HOME/.10router:/app/data" -e DATA_DIR=/app/data ghcr.io/amir83nasr/10router:latest'],k=["git pull","pnpm install","pnpm run build && PORT=20128 pnpm run start"];function N({id:e,steps:t}){let{copied:a,copy:i}=(0,v.C)();return(0,r.jsx)("ol",{className:"flex flex-col gap-1.5",children:t.map((t,n)=>{let o=`${e}-${n}`,l=a===o;return(0,r.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-muted text-[11px] font-medium text-muted-foreground",children:n+1}),(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:t}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>i(t,o),"aria-label":`Copy step ${n+1}: ${t}`,children:(0,r.jsx)(s.default,{name:l?"check":"content_copy",className:"size-3.5"})})]},o)})})}function C({title:e,icon:t,id:a,steps:i}){return(0,r.jsxs)("details",{className:"group rounded-lg border border-border",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:t,className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:e}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsx)("div",{className:"px-3 py-2",children:(0,r.jsx)(N,{id:a,steps:i})})]})}function _(){return(0,r.jsxs)("details",{className:"group flex flex-col gap-2 rounded-lg border border-border p-3",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:"terminal",className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:"Other install methods"}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 py-2",children:[(0,r.jsx)(C,{title:"Docker Compose",icon:"lan",id:"compose",steps:w}),(0,r.jsx)(C,{title:"Plain Docker run",icon:"dns",id:"docker",steps:y}),(0,r.jsx)(C,{title:"From source",icon:"code",id:"source",steps:k})]})]})}function S(){let{copied:e,copy:t}=(0,v.C)(),a=(0,j.c)(),i="npm i -g @amir83nasr/10router@latest",n="npm-0",o=e===n;return(0,r.jsxs)(g.Zp,{size:"sm",className:"border-primary/30 bg-primary/5",children:[(0,r.jsx)(g.aR,{children:(0,r.jsxs)(g.ZB,{className:"flex items-center gap-2",children:[(0,r.jsx)(s.default,{name:"upload",className:"size-4 shrink-0 text-primary"}),"npm ",(0,r.jsx)(h.E,{variant:"default",children:"recommended"})]})}),(0,r.jsxs)(g.Wu,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:i}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>t(i,n),"aria-label":`Copy: ${i}`,children:(0,r.jsx)(s.default,{name:o?"check":"content_copy",className:"size-3.5"})})]}),o&&!a.stopped&&!a.timedOut&&(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Copied. Stop the server, paste the command in your terminal, then run"," ",(0,r.jsx)("code",{className:"rounded bg-muted px-1 font-mono",children:"10router start"}),"."]}),(0,r.jsxs)(f.$,{variant:"destructive",size:"sm",className:"self-start",onClick:a.confirm,disabled:a.shuttingDown,children:[a.shuttingDown?(0,r.jsx)(x.A,{className:"animate-spin"}):(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),a.shuttingDown?"Stopping…":"Stop server"]})]}),a.stopped&&(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-xs text-green-600 dark:text-green-400",children:["Server stopped — run the copied command in your terminal, then"," ",(0,r.jsx)("code",{className:"font-mono",children:"10router start"}),"."]}),a.timedOut&&(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-600 dark:text-amber-400",children:["The server did not stop in time — stop it manually (",(0,r.jsx)("code",{className:"font-mono",children:"10router stop"}),"), then run the copied command."]})]})]})}function z({open:e,onOpenChange:t,info:a,checkFailed:i,onRetry:n}){let o=a?a.hasUpdate?(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-600 dark:text-amber-400",children:["New version v",a.latestVersion," available (you run v",a.currentVersion,"). npm is the fastest way — or run the steps for your install method, in order:"]}):(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-sm text-green-600 dark:text-green-400",children:["Up to date — v",a.currentVersion," is the latest."]}):(0,r.jsx)("p",{className:"rounded-lg border border-border bg-muted/50 px-3 py-2 text-sm text-muted-foreground",children:i?"Could not reach npm registry to check for updates — the manual steps below still work.":"Checking for updates…"});return(0,r.jsx)(b.lG,{open:e,onOpenChange:t,children:(0,r.jsxs)(b.Cf,{className:"sm:max-w-lg",children:[(0,r.jsxs)(b.c7,{children:[(0,r.jsx)(b.L3,{children:"Updates"}),(0,r.jsx)(b.rr,{children:a?`Current v${a.currentVersion} \xb7 latest v${a.latestVersion}`:"Compare your version against the latest release"})]}),(0,r.jsxs)("div",{className:"flex max-h-[70vh] flex-col gap-4 overflow-y-auto p-4",children:[o,(0,r.jsx)(S,{}),(0,r.jsx)(_,{})]}),(0,r.jsxs)(b.Es,{children:[(0,r.jsxs)(f.$,{variant:"ghost",onClick:n,children:[(0,r.jsx)(s.default,{name:"refresh",className:"size-4"}),"Check again"]}),(0,r.jsx)(f.$,{variant:"outline",onClick:()=>t(!1),children:"Close"})]})]})})}var O=a(13008);function A({collapsed:e}){let[t,a]=(0,l.useState)(null),[i,n]=(0,l.useState)(!1),[o,d]=(0,l.useState)(!1),c=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/version",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();a({currentVersion:t?.currentVersion??m.vQ.version,latestVersion:t?.latestVersion??m.vQ.version,hasUpdate:!!t?.hasUpdate}),n(!1)}catch{n(!0)}},[]);(0,l.useEffect)(()=>{c();let e=setInterval(c,18e5);return()=>clearInterval(e)},[c]);let u=t?.hasUpdate??!1,x=u?`v${t?.latestVersion} available`:t?`v${t.currentVersion} \xb7 up to date`:`v${m.vQ.version}`,h=e?(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),"aria-label":`Update available. ${x}`,className:"relative mx-auto flex size-8 items-center justify-center rounded-md bg-amber-500/15 text-amber-600 transition-colors hover:bg-amber-500/25 dark:text-amber-400",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute right-1.5 top-1.5 size-1.5 rounded-full bg-amber-500"})]}):(0,r.jsx)("span",{className:"mx-auto flex size-8 items-center justify-center rounded-md text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})})}),(0,r.jsx)(p.ZI,{children:u?`${x} — click to update`:x})]}):u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),className:"flex w-full items-center gap-2 rounded-md bg-amber-500/15 px-1 py-1 text-left transition-colors hover:bg-amber-500/25","aria-label":`Update available. ${x}`,children:[(0,r.jsxs)("span",{className:"relative flex shrink-0 items-center text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute -right-0.5 -top-0.5 size-1.5 rounded-full bg-amber-500"})]}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:"block truncate text-[11px] font-medium text-amber-600 dark:text-amber-400",children:x})]}),(0,r.jsx)(s.default,{name:"chevron_right",className:"size-3.5 shrink-0 text-muted-foreground"})]}):(0,r.jsxs)("div",{className:"flex w-full items-center gap-2 rounded-md px-1 py-1 text-left",children:[(0,r.jsx)("span",{className:"flex shrink-0 items-center text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:(0,O.cn)("block truncate text-[11px] font-medium",i||!t?"text-muted-foreground":"text-green-600 dark:text-green-400"),children:x})]})]});return(0,r.jsxs)(r.Fragment,{children:[h,(0,r.jsx)(z,{open:o&&u,onOpenChange:d,info:t,checkFailed:i,onRetry:c})]})}var L=a(54366),E=a(5471),T=a(80954);a(77345);var P=a(73639);function I({className:e,orientation:t="horizontal",decorative:a=!0,...s}){return(0,r.jsx)(P.b,{"data-slot":"separator",decorative:a,orientation:t,className:(0,E.cn)("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",e),...s})}var $=a(69260),M=a(6403);function D({...e}){return(0,r.jsx)($.bL,{"data-slot":"sheet",...e})}function U({...e}){return(0,r.jsx)($.ZL,{"data-slot":"sheet-portal",...e})}function R({className:e,...t}){return(0,r.jsx)($.hJ,{"data-slot":"sheet-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function F({className:e,children:t,side:a="right",showCloseButton:s=!0,...i}){return(0,r.jsxs)(U,{children:[(0,r.jsx)(R,{}),(0,r.jsxs)($.UC,{"data-slot":"sheet-content","data-side":a,className:(0,E.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10",e),...i,children:[t,s&&(0,r.jsx)($.bm,{"data-slot":"sheet-close",asChild:!0,children:(0,r.jsxs)(f.$,{variant:"ghost",className:"absolute top-4 right-4",size:"icon-sm",children:[(0,r.jsx)(M.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function H({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sheet-header",className:(0,E.cn)("flex flex-col gap-1.5 p-4",e),...t})}function B({className:e,...t}){return(0,r.jsx)($.hE,{"data-slot":"sheet-title",className:(0,E.cn)("font-heading font-medium text-foreground",e),...t})}function V({className:e,...t}){return(0,r.jsx)($.VY,{"data-slot":"sheet-description",className:(0,E.cn)("text-sm text-muted-foreground",e),...t})}a(99118);let q=l.createContext(null);function Q(){let e=l.useContext(q);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function K({defaultOpen:e=!0,open:t,onOpenChange:a,className:s,style:i,children:n,...o}){let d=function(){let[e,t]=l.useState(void 0);return l.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[c,u]=l.useState(!1),[m,p]=l.useState(e),x=t??m,h=l.useCallback(e=>{let t="function"==typeof e?e(x):e;a?a(t):p(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[a,x]),f=l.useCallback(()=>d?u(e=>!e):h(e=>!e),[d,h,u]);l.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),f())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[f]);let g=x?"expanded":"collapsed",b=l.useMemo(()=>({state:g,open:x,setOpen:h,isMobile:d,openMobile:c,setOpenMobile:u,toggleSidebar:f}),[g,x,h,d,c,u,f]);return(0,r.jsx)(q.Provider,{value:b,children:(0,r.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...i},className:(0,E.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),...o,children:n})})}function W({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:s,children:i,dir:n,...o}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=Q();return"none"===a?(0,r.jsx)("div",{"data-slot":"sidebar",className:(0,E.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",s),...o,children:i}):l?(0,r.jsx)(D,{open:c,onOpenChange:u,...o,children:(0,r.jsxs)(F,{dir:n,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,r.jsxs)(H,{className:"sr-only",children:[(0,r.jsx)(B,{children:"Sidebar"}),(0,r.jsx)(V,{children:"Displays the mobile sidebar."})]}),(0,r.jsx)("div",{className:"flex h-full w-full flex-col",children:i})]})}):(0,r.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[(0,r.jsx)("div",{"data-slot":"sidebar-gap",className:(0,E.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,r.jsx)("div",{"data-slot":"sidebar-container","data-side":e,className:(0,E.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",s),...o,children:(0,r.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full min-w-0 flex-col overflow-x-hidden bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:i})})]})}function Z({className:e,...t}){return(0,r.jsx)("main",{"data-slot":"sidebar-inset",className:(0,E.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...t})}function G({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function Y({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function X({className:e,...t}){return(0,r.jsx)(I,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,E.cn)("mx-2 w-auto bg-sidebar-border",e),...t})}function J({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,E.cn)("flex min-h-0 w-full min-w-0 flex-1 flex-col gap-2 overflow-x-hidden overflow-y-auto group-data-[collapsible=icon]:overflow-hidden",e),...t})}function ee({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,E.cn)("relative flex w-full min-w-0 flex-col p-2",e),...t})}function et({className:e,asChild:t=!1,...a}){let s=t?T.bL:"div";return(0,r.jsx)(s,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,E.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",e),...a})}function ea({className:e,...t}){return(0,r.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,E.cn)("flex w-full min-w-0 flex-col gap-1",e),...t})}function er({className:e,...t}){return(0,r.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,E.cn)("group/menu-item relative",e),...t})}let es=(0,L.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function ei({asChild:e=!1,isActive:t=!1,variant:a="default",size:s="default",tooltip:i,className:n,...o}){let l=e?T.bL:"button",{isMobile:d,state:c}=Q(),u=(0,r.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":s,"data-active":t,className:(0,E.cn)(es({variant:a,size:s}),n),...o});return i?("string"==typeof i&&(i={children:i}),(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u}),(0,r.jsx)(p.ZI,{side:"right",align:"center",hidden:"collapsed"!==c||d,...i})]})):u}let en=[{id:"endpoint",href:"/dashboard",label:"Endpoint & Key",icon:"api",match:e=>"/dashboard"===e||e.startsWith("/dashboard/endpoint")},{id:"providers",href:"/dashboard/providers",label:"Providers",icon:"dns"},{id:"combos",href:"/dashboard/combos",label:"Combo",icon:"layers"},{id:"usage",href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{id:"token-saver",href:"/dashboard/token-saver",label:"Token Saver",icon:"scissors"},{id:"cli-tools",href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"},{id:"systemone",href:"/dashboard/media-providers/systemone",label:"System One",icon:"bolt"}],eo=[{id:"proxy-pools",href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"waypoints"}],el=[{id:"profile",href:"/dashboard/profile",label:"Settings",icon:"settings"}];function ed({item:e}){var t;let a=(t=(0,i.usePathname)(),e.match?e.match(t):"/dashboard/profile"===e.href?"/dashboard/profile"===t:t.startsWith(e.href));return(0,r.jsx)(er,{children:(0,r.jsx)(ei,{asChild:!0,isActive:a,children:(0,r.jsxs)(u(),{href:e.href,className:"gap-3",children:[(0,r.jsx)(s.default,{name:e.icon,className:"text-[18px]"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]})})})}function ec({...e}){(0,i.usePathname)();let{state:t}=Q(),a="collapsed"===t;return(0,r.jsxs)(W,{...e,children:[(0,r.jsx)(G,{className:"h-20 justify-center border-b border-sidebar-border px-4",children:(0,r.jsxs)(u(),{href:"/dashboard",className:"flex min-w-0 items-center gap-3",children:[(0,r.jsx)(d.default,{src:"/icons/icon.svg",alt:"10Router logo",width:36,height:36,className:"size-9 rounded-[10px] shrink-0"}),!a&&(0,r.jsxs)("div",{className:"flex min-w-0 flex-col leading-tight",children:[(0,r.jsx)("span",{className:"truncate text-lg font-semibold tracking-tight text-foreground",children:m.vQ.name}),(0,r.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:["v",m.vQ.version]})]})]})}),(0,r.jsxs)(J,{className:"pt-2",children:[(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"Overview"}),(0,r.jsx)(ea,{children:en.map(e=>(0,r.jsx)(ed,{item:e},e.id))})]}),(0,r.jsx)(X,{}),(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"System"}),(0,r.jsxs)(ea,{children:[eo.map(e=>(0,r.jsx)(ed,{item:e},e.id)),el.map(e=>(0,r.jsx)(ed,{item:e},e.id))]})]})]}),(0,r.jsx)(Y,{className:"border-t border-sidebar-border p-4",children:(0,r.jsx)(A,{collapsed:a})})]})}function eu({children:e}){let t=(0,i.usePathname)(),a=(0,n.i)(e=>e.notifications),l=(0,n.i)(e=>e.removeNotification),{toggleSidebar:d}=Q();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2",children:a.map(e=>{var t;let a="success"===(t=e.type)?{wrapper:"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400",icon:"check_circle"}:"error"===t?{wrapper:"border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",icon:"error"}:"warning"===t?{wrapper:"border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400",icon:"warning"}:{wrapper:"border-blue-500/30 bg-blue-500/10 text-blue-600 dark:text-blue-400",icon:"info"};return(0,r.jsx)("div",{className:`rounded-lg border px-3 py-2 shadow-lg backdrop-blur-sm ${a.wrapper}`,children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(s.default,{name:a.icon,className:"text-[18px] leading-5"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[e.title?(0,r.jsx)("p",{className:"text-xs font-semibold mb-0.5",children:e.title}):null,(0,r.jsx)("p",{className:"text-xs whitespace-pre-wrap break-words",children:e.message})]}),e.dismissible?(0,r.jsx)("button",{type:"button",onClick:()=>l(e.id),className:"text-current/70 hover:text-current","aria-label":"Dismiss notification",children:(0,r.jsx)(s.default,{name:"close",className:"text-[16px]"})}):null]})},e.id)})}),(0,r.jsx)(ec,{}),(0,r.jsxs)(Z,{className:"flex flex-col h-full min-w-0 relative transition-colors duration-300 isolate",children:[(0,r.jsx)(o.default,{onMenuClick:d},t),(0,r.jsx)("div",{className:`dashboard-grid-bg flex-1 overflow-y-auto ${"/dashboard/basic-chat"===t?"":"p-6 lg:p-10"} ${"/dashboard/basic-chat"===t?"flex flex-col overflow-hidden":""}`,children:(0,r.jsx)("div",{className:`${"/dashboard/basic-chat"===t?"flex-1 w-full h-full flex flex-col":"max-w-7xl mx-auto"}`,children:e})})]})]})}function em({children:e}){return(0,r.jsx)(K,{children:(0,r.jsx)("div",{className:"flex h-screen w-full overflow-hidden bg-background",children:(0,r.jsx)(eu,{children:e})})})}},29575:(e,t,a)=>{a.d(t,{CardGrid:()=>p,Page:()=>c,PageHeader:()=>u,Section:()=>m});var r=a(29798),s=a(50141),i=a.n(s),n=a(13008),o=a(18055),l=a(58913);let d={default:"",narrow:"mx-auto w-full max-w-2xl",wide:"mx-auto w-full max-w-5xl"};function c({children:e,width:t="default",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("flex min-w-0 flex-col gap-6",d[t],a),children:e})}function u({title:e,description:t,actions:a,backHref:s,backLabel:d,className:c}){let m=null!=a;return(0,r.jsxs)("div",{className:(0,n.cn)(c),children:[s?(0,r.jsx)(o.$,{variant:"outline",size:"sm",asChild:!0,className:"mb-4 self-start",children:(0,r.jsxs)(i(),{href:s,children:[(0,r.jsx)(l.default,{name:"arrow_back",className:"text-lg"}),d??"Back"]})}):null,(0,r.jsxs)("div",{className:(0,n.cn)("flex flex-col gap-3",m&&"sm:flex-row sm:items-center sm:justify-between"),children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold tracking-tight sm:text-3xl",children:e}),t?(0,r.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t}):null]}),m?(0,r.jsx)("div",{className:"grid shrink-0 grid-cols-1 gap-2 sm:flex sm:items-center",children:a}):null]})]})}function m({title:e,actions:t,children:a,className:s}){let i=void 0!==e||void 0!==t;return(0,r.jsxs)("section",{className:(0,n.cn)("flex min-w-0 flex-col gap-4",s),children:[i?(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e?(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight sm:text-xl",children:e}):(0,r.jsx)("span",{}),t?(0,r.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto sm:items-center",children:t}):null]}):null,a]})}function p({children:e,variant:t="cards",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("grid min-w-0 grid-cols-1 gap-3 sm:gap-4","cards"===t&&"sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","stat"===t&&"sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5",a),children:e})}},41671:(e,t,a)=>{a.d(t,{i:()=>i});var r=a(58013);let s=0,i=(0,r.v)((e,t)=>({notifications:[],addNotification:a=>{let r=++s,i={id:r,type:a.type||"info",message:a.message,title:a.title||null,duration:a.duration??5e3,dismissible:a.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,i]})),i.duration>0&&setTimeout(()=>t().removeNotification(r),i.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,a)=>t().addNotification({type:"success",message:e,title:a}),error:(e,a)=>t().addNotification({type:"error",message:e,title:a,duration:8e3}),warning:(e,a)=>t().addNotification({type:"warning",message:e,title:a}),info:(e,a)=>t().addNotification({type:"info",message:e,title:a})}))},42535:(e,t,a)=>{a.d(t,{default:()=>w});var r=a(29798),s=a(58913),i=a(15814),n=a(70782),o=a(50141),l=a.n(o),d=a(738),c=a(56776);let u=(0,a(58013).v)(e=>({query:"",placeholder:"",visible:!1,setQuery:t=>e({query:t}),register:(t="Search...")=>e({visible:!0,placeholder:t,query:""}),unregister:()=>e({visible:!1,placeholder:"",query:""})}));var m=a(51660),p=a(13794),x=a(90046),h=a(63729),f=a(51780),g=a(53784),b=a(18055),v=a(77345),j=a(1352);function w({onMenuClick:e,showMenuButton:t=!0}){let a=(0,n.usePathname)(),[o,u]=(0,i.useState)(""),[b,v]=(0,i.useState)(""),{title:k,description:N,icon:C,breadcrumbs:_}=(0,i.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/providers\/([^/]+)$/);if(t){let e=t[1],a=m.zN[e]||m.fg[e];if(a)return{title:a.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:a.name,image:(0,h.HY)(a.id)}]}}let a=e.match(/\/media-providers\/systemone\/([^/]+)$/);if(a){let e=decodeURIComponent(a[1]),t=p.Q2[e]||Object.values(p.Q2).find(t=>t.alias===e);if(t)return{title:t.name,description:"",breadcrumbs:[{label:"System One",href:"/dashboard/media-providers/systemone"},{label:t.name,image:(0,h.HY)(t.id)}]}}let r=e.match(/\/cli-tools\/([^/]+)$/);if(r){let e=decodeURIComponent(r[1]),t=x.d[e];if(t)return{title:t.name,description:"",breadcrumbs:[{label:"CLI Tools",href:"/dashboard/cli-tools"},{label:t.name,image:t.image}]}}return e.includes("/media-providers/systemone")?{title:"System One",description:"Decision models — native POST /v1/systemone endpoint",icon:"bolt",breadcrumbs:[]}:e.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:e.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:e.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:e.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"scissors",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:e.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"waypoints",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(a),[a]);(0,i.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/auth/status",{cache:"no-store"});if(!t.ok)return;let a=await t.json();e||(u(a?.displayName||a?.samlName||a?.samlEmail||a?.oidcName||a?.oidcEmail||""),v(a?.loginMethod||""))}catch{e||(u(""),v(""))}}(),()=>{e=!0}},[]);let S=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"sticky top-0 flex h-20 shrink-0 items-center justify-between gap-3 px-4 lg:px-8 border-b border-border bg-card/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-foreground hover:text-primary transition-colors",children:(0,r.jsx)(s.default,{name:"menu",className:""})})}),(0,r.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:_.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:_.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)(s.default,{name:"chevron_right",className:"text-muted-foreground text-base"}),e.href?(0,r.jsx)(l(),{href:e.href,className:"text-muted-foreground hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(d.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-foreground tracking-tight truncate",children:(0,f.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):k?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[C&&(0,r.jsx)(s.default,{name:C,className:"text-primary text-xl lg:text-2xl"}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,f.Tl)(k)})]}),N&&(0,r.jsx)("p",{className:"hidden lg:block text-sm text-muted-foreground truncate",children:(0,f.Tl)(N)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[o&&("OIDC"===b||"SAML"===b)&&(0,r.jsxs)(j.m_,{children:[(0,r.jsx)(j.k$,{asChild:!0,children:(0,r.jsxs)(g.E,{variant:"secondary",className:"hidden max-w-55 sm:inline-flex",children:[(0,r.jsx)(s.default,{name:"person",className:"size-3.5 text-primary"}),(0,r.jsx)("span",{className:"truncate",children:o}),(0,r.jsx)("span",{className:"shrink-0 rounded-full bg-primary/10 px-1.5 py-px text-[10px] font-semibold uppercase tracking-wide text-primary",children:b})]})}),(0,r.jsx)(j.ZI,{children:o})]}),(0,r.jsx)(y,{}),(0,r.jsx)(c.default,{onLogout:S})]})]})}function y(){let e=u(e=>e.visible),t=u(e=>e.query),a=u(e=>e.placeholder),i=u(e=>e.setQuery);return e?(0,r.jsxs)("div",{className:"relative w-40 sm:w-55",children:[(0,r.jsx)(s.default,{name:"search",className:"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground size-4 pointer-events-none"}),(0,r.jsx)(v.p,{type:"text",value:t,onChange:e=>i(e.target.value),placeholder:a,className:"h-8 pl-7 pr-7"}),t&&(0,r.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>i(""),className:"absolute right-1 top-1/2 -translate-y-1/2","aria-label":"Clear search",children:(0,r.jsx)(s.default,{name:"close",className:"size-4"})})]}):null}},51660:(e,t,a)=>{a.d(t,{Q2:()=>r.Q2,fg:()=>r.fg,vQ:()=>s,_$:()=>n,MA:()=>r.MA,UY:()=>l,Nu:()=>i,zN:()=>r.zN,B2:()=>o});var r=a(13794);a(80159);let s={name:"10Router Proxy",description:"AI Infrastructure Management",version:"0.1.7"},i={changelogUrl:"/api/changelog"},n=20128,o={storageKey:"theme",defaultTheme:"light"},l={maxLines:500,pollIntervalMs:1e3}},53599:(e,t,a)=>{a.d(t,{default:()=>o});var r=a(29798),s=a(69221),i=a(18055),n=a(3537);function o({isOpen:e,shuttingDown:t,stopped:a,timedOut:l,onClose:d,onConfirm:c}){let u=t&&!a&&!l;return(0,r.jsx)(n.default,{isOpen:e,onClose:d,title:a?"Server Stopped":l?"Still Running":"Close Proxy",size:"sm",closeOnOverlay:!u,footer:a||l?(0,r.jsx)(i.$,{variant:"default",onClick:d,children:"Close"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.$,{variant:"ghost",onClick:d,disabled:u,children:"Cancel"}),(0,r.jsxs)(i.$,{variant:"destructive",onClick:c,disabled:u,children:[u&&(0,r.jsx)(s.A,{className:"animate-spin"}),u?"Stopping…":"Close"]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:a?"The proxy server has stopped. You can close this tab now.":l?"The server did not stop in time. It may need a manual stop (10router stop).":"Are you sure you want to close the proxy server?"})})}},53784:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(29798);a(15814);var s=a(54366),i=a(5471),n=a(80954);let o=(0,s.F)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function l({className:e,variant:t="default",asChild:a=!1,...s}){let d=a?n.bL:"span";return(0,r.jsx)(d,{"data-slot":"badge","data-variant":t,className:(0,i.cn)(o({variant:t}),e),...s})}},56776:(e,t,a)=>{a.d(t,{default:()=>m});var r=a(29798),s=a(58913),i=a(15814),n=a(88336),o=a(63175),l=a(53599),d=a(18055),c=a(1352),u=a(76120);function m({onLogout:e}){let[t,a]=(0,i.useState)(!1),p=(0,o.c)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(u.rI,{children:[(0,r.jsxs)(c.m_,{children:[(0,r.jsx)(c.k$,{asChild:!0,children:(0,r.jsx)(u.ty,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon","aria-label":"Settings menu",children:(0,r.jsx)(s.default,{name:"settings",className:"size-5"})})})}),(0,r.jsx)(c.ZI,{children:"Settings"})]}),(0,r.jsxs)(u.SQ,{align:"end",className:"w-60",children:[(0,r.jsx)(u.lp,{children:"System"}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{onSelect:()=>a(!0),children:[(0,r.jsx)(s.default,{name:"history",className:"size-4 text-muted-foreground"}),"Change Log"]}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>p.open(),children:[(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),"Shutdown"]}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>e(),children:[(0,r.jsx)(s.default,{name:"logout",className:"size-4"}),"Logout"]})]})]}),(0,r.jsx)(n.default,{isOpen:t,onClose:()=>a(!1)}),(0,r.jsx)(l.default,{isOpen:p.confirmOpen||p.stopped||p.timedOut,onClose:p.reset,onConfirm:p.confirm,shuttingDown:p.shuttingDown,stopped:p.stopped,timedOut:p.timedOut})]})}},58913:(e,t,a)=>{a.d(t,{default:()=>l});var r=a(29798);a(15814);var s=a(36256);let i={add:"Plus",account_circle:"CircleUser",account_tree:"GitFork",api:"Plug",apps:"LayoutGrid",arrow_back:"ArrowLeft",arrow_downward:"ArrowDown",arrow_forward:"ArrowRight",arrow_upward:"ArrowUp",attach_file:"Paperclip",bar_chart:"BarChart3",block:"Ban",bolt:"Zap",business:"Briefcase",cancel:"X",cast:"Cast",chat:"MessageSquare",check:"Check",check_circle:"CheckCircle2",checklist:"ClipboardCheck",chevron_down:"ChevronDown",chevron_left:"ChevronLeft",chevron_right:"ChevronRight",chevron_up:"ChevronUp",close:"X",cloud:"Cloud",cloud_off:"CloudOff",cloud_sync:"CloudSync",cloud_upload:"CloudUpload",code:"Code2",computer:"Monitor",content_copy:"Copy",cookie:"Cookie",dashboard:"LayoutDashboard",data_array:"Table",data_object:"Braces",data_usage:"BarChart3",dark_mode:"Moon",delete:"Trash2",devices:"MonitorSmartphone",dns:"Network",download:"Download",edit:"Pencil",error:"CircleAlert",expand_more:"ChevronDown",extension:"Blocks",file_upload:"UploadCloud",filter_alt_off:"SlidersHorizontal",folder_open:"FolderOpen",gavel:"Scale",graphic_eq:"AudioWaveform",grid_view:"Grid2X2",group:"Users",help:"CircleHelp",history:"History",hourglass_top:"Timer",hub:"Router",image:"Image",image_search:"ScanSearch",info:"Info",input:"FileInput",key:"Key",keyboard_arrow_down:"ArrowDown",keyboard_arrow_up:"ArrowUp",lan:"Layers",language:"Languages",layers:"Layers",legend_toggle:"ListTree",light_mode:"Sun",link:"Link",link_off:"Link2Off",lock:"Lock",lock_open:"LockOpen",logout:"LogOut",menu:"Menu",menu_book:"BookOpen",mic:"Mic",monitoring:"Activity",monitor:"Monitor",movie:"Clapperboard",music_note:"Music",neurology:"Brain",open_in_new:"ExternalLink",output:"FileOutput",pause_circle:"CirclePause",person:"User",play_arrow:"Play",play_circle:"CirclePlay",playlist_add:"ListPlus",power:"Power",power_off:"PowerOff",power_settings_new:"Power",progress_activity:"Loader2",psychology:"BrainCircuit",public:"Earth",qr_code_scanner:"ScanQrCode",record_voice_over:"Mic",refresh:"RefreshCw",restart_alt:"RotateCcw",restore:"RotateCcw",rocket_launch:"Rocket",route:"Route",save:"Save",savings:"PiggyBank",scatter_plot:"ScatterChart",schedule:"Clock",science:"FlaskConical",search:"Search",search_off:"SearchX",security:"ShieldCheck",send:"Send",settings:"Settings",shield:"Shield",shield_lock:"ShieldCheck",shield_with_heart:"HeartPulse",smart_toy:"Bot",star:"Star",stop:"Square",stop_circle:"CircleStop",sync:"RefreshCw",sync_alt:"RefreshCw",terminal:"Terminal",toggle_off:"ToggleLeft",toggle_on:"ToggleRight",translate:"Languages",travel_explore:"Music4",upload:"Upload",upload_file:"UploadCloud",verified:"BadgeCheck",verified_user:"ShieldCheck",visibility:"Eye",visibility_off:"EyeOff",vpn_key:"KeyRound",vpn_lock:"Lock",warning:"TriangleAlert",wifi:"Wifi",wifi_off:"WifiOff",wifi_tethering:"Wifi"};function n(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim().match(/^(\d+(?:\.\d+)?)px$/);if(t)return Number(t[1])}return null}function o({name:e="",className:t,style:a,...l}){let d=s[e]??s[i[e]||String(e).split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e[0].toUpperCase()+e.slice(1)).join("")]??s.Circle,c=function(e=""){let t=String(e).match(/\[(\d+(?:\.\d+)?)px\]/);return t?Number(t[1]):({"text-xs":12,"text-sm":14,"text-base":16,"text-lg":18,"text-xl":20,"text-2xl":24,"text-3xl":30,"text-4xl":36})[String(e).match(/\btext-(xs|sm|base|lg|xl|2xl|3xl|4xl)\b/)?.[0]]||null}(t)??(a&&"object"==typeof a?n(a.width)??n(a.height)??n(a.fontSize):null),u=c?{width:c,height:c}:void 0,m=String(t??"").replace(/\bmaterial-symbols-outlined\b/g,"").replace(/\bfill-1\b/g,"").replace(/\s+/g," ").trim();return(0,r.jsx)(d,{className:m,style:u?{...u,...a}:a,"aria-hidden":"true",...l})}function l({name:e,className:t,style:a}){return(0,r.jsx)(o,{name:e,className:t,style:a})}},63175:(e,t,a)=>{a.d(t,{c:()=>s});var r=a(15814);function s(){let[e,t]=(0,r.useState)(!1),[a,s]=(0,r.useState)(!1),[i,n]=(0,r.useState)(!1),[o,l]=(0,r.useState)(!1),d=(0,r.useRef)([]);(0,r.useEffect)(()=>()=>d.current.forEach(clearTimeout),[]);let c=(0,r.useCallback)(async()=>{let e=Date.now()+15e3;for(;Date.now()<e;){try{if(!(await fetch("/api/health",{cache:"no-store"})).ok)break}catch{break}await new Promise(e=>{let t=setTimeout(e,1e3);d.current.push(t)})}Date.now()>=e-1e3?l(!0):n(!0)},[]),u=(0,r.useCallback)(async()=>{s(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch{}t(!1),c()},[c]),m=(0,r.useCallback)(()=>{l(!1),n(!1),t(!0)},[]),p=(0,r.useCallback)(()=>{t(!1),s(!1),n(!1),l(!1)},[]);return(0,r.useEffect)(()=>{(i||o)&&s(!1)},[i,o]),{confirmOpen:e,shuttingDown:a,stopped:i,timedOut:o,open:m,confirm:u,reset:p}}},63729:(e,t,a)=>{a.d(t,{HY:()=>n,IM:()=>m,Kw:()=>o,uM:()=>u});let r={antigravity:"gemini","perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama","opencode-zen":"opencode"},s=new Set;function i(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function n(e){let t=function(e){let t=i(e);if(!t||s.has(t))return"";let a=r[t]||t;return s.has(a)?"":a}(e);return t?`/providers/${t}.png`:null}function o(e){let t=i(e);t&&s.add(t);let a=r[t];a&&s.add(a)}let l=new Set(["www","api","apis","rest","rpc","gateway","proxy","llm","chat","v1","v2","ai","app","dev","cloud","com","net","org","io","co","us","eu","cn"]),d={generativelanguage:"gemini",googleapis:"gemini",x:"xai"},c=new Set(["agentrouter","alicode","alicode-intl","alims-intl","alitp-intl","amp","anthropic","api-airforce","assemblyai","aws-polly","azure","baidu","bazaarlink","black-forest-labs","blackbox","bluesminds","brave-search","byteplus","cartesia","cerebras","chutes","claude","clinepass","codebuddy-cn","codebuddy-intl","codex","cohere","comfyui","commandcode","continue","coqui","cursor","deepgram","deepseek","deepseek-tui","devin-cli","droid","edge-tts","elevenlabs","exa","fal-ai","featherless","firecrawl","fireworks","fish-audio","gemini","github","gitlab","glm","glm-cn","google-pse","google-tts","grok-cli","grok-web","groq","hermes","huggingface","hyperbolic","iflow","inworld","jcode","jina-ai","jina-reader","kilo-gateway","kilocode","kimchi","linkup","llm7","local-device","longcat","mimo-free","minimax","minimax-cn","mistral","mmf","morph","nanobanana","nebius","novita","nvidia","ollama","ollama-local","openai","openclaw","opencode","opencode-go","opendesign","openrouter","perplexity","perplexity-agent","perplexity-web","playht","poolside","qoder","qwen","recraft","reka","roo","runwayml","sambanova","sdwebui","searchapi","searxng","selfhosted-embedding","selfhosted-stt","selfhosted-tts","serper","siliconflow","stability-ai","tavily","tencent","together","tokenrouter","topaz","tortoise","trae","venice","vercel","vercel-ai-gateway","volcengine-ark","voyage-ai","windsurf","workbuddy","xai","xiaomi-mimo","xiaomi-tokenplan","xquik","youcom","zed"]);function u(e){let t="";try{t=new URL(String(e||"")).hostname.toLowerCase()}catch{return""}if(!t||"localhost"===t||t.startsWith("127.")||t.includes(":")||t.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(t))return"";let a=t.split(".").filter(Boolean).find(e=>!l.has(e)&&!/^\d+$/.test(e));if(!a)return"";let s=d[a]||r[a]||a;return c.has(s)?s:""}function m(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length?1===t.length?t[0].slice(0,2).toUpperCase():`${t[0][0]}${t[t.length-1][0]}`.toUpperCase():""}},72778:(e,t,a)=>{a.d(t,{default:()=>s});var r=a(29798);function s({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-background transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-foreground",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}},76120:(e,t,a)=>{a.d(t,{SQ:()=>l,_2:()=>d,lp:()=>c,mB:()=>u,rI:()=>n,ty:()=>o});var r=a(29798);a(15814);var s=a(5471),i=a(47151);function n({...e}){return(0,r.jsx)(i.bL,{"data-slot":"dropdown-menu",...e})}function o({...e}){return(0,r.jsx)(i.l9,{"data-slot":"dropdown-menu-trigger",...e})}function l({className:e,align:t="start",sideOffset:a=4,...n}){return(0,r.jsx)(i.ZL,{children:(0,r.jsx)(i.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,align:t,className:(0,s.cn)("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n})})}function d({className:e,inset:t,variant:a="default",...n}){return(0,r.jsx)(i.q7,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":a,className:(0,s.cn)("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",e),...n})}function c({className:e,inset:t,...a}){return(0,r.jsx)(i.JU,{"data-slot":"dropdown-menu-label","data-inset":t,className:(0,s.cn)("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:pl-8",e),...a})}function u({className:e,...t}){return(0,r.jsx)(i.wv,{"data-slot":"dropdown-menu-separator",className:(0,s.cn)("-mx-1 my-1 h-px bg-border",e),...t})}},88336:(e,t,a)=>{a.d(t,{default:()=>d});var r=a(29798),s=a(58913),i=a(15814),n=a(62392),o=a(51660),l=a(49787);function d({isOpen:e,onClose:t}){let[a,c]=(0,i.useState)(""),[u,m]=(0,i.useState)(!1),[p,x]=(0,i.useState)(!1),[h,f]=(0,i.useState)("");(0,i.useEffect)(()=>{e&&!a&&(x(!0),f(""),fetch(o.Nu.changelogUrl).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.text()}).then(e=>c(e)).catch(e=>f(e.message||"Failed to load")).finally(()=>x(!1)))},[e,a]);let g=a?a.split(/(?=^## )/m).filter(e=>e.startsWith("## ")):[],b=u?g:g.slice(0,3),v=g.length-b.length,j=b.length?n.xI.parse(b.join("\n")):"";return(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>!e&&t?.(),children:(0,r.jsxs)(l.Cf,{className:"sm:max-w-3xl",children:[(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:"Change Log"})}),(0,r.jsxs)("div",{className:"max-h-[75vh] overflow-y-auto p-6",children:[p&&(0,r.jsxs)("div",{className:"flex items-center justify-center py-10 text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"progress_activity",className:"animate-spin mr-2"}),"Loading..."]}),h&&(0,r.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",h]}),!p&&!h&&j&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"changelog-body text-foreground",dangerouslySetInnerHTML:{__html:j}}),v>0&&(0,r.jsxs)("button",{onClick:()=>m(!0),className:"mt-4 w-full py-2 rounded-lg text-sm font-medium text-foreground bg-black/5 dark:bg-white/5 hover:bg-black/10 dark:hover:bg-white/10 transition-colors",children:["Show ",v," more"]})]})]})]})})}n.xI.setOptions({gfm:!0,breaks:!0})},90046:(e,t,a)=>{a.d(t,{d:()=>r});let r={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-5"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},dsh:{id:"dsh",name:"DSH - DeepSeek Harness",image:"/providers/deepseek.png",color:"#4D6BFE",description:"DeepSeek Harness (dsh web) provider",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]}}},99118:(e,t,a)=>{a.d(t,{E:()=>i});var r=a(29798),s=a(5471);function i({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"skeleton",className:(0,s.cn)("animate-pulse rounded-md bg-muted",e),...t})}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1278],{738:(e,t,a)=>{a.d(t,{A:()=>n});var r=a(29798),s=a(15814),i=a(63729);function n({src:e,providerId:t,alt:a,size:o=32,className:l="",fallbackText:d="?",fallbackColor:c}){let u=function(e,t){if(t)return(0,i.HY)(t);if(!e)return null;let a=String(e).match(/^\/providers\/([^/]+)\.png$/i);return a?(0,i.HY)(a[1]):e}(e,t),[m,p]=(0,s.useState)(!1);return!u||m?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${l}`.trim(),style:{width:o,height:o,color:c,fontSize:Math.max(10,Math.floor(.38*o))},children:d}):(0,r.jsx)("img",{src:u,alt:a,width:o,height:o,className:l,loading:"lazy",decoding:"async",onError:()=>{let e=u.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,i.Kw)(e[1]),t&&(0,i.Kw)(t),p(!0)}})}},3537:(e,t,a)=>{a.d(t,{ConfirmModal:()=>u,default:()=>c});var r=a(29798),s=a(15814),i=a(69221),n=a(13008),o=a(18055),l=a(49787);let d={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"};function c({isOpen:e,onClose:t,title:a,children:i,footer:o,size:u="md",closeOnOverlay:m=!0,className:p}){return(0,s.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>{e||t()},children:(0,r.jsxs)(l.Cf,{className:(0,n.cn)(d[u],p),onPointerDownOutside:m?void 0:e=>e.preventDefault(),onInteractOutside:m?void 0:e=>e.preventDefault(),children:[a&&(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:a})}),(0,r.jsx)("div",{className:"max-h-[calc(85vh-100px)] overflow-y-auto p-4",children:i}),o&&(0,r.jsx)(l.Es,{children:o})]})})}function u({isOpen:e,onClose:t,onConfirm:a,title:s="Confirm",message:n,confirmText:l="Confirm",cancelText:d="Cancel",variant:m="danger",loading:p=!1}){return(0,r.jsx)(c,{isOpen:e,onClose:t,title:s,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$,{variant:"ghost",onClick:t,disabled:p,children:d}),(0,r.jsxs)(o.$,{variant:"danger"===m?"destructive":"primary"===m?"default":m,onClick:a,disabled:p,children:[p&&(0,r.jsx)(i.A,{className:"animate-spin"}),l]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:n})})}},13008:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(5471);function s(...e){return(0,r.cn)(...e)}},16675:(e,t,a)=>{a.d(t,{default:()=>em});var r=a(29798),s=a(58913),i=a(70782),n=a(41671),o=a(42535),l=a(15814),d=a(16653),c=a(50141),u=a.n(c),m=a(51660),p=a(1352),x=a(69221),h=a(53784),f=a(18055),g=a(75669),b=a(49787),v=a(63523),j=a(63175);let w=["docker compose pull","docker compose up -d"],y=["docker pull ghcr.io/amir83nasr/10router:latest","docker stop 10router && docker rm 10router",'docker run -d --name 10router -p 20128:20128 -v "$HOME/.10router:/app/data" -e DATA_DIR=/app/data ghcr.io/amir83nasr/10router:latest'],k=["git pull","pnpm install","pnpm run build && PORT=20128 pnpm run start"];function N({id:e,steps:t}){let{copied:a,copy:i}=(0,v.C)();return(0,r.jsx)("ol",{className:"flex flex-col gap-1.5",children:t.map((t,n)=>{let o=`${e}-${n}`,l=a===o;return(0,r.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-muted text-[11px] font-medium text-muted-foreground",children:n+1}),(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:t}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>i(t,o),"aria-label":`Copy step ${n+1}: ${t}`,children:(0,r.jsx)(s.default,{name:l?"check":"content_copy",className:"size-3.5"})})]},o)})})}function C({title:e,icon:t,id:a,steps:i}){return(0,r.jsxs)("details",{className:"group rounded-lg border border-border",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:t,className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:e}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsx)("div",{className:"px-3 py-2",children:(0,r.jsx)(N,{id:a,steps:i})})]})}function _(){return(0,r.jsxs)("details",{className:"group flex flex-col gap-2 rounded-lg border border-border p-3",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:"terminal",className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:"Other install methods"}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 py-2",children:[(0,r.jsx)(C,{title:"Docker Compose",icon:"lan",id:"compose",steps:w}),(0,r.jsx)(C,{title:"Plain Docker run",icon:"dns",id:"docker",steps:y}),(0,r.jsx)(C,{title:"From source",icon:"code",id:"source",steps:k})]})]})}function S(){let{copied:e,copy:t}=(0,v.C)(),a=(0,j.c)(),i="npm i -g @amir83nasr/10router@latest",n="npm-0",o=e===n;return(0,r.jsxs)(g.Zp,{size:"sm",className:"border-primary/30 bg-primary/5",children:[(0,r.jsx)(g.aR,{children:(0,r.jsxs)(g.ZB,{className:"flex items-center gap-2",children:[(0,r.jsx)(s.default,{name:"upload",className:"size-4 shrink-0 text-primary"}),"npm ",(0,r.jsx)(h.E,{variant:"default",children:"recommended"})]})}),(0,r.jsxs)(g.Wu,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:i}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>t(i,n),"aria-label":`Copy: ${i}`,children:(0,r.jsx)(s.default,{name:o?"check":"content_copy",className:"size-3.5"})})]}),o&&!a.stopped&&!a.timedOut&&(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Copied. Stop the server, paste the command in your terminal, then run"," ",(0,r.jsx)("code",{className:"rounded bg-muted px-1 font-mono",children:"10router start"}),"."]}),(0,r.jsxs)(f.$,{variant:"destructive",size:"sm",className:"self-start",onClick:a.confirm,disabled:a.shuttingDown,children:[a.shuttingDown?(0,r.jsx)(x.A,{className:"animate-spin"}):(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),a.shuttingDown?"Stopping…":"Stop server"]})]}),a.stopped&&(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-xs text-green-600 dark:text-green-400",children:["Server stopped — run the copied command in your terminal, then"," ",(0,r.jsx)("code",{className:"font-mono",children:"10router start"}),"."]}),a.timedOut&&(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-600 dark:text-amber-400",children:["The server did not stop in time — stop it manually (",(0,r.jsx)("code",{className:"font-mono",children:"10router stop"}),"), then run the copied command."]})]})]})}function z({open:e,onOpenChange:t,info:a,checkFailed:i,onRetry:n}){let o=a?a.hasUpdate?(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-600 dark:text-amber-400",children:["New version v",a.latestVersion," available (you run v",a.currentVersion,"). npm is the fastest way — or run the steps for your install method, in order:"]}):(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-sm text-green-600 dark:text-green-400",children:["Up to date — v",a.currentVersion," is the latest."]}):(0,r.jsx)("p",{className:"rounded-lg border border-border bg-muted/50 px-3 py-2 text-sm text-muted-foreground",children:i?"Could not reach npm registry to check for updates — the manual steps below still work.":"Checking for updates…"});return(0,r.jsx)(b.lG,{open:e,onOpenChange:t,children:(0,r.jsxs)(b.Cf,{className:"sm:max-w-lg",children:[(0,r.jsxs)(b.c7,{children:[(0,r.jsx)(b.L3,{children:"Updates"}),(0,r.jsx)(b.rr,{children:a?`Current v${a.currentVersion} \xb7 latest v${a.latestVersion}`:"Compare your version against the latest release"})]}),(0,r.jsxs)("div",{className:"flex max-h-[70vh] flex-col gap-4 overflow-y-auto p-4",children:[o,(0,r.jsx)(S,{}),(0,r.jsx)(_,{})]}),(0,r.jsxs)(b.Es,{children:[(0,r.jsxs)(f.$,{variant:"ghost",onClick:n,children:[(0,r.jsx)(s.default,{name:"refresh",className:"size-4"}),"Check again"]}),(0,r.jsx)(f.$,{variant:"outline",onClick:()=>t(!1),children:"Close"})]})]})})}var O=a(13008);function A({collapsed:e}){let[t,a]=(0,l.useState)(null),[i,n]=(0,l.useState)(!1),[o,d]=(0,l.useState)(!1),c=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/version",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();a({currentVersion:t?.currentVersion??m.vQ.version,latestVersion:t?.latestVersion??m.vQ.version,hasUpdate:!!t?.hasUpdate}),n(!1)}catch{n(!0)}},[]);(0,l.useEffect)(()=>{c();let e=setInterval(c,18e5);return()=>clearInterval(e)},[c]);let u=t?.hasUpdate??!1,x=u?`v${t?.latestVersion} available`:t?`v${t.currentVersion} \xb7 up to date`:`v${m.vQ.version}`,h=e?(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),"aria-label":`Update available. ${x}`,className:"relative mx-auto flex size-8 items-center justify-center rounded-md bg-amber-500/15 text-amber-600 transition-colors hover:bg-amber-500/25 dark:text-amber-400",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute right-1.5 top-1.5 size-1.5 rounded-full bg-amber-500"})]}):(0,r.jsx)("span",{className:"mx-auto flex size-8 items-center justify-center rounded-md text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})})}),(0,r.jsx)(p.ZI,{children:u?`${x} — click to update`:x})]}):u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),className:"flex w-full items-center gap-2 rounded-md bg-amber-500/15 px-1 py-1 text-left transition-colors hover:bg-amber-500/25","aria-label":`Update available. ${x}`,children:[(0,r.jsxs)("span",{className:"relative flex shrink-0 items-center text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute -right-0.5 -top-0.5 size-1.5 rounded-full bg-amber-500"})]}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:"block truncate text-[11px] font-medium text-amber-600 dark:text-amber-400",children:x})]}),(0,r.jsx)(s.default,{name:"chevron_right",className:"size-3.5 shrink-0 text-muted-foreground"})]}):(0,r.jsxs)("div",{className:"flex w-full items-center gap-2 rounded-md px-1 py-1 text-left",children:[(0,r.jsx)("span",{className:"flex shrink-0 items-center text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:(0,O.cn)("block truncate text-[11px] font-medium",i||!t?"text-muted-foreground":"text-green-600 dark:text-green-400"),children:x})]})]});return(0,r.jsxs)(r.Fragment,{children:[h,(0,r.jsx)(z,{open:o&&u,onOpenChange:d,info:t,checkFailed:i,onRetry:c})]})}var L=a(54366),E=a(5471),T=a(80954);a(77345);var P=a(73639);function I({className:e,orientation:t="horizontal",decorative:a=!0,...s}){return(0,r.jsx)(P.b,{"data-slot":"separator",decorative:a,orientation:t,className:(0,E.cn)("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",e),...s})}var $=a(69260),M=a(6403);function D({...e}){return(0,r.jsx)($.bL,{"data-slot":"sheet",...e})}function U({...e}){return(0,r.jsx)($.ZL,{"data-slot":"sheet-portal",...e})}function R({className:e,...t}){return(0,r.jsx)($.hJ,{"data-slot":"sheet-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function F({className:e,children:t,side:a="right",showCloseButton:s=!0,...i}){return(0,r.jsxs)(U,{children:[(0,r.jsx)(R,{}),(0,r.jsxs)($.UC,{"data-slot":"sheet-content","data-side":a,className:(0,E.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10",e),...i,children:[t,s&&(0,r.jsx)($.bm,{"data-slot":"sheet-close",asChild:!0,children:(0,r.jsxs)(f.$,{variant:"ghost",className:"absolute top-4 right-4",size:"icon-sm",children:[(0,r.jsx)(M.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function H({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sheet-header",className:(0,E.cn)("flex flex-col gap-1.5 p-4",e),...t})}function B({className:e,...t}){return(0,r.jsx)($.hE,{"data-slot":"sheet-title",className:(0,E.cn)("font-heading font-medium text-foreground",e),...t})}function V({className:e,...t}){return(0,r.jsx)($.VY,{"data-slot":"sheet-description",className:(0,E.cn)("text-sm text-muted-foreground",e),...t})}a(99118);let q=l.createContext(null);function Q(){let e=l.useContext(q);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function K({defaultOpen:e=!0,open:t,onOpenChange:a,className:s,style:i,children:n,...o}){let d=function(){let[e,t]=l.useState(void 0);return l.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[c,u]=l.useState(!1),[m,p]=l.useState(e),x=t??m,h=l.useCallback(e=>{let t="function"==typeof e?e(x):e;a?a(t):p(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[a,x]),f=l.useCallback(()=>d?u(e=>!e):h(e=>!e),[d,h,u]);l.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),f())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[f]);let g=x?"expanded":"collapsed",b=l.useMemo(()=>({state:g,open:x,setOpen:h,isMobile:d,openMobile:c,setOpenMobile:u,toggleSidebar:f}),[g,x,h,d,c,u,f]);return(0,r.jsx)(q.Provider,{value:b,children:(0,r.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...i},className:(0,E.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),...o,children:n})})}function W({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:s,children:i,dir:n,...o}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=Q();return"none"===a?(0,r.jsx)("div",{"data-slot":"sidebar",className:(0,E.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",s),...o,children:i}):l?(0,r.jsx)(D,{open:c,onOpenChange:u,...o,children:(0,r.jsxs)(F,{dir:n,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,r.jsxs)(H,{className:"sr-only",children:[(0,r.jsx)(B,{children:"Sidebar"}),(0,r.jsx)(V,{children:"Displays the mobile sidebar."})]}),(0,r.jsx)("div",{className:"flex h-full w-full flex-col",children:i})]})}):(0,r.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[(0,r.jsx)("div",{"data-slot":"sidebar-gap",className:(0,E.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,r.jsx)("div",{"data-slot":"sidebar-container","data-side":e,className:(0,E.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",s),...o,children:(0,r.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full min-w-0 flex-col overflow-x-hidden bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:i})})]})}function Z({className:e,...t}){return(0,r.jsx)("main",{"data-slot":"sidebar-inset",className:(0,E.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...t})}function G({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function Y({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function X({className:e,...t}){return(0,r.jsx)(I,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,E.cn)("mx-2 w-auto bg-sidebar-border",e),...t})}function J({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,E.cn)("flex min-h-0 w-full min-w-0 flex-1 flex-col gap-2 overflow-x-hidden overflow-y-auto group-data-[collapsible=icon]:overflow-hidden",e),...t})}function ee({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,E.cn)("relative flex w-full min-w-0 flex-col p-2",e),...t})}function et({className:e,asChild:t=!1,...a}){let s=t?T.bL:"div";return(0,r.jsx)(s,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,E.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",e),...a})}function ea({className:e,...t}){return(0,r.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,E.cn)("flex w-full min-w-0 flex-col gap-1",e),...t})}function er({className:e,...t}){return(0,r.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,E.cn)("group/menu-item relative",e),...t})}let es=(0,L.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function ei({asChild:e=!1,isActive:t=!1,variant:a="default",size:s="default",tooltip:i,className:n,...o}){let l=e?T.bL:"button",{isMobile:d,state:c}=Q(),u=(0,r.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":s,"data-active":t,className:(0,E.cn)(es({variant:a,size:s}),n),...o});return i?("string"==typeof i&&(i={children:i}),(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u}),(0,r.jsx)(p.ZI,{side:"right",align:"center",hidden:"collapsed"!==c||d,...i})]})):u}let en=[{id:"endpoint",href:"/dashboard",label:"Endpoint & Key",icon:"api",match:e=>"/dashboard"===e||e.startsWith("/dashboard/endpoint")},{id:"providers",href:"/dashboard/providers",label:"Providers",icon:"dns"},{id:"combos",href:"/dashboard/combos",label:"Combo",icon:"layers"},{id:"usage",href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{id:"token-saver",href:"/dashboard/token-saver",label:"Token Saver",icon:"scissors"},{id:"cli-tools",href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"},{id:"systemone",href:"/dashboard/media-providers/systemone",label:"System One",icon:"bolt"}],eo=[{id:"proxy-pools",href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"waypoints"}],el=[{id:"profile",href:"/dashboard/profile",label:"Settings",icon:"settings"}];function ed({item:e}){var t;let a=(t=(0,i.usePathname)(),e.match?e.match(t):"/dashboard/profile"===e.href?"/dashboard/profile"===t:t.startsWith(e.href));return(0,r.jsx)(er,{children:(0,r.jsx)(ei,{asChild:!0,isActive:a,children:(0,r.jsxs)(u(),{href:e.href,className:"gap-3",children:[(0,r.jsx)(s.default,{name:e.icon,className:"text-[18px]"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]})})})}function ec({...e}){(0,i.usePathname)();let{state:t}=Q(),a="collapsed"===t;return(0,r.jsxs)(W,{...e,children:[(0,r.jsx)(G,{className:"h-20 justify-center border-b border-sidebar-border px-4",children:(0,r.jsxs)(u(),{href:"/dashboard",className:"flex min-w-0 items-center gap-3",children:[(0,r.jsx)(d.default,{src:"/icons/icon.svg",alt:"10Router logo",width:36,height:36,className:"size-9 rounded-[10px] shrink-0"}),!a&&(0,r.jsxs)("div",{className:"flex min-w-0 flex-col leading-tight",children:[(0,r.jsx)("span",{className:"truncate text-lg font-semibold tracking-tight text-foreground",children:m.vQ.name}),(0,r.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:["v",m.vQ.version]})]})]})}),(0,r.jsxs)(J,{className:"pt-2",children:[(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"Overview"}),(0,r.jsx)(ea,{children:en.map(e=>(0,r.jsx)(ed,{item:e},e.id))})]}),(0,r.jsx)(X,{}),(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"System"}),(0,r.jsxs)(ea,{children:[eo.map(e=>(0,r.jsx)(ed,{item:e},e.id)),el.map(e=>(0,r.jsx)(ed,{item:e},e.id))]})]})]}),(0,r.jsx)(Y,{className:"border-t border-sidebar-border p-4",children:(0,r.jsx)(A,{collapsed:a})})]})}function eu({children:e}){let t=(0,i.usePathname)(),a=(0,n.i)(e=>e.notifications),l=(0,n.i)(e=>e.removeNotification),{toggleSidebar:d}=Q();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2",children:a.map(e=>{var t;let a="success"===(t=e.type)?{wrapper:"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400",icon:"check_circle"}:"error"===t?{wrapper:"border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",icon:"error"}:"warning"===t?{wrapper:"border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400",icon:"warning"}:{wrapper:"border-blue-500/30 bg-blue-500/10 text-blue-600 dark:text-blue-400",icon:"info"};return(0,r.jsx)("div",{className:`rounded-lg border px-3 py-2 shadow-lg backdrop-blur-sm ${a.wrapper}`,children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(s.default,{name:a.icon,className:"text-[18px] leading-5"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[e.title?(0,r.jsx)("p",{className:"text-xs font-semibold mb-0.5",children:e.title}):null,(0,r.jsx)("p",{className:"text-xs whitespace-pre-wrap break-words",children:e.message})]}),e.dismissible?(0,r.jsx)("button",{type:"button",onClick:()=>l(e.id),className:"text-current/70 hover:text-current","aria-label":"Dismiss notification",children:(0,r.jsx)(s.default,{name:"close",className:"text-[16px]"})}):null]})},e.id)})}),(0,r.jsx)(ec,{}),(0,r.jsxs)(Z,{className:"flex flex-col h-full min-w-0 relative transition-colors duration-300 isolate",children:[(0,r.jsx)(o.default,{onMenuClick:d},t),(0,r.jsx)("div",{className:`dashboard-grid-bg flex-1 overflow-y-auto ${"/dashboard/basic-chat"===t?"":"p-6 lg:p-10"} ${"/dashboard/basic-chat"===t?"flex flex-col overflow-hidden":""}`,children:(0,r.jsx)("div",{className:`${"/dashboard/basic-chat"===t?"flex-1 w-full h-full flex flex-col":"max-w-7xl mx-auto"}`,children:e})})]})]})}function em({children:e}){return(0,r.jsx)(K,{children:(0,r.jsx)("div",{className:"flex h-screen w-full overflow-hidden bg-background",children:(0,r.jsx)(eu,{children:e})})})}},29575:(e,t,a)=>{a.d(t,{CardGrid:()=>p,Page:()=>c,PageHeader:()=>u,Section:()=>m});var r=a(29798),s=a(50141),i=a.n(s),n=a(13008),o=a(18055),l=a(58913);let d={default:"",narrow:"mx-auto w-full max-w-2xl",wide:"mx-auto w-full max-w-5xl"};function c({children:e,width:t="default",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("flex min-w-0 flex-col gap-6",d[t],a),children:e})}function u({title:e,description:t,actions:a,backHref:s,backLabel:d,className:c}){let m=null!=a;return(0,r.jsxs)("div",{className:(0,n.cn)(c),children:[s?(0,r.jsx)(o.$,{variant:"outline",size:"sm",asChild:!0,className:"mb-4 self-start",children:(0,r.jsxs)(i(),{href:s,children:[(0,r.jsx)(l.default,{name:"arrow_back",className:"text-lg"}),d??"Back"]})}):null,(0,r.jsxs)("div",{className:(0,n.cn)("flex flex-col gap-3",m&&"sm:flex-row sm:items-center sm:justify-between"),children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold tracking-tight sm:text-3xl",children:e}),t?(0,r.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t}):null]}),m?(0,r.jsx)("div",{className:"grid shrink-0 grid-cols-1 gap-2 sm:flex sm:items-center",children:a}):null]})]})}function m({title:e,actions:t,children:a,className:s}){let i=void 0!==e||void 0!==t;return(0,r.jsxs)("section",{className:(0,n.cn)("flex min-w-0 flex-col gap-4",s),children:[i?(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e?(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight sm:text-xl",children:e}):(0,r.jsx)("span",{}),t?(0,r.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto sm:items-center",children:t}):null]}):null,a]})}function p({children:e,variant:t="cards",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("grid min-w-0 grid-cols-1 gap-3 sm:gap-4","cards"===t&&"sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","stat"===t&&"sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5",a),children:e})}},41671:(e,t,a)=>{a.d(t,{i:()=>i});var r=a(58013);let s=0,i=(0,r.v)((e,t)=>({notifications:[],addNotification:a=>{let r=++s,i={id:r,type:a.type||"info",message:a.message,title:a.title||null,duration:a.duration??5e3,dismissible:a.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,i]})),i.duration>0&&setTimeout(()=>t().removeNotification(r),i.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,a)=>t().addNotification({type:"success",message:e,title:a}),error:(e,a)=>t().addNotification({type:"error",message:e,title:a,duration:8e3}),warning:(e,a)=>t().addNotification({type:"warning",message:e,title:a}),info:(e,a)=>t().addNotification({type:"info",message:e,title:a})}))},42535:(e,t,a)=>{a.d(t,{default:()=>w});var r=a(29798),s=a(58913),i=a(15814),n=a(70782),o=a(50141),l=a.n(o),d=a(738),c=a(56776);let u=(0,a(58013).v)(e=>({query:"",placeholder:"",visible:!1,setQuery:t=>e({query:t}),register:(t="Search...")=>e({visible:!0,placeholder:t,query:""}),unregister:()=>e({visible:!1,placeholder:"",query:""})}));var m=a(51660),p=a(13794),x=a(90046),h=a(63729),f=a(51780),g=a(53784),b=a(18055),v=a(77345),j=a(1352);function w({onMenuClick:e,showMenuButton:t=!0}){let a=(0,n.usePathname)(),[o,u]=(0,i.useState)(""),[b,v]=(0,i.useState)(""),{title:k,description:N,icon:C,breadcrumbs:_}=(0,i.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/providers\/([^/]+)$/);if(t){let e=t[1],a=m.zN[e]||m.fg[e];if(a)return{title:a.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:a.name,image:(0,h.HY)(a.id)}]}}let a=e.match(/\/media-providers\/systemone\/([^/]+)$/);if(a){let e=decodeURIComponent(a[1]),t=p.Q2[e]||Object.values(p.Q2).find(t=>t.alias===e);if(t)return{title:t.name,description:"",breadcrumbs:[{label:"System One",href:"/dashboard/media-providers/systemone"},{label:t.name,image:(0,h.HY)(t.id)}]}}let r=e.match(/\/cli-tools\/([^/]+)$/);if(r){let e=decodeURIComponent(r[1]),t=x.d[e];if(t)return{title:t.name,description:"",breadcrumbs:[{label:"CLI Tools",href:"/dashboard/cli-tools"},{label:t.name,image:t.image}]}}return e.includes("/media-providers/systemone")?{title:"System One",description:"Decision models — native POST /v1/systemone endpoint",icon:"bolt",breadcrumbs:[]}:e.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:e.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:e.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:e.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"scissors",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:e.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"waypoints",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(a),[a]);(0,i.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/auth/status",{cache:"no-store"});if(!t.ok)return;let a=await t.json();e||(u(a?.displayName||a?.samlName||a?.samlEmail||a?.oidcName||a?.oidcEmail||""),v(a?.loginMethod||""))}catch{e||(u(""),v(""))}}(),()=>{e=!0}},[]);let S=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"sticky top-0 flex h-20 shrink-0 items-center justify-between gap-3 px-4 lg:px-8 border-b border-border bg-card/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-foreground hover:text-primary transition-colors",children:(0,r.jsx)(s.default,{name:"menu",className:""})})}),(0,r.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:_.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:_.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)(s.default,{name:"chevron_right",className:"text-muted-foreground text-base"}),e.href?(0,r.jsx)(l(),{href:e.href,className:"text-muted-foreground hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(d.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-foreground tracking-tight truncate",children:(0,f.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):k?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[C&&(0,r.jsx)(s.default,{name:C,className:"text-primary text-xl lg:text-2xl"}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,f.Tl)(k)})]}),N&&(0,r.jsx)("p",{className:"hidden lg:block text-sm text-muted-foreground truncate",children:(0,f.Tl)(N)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[o&&("OIDC"===b||"SAML"===b)&&(0,r.jsxs)(j.m_,{children:[(0,r.jsx)(j.k$,{asChild:!0,children:(0,r.jsxs)(g.E,{variant:"secondary",className:"hidden max-w-55 sm:inline-flex",children:[(0,r.jsx)(s.default,{name:"person",className:"size-3.5 text-primary"}),(0,r.jsx)("span",{className:"truncate",children:o}),(0,r.jsx)("span",{className:"shrink-0 rounded-full bg-primary/10 px-1.5 py-px text-[10px] font-semibold uppercase tracking-wide text-primary",children:b})]})}),(0,r.jsx)(j.ZI,{children:o})]}),(0,r.jsx)(y,{}),(0,r.jsx)(c.default,{onLogout:S})]})]})}function y(){let e=u(e=>e.visible),t=u(e=>e.query),a=u(e=>e.placeholder),i=u(e=>e.setQuery);return e?(0,r.jsxs)("div",{className:"relative w-40 sm:w-55",children:[(0,r.jsx)(s.default,{name:"search",className:"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground size-4 pointer-events-none"}),(0,r.jsx)(v.p,{type:"text",value:t,onChange:e=>i(e.target.value),placeholder:a,className:"h-8 pl-7 pr-7"}),t&&(0,r.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>i(""),className:"absolute right-1 top-1/2 -translate-y-1/2","aria-label":"Clear search",children:(0,r.jsx)(s.default,{name:"close",className:"size-4"})})]}):null}},51660:(e,t,a)=>{a.d(t,{Q2:()=>r.Q2,fg:()=>r.fg,vQ:()=>s,_$:()=>n,MA:()=>r.MA,UY:()=>l,Nu:()=>i,zN:()=>r.zN,B2:()=>o});var r=a(13794);a(80159);let s={name:"10Router Proxy",description:"AI Infrastructure Management",version:"0.1.9"},i={changelogUrl:"/api/changelog"},n=20128,o={storageKey:"theme",defaultTheme:"light"},l={maxLines:500,pollIntervalMs:1e3}},53599:(e,t,a)=>{a.d(t,{default:()=>o});var r=a(29798),s=a(69221),i=a(18055),n=a(3537);function o({isOpen:e,shuttingDown:t,stopped:a,timedOut:l,onClose:d,onConfirm:c}){let u=t&&!a&&!l;return(0,r.jsx)(n.default,{isOpen:e,onClose:d,title:a?"Server Stopped":l?"Still Running":"Close Proxy",size:"sm",closeOnOverlay:!u,footer:a||l?(0,r.jsx)(i.$,{variant:"default",onClick:d,children:"Close"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.$,{variant:"ghost",onClick:d,disabled:u,children:"Cancel"}),(0,r.jsxs)(i.$,{variant:"destructive",onClick:c,disabled:u,children:[u&&(0,r.jsx)(s.A,{className:"animate-spin"}),u?"Stopping…":"Close"]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:a?"The proxy server has stopped. You can close this tab now.":l?"The server did not stop in time. It may need a manual stop (10router stop).":"Are you sure you want to close the proxy server?"})})}},53784:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(29798);a(15814);var s=a(54366),i=a(5471),n=a(80954);let o=(0,s.F)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function l({className:e,variant:t="default",asChild:a=!1,...s}){let d=a?n.bL:"span";return(0,r.jsx)(d,{"data-slot":"badge","data-variant":t,className:(0,i.cn)(o({variant:t}),e),...s})}},56776:(e,t,a)=>{a.d(t,{default:()=>m});var r=a(29798),s=a(58913),i=a(15814),n=a(88336),o=a(63175),l=a(53599),d=a(18055),c=a(1352),u=a(76120);function m({onLogout:e}){let[t,a]=(0,i.useState)(!1),p=(0,o.c)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(u.rI,{children:[(0,r.jsxs)(c.m_,{children:[(0,r.jsx)(c.k$,{asChild:!0,children:(0,r.jsx)(u.ty,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon","aria-label":"Settings menu",children:(0,r.jsx)(s.default,{name:"settings",className:"size-5"})})})}),(0,r.jsx)(c.ZI,{children:"Settings"})]}),(0,r.jsxs)(u.SQ,{align:"end",className:"w-60",children:[(0,r.jsx)(u.lp,{children:"System"}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{onSelect:()=>a(!0),children:[(0,r.jsx)(s.default,{name:"history",className:"size-4 text-muted-foreground"}),"Change Log"]}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>p.open(),children:[(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),"Shutdown"]}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>e(),children:[(0,r.jsx)(s.default,{name:"logout",className:"size-4"}),"Logout"]})]})]}),(0,r.jsx)(n.default,{isOpen:t,onClose:()=>a(!1)}),(0,r.jsx)(l.default,{isOpen:p.confirmOpen||p.stopped||p.timedOut,onClose:p.reset,onConfirm:p.confirm,shuttingDown:p.shuttingDown,stopped:p.stopped,timedOut:p.timedOut})]})}},58913:(e,t,a)=>{a.d(t,{default:()=>l});var r=a(29798);a(15814);var s=a(36256);let i={add:"Plus",account_circle:"CircleUser",account_tree:"GitFork",api:"Plug",apps:"LayoutGrid",arrow_back:"ArrowLeft",arrow_downward:"ArrowDown",arrow_forward:"ArrowRight",arrow_upward:"ArrowUp",attach_file:"Paperclip",bar_chart:"BarChart3",block:"Ban",bolt:"Zap",business:"Briefcase",cancel:"X",cast:"Cast",chat:"MessageSquare",check:"Check",check_circle:"CheckCircle2",checklist:"ClipboardCheck",chevron_down:"ChevronDown",chevron_left:"ChevronLeft",chevron_right:"ChevronRight",chevron_up:"ChevronUp",close:"X",cloud:"Cloud",cloud_off:"CloudOff",cloud_sync:"CloudSync",cloud_upload:"CloudUpload",code:"Code2",computer:"Monitor",content_copy:"Copy",cookie:"Cookie",dashboard:"LayoutDashboard",data_array:"Table",data_object:"Braces",data_usage:"BarChart3",dark_mode:"Moon",delete:"Trash2",devices:"MonitorSmartphone",dns:"Network",download:"Download",edit:"Pencil",error:"CircleAlert",expand_more:"ChevronDown",extension:"Blocks",file_upload:"UploadCloud",filter_alt_off:"SlidersHorizontal",folder_open:"FolderOpen",gavel:"Scale",graphic_eq:"AudioWaveform",grid_view:"Grid2X2",group:"Users",help:"CircleHelp",history:"History",hourglass_top:"Timer",hub:"Router",image:"Image",image_search:"ScanSearch",info:"Info",input:"FileInput",key:"Key",keyboard_arrow_down:"ArrowDown",keyboard_arrow_up:"ArrowUp",lan:"Layers",language:"Languages",layers:"Layers",legend_toggle:"ListTree",light_mode:"Sun",link:"Link",link_off:"Link2Off",lock:"Lock",lock_open:"LockOpen",logout:"LogOut",menu:"Menu",menu_book:"BookOpen",mic:"Mic",monitoring:"Activity",monitor:"Monitor",movie:"Clapperboard",music_note:"Music",neurology:"Brain",open_in_new:"ExternalLink",output:"FileOutput",pause_circle:"CirclePause",person:"User",play_arrow:"Play",play_circle:"CirclePlay",playlist_add:"ListPlus",power:"Power",power_off:"PowerOff",power_settings_new:"Power",progress_activity:"Loader2",psychology:"BrainCircuit",public:"Earth",qr_code_scanner:"ScanQrCode",record_voice_over:"Mic",refresh:"RefreshCw",restart_alt:"RotateCcw",restore:"RotateCcw",rocket_launch:"Rocket",route:"Route",save:"Save",savings:"PiggyBank",scatter_plot:"ScatterChart",schedule:"Clock",science:"FlaskConical",search:"Search",search_off:"SearchX",security:"ShieldCheck",send:"Send",settings:"Settings",shield:"Shield",shield_lock:"ShieldCheck",shield_with_heart:"HeartPulse",smart_toy:"Bot",star:"Star",stop:"Square",stop_circle:"CircleStop",sync:"RefreshCw",sync_alt:"RefreshCw",terminal:"Terminal",toggle_off:"ToggleLeft",toggle_on:"ToggleRight",translate:"Languages",travel_explore:"Music4",upload:"Upload",upload_file:"UploadCloud",verified:"BadgeCheck",verified_user:"ShieldCheck",visibility:"Eye",visibility_off:"EyeOff",vpn_key:"KeyRound",vpn_lock:"Lock",warning:"TriangleAlert",wifi:"Wifi",wifi_off:"WifiOff",wifi_tethering:"Wifi"};function n(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim().match(/^(\d+(?:\.\d+)?)px$/);if(t)return Number(t[1])}return null}function o({name:e="",className:t,style:a,...l}){let d=s[e]??s[i[e]||String(e).split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e[0].toUpperCase()+e.slice(1)).join("")]??s.Circle,c=function(e=""){let t=String(e).match(/\[(\d+(?:\.\d+)?)px\]/);return t?Number(t[1]):({"text-xs":12,"text-sm":14,"text-base":16,"text-lg":18,"text-xl":20,"text-2xl":24,"text-3xl":30,"text-4xl":36})[String(e).match(/\btext-(xs|sm|base|lg|xl|2xl|3xl|4xl)\b/)?.[0]]||null}(t)??(a&&"object"==typeof a?n(a.width)??n(a.height)??n(a.fontSize):null),u=c?{width:c,height:c}:void 0,m=String(t??"").replace(/\bmaterial-symbols-outlined\b/g,"").replace(/\bfill-1\b/g,"").replace(/\s+/g," ").trim();return(0,r.jsx)(d,{className:m,style:u?{...u,...a}:a,"aria-hidden":"true",...l})}function l({name:e,className:t,style:a}){return(0,r.jsx)(o,{name:e,className:t,style:a})}},63175:(e,t,a)=>{a.d(t,{c:()=>s});var r=a(15814);function s(){let[e,t]=(0,r.useState)(!1),[a,s]=(0,r.useState)(!1),[i,n]=(0,r.useState)(!1),[o,l]=(0,r.useState)(!1),d=(0,r.useRef)([]);(0,r.useEffect)(()=>()=>d.current.forEach(clearTimeout),[]);let c=(0,r.useCallback)(async()=>{let e=Date.now()+15e3;for(;Date.now()<e;){try{if(!(await fetch("/api/health",{cache:"no-store"})).ok)break}catch{break}await new Promise(e=>{let t=setTimeout(e,1e3);d.current.push(t)})}s(!1),Date.now()>=e-1e3?l(!0):n(!0)},[]),u=(0,r.useCallback)(async()=>{s(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch{}t(!1),c()},[c]);return{confirmOpen:e,shuttingDown:a,stopped:i,timedOut:o,open:(0,r.useCallback)(()=>{l(!1),n(!1),t(!0)},[]),confirm:u,reset:(0,r.useCallback)(()=>{t(!1),s(!1),n(!1),l(!1)},[])}}},63729:(e,t,a)=>{a.d(t,{HY:()=>n,IM:()=>m,Kw:()=>o,uM:()=>u});let r={antigravity:"gemini","perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama","opencode-zen":"opencode"},s=new Set;function i(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function n(e){let t=function(e){let t=i(e);if(!t||s.has(t))return"";let a=r[t]||t;return s.has(a)?"":a}(e);return t?`/providers/${t}.png`:null}function o(e){let t=i(e);t&&s.add(t);let a=r[t];a&&s.add(a)}let l=new Set(["www","api","apis","rest","rpc","gateway","proxy","llm","chat","v1","v2","ai","app","dev","cloud","com","net","org","io","co","us","eu","cn"]),d={generativelanguage:"gemini",googleapis:"gemini",x:"xai"},c=new Set(["agentrouter","alicode","alicode-intl","alims-intl","alitp-intl","amp","anthropic","api-airforce","assemblyai","aws-polly","azure","baidu","bazaarlink","black-forest-labs","blackbox","bluesminds","brave-search","byteplus","cartesia","cerebras","chutes","claude","clinepass","codebuddy-cn","codebuddy-intl","codex","cohere","comfyui","commandcode","continue","coqui","cursor","deepgram","deepseek","deepseek-tui","devin-cli","droid","edge-tts","elevenlabs","exa","fal-ai","featherless","firecrawl","fireworks","fish-audio","gemini","github","gitlab","glm","glm-cn","google-pse","google-tts","grok-cli","grok-web","groq","hermes","huggingface","hyperbolic","iflow","inworld","jcode","jina-ai","jina-reader","kilo-gateway","kilocode","kimchi","linkup","llm7","local-device","longcat","mimo-free","minimax","minimax-cn","mistral","mmf","morph","nanobanana","nebius","novita","nvidia","ollama","ollama-local","openai","openclaw","opencode","opencode-go","opendesign","openrouter","perplexity","perplexity-agent","perplexity-web","playht","poolside","qoder","qwen","recraft","reka","roo","runwayml","sambanova","sdwebui","searchapi","searxng","selfhosted-embedding","selfhosted-stt","selfhosted-tts","serper","siliconflow","stability-ai","tavily","tencent","together","tokenrouter","topaz","tortoise","trae","venice","vercel","vercel-ai-gateway","volcengine-ark","voyage-ai","windsurf","workbuddy","xai","xiaomi-mimo","xiaomi-tokenplan","xquik","youcom","zed"]);function u(e){let t="";try{t=new URL(String(e||"")).hostname.toLowerCase()}catch{return""}if(!t||"localhost"===t||t.startsWith("127.")||t.includes(":")||t.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(t))return"";let a=t.split(".").filter(Boolean).find(e=>!l.has(e)&&!/^\d+$/.test(e));if(!a)return"";let s=d[a]||r[a]||a;return c.has(s)?s:""}function m(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length?1===t.length?t[0].slice(0,2).toUpperCase():`${t[0][0]}${t[t.length-1][0]}`.toUpperCase():""}},72778:(e,t,a)=>{a.d(t,{default:()=>s});var r=a(29798);function s({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-background transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-foreground",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}},76120:(e,t,a)=>{a.d(t,{SQ:()=>l,_2:()=>d,lp:()=>c,mB:()=>u,rI:()=>n,ty:()=>o});var r=a(29798);a(15814);var s=a(5471),i=a(47151);function n({...e}){return(0,r.jsx)(i.bL,{"data-slot":"dropdown-menu",...e})}function o({...e}){return(0,r.jsx)(i.l9,{"data-slot":"dropdown-menu-trigger",...e})}function l({className:e,align:t="start",sideOffset:a=4,...n}){return(0,r.jsx)(i.ZL,{children:(0,r.jsx)(i.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,align:t,className:(0,s.cn)("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n})})}function d({className:e,inset:t,variant:a="default",...n}){return(0,r.jsx)(i.q7,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":a,className:(0,s.cn)("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",e),...n})}function c({className:e,inset:t,...a}){return(0,r.jsx)(i.JU,{"data-slot":"dropdown-menu-label","data-inset":t,className:(0,s.cn)("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:pl-8",e),...a})}function u({className:e,...t}){return(0,r.jsx)(i.wv,{"data-slot":"dropdown-menu-separator",className:(0,s.cn)("-mx-1 my-1 h-px bg-border",e),...t})}},88336:(e,t,a)=>{a.d(t,{default:()=>d});var r=a(29798),s=a(58913),i=a(15814),n=a(62392),o=a(51660),l=a(49787);function d({isOpen:e,onClose:t}){let[a,c]=(0,i.useState)(""),[u,m]=(0,i.useState)(!1),[p,x]=(0,i.useState)(!1),[h,f]=(0,i.useState)("");(0,i.useEffect)(()=>{e&&!a&&(x(!0),f(""),fetch(o.Nu.changelogUrl).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.text()}).then(e=>c(e)).catch(e=>f(e.message||"Failed to load")).finally(()=>x(!1)))},[e,a]);let g=a?a.split(/(?=^## )/m).filter(e=>e.startsWith("## ")):[],b=u?g:g.slice(0,3),v=g.length-b.length,j=b.length?n.xI.parse(b.join("\n")):"";return(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>!e&&t?.(),children:(0,r.jsxs)(l.Cf,{className:"sm:max-w-3xl",children:[(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:"Change Log"})}),(0,r.jsxs)("div",{className:"max-h-[75vh] overflow-y-auto p-6",children:[p&&(0,r.jsxs)("div",{className:"flex items-center justify-center py-10 text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"progress_activity",className:"animate-spin mr-2"}),"Loading..."]}),h&&(0,r.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",h]}),!p&&!h&&j&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"changelog-body text-foreground",dangerouslySetInnerHTML:{__html:j}}),v>0&&(0,r.jsxs)("button",{onClick:()=>m(!0),className:"mt-4 w-full py-2 rounded-lg text-sm font-medium text-foreground bg-black/5 dark:bg-white/5 hover:bg-black/10 dark:hover:bg-white/10 transition-colors",children:["Show ",v," more"]})]})]})]})})}n.xI.setOptions({gfm:!0,breaks:!0})},90046:(e,t,a)=>{a.d(t,{d:()=>r});let r={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-5"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},dsh:{id:"dsh",name:"DSH - DeepSeek Harness",image:"/providers/deepseek.png",color:"#4D6BFE",description:"DeepSeek Harness (dsh web) provider",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]}}},99118:(e,t,a)=>{a.d(t,{E:()=>i});var r=a(29798),s=a(5471);function i({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"skeleton",className:(0,s.cn)("animate-pulse rounded-md bg-muted",e),...t})}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1830],{31830:(n,e,t)=>{t.d(e,{ad:()=>u,gH:()=>a});let i={gh:{"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75}},tokenrouter:{"MiniMax-M3":{input:.3,output:1.2,cached:.06,reasoning:1.2},"anthropic/claude-fable-5":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-haiku-4.5":{input:1,output:5,cached:.1,cache_creation:1.25,reasoning:5},"anthropic/claude-opus-4.5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.6":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7-fast":{input:30,output:150,cached:3,reasoning:150},"anthropic/claude-opus-4.8":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.8-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-opus-5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-5-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-sonnet-4":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.5":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.6":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-5":{input:2,output:10,cached:.2,reasoning:10},"claude-opus-4-8-m-aws":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"deepseek/deepseek-v3.2":{input:.26,output:.38,cached:.13,reasoning:.38},"deepseek/deepseek-v4-flash":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-flash-0731":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-pro":{input:.435,output:.87,cached:.003625,reasoning:.87},"ex/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"google/gemini-2.5-flash-image":{input:.3,output:2.5,reasoning:2.5},"google/gemini-3-flash-preview":{input:.5,output:3,cached:.05,cache_creation:.08333,reasoning:3},"google/gemini-3-pro-image-preview":{input:2,output:12,reasoning:12},"google/gemini-3.1-flash-image-preview":{input:.5,output:3,reasoning:3},"google/gemini-3.1-flash-lite-image":{input:.25,output:1.5,reasoning:1.5},"google/gemini-3.1-pro-preview":{input:2,output:12,cached:.2,cache_creation:.375,reasoning:12},"google/gemini-3.5-flash":{input:1.5,output:9,cached:.15,cache_creation:.08333,reasoning:9},"google/gemini-3.5-flash-lite":{input:.3,output:2.5,cached:.03,cache_creation:.08333,reasoning:2.5},"google/gemini-3.6-flash":{input:1.5,output:7.5,cached:.15,cache_creation:.08333,reasoning:7.5},"google/gemini-embedding-2":{input:1,output:6,cached:.1,reasoning:6},"google/gemma-4-26b-a4b-it":{input:.06,output:.33,reasoning:.33},"kling-3.0-turbo":{input:2.1,output:2.1,reasoning:2.1},"microsoft/mai-image-2.5":{input:5,output:47,reasoning:47},"minimax/minimax-m2-her":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"minimax/minimax-m2.5":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.7":{input:.3,output:1.2,cached:.06,reasoning:1.2},"minimax/minimax-m2.7-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"miromind/mirothinker-1-7-deepresearch":{input:4,output:25,reasoning:25},"miromind/mirothinker-1-7-deepresearch-mini":{input:1.25,output:10,reasoning:10},"mistralai/devstral-2512":{input:.4,output:2,cached:.04,reasoning:2},"mistralai/mistral-medium-3-5":{input:1.5,output:7.5,reasoning:7.5},"mistralai/mistral-small-2603":{input:.15,output:.6,cached:.015,reasoning:.6},"mistralai/voxtral-small-24b-2507":{input:.1,output:.3,cached:.01,reasoning:.3},"moonshotai/kimi-k2.5":{input:.6,output:3,cached:.1,reasoning:3},"moonshotai/kimi-k2.6":{input:.95,output:4,cached:.16,reasoning:4},"moonshotai/kimi-k2.7-code":{input:.9286,output:3.8571,cached:.1857,reasoning:3.8571},"moonshotai/kimi-k3":{input:3,output:15,cached:.3,reasoning:15},"nvidia/nemotron-3-super-120b-a12b":{input:.3,output:.9,cached:.1,reasoning:.9},"openai/gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.6},"openai/gpt-5":{input:1.25,output:10,cached:.125,reasoning:10},"openai/gpt-5-image":{input:10,output:40,cached:2.5,reasoning:40},"openai/gpt-5-image-mini":{input:2.5,output:8,cached:.25,reasoning:8},"openai/gpt-5-mini":{input:.25,output:2,cached:.025,reasoning:2},"openai/gpt-5.2":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"openai/gpt-5.4-image-2":{input:8,output:30,cached:2,reasoning:30},"openai/gpt-5.4-mini":{input:.75,output:4.5,cached:.075,reasoning:4.5},"openai/gpt-5.4-nano":{input:.2,output:1.25,cached:.02,reasoning:1.25},"openai/gpt-5.4-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.5":{input:5,output:30,cached:.5,reasoning:30},"openai/gpt-5.5-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.6-luna":{input:.2,output:1.2,cached:.02,cache_creation:.25,reasoning:1.2},"openai/gpt-5.6-sol":{input:5,output:30,cached:.5,cache_creation:6.25,reasoning:30},"openai/gpt-5.6-terra":{input:2,output:12,cached:.2,cache_creation:2.5,reasoning:12},"openai/gpt-audio":{input:2.5,output:10,reasoning:10},"openai/gpt-audio-mini":{input:.6,output:2.4,reasoning:2.4},"openai/gpt-oss-120b":{input:.039,output:.18,reasoning:.18},"qwen/qwen3-coder-next":{input:.12,output:.75,cached:.06,reasoning:.75},"qwen/qwen3.5-122b-a10b":{input:.26,output:2.08,reasoning:2.08},"qwen/qwen3.5-35b-a3b":{input:.1625,output:1.3,reasoning:1.3},"qwen/qwen3.5-397b-a17b":{input:.39,output:2.34,reasoning:2.34},"qwen/qwen3.5-9b":{input:.1,output:.15,reasoning:.15},"qwen/qwen3.5-flash":{input:.1048,output:.4194,reasoning:.4194},"qwen/qwen3.5-plus-02-15":{input:.26,output:1.56,reasoning:1.56},"qwen/qwen3.6-plus":{input:.54,output:3.21,reasoning:3.21},"qwen/qwen3.7-max":{input:1.25,output:3.75,cached:.25,reasoning:3.75},"qwen/qwen3.7-plus":{input:.4,output:1.6,cached:.08,reasoning:1.6},"qwen/qwen3.8-max":{input:2,output:6,cached:.25,cache_creation:2.5,reasoning:6},"qwen3.5-omni-plus":{input:1,output:5.7143,reasoning:5.7143},"qwen3.6-flash":{input:.171,output:1.029,cached:.017,cache_creation:.214,reasoning:1.029},"sakana/fugu-ultra":{input:5,output:30,cached:.5,reasoning:30},"seed-2-0-code-preview-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"seed-2-0-lite-260428":{input:.5,output:4,cached:.1,cache_creation:.008333,reasoning:4},"seed-2-0-mini-260428":{input:.2,output:.8,cached:.04,cache_creation:.00833,reasoning:.8},"seed-2-0-pro-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"stepfun/step-3.5-flash":{input:.1,output:.3,cached:.02,reasoning:.3},"stepfun/step-3.7-flash":{input:.2,output:1.15,cached:.04,reasoning:1.15},"tencent/hy3-preview":{input:.066,output:.26,cached:.029,reasoning:.26},"x-ai/grok-4.1-fast":{input:.2,output:.5,cached:.05,reasoning:.5},"x-ai/grok-4.20-beta":{input:2,output:6,cached:.2,reasoning:6},"x-ai/grok-4.3":{input:1.25,output:2.5,cached:.2,reasoning:2.5},"x-ai/grok-4.5":{input:2,output:6,cached:.5,reasoning:6},"x-ai/grok-build-0.1":{input:1,output:2,cached:.2,reasoning:2},"xiaomi/mimo-v2-flash":{input:.1,output:.3,cached:.01,reasoning:.3},"xiaomi/mimo-v2-omni":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2-pro":{input:1,output:3,cached:.2,reasoning:3},"xiaomi/mimo-v2.5":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2.5-pro":{input:1,output:3,cached:.2,reasoning:3},"z-ai/glm-4.5-air":{input:.13,output:.85,cached:.025,reasoning:.85},"z-ai/glm-4.6":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-4.6v":{input:.3,output:.9,reasoning:.9},"z-ai/glm-4.7":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-5":{input:1,output:3.2,cached:.2,reasoning:3.2},"z-ai/glm-5-turbo":{input:1.2,output:4,cached:.24,reasoning:4},"z-ai/glm-5.1":{input:1.05,output:3.5,cached:.525,reasoning:3.5},"z-ai/glm-5.2":{input:1.4,output:4.4,cached:.26,reasoning:4.4},"z-ai/glm-5.3-free":{input:0,output:0,cached:0,reasoning:0}}};function a(n,e){return RegExp("^"+n.split("*").map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(e)}function u(){return i}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1830],{31830:(n,e,t)=>{t.d(e,{ad:()=>o,gH:()=>u});let i={gh:{"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75}},tokenrouter:{"MiniMax-M3":{input:.3,output:1.2,cached:.06,reasoning:1.2},"anthropic/claude-fable-5":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-haiku-4.5":{input:1,output:5,cached:.1,cache_creation:1.25,reasoning:5},"anthropic/claude-opus-4.5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.6":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7-fast":{input:30,output:150,cached:3,reasoning:150},"anthropic/claude-opus-4.8":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.8-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-opus-5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-5-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-sonnet-4":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.5":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.6":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-5":{input:2,output:10,cached:.2,reasoning:10},"claude-opus-4-8-m-aws":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"deepseek/deepseek-v3.2":{input:.26,output:.38,cached:.13,reasoning:.38},"deepseek/deepseek-v4-flash":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-flash-0731":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-pro":{input:.435,output:.87,cached:.003625,reasoning:.87},"ex/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"google/gemini-2.5-flash-image":{input:.3,output:2.5,reasoning:2.5},"google/gemini-3-flash-preview":{input:.5,output:3,cached:.05,cache_creation:.08333,reasoning:3},"google/gemini-3-pro-image-preview":{input:2,output:12,reasoning:12},"google/gemini-3.1-flash-image-preview":{input:.5,output:3,reasoning:3},"google/gemini-3.1-flash-lite-image":{input:.25,output:1.5,reasoning:1.5},"google/gemini-3.1-pro-preview":{input:2,output:12,cached:.2,cache_creation:.375,reasoning:12},"google/gemini-3.5-flash":{input:1.5,output:9,cached:.15,cache_creation:.08333,reasoning:9},"google/gemini-3.5-flash-lite":{input:.3,output:2.5,cached:.03,cache_creation:.08333,reasoning:2.5},"google/gemini-3.6-flash":{input:1.5,output:7.5,cached:.15,cache_creation:.08333,reasoning:7.5},"google/gemini-embedding-2":{input:1,output:6,cached:.1,reasoning:6},"google/gemma-4-26b-a4b-it":{input:.06,output:.33,reasoning:.33},"kling-3.0-turbo":{input:2.1,output:2.1,reasoning:2.1},"microsoft/mai-image-2.5":{input:5,output:47,reasoning:47},"minimax/minimax-m2-her":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"minimax/minimax-m2.5":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.7":{input:.3,output:1.2,cached:.06,reasoning:1.2},"minimax/minimax-m2.7-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"miromind/mirothinker-1-7-deepresearch":{input:4,output:25,reasoning:25},"miromind/mirothinker-1-7-deepresearch-mini":{input:1.25,output:10,reasoning:10},"mistralai/devstral-2512":{input:.4,output:2,cached:.04,reasoning:2},"mistralai/mistral-medium-3-5":{input:1.5,output:7.5,reasoning:7.5},"mistralai/mistral-small-2603":{input:.15,output:.6,cached:.015,reasoning:.6},"mistralai/voxtral-small-24b-2507":{input:.1,output:.3,cached:.01,reasoning:.3},"moonshotai/kimi-k2.5":{input:.6,output:3,cached:.1,reasoning:3},"moonshotai/kimi-k2.6":{input:.95,output:4,cached:.16,reasoning:4},"moonshotai/kimi-k2.7-code":{input:.9286,output:3.8571,cached:.1857,reasoning:3.8571},"moonshotai/kimi-k3":{input:3,output:15,cached:.3,reasoning:15},"nvidia/nemotron-3-super-120b-a12b":{input:.3,output:.9,cached:.1,reasoning:.9},"openai/gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.6},"openai/gpt-5":{input:1.25,output:10,cached:.125,reasoning:10},"openai/gpt-5-image":{input:10,output:40,cached:2.5,reasoning:40},"openai/gpt-5-image-mini":{input:2.5,output:8,cached:.25,reasoning:8},"openai/gpt-5-mini":{input:.25,output:2,cached:.025,reasoning:2},"openai/gpt-5.2":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"openai/gpt-5.4-image-2":{input:8,output:30,cached:2,reasoning:30},"openai/gpt-5.4-mini":{input:.75,output:4.5,cached:.075,reasoning:4.5},"openai/gpt-5.4-nano":{input:.2,output:1.25,cached:.02,reasoning:1.25},"openai/gpt-5.4-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.5":{input:5,output:30,cached:.5,reasoning:30},"openai/gpt-5.5-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.6-luna":{input:.2,output:1.2,cached:.02,cache_creation:.25,reasoning:1.2},"openai/gpt-5.6-sol":{input:5,output:30,cached:.5,cache_creation:6.25,reasoning:30},"openai/gpt-5.6-terra":{input:2,output:12,cached:.2,cache_creation:2.5,reasoning:12},"openai/gpt-audio":{input:2.5,output:10,reasoning:10},"openai/gpt-audio-mini":{input:.6,output:2.4,reasoning:2.4},"openai/gpt-oss-120b":{input:.039,output:.18,reasoning:.18},"qwen/qwen3-coder-next":{input:.12,output:.75,cached:.06,reasoning:.75},"qwen/qwen3.5-122b-a10b":{input:.26,output:2.08,reasoning:2.08},"qwen/qwen3.5-35b-a3b":{input:.1625,output:1.3,reasoning:1.3},"qwen/qwen3.5-397b-a17b":{input:.39,output:2.34,reasoning:2.34},"qwen/qwen3.5-9b":{input:.1,output:.15,reasoning:.15},"qwen/qwen3.5-flash":{input:.1048,output:.4194,reasoning:.4194},"qwen/qwen3.5-plus-02-15":{input:.26,output:1.56,reasoning:1.56},"qwen/qwen3.6-plus":{input:.54,output:3.21,reasoning:3.21},"qwen/qwen3.7-max":{input:1.25,output:3.75,cached:.25,reasoning:3.75},"qwen/qwen3.7-plus":{input:.4,output:1.6,cached:.08,reasoning:1.6},"qwen/qwen3.8-max":{input:2,output:6,cached:.25,cache_creation:2.5,reasoning:6},"qwen3.5-omni-plus":{input:1,output:5.7143,reasoning:5.7143},"qwen3.6-flash":{input:.171,output:1.029,cached:.017,cache_creation:.214,reasoning:1.029},"sakana/fugu-ultra":{input:5,output:30,cached:.5,reasoning:30},"seed-2-0-code-preview-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"seed-2-0-lite-260428":{input:.5,output:4,cached:.1,cache_creation:.008333,reasoning:4},"seed-2-0-mini-260428":{input:.2,output:.8,cached:.04,cache_creation:.00833,reasoning:.8},"seed-2-0-pro-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"stepfun/step-3.5-flash":{input:.1,output:.3,cached:.02,reasoning:.3},"stepfun/step-3.7-flash":{input:.2,output:1.15,cached:.04,reasoning:1.15},"tencent/hy3-preview":{input:.066,output:.26,cached:.029,reasoning:.26},"x-ai/grok-4.1-fast":{input:.2,output:.5,cached:.05,reasoning:.5},"x-ai/grok-4.20-beta":{input:2,output:6,cached:.2,reasoning:6},"x-ai/grok-4.3":{input:1.25,output:2.5,cached:.2,reasoning:2.5},"x-ai/grok-4.5":{input:2,output:6,cached:.5,reasoning:6},"x-ai/grok-build-0.1":{input:1,output:2,cached:.2,reasoning:2},"xiaomi/mimo-v2-flash":{input:.1,output:.3,cached:.01,reasoning:.3},"xiaomi/mimo-v2-omni":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2-pro":{input:1,output:3,cached:.2,reasoning:3},"xiaomi/mimo-v2.5":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2.5-pro":{input:1,output:3,cached:.2,reasoning:3},"z-ai/glm-4.5-air":{input:.13,output:.85,cached:.025,reasoning:.85},"z-ai/glm-4.6":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-4.6v":{input:.3,output:.9,reasoning:.9},"z-ai/glm-4.7":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-5":{input:1,output:3.2,cached:.2,reasoning:3.2},"z-ai/glm-5-turbo":{input:1.2,output:4,cached:.24,reasoning:4},"z-ai/glm-5.1":{input:1.05,output:3.5,cached:.525,reasoning:3.5},"z-ai/glm-5.2":{input:1.4,output:4.4,cached:.26,reasoning:4.4},"z-ai/glm-5.3-free":{input:0,output:0,cached:0,reasoning:0}}},a=new Map;function u(n,e){let t;return(!(t=a.get(n))&&(t=RegExp("^"+n.split("*").map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"),a.set(n,t)),t).test(e)}function o(){return i}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1940],{21940:(e,t,s)=>{s.r(t),s.d(t,{default:()=>h});var o=s(29798),r=s(15814),a=s(92348),i=s(20884),l=s(31009),d=s(2401),n=s(726),c=s(94829),x=s(43665),f=s(75669),m=s(99118);let p=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),u=e=>`$${(e||0).toFixed(4)}`;function h({period:e="7d"}){let[t,s]=(0,r.useState)([]),[k,g]=(0,r.useState)(!0),[j,y]=(0,r.useState)("tokens"),b=(0,r.useCallback)(async()=>{g(!0);try{let t=await fetch(`/api/usage/chart?period=${e}`);if(t.ok){let e=await t.json();s(e)}}catch(e){console.error("Failed to fetch chart data:",e)}finally{g(!1)}},[e]);(0,r.useEffect)(()=>{b()},[b]);let w=t.some(e=>e.tokens>0||e.cost>0);return(0,o.jsx)(f.Zp,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:(0,o.jsxs)(f.Wu,{className:"flex min-w-0 flex-col gap-3 px-0 py-0",children:[(0,o.jsxs)("div",{className:"grid w-full grid-cols-2 items-center gap-1 rounded-lg border border-border bg-muted p-1 sm:w-auto sm:self-start",children:[(0,o.jsx)("button",{onClick:()=>y("tokens"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"tokens"===j?"bg-primary text-primary-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:"Tokens"}),(0,o.jsx)("button",{onClick:()=>y("cost"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"cost"===j?"bg-primary text-primary-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:"Cost"})]}),k?(0,o.jsxs)("div",{className:"flex flex-col gap-2","aria-hidden":!0,children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)(m.E,{className:"h-3 w-24"}),(0,o.jsx)(m.E,{className:"h-3 w-16"})]}),(0,o.jsx)(m.E,{className:"h-[220px] w-full rounded-lg"}),(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)(m.E,{className:"h-3 w-12"}),(0,o.jsx)(m.E,{className:"h-3 w-12"}),(0,o.jsx)(m.E,{className:"h-3 w-12"})]})]}):w?(0,o.jsx)(a.u,{width:"100%",height:220,children:(0,o.jsxs)(i.Q,{data:t,margin:{top:4,right:8,left:0,bottom:0},children:[(0,o.jsxs)("defs",{children:[(0,o.jsxs)("linearGradient",{id:"gradTokens",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,o.jsx)("stop",{offset:"5%",stopColor:"#6366f1",stopOpacity:.25}),(0,o.jsx)("stop",{offset:"95%",stopColor:"#6366f1",stopOpacity:0})]}),(0,o.jsxs)("linearGradient",{id:"gradCost",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,o.jsx)("stop",{offset:"5%",stopColor:"#f59e0b",stopOpacity:.25}),(0,o.jsx)("stop",{offset:"95%",stopColor:"#f59e0b",stopOpacity:0})]})]}),(0,o.jsx)(l.d,{strokeDasharray:"3 3",strokeOpacity:.1}),(0,o.jsx)(d.W,{dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,interval:"preserveStartEnd"}),(0,o.jsx)(n.h,{tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:"tokens"===j?p:u,width:50}),(0,o.jsx)(c.m,{contentStyle:{backgroundColor:"var(--background)",border:"1px solid var(--border)",borderRadius:"8px",fontSize:"12px"},formatter:(e,t)=>"tokens"===t?[p(e),"Tokens"]:[u(e),"Cost"]}),"tokens"===j?(0,o.jsx)(x.Gk,{type:"monotone",dataKey:"tokens",stroke:"#6366f1",strokeWidth:2,fill:"url(#gradTokens)",dot:!1,activeDot:{r:4}}):(0,o.jsx)(x.Gk,{type:"monotone",dataKey:"cost",stroke:"#f59e0b",strokeWidth:2,fill:"url(#gradCost)",dot:!1,activeDot:{r:4}})]})}):(0,o.jsx)("div",{className:"h-48 flex items-center justify-center text-muted-foreground text-sm",children:"No data for this period"})]})})}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2836],{15764:(e,s,t)=>{"use strict";t.d(s,{CK:()=>d.default,G9:()=>x.default,Iz:()=>j.default,KX:()=>y.PanelSkeleton,LF:()=>n.default,LH:()=>m.default,Mu:()=>y.StatCardSkeleton,Nf:()=>c.default,Qv:()=>l.CardSkeleton,YW:()=>v.YW,gw:()=>p.default,jK:()=>o.default,nh:()=>g.default,pV:()=>v.pV,rq:()=>i.default,uR:()=>r.default,uo:()=>a.ConfirmModal,vE:()=>h.default,vj:()=>u.default,wI:()=>f.default,wn:()=>v.wn,zY:()=>v.zY}),t(58913);var a=t(3537),l=t(58350);t(30872),t(33526),t(42535),t(1279);var n=t(92802),i=t(25908),r=t(58729),d=t(24873),c=t(5258),o=t(80599);t(949),t(56776),t(53599),t(88336),t(69561);var x=t(37753),m=t(23444),h=t(93624),u=t(86920),f=t(65461);t(14580);var p=t(14670),j=t(70296);t(57779),t(22205);var y=t(43276),g=t(75862),v=t(92412)},41684:(e,s,t)=>{"use strict";t.d(s,{default:()=>j});var a=t(29798),l=t(15814),n=t(75669),i=t(18055),r=t(77345),d=t(49787),c=t(1352),o=t(58913),x=t(15764),m=t(63523);function h({label:e,url:s,copyId:t,copied:l,onCopy:n,badge:d,actions:x}){return(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`shrink-0 rounded px-1.5 py-0.5 text-center font-mono text-xs min-w-[88px] ${"CF"===d||"TS"===d?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"}`,children:e}),(0,a.jsx)(r.p,{value:s,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{asChild:!0,children:(0,a.jsx)("span",{className:"relative inline-flex",children:(0,a.jsx)(i.$,{variant:"ghost",size:"icon-sm",onClick:()=>n(s,t),children:(0,a.jsx)(o.default,{name:l===t?"check":"content_copy",className:"text-[18px]"})})})}),(0,a.jsx)(c.ZI,{side:"top",children:l===t?"Copied!":"Copy"})]}),x]})}var u=t(54563),f=t(14231);function p({message:e,action:s}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)(o.default,{name:"warning",className:"text-[16px] shrink-0 mt-0.5"}),(0,a.jsx)("p",{className:"text-xs flex-1",children:e}),s&&(0,a.jsx)("a",{href:s.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:s.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(s.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:s.label})]})}function j({machineId:e}){let[s,t]=(0,l.useState)([]),[y,g]=(0,l.useState)(!0),[v,k]=(0,l.useState)(!1),[N,w]=(0,l.useState)(""),[C,b]=(0,l.useState)(null),[S,E]=(0,l.useState)(null),[P,I]=(0,l.useState)(!1),[K,A]=(0,l.useState)(new Set),[_,$]=(0,l.useState)(!1);(0,l.useEffect)(()=>{$(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:T,copy:O}=(0,m.C)();(0,l.useEffect)(()=>{z(),L()},[]);let L=async()=>{try{let e=await fetch("/api/settings");if(e.ok){let s=await e.json();I(s.requireApiKey||!1)}}catch(e){console.log("Error loading settings:",e)}},q=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:e})})).ok&&I(e)}catch(e){console.log("Error updating requireApiKey:",e)}},z=async()=>{try{let e=async()=>{let e=await fetch("/api/keys");return e.ok&&(await e.json()).keys||[]},s=await e();if(0===s.length)try{(await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"Default Key"})})).ok&&(s=await e())}catch{}t(s)}catch(e){console.log("Error fetching data:",e)}finally{g(!1)}},D=async()=>{if(N.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:N})}),s=await e.json();e.ok&&(b(s.key),await z(),w(""),k(!1))}catch(e){console.log("Error creating key:",e)}},W=async e=>{E({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{E(null);try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&(t(s.filter(s=>s.id!==e)),A(s=>{let t=new Set(s);return t.delete(e),t}))}catch(e){console.log("Error deleting key:",e)}}})},[Y,Z]=(0,l.useState)("/v1");return((0,l.useEffect)(()=>{Z(`${window.location.origin}/v1`)},[]),y)?(0,a.jsxs)(x.YW,{children:[(0,a.jsx)(x.KX,{}),(0,a.jsx)(x.KX,{})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(x.YW,{children:[(0,a.jsxs)(n.Zp,{children:[(0,a.jsx)(n.aR,{children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-[10px] bg-background text-muted-foreground",children:(0,a.jsx)(o.default,{name:"api",className:"text-[20px]"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(n.ZB,{children:"API Endpoint"}),(0,a.jsx)(n.BT,{children:"Local and remote access URLs"})]})]})}),(0,a.jsx)(n.Wu,{children:(0,a.jsx)("div",{className:"flex flex-col gap-2",children:(0,a.jsx)(h,{label:"Local",url:Y,copyId:"local_url",copied:T,onCopy:O})})})]}),(0,a.jsxs)(n.Zp,{id:"require-api-key",children:[(0,a.jsxs)(n.aR,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-[10px] bg-background text-muted-foreground",children:(0,a.jsx)(o.default,{name:"vpn_key",className:"text-[20px]"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(n.ZB,{children:"API Keys"}),(0,a.jsx)(n.BT,{children:"Keys for authenticating gateway requests"})]})]}),(0,a.jsx)(n.X9,{children:(0,a.jsxs)(i.$,{onClick:()=>k(!0),children:[(0,a.jsx)(o.default,{name:"add"}),"Create Key"]})})]}),(0,a.jsxs)(n.Wu,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Requests without a valid key will be rejected"})]}),(0,a.jsx)(f.d,{checked:P,onCheckedChange:()=>q(!P)})]}),_&&!P&&(0,a.jsx)("div",{className:"mb-4 -mt-2",children:(0,a.jsx)(p,{message:"Endpoint is exposed without an API key."})}),0===s.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)(o.default,{name:"vpn_key",className:"text-[32px]"})}),(0,a.jsx)("p",{className:"text-foreground font-medium mb-1",children:"No API keys yet"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:"Create your first API key to get started"}),(0,a.jsxs)(i.$,{onClick:()=>k(!0),children:[(0,a.jsx)(o.default,{name:"add"}),"Create Key"]})]}):(0,a.jsx)("div",{className:"flex flex-col",children:s.map(e=>{var s;return(0,a.jsxs)("div",{className:`group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,a.jsx)("code",{className:"text-xs text-muted-foreground font-mono",children:K.has(e.id)?e.key:(s=e.key)&&!(s.length<=10)?s.slice(0,6)+"•".repeat(s.length-10)+s.slice(-4):s||""}),(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{asChild:!0,children:(0,a.jsx)("span",{className:"relative inline-flex",children:(0,a.jsx)(i.$,{variant:"ghost",size:"icon-xs",onClick:()=>{var s;return s=e.id,void A(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})},children:(0,a.jsx)(o.default,{name:K.has(e.id)?"visibility_off":"visibility",className:"text-[14px]"})})})}),(0,a.jsx)(c.ZI,{side:"top",children:K.has(e.id)?"Hide key":"Show key"})]}),(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{asChild:!0,children:(0,a.jsx)("span",{className:"relative inline-flex",children:(0,a.jsx)(i.$,{variant:"ghost",size:"icon-xs",onClick:()=>O(e.key,e.id),children:(0,a.jsx)(o.default,{name:T===e.id?"check":"content_copy",className:"text-[14px]"})})})}),(0,a.jsx)(c.ZI,{side:"top",children:T===e.id?"Copied!":"Copy"})]})]}),(0,a.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,a.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"})]}),(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsx)(i.$,{variant:"ghost",size:"icon-sm",onClick:()=>W(e.id),className:"text-red-500 opacity-100 hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",children:(0,a.jsx)(o.default,{name:"delete",className:"text-[18px]"})})})]},e.id)})})]})]})]}),(0,a.jsx)(d.lG,{open:v,onOpenChange:e=>{e||(k(!1),w(""))},children:(0,a.jsxs)(d.Cf,{className:"max-w-md",children:[(0,a.jsx)(d.c7,{children:(0,a.jsx)(d.L3,{children:"Create API Key"})}),(0,a.jsx)("div",{className:"max-h-[calc(85vh-100px)] overflow-y-auto p-4",children:(0,a.jsx)("div",{className:"flex flex-col gap-4",children:(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-foreground",children:"Key Name"}),(0,a.jsx)(r.p,{value:N,onChange:e=>w(e.target.value),placeholder:"Production Key"})]})})}),(0,a.jsx)(d.Es,{children:(0,a.jsx)("div",{className:"flex w-full gap-2 sm:w-auto",children:(0,a.jsx)(i.$,{onClick:D,className:"w-full sm:w-auto",disabled:!N.trim(),children:"Create"})})})]})}),(0,a.jsx)(d.lG,{open:!!C,onOpenChange:e=>!e&&b(null),children:(0,a.jsxs)(d.Cf,{className:"max-w-md",children:[(0,a.jsx)(d.c7,{children:(0,a.jsx)(d.L3,{children:"API Key Created"})}),(0,a.jsx)("div",{className:"max-h-[calc(85vh-100px)] overflow-y-auto p-4",children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(u.Fc,{children:(0,a.jsxs)(u.TN,{children:[(0,a.jsx)("span",{className:"font-medium",children:"Save this key now! "}),"This is the only time you will see this key. Store it securely."]})}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.p,{value:C||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsxs)(i.$,{variant:"secondary",onClick:()=>O(C,"created_key"),children:[(0,a.jsx)(o.default,{name:"created_key"===T?"check":"content_copy"}),"created_key"===T?"Copied!":"Copy"]})]})]})}),(0,a.jsx)(d.Es,{children:(0,a.jsx)(i.$,{onClick:()=>b(null),className:"w-full sm:w-auto",children:"Done"})})]})}),(0,a.jsx)(x.uo,{isOpen:!!S,onClose:()=>E(null),onConfirm:S?.onConfirm,title:S?.title||"Confirm",message:S?.message,variant:"danger"})]})}},92412:(e,s,t)=>{"use strict";t.d(s,{YW:()=>a.Page,pV:()=>a.CardGrid,wn:()=>a.Section,zY:()=>a.PageHeader}),t(16675),t(72778);var a=t(29575)},92836:(e,s,t)=>{Promise.resolve().then(t.bind(t,41684))}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3445],{1203:(e,t,r)=>{var n=r(15814),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=n.useState,f=n.useEffect,o=n.useLayoutEffect,u=n.useDebugValue;function s(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!a(e,r)}catch(e){return!0}}var l="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=i({inst:{value:r,getSnapshot:t}}),a=n[0].inst,l=n[1];return o(function(){a.value=r,a.getSnapshot=t,s(a)&&l({inst:a})},[e,r,t]),f(function(){return s(a)&&l({inst:a}),e(function(){s(a)&&l({inst:a})})},[e]),u(r),r};t.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:l},2208:(e,t,r)=>{r.d(t,{A:()=>n});function n(e,t){return e*=1,t*=1,function(r){return e*(1-r)+t*r}}},22633:(e,t,r)=>{r.d(t,{A:()=>n});let n=e=>()=>e},40268:(e,t,r)=>{e.exports=r(1203)},43211:(e,t,r)=>{function n(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function a(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function i(){}r.d(t,{Ay:()=>m,Qh:()=>$});var f="\\s*([+-]?\\d+)\\s*",o="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3,8})$/,l=RegExp(`^rgb\\(${f},${f},${f}\\)$`),c=RegExp(`^rgb\\(${u},${u},${u}\\)$`),h=RegExp(`^rgba\\(${f},${f},${f},${o}\\)$`),d=RegExp(`^rgba\\(${u},${u},${u},${o}\\)$`),g=RegExp(`^hsl\\(${o},${u},${u}\\)$`),x=RegExp(`^hsla\\(${o},${u},${u},${o}\\)$`),b={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function p(){return this.rgb().formatHex()}function y(){return this.rgb().formatRgb()}function m(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=s.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?v(t):3===r?new k(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?w(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?w(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=l.exec(e))?new k(t[1],t[2],t[3],1):(t=c.exec(e))?new k(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=h.exec(e))?w(t[1],t[2],t[3],t[4]):(t=d.exec(e))?w(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=g.exec(e))?R(t[1],t[2]/100,t[3]/100,1):(t=x.exec(e))?R(t[1],t[2]/100,t[3]/100,t[4]):b.hasOwnProperty(e)?v(b[e]):"transparent"===e?new k(NaN,NaN,NaN,0):null}function v(e){return new k(e>>16&255,e>>8&255,255&e,1)}function w(e,t,r,n){return n<=0&&(e=t=r=NaN),new k(e,t,r,n)}function $(e,t,r,n){var a;return 1==arguments.length?((a=e)instanceof i||(a=m(a)),a)?new k((a=a.rgb()).r,a.g,a.b,a.opacity):new k:new k(e,t,r,null==n?1:n)}function k(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function N(){return`#${S(this.r)}${S(this.g)}${S(this.b)}`}function A(){let e=E(this.opacity);return`${1===e?"rgb(":"rgba("}${M(this.r)}, ${M(this.g)}, ${M(this.b)}${1===e?")":`, ${e})`}`}function E(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function M(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function S(e){return((e=M(e))<16?"0":"")+e.toString(16)}function R(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new q(e,t,r,n)}function j(e){if(e instanceof q)return new q(e.h,e.s,e.l,e.opacity);if(e instanceof i||(e=m(e)),!e)return new q;if(e instanceof q)return e;var t=(e=e.rgb()).r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),f=Math.max(t,r,n),o=NaN,u=f-a,s=(f+a)/2;return u?(o=t===f?(r-n)/u+(r<n)*6:r===f?(n-t)/u+2:(t-r)/u+4,u/=s<.5?f+a:2-f-a,o*=60):u=s>0&&s<1?0:o,new q(o,u,s,e.opacity)}function q(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function H(e){return(e=(e||0)%360)<0?e+360:e}function O(e){return Math.max(0,Math.min(1,e||0))}function V(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}n(i,m,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:p,formatHex:p,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return j(this).formatHsl()},formatRgb:y,toString:y}),n(k,$,a(i,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new k(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new k(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new k(M(this.r),M(this.g),M(this.b),E(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:N,formatHex:N,formatHex8:function(){return`#${S(this.r)}${S(this.g)}${S(this.b)}${S((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:A,toString:A})),n(q,function(e,t,r,n){return 1==arguments.length?j(e):new q(e,t,r,null==n?1:n)},a(i,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new q(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new q(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new k(V(e>=240?e-240:e+120,a,n),V(e,a,n),V(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new q(H(this.h),O(this.s),O(this.l),E(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=E(this.opacity);return`${1===e?"hsl(":"hsla("}${H(this.h)}, ${100*O(this.s)}%, ${100*O(this.l)}%${1===e?")":`, ${e})`}`}}))},55908:(e,t,r)=>{var n=r(15814),a=r(40268),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},f=a.useSyncExternalStore,o=n.useRef,u=n.useEffect,s=n.useMemo,l=n.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var c=o(null);if(null===c.current){var h={hasValue:!1,value:null};c.current=h}else h=c.current;var d=f(e,(c=s(function(){function e(e){if(!u){if(u=!0,f=e,e=n(e),void 0!==a&&h.hasValue){var t=h.value;if(a(t,e))return o=t}return o=e}if(t=o,i(f,e))return t;var r=n(e);return void 0!==a&&a(t,r)?(f=e,t):(f=e,o=r)}var f,o,u=!1,s=void 0===r?null:r;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]},[t,r,n,a]))[0],c[1]);return u(function(){h.hasValue=!0,h.value=d},[d]),l(d),d}},65348:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(2208),a=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,i=RegExp(a.source,"g");function f(e,t){var r,f,o,u,s,l=a.lastIndex=i.lastIndex=0,c=-1,h=[],d=[];for(e+="",t+="";(o=a.exec(e))&&(u=i.exec(t));)(s=u.index)>l&&(s=t.slice(l,s),h[c]?h[c]+=s:h[++c]=s),(o=o[0])===(u=u[0])?h[c]?h[c]+=u:h[++c]=u:(h[++c]=null,d.push({i:c,x:(0,n.A)(o,u)})),l=i.lastIndex;return l<t.length&&(s=t.slice(l),h[c]?h[c]+=s:h[++c]=s),h.length<2?d[0]?(r=d[0].x,function(e){return r(e)+""}):(f=t,function(){return f}):(t=d.length,function(e){for(var r,n=0;n<t;++n)h[(r=d[n]).i]=r.x(e);return h.join("")})}},67114:(e,t,r)=>{r.d(t,{A:()=>function e(t,r){var u,s,l=typeof r;return null==r||"boolean"===l?(0,o.A)(r):("number"===l?i.A:"string"===l?(s=(0,n.Ay)(r))?(r=s,a.Ay):f.A:r instanceof n.Ay?a.Ay:r instanceof Date?function(e,t){var r=new Date;return e*=1,t*=1,function(n){return r.setTime(e*(1-n)+t*n),r}}:!ArrayBuffer.isView(u=r)||u instanceof DataView?Array.isArray(r)?function(t,r){var n,a=r?r.length:0,i=t?Math.min(a,t.length):0,f=Array(i),o=Array(a);for(n=0;n<i;++n)f[n]=e(t[n],r[n]);for(;n<a;++n)o[n]=r[n];return function(e){for(n=0;n<i;++n)o[n]=f[n](e);return o}}:"function"!=typeof r.valueOf&&"function"!=typeof r.toString||isNaN(r)?function(t,r){var n,a={},i={};for(n in(null===t||"object"!=typeof t)&&(t={}),(null===r||"object"!=typeof r)&&(r={}),r)n in t?a[n]=e(t[n],r[n]):i[n]=r[n];return function(e){for(n in a)i[n]=a[n](e);return i}}:i.A:function(e,t){t||(t=[]);var r,n=e?Math.min(t.length,e.length):0,a=t.slice();return function(i){for(r=0;r<n;++r)a[r]=e[r]*(1-i)+t[r]*i;return a}})(t,r)}});var n=r(43211),a=r(93131),i=r(2208),f=r(65348),o=r(22633)},93131:(e,t,r)=>{r.d(t,{Ay:()=>o});var n=r(43211);function a(e,t,r,n,a){var i=e*e,f=i*e;return((1-3*e+3*i-f)*t+(4-6*i+3*f)*r+(1+3*e+3*i-3*f)*n+f*a)/6}var i=r(22633);function f(e,t){var r=t-e;return r?function(t){return e+t*r}:(0,i.A)(isNaN(e)?t:e)}let o=function e(t){var r,a=1==(r=+t)?f:function(e,t){var n,a,f;return t-e?(n=e,a=t,n=Math.pow(n,f=r),a=Math.pow(a,f)-n,f=1/f,function(e){return Math.pow(n+e*a,f)}):(0,i.A)(isNaN(e)?t:e)};function o(e,t){var r=a((e=(0,n.Qh)(e)).r,(t=(0,n.Qh)(t)).r),i=a(e.g,t.g),o=a(e.b,t.b),u=f(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=o(t),e.opacity=u(t),e+""}}return o.gamma=e,o}(1);function u(e){return function(t){var r,a,i=t.length,f=Array(i),o=Array(i),u=Array(i);for(r=0;r<i;++r)a=(0,n.Qh)(t[r]),f[r]=a.r||0,o[r]=a.g||0,u[r]=a.b||0;return f=e(f),o=e(o),u=e(u),a.opacity=1,function(e){return a.r=f(e),a.g=o(e),a.b=u(e),a+""}}}u(function(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),i=e[n],f=e[n+1],o=n>0?e[n-1]:2*i-f,u=n<t-1?e[n+2]:2*f-i;return a((r-n/t)*t,o,i,f,u)}}),u(function(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),i=e[(n+t-1)%t],f=e[n%t],o=e[(n+1)%t],u=e[(n+2)%t];return a((r-n/t)*t,i,f,o,u)}})},94346:(e,t,r)=>{e.exports=r(55908)}}]);