vansrouter 0.5.12 → 0.7.4

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 (907) hide show
  1. package/README.md +23 -23
  2. package/app/.next-cli-build/BUILD_ID +1 -1
  3. package/app/.next-cli-build/app-path-routes-manifest.json +12 -11
  4. package/app/.next-cli-build/build-manifest.json +4 -4
  5. package/app/.next-cli-build/prerender-manifest.json +27 -3
  6. package/app/.next-cli-build/react-loadable-manifest.json +99 -0
  7. package/app/.next-cli-build/required-server-files.json +13 -5
  8. package/app/.next-cli-build/routes-manifest.json +16 -0
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +5 -5
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +6 -6
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -4
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -0
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -0
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -0
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  76. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.rsc +4 -4
  80. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +4 -4
  81. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +2 -2
  85. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  86. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  87. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  90. package/app/.next-cli-build/server/app/_not-found.rsc +20 -19
  91. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +20 -19
  92. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  93. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +9 -8
  94. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  95. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  96. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  97. package/app/.next-cli-build/server/app/api/auth/check/route.js +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/check/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/check/route_client-reference-manifest.js +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/reset-password/route_client-reference-manifest.js +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  122. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  134. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  146. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  152. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  155. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  158. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  161. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  164. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  166. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  167. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  170. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  172. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  175. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/combos/route_client-reference-manifest.js +1 -1
  178. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/headroom/start/route_client-reference-manifest.js +1 -1
  181. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/headroom/status/route_client-reference-manifest.js +1 -1
  184. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/headroom/stop/route_client-reference-manifest.js +1 -1
  187. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/health/route_client-reference-manifest.js +1 -1
  190. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/init/route_client-reference-manifest.js +1 -1
  193. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  196. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/keys/route_client-reference-manifest.js +1 -1
  199. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/locale/route_client-reference-manifest.js +1 -1
  202. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  203. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -1
  205. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  206. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -1
  208. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -1
  211. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -1
  214. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -1
  217. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -1
  220. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -1
  223. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  226. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  229. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/models/custom/route_client-reference-manifest.js +1 -1
  232. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/models/disabled/route_client-reference-manifest.js +1 -1
  235. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/models/route_client-reference-manifest.js +1 -1
  238. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route_client-reference-manifest.js +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  251. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route_client-reference-manifest.js +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route_client-reference-manifest.js +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  277. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  280. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  283. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  286. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  289. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  298. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  301. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  304. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  307. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -1
  310. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/providers/route_client-reference-manifest.js +1 -1
  313. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -1
  316. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  319. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  322. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  325. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  328. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  329. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -1
  331. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  332. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -1
  334. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  337. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  338. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -1
  340. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  343. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  346. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  349. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/settings/route_client-reference-manifest.js +1 -1
  352. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  355. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/tags/route_client-reference-manifest.js +1 -1
  358. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  361. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +4 -2
  362. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  364. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  367. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  370. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  373. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  374. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  376. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  379. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  382. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  385. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  386. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -1
  388. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -1
  391. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -1
  394. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +3 -3
  395. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -1
  397. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route_client-reference-manifest.js +1 -1
  400. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  403. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  406. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  409. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  412. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  415. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route_client-reference-manifest.js +1 -1
  418. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  421. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  424. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  427. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  428. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  429. package/app/.next-cli-build/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  449. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  451. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  452. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  454. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  457. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  458. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  459. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +1 -1
  460. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -1
  463. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  464. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  465. package/app/.next-cli-build/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  466. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -1
  469. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  470. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  471. package/app/.next-cli-build/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  472. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  473. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  474. package/app/.next-cli-build/server/app/api/v1/route_client-reference-manifest.js +1 -1
  475. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  476. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  477. package/app/.next-cli-build/server/app/api/v1/search/route_client-reference-manifest.js +1 -1
  478. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  479. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -1
  481. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  482. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  483. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  484. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  485. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  486. package/app/.next-cli-build/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  487. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  488. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  489. package/app/.next-cli-build/server/app/api/version/route_client-reference-manifest.js +1 -1
  490. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  491. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  492. package/app/.next-cli-build/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -1
  493. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  494. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  495. package/app/.next-cli-build/server/app/api/version/update/route_client-reference-manifest.js +1 -1
  496. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  497. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  498. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  499. package/app/.next-cli-build/server/app/callback.html +1 -1
  500. package/app/.next-cli-build/server/app/callback.rsc +24 -23
  501. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +24 -23
  502. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  503. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +9 -8
  504. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +3 -3
  505. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  506. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  508. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +23 -22
  509. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  510. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  511. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  513. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +23 -22
  514. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  515. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +9 -8
  516. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +3 -3
  517. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  518. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +24 -23
  519. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  520. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  521. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  523. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +24 -23
  524. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  525. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +9 -8
  526. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +3 -3
  527. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  528. package/app/.next-cli-build/server/app/dashboard/combos.rsc +26 -25
  529. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  530. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  531. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  532. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  533. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +26 -25
  534. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +9 -8
  536. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +3 -3
  537. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  538. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +24 -23
  539. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  540. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  541. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  542. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  543. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +24 -23
  544. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  545. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +9 -8
  546. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +3 -3
  547. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  548. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +26 -25
  549. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  550. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  551. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  552. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  554. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +26 -25
  555. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  556. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +9 -8
  557. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +3 -3
  558. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  559. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +23 -22
  560. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  561. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  562. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  563. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  564. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +23 -22
  565. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  566. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +9 -8
  567. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +3 -3
  568. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  569. package/app/.next-cli-build/server/app/dashboard/profile.rsc +26 -25
  570. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  571. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  572. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  573. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  574. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +26 -25
  575. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  576. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +9 -8
  577. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +3 -3
  578. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  579. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +26 -25
  580. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  582. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  583. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  584. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  585. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +26 -25
  586. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  587. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +9 -8
  588. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +3 -3
  589. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  590. package/app/.next-cli-build/server/app/dashboard/providers.rsc +26 -25
  591. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  592. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  593. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  594. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  595. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +26 -25
  596. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  597. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +9 -8
  598. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +3 -3
  599. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  600. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +26 -25
  601. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  602. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  603. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  604. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  605. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +26 -25
  606. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  607. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +9 -8
  608. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +3 -3
  609. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  610. package/app/.next-cli-build/server/app/dashboard/quota.rsc +24 -23
  611. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  612. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  613. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  614. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  615. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +24 -23
  616. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  617. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +9 -8
  618. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +3 -3
  619. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  620. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  621. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  622. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  623. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +24 -23
  624. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +24 -23
  625. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  626. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +9 -8
  627. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -3
  628. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  629. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  630. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  631. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  632. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  633. package/app/.next-cli-build/server/app/dashboard/skills.rsc +26 -25
  634. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  635. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  636. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  637. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  638. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +26 -25
  639. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  640. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +9 -8
  641. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +3 -3
  642. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -0
  643. package/app/.next-cli-build/server/app/dashboard/token-saver.meta +17 -0
  644. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +26 -0
  645. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -0
  646. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +5 -0
  647. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  648. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  649. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +26 -0
  650. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +6 -0
  651. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +10 -0
  652. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +5 -0
  653. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  654. package/app/.next-cli-build/server/app/dashboard/translator.rsc +26 -25
  655. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  656. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  657. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  658. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  659. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +26 -25
  660. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  661. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +9 -8
  662. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +3 -3
  663. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  664. package/app/.next-cli-build/server/app/dashboard/usage.rsc +26 -25
  665. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  666. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  667. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  668. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  669. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +26 -25
  670. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  671. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +9 -8
  672. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +3 -3
  673. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  674. package/app/.next-cli-build/server/app/dashboard.rsc +24 -23
  675. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  676. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  677. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +3 -3
  678. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +24 -23
  679. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  680. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +9 -8
  681. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +3 -3
  682. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  683. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  684. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  685. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  686. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  687. package/app/.next-cli-build/server/app/landing.html +1 -1
  688. package/app/.next-cli-build/server/app/landing.rsc +24 -23
  689. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +24 -23
  690. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  691. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +9 -8
  692. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +3 -3
  693. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  694. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  695. package/app/.next-cli-build/server/app/login/page.js +2 -2
  696. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  697. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  698. package/app/.next-cli-build/server/app/login.html +1 -1
  699. package/app/.next-cli-build/server/app/login.rsc +24 -23
  700. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +24 -23
  701. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  702. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +9 -8
  703. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +3 -3
  704. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  705. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  706. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +1 -1
  707. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  708. package/app/.next-cli-build/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  709. package/app/.next-cli-build/server/app/masuk/page.js +2 -2
  710. package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
  711. package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
  712. package/app/.next-cli-build/server/app-paths-manifest.json +12 -11
  713. package/app/.next-cli-build/server/chunks/1099.js +1 -1
  714. package/app/.next-cli-build/server/chunks/1248.js +1 -0
  715. package/app/.next-cli-build/server/chunks/1253.js +1 -1
  716. package/app/.next-cli-build/server/chunks/127.js +1 -0
  717. package/app/.next-cli-build/server/chunks/1500.js +1 -1
  718. package/app/.next-cli-build/server/chunks/1536.js +1 -0
  719. package/app/.next-cli-build/server/chunks/1613.js +1 -1
  720. package/app/.next-cli-build/server/chunks/1688.js +1 -1
  721. package/app/.next-cli-build/server/chunks/2262.js +3 -0
  722. package/app/.next-cli-build/server/chunks/2365.js +1 -1
  723. package/app/.next-cli-build/server/chunks/2504.js +1 -0
  724. package/app/.next-cli-build/server/chunks/2554.js +23 -0
  725. package/app/.next-cli-build/server/chunks/2557.js +6 -6
  726. package/app/.next-cli-build/server/chunks/259.js +1 -0
  727. package/app/.next-cli-build/server/chunks/2884.js +1 -0
  728. package/app/.next-cli-build/server/chunks/3040.js +2 -2
  729. package/app/.next-cli-build/server/chunks/3133.js +1 -0
  730. package/app/.next-cli-build/server/chunks/3176.js +3 -3
  731. package/app/.next-cli-build/server/chunks/3405.js +1 -1
  732. package/app/.next-cli-build/server/chunks/3424.js +1 -0
  733. package/app/.next-cli-build/server/chunks/3652.js +1 -1
  734. package/app/.next-cli-build/server/chunks/3738.js +1 -0
  735. package/app/.next-cli-build/server/chunks/3787.js +1 -0
  736. package/app/.next-cli-build/server/chunks/383.js +1 -1
  737. package/app/.next-cli-build/server/chunks/4004.js +1 -1
  738. package/app/.next-cli-build/server/chunks/4029.js +7 -0
  739. package/app/.next-cli-build/server/chunks/403.js +1 -0
  740. package/app/.next-cli-build/server/chunks/4105.js +2 -2
  741. package/app/.next-cli-build/server/chunks/4327.js +1 -1
  742. package/app/.next-cli-build/server/chunks/4418.js +4 -4
  743. package/app/.next-cli-build/server/chunks/4486.js +1 -1
  744. package/app/.next-cli-build/server/chunks/4539.js +1 -1
  745. package/app/.next-cli-build/server/chunks/4544.js +1 -0
  746. package/app/.next-cli-build/server/chunks/4574.js +13 -13
  747. package/app/.next-cli-build/server/chunks/5006.js +2 -2
  748. package/app/.next-cli-build/server/chunks/5204.js +4 -4
  749. package/app/.next-cli-build/server/chunks/5290.js +1 -0
  750. package/app/.next-cli-build/server/chunks/5472.js +11 -0
  751. package/app/.next-cli-build/server/chunks/5577.js +1 -1
  752. package/app/.next-cli-build/server/chunks/5598.js +1 -1
  753. package/app/.next-cli-build/server/chunks/5867.js +1 -0
  754. package/app/.next-cli-build/server/chunks/6085.js +1 -1
  755. package/app/.next-cli-build/server/chunks/6120.js +1 -0
  756. package/app/.next-cli-build/server/chunks/6159.js +1 -0
  757. package/app/.next-cli-build/server/chunks/6165.js +1 -1
  758. package/app/.next-cli-build/server/chunks/6333.js +1 -1
  759. package/app/.next-cli-build/server/chunks/6723.js +1 -1
  760. package/app/.next-cli-build/server/chunks/6955.js +1 -1
  761. package/app/.next-cli-build/server/chunks/6975.js +1 -1
  762. package/app/.next-cli-build/server/chunks/7006.js +1 -1
  763. package/app/.next-cli-build/server/chunks/715.js +1 -1
  764. package/app/.next-cli-build/server/chunks/7502.js +1 -0
  765. package/app/.next-cli-build/server/chunks/7916.js +1 -1
  766. package/app/.next-cli-build/server/chunks/7938.js +1 -1
  767. package/app/.next-cli-build/server/chunks/818.js +1 -1
  768. package/app/.next-cli-build/server/chunks/8524.js +1 -0
  769. package/app/.next-cli-build/server/chunks/8685.js +1 -1
  770. package/app/.next-cli-build/server/chunks/8691.js +1 -1
  771. package/app/.next-cli-build/server/chunks/8711.js +1 -1
  772. package/app/.next-cli-build/server/chunks/88.js +1 -0
  773. package/app/.next-cli-build/server/chunks/883.js +1 -0
  774. package/app/.next-cli-build/server/chunks/8941.js +1 -0
  775. package/app/.next-cli-build/server/chunks/9614.js +7 -0
  776. package/app/.next-cli-build/server/chunks/9633.js +10 -2
  777. package/app/.next-cli-build/server/chunks/9984.js +1 -1
  778. package/app/.next-cli-build/server/instrumentation.js +1 -1
  779. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  780. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  781. package/app/.next-cli-build/server/middleware.js +4 -4
  782. package/app/.next-cli-build/server/next-font-manifest.js +1 -1
  783. package/app/.next-cli-build/server/next-font-manifest.json +1 -1
  784. package/app/.next-cli-build/server/pages/404.html +1 -1
  785. package/app/.next-cli-build/server/pages/500.html +1 -1
  786. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  787. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  788. package/app/.next-cli-build/static/5ICo_gd4bXJ9z9cGegOnS/_buildManifest.js +1 -0
  789. package/app/.next-cli-build/static/chunks/1049.3def0dd7804a4e6e.js +7 -0
  790. package/app/.next-cli-build/static/chunks/1409.b9b9883529318ba4.js +1 -0
  791. package/app/.next-cli-build/static/chunks/1567.a91d2debb1187f20.js +1 -0
  792. package/app/.next-cli-build/static/chunks/2884.39a847a6de39184f.js +1 -0
  793. package/app/.next-cli-build/static/chunks/3124.46a9db1d92ccc4c2.js +1 -0
  794. package/app/.next-cli-build/static/chunks/3245.d0758b9d4b1b5e8c.js +1 -0
  795. package/app/.next-cli-build/static/chunks/3257.24031050423940b5.js +1 -0
  796. package/app/.next-cli-build/static/chunks/3386.1d120faabbf9d807.js +1 -0
  797. package/app/.next-cli-build/static/chunks/3657.648ef7012a4a028b.js +1 -0
  798. package/app/.next-cli-build/static/chunks/{3700-5fd5ab79e1a2d076.js → 3700-507d735bbeafc1f1.js} +3 -3
  799. package/app/.next-cli-build/static/chunks/406.11a045def1d3b77b.js +1 -0
  800. package/app/.next-cli-build/static/chunks/4385-87a1b455709d7de4.js +1 -0
  801. package/app/.next-cli-build/static/chunks/497-240bb61834e40ac1.js +1 -0
  802. package/app/.next-cli-build/static/chunks/5316-fff7784e40086b07.js +31 -0
  803. package/app/.next-cli-build/static/chunks/5560.1044547418430d16.js +1 -0
  804. package/app/.next-cli-build/static/chunks/5737-b48f5e3f71caff94.js +1 -0
  805. package/app/.next-cli-build/static/chunks/{1884-b4477b727e9f760d.js → 6000-87aaca633cd687c1.js} +1 -1
  806. package/app/.next-cli-build/static/chunks/6474.3878f14b16c23d75.js +1 -0
  807. package/app/.next-cli-build/static/chunks/6909.bd99d4bad9fa33f9.js +1 -0
  808. package/app/.next-cli-build/static/chunks/7236-5d192cf1373fb7b7.js +1 -0
  809. package/app/.next-cli-build/static/chunks/9078.7b8723a1eed306a9.js +7 -0
  810. package/app/.next-cli-build/static/chunks/9131-3c6e59ad900d9f87.js +3 -0
  811. package/app/.next-cli-build/static/chunks/9146.71dafc04b1c0ad03.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-25f7aa2d037ababf.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-940078f88ad45eab.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-d76282f0fd492509.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-1e2f7ebf38beef11.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-cb3b772ef6881374.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-58a182f8d9939f66.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-33b2a2889f8a6c95.js +59 -0
  819. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-bbef1a0c34a9ee9e.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-a10e1f3c70f5ab7f.js +4 -0
  821. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-6aa26f4fba64b6d2.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-1d917685f3312fc6.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-b101a596fe25ee31.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-7dae224f46195dd1.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-8af6425bd1f2dff0.js +10 -0
  826. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-dfc0a71f960d84d9.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-bb2e059c3f3dc49d.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-ba7f8f70c115bd1b.js +4 -0
  829. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-24d2ff6ef38b5076.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-b45041d3d952bc5f.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-ab94afac28af93d9.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-d97075035c70eff5.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-f1d9bf293afc3684.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/(dashboard)/{error-e13acf917212088c.js → error-86fe20e969c25afa.js} +1 -1
  835. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-0e565003b0b585f1.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/_not-found/{page-895b0be60b8b4398.js → page-be7cfd009d9fbd4f.js} +1 -1
  837. package/app/.next-cli-build/static/chunks/app/callback/page-39e20bde55beaa9f.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-dacae19b0574d92a.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/error-0c909c404411db68.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/{global-error-f79b3222f66a4d7d.js → global-error-003ccabaecca03c8.js} +1 -1
  841. package/app/.next-cli-build/static/chunks/app/landing/page-29ecb0d5c302e58c.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/layout-b163b1ebf7b2b559.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/login/page-b3a411e5e3d409d6.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/masuk/page-7b5993b71be815c4.js +1 -0
  845. package/app/.next-cli-build/static/chunks/main-app-e420732cbed7b559.js +1 -0
  846. package/app/.next-cli-build/static/chunks/webpack-709c19c4ca395e42.js +1 -0
  847. package/app/.next-cli-build/static/css/1fc10f069b479895.css +1 -0
  848. package/app/.next-cli-build/static/css/e8723a4485b3f4ec.css +1 -0
  849. package/app/node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  850. package/app/package.json +7 -4
  851. package/app/server.js +1 -1
  852. package/package.json +2 -1
  853. package/src/cli/terminalUI.js +2 -2
  854. package/src/cli/tray/autostart.js +3 -3
  855. package/src/cli/tray/tray.js +4 -4
  856. package/app/.next-cli-build/server/chunks/1377.js +0 -11
  857. package/app/.next-cli-build/server/chunks/1798.js +0 -1
  858. package/app/.next-cli-build/server/chunks/185.js +0 -1
  859. package/app/.next-cli-build/server/chunks/3080.js +0 -1
  860. package/app/.next-cli-build/server/chunks/3411.js +0 -1
  861. package/app/.next-cli-build/server/chunks/381.js +0 -1
  862. package/app/.next-cli-build/server/chunks/390.js +0 -23
  863. package/app/.next-cli-build/server/chunks/4309.js +0 -1
  864. package/app/.next-cli-build/server/chunks/6131.js +0 -7
  865. package/app/.next-cli-build/server/chunks/7653.js +0 -1
  866. package/app/.next-cli-build/server/chunks/7940.js +0 -3
  867. package/app/.next-cli-build/static/VKvJAyxOs8Z4i-NlGV_fQ/_buildManifest.js +0 -1
  868. package/app/.next-cli-build/static/chunks/2585-8fd88706090c24f0.js +0 -7
  869. package/app/.next-cli-build/static/chunks/3347-d538c26a837eb5d9.js +0 -3
  870. package/app/.next-cli-build/static/chunks/3357-6bb78467d17f996d.js +0 -1
  871. package/app/.next-cli-build/static/chunks/4385-5ccf368da02ccc55.js +0 -1
  872. package/app/.next-cli-build/static/chunks/5316-cfaf927336e65a00.js +0 -31
  873. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-e35edec4bd8b35f6.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-cc3a7f812ec6e2f6.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-00c86c08353d723d.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-570a07ca0addffec.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-a769b01825700eb9.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-6b0647c8bf2d45ef.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-14290d80e6f28738.js +0 -59
  880. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-8249da575c86c499.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-178ec7f3df9fd35c.js +0 -4
  882. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-19ea4b1b2cebd3b1.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-023f092008a4abff.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-9cb50b7d1d7ce028.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ffe66fe35a77042a.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-5a1fb070ecbcfc1a.js +0 -10
  887. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-5fbcf78a8c259144.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-1f4063d23a30b305.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-c61feb1af4dd493e.js +0 -4
  890. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-563c8f44ac8e9c07.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-025c524015bdc48d.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-5dc6b360373ddeab.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-19c98be58beb7d43.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-b84d19383ba09e68.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/callback/page-cf6d6ef09f75eb67.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-fc8c980648436523.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/error-b2bc6f017d2fe0ee.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/landing/page-285751bf75da17bc.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/layout-367acca0c0885646.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/login/page-501598f28ab7c5ba.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/masuk/page-9369035bb093aaed.js +0 -1
  902. package/app/.next-cli-build/static/chunks/main-app-85701dd8943d6a76.js +0 -1
  903. package/app/.next-cli-build/static/chunks/webpack-037b3c82a7f1309c.js +0 -1
  904. package/app/.next-cli-build/static/css/17ad4163408b1fa3.css +0 -1
  905. package/app/.next-cli-build/static/css/8f9ac5a7bd3a79e5.css +0 -1
  906. package/app/.next-cli-build/static/media/material-symbols-outlined.ec1fa111.woff2 +0 -0
  907. /package/app/.next-cli-build/static/{VKvJAyxOs8Z4i-NlGV_fQ → 5ICo_gd4bXJ9z9cGegOnS}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3528],{2514:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>x});var s=a(5102),n=a(2030),r=a(2585),l=a(1577);let o=(0,a(8511).default)(()=>a.e(8667).then(a.bind(a,8667)),{loadableGenerated:{webpack:()=>[8667]},ssr:!1});function i(e,t){return fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:e,content:t})}).catch(()=>{})}let d={blue:"bg-blue-500/10 text-blue-500",orange:"bg-orange-500/10 text-orange-500",green:"bg-green-500/10 text-green-500",purple:"bg-purple-500/10 text-purple-500"},c=[{id:1,label:"Client Request",file:"1_req_client.json",lang:"json",desc:"Raw request from client"},{id:2,label:"Source Body",file:"2_req_source.json",lang:"json",desc:"After initial conversion"},{id:3,label:"OpenAI Intermediate",file:"3_req_openai.json",lang:"json",desc:"source → openai"},{id:4,label:"Target Request",file:"4_req_target.json",lang:"json",desc:"openai → target + URL + headers"},{id:5,label:"Provider Response",file:"5_res_provider.txt",lang:"text",desc:"Raw SSE from provider"},{id:6,label:"OpenAI Response",file:"6_res_openai.txt",lang:"text",desc:"target → openai (response)"},{id:7,label:"Client Response",file:"7_res_client.txt",lang:"text",desc:"Final response to client"}],p={minimap:{enabled:!1},fontSize:12,lineNumbers:"on",scrollBeyondLastLine:!1,wordWrap:"on",automaticLayout:!0};function x(){let[e,t]=(0,n.useState)({}),[a,d]=(0,n.useState)({1:!0}),[x,u]=(0,n.useState)({}),[f,h]=(0,n.useState)(null),g=(e,t)=>u(a=>({...a,[e]:t})),j=(e,a)=>t(t=>({...t,[e]:a})),y=e=>d(t=>{let a={};return c.forEach(e=>{a[e.id]=!1}),a[e]=!0,a}),b=async e=>{let t=c.find(t=>t.id===e);g(`load-${e}`,!0);try{let a=await fetch(`/api/translator/load?file=${t.file}`),s=await a.json();s.success?(j(e,s.content),1===e&&await v(s.content)):alert(s.error||"File not found")}catch(e){alert(e.message)}g(`load-${e}`,!1)},v=async e=>{try{let t="string"==typeof e?JSON.parse(e):e,a=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:1,body:t})}),s=await a.json();s.success&&h(s.result)}catch{}},_=async()=>{g("toOpenAI",!0);try{let t=e[1],a=JSON.parse(t);i("1_req_client.json",t),i("2_req_source.json",JSON.stringify({timestamp:new Date().toISOString(),headers:{},body:a.body||a},null,2));let s=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:2,body:a})}),n=await s.json();if(!n.success)return void alert(n.error);let r=JSON.stringify(n.result.body,null,2);j(3,r),y(3)}catch(e){alert(e.message)}g("toOpenAI",!1)},N=async()=>{g("toTarget",!0);try{let t=e[3],a=JSON.parse(t);i("3_req_openai.json",t);let s=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:3,body:{...a,provider:f?.provider,model:f?.model}})}),n=await s.json();if(!n.success)return void alert(n.error);let r={...n.result,provider:f?.provider,model:f?.model};j(4,JSON.stringify(r,null,2)),y(4)}catch(e){alert(e.message)}g("toTarget",!1)},w=async()=>{g("send",!0);try{let t=e[4],a=JSON.parse(t);i("4_req_target.json",t);let s=a.provider||f?.provider,n=a.model||f?.model;if(!s||!n)return void alert("Missing provider or model. Please run step 1 first to detect them.");let r=await fetch("/api/translator/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:s,model:n,body:a.body||a})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));alert(e.error||"Send failed");return}let l=r.body.getReader(),o=new TextDecoder,d="";for(;;){let{done:e,value:t}=await l.read();if(e)break;d+=o.decode(t,{stream:!0})}j(5,d),y(5),await fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:"5_res_provider.txt",content:d})})}catch(e){alert(e.message)}finally{g("send",!1)}},{copy:S}=(0,l.C)(),O=async t=>{e[t]&&S(e[t],`translator-step-${t}`)};return(0,s.jsxs)("div",{className:"p-8 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Translator Debug"}),(0,s.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Replay request flow — matches log files"})]}),f&&(0,s.jsxs)("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:[(0,s.jsx)(m,{label:"src",value:f.sourceFormat,color:"blue"}),(0,s.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,s.jsx)(m,{label:"dst",value:f.targetFormat,color:"orange"}),(0,s.jsx)(m,{label:"provider",value:f.provider,color:"green"}),(0,s.jsx)(m,{label:"model",value:f.model,color:"purple"})]})]}),c.map(t=>{var n;let l=1===(n=t.id)?(0,s.jsx)(r.$n,{size:"sm",icon:"arrow_forward",loading:x.toOpenAI,onClick:_,children:"→ OpenAI"}):3===n?(0,s.jsx)(r.$n,{size:"sm",icon:"arrow_forward",loading:x.toTarget,onClick:N,children:"→ Target"}):4===n?(0,s.jsx)(r.$n,{size:"sm",icon:"send",loading:x.send,onClick:w,children:"Send"}):null,i=!!a[t.id],c=e[t.id]||"";return(0,s.jsx)(r.Zp,{children:(0,s.jsxs)("div",{className:"p-4 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>{let e;return e=t.id,d(t=>({...t,[e]:!t[e]}))},className:"flex items-center gap-2 flex-1 text-left group",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px] text-text-muted group-hover:text-primary transition-colors",children:i?"expand_more":"chevron_right"}),(0,s.jsx)("span",{className:"text-xs font-mono text-text-muted/60 w-4",children:t.id}),(0,s.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:t.label}),(0,s.jsx)("span",{className:"text-xs text-text-muted/60 font-mono",children:t.file}),c&&(0,s.jsxs)("span",{className:"text-xs text-green-500",children:["(",c.length," chars)"]})]}),!i&&(0,s.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",icon:"folder_open",loading:x[`load-${t.id}`],onClick:()=>b(t.id)}),l]})]}),i&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"border border-border rounded-lg overflow-hidden",children:(0,s.jsx)(o,{height:"400px",defaultLanguage:"text"===t.lang?"plaintext":"json",value:c,onChange:e=>{j(t.id,e||""),1===t.id&&v(e||"")},theme:"vs-dark",options:p})}),(0,s.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"outline",icon:"folder_open",loading:x[`load-${t.id}`],onClick:()=>b(t.id),children:"Load"}),(0,s.jsx)(r.$n,{size:"sm",variant:"outline",icon:"data_object",onClick:()=>(t=>{try{let a=JSON.parse(e[t]);j(t,JSON.stringify(a,null,2))}catch{}})(t.id),children:"Format"}),(0,s.jsx)(r.$n,{size:"sm",variant:"outline",icon:"content_copy",onClick:()=>O(t.id),children:"Copy"}),l]})]})]})},t.id)})]})}function m({label:e,value:t,color:a}){return(0,s.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-mono ${d[a]}`,children:[(0,s.jsxs)("span",{className:"text-text-muted/70 font-sans text-[10px]",children:[e,":"]}),t]})}},5009:(e,t,a)=>{Promise.resolve().then(a.bind(a,2514))}},e=>{e.O(0,[2554,7418,3885,9458,9814,4385,3357,2585,2147,3204,7358],()=>e(e.s=5009)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2825],{3567:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>y});var a=s(5102),l=s(2030),n=s(3278),r=s(2585),i=s(2758),d=s(8140),o=s(3916);let c={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"};function x({isOpen:e,onClose:t,title:s,children:n,width:r="md",className:i}){let d=(0,l.useRef)(t);return(d.current=t,(0,l.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,l.useEffect)(()=>{let t=t=>{"Escape"===t.key&&e&&d.current()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),e)?(0,a.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:t,"aria-hidden":"true"}),(0,a.jsxs)("div",{className:(0,o.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle",c[r]||c.md,i),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:s&&(0,a.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})}),(0,a.jsx)("button",{type:"button",onClick:t,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:n})]})]}):null}function m({currentPage:e,pageSize:t,totalItems:s,onPageChange:l,onPageSizeChange:n,className:r}){let i=Math.ceil(s/t),c=s>0?(e-1)*t+1:0,x=Math.min(e*t,s),u=(()=>{let t=[],s=Math.max(1,e-2),a=Math.min(i,s+5-1);a-s+1<5&&(s=Math.max(1,a-5+1));for(let e=s;e<=a;e++)t.push(e);return t})();return(0,a.jsxs)("div",{className:(0,o.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4 px-2",r),children:[s>0&&(0,a.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:c})," to"," ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:x})," of"," ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:s})," results"]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[n&&(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,a.jsx)("select",{value:t,onChange:e=>n(Number(e.target.value)),className:(0,o.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),style:{colorScheme:"auto"},children:[10,20,50].map(e=>(0,a.jsx)("option",{value:e,children:e},e))})]}),i>1&&(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>l(e-1),disabled:1===e,className:"w-9 px-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),u[0]>1&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d.default,{variant:"ghost",size:"sm",onClick:()=>l(1),className:"w-9 px-0 hidden sm:inline-flex",children:"1"}),u[0]>2&&(0,a.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."})]}),u.map(t=>(0,a.jsx)(d.default,{variant:e===t?"primary":"ghost",size:"sm",onClick:()=>l(t),className:(0,o.cn)("w-9 px-0",e===t?"inline-flex":"hidden sm:inline-flex"),children:t},t)),u[u.length-1]<i&&(0,a.jsxs)(a.Fragment,{children:[u[u.length-1]<i-1&&(0,a.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."}),(0,a.jsx)(d.default,{variant:"ghost",size:"sm",onClick:()=>l(i),className:"w-9 px-0 hidden sm:inline-flex",children:i})]}),(0,a.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>l(e+1),disabled:e===i,className:"w-9 px-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var u=s(1038);let h=null,p=null;async function f(){if(h&&p)return{providerNameCache:h,providerNodesCache:p};let e=await fetch("/api/provider-nodes"),t=(await e.json()).nodes||[];for(let e of(p={},t))p[e.id]=e.name;return{providerNameCache:h={...u.Q2,...p},providerNodesCache:p}}function b(e,t){if(!e||!t)return e;let s=t[e];if("string"==typeof s)return s;if(s?.name)return s.name;let a=(0,u.zt)(e)||u.Q2[e];return a?.name||e}function j({title:e,children:t,defaultOpen:s=!1,icon:n=null}){let[r,i]=(0,l.useState)(s);return(0,a.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>i(!r),className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:n}),(0,a.jsx)("span",{className:"font-semibold text-sm text-text-main",children:e})]}),(0,a.jsx)("span",{className:(0,o.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",r?"rotate-90":""),children:"chevron_right"})]}),r&&(0,a.jsx)("div",{className:"p-4 border-t border-black/5 dark:border-white/5",children:t})]})}function g(e){let t=e?.prompt_tokens||e?.input_tokens||0,s=e?.cached_tokens||e?.cache_read_input_tokens||0;return t<s?s:t}function v({filterProvider:e,setFilterProvider:t,filterStart:s,setFilterStart:l,filterEnd:n,setFilterEnd:r,providers:o,cn:c,handleApplyFilters:x,handleClearFilters:m}){return(0,a.jsx)(i.default,{padding:"md",children:(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,a.jsxs)("select",{id:"provider-filter",value:e,onChange:e=>t(e.target.value),className:c("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20 w-full min-w-0 cursor-pointer"),style:{colorScheme:"auto"},children:[(0,a.jsx)("option",{value:"",children:"All Providers"}),o.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,a.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:s,onChange:e=>l(e.target.value),className:c("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,a.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:n,onChange:e=>r(e.target.value),className:c("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,a.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Actions"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(d.default,{onClick:x,className:"flex-1",children:"Search"}),(0,a.jsx)(d.default,{variant:"ghost",onClick:m,disabled:!e&&!s&&!n,className:"flex-1",children:"Clear"})]})]})]})})}function N({detail:e,index:t,handleViewDetail:s,providerNameCache:l}){return(0,a.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,a.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(e.timestamp).toLocaleString()}),(0,a.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:e.model}),(0,a.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,a.jsx)("span",{className:"font-medium",children:b(e.provider,l)})}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:g(e.tokens).toLocaleString()}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:e.tokens?.completion_tokens?.toLocaleString()||0}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,a.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,a.jsxs)("div",{children:["TTFT: ",(0,a.jsxs)("span",{className:"font-mono",children:[e.latency?.ttft||0,"ms"]})]}),(0,a.jsxs)("div",{children:["Total: ",(0,a.jsxs)("span",{className:"font-mono",children:[e.latency?.total||0,"ms"]})]})]})}),(0,a.jsx)("td",{className:"p-4 text-center",children:(0,a.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>s(e),children:"Detail"})})]},`${e.id}-${t}`)}function w(){var e;let[t,s]=(0,l.useState)([]),[n,r]=(0,l.useState)(0),[d,c]=(0,l.useState)(0),[u,h]=(0,l.useState)(1),[p,w]=(0,l.useState)(20),[k,y]=(0,l.useState)(!1),[S,C]=(0,l.useState)(null),[P,T]=(0,l.useState)(!1),[D,_]=(0,l.useState)([]),[R,E]=(0,l.useState)(null),[z,F]=(0,l.useState)(""),[I,L]=(0,l.useState)(""),[O,q]=(0,l.useState)(""),[A,M]=(0,l.useState)(""),[K,$]=(0,l.useState)(""),[Q,J]=(0,l.useState)(""),[U,H]=(0,l.useState)(!1);(0,l.useEffect)(()=>{let e=setTimeout(()=>{let e=new Date;e.setDate(e.getDate()-7);let t=e.toISOString().slice(0,16);L(t),$(t),H(!0)},500);return()=>clearTimeout(e)},[]),(0,l.useEffect)(()=>{let e=new AbortController;return fetch("/api/usage/providers",{signal:e.signal}).then(e=>e.json()).then(async t=>{if(e.signal.aborted)return;_(t.providers||[]);let s=await f();e.signal.aborted||E(s.providerNameCache)}).catch(()=>{}),()=>e.abort()},[]),(0,l.useEffect)(()=>{if(!U||!K)return;let e=new AbortController;y(!0);let t=new URLSearchParams({page:String(u),pageSize:String(p)});return A&&t.append("provider",A),t.append("startDate",K),Q&&t.append("endDate",Q),fetch(`/api/usage/request-details?${t}`,{signal:e.signal}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(t=>{e.signal.aborted||(s(Array.isArray(t.details)?t.details:[]),r(t.pagination?.totalItems??0),c(t.pagination?.totalPages??0))}).catch(t=>{e.signal.aborted||console.error("request-details fetch failed:",t)}).finally(()=>{e.signal.aborted||y(!1)}),()=>e.abort()},[U,u,p,A,K,Q]);let V=e=>{C(e),T(!0),fetch(`/api/usage/request-details/${encodeURIComponent(e.id)}`).then(e=>e.ok?e.json():null).then(e=>{e?.detail&&C(e.detail)}).catch(()=>{})};return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,a.jsx)(v,{filterProvider:z,setFilterProvider:F,filterStart:I,setFilterStart:L,filterEnd:O,setFilterEnd:q,providers:D,cn:o.cn,handleApplyFilters:()=>{h(1),M(z),$(I),J(O)},handleClearFilters:()=>{let e,t=((e=new Date).setDate(e.getDate()-7),e.toISOString().slice(0,16));F(""),L(t),q(""),h(1),M(""),$(t),J("")}}),(0,a.jsxs)(i.default,{padding:"none",children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,a.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,a.jsx)("tbody",{children:k||!U?(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:(0,a.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]",children:"progress_activity"}),"Loading..."]})})}):0===t.length?(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:"No request details found"})}):t.map((e,t)=>(0,a.jsx)(N,{detail:e,index:t,handleViewDetail:V,providerNameCache:R},t))})]})}),!k&&t.length>0&&(0,a.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,a.jsx)(m,{currentPage:u,pageSize:p,totalItems:n,onPageChange:e=>h(e),onPageSizeChange:e=>{w(e),h(1)}})})]}),(0,a.jsx)(x,{isOpen:P,onClose:()=>T(!1),title:"Request Details",width:"lg",children:S&&(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,a.jsx)("span",{className:"break-all font-mono text-text-main",children:S.id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,a.jsx)("span",{className:"text-text-main",children:new Date(S.timestamp).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,a.jsx)("span",{className:"text-text-main font-medium",children:b(S.provider,R)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:S.model})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"API Key Name:"})," ",(0,a.jsx)("span",{className:"text-text-main",children:S.apiKey&&S.apiKeyName||"-"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"API Key:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:S.apiKey?(e=S.apiKey)?e.length>8?`${e.slice(0,8)}...`:e:"":"-"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,a.jsx)("span",{className:(0,o.cn)("font-medium","success"===S.status?"text-green-600":"text-red-600"),children:S.status})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,a.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",S.latency?.ttft||0,"ms / Total ",S.latency?.total||0,"ms"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:g(S.tokens).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:S.tokens?.completion_tokens?.toLocaleString()||0})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)(j,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(S.request,null,2)})}),S.providerRequest&&(0,a.jsx)(j,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(S.providerRequest,null,2)})}),S.providerResponse&&(0,a.jsx)(j,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof S.providerResponse?JSON.stringify(S.providerResponse,null,2):S.providerResponse})}),(0,a.jsxs)(j,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[S.response?.thinking&&(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,a.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:S.response.thinking})]}),(0,a.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:S.response?.content||"[No content]"})]})]})]})})]})}let k=[{value:"today",label:"Today"},{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function y(){return(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)(r.Qv,{}),children:(0,a.jsx)(S,{})})}function S(){let e=(0,n.useSearchParams)(),t=(0,n.useRouter)(),[s,i]=(0,l.useState)("today"),d=e.get("tab"),o=d&&["overview","logs","details"].includes(d)?d:"overview";return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)(r.Iz,{options:[{value:"overview",label:"Overview"},{value:"details",label:"Details"}],value:o,onChange:s=>{if(s===o)return;let a=new URLSearchParams(e);a.set("tab",s),t.push(`/dashboard/usage?${a.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===o&&(0,a.jsx)(r.Iz,{options:k,value:s,onChange:i,size:"sm",className:"w-full sm:w-auto"})]}),"overview"===o&&(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)(r.Qv,{}),children:(0,a.jsx)(r.jK,{period:s,setPeriod:i,hidePeriodSelector:!0})}),"logs"===o&&(0,a.jsx)(r.gM,{}),"details"===o&&(0,a.jsx)(w,{})]})}},4290:(e,t,s)=>{Promise.resolve().then(s.bind(s,3567))}},e=>{e.O(0,[2554,7418,3885,9458,9814,4385,3357,2585,2147,3204,7358],()=>e(e.s=4290)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{4068:(e,s,n)=>{Promise.resolve().then(n.bind(n,406)),Promise.resolve().then(n.bind(n,4505)),Promise.resolve().then(n.bind(n,7955)),Promise.resolve().then(n.bind(n,8140)),Promise.resolve().then(n.bind(n,4260)),Promise.resolve().then(n.bind(n,2758)),Promise.resolve().then(n.bind(n,6127)),Promise.resolve().then(n.bind(n,1049)),Promise.resolve().then(n.bind(n,9290)),Promise.resolve().then(n.bind(n,3657)),Promise.resolve().then(n.bind(n,2775)),Promise.resolve().then(n.bind(n,3386)),Promise.resolve().then(n.bind(n,1350)),Promise.resolve().then(n.bind(n,6453)),Promise.resolve().then(n.bind(n,9146)),Promise.resolve().then(n.bind(n,1488)),Promise.resolve().then(n.bind(n,6474)),Promise.resolve().then(n.bind(n,3257)),Promise.resolve().then(n.bind(n,5560)),Promise.resolve().then(n.bind(n,8657)),Promise.resolve().then(n.bind(n,6036)),Promise.resolve().then(n.bind(n,2126)),Promise.resolve().then(n.bind(n,7056)),Promise.resolve().then(n.bind(n,1409)),Promise.resolve().then(n.bind(n,3124)),Promise.resolve().then(n.bind(n,7665)),Promise.resolve().then(n.bind(n,9078)),Promise.resolve().then(n.bind(n,2442)),Promise.resolve().then(n.bind(n,3245)),Promise.resolve().then(n.bind(n,2884)),Promise.resolve().then(n.bind(n,1567)),Promise.resolve().then(n.bind(n,5533)),Promise.resolve().then(n.bind(n,7749)),Promise.resolve().then(n.bind(n,6860)),Promise.resolve().then(n.bind(n,5944)),Promise.resolve().then(n.bind(n,9319)),Promise.resolve().then(n.bind(n,6565)),Promise.resolve().then(n.bind(n,2252)),Promise.resolve().then(n.bind(n,8419)),Promise.resolve().then(n.bind(n,1218))}},e=>{e.O(0,[2554,7418,3885,9458,9814,4385,3357,2585,2147,3204,7358],()=>e(e.s=4068)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7852],{3278:(e,t,s)=>{"use strict";var a=s(7682);s.o(a,"notFound")&&s.d(t,{notFound:function(){return a.notFound}}),s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}})},3390:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>i});var a=s(5102),r=s(2030),l=s(3278);function n(){let e=(0,l.useSearchParams)(),[t,s]=(0,r.useState)("processing");return(0,r.useEffect)(()=>{let t=e.get("code"),a=e.get("state"),r=e.get("error"),l={code:t,state:a,error:r,errorDescription:e.get("error_description"),fullUrl:window.location.href},n=[window.location.origin,"http://localhost:1455"];if(window.opener)for(let e of n)try{window.opener.postMessage({type:"oauth_callback",data:l},e)}catch(e){console.log("postMessage failed:",e)}try{let e=new BroadcastChannel("oauth_callback");e.postMessage(l),e.close()}catch(e){console.log("BroadcastChannel failed:",e)}try{localStorage.setItem("oauth_callback_v1",JSON.stringify({...l,timestamp:Date.now()}))}catch(e){console.log("localStorage failed:",e)}if(!(t||r)){let e=setTimeout(()=>s("manual"),0);return()=>clearTimeout(e)}s("success");let i=setTimeout(()=>{window.close();let e=setTimeout(()=>s("done"),500);return()=>clearTimeout(e)},1500);return()=>clearTimeout(i)},[e]),(0,a.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg",children:(0,a.jsxs)("div",{className:"text-center p-8 max-w-md",children:["processing"===t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,a.jsx)("h1",{className:"text-xl font-semibold mb-2",children:"Processing..."}),(0,a.jsx)("p",{className:"text-text-muted",children:"Please wait while we complete the authorization."})]}),("success"===t||"done"===t)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,a.jsx)("h1",{className:"text-xl font-semibold mb-2",children:"Authorization Successful!"}),(0,a.jsx)("p",{className:"text-text-muted",children:"success"===t?"This window will close automatically...":"You can close this tab now."})]}),"manual"===t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-yellow-100 dark:bg-yellow-900/30 flex items-center justify-center",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-3xl text-yellow-600",children:"info"})}),(0,a.jsx)("h1",{className:"text-xl font-semibold mb-2",children:"Copy This URL"}),(0,a.jsx)("p",{className:"text-text-muted mb-4",children:"Please copy the URL from the address bar and paste it in the application."}),(0,a.jsx)("div",{className:"bg-surface border border-border rounded-lg p-3 text-left",children:(0,a.jsx)("code",{className:"text-xs break-all",children:window.location.href})})]})]})})}function i(){return(0,a.jsx)(r.Suspense,{fallback:(0,a.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg",children:(0,a.jsxs)("div",{className:"text-center p-8",children:[(0,a.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,a.jsx)("p",{className:"text-text-muted",children:"Loading..."})]})}),children:(0,a.jsx)(n,{})})}},6961:(e,t,s)=>{Promise.resolve().then(s.bind(s,3390))}},e=>{e.O(0,[2147,3204,7358],()=>e(e.s=6961)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7370],{3278:(e,t,s)=>{"use strict";var r=s(7682);s.o(r,"notFound")&&s.d(t,{notFound:function(){return r.notFound}}),s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},6507:(e,t,s)=>{Promise.resolve().then(s.bind(s,7217))},7217:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d});var r=s(5102),a=s(2030),i=s(3278),n=s(2758),l=s(7236);function c({isOpen:e,onClose:t,onSave:s}){let[i,n]=(0,a.useState)({}),[d,o]=(0,a.useState)(!0),[x,m]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&u()},[e]);let u=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();n(t)}else{let e=(0,l.ad)();n(e)}}catch(e){console.error("Failed to load pricing:",e),n((0,l.ad)())}finally{o(!1)}},h=async()=>{m(!0);try{let e=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(e.ok)s?.(),t();else{let t=await e.json();alert(`Failed to save pricing: ${t.error}`)}}catch(e){console.error("Failed to save pricing:",e),alert("Failed to save pricing")}finally{m(!1)}},p=async()=>{if(confirm("Reset all pricing to defaults? This cannot be undone."))try{if((await fetch("/api/pricing",{method:"DELETE"})).ok){let e=(0,l.ad)();n(e)}}catch(e){console.error("Failed to reset pricing:",e),alert("Failed to reset pricing")}};if(!e)return null;let b=Object.keys(i).sort(),j=["input","output","cached","reasoning","cache_creation"];return(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-bg-base border border-border rounded-lg shadow-xl max-w-6xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[(0,r.jsxs)("div",{className:"p-4 border-b border-border flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Pricing Configuration"}),(0,r.jsx)("button",{onClick:t,className:"text-text-muted hover:text-text text-2xl leading-none",children:"\xd7"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-auto p-4",children:d?(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"Loading pricing data..."}):(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"bg-bg-subtle border border-border rounded-lg p-3 text-sm",children:[(0,r.jsx)("p",{className:"font-medium mb-1",children:"Pricing Rates Format"}),(0,r.jsxs)("p",{className:"text-text-muted",children:["All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens."]})]}),b.map(e=>{let t=Object.keys(i[e]).sort();return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsx)("div",{className:"bg-bg-subtle px-4 py-2 font-semibold text-sm",children:e.toUpperCase()}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{className:"bg-bg-hover text-text-muted uppercase text-xs",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-3 py-2 text-left",children:"Model"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Input"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Output"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cached"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Reasoning"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cache Creation"})]})}),(0,r.jsx)("tbody",{className:"divide-y divide-border",children:t.map(t=>(0,r.jsxs)("tr",{className:"hover:bg-bg-subtle/50",children:[(0,r.jsx)("td",{className:"px-3 py-2 font-medium",children:t}),j.map(s=>(0,r.jsx)("td",{className:"px-3 py-2",children:(0,r.jsx)("input",{type:"number",step:"0.01",min:"0",value:i[e][t][s]||0,onChange:r=>{let a;!isNaN(a=parseFloat(r.target.value))&&!(a<0)&&n(r=>{let i={...r};return i[e]||(i[e]={}),i[e][t]||(i[e][t]={}),i[e][t][s]=a,i})},className:"w-20 px-2 py-1 text-right bg-bg-base border border-border rounded focus:outline-none focus:border-primary"})},s))]},t))})]})})]},e)}),0===b.length&&(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"No pricing data available"})]})}),(0,r.jsxs)("div",{className:"p-4 border-t border-border flex items-center justify-between gap-2",children:[(0,r.jsx)("button",{onClick:p,className:"px-4 py-2 text-sm text-red-500 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",disabled:x,children:"Reset to Defaults"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:t,className:"px-4 py-2 text-sm text-text-muted hover:text-text border border-border rounded transition-colors",disabled:x,children:"Cancel"}),(0,r.jsx)("button",{onClick:h,className:"px-4 py-2 text-sm bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-50",disabled:x,children:x?"Saving...":"Save Changes"})]})]})]})})}function d(){(0,i.useRouter)();let[e,t]=(0,a.useState)(!1),[s,l]=(0,a.useState)(null),[d,o]=(0,a.useState)(!0);(0,a.useEffect)(()=>{x()},[]);let x=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();l(t)}}catch(e){console.error("Failed to load pricing:",e)}finally{o(!1)}};return(0,r.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-3xl font-bold",children:"Pricing Settings"}),(0,r.jsx)("p",{className:"text-text-muted mt-1",children:"Configure pricing rates for cost tracking and calculations"})]}),(0,r.jsx)("button",{type:"button",onClick:()=>t(!0),className:"px-4 py-2 bg-primary text-white rounded hover:bg-primary/90 transition-colors",children:"Edit Pricing"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Models"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:d?"...":(()=>{if(!s)return 0;let e=0;for(let t in s)e+=Object.keys(s[t]).length;return e})()})]}),(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Providers"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:d?"...":(!s?[]:Object.keys(s).sort()).length})]}),(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Status"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1 text-success",children:d?"...":"Active"})]})]}),(0,r.jsxs)(n.default,{className:"p-6",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"How Pricing Works"}),(0,r.jsxs)("div",{className:"space-y-3 text-sm text-text-muted",children:[(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Cost Calculation:"}),"Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens \xd7 input_rate) + (output_tokens \xd7 output_rate) + (cached_tokens \xd7 cached_rate)"]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Pricing Format:"})," All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens."]}),(0,r.jsx)("p",{children:(0,r.jsx)("strong",{children:"Token Types:"})}),(0,r.jsxs)("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Input:"})," Standard prompt tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Output:"})," Completion/response tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cached:"})," Cached input tokens (typically 50% of input rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Reasoning:"})," Special reasoning/thinking tokens (fallback to output rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cache Creation:"})," Tokens used to create cache entries (fallback to input rate)"]})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Custom Pricing:"})," You can override default pricing for specific models. Reset to defaults anytime to restore standard rates."]})]})]}),(0,r.jsxs)(n.default,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Current Pricing Overview"}),(0,r.jsx)("button",{type:"button",onClick:()=>t(!0),className:"text-primary hover:underline text-sm",children:"View Full Details"})]}),d?(0,r.jsx)("div",{className:"text-center py-4 text-text-muted",children:"Loading pricing data..."}):s?(0,r.jsxs)("div",{className:"space-y-3",children:[Object.keys(s).slice(0,5).map(e=>(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsxs)("span",{className:"font-semibold",children:[e.toUpperCase(),":"]})," ",(0,r.jsxs)("span",{className:"text-text-muted",children:[Object.keys(s[e]).length," models"]})]},e)),Object.keys(s).length>5&&(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["+ ",Object.keys(s).length-5," more providers"]})]}):(0,r.jsx)("div",{className:"text-text-muted",children:"No pricing data available"})]}),e&&(0,r.jsx)(c,{isOpen:e,onClose:()=>t(!1),onSave:()=>{x()}})]})}}},e=>{e.O(0,[3357,2147,3204,7358],()=>e(e.s=6507)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8039],{7560:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>l});var s=t(5102),a=t(2030),n=t(3885),d=t.n(n);function l({error:e,reset:r}){return(0,a.useEffect)(()=>{console.error(e)},[e]),(0,s.jsx)("main",{className:"flex min-h-[70vh] items-center justify-center bg-bg px-6 py-16 text-text-main",children:(0,s.jsxs)("section",{className:"w-full max-w-lg rounded-lg border border-border bg-surface p-6 shadow-soft",children:[(0,s.jsx)("div",{className:"mb-4 flex h-11 w-11 items-center justify-center rounded-lg bg-red-500/10 text-red-600 dark:text-red-400",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"error"})}),(0,s.jsx)("h1",{className:"text-xl font-semibold",children:"Something went wrong"}),(0,s.jsx)("p",{className:"mt-2 text-sm leading-6 text-text-muted",children:"The page hit an unexpected error. Try again, or return to the dashboard if it keeps happening."}),e?.message?(0,s.jsx)("pre",{className:"mt-4 max-h-36 overflow-auto rounded-md border border-border bg-surface-2 p-3 text-xs text-text-muted",children:e.message}):null,(0,s.jsxs)("div",{className:"mt-6 flex flex-wrap gap-3",children:[(0,s.jsxs)("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-primary-hover",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"refresh"}),"Try again"]}),(0,s.jsxs)(d(),{href:"/dashboard",className:"inline-flex items-center gap-2 rounded-md border border-border bg-surface px-4 py-2 text-sm font-medium text-text-main transition-colors hover:bg-surface-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"dashboard"}),"Dashboard"]})]})]})})}},8612:(e,r,t)=>{Promise.resolve().then(t.bind(t,7560))}},e=>{e.O(0,[3885,2147,3204,7358],()=>e(e.s=8612)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7018],{1577:(e,t,s)=>{"use strict";s.d(t,{C:()=>a});var r=s(2030);function a(e=2e3){let[t,s]=(0,r.useState)(null),l=(0,r.useRef)(null);return{copied:t,copy:(0,r.useCallback)((t,r="default")=>{(async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(t);else{let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}})(),s(r),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{s(null)},e)},[e])}}},1704:(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var r=s(5102),a=s(2030),l=s(7837);function o({src:e,alt:t,size:s=32,className:i="",fallbackText:n="?",fallbackColor:d}){let[c,x]=(0,a.useState)(!1);return!e||c?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${i}`.trim(),style:{width:s,height:s,color:d,fontSize:Math.max(10,Math.floor(.38*s))},children:n}):(0,r.jsx)(l.default,{src:e,alt:t,width:s,height:s,className:i,onError:()=>x(!0),unoptimized:!0})}},3035:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>v});var r=s(5102),a=s(3278),l=s(2030);function o(){let[e,t]=(0,l.useState)(!1),s=(0,a.useRouter)();return(0,r.jsxs)("nav",{className:"fixed top-0 z-50 w-full bg-[#141121]/80 backdrop-blur-md border-b border-[#3a2f27]",children:[(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-6 h-16 flex items-center justify-between",children:[(0,r.jsxs)("button",{type:"button",className:"flex items-center gap-3 cursor-pointer bg-transparent border-none p-0",onClick:()=>s.push("/"),"aria-label":"Navigate to home",children:[(0,r.jsx)("div",{className:"size-8 rounded bg-linear-to-br from-[#6366f1] to-[#8b5cf6] flex items-center justify-center text-white",children:(0,r.jsxs)("svg",{viewBox:"0 0 32 32",className:"w-5 h-5",fill:"none",children:[(0,r.jsx)("path",{d:"M16 5L22 14L16 27L10 14L16 5Z",fill:"white",opacity:"0.9"}),(0,r.jsx)("path",{d:"M10 14L16 27L10 20L6 14H10Z",fill:"white",opacity:"0.6"}),(0,r.jsx)("path",{d:"M22 14L16 27L22 20L26 14H22Z",fill:"white",opacity:"0.6"}),(0,r.jsx)("circle",{cx:"16",cy:"9",r:"2",fill:"white"})]})}),(0,r.jsx)("h2",{className:"text-white text-xl font-bold tracking-tight",children:"VansAI"})]}),(0,r.jsxs)("div",{className:"hidden md:flex items-center gap-8",children:[(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#features",children:"Features"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#how-it-works",children:"How it Works"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Docs"}),(0,r.jsxs)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors flex items-center gap-1",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:["GitHub ",(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsx)("button",{type:"button",onClick:()=>s.push("/dashboard"),className:"hidden sm:flex h-9 items-center justify-center rounded-lg px-4 bg-[#6366f1] hover:bg-[#4f46e5] transition-all text-white text-sm font-bold shadow-[0_0_15px_rgba(99,102,241,0.4)] hover:shadow-[0_0_20px_rgba(99,102,241,0.6)]",children:"Get Started"}),(0,r.jsx)("button",{type:"button",className:"md:hidden text-white",onClick:()=>t(!e),children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:e?"close":"menu"})})]})]}),e&&(0,r.jsx)("div",{className:"md:hidden border-t border-[#3a2f27] bg-[#141121]/95 backdrop-blur-md",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4 p-6",children:[(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#features",onClick:()=>t(!1),children:"Features"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#how-it-works",onClick:()=>t(!1),children:"How it Works"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Docs"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,r.jsx)("button",{type:"button",onClick:()=>s.push("/dashboard"),className:"h-9 rounded-lg bg-[#6366f1] hover:bg-[#4f46e5] text-white text-sm font-bold",children:"Get Started"})]})})]})}function i(){return(0,r.jsxs)("section",{className:"relative pt-32 pb-20 px-6 min-h-[90vh] flex flex-col items-center justify-center overflow-hidden",children:[(0,r.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[1000px] h-[500px] bg-[#6366f1]/10 rounded-full blur-[120px] pointer-events-none"}),(0,r.jsxs)("div",{className:"relative z-10 max-w-4xl w-full text-center flex flex-col items-center gap-8",children:[(0,r.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-full border border-[#3a2f27] bg-[#1a1433]/50 px-3 py-1 text-xs font-medium text-[#6366f1]",children:[(0,r.jsx)("span",{className:"flex h-2 w-2 rounded-full bg-[#6366f1] animate-pulse"}),"v1.0 is now live"]}),(0,r.jsxs)("h1",{className:"text-5xl md:text-7xl font-black leading-[1.1] tracking-tight",children:["One Endpoint for ",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-[#6366f1]",children:"All AI Providers"})]}),(0,r.jsx)("p",{className:"text-lg md:text-xl text-gray-400 max-w-2xl mx-auto font-light",children:"AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools."}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-4 w-full",children:[(0,r.jsxs)("button",{type:"button",className:"h-12 px-8 rounded-lg bg-[#6366f1] hover:bg-[#4f46e5] text-white text-base font-bold transition-all shadow-[0_0_15px_rgba(99,102,241,0.4)] flex items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined",children:"rocket_launch"}),"Get Started"]}),(0,r.jsxs)("a",{href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",className:"h-12 px-8 rounded-lg border border-[#3a2f27] bg-[#1a1433] hover:bg-[#3a2f27] text-white text-base font-bold transition-all flex items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined",children:"code"}),"View on GitHub"]})]})]})]})}var n=s(1704);let d=[{id:"claude",name:"Claude Code",image:"/providers/claude.png"},{id:"codex",name:"OpenAI Codex",image:"/providers/codex.png"},{id:"cline",name:"Cline",image:"/providers/cline.png"},{id:"cursor",name:"Cursor",image:"/providers/cursor.png"}],c=[{id:"openai",name:"OpenAI",color:"bg-emerald-500",textColor:"text-white"},{id:"anthropic",name:"Anthropic",color:"bg-orange-400",textColor:"text-white"},{id:"gemini",name:"Gemini",color:"bg-blue-500",textColor:"text-white"},{id:"github",name:"GitHub Copilot",color:"bg-gray-700",textColor:"text-white"}];function x(){let[e,t]=(0,l.useState)(0);return(0,l.useEffect)(()=>{let e=setInterval(()=>{t(e=>(e+1)%c.length)},2e3);return()=>clearInterval(e)},[]),(0,r.jsxs)("div",{className:"mt-16 w-full max-w-4xl relative h-[360px] hidden md:flex items-center justify-center animate-[float_6s_ease-in-out_infinite]",children:[(0,r.jsxs)("div",{className:"relative z-20 w-32 h-32 rounded-full bg-[#1a1433] border-2 border-[#6366f1] shadow-[0_0_40px_rgba(99,102,241,0.3)] flex flex-col items-center justify-center gap-1 group cursor-pointer hover:scale-105 transition-transform duration-500",children:[(0,r.jsxs)("svg",{viewBox:"0 0 32 32",className:"w-10 h-10",fill:"none",children:[(0,r.jsx)("path",{d:"M16 5L22 14L16 27L10 14L16 5Z",fill:"#6366f1",opacity:"0.9"}),(0,r.jsx)("path",{d:"M10 14L16 27L10 20L6 14H10Z",fill:"#6366f1",opacity:"0.6"}),(0,r.jsx)("path",{d:"M22 14L16 27L22 20L26 14H22Z",fill:"#6366f1",opacity:"0.6"}),(0,r.jsx)("circle",{cx:"16",cy:"9",r:"2",fill:"#6366f1"})]}),(0,r.jsx)("span",{className:"text-xs font-bold text-white tracking-widest uppercase",children:"VansAI"}),(0,r.jsx)("div",{className:"absolute inset-0 rounded-full border border-[#6366f1]/30 animate-ping opacity-20"})]}),(0,r.jsx)("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 flex flex-col gap-7",children:d.map(e=>(0,r.jsx)("div",{className:"flex items-center gap-3 opacity-70 hover:opacity-100 transition-opacity group",children:(0,r.jsx)("div",{className:"w-16 h-16 rounded-2xl bg-[#1a1433] border border-[#3a2f27] flex items-center justify-center overflow-hidden p-2 hover:border-[#6366f1]/50 transition-all hover:scale-105",children:(0,r.jsx)(n.A,{src:e.image,alt:e.name,size:48,className:"object-contain rounded-xl max-w-[48px] max-h-[48px]",fallbackText:e.name.slice(0,2).toUpperCase()})})},e.id))}),(0,r.jsxs)("svg",{className:"absolute inset-0 w-full h-full z-10 pointer-events-none stroke-yellow-700",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 50 C 250 70, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 140 C 250 140, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 210 C 250 210, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 300 C 250 280, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"})]}),(0,r.jsxs)("svg",{className:"absolute inset-0 w-full h-full z-10 pointer-events-none",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 50, 740 50",fill:"none",stroke:0===e?"#6366f1":"rgb(75, 85, 99)",strokeWidth:0===e?"3":"2",className:0===e?"animate-pulse":""}),(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 130, 740 130",fill:"none",stroke:1===e?"#6366f1":"rgb(75, 85, 99)",strokeWidth:1===e?"3":"2",className:1===e?"animate-pulse":""}),(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 230, 740 230",fill:"none",stroke:2===e?"#6366f1":"rgb(75, 85, 99)",strokeWidth:2===e?"3":"2",className:2===e?"animate-pulse":""}),(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 310, 740 310",fill:"none",stroke:3===e?"#6366f1":"rgb(75, 85, 99)",strokeWidth:3===e?"3":"2",className:3===e?"animate-pulse":""})]}),(0,r.jsx)("div",{className:"absolute right-0 top-0 bottom-0 flex flex-col justify-between py-6",children:c.map((t,s)=>(0,r.jsx)("div",{className:`px-4 py-2 rounded-lg ${t.color} ${t.textColor} flex items-center justify-center font-bold text-xs shadow-lg hover:scale-110 transition-all cursor-help min-w-[140px] ${e===s?"ring-4 ring-[#6366f1]/50 scale-110":""}`,title:t.name,children:t.name},t.id))}),(0,r.jsx)("div",{className:"md:hidden mt-8 w-full p-4 rounded-lg bg-[#1a1433] border border-[#3a2f27]",children:(0,r.jsx)("p",{className:"text-sm text-center text-gray-400",children:"Interactive diagram visible on desktop"})})]})}function h(){return(0,r.jsx)("section",{className:"py-24 border-y border-[#3a2f27] bg-[#1a1433]/30",id:"how-it-works",children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-6",children:[(0,r.jsxs)("div",{className:"mb-16",children:[(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"How VansAI Works"}),(0,r.jsx)("p",{className:"text-gray-400 max-w-xl text-lg",children:"Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job."})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 relative",children:[(0,r.jsx)("div",{className:"hidden md:block absolute top-12 left-[16%] right-[16%] h-[2px] bg-linear-to-r from-gray-700 via-[#6366f1] to-gray-700 -z-10"}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 relative group",children:[(0,r.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#141121] border border-[#3a2f27] flex items-center justify-center shadow-xl group-hover:border-gray-500 transition-colors z-10 mx-auto md:mx-0",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-4xl text-gray-300",children:"terminal"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-bold mb-2",children:"1. CLI & SDKs"}),(0,r.jsx)("p",{className:"text-sm text-gray-400",children:"Your requests start from your favorite tools or our unified SDK. Just change the base URL."})]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 relative group md:items-center md:text-center",children:[(0,r.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#141121] border-2 border-[#6366f1] flex items-center justify-center shadow-[0_0_30px_rgba(99,102,241,0.2)] z-10 mx-auto",children:(0,r.jsxs)("svg",{viewBox:"0 0 32 32",className:"w-10 h-10",fill:"none",children:[(0,r.jsx)("path",{d:"M16 5L22 14L16 27L10 14L16 5Z",fill:"#6366f1",opacity:"0.9"}),(0,r.jsx)("path",{d:"M10 14L16 27L10 20L6 14H10Z",fill:"#6366f1",opacity:"0.6"}),(0,r.jsx)("path",{d:"M22 14L16 27L22 20L26 14H22Z",fill:"#6366f1",opacity:"0.6"}),(0,r.jsx)("circle",{cx:"16",cy:"9",r:"2",fill:"#6366f1"})]})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-bold mb-2 text-[#6366f1]",children:"2. VansAI Hub"}),(0,r.jsx)("p",{className:"text-sm text-gray-400",children:"Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost."})]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 relative group md:items-end md:text-right",children:[(0,r.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#141121] border border-[#3a2f27] flex items-center justify-center shadow-xl group-hover:border-gray-500 transition-colors z-10 mx-auto md:mx-0",children:(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"})]})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-bold mb-2",children:"3. AI Providers"}),(0,r.jsx)("p",{className:"text-sm text-gray-400",children:"The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly."})]})]})]})]})})}let m=[{icon:"link",title:"Unified Endpoint",desc:"Access all providers via a single standard API URL.",colors:{border:"hover:border-blue-500/50",bg:"hover:bg-blue-500/5",iconBg:"bg-blue-500/10",iconText:"text-blue-500",titleHover:"group-hover:text-blue-400"}},{icon:"bolt",title:"Easy Setup",desc:"Get up and running in minutes with npx command.",colors:{border:"hover:border-orange-500/50",bg:"hover:bg-orange-500/5",iconBg:"bg-orange-500/10",iconText:"text-orange-500",titleHover:"group-hover:text-orange-400"}},{icon:"shield_with_heart",title:"Model Fallback",desc:"Automatically switch providers on failure or high latency.",colors:{border:"hover:border-rose-500/50",bg:"hover:bg-rose-500/5",iconBg:"bg-rose-500/10",iconText:"text-rose-500",titleHover:"group-hover:text-rose-400"}},{icon:"monitoring",title:"Usage Tracking",desc:"Detailed analytics and cost monitoring across all models.",colors:{border:"hover:border-purple-500/50",bg:"hover:bg-purple-500/5",iconBg:"bg-purple-500/10",iconText:"text-purple-500",titleHover:"group-hover:text-purple-400"}},{icon:"key",title:"OAuth & API Keys",desc:"Securely manage credentials in one vault.",colors:{border:"hover:border-amber-500/50",bg:"hover:bg-amber-500/5",iconBg:"bg-amber-500/10",iconText:"text-amber-500",titleHover:"group-hover:text-amber-400"}},{icon:"cloud_sync",title:"Cloud Sync",desc:"Sync your configurations across devices instantly.",colors:{border:"hover:border-sky-500/50",bg:"hover:bg-sky-500/5",iconBg:"bg-sky-500/10",iconText:"text-sky-500",titleHover:"group-hover:text-sky-400"}},{icon:"terminal",title:"CLI Support",desc:"Works with Claude Code, Codex, Cline, Cursor, and more.",colors:{border:"hover:border-emerald-500/50",bg:"hover:bg-emerald-500/5",iconBg:"bg-emerald-500/10",iconText:"text-emerald-500",titleHover:"group-hover:text-emerald-400"}},{icon:"dashboard",title:"Dashboard",desc:"Visual dashboard for real-time traffic analysis.",colors:{border:"hover:border-fuchsia-500/50",bg:"hover:bg-fuchsia-500/5",iconBg:"bg-fuchsia-500/10",iconText:"text-fuchsia-500",titleHover:"group-hover:text-fuchsia-400"}}];function u(){return(0,r.jsx)("section",{className:"py-24 px-6",id:"features",children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,r.jsxs)("div",{className:"mb-16",children:[(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Powerful Features"}),(0,r.jsx)("p",{className:"text-gray-400 max-w-xl text-lg",children:"Everything you need to manage your AI infrastructure in one place, built for scale."})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:m.map(e=>(0,r.jsxs)("div",{className:`p-6 rounded-xl bg-[#1a1433] border border-[#3a2f27] ${e.colors.border} ${e.colors.bg} transition-all duration-300 group`,children:[(0,r.jsx)("div",{className:`w-10 h-10 rounded-lg ${e.colors.iconBg} flex items-center justify-center mb-4 ${e.colors.iconText} group-hover:scale-110 transition-transform duration-300`,children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:e.icon})}),(0,r.jsx)("h3",{className:`text-lg font-bold mb-2 ${e.colors.titleHover} transition-colors`,children:e.title}),(0,r.jsx)("p",{className:"text-sm text-gray-400 leading-relaxed",children:e.desc})]},e.title))})]})})}var f=s(1577);function p(){let{copied:e,copy:t}=(0,f.C)();return(0,r.jsx)("section",{className:"py-24 px-6 bg-[#0f0d1a]",children:(0,r.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row gap-16 items-start",children:[(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:"Get Started in 30 Seconds"}),(0,r.jsx)("p",{className:"text-gray-400 text-lg mb-8",children:"Install VansAI, configure your providers via web dashboard, and start routing AI requests."}),(0,r.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#6366f1]/20 text-[#6366f1] flex items-center justify-center font-bold",children:"1"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-bold text-lg",children:"Install VansAI"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Run npx command to start the server instantly"})]})]}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#6366f1]/20 text-[#6366f1] flex items-center justify-center font-bold",children:"2"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-bold text-lg",children:"Open Dashboard"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Configure providers and API keys via web interface"})]})]}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#6366f1]/20 text-[#6366f1] flex items-center justify-center font-bold",children:"3"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-bold text-lg",children:"Route Requests"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Point your CLI tools to http://127.0.0.1:20128"})]})]})]})]}),(0,r.jsx)("div",{className:"flex-1 w-full",children:(0,r.jsxs)("div",{className:"rounded-xl overflow-hidden bg-[#1e1e1e] border border-[#3a2f27] shadow-2xl",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 bg-[#252526] border-b border-gray-700",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-red-500"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-green-500"}),(0,r.jsx)("div",{className:"ml-2 text-xs text-gray-500 font-mono",children:"terminal"})]}),(0,r.jsxs)("div",{className:"p-6 font-mono text-sm leading-relaxed overflow-x-auto",children:[(0,r.jsxs)("button",{type:"button",className:"flex items-center gap-2 mb-4 group cursor-pointer",onClick:()=>{t("npx VansRoute","landing")},"aria-label":"Copy command: npx VansRoute",children:[(0,r.jsx)("span",{className:"text-green-400",children:"$"}),(0,r.jsx)("span",{className:"text-white",children:"npx VansRoute"}),(0,r.jsx)("span",{className:"ml-auto text-gray-500 text-xs opacity-0 group-hover:opacity-100",children:"landing"===e?"✓ Copied":"Copy"})]}),(0,r.jsxs)("div",{className:"text-gray-400 mb-6",children:[(0,r.jsx)("span",{className:"text-[#6366f1]",children:">"})," Starting VansAI...",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-[#6366f1]",children:">"})," Server running on ",(0,r.jsx)("span",{className:"text-blue-400",children:"http://localhost:20128"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-[#6366f1]",children:">"})," Dashboard: ",(0,r.jsx)("span",{className:"text-blue-400",children:"http://localhost:20128/dashboard"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-green-400",children:">"})," Ready to route! ✓"]}),(0,r.jsx)("div",{className:"text-xs text-gray-500 mb-2 border-t border-gray-700 pt-4",children:"\uD83D\uDCDD Configure providers in dashboard or use environment variables"}),(0,r.jsxs)("div",{className:"text-gray-400 text-xs",children:[(0,r.jsx)("span",{className:"text-purple-400",children:"Data Location:"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-gray-500",children:" macOS/Linux:"})," ~/.9router/db/data.sqlite",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-gray-500",children:" Windows:"})," %APPDATA%/VansRoute/db/data.sqlite"]})]})]})})]})})})}var b=s(3885),g=s.n(b);function j(){return(0,r.jsx)("footer",{className:"border-t border-[#3a2f27] bg-[#0f0d1a] pt-16 pb-8 px-6",children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8 mb-16",children:[(0,r.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,r.jsx)("div",{className:"size-6 rounded bg-[#6366f1] flex items-center justify-center text-white",children:(0,r.jsxs)("svg",{viewBox:"0 0 32 32",className:"w-4 h-4",fill:"none",children:[(0,r.jsx)("path",{d:"M16 5L22 14L16 27L10 14L16 5Z",fill:"white",opacity:"0.9"}),(0,r.jsx)("path",{d:"M10 14L16 27L10 20L6 14H10Z",fill:"white",opacity:"0.6"}),(0,r.jsx)("path",{d:"M22 14L16 27L22 20L26 14H22Z",fill:"white",opacity:"0.6"}),(0,r.jsx)("circle",{cx:"16",cy:"9",r:"2",fill:"white"})]})}),(0,r.jsx)("h3",{className:"text-white text-lg font-bold",children:"VansAI"})]}),(0,r.jsx)("p",{className:"text-gray-500 text-sm max-w-xs mb-6",children:"The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease."}),(0,r.jsx)("div",{className:"flex gap-4",children:(0,r.jsx)("a",{className:"text-gray-400 hover:text-white transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"code"})})})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("h4",{className:"font-bold text-white",children:"Product"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"#features",children:"Features"}),(0,r.jsx)(g(),{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"/dashboard",children:"Dashboard"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"Changelog"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("h4",{className:"font-bold text-white",children:"Resources"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Documentation"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"https://www.npmjs.com/package/9router",target:"_blank",rel:"noopener noreferrer",children:"NPM"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("h4",{className:"font-bold text-white",children:"Legal"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#6366f1] text-sm transition-colors",href:"https://github.com/decolua/9router/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:"MIT License"})]})]}),(0,r.jsxs)("div",{className:"border-t border-[#3a2f27] pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,r.jsx)("p",{className:"text-gray-600 text-sm",children:"\xa9 2025 VansAI. All rights reserved."}),(0,r.jsxs)("div",{className:"flex gap-6",children:[(0,r.jsx)("a",{className:"text-gray-600 hover:text-white text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,r.jsx)("a",{className:"text-gray-600 hover:text-white text-sm transition-colors",href:"https://www.npmjs.com/package/9router",target:"_blank",rel:"noopener noreferrer",children:"NPM"})]})]})]})})}function v(){let e=(0,a.useRouter)();return(0,r.jsxs)("div",{className:"relative text-white font-sans overflow-x-hidden antialiased selection:bg-[#6366f1] selection:text-white",children:[(0,r.jsxs)("div",{className:"fixed inset-0 z-0 overflow-hidden pointer-events-none bg-[#141121]",children:[(0,r.jsx)("div",{className:"absolute inset-0 opacity-[0.06]",style:{backgroundImage:"linear-gradient(to right, #6366f1 1px, transparent 1px), linear-gradient(to bottom, #6366f1 1px, transparent 1px)",backgroundSize:"50px 50px"}}),(0,r.jsx)("div",{className:"absolute top-0 left-1/4 w-[700px] h-[700px] bg-[#6366f1]/12 rounded-full blur-[130px] animate-blob"}),(0,r.jsx)("div",{className:"absolute top-1/3 right-1/4 w-[600px] h-[600px] bg-purple-500/10 rounded-full blur-[130px] animate-blob-delayed-1"}),(0,r.jsx)("div",{className:"absolute bottom-0 left-1/2 w-[650px] h-[650px] bg-blue-500/8 rounded-full blur-[130px] animate-blob-delayed-2"}),(0,r.jsx)("div",{className:"absolute inset-0",style:{background:"radial-gradient(circle at center, transparent 0%, rgba(20, 17, 33, 0.4) 100%)"}})]}),(0,r.jsxs)("div",{className:"relative z-10",children:[(0,r.jsx)(o,{}),(0,r.jsxs)("main",{children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(i,{}),(0,r.jsx)("div",{className:"flex justify-center pb-20",children:(0,r.jsx)(x,{})})]}),(0,r.jsx)(p,{}),(0,r.jsx)(h,{}),(0,r.jsx)(u,{}),(0,r.jsxs)("section",{className:"py-32 px-6 relative overflow-hidden",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-linear-to-t from-[#6366f1]/5 to-transparent pointer-events-none"}),(0,r.jsxs)("div",{className:"max-w-4xl mx-auto text-center relative z-10",children:[(0,r.jsx)("h2",{className:"text-4xl md:text-5xl font-black mb-6",children:"Ready to Simplify Your AI Infrastructure?"}),(0,r.jsx)("p",{className:"text-xl text-gray-400 mb-10 max-w-2xl mx-auto",children:"Join developers who are streamlining their AI integrations with VansAI. Open source and free to start."}),(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[(0,r.jsx)("button",{type:"button",onClick:()=>e.push("/dashboard"),className:"w-full sm:w-auto h-14 px-10 rounded-lg bg-[#6366f1] hover:bg-[#4f46e5] text-white text-lg font-bold transition-all shadow-[0_0_20px_rgba(99,102,241,0.5)]",children:"Start Free"}),(0,r.jsx)("button",{type:"button",onClick:()=>window.open("https://github.com/decolua/9router#readme","_blank"),className:"w-full sm:w-auto h-14 px-10 rounded-lg border border-[#3a2f27] hover:bg-[#1a1433] text-white text-lg font-bold transition-all",children:"Read Documentation"})]})]})]})]}),(0,r.jsx)(j,{})]})]})}},5689:(e,t,s)=>{Promise.resolve().then(s.bind(s,3035))}},e=>{e.O(0,[3885,9458,2147,3204,7358],()=>e(e.s=5689)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1609:(e,n,r)=>{"use strict";r.d(n,{RuntimeI18nProvider:()=>m});var s=r(5102),i=r(2030),t=r(3278),o=r(264);function m({children:e}){let n=(0,t.usePathname)();return(0,i.useEffect)(()=>{(0,o.FE)()},[]),(0,i.useEffect)(()=>{n&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{(0,o.wn)()})})},[n]),(0,s.jsx)(s.Fragment,{children:e})}},2708:(e,n,r)=>{Promise.resolve().then(r.bind(r,4914)),Promise.resolve().then(r.bind(r,7468)),Promise.resolve().then(r.bind(r,6331)),Promise.resolve().then(r.t.bind(r,3069,23)),Promise.resolve().then(r.t.bind(r,4075,23)),Promise.resolve().then(r.t.bind(r,4719,23)),Promise.resolve().then(r.t.bind(r,6595,23)),Promise.resolve().then(r.bind(r,1609)),Promise.resolve().then(r.bind(r,9319))},6595:()=>{}},e=>{e.O(0,[6461,186,1884,4385,2147,3204,7358],()=>e(e.s=2708)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{3071:(e,t,s)=>{Promise.resolve().then(s.bind(s,4274))},4274:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(5102),r=s(2030),i=s(2585);function n(){let[e,t]=(0,r.useState)(""),[s,n]=(0,r.useState)(""),[l,o]=(0,r.useState)(""),[d,c]=(0,r.useState)(0),[x,u]=(0,r.useState)(!1),[m,h]=(0,r.useState)(null),[p,b]=(0,r.useState)("password"),[f,w]=(0,r.useState)(!1),[g,j]=(0,r.useState)("Sign in with OIDC"),[N,y]=(0,r.useState)(!1),[v,S]=(0,r.useState)("");(0,r.useEffect)(()=>{if(d<=0)return;let e=setInterval(()=>c(e=>e>0?e-1:0),1e3);return()=>clearInterval(e)},[d]),(0,r.useEffect)(()=>{!async function(){let e=new AbortController,t=setTimeout(()=>e.abort(),5e3),s=window.location.origin;try{let a=await fetch(`${s}/api/auth/status`,{signal:e.signal});if(clearTimeout(t),a.ok){let e=await a.json();if(!1===e.requireLogin)return void window.location.assign("/dashboard");h(!!e.hasPassword),b(e.authMode||"password"),w(!0===e.oidcConfigured),j(e.oidcLoginLabel||"Sign in with OIDC")}else h(!0)}catch(e){clearTimeout(t),h(!0)}}()},[]);let C=async t=>{t.preventDefault(),u(!0),n(""),o("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(t.ok){if((await t.json()).mustChangePassword)return void y(!0);window.location.assign("/dashboard")}else{let e=await t.json();n(e.error||"Invalid password"),e.resetHint&&o(e.resetHint),e.retryAfter&&c(Number(e.retryAfter))}}catch(e){n("An error occurred. Please try again.")}finally{u(!1)}},k=async t=>{t.preventDefault(),u(!0),n("");try{let t=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:e,newPassword:v})});if(t.ok)window.location.assign("/dashboard");else{let e=await t.json();n(e.error||"Failed to set password")}}catch(e){n("An error occurred. Please try again.")}finally{u(!1)}},P=f&&["oidc","both"].includes(p),O="oidc"!==p||!f;return null===m?(0,a.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,a.jsx)("p",{className:"text-text-muted mt-4",children:"Loading..."})]})}):(0,a.jsxs)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4 relative overflow-hidden",children:[(0,a.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none","aria-hidden":"true"}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-md",children:[(0,a.jsxs)("div",{className:"text-center mb-8",children:[(0,a.jsx)("h1",{className:"text-3xl font-bold text-primary mb-2",children:"9Router"}),(0,a.jsx)("p",{className:"text-text-muted",children:"oidc"===p&&f?"Sign in with your OIDC provider to access the dashboard":"Enter your password to access the dashboard"})]}),(0,a.jsx)(i.Zp,{children:N?(0,a.jsxs)("form",{onSubmit:k,className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-amber-600 dark:text-amber-400 text-center",children:"Set a new password before accessing the dashboard remotely."}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"New password"}),(0,a.jsx)(i.pd,{type:"password",placeholder:"Enter new password",value:v,onChange:e=>S(e.target.value),required:!0,autoFocus:!0}),s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:x,disabled:!v,children:"Set password"})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[P&&(0,a.jsx)(i.$n,{type:"button",variant:"primary",className:"w-full",onClick:()=>{window.location.href="/api/auth/oidc/start"},children:g}),P&&O&&(0,a.jsx)("div",{className:"h-px bg-border/60"}),O?(0,a.jsxs)("form",{onSubmit:C,className:"flex flex-col gap-4",children:[("oidc"===p&&!f||"both"===p&&!f)&&(0,a.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-400 text-center",children:"OIDC login is enabled, but the issuer/client fields are not configured yet. Password login is still available for recovery."}),"both"===p&&f&&(0,a.jsx)("p",{className:"text-xs text-text-muted text-center",children:"Password and OIDC login are both enabled."}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"Password"}),(0,a.jsx)(i.pd,{type:"password",placeholder:"Enter password",value:e,onChange:e=>t(e.target.value),required:!0,autoFocus:!P}),s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s}),d>0&&(0,a.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:["Locked. Retry in ",(0,a.jsxs)("span",{className:"font-mono",children:[d,"s"]}),"."]}),l&&(0,a.jsxs)("p",{className:"text-xs text-text-muted",children:["Forgot password? Open ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"9router"})," CLI on the host → ",(0,a.jsx)("b",{children:"Settings"})," → ",(0,a.jsx)("b",{children:"Reset Password to Default"}),"."]})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:x,disabled:d>0,children:d>0?`Wait ${d}s`:"Login"}),(0,a.jsxs)("p",{className:"text-xs text-center text-text-muted mt-2",children:["Default password is ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"123456"})]}),!1===m&&(0,a.jsx)("p",{className:"text-xs text-center text-amber-600 dark:text-amber-400",children:"Security risk: no password set. You will be asked to set one when logging in remotely."})]}):s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s})]})})]})]})}}},e=>{e.O(0,[2554,7418,3885,9458,9814,4385,3357,2585,2147,3204,7358],()=>e(e.s=3071)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8250],{3031:(e,s,t)=>{Promise.resolve().then(t.bind(t,4373))},4373:(e,s,t)=>{"use strict";t.d(s,{default:()=>c});var a=t(5102),r=t(2030),i=t(2585),l=t(3278);function n(){window.location.href="/api/auth/oidc/start"}function d(e,s){switch(s.type){case"SUBMIT":return{...e,loading:!0,error:"",resetHint:""};case"ERROR":return{...e,loading:!1,error:s.error,resetHint:s.resetHint||"",retryAfter:s.retryAfter||0};case"DONE":return{...e,loading:!1};case"TICK":return{...e,retryAfter:e.retryAfter>0?e.retryAfter-1:0};default:return e}}function c({initialAuth:e}){let[s,t]=(0,r.useState)(""),[o,x]=(0,r.useReducer)(d,{error:"",resetHint:"",retryAfter:0,loading:!1}),{error:u,resetHint:m,retryAfter:h,loading:p}=o,f=e?.hasPassword??null,b=e?.authMode||"password",j=e?.oidcConfigured||!1,g=e?.oidcLoginLabel||"Masuk dengan OIDC",N=(0,l.useRouter)();if((0,r.useEffect)(()=>{if(h<=0)return;let e=setInterval(()=>x({type:"TICK"}),1e3);return()=>clearInterval(e)},[h]),e?.requireLogin===!1)return N.push("/dashboard"),null;let y=async e=>{e.preventDefault(),x({type:"SUBMIT"});try{let e=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:s})});if(e.ok)N.push("/dashboard"),N.refresh();else{let s=await e.json();x({type:"ERROR",error:s.error||"Password salah",resetHint:s.resetHint,retryAfter:s.retryAfter?Number(s.retryAfter):0})}}catch(e){x({type:"ERROR",error:"Terjadi kesalahan. Silakan coba lagi."})}},k=j&&["oidc","both"].includes(b),w="oidc"!==b||!j;return null===f?(0,a.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,a.jsx)("p",{className:"text-text-muted mt-4",children:"Loading..."})]})}):(0,a.jsxs)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4 relative overflow-hidden",children:[(0,a.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none","aria-hidden":"true"}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-md",children:[(0,a.jsxs)("div",{className:"text-center mb-8",children:[(0,a.jsx)("div",{className:"flex justify-center mb-4",children:(0,a.jsxs)("svg",{viewBox:"0 0 32 32",className:"w-12 h-12",fill:"none",children:[(0,a.jsx)("path",{d:"M16 5L22 14L16 27L10 14L16 5Z",fill:"#6366f1",opacity:"0.9"}),(0,a.jsx)("path",{d:"M10 14L16 27L10 20L6 14H10Z",fill:"#6366f1",opacity:"0.6"}),(0,a.jsx)("path",{d:"M22 14L16 27L22 20L26 14H22Z",fill:"#6366f1",opacity:"0.6"}),(0,a.jsx)("circle",{cx:"16",cy:"9",r:"2",fill:"#6366f1"})]})}),(0,a.jsx)("h1",{className:"text-3xl font-bold text-primary mb-2",children:"VansAI"}),(0,a.jsx)("p",{className:"text-text-muted",children:"oidc"===b&&j?"Masuk dengan OIDC provider untuk mengakses dashboard":"Masukkan password untuk mengakses dashboard"})]}),(0,a.jsx)(i.Zp,{children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[k&&(0,a.jsx)(i.$n,{type:"button",variant:"primary",className:"w-full",onClick:n,children:g}),k&&w&&(0,a.jsx)("div",{className:"h-px bg-border/60"}),w?(0,a.jsxs)("form",{onSubmit:y,className:"flex flex-col gap-4",children:[("oidc"===b&&!j||"both"===b&&!j)&&(0,a.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-400 text-center",children:"OIDC login aktif, tapi issuer/client belum dikonfigurasi. Password login masih tersedia."}),"both"===b&&j&&(0,a.jsx)("p",{className:"text-xs text-text-muted text-center",children:"Password dan OIDC login keduanya aktif."}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"masuk-password",className:"text-sm font-medium",children:"Password"}),(0,a.jsx)(i.pd,{id:"masuk-password",type:"password",placeholder:"Masukkan password",value:s,onChange:e=>t(e.target.value),required:!0,autoFocus:!k}),u&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:u}),h>0&&(0,a.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:["Terkunci. Coba lagi dalam ",(0,a.jsxs)("span",{className:"font-mono",children:[h,"s"]}),"."]}),m&&(0,a.jsxs)("p",{className:"text-xs text-text-muted",children:["Lupa password? Buka ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"9router"})," CLI di host → ",(0,a.jsx)("b",{children:"Settings"})," → ",(0,a.jsx)("b",{children:"Reset Password to Default"}),"."]})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:p,disabled:h>0,children:h>0?`Tunggu ${h}s`:"Masuk"}),(0,a.jsxs)("p",{className:"text-xs text-center text-text-muted mt-2",children:["Password default adalah ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"123456"})]}),!1===f&&(0,a.jsx)("p",{className:"text-xs text-center text-text-muted",children:"Custom password belum diset. Password default di atas akan berfungsi sampai diganti."})]}):u&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:u})]})})]})]})}}},e=>{e.O(0,[2554,7418,3885,9458,9814,4385,3357,2585,2147,3204,7358],()=>e(e.s=3031)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7358],{5460:()=>{},6732:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,6329,23)),Promise.resolve().then(n.t.bind(n,4899,23)),Promise.resolve().then(n.t.bind(n,5592,23)),Promise.resolve().then(n.t.bind(n,6972,23)),Promise.resolve().then(n.t.bind(n,8906,23)),Promise.resolve().then(n.t.bind(n,5337,23)),Promise.resolve().then(n.bind(n,4556))}},e=>{var s=s=>e(e.s=s);e.O(0,[2147,3204],()=>(s(2768),s(6732))),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (()=>{"use strict";var e,t,r,o,n,a,i,u,l={},c={};function s(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}},o=!0;try{l[e].call(r.exports,r,r.exports,s),o=!1}finally{o&&delete c[e]}return r.exports}s.m=l,e=[],s.O=(t,r,o,n)=>{if(r){n=n||0;for(var a=e.length;a>0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[r,o,n];return}for(var i=1/0,a=0;a<e.length;a++){for(var[r,o,n]=e[a],u=!0,l=0;l<r.length;l++)(!1&n||i>=n)&&Object.keys(s.O).every(e=>s.O[e](r[l]))?r.splice(l--,1):(u=!1,n<i&&(i=n));if(u){e.splice(a--,1);var c=o();void 0!==c&&(t=c)}}return t},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,o){if(1&o&&(e=this(e)),8&o||"object"==typeof e&&e&&(4&o&&e.__esModule||16&o&&"function"==typeof e.then))return e;var n=Object.create(null);s.r(n);var a={};t=t||[null,r({}),r([]),r(r)];for(var i=2&o&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach(t=>a[t]=()=>e[t]);return a.default=()=>e,s.d(n,a),n},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>"static/chunks/"+e+"."+({5709:"b74981916470568d",8667:"1195f7bb7f8176aa"})[e]+".js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},s.l=(e,t,r,n)=>{if(o[e])return void o[e].push(t);if(void 0!==r)for(var a,i,u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var c=u[l];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")=="_N_E:"+r){a=c;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,s.nc&&a.setAttribute("nonce",s.nc),a.setAttribute("data-webpack","_N_E:"+r),a.src=s.tu(e)),o[e]=[t];var d=(t,r)=>{a.onerror=a.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(r)),t)return t(r)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),i&&document.head.appendChild(a)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.tt=()=>(void 0===n&&(n={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(n=trustedTypes.createPolicy("nextjs#bundler",n))),n),s.tu=e=>s.tt().createScriptURL(e),s.p="/_next/",a={8068:0,6461:0,186:0,2554:0},s.f.j=(e,t)=>{var r=s.o(a,e)?a[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(186|2554|6461|8068)$/.test(e))a[e]=0;else{var o=new Promise((t,o)=>r=a[e]=[t,o]);t.push(r[2]=o);var n=s.p+s.u(e),i=Error();s.l(n,t=>{if(s.o(a,e)&&(0!==(r=a[e])&&(a[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,r[1](i)}},"chunk-"+e,e)}},s.O.j=e=>0===a[e],i=(e,t)=>{var r,o,[n,i,u]=t,l=0;if(n.some(e=>0!==a[e])){for(r in i)s.o(i,r)&&(s.m[r]=i[r]);if(u)var c=u(s)}for(e&&e(t);l<n.length;l++)o=n[l],s.o(a,o)&&a[o]&&a[o][0](),a[o]=0;return s.O(c)},(u=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(i.bind(null,0)),u.push=i.bind(null,u.push.bind(u))})();